Re: [x265] [PATCH 2 of 2 V2] framefilter: comment cleanups, use pixel data type
On Sun, Sep 15, 2013 at 11:06 PM, Deepthi Nandakumar deep...@multicorewareinc.com wrote: On Fri, Sep 13, 2013 at 11:11 PM, Steve Borho st...@borho.org wrote: # HG changeset patch # User Steve Borho st...@borho.org # Date 1379053732 18000 # Fri Sep 13 01:28:52 2013 -0500 # Node ID b8bb66cd21bcab6505b7fe321e95875861c84bda # Parent 2614338b90d3533c2760a94fa10ffb5dee57910c framefilter: comment cleanups, use pixel data type diff -r 2614338b90d3 -r b8bb66cd21bc source/encoder/frameencoder.cpp --- a/source/encoder/frameencoder.cpp Fri Sep 13 10:55:03 2013 -0500 +++ b/source/encoder/frameencoder.cpp Fri Sep 13 01:28:52 2013 -0500 @@ -937,14 +937,13 @@ return; } } +// this row of CTUs has been encoded -// Active Loopfilter +// Run row-wise loop filters if (row = m_filterRowDelay) { m_frameFilter.processRow(row - m_filterRowDelay); } - -// this row of CTUs has been encoded if (row == m_numRows - 1) { for(int i = m_numRows - m_filterRowDelay; i m_numRows; i++) diff -r 2614338b90d3 -r b8bb66cd21bc source/encoder/framefilter.cpp --- a/source/encoder/framefilter.cppFri Sep 13 10:55:03 2013 -0500 +++ b/source/encoder/framefilter.cppFri Sep 13 01:28:52 2013 -0500 @@ -170,7 +170,7 @@ m_sao.processSaoUnitRow(saoParam-saoLcuParam[2], row - 1, 2); } -// TODO: this code is NOT VERIFY because TransformSkip and PCM mode have some bugs, they always not active! +// TODO: this code is NOT VERIFIED because TransformSkip and PCM modes have some bugs, they are never enabled bool bPCMFilter = (m_pic-getSlice()-getSPS()-getUsePCM() m_pic-getSlice()-getSPS()-getPCMFilterDisableFlag()) ? true : false; if (bPCMFilter || m_pic-getSlice()-getPPS()-getTransquantBypassEnableFlag()) { @@ -187,8 +187,6 @@ // this row of CTUs has been encoded -// TODO: extend margins for motion reference - if (row 0) { processRowPost(row - 1); @@ -209,7 +207,7 @@ m_sao.processSaoUnitRow(saoParam-saoLcuParam[2], row, 2); } -// TODO: this code is NOT VERIFY because TransformSkip and PCM mode have some bugs, they always not active! +// TODO: this code is NOT VERIFIED because TransformSkip and PCM modes have some bugs, they are never enabled bool bPCMFilter = (m_pic-getSlice()-getSPS()-getUsePCM() m_pic-getSlice()-getSPS()-getPCMFilterDisableFlag()) ? true : false; if (bPCMFilter || m_pic-getSlice()-getPPS()-getTransquantBypassEnableFlag()) { @@ -234,10 +232,6 @@ const int lastH = ((recon-getHeight() % g_maxCUHeight) ? (recon-getHeight() % g_maxCUHeight) : g_maxCUHeight); const int realH = (row != m_numRows - 1) ? g_maxCUHeight : lastH; -// TODO: Remove when we confirm below code is right -//recon-xExtendPicCompBorder(recon-getLumaAddr(), recon-getStride(), recon-getWidth(), recon-getHeight(), recon-m_lumaMarginX, recon-m_lumaMarginY); -//recon-xExtendPicCompBorder(recon-getCbAddr(), recon-getCStride(), recon-getWidth() 1, recon-getHeight() 1, recon-m_chromaMarginX, recon-m_chromaMarginY); -//recon-xExtendPicCompBorder(recon-getCrAddr(), recon-getCStride(), recon-getWidth() 1, recon-getHeight() 1, recon-m_chromaMarginX, recon-m_chromaMarginY); // Border extend Left and Right primitives.extendRowBorder(recon-getLumaAddr(lineStartCUAddr), recon-getStride(), recon-getWidth(), realH, recon-getLumaMarginX()); primitives.extendRowBorder(recon-getCbAddr(lineStartCUAddr), recon-getCStride(), recon-getWidth() 1, realH 1, recon-getChromaMarginX()); @@ -248,9 +242,9 @@ { const intptr_t stride = recon-getStride(); const intptr_t strideC = recon-getCStride(); -Pel *pixY = recon-getLumaAddr(lineStartCUAddr) - recon-getLumaMarginX(); -Pel *pixU = recon-getCbAddr(lineStartCUAddr) - recon-getChromaMarginX(); -Pel *pixV = recon-getCrAddr(lineStartCUAddr) - recon-getChromaMarginX(); +pixel *pixY = recon-getLumaAddr(lineStartCUAddr) - recon-getLumaMarginX(); +pixel *pixU = recon-getCbAddr(lineStartCUAddr) - recon-getChromaMarginX(); +pixel *pixV = recon-getCrAddr(lineStartCUAddr) - recon-getChromaMarginX(); Not sure why Pel has been changed to pixel (dropping 16-bit support altogether ?) since getLuma/Cb/CrAddr still return Pel. For quite a while now Pel and pixel are always the same data type, We've been trying to use only pixel in the code that we add to the repo. It might be easier at this point just to search/replace all Pel use into pixel. Anyways, the sizeof operator in the following memcpy's should also be changed to pixel. good catch. -- Steve ___ x265-devel mailing list x265-devel@videolan.org
Re: [x265] [PATCH 2 of 2 V2] framefilter: comment cleanups, use pixel data type
On Fri, Sep 13, 2013 at 11:11 PM, Steve Borho st...@borho.org wrote: # HG changeset patch # User Steve Borho st...@borho.org # Date 1379053732 18000 # Fri Sep 13 01:28:52 2013 -0500 # Node ID b8bb66cd21bcab6505b7fe321e95875861c84bda # Parent 2614338b90d3533c2760a94fa10ffb5dee57910c framefilter: comment cleanups, use pixel data type diff -r 2614338b90d3 -r b8bb66cd21bc source/encoder/frameencoder.cpp --- a/source/encoder/frameencoder.cpp Fri Sep 13 10:55:03 2013 -0500 +++ b/source/encoder/frameencoder.cpp Fri Sep 13 01:28:52 2013 -0500 @@ -937,14 +937,13 @@ return; } } +// this row of CTUs has been encoded -// Active Loopfilter +// Run row-wise loop filters if (row = m_filterRowDelay) { m_frameFilter.processRow(row - m_filterRowDelay); } - -// this row of CTUs has been encoded if (row == m_numRows - 1) { for(int i = m_numRows - m_filterRowDelay; i m_numRows; i++) diff -r 2614338b90d3 -r b8bb66cd21bc source/encoder/framefilter.cpp --- a/source/encoder/framefilter.cppFri Sep 13 10:55:03 2013 -0500 +++ b/source/encoder/framefilter.cppFri Sep 13 01:28:52 2013 -0500 @@ -170,7 +170,7 @@ m_sao.processSaoUnitRow(saoParam-saoLcuParam[2], row - 1, 2); } -// TODO: this code is NOT VERIFY because TransformSkip and PCM mode have some bugs, they always not active! +// TODO: this code is NOT VERIFIED because TransformSkip and PCM modes have some bugs, they are never enabled bool bPCMFilter = (m_pic-getSlice()-getSPS()-getUsePCM() m_pic-getSlice()-getSPS()-getPCMFilterDisableFlag()) ? true : false; if (bPCMFilter || m_pic-getSlice()-getPPS()-getTransquantBypassEnableFlag()) { @@ -187,8 +187,6 @@ // this row of CTUs has been encoded -// TODO: extend margins for motion reference - if (row 0) { processRowPost(row - 1); @@ -209,7 +207,7 @@ m_sao.processSaoUnitRow(saoParam-saoLcuParam[2], row, 2); } -// TODO: this code is NOT VERIFY because TransformSkip and PCM mode have some bugs, they always not active! +// TODO: this code is NOT VERIFIED because TransformSkip and PCM modes have some bugs, they are never enabled bool bPCMFilter = (m_pic-getSlice()-getSPS()-getUsePCM() m_pic-getSlice()-getSPS()-getPCMFilterDisableFlag()) ? true : false; if (bPCMFilter || m_pic-getSlice()-getPPS()-getTransquantBypassEnableFlag()) { @@ -234,10 +232,6 @@ const int lastH = ((recon-getHeight() % g_maxCUHeight) ? (recon-getHeight() % g_maxCUHeight) : g_maxCUHeight); const int realH = (row != m_numRows - 1) ? g_maxCUHeight : lastH; -// TODO: Remove when we confirm below code is right -//recon-xExtendPicCompBorder(recon-getLumaAddr(), recon-getStride(), recon-getWidth(), recon-getHeight(), recon-m_lumaMarginX, recon-m_lumaMarginY); -//recon-xExtendPicCompBorder(recon-getCbAddr(), recon-getCStride(), recon-getWidth() 1, recon-getHeight() 1, recon-m_chromaMarginX, recon-m_chromaMarginY); -//recon-xExtendPicCompBorder(recon-getCrAddr(), recon-getCStride(), recon-getWidth() 1, recon-getHeight() 1, recon-m_chromaMarginX, recon-m_chromaMarginY); // Border extend Left and Right primitives.extendRowBorder(recon-getLumaAddr(lineStartCUAddr), recon-getStride(), recon-getWidth(), realH, recon-getLumaMarginX()); primitives.extendRowBorder(recon-getCbAddr(lineStartCUAddr), recon-getCStride(), recon-getWidth() 1, realH 1, recon-getChromaMarginX()); @@ -248,9 +242,9 @@ { const intptr_t stride = recon-getStride(); const intptr_t strideC = recon-getCStride(); -Pel *pixY = recon-getLumaAddr(lineStartCUAddr) - recon-getLumaMarginX(); -Pel *pixU = recon-getCbAddr(lineStartCUAddr) - recon-getChromaMarginX(); -Pel *pixV = recon-getCrAddr(lineStartCUAddr) - recon-getChromaMarginX(); +pixel *pixY = recon-getLumaAddr(lineStartCUAddr) - recon-getLumaMarginX(); +pixel *pixU = recon-getCbAddr(lineStartCUAddr) - recon-getChromaMarginX(); +pixel *pixV = recon-getCrAddr(lineStartCUAddr) - recon-getChromaMarginX(); Not sure why Pel has been changed to pixel (dropping 16-bit support altogether ?) since getLuma/Cb/CrAddr still return Pel. Anyways, the sizeof operator in the following memcpy's should also be changed to pixel. for (int y = 0; y recon-getLumaMarginY(); y++) { @@ -269,9 +263,9 @@ { const intptr_t stride = recon-getStride(); const intptr_t strideC = recon-getCStride(); -Pel *pixY = recon-getLumaAddr(lineStartCUAddr) - recon-getLumaMarginX() + (realH - 1) * stride; -Pel *pixU = recon-getCbAddr(lineStartCUAddr) - recon-getChromaMarginX() + ((realH 1) - 1) * strideC; -Pel *pixV =