Skip to content

Commit 0fea8d6

Browse files
Inge Lille-Langoycyining
authored andcommitted
Import jm9.0
1 parent 3f82b22 commit 0fea8d6

File tree

138 files changed

+18387
-4944
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

138 files changed

+18387
-4944
lines changed

CHANGES.TXT

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,33 @@
1+
Changes for Version JM 9.0 to JM 8.6
2+
------------------------------------
3+
4+
New Features:
5+
- import FRExt branch (KS)
6+
- encoder: pyramid encoding structure (AT)
7+
- encoder/decoder: YUV 4:0:0 support (VG)
8+
- encoder: thresholding control (AT)
9+
10+
Fixes/Upates:
11+
- encoder: clean up includes (KS)
12+
- encoder: increase maximum file name length (KS)
13+
- encoder: fix failed merge of temporal direct fix (LP)
14+
- encoder: fix RCT enc/dec mismatch (WK)
15+
- encoder: fix for CAVLC neighbouring total coeff (for RDopt) (SN)
16+
- encoder: fix for CAVLC level limit for small QP (SN)
17+
- encoder: fix memory leaks (CS/KS)
18+
- encoder: disallow RDOptimazation=2 (KS)
19+
- encoder: improve parameter names(AT)
20+
- encoder: fix rate control diff calculation (SM)
21+
- decoder: fix QP output (AT)
22+
- decoder: fix paired field output for increased bit depth (KS)
23+
- decoder: fix img->quad allocation (KS)
24+
- decoder: fix RGB file output (KS)
25+
- decoder: don't crash on PicTiming SEI when no SPS is active (KS)
26+
- encoder/decoder: fix gcc compiler warnings (KS)
27+
- encoder/decoder: fix inverse DC transform (WZ/KS)
28+
- encoder/decoder: reduce memory usage by making imgpel "unsinged short" (KS)
29+
30+
131
Changes for Version JM 8.6 to JM 8.5
232
------------------------------------
333
- encoder: fix command line checking order (KS)
@@ -852,6 +882,7 @@ AT Alexis Michael Tourapis [email protected]
852882
AW Armand Wemelsfelder [email protected]
853883
BH Barry Haskell [email protected]
854884
CG Cristina Gomila [email protected]
885+
CS Christian Schmidt [email protected]
855886
DC Doug Chin [email protected]
856887
DD Dmitriy Demin [email protected]
857888
DH Dzung Hoang [email protected]
@@ -882,6 +913,7 @@ KSa Kazushi Sato [email protected]
882913
LK Louis Kerofsky [email protected]
883914
LW Limin Wang [email protected]
884915
LWi Lowell Winger [email protected]
916+
LP Luca Pezzoni [email protected]
885917
MB Marcus Barkowsky [email protected]
886918
MG Michael Gallant [email protected]
887919
ML Maxim Lobasso [email protected]
@@ -916,7 +948,9 @@ TWa Toby Walker [email protected]
916948
VG Valeri George [email protected]
917949
VV Viktor Varsa [email protected]
918950
WF Wenfang Fu [email protected]
951+
WK Woo-Shik Kim [email protected]
919952
WYK Ye-Kui Wang [email protected]
953+
WZ Weimin Zeng [email protected]
920954
YK Yoshihiro Kikuchi [email protected]
921955
YL Yann Lemaguet [email protected]
922956
YW Ye-Kui Wang [email protected]

FREXT_changes.txt

