mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
dsputil: x86: Move ff_inv_zigzag_direct16 table init to mpegvideo
The table is MMX-specific and used nowhere else.
This commit is contained in:
parent
7b05845b15
commit
7ffaa19570
@ -68,9 +68,6 @@ const uint8_t ff_zigzag248_direct[64] = {
|
|||||||
53, 61, 54, 62, 39, 47, 55, 63,
|
53, 61, 54, 62, 39, 47, 55, 63,
|
||||||
};
|
};
|
||||||
|
|
||||||
/* not permutated inverse zigzag_direct + 1 for MMX quantizer */
|
|
||||||
DECLARE_ALIGNED(16, uint16_t, ff_inv_zigzag_direct16)[64];
|
|
||||||
|
|
||||||
const uint8_t ff_alternate_horizontal_scan[64] = {
|
const uint8_t ff_alternate_horizontal_scan[64] = {
|
||||||
0, 1, 2, 3, 8, 9, 16, 17,
|
0, 1, 2, 3, 8, 9, 16, 17,
|
||||||
10, 11, 4, 5, 6, 7, 15, 14,
|
10, 11, 4, 5, 6, 7, 15, 14,
|
||||||
@ -2431,8 +2428,6 @@ av_cold void ff_dsputil_static_init(void)
|
|||||||
for(i=0;i<512;i++) {
|
for(i=0;i<512;i++) {
|
||||||
ff_squareTbl[i] = (i - 256) * (i - 256);
|
ff_squareTbl[i] = (i - 256) * (i - 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
for(i=0; i<64; i++) ff_inv_zigzag_direct16[ff_zigzag_direct[i]]= i+1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int ff_check_alignment(void){
|
int ff_check_alignment(void){
|
||||||
|
@ -28,7 +28,8 @@
|
|||||||
#include "libavcodec/mpegvideo.h"
|
#include "libavcodec/mpegvideo.h"
|
||||||
#include "dsputil_x86.h"
|
#include "dsputil_x86.h"
|
||||||
|
|
||||||
extern uint16_t ff_inv_zigzag_direct16[64];
|
/* not permutated inverse zigzag_direct + 1 for MMX quantizer */
|
||||||
|
DECLARE_ALIGNED(16, static uint16_t, inv_zigzag_direct16)[64];
|
||||||
|
|
||||||
#if HAVE_MMX_INLINE
|
#if HAVE_MMX_INLINE
|
||||||
#define COMPILE_TEMPLATE_MMXEXT 0
|
#define COMPILE_TEMPLATE_MMXEXT 0
|
||||||
@ -84,6 +85,10 @@ extern uint16_t ff_inv_zigzag_direct16[64];
|
|||||||
av_cold void ff_MPV_encode_init_x86(MpegEncContext *s)
|
av_cold void ff_MPV_encode_init_x86(MpegEncContext *s)
|
||||||
{
|
{
|
||||||
const int dct_algo = s->avctx->dct_algo;
|
const int dct_algo = s->avctx->dct_algo;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
for (i = 0; i < 64; i++)
|
||||||
|
inv_zigzag_direct16[ff_zigzag_direct[i]] = i + 1;
|
||||||
|
|
||||||
if (dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX) {
|
if (dct_algo == FF_DCT_AUTO || dct_algo == FF_DCT_MMX) {
|
||||||
#if HAVE_MMX_INLINE
|
#if HAVE_MMX_INLINE
|
||||||
|
@ -168,7 +168,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
|
|||||||
"movzb %%al, %%"REG_a" \n\t" // last_non_zero_p1
|
"movzb %%al, %%"REG_a" \n\t" // last_non_zero_p1
|
||||||
: "+a" (last_non_zero_p1)
|
: "+a" (last_non_zero_p1)
|
||||||
: "r" (block+64), "r" (qmat), "r" (bias),
|
: "r" (block+64), "r" (qmat), "r" (bias),
|
||||||
"r" (ff_inv_zigzag_direct16+64), "r" (temp_block+64)
|
"r" (inv_zigzag_direct16 + 64), "r" (temp_block + 64)
|
||||||
XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3",
|
XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3",
|
||||||
"%xmm4", "%xmm5", "%xmm6", "%xmm7")
|
"%xmm4", "%xmm5", "%xmm6", "%xmm7")
|
||||||
);
|
);
|
||||||
@ -202,7 +202,7 @@ static int RENAME(dct_quantize)(MpegEncContext *s,
|
|||||||
"movzb %%al, %%"REG_a" \n\t" // last_non_zero_p1
|
"movzb %%al, %%"REG_a" \n\t" // last_non_zero_p1
|
||||||
: "+a" (last_non_zero_p1)
|
: "+a" (last_non_zero_p1)
|
||||||
: "r" (block+64), "r" (qmat+64), "r" (bias+64),
|
: "r" (block+64), "r" (qmat+64), "r" (bias+64),
|
||||||
"r" (ff_inv_zigzag_direct16+64), "r" (temp_block+64)
|
"r" (inv_zigzag_direct16 + 64), "r" (temp_block + 64)
|
||||||
XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3",
|
XMM_CLOBBERS_ONLY("%xmm0", "%xmm1", "%xmm2", "%xmm3",
|
||||||
"%xmm4", "%xmm5", "%xmm6", "%xmm7")
|
"%xmm4", "%xmm5", "%xmm6", "%xmm7")
|
||||||
);
|
);
|
||||||
|
Loading…
Reference in New Issue
Block a user