View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000226 | JVT JM H.264/AVC reference software | encoder and decoder | public | 2010-07-27 06:11 | 2010-07-28 07:37 |
Reporter | Taesu Kim | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | new | Resolution | open | ||
Product Version | JM 17.2 | ||||
Summary | 0000226: Wrong condition for level_two_or_higher? | ||||
Description | 1) This is a piece of code of Rdoq_calvc.c and Macroblock.c. This logic is used for both encoder and decoder. Code Fragment Start: level_two_or_higher = (numcoeff > 3 && numtrailingones == 3) ? 0 : 1; Code Fragment End. I think it should be level_two_or_higher = (numcoeff > 3 || numtrailingones == 3) ? 0 : 1; Because, H.264 specification says, "When the index i is equal to TrailingOnes( coeff_token ) and TrailingOnes( coeff_token ) is less than 3, levelCode is incremented by 2." at section 9.2.2. 2) This is a piece of code of Rdoq_calvc.c and Macroblock.c. This logic is used for both encoder and decoder. Code Fragment Start: if (level_two_or_higher) { currSE.inf += (currSE.inf > 0) ? 1 : -1; level_two_or_higher = 0; } Code Fragment End. This means that only first occurrence will be treated. But what if there are 2 or more such occurrences? I'm studying now, so I may have wrong idea. Please fix my idea or clarify please. Thank you. | ||||
Tags | No tags attached. | ||||