View Issue Details

IDProjectCategoryView StatusLast Update
0000226JVT JM H.264/AVC reference softwareencoder and decoderpublic2010-07-28 07:37
ReporterTaesu Kim Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
Product VersionJM 17.2 
Summary0000226: Wrong condition for level_two_or_higher?
Description1)
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.
TagsNo tags attached.

Activities

Taesu Kim

2010-07-28 07:37

reporter   ~0000384

Sorry, 2) is not a error.

Issue History

Date Modified Username Field Change
2010-07-27 06:11 Taesu Kim New Issue
2010-07-28 07:37 Taesu Kim Note Added: 0000384