[x265-commits] [x265] cleanup: remove unused code in mc-a2.asm
Min Chen
chenm003 at 163.com
Tue Nov 26 09:29:05 CET 2013
details: http://hg.videolan.org/x265/rev/464af047f7b1
branches:
changeset: 5291:464af047f7b1
user: Min Chen <chenm003 at 163.com>
date: Sun Nov 24 14:52:31 2013 +0800
description:
cleanup: remove unused code in mc-a2.asm
Subject: [x265] cleanup: remove unused code in pixel-a.asm
details: http://hg.videolan.org/x265/rev/513f564ba360
branches:
changeset: 5292:513f564ba360
user: Min Chen <chenm003 at 163.com>
date: Sun Nov 24 16:53:56 2013 +0800
description:
cleanup: remove unused code in pixel-a.asm
Subject: [x265] cleanup: remove unused constant in pixel-a.asm
details: http://hg.videolan.org/x265/rev/c0c862dc71fb
branches:
changeset: 5293:c0c862dc71fb
user: Min Chen <chenm003 at 163.com>
date: Sun Nov 24 17:34:12 2013 +0800
description:
cleanup: remove unused constant in pixel-a.asm
Subject: [x265] cleanup: remove unused code in mc-a.asm
details: http://hg.videolan.org/x265/rev/9c7142ced7c4
branches:
changeset: 5294:9c7142ced7c4
user: Min Chen <chenm003 at 163.com>
date: Mon Nov 25 12:03:42 2013 +0800
description:
cleanup: remove unused code in mc-a.asm
Subject: [x265] asm: assembly code for dequant_normal
details: http://hg.videolan.org/x265/rev/67e8ecb2b0e5
branches:
changeset: 5295:67e8ecb2b0e5
user: Min Chen <chenm003 at 163.com>
date: Mon Nov 25 14:19:59 2013 +0800
description:
asm: assembly code for dequant_normal
Subject: [x265] cleanup the temporary function pointer initialization
details: http://hg.videolan.org/x265/rev/b54870f0cdd3
branches:
changeset: 5296:b54870f0cdd3
user: Praveen Tiwari <praveen at multicorewareinc.com>
date: Mon Nov 25 17:05:59 2013 +0550
description:
cleanup the temporary function pointer initialization
Subject: [x265] asm : routine for weight_pp(), for input width in multiples of 16
details: http://hg.videolan.org/x265/rev/3e4c257d88ab
branches:
changeset: 5297:3e4c257d88ab
user: Nabajit Deka <nabajit at multicorewareinc.com>
date: Mon Nov 25 18:01:55 2013 +0550
description:
asm : routine for weight_pp(), for input width in multiples of 16
Subject: [x265] Test bench modifications for weight_pp() asm routine.
details: http://hg.videolan.org/x265/rev/13126513fe61
branches:
changeset: 5298:13126513fe61
user: Nabajit Deka <nabajit at multicorewareinc.com>
date: Mon Nov 25 18:15:25 2013 +0550
description:
Test bench modifications for weight_pp() asm routine.
Subject: [x265] Adding asm function declaration and initialization for weight_pp asm routine.
details: http://hg.videolan.org/x265/rev/be74f1731279
branches:
changeset: 5299:be74f1731279
user: Nabajit Deka <nabajit at multicorewareinc.com>
date: Mon Nov 25 18:16:49 2013 +0550
description:
Adding asm function declaration and initialization for weight_pp asm routine.
Subject: [x265] asm: move constant 8192 to const-a.asm for share
details: http://hg.videolan.org/x265/rev/a5c7cd496583
branches:
changeset: 5300:a5c7cd496583
user: Min Chen <chenm003 at 163.com>
date: Mon Nov 25 22:30:03 2013 +0800
description:
asm: move constant 8192 to const-a.asm for share
Subject: [x265] asm : routine for weight_sp().
details: http://hg.videolan.org/x265/rev/d9d6b8b4e4f1
branches:
changeset: 5301:d9d6b8b4e4f1
user: Nabajit Deka <nabajit at multicorewareinc.com>
date: Mon Nov 25 18:34:53 2013 +0550
description:
asm : routine for weight_sp().
Subject: [x265] Adding asm function declaration and initialization for weight_sp asm routine
details: http://hg.videolan.org/x265/rev/47ef19a1734c
branches:
changeset: 5302:47ef19a1734c
user: Nabajit Deka <nabajit at multicorewareinc.com>
date: Mon Nov 25 18:37:31 2013 +0550
description:
Adding asm function declaration and initialization for weight_sp asm routine
Subject: [x265] Test bench modifications for weight_sp() asm routine
details: http://hg.videolan.org/x265/rev/3e688d424f05
branches:
changeset: 5303:3e688d424f05
user: Nabajit Deka <nabajit at multicorewareinc.com>
date: Mon Nov 25 19:19:48 2013 +0550
description:
Test bench modifications for weight_sp() asm routine
Subject: [x265] asm: assembly code for sse_ss - 4xN, 8xN, 16xN
details: http://hg.videolan.org/x265/rev/7cab79758dd7
branches:
changeset: 5304:7cab79758dd7
user: Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
date: Mon Nov 25 21:00:49 2013 +0550
description:
asm: assembly code for sse_ss - 4xN, 8xN, 16xN
Subject: [x265] Test bench: code for pixel_var
details: http://hg.videolan.org/x265/rev/529bd0084265
branches:
changeset: 5305:529bd0084265
user: Murugan Vairavel <murugan at multicorewareinc.com>
date: Mon Nov 25 21:16:28 2013 +0550
description:
Test bench: code for pixel_var
Subject: [x265] asm: assembly code for pixel_sse_ss_12x16
details: http://hg.videolan.org/x265/rev/71262c718dfa
branches:
changeset: 5306:71262c718dfa
user: Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
date: Mon Nov 25 21:24:32 2013 +0550
description:
asm: assembly code for pixel_sse_ss_12x16
Subject: [x265] asm: code for pixel_var_8xN
details: http://hg.videolan.org/x265/rev/da18434af735
branches:
changeset: 5307:da18434af735
user: Murugan Vairavel <murugan at multicorewareinc.com>
date: Mon Nov 25 21:37:38 2013 +0550
description:
asm: code for pixel_var_8xN
Subject: [x265] asm: assembly code for intra_pred_planar[4x4]
details: http://hg.videolan.org/x265/rev/6a8fbb091722
branches:
changeset: 5308:6a8fbb091722
user: Dnyaneshwar G <dnyaneshwar at multicorewareinc.com>
date: Mon Nov 25 21:47:53 2013 +0550
description:
asm: assembly code for intra_pred_planar[4x4]
Subject: [x265] asm: assembly code for pixel_sse_ss_32xN
details: http://hg.videolan.org/x265/rev/8075b13cee00
branches:
changeset: 5309:8075b13cee00
user: Yuvaraj Venkatesh <yuvaraj at multicorewareinc.com>
date: Mon Nov 25 21:52:10 2013 +0550
description:
asm: assembly code for pixel_sse_ss_32xN
Subject: [x265] asm: code for pixel_var_16xN
details: http://hg.videolan.org/x265/rev/672ae35d4e5f
branches:
changeset: 5310:672ae35d4e5f
user: Murugan Vairavel <murugan at multicorewareinc.com>
date: Mon Nov 25 21:58:33 2013 +0550
description:
asm: code for pixel_var_16xN
Subject: [x265] 合并 multicoreware/x265 到 default
details: http://hg.videolan.org/x265/rev/06d509e2e687
branches:
changeset: 5311:06d509e2e687
user: chenm003 <chenm003 at 163.com>
date: Tue Nov 26 10:49:27 2013 +0800
description:
合并 multicoreware/x265 到 default
Subject: [x265] asm: fix build error on x64
details: http://hg.videolan.org/x265/rev/116d91f08fcb
branches:
changeset: 5312:116d91f08fcb
user: Min Chen <chenm003 at 163.com>
date: Tue Nov 26 14:19:27 2013 +0800
description:
asm: fix build error on x64
Subject: [x265] api: document a few rate control settings
details: http://hg.videolan.org/x265/rev/5accd2ae5ceb
branches:
changeset: 5313:5accd2ae5ceb
user: Steve Borho <steve at borho.org>
date: Tue Nov 26 01:12:49 2013 -0600
description:
api: document a few rate control settings
Subject: [x265] pixel: remove intrinsic pixel weight functions, we have asm coverage
details: http://hg.videolan.org/x265/rev/491fd3ee6fd1
branches:
changeset: 5314:491fd3ee6fd1
user: Steve Borho <steve at borho.org>
date: Mon Nov 25 14:00:56 2013 -0600
description:
pixel: remove intrinsic pixel weight functions, we have asm coverage
diffstat:
source/Lib/TLibEncoder/TEncCu.cpp | 16 +-
source/common/dct.cpp | 5 +-
source/common/pixel.cpp | 11 +-
source/common/vec/pixel-sse41.cpp | 90 -
source/common/x86/asm-primitives.cpp | 84 +-
source/common/x86/const-a.asm | 2 +
source/common/x86/intrapred.asm | 62 +-
source/common/x86/intrapred.h | 2 +
source/common/x86/ipfilter8.asm | 51 +-
source/common/x86/mc-a.asm | 668 -------
source/common/x86/mc-a2.asm | 824 --------
source/common/x86/pixel-a.asm | 3162 ++++++---------------------------
source/common/x86/pixel-util.asm | 211 ++
source/common/x86/pixel.h | 41 +-
source/encoder/compress.cpp | 2 +-
source/encoder/encoder.cpp | 146 +-
source/test/pixelharness.cpp | 45 +-
source/test/pixelharness.h | 1 +
source/x265.h | 15 +-
19 files changed, 1121 insertions(+), 4317 deletions(-)
diffs (truncated from 6143 to 300 lines):
diff -r 10f605bd0530 -r 491fd3ee6fd1 source/Lib/TLibEncoder/TEncCu.cpp
--- a/source/Lib/TLibEncoder/TEncCu.cpp Fri Nov 22 14:59:34 2013 -0600
+++ b/source/Lib/TLibEncoder/TEncCu.cpp Mon Nov 25 14:00:56 2013 -0600
@@ -636,14 +636,26 @@ void TEncCu::xCompressIntraCU(TComDataCU
if (outBestCU->m_totalCost < outTempCU->m_totalCost)
{
m_log->cntIntra[depth]++;
- m_log->cntIntra[depth + 1] = m_log->cntIntra[depth + 1] - 4 + boundaryCu;
+ for (int i = 0; i < 4; i++)
+ {
+ if (outTempCU->getPartitionSize(i) != SIZE_NxN)
+ m_log->cntIntra[depth + 1]--;
+ else
+ m_log->cntIntraNxN--;
+ }
+ m_log->cntIntra[depth + 1] += boundaryCu;
}
xCheckBestMode(outBestCU, outTempCU, depth); // RD compare current prediction with split prediction.
}
if (depth == g_maxCUDepth - 1 && bSubBranch)
{
- m_log->cntIntra[depth]++;
+ if (outBestCU->getPartitionSize(0) == SIZE_NxN)
+ {
+ m_log->cntIntraNxN++;
+ }
+ else
+ m_log->cntIntra[depth]++;
}
outBestCU->copyToPic(depth); // Copy Best data to Picture for next partition prediction.
diff -r 10f605bd0530 -r 491fd3ee6fd1 source/common/dct.cpp
--- a/source/common/dct.cpp Fri Nov 22 14:59:34 2013 -0600
+++ b/source/common/dct.cpp Mon Nov 25 14:00:56 2013 -0600
@@ -720,8 +720,11 @@ void idct32_c(int32_t *src, int16_t *dst
void dequant_normal_c(const int32_t* quantCoef, int32_t* coef, int num, int scale, int shift)
{
- static const int invQuantScales[6] = { 40, 45, 51, 57, 64, 72 };
assert(num <= 32 * 32);
+ // NOTE: maximum of scale is (72 * 256)
+ assert(scale < 32768);
+ assert((num % 8) == 0);
+ assert(shift <= 6);
int add, coeffQ;
diff -r 10f605bd0530 -r 491fd3ee6fd1 source/common/pixel.cpp
--- a/source/common/pixel.cpp Fri Nov 22 14:59:34 2013 -0600
+++ b/source/common/pixel.cpp Mon Nov 25 14:00:56 2013 -0600
@@ -968,8 +968,17 @@ void Setup_C_PixelPrimitives(EncoderPrim
p.ssim_4x4x2_core = ssim_4x4x2_core;
p.ssim_end_4 = ssim_end_4;
+ p.var[LUMA_8x4] = pixel_var<8, 4>;
+ p.var[LUMA_8x8] = pixel_var<8, 8>;
+ p.var[LUMA_8x16] = pixel_var<8, 16>;
+ p.var[LUMA_8x32] = pixel_var<8, 32>;
+ p.var[LUMA_16x4] = pixel_var<16, 4>;
+ p.var[LUMA_16x8] = pixel_var<16, 8>;
+ p.var[LUMA_16x12] = pixel_var<16, 12>;
p.var[LUMA_16x16] = pixel_var<16, 16>;
- p.var[LUMA_8x8] = pixel_var<8, 8>;
+ p.var[LUMA_16x32] = pixel_var<16, 32>;
+ p.var[LUMA_16x64] = pixel_var<16, 64>;
+
p.plane_copy_deinterleave_c = plane_copy_deinterleave_chroma;
}
}
diff -r 10f605bd0530 -r 491fd3ee6fd1 source/common/vec/pixel-sse41.cpp
--- a/source/common/vec/pixel-sse41.cpp Fri Nov 22 14:59:34 2013 -0600
+++ b/source/common/vec/pixel-sse41.cpp Mon Nov 25 14:00:56 2013 -0600
@@ -33,94 +33,6 @@ using namespace x265;
namespace {
#if !HIGH_BIT_DEPTH
-void weight_sp(int16_t *src, pixel *dst, intptr_t srcStride, intptr_t dstStride, int width, int height, int w0, int round, int shift, int offset)
-{
- __m128i w00, roundoff, ofs, fs, tmpsrc, tmpdst, tmp, sign;
- int x, y;
-
- w00 = _mm_set1_epi32(w0);
- ofs = _mm_set1_epi32(IF_INTERNAL_OFFS);
- fs = _mm_set1_epi32(offset);
- roundoff = _mm_set1_epi32(round);
- for (y = height - 1; y >= 0; y--)
- {
- for (x = 0; x <= width - 4; x += 4)
- {
- tmpsrc = _mm_loadl_epi64((__m128i*)(src + x));
- sign = _mm_srai_epi16(tmpsrc, 15);
- tmpsrc = _mm_unpacklo_epi16(tmpsrc, sign);
- tmpdst = _mm_add_epi32(_mm_srai_epi32(_mm_add_epi32(_mm_mullo_epi32(w00, _mm_add_epi32(tmpsrc, ofs)), roundoff), shift), fs);
- *(uint32_t*)(dst + x) = _mm_cvtsi128_si32(_mm_packus_epi16(_mm_packs_epi32(tmpdst, tmpdst), _mm_setzero_si128()));
- }
-
- if (width > x)
- {
- tmpsrc = _mm_loadl_epi64((__m128i*)(src + x));
- sign = _mm_srai_epi16(tmpsrc, 15);
- tmpsrc = _mm_unpacklo_epi16(tmpsrc, sign);
- tmpdst = _mm_add_epi32(_mm_srai_epi32(_mm_add_epi32(_mm_mullo_epi32(w00, _mm_add_epi32(tmpsrc, ofs)), roundoff), shift), fs);
- tmp = _mm_packus_epi16(_mm_packs_epi32(tmpdst, tmpdst), _mm_setzero_si128());
- union
- {
- int8_t c[16];
- int16_t s[8];
- } u;
-
- _mm_storeu_si128((__m128i*)u.c, tmp);
- ((int16_t*)(dst + x))[0] = u.s[0]; //to store only first 16-bit from 128-bit to memory
- }
- src += srcStride;
- dst += dstStride;
- }
-}
-
-void weight_pp(pixel *source, pixel *dest, intptr_t sourceStride, intptr_t destStride, int width, int height, int w0, int arg_round, int shift, int offset)
-{
- int x, y;
- __m128i temp;
- __m128i vw0 = _mm_set1_epi32(w0); // broadcast (32-bit integer) w0 to all elements of vw0
- __m128i ofs = _mm_set1_epi32(offset);
- __m128i round = _mm_set1_epi32(arg_round);
- __m128i src, dst, val;
-
- for (y = height - 1; y >= 0; y--)
- {
- for (x = 0; x <= width - 4; x += 4)
- {
- // The intermediate results would outgrow 16 bits because internal offset is too high
- temp = _mm_cvtsi32_si128(*(uint32_t*)(source + x));
- src = _mm_unpacklo_epi16(_mm_unpacklo_epi8(temp, _mm_setzero_si128()), _mm_setzero_si128());
- val = _mm_slli_epi32(src, (IF_INTERNAL_PREC - X265_DEPTH));
- dst = _mm_add_epi32(_mm_mullo_epi32(vw0, val), round);
- dst = _mm_sra_epi32(dst, _mm_cvtsi32_si128(shift));
- dst = _mm_add_epi32(dst, ofs);
- *(uint32_t*)(dest + x) = _mm_cvtsi128_si32(_mm_packus_epi16(_mm_packs_epi32(dst, dst), _mm_setzero_si128()));
- }
-
- if (width > x)
- {
- temp = _mm_cvtsi32_si128(*(uint32_t*)(source + x));
- src = _mm_unpacklo_epi16(_mm_unpacklo_epi8(temp, _mm_setzero_si128()), _mm_setzero_si128());
- val = _mm_slli_epi32(src, (IF_INTERNAL_PREC - X265_DEPTH));
- dst = _mm_add_epi32(_mm_mullo_epi32(vw0, val), round);
- dst = _mm_sra_epi32(dst, _mm_cvtsi32_si128(shift));
- dst = _mm_add_epi32(dst, ofs);
- temp = _mm_packus_epi16(_mm_packs_epi32(dst, dst), _mm_setzero_si128());
-
- union
- {
- int8_t c[16];
- int16_t s[8];
- } u;
-
- _mm_storeu_si128((__m128i*)u.c, temp);
- ((int16_t*)(dest + x))[0] = u.s[0];
- }
- source += sourceStride;
- dest += destStride;
- }
-}
-
template<int ly>
int sse_sp4(int16_t* fenc, intptr_t strideFenc, pixel* fref, intptr_t strideFref)
{
@@ -777,8 +689,6 @@ void Setup_Vec_PixelPrimitives_sse41(Enc
#if HIGH_BIT_DEPTH
Setup_Vec_Pixel16Primitives_sse41(p);
#else
- p.weight_pp = weight_pp;
- p.weight_sp = weight_sp;
#endif /* !HIGH_BIT_DEPTH */
}
}
diff -r 10f605bd0530 -r 491fd3ee6fd1 source/common/x86/asm-primitives.cpp
--- a/source/common/x86/asm-primitives.cpp Fri Nov 22 14:59:34 2013 -0600
+++ b/source/common/x86/asm-primitives.cpp Mon Nov 25 14:00:56 2013 -0600
@@ -25,6 +25,7 @@
#include "primitives.h"
#include "x265.h"
+#include "cpu.h"
extern "C" {
#include "pixel.h"
@@ -87,6 +88,27 @@ extern "C" {
p.sse_pp[LUMA_32x64] = x265_pixel_ssd_32x64_ ## cpu; \
p.sse_pp[LUMA_16x64] = x265_pixel_ssd_16x64_ ## cpu
+#define ASSGN_SSE_SS(cpu) \
+ p.sse_ss[LUMA_4x4] = x265_pixel_ssd_ss_4x4_ ## cpu; \
+ p.sse_ss[LUMA_4x8] = x265_pixel_ssd_ss_4x8_ ## cpu; \
+ p.sse_ss[LUMA_4x16] = x265_pixel_ssd_ss_4x16_ ## cpu; \
+ p.sse_ss[LUMA_8x4] = x265_pixel_ssd_ss_8x4_ ## cpu; \
+ p.sse_ss[LUMA_8x8] = x265_pixel_ssd_ss_8x8_ ## cpu; \
+ p.sse_ss[LUMA_8x16] = x265_pixel_ssd_ss_8x16_ ## cpu; \
+ p.sse_ss[LUMA_8x32] = x265_pixel_ssd_ss_8x32_ ## cpu; \
+ p.sse_ss[LUMA_12x16] = x265_pixel_ssd_ss_12x16_ ## cpu; \
+ p.sse_ss[LUMA_16x4] = x265_pixel_ssd_ss_16x4_ ## cpu; \
+ p.sse_ss[LUMA_16x8] = x265_pixel_ssd_ss_16x8_ ## cpu; \
+ p.sse_ss[LUMA_16x12] = x265_pixel_ssd_ss_16x12_ ## cpu; \
+ p.sse_ss[LUMA_16x16] = x265_pixel_ssd_ss_16x16_ ## cpu; \
+ p.sse_ss[LUMA_16x32] = x265_pixel_ssd_ss_16x32_ ## cpu; \
+ p.sse_ss[LUMA_16x64] = x265_pixel_ssd_ss_16x64_ ## cpu; \
+ p.sse_ss[LUMA_32x8] = x265_pixel_ssd_ss_32x8_ ## cpu; \
+ p.sse_ss[LUMA_32x16] = x265_pixel_ssd_ss_32x16_ ## cpu; \
+ p.sse_ss[LUMA_32x24] = x265_pixel_ssd_ss_32x24_ ## cpu; \
+ p.sse_ss[LUMA_32x32] = x265_pixel_ssd_ss_32x32_ ## cpu; \
+ p.sse_ss[LUMA_32x64] = x265_pixel_ssd_ss_32x64_ ## cpu;
+
#define SA8D_INTER_FROM_BLOCK(cpu) \
p.sa8d_inter[LUMA_4x8] = x265_pixel_satd_4x8_ ## cpu; \
p.sa8d_inter[LUMA_8x4] = x265_pixel_satd_8x4_ ## cpu; \
@@ -412,6 +434,21 @@ extern "C" {
SETUP_LUMA_BLOCKCOPY_FUNC_DEF(64, 16, cpu); \
SETUP_LUMA_BLOCKCOPY_FUNC_DEF(16, 64, cpu);
+#define SETUP_PIXEL_VAR_DEF(W, H, cpu) \
+ p.var[LUMA_ ## W ## x ## H] = x265_pixel_var_ ## W ## x ## H ## cpu;
+
+#define LUMA_VAR(cpu) \
+ SETUP_PIXEL_VAR_DEF(8, 4, cpu); \
+ SETUP_PIXEL_VAR_DEF(8, 8, cpu); \
+ SETUP_PIXEL_VAR_DEF(8, 16, cpu); \
+ SETUP_PIXEL_VAR_DEF(8, 32, cpu); \
+ SETUP_PIXEL_VAR_DEF(16, 4, cpu); \
+ SETUP_PIXEL_VAR_DEF(16, 8, cpu); \
+ SETUP_PIXEL_VAR_DEF(16, 12, cpu); \
+ SETUP_PIXEL_VAR_DEF(16, 16, cpu); \
+ SETUP_PIXEL_VAR_DEF(16, 32, cpu); \
+ SETUP_PIXEL_VAR_DEF(16, 64, cpu);
+
namespace x265 {
// private x265 namespace
@@ -442,6 +479,8 @@ void Setup_Assembly_Primitives(EncoderPr
PIXEL_AVG(sse2);
PIXEL_AVG_W4(mmx2);
+ LUMA_VAR(_sse2);
+
p.sad[LUMA_8x32] = x265_pixel_sad_8x32_sse2;
p.sad[LUMA_16x4] = x265_pixel_sad_16x4_sse2;
p.sad[LUMA_16x12] = x265_pixel_sad_16x12_sse2;
@@ -464,6 +503,7 @@ void Setup_Assembly_Primitives(EncoderPr
p.sad[LUMA_12x16] = x265_pixel_sad_12x16_sse2;
ASSGN_SSE(sse2);
+ ASSGN_SSE_SS(sse2);
INIT2(sad, _sse2);
INIT2(sad_x3, _sse2);
INIT2(sad_x4, _sse2);
@@ -608,52 +648,15 @@ void Setup_Assembly_Primitives(EncoderPr
CHROMA_FILTERS(_sse4);
LUMA_FILTERS(_sse4);
HEVC_SATD(sse4);
+ ASSGN_SSE_SS(sse4);
p.chroma[X265_CSP_I420].copy_sp[CHROMA_2x4] = x265_blockcopy_sp_2x4_sse4;
p.chroma[X265_CSP_I420].copy_sp[CHROMA_2x8] = x265_blockcopy_sp_2x8_sse4;
p.chroma[X265_CSP_I420].copy_sp[CHROMA_6x8] = x265_blockcopy_sp_6x8_sse4;
- // This function pointer initialization is temporary will be removed
- // later with macro definitions. It is used to avoid linker errors
- // until all partitions are coded and commit smaller patches, easier to
- // review.
-
- p.chroma[X265_CSP_I420].add_ps[CHROMA_2x8] = x265_pixel_add_ps_2x8_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_2x4] = x265_pixel_add_ps_2x4_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_4x2] = x265_pixel_add_ps_4x2_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_4x4] = x265_pixel_add_ps_4x4_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_4x8] = x265_pixel_add_ps_4x8_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_4x16] = x265_pixel_add_ps_4x16_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_6x8] = x265_pixel_add_ps_6x8_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_8x2] = x265_pixel_add_ps_8x2_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_8x4] = x265_pixel_add_ps_8x4_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_8x6] = x265_pixel_add_ps_8x6_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_8x8] = x265_pixel_add_ps_8x8_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_8x16] = x265_pixel_add_ps_8x16_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_8x32] = x265_pixel_add_ps_8x32_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_12x16] = x265_pixel_add_ps_12x16_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_16x4] = x265_pixel_add_ps_16x4_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_16x8] = x265_pixel_add_ps_16x8_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_16x12] = x265_pixel_add_ps_16x12_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_16x16] = x265_pixel_add_ps_16x16_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_16x32] = x265_pixel_add_ps_16x32_sse4;
- p.luma_add_ps[LUMA_16x64] = x265_pixel_add_ps_16x64_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_24x32] = x265_pixel_add_ps_24x32_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_32x8] = x265_pixel_add_ps_32x8_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_32x16] = x265_pixel_add_ps_32x16_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_32x24] = x265_pixel_add_ps_32x24_sse4;
- p.chroma[X265_CSP_I420].add_ps[CHROMA_32x32] = x265_pixel_add_ps_32x32_sse4;
- p.luma_add_ps[LUMA_32x64] = x265_pixel_add_ps_32x64_sse4;
-
p.chroma[X265_CSP_I420].filter_vsp[CHROMA_2x4] = x265_interp_4tap_vert_sp_2x4_sse4;
p.chroma[X265_CSP_I420].filter_vsp[CHROMA_2x8] = x265_interp_4tap_vert_sp_2x8_sse4;
p.chroma[X265_CSP_I420].filter_vsp[CHROMA_6x8] = x265_interp_4tap_vert_sp_6x8_sse4;
More information about the x265-commits
mailing list