Lines changed: 167 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,167 @@
1+
Fidelity Range Extensions Development
2+
======================================================================
3+
4+
for later FRExt Changes see CHANGES.txt
5+
6+
7+
From v.2.1 to v.2.2
8+
----------------
9+
- fixed bug on wrong assignment of luma_transform_size_8x8_flag when intra coding is selected in inter pictures for CAVLC
10+
- changed normalization for SAD cost for 4x4 and 8x8
11+
- allow Intra16x16 to be included in Transform8x8Mode=2
12+
- changed calculation of coefficient cost for dct_luma8x8 for CAVLC
13+
- fixed bug on difference in debug and release mode for I pictures in encoder
14+
- fixed bug on initialisation error for cost when transform 8x8 mode is 0 during P coding in encoder
15+
- fixed CAVLC decoding of level > 16
16+
- merge up to JM 8.6
17+
18+
From v.2.0a to v.2.1
19+
----------------
20+
- Residue Color Transform(RCT) is implemented (can be used for RGB-sequences)
21+
- file I/O part is modified to support 8-9-9 bit file input (luma 8 bit, chroma 9 bit)
22+
- added the maximum pixel value for chroma part (different bitdepth values for luma and chroma)
23+
- encoder: fixed the difference between the FRExt spec and JM code for determining ctxIdxInc for significant_.. (field coded macroblocks).
24+
- encoder: fixed DC_PRED initialisation of intrapred[][]-array for non-4x4/8x8 intra MBs
25+
- encoder: fixed overflowing of diff-variables while distortion calculation (for huge frame sizes)
26+
- encoder: fixed clipping of chroma QP value in dct_chroma()
27+
- encoder: fixed pre-filtering for 8x8 intra
28+
- encoder: the range for delta_qp is extended (depends on YUV-Format)
29+
- encoder: fixed pos2ctx_map and pos2ctx_last context mapping for chroma YUV422/YUV444
30+
- decoder: fixed conditional statement for qp_per_uv in CHROMA DC YUV444 path
31+
- decoder: 64 bit file access for output and reference file (KS)
32+
- decoder: complete VUI parsing (fixes streams with _real_ VUI data) (KS)
33+
- decoder: known bug - QP report
34+
35+
From v.2.0 to v.2.0a
36+
----------------
37+
- in config file: luma/chroma bitdepth info is extended to 12 bit
38+
- CBP intra/inter mapping for 8x8-intra macroblocks is fixed
39+
- CABAC context switching (frame/field) while MBAFF mode is fixed (in write_significance_map())
40+
41+
From v.1.9c to v.2.0
42+
----------------
43+
- updated to JM reference software ver. 8.4 (all corresponding changes are in CHANGES.TXT)
44+
- merged JM 8.5 POC mode 1 fix
45+
- added new CABAC ctx ini-tables
46+
- CAVLC coding mode support for 8x8 transform
47+
- PicUnitBitDepth is changed to BitDepthLuma and BitDepthChroma (encoder cfg-file changed)
48+
- FREXT chrominance qp offsets CbQPOffset and CrQPOffset are added (encoder cfg-file changed)
49+
- FREXT profile idc numbers are updated (beginning from 100 now) and through #define implemented
50+
- fixes for lossless mode: rgb-sequence reading (cfg file is updated with 'RGBinput' parameter)
51+
- bug fixed for writing/reading of trasform_size_8x8_flag when DIRECT-mode and DirectInferenceFlag is disabled
52+
- encoder: bit setting for cbp_blk-chroma is alligned to decoder method
53+
- decoder: error concealment is aligned to FREXT but not tested
54+
- decoder: fixed bug of encoder-decoder mismatch in MBAFF mode
55+
56+
57+
From v.1.9b to v.1.9c
58+
----------------
59+
- setting of available Q-matrix pic scaling list is changed
60+
- decoder: added new default Q-matrix (in v.1.9a was not complete implemented)
61+
- added lossless_qpprime_y_zero funcionality (encoder config file is also extended)
62+
- decoder: bug fixed in derivation of QPy while mb_qp_delta reading
63+
64+
From v.1.9a to v.1.9b
65+
----------------
66+
- encoder: bug fixed for B_Direct_8x8 (while Non-RDOpt Mode)
67+
68+
From v.1.9 to v.1.9a
69+
----------------
70+
- added new default Q-matrix
71+
- encoder: bug fixed, restoring of motion vector data for P8x8 MBs with transform size 4x4
72+
- encoder: bug fixed in YUV422 transform and quantizing process (q_bits422, qp_const422 added)
73+
- 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)
74+
- changed transform_size_8x8_flag bitstream output to intra-part and inter-part(with checking for cbp_luma==0)
75+
- changed frame statistic output for 8x8 and 4x4 transform separation (with considering of CBP_luma==0)
76+
77+
78+
From v.1.8 to v.1.9
79+
----------------
80+
- TRANSFORM SIZE FLAG Context Models for P-Frame are extended (CABAC)
81+
- fixed qp_const assigning for luma coeff reading in decoder
82+
- removed rounding for chroma (YUV 420) while dequantizing (refer to FRExt Spec.)
83+
- fixed QP assigning for Macroblock after Delta-QP reading in decoder
84+
- fixed DIAG_DOWN_RIGHT pred mode for 8x8 intra pred
85+
- removed CBP writing when B-Skip and CABAC while rdopt
86+
- code restructuring: writeMBHeader() is changed to writeMBLayer()
87+
- Changed slice-based rounding offset to MB-based rounding offset in the encoder ( this improves significantly picture quality, can we keep this way? )
88+
- When Transform8x8Mode==2, Direct_8x8 mode sub-macroblock type is disabled.
89+
- Configuration file encoder_highquality_HD.cfg is added to assist encoding of high-res HD content.
90+
91+
92+
From v.1.7 to v.1.8
93+
----------------
94+
- inserted syntax for Constraint_set3 flag in encoder and decoder
95+
- fixed syntax error during luma 8x8 coefficient decoding when the total number of coefficient is 64
96+
- 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
97+
- changed order of 8x8 transform direction to performing vertical direction first instead of horizontal first.
98+
- added condition to check for intra-coded neighbours when constrained intra prediction flag is on, for intra 8x8 coding for encoder
99+
- added setting of high cost for temporal direct mode when 8x8transform only is chosen and co-located pic is not available in encoder
100+
- changed high cost for direct mode when temporal direct mode is not allowed in encoder. Previous value will cause overflow in total cost
101+
- fixed B_skip mode to stop sending/reading of 8x8 transform flag in encoder and decoder
102+
- changed encoding using 8x8transform to be only equal to 1 when Transform8x8Mode in cfg file is equal to 2 for RD-on for encoder
103+
- skipped selecting of B_skip mode with 8x8transform_flag=1 when RD-on in encoder because it is not valid mode
104+
- fixed setting of NoSubMbPartSizeLessThan8x8Flag to zero when Intra16x16 mode is chosen in encoder to prevent encoder sending of 8x8transform flag
105+
106+
- fixed sending (in encoder) and receiving (in decoder) of q_matrix values only in zig_zag scan
107+
- fixed the correct mapping of matrix data to quantisation values in encoder and decoder
108+
- fixed using of wrong quantized levels for de-quantisation in encoder and decoder
109+
- switch order of getting transform values and inverse DC chroma420 level in encoder and decoder
110+
- removed Intra8x8_ChromaU, Intra8x8_ChromaV, Inter8x8_ChromaU, Inter8x8_ChromaV matrix in encoder and decoder
111+
- changed total matrix list to 8 according to standards
112+
- changed scalingList routine to follow the style stated in the standards in encoder and decoder
113+
- changed variables' names in encoder and decoder:
114+
Old Names -> New Names
115+
scaling_matrix_present_flag -> seq_scaling_matrix_present_flag
116+
scaling_list_present_flag -> seq_scaling_list_present_flag
117+
scaling_matrix_refinement_present_flag -> pic_scaling_matrix_present_flag
118+
scaling_list_refinement_present_flag -> pic_scaling_list_present_flag
119+
120+
- changed assigning of default matrix and fall-back rule for q matrix
121+
- added syntax in sps for chroma_format_idc and lossless_qpprime in encoder and decoder
122+
- changed location of pps fidelity range extension syntax to end of pps in encoder and decoder
123+
124+
From v.1.6 to v.1.7
125+
----------------
126+
- changed Chroma Intra DC calculation for YUV422 and YUV444
127+
128+
From v.1.3 to v.1.6
129+
----------------
130+
- added YUV422, YUV444 Formats
131+
132+
V.1.3
133+
----------------
134+
- added Q-matrix syntax and semantics in encoder and decoder
135+
- Q-matrix parameters are obtained from a file set in encoder.cfg
136+
- Q-matrix flags can be set in the encoder.cfg
137+
- fixed calculating of cost for Intra8x8 using SATD8x8
138+
- 8x8 transform is now able to be used with rd-off
139+
- New option for Transform8x8Mode, 2 for rd-off 8x8 transform mode only
140+
- changed getting of qp_const in dct to be macroblock-based instead of slice-based
141+
- changed output display to show Intra MB for all coding type
142+
- fixed bug on I8MB, storing of ipredmode in wrong location
143+
- fixed bug on I8MB, include setting of ipredmode to DC if Inter 8x8 is chosen
144+
- fixed ref idx for direct mode
145+
- updated changes from jm81a
146+
147+
148+
v.1.2
149+
----------------
150+
- new PROFILE_IDCs (for Fidelity Extensions) are added
151+
- Transform8x8Mode can be managed only at encoder site
152+
- LowPassForIntra8x8 is turned off
153+
- '#ifdef MIXED_TRANSFORM_SIZES' removed
154+
- small code resructuring and cleaning
155+
156+
157+
v.1.1
158+
----------------
159+
- QP scaling added (negative QPs are possible now)
160+
- lambda(rdcost) scaling added
161+
- luma/chroma bit depth variables to SPS added
162+
163+
v.1.0
164+
----------------
165+
- Mixed Transform Sizes and Variable Bit Depth (v.6.0) added
166+
167+

bin/decoder.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
test.264 ........H.264 coded bitstream
1+
test.264 ........H.26L coded bitstream
22
test_dec.yuv ........Output file, YUV 4:2:0 format
33
test_rec.yuv ........Ref sequence (for SNR)
44
10 ........Decoded Picture Buffer size

0 commit comments

Comments
 (0)