VTM version 4.0

Changes:

  • JVET-M0453: modified CABAC core engine
  • JVET-M0090: change default C[b,r]QpOffsetDualTree to 0, change C[b,r]QpOffset to 1 for CTC
  • JVET-M0421: Split-first signalling for partitioning
  • JVET-M0464: UniMTS
  • JVET-M0479: 18-bit Mv clip
  • JVET-M0502: context for prediction mode flag
  • JVET-M0407: CPR range extension
  • JVET-M0173: moving gtr2 flag to first pass
  • JVET-M0142: CCLM collocated- hroma
  • JVET-M0068/M0171: MMVD cleanup
  • JVET-M0064: CCLM Simplification
  • JVET-M0444: SMVD
  • JVET-M0446/M0888/M0905: VPDU constraint at picture boundary
  • JVET-M0487: integer positions in extended region
  • JVET-M0497: Fast DST-7/DCT-8 with dual implementation support
  • JVET-M0170: shared merging list candidate
  • JVET-M0409: ATMVP fix when IBC is on
  • JVET-M0118/M0185/etc: on merge_triangle_flag redudant signaling when a CU uses MMVD or CIIP
  • JVET-M0381 Test CE2.2.2.a: one context for Merge_subblock_idx (AffMergeIdx in VTM software)
  • JVET-M0145: Affine MV clip
  • JVET-M0512: TMVP storage reduction using floating-point representation
  • JVET-M0228/M0166/M0477: Remove CPMV comparisons for construnted affine merge candidates
  • JVET-M0265: MV rounding cleanup
  • JVET-M0255: MMVD without Fractional Distances for SCC
  • JVET-M0273 (change 1)/JVET-M0240/JVET-M0116 (method 1)/JVET-M0338(method 1)/JVET-M0204(method 2):Only use left neighbor for ATMVP offset derivation
  • JVET-M0264: Harmonization between HMVP and GBi
  • JVET-M0063: BDOF bitDepth bugfix
  • JVET-M0328: Only keep the second weight group during TPM MC
  • JVET-M0192: modifications - affine chroma MV is average of two luma sub-block MVs
  • JVET-M0193: allow only the first pairwise candidate, remove the remaining five
  • JVET-M0883: Using regular merge index signaling for triangle mode
  • JVET-M0257: Scan only non zero-out regions of large TUs (width or height > 32)
  • JVET-M0312/M0255: disable fractional MVD for UHD sequences
  • JVET-M0823: encoder optimization for MMVD
  • JVET-M0246: adaptive MV precision for affine inter mode
  • JVET-M0470: Fixed transition point between GR and TU + EG(k) escape codes for coefficient
  • JVET-M0839: increase number of SATD candidates in Affine Merge from 1 to 2
  • JVET-M0238: Nearest neighbor instead of linear interpolation in PDPC
  • JVET-M0281 test a: perform all AMVP rounding before pruning even if AMVR is off
  • JVET-M0436: Reduce HMVP table size
  • JVET-M0117: On MVP candidate list generation for AMVP
  • JVET-M0247: encoder optimization of affine AMVR
  • JVET-M0471: Long deblocking filters
  • JVET-M0908: CIIP deblocking
  • JVET-M0303: implicit MTS
  • JVET-M0427: Picture reconstruction with mapping
  • JVET-M0119: remove scaling of ts coefficients
  • JVET-M0253: Hash-based motion search
  • JVET-M0147: DMVR (Decoder-side Motion Vector Refinement)
  • JVET-M0102: Intra Sub-Partitions (ISP)
  • JVET-M0126: HMVP merge pruing
  • JVET-M0483: IBC
  • JVET-M0297: skipping high frequency coefficients in wide/high blocks
  • JVET-M0140 Sub-block Transform (SBT) for inter blocks
  • JVET-M0854: MMVD precision for UHD (encoder only)
  • JVET-M0055: VTM transcoding capabilities/DebugCTU
  • removal of SPSNext / SPS alignment with draft text
  • CABAC states init retraining
  • configuration file for class F
  • various bug fixes and cleanups
  • software manual updates