On Fri, Jan 10, 2014 at 2:10 PM, <sumala...@multicorewareinc.com> wrote:
> # HG changeset patch > # User Sumalatha Polureddy > # Date 1389343212 -19800 > # Node ID 104fb077a9813f0f3bb94c370e134d0d6d180809 > # Parent 80b63c3ee144e6edbafbbe281ad3d1d8505be1f6 > rd Level: improve bitrate and psnr in rd level 2 > > a. Always allow intra mode for mode decision > b. increase more merge skips at each depth > > Results are below > CLI: input.y4m -o bitstream.hevc -r recon.y4m --preset veryfast --rd 2 > > rd3 / previous rd2 / latest rd2 > BasketballDrive_1920x1080_50 > fps: 4.24/5.615.7 > psnr: 33.67/33.95/33.677 > birate: 2211/2272/2188 > > Kimono1_1920x1080_24 > fps: 5.45/6.11/6.1 > psnr: 35.004/35.144/34.835 > birate: 713/740/692 > > FourPeople_1280x720_60 > fps: 7.99/10.86/11.46 > psnr: 34.93/35.17/34.931 > birate: 320/341/341 > > big_buck_bunny_360p24 > fps: 38.98/49.32/44.46 > psnr: 33.21/33.36/33.167 > birate: 56/60/56 > > Johnny_1280x720_60 > fps: 8.21/9.58/11.32 > psnr: 36.74/37.238/37.01 > birate: 203/204/206 > > diff -r 80b63c3ee144 -r 104fb077a981 source/encoder/compress.cpp > --- a/source/encoder/compress.cpp Thu Jan 09 12:50:16 2014 +0550 > +++ b/source/encoder/compress.cpp Fri Jan 10 14:10:12 2014 +0530 > @@ -517,12 +517,6 @@ > bdoIntra = (outBestCU->getCbf(0, TEXT_LUMA) || > outBestCU->getCbf(0, TEXT_CHROMA_U) || > outBestCU->getCbf(0, TEXT_CHROMA_V)); > } > - else > - { > - uint32_t threshold[4] = { 20000, 6000, 1600, 500 > }; > - int index = 4 - > g_convertToBit[outBestCU->getWidth(0)]; > - bdoIntra = (outBestCU->m_totalDistortion > > threshold[index]); > - } > This change is valid. > if (bdoIntra) > { > xComputeCostIntraInInter(m_intraInInterCU[depth], > SIZE_2Nx2N); > @@ -587,8 +581,12 @@ > } > > m_search->encodeResAndCalcRdInterCU(m_mergeCU[depth], m_origYuv[depth], > bestMergePred, m_tmpResiYuv[depth], > > m_bestResiYuv[depth], m_tmpRecoYuv[depth], true); > - > - if (m_mergeCU[depth]->m_totalCost < > outBestCU->m_totalCost) > + double lambda[4]; > + lambda[0] = 1.06; > + lambda[1] = 1.5; > + lambda[2] = 1.1; > + lambda[3] = 1.0; > This part looks like an artificial way of forcing more skips. I'd like to understand why merge-skips have reduced so much in the first place in rd 2, and then fix the root cause. + if (m_mergeCU[depth]->m_totalCost < lambda[depth] > * outBestCU->m_totalCost) > { > outBestCU = m_mergeCU[depth]; > tempYuv = m_bestRecoYuv[depth]; > _______________________________________________ > x265-devel mailing list > x265-devel@videolan.org > https://mailman.videolan.org/listinfo/x265-devel >
_______________________________________________ x265-devel mailing list x265-devel@videolan.org https://mailman.videolan.org/listinfo/x265-devel