From 7e495390396d6a55f95ad4649e46b56fd7d2ef1c Mon Sep 17 00:00:00 2001 From: Min Chen <[email protected]> Date: Mon, 4 Nov 2019 16:21:20 +0800 Subject: [PATCH] Improve all_angs_pred_c by remove unnecessary transpose
---
source/common/intrapred.cpp | 22 +++-------------------
1 file changed, 3 insertions(+), 19 deletions(-)
diff --git a/source/common/intrapred.cpp b/source/common/intrapred.cpp
index 0b65ccf..2fb4eb5 100644
--- a/source/common/intrapred.cpp
+++ b/source/common/intrapred.cpp
@@ -99,7 +99,7 @@ void planar_pred_c(pixel* dst, intptr_t dstStride, const
pixel* srcPix, int /*di
dst[y * dstStride + x] = (pixel) (((blkSize - 1 - x) * left[y] +
(blkSize - 1 -y) * above[x] + (x + 1) * topRight + (y + 1) * bottomLeft +
blkSize) >> (log2Size + 1));
}
-template<int width>
+template<int width, bool disableTranspose = false>
void intra_pred_ang_c(pixel* dst, intptr_t dstStride, const pixel *srcPix0,
int dirMode, int bFilter)
{
int width2 = width << 1;
@@ -189,7 +189,7 @@ void intra_pred_ang_c(pixel* dst, intptr_t dstStride, const
pixel *srcPix0, int
}
// Flip for horizontal.
- if (horMode)
+ if (!disableTranspose && horMode)
{
for (int y = 0; y < width - 1; y++)
{
@@ -212,24 +212,8 @@ void all_angs_pred_c(pixel *dest, pixel *refPix, pixel
*filtPix, int bLuma)
pixel *srcPix = (g_intraFilterFlags[mode] & size ? filtPix : refPix);
pixel *out = dest + ((mode - 2) << (log2Size * 2));
- intra_pred_ang_c<size>(out, size, srcPix, mode, bLuma);
-
// Optimize code don't flip buffer
- bool modeHor = (mode < 18);
-
- // transpose the block if this is a horizontal mode
- if (modeHor)
- {
- for (int k = 0; k < size - 1; k++)
- {
- for (int l = k + 1; l < size; l++)
- {
- pixel tmp = out[k * size + l];
- out[k * size + l] = out[l * size + k];
- out[l * size + k] = tmp;
- }
- }
- }
+ intra_pred_ang_c<size, true>(out, size, srcPix, mode, bLuma);
}
}
}
--
2.9.0.windows.1
0001-Improve-all_angs_pred_c-by-remove-unnecessary-transp.patch
Description: Binary data
_______________________________________________ x265-devel mailing list [email protected] https://mailman.videolan.org/listinfo/x265-devel
