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. |