Commit 2afe7320 authored by hui su's avatar hui su

Add identity transform to ext-tx experiment

ext-tx on derflr: +1.756% (was +1.648)

Change-Id: I8a87970fa589e8f5f96db7aa68ec9b6c98e20188
parent 4b7043f8
...@@ -249,6 +249,7 @@ static TX_TYPE ext_tx_to_txtype[EXT_TX_TYPES] = { ...@@ -249,6 +249,7 @@ static TX_TYPE ext_tx_to_txtype[EXT_TX_TYPES] = {
DST_FLIPADST, DST_FLIPADST,
FLIPADST_DST, FLIPADST_DST,
DST_DST, DST_DST,
IDTX,
}; };
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
......
...@@ -316,27 +316,31 @@ static const vpx_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS] ...@@ -316,27 +316,31 @@ static const vpx_prob default_switchable_interp_prob[SWITCHABLE_FILTER_CONTEXTS]
#if CONFIG_EXT_TX #if CONFIG_EXT_TX
const vpx_tree_index vp10_ext_tx_tree[TREE_SIZE(EXT_TX_TYPES)] = { const vpx_tree_index vp10_ext_tx_tree[TREE_SIZE(EXT_TX_TYPES)] = {
-NORM, 2, -ALT16, 2
-ALT15, 4, -NORM, 4,
6, 16, -ALT15, 6,
8, 10, 8, 18,
10, 12,
-ALT9, -ALT10, -ALT9, -ALT10,
12, 14, 14, 16,
-ALT1, -ALT2, -ALT1, -ALT2,
-ALT4, -ALT5, -ALT4, -ALT5,
18, 24, 20, 26,
20, 22, 22, 24,
-ALT11, -ALT12, -ALT11, -ALT12,
-ALT13, -ALT14, -ALT13, -ALT14,
26, 28, 28, 30,
-ALT3, -ALT6, -ALT3, -ALT6,
-ALT7, -ALT8 -ALT7, -ALT8
}; };
static const vpx_prob default_ext_tx_prob[EXT_TX_SIZES][EXT_TX_TYPES - 1] = { static const vpx_prob default_ext_tx_prob[EXT_TX_SIZES][EXT_TX_TYPES - 1] = {
{ 112, 16, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, { 12, 112, 16, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
{ 112, 16, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, 128 },
{ 112, 16, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }, { 12, 112, 16, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128 },
{ 12, 112, 16, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
128 },
}; };
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
......
...@@ -107,6 +107,7 @@ typedef enum { ...@@ -107,6 +107,7 @@ typedef enum {
DST_FLIPADST = 13, DST_FLIPADST = 13,
FLIPADST_DST = 14, FLIPADST_DST = 14,
DST_DST = 15, DST_DST = 15,
IDTX = 16,
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
TX_TYPES, TX_TYPES,
} TX_TYPE; } TX_TYPE;
...@@ -130,6 +131,7 @@ typedef enum { ...@@ -130,6 +131,7 @@ typedef enum {
ALT13 = 13, ALT13 = 13,
ALT14 = 14, ALT14 = 14,
ALT15 = 15, ALT15 = 15,
ALT16 = 16,
EXT_TX_TYPES EXT_TX_TYPES
} EXT_TX_TYPE; } EXT_TX_TYPE;
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
......
...@@ -181,6 +181,52 @@ void idst16_c(const tran_low_t *input, tran_low_t *output) { ...@@ -181,6 +181,52 @@ void idst16_c(const tran_low_t *input, tran_low_t *output) {
output[15] = WRAPLOW(ROUND_POWER_OF_TWO(sum, (2 * DCT_CONST_BITS)), 8); output[15] = WRAPLOW(ROUND_POWER_OF_TWO(sum, (2 * DCT_CONST_BITS)), 8);
} }
static void fliplr(uint8_t *dest, int stride, int l) {
int i, j;
for (i = 0; i < l; ++i) {
for (j = 0; j < l / 2; ++j) {
const uint8_t tmp = dest[i * stride + j];
dest[i * stride + j] = dest[i * stride + l - 1 - j];
dest[i * stride + l - 1 - j] = tmp;
}
}
}
static void flipud(uint8_t *dest, int stride, int l) {
int i, j;
for (j = 0; j < l; ++j) {
for (i = 0; i < l / 2; ++i) {
const uint8_t tmp = dest[i * stride + j];
dest[i * stride + j] = dest[(l - 1 - i) * stride + j];
dest[(l - 1 - i) * stride + j] = tmp;
}
}
}
static void fliplrud(uint8_t *dest, int stride, int l) {
int i, j;
for (i = 0; i < l / 2; ++i) {
for (j = 0; j < l; ++j) {
const uint8_t tmp = dest[i * stride + j];
dest[i * stride + j] = dest[(l - 1 - i) * stride + l - 1 - j];
dest[(l - 1 - i) * stride + l - 1 - j] = tmp;
}
}
}
// Inverse identiy transform and add.
static void inv_idtx_add_c(const tran_low_t *input, uint8_t *dest, int stride,
int bs) {
int r, c;
const int shift = bs < 32 ? 3 : 2;
for (r = 0; r < bs; ++r) {
for (c = 0; c < bs; ++c)
dest[c] = clip_pixel_add(dest[c], input[c] >> shift);
dest += stride;
input += bs;
}
}
#if CONFIG_VP9_HIGHBITDEPTH #if CONFIG_VP9_HIGHBITDEPTH
void highbd_idst4_c(const tran_low_t *input, tran_low_t *output, int bd) { void highbd_idst4_c(const tran_low_t *input, tran_low_t *output, int bd) {
// {sin(pi/5), sin(pi*2/5)} * sqrt(2/5) * sqrt(2) // {sin(pi/5), sin(pi*2/5)} * sqrt(2/5) * sqrt(2)
...@@ -346,79 +392,58 @@ void highbd_idst16_c(const tran_low_t *input, tran_low_t *output, int bd) { ...@@ -346,79 +392,58 @@ void highbd_idst16_c(const tran_low_t *input, tran_low_t *output, int bd) {
d69 * sinvalue_lookup[6] - d78 * sinvalue_lookup[7]; d69 * sinvalue_lookup[6] - d78 * sinvalue_lookup[7];
output[15] = WRAPLOW(ROUND_POWER_OF_TWO(sum, (2 * DCT_CONST_BITS)), bd); output[15] = WRAPLOW(ROUND_POWER_OF_TWO(sum, (2 * DCT_CONST_BITS)), bd);
} }
#endif // CONFIG_VP9_HIGHBITDEPTH
#endif // CONFIG_EXT_TX
#if CONFIG_EXT_TX static void fliplr16(uint16_t *dest, int stride, int l) {
void fliplr(uint8_t *dest, int stride, int l) {
int i, j; int i, j;
for (i = 0; i < l; ++i) { for (i = 0; i < l; ++i) {
for (j = 0; j < l / 2; ++j) { for (j = 0; j < l / 2; ++j) {
const uint8_t tmp = dest[i * stride + j]; const uint16_t tmp = dest[i * stride + j];
dest[i * stride + j] = dest[i * stride + l - 1 - j]; dest[i * stride + j] = dest[i * stride + l - 1 - j];
dest[i * stride + l - 1 - j] = tmp; dest[i * stride + l - 1 - j] = tmp;
} }
} }
} }
void flipud(uint8_t *dest, int stride, int l) { static void flipud16(uint16_t *dest, int stride, int l) {
int i, j; int i, j;
for (j = 0; j < l; ++j) { for (j = 0; j < l; ++j) {
for (i = 0; i < l / 2; ++i) { for (i = 0; i < l / 2; ++i) {
const uint8_t tmp = dest[i * stride + j]; const uint16_t tmp = dest[i * stride + j];
dest[i * stride + j] = dest[(l - 1 - i) * stride + j]; dest[i * stride + j] = dest[(l - 1 - i) * stride + j];
dest[(l - 1 - i) * stride + j] = tmp; dest[(l - 1 - i) * stride + j] = tmp;
} }
} }
} }
void fliplrud(uint8_t *dest, int stride, int l) { static void fliplrud16(uint16_t *dest, int stride, int l) {
int i, j; int i, j;
for (i = 0; i < l / 2; ++i) { for (i = 0; i < l / 2; ++i) {
for (j = 0; j < l; ++j) { for (j = 0; j < l; ++j) {
const uint8_t tmp = dest[i * stride + j]; const uint16_t tmp = dest[i * stride + j];
dest[i * stride + j] = dest[(l - 1 - i) * stride + l - 1 - j]; dest[i * stride + j] = dest[(l - 1 - i) * stride + l - 1 - j];
dest[(l - 1 - i) * stride + l - 1 - j] = tmp; dest[(l - 1 - i) * stride + l - 1 - j] = tmp;
} }
} }
} }
void fliplr16(uint16_t *dest, int stride, int l) { static void highbd_inv_idtx_add_c(const tran_low_t *input, uint8_t *dest8,
int i, j; int stride, int bs, int bd) {
for (i = 0; i < l; ++i) { int r, c;
for (j = 0; j < l / 2; ++j) { const int shift = bs < 32 ? 3 : 2;
const uint16_t tmp = dest[i * stride + j]; uint16_t *dest = CONVERT_TO_SHORTPTR(dest8);
dest[i * stride + j] = dest[i * stride + l - 1 - j];
dest[i * stride + l - 1 - j] = tmp;
}
}
}
void flipud16(uint16_t *dest, int stride, int l) {
int i, j;
for (j = 0; j < l; ++j) {
for (i = 0; i < l / 2; ++i) {
const uint16_t tmp = dest[i * stride + j];
dest[i * stride + j] = dest[(l - 1 - i) * stride + j];
dest[(l - 1 - i) * stride + j] = tmp;
}
}
}
void fliplrud16(uint16_t *dest, int stride, int l) { for (r = 0; r < bs; ++r) {
int i, j; for (c = 0; c < bs; ++c)
for (i = 0; i < l / 2; ++i) { dest[c] = highbd_clip_pixel_add(dest[c], input[c] >> shift, bd);
for (j = 0; j < l; ++j) { dest += stride;
const uint16_t tmp = dest[i * stride + j]; input += bs;
dest[i * stride + j] = dest[(l - 1 - i) * stride + l - 1 - j];
dest[(l - 1 - i) * stride + l - 1 - j] = tmp;
}
} }
} }
#endif // CONFIG_VP9_HIGHBITDEPTH
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
void vp10_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride, void vp10_iht4x4_16_add_c(const tran_low_t *input, uint8_t *dest, int stride,
int tx_type) { int tx_type) {
const transform_2d IHT_4[] = { const transform_2d IHT_4[] = {
{ idct4_c, idct4_c }, // DCT_DCT = 0 { idct4_c, idct4_c }, // DCT_DCT = 0
{ iadst4_c, idct4_c }, // ADST_DCT = 1 { iadst4_c, idct4_c }, // ADST_DCT = 1
...@@ -679,6 +704,9 @@ void vp10_inv_txfm_add_4x4(const tran_low_t *input, uint8_t *dest, ...@@ -679,6 +704,9 @@ void vp10_inv_txfm_add_4x4(const tran_low_t *input, uint8_t *dest,
vp10_iht4x4_16_add_c(input, dest, stride, DST_ADST); vp10_iht4x4_16_add_c(input, dest, stride, DST_ADST);
fliplr(dest, stride, 4); fliplr(dest, stride, 4);
break; break;
case IDTX:
inv_idtx_add_c(input, dest, stride, 4);
break;
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
default: default:
assert(0); assert(0);
...@@ -742,6 +770,9 @@ void vp10_inv_txfm_add_8x8(const tran_low_t *input, uint8_t *dest, ...@@ -742,6 +770,9 @@ void vp10_inv_txfm_add_8x8(const tran_low_t *input, uint8_t *dest,
vp10_iht8x8_64_add_c(input, dest, stride, DST_ADST); vp10_iht8x8_64_add_c(input, dest, stride, DST_ADST);
fliplr(dest, stride, 8); fliplr(dest, stride, 8);
break; break;
case IDTX:
inv_idtx_add_c(input, dest, stride, 8);
break;
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
default: default:
assert(0); assert(0);
...@@ -804,6 +835,9 @@ void vp10_inv_txfm_add_16x16(const tran_low_t *input, uint8_t *dest, ...@@ -804,6 +835,9 @@ void vp10_inv_txfm_add_16x16(const tran_low_t *input, uint8_t *dest,
vp10_iht16x16_256_add_c(input, dest, stride, DST_ADST); vp10_iht16x16_256_add_c(input, dest, stride, DST_ADST);
fliplr(dest, stride, 16); fliplr(dest, stride, 16);
break; break;
case IDTX:
inv_idtx_add_c(input, dest, stride, 16);
break;
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
default: default:
assert(0); assert(0);
...@@ -1098,6 +1132,9 @@ void vp10_highbd_inv_txfm_add_4x4(const tran_low_t *input, uint8_t *dest, ...@@ -1098,6 +1132,9 @@ void vp10_highbd_inv_txfm_add_4x4(const tran_low_t *input, uint8_t *dest,
vp10_highbd_iht4x4_16_add_c(input, dest, stride, DST_ADST, bd); vp10_highbd_iht4x4_16_add_c(input, dest, stride, DST_ADST, bd);
fliplr16(CONVERT_TO_SHORTPTR(dest), stride, 4); fliplr16(CONVERT_TO_SHORTPTR(dest), stride, 4);
break; break;
case IDTX:
highbd_inv_idtx_add_c(input, dest, stride, 4, bd);
break;
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
default: default:
assert(0); assert(0);
...@@ -1162,6 +1199,9 @@ void vp10_highbd_inv_txfm_add_8x8(const tran_low_t *input, uint8_t *dest, ...@@ -1162,6 +1199,9 @@ void vp10_highbd_inv_txfm_add_8x8(const tran_low_t *input, uint8_t *dest,
vp10_highbd_iht8x8_64_add_c(input, dest, stride, DST_ADST, bd); vp10_highbd_iht8x8_64_add_c(input, dest, stride, DST_ADST, bd);
fliplr16(CONVERT_TO_SHORTPTR(dest), stride, 8); fliplr16(CONVERT_TO_SHORTPTR(dest), stride, 8);
break; break;
case IDTX:
highbd_inv_idtx_add_c(input, dest, stride, 8, bd);
break;
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
default: default:
assert(0); assert(0);
...@@ -1225,6 +1265,9 @@ void vp10_highbd_inv_txfm_add_16x16(const tran_low_t *input, uint8_t *dest, ...@@ -1225,6 +1265,9 @@ void vp10_highbd_inv_txfm_add_16x16(const tran_low_t *input, uint8_t *dest,
vp10_highbd_iht16x16_256_add_c(input, dest, stride, DST_ADST, bd); vp10_highbd_iht16x16_256_add_c(input, dest, stride, DST_ADST, bd);
fliplr16(CONVERT_TO_SHORTPTR(dest), stride, 16); fliplr16(CONVERT_TO_SHORTPTR(dest), stride, 16);
break; break;
case IDTX:
highbd_inv_idtx_add_c(input, dest, stride, 16, bd);
break;
#endif // CONFIG_EXT_TX #endif // CONFIG_EXT_TX
default: default:
assert(0); assert(0);
......
...@@ -721,6 +721,7 @@ const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = { ...@@ -721,6 +721,7 @@ const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = {
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
}, { // TX_8X8 }, { // TX_8X8
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{row_scan_8x8, vp10_row_iscan_8x8, row_scan_8x8_neighbors}, {row_scan_8x8, vp10_row_iscan_8x8, row_scan_8x8_neighbors},
...@@ -738,40 +739,75 @@ const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = { ...@@ -738,40 +739,75 @@ const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = {
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
}, { // TX_16X16 }, { // TX_16X16
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{row_scan_16x16, vp10_row_iscan_16x16, row_scan_16x16_neighbors}, {row_scan_16x16, vp10_row_iscan_16x16, row_scan_16x16_neighbors},
{col_scan_16x16, vp10_col_iscan_16x16, col_scan_16x16_neighbors}, {col_scan_16x16, vp10_col_iscan_16x16, col_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
}, { // TX_32X32 }, { // TX_32X32
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
} }
}; };
...@@ -793,6 +829,7 @@ const scan_order vp10_inter_scan_orders[TX_SIZES][TX_TYPES] = { ...@@ -793,6 +829,7 @@ const scan_order vp10_inter_scan_orders[TX_SIZES][TX_TYPES] = {
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors}, {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
{default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
}, { // TX_8X8 }, { // TX_8X8
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
...@@ -810,40 +847,77 @@ const scan_order vp10_inter_scan_orders[TX_SIZES][TX_TYPES] = { ...@@ -810,40 +847,77 @@ const scan_order vp10_inter_scan_orders[TX_SIZES][TX_TYPES] = {
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}, {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors},
}, { // TX_16X16 }, { // TX_16X16
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
}, { // TX_32X32 }, { // TX_32X32
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, {default_scan_32x32, vp10_default_iscan_32x32,
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors}, default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
{default_scan_32x32, vp10_default_iscan_32x32,
default_scan_32x32_neighbors},
} }
}; };
...@@ -861,15 +935,21 @@ const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = { ...@@ -861,15 +935,21 @@ const scan_order vp10_intra_scan_orders[TX_SIZES][TX_TYPES] = {
{col_scan_8x8, vp10_col_iscan_8x8, col_scan_8x8_neighbors}, {col_scan_8x8, vp10_col_iscan_8x8, col_scan_8x8_neighbors},
{default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors} {default_scan_8x8, vp10_default_iscan_8x8, default_scan_8x8_neighbors}
}, { // TX_16X16 }, { // TX_16X16
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors}, {default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors},
{row_scan_16x16, vp10_row_iscan_16x16, row_scan_16x16_neighbors}, {row_scan_16x16, vp10_row_iscan_16x16, row_scan_16x16_neighbors},
{col_scan_16x16, vp10_col_iscan_16x16, col_scan_16x16_neighbors}, {col_scan_16x16, vp10_col_iscan_16x16, col_scan_16x16_neighbors},
{default_scan_16x16, vp10_default_iscan_16x16, default_scan_16x16_neighbors} {default_scan_16x16, vp10_default_iscan_16x16,
default_scan_16x16_neighbors}
}, { // TX_32X32 }, { // TX_32X32
{default_scan_32x32, vp10_default_iscan_32x32, default_scan_32x32_neighbors},