View Issue Details

IDProjectCategoryView StatusLast Update
0000056JVT JM H.264/AVC reference softwaredecoderpublic2007-08-08 15:07
ReporterKarsten Suehring Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status acknowledgedResolutionopen 
Platformany 
Product VersionJM 12.2 
Summary0000056: SE decoding integer range overflow
Description"zhang" reported:

We have a problem about SE decoding in JM.
While decoding delta_pic_order_cnt_bottom, the input bistream(removed emulation prevetion byte 0x03) is
000000000000000000000000000000011111111111111111111111111111110 (binary),
it's value should be 0x7fff_ffff = 2^31 - 1, the max. value of delta_pic_order_cnt_bottom defined in spec. 7.4.3
but use JM decoder, it's decoded value = -1,

In JM vlc.c

void linfo_se(int len, int info, int *value1, int *dummy)
{
  int n;

 
  assert (len/2<32);
  n = (1 << (len/2))+info-1;
  *value1 = (n+1)/2;
  if((n & 0x01)==0) // lsb is signed bit
    *value1 = -*value1;

}

n is 32 bit value will be overflow because n is a signed value.
Another, in the case that SE value equal -2^31, n must be 33 bit(at least) unsigned value.

Is this condition is my mis-understanding or there is a problem in JM ?
TagsNo tags attached.

Relationships

related to 0000044 assignedAlexis Michael Tourapis Ex-Golomb words longer than 32 bits 

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2007-06-07 13:31 Karsten Suehring New Issue
2007-08-08 15:07 Karsten Suehring Relationship added related to 0000044
2007-08-08 15:07 Karsten Suehring Status new => acknowledged