Opened 4 years ago
Closed 4 years ago
#1437 closed defect (invalid)
vtm bugs In function getModifiedWideAngle
Reported by: | wzq_arcvideo | Owned by: | |
---|---|---|---|
Priority: | critical | Milestone: | VTM-11.0 |
Component: | VTM | Version: | VTM-10.2 |
Keywords: | getModifiedWideAngle; WideAngle | Cc: | ksuehring, XiangLi, fbossen, jvet@… |
Description
there has a bug exiting for a long time in function "getModifiedWideAngle".
it's shown in vtm11.0 like bellow:
int IntraPrediction::getModifiedWideAngle( int width, int height, int predMode ) { //The function returns a 'modified' wide angle index, given that it is not necessary //in this software implementation to reserve the values 0 and 1 for Planar and DC to generate the prediction signal. //It should only be used to obtain the intraPredAngle parameter. //To simply obtain the wide angle index, the function PU::getWideAngle should be used instead. if ( predMode > DC_IDX && predMode <= VDIA_IDX ) { int modeShift[] = { 0, 6, 10, 12, 14, 15 }; int deltaSize = abs(floorLog2(width) - floorLog2(height)); if (width > height && predMode < 2 + modeShift[deltaSize]) { predMode += (VDIA_IDX - 1); } else if (height > width && predMode > VDIA_IDX - modeShift[deltaSize]) { predMode -= (VDIA_IDX - 1); //there has a bug } } return predMode; }
In fact,this function implements the contents of jvet-s2001 in 8.4.5.2.7 ,part of its discription like below:
– Otherwise, if all of the following conditions are true, predModeIntra is set equal to ( predModeIntra − 67 ).
– nH is greater than nW
– predModeIntra is less than or equal to 66
– predModeIntra is greater than ( whRatio > 1 ) ? ( 60 − 2 * whRatio ) : 60
the part of function getModifiedWideAngle should be modefied ,to satisfy "predModeIntra − 67 ",just like below:
else if (height > width && predMode > VDIA_IDX - modeShift[deltaSize]) { //note change predMode -= (VDIA_IDX - 1); to predMode -= (VDIA_IDX - 1); predMode -= (VDIA_IDX + 1); }
Attachments (1)
Change history (3)
Changed 4 years ago by wzq_arcvideo
comment:1 Changed 4 years ago by deluxan
Hi. Thank you for your report. However, have you read the comments at the top of the function? They explain why this function does NOT implement the section you are mentioning in the standard. That is why its name is 'getModifiedWideAngle' instead of 'getWideAngle'. So there is no problem with this function.
comment:2 Changed 4 years ago by ksuehring
- Resolution set to invalid
- Status changed from new to closed
Confirmed in email discussion that the software works differently (as documented in the comments) and this is not a problem.
bugs in IntraPrediction::getModifiedWideAngle