[x265] [PATCH] no-rdo: Use entropy encoder for bit estimation

Deepthi Nandakumar deepthi at multicorewareinc.com
Thu Oct 31 10:01:52 CET 2013


Posting the efficiency results FYI. The performance drop will be taken care
of once the rd 0/1 refactor is complete.


Before BasketballPass_416x240_50       (11.04 fps), 328.96 kb/s, Global
PSNR: 35.613
After BasketballPass_416x240_50        (10.70 fps), 326.64 kb/s, Global
PSNR: 35.609

Before big_buck_bunny_360p24           (9.68 fps), 52.08 kb/s, Global PSNR:
43.549
After big_buck_bunny_360p24            (9.12 fps), 51.80 kb/s, Global PSNR:
43.561

Before FourPeople_1280x720_60          (5.33 fps), 510.23 kb/s, Global
PSNR: 39.653
After FourPeople_1280x720_60           (5.11 fps), 505.69 kb/s, Global
PSNR: 39.654

Before sintel_trailer_2k_720p24        (4.62 fps), 88.32 kb/s, Global PSNR:
54.869
After sintel_trailer_2k_720p24         (4.36 fps), 87.23 kb/s, Global PSNR:
54.802

Before Johnny_1280x720_60              (6.11 fps), 296.06 kb/s, Global
PSNR: 40.525
After Johnny_1280x720_60               (5.96 fps), 294.26 kb/s, Global
PSNR: 40.548

Before Kimono1_1920x1080_24            (1.07 fps), 1811.05 kb/s, Global
PSNR: 38.624
After Kimono1_1920x1080_24             (1.02 fps), 1798.91 kb/s, Global
PSNR: 38.625

Before BasketballDrive_1920x1080       (1.16 fps), 3849.92 kb/s, Global
PSNR: 37.146
After BasketballDrive_1920x1080        (1.06 fps), 3820.42 kb/s, Global
PSNR: 37.150



On Thu, Oct 31, 2013 at 12:44 PM, <deepthidevaki at multicorewareinc.com>wrote:

> # HG changeset patch
> # User Deepthi Devaki <deepthidevaki at multicorewareinc.com>
> # Date 1383203307 -19800
> # Node ID 4b4332d038832ab8812773d618b38329ec75ae4b
> # Parent  ec6b4d35f11053b06d0e1ea46df798ff89a4c127
> no-rdo: Use entropy encoder for bit estimation.
>
> Instead of me-bit estimation, use entropy encoder.
>
> diff -r ec6b4d35f110 -r 4b4332d03883 source/Lib/TLibEncoder/TEncSearch.h
> --- a/source/Lib/TLibEncoder/TEncSearch.h       Thu Oct 31 00:09:49 2013
> -0500
> +++ b/source/Lib/TLibEncoder/TEncSearch.h       Thu Oct 31 12:38:27 2013
> +0530
> @@ -165,6 +165,12 @@
>
>      void xSetIntraResultQT(TComDataCU* cu, uint32_t trDepth, uint32_t
> absPartIdx, bool bLumaOnly, TComYuv* reconYuv);
>
> +    //
> -------------------------------------------------------------------------------------------------------------------
> +    // compute symbol bits
> +    //
> -------------------------------------------------------------------------------------------------------------------
> +
> +    uint32_t xSymbolBitsInter(TComDataCU* cu);
> +
>  protected:
>
>      //
> --------------------------------------------------------------------------------------------
> @@ -232,12 +238,6 @@
>                               UInt64 &rdCost, uint32_t &outBits, uint32_t
> &outDist, uint32_t *puiZeroDist);
>      void xSetResidualQTData(TComDataCU* cu, uint32_t absPartIdx, uint32_t
> absTUPartIdx, TShortYUV* resiYuv, uint32_t depth, bool bSpatial);
>
> -    //
> -------------------------------------------------------------------------------------------------------------------
> -    // compute symbol bits
> -    //
> -------------------------------------------------------------------------------------------------------------------
> -
> -    uint32_t xSymbolBitsInter(TComDataCU* cu);
> -
>      void setWpScalingDistParam(TComDataCU* cu, int refIdx, int picList);
>  };
>  }
> diff -r ec6b4d35f110 -r 4b4332d03883 source/encoder/compress.cpp
> --- a/source/encoder/compress.cpp       Thu Oct 31 00:09:49 2013 -0500
> +++ b/source/encoder/compress.cpp       Thu Oct 31 12:38:27 2013 +0530
> @@ -228,6 +228,9 @@
>      int part = partitionFromSizes(outTempCU->getWidth(0),
> outTempCU->getHeight(0));
>      uint32_t distortion =
> primitives.sse_pp[part](m_origYuv[depth]->getLumaAddr(),
> m_origYuv[depth]->getStride(),
>
>  outPredYuv->getLumaAddr(), outPredYuv->getStride());
> +
>  m_rdGoOnSbacCoder->load(m_rdSbacCoders[outTempCU->getDepth(0)][CI_CURR_BEST]);
> +    outTempCU->m_totalBits = m_search->xSymbolBitsInter(outTempCU);
> +
>      outTempCU->m_totalCost = m_rdCost->calcRdCost(distortion,
> outTempCU->m_totalBits);
>  }
>
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131031/c4c18d82/attachment.html>


More information about the x265-devel mailing list