[x265] [PATCH 2 of 3 RFC] frameencoder: store reflagrows as a member variable

Steve Borho steve at borho.org
Fri Jul 11 22:46:53 CEST 2014


On Fri, Jul 11, 2014 at 6:24 AM,  <santhoshini at multicorewareinc.com> wrote:
> # HG changeset patch
> # User Santhoshini Sekar <santhoshini at multicorewareinc.com>
> # Date 1405071932 -19800
> #      Fri Jul 11 15:15:32 2014 +0530
> # Node ID 7acd78cdabfee453ba3b44b034eb2c87e587c7e6
> # Parent  902e1d37847f0bc222fdc05dcd4a7f6dd26b0751
> frameencoder: store reflagrows as a member variable
>
> diff -r 902e1d37847f -r 7acd78cdabfe source/encoder/frameencoder.cpp
> --- a/source/encoder/frameencoder.cpp   Fri Jul 11 14:54:00 2014 +0530
> +++ b/source/encoder/frameencoder.cpp   Fri Jul 11 15:15:32 2014 +0530
> @@ -92,6 +92,12 @@
>      m_rows = new CTURow[m_numRows];
>      bool ok = !!m_numRows;
>
> +    int range = m_param->searchRange; /* fpel search */
> +    range    += 1;                        /* diamond search range check lag */
> +    range    += 2;                        /* subpel refine */
> +    range    += NTAPS_LUMA / 2;           /* subpel filter half-length */

queued, after repairing comment alignment

> +    m_refLagRows = 1 + ((range + g_maxCUSize - 1) / g_maxCUSize);
> +
>      // NOTE: 2 times of numRows because both Encoder and Filter in same queue
>      if (!WaveFront::init(m_numRows * 2))
>      {
> @@ -706,11 +712,6 @@
>
>      bool bUseWeightP = slice->getPPS()->getUseWP() && slice->getSliceType() == P_SLICE;
>      bool bUseWeightB = slice->getPPS()->getWPBiPred() && slice->getSliceType() == B_SLICE;
> -    int range = m_param->searchRange; /* fpel search */
> -    range    += 1;                    /* diamond search range check lag */
> -    range    += 2;                    /* subpel refine */
> -    range    += NTAPS_LUMA / 2;       /* subpel filter half-length */
> -    int refLagRows = 1 + ((range + g_maxCUSize - 1) / g_maxCUSize);
>      int numPredDir = slice->isInterP() ? 1 : slice->isInterB() ? 2 : 0;
>
>      m_SSDY = m_SSDU = m_SSDV = 0;
> @@ -735,14 +736,14 @@
>                      Frame *refpic = slice->getRefPic(l, ref);
>
>                      int reconRowCount = refpic->m_reconRowCount.get();
> -                    while ((reconRowCount != m_numRows) && (reconRowCount < row + refLagRows))
> +                    while ((reconRowCount != m_numRows) && (reconRowCount < row + m_refLagRows))
>                      {
>                          reconRowCount = refpic->m_reconRowCount.waitForChange(reconRowCount);
>                      }
>
>                      if ((bUseWeightP || bUseWeightB) && m_mref[l][ref].isWeighted)
>                      {
> -                        m_mref[l][ref].applyWeight(row + refLagRows, m_numRows);
> +                        m_mref[l][ref].applyWeight(row + m_refLagRows, m_numRows);
>                      }
>                  }
>              }
> @@ -774,14 +775,14 @@
>                          Frame *refpic = slice->getRefPic(list, ref);
>
>                          int reconRowCount = refpic->m_reconRowCount.get();
> -                        while ((reconRowCount != m_numRows) && (reconRowCount < i + refLagRows))
> +                        while ((reconRowCount != m_numRows) && (reconRowCount < i + m_refLagRows))
>                          {
>                              reconRowCount = refpic->m_reconRowCount.waitForChange(reconRowCount);
>                          }
>
>                          if ((bUseWeightP || bUseWeightB) && m_mref[l][ref].isWeighted)
>                          {
> -                            m_mref[list][ref].applyWeight(i + refLagRows, m_numRows);
> +                            m_mref[list][ref].applyWeight(i + m_refLagRows, m_numRows);
>                          }
>                      }
>                  }
> diff -r 902e1d37847f -r 7acd78cdabfe source/encoder/frameencoder.h
> --- a/source/encoder/frameencoder.h     Fri Jul 11 14:54:00 2014 +0530
> +++ b/source/encoder/frameencoder.h     Fri Jul 11 15:15:32 2014 +0530
> @@ -117,6 +117,7 @@
>
>      int                      m_numRows;
>      uint32_t                 m_numCols;
> +    int                      m_refLagRows;
>      CTURow*                  m_rows;
>      TComSPS                  m_sps;
>      TComPPS                  m_pps;
> _______________________________________________
> x265-devel mailing list
> x265-devel at videolan.org
> https://mailman.videolan.org/listinfo/x265-devel



-- 
Steve Borho


More information about the x265-devel mailing list