Skip to content

Commit

Permalink
15%+ speedup, RC improvements for high rates, various changes towards…
Browse files Browse the repository at this point in the history
… 1.6.0 (#185)
  • Loading branch information
adamjw24 authored Aug 25, 2022
1 parent 5765352 commit 3651187
Show file tree
Hide file tree
Showing 66 changed files with 3,072 additions and 2,747 deletions.
9 changes: 7 additions & 2 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ if( NOT CMAKE_VERSION VERSION_LESS 3.13.0 )
endif()

# project name
project( vvenc VERSION 1.5.0 )
project( vvenc VERSION 1.6.0 )

# set alternative version numbering for release candidates
#set( PROJECT_VERSION_RC rc1 )
set( PROJECT_VERSION_RC rc1 )
if( PROJECT_VERSION_RC )
set( PROJECT_VERSION "${PROJECT_VERSION}-rc${PROJECT_VERSION_RC}" )
endif()
Expand Down Expand Up @@ -200,6 +200,11 @@ if( VVENC_ENABLE_LINK_TIME_OPT )
set( CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELEASE ON )
set( CMAKE_INTERPROCEDURAL_OPTIMIZATION_RELWITHDEBINFO ON )
set( CMAKE_INTERPROCEDURAL_OPTIMIZATION_MINSIZEREL ON )

if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
# enable parallel link-time optimization for GCC
add_link_options( $<$<OR:$<CONFIG:Release>,$<CONFIG:RelWithDebInfo>,$<CONFIG:MinSizeRel>>:-flto=auto> )
endif()
endif()

if( VVCEncoderLib_ENABLE_ITT )
Expand Down
11 changes: 6 additions & 5 deletions cfg/experimental/lowdelay_fast.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ SearchRange : 64 # (0: Search range is a Full frame)
#MinSearchWindow : 96 # Minimum motion search window size for the adaptive window ME
BipredSearchRange : 1 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 1 # Fast encoder decision
FEN : 3 # Fast encoder decision
FDM : 1 # Fast Decision for Merge RD cost

#======== Quantization =============
Expand Down Expand Up @@ -67,15 +67,15 @@ DualITree : 1 # separate partitioning of luma and chrom
MinQTLumaISlice : 4
MinQTChromaISliceInChromaSamples : 2 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 4
MaxMTTHierarchyDepth : 0
MaxMTTHierarchyDepthISliceL : 1
MaxMTTHierarchyDepthISliceC : 1
MaxMTTDepth : 0
MaxMTTDepthI : 1
MaxNumMergeCand : 6 # Maximum number of merge candidates

# Tools configuration
Affine : 2 # Affine prediction: 0: disabled, 1: vtm, 2: fast
ALF : 1 # Adpative Loop Filter: 0: disabled, 1: enabled
ALFSpeed : 1 # ALF speed (skip filtering of non-referenced frames) [0-1]
ALFUnitSize : 128 # ALF processing size
AllowDisFracMMVD : 1 # Disable fractional MVD in MMVD mode adaptively
BCW : 0 # Enable Generalized Bi-prediction(Bcw) 0: disabled, 1: enabled, 2: fast
BIO : 1 # Bi-directional optical flow: 0: disabled, 1: enabled
Expand All @@ -95,7 +95,7 @@ LMCSOffset : 1 # chroma residual scaling offset
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 2 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MCTF : 2 # GOP based temporal filter (0:off, 1:filter all frames, 2:use SCC detection to disable for screen coded content)
MCTFSpeed : 1 # MCTF Fast Mode (0:best quality .. 3:fastest operation)
MCTFSpeed : 3 # MCTF Fast Mode (0:best quality .. 4:fastest operation)
MCTFFutureReference : 0 # Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations
MIP : 0 # Matrix-based intra prediction: 0: disabled, 1: enabled
FastMIP : 0 # Fast encoder search for MIP 0: disable, 1:vtm, 2-4: fast
Expand Down Expand Up @@ -138,5 +138,6 @@ IntraEstDecBit : 2 # Test every eight intra directional mode
NumIntraModesFullRD : -1 # Number modes for full RD intra search
ReduceIntraChromaModesFullRD : 1 # Reduce modes for chroma full RD intra search
FastTTSplit : 0 # Fast method for TT split
ReduceFilterME : 2 # Use reduced filter taps for subpel motion estimation (2: 4-tap, 1: 6-tap)


11 changes: 6 additions & 5 deletions cfg/experimental/lowdelay_faster.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ SearchRange : 64 # (0: Search range is a Full frame)
#MinSearchWindow : 96 # Minimum motion search window size for the adaptive window ME
BipredSearchRange : 1 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 1 # Fast encoder decision
FEN : 3 # Fast encoder decision
FDM : 1 # Fast Decision for Merge RD cost

#======== Quantization =============
Expand Down Expand Up @@ -67,15 +67,15 @@ DualITree : 1 # separate partitioning of luma and chrom
MinQTLumaISlice : 4
MinQTChromaISliceInChromaSamples : 2 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 4
MaxMTTHierarchyDepth : 0
MaxMTTHierarchyDepthISliceL : 0
MaxMTTHierarchyDepthISliceC : 0
MaxMTTDepth : 0
MaxMTTDepthI : 0
MaxNumMergeCand : 6 # Maximum number of merge candidates

# Tools configuration
Affine : 0 # Affine prediction: 0: disabled, 1: vtm, 2: fast
ALF : 1 # Adpative Loop Filter: 0: disabled, 1: enabled
ALFSpeed : 1 # ALF speed (skip filtering of non-referenced frames) [0-1]
ALFUnitSize : 128 # ALF processing size
AllowDisFracMMVD : 0 # Disable fractional MVD in MMVD mode adaptively
BCW : 0 # Enable Generalized Bi-prediction(Bcw) 0: disabled, 1: enabled, 2: fast
BIO : 0 # Bi-directional optical flow: 0: disabled, 1: enabled
Expand All @@ -95,7 +95,7 @@ LMCSOffset : 1 # chroma residual scaling offset
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 2 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MCTF : 2 # GOP based temporal filter (0:off, 1:filter all frames, 2:use SCC detection to disable for screen coded content)
MCTFSpeed : 3 # MCTF Fast Mode (0:best quality .. 3:fastest operation)
MCTFSpeed : 4 # MCTF Fast Mode (0:best quality .. 4:fastest operation)
MCTFFutureReference : 0 # Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations
MIP : 0 # Matrix-based intra prediction: 0: disabled, 1: enabled
FastMIP : 0 # Fast encoder search for MIP 0: disable, 1:vtm, 2-4: fast
Expand Down Expand Up @@ -138,5 +138,6 @@ IntraEstDecBit : 3 # Test every eight intra directional mode
NumIntraModesFullRD : 1 # Number modes for full RD intra search
ReduceIntraChromaModesFullRD : 1 # Reduce modes for chroma full RD intra search
FastTTSplit : 0 # Fast method for TT split
ReduceFilterME : 2 # Use reduced filter taps for subpel motion estimation (2: 4-tap, 1: 6-tap)


12 changes: 6 additions & 6 deletions cfg/experimental/lowdelay_medium.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ SearchRange : 64 # (0: Search range is a Full frame)
#MinSearchWindow : 96 # Minimum motion search window size for the adaptive window ME
BipredSearchRange : 4 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 1 # Fast encoder decision
FEN : 3 # Fast encoder decision
FDM : 1 # Fast Decision for Merge RD cost

#======== Quantization =============
Expand Down Expand Up @@ -67,9 +67,8 @@ DualITree : 1 # separate partitioning of luma and chrom
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples : 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 1
MaxMTTHierarchyDepthISliceL : 2
MaxMTTHierarchyDepthISliceC : 2
MaxMTTDepth : 1
MaxMTTDepthI : 2
MaxNumMergeCand : 6 # Maximum number of merge candidates

# Tools configuration
Expand All @@ -95,7 +94,7 @@ LMCSOffset : 1 # chroma residual scaling offset
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 2 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MCTF : 2 # GOP based temporal filter (0:off, 1:filter all frames, 2:use SCC detection to disable for screen coded content)
MCTFSpeed : 1 # MCTF Fast Mode (0:best quality .. 3:fastest operation)
MCTFSpeed : 2 # MCTF Fast Mode (0:best quality .. 4:fastest operation)
MCTFFutureReference : 0 # Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations
MIP : 1 # Matrix-based intra prediction: 0: disabled, 1: enabled
FastMIP : 3 # Fast encoder search for MIP 0: disable, 1:vtm, 2-4: fast
Expand Down Expand Up @@ -130,13 +129,14 @@ FastHAD : 0 # Use fast sub-sampled hadamard for squar
FastMrg : 2 # Fast methods for inter merge: 0: disabled, 1: vtm, 2: fast
FastLocalDualTreeMode : 2 # Fast intra pass coding for local dual-tree in intra coding region: 0: disable, 1: use threshold, 2: one intra mode only
FastSubPel : 1 # Fast sub-pel ME: 0: disabled, 1: enabled
FastIntraTools : 0 # Speedup intra tools: LFNST, ISP, MTS
FastIntraTools : 1 # Speedup intra tools: LFNST, ISP, MTS
FastInferMerge : 0 # Fast method to skip Inter/Intra modes. 0: off, [1..4] speedups
ECU : 0 # Early CU setting
IntegerET : 0 # Enable early termination for integer motion search
IntraEstDecBit : 2 # Test every fourth intra directional mode in the first pass
NumIntraModesFullRD : -1 # Number modes for full RD intra search
ReduceIntraChromaModesFullRD : 1 # Reduce modes for chroma full RD intra search
FastTTSplit : 0 # Fast method for TT split
ReduceFilterME : 2 # Use reduced filter taps for subpel motion estimation (2: 4-tap, 1: 6-tap)


10 changes: 5 additions & 5 deletions cfg/experimental/lowdelay_slow.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ SearchRange : 64 # (0: Search range is a Full frame)
#MinSearchWindow : 96 # Minimum motion search window size for the adaptive window ME
BipredSearchRange : 4 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 1 # Fast encoder decision
FEN : 3 # Fast encoder decision
FDM : 1 # Fast Decision for Merge RD cost

#======== Quantization =============
Expand Down Expand Up @@ -67,9 +67,8 @@ DualITree : 1 # separate partitioning of luma and chrom
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples : 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 2
MaxMTTHierarchyDepthISliceL : 3
MaxMTTHierarchyDepthISliceC : 3
MaxMTTDepth : 2
MaxMTTDepthI : 3
MaxNumMergeCand : 6 # Maximum number of merge candidates

# Tools configuration
Expand All @@ -95,7 +94,7 @@ LMCSOffset : 1 # chroma residual scaling offset
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 2 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MCTF : 2 # GOP based temporal filter (0:off, 1:filter all frames, 2:use SCC detection to disable for screen coded content)
MCTFSpeed : 1 # MCTF Fast Mode (0:best quality .. 3:fastest operation)
MCTFSpeed : 1 # MCTF Fast Mode (0:best quality .. 4:fastest operation)
MCTFFutureReference : 0 # Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations
MIP : 1 # Matrix-based intra prediction: 0: disabled, 1: enabled
FastMIP : 0 # Fast encoder search for MIP 0: disable, 1:vtm, 2-4: fast
Expand Down Expand Up @@ -138,5 +137,6 @@ IntraEstDecBit : 1 # Test every second intra directional mod
NumIntraModesFullRD : -1 # Number modes for full RD intra search
ReduceIntraChromaModesFullRD : 0 # Reduce modes for chroma full RD intra search
FastTTSplit : 5 # Fast method for TT split
ReduceFilterME : 0 # Use reduced filter taps for subpel motion estimation (2: 4-tap, 1: 6-tap)


10 changes: 5 additions & 5 deletions cfg/experimental/lowdelay_slower.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ SearchRange : 64 # (0: Search range is a Full frame)
#MinSearchWindow : 96 # Minimum motion search window size for the adaptive window ME
BipredSearchRange : 4 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 1 # Fast encoder decision
FEN : 3 # Fast encoder decision
FDM : 1 # Fast Decision for Merge RD cost

#======== Quantization =============
Expand Down Expand Up @@ -67,9 +67,8 @@ DualITree : 1 # separate partitioning of luma and chrom
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples : 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 3
MaxMTTHierarchyDepthISliceC : 3
MaxMTTDepth : 3
MaxMTTDepthI : 3
MaxNumMergeCand : 6 # Maximum number of merge candidates

# Tools configuration
Expand All @@ -95,7 +94,7 @@ LMCSOffset : 1 # chroma residual scaling offset
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 2 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MCTF : 2 # GOP based temporal filter (0:off, 1:filter all frames, 2:use SCC detection to disable for screen coded content)
MCTFSpeed : 1 # MCTF Fast Mode (0:best quality .. 3:fastest operation)
MCTFSpeed : 1 # MCTF Fast Mode (0:best quality .. 4:fastest operation)
MCTFFutureReference : 0 # Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations
MIP : 1 # Matrix-based intra prediction: 0: disabled, 1: enabled
FastMIP : 0 # Fast encoder search for MIP 0: disable, 1:vtm, 2-4: fast
Expand Down Expand Up @@ -138,5 +137,6 @@ IntraEstDecBit : 1 # Test every second intra directional mod
NumIntraModesFullRD : -1 # Number modes for full RD intra search
ReduceIntraChromaModesFullRD : 0 # Reduce modes for chroma full RD intra search
FastTTSplit : 1 # Fast method for TT split
ReduceFilterME : 0 # Use reduced filter taps for subpel motion estimation (2: 4-tap, 1: 6-tap)


11 changes: 6 additions & 5 deletions cfg/randomaccess_fast.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ ASR : 1 # Adaptive motion search range
MinSearchWindow : 96 # Minimum motion search window size for the adaptive window ME
BipredSearchRange : 1 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 1 # Fast encoder decision
FEN : 3 # Fast encoder decision
FDM : 1 # Fast Decision for Merge RD cost

#======== Quantization =============
Expand Down Expand Up @@ -89,15 +89,15 @@ DualITree : 1 # separate partitioning of luma and chrom
MinQTLumaISlice : 4
MinQTChromaISliceInChromaSamples : 2 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 4
MaxMTTHierarchyDepth : 0
MaxMTTHierarchyDepthISliceL : 1
MaxMTTHierarchyDepthISliceC : 1
MaxMTTDepth : 0
MaxMTTDepthI : 1
MaxNumMergeCand : 6 # Maximum number of merge candidates

# Tools configuration
Affine : 2 # Affine prediction: 0: disabled, 1: vtm, 2: fast
ALF : 1 # Adpative Loop Filter: 0: disabled, 1: enabled
ALFSpeed : 1 # ALF speed (skip filtering of non-referenced frames) [0-1]
ALFUnitSize : 128 # ALF processing size
AllowDisFracMMVD : 1 # Disable fractional MVD in MMVD mode adaptively
BCW : 0 # Enable Generalized Bi-prediction(Bcw) 0: disabled, 1: enabled, 2: fast
BIO : 1 # Bi-directional optical flow: 0: disabled, 1: enabled
Expand All @@ -117,7 +117,7 @@ LMCSOffset : 6 # chroma residual scaling offset
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 0 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
MCTF : 2 # GOP based temporal filter (0:off, 1:filter all frames, 2:use SCC detection to disable for screen coded content)
MCTFSpeed : 1 # MCTF Fast Mode (0:best quality .. 3:fastest operation)
MCTFSpeed : 3 # MCTF Fast Mode (0:best quality .. 4:fastest operation)
MCTFFutureReference : 1 # Enable referencing of future frames in the GOP based temporal filter. This is typically disabled for Low Delay configurations
MIP : 0 # Matrix-based intra prediction: 0: disabled, 1: enabled
FastMIP : 0 # Fast encoder search for MIP 0: disable, 1:vtm, 2-4: fast
Expand Down Expand Up @@ -160,5 +160,6 @@ IntraEstDecBit : 2 # Test every eight intra directional mode
NumIntraModesFullRD : -1 # Number modes for full RD intra search
ReduceIntraChromaModesFullRD : 1 # Reduce modes for chroma full RD intra search
FastTTSplit : 0 # Fast method for TT split
ReduceFilterME : 2 # Use reduced filter taps for subpel motion estimation (2: 4-tap, 1: 6-tap)


Loading

0 comments on commit 3651187

Please sign in to comment.