View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000173 | JVT JM H.264/AVC reference software | encoder and decoder | public | 2009-04-14 17:58 | 2009-04-25 18:19 |
Reporter | LitBird | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | have not tried |
Status | new | Resolution | open | ||
Product Version | JM 15.1 | ||||
Summary | 0000173: CABAC error at en/de luma run | ||||
Description | I actived the TRACE function to record some encode/decode information. I found some mismatch at luma run data. For example, when akiyo_qcif.yuv is tested, the lumn data of MB 1 of frame 0 are: @372 Luma8x8 sng( 0) level = -1 run = 2 ( -1) @372 Luma8x8 sng( 1) level = 1 run = 1 ( 1) @372 Luma8x8 sng( 2) level = 1 run = 3 ( 1) @372 Luma8x8 sng( 3) level = -1 run = 0 ( -1) @372 Luma8x8 sng( 4) level = 1 run = 0 ( 1) @372 Luma8x8 sng( 5) level = 1 run = 9 ( 1) @372 Luma8x8 sng( 6) level = 0 run = 0 ( 0) @405 Luma8x8 sng( 0) level = -1 run = 0 ( -1) @405 Luma8x8 sng( 1) level = -1 run = 1 ( -1) @405 Luma8x8 sng( 2) level = -1 run = 6 ( -1) @405 Luma8x8 sng( 3) level = 0 run = 0 ( 0) @420 Luma8x8 sng( 0) level = 4 run = 0 ( 4) @420 Luma8x8 sng( 1) level = -3 run = 0 ( -3) @420 Luma8x8 sng( 2) level = -2 run = 0 ( -2) @420 Luma8x8 sng( 3) level = 1 run = 0 ( 1) @420 Luma8x8 sng( 4) level = 2 run = 0 ( 2) @420 Luma8x8 sng( 5) level = 1 run = 0 ( 1) @420 Luma8x8 sng( 6) level = -1 run = 1 ( -1) @420 Luma8x8 sng( 7) level = -1 run = 0 ( -1) @420 Luma8x8 sng( 8) level = 0 run = 0 ( 0) @454 Luma8x8 sng( 0) level = -1 run = 2 ( -1) @454 Luma8x8 sng( 1) level = 1 run = 0 ( 1) @454 Luma8x8 sng( 2) level = 1 run = 5 ( 1) @454 Luma8x8 sng( 3) level = 0 run = 6 ( 0) However, these information at decoder are: @71 Luma8x8 DC sng -1 2 @72 Luma8x8 sng 1 1 @73 Luma8x8 sng 1 3 @74 Luma8x8 sng -1 0 @75 Luma8x8 sng 1 0 @76 Luma8x8 sng 1 9 @77 Luma8x8 sng 0 0 @78 Luma8x8 DC sng -1 0 @79 Luma8x8 sng -1 1 @80 Luma8x8 sng -1 6 @81 Luma8x8 sng 0 0 @82 Luma8x8 DC sng 4 0 @83 Luma8x8 sng -3 0 @84 Luma8x8 sng -2 0 @85 Luma8x8 sng 1 0 @86 Luma8x8 sng 2 0 @87 Luma8x8 sng 1 0 @88 Luma8x8 sng -1 1 @89 Luma8x8 sng -1 0 @90 Luma8x8 sng 0 0 @91 Luma8x8 DC sng -1 2 @92 Luma8x8 sng 1 0 @93 Luma8x8 sng 1 5 @94 Luma8x8 sng 0 0 As listed above, the final luma run at encoder is 6, but it is 0 at decoder. Do I use the program wrong?? Thank you | ||||
Tags | No tags attached. | ||||
2009-04-14 17:58
|
up.cfg (8,081 bytes)
# New Input File Format is as follows # <ParameterName> = <ParameterValue> # Comment # # See configfile.h for a list of supported ParameterNames # # For bug reporting and known issues see: # https://ipbt.hhi.de ########################################################################################## # Files ########################################################################################## InputFile = "s:\akiyo_qcif.yuv" TraceFile = "s:\akiyo_qcif_enc.txt" OutputFile = "s:\akiyo_qcif.264" #FramesToBeEncoded = 300 # Number of frames to be coded FramesToBeEncoded = 3 # Number of frames to be coded FrameRate = 30.0 # Frame Rate per second (0.1-100.0) SourceWidth = 176 # Frame width SourceHeight = 144 # Frame height ########################################################################################## # Encoder Control ########################################################################################## ProfileIDC = 100 # Profile IDC (66=baseline, 77=main, 88=extended; FREXT Profiles: 100=High, 110=High 10, 122=High 4:2:2, 244=High 4:4:4, 44=CAVLC 4:4:4 Intra) #addbear #IntraProfile = 0 # Activate Intra Profile for FRExt (0: false, 1: true) # (e.g. ProfileIDC=110, IntraProfile=1 => High 10 Intra Profile) #LevelIDC = 40 # Level IDC (e.g. 20 = level 2.0) NumberReferenceFrames = 5 # Number of previous frames used for inter motion search (0-16, default:1) IntraPeriod = 15 # Period of I-pictures (0=only first) FrameSkip = 0 # Number of frames to be skipped in input (e.g 2 will code every third frame) # addbear �]�w I/P frame ���ҭn�ٲ��� frame ��,�����i�� B frame ########################################################################################## # B Slices ########################################################################################## NumberBFrames = 0 # Number of B coded frames inserted (0=not used) #DirectModeType = 1 # Direct Mode Type (0:Temporalf/default, 1:Spatial) ########################################################################################## # SP Frames ########################################################################################## SP_output_name = "low_quality.dat" # Filename for SP output coefficients SP2_input_name1 = "high_quality.dat" # Filename for the first swithed bitstream coefficients SP2_input_name2 = "low_quality.dat" # Filename for the second switched bitstream coefficients ########################################################################################## # Output Control, NALs ########################################################################################## SymbolMode = 1 # Symbol mode (Entropy coding method: 0=UVLC, 1=CABAC) ########################################################################################## # CABAC context initialization ########################################################################################## ########################################################################################## # Interlace Handling ######################################################################################### ########################################################################################## # Weighted Prediction ######################################################################################### ########################################################################################## # Picture based Multi-pass encoding ######################################################################################### ########################################################################################## # Loop filter parameters ########################################################################################## ########################################################################################## # Error Resilience / Slices ########################################################################################## ########################################################################################## # Search Range Restriction / RD Optimization ########################################################################################## RestrictSearchRange = 2 # restriction for (0: blocks and ref, 1: ref, 2: no restrictions) RDOptimization = 1 # rd-optimized mode decision # 0: RD-off (Low complexity mode) # 1: RD-on (High complexity mode) # 2: RD-on (Fast high complexity mode - not work in FREX Profiles) # 3: with losses ########################################################################################## # Additional Stuff ######################################################################################### LeakyBucketRateFile = "leakybucketrate.cfg" # File from which encoder derives rate values LeakyBucketParamFile = "leakybucketparam.cfg" # File where encoder stores leakybucketparams ######################################################################################## #Rate control ######################################################################################## ######################################################################################## #Fast Mode Decision ######################################################################################## ######################################################################################## #FREXT stuff ######################################################################################## YUVFormat = 1 # YUV format (0=4:0:0, 1=4:2:0, 2=4:2:2, 3=4:4:4) # addbear RGBInput = 0 # 1=RGB input, 0=GBR or YUV input # addbear SeparateColourPlane = 0 # 4:4:4 coding: 0=Common mode, 1=Independent mode Transform8x8Mode = 1 # (0: only 4x4 transform, 1: allow using 8x8 transform additionally, 2: only 8x8 transform) ######################################################################################## #Q-Matrix (FREXT) ######################################################################################## QmatrixFile = "q_matrix.cfg" ######################################################################################## #Rounding Offset control ######################################################################################## QOffsetMatrixFile = "q_offset.cfg" # Explicit Quantization Matrices file ######################################################################################## #Lossless Coding (FREXT) ######################################################################################## ######################################################################################## #Fast Motion Estimation Control Parameters ######################################################################################## SearchMode = 0 # Use fast motion estimation (0=disable/default, 1=UMHexagonS, # 2=Simplified UMHexagonS, 3=EPZS patterns) ######################################################################################## # SEI Parameters ######################################################################################## ToneMappingFile = "ToneMapping.cfg" SEIMessageText = "H.264/AVC Encoder" # Text SEI Message ################################################################ # VUI Parameters ################################################################ # the variables below do not affect encoding and decoding # (many are dummy variables but others can be useful # when supported by the decoder) |
|
This bug happens at the EOBs. At the decoder, JM uses (level,run)=(0,0) to indicate a EOB. At the encoding side, however, only the code "ACLevel[scan_pos] = 0;" is used to mark a EOB. A code, like "ACRun[scan_pos]=0;" can be added. |