View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000056 | JVT JM H.264/AVC reference software | decoder | public | 2007-06-07 13:31 | 2007-08-08 15:07 |
Reporter | Karsten Suehring | Assigned To | |||
Priority | normal | Severity | minor | Reproducibility | always |
Status | acknowledged | Resolution | open | ||
Platform | any | ||||
Product Version | JM 12.2 | ||||
Summary | 0000056: 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 ? | ||||
Tags | No tags attached. | ||||
related to | 0000044 | assigned | Alexis Michael Tourapis | Ex-Golomb words longer than 32 bits |
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 |