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 (1183)
Showing
with 253 additions and 36 deletions
--- ---
# to be used on clang-format version 14 or later
Language: Cpp Language: Cpp
# BasedOnStyle: LLVM
AccessModifierOffset: -2 AccessModifierOffset: -2
AlignAfterOpenBracket: Align AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: true AlignConsecutiveAssignments: AcrossComments
AlignConsecutiveDeclarations: true AlignConsecutiveBitFields: AcrossComments
AlignEscapedNewlines: Right AlignConsecutiveDeclarations: AcrossComments
AlignOperands: true AlignConsecutiveMacros: AcrossComments
AlignEscapedNewlines: Left
AlignOperands: Align
AlignTrailingComments: true AlignTrailingComments: true
AllowAllArgumentsOnNextLine: false
AllowAllParametersOfDeclarationOnNextLine: false AllowAllParametersOfDeclarationOnNextLine: false
AllowShortBlocksOnASingleLine: true AllowShortBlocksOnASingleLine: Always
AllowShortCaseLabelsOnASingleLine: false AllowShortCaseLabelsOnASingleLine: false
AllowShortEnumsOnASingleLine: false
AllowShortFunctionsOnASingleLine: All AllowShortFunctionsOnASingleLine: All
AllowShortIfStatementsOnASingleLine: false AllowShortIfStatementsOnASingleLine: Never
AllowShortLambdasOnASingleLine: All
AllowShortLoopsOnASingleLine: false AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterDefinitionReturnType: None
AlwaysBreakAfterReturnType: None AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: false AlwaysBreakTemplateDeclarations: No
BinPackArguments: true BinPackArguments: true
BinPackParameters: true BinPackParameters: true
BraceWrapping: BraceWrapping:
AfterCaseLabel: true
AfterClass: true AfterClass: true
AfterControlStatement: true AfterControlStatement: Always
AfterEnum: true AfterEnum: true
AfterFunction: true AfterFunction: true
AfterNamespace: true AfterNamespace: true
AfterObjCDeclaration: false AfterObjCDeclaration: true
AfterStruct: true AfterStruct: true
AfterUnion: true AfterUnion: true
AfterExternBlock: true AfterExternBlock: true
BeforeCatch: true BeforeCatch: true
BeforeElse: true BeforeElse: true
BeforeLambdaBody: true
BeforeWhile: false
IndentBraces: false IndentBraces: false
SplitEmptyFunction: false SplitEmptyFunction: false
SplitEmptyRecord: false SplitEmptyRecord: false
SplitEmptyNamespace: false SplitEmptyNamespace: false
BreakBeforeBinaryOperators: NonAssignment BreakBeforeBinaryOperators: NonAssignment
BreakBeforeBraces: Allman BreakBeforeBraces: Custom
BreakBeforeInheritanceComma: false BreakBeforeInheritanceComma: false
BreakInheritanceList: BeforeColon
BreakBeforeTernaryOperators: true BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: true
BreakConstructorInitializers: BeforeComma BreakConstructorInitializers: BeforeComma
BreakAfterJavaFieldAnnotations: false BreakAfterJavaFieldAnnotations: false
BreakStringLiterals: true BreakStringLiterals: true
...@@ -55,21 +62,30 @@ DerivePointerAlignment: false ...@@ -55,21 +62,30 @@ DerivePointerAlignment: false
DisableFormat: false DisableFormat: false
ExperimentalAutoDetectBinPacking: false ExperimentalAutoDetectBinPacking: false
FixNamespaceComments: true FixNamespaceComments: true
ForEachMacros: ForEachMacros:
- foreach - foreach
- Q_FOREACH - Q_FOREACH
- BOOST_FOREACH - BOOST_FOREACH
IncludeBlocks: Preserve IncludeBlocks: Preserve
IncludeCategories: IncludeCategories:
- Regex: '^"(llvm|llvm-c|clang|clang-c)/' - Regex: '^"(llvm|llvm-c|clang|clang-c)/'
Priority: 2 Priority: 2
SortPriority: 0
CaseSensitive: false
- Regex: '^(<|"(gtest|gmock|isl|json)/)' - Regex: '^(<|"(gtest|gmock|isl|json)/)'
Priority: 3 Priority: 3
SortPriority: 0
CaseSensitive: false
- Regex: '.*' - Regex: '.*'
Priority: 1 Priority: 1
SortPriority: 0
CaseSensitive: false
IncludeIsMainRegex: '(Test)?$' IncludeIsMainRegex: '(Test)?$'
IndentCaseLabels: false IndentCaseLabels: false
IndentCaseBlocks: true
IndentGotoLabels: false
IndentPPDirectives: None IndentPPDirectives: None
IndentExternBlock: NoIndent
IndentWidth: 2 IndentWidth: 2
IndentWrappedFunctionNames: true IndentWrappedFunctionNames: true
JavaScriptQuotes: Leave JavaScriptQuotes: Leave
...@@ -78,7 +94,7 @@ KeepEmptyLinesAtTheStartOfBlocks: false ...@@ -78,7 +94,7 @@ KeepEmptyLinesAtTheStartOfBlocks: false
MacroBlockBegin: '' MacroBlockBegin: ''
MacroBlockEnd: '' MacroBlockEnd: ''
MaxEmptyLinesToKeep: 1 MaxEmptyLinesToKeep: 1
NamespaceIndentation: All NamespaceIndentation: None
ObjCBinPackProtocolList: Auto ObjCBinPackProtocolList: Auto
ObjCBlockIndentWidth: 2 ObjCBlockIndentWidth: 2
ObjCSpaceAfterProperty: false ObjCSpaceAfterProperty: false
...@@ -90,25 +106,30 @@ PenaltyBreakFirstLessLess: 120 ...@@ -90,25 +106,30 @@ PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000 PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000 PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60 PenaltyReturnTypeOnItsOwnLine: 60
PointerAlignment: Right PointerAlignment: Left
ReflowComments: true ReflowComments: true
SortIncludes: false SortIncludes: false
SortUsingDeclarations: true SortUsingDeclarations: true
SpaceAfterCStyleCast: true SpaceAfterCStyleCast: true
SpaceAfterLogicalNot: false
SpaceAfterTemplateKeyword: false SpaceAfterTemplateKeyword: false
SpaceBeforeAssignmentOperators: true SpaceBeforeAssignmentOperators: true
SpaceBeforeCaseColon: false
SpaceBeforeCtorInitializerColon: true SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements SpaceBeforeParens: ControlStatements
SpaceAroundPointerQualifiers: Default
SpaceBeforeRangeBasedForLoopColon: false SpaceBeforeRangeBasedForLoopColon: false
SpaceInEmptyBlock: false
SpaceInEmptyParentheses: false SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 3 SpacesBeforeTrailingComments: 3
SpacesInAngles: false SpacesInAngles: false
SpacesInConditionalStatement: false
SpacesInContainerLiterals: true SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false SpacesInCStyleCastParentheses: false
SpacesInParentheses: false SpacesInParentheses: false
SpacesInSquareBrackets: false SpacesInSquareBrackets: false
Standard: Cpp11 Standard: c++17
TabWidth: 8 TabWidth: 8
UseTab: Never UseTab: Never
... ...
......
...@@ -15,3 +15,5 @@ deploy ...@@ -15,3 +15,5 @@ deploy
*.pyc *.pyc
/out/ /out/
/doc/_minted-software-manual/ /doc/_minted-software-manual/
/.idea/
/cmake-build-*/
...@@ -20,6 +20,8 @@ stages: ...@@ -20,6 +20,8 @@ stages:
- make realclean - make realclean
- make all - make all
- make realclean - make realclean
- make release high-bitdepth=true
- make realclean
- make linuxbuild enable-tracing=true - make linuxbuild enable-tracing=true
build_macos: build_macos:
...@@ -27,11 +29,33 @@ build_macos: ...@@ -27,11 +29,33 @@ build_macos:
tags: tags:
- macos - macos
build_macos_arm:
extends: .build_template
tags:
- macos-arm
build_ubuntu2004: build_ubuntu2004:
extends: .build_template_linux extends: .build_template_linux
tags: tags:
- ubuntu2004 - 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: build_vc191x:
extends: .build_template extends: .build_template
tags: tags:
...@@ -42,3 +66,14 @@ build_vc192x: ...@@ -42,3 +66,14 @@ build_vc192x:
tags: tags:
- vc192x - vc192x
build_software-manual:
extends: .build_template
script:
- cd doc
- make clean
- make
artifacts:
paths:
- doc/software-manual.pdf
tags:
- pdflatex
...@@ -37,12 +37,14 @@ if (DEFINED ENABLE_HIGH_BITDEPTH) ...@@ -37,12 +37,14 @@ if (DEFINED ENABLE_HIGH_BITDEPTH)
set( ENABLE_HIGH_BITDEPTH OFF CACHE BOOL "ENABLE_HIGH_BITDEPTH will be set to this value" ) set( ENABLE_HIGH_BITDEPTH OFF CACHE BOOL "ENABLE_HIGH_BITDEPTH will be set to this value" )
endif() endif()
set( ENABLE_SEARCH_OPENSSL ON CACHE BOOL "ENABLE_SEARCH_OPENSSL will be set to this value" )
if( CMAKE_COMPILER_IS_GNUCC ) if( CMAKE_COMPILER_IS_GNUCC )
set( BUILD_STATIC OFF CACHE BOOL "Build static executables" ) set( BUILD_STATIC OFF CACHE BOOL "Build static executables" )
endif() endif()
# set c++14 # set c++17
set( CMAKE_CXX_STANDARD 14 ) set( CMAKE_CXX_STANDARD 17 )
set( CMAKE_CXX_STANDARD_REQUIRED ON ) set( CMAKE_CXX_STANDARD_REQUIRED ON )
# compile everything position independent (even static libraries) # compile everything position independent (even static libraries)
...@@ -68,7 +70,6 @@ if( XCODE ) ...@@ -68,7 +70,6 @@ if( XCODE )
bb_enable_warnings( clang warnings-as-errors bb_enable_warnings( clang warnings-as-errors
-Wno-deprecated-declarations -Wno-deprecated-declarations
-Wno-unknown-attributes -Wno-unknown-attributes
-Wno-deprecated-register
-Wno-pessimizing-move -Wno-pessimizing-move
-Wno-absolute-value -Wno-absolute-value
-Wno-unused-const-variable -Wno-unused-const-variable
...@@ -76,7 +77,6 @@ if( XCODE ) ...@@ -76,7 +77,6 @@ if( XCODE )
else() else()
bb_enable_warnings( clang warnings-as-errors bb_enable_warnings( clang warnings-as-errors
-Wno-unknown-attributes -Wno-unknown-attributes
-Wno-deprecated-register
-Wno-pessimizing-move -Wno-pessimizing-move
-Wno-absolute-value -Wno-absolute-value
-Wno-unused-const-variable ) -Wno-unused-const-variable )
...@@ -87,7 +87,7 @@ endif() ...@@ -87,7 +87,7 @@ endif()
bb_enable_warnings( msvc warnings-as-errors "/wd4996" ) bb_enable_warnings( msvc warnings-as-errors "/wd4996" )
# enable sse4.1 build for all source files for gcc and clang # 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" ) add_compile_options( "-msse4.1" )
endif() endif()
......
...@@ -3,7 +3,7 @@ License, included below. This software may be subject to other third party ...@@ -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 and contributor rights, including patent rights, and no such rights are
granted under this license. granted under this license.
Copyright (c) 2010-2022, ITU/ISO/IEC Copyright (c) 2010-2025, ITU/ISO/IEC
All rights reserved. All rights reserved.
Redistribution and use in source and binary forms, with or without Redistribution and use in source and binary forms, with or without
......
...@@ -22,6 +22,13 @@ The CMake tool is used to create platform-specific build files. ...@@ -22,6 +22,13 @@ 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. 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) Build instructions for plain CMake (suggested)
---------------------------------------------- ----------------------------------------------
......
# Alternative config add-ons
The configuration files in this directory can be used as add-ons to the CTC configuration files.
## Adaptive resolution for random access
`random_access_adaptive_resolution.cfg` may be used as an add-on to a random access CTC configuration file.
It enables adaptive resolution switching to achieve better visual quality.
# DMVR encoder control (Enable method for avoiding select MVs that are more likely to give subjective artifacts)
DMVREncMvSelect : 1
# GOP based RPR (Enables decision to encode pictures in GOP in full resolution or one of three downscaled resolutions
# (default is 1/2, 2/3 and 4/5 in both dimensions)
GOPBasedRPR : 1
UpscaledOutput : 2
# "High Performance" alternative config
The configuration files in this directory can be used as alternatives to the CTC configuration files.
They provide higher coding performance in comparison to the corresponding CTC configurations at the cost of longer encoder run times.
...@@ -17,14 +17,14 @@ GOPSize : 8 # GOP Size (number of B slice = GOPS ...@@ -17,14 +17,14 @@ GOPSize : 8 # GOP Size (number of B slice = GOPS
IntraQPOffset : -1 IntraQPOffset : -1
LambdaFromQpEnable : 1 # see JCTVC-X0038 for suitable parameters for IntraQPOffset, QPoffset, QPOffsetModelOff, QPOffsetModelScale when enabled 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 # 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 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 9 17 25 4 4 1 9 17 25 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 10 18 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 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 3 11 19 4 4 1 3 11 19 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 4 12 20 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 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 5 13 21 4 4 1 5 13 21 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 6 14 22 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 5 -6.5 0.2590 0 0 1.0 0 0 0 0 0 0 0 4 4 1 7 15 23 4 4 1 7 15 23 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 8 16 24 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 ============= #=========== Motion Search =============
FastSearch : 1 # 0:Full search 1:TZ search FastSearch : 1 # 0:Full search 1:TZ search
SearchRange : 64 # (0: Search range is a Full frame) SearchRange : 64 # (0: Search range is a Full frame)
......
...@@ -133,6 +133,7 @@ FastMrg : 1 ...@@ -133,6 +133,7 @@ FastMrg : 1
AMaxBT : 1 AMaxBT : 1
FastMIP : 0 FastMIP : 0
FastLocalDualTreeMode : 2 FastLocalDualTreeMode : 2
MaxMergeRdCandNumTotal : 5
# Encoder optimization tools # Encoder optimization tools
AffineAmvrEncOpt : 0 AffineAmvrEncOpt : 0
...@@ -142,6 +143,8 @@ ALFStrengthTargetLuma : 1.0 ...@@ -142,6 +143,8 @@ ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0 ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0 CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO 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 ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ### ### DO NOT DELETE THE EMPTY LINE BELOW ###
......
...@@ -137,6 +137,7 @@ FastMrg : 1 ...@@ -137,6 +137,7 @@ FastMrg : 1
AMaxBT : 1 AMaxBT : 1
FastMIP : 0 FastMIP : 0
FastLocalDualTreeMode : 2 FastLocalDualTreeMode : 2
MaxMergeRdCandNumTotal : 11
# Encoder optimization tools # Encoder optimization tools
AffineAmvrEncOpt : 0 AffineAmvrEncOpt : 0
...@@ -146,6 +147,8 @@ ALFStrengthTargetLuma : 1.0 ...@@ -146,6 +147,8 @@ ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0 ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0 CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO 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 ADD ANYTHING BELOW THIS LINE ###
### DO NOT DELETE THE EMPTY LINE BELOW ### ### DO NOT DELETE THE EMPTY LINE BELOW ###
......
...@@ -69,7 +69,7 @@ RDOQ : 1 # RDOQ ...@@ -69,7 +69,7 @@ RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============ #=========== 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) 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) DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12 DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12 DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
...@@ -162,6 +162,7 @@ FastMIP : 0 ...@@ -162,6 +162,7 @@ FastMIP : 0
FastLFNST : 0 FastLFNST : 0
FastLocalDualTreeMode : 1 FastLocalDualTreeMode : 1
ChromaTS : 1 ChromaTS : 1
MaxMergeRdCandNumTotal : 7
# Encoder optimization tools # Encoder optimization tools
AffineAmvrEncOpt : 1 AffineAmvrEncOpt : 1
...@@ -171,6 +172,7 @@ ALFStrengthTargetLuma : 1.0 ...@@ -171,6 +172,7 @@ ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0 ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0 CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO EncDbOpt : 1 # apply deblocking in RDO
MTTSkipping : 1 # MTTSkipping: 0: disable, 1:enable
TemporalFilter : 1 TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
......
...@@ -53,7 +53,7 @@ RDOQ : 1 # RDOQ ...@@ -53,7 +53,7 @@ RDOQ : 1 # RDOQ
RDOQTS : 1 # RDOQ for transform skip RDOQTS : 1 # RDOQ for transform skip
#=========== Deblock Filter ============ #=========== 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) 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) DeblockingFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter)
DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12 DeblockingFilterBetaOffset_div2 : -2 # base_param: -12 ~ 12
DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12 DeblockingFilterTcOffset_div2 : 0 # base_param: -12 ~ 12
...@@ -146,6 +146,7 @@ FastMIP : 0 ...@@ -146,6 +146,7 @@ FastMIP : 0
FastLFNST : 0 FastLFNST : 0
FastLocalDualTreeMode : 1 FastLocalDualTreeMode : 1
ChromaTS : 1 ChromaTS : 1
MaxMergeRdCandNumTotal : 7
# Encoder optimization tools # Encoder optimization tools
AffineAmvrEncOpt : 1 AffineAmvrEncOpt : 1
...@@ -155,6 +156,7 @@ ALFStrengthTargetLuma : 1.0 ...@@ -155,6 +156,7 @@ ALFStrengthTargetLuma : 1.0
ALFStrengthTargetChroma : 1.0 ALFStrengthTargetChroma : 1.0
CCALFStrengthTarget : 1.0 CCALFStrengthTarget : 1.0
EncDbOpt : 1 # apply deblocking in RDO EncDbOpt : 1 # apply deblocking in RDO
MTTSkipping : 1 # MTTSkipping: 0: disable, 1:enable
TemporalFilter : 1 TemporalFilter : 1
TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter TemporalFilterPastRefs : 4 # Number of past references for temporal prefilter
......
# Keystore
## Example CA and keys
This directory contains example CA and content provider keys and certificates. These example keys SHALL NOT be used in production environments.
Note that private keys should be kept secret.
| location| explanation |
| -------- | ------- |
| keystore/private/jvet_example_ca.key | JVET example CA private key. The used password is "example". |
| keystore/private/jvet_example_provider.key | JVET example content provider private key. There is no password protection for this key. |
| keystore/public/jvet_example_provider.crt | JVET example content provider public key certificate signed by example CA key|
| keystore/ca | Location for CA certificates. After adding new certificates, run `openssl rehash keystore/ca` to create hash based links. |
| keystore/ca/jvet_example_ca.crt | JVET example CA certificate |
## Creating certificates
### Creating a Certificate Authority (CA)
Note, that the following steps only illustrate creating an example CA.
For and actual CA it is of utmost importance to keep CA private keys secret, e.g. in offline storage.
Typically, CAs use multiple levels of intermediate signing certificates, which are used for everyday signing processes.
For this example, only one CA level is used.
For creating a CA, first a CA key need to be created. With OpenSSL, this can be done using the following command:
openssl genrsa -out example_ca.key 4096
This creates a 4096 bit RSA key. In practical use, the key should be encrypted with a secure (long) passphrase, e.g. use
openssl genrsa -aes256 -out example_ca.key 4096
to generate a key `example_ca.key` that is protected with AES encryption.
The create a self-signed certificate for the CA:
openssl req -x509 -new -nodes -key example_ca.key -sha256 -days 1826 -out example_ca.crt
This will ask for Name, country, organization, etc. The days parameter indicates the number of days that the certificate will be valid.
### Creating a Content Provider Certificate
First create a key as for the CA:
openssl genrsa -out example_content.key 4096
Create a signing request file:
openssl req -new -key example_content.key -out example_content.csr
Sign the request with the CA key:
openssl x509 -req -in example_content.csr -CA example_ca.crt -CAkey example_ca.key -out example_content.crt -days 730 -sha256
The days parameter indicates the number of days that the certificate will be valid.
jvet_example_ca.crt
\ No newline at end of file
-----BEGIN CERTIFICATE-----
MIIFkTCCA3mgAwIBAgIUSBOrc6YNsshq9BgTlLx9dqzNTjMwDQYJKoZIhvcNAQEL
BQAwWDELMAkGA1UEBhMCQ0gxDzANBgNVBAgMBkdlbmV2YTEPMA0GA1UEBwwGR2Vu
ZXZhMQ0wCwYDVQQKDARKVkVUMRgwFgYDVQQDDA9KVkVUIEV4YW1wbGUgQ0EwHhcN
MjQxMDI4MTcxMTI5WhcNMjkxMDI4MTcxMTI5WjBYMQswCQYDVQQGEwJDSDEPMA0G
A1UECAwGR2VuZXZhMQ8wDQYDVQQHDAZHZW5ldmExDTALBgNVBAoMBEpWRVQxGDAW
BgNVBAMMD0pWRVQgRXhhbXBsZSBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCC
AgoCggIBAJk9aZbVIWkW4PlIWvrdYxIUOKlDtItx/yKk7Od15N0LIrHA577aja2O
wLmMRtmaO/pD2a95Jc1v3Er/e7cQnsO6IAkw4Oz76OslATFicFMMLVDUHavvsP6H
CDJkuqz/yxL4eWexQxVoxuyw9UHIoAJcRAQgb7SxzoDSSTaRh066Mr9/ch5NyIPs
nkf/sefH2jsAGnu8eOp5h4m9NTvaYgIwx9IZBjlK9Bf3CCuZD0BCrslIDFmS0CBf
I9lupEhrJ9jwdVQFm49ajMaZyCqoDSA9nP9ZVxbifRhRdo/SJw9DhtJWy02E4kTf
ZxStJi9s3Opred9hn6lSRMOmThgfr8vQcTPqSXOD/x+e6nJ0JYnOZd5K4h6EtrUR
mcW87i1FdjCAZyxQbisKxzHWcHDYwZHHE2TPc9YnKcc0sXwBKGjrECqgKPASQisW
RQdEGObKOF8S1om96TGSh/E0EH0lLsji3UF+YwuoouZiRhzArKMU13AuZ5e6YPby
G4v0zTK5hV8SjrMs04mwVzwXTlrinoFKBkkydyWn+3BtAHu4BrF46yYCVKXhEUVh
UIV7b7mhPboMFmAG1PjEvdRJDHTAL3ZZZEPSkdgYf0DQ+A9eCBmaMJuYrDMIwCDb
4wM5ofi/C92QWXhx84vTeTR1EGmIlBQGhrOEasgdPddTNkJZvE3fAgMBAAGjUzBR
MB0GA1UdDgQWBBQeiWHUtyAfBvwTlzjxhArENIKqNjAfBgNVHSMEGDAWgBQeiWHU
tyAfBvwTlzjxhArENIKqNjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBCwUA
A4ICAQA/YYgNn/BOJ2iceNH47IWd9pvZ7EI/ix6MTpv/clc0TE4CYeGKjcCDQF07
9qtSb351UvtIRwBRScefjzXqwEriOZMPop61lqkWr6LXfAnkoUsJLj+wIcote4E1
qy8yNPeAVRDtuxnNBRNxdt4vkT/bENy4XcrtYmTj4mjColXT4riaLrVyxZiDb5Dw
tUocijTxubku2s01hkSWwRtaIWQTyCcr7oUuJEuBy+IdAWGq/wiWS2TVX377iMyX
/oLJFRqH97qT5d5DLUogKJcgJMyXqYDr8j42HvyDCGkyAAIWQvEdzF+CfYgW6d1/
eSo6HLCuAlUPXv3FV2jljHuS/ov44baAUmLORvb4RgckAsqLgTebfZ1cvUkr6syw
I6aJgt4XjncHTHDMWe6QtU2SQRpKjE74PMI+ZWDmw/zZx5EYffrdDaJJlEf34RDS
Bs0Ge1u6oruVomm7bBfi9Tml9lPpfjFWuJxjxxZuR9sE3VOOXZIogb/RqQqCQm8o
htbcu3AH4flRkSgjSn8YMaWbc2BZitw6JiApc5rdLdzG5zDeOTZcjzjeHGQ5oOnm
A8PONCl33Wc29VTBIn9MdP43KrMRTDHUHeP3Fm1Ry6RmhkNg3k77da4/Zr6v0XGp
GKZcvu5Z7a1Jwdr3EPakrQ2WuoyJGQYWwPrKsay8ySgmTRt3Kg==
-----END CERTIFICATE-----
-----BEGIN PRIVATE KEY-----
MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCVjw3JUarJdR15
LAS7kEES1MolCejiRTytdAZ2NmnAkdyoBwPlyru4Jb6VJofOLxorTNz0d7YP8sy9
Bcvk5bH0o9sFEwysh6keY92axpUsU8i9SMM0M/lUJL5rNejHdh9Zz09H0jaNZFzg
de2oxbdnHTXBE3xOPjaec543Cjeno3MU9yC8MIhCv3sLKnBxy+jEIaUDpYk3Ki9E
u5D2xYhv90toWp5ISABQvoIAvKuexhlk4qG5HSbmd60bXcJzfyTFgI3Yk7yHoAxu
dC6FJtPO1b27B2hRs9F+03GNde4Tat7ut/OrK8sn8LHvwClIs2I4bfMqpZoFIUUd
D6agKTYNAgMBAAECggEAATCpuevh8YdyjBfLE9kCg41Y7HGHPmGxqWmucXteXQ9s
E5Q2tjnmQ4FdYl9znjLmwOh0K6fWNYtHkMt+g1xGjb1ODVzI8YiE0n6V8VjaMAec
pdDx6LTvK3m9YCoGJ6wrdLH/HgGwuHBPguO9V+X23yWu21H138OD+L/Pxv1YUwep
UgpdjqzaP36Q1TgOUb9sAvmaIpZvJtlIevN794+gBZ1dX7a6R+VXphgS+DVdnOEF
LC7bhhHbCgNKVIEUyDz/pc+hUg13sEvcgUTPkiAQtxIs+z+f9picI+iieqPRGx2I
LEQLyOQvz4LZes+C3vmERw84CUq7DiSFxVRmVAsrSwKBgQDFSVMtEWtRrRcwTgZx
Uf8Fm+VT/BPepMPAvVW7atSrKVPyQWbQVGiTF0re5LG5XA/lSn0fXPzrSNWwibNo
MUhs51MdhkDu4RM1OIn4nASIGkPVJKy5IXNEheXb5U2J+Z7bZSj1hnYK6S514UHY
RNyHYcckrgHkXADSaxMTeBkiUwKBgQDCEYBQbPZXDv/BZRSDwudEplbFRxr/mklO
wFvPojsxl3IE7PowUNYT6dFdwU8FxrJARo/eruZ/6gzVJy99M1lhz1B5EWJktzdH
Eey+aPHGm1e2TuCYAhKJSBJ04LXkgJIxSiBFmU+L3jhMbEIX1UJ7Upp8v4Pgbi57
HOrTPuP6HwKBgDBoopkvagb7kvIOYzRRK2Nj8myeMP3zrfjQPIYlW5O4K1oJREIg
RBy7nWp98UILXfckRPl6JrFRCOYtk7EgTqYySMm41JwI7F6lxe0T02TWFQjq29r9
YzxQIqvHYzRU5O7urpM4cCSTPQw9vptjoj0x99x/OgWfsa/wCBlB4eDzAoGAHUiI
xRn7/dz8iJEZDFy/iuNSmogFMeZ1A1YRRH5lUjFY+hdMFThNZUnV1sDRjLyTrxE2
qlJX45tMfmlgSBMUfKbMrMgLwcjHpYi14XFychaEoLS8PROq+l4OsuYpbCZeaOOX
hQkCMMfCVP3M5029r2AigYpgeuAFUXxmjqOhwN8CgYEAjG6tNqJudNzs0ni20t2W
RmD4s7v1Dbowi7xsCkhq/MGCwPTPh1V4jeUbUSu2R9qpFfUSkBi226dCrzTWsGru
2gMfImsI7UnSA2v+sIaC+CkTK775lEGZUA5Q9mAojiAv3R4nyv2hih/o/7Bhinh5
ZRrnX4Ja8NAQUw9r/8amJ0s=
-----END PRIVATE KEY-----