Redundant codes in motion estimation of DCT-IF
The codes in “TEncSearch.cpp”from line 8472 to 8492 are redundant and should be removed.
Although the encoding result is identical, the encoding time is increased.
case 1:
{
Quater-pel interpolation : vertical
piSrcYPel = piSrcPel - m_iDIFHalfTap;
piDstY = piSrc-m_iDIFTap2 - iSrcStride;
xCTI_FilterQuarter0Ver(piSrcYPel, iSrcPelStride, 1, iWidth + m_iDIFTap, iHeight, iSrcStride4, 4, piDstY);
piSrcYPel = piSrcPel - m_iDIFHalfTap;
piDstY = piSrc-m_iDIFTap2 + iSrcStride;
xCTI_FilterQuarter1Ver(piSrcYPel, iSrcPelStride, 1, iWidth + m_iDIFTap, iHeight, iSrcStride4, 4, piDstY);
Left three pixels
piSrcY = piSrc-4 - iSrcStride;
piDstYPel = piDst-1 - iDstStride;
xCTI_FilterQuarter1Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
piSrcY = piSrc-4;
piDstYPel = piDst-1;
xCTI_FilterQuarter1Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
piSrcY = piSrc-4 + iSrcStride;
piDstYPel = piDst-1 + iDstStride;
xCTI_FilterQuarter1Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
Middle two pixels
piSrcY = piSrc - iSrcStride;
piDstYPel = piDst - iDstStride;
Int iSrcStride2 = (iSrcStride<<1);
Int iDstStride2 = (iDstStride<<1);
for (y=0; y < iHeight*2; y++)
{
for (x=0; x < iWidth; x++)
{
piDstYPel[x*4] = Clip( (piSrcY[x*4] + 128) >> 8 );
}
piSrcY+=iSrcStride2;
piDstYPel+=iDstStride2;
}
Right three pixels
piSrcY = piSrc - iSrcStride;
piDstYPel = piDst+1 - iDstStride;
xCTI_FilterQuarter0Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
piSrcY = piSrc;
piDstYPel = piDst+1;
xCTI_FilterQuarter0Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
piSrcY = piSrc + iSrcStride;
piDstYPel = piDst+1 + iDstStride;
xCTI_FilterQuarter0Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
/* These codes are redundant
Right three pixels
piSrcY = piSrc - iSrcStride;
piDstYPel = piDst+1 - iDstStride;
xCTI_FilterQuarter0Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
piSrcY = piSrc;
piDstYPel = piDst+1;
xCTI_FilterQuarter0Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
piSrcY = piSrc + iSrcStride;
piDstYPel = piDst+1 + iDstStride;
xCTI_FilterQuarter0Hor(piSrcY, iSrcStride4, 4, iWidth, iHeight, iDstStride4, 4, piDstYPel);
Middle two pixels
piSrcYPel = piSrcPel;
piDstYPel = piDst - iDstStride;
xCTI_FilterQuarter0Ver(piSrcYPel, iSrcPelStride, 1, iWidth, iHeight, iDstStride4, 4, piDstYPel);
piSrcYPel = piSrcPel;
piDstYPel = piDst + iDstStride;
xCTI_FilterQuarter1Ver(piSrcYPel, iSrcPelStride, 1, iWidth, iHeight, iDstStride4, 4, piDstYPel);
*/
break;
}
Change History (4)
-
Resolution
set to fixed
-
Status
changed from new to closed
-
Cc
fbossen ksuehring davidf added
| 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, Participant)
- jct-vc@…(Subscriber)
- karl.sharman@…(Always)
- Karsten Suehring(Subscriber, Always)
- Takeshi Chujoh(Reporter)
|
Fixed in r410