[x265] [PATCH] TComPic: add m_qpAqOffset to store qp offsets per CU when Aq is enabled

Steve Borho steve at borho.org
Thu Oct 17 10:28:42 CEST 2013


On Thu, Oct 17, 2013 at 2:21 AM, <aarthi at multicorewareinc.com> wrote:

> # HG changeset patch
> # User Aarthi Thirumalai<aarthi at multicorewareinc.com>
> # Date 1381989693 -19800
> #      Thu Oct 17 11:31:33 2013 +0530
> # Node ID aad785763f1d38473177e3f1293d3012d79239ca
> # Parent  1d6b3626f1b3d4b8f8f181e66eaaa649f90bac02
> TComPic: add m_qpAqOffset to store qp offsets per CU when Aq is enabled
>

I have a nit, sorry


>
> diff -r 1d6b3626f1b3 -r aad785763f1d source/Lib/TLibCommon/TComPic.cpp
> --- a/source/Lib/TLibCommon/TComPic.cpp Wed Oct 16 20:38:44 2013 -0500
> +++ b/source/Lib/TLibCommon/TComPic.cpp Thu Oct 17 11:31:33 2013 +0530
> @@ -61,6 +61,7 @@
>      memset(&m_lowres, 0, sizeof(m_lowres));
>      m_next = NULL;
>      m_prev = NULL;
> +    m_qpAqOffset = NULL;
>      m_SSDY = 0;
>      m_SSDU = 0;
>      m_SSDV = 0;
> @@ -69,25 +70,32 @@
>  TComPic::~TComPic()
>  {}
>
> -void TComPic::create(int width, int height, UInt maxWidth, UInt
> maxHeight, UInt maxDepth, Window &conformanceWindow, Window
> &defaultDisplayWindow, int bframes)
> +void TComPic::create(TEncCfg* cfg)
>  {
>      m_picSym = new TComPicSym;
> -    m_picSym->create(width, height, maxWidth, maxHeight, maxDepth);
> +    m_picSym->create(cfg->param.sourceWidth,cfg->param.sourceHeight,
> g_maxCUWidth, g_maxCUHeight, g_maxCUDepth);
>
>      m_origPicYuv = new TComPicYuv;
> -    m_origPicYuv->create(width, height, maxWidth, maxHeight, maxDepth);
> +    m_origPicYuv->create(cfg->param.sourceWidth,cfg->param.sourceHeight,
> g_maxCUWidth, g_maxCUHeight, g_maxCUDepth);
>
>      m_reconPicYuv = new TComPicYuv;
> -    m_reconPicYuv->create(width, height, maxWidth, maxHeight, maxDepth);
> +    m_reconPicYuv->create(cfg->param.sourceWidth,cfg->param.sourceHeight,
> g_maxCUWidth, g_maxCUHeight, g_maxCUDepth);
>
>      /* store conformance window parameters with picture */
> -    m_conformanceWindow = conformanceWindow;
> +    m_conformanceWindow = cfg->getConformanceWindow();
>
>      /* store display window parameters with picture */
> -    m_defaultDisplayWindow = defaultDisplayWindow;
> +    m_defaultDisplayWindow = cfg->getDefaultDisplayWindow();
>
>      /* configure lowres dimensions */
> -    m_lowres.create(this, bframes);
> +    m_lowres.create(this, cfg->param.bframes);
> +
> +    if (cfg->param.rc.aqMode)
> +    {
> +        m_qpAqOffset = (double *)x265_malloc(sizeof(double) *
> getPicSym()->getNumberOfCUsInFrame());
> +        if (!m_qpAqOffset)
> +            cfg->param.rc.aqMode = 0;
> +    }
>

perfect


>  }
>
>  void TComPic::destroy(int bframes)
> @@ -114,6 +122,7 @@
>      }
>
>      m_lowres.destroy(bframes);
> +    X265_FREE(m_qpAqOffset);
>  }
>
>  //! \}
> diff -r 1d6b3626f1b3 -r aad785763f1d source/Lib/TLibCommon/TComPic.h
> --- a/source/Lib/TLibCommon/TComPic.h   Wed Oct 16 20:38:44 2013 -0500
> +++ b/source/Lib/TLibCommon/TComPic.h   Thu Oct 17 11:31:33 2013 +0530
> @@ -44,6 +44,7 @@
>  #include "TComPicYuv.h"
>  #include "lowres.h"
>  #include "threading.h"
> +#include "TLibEncoder/TEncCfg.h"
>

Perhaps a bit anal, but I prefer forward-declaring TEncCfg rather than
including the header here.


>
>  namespace x265 {
>  // private namespace
> @@ -84,7 +85,7 @@
>
>      TComPic*              m_next;
>      TComPic*              m_prev;
> -
> +    double*               m_qpAqOffset;
>      UInt64                m_SSDY;
>      UInt64                m_SSDU;
>      UInt64                m_SSDV;
> @@ -92,7 +93,7 @@
>      TComPic();
>      virtual ~TComPic();
>
> -    void          create(int width, int height, UInt maxWidth, UInt
> maxHeight, UInt maxDepth, Window &conformanceWindow, Window
> &defaultDisplayWindow, int bframes);
> +    void          create(TEncCfg* cfg);
>
>      virtual void  destroy(int bframes);
>
> diff -r 1d6b3626f1b3 -r aad785763f1d source/encoder/encoder.cpp
> --- a/source/encoder/encoder.cpp        Wed Oct 16 20:38:44 2013 -0500
> +++ b/source/encoder/encoder.cpp        Thu Oct 17 11:31:33 2013 +0530
> @@ -166,8 +166,7 @@
>          if (m_freeList.empty())
>          {
>              pic = new TComPic;
> -            pic->create(param.sourceWidth, param.sourceHeight,
> g_maxCUWidth, g_maxCUHeight, g_maxCUDepth,
> -                        getConformanceWindow(),
> getDefaultDisplayWindow(), param.bframes);
> +            pic->create(this);
>              if (param.bEnableSAO)
>              {
>                  // TODO: these should be allocated on demand within the
> encoder
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel
>



-- 
Steve Borho
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.videolan.org/pipermail/x265-devel/attachments/20131017/339b350a/attachment.html>


More information about the x265-devel mailing list