Opened 7 years ago

Closed 7 years ago

#1296 closed defect (fixed)

parsing parseProfileTier not conformant with Table A 2 – Bitstream indications for conformance to format range extensions profiles

Reported by: marcin.jasinski Owned by:
Priority: major Milestone: HM+RExt-8.0
Component: HM RExt Version: RExt-7.2 (HM-14.0)
Keywords: Cc: davidf, karlsharman, jct-vc@…

Description

It seems decoder interprets the fields:
general_max_12bit_constraint_flag general_max_10bit_constraint_flag general_max_8bit_constraint_flag general_max_422chroma_constraint_flag general_max_420chroma_constraint_flag general_max_monochrome_constraint_flag

incorrectly. For example the case of:

Main 10 Intra	1	1	0	1	1	0	1	0	0 or 1

where:

general_max_12bit_constraint_flag = 1;
general_max_10bit_constraint_flag = 1;
general_max_8bit_constraint_flag = 0;
general_max_422chroma_constraint_flag = 1;
general_max_420chroma_constraint_flag = 1;
general_max_monochrome_constraint_flag = 0;

will be interpreted as Main 4:2:2 12, here is the code:

    READ_FLAG(    uiCode, "general_max_12bit_constraint_flag" ); if (uiCode)                   maxBitDepth=12;
    READ_FLAG(    uiCode, "general_max_10bit_constraint_flag" ); if (uiCode && maxBitDepth<10) maxBitDepth=10;
    READ_FLAG(    uiCode, "general_max_8bit_constraint_flag"  ); if (uiCode && maxBitDepth<8 ) maxBitDepth=8;
    if (maxBitDepth==0) maxBitDepth=16;
    ptl->setBitDepthConstraint(maxBitDepth);
    ChromaFormat chromaFmtConstraint=NUM_CHROMA_FORMAT;
    READ_FLAG(    uiCode, "general_max_422chroma_constraint_flag"  ); if (uiCode)                                           chromaFmtConstraint=CHROMA_422;
    READ_FLAG(    uiCode, "general_max_420chroma_constraint_flag"  ); if (uiCode && chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_420;
    READ_FLAG(    uiCode, "general_max_monochrome_constraint_flag" ); if (uiCode && chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_400;
    if (chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_444;

Here is what I think it should be:

    UInt maxBitDepth=0;
    READ_FLAG(    uiCode, "general_max_12bit_constraint_flag" ); if (uiCode) maxBitDepth=12;
    READ_FLAG(    uiCode, "general_max_10bit_constraint_flag" ); if (uiCode) maxBitDepth=10;
    READ_FLAG(    uiCode, "general_max_8bit_constraint_flag"  ); if (uiCode) maxBitDepth=8;
    if (maxBitDepth==0) maxBitDepth=16;
    ptl->setBitDepthConstraint(maxBitDepth);

    ChromaFormat chromaFmtConstraint=NUM_CHROMA_FORMAT;
    READ_FLAG(    uiCode, "general_max_422chroma_constraint_flag"  ); if (uiCode) chromaFmtConstraint=CHROMA_422;
    READ_FLAG(    uiCode, "general_max_420chroma_constraint_flag"  ); if (uiCode) chromaFmtConstraint=CHROMA_420;
    READ_FLAG(    uiCode, "general_max_monochrome_constraint_flag" ); if (uiCode) chromaFmtConstraint=CHROMA_400;
    if (chromaFmtConstraint==NUM_CHROMA_FORMAT) chromaFmtConstraint=CHROMA_444;

Change History (2)

comment:1 Changed 7 years ago by DefaultCC Plugin

  • Cc davidf karlsharman jct-vc@… added

comment:2 Changed 7 years ago by karlsharman

  • Resolution set to fixed
  • Status changed from new to closed

Fixed in r3989.

Note: See TracTickets for help on using tickets.

This list contains all users that will be notified about changes made to this ticket.

These roles will be notified: Reporter, Owner, Subscriber, Participant

  • David Flynn(Subscriber)
  • jct-vc@…(Subscriber)
  • Karl Sharman(Subscriber, Participant)
  • karl.sharman@…(Always)
  • Karsten Suehring(Always)
  • Marcin Jasiński(Reporter)