|
| 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 | + |
0 commit comments