- Timestamp:
- 26 May 2016, 15:03:18 (9 years ago)
- Location:
- branches/HTM-16.1-dev
- Files:
-
- 52 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/HTM-16.1-dev/COPYING
r1313 r1402 4 4 granted under this license. 5 5 6 Copyright (c) 2010-201 5, ITU/ISO/IEC6 Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 All rights reserved. 8 8 -
branches/HTM-16.1-dev/cfg/HM/encoder_lowdelay_P_main.cfg
r1313 r1402 21 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs24 Frame1: P 1 3 0 .4624 0 0 0 4 4 -1 -5 -9 -13 025 Frame2: P 2 2 0 .4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 126 Frame3: P 3 3 0 .4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 127 Frame4: P 4 1 0 .578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 123 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 24 Frame1: P 1 3 0 0 0.4624 0 0 0 4 4 -1 -5 -9 -13 0 25 Frame2: P 2 2 0 0 0.4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 1 26 Frame3: P 3 3 0 0 0.4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 1 27 Frame4: P 4 1 0 0 0.578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 1 28 28 29 29 #=========== Motion Search ============= … … 44 44 TransformSkip : 1 # Transform skipping (0: OFF, 1: ON) 45 45 TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1: ON) 46 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 47 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 48 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 46 49 47 50 #=========== Deblock Filter ============ 48 49 51 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param) 50 52 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) -
branches/HTM-16.1-dev/cfg/HM/encoder_lowdelay_P_main10.cfg
r1313 r1402 21 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs24 Frame1: P 1 3 0 .4624 0 0 0 4 4 -1 -5 -9 -13 025 Frame2: P 2 2 0 .4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 126 Frame3: P 3 3 0 .4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 127 Frame4: P 4 1 0 .578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 123 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 24 Frame1: P 1 3 0 0 0.4624 0 0 0 4 4 -1 -5 -9 -13 0 25 Frame2: P 2 2 0 0 0.4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 1 26 Frame3: P 3 3 0 0 0.4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 1 27 Frame4: P 4 1 0 0 0.578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 1 28 28 29 29 #=========== Motion Search ============= … … 44 44 TransformSkip : 1 # Transform skipping (0: OFF, 1: ON) 45 45 TransformSkipFast : 1 # Fast Transform skipping (0: OFF, 1: ON) 46 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 47 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 48 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 46 49 47 50 #=========== Deblock Filter ============ 48 49 51 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param) 50 52 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) -
branches/HTM-16.1-dev/cfg/HM/encoder_lowdelay_main.cfg
r1313 r1402 21 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs24 Frame1: B 1 3 0 .4624 0 0 0 4 4 -1 -5 -9 -13 025 Frame2: B 2 2 0 .4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 126 Frame3: B 3 3 0 .4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 127 Frame4: B 4 1 0 .578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 123 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 24 Frame1: B 1 3 0 0 0.4624 0 0 0 4 4 -1 -5 -9 -13 0 25 Frame2: B 2 2 0 0 0.4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 1 26 Frame3: B 3 3 0 0 0.4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 1 27 Frame4: B 4 1 0 0 0.578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 1 28 28 29 29 #=========== Motion Search ============= … … 42 42 RDOQ : 1 # RDOQ 43 43 RDOQTS : 1 # RDOQ for transform skip 44 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 45 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 46 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 44 47 45 48 #=========== Deblock Filter ============ 46 47 49 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param) 48 50 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) -
branches/HTM-16.1-dev/cfg/HM/encoder_lowdelay_main10.cfg
r1313 r1402 21 21 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs24 Frame1: B 1 3 0 .4624 0 0 0 4 4 -1 -5 -9 -13 025 Frame2: B 2 2 0 .4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 126 Frame3: B 3 3 0 .4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 127 Frame4: B 4 1 0 .578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 123 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 24 Frame1: B 1 3 0 0 0.4624 0 0 0 4 4 -1 -5 -9 -13 0 25 Frame2: B 2 2 0 0 0.4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 1 26 Frame3: B 3 3 0 0 0.4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 1 27 Frame4: B 4 1 0 0 0.578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 1 28 28 29 29 #=========== Motion Search ============= … … 42 42 RDOQ : 1 # RDOQ 43 43 RDOQTS : 1 # RDOQ for transform skip 44 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 45 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 46 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 44 47 45 48 #=========== Deblock Filter ============ 46 47 49 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param) 48 50 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) -
branches/HTM-16.1-dev/cfg/HM/encoder_lowdelay_main_rext.cfg
r1386 r1402 22 22 DecodingRefreshType : 0 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 23 23 GOPSize : 4 # GOP Size (number of B slice = GOPSize-1) 24 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs25 Frame1: B 1 3 0 .4624 0 0 0 4 4 -1 -5 -9 -13 026 Frame2: B 2 2 0 .4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 127 Frame3: B 3 3 0 .4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 128 Frame4: B 4 1 0 .578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 124 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 25 Frame1: B 1 3 0 0 0.4624 0 0 0 4 4 -1 -5 -9 -13 0 26 Frame2: B 2 2 0 0 0.4624 0 0 0 4 4 -1 -2 -6 -10 1 -1 5 1 1 1 0 1 27 Frame3: B 3 3 0 0 0.4624 0 0 0 4 4 -1 -3 -7 -11 1 -1 5 0 1 1 1 1 28 Frame4: B 4 1 0 0 0.578 0 0 0 4 4 -1 -4 -8 -12 1 -1 5 0 1 1 1 1 29 29 30 30 #=========== Motion Search ============= … … 43 43 RDOQ : 1 # RDOQ 44 44 RDOQTS : 1 # RDOQ for transform skip 45 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 46 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 47 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 45 48 46 49 #=========== Deblock Filter ============ -
branches/HTM-16.1-dev/cfg/HM/encoder_randomaccess_main.cfg
r1313 r1402 21 21 DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs24 Frame1: B 8 1 0 .442 0 0 0 2 3 -8 -12 -16 025 Frame2: B 4 2 0 .3536 0 0 1 2 3 -4 -8 4 1 4 4 1 1 0 126 Frame3: B 2 3 0 .3536 0 0 2 2 4 -2 -6 2 6 1 2 4 1 1 1 127 Frame4: B 1 4 0 .68 0 0 3 2 4 -1 1 3 7 1 1 5 1 0 1 1 128 Frame5: B 3 4 0 .68 0 0 3 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 029 Frame6: B 6 3 0 .3536 0 0 2 2 3 -2 -6 2 1 -3 5 0 1 1 1 030 Frame7: B 5 4 0 .68 0 0 3 2 4 -1 -5 1 3 1 1 4 1 1 1 131 Frame8: B 7 4 0 .68 0 0 3 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 023 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 24 Frame1: B 8 1 0 0 0.442 0 0 0 2 3 -8 -12 -16 0 25 Frame2: B 4 2 0 0 0.3536 0 0 1 2 3 -4 -8 4 1 4 4 1 1 0 1 26 Frame3: B 2 3 0 0 0.3536 0 0 2 2 4 -2 -6 2 6 1 2 4 1 1 1 1 27 Frame4: B 1 4 0 0 0.68 0 0 3 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 28 Frame5: B 3 4 0 0 0.68 0 0 3 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 29 Frame6: B 6 3 0 0 0.3536 0 0 2 2 3 -2 -6 2 1 -3 5 0 1 1 1 0 30 Frame7: B 5 4 0 0 0.68 0 0 3 2 4 -1 -5 1 3 1 1 4 1 1 1 1 31 Frame8: B 7 4 0 0 0.68 0 0 3 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 32 32 33 33 #=========== Motion Search ============= … … 46 46 RDOQ : 1 # RDOQ 47 47 RDOQTS : 1 # RDOQ for transform skip 48 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 49 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 50 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 48 51 49 52 #=========== Deblock Filter ============ 50 51 53 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param) 52 54 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) -
branches/HTM-16.1-dev/cfg/HM/encoder_randomaccess_main10.cfg
r1313 r1402 21 21 DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs24 Frame1: B 8 1 0 .442 0 0 0 2 3 -8 -12 -16 025 Frame2: B 4 2 0 .3536 0 0 1 2 3 -4 -8 4 1 4 4 1 1 0 126 Frame3: B 2 3 0 .3536 0 0 2 2 4 -2 -6 2 6 1 2 4 1 1 1 127 Frame4: B 1 4 0 .68 0 0 3 2 4 -1 1 3 7 1 1 5 1 0 1 1 128 Frame5: B 3 4 0 .68 0 0 3 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 029 Frame6: B 6 3 0 .3536 0 0 2 2 3 -2 -6 2 1 -3 5 0 1 1 1 030 Frame7: B 5 4 0 .68 0 0 3 2 4 -1 -5 1 3 1 1 4 1 1 1 131 Frame8: B 7 4 0 .68 0 0 3 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 023 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 24 Frame1: B 8 1 0 0 0.442 0 0 0 2 3 -8 -12 -16 0 25 Frame2: B 4 2 0 0 0.3536 0 0 1 2 3 -4 -8 4 1 4 4 1 1 0 1 26 Frame3: B 2 3 0 0 0.3536 0 0 2 2 4 -2 -6 2 6 1 2 4 1 1 1 1 27 Frame4: B 1 4 0 0 0.68 0 0 3 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 28 Frame5: B 3 4 0 0 0.68 0 0 3 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 29 Frame6: B 6 3 0 0 0.3536 0 0 2 2 3 -2 -6 2 1 -3 5 0 1 1 1 0 30 Frame7: B 5 4 0 0 0.68 0 0 3 2 4 -1 -5 1 3 1 1 4 1 1 1 1 31 Frame8: B 7 4 0 0 0.68 0 0 3 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 32 32 33 33 #=========== Motion Search ============= … … 46 46 RDOQ : 1 # RDOQ 47 47 RDOQTS : 1 # RDOQ for transform skip 48 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 49 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 50 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 48 51 49 52 #=========== Deblock Filter ============ 50 51 53 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 (default) =constant params in PPS, param = base_param) 52 54 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) -
branches/HTM-16.1-dev/cfg/HM/encoder_randomaccess_main_rext.cfg
r1386 r1402 22 22 DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 23 23 GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) 24 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs25 Frame1: B 8 1 0 .442 0 0 0 2 3 -8 -12 -16 026 Frame2: B 4 2 0 .3536 0 0 1 2 3 -4 -8 4 1 4 4 1 1 0 127 Frame3: B 2 3 0 .3536 0 0 2 2 4 -2 -6 2 6 1 2 4 1 1 1 128 Frame4: B 1 4 0 .68 0 0 3 2 4 -1 1 3 7 1 1 5 1 0 1 1 129 Frame5: B 3 4 0 .68 0 0 3 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 030 Frame6: B 6 3 0 .3536 0 0 2 2 3 -2 -6 2 1 -3 5 0 1 1 1 031 Frame7: B 5 4 0 .68 0 0 3 2 4 -1 -5 1 3 1 1 4 1 1 1 132 Frame8: B 7 4 0 .68 0 0 3 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 024 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 25 Frame1: B 8 1 0 0 0.442 0 0 0 2 3 -8 -12 -16 0 26 Frame2: B 4 2 0 0 0.3536 0 0 1 2 3 -4 -8 4 1 4 4 1 1 0 1 27 Frame3: B 2 3 0 0 0.3536 0 0 2 2 4 -2 -6 2 6 1 2 4 1 1 1 1 28 Frame4: B 1 4 0 0 0.68 0 0 3 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 29 Frame5: B 3 4 0 0 0.68 0 0 3 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 30 Frame6: B 6 3 0 0 0.3536 0 0 2 2 3 -2 -6 2 1 -3 5 0 1 1 1 0 31 Frame7: B 5 4 0 0 0.68 0 0 3 2 4 -1 -5 1 3 1 1 4 1 1 1 1 32 Frame8: B 7 4 0 0 0.68 0 0 3 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 33 33 34 34 #=========== Motion Search ============= … … 47 47 RDOQ : 1 # RDOQ 48 48 RDOQTS : 1 # RDOQ for transform skip 49 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 50 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 51 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 49 52 50 53 #=========== Deblock Filter ============ -
branches/HTM-16.1-dev/cfg/HM/misc/encoder_lowdelay_main_field_coding.cfg
r1313 r1402 40 40 GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) 41 41 42 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference picturespredict deltaRPS #ref_idcs reference idcs43 Frame1: B 2 3 0 .4624 0 0 0 8 8 -1 -2 -9 -10 -17 -18 -25 -26044 Frame2: B 3 4 0 .4624 0 0 0 8 9 -1 -2 -3 -10 -11 -18 -19 -26 -27 1-1 9 1 1 1 1 1 1 1 1 145 Frame3: B 4 2 0 .4624 0 0 0 8 8 -1 -2 -3 -4 -11 -12 -19 -20 1 -1 10 1 1 1 1 1 1 1 0 0 146 Frame4: B 5 3 0 .4624 0 0 0 8 9 -1 -2 -3 -4 -5 -12 -13 -20 -21 1-1 9 1 1 1 1 1 1 1 1 147 Frame5: B 6 3 0 .4624 0 0 0 8 8 -1 -2 -5 -6 -13 -14 -21 -22 1 -1 101 0 0 1 1 1 1 1 1 148 Frame6: B 7 4 0 .4624 0 0 0 8 9 -1 -2 -3 -6 -7 -14 -15 -22 -23 1-1 9 1 1 1 1 1 1 1 1 149 Frame7: B 8 1 0 .578 0 0 0 8 8 -1 -2 -7 -8 -15 -16 -23 -24 1 -1 10 1 0 0 1 1 1 1 1 1 150 Frame8: B 9 1 0 .578 0 0 0 8 9 -1 -2 -3 -8 -9 -16 -17 -24 -25 1-1 9 1 1 1 1 1 1 1 1 142 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 43 Frame1: B 2 3 0 0 0.4624 0 0 0 8 8 -1 -2 -9 -10 -17 -18 -25 -26 0 44 Frame2: B 3 4 0 0 0.4624 0 0 0 8 9 -1 -2 -3 -10 -11 -18 -19 -26 -27 1 -1 9 1 1 1 1 1 1 1 1 1 45 Frame3: B 4 2 0 0 0.4624 0 0 0 8 8 -1 -2 -3 -4 -11 -12 -19 -20 1 -1 10 1 1 1 1 1 1 1 0 0 1 46 Frame4: B 5 3 0 0 0.4624 0 0 0 8 9 -1 -2 -3 -4 -5 -12 -13 -20 -21 1 -1 9 1 1 1 1 1 1 1 1 1 47 Frame5: B 6 3 0 0 0.4624 0 0 0 8 8 -1 -2 -5 -6 -13 -14 -21 -22 1 -1 10 1 0 0 1 1 1 1 1 1 1 48 Frame6: B 7 4 0 0 0.4624 0 0 0 8 9 -1 -2 -3 -6 -7 -14 -15 -22 -23 1 -1 9 1 1 1 1 1 1 1 1 1 49 Frame7: B 8 1 0 0 0.578 0 0 0 8 8 -1 -2 -7 -8 -15 -16 -23 -24 1 -1 10 1 0 0 1 1 1 1 1 1 1 50 Frame8: B 9 1 0 0 0.578 0 0 0 8 9 -1 -2 -3 -8 -9 -16 -17 -24 -25 1 -1 9 1 1 1 1 1 1 1 1 1 51 51 52 52 #=========== Motion Search ============= … … 65 65 RDOQ : 1 # RDOQ 66 66 RDOQTS : 1 # RDOQ for transform skip 67 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 68 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 69 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 67 70 68 71 #=========== Deblock Filter ============ 69 70 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 =constant params in PPS, param = base_param) 72 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1=constant params in PPS, param = base_param) 71 73 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) 72 74 LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6 -
branches/HTM-16.1-dev/cfg/HM/misc/encoder_randomaccess_main_2tids.cfg
r1313 r1402 21 21 DecodingRefreshType : 1 # Random Accesss 0:none, 1:CRA, 2:IDR, 3:Recovery Point SEI 22 22 GOPSize : 8 # GOP Size (number of B slice = GOPSize-1) 23 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs24 Frame1: B 8 1 0 .442 0 0 0 4 4 -8 -10 -12 -16 025 Frame2: B 4 2 0 .3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 126 Frame3: B 2 3 0 .3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 127 Frame4: B 1 4 0 .68 0 0 1 2 4 -1 1 3 7 1 1 5 1 0 1 1 128 Frame5: B 3 4 0 .68 0 0 1 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 029 Frame6: B 6 3 0 .3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 030 Frame7: B 5 4 0 .68 0 0 1 2 4 -1 -5 1 3 1 1 5 1 0 1 1 131 Frame8: B 7 4 0 .68 0 0 1 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 023 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 24 Frame1: B 8 1 0 0 0.442 0 0 0 4 4 -8 -10 -12 -16 0 25 Frame2: B 4 2 0 0 0.3536 0 0 0 2 3 -4 -6 4 1 4 5 1 1 0 0 1 26 Frame3: B 2 3 0 0 0.3536 0 0 0 2 4 -2 -4 2 6 1 2 4 1 1 1 1 27 Frame4: B 1 4 0 0 0.68 0 0 1 2 4 -1 1 3 7 1 1 5 1 0 1 1 1 28 Frame5: B 3 4 0 0 0.68 0 0 1 2 4 -1 -3 1 5 1 -2 5 1 1 1 1 0 29 Frame6: B 6 3 0 0 0.3536 0 0 0 2 4 -2 -4 -6 2 1 -3 5 1 1 1 1 0 30 Frame7: B 5 4 0 0 0.68 0 0 1 2 4 -1 -5 1 3 1 1 5 1 0 1 1 1 31 Frame8: B 7 4 0 0 0.68 0 0 1 2 4 -1 -3 -7 1 1 -2 5 1 1 1 1 0 32 32 33 33 #=========== Motion Search ============= … … 46 46 RDOQ : 1 # RDOQ 47 47 RDOQTS : 1 # RDOQ for transform skip 48 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 49 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 50 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 48 51 49 52 #=========== Deblock Filter ============ 50 51 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 =constant params in PPS, param = base_param) 53 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1=constant params in PPS, param = base_param) 52 54 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) 53 55 LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6 -
branches/HTM-16.1-dev/cfg/HM/misc/encoder_randomaccess_main_field_coding.cfg
r1313 r1402 41 41 42 42 # field coding GOP: Exchanged coding order of 16th and 17th field for more efficient encoding 43 # 43 # When EfficientFieldIRAPEnabled=1 is enabled, this has no additional effect 44 44 45 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs45 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 46 46 47 Frame1: B 17 1 0 .442 0 00 4 4 -16 -17 -20 -21 048 Frame2: B 16 1 0 .442 0 00 3 3 -15 -16 1 1 1 5 1 1 0 0 149 Frame3: B 8 2 0 .3536 0 00 2 4 -7 -8 8 9 1 8 4 1 1 1 150 Frame4: B 9 2 0 .3536 0 00 2 5 -1 -8 -9 7 8 1 -1 5 1 1 1 1 151 Frame5: B 4 3 0 .3536 0 00 2 6 -3 -4 4 5 12 13 1 5 6 1 1 1 1 1 152 Frame6: B 5 3 0 .3536 0 00 2 7 -1 -4 -5 3 4 11 12 1 -1 7 1 1 1 1 1 1 153 Frame7: B 2 3 0 .3536 0 00 2 8 -1 -2 2 3 6 7 14 15 1 3 8 1 1 1 1 1 1 1 154 Frame8: B 3 4 0 .68 0 00 2 8 -1 -2 1 2 5 6 13 14 1 -1 9 1 0 1 1 1 1 1 1 155 Frame9: B 6 3 0 .3536 0 00 2 6 -1 -2 2 3 10 11 1 -3 9 0 0 1 1 1 1 1 1 056 Frame10: B 7 4 0 .68 0 00 2 7 -1 -2 -3 1 2 9 10 1 -1 7 1 1 1 1 1 1 157 Frame11: B 12 3 0 .3536 0 00 2 4 -3 -4 4 5 1 -5 8 0 0 0 1 1 1 1 058 Frame12: B 13 3 0 .3536 0 00 2 5 -1 -4 -5 3 4 1 -1 5 1 1 1 1 159 Frame13: B 10 3 0 .3536 0 00 2 6 -1 -2 2 3 6 7 1 3 6 1 1 1 1 1 160 Frame14: B 11 4 0 .68 0 00 2 7 -1 -2 -3 1 2 5 6 1 -1 7 1 1 1 1 1 1 161 Frame15: B 14 3 0 .3536 0 00 2 5 -1 -2 -5 2 3 1 -3 8 0 1 0 1 1 1 1 062 Frame16: B 15 4 0 .68 0 00 2 6 -1 -2 -3 -6 1 2 1 -1 6 1 1 1 1 1 147 Frame1: B 17 1 0 0 0.442 0 0 0 4 4 -16 -17 -20 -21 0 48 Frame2: B 16 1 0 0 0.442 0 0 0 3 3 -15 -16 1 1 1 5 1 1 0 0 1 49 Frame3: B 8 2 0 0 0.3536 0 0 0 2 4 -7 -8 8 9 1 8 4 1 1 1 1 50 Frame4: B 9 2 0 0 0.3536 0 0 0 2 5 -1 -8 -9 7 8 1 -1 5 1 1 1 1 1 51 Frame5: B 4 3 0 0 0.3536 0 0 0 2 6 -3 -4 4 5 12 13 1 5 6 1 1 1 1 1 1 52 Frame6: B 5 3 0 0 0.3536 0 0 0 2 7 -1 -4 -5 3 4 11 12 1 -1 7 1 1 1 1 1 1 1 53 Frame7: B 2 3 0 0 0.3536 0 0 0 2 8 -1 -2 2 3 6 7 14 15 1 3 8 1 1 1 1 1 1 1 1 54 Frame8: B 3 4 0 0 0.68 0 0 0 2 8 -1 -2 1 2 5 6 13 14 1 -1 9 1 0 1 1 1 1 1 1 1 55 Frame9: B 6 3 0 0 0.3536 0 0 0 2 6 -1 -2 2 3 10 11 1 -3 9 0 0 1 1 1 1 1 1 0 56 Frame10: B 7 4 0 0 0.68 0 0 0 2 7 -1 -2 -3 1 2 9 10 1 -1 7 1 1 1 1 1 1 1 57 Frame11: B 12 3 0 0 0.3536 0 0 0 2 4 -3 -4 4 5 1 -5 8 0 0 0 1 1 1 1 0 58 Frame12: B 13 3 0 0 0.3536 0 0 0 2 5 -1 -4 -5 3 4 1 -1 5 1 1 1 1 1 59 Frame13: B 10 3 0 0 0.3536 0 0 0 2 6 -1 -2 2 3 6 7 1 3 6 1 1 1 1 1 1 60 Frame14: B 11 4 0 0 0.68 0 0 0 2 7 -1 -2 -3 1 2 5 6 1 -1 7 1 1 1 1 1 1 1 61 Frame15: B 14 3 0 0 0.3536 0 0 0 2 5 -1 -2 -5 2 3 1 -3 8 0 1 0 1 1 1 1 0 62 Frame16: B 15 4 0 0 0.68 0 0 0 2 6 -1 -2 -3 -6 1 2 1 -1 6 1 1 1 1 1 1 63 63 64 64 #=========== Motion Search ============= … … 77 77 RDOQ : 1 # RDOQ 78 78 RDOQTS : 1 # RDOQ for transform skip 79 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 80 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 81 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 79 82 80 83 #=========== Deblock Filter ============ 81 82 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 =constant params in PPS, param = base_param) 84 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1=constant params in PPS, param = base_param) 83 85 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) 84 86 LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6 -
branches/HTM-16.1-dev/cfg/HM/misc/encoder_randomaccess_main_field_coding_simple_GOP.cfg
r1313 r1402 40 40 GOPSize : 16 # GOP Size (number of B slice = GOPSize-1) 41 41 42 # 42 # simple field coding GOP: When EfficientFieldIRAPEnabled=1 is enabled, the order of frames 16 and 17 is exchanged 43 43 44 # Type POC QPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs44 # Type POC QPoffset CbQPoffset CrQPoffset QPfactor tcOffsetDiv2 betaOffsetDiv2 temporal_id #ref_pics_active #ref_pics reference pictures predict deltaRPS #ref_idcs reference idcs 45 45 46 Frame1: B 16 1 0 .442 0 0 0 8 8 -15 -16 -19 -20 -23 -24 -31 -32 047 Frame2: B 17 1 0 .442 0 0 0 4 9 -1 -16 -17 -20 -21 -24 -25 -32 -33 1 -1 9 1 1 1 1 1 1 1 1 148 Frame3: B 8 2 0 .3536 0 0 0 4 6 -7 -8 -11 -12 8 9 1 9 10 1 1 1 1 1 0 0 0 0 149 Frame4: B 9 3 0 .3536 0 0 0 4 7 -1 -8 -9 -12 -13 7 8 1 -1 7 1 1 1 1 1 1 150 Frame5: B 4 3 0 .3536 0 0 0 4 8 -3 -4 -7 -8 4 5 12 13 1 5 8 1 1 1 1 1 1 1 151 Frame6: B 5 4 0 .68 0 0 0 4 9 -1 -4 -5 -8 -9 3 4 11 12 1 -1 9 1 1 1 1 1 1 1 1 152 Frame7: B 2 3 0 .3536 0 0 0 4 8 -1 -2 2 3 6 7 14 15 1 3 10 1 1 1 0 0 1 1 1 1 153 Frame8: B 3 4 0 .68 0 0 0 4 9 -1 -2 -3 1 2 5 6 13 14 1 -1 9 1 1 1 1 1 1 1 1 154 Frame9: B 6 3 0 .3536 0 0 0 4 8 -1 -2 -5 -6 2 3 10 11 1 -3 10 0 1 1 1 1 1 1 1 1 055 Frame10: B 7 4 0 .68 0 0 0 4 9 -1 -2 -3 -6 -7 1 2 9 10 1 -1 9 1 1 1 1 1 1 1 1 156 Frame11: B 12 3 0 .3536 0 0 0 4 8 -3 -4 -7 -8 -11 -12 4 5 1 -5 10 0 1 1 1 1 1 1 1 1 057 Frame12: B 13 4 0 .68 0 0 0 4 9 -1 -4 -5 -8 -9 -12 -13 3 4 1 -1 9 1 1 1 1 1 1 1 1 158 Frame13: B 10 3 0 .3536 0 0 0 4 8 -1 -2 -9 -10 2 3 6 7 1 3 10 1 1 1 0 0 1 1 1 1 159 Frame14: B 11 4 0 .68 0 0 0 4 9 -1 -2 -3 -10 -11 1 2 5 6 1 -1 9 1 1 1 1 1 1 1 1 160 Frame15: B 14 3 0 .3536 0 0 0 4 8 -1 -2 -5 -6 -13 -14 2 3 1 -3 10 0 1 1 1 1 1 1 1 1 061 Frame16: B 15 4 0 .68 0 0 0 4 9 -1 -2 -3 -6 -7 -14 -15 1 2 1 -1 9 1 1 1 1 1 1 1 1 146 Frame1: B 16 1 0 0 0.442 0 0 0 8 8 -15 -16 -19 -20 -23 -24 -31 -32 0 47 Frame2: B 17 1 0 0 0.442 0 0 0 4 9 -1 -16 -17 -20 -21 -24 -25 -32 -33 1 -1 9 1 1 1 1 1 1 1 1 1 48 Frame3: B 8 2 0 0 0.3536 0 0 0 4 6 -7 -8 -11 -12 8 9 1 9 10 1 1 1 1 1 0 0 0 0 1 49 Frame4: B 9 3 0 0 0.3536 0 0 0 4 7 -1 -8 -9 -12 -13 7 8 1 -1 7 1 1 1 1 1 1 1 50 Frame5: B 4 3 0 0 0.3536 0 0 0 4 8 -3 -4 -7 -8 4 5 12 13 1 5 8 1 1 1 1 1 1 1 1 51 Frame6: B 5 4 0 0 0.68 0 0 0 4 9 -1 -4 -5 -8 -9 3 4 11 12 1 -1 9 1 1 1 1 1 1 1 1 1 52 Frame7: B 2 3 0 0 0.3536 0 0 0 4 8 -1 -2 2 3 6 7 14 15 1 3 10 1 1 1 0 0 1 1 1 1 1 53 Frame8: B 3 4 0 0 0.68 0 0 0 4 9 -1 -2 -3 1 2 5 6 13 14 1 -1 9 1 1 1 1 1 1 1 1 1 54 Frame9: B 6 3 0 0 0.3536 0 0 0 4 8 -1 -2 -5 -6 2 3 10 11 1 -3 10 0 1 1 1 1 1 1 1 1 0 55 Frame10: B 7 4 0 0 0.68 0 0 0 4 9 -1 -2 -3 -6 -7 1 2 9 10 1 -1 9 1 1 1 1 1 1 1 1 1 56 Frame11: B 12 3 0 0 0.3536 0 0 0 4 8 -3 -4 -7 -8 -11 -12 4 5 1 -5 10 0 1 1 1 1 1 1 1 1 0 57 Frame12: B 13 4 0 0 0.68 0 0 0 4 9 -1 -4 -5 -8 -9 -12 -13 3 4 1 -1 9 1 1 1 1 1 1 1 1 1 58 Frame13: B 10 3 0 0 0.3536 0 0 0 4 8 -1 -2 -9 -10 2 3 6 7 1 3 10 1 1 1 0 0 1 1 1 1 1 59 Frame14: B 11 4 0 0 0.68 0 0 0 4 9 -1 -2 -3 -10 -11 1 2 5 6 1 -1 9 1 1 1 1 1 1 1 1 1 60 Frame15: B 14 3 0 0 0.3536 0 0 0 4 8 -1 -2 -5 -6 -13 -14 2 3 1 -3 10 0 1 1 1 1 1 1 1 1 0 61 Frame16: B 15 4 0 0 0.68 0 0 0 4 9 -1 -2 -3 -6 -7 -14 -15 1 2 1 -1 9 1 1 1 1 1 1 1 1 1 62 62 63 63 #=========== Motion Search ============= … … 76 76 RDOQ : 1 # RDOQ 77 77 RDOQTS : 1 # RDOQ for transform skip 78 SliceChromaQPOffsetPeriodicity: 0 # Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 79 SliceCbQpOffsetIntraOrPeriodic: 0 # Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 80 SliceCrQpOffsetIntraOrPeriodic: 0 # Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 78 81 79 82 #=========== Deblock Filter ============ 80 81 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1 =constant params in PPS, param = base_param) 83 LoopFilterOffsetInPPS : 1 # Dbl params: 0=varying params in SliceHeader, param = base_param + GOP_offset_param; 1=constant params in PPS, param = base_param) 82 84 LoopFilterDisable : 0 # Disable deblocking filter (0=Filter, 1=No Filter) 83 85 LoopFilterBetaOffset_div2 : 0 # base_param: -6 ~ 6 -
branches/HTM-16.1-dev/source/App/TAppEncoder/TAppEncCfg.cpp
r1401 r1402 239 239 in>>entry.m_POC; 240 240 in>>entry.m_QPOffset; 241 #if W0038_CQP_ADJ 242 in>>entry.m_CbQPoffset; 243 in>>entry.m_CrQPoffset; 244 #endif 241 245 in>>entry.m_QPFactor; 242 246 in>>entry.m_tcOffsetDiv2; … … 769 773 const Int defaultPrimaryCodes[6] = { 0,50000, 0,0, 50000,0 }; 770 774 const Int defaultWhitePointCode[2] = { 16667, 16667 }; 771 SMultiValueInput<Int> cfg_DisplayPrimariesCode (0, 50000, 3, 3, defaultPrimaryCodes, sizeof(defaultPrimaryCodes )/sizeof(Int));775 SMultiValueInput<Int> cfg_DisplayPrimariesCode (0, 50000, 6, 6, defaultPrimaryCodes, sizeof(defaultPrimaryCodes )/sizeof(Int)); 772 776 SMultiValueInput<Int> cfg_DisplayWhitePointCode (0, 50000, 2, 2, defaultWhitePointCode, sizeof(defaultWhitePointCode)/sizeof(Int)); 773 777 … … 877 881 ("FrameRate,-fr", m_iFrameRate, 0, "Frame rate") 878 882 ("FrameSkip,-fs", m_FrameSkip, 0u, "Number of frames to skip at start of input YUV") 883 ("TemporalSubsampleRatio,-ts", m_temporalSubsampleRatio, 1u, "Temporal sub-sample ratio when reading input YUV") 879 884 ("FramesToBeEncoded,f", m_framesToBeEncoded, 0, "Number of frames to be encoded (default=all)") 880 885 ("ClipInputVideoToRec709Range", m_bClipInputVideoToRec709Range, false, "If true then clip input video to the Rec. 709 Range on loading when InternalBitDepth is less than MSBExtendedBitDepth") … … 950 955 951 956 ("HadamardME", m_bUseHADME, true, "Hadamard ME for fractional-pel") 952 ("ASR", m_bUseASR, false, "Adaptive motion search range") 957 ("ASR", m_bUseASR, false, "Adaptive motion search range"); 958 opts.addOptions() 953 959 954 960 // Mode decision parameters … … 978 984 ("CrQpOffset,-crqpofs", m_crQpOffset, 0, "Chroma Cr QP Offset") 979 985 986 #if W0038_CQP_ADJ 987 ("SliceChromaQPOffsetPeriodicity", m_sliceChromaQpOffsetPeriodicity, 0u, "Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature.") 988 ("SliceCbQpOffsetIntraOrPeriodic", m_sliceChromaQpOffsetIntraOrPeriodic[0], 0, "Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table.") 989 ("SliceCrQpOffsetIntraOrPeriodic", m_sliceChromaQpOffsetIntraOrPeriodic[1], 0, "Chroma Cr QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table.") 990 #endif 980 991 #if ADAPTIVE_QP_SELECTION 981 992 ("AdaptiveQpSelection,-aqps", m_bUseAdaptQpSelect, false, "AdaptiveQpSelection") … … 1001 1012 ("LoopFilterBetaOffset_div2", m_loopFilterBetaOffsetDiv2, 0) 1002 1013 ("LoopFilterTcOffset_div2", m_loopFilterTcOffsetDiv2, 0) 1014 #if W0038_DB_OPT 1015 ("DeblockingFilterMetric", m_deblockingFilterMetric, 0) 1016 #else 1003 1017 ("DeblockingFilterMetric", m_DeblockingFilterMetric, false) 1004 1018 #endif 1005 1019 // Coding tools 1006 1020 ("AMP", m_enableAMP, true, "Enable asymmetric motion partitions") … … 1028 1042 ("MaxNumOffsetsPerPic", m_maxNumOffsetsPerPic, 2048, "Max number of SAO offset per picture (Default: 2048)") 1029 1043 ("SAOLcuBoundary", m_saoCtuBoundary, false, "0: right/bottom CTU boundary areas skipped from SAO parameter estimation, 1: non-deblocked pixels are used for those areas") 1044 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 1045 ("SAOResetEncoderStateAfterIRAP", m_saoResetEncoderStateAfterIRAP, false, "When true, resets the encoder's SAO state after an IRAP (POC order). Disabled by default.") 1046 #endif 1030 1047 ("SliceMode", tmpSliceMode, Int(NO_SLICES), "0: Disable all Recon slice limits, 1: Enforce max # of CTUs, 2: Enforce max # of bytes, 3:specify tiles per dependent slice") 1031 1048 ("SliceArgument", m_sliceArgument, 0, "Depending on SliceMode being:" … … 1138 1155 ("RecalculateQPAccordingToLambda", m_recalculateQPAccordingToLambda, false, "Recalculate QP values according to lambda values. Do not suggest to be enabled in all intra case") 1139 1156 ("StrongIntraSmoothing,-sis", m_useStrongIntraSmoothing, true, "Enable strong intra smoothing for 32x32 blocks") 1140 ("SEIActiveParameterSets", m_activeParameterSetsSEIEnabled, 0, "Enable generation of active parameter sets SEI messages") 1157 ("SEIActiveParameterSets", m_activeParameterSetsSEIEnabled, 0, "Enable generation of active parameter sets SEI messages"); 1158 opts.addOptions() 1141 1159 ("VuiParametersPresent,-vui", m_vuiParametersPresentFlag, false, "Enable generation of vui_parameters()") 1142 1160 ("AspectRatioInfoPresent", m_aspectRatioInfoPresentFlag, false, "Signals whether aspect_ratio_idc is present") … … 1171 1189 ("MaxBitsPerMinCuDenom", m_maxBitsPerMinCuDenom, 1, "Indicates an upper bound for the number of bits of coding_unit() data") 1172 1190 ("Log2MaxMvLengthHorizontal", m_log2MaxMvLengthHorizontal, 15, "Indicate the maximum absolute value of a decoded horizontal MV component in quarter-pel luma units") 1173 ("Log2MaxMvLengthVertical", m_log2MaxMvLengthVertical, 15, "Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units") 1191 ("Log2MaxMvLengthVertical", m_log2MaxMvLengthVertical, 15, "Indicate the maximum absolute value of a decoded vertical MV component in quarter-pel luma units"); 1192 opts.addOptions() 1174 1193 ("SEIColourRemappingInfoFileRoot,-cri", m_colourRemapSEIFileRoot, string(""), "Colour Remapping Information SEI parameters root file name (wo num ext)") 1175 1194 ("SEIRecoveryPoint", m_recoveryPointSEIEnabled, false, "Control generation of recovery point SEI messages") … … 1277 1296 ("SEIMasteringDisplayPrimaries", cfg_DisplayPrimariesCode, cfg_DisplayPrimariesCode, "Mastering display primaries for all three colour planes in CIE xy coordinates in increments of 1/50000 (results in the ranges 0 to 50000 inclusive)") 1278 1297 ("SEIMasteringDisplayWhitePoint", cfg_DisplayWhitePointCode, cfg_DisplayWhitePointCode, "Mastering display white point CIE xy coordinates in normalised increments of 1/50000 (e.g. 0.333 = 16667)") 1298 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 1299 ("SEIPreferredTransferCharacterisics", m_preferredTransferCharacteristics, -1, "Value for the preferred_transfer_characteristics field of the Alternative transfer characteristics SEI which will override the corresponding entry in the VUI. If negative, do not produce the respective SEI message") 1300 #endif 1279 1301 #if NH_MV 1280 1302 ("SeiCfgFileName_%d", m_seiCfgFileNames, (TChar *) 0 ,MAX_NUM_SEIS , "SEI cfg file name %d") … … 1416 1438 * Set any derived parameters 1417 1439 */ 1440 1441 m_framesToBeEncoded = ( m_framesToBeEncoded + m_temporalSubsampleRatio - 1 ) / m_temporalSubsampleRatio; 1418 1442 m_adIntraLambdaModifier = cfg_adIntraLambdaModifier.values; 1419 1443 if(m_isField) … … 2259 2283 xConfirmPara( m_InputChromaFormatIDC >= NUM_CHROMA_FORMAT, "InputChromaFormatIDC must be either 400, 420, 422 or 444" ); 2260 2284 xConfirmPara( m_iFrameRate <= 0, "Frame rate must be more than 1" ); 2285 xConfirmPara( m_temporalSubsampleRatio < 1, "Temporal subsample rate must be no less than 1" ); 2261 2286 xConfirmPara( m_framesToBeEncoded <= 0, "Total Number Of Frames encoded must be more than 0" ); 2262 2287 #if NH_MV … … 2507 2532 { 2508 2533 xConfirmPara( m_iQP[layer] < -6 * (m_internalBitDepth[CHANNEL_TYPE_LUMA] - 8) || m_iQP[layer] > 51, "QP exceeds supported range (-QpBDOffsety to 51)" ); 2509 xConfirmPara( m_ DeblockingFilterMetric&& (m_bLoopFilterDisable[layer] || m_loopFilterOffsetInPPS), "If DeblockingFilterMetric is true then both LoopFilterDisable and LoopFilterOffsetInPPS must be 0");2534 xConfirmPara( m_deblockingFilterMetric!=0 && (m_bLoopFilterDisable[layer] || m_loopFilterOffsetInPPS), "If DeblockingFilterMetric is true then both LoopFilterDisable and LoopFilterOffsetInPPS must be 0"); 2510 2535 } 2511 2536 #else 2512 2537 xConfirmPara( m_iQP < -6 * (m_internalBitDepth[CHANNEL_TYPE_LUMA] - 8) || m_iQP > 51, "QP exceeds supported range (-QpBDOffsety to 51)" ); 2538 #if W0038_DB_OPT 2539 xConfirmPara( m_deblockingFilterMetric!=0 && (m_bLoopFilterDisable || m_loopFilterOffsetInPPS), "If DeblockingFilterMetric is non-zero then both LoopFilterDisable and LoopFilterOffsetInPPS must be 0"); 2540 #else 2513 2541 xConfirmPara( m_DeblockingFilterMetric && (m_bLoopFilterDisable || m_loopFilterOffsetInPPS), "If DeblockingFilterMetric is true then both LoopFilterDisable and LoopFilterOffsetInPPS must be 0"); 2542 #endif 2514 2543 #endif 2515 2544 … … 2537 2566 { 2538 2567 xConfirmPara( m_iIntraPeriod[i] > 0 && m_iIntraPeriod[i] <= m_iGOPSize , "Intra period must be larger than GOP size for periodic IDR pictures"); 2568 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 2569 if (m_saoResetEncoderStateAfterIRAP) 2570 { 2571 xConfirmPara( m_iIntraPeriod[i] > 0 && m_iIntraPeriod[i] <= m_iGOPSize , "Intra period must be larger than GOP size when SAOResetEncoderStateAfterIRAP is enabled"); 2572 } 2573 #endif 2574 2539 2575 } 2540 2576 #else 2541 xConfirmPara( m_iIntraPeriod > 0 && m_iIntraPeriod <= m_iGOPSize , "Intra period must be larger than GOP size for periodic IDR pictures"); 2577 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 2578 if (m_saoResetEncoderStateAfterIRAP) 2579 { 2580 xConfirmPara( m_iIntraPeriod > 0 && m_iIntraPeriod <= m_iGOPSize , "Intra period must be larger than GOP size when SAOResetEncoderStateAfterIRAP is enabled"); 2581 } 2582 #endif 2583 2584 xConfirmPara( m_iIntraPeriod > 0 && m_iIntraPeriod <= m_iGOPSize , "Intra period must be larger than GOP size for periodic IDR pictures"); 2542 2585 #endif 2543 2586 } … … 2876 2919 } 2877 2920 } 2921 2922 #if W0038_CQP_ADJ 2923 for(Int i=0; i<m_iGOPSize; i++) 2924 { 2925 xConfirmPara( abs(m_GOPList[i].m_CbQPoffset ) > 12, "Cb QP Offset for one of the GOP entries exceeds supported range (-12 to 12)" ); 2926 xConfirmPara( abs(m_GOPList[i].m_CbQPoffset + m_cbQpOffset) > 12, "Cb QP Offset for one of the GOP entries, when combined with the PPS Cb offset, exceeds supported range (-12 to 12)" ); 2927 xConfirmPara( abs(m_GOPList[i].m_CrQPoffset ) > 12, "Cr QP Offset for one of the GOP entries exceeds supported range (-12 to 12)" ); 2928 xConfirmPara( abs(m_GOPList[i].m_CrQPoffset + m_crQpOffset) > 12, "Cr QP Offset for one of the GOP entries, when combined with the PPS Cr offset, exceeds supported range (-12 to 12)" ); 2929 } 2930 xConfirmPara( abs(m_sliceChromaQpOffsetIntraOrPeriodic[0] > 12), "Intra/periodic Cb QP Offset exceeds supported range (-12 to 12)" ); 2931 xConfirmPara( abs(m_sliceChromaQpOffsetIntraOrPeriodic[0] + m_cbQpOffset > 12), "Intra/periodic Cb QP Offset, when combined with the PPS Cb offset, exceeds supported range (-12 to 12)" ); 2932 xConfirmPara( abs(m_sliceChromaQpOffsetIntraOrPeriodic[1] > 12), "Intra/periodic Cr QP Offset exceeds supported range (-12 to 12)" ); 2933 xConfirmPara( abs(m_sliceChromaQpOffsetIntraOrPeriodic[1] + m_crQpOffset > 12), "Intra/periodic Cr QP Offset, when combined with the PPS Cr offset, exceeds supported range (-12 to 12)" ); 2934 #endif 2878 2935 2879 2936 m_extraRPSs=0; … … 3342 3399 } 3343 3400 3401 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 3402 xConfirmPara(m_preferredTransferCharacteristics > 255, "transfer_characteristics_idc should not be greater than 255."); 3403 #endif 3404 3344 3405 #undef xConfirmPara 3345 3406 if (check_failed) … … 3408 3469 #endif 3409 3470 3410 printf("Real Format : %dx%d %dHz\n", m_iSourceWidth - m_confWinLeft - m_confWinRight, m_iSourceHeight - m_confWinTop - m_confWinBottom, m_iFrameRate);3411 printf("Internal Format : %dx%d %dHz\n", m_iSourceWidth, m_iSourceHeight, m_iFrameRate);3471 printf("Real Format : %dx%d %gHz\n", m_iSourceWidth - m_confWinLeft - m_confWinRight, m_iSourceHeight - m_confWinTop - m_confWinBottom, (Double)m_iFrameRate/m_temporalSubsampleRatio ); 3472 printf("Internal Format : %dx%d %gHz\n", m_iSourceWidth, m_iSourceHeight, (Double)m_iFrameRate/m_temporalSubsampleRatio ); 3412 3473 printf("Sequence PSNR output : %s\n", (m_printMSEBasedSequencePSNR ? "Linear average, MSE-based" : "Linear average only") ); 3413 3474 printf("Sequence MSE output : %s\n", (m_printSequenceMSE ? "Enabled" : "Disabled") ); -
branches/HTM-16.1-dev/source/App/TAppEncoder/TAppEncCfg.h
r1401 r1402 144 144 Int m_iFrameRate; ///< source frame-rates (Hz) 145 145 UInt m_FrameSkip; ///< number of skipped frames from the beginning 146 UInt m_temporalSubsampleRatio; ///< temporal subsample ratio, 2 means code every two frames 146 147 Int m_iSourceWidth; ///< source width in pixel 147 148 Int m_iSourceHeight; ///< source height in pixel (when interlaced = field height) … … 254 255 Int m_crQpOffset; ///< Chroma Cr QP Offset (0:default) 255 256 257 #if W0038_CQP_ADJ 258 UInt m_sliceChromaQpOffsetPeriodicity; ///< Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 259 Int m_sliceChromaQpOffsetIntraOrPeriodic[2/*Cb,Cr*/]; ///< Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 260 #endif 256 261 #if ADAPTIVE_QP_SELECTION 257 262 Bool m_bUseAdaptQpSelect; … … 312 317 Int m_maxNumOffsetsPerPic; ///< SAO maximun number of offset per picture 313 318 Bool m_saoCtuBoundary; ///< SAO parameter estimation using non-deblocked pixels for CTU bottom and right boundary areas 319 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 320 Bool m_saoResetEncoderStateAfterIRAP; ///< When true, SAO encoder state will be reset following an IRAP. 321 #endif 314 322 // coding tools (loop filter) 315 323 #if NH_MV … … 321 329 Int m_loopFilterBetaOffsetDiv2; ///< beta offset for deblocking filter 322 330 Int m_loopFilterTcOffsetDiv2; ///< tc offset for deblocking filter 331 #if W0038_DB_OPT 332 Int m_deblockingFilterMetric; ///< blockiness metric in encoder 333 #else 323 334 Bool m_DeblockingFilterMetric; ///< blockiness metric in encoder 324 335 #endif 325 336 // coding tools (PCM) 326 337 Bool m_usePCM; ///< flag for using IPCM … … 440 451 Int* m_kneeSEIInputKneePoint; 441 452 Int* m_kneeSEIOutputKneePoint; 453 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 454 Int m_preferredTransferCharacteristics; 455 #endif 456 442 457 // weighted prediction 443 458 Bool m_useWeightedPred; ///< Use of weighted prediction in P slices -
branches/HTM-16.1-dev/source/App/TAppEncoder/TAppEncTop.cpp
r1401 r1402 354 354 m_cTEncTop.setFrameRate ( m_iFrameRate ); 355 355 m_cTEncTop.setFrameSkip ( m_FrameSkip ); 356 m_cTEncTop.setTemporalSubsampleRatio ( m_temporalSubsampleRatio ); 356 357 m_cTEncTop.setSourceWidth ( m_iSourceWidth ); 357 358 m_cTEncTop.setSourceHeight ( m_iSourceHeight ); … … 417 418 m_cTEncTop.setLoopFilterBetaOffset ( m_loopFilterBetaOffsetDiv2 ); 418 419 m_cTEncTop.setLoopFilterTcOffset ( m_loopFilterTcOffsetDiv2 ); 420 #if W0038_DB_OPT 421 m_cTEncTop.setDeblockingFilterMetric ( m_deblockingFilterMetric ); 422 #else 419 423 m_cTEncTop.setDeblockingFilterMetric ( m_DeblockingFilterMetric ); 424 #endif 420 425 421 426 //====== Motion search ======== … … 439 444 m_cTEncTop.setChromaCbQpOffset ( m_cbQpOffset ); 440 445 m_cTEncTop.setChromaCrQpOffset ( m_crQpOffset ); 446 #if W0038_CQP_ADJ 447 m_cTEncTop.setSliceChromaOffsetQpIntraOrPeriodic ( m_sliceChromaQpOffsetPeriodicity, m_sliceChromaQpOffsetIntraOrPeriodic ); 448 #endif 441 449 442 450 #if NH_3D … … 554 562 555 563 m_cTEncTop.setSaoCtuBoundary ( m_saoCtuBoundary); 564 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 565 m_cTEncTop.setSaoResetEncoderStateAfterIRAP ( m_saoResetEncoderStateAfterIRAP); 566 #endif 556 567 m_cTEncTop.setPCMInputBitDepthFlag ( m_bPCMInputBitDepthFlag); 557 568 m_cTEncTop.setPCMFilterDisableFlag ( m_bPCMFilterDisableFlag); … … 628 639 m_cTEncTop.setColourRemapInfoSEIFileRoot ( m_colourRemapSEIFileRoot ); 629 640 m_cTEncTop.setMasteringDisplaySEI ( m_masteringDisplay ); 641 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 642 m_cTEncTop.setSEIAlternativeTransferCharacteristicsSEIEnable ( m_preferredTransferCharacteristics>=0 ); 643 m_cTEncTop.setSEIPreferredTransferCharacteristics ( UChar(m_preferredTransferCharacteristics) ); 644 #endif 630 645 631 646 #if NH_MV … … 1124 1139 outputAccessUnits.clear(); 1125 1140 } 1141 // temporally skip frames 1142 if( m_temporalSubsampleRatio > 1 ) 1143 { 1144 m_cTVideoIOYuvInputFile.skipFrames(m_temporalSubsampleRatio-1, m_iSourceWidth - m_aiPad[0], m_iSourceHeight - m_aiPad[1], m_InputChromaFormatIDC); 1145 } 1126 1146 } 1127 1147 … … 1420 1440 { 1421 1441 #if NH_MV 1422 Double time = (Double) m_frameRcvd[0] / m_iFrameRate ;1442 Double time = (Double) m_frameRcvd[0] / m_iFrameRate * m_temporalSubsampleRatio; 1423 1443 printf("\n"); 1424 1444 #else 1425 Double time = (Double) m_iFrameRcvd / m_iFrameRate ;1445 Double time = (Double) m_iFrameRcvd / m_iFrameRate * m_temporalSubsampleRatio; 1426 1446 #endif 1427 1447 printf("Bytes written to file: %u (%.3f kbps)\n", m_totalBytes, 0.008 * m_totalBytes / time); -
branches/HTM-16.1-dev/source/App/utils/BitrateTargeting/ExtractBitrates.cpp
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/BitrateTargeting/ExtractBitrates.h
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/BitrateTargeting/ExtractBitratesMain.cpp
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/BitrateTargeting/GuessLambdaModifiers.cpp
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/BitrateTargeting/GuessLambdaModifiers.h
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/BitrateTargeting/GuessLambdaModifiersMain.cpp
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/BitrateTargeting/RuntimeError.h
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/annexBbytecount.cpp
r1313 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/App/utils/convert_NtoMbit_YCbCr.cpp
r1386 r1402 4 4 * granted under this license. 5 5 * 6 * Copyright (c) 2010-201 5, ITU/ISO/IEC6 * Copyright (c) 2010-2016, ITU/ISO/IEC 7 7 * All rights reserved. 8 8 * -
branches/HTM-16.1-dev/source/Lib/TLibCommon/CommonDef.h
r1401 r1402 72 72 #if NH_MV 73 73 #define NV_VERSION "16.1" ///< Current software version 74 #define HM_VERSION "16. 7" ///<75 #else 76 #define NV_VERSION "16. 7" ///< Current software version74 #define HM_VERSION "16.9" ///< 75 #else 76 #define NV_VERSION "16.9" ///< Current software version 77 77 #endif 78 78 // ==================================================================================================================== … … 266 266 static const Int CONTEXT_STATE_BITS = 6 ; 267 267 static const Int LAST_SIGNIFICANT_GROUPS = 10 ; 268 269 #if W0038_DB_OPT 270 static const Int MAX_ENCODER_DEBLOCKING_QUALITY_LAYERS = 8 ; 271 #endif 272 268 273 269 274 #if NH_MV -
branches/HTM-16.1-dev/source/Lib/TLibCommon/SEI.cpp
r1401 r1402 153 153 case SEI::CHROMA_RESAMPLING_FILTER_HINT: return "Chroma sampling filter hint"; 154 154 case SEI::COLOUR_REMAPPING_INFO: return "Colour remapping info"; 155 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 156 case SEI::ALTERNATIVE_TRANSFER_CHARACTERISTICS: return "Alternative transfer characteristics"; 157 #endif 155 158 156 159 #if NH_MV -
branches/HTM-16.1-dev/source/Lib/TLibCommon/SEI.h
r1401 r1402 97 97 KNEE_FUNCTION_INFO = 141, 98 98 COLOUR_REMAPPING_INFO = 142, 99 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 100 ALTERNATIVE_TRANSFER_CHARACTERISTICS = 182, 101 #endif 99 102 DEINTERLACED_FIELD_IDENTIFICATION = 143, 100 103 LAYERS_NOT_PRESENT = 160, … … 655 658 656 659 }; 660 661 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 662 class SEIAlternativeTransferCharacteristics : public SEI 663 { 664 public: 665 PayloadType payloadType() const { return ALTERNATIVE_TRANSFER_CHARACTERISTICS; } 666 667 SEIAlternativeTransferCharacteristics() : m_preferredTransferCharacteristics(18) 668 { } 669 670 virtual ~SEIAlternativeTransferCharacteristics() {} 671 672 UInt m_preferredTransferCharacteristics; 673 }; 674 #endif 675 676 657 677 #if NH_MV 658 678 class SEILayersNotPresent : public SEI -
branches/HTM-16.1-dev/source/Lib/TLibCommon/TComPic.cpp
r1401 r1402 97 97 TComPic::~TComPic() 98 98 { 99 destroy(); 99 100 } 100 101 101 102 Void TComPic::create( const TComSPS &sps, const TComPPS &pps, const Bool bIsVirtual) 102 103 { 104 destroy(); 105 103 106 const ChromaFormat chromaFormatIDC = sps.getChromaFormatIdc(); 104 107 const Int iWidth = sps.getPicWidthInLumaSamples(); -
branches/HTM-16.1-dev/source/Lib/TLibCommon/TComPic.h
r1401 r1402 191 191 const TComPicSym* getPicSym() const { return &m_picSym; } 192 192 TComSlice* getSlice(Int i) { return m_picSym.getSlice(i); } 193 const TComSlice* getSlice(Int i) const { return m_picSym.getSlice(i); } 193 194 Int getPOC() const { return m_picSym.getSlice(m_uiCurrSliceIdx)->getPOC(); } 194 195 TComDataCU* getCtu( UInt ctuRsAddr ) { return m_picSym.getCtu( ctuRsAddr ); } -
branches/HTM-16.1-dev/source/Lib/TLibCommon/TComPicSym.cpp
r1401 r1402 71 71 72 72 73 TComPicSym::~TComPicSym() 74 { 75 destroy(); 76 } 77 78 73 79 Void TComPicSym::create ( const TComSPS &sps, const TComPPS &pps, UInt uiMaxDepth ) 74 80 { 75 UInt i;76 81 m_sps = sps; 77 82 m_pps = pps; … … 108 113 #endif 109 114 110 for ( i=0; i<m_numCtusInFrame ; i++ )115 for (UInt i=0; i<m_numCtusInFrame ; i++ ) 111 116 { 112 117 m_pictureCtuArray[i] = new TComDataCU; … … 122 127 m_ctuRsToTsAddrMap = new UInt[m_numCtusInFrame+1]; 123 128 124 for( i=0; i<m_numCtusInFrame; i++ )129 for(UInt i=0; i<m_numCtusInFrame; i++ ) 125 130 { 126 131 m_ctuTsToRsAddrMap[i] = i; -
branches/HTM-16.1-dev/source/Lib/TLibCommon/TComPicSym.h
r1401 r1402 125 125 126 126 TComPicSym (); 127 ~TComPicSym(); 128 127 129 TComSlice* getSlice(UInt i) { return m_apSlices[i]; } 128 130 const TComSlice* getSlice(UInt i) const { return m_apSlices[i]; } -
branches/HTM-16.1-dev/source/Lib/TLibCommon/TComPicYuv.cpp
r1401 r1402 74 74 TComPicYuv::~TComPicYuv() 75 75 { 76 destroy(); 76 77 } 77 78 … … 87 88 88 89 { 90 destroy(); 91 89 92 m_picWidth = picWidth; 90 93 m_picHeight = picHeight; -
branches/HTM-16.1-dev/source/Lib/TLibCommon/TComYuv.cpp
r1401 r1402 59 59 TComYuv::~TComYuv() 60 60 { 61 destroy(); 61 62 } 62 63 63 64 Void TComYuv::create( UInt iWidth, UInt iHeight, ChromaFormat chromaFormatIDC ) 64 65 { 66 destroy(); 65 67 // set width and height 66 68 m_iWidth = iWidth; -
branches/HTM-16.1-dev/source/Lib/TLibCommon/TypeDef.h
r1401 r1402 373 373 #define T0196_SELECTIVE_RDOQ 1 ///< selective RDOQ 374 374 #define U0040_MODIFIED_WEIGHTEDPREDICTION_WITH_BIPRED_AND_CLIPPING 1 375 #define U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 1 ///< Alternative transfer characteristics SEI message (JCTVC-U0033, with syntax naming from V1005) 376 #define W0062_RECALCULATE_QP_TO_ALIGN_WITH_LAMBDA 0 ///< This recalculates QP to align with the derived lambda (same relation as for all intra coding is used). Currently disabled by default. 377 #define OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 1 ///< Adds command line option to reset SAO parameters after each IRAP. 378 375 379 // ==================================================================================================================== 376 380 // Tool Switches … … 396 400 #endif 397 401 #define U0132_TARGET_BITS_SATURATION 1 ///< Rate control with target bits saturation method 402 #ifdef U0132_TARGET_BITS_SATURATION 403 #define V0078_ADAPTIVE_LOWER_BOUND 1 ///< Target bits saturation with adaptive lower bound 404 #endif 405 #define W0038_DB_OPT 1 ///< adaptive DB parameter selection, LoopFilterOffsetInPPS and LoopFilterDisable are set to 0 and DeblockingFilterMetric=2; 406 #define W0038_CQP_ADJ 1 ///< chroma QP adjustment based on TL, CQPTLAdjustEnabled is set to 1; 407 398 408 // ==================================================================================================================== 399 409 // Derived macros -
branches/HTM-16.1-dev/source/Lib/TLibDecoder/SEIread.cpp
r1401 r1402 311 311 xParseSEIMasteringDisplayColourVolume((SEIMasteringDisplayColourVolume&) *sei, payloadSize, pDecodedMessageOutputStream); 312 312 break; 313 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 314 case SEI::ALTERNATIVE_TRANSFER_CHARACTERISTICS: 315 sei = new SEIAlternativeTransferCharacteristics; 316 xParseSEIAlternativeTransferCharacteristics((SEIAlternativeTransferCharacteristics&) *sei, payloadSize, pDecodedMessageOutputStream); 317 break; 318 #endif 313 319 #if NH_MV 314 320 case SEI::LAYERS_NOT_PRESENT: … … 636 642 sei_read_code( pDecodedMessageOutputStream, ( pHRD->getInitialCpbRemovalDelayLengthMinus1() + 1 ) , code, nalOrVcl?"vcl_initial_cpb_removal_delay":"nal_initial_cpb_removal_delay" ); 637 643 sei.m_initialCpbRemovalDelay[i][nalOrVcl] = code; 638 sei_read_code( pDecodedMessageOutputStream, ( pHRD->getInitialCpbRemovalDelayLengthMinus1() + 1 ) , code, nalOrVcl?"vcl_initial_cpb_removal_offset":" vcl_initial_cpb_removal_offset" );644 sei_read_code( pDecodedMessageOutputStream, ( pHRD->getInitialCpbRemovalDelayLengthMinus1() + 1 ) , code, nalOrVcl?"vcl_initial_cpb_removal_offset":"nal_initial_cpb_removal_offset" ); 639 645 sei.m_initialCpbRemovalDelayOffset[i][nalOrVcl] = code; 640 646 if( pHRD->getSubPicCpbParamsPresentFlag() || sei.m_rapCpbParamsPresentFlag ) 641 647 { 642 sei_read_code( pDecodedMessageOutputStream, ( pHRD->getInitialCpbRemovalDelayLengthMinus1() + 1 ) , code, nalOrVcl?"vcl_initial_alt_cpb_removal_delay":" vcl_initial_alt_cpb_removal_delay" );648 sei_read_code( pDecodedMessageOutputStream, ( pHRD->getInitialCpbRemovalDelayLengthMinus1() + 1 ) , code, nalOrVcl?"vcl_initial_alt_cpb_removal_delay":"nal_initial_alt_cpb_removal_delay" ); 643 649 sei.m_initialAltCpbRemovalDelay[i][nalOrVcl] = code; 644 sei_read_code( pDecodedMessageOutputStream, ( pHRD->getInitialCpbRemovalDelayLengthMinus1() + 1 ) , code, nalOrVcl?"vcl_initial_alt_cpb_removal_offset":" vcl_initial_alt_cpb_removal_offset" );650 sei_read_code( pDecodedMessageOutputStream, ( pHRD->getInitialCpbRemovalDelayLengthMinus1() + 1 ) , code, nalOrVcl?"vcl_initial_alt_cpb_removal_offset":"nal_initial_alt_cpb_removal_offset" ); 645 651 sei.m_initialAltCpbRemovalDelayOffset[i][nalOrVcl] = code; 646 652 } -
branches/HTM-16.1-dev/source/Lib/TLibDecoder/SEIread.h
r1401 r1402 95 95 Void xParseSEIMasteringDisplayColourVolume (SEIMasteringDisplayColourVolume& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 96 96 Void xParseSEIColourRemappingInfo (SEIColourRemappingInfo& sei, UInt payloadSize, std::ostream *pDecodedMessageOutputStream); 97 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 98 Void xParseSEIAlternativeTransferCharacteristics(SEIAlternativeTransferCharacteristics& sei, UInt payLoadSize, std::ostream *pDecodedMessageOutputStream); 99 #endif 97 100 #if NH_MV 98 101 Void xParseSEILayersNotPresent (SEILayersNotPresent &sei, UInt payloadSize, const TComVPS *vps ,std::ostream *pDecodedMessageOutputStream); -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/SEIEncoder.cpp
r1401 r1402 651 651 } 652 652 } 653 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 654 Void SEIEncoder::initSEIAlternativeTransferCharacteristics(SEIAlternativeTransferCharacteristics *seiAltTransCharacteristics) 655 { 656 assert (m_isInitialized); 657 assert (seiAltTransCharacteristics!=NULL); 658 // Set SEI message parameters read from command line options 659 seiAltTransCharacteristics->m_preferredTransferCharacteristics = m_pcCfg->getSEIPreferredTransferCharacteristics(); 660 } 661 #endif 653 662 654 663 #if NH_MV -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/SEIEncoder.h
r1401 r1402 82 82 Void initSEITimeCode(SEITimeCode *sei); 83 83 Bool initSEIColourRemappingInfo(SEIColourRemappingInfo *sei, Int currPOC); // returns true on success, false on failure. 84 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 85 Void initSEIAlternativeTransferCharacteristics(SEIAlternativeTransferCharacteristics *sei); 86 #endif 84 87 85 88 // trailing SEIs -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/SEIwrite.cpp
r1401 r1402 124 124 xWriteSEIMasteringDisplayColourVolume(*static_cast<const SEIMasteringDisplayColourVolume*>(&sei)); 125 125 break; 126 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 127 case SEI::ALTERNATIVE_TRANSFER_CHARACTERISTICS: 128 xWriteSEIAlternativeTransferCharacteristics(*static_cast<const SEIAlternativeTransferCharacteristics*>(&sei)); 129 break; 130 #endif 131 126 132 #if NH_MV 127 133 case SEI::LAYERS_NOT_PRESENT: … … 871 877 } 872 878 879 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 880 Void SEIWriter::xWriteSEIAlternativeTransferCharacteristics(const SEIAlternativeTransferCharacteristics& sei) 881 { 882 WRITE_CODE(sei.m_preferredTransferCharacteristics, 8, "preferred_transfer_characteristics"); 883 } 884 #endif 885 873 886 #if NH_MV 874 887 Void SEIWriter::xWriteSEILayersNotPresent(const SEILayersNotPresent& sei) -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/SEIwrite.h
r1401 r1402 75 75 Void xWriteSEIColourRemappingInfo(const SEIColourRemappingInfo& sei); 76 76 Void xWriteSEIMasteringDisplayColourVolume( const SEIMasteringDisplayColourVolume& sei); 77 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 78 Void xWriteSEIAlternativeTransferCharacteristics(const SEIAlternativeTransferCharacteristics& sei); 79 #endif 77 80 78 81 #if NH_MV -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncCfg.h
r1401 r1402 62 62 Int m_POC; 63 63 Int m_QPOffset; 64 #if W0038_CQP_ADJ 65 Int m_CbQPoffset; 66 Int m_CrQPoffset; 67 #endif 64 68 Double m_QPFactor; 65 69 Int m_tcOffsetDiv2; … … 89 93 : m_POC(-1) 90 94 , m_QPOffset(0) 95 #if W0038_CQP_ADJ 96 , m_CbQPoffset(0) 97 , m_CrQPoffset(0) 98 #endif 91 99 , m_QPFactor(0) 92 100 , m_tcOffsetDiv2(0) … … 135 143 Int m_iFrameRate; 136 144 Int m_FrameSkip; 145 UInt m_temporalSubsampleRatio; 137 146 Int m_iSourceWidth; 138 147 Int m_iSourceHeight; … … 163 172 164 173 //====== Coding Structure ======== 165 UInt m_uiIntraPeriod; 174 UInt m_uiIntraPeriod; // TODO: make this an Int - it can be -1! 166 175 UInt m_uiDecodingRefreshType; ///< the type of decoding refresh employed for the random access. 167 176 Int m_iGOPSize; … … 202 211 Int m_loopFilterBetaOffsetDiv2; 203 212 Int m_loopFilterTcOffsetDiv2; 213 #if W0038_DB_OPT 214 Int m_deblockingFilterMetric; 215 #else 204 216 Bool m_DeblockingFilterMetric; 217 #endif 205 218 Bool m_bUseSAO; 206 219 Bool m_bTestSAODisableAtPictureLevel; … … 209 222 Int m_maxNumOffsetsPerPic; 210 223 Bool m_saoCtuBoundary; 224 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 225 Bool m_saoResetEncoderStateAfterIRAP; 226 #endif 211 227 212 228 //====== Motion search ======== … … 231 247 Int m_chromaCbQpOffset; // Chroma Cb QP Offset (0:default) 232 248 Int m_chromaCrQpOffset; // Chroma Cr Qp Offset (0:default) 249 #if W0038_CQP_ADJ 250 UInt m_sliceChromaQpOffsetPeriodicity; ///< Used in conjunction with Slice Cb/Cr QpOffsetIntraOrPeriodic. Use 0 (default) to disable periodic nature. 251 Int m_sliceChromaQpOffsetIntraOrPeriodic[2/*Cb,Cr*/]; ///< Chroma Cb QP Offset at slice level for I slice or for periodic inter slices as defined by SliceChromaQPOffsetPeriodicity. Replaces offset in the GOP table. 252 #endif 253 233 254 ChromaFormat m_chromaFormatIDC; 234 255 … … 363 384 std::string m_colourRemapSEIFileRoot; ///< SEI Colour Remapping File (initialized from external file) 364 385 TComSEIMasteringDisplay m_masteringDisplay; 386 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 387 Bool m_alternativeTransferCharacteristicsSEIEnabled; 388 UChar m_preferredTransferCharacteristics; 389 #endif 390 365 391 #if NH_MV 366 392 SEIMessages* m_seiMessages; … … 534 560 Void setFrameRate ( Int i ) { m_iFrameRate = i; } 535 561 Void setFrameSkip ( UInt i ) { m_FrameSkip = i; } 562 Void setTemporalSubsampleRatio ( UInt i ) { m_temporalSubsampleRatio = i; } 536 563 Void setSourceWidth ( Int i ) { m_iSourceWidth = i; } 537 564 Void setSourceHeight ( Int i ) { m_iSourceHeight = i; } … … 619 646 Void setLoopFilterBetaOffset ( Int i ) { m_loopFilterBetaOffsetDiv2 = i; } 620 647 Void setLoopFilterTcOffset ( Int i ) { m_loopFilterTcOffsetDiv2 = i; } 648 #if W0038_DB_OPT 649 Void setDeblockingFilterMetric ( Int i ) { m_deblockingFilterMetric = i; } 650 #else 621 651 Void setDeblockingFilterMetric ( Bool b ) { m_DeblockingFilterMetric = b; } 622 652 #endif 623 653 //====== Motion search ======== 624 654 Void setDisableIntraPUsInInterSlices ( Bool b ) { m_bDisableIntraPUsInInterSlices = b; } … … 645 675 Void setChromaCbQpOffset ( Int i ) { m_chromaCbQpOffset = i; } 646 676 Void setChromaCrQpOffset ( Int i ) { m_chromaCrQpOffset = i; } 677 #if W0038_CQP_ADJ 678 Void setSliceChromaOffsetQpIntraOrPeriodic( UInt periodicity, Int sliceChromaQpOffsetIntraOrPeriodic[2]) { m_sliceChromaQpOffsetPeriodicity = periodicity; memcpy(m_sliceChromaQpOffsetIntraOrPeriodic, sliceChromaQpOffsetIntraOrPeriodic, sizeof(m_sliceChromaQpOffsetIntraOrPeriodic)); } 679 Int getSliceChromaOffsetQpIntraOrPeriodic( Bool bIsCr) const { return m_sliceChromaQpOffsetIntraOrPeriodic[bIsCr?1:0]; } 680 UInt getSliceChromaOffsetQpPeriodicity() const { return m_sliceChromaQpOffsetPeriodicity; } 681 #endif 647 682 648 683 Void setChromaFormatIdc ( ChromaFormat cf ) { m_chromaFormatIDC = cf; } … … 666 701 Int getFrameRate () { return m_iFrameRate; } 667 702 UInt getFrameSkip () { return m_FrameSkip; } 703 UInt getTemporalSubsampleRatio () { return m_temporalSubsampleRatio; } 668 704 Int getSourceWidth () { return m_iSourceWidth; } 669 705 Int getSourceHeight () { return m_iSourceHeight; } … … 702 738 Int getLoopFilterBetaOffset () { return m_loopFilterBetaOffsetDiv2; } 703 739 Int getLoopFilterTcOffset () { return m_loopFilterTcOffsetDiv2; } 740 #if W0038_DB_OPT 741 Int getDeblockingFilterMetric () { return m_deblockingFilterMetric; } 742 #else 704 743 Bool getDeblockingFilterMetric () { return m_DeblockingFilterMetric; } 744 #endif 705 745 706 746 //==== Motion search ======== … … 831 871 Void setSaoCtuBoundary (Bool val) { m_saoCtuBoundary = val; } 832 872 Bool getSaoCtuBoundary () { return m_saoCtuBoundary; } 873 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 874 Void setSaoResetEncoderStateAfterIRAP(Bool b) { m_saoResetEncoderStateAfterIRAP = b; } 875 Bool getSaoResetEncoderStateAfterIRAP() const { return m_saoResetEncoderStateAfterIRAP; } 876 #endif 833 877 Void setLFCrossTileBoundaryFlag ( Bool val ) { m_loopFilterAcrossTilesEnabledFlag = val; } 834 878 Bool getLFCrossTileBoundaryFlag () { return m_loopFilterAcrossTilesEnabledFlag; } … … 975 1019 976 1020 Void setMasteringDisplaySEI(const TComSEIMasteringDisplay &src) { m_masteringDisplay = src; } 1021 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 1022 Void setSEIAlternativeTransferCharacteristicsSEIEnable( Bool b) { m_alternativeTransferCharacteristicsSEIEnabled = b; } 1023 Bool getSEIAlternativeTransferCharacteristicsSEIEnable( ) const { return m_alternativeTransferCharacteristicsSEIEnabled; } 1024 Void setSEIPreferredTransferCharacteristics(UChar v) { m_preferredTransferCharacteristics = v; } 1025 UChar getSEIPreferredTransferCharacteristics() const { return m_preferredTransferCharacteristics; } 1026 #endif 977 1027 const TComSEIMasteringDisplay &getMasteringDisplaySEI() const { return m_masteringDisplay; } 978 1028 #if NH_MV -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncCu.cpp
r1401 r1402 1096 1096 // do normal intra modes 1097 1097 // speedup for inter frames 1098 Double intraCost = 0.0;1099 1098 1100 1099 if((rpcBestCU->getSlice()->getSliceType() == I_SLICE) || … … 1122 1121 if( bUseIVP ) 1123 1122 { 1124 xCheckRDCostIntra( rpcBestCU, rpcTempCU, intraCost,SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug), bOnlyIVP );1125 #else 1126 xCheckRDCostIntra( rpcBestCU, rpcTempCU, intraCost,SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug) );1123 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug), bOnlyIVP ); 1124 #else 1125 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_2Nx2N DEBUG_STRING_PASS_INTO(sDebug) ); 1127 1126 #endif 1128 1127 #if KWU_RC_MADPRED_E0227 … … 1143 1142 if( rpcTempCU->getWidth(0) > ( 1 << sps.getQuadtreeTULog2MinSize() ) ) 1144 1143 { 1145 Double tmpIntraCost;1146 1144 #if NH_3D_ENC_DEPTH 1147 xCheckRDCostIntra( rpcBestCU, rpcTempCU, tmpIntraCost, SIZE_NxN DEBUG_STRING_PASS_INTO(sDebug), bOnlyIVP ); 1148 #else 1149 xCheckRDCostIntra( rpcBestCU, rpcTempCU, tmpIntraCost, SIZE_NxN DEBUG_STRING_PASS_INTO(sDebug) ); 1150 #endif 1151 1152 intraCost = std::min(intraCost, tmpIntraCost); 1145 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN DEBUG_STRING_PASS_INTO(sDebug), bOnlyIVP ); 1146 #else 1147 xCheckRDCostIntra( rpcBestCU, rpcTempCU, SIZE_NxN DEBUG_STRING_PASS_INTO(sDebug) ); 1148 #endif 1153 1149 rpcTempCU->initEstData( uiDepth, iQP, bIsLosslessMode ); 1154 1150 } … … 2784 2780 Void TEncCu::xCheckRDCostIntra( TComDataCU *&rpcBestCU, 2785 2781 TComDataCU *&rpcTempCU, 2786 Double &cost,2787 2782 PartSize eSize 2788 2783 DEBUG_STRING_FN_DECLARE(sDebug) … … 2895 2890 2896 2891 xCheckDQP( rpcTempCU ); 2897 2898 cost = rpcTempCU->getTotalCost();2899 2892 2900 2893 xCheckBestMode(rpcBestCU, rpcTempCU, uiDepth DEBUG_STRING_PASS_INTO(sDebug) DEBUG_STRING_PASS_INTO(sTest)); -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncCu.h
r1401 r1402 167 167 Void xCheckRDCostIntra ( TComDataCU *&rpcBestCU, 168 168 TComDataCU *&rpcTempCU, 169 Double &cost,170 169 PartSize ePartSize 171 170 DEBUG_STRING_FN_DECLARE(sDebug) -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncGOP.cpp
r1401 r1402 108 108 m_associatedIRAPType = NAL_UNIT_CODED_SLICE_IDR_N_LP; 109 109 m_associatedIRAPPOC = 0; 110 #if W0038_DB_OPT 111 m_pcDeblockingTempPicYuv = NULL; 112 #endif 110 113 return; 111 114 } … … 125 128 Void TEncGOP::destroy() 126 129 { 130 #if W0038_DB_OPT 131 if (m_pcDeblockingTempPicYuv) 132 { 133 m_pcDeblockingTempPicYuv->destroy(); 134 delete m_pcDeblockingTempPicYuv; 135 m_pcDeblockingTempPicYuv = NULL; 136 } 137 #endif 127 138 } 128 139 … … 502 513 seiMessages.push_back(seiChromaResamplingFilterHint); 503 514 } 515 #if U0033_ALTERNATIVE_TRANSFER_CHARACTERISTICS_SEI 516 if(m_pcCfg->getSEIAlternativeTransferCharacteristicsSEIEnable()) 517 { 518 SEIAlternativeTransferCharacteristics *seiAlternativeTransferCharacteristics = new SEIAlternativeTransferCharacteristics; 519 m_seiEncoder.initSEIAlternativeTransferCharacteristics(seiAlternativeTransferCharacteristics); 520 seiMessages.push_back(seiAlternativeTransferCharacteristics); 521 } 522 #endif 504 523 } 505 524 … … 1727 1746 estimatedCpbFullness -= m_pcRateCtrl->getBufferingRate(); 1728 1747 // prevent underflow 1748 #if V0078_ADAPTIVE_LOWER_BOUND 1749 if (estimatedCpbFullness - estimatedBits < m_pcRateCtrl->getRCPic()->getLowerBound()) 1750 { 1751 estimatedBits = max(200, estimatedCpbFullness - m_pcRateCtrl->getRCPic()->getLowerBound()); 1752 } 1753 #else 1729 1754 if (estimatedCpbFullness - estimatedBits < (Int)(m_pcRateCtrl->getCpbSize()*0.1f)) 1730 1755 { 1731 1756 estimatedBits = max(200, estimatedCpbFullness - (Int)(m_pcRateCtrl->getCpbSize()*0.1f)); 1732 1757 } 1758 #endif 1733 1759 1734 1760 m_pcRateCtrl->getRCPic()->setTargetBits(estimatedBits); … … 1769 1795 estimatedCpbFullness -= m_pcRateCtrl->getBufferingRate(); 1770 1796 // prevent underflow 1797 #if V0078_ADAPTIVE_LOWER_BOUND 1798 if (estimatedCpbFullness - bits < m_pcRateCtrl->getRCPic()->getLowerBound()) 1799 { 1800 bits = estimatedCpbFullness - m_pcRateCtrl->getRCPic()->getLowerBound(); 1801 } 1802 #else 1771 1803 if (estimatedCpbFullness - bits < (Int)(m_pcRateCtrl->getCpbSize()*0.1f)) 1772 1804 { 1773 1805 bits = estimatedCpbFullness - (Int)(m_pcRateCtrl->getCpbSize()*0.1f); 1774 1806 } 1807 #endif 1775 1808 } 1776 1809 #endif … … 1902 1935 if ( m_pcCfg->getDeblockingFilterMetric() ) 1903 1936 { 1937 #if W0038_DB_OPT 1938 if ( m_pcCfg->getDeblockingFilterMetric()==2 ) 1939 { 1940 applyDeblockingFilterParameterSelection(pcPic, uiNumSliceSegments, iGOPid); 1941 } 1942 else 1943 { 1944 #endif 1904 1945 applyDeblockingFilterMetric(pcPic, uiNumSliceSegments); 1946 #if W0038_DB_OPT 1947 } 1948 #endif 1905 1949 } 1906 1950 m_pcLoopFilter->loopFilterPic( pcPic ); … … 1954 1998 m_pcEncTop->getRDGoOnSbacCoder()->setBitstream(&tempBitCounter); 1955 1999 m_pcSAO->initRDOCabacCoder(m_pcEncTop->getRDGoOnSbacCoder(), pcSlice); 2000 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 2001 m_pcSAO->SAOProcess(pcPic, sliceEnabled, pcPic->getSlice(0)->getLambdas(), 2002 m_pcCfg->getTestSAODisableAtPictureLevel(), 2003 m_pcCfg->getSaoEncodingRate(), 2004 m_pcCfg->getSaoEncodingRateChroma(), 2005 m_pcCfg->getSaoCtuBoundary(), 2006 m_pcCfg->getSaoResetEncoderStateAfterIRAP()); 2007 #else 1956 2008 m_pcSAO->SAOProcess(pcPic, sliceEnabled, pcPic->getSlice(0)->getLambdas(), m_pcCfg->getTestSAODisableAtPictureLevel(), m_pcCfg->getSaoEncodingRate(), m_pcCfg->getSaoEncodingRateChroma(), m_pcCfg->getSaoCtuBoundary()); 2009 #endif 1957 2010 m_pcSAO->PCMLFDisableProcess(pcPic); 1958 2011 m_pcEncTop->getRDGoOnSbacCoder()->setBitstream(NULL); … … 2186 2239 //--CFG_KDY 2187 2240 const Int rateMultiplier=(isField?2:1); 2188 m_gcAnalyzeAll.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier );2189 m_gcAnalyzeI.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier );2190 m_gcAnalyzeP.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier );2191 m_gcAnalyzeB.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier );2241 m_gcAnalyzeAll.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier / (Double)m_pcCfg->getTemporalSubsampleRatio()); 2242 m_gcAnalyzeI.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier / (Double)m_pcCfg->getTemporalSubsampleRatio()); 2243 m_gcAnalyzeP.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier / (Double)m_pcCfg->getTemporalSubsampleRatio()); 2244 m_gcAnalyzeB.setFrmRate( m_pcCfg->getFrameRate()*rateMultiplier / (Double)m_pcCfg->getTemporalSubsampleRatio()); 2192 2245 const ChromaFormat chFmt = m_pcCfg->getChromaFormatIdc(); 2193 2246 … … 2224 2277 { 2225 2278 //-- interlaced summary 2279 #if TEMPORAL_SUBSAMPLE 2280 m_gcAnalyzeAll_in.setFrmRate( m_pcCfg->getFrameRate() / (Double)m_pcCfg->getTemporalSubsampleRatio()); 2281 #else 2226 2282 m_gcAnalyzeAll_in.setFrmRate( m_pcCfg->getFrameRate()); 2283 #endif 2227 2284 m_gcAnalyzeAll_in.setBits(m_gcAnalyzeAll.getBits()); 2228 2285 // prior to the above statement, the interlace analyser does not contain the correct total number of bits. … … 2959 3016 assert(noCol > 1); 2960 3017 assert(noRows > 1); 2961 UInt64 *colSAD = (UInt64*)malloc(noCol*sizeof(UInt64));2962 UInt64 *rowSAD = (UInt64*)malloc(noRows*sizeof(UInt64));3018 std::vector<UInt64> colSAD(noCol, UInt64(0)); 3019 std::vector<UInt64> rowSAD(noRows, UInt64(0)); 2963 3020 UInt colIdx = 0; 2964 3021 UInt rowIdx = 0; … … 2972 3029 const Int thr1 = 2*bitdepthScale; 2973 3030 UInt a = 0; 2974 2975 memset(colSAD, 0, noCol*sizeof(UInt64));2976 memset(rowSAD, 0, noRows*sizeof(UInt64));2977 3031 2978 3032 if (maxTBsize > minBlockArtSize) … … 3064 3118 } 3065 3119 } 3066 3067 free(colSAD); 3068 free(rowSAD); 3069 } 3120 } 3121 3122 #if W0038_DB_OPT 3123 Void TEncGOP::applyDeblockingFilterParameterSelection( TComPic* pcPic, const UInt numSlices, const Int gopID ) 3124 { 3125 enum DBFltParam 3126 { 3127 DBFLT_PARAM_AVAILABLE = 0, 3128 DBFLT_DISABLE_FLAG, 3129 DBFLT_BETA_OFFSETD2, 3130 DBFLT_TC_OFFSETD2, 3131 //NUM_DBFLT_PARAMS 3132 }; 3133 const Int MAX_BETA_OFFSET = 3; 3134 const Int MIN_BETA_OFFSET = -3; 3135 const Int MAX_TC_OFFSET = 3; 3136 const Int MIN_TC_OFFSET = -3; 3137 3138 TComPicYuv* pcPicYuvRec = pcPic->getPicYuvRec(); 3139 TComPicYuv* pcPicYuvOrg = pcPic ->getPicYuvOrg(); 3140 3141 const Int currQualityLayer = (pcPic->getSlice(0)->getSliceType() != I_SLICE) ? m_pcCfg->getGOPEntry(gopID).m_temporalId+1 : 0; 3142 assert(currQualityLayer <MAX_ENCODER_DEBLOCKING_QUALITY_LAYERS); 3143 3144 if(!m_pcDeblockingTempPicYuv) 3145 { 3146 m_pcDeblockingTempPicYuv = new TComPicYuv; 3147 m_pcDeblockingTempPicYuv->create( m_pcEncTop->getSourceWidth(), m_pcEncTop->getSourceHeight(), m_pcEncTop->getChromaFormatIdc(), pcPic->getSlice(0)->getSPS()->getMaxCUWidth(), pcPic->getSlice(0)->getSPS()->getMaxCUHeight(), pcPic->getSlice(0)->getSPS()->getMaxTotalCUDepth(),true ); 3148 memset(m_DBParam, 0, sizeof(m_DBParam)); 3149 } 3150 3151 //preserve current reconstruction 3152 pcPicYuvRec->copyToPic(m_pcDeblockingTempPicYuv); 3153 3154 const Bool bNoFiltering = m_DBParam[currQualityLayer][DBFLT_PARAM_AVAILABLE] && m_DBParam[currQualityLayer][DBFLT_DISABLE_FLAG]==false /*&& pcPic->getTLayer()==0*/; 3155 const Int maxBetaOffsetDiv2 = bNoFiltering? Clip3(MIN_BETA_OFFSET, MAX_BETA_OFFSET, m_DBParam[currQualityLayer][DBFLT_BETA_OFFSETD2]+1) : MAX_BETA_OFFSET; 3156 const Int minBetaOffsetDiv2 = bNoFiltering? Clip3(MIN_BETA_OFFSET, MAX_BETA_OFFSET, m_DBParam[currQualityLayer][DBFLT_BETA_OFFSETD2]-1) : MIN_BETA_OFFSET; 3157 const Int maxTcOffsetDiv2 = bNoFiltering? Clip3(MIN_TC_OFFSET, MAX_TC_OFFSET, m_DBParam[currQualityLayer][DBFLT_TC_OFFSETD2]+2) : MAX_TC_OFFSET; 3158 const Int minTcOffsetDiv2 = bNoFiltering? Clip3(MIN_TC_OFFSET, MAX_TC_OFFSET, m_DBParam[currQualityLayer][DBFLT_TC_OFFSETD2]-2) : MIN_TC_OFFSET; 3159 3160 UInt64 distBetaPrevious = std::numeric_limits<UInt64>::max(); 3161 UInt64 distMin = std::numeric_limits<UInt64>::max(); 3162 Bool bDBFilterDisabledBest = true; 3163 Int betaOffsetDiv2Best = 0; 3164 Int tcOffsetDiv2Best = 0; 3165 3166 for(Int betaOffsetDiv2=maxBetaOffsetDiv2; betaOffsetDiv2>=minBetaOffsetDiv2; betaOffsetDiv2--) 3167 { 3168 UInt64 distTcMin = std::numeric_limits<UInt64>::max(); 3169 for(Int tcOffsetDiv2=maxTcOffsetDiv2; tcOffsetDiv2 >= minTcOffsetDiv2; tcOffsetDiv2--) 3170 { 3171 for (Int i=0; i<numSlices; i++) 3172 { 3173 pcPic->getSlice(i)->setDeblockingFilterOverrideFlag(true); 3174 pcPic->getSlice(i)->setDeblockingFilterDisable(false); 3175 pcPic->getSlice(i)->setDeblockingFilterBetaOffsetDiv2( betaOffsetDiv2 ); 3176 pcPic->getSlice(i)->setDeblockingFilterTcOffsetDiv2( tcOffsetDiv2 ); 3177 } 3178 m_pcDeblockingTempPicYuv->copyToPic(pcPicYuvRec); // restore reconstruction 3179 m_pcLoopFilter->loopFilterPic( pcPic ); 3180 const UInt64 dist = xFindDistortionFrame(pcPicYuvOrg, pcPicYuvRec, pcPic->getPicSym()->getSPS().getBitDepths()); 3181 if(dist < distMin) 3182 { 3183 distMin = dist; 3184 bDBFilterDisabledBest = false; 3185 betaOffsetDiv2Best = betaOffsetDiv2; 3186 tcOffsetDiv2Best = tcOffsetDiv2; 3187 } 3188 if(dist < distTcMin) 3189 { 3190 distTcMin = dist; 3191 } 3192 else if(tcOffsetDiv2 <-2) 3193 { 3194 break; 3195 } 3196 } 3197 if(betaOffsetDiv2<-1 && distTcMin >= distBetaPrevious) 3198 { 3199 break; 3200 } 3201 distBetaPrevious = distTcMin; 3202 } 3203 3204 //update: 3205 m_DBParam[currQualityLayer][DBFLT_PARAM_AVAILABLE] = 1; 3206 m_DBParam[currQualityLayer][DBFLT_DISABLE_FLAG] = bDBFilterDisabledBest; 3207 m_DBParam[currQualityLayer][DBFLT_BETA_OFFSETD2] = betaOffsetDiv2Best; 3208 m_DBParam[currQualityLayer][DBFLT_TC_OFFSETD2] = tcOffsetDiv2Best; 3209 3210 m_pcDeblockingTempPicYuv->copyToPic(pcPicYuvRec); //restore reconstruction 3211 3212 if(bDBFilterDisabledBest) 3213 { 3214 for (Int i=0; i<numSlices; i++) 3215 { 3216 pcPic->getSlice(i)->setDeblockingFilterOverrideFlag(true); 3217 pcPic->getSlice(i)->setDeblockingFilterDisable(true); 3218 } 3219 } 3220 else if(betaOffsetDiv2Best ==pcPic->getSlice(0)->getPPS()->getDeblockingFilterBetaOffsetDiv2() && tcOffsetDiv2Best==pcPic->getSlice(0)->getPPS()->getDeblockingFilterTcOffsetDiv2()) 3221 { 3222 for (Int i=0; i<numSlices; i++) 3223 { 3224 pcPic->getSlice(i)->setDeblockingFilterOverrideFlag(false); 3225 pcPic->getSlice(i)->setDeblockingFilterDisable( pcPic->getSlice(i)->getPPS()->getPicDisableDeblockingFilterFlag() ); 3226 pcPic->getSlice(i)->setDeblockingFilterBetaOffsetDiv2( pcPic->getSlice(i)->getPPS()->getDeblockingFilterBetaOffsetDiv2() ); 3227 pcPic->getSlice(i)->setDeblockingFilterTcOffsetDiv2( pcPic->getSlice(i)->getPPS()->getDeblockingFilterTcOffsetDiv2() ); 3228 } 3229 } 3230 else 3231 { 3232 for (Int i=0; i<numSlices; i++) 3233 { 3234 pcPic->getSlice(i)->setDeblockingFilterOverrideFlag(true); 3235 pcPic->getSlice(i)->setDeblockingFilterDisable( false ); 3236 pcPic->getSlice(i)->setDeblockingFilterBetaOffsetDiv2(betaOffsetDiv2Best); 3237 pcPic->getSlice(i)->setDeblockingFilterTcOffsetDiv2(tcOffsetDiv2Best); 3238 } 3239 } 3240 } 3241 #endif 3070 3242 3071 3243 #if NH_MV -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncGOP.h
r1401 r1402 153 153 Bool m_bufferingPeriodSEIPresentInAU; 154 154 SEIEncoder m_seiEncoder; 155 #if W0038_DB_OPT 156 TComPicYuv* m_pcDeblockingTempPicYuv; 157 Int m_DBParam[MAX_ENCODER_DEBLOCKING_QUALITY_LAYERS][4]; //[layer_id][0: available; 1: bDBDisabled; 2: Beta Offset Div2; 3: Tc Offset Div2;] 158 #endif 155 159 156 160 public: … … 249 253 250 254 Void applyDeblockingFilterMetric( TComPic* pcPic, UInt uiNumSlices ); 255 #if W0038_DB_OPT 256 Void applyDeblockingFilterParameterSelection( TComPic* pcPic, const UInt numSlices, const Int gopID ); 257 #endif 251 258 };// END CLASS DEFINITION TEncGOP 252 259 -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncRateCtrl.cpp
r1401 r1402 554 554 } 555 555 556 #if V0078_ADAPTIVE_LOWER_BOUND 557 Int TEncRCPic::xEstPicLowerBound(TEncRCSeq* encRCSeq, TEncRCGOP* encRCGOP) 558 { 559 Int lowerBound = 0; 560 Int GOPbitsLeft = encRCGOP->getBitsLeft(); 561 562 const Int nextPicPosition = (encRCGOP->getNumPic() - encRCGOP->getPicLeft() + 1) % encRCGOP->getNumPic(); 563 const Int nextPicRatio = encRCSeq->getBitRatio(nextPicPosition); 564 565 Int totalPicRatio = 0; 566 for (Int i = nextPicPosition; i < encRCGOP->getNumPic(); i++) 567 { 568 totalPicRatio += encRCSeq->getBitRatio(i); 569 } 570 571 if (nextPicPosition == 0) 572 { 573 GOPbitsLeft = encRCGOP->getTargetBits(); 574 } 575 else 576 { 577 GOPbitsLeft -= m_targetBits; 578 } 579 580 lowerBound = Int(((Double)GOPbitsLeft) * nextPicRatio / totalPicRatio); 581 582 if (lowerBound < 100) 583 { 584 lowerBound = 100; // at least allocate 100 bits for one picture 585 } 586 587 if (m_encRCSeq->getFramesLeft() > 16) 588 { 589 lowerBound = Int(g_RCWeightPicRargetBitInBuffer * lowerBound + g_RCWeightPicTargetBitInGOP * m_encRCGOP->getTargetBitInGOP(nextPicPosition)); 590 } 591 592 return lowerBound; 593 } 594 #endif 595 596 556 597 Void TEncRCPic::addToPictureLsit( list<TEncRCPic*>& listPreviousPictures ) 557 598 { … … 611 652 Int picWidthInLCU = ( picWidth % LCUWidth ) == 0 ? picWidth / LCUWidth : picWidth / LCUWidth + 1; 612 653 Int picHeightInLCU = ( picHeight % LCUHeight ) == 0 ? picHeight / LCUHeight : picHeight / LCUHeight + 1; 654 #if V0078_ADAPTIVE_LOWER_BOUND 655 m_lowerBound = xEstPicLowerBound( encRCSeq, encRCGOP ); 656 #endif 613 657 614 658 m_LCULeft = m_numberOfLCU; -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncRateCtrl.h
r1401 r1402 267 267 Int xEstPicTargetBits( TEncRCSeq* encRCSeq, TEncRCGOP* encRCGOP ); 268 268 Int xEstPicHeaderBits( list<TEncRCPic*>& listPreviousPictures, Int frameLevel ); 269 #if V0078_ADAPTIVE_LOWER_BOUND 270 Int xEstPicLowerBound( TEncRCSeq* encRCSeq, TEncRCGOP* encRCGOP ); 271 #endif 269 272 270 273 public: … … 282 285 Int getBitsCoded() { return m_targetBits - m_estHeaderBits - m_bitsLeft; } 283 286 Int getLCUCoded() { return m_numberOfLCU - m_LCULeft; } 287 #if V0078_ADAPTIVE_LOWER_BOUND 288 Int getLowerBound() { return m_lowerBound; } 289 #endif 284 290 TRCLCU* getLCU() { return m_LCUs; } 285 291 TRCLCU& getLCU( Int LCUIdx ) { return m_LCUs[LCUIdx]; } … … 321 327 Int m_estHeaderBits; 322 328 Int m_estPicQP; 329 #if V0078_ADAPTIVE_LOWER_BOUND 330 Int m_lowerBound; 331 #endif 323 332 Double m_estPicLambda; 324 333 -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.cpp
r1401 r1402 120 120 121 121 ::memset(m_saoDisabledRate, 0, sizeof(m_saoDisabledRate)); 122 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 123 m_lastIRAPPoc = MAX_INT; 124 #endif 122 125 123 126 for(Int typeIdc=0; typeIdc < NUM_SAO_NEW_TYPES; typeIdc++) … … 239 242 240 243 244 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 245 Void TEncSampleAdaptiveOffset::SAOProcess(TComPic* pPic, Bool* sliceEnabled, const Double *lambdas, const Bool bTestSAODisableAtPictureLevel, const Double saoEncodingRate, const Double saoEncodingRateChroma, const Bool isPreDBFSamplesUsed, const Bool bResetStateAfterIRAP ) 246 #else 241 247 Void TEncSampleAdaptiveOffset::SAOProcess(TComPic* pPic, Bool* sliceEnabled, const Double *lambdas, const Bool bTestSAODisableAtPictureLevel, const Double saoEncodingRate, const Double saoEncodingRateChroma, Bool isPreDBFSamplesUsed ) 248 #endif 242 249 { 243 250 TComPicYuv* orgYuv= pPic->getPicYuvOrg(); … … 256 263 } 257 264 //slice on/off 265 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 266 decidePicParams(sliceEnabled, pPic, saoEncodingRate, saoEncodingRateChroma, bResetStateAfterIRAP); 267 #else 258 268 decidePicParams(sliceEnabled, pPic->getSlice(0)->getDepth(), saoEncodingRate, saoEncodingRateChroma); 269 #endif 259 270 260 271 //block on/off … … 330 341 } 331 342 343 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 344 Void TEncSampleAdaptiveOffset::decidePicParams(Bool* sliceEnabled, const TComPic* pic, const Double saoEncodingRate, const Double saoEncodingRateChroma, const Bool bResetStateAfterIRAP) 345 #else 332 346 Void TEncSampleAdaptiveOffset::decidePicParams(Bool* sliceEnabled, Int picTempLayer, const Double saoEncodingRate, const Double saoEncodingRateChroma) 333 { 347 #endif 348 { 349 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 350 if (pic->getSlice(0)->isIRAP()) 351 { 352 m_lastIRAPPoc = pic->getSlice(0)->getPOC(); 353 } 354 if (bResetStateAfterIRAP && pic->getSlice(0)->getPOC() > m_lastIRAPPoc) 355 { // reset 356 for (Int compIdx = 0; compIdx < MAX_NUM_COMPONENT; compIdx++) 357 { 358 for (Int tempLayer = 1; tempLayer < MAX_TLAYER; tempLayer++) 359 { 360 m_saoDisabledRate[compIdx][tempLayer] = 0.0; 361 } 362 } 363 m_lastIRAPPoc = MAX_INT; 364 } 365 const Int picTempLayer = pic->getSlice(0)->getDepth(); 366 #endif 367 334 368 //decide sliceEnabled[compIdx] 335 369 const Int numberOfComponents = getNumberValidComponents(m_chromaFormatIDC); -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncSampleAdaptiveOffset.h
r1401 r1402 103 103 Void destroyEncData(); 104 104 Void initRDOCabacCoder(TEncSbac* pcRDGoOnSbacCoder, TComSlice* pcSlice) ; 105 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 106 Void SAOProcess(TComPic* pPic, Bool* sliceEnabled, const Double *lambdas, const Bool bTestSAODisableAtPictureLevel, const Double saoEncodingRate, const Double saoEncodingRateChroma, const Bool isPreDBFSamplesUsed, const Bool bResetStateAfterIRAP); 107 #else 105 108 Void SAOProcess(TComPic* pPic, Bool* sliceEnabled, const Double *lambdas, const Bool bTestSAODisableAtPictureLevel, const Double saoEncodingRate, const Double saoEncodingRateChroma, Bool isPreDBFSamplesUsed); 109 #endif 106 110 public: //methods 107 111 Void getPreDBFStatistics(TComPic* pPic); 108 112 private: //methods 109 113 Void getStatistics(SAOStatData*** blkStats, TComPicYuv* orgYuv, TComPicYuv* srcYuv,TComPic* pPic, Bool isCalculatePreDeblockSamples = false); 114 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 115 Void decidePicParams(Bool* sliceEnabled, const TComPic* pic, const Double saoEncodingRate, const Double saoEncodingRateChroma, const Bool bResetStateAfterIRAP); 116 #else 110 117 Void decidePicParams(Bool* sliceEnabled, Int picTempLayer, const Double saoEncodingRate, const Double saoEncodingRateChroma); 118 #endif 111 119 Void decideBlkParams(TComPic* pic, Bool* sliceEnabled, SAOStatData*** blkStats, TComPicYuv* srcYuv, TComPicYuv* resYuv, SAOBlkParam* reconParams, SAOBlkParam* codedParams, const Bool bTestSAODisableAtPictureLevel, const Double saoEncodingRate, const Double saoEncodingRateChroma); 112 120 Void getBlkStats(const ComponentID compIdx, const Int channelBitDepth, SAOStatData* statsDataTypes, Pel* srcBlk, Pel* orgBlk, Int srcStride, Int orgStride, Int width, Int height, Bool isLeftAvail, Bool isRightAvail, Bool isAboveAvail, Bool isBelowAvail, Bool isAboveLeftAvail, Bool isAboveRightAvail, Bool isCalculatePreDeblockSamples); … … 133 141 SAOStatData*** m_preDBFstatData; 134 142 Double m_saoDisabledRate[MAX_NUM_COMPONENT][MAX_TLAYER]; 143 #if OPTIONAL_RESET_SAO_ENCODING_AFTER_IRAP 144 Int m_lastIRAPPoc; 145 #endif 135 146 Int m_skipLinesR[MAX_NUM_COMPONENT][NUM_SAO_NEW_TYPES]; 136 147 Int m_skipLinesB[MAX_NUM_COMPONENT][NUM_SAO_NEW_TYPES]; -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncSlice.h
r1401 r1402 68 68 // pictures 69 69 TComList<TComPic*>* m_pcListPic; ///< list of pictures 70 TComPicYuv * m_apcPicYuvPred;///< prediction picture buffer71 TComPicYuv * m_apcPicYuvResi;///< residual picture buffer70 TComPicYuv m_picYuvPred; ///< prediction picture buffer 71 TComPicYuv m_picYuvResi; ///< residual picture buffer 72 72 73 73 // processing units … … 95 95 #endif 96 96 Double m_dPicRdCost; ///< picture-level RD cost 97 Double* m_pdRdPicLambda; ///< array of lambda candidates98 Double* m_pdRdPicQp; ///< array of picture QP candidates (double-type for lambda)99 Int* m_piRdPicQp; ///< array of picture QP candidates (Int-type)97 std::vector<Double> m_vdRdPicLambda; ///< array of lambda candidates 98 std::vector<Double> m_vdRdPicQp; ///< array of picture QP candidates (double-type for lambda) 99 std::vector<Int> m_viRdPicQp; ///< array of picture QP candidates (Int-type) 100 100 TEncRateCtrl* m_pcRateCtrl; ///< Rate control manager 101 101 UInt m_uiSliceIdx; -
branches/HTM-16.1-dev/source/Lib/TLibEncoder/TEncTop.cpp
r1401 r1402 144 144 g_uiMaxCUWidth, g_uiMaxCUHeight, m_RCKeepHierarchicalBit, m_RCUseLCUSeparateModel, m_GOPList, getLayerId() ); 145 145 #else 146 m_cRateCtrl.init( m_framesToBeEncoded, m_RCTargetBitrate, m_iFrameRate, m_iGOPSize, m_iSourceWidth, m_iSourceHeight,147 m_maxCUWidth, m_maxCUHeight,m_RCKeepHierarchicalBit, m_RCUseLCUSeparateModel, m_GOPList );146 m_cRateCtrl.init( m_framesToBeEncoded, m_RCTargetBitrate, (Int)( (Double)m_iFrameRate/m_temporalSubsampleRatio + 0.5), m_iGOPSize, m_iSourceWidth, m_iSourceHeight, 147 m_maxCUWidth, m_maxCUHeight,m_RCKeepHierarchicalBit, m_RCUseLCUSeparateModel, m_GOPList ); 148 148 #endif 149 149 } … … 951 951 } 952 952 953 if (getTemporalSubsampleRatio()>1) 954 { 955 UInt temporalSubsampleRatio = getTemporalSubsampleRatio(); 956 if ( Double(timingInfo->getNumUnitsInTick()) * temporalSubsampleRatio > std::numeric_limits<UInt>::max() ) 957 { 958 timingInfo->setTimeScale( timingInfo->getTimeScale() / temporalSubsampleRatio ); 959 } 960 else 961 { 962 timingInfo->setNumUnitsInTick( timingInfo->getNumUnitsInTick() * temporalSubsampleRatio ); 963 } 964 } 965 953 966 Bool rateCnt = ( bitRate > 0 ); 954 967 hrd->setNalHrdParametersPresentFlag( rateCnt ); … … 1135 1148 m_cPPS.setQpOffset(COMPONENT_Cb, m_chromaCbQpOffset ); 1136 1149 m_cPPS.setQpOffset(COMPONENT_Cr, m_chromaCrQpOffset ); 1150 #if W0038_CQP_ADJ 1151 Bool bChromaDeltaQPEnabled = false; 1152 { 1153 bChromaDeltaQPEnabled = ( m_sliceChromaQpOffsetIntraOrPeriodic[0] || m_sliceChromaQpOffsetIntraOrPeriodic[1] ); 1154 if( !bChromaDeltaQPEnabled ) 1155 { 1156 for( Int i=0; i<m_iGOPSize; i++ ) 1157 { 1158 if( m_GOPList[i].m_CbQPoffset || m_GOPList[i].m_CrQPoffset ) 1159 { 1160 bChromaDeltaQPEnabled = true; 1161 break; 1162 } 1163 } 1164 } 1165 } 1166 m_cPPS.setSliceChromaQpFlag(bChromaDeltaQPEnabled); 1167 #endif 1137 1168 1138 1169 m_cPPS.setEntropyCodingSyncEnabledFlag( m_entropyCodingSyncEnabledFlag );
Note: See TracChangeset for help on using the changeset viewer.