Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • jvet/VVCSoftware_VTM
  • chenhuanbang/VVCSoftware_VTM
  • ezhizng/VVCSoftware_VTM
  • XZheng/VVCSoftware_VTM
  • YanZhang/VVCSoftware_VTM
  • xiaozhongxu/VVCSoftware_VTM
  • bossen/VVCSoftware_VTM
  • XiangLi/VVCSoftware_VTM
  • s.iwamura/VVCSoftware_VTM
  • yuling.hsiao/VVCSoftware_VTM
  • ccc2384823/VVCSoftware_VTM
  • yuchisu/VVCSoftware_VTM
  • schwarz/VVCSoftware_VTM
  • philippe.hanhart/VVCSoftware_VTM
  • nanh/VVCSoftware_VTM
  • guillaume.laroche/VVCSoftware_VTM
  • Kenneth/VVCSoftware_VTM
  • jonatan/VVCSoftware_VTM
  • Alexey/VVCSoftware_VTM
  • saintspear/VVCSoftware_VTM
  • xinzhao/VVCSoftware_VTM
  • Seungsoo/VVCSoftware_VTM
  • jamesxxiu/VVCSoftware_VTM
  • leolzhao/VVCSoftware_VTM
  • ywchen/VVCSoftware_VTM
  • kevin625/VVCSoftware_VTM
  • Zhang/VVCSoftware_VTM
  • zhangkai/VVCSoftware_VTM
  • YCSun/VVCSoftware_VTM
  • ksuehring/VVCSoftware_VTM
  • AbeKiyo/VVCSoftware_VTM
  • naeri.park/VVCSoftware_VTM
  • ling/VVCSoftware_VTM
  • aikiho/VVCSoftware_VTM
  • JangwonChoi/VVCSoftware_VTM
  • Shelly/VVCSoftware_VTM
  • blaeser/VVCSoftware_VTM
  • crhelmrich/VVCSoftware_VTM
  • keydel/VVCSoftware_VTM
  • adam_wieckowski/VVCSoftware_VTM
  • hashimry/VVCSoftware_VTM
  • yimingli/VVCSoftware_VTM
  • zhipin/VVCSoftware_VTM
  • chernyak/VVCSoftware_VTM
  • jvet-l-ahg-14/VVCSoftware_VTM
  • sauer/VVCSoftware_VTM
  • fbarbier/VVCSoftware_VTM
  • misrak/VVCSoftware_VTM
  • ikai/VVCSoftware_VTM
  • tlu/VVCSoftware_VTM
  • Yasugi/VVCSoftware_VTM
  • peterchuang/VVCSoftware_VTM
  • wanght99/VVCSoftware_VTM
  • yuhan/VVCSoftware_VTM
  • hongbin/VVCSoftware_VTM
  • jiahaoli/VVCSoftware_VTM
  • cfd/VVCSoftware_VTM
  • ruoyangyu/VVCSoftware_VTM
  • chujoh/VVCSoftware_VTM
  • lijingya/VVCSoftware_VTM
  • hinz/VVCSoftware_VTM
  • tamse.anish/VVCSoftware_VTM
  • mcoban/VVCSoftware_VTM
  • george/VVCSoftware_VTM
  • jeeva.raj/VVCSoftware_VTM
  • antoine/VVCSoftware_VTM
  • moonmo.koo/VVCSoftware_VTM
  • deluxan/VVCSoftware_VTM
  • bheng/VVCSoftware_VTM
  • lzz8246/VVCSoftware_VTM
  • delagrangep/VVCSoftware_VTM
  • jiechen/VVCSoftware_VTM
  • hendry197/VVCSoftware_VTM
  • LGE_VCC/VVCSoftware_VTM
  • asegall/VVCSoftware_VTM
  • pbcowan/VVCSoftware_VTM
  • forayr/VVCSoftware_VTM
  • JT/VVCSoftware_VTM
  • Zhou/VVCSoftware_VTM
  • yjpiao/VVCSoftware_VTM
  • fabrice.leleannec/VVCSoftware_VTM
  • tpoirier/VVCSoftware_VTM
  • PoHan.Lin/VVCSoftware_VTM
  • jzxu/VVCSoftware_VTM
  • junghak.nam/VVCSoftware_VTM
  • guichunli/VVCSoftware_VTM
  • xianglinwang/VVCSoftware_VTM
  • chunchic/VVCSoftware_VTM
  • chrisr12/VVCSoftware_VTM
  • ks_kashyap/VVCSoftware_VTM
  • minhua/VVCSoftware_VTM
  • Sheng-Yen.Lin/VVCSoftware_VTM
  • hegilmez/VVCSoftware_VTM
  • swongah/VVCSoftware_VTM
  • merkle/VVCSoftware_VTM
  • sunyucheng/VVCSoftware_VTM
  • kirchhoffer/VVCSoftware_VTM
  • vdrugeon/VVCSoftware_VTM
  • jennylai/VVCSoftware_VTM
  • rickxu/VVCSoftware_VTM
  • seuhong/VVCSoftware_VTM
  • chollmann/VVCSoftware_VTM
  • jvet-n-ce8-public/VVCSoftware_VTM
  • martin.m.pettersson/VVCSoftware_VTM
  • siekmann/VVCSoftware_VTM
  • aramasub/VVCSoftware_VTM
  • zhiyilin/VVCSoftware_VTM
  • EricLin/VVCSoftware_VTM
  • mengwang/VVCSoftware_VTM
  • m.sarwer/VVCSoftware_VTM
  • agnesedong/VVCSoftware_VTM
  • geonjungko/VVCSoftware_VTM
  • bray/VVCSoftware_VTM
  • yhchao/VVCSoftware_VTM
  • Zhu/VVCSoftware_VTM
  • ykato/VVCSoftware_VTM
  • ZhipinDeng/VVCSoftware_VTM
  • jasonjung/VVCSoftware_VTM
  • hanhuang/VVCSoftware_VTM
  • seregin/VVCSoftware_VTM
  • wchen1014/VVCSoftware_VTM
  • Auyeung/VVCSoftware_VTM
  • Morris/VVCSoftware_VTM
  • lphamvan/VVCSoftware_VTM
  • dmehlem/VVCSoftware_VTM
  • shih-ta.hsiang/VVCSoftware_VTM
  • ysanchez/VVCSoftware_VTM
  • baegn74/VVCSoftware_VTM
  • kazui/VVCSoftware_VTM
  • yuwenhe_vvc/VVCSoftware_VTM
  • rickard/VVCSoftware_VTM
  • wangyang.cs/VVCSoftware_VTM
  • xwmeng/VVCSoftware_VTM
  • takeshi.tsukuba/VVCSoftware_VTM
  • yixindu/VVCSoftware_VTM
  • baixiu.wz/VVCSoftware_VTM
  • hm.jang/VVCSoftware_VTM
  • Ted/VVCSoftware_VTM
  • nguyen/VVCSoftware_VTM
  • chaohsiu/VVCSoftware_VTM
  • francoise/VVCSoftware_VTM
  • Yin/VVCSoftware_VTM
  • Morigami/VVCSoftware_VTM
  • sagar.kotecha/VVCSoftware_VTM
  • hwsun/VVCSoftware_VTM
  • pierrick.bouvier/VVCSoftware_VTM
  • XiangMa/VVCSoftware_VTM
  • LouiseLee/VVCSoftware_VTM
  • chenps/VVCSoftware_VTM
  • karls/VVCSoftware_VTM
  • biaowang/VVCSoftware_VTM
  • hangao/VVCSoftware_VTM
  • Jin/VVCSoftware_VTM
  • analci/VVCSoftware_VTM
  • KuiFan/VVCSoftware_VTM
  • hobingzhang/VVCSoftware_VTM
  • audrey.turquin/VVCSoftware_VTM
  • rlliao/VVCSoftware_VTM
  • winken/VVCSoftware_VTM
  • hallapur/VVCSoftware_VTM
  • T.Hashimoto/VVCSoftware_VTM
  • AnandMeher/VVCSoftware_VTM
  • semihese/VVCSoftware_VTM
  • ouedraogo/VVCSoftware_VTM
  • arthurcerveira/VVCSoftware_VTM
  • sunmi.yoo/VVCSoftware_VTM
  • Cynthia/VVCSoftware_VTM
  • yang/VVCSoftware_VTM
  • yuyoon/VVCSoftware_VTM
  • jslee/VVCSoftware_VTM
  • weimin.zeng/VVCSoftware_VTM
  • edrthomas/VVCSoftware_VTM
  • Mitsuru.Katsumata/VVCSoftware_VTM
  • adybrowne/VVCSoftware_VTM
  • jack.enhorn/VVCSoftware_VTM
  • Palanivel/VVCSoftware_VTM
  • olena.chubach/VVCSoftware_VTM
  • juvenalluo/VVCSoftware_VTM
  • yylee/VVCSoftware_VTM
  • bross/VVCSoftware_VTM
  • jvet-ahg-nnvc/VVCSoftware_VTM
  • jacob/VVCSoftware_VTM
  • dmytro.rusanovskyy/VVCSoftware_VTM
  • karamnaser/VVCSoftware_VTM
  • milos.radosavljevic/VVCSoftware_VTM
  • Keming/VVCSoftware_VTM
  • pj/VVCSoftware_VTM
  • cwkuo/VVCSoftware_VTM
  • BD/VVCSoftware_VTM
  • bartnik/VVCSoftware_VTM
  • Fangjun.Pu/VVCSoftware_VTM
  • nikolay.shostak/VVCSoftware_VTM
  • kirill.suverov/VVCSoftware_VTM
  • Xile_Zhou/VVCSoftware_VTM
  • ksuehring/vvc-software-vtm-nnvc
  • guether/VVCSoftware_VTM
  • salmonc/VVCSoftware_VTM
  • eeehey/VVCSoftware_VTM
  • marie-pierre.gallasso/VVCSoftware_VTM
  • jvet-ahg-fgt/VTM
  • liaojq/VVCSoftware_VTM
  • axel.ricard/VVCSoftware_VTM
  • XiangLi/nnvc
  • sw.xie/VVCSoftware_VTM
  • jeeva.raj/vvc-software-vtm-tu-c
  • XiangLi/tu-c
  • msantamaria/nnvc
  • cjj490168650/VVCSoftware_VTM
  • Yun_li/VVCSoftware_VTM
  • Zhengang/vvc-software-vtm
  • lvzhuoyi/vvc-software-vtm-nnvc
  • Kenneth/vvc-software-vtm-nn
  • biatekt/vvc-software-vtm
  • jvet-ahg-gcc/VVCSoftware_VTM
  • JINGYING/VVCSoftware_VTM
  • furban/VVCSoftware_VTM
  • yanning/VVCSoftware_VTM
  • zhuochen/VVCSoftware_VTM
  • Kaifa/VVCSoftware_VTM_AJ0048
  • yueli/VVCSoftware_VTM
  • tokumo/VVCSoftware_VTM
