Opened 13 years ago

Closed 13 years ago

#142 closed defect (fixed)

bug of dQP coding in LCEC

Reported by: junxu Owned by:
Priority: minor Milestone:
Component: HM Version:
Keywords: Cc: fbossen, ksuehring, davidf, jct-vc@…

Description

Currently, dQP is encoded first by a flag indicating zero or nonzero dQP. If the flag shows nonzero dQP then the value of dQP is encoded by mapping a signed dQP to an unsigned codenumber. Then these codenumbers are encoded by unary code. For LCEC, xWriteSvlc( iDQp ) from Void TEncCavlc::codeDeltaQP( TComDataCU* pcCU, UInt uiAbsPartIdx ) is using the mapping
UInt xConvertToUInt ( Int iValue ) { return ( iValue <= 0) ? -iValue<<1 : (iValue<<1)-1; }

The LCEC mapping is: 1->1, -1->2,2->3, -2->4....

The mapping used in CABAC is shown as the line below in Void TEncSbac::codeDeltaQP( TComDataCU* pcCU, UInt uiAbsPartIdx )

UInt uiDQp = (UInt)( iDQp > 0 ? ( 2 * iDQp - 2 ) : ( -2 * iDQp - 1 ) );

The CABAC mapping is: 1->0, -1->1,2->2, -2->3....

The problem is that LCEC mapping wastes the codenumber==0 and spends more bits to encode nonzero dQPs. Solution is to use the CABAC mapping for LCEC case to save bits.

Change History (5)

comment:1 Changed 13 years ago by hao

I think the solution is to just remove a flag before SVLC code rather than to change the mapping, according to the universal way of LCEC to code signed integer.

comment:2 Changed 13 years ago by davidf

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

This has been resolved by r846

comment:3 Changed 12 years ago by davidf

  • Component set to HM

Updating component after adding WD (Text) tickets

comment:4 Changed 12 years ago by davidf

  • Cc fbossen ksuehring davidf added

comment:5 Changed 12 years ago by davidf

  • Cc jct-vc@… added
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, Participant)
  • Frank Bossen(Subscriber)
  • Hirofumi Aoki(Participant)
  • jct-vc@…(Subscriber)
  • Jun Xu(Reporter)
  • karl.sharman@…(Always)
  • Karsten Suehring(Subscriber, Always)