RTCD: add remaining IDCT functions
This commit continues the process of converting to the new RTCD system. Change-Id: I03c4dbf30dfd3558b0e256ff9d3ff4c012aadc80
This commit is contained in:
@@ -15,7 +15,6 @@
|
|||||||
#include "vp8/common/subpixel.h"
|
#include "vp8/common/subpixel.h"
|
||||||
#include "vp8/common/loopfilter.h"
|
#include "vp8/common/loopfilter.h"
|
||||||
#include "vp8/common/recon.h"
|
#include "vp8/common/recon.h"
|
||||||
#include "vp8/common/idct.h"
|
|
||||||
#include "vp8/common/onyxc_int.h"
|
#include "vp8/common/onyxc_int.h"
|
||||||
|
|
||||||
void vp8_arch_arm_common_init(VP8_COMMON *ctx)
|
void vp8_arch_arm_common_init(VP8_COMMON *ctx)
|
||||||
@@ -44,9 +43,6 @@ void vp8_arch_arm_common_init(VP8_COMMON *ctx)
|
|||||||
rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_armv6;
|
rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_armv6;
|
||||||
rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_armv6;
|
rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_armv6;
|
||||||
|
|
||||||
rtcd->idct.idct16 = vp8_short_idct4x4llm_v6_dual;
|
|
||||||
rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_v6;
|
|
||||||
|
|
||||||
rtcd->recon.copy16x16 = vp8_copy_mem16x16_v6;
|
rtcd->recon.copy16x16 = vp8_copy_mem16x16_v6;
|
||||||
rtcd->recon.copy8x8 = vp8_copy_mem8x8_v6;
|
rtcd->recon.copy8x8 = vp8_copy_mem8x8_v6;
|
||||||
rtcd->recon.copy8x4 = vp8_copy_mem8x4_v6;
|
rtcd->recon.copy8x4 = vp8_copy_mem8x4_v6;
|
||||||
@@ -66,9 +62,6 @@ void vp8_arch_arm_common_init(VP8_COMMON *ctx)
|
|||||||
rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_neon;
|
rtcd->subpix.bilinear8x4 = vp8_bilinear_predict8x4_neon;
|
||||||
rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_neon;
|
rtcd->subpix.bilinear4x4 = vp8_bilinear_predict4x4_neon;
|
||||||
|
|
||||||
rtcd->idct.idct16 = vp8_short_idct4x4llm_neon;
|
|
||||||
rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_neon;
|
|
||||||
|
|
||||||
rtcd->recon.copy16x16 = vp8_copy_mem16x16_neon;
|
rtcd->recon.copy16x16 = vp8_copy_mem16x16_neon;
|
||||||
rtcd->recon.copy8x8 = vp8_copy_mem8x8_neon;
|
rtcd->recon.copy8x8 = vp8_copy_mem8x8_neon;
|
||||||
rtcd->recon.copy8x4 = vp8_copy_mem8x4_neon;
|
rtcd->recon.copy8x4 = vp8_copy_mem8x4_neon;
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vp8/common/idct.h"
|
#include "vpx_rtcd.h"
|
||||||
|
|
||||||
|
|
||||||
void vp8_dequant_idct_add_y_block_v6(short *q, short *dq,
|
void vp8_dequant_idct_add_y_block_v6(short *q, short *dq,
|
||||||
|
|||||||
@@ -1,51 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license
|
|
||||||
* that can be found in the LICENSE file in the root of the source
|
|
||||||
* tree. An additional intellectual property rights grant can be found
|
|
||||||
* in the file PATENTS. All contributing project authors may
|
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef IDCT_ARM_H
|
|
||||||
#define IDCT_ARM_H
|
|
||||||
|
|
||||||
#if HAVE_MEDIA
|
|
||||||
extern prototype_idct(vp8_short_idct4x4llm_v6_dual);
|
|
||||||
extern prototype_idct_scalar_add(vp8_dc_only_idct_add_v6);
|
|
||||||
extern prototype_second_order(vp8_short_inv_walsh4x4_1_v6);
|
|
||||||
extern prototype_second_order(vp8_short_inv_walsh4x4_v6);
|
|
||||||
|
|
||||||
#if !CONFIG_RUNTIME_CPU_DETECT
|
|
||||||
#undef vp8_idct_idct16
|
|
||||||
#define vp8_idct_idct16 vp8_short_idct4x4llm_v6_dual
|
|
||||||
|
|
||||||
#undef vp8_idct_idct1_scalar_add
|
|
||||||
#define vp8_idct_idct1_scalar_add vp8_dc_only_idct_add_v6
|
|
||||||
|
|
||||||
#undef vp8_idct_iwalsh16
|
|
||||||
#define vp8_idct_iwalsh16 vp8_short_inv_walsh4x4_v6
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_NEON
|
|
||||||
extern prototype_idct(vp8_short_idct4x4llm_neon);
|
|
||||||
extern prototype_idct_scalar_add(vp8_dc_only_idct_add_neon);
|
|
||||||
extern prototype_second_order(vp8_short_inv_walsh4x4_1_neon);
|
|
||||||
extern prototype_second_order(vp8_short_inv_walsh4x4_neon);
|
|
||||||
|
|
||||||
#if !CONFIG_RUNTIME_CPU_DETECT
|
|
||||||
#undef vp8_idct_idct16
|
|
||||||
#define vp8_idct_idct16 vp8_short_idct4x4llm_neon
|
|
||||||
|
|
||||||
#undef vp8_idct_idct1_scalar_add
|
|
||||||
#define vp8_idct_idct1_scalar_add vp8_dc_only_idct_add_neon
|
|
||||||
|
|
||||||
#undef vp8_idct_iwalsh16
|
|
||||||
#define vp8_idct_iwalsh16 vp8_short_inv_walsh4x4_neon
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vp8/common/idct.h"
|
#include "vpx_rtcd.h"
|
||||||
|
|
||||||
/* place these declarations here because we don't want to maintain them
|
/* place these declarations here because we don't want to maintain them
|
||||||
* outside of this scope
|
* outside of this scope
|
||||||
|
|||||||
@@ -12,7 +12,6 @@
|
|||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vpx_rtcd.h"
|
#include "vpx_rtcd.h"
|
||||||
#include "vp8/common/blockd.h"
|
#include "vp8/common/blockd.h"
|
||||||
#include "vp8/common/idct.h"
|
|
||||||
#include "vpx_mem/vpx_mem.h"
|
#include "vpx_mem/vpx_mem.h"
|
||||||
|
|
||||||
void vp8_dequantize_b_c(BLOCKD *d, short *DQC)
|
void vp8_dequantize_b_c(BLOCKD *d, short *DQC)
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
#include "vp8/common/subpixel.h"
|
#include "vp8/common/subpixel.h"
|
||||||
#include "vp8/common/loopfilter.h"
|
#include "vp8/common/loopfilter.h"
|
||||||
#include "vp8/common/recon.h"
|
#include "vp8/common/recon.h"
|
||||||
#include "vp8/common/idct.h"
|
|
||||||
#include "vp8/common/onyxc_int.h"
|
#include "vp8/common/onyxc_int.h"
|
||||||
|
|
||||||
#if CONFIG_MULTITHREAD
|
#if CONFIG_MULTITHREAD
|
||||||
@@ -71,11 +70,6 @@ void vp8_machine_specific_config(VP8_COMMON *ctx)
|
|||||||
VP8_COMMON_RTCD *rtcd = &ctx->rtcd;
|
VP8_COMMON_RTCD *rtcd = &ctx->rtcd;
|
||||||
|
|
||||||
|
|
||||||
rtcd->idct.idct16 = vp8_short_idct4x4llm_c;
|
|
||||||
rtcd->idct.idct1_scalar_add = vp8_dc_only_idct_add_c;
|
|
||||||
rtcd->idct.iwalsh1 = vp8_short_inv_walsh4x4_1_c;
|
|
||||||
rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_c;
|
|
||||||
|
|
||||||
rtcd->recon.copy16x16 = vp8_copy_mem16x16_c;
|
rtcd->recon.copy16x16 = vp8_copy_mem16x16_c;
|
||||||
rtcd->recon.copy8x8 = vp8_copy_mem8x8_c;
|
rtcd->recon.copy8x8 = vp8_copy_mem8x8_c;
|
||||||
rtcd->recon.copy8x4 = vp8_copy_mem8x4_c;
|
rtcd->recon.copy8x4 = vp8_copy_mem8x4_c;
|
||||||
|
|||||||
@@ -1,80 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license
|
|
||||||
* that can be found in the LICENSE file in the root of the source
|
|
||||||
* tree. An additional intellectual property rights grant can be found
|
|
||||||
* in the file PATENTS. All contributing project authors may
|
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef __INC_IDCT_H
|
|
||||||
#define __INC_IDCT_H
|
|
||||||
|
|
||||||
#define prototype_second_order(sym) \
|
|
||||||
void sym(short *input, short *output)
|
|
||||||
|
|
||||||
#define prototype_idct(sym) \
|
|
||||||
void sym(short *input, unsigned char *pred, int pitch, unsigned char *dst, \
|
|
||||||
int dst_stride)
|
|
||||||
|
|
||||||
#define prototype_idct_scalar_add(sym) \
|
|
||||||
void sym(short input, \
|
|
||||||
unsigned char *pred, int pred_stride, \
|
|
||||||
unsigned char *dst, \
|
|
||||||
int dst_stride)
|
|
||||||
|
|
||||||
#if ARCH_X86 || ARCH_X86_64
|
|
||||||
#include "x86/idct_x86.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ARCH_ARM
|
|
||||||
#include "arm/idct_arm.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef vp8_idct_idct16
|
|
||||||
#define vp8_idct_idct16 vp8_short_idct4x4llm_c
|
|
||||||
#endif
|
|
||||||
extern prototype_idct(vp8_idct_idct16);
|
|
||||||
/* add this prototype to prevent compiler warning about implicit
|
|
||||||
* declaration of vp8_short_idct4x4llm_c function in dequantize.c
|
|
||||||
* when building, for example, neon optimized version */
|
|
||||||
extern prototype_idct(vp8_short_idct4x4llm_c);
|
|
||||||
|
|
||||||
#ifndef vp8_idct_idct1_scalar_add
|
|
||||||
#define vp8_idct_idct1_scalar_add vp8_dc_only_idct_add_c
|
|
||||||
#endif
|
|
||||||
extern prototype_idct_scalar_add(vp8_idct_idct1_scalar_add);
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef vp8_idct_iwalsh1
|
|
||||||
#define vp8_idct_iwalsh1 vp8_short_inv_walsh4x4_1_c
|
|
||||||
#endif
|
|
||||||
extern prototype_second_order(vp8_idct_iwalsh1);
|
|
||||||
|
|
||||||
#ifndef vp8_idct_iwalsh16
|
|
||||||
#define vp8_idct_iwalsh16 vp8_short_inv_walsh4x4_c
|
|
||||||
#endif
|
|
||||||
extern prototype_second_order(vp8_idct_iwalsh16);
|
|
||||||
|
|
||||||
typedef prototype_idct((*vp8_idct_fn_t));
|
|
||||||
typedef prototype_idct_scalar_add((*vp8_idct_scalar_add_fn_t));
|
|
||||||
typedef prototype_second_order((*vp8_second_order_fn_t));
|
|
||||||
|
|
||||||
typedef struct
|
|
||||||
{
|
|
||||||
vp8_idct_fn_t idct16;
|
|
||||||
vp8_idct_scalar_add_fn_t idct1_scalar_add;
|
|
||||||
|
|
||||||
vp8_second_order_fn_t iwalsh1;
|
|
||||||
vp8_second_order_fn_t iwalsh16;
|
|
||||||
} vp8_idct_rtcd_vtable_t;
|
|
||||||
|
|
||||||
#if CONFIG_RUNTIME_CPU_DETECT
|
|
||||||
#define IDCT_INVOKE(ctx,fn) (ctx)->fn
|
|
||||||
#else
|
|
||||||
#define IDCT_INVOKE(ctx,fn) vp8_idct_##fn
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vp8/common/idct.h"
|
#include "vpx_rtcd.h"
|
||||||
|
|
||||||
void vp8_dequant_idct_add_c(short *input, short *dq,
|
void vp8_dequant_idct_add_c(short *input, short *dq,
|
||||||
unsigned char *dest, int stride);
|
unsigned char *dest, int stride);
|
||||||
|
|||||||
@@ -14,7 +14,6 @@
|
|||||||
|
|
||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vpx_rtcd.h"
|
#include "vpx_rtcd.h"
|
||||||
#include "idct.h"
|
|
||||||
#include "blockd.h"
|
#include "blockd.h"
|
||||||
#include "onyxc_int.h"
|
#include "onyxc_int.h"
|
||||||
|
|
||||||
@@ -44,12 +43,12 @@ static void vp8_inverse_transform_mby(MACROBLOCKD *xd,
|
|||||||
/* do 2nd order transform on the dc block */
|
/* do 2nd order transform on the dc block */
|
||||||
if (xd->eobs[24] > 1)
|
if (xd->eobs[24] > 1)
|
||||||
{
|
{
|
||||||
IDCT_INVOKE(&rtcd->idct, iwalsh16)
|
vp8_short_inv_walsh4x4
|
||||||
(&xd->block[24].dqcoeff[0], xd->qcoeff);
|
(&xd->block[24].dqcoeff[0], xd->qcoeff);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
IDCT_INVOKE(&rtcd->idct, iwalsh1)
|
vp8_short_inv_walsh4x4_1
|
||||||
(&xd->block[24].dqcoeff[0], xd->qcoeff);
|
(&xd->block[24].dqcoeff[0], xd->qcoeff);
|
||||||
}
|
}
|
||||||
eob_adjust(xd->eobs, xd->qcoeff);
|
eob_adjust(xd->eobs, xd->qcoeff);
|
||||||
|
|||||||
@@ -17,7 +17,6 @@
|
|||||||
#include "loopfilter.h"
|
#include "loopfilter.h"
|
||||||
#include "entropymv.h"
|
#include "entropymv.h"
|
||||||
#include "entropy.h"
|
#include "entropy.h"
|
||||||
#include "idct.h"
|
|
||||||
#include "recon.h"
|
#include "recon.h"
|
||||||
#if CONFIG_POSTPROC
|
#if CONFIG_POSTPROC
|
||||||
#include "postproc.h"
|
#include "postproc.h"
|
||||||
@@ -73,7 +72,6 @@ typedef enum
|
|||||||
typedef struct VP8_COMMON_RTCD
|
typedef struct VP8_COMMON_RTCD
|
||||||
{
|
{
|
||||||
#if CONFIG_RUNTIME_CPU_DETECT
|
#if CONFIG_RUNTIME_CPU_DETECT
|
||||||
vp8_idct_rtcd_vtable_t idct;
|
|
||||||
vp8_recon_rtcd_vtable_t recon;
|
vp8_recon_rtcd_vtable_t recon;
|
||||||
vp8_subpix_rtcd_vtable_t subpix;
|
vp8_subpix_rtcd_vtable_t subpix;
|
||||||
#if CONFIG_POSTPROC
|
#if CONFIG_POSTPROC
|
||||||
|
|||||||
@@ -76,3 +76,25 @@ vp8_loop_filter_simple_bh_mmx=vp8_loop_filter_bhs_mmx
|
|||||||
vp8_loop_filter_simple_bh_sse2=vp8_loop_filter_bhs_sse2
|
vp8_loop_filter_simple_bh_sse2=vp8_loop_filter_bhs_sse2
|
||||||
vp8_loop_filter_simple_bh_media=vp8_loop_filter_bhs_armv6
|
vp8_loop_filter_simple_bh_media=vp8_loop_filter_bhs_armv6
|
||||||
vp8_loop_filter_simple_bh_neon=vp8_loop_filter_bhs_neon
|
vp8_loop_filter_simple_bh_neon=vp8_loop_filter_bhs_neon
|
||||||
|
|
||||||
|
#
|
||||||
|
# IDCT
|
||||||
|
#
|
||||||
|
#idct16
|
||||||
|
prototype void vp8_short_idct4x4llm "short *input, unsigned char *pred, int pitch, unsigned char *dst, int dst_stride"
|
||||||
|
specialize vp8_short_idct4x4llm mmx media neon
|
||||||
|
vp8_short_idct4x4llm_media=vp8_short_idct4x4llm_v6_dual
|
||||||
|
|
||||||
|
#iwalsh1
|
||||||
|
prototype void vp8_short_inv_walsh4x4_1 "short *input, short *output"
|
||||||
|
specialize vp8_short_inv_walsh4x4_1 c #no asm yet
|
||||||
|
|
||||||
|
#iwalsh16
|
||||||
|
prototype void vp8_short_inv_walsh4x4 "short *input, short *output"
|
||||||
|
specialize vp8_short_inv_walsh4x4 mmx sse2 media neon
|
||||||
|
vp8_short_inv_walsh4x4_media=vp8_short_inv_walsh4x4_v6
|
||||||
|
|
||||||
|
#idct1_scalar_add
|
||||||
|
prototype void vp8_dc_only_idct_add "short input, unsigned char *pred, int pred_stride, unsigned char *dst, int dst_stride"
|
||||||
|
specialize vp8_dc_only_idct_add mmx media neon
|
||||||
|
vp8_dc_only_idct_add_media=vp8_dc_only_idct_add_v6
|
||||||
|
|||||||
@@ -10,7 +10,6 @@
|
|||||||
|
|
||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vpx_rtcd.h"
|
#include "vpx_rtcd.h"
|
||||||
#include "vp8/common/idct.h"
|
|
||||||
#include "vp8/common/blockd.h"
|
#include "vp8/common/blockd.h"
|
||||||
|
|
||||||
extern void vp8_dequantize_b_impl_mmx(short *sq, short *dq, short *q);
|
extern void vp8_dequantize_b_impl_mmx(short *sq, short *dq, short *q);
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vp8/common/idct.h"
|
#include "vpx_rtcd.h"
|
||||||
|
|
||||||
void vp8_idct_dequant_0_2x_sse2
|
void vp8_idct_dequant_0_2x_sse2
|
||||||
(short *q, short *dq ,
|
(short *q, short *dq ,
|
||||||
|
|||||||
@@ -1,56 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright (c) 2010 The WebM project authors. All Rights Reserved.
|
|
||||||
*
|
|
||||||
* Use of this source code is governed by a BSD-style license
|
|
||||||
* that can be found in the LICENSE file in the root of the source
|
|
||||||
* tree. An additional intellectual property rights grant can be found
|
|
||||||
* in the file PATENTS. All contributing project authors may
|
|
||||||
* be found in the AUTHORS file in the root of the source tree.
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
#ifndef IDCT_X86_H
|
|
||||||
#define IDCT_X86_H
|
|
||||||
|
|
||||||
/* Note:
|
|
||||||
*
|
|
||||||
* This platform is commonly built for runtime CPU detection. If you modify
|
|
||||||
* any of the function mappings present in this file, be sure to also update
|
|
||||||
* them in the function pointer initialization code
|
|
||||||
*/
|
|
||||||
|
|
||||||
#if HAVE_MMX
|
|
||||||
extern prototype_idct(vp8_short_idct4x4llm_mmx);
|
|
||||||
extern prototype_idct_scalar_add(vp8_dc_only_idct_add_mmx);
|
|
||||||
|
|
||||||
extern prototype_second_order(vp8_short_inv_walsh4x4_mmx);
|
|
||||||
|
|
||||||
#if !CONFIG_RUNTIME_CPU_DETECT
|
|
||||||
#undef vp8_idct_idct16
|
|
||||||
#define vp8_idct_idct16 vp8_short_idct4x4llm_mmx
|
|
||||||
|
|
||||||
#undef vp8_idct_idct1_scalar_add
|
|
||||||
#define vp8_idct_idct1_scalar_add vp8_dc_only_idct_add_mmx
|
|
||||||
|
|
||||||
#undef vp8_idct_iwalsh16
|
|
||||||
#define vp8_idct_iwalsh16 vp8_short_inv_walsh4x4_mmx
|
|
||||||
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if HAVE_SSE2
|
|
||||||
|
|
||||||
extern prototype_second_order(vp8_short_inv_walsh4x4_sse2);
|
|
||||||
|
|
||||||
#if !CONFIG_RUNTIME_CPU_DETECT
|
|
||||||
|
|
||||||
#undef vp8_idct_iwalsh16
|
|
||||||
#define vp8_idct_iwalsh16 vp8_short_inv_walsh4x4_sse2
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endif
|
|
||||||
@@ -14,7 +14,6 @@
|
|||||||
#include "vp8/common/subpixel.h"
|
#include "vp8/common/subpixel.h"
|
||||||
#include "vp8/common/loopfilter.h"
|
#include "vp8/common/loopfilter.h"
|
||||||
#include "vp8/common/recon.h"
|
#include "vp8/common/recon.h"
|
||||||
#include "vp8/common/idct.h"
|
|
||||||
#include "vp8/common/pragmas.h"
|
#include "vp8/common/pragmas.h"
|
||||||
#include "vp8/common/onyxc_int.h"
|
#include "vp8/common/onyxc_int.h"
|
||||||
|
|
||||||
@@ -36,10 +35,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx)
|
|||||||
|
|
||||||
if (flags & HAS_MMX)
|
if (flags & HAS_MMX)
|
||||||
{
|
{
|
||||||
rtcd->idct.idct16 = vp8_short_idct4x4llm_mmx;
|
|
||||||
rtcd->idct.idct1_scalar_add = vp8_dc_only_idct_add_mmx;
|
|
||||||
rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_mmx;
|
|
||||||
|
|
||||||
rtcd->recon.copy8x8 = vp8_copy_mem8x8_mmx;
|
rtcd->recon.copy8x8 = vp8_copy_mem8x8_mmx;
|
||||||
rtcd->recon.copy8x4 = vp8_copy_mem8x4_mmx;
|
rtcd->recon.copy8x4 = vp8_copy_mem8x4_mmx;
|
||||||
rtcd->recon.copy16x16 = vp8_copy_mem16x16_mmx;
|
rtcd->recon.copy16x16 = vp8_copy_mem16x16_mmx;
|
||||||
@@ -76,8 +71,6 @@ void vp8_arch_x86_common_init(VP8_COMMON *ctx)
|
|||||||
rtcd->recon.build_intra_predictors_mby_s =
|
rtcd->recon.build_intra_predictors_mby_s =
|
||||||
vp8_build_intra_predictors_mby_s_sse2;
|
vp8_build_intra_predictors_mby_s_sse2;
|
||||||
|
|
||||||
rtcd->idct.iwalsh16 = vp8_short_inv_walsh4x4_sse2;
|
|
||||||
|
|
||||||
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_sse2;
|
rtcd->subpix.sixtap16x16 = vp8_sixtap_predict16x16_sse2;
|
||||||
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_sse2;
|
rtcd->subpix.sixtap8x8 = vp8_sixtap_predict8x8_sse2;
|
||||||
rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_sse2;
|
rtcd->subpix.sixtap8x4 = vp8_sixtap_predict8x4_sse2;
|
||||||
|
|||||||
@@ -32,7 +32,6 @@
|
|||||||
#include "error_concealment.h"
|
#include "error_concealment.h"
|
||||||
#endif
|
#endif
|
||||||
#include "vpx_mem/vpx_mem.h"
|
#include "vpx_mem/vpx_mem.h"
|
||||||
#include "vp8/common/idct.h"
|
|
||||||
#include "vp8/common/threading.h"
|
#include "vp8/common/threading.h"
|
||||||
#include "decoderthreading.h"
|
#include "decoderthreading.h"
|
||||||
#include "dboolhuff.h"
|
#include "dboolhuff.h"
|
||||||
@@ -200,7 +199,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
IDCT_INVOKE(RTCD_VTABLE(idct), idct1_scalar_add)
|
vp8_dc_only_idct_add
|
||||||
(b->qcoeff[0] * DQC[0],
|
(b->qcoeff[0] * DQC[0],
|
||||||
*(b->base_dst) + b->dst, b->dst_stride,
|
*(b->base_dst) + b->dst, b->dst_stride,
|
||||||
*(b->base_dst) + b->dst, b->dst_stride);
|
*(b->base_dst) + b->dst, b->dst_stride);
|
||||||
@@ -239,7 +238,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
|
|||||||
{
|
{
|
||||||
vp8_dequantize_b(b, xd->dequant_y2);
|
vp8_dequantize_b(b, xd->dequant_y2);
|
||||||
|
|
||||||
IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0],
|
vp8_short_inv_walsh4x4(&b->dqcoeff[0],
|
||||||
xd->qcoeff);
|
xd->qcoeff);
|
||||||
((int *)b->qcoeff)[0] = 0;
|
((int *)b->qcoeff)[0] = 0;
|
||||||
((int *)b->qcoeff)[1] = 0;
|
((int *)b->qcoeff)[1] = 0;
|
||||||
@@ -253,7 +252,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd,
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
b->dqcoeff[0] = b->qcoeff[0] * xd->dequant_y2[0];
|
b->dqcoeff[0] = b->qcoeff[0] * xd->dequant_y2[0];
|
||||||
IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh1)(&b->dqcoeff[0],
|
vp8_short_inv_walsh4x4_1(&b->dqcoeff[0],
|
||||||
xd->qcoeff);
|
xd->qcoeff);
|
||||||
((int *)b->qcoeff)[0] = 0;
|
((int *)b->qcoeff)[0] = 0;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -199,7 +199,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, int mb_row, int m
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
IDCT_INVOKE(RTCD_VTABLE(idct), idct1_scalar_add)
|
vp8_dc_only_idct_add
|
||||||
(b->qcoeff[0] * DQC[0],
|
(b->qcoeff[0] * DQC[0],
|
||||||
*(b->base_dst) + b->dst, b->dst_stride,
|
*(b->base_dst) + b->dst, b->dst_stride,
|
||||||
*(b->base_dst) + b->dst, b->dst_stride);
|
*(b->base_dst) + b->dst, b->dst_stride);
|
||||||
@@ -221,7 +221,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, int mb_row, int m
|
|||||||
{
|
{
|
||||||
vp8_dequantize_b(b, xd->dequant_y2);
|
vp8_dequantize_b(b, xd->dequant_y2);
|
||||||
|
|
||||||
IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh16)(&b->dqcoeff[0],
|
vp8_short_inv_walsh4x4(&b->dqcoeff[0],
|
||||||
xd->qcoeff);
|
xd->qcoeff);
|
||||||
((int *)b->qcoeff)[0] = 0;
|
((int *)b->qcoeff)[0] = 0;
|
||||||
((int *)b->qcoeff)[1] = 0;
|
((int *)b->qcoeff)[1] = 0;
|
||||||
@@ -235,7 +235,7 @@ static void decode_macroblock(VP8D_COMP *pbi, MACROBLOCKD *xd, int mb_row, int m
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
b->dqcoeff[0] = b->qcoeff[0] * xd->dequant_y2[0];
|
b->dqcoeff[0] = b->qcoeff[0] * xd->dequant_y2[0];
|
||||||
IDCT_INVOKE(RTCD_VTABLE(idct), iwalsh1)(&b->dqcoeff[0], xd->qcoeff);
|
vp8_short_inv_walsh4x4_1(&b->dqcoeff[0], xd->qcoeff);
|
||||||
((int *)b->qcoeff)[0] = 0;
|
((int *)b->qcoeff)[0] = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
|
|
||||||
#include "vpx_config.h"
|
#include "vpx_config.h"
|
||||||
#include "vp8/common/idct.h"
|
#include "vpx_rtcd.h"
|
||||||
#include "quantize.h"
|
#include "quantize.h"
|
||||||
#include "vp8/common/reconintra.h"
|
#include "vp8/common/reconintra.h"
|
||||||
#include "vp8/common/reconintra4x4.h"
|
#include "vp8/common/reconintra4x4.h"
|
||||||
@@ -78,12 +78,12 @@ void vp8_encode_intra4x4block(const VP8_ENCODER_RTCD *rtcd,
|
|||||||
|
|
||||||
if (*b->eob > 1)
|
if (*b->eob > 1)
|
||||||
{
|
{
|
||||||
IDCT_INVOKE(IF_RTCD(&rtcd->common->idct), idct16)(b->dqcoeff,
|
vp8_short_idct4x4llm(b->dqcoeff,
|
||||||
b->predictor, 16, *(b->base_dst) + b->dst, b->dst_stride);
|
b->predictor, 16, *(b->base_dst) + b->dst, b->dst_stride);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
IDCT_INVOKE(IF_RTCD(&rtcd->common->idct), idct1_scalar_add)
|
vp8_dc_only_idct_add
|
||||||
(b->dqcoeff[0], b->predictor, 16, *(b->base_dst) + b->dst,
|
(b->dqcoeff[0], b->predictor, 16, *(b->base_dst) + b->dst,
|
||||||
b->dst_stride);
|
b->dst_stride);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -13,6 +13,8 @@
|
|||||||
#include <math.h>
|
#include <math.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
#include <assert.h>
|
#include <assert.h>
|
||||||
|
#include "vpx_config.h"
|
||||||
|
#include "vpx_rtcd.h"
|
||||||
#include "vp8/common/pragmas.h"
|
#include "vp8/common/pragmas.h"
|
||||||
|
|
||||||
#include "tokenize.h"
|
#include "tokenize.h"
|
||||||
@@ -27,7 +29,6 @@
|
|||||||
#include "vp8/common/findnearmv.h"
|
#include "vp8/common/findnearmv.h"
|
||||||
#include "encodemb.h"
|
#include "encodemb.h"
|
||||||
#include "quantize.h"
|
#include "quantize.h"
|
||||||
#include "vp8/common/idct.h"
|
|
||||||
#include "variance.h"
|
#include "variance.h"
|
||||||
#include "mcomp.h"
|
#include "mcomp.h"
|
||||||
#include "rdopt.h"
|
#include "rdopt.h"
|
||||||
@@ -683,7 +684,7 @@ static int rd_pick_intra4x4block(
|
|||||||
}
|
}
|
||||||
b->bmi.as_mode = (B_PREDICTION_MODE)(*best_mode);
|
b->bmi.as_mode = (B_PREDICTION_MODE)(*best_mode);
|
||||||
|
|
||||||
IDCT_INVOKE(IF_RTCD(&cpi->rtcd.common->idct), idct16)(best_dqcoeff,
|
vp8_short_idct4x4llm(best_dqcoeff,
|
||||||
best_predictor, 16, *(b->base_dst) + b->dst, b->dst_stride);
|
best_predictor, 16, *(b->base_dst) + b->dst, b->dst_stride);
|
||||||
|
|
||||||
return best_rd;
|
return best_rd;
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ VP8_COMMON_SRCS-yes += common/entropymv.h
|
|||||||
VP8_COMMON_SRCS-yes += common/extend.h
|
VP8_COMMON_SRCS-yes += common/extend.h
|
||||||
VP8_COMMON_SRCS-yes += common/findnearmv.h
|
VP8_COMMON_SRCS-yes += common/findnearmv.h
|
||||||
VP8_COMMON_SRCS-yes += common/header.h
|
VP8_COMMON_SRCS-yes += common/header.h
|
||||||
VP8_COMMON_SRCS-yes += common/idct.h
|
|
||||||
VP8_COMMON_SRCS-yes += common/invtrans.h
|
VP8_COMMON_SRCS-yes += common/invtrans.h
|
||||||
VP8_COMMON_SRCS-yes += common/loopfilter.h
|
VP8_COMMON_SRCS-yes += common/loopfilter.h
|
||||||
VP8_COMMON_SRCS-yes += common/modecont.h
|
VP8_COMMON_SRCS-yes += common/modecont.h
|
||||||
@@ -77,7 +76,6 @@ VP8_COMMON_SRCS-yes += common/treecoder.c
|
|||||||
|
|
||||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/filter_x86.c
|
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/filter_x86.c
|
||||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/filter_x86.h
|
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/filter_x86.h
|
||||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/idct_x86.h
|
|
||||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/subpixel_x86.h
|
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/subpixel_x86.h
|
||||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/recon_x86.h
|
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/recon_x86.h
|
||||||
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/postproc_x86.h
|
VP8_COMMON_SRCS-$(ARCH_X86)$(ARCH_X86_64) += common/x86/postproc_x86.h
|
||||||
@@ -112,7 +110,6 @@ endif
|
|||||||
# common (c)
|
# common (c)
|
||||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/arm_systemdependent.c
|
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/arm_systemdependent.c
|
||||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/filter_arm.c
|
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/filter_arm.c
|
||||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/idct_arm.h
|
|
||||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/loopfilter_arm.c
|
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/loopfilter_arm.c
|
||||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/recon_arm.h
|
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/recon_arm.h
|
||||||
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/reconintra_arm.c
|
VP8_COMMON_SRCS-$(ARCH_ARM) += common/arm/reconintra_arm.c
|
||||||
|
|||||||
Reference in New Issue
Block a user