221 results
Show changes
Commits on Source (7496)
Showing
with 1267 additions and 369 deletions
---
# to be used on clang-format version 14 or later
Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true
AlignConsecutiveDeclarations: true
AlignEscapedNewlines: Right
AlignOperands: true
AlignConsecutiveAssignments: AcrossComments
AlignConsecutiveBitFields: AcrossComments
AlignConsecutiveDeclarations: AcrossComments
AlignConsecutiveMacros: AcrossComments
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: true
AllowShortCaseLabelsOnASingleLine: true
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false
AlwaysBreakTemplateDeclarations: No
BinPackArguments: true
BinPackParameters: true
BraceWrapping:
BraceWrapping:
AfterCaseLabel: true
AfterClass: true
AfterControlStatement: true
AfterControlStatement: Always
AfterEnum: true
AfterFunction: true
AfterNamespace: true
AfterObjCDeclaration: false
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
AfterExternBlock: true
BeforeCatch: true
BeforeElse: true
BeforeLambdaBody: true
BeforeWhile: false
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false
BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Allman
BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true
......@@ -55,21 +62,30 @@ DerivePointerAlignment: false
DisableFormat: false
ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true
ForEachMacros:
ForEachMacros:
- foreach
- Q_FOREACH
- BOOST_FOREACH
IncludeBlocks: Preserve
IncludeCategories:
IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: '.*'
Priority: 1
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false
IndentCaseBlocks: true
IndentGotoLabels: false
IndentPPDirectives: None
IndentExternBlock: NoIndent
IndentWidth: 2
IndentWrappedFunctionNames: true
JavaScriptQuotes: Leave
......@@ -78,7 +94,7 @@ KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: ''
MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1
NamespaceIndentation: All
NamespaceIndentation: None
ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false
......@@ -90,25 +106,30 @@ PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right
PointerAlignment: Left
ReflowComments: true
SortIncludes: false
SortUsingDeclarations: true
SpaceAfterCStyleCast: true
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 3
SpacesInAngles: false
SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false
Standard: Cpp11
Standard: c++17
TabWidth: 8
UseTab: Never
...
......
......@@ -10,3 +10,10 @@ deploy
*.suo
.vs/
.vscode/
*.blg
*.bbl
*.pyc
/out/
/doc/_minted-software-manual/
/.idea/
/cmake-build-*/
stages:
- build
.build_template:
stage: build
script:
- make realclean
- make all
only:
refs:
- master
- merge_requests
variables:
- $CI_PROJECT_URL == 'https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM'
- $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == 'master'
.build_template_linux:
extends: .build_template
script:
- make realclean
- make all
- make realclean
- make release high-bitdepth=true
- make realclean
- make linuxbuild enable-tracing=true
build_macos:
extends: .build_template
tags:
- macos
build_macos_arm:
extends: .build_template
tags:
- macos-arm
build_ubuntu2004:
extends: .build_template_linux
tags:
- ubuntu2004
build_ubuntu2204:
extends: .build_template_linux
tags:
- ubuntu2204
build_ubuntu2204-gcc12:
extends: .build_template
script:
- make realclean
- make all toolset=gcc-12
- make realclean
- make release high-bitdepth=true toolset=gcc-12
- make realclean
- make linuxbuild enable-tracing=true toolset=gcc-12
tags:
- ubuntu2204-gcc12
build_vc191x:
extends: .build_template
tags:
- vc191x
build_vc192x:
extends: .build_template
tags:
- vc192x
build_software-manual:
extends: .build_template
script:
- cd doc
- make clean
- make
artifacts:
paths:
- doc/software-manual.pdf
tags:
- pdflatex
......@@ -28,15 +28,23 @@ if( CMAKE_SYSTEM_NAME STREQUAL "Linux" )
endif()
set( EXTENSION_360_VIDEO OFF CACHE BOOL "If EXTENSION_360_VIDEO is on, 360Lib will be added" )
set( SET_ENABLE_TRACING OFF CACHE BOOL "Set ENABLE_TRACING as a compiler flag" )
set( ENABLE_TRACING OFF CACHE BOOL "If SET_ENABLE_TRACING is on, it will be set to this value" )
set( EXTENSION_HDRTOOLS OFF CACHE BOOL "If EXTENSION_HDRTOOLS is on, HDRLib will be added" )
if (DEFINED ENABLE_TRACING)
set( ENABLE_TRACING OFF CACHE BOOL "ENABLE_TRACING will be set to this value" )
endif()
if (DEFINED ENABLE_HIGH_BITDEPTH)
set( ENABLE_HIGH_BITDEPTH OFF CACHE BOOL "ENABLE_HIGH_BITDEPTH will be set to this value" )
endif()
set( ENABLE_SEARCH_OPENSSL ON CACHE BOOL "ENABLE_SEARCH_OPENSSL will be set to this value" )
if( CMAKE_COMPILER_IS_GNUCC )
set( BUILD_STATIC OFF CACHE BOOL "Build static executables" )
endif()
# set c++11
set( CMAKE_CXX_STANDARD 11 )
# set c++17
set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON )
# compile everything position independent (even static libraries)
......@@ -51,41 +59,24 @@ set_property( GLOBAL PROPERTY USE_FOLDERS ON )
# Include a utility module providing functions, macros, and settings
include( ${CMAKE_SOURCE_DIR}/cmake/CMakeBuild/cmake/modules/BBuildEnv.cmake )
# Enable multithreading
bb_multithreading()
find_package(OpenMP)
if( OpenMP_FOUND )
set( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${OpenMP_C_FLAGS}" )
set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${OpenMP_CXX_FLAGS}" )
set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} ${OpenMP_EXE_LINKER_FLAGS}" )
set( SET_ENABLE_SPLIT_PARALLELISM OFF CACHE BOOL "Set ENABLE_SPLIT_PARALLELISM as a compiler flag" )
set( ENABLE_SPLIT_PARALLELISM OFF CACHE BOOL "If SET_ENABLE_SPLIT_PARALLELISM is on, it will be set to this value" )
set( SET_ENABLE_WPP_PARALLELISM OFF CACHE BOOL "Set ENABLE_WPP_PARALLELISM as a compiler flag" )
set( ENABLE_WPP_PARALLELISM OFF CACHE BOOL "If SET_ENABLE_WPP_PARALLELISM is on, it will be set to this value" )
endif()
# Enable warnings for some generators and toolsets.
# bb_enable_warnings( gcc warnings-as-errors -Wno-sign-compare )
# bb_enable_warnings( gcc -Wno-unused-variable )
# bb_enable_warnings( gcc-4.8 warnings-as-errors -Wno-unused-variable )
# for gcc 8.2:
bb_enable_warnings( gcc warnings-as-errors -Wno-sign-compare -Wno-class-memaccess)
bb_enable_warnings( gcc warnings-as-errors -Wno-sign-compare)
if( XCODE )
bb_enable_warnings( clang warnings-as-errors
-Wno-deprecated-declarations
-Wno-unknown-attributes
-Wno-deprecated-register
-Wno-pessimizing-move
-Wno-absolute-value
-Wno-unused-const-variable )
-Wno-unused-const-variable
-Wno-unused-command-line-argument )
else()
bb_enable_warnings( clang warnings-as-errors
-Wno-unknown-attributes
-Wno-deprecated-register
-Wno-pessimizing-move
-Wno-absolute-value
-Wno-unused-const-variable )
......@@ -96,7 +87,7 @@ endif()
bb_enable_warnings( msvc warnings-as-errors "/wd4996" )
# enable sse4.1 build for all source files for gcc and clang
if( UNIX OR MINGW )
if( (UNIX OR MINGW) AND NOT (CMAKE_SYSTEM_PROCESSOR STREQUAL "arm64") )
add_compile_options( "-msse4.1" )
endif()
......@@ -112,6 +103,7 @@ if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" )
if( USE_ADDRESS_SANITIZER )
# add compile options
add_compile_options( "-fsanitize=address" )
add_link_options( "-fsanitize=address" )
endif()
endif()
......@@ -136,6 +128,9 @@ if( EXTENSION_360_VIDEO )
add_subdirectory( "source/Lib/Lib360" )
add_subdirectory( "source/Lib/AppEncHelper360" )
endif()
if ( EXTENSION_HDRTOOLS )
add_subdirectory( "source/Lib/HDRLib")
endif()
add_subdirectory( "source/Lib/DecoderAnalyserLib" )
add_subdirectory( "source/Lib/DecoderLib" )
add_subdirectory( "source/Lib/EncoderLib" )
......@@ -145,7 +140,11 @@ add_subdirectory( "source/App/DecoderAnalyserApp" )
add_subdirectory( "source/App/DecoderApp" )
add_subdirectory( "source/App/EncoderApp" )
add_subdirectory( "source/App/SEIRemovalApp" )
add_subdirectory( "source/App/SEIFilmGrainApp" )
add_subdirectory( "source/App/Parcat" )
add_subdirectory( "source/App/StreamMergeApp" )
add_subdirectory( "source/App/BitstreamExtractorApp" )
add_subdirectory( "source/App/SubpicMergeApp" )
if( EXTENSION_360_VIDEO )
add_subdirectory( "source/App/utils/360ConvertApp" )
endif()
......@@ -3,7 +3,7 @@ License, included below. This software may be subject to other third party
and contributor rights, including patent rights, and no such rights are
granted under this license.
Copyright (c) 2010-2017, ITU/ISO/IEC
Copyright (c) 2010-2025, ITU/ISO/IEC
All rights reserved.
Redistribution and use in source and binary forms, with or without
......
......@@ -17,7 +17,7 @@ BUILD_SCRIPT := $(CURDIR)/cmake/CMakeBuild/bin/cmake.py
#
TARGETS := CommonLib DecoderAnalyserApp DecoderAnalyserLib DecoderApp DecoderLib
TARGETS += EncoderApp EncoderLib Utilities SEIRemovalApp
TARGETS += EncoderApp EncoderLib Utilities SEIRemovalApp StreamMergeApp
ifeq ($(OS),Windows_NT)
ifneq ($(MSYSTEM),)
......@@ -43,6 +43,8 @@ else
UNAME_S := $(shell uname -s)
BUILD_CMD := $(BUILD_SCRIPT)
ifeq ($(UNAME_S),Linux)
# for Jenkins: run trace build only on Linux
LINUXBUILD := TRUE
endif
ifeq ($(UNAME_S),Darwin)
# MAC
......@@ -81,15 +83,11 @@ CMAKE_OPTIONS += -DCMAKE_VERBOSE_MAKEFILE=ON
endif
ifneq ($(enable-tracing),)
CONFIG_OPTIONS += -DSET_ENABLE_TRACING=ON -DENABLE_TRACING=$(enable-tracing)
CONFIG_OPTIONS += -DENABLE_TRACING=$(enable-tracing)
endif
ifneq ($(parallel-split),)
CONFIG_OPTIONS += -DSET_ENABLE_SPLIT_PARALLELISM=ON -DENABLE_SPLIT_PARALLELISM=$(parallel-split)
endif
ifneq ($(parallel-wpp),)
CONFIG_OPTIONS += -DSET_ENABLE_WPP_PARALLELISM=ON -DENABLE_WPP_PARALLELISM=$(parallel-wpp)
ifneq ($(high-bitdepth),)
CONFIG_OPTIONS += -DENABLE_HIGH_BITDEPTH=$(high-bitdepth)
endif
ifneq ($(static),)
......@@ -127,6 +125,12 @@ clean-p:
configure:
$(BUILD_CMD) $(CONFIG_OPTIONS) $(CMAKE_OPTIONS) variant=debug,release,relwithdebinfo
linuxbuild:
ifeq ($(LINUXBUILD),TRUE)
# option for automated jenkins build
$(BUILD_CMD) $(BUILD_JOBS) $(BUILD_OPTIONS) $(CMAKE_OPTIONS) variant=debug
endif
#
# project specific targets
#
......
VTM reference software for VVC
==============================
This software package is the reference software for Rec. ITU-T H.266 | ISO/IEC 23090-3 Versatile Video Coding (VVC). The reference software includes both encoder and decoder functionality.
Reference software is useful in aiding users of a video coding standard to establish and test conformance and interoperability, and to educate users and demonstrate the capabilities of the standard. For these purposes, this software is provided as an aid for the study and implementation of Versatile Video Coding.
The software has been jointly developed by the ITU-T Video Coding Experts Group (VCEG, Question 6 of ITU-T Study Group 16) and the ISO/IEC Moving Picture Experts Group (MPEG Joint Video Coding Team(s) with ITU-T SG 16, Working Group 5 of Subcommittee 29 of ISO/IEC Joint Technical Committee 1).
A software manual, which contains usage instructions, can be found in the "doc" subdirectory of this software package.
The source code is stored in a Git repository. The most recent version can be retrieved using the following commands:
```bash
git clone https://vcgit.hhi.fraunhofer.de/jvet/VVCSoftware_VTM.git
cd VVCSoftware_VTM
```
Build instructions
==================
The CMake tool is used to create platform-specific build files.
Although CMake may be able to generate 32-bit binaries, **it is generally suggested to build 64-bit binaries**. 32-bit binaries are not able to access more than 2GB of RAM, which will not be sufficient for coding larger image formats. Building in 32-bit environments is not tested and will not be supported.
Dependencies
------------
For generating and verifying cryptographic signatures using digitally signed content SEI messages, OpenSSL is required in version 1.1.1 or greater. Testing is performed on OpenSSL 3.
If OpenSSL is not found or the version is too low, only parsing of digitally signed content SEI messages will be available.
Detection of OpenSSL can be disabled using the cmake option "-DENABLE_SEARCH_OPENSSL=off"
Build instructions for plain CMake (suggested)
----------------------------------------------
**Note:** A working CMake installation is required for building the software.
CMake generates configuration files for the compiler environment/development environment on each platform.
The following is a list of examples for Windows (MS Visual Studio), macOS (Xcode) and Linux (make).
Open a command prompt on your system and change into the root directory of this project.
Create a build directory in the root directory:
```bash
mkdir build
```
Use one of the following CMake commands, based on your platform. Feel free to change the commands to satisfy
your needs.
**Windows Visual Studio 2015/17/19 64 Bit:**
Use the proper generator string for generating Visual Studio files, e.g. for VS 2015:
```bash
cd build
cmake .. -G "Visual Studio 14 2015 Win64"
```
Then open the generated solution file in MS Visual Studio.
For VS 2017 use "Visual Studio 15 2017 Win64", for VS 2019 use "Visual Studio 16 2019".
Visual Studio 2019 also allows you to open the CMake directory directly. Choose "File->Open->CMake" for this option.
**macOS Xcode:**
For generating an Xcode workspace type:
```bash
cd build
cmake .. -G "Xcode"
```
Then open the generated work space in Xcode.
For generating Makefiles with optional non-default compilers, use the following commands:
```bash
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_COMPILER=gcc-9 -DCMAKE_CXX_COMPILER=g++-9
```
In this example the brew installed GCC 9 is used for a release build.
**Linux**
For generating Linux Release Makefile:
```bash
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
```
For generating Linux Debug Makefile:
```bash
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
```
Then type
```bash
make -j
```
For more details, refer to the CMake documentation: https://cmake.org/cmake/help/latest/
Build instructions for make
---------------------------
**Note:** The build instructions in this section require the make tool and Python to be installed, which are
part of usual Linux and macOS environments. See below for installation instruction for Python and GnuWin32
on Windows.
Open a command prompt on your system and change into the root directory of this project.
To use the default system compiler simply call:
```bash
make all
```
**MSYS2 and MinGW (Windows)**
**Note:** Build files for MSYS MinGW were added on request. The build platform is not regularily tested and can't be supported.
Open an MSYS MinGW 64-Bit terminal and change into the root directory of this project.
Call:
```bash
make all toolset=gcc
```
The following tools need to be installed for MSYS2 and MinGW:
Download CMake: http://www.cmake.org/ and install it.
Python and GnuWin32 are not mandatory, but they simplify the build process for the user.
python: https://www.python.org/downloads/release/python-371/
gnuwin32: https://sourceforge.net/projects/getgnuwin32/files/getgnuwin32/0.6.30/GetGnuWin32-0.6.3.exe/download
To use MinGW, install MSYS2: http://repo.msys2.org/distrib/msys2-x86_64-latest.exe
Installation instructions: https://www.msys2.org/
Install the needed toolchains:
```bash
pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain git subversion mingw-w64-i686-cmake mingw-w64-x86_64-cmake
```
NextSoftware/VVCSoftware_VTM build howto:
The software uses cmake to create the needed build files.
Download cmake: http://www.cmake.org/ and install it.
=================== Windows only =======================
Python and gnuwin32 are not mandatory, but they simplifiy the build process for the user.
python: https://www.python.org/downloads/release/python-371/
gnuwin32: https://sourceforge.net/projects/getgnuwin32/files/getgnuwin32/0.6.30/GetGnuWin32-0.6.3.exe/download
To use MinGW, install MSYS2:
http://repo.msys2.org/distrib/msys2-x86_64-latest.exe
Installation instructions:
https://www.msys2.org/
and install the needed toolchains.
pacman -S --needed base-devel mingw-w64-i686-toolchain mingw-w64-x86_64-toolchain git subversion mingw-w64-i686-cmake mingw-w64-x86_64-cmake
========================================================
========= Build instructions for plain cmake ===========
Open a command prompt on your system and change into the root directory
of this project (location of README.txt).
Create a build directory in the root directory:
mkdir build
After that use one of the following cmake commands. Feel free to change the
commands to satisfy your needs.
Windows sample for Visual Studio 2015 64 Bit:
cd build
cmake .. -G "Visual Studio 14 2015 Win64"
Linux Release Makefile sample:
cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
Linux Debug Makefile sample:
cd build
cmake .. -DCMAKE_BUILD_TYPE=Debug
MACOSX Xcode sample:
cd build
cmake .. -G "Xcode"
========================================================
============= Build instructions for make ==============
remark:
If you installed python and gnuwin32 on Windows operating systems,
you will be able to use make.
Open a command prompt on your system and change into the root directory
of this project (location of README.txt).
to use the default system compiler simply call:
make all
Using MSYS2 and MinGW:
Open an MSYS MinGW 64-Bit terminal and change into the root directory
of this project (location of README.txt).
Call:
make all toolset=gcc
========================================================
BDPCM: 1
CacheEnable : 1
CacheLineSize : 256
NumCacheLine : 64
NumWay : 4
CacheAddrMode : 0
FrameReport :
CacheEnable : 1
CacheLineSize : 256
NumCacheLine : 64
NumWay : 4
CacheAddrMode : 1
BlkWidth : 16
BlkHeight : 16
FrameReport : 0
#======== File I/O =====================
BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
#======== Coding Structure =============
IntraPeriod : -1 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 8 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -1
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1: P 1 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 9 17 25 0 0
Frame2: P 2 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 2 10 18 0 0
Frame3: P 3 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 3 11 19 0 0
Frame4: P 4 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 4 12 20 0 0
Frame5: P 5 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 5 13 21 0 0
Frame6: P 6 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 6 14 22 0 0
Frame7: P 7 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 7 15 23 0 0
Frame8: P 8 1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 4 4 1 8 16 24 0 0
#=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search
SearchRange : 64 # (0: Search range is a Full frame)
BipredSearchRange : 4 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 0 # Fast encoder decision
FDM : 0 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
DeblockingFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (DeblockingFilterOffsetInPPS and DeblockingFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
#=========== Coding Tools =================
SAO : 1 # Sample adaptive offset (0: OFF, 1: ON)
TransformSkip : 1 # Transform skipping (0: OFF, 1: ON)
TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1: ON)
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#=========== TemporalFilter =================
TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
TemporalFilterFutureRefs : 0 # Number of future references for temporal prefilter
TemporalFilterStrengthFrame8 : 0.2 # Enable filter at every 8th frame with strength
#============ Rate Control ======================
RateControl : 0 # Rate control: enable rate control
TargetBitrate : 1000000 # Rate control: target bitrate, in bps
KeepHierarchicalBit : 2 # Rate control: 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation
LCULevelRateControl : 1 # Rate control: 1: LCU level RC; 0: picture level RC
RCLCUSeparateModel : 1 # Rate control: use LCU level separate R-lambda model
InitialQP : 0 # Rate control: initial QP
RCForceIntraQP : 0 # Rate control: force intra QP to be equal to initial QP
#============ VTM settings ======================
SEIDecodedPictureHash : 0
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
#============ NEXT ====================
# General
CTUSize : 128
LCTUFast : 1
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 4
MaxMTTHierarchyDepthISliceC : 4
MTS : 3
MTSIntraMaxCand : 3
MTSInterMaxCand : 4
SBT : 1
ISP : 1
Affine : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 1
ALF : 1
CIIP : 1
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 0
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
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
LMCSOffset : 1 # chroma residual scaling offset
MRL : 1
MIP : 0
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
PROF : 1
ChromaTS : 1
# Fast tools
PBIntraFast : 1
ISPFast : 0
FastMrg : 1
AMaxBT : 1
FastMIP : 0
FastLocalDualTreeMode : 2
# Encoder optimization tools
AffineAmvrEncOpt : 0
MmvdDisNum : 6
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
EncDbOpt : 1
SplitPredictAdaptMode : 1
DisableFastTTfromBT : 1
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
#======== File I/O =====================
BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
#======== Coding Structure =============
IntraPeriod : -1 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 8 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -1
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1: B 1 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 9 17 25 4 4 1 3 5 33
Frame2: B 2 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 2 10 18 4 4 1 2 4 26
Frame3: B 3 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 3 11 19 4 4 1 3 5 27
Frame4: B 4 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 4 12 20 4 4 1 2 4 28
Frame5: B 5 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 5 13 21 4 4 1 3 5 29
Frame6: B 6 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 6 14 22 4 4 1 2 6 30
Frame7: B 7 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 7 15 23 4 4 1 3 7 31
Frame8: B 8 1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 4 4 1 8 16 24 4 4 1 2 4 32
#=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search
SearchRange : 64 # (0: Search range is a Full frame)
BipredSearchRange : 4 # Search range for bi-prediction refinement
HadamardME : 1 # Use of hadamard measure for fractional ME
FEN : 0 # Fast encoder decision
FDM : 0 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
DeblockingFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (DeblockingFilterOffsetInPPS and DeblockingFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
#=========== Coding Tools =================
SAO : 1 # Sample adaptive offset (0: OFF, 1: ON)
TransformSkip : 1 # Transform skipping (0: OFF, 1: ON)
TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1: ON)
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#=========== TemporalFilter =================
TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
TemporalFilterFutureRefs : 0 # Number of future references for temporal prefilter
TemporalFilterStrengthFrame8 : 0.2 # Enable filter at every 8th frame with strength
#============ Rate Control ======================
RateControl : 0 # Rate control: enable rate control
TargetBitrate : 1000000 # Rate control: target bitrate, in bps
KeepHierarchicalBit : 2 # Rate control: 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation
LCULevelRateControl : 1 # Rate control: 1: LCU level RC; 0: picture level RC
RCLCUSeparateModel : 1 # Rate control: use LCU level separate R-lambda model
InitialQP : 0 # Rate control: initial QP
RCForceIntraQP : 0 # Rate control: force intra QP to be equal to initial QP
#============ VTM settings ======================
SEIDecodedPictureHash : 0
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
#============ NEXT ====================
# General
CTUSize : 128
LCTUFast : 1
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 4
MaxMTTHierarchyDepthISliceC : 4
MTS : 3
MTSIntraMaxCand : 3
MTSInterMaxCand : 4
SBT : 1
ISP : 1
MMVD : 1
Affine : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 1
ALF : 1
BCW : 1
BcwFast : 1
CIIP : 1
Geo : 1
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 0
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
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
LMCSOffset : 1 # chroma residual scaling offset
MRL : 1
MIP : 0
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
PROF : 1
ChromaTS : 1
# Fast tools
PBIntraFast : 1
ISPFast : 0
FastMrg : 1
AMaxBT : 1
FastMIP : 0
FastLocalDualTreeMode : 2
# Encoder optimization tools
AffineAmvrEncOpt : 0
MmvdDisNum : 6
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
EncDbOpt : 1
SplitPredictAdaptMode : 1
DisableFastTTfromBT : 1
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
#======== File I/O =====================
BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
#======== Coding Structure =============
IntraPeriod : 32 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 32 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -4
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1 : B 32 -1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 2 5 32 64 48 40 36 1 2 32 48
Frame2 : B 16 0 -4.9309 0.2265 0 0 1.0 0 0 0 0 0 0 1 3 5 16 32 48 24 20 1 1 -16
Frame3 : B 8 1 -4.5000 0.1900 0 0 1.0 0 0 0 0 0 0 2 4 5 8 24 16 40 12 2 2 -8 -24
Frame4 : B 4 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 3 3 4 20 8 3 3 -4 -12 -28
Frame5 : B 2 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 18 6 4 4 -2 -6 -14 -30
Frame6 : B 1 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 1 1 1 2 5 -1 -3 -7 -15 -31
Frame7 : B 3 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 3 2 4 -1 -5 -13 -29
Frame8 : B 6 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 6 4 3 3 -2 -10 -26
Frame9 : B 5 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 5 2 4 -1 -3 -11 -27
Frame10 : B 7 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 7 2 3 -1 -9 -25
Frame11 : B 12 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 3 4 4 12 8 6 2 2 -4 -20
Frame12 : B 10 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 6 10 4 3 3 -2 -6 -22
Frame13 : B 9 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 9 2 4 -1 -3 -7 -23
Frame14 : B 11 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 11 2 3 -1 -5 -21
Frame15 : B 14 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 4 6 14 2 2 -2 -18
Frame16 : B 13 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 13 2 3 -1 -3 -19
Frame17 : B 15 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 7 15 2 2 -1 -17
Frame18 : B 24 1 -4.5000 0.1900 0 0 1.0 0 0 0 0 0 0 2 3 3 8 24 16 1 1 -8
Frame19 : B 20 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 3 3 4 12 20 2 2 -4 -12
Frame20 : B 18 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 10 18 3 3 -2 -6 -14
Frame21 : B 17 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 9 17 2 4 -1 -3 -7 -15
Frame22 : B 19 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 19 2 3 -1 -5 -13
Frame23 : B 22 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 6 22 3 3 -2 -10 4
Frame24 : B 21 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 21 2 3 -1 -3 -11
Frame25 : B 23 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 7 23 2 2 -1 -9
Frame26 : B 28 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 4 4 4 8 12 28 1 1 -4
Frame27 : B 26 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 6 10 26 2 2 -2 -6
Frame28 : B 25 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 5 9 25 2 3 -1 -3 -7
Frame29 : B 27 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 11 27 2 2 -1 -5
Frame30 : B 30 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 6 14 30 1 1 -2
Frame31 : B 29 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 5 13 29 2 2 -1 -3
Frame32 : B 31 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 5 1 3 7 15 31 1 1 -1
#=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search
SearchRange : 384 # (0: Search range is a Full frame)
ASR : 1 # Adaptive motion search range
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 : 0 # Fast encoder decision
FDM : 0 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
DeblockingFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (LoopFilterOffsetInPPS and LoopFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
#=========== Coding Tools =================
SAO : 1 # Sample adaptive offset (0: OFF, 1: ON)
TransformSkip : 1 # Transform skipping (0: OFF, 1: ON)
TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1: ON)
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#============ Rate Control ======================
RateControl : 0 # Rate control: enable rate control
TargetBitrate : 1000000 # Rate control: target bitrate, in bps
KeepHierarchicalBit : 2 # Rate control: 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation
LCULevelRateControl : 1 # Rate control: 1: LCU level RC; 0: picture level RC
RCLCUSeparateModel : 1 # Rate control: use LCU level separate R-lambda model
InitialQP : 0 # Rate control: initial QP
RCForceIntraQP : 0 # Rate control: force intra QP to be equal to initial QP
#============ VTM settings ======================
SEIDecodedPictureHash : 0
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
#============ NEXT ====================
# General
CTUSize : 128
LCTUFast : 1
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 4
MaxMTTHierarchyDepthISliceC : 4
MTS : 3
MTSIntraMaxCand : 4
MTSInterMaxCand : 4
SBT : 1
LFNST : 1
ISP : 1
MMVD : 1
Affine : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 1
ALF : 1
BCW : 1
BcwFast : 1
BIO : 1
CIIP : 1
Geo : 1
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 1
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
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
LMCSOffset : 6 # chroma residual scaling offset
MRL : 1
MIP : 1
DMVR : 1
SMVD : 1
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
PROF : 1
# Fast tools
PBIntraFast : 1
ISPFast : 0
FastMrg : 1
AMaxBT : 1
FastMIP : 0
FastLFNST : 0
FastLocalDualTreeMode : 1
ChromaTS : 1
# Encoder optimization tools
AffineAmvrEncOpt : 1
MmvdDisNum : 6
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
TemporalFilterFutureRefs : 4 # Number of future references for temporal prefilter
TemporalFilterStrengthFrame4 : 0.3 # Enable filter at every 8th frame with given strength
TemporalFilterStrengthFrame8 : 0.95 # Enable filter at every 8th frame with given strength
TemporalFilterStrengthFrame16 : 1.5 # Enable filter at every 16th frame with given strength, longer intervals has higher priority
EncDbOpt : 1
SplitPredictAdaptMode : 1
DisableFastTTfromBT : 1
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
......@@ -3,17 +3,11 @@ BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : next
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
MaxPartitionDepth : 4 # Maximum coding unit depth
# obsoleted by TULog2MaxSize
#QuadtreeTULog2MinSize : 2 # Log2 of minimum transform size for
# # quadtree-based TU coding (2...6)
QuadtreeTUMaxDepthInter : 3
QuadtreeTUMaxDepthIntra : 3
#======== Coding Structure =============
IntraPeriod : 1 # Period of I-Frame ( -1 = only first)
......@@ -31,17 +25,21 @@ FDM : 1 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPDepth : 0 # Max depth of a minimum CuDQP for sub-LCU-level delta QP
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6
LoopFilterTcOffset_div2 : 0 # base_param: -6 ~ 6
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (LoopFilterOffsetInPPS and LoopFilterDisable must be 0)
DeblockingFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : -5 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : -5 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : -5 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (DeblockingFilterOffsetInPPS and DeblockingFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
......@@ -53,78 +51,69 @@ TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#============ Slices ================
SliceMode : 0 # 0: Disable all slice options.
# 1: Enforce maximum number of LCU in an slice,
# 2: Enforce maximum number of bytes in an 'slice'
# 3: Enforce maximum number of tiles in a slice
SliceArgument : 1500 # Argument for 'SliceMode'.
# If SliceMode==1 it represents max. SliceGranularity-sized blocks per slice.
# If SliceMode==2 it represents max. bytes per slice.
# If SliceMode==3 it represents max. tiles per slice.
LFCrossSliceBoundaryFlag : 1 # In-loop filtering, including ALF and DB, is across or not across slice boundary.
# 0:not across, 1: across
#============ PCM ================
PCMEnabledFlag : 0 # 0: No PCM mode
PCMLog2MaxSize : 5 # Log2 of maximum PCM block size.
PCMLog2MinSize : 3 # Log2 of minimum PCM block size.
PCMInputBitDepthFlag : 1 # 0: PCM bit-depth is internal bit-depth. 1: PCM bit-depth is input bit-depth.
PCMFilterDisableFlag : 0 # 0: Enable loop filtering on I_PCM samples. 1: Disable loop filtering on I_PCM samples.
#============ Lossless ================
TransquantBypassEnable : 0 # Value of PPS flag.
CUTransquantBypassFlagForce: 0 # Force transquant bypass mode, when transquant_bypass_enable_flag is enabled
#============ VTM settings ======================
LoopFilterTcOffset_div2 : 0
SEIDecodedPictureHash : 0
CbQpOffset : 1
CrQpOffset : 1
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 27 32 44
QpOutValCb : 17 29 34 41
TemporalSubsampleRatio : 8
ReWriteParamSets : 1
#============ NEXT ====================
# General
LargeCTU : 1 # Large CTU
CTUSize : 128
LCTUFast : 1
QuadtreeTULog2MaxSize : 6
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISlice : 4
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxBTDepth : 3
MaxBTDepthISliceL : 3
MaxBTDepthISliceC : 3
MTT : 1
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 3
MaxMTTHierarchyDepthISliceC : 3
MTS : 1
MTSIntraMaxCand : 3
MTSIntraMaxCand : 4
MTSInterMaxCand : 4
SBT : 1
LFNST : 1
ISP : 1
Affine : 1
SubPuMvp : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 2
IMV : 1
ALF : 1
IBC : 0 # turned off in CTC
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 0
LumaReshapeEnable : 1 # luma reshaping. 0: disable 1:enable
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
LMCSSignalType : 0 # Input signal type: 0:SDR, 1:HDR-PQ, 2:HDR-HLG
LMCSUpdateCtrl : 1 # LMCS model update control: 0:RA, 1:AI, 2:LDB/LDP
LMCSOffset : 2 # chroma residual scaling offset
MRL : 1
MIP : 1
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
ChromaTS : 1
# Fast tools
PBIntraFast : 1
ISPFast : 1
FastMrg : 1
AMaxBT : 1
FastMIP : 1
FastLFNST : 1
# Encoder optimization tools
AffineAmvrEncOpt : 0
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
......
......@@ -3,30 +3,28 @@ BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : next
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
MaxPartitionDepth : 4 # Maximum coding unit depth
# obsoleted by TULog2MaxSize
#QuadtreeTULog2MinSize : 2 # Log2 of minimum transform size for
# # quadtree-based TU coding (2...6)
QuadtreeTUMaxDepthInter : 3
QuadtreeTUMaxDepthIntra : 3
#======== Coding Structure =============
IntraPeriod : -1 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 4 # GOP Size (number of B slice = GOPSize-1)
GOPSize : 8 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -1
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs
Frame1: P 1 5 -6.5 0.2590 0 0 1.0 0 0 0 4 4 -1 -5 -9 -13 0
Frame2: P 2 4 -6.5 0.2590 0 0 1.0 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 1
Frame3: P 3 5 -6.5 0.2590 0 0 1.0 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 1
Frame4: P 4 1 0.0 0.0 0 0 1.0 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 1
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1: P 1 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 9 17 25 0 0
Frame2: P 2 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 2 10 18 0 0
Frame3: P 3 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 3 11 19 0 0
Frame4: P 4 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 4 12 20 0 0
Frame5: P 5 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 5 13 21 0 0
Frame6: P 6 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 6 14 22 0 0
Frame7: P 7 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 7 15 23 0 0
Frame8: P 8 1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 4 4 1 8 16 24 0 0
#=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search
......@@ -39,17 +37,21 @@ FDM : 1 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPDepth : 0 # Max depth of a minimum CuDQP for sub-LCU-level delta QP
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6
LoopFilterTcOffset_div2 : 0 # base_param: -6 ~ 6
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (LoopFilterOffsetInPPS and LoopFilterDisable must be 0)
DeblockingFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (DeblockingFilterOffsetInPPS and DeblockingFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
......@@ -61,29 +63,11 @@ TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#============ Slices ================
SliceMode : 0 # 0: Disable all slice options.
# 1: Enforce maximum number of LCU in an slice,
# 2: Enforce maximum number of bytes in an 'slice'
# 3: Enforce maximum number of tiles in a slice
SliceArgument : 1500 # Argument for 'SliceMode'.
# If SliceMode==1 it represents max. SliceGranularity-sized blocks per slice.
# If SliceMode==2 it represents max. bytes per slice.
# If SliceMode==3 it represents max. tiles per slice.
LFCrossSliceBoundaryFlag : 1 # In-loop filtering, including ALF and DB, is across or not across slice boundary.
# 0:not across, 1: across
#============ PCM ================
PCMEnabledFlag : 0 # 0: No PCM mode
PCMLog2MaxSize : 5 # Log2 of maximum PCM block size.
PCMLog2MinSize : 3 # Log2 of minimum PCM block size.
PCMInputBitDepthFlag : 1 # 0: PCM bit-depth is internal bit-depth. 1: PCM bit-depth is input bit-depth.
PCMFilterDisableFlag : 0 # 0: Enable loop filtering on I_PCM samples. 1: Disable loop filtering on I_PCM samples.
#============ Lossless ================
TransquantBypassEnable : 0 # Value of PPS flag.
CUTransquantBypassFlagForce: 0 # Force transquant bypass mode, when transquant_bypass_enable_flag is enabled
#=========== TemporalFilter =================
TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
TemporalFilterFutureRefs : 0 # Number of future references for temporal prefilter
TemporalFilterStrengthFrame8 : 0.2 # Enable filter at every 8th frame with strength
#============ Rate Control ======================
RateControl : 0 # Rate control: enable rate control
......@@ -95,54 +79,74 @@ InitialQP : 0 # Rate control: initial Q
RCForceIntraQP : 0 # Rate control: force intra QP to be equal to initial QP
#============ VTM settings ======================
LoopFilterTcOffset_div2 : 0
SEIDecodedPictureHash : 0
CbQpOffset : 1
CrQpOffset : 1
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
#============ NEXT ====================
# General
LargeCTU : 1 # Large CTU
CTUSize : 128
LCTUFast : 1
QuadtreeTULog2MaxSize : 6
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISlice : 4
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxBTDepth : 3
MaxBTDepthISliceL : 3
MaxBTDepthISliceC : 3
MTT : 1
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 3
MaxMTTHierarchyDepthISliceC : 3
MTS : 1
MTSIntraMaxCand : 3
MTSInterMaxCand : 4
SBT : 1
ISP : 1
Affine : 1
SubPuMvp : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 2
IMV : 1
ALF : 1
MHIntra : 1
CIIP : 1
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 0
LumaReshapeEnable : 1 # luma reshaping. 0: disable 1:enable
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
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
LMCSOffset : 1 # chroma residual scaling offset
MRL : 1
MIP : 0
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
PROF : 1
ChromaTS : 1
# Fast tools
PBIntraFast : 1
ISPFast : 0
FastMrg : 1
AMaxBT : 1
FastMIP : 0
FastLocalDualTreeMode : 2
MaxMergeRdCandNumTotal : 5
# Encoder optimization tools
AffineAmvrEncOpt : 0
MmvdDisNum : 6
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO
AlfLambdaOpt : 0 # JVET-AF0122: apply ALF APS optimization
MTTSkipping : 1 # MTTSkipping: 0: disable, 1:enable
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
......@@ -3,30 +3,28 @@ BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : next
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
MaxPartitionDepth : 4 # Maximum coding unit depth
# obsoleted by TULog2MaxSize
#QuadtreeTULog2MinSize : 2 # Log2 of minimum transform size for
# # quadtree-based TU coding (2...6)
QuadtreeTUMaxDepthInter : 3
QuadtreeTUMaxDepthIntra : 3
#======== Coding Structure =============
IntraPeriod : -1 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 4 # GOP Size (number of B slice = GOPSize-1)
GOPSize : 8 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -1
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs
Frame1: B 1 5 -6.5 0.2590 0 0 1.0 0 0 0 4 4 -1 -5 -9 -13 0
Frame2: B 2 4 -6.5 0.2590 0 0 1.0 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 1
Frame3: B 3 5 -6.5 0.2590 0 0 1.0 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 1
Frame4: B 4 1 0.0 0.0 0 0 1.0 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 1
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1: B 1 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 9 17 25 4 4 1 3 5 33
Frame2: B 2 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 2 10 18 4 4 1 2 4 26
Frame3: B 3 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 3 11 19 4 4 1 3 5 27
Frame4: B 4 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 4 12 20 4 4 1 2 4 28
Frame5: B 5 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 5 13 21 4 4 1 3 5 29
Frame6: B 6 4 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 6 14 22 4 4 1 2 6 30
Frame7: B 7 6 -6.5 0.2450 0 0 1.0 0 0 0 0 0 0 0 4 4 1 7 15 23 4 4 1 3 7 31
Frame8: B 8 1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 4 4 1 8 16 24 4 4 1 2 4 32
#=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search
......@@ -39,17 +37,21 @@ FDM : 1 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPDepth : 0 # Max depth of a minimum CuDQP for sub-LCU-level delta QP
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6
LoopFilterTcOffset_div2 : 0 # base_param: -6 ~ 6
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (LoopFilterOffsetInPPS and LoopFilterDisable must be 0)
DeblockingFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (DeblockingFilterOffsetInPPS and DeblockingFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
......@@ -61,29 +63,11 @@ TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#============ Slices ================
SliceMode : 0 # 0: Disable all slice options.
# 1: Enforce maximum number of LCU in an slice,
# 2: Enforce maximum number of bytes in an 'slice'
# 3: Enforce maximum number of tiles in a slice
SliceArgument : 1500 # Argument for 'SliceMode'.
# If SliceMode==1 it represents max. SliceGranularity-sized blocks per slice.
# If SliceMode==2 it represents max. bytes per slice.
# If SliceMode==3 it represents max. tiles per slice.
LFCrossSliceBoundaryFlag : 1 # In-loop filtering, including ALF and DB, is across or not across slice boundary.
# 0:not across, 1: across
#============ PCM ================
PCMEnabledFlag : 0 # 0: No PCM mode
PCMLog2MaxSize : 5 # Log2 of maximum PCM block size.
PCMLog2MinSize : 3 # Log2 of minimum PCM block size.
PCMInputBitDepthFlag : 1 # 0: PCM bit-depth is internal bit-depth. 1: PCM bit-depth is input bit-depth.
PCMFilterDisableFlag : 0 # 0: Enable loop filtering on I_PCM samples. 1: Disable loop filtering on I_PCM samples.
#============ Lossless ================
TransquantBypassEnable : 0 # Value of PPS flag.
CUTransquantBypassFlagForce: 0 # Force transquant bypass mode, when transquant_bypass_enable_flag is enabled
#=========== TemporalFilter =================
TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
TemporalFilterFutureRefs : 0 # Number of future references for temporal prefilter
TemporalFilterStrengthFrame8 : 0.2 # Enable filter at every 8th frame with strength
#============ Rate Control ======================
RateControl : 0 # Rate control: enable rate control
......@@ -95,57 +79,78 @@ InitialQP : 0 # Rate control: initial Q
RCForceIntraQP : 0 # Rate control: force intra QP to be equal to initial QP
#============ VTM settings ======================
LoopFilterTcOffset_div2 : 0
SEIDecodedPictureHash : 0
CbQpOffset : 1
CrQpOffset : 1
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
#============ NEXT ====================
# General
LargeCTU : 1 # Large CTU
CTUSize : 128
LCTUFast : 1
QuadtreeTULog2MaxSize : 6
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISlice : 4
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxBTDepth : 3
MaxBTDepthISliceL : 3
MaxBTDepthISliceC : 3
MTT : 1
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 3
MaxMTTHierarchyDepthISliceC : 3
MTS : 1
MTSIntraMaxCand : 3
MTSInterMaxCand : 4
SBT : 1
ISP : 1
MMVD : 1
Affine : 1
SubPuMvp : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 2
IMV : 1
ALF : 1
GBi : 1
GBiFast : 1
MHIntra : 1
Triangle : 1
BCW : 1
BcwFast : 1
CIIP : 1
Geo : 1
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 0
LumaReshapeEnable : 1 # luma reshaping. 0: disable 1:enable
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
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
LMCSOffset : 1 # chroma residual scaling offset
MRL : 1
MIP : 0
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
PROF : 1
ChromaTS : 1
# Fast tools
PBIntraFast : 1
ISPFast : 0
FastMrg : 1
AMaxBT : 1
FastMIP : 0
FastLocalDualTreeMode : 2
MaxMergeRdCandNumTotal : 11
# Encoder optimization tools
AffineAmvrEncOpt : 0
MmvdDisNum : 6
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO
AlfLambdaOpt : 0 # JVET-AF0122: apply ALF APS optimization
MTTSkipping : 1 # MTTSkipping: 0: disable, 1:enable
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
......@@ -3,42 +3,52 @@ BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : next
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
MaxPartitionDepth : 4 # Maximum coding unit depth
# obsoleted by TULog2MaxSize
#QuadtreeTULog2MinSize : 2 # Log2 of minimum transform size for
# # quadtree-based TU coding (2...6)
QuadtreeTUMaxDepthInter : 3
QuadtreeTUMaxDepthIntra : 3
#======== Coding Structure =============
IntraPeriod : 32 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 16 # GOP Size (number of B slice = GOPSize-1)
GOPSize : 32 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -3
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs
Frame1: B 16 1 0.0 0.0 0 0 1.0 0 0 0 2 3 -16 -24 -32 0
Frame2: B 8 1 -4.8848 0.2061 0 0 1.0 0 0 1 2 3 -8 -16 8 1 8 4 1 1 0 1
Frame3: B 4 4 -5.7476 0.2286 0 0 1.0 0 0 2 2 4 -4 -12 4 12 1 4 4 1 1 1 1
Frame4: B 2 5 -5.90 0.2333 0 0 1.0 0 0 3 2 5 -2 -10 2 6 14 1 2 5 1 1 1 1 1
Frame5: B 1 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 1 3 7 15 1 1 6 1 0 1 1 1 1
Frame6: B 3 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 -3 1 5 13 1 -2 6 1 1 1 1 1 0
Frame7: B 6 5 -5.90 0.2333 0 0 1.0 0 0 3 2 4 -2 -6 2 10 1 -3 6 0 1 1 1 1 0
Frame8: B 5 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 -5 1 3 11 1 1 5 1 1 1 1 1
Frame9: B 7 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 -3 -7 1 9 1 -2 6 1 1 1 1 1 0
Frame10: B 12 4 -5.7476 0.2286 0 0 1.0 0 0 2 2 3 -4 -12 4 1 -5 6 0 0 1 1 1 0
Frame11: B 10 5 -5.90 0.2333 0 0 1.0 0 0 3 2 4 -2 -10 2 6 1 2 4 1 1 1 1
Frame12: B 9 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 -9 1 3 7 1 1 5 1 1 1 1 1
Frame13: B 11 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 -3 -11 1 5 1 -2 6 1 1 1 1 1 0
Frame14: B 14 5 -5.90 0.2333 0 0 1.0 0 0 3 2 4 -2 -6 -14 2 1 -3 6 0 1 1 1 1 0
Frame15: B 13 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 -5 -13 1 3 1 1 5 1 1 1 1 1
Frame16: B 15 6 -7.1444 0.3 0 0 1.0 0 0 4 2 5 -1 -3 -7 -15 1 1 -2 6 1 1 1 1 1 0
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1 : B 32 -1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 2 5 32 64 48 40 36 1 2 32 48
Frame2 : B 16 0 -4.9309 0.2265 0 0 1.0 0 0 0 0 0 0 1 3 5 16 32 48 24 20 1 1 -16
Frame3 : B 8 1 -4.5000 0.1900 0 0 1.0 0 0 0 0 0 0 2 4 5 8 24 16 40 12 2 2 -8 -24
Frame4 : B 4 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 3 3 4 8 20 3 3 -4 -12 -28
Frame5 : B 2 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 6 18 4 4 -2 -6 -14 -30
Frame6 : B 1 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 1 1 1 2 5 -1 -3 -7 -15 -31
Frame7 : B 3 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 3 2 4 -1 -5 -13 -29
Frame8 : B 6 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 4 6 3 3 -2 -10 -26
Frame9 : B 5 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 2 1 5 2 4 -1 -3 -11 -27
Frame10 : B 7 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 7 2 3 -1 -9 -25
Frame11 : B 12 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 3 4 4 8 12 6 2 2 -4 -20
Frame12 : B 10 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 4 6 10 3 3 -2 -6 -22
Frame13 : B 9 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 9 2 4 -1 -3 -7 -23
Frame14 : B 11 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 11 2 3 -1 -5 -21
Frame15 : B 14 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 4 6 14 2 2 -2 -18
Frame16 : B 13 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 13 2 3 -1 -3 -19
Frame17 : B 15 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 7 15 2 2 -1 -17
Frame18 : B 24 1 -4.5000 0.1900 0 0 1.0 0 0 0 0 0 0 2 3 3 8 16 24 1 1 -8
Frame19 : B 20 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 3 3 4 12 20 2 2 -4 -12
Frame20 : B 18 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 10 18 3 3 -2 -6 -14
Frame21 : B 17 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 9 17 2 4 -1 -3 -7 -15
Frame22 : B 19 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 3 19 2 3 -1 -5 -13
Frame23 : B 22 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 3 3 2 6 22 3 3 -2 -10 4
Frame24 : B 21 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 3 1 5 21 2 3 -1 -3 -11
Frame25 : B 23 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 7 23 2 2 -1 -9
Frame26 : B 28 3 -5.4095 0.2571 0 0 1.0 0 0 0 0 0 0 3 4 4 4 8 12 28 1 1 -4
Frame27 : B 26 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 6 10 26 2 2 -2 -6
Frame28 : B 25 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 5 9 25 2 3 -1 -3 -7
Frame29 : B 27 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 3 11 27 2 2 -1 -5
Frame30 : B 30 5 -4.4895 0.1947 0 0 1.0 0 0 0 0 0 0 4 4 4 2 6 14 30 1 1 -2
Frame31 : B 29 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 4 1 5 13 29 2 2 -1 -3
Frame32 : B 31 6 -5.4429 0.2429 0 0 1.0 0 0 0 0 0 0 5 2 5 1 3 7 15 31 1 1 -1
#=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search
......@@ -53,17 +63,21 @@ FDM : 1 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPDepth : 0 # Max depth of a minimum CuDQP for sub-LCU-level delta QP
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6
LoopFilterTcOffset_div2 : 0 # base_param: -6 ~ 6
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (LoopFilterOffsetInPPS and LoopFilterDisable must be 0)
DeblockingFilterOffsetInPPS : 0 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (DeblockingFilterOffsetInPPS and DeblockingFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
......@@ -75,30 +89,6 @@ TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#============ Slices ================
SliceMode : 0 # 0: Disable all slice options.
# 1: Enforce maximum number of LCU in an slice,
# 2: Enforce maximum number of bytes in an 'slice'
# 3: Enforce maximum number of tiles in a slice
SliceArgument : 1500 # Argument for 'SliceMode'.
# If SliceMode==1 it represents max. SliceGranularity-sized blocks per slice.
# If SliceMode==2 it represents max. bytes per slice.
# If SliceMode==3 it represents max. tiles per slice.
LFCrossSliceBoundaryFlag : 1 # In-loop filtering, including ALF and DB, is across or not across slice boundary.
# 0:not across, 1: across
#============ PCM ================
PCMEnabledFlag : 0 # 0: No PCM mode
PCMLog2MaxSize : 5 # Log2 of maximum PCM block size.
PCMLog2MinSize : 3 # Log2 of minimum PCM block size.
PCMInputBitDepthFlag : 1 # 0: PCM bit-depth is internal bit-depth. 1: PCM bit-depth is input bit-depth.
PCMFilterDisableFlag : 0 # 0: Enable loop filtering on I_PCM samples. 1: Disable loop filtering on I_PCM samples.
#============ Lossless ================
TransquantBypassEnable : 0 # Value of PPS flag.
CUTransquantBypassFlagForce: 0 # Force transquant bypass mode, when transquant_bypass_enable_flag is enabled
#============ Rate Control ======================
RateControl : 0 # Rate control: enable rate control
TargetBitrate : 1000000 # Rate control: target bitrate, in bps
......@@ -109,59 +99,88 @@ InitialQP : 0 # Rate control: initial Q
RCForceIntraQP : 0 # Rate control: force intra QP to be equal to initial QP
#============ VTM settings ======================
LoopFilterTcOffset_div2 : 0
SEIDecodedPictureHash : 0
CbQpOffset : 1
CrQpOffset : 1
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
#============ NEXT ====================
# General
LargeCTU : 1 # Large CTU
CTUSize : 128
LCTUFast : 1
QuadtreeTULog2MaxSize : 6
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISlice : 4
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxBTDepth : 3
MaxBTDepthISliceL : 3
MaxBTDepthISliceC : 3
MTT : 1
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 3
MaxMTTHierarchyDepthISliceC : 3
MTS : 1
MTSIntraMaxCand : 3
MTSIntraMaxCand : 4
MTSInterMaxCand : 4
SBT : 1
LFNST : 1
ISP : 1
MMVD : 1
Affine : 1
SubPuMvp : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 2
IMV : 1
ALF : 1
GBi : 1
GBiFast : 1
BIO : 1
MHIntra : 1
Triangle : 1
BCW : 1
BcwFast : 1
BIO : 1
CIIP : 1
Geo : 1
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 1
LumaReshapeEnable : 1 # luma reshaping. 0: disable 1:enable
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
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
LMCSOffset : 6 # chroma residual scaling offset
MRL : 1
MIP : 1
DMVR : 1
SMVD : 1
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
PROF : 1
# Fast tools
PBIntraFast : 1
ISPFast : 0
FastMrg : 1
AMaxBT : 1
FastMIP : 0
FastLFNST : 0
FastLocalDualTreeMode : 1
ChromaTS : 1
MaxMergeRdCandNumTotal : 7
# Encoder optimization tools
AffineAmvrEncOpt : 1
MmvdDisNum : 6
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO
MTTSkipping : 1 # MTTSkipping: 0: disable, 1:enable
TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
TemporalFilterFutureRefs : 4 # Number of future references for temporal prefilter
TemporalFilterStrengthFrame8 : 0.95 # Enable filter at every 8th frame with given strength
TemporalFilterStrengthFrame16 : 1.5 # Enable filter at every 16th frame with given strength, longer intervals has higher priority
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
#======== File I/O =====================
BitstreamFile : str.bin
ReconFile : rec.yuv
#======== Profile ================
Profile : auto
#======== Unit definition ================
MaxCUWidth : 64 # Maximum coding unit width in pixel
MaxCUHeight : 64 # Maximum coding unit height in pixel
#======== Coding Structure =============
IntraPeriod : 32 # Period of I-Frame ( -1 = only first)
DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI
GOPSize : 16 # GOP Size (number of B slice = GOPSize-1)
IntraQPOffset : -3
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled
# Type POC QPoffset QPOffsetModelOff QPOffsetModelScale CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 CbTcOffsetDiv2 CbBetaOffsetDiv2 CrTcOffsetDiv2 CrBetaOffsetDiv2 temporal_id #ref_pics_active_L0 #ref_pics_L0 reference_pictures_L0 #ref_pics_active_L1 #ref_pics_L1 reference_pictures_L1
Frame1: B 16 1 0.0 0.0 0 0 1.0 0 0 0 0 0 0 0 2 3 16 32 24 2 2 16 32
Frame2: B 8 1 -4.8848 0.2061 0 0 1.0 0 0 0 0 0 0 1 2 2 8 16 2 2 -8 8
Frame3: B 4 4 -5.7476 0.2286 0 0 1.0 0 0 0 0 0 0 2 2 2 4 12 2 2 -4 -12
Frame4: B 2 5 -5.90 0.2333 0 0 1.0 0 0 0 0 0 0 3 2 2 2 10 2 3 -2 -6 -14
Frame5: B 1 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 2 1 -1 2 4 -1 -3 -7 -15
Frame6: B 3 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 2 1 3 2 3 -1 -5 -13
Frame7: B 6 5 -5.90 0.2333 0 0 1.0 0 0 0 0 0 0 3 2 2 2 6 2 2 -2 -10
Frame8: B 5 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 2 1 5 2 3 -1 -3 -11
Frame9: B 7 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 3 1 3 7 2 2 -1 -9
Frame10: B 12 4 -5.7476 0.2286 0 0 1.0 0 0 0 0 0 0 2 2 2 4 12 2 2 -4 4
Frame11: B 10 5 -5.90 0.2333 0 0 1.0 0 0 0 0 0 0 3 2 2 2 10 2 2 -2 -6
Frame12: B 9 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 2 1 9 2 3 -1 -3 -7
Frame13: B 11 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 3 1 3 11 2 2 -1 -5
Frame14: B 14 5 -5.90 0.2333 0 0 1.0 0 0 0 0 0 0 3 2 3 2 6 14 2 2 -2 2
Frame15: B 13 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 3 1 5 13 2 2 -1 -3
Frame16: B 15 6 -7.1444 0.3 0 0 1.0 0 0 0 0 0 0 4 2 4 1 3 7 15 2 2 -1 1
#=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search
SearchRange : 384 # (0: Search range is a Full frame)
ASR : 1 # Adaptive motion search range
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
FDM : 1 # Fast Decision for Merge RD cost
#======== Quantization =============
QP : 32 # Quantization parameter(0-51)
MaxDeltaQP : 0 # CU-based multi-QP optimization
MaxCuDQPSubdiv : 0 # Maximum subdiv for CU luma Qp adjustment
DeltaQpRD : 0 # Slice-based multi-QP optimization
RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============
DeblockingFilterOffsetInPPS : 0 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param)
DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCbBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCbTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterCrBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterCrTcOffset_div2 : 0 # base_param: -12 ~ 12
DeblockingFilterMetric : 0 # blockiness metric (automatically configures deblocking parameters in bitstream). Applies slice-level loop filter offsets (DeblockingFilterOffsetInPPS and DeblockingFilterDisable must be 0)
#=========== Misc. ============
InternalBitDepth : 10 # codec operating bit-depth
#=========== Coding Tools =================
SAO : 1 # Sample adaptive offset (0: OFF, 1: ON)
TransformSkip : 1 # Transform skipping (0: OFF, 1: ON)
TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1: ON)
TransformSkipLog2MaxSize : 5
SAOLcuBoundary : 0 # SAOLcuBoundary using non-deblocked pixels (0: OFF, 1: ON)
#============ Rate Control ======================
RateControl : 0 # Rate control: enable rate control
TargetBitrate : 1000000 # Rate control: target bitrate, in bps
KeepHierarchicalBit : 2 # Rate control: 0: equal bit allocation; 1: fixed ratio bit allocation; 2: adaptive ratio bit allocation
LCULevelRateControl : 1 # Rate control: 1: LCU level RC; 0: picture level RC
RCLCUSeparateModel : 1 # Rate control: use LCU level separate R-lambda model
InitialQP : 0 # Rate control: initial QP
RCForceIntraQP : 0 # Rate control: force intra QP to be equal to initial QP
#============ VTM settings ======================
SEIDecodedPictureHash : 0
CbQpOffset : 0
CrQpOffset : 0
SameCQPTablesForAllChroma : 1
QpInValCb : 17 22 34 42
QpOutValCb : 17 23 35 39
ReWriteParamSets : 1
#============ NEXT ====================
# General
CTUSize : 128
LCTUFast : 1
DualITree : 1 # separate partitioning of luma and chroma channels for I-slices
MinQTLumaISlice : 8
MinQTChromaISliceInChromaSamples: 4 # minimum QT size in chroma samples for chroma separate tree
MinQTNonISlice : 8
MaxMTTHierarchyDepth : 3
MaxMTTHierarchyDepthISliceL : 3
MaxMTTHierarchyDepthISliceC : 3
MTS : 1
MTSIntraMaxCand : 4
MTSInterMaxCand : 4
SBT : 1
LFNST : 1
ISP : 1
MMVD : 1
Affine : 1
SbTMVP : 1
MaxNumMergeCand : 6
LMChroma : 1 # use CCLM only
DepQuant : 1
IMV : 1
ALF : 1
BCW : 1
BcwFast : 1
BIO : 1
CIIP : 1
Geo : 1
IBC : 0 # turned off in CTC
AllowDisFracMMVD : 1
AffineAmvr : 1
LMCSEnable : 1 # LMCS: 0: disable, 1:enable
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
LMCSOffset : 6 # chroma residual scaling offset
MRL : 1
MIP : 1
DMVR : 1
SMVD : 1
JointCbCr : 1 # joint coding of chroma residuals (if available): 0: disable, 1: enable
PROF : 1
# Fast tools
PBIntraFast : 1
ISPFast : 0
FastMrg : 1
AMaxBT : 1
FastMIP : 0
FastLFNST : 0
FastLocalDualTreeMode : 1
ChromaTS : 1
MaxMergeRdCandNumTotal : 7
# Encoder optimization tools
AffineAmvrEncOpt : 1
MmvdDisNum : 6
ALFAllowPredefinedFilters : 1
ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO
MTTSkipping : 1 # MTTSkipping: 0: disable, 1:enable
TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
TemporalFilterFutureRefs : 4 # Number of future references for temporal prefilter
TemporalFilterStrengthFrame8 : 0.95 # Enable filter at every 8th frame with given strength
TemporalFilterStrengthFrame16 : 1.5 # Enable filter at every 16th frame with given strength, longer intervals has higher priority
### DO NOT ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ###
example encoding command line
encoder -c encoder_randomaccess_vtm.cfg -c classH1.cfg -c H1_BalloonFestival.cfg -c seiCti_hdrPq_to_sdr1.cfg
-i BalloonFestival_1920x1080p_24_10b_pq_709_ct2020_420_rev1.yuv -ip 32 -fs 0 -f 33 -q 22
-b BalloonFestival_1920x1080p_24_10b_pq_709_ct2020_420_rev1.bin -o /dev/null --InternalBitDepth=10 --OutputBitDepth=10
example decoding command line
decoder -b BalloonFestival_1920x1080p_24_10b_pq_709_ct2020_420_rev1.bin -o dec.yuv --SEICTIFilename=dec_cti.yuv
\ No newline at end of file