-
Notifications
You must be signed in to change notification settings - Fork 22
/
FREXT_changes.txt
executable file
·167 lines (141 loc) · 8.76 KB
/
FREXT_changes.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
Fidelity Range Extensions Development
======================================================================
for later FRExt Changes see CHANGES.txt
From v.2.1 to v.2.2
----------------
- fixed bug on wrong assignment of luma_transform_size_8x8_flag when intra coding is selected in inter pictures for CAVLC
- changed normalization for SAD cost for 4x4 and 8x8
- allow Intra16x16 to be included in Transform8x8Mode=2
- changed calculation of coefficient cost for dct_luma8x8 for CAVLC
- fixed bug on difference in debug and release mode for I pictures in encoder
- fixed bug on initialisation error for cost when transform 8x8 mode is 0 during P coding in encoder
- fixed CAVLC decoding of level > 16
- merge up to JM 8.6
From v.2.0a to v.2.1
----------------
- Residue Color Transform(RCT) is implemented (can be used for RGB-sequences)
- file I/O part is modified to support 8-9-9 bit file input (luma 8 bit, chroma 9 bit)
- added the maximum pixel value for chroma part (different bitdepth values for luma and chroma)
- encoder: fixed the difference between the FRExt spec and JM code for determining ctxIdxInc for significant_.. (field coded macroblocks).
- encoder: fixed DC_PRED initialisation of intrapred[][]-array for non-4x4/8x8 intra MBs
- encoder: fixed overflowing of diff-variables while distortion calculation (for huge frame sizes)
- encoder: fixed clipping of chroma QP value in dct_chroma()
- encoder: fixed pre-filtering for 8x8 intra
- encoder: the range for delta_qp is extended (depends on YUV-Format)
- encoder: fixed pos2ctx_map and pos2ctx_last context mapping for chroma YUV422/YUV444
- decoder: fixed conditional statement for qp_per_uv in CHROMA DC YUV444 path
- decoder: 64 bit file access for output and reference file (KS)
- decoder: complete VUI parsing (fixes streams with _real_ VUI data) (KS)
- decoder: known bug - QP report
From v.2.0 to v.2.0a
----------------
- in config file: luma/chroma bitdepth info is extended to 12 bit
- CBP intra/inter mapping for 8x8-intra macroblocks is fixed
- CABAC context switching (frame/field) while MBAFF mode is fixed (in write_significance_map())
From v.1.9c to v.2.0
----------------
- updated to JM reference software ver. 8.4 (all corresponding changes are in CHANGES.TXT)
- merged JM 8.5 POC mode 1 fix
- added new CABAC ctx ini-tables
- CAVLC coding mode support for 8x8 transform
- PicUnitBitDepth is changed to BitDepthLuma and BitDepthChroma (encoder cfg-file changed)
- FREXT chrominance qp offsets CbQPOffset and CrQPOffset are added (encoder cfg-file changed)
- FREXT profile idc numbers are updated (beginning from 100 now) and through #define implemented
- fixes for lossless mode: rgb-sequence reading (cfg file is updated with 'RGBinput' parameter)
- bug fixed for writing/reading of trasform_size_8x8_flag when DIRECT-mode and DirectInferenceFlag is disabled
- encoder: bit setting for cbp_blk-chroma is alligned to decoder method
- decoder: error concealment is aligned to FREXT but not tested
- decoder: fixed bug of encoder-decoder mismatch in MBAFF mode
From v.1.9b to v.1.9c
----------------
- setting of available Q-matrix pic scaling list is changed
- decoder: added new default Q-matrix (in v.1.9a was not complete implemented)
- added lossless_qpprime_y_zero funcionality (encoder config file is also extended)
- decoder: bug fixed in derivation of QPy while mb_qp_delta reading
From v.1.9a to v.1.9b
----------------
- encoder: bug fixed for B_Direct_8x8 (while Non-RDOpt Mode)
From v.1.9 to v.1.9a
----------------
- added new default Q-matrix
- encoder: bug fixed, restoring of motion vector data for P8x8 MBs with transform size 4x4
- encoder: bug fixed in YUV422 transform and quantizing process (q_bits422, qp_const422 added)
- encoder: changed the mode choosing for 8x8 and 4x4 transform sizes for P8x8-MBtype (now modes 0(B_DIRECT_8x8) and/or 4 can be taken for 8x8 transform)
- changed transform_size_8x8_flag bitstream output to intra-part and inter-part(with checking for cbp_luma==0)
- changed frame statistic output for 8x8 and 4x4 transform separation (with considering of CBP_luma==0)
From v.1.8 to v.1.9
----------------
- TRANSFORM SIZE FLAG Context Models for P-Frame are extended (CABAC)
- fixed qp_const assigning for luma coeff reading in decoder
- removed rounding for chroma (YUV 420) while dequantizing (refer to FRExt Spec.)
- fixed QP assigning for Macroblock after Delta-QP reading in decoder
- fixed DIAG_DOWN_RIGHT pred mode for 8x8 intra pred
- removed CBP writing when B-Skip and CABAC while rdopt
- code restructuring: writeMBHeader() is changed to writeMBLayer()
- Changed slice-based rounding offset to MB-based rounding offset in the encoder ( this improves significantly picture quality, can we keep this way? )
- When Transform8x8Mode==2, Direct_8x8 mode sub-macroblock type is disabled.
- Configuration file encoder_highquality_HD.cfg is added to assist encoding of high-res HD content.
From v.1.7 to v.1.8
----------------
- inserted syntax for Constraint_set3 flag in encoder and decoder
- fixed syntax error during luma 8x8 coefficient decoding when the total number of coefficient is 64
- changed syntax for transform_size_8x8_flag to be placed at the correct location for mb_type with sub_mb_pred for encoder and decoder to follow the standards
- changed order of 8x8 transform direction to performing vertical direction first instead of horizontal first.
- added condition to check for intra-coded neighbours when constrained intra prediction flag is on, for intra 8x8 coding for encoder
- added setting of high cost for temporal direct mode when 8x8transform only is chosen and co-located pic is not available in encoder
- changed high cost for direct mode when temporal direct mode is not allowed in encoder. Previous value will cause overflow in total cost
- fixed B_skip mode to stop sending/reading of 8x8 transform flag in encoder and decoder
- changed encoding using 8x8transform to be only equal to 1 when Transform8x8Mode in cfg file is equal to 2 for RD-on for encoder
- skipped selecting of B_skip mode with 8x8transform_flag=1 when RD-on in encoder because it is not valid mode
- fixed setting of NoSubMbPartSizeLessThan8x8Flag to zero when Intra16x16 mode is chosen in encoder to prevent encoder sending of 8x8transform flag
- fixed sending (in encoder) and receiving (in decoder) of q_matrix values only in zig_zag scan
- fixed the correct mapping of matrix data to quantisation values in encoder and decoder
- fixed using of wrong quantized levels for de-quantisation in encoder and decoder
- switch order of getting transform values and inverse DC chroma420 level in encoder and decoder
- removed Intra8x8_ChromaU, Intra8x8_ChromaV, Inter8x8_ChromaU, Inter8x8_ChromaV matrix in encoder and decoder
- changed total matrix list to 8 according to standards
- changed scalingList routine to follow the style stated in the standards in encoder and decoder
- changed variables' names in encoder and decoder:
Old Names -> New Names
scaling_matrix_present_flag -> seq_scaling_matrix_present_flag
scaling_list_present_flag -> seq_scaling_list_present_flag
scaling_matrix_refinement_present_flag -> pic_scaling_matrix_present_flag
scaling_list_refinement_present_flag -> pic_scaling_list_present_flag
- changed assigning of default matrix and fall-back rule for q matrix
- added syntax in sps for chroma_format_idc and lossless_qpprime in encoder and decoder
- changed location of pps fidelity range extension syntax to end of pps in encoder and decoder
From v.1.6 to v.1.7
----------------
- changed Chroma Intra DC calculation for YUV422 and YUV444
From v.1.3 to v.1.6
----------------
- added YUV422, YUV444 Formats
V.1.3
----------------
- added Q-matrix syntax and semantics in encoder and decoder
- Q-matrix parameters are obtained from a file set in encoder.cfg
- Q-matrix flags can be set in the encoder.cfg
- fixed calculating of cost for Intra8x8 using SATD8x8
- 8x8 transform is now able to be used with rd-off
- New option for Transform8x8Mode, 2 for rd-off 8x8 transform mode only
- changed getting of qp_const in dct to be macroblock-based instead of slice-based
- changed output display to show Intra MB for all coding type
- fixed bug on I8MB, storing of ipredmode in wrong location
- fixed bug on I8MB, include setting of ipredmode to DC if Inter 8x8 is chosen
- fixed ref idx for direct mode
- updated changes from jm81a
v.1.2
----------------
- new PROFILE_IDCs (for Fidelity Extensions) are added
- Transform8x8Mode can be managed only at encoder site
- LowPassForIntra8x8 is turned off
- '#ifdef MIXED_TRANSFORM_SIZES' removed
- small code resructuring and cleaning
v.1.1
----------------
- QP scaling added (negative QPs are possible now)
- lambda(rdcost) scaling added
- luma/chroma bit depth variables to SPS added
v.1.0
----------------
- Mixed Transform Sizes and Variable Bit Depth (v.6.0) added