forked from fraunhoferhhi/vvenc
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathchangelog.txt
213 lines (179 loc) · 12.4 KB
/
changelog.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
/////////////////////////////////////////
tag 0.3.1.0
* libvvenc:
- only supporting picture-level rate control, removed vvencCfgExpert::m_RCRateControlMode,
vvencCfgExpert::m_RCKeepHierarchicalBit and vvencCfgExpert::m_RCUseLCUSeparateModel parameters.
- added vvencCfgExpert::m_log2MinCodingBlockSize parameter to limit minimal coding block size (default: 2)
- reduced and defragmented the used memory.
- added new speed-ups and adapted fast and faster presets.
* vvencFFapp:
- removed parameters --KeepHierarchicalBit, --RCLCUSeparateModel
and --RateControl (defaults to 2 if target rate is set, 0 otherwise).
- renamed parameter --InitialQP to --RCInitialQP.
- added parameter --Log2MinCodingBlockSize (default: 2) to limit the minimal coding block size
* bugfixes
- fixes #29
- corrected motion vector clipping during DMVR process (might produce enc/dec mismatches).
- fixed LMCS/ISP interaction (weighted SAD for blocks of width '1').
/////////////////////////////////////////
tag 0.3.0.0
* new:
- support for HDR metadata (--hdr off, pq|hdr10, pq_2020|hdr10_2020, hlg, hlg_2020)
- if using HDR, encoder decisions depend on the used mode and the enabled metadata. by default VUI and SEI metadata are enabled
- PQ: set vui parameter (transfer characteristics 16(smpte2084))
- HLG: set vui parameter (transfer characteristics 1|14(bt709|bt2020-10)) + SEI AlternativeTransferCharacteristics 18
- support for MasteringDisplayColourVolume and MaxContentLightLevel (SMPTE ST 2086 - HDR10/PQ)
- MasteringDisplayColourVolume can be set by vector of 10 values:
x,y,x,y,x,y,x,y,max,min where: "G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)
x,y coordinates for GBR and WP in increment of 1/50000
max,min luminance in units of 1/10000 cd/m2
0 <= x,y <= 50000, 0 <= max,min <= 10000,
Example for a P3D65 1000-nits monitor, where
G(x=0.265, y=0.690), B(x=0.150, y=0.060), R(x=0.680, y=0.320),
WP(x=0.3127, y=0.3290), L(max=1000, min=0.0001):
13250,34500,7500,3000,34000,16000,15635,16450,10000000,1
- MaxContentLightLevel can be set by vector of 2 values:
cll,fall where cll=max. content light level,fall=max. frame average light level,
range: 1 <= cll,fall <= 65535
* changes:
- align usage of vvenc interface for vvencapp and vvencFFapp (both apps are now using the lib in the same manner)
- vvencapp is now using the command line parser of vvencFFapp,
but the command line params haven´t changed to prev. version for legacy support
- help dialog re-designed, params are now sorted into categories
- perceptually motivated QP adaptation (qpa) changed to on/off (mode 0-5 before) and uses XPSNR depending on HDR mode
vvencapp: use --qpa or --qpa 0|1 to enable/disable (enabled by default
vvencFFapp: use -qpa|--PerceptQPA or -qpa|--PerceptQPA 0|1 to enable/disable (enabled by default
- Level is set to auto per default. In this mode it will be automatically detected by given resolution
* bugfixes:
- #18: setting of max number CABAC-coded coefficients for the floating point scalar RDOQ
* libvvenc:
- changed preset configuration to reflect current Pareto-Optimal trade-offs. The new presets are much better harmonized between different
resolutions and content types.
- auto config initialization. The configuration to init the vvenc library now only needs required
parameter (width, height, framerate), everything else is set to default config
some parameter are set to -1 per default. Params set to -1 will be set to default, auto config params:
profile, level, threads, aud, vui, hrd, PerceptQPATempFiltIPic, RateControl, KeepHierarchicalBit, WppBitEqual, FEN
- medium preset is now used as default (this has quite a big impact on default params in the vvencFFapp)
- decreased memory usage
- improved multi-threading (now can utilize up to 10 threads for HD and up to 24 for UHD, efficiency depends on preset and other parameters)
- added the possibility to generate bitstreams for minimal drift in open-GOP adaptive switching.
- various optimizations and speed-ups.
* vvencapp:
- new parameter -aud, --accessunitdelimiter [auto] Emit Access Unit Delimiter NALUs (auto(-1),off(0),on(1);
default: auto - only if needed by dependent options)
-vui, --vuiparameterspresent [auto] Emit VUI information (auto(-1),off(0),on(1);
default: auto - only if needed by dependent options)
-hrd, --hrdParameterspresent [auto] Emit VUI HRD information (auto(-1),off(0),on(1);
default: auto - only if needed by dependent options)
--hdr [off] set HDR mode (+SEI messages) + BT.709 or BT.2020 color space.
use: off, pq|hdr10, pq_2020|hdr10_2020, hlg, hlg_2020
- changed parameter --qpa [on] Enable perceptually motivated QP adaptation, XPSNR based (0:off, 1:on)
as legacy support the previous modes 1-5 are now mapped to on/1
* vvencFFapp:
- new parameter --MaxParallelFrames [-1] Maximum number of frames to be processed in parallel
(-1: auto depends on number of threads, 0:off, >=2: enable parallel frames)
--hdr [off] set HDR mode (+SEI messages) + BT.709 or BT.2020 color space.
use: off, pq|hdr10, pq_2020|hdr10_2020, hlg, hlg_2020
--MasteringDisplayColourVolume [[]]
SMPTE ST 2086 mastering display colour volume info SEI (HDR), vec(uint) size 10,
x,y,x,y,x,y,x,y,max,min where: "G(x,y)B(x,y)R(x,y)WP(x,y)L(max,min)"range: 0 <=
GBR,WP <= 50000, 0 <= L <= uint; GBR xy coordinates in increment of 1/50000,
min/max luminance in units of 1/10000 cd/m2
--MaxContentLightLevel [[]] Specify content light level info SEI as "cll,fall" (HDR) max. content light level,
max. frame average light level, range: 1 <= cll,fall <= 65535'
--PreferredTransferCharacteristics [auto]
Specify preferred transfer characteristics SEI and overwrite transfer entry in VUI
(0-18): reserved, bt709, unknown, empty, bt470m, bt470bg, smpte170m, smpte240m,
linear, log100, log316, iec61966-2-4, bt1361e, iec61966-2-1, bt2020-10, bt2020-12,
smpte2084, smpte428, arib-std-b67
--segment [off] when encoding multiple separate segments, specify segment position to enable segment concatenation
(first, mid, last) [off]
first: first segment
mid : all segments between first and last segment
last : last segment
--FastIntraTools [0] SpeedUPIntraTools:LFNST,ISP,MTS. (0:off, 1:speed1, 2:speed2)
- changed parameter --qpa [off] Enable perceptually motivated QP adaptation, XPSNR based (0:off, 1:on)
-aud, --AccessUnitDelimiter [auto] Enable Access Unit Delimiter NALUs,
(default: auto - enable only if needed by dependent options)
-vui, --VuiParametersPresent [auto] Enable generation of vui_parameters(),
(default: auto - enable only if needed by dependent options)
-hrd, --HrdParametersPresent [auto] Enable generation of hrd_parameters(),
(default: auto - enable only if needed by dependent options)
--Profile [auto] name to use for encoding. Use [multilayer_]main_10[_444][_still_picture],
auto, or none
--Level [auto] limit to be used, eg 5.1, or none
--WppBitEqual [-1] Ensure bit equality with WPP case (0:off (sequencial mode), 1:copy from wpp line
above, 2:line wise reset)
--RateControl [-1] enable rate control (0:off 1:CTU-level RC; 2:picture-level RC; 3:GOP-level RC)
--KeepHierarchicalBit [-1] Rate control: (0:equal bit allocation, 1:fixed ratio bit allocation,
2:adaptive ratio bit allocation
--PerceptQPATempFiltIPic [-1] Temporal high-pass filter in QPA activity calculation for key pictures
(0:off, 1:on, 2:on incl. temporal pumping reduction, -1:auto)
--SliceChromaQPOffsetPeriodicity [-1] Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic.
Use 0 (default) to disable periodic nature.
--ColourPrimaries [unknown] Specify color primaries (0-13): reserved, bt709, unknown, empty, bt470m, bt470bg,
smpte170m, smpte240m, film, bt2020, smpte428, smpte431, smpte432
--TransferCharacteristics [unknown]
Specify opto-electroni transfer characteristics (0-18): reserved, bt709, unknown,
empty, bt470m, bt470bg, smpte170m, smpte240m, linear, log100, log316, iec61966-2-4,
bt1361e, iec61966-2-1, bt2020-10, bt2020-12, smpte2084, smpte428, arib-std-b67
--MatrixCoefficients [unknown]
Specify color matrix setting to derive luma/chroma from RGB primaries (0-14): gbr,
bt709, unknown, empty, fcc, bt470bg, smpte170m, smpte240m, ycgco, bt2020nc,
bt2020c, smpte2085, chroma-derived-nc, chroma-derived-c, ictcp
--RPR [1] can be now set to "2", in which case the encoder will impose constraints on the RASL frames
allowing for minimal drift open-GOP adaptive switching (with or withour resolution change).
/////////////////////////////////////////
tag 0.2.1.0
* bugfixes:
- ISP fix: erroneous placed sanity check
* libvvenc:
- decrease memory consumption
- harmonize 2-pass rate control and perceptual QPA
- improve rate control
/////////////////////////////////////////
tag 0.2.0.0
* new license
- switched to modified 3-clause BSD
* bugfixes:
- access unit delimiter (AUD) generation
- DPH-SEI syntax
* new features:
- ISP
- TS (with automatic screen-content detection)
- BDPCM
- 2-pass rate control
- 1-pass rate control with GOP32
* libvvenc:
- added "slower" preset
- redefined the presets according to current pareto-set
- removed PredictionUnit type
- various memory reductions (Rom.cpp, scaling list memory)
- verious optimizations (SIMD for MCTF, forward transformation, single column IF; memory accesses for DMVR)
- changed MCTF algorithm to do intermediate rounding between hor/ver filtering
* vvencapp:
- new parameter --refreshsec,-rs to define the intra refresh rate in seconds depending on the given frame rate.
Internally, the refresh rate in seconds is translated into the frames where the refresh is set.
--internal-bitdepth to define the internal bit-depth used in bitstream (default: 10).
--passes to control number of passes for rate-control
--segment to control chunkwise encoding configuration
- changed parameter --intraperiod,-ip is 0 per default because --refreshsec is used for that purpose instead.
In case of a value greater than 0, intraperiod overwrites refreshsec.
Abbreviation -q is now supported in addition to --qp.
--gopsize default changed to 32
- fullhelp changed All internal encoding parameters are now shown as strings when --fullhelp is called.
* build system:
- using GnuInstallDirs
- added basic tests
- versioning using CMake
- added support for address sanitizer
/////////////////////////////////////////
tag 0.1.0.1
* libvvenc:
- VVEnc::init() correctly initializes SIMD for transformation (TrafoX86) and sample operations (BufferX86).
* vvencapp:
- Improved speed because of the bugfix to libvvenc.
/////////////////////////////////////////
tag 0.1.0.0
* initial version
/////////////////////////////////////////