View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0000366 | JVT JM H.264/AVC reference software | decoder | public | 2020-04-07 21:40 | 2020-11-25 16:28 |
Reporter | Dev | Assigned To | |||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | open | ||
Summary | 0000366: Error in deblocking process of mbaff frames | ||||
Description | Hi, It seems that there is a error in JM H.264 decoder in deblocking process of MbAff frames for luma field macroblocks. The following is for JM 11.0 but the same problem also exists in newer versions. The error is in calculating pixQ.pos_y in loopfilter.c. In EdgeLoop() you use getNeighbour() for it. Pos_y calculated in get_mb_pos(), get_mb_block_pos() as y = (((mb_addr / 2) / PicWidthInMbs) * 2 + (mb_addr % 2)) * 16; i.e. y = ((mb_addr / 2) / PicWidthInMbs) * 32 + ((mb_addr % 2) * 16) It is a position of the upper-left luma sample of the macroblock CurrMbAddr and it is determined in standart (subclause 8.7.1) as inverse macroblock scanning process (6.4.1) and assigned to yI: y = ((mb_addr / 2) / (PicWidthInSamples / 16)) * 32 + (mb_addr % 2); i.e. y = ((mb_addr /2) / PicWidthInMbs) * 32 + (mb_addr % 2) So for odd values of mb_addr the result in JM is wrong. | ||||
Tags | No tags attached. | ||||