Opened 12 years ago

Closed 12 years ago

#457 closed defect (invalid)

Potential Bug in HM6.0

Reported by: NaZhang Owned by: tung.nguyen
Priority: minor Milestone:
Component: HM Version: HM-6.0
Keywords: Cc: fbossen, ksuehring, davidf, jct-vc@…

Description

When we did expeiments on HM4.0, we observed that the following section of the code of the function "encodeCoeff "in the file "TEncEntropy.cpp" does not seem to behave in the correct way.

if ( !pcCU->getQtRootCbf( uiAbsPartIdx ) )

{

return;

}

It seems that the above code should be modified as follows.

if ( !pcCU->getQtRootCbf( uiAbsPartIdx ) )

{

pcCU->setCbfSubParts( 0, 0, 0, uiAbsPartIdx, uiDepth );
pcCU->setTrIdxSubParts( 0 , uiAbsPartIdx, uiDepth );
return;

}

In this way, it can also match the following section of the code of the function "decodeCoeff" in the file "TDecEntropy.cpp"

if ( !uiQtRootCbf )

{

pcCU->setCbfSubParts( 0, 0, 0, uiAbsPartIdx, uiDepth );
pcCU->setTrIdxSubParts( 0 , uiAbsPartIdx, uiDepth );
return;

}

The following section of the code of the function "encodeCoeff " in the file "TEncEntropy.cpp" of HM6.0 also has the same problem.
if ( !pcCU->getQtRootCbf( uiAbsPartIdx ) )

{

#if NSQT_LFFIX

pcCU->setNSQTIdxSubParts( uiAbsPartIdx, uiDepth );

#endif

return;

}

It seems that it should make the following changes.
if ( !pcCU->getQtRootCbf( uiAbsPartIdx ) )

{
pcCU->setCbfSubParts( 0, 0, 0, uiAbsPartIdx, uiDepth );
pcCU->setTrIdxSubParts( 0 , uiAbsPartIdx, uiDepth );

#if NSQT_LFFIX

pcCU->setNSQTIdxSubParts( uiAbsPartIdx, uiDepth );

#endif

return;

}

Change History (4)

comment:1 Changed 12 years ago by DefaultCC Plugin

  • Cc fbossen ksuehring davidf jct-vc@… added

comment:2 Changed 12 years ago by ksuehring

  • Owner set to tung.nguyen
  • Status changed from new to assigned

comment:3 Changed 12 years ago by tung.nguyen

The implementation is correct.
In decoder, a flag (cbf) signals whether a TU has coefficient or not is parsed first (1).
After that, this information is evaluated (2) and the parseCoeffNxN is called if the flag is set.

(1) TDecEntropy.cpp ~ 1062
(2) TDecEntropy.cpp ~ 801 - 865

In the encoder, the flag may not set even if a TU has zero coeff levels only.
This case occurs in the estimation process:

~ xEncCoeffQT
~ encodeCoeffNxN [TEncSearch.cpp: 842]

Best regards,
Tung

Version 0, edited 12 years ago by tung.nguyen (next)

comment:4 Changed 12 years ago by ksuehring

  • Resolution set to invalid
  • Status changed from assigned to closed
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)
  • Frank Bossen(Subscriber)
  • jct-vc@…(Subscriber)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Participant, Always)
  • NaZhang(Reporter)
  • Tung Nguyen(Owner, Participant)