[x265] [PATCH] fix for 420 binary mismatch for --preset=slower option
Steve Borho
steve at borho.org
Wed Feb 19 23:45:28 CET 2014
On Wed, Feb 19, 2014 at 5:05 AM, <ashok at multicorewareinc.com> wrote:
> # HG changeset patch
> # User ashok at multicorewareinc.com
You need to configure a full name and email address as your Mercurial
commit username
# Date 1392807860 -19800
> # Wed Feb 19 16:34:20 2014 +0530
> # Node ID f0e4f6aa075587f715a7cd48ef63f97d56caa21a
> # Parent 8571d160aedb00e07a3f47016f04d8d9aeaa5856
> fix for 420 binary mismatch for --preset=slower option
>
> diff -r 8571d160aedb -r f0e4f6aa0755 source/Lib/TLibCommon/TComDataCU.cpp
> --- a/source/Lib/TLibCommon/TComDataCU.cpp Tue Feb 18 01:43:42 2014
> -0600
> +++ b/source/Lib/TLibCommon/TComDataCU.cpp Wed Feb 19 16:34:20 2014
> +0530
> @@ -2852,7 +2852,7 @@
> + (partWidth /
> m_pic->getMinCUWidth()) / 2];
> }
>
> -uint32_t TComDataCU::getCoefScanIdx(uint32_t absPartIdx, uint32_t width,
> bool bIsLuma, bool bIsIntra)
> +uint32_t TComDataCU::getCoefScanIdx(uint32_t absPartIdx, uint32_t width,
> uint32_t height, bool bIsLuma, bool bIsIntra)
> {
> uint32_t scanIdx;
> uint32_t dirMode;
> @@ -2863,7 +2863,6 @@
> }
> //check that MDCS can be used for this TU
>
> - uint32_t height = width;
> if (bIsLuma)
> {
> const uint32_t maximumWidth = MDCS_MAXIMUM_WIDTH;
> diff -r 8571d160aedb -r f0e4f6aa0755 source/Lib/TLibCommon/TComDataCU.h
> --- a/source/Lib/TLibCommon/TComDataCU.h Tue Feb 18 01:43:42 2014
> -0600
> +++ b/source/Lib/TLibCommon/TComDataCU.h Wed Feb 19 16:34:20 2014
> +0530
> @@ -473,7 +473,7 @@
>
> uint32_t& getTotalNumPart() { return
> m_numPartitions; }
>
> - uint32_t getCoefScanIdx(uint32_t absPartIdx, uint32_t width,
> bool bIsLuma, bool bIsIntra);
> + uint32_t getCoefScanIdx(uint32_t absPartIdx, uint32_t width,
> uint32_t height, bool bIsLuma, bool bIsIntra);
>
> //
> -------------------------------------------------------------------------------------------------------------------
> // member functions to support multiple color space formats
> diff -r 8571d160aedb -r f0e4f6aa0755 source/Lib/TLibCommon/TComTrQuant.cpp
> --- a/source/Lib/TLibCommon/TComTrQuant.cpp Tue Feb 18 01:43:42 2014
> -0600
> +++ b/source/Lib/TLibCommon/TComTrQuant.cpp Wed Feb 19 16:34:20 2014
> +0530
> @@ -502,7 +502,7 @@
> const uint32_t log2BlockWidth =
> g_convertToBit[width] + 2;
> const uint32_t log2BlockHeight =
> g_convertToBit[height] + 2;
>
> - result.scanType = COEFF_SCAN_TYPE(cu->getCoefScanIdx(absPartIdx,
> width, ttype == TEXT_LUMA, cu->isIntra(absPartIdx)));
> + result.scanType = COEFF_SCAN_TYPE(cu->getCoefScanIdx(absPartIdx,
> width, height, ttype == TEXT_LUMA, cu->isIntra(absPartIdx)));
>
> //set the group layout
> result.widthInGroups = width >> MLS_CG_LOG2_WIDTH;
> @@ -516,19 +516,20 @@
> result.scanCG =
> g_scanOrder[SCAN_UNGROUPED][result.scanType][log2WidthInGroups][log2HeightInGroups];
>
> //set the significance map context selection parameters
> + TextType ctype = ttype == TEXT_LUMA ? TEXT_LUMA : TEXT_CHROMA;
> if ((width == 4) && (height == 4))
> {
> - result.firstSignificanceMapContext =
> significanceMapContextSetStart[ttype][CONTEXT_TYPE_4x4];
> + result.firstSignificanceMapContext =
> significanceMapContextSetStart[ctype][CONTEXT_TYPE_4x4];
> }
> else if ((width == 8) && (height == 8))
> {
> - result.firstSignificanceMapContext =
> significanceMapContextSetStart[ttype][CONTEXT_TYPE_8x8];
> + result.firstSignificanceMapContext =
> significanceMapContextSetStart[ctype][CONTEXT_TYPE_8x8];
> if (result.scanType != SCAN_DIAG)
> - result.firstSignificanceMapContext +=
> nonDiagonalScan8x8ContextOffset[ttype];
> + result.firstSignificanceMapContext +=
> nonDiagonalScan8x8ContextOffset[ctype];
> }
> else
> {
> - result.firstSignificanceMapContext =
> significanceMapContextSetStart[ttype][CONTEXT_TYPE_NxN];
> + result.firstSignificanceMapContext =
> significanceMapContextSetStart[ctype][CONTEXT_TYPE_NxN];
> }
> }
>
> @@ -1124,8 +1125,8 @@
> }
>
> const bool notFirstGroup = ((posX >> MLS_CG_LOG2_WIDTH) + (posY
> >> MLS_CG_LOG2_HEIGHT)) > 0;
> -
> - offset = (notFirstGroup ?
> notFirstGroupNeighbourhoodContextOffset[ttype] : 0) + cnt;
> + TextType ctype = ttype == TEXT_LUMA ? TEXT_LUMA : TEXT_CHROMA;
> + offset = (notFirstGroup ?
> notFirstGroupNeighbourhoodContextOffset[ctype] : 0) + cnt;
> }
> return codingParameters.firstSignificanceMapContext + offset;
> }
> diff -r 8571d160aedb -r f0e4f6aa0755 source/Lib/TLibEncoder/TEncSbac.cpp
> --- a/source/Lib/TLibEncoder/TEncSbac.cpp Tue Feb 18 01:43:42 2014
> -0600
> +++ b/source/Lib/TLibEncoder/TEncSbac.cpp Wed Feb 19 16:34:20 2014
> +0530
> @@ -942,7 +942,7 @@
> void TEncSbac::xCodeScalingList(TComScalingList* scalingList, uint32_t
> sizeId, uint32_t listId)
> {
> int coefNum = X265_MIN(MAX_MATRIX_COEF_NUM,
> (int)g_scalingListSize[sizeId]);
> - const uint32_t* scan = (sizeId == 0) ? g_sigLastScan[SCAN_DIAG][1] :
> g_sigLastScanCG32x32;
> + const uint32_t* scan =
> g_scanOrder[SCAN_UNGROUPED][SCAN_DIAG][sizeId==0 ? 2 : 3][sizeId==0 ? 2 :
> 3];
> int nextCoef = SCALING_LIST_START_VALUE;
> int data;
> int32_t *src = scalingList->getScalingListAddress(sizeId, listId);
> _______________________________________________
> 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/20140219/0349d8fc/attachment.html>
More information about the x265-devel
mailing list