Merge "Don't send segment probability updates when the map isn't updated." into nextgenv2
diff --git a/configure b/configure
index 633e3ed..44f7c23 100755
--- a/configure
+++ b/configure
@@ -434,6 +434,12 @@
for c in ${CODECS}; do
enabled ${c} && enable_feature ${c##*_}s
done
+
+ if enabled global_motion && (enabled ext_inter || enabled dual_filter); then
+ log_echo "global_motion currently not compatible with ext_inter"
+ log_echo "and dual_filter. Disabling global_motion."
+ disable_feature global_motion
+ fi
}
diff --git a/test/divu_small_test.cc b/test/divu_small_test.cc
index a7cfbf7..3b00e05 100644
--- a/test/divu_small_test.cc
+++ b/test/divu_small_test.cc
@@ -34,8 +34,9 @@
TEST(Daala, TestDIVUuptoMAX) {
for (int d = 1; d <= OD_DIVU_DMAX; d++) {
for (uint32_t x = 1; x <= 1000000; x++) {
- GTEST_ASSERT_EQ(x/d, OD_DIVU_SMALL(x, d)) << "x=" << x << " d=" << d <<
- " x/d=" << (x/d) << " != " << OD_DIVU_SMALL(x, d);
+ GTEST_ASSERT_EQ(x / d, OD_DIVU_SMALL(x, d))
+ << "x=" << x << " d=" << d << " x/d=" << (x / d)
+ << " != " << OD_DIVU_SMALL(x, d);
}
}
}
@@ -45,8 +46,9 @@
for (int d = 1; d < OD_DIVU_DMAX; d++) {
for (int i = 0; i < 1000000; i++) {
uint32_t x = rnd.Rand31();
- GTEST_ASSERT_EQ(x/d, OD_DIVU_SMALL(x, d)) << "x=" << x << " d=" << d <<
- " x/d=" << (x/d) << " != " << OD_DIVU_SMALL(x, d);
+ GTEST_ASSERT_EQ(x / d, OD_DIVU_SMALL(x, d))
+ << "x=" << x << " d=" << d << " x/d=" << (x / d)
+ << " != " << OD_DIVU_SMALL(x, d);
}
}
}
diff --git a/vp10/common/common_data.h b/vp10/common/common_data.h
index 084c825..2f42c37 100644
--- a/vp10/common/common_data.h
+++ b/vp10/common/common_data.h
@@ -61,9 +61,9 @@
};
static const uint8_t num_4x4_blocks_txsize_lookup[TX_SIZES_ALL] = {
- 1, 4, 16, 64,
+ 1, 4, 16, 64,
#if CONFIG_EXT_TX
- 2, 2, 8, 8, 32, 32
+ 2, 2, 8, 8, 32, 32
#endif // CONFIG_EXT_TX
};
static const uint8_t num_4x4_blocks_wide_txsize_lookup[TX_SIZES_ALL] = {
@@ -380,7 +380,7 @@
BLOCK_16X8, // TX_16X8
BLOCK_16X32, // TX_16X32
BLOCK_32X16, // TX_32X16
-#endif // CONFIG_EXT_TX
+#endif // CONFIG_EXT_TX
};
static const TX_SIZE txsize_sqr_map[TX_SIZES_ALL] = {
@@ -395,7 +395,7 @@
TX_8X8, // TX_16X8
TX_16X16, // TX_16X32
TX_16X16, // TX_32X16
-#endif // CONFIG_EXT_TX
+#endif // CONFIG_EXT_TX
};
static const TX_SIZE txsize_sqr_up_map[TX_SIZES_ALL] = {
@@ -410,7 +410,7 @@
TX_16X16, // TX_16X8
TX_32X32, // TX_16X32
TX_32X32, // TX_32X16
-#endif // CONFIG_EXT_TX
+#endif // CONFIG_EXT_TX
};
static const TX_SIZE tx_mode_to_biggest_tx_size[TX_MODES] = {
diff --git a/vp10/common/dering.c b/vp10/common/dering.c
index f657c83..b7b8183 100644
--- a/vp10/common/dering.c
+++ b/vp10/common/dering.c
@@ -18,13 +18,12 @@
#include "vp10/common/reconinter.h"
#include "vp10/common/od_dering.h"
-
int compute_level_from_index(int global_level, int gi) {
- static const int dering_gains[DERING_REFINEMENT_LEVELS] = {0, 11, 16, 22};
+ static const int dering_gains[DERING_REFINEMENT_LEVELS] = { 0, 11, 16, 22 };
int level;
if (global_level == 0) return 0;
- level = (global_level*dering_gains[gi] + 8) >> 4;
- return clamp(level, gi, MAX_DERING_LEVEL-1);
+ level = (global_level * dering_gains[gi] + 8) >> 4;
+ return clamp(level, gi, MAX_DERING_LEVEL - 1);
}
int sb_all_skip(const VP10_COMMON *const cm, int mi_row, int mi_col) {
@@ -38,8 +37,8 @@
for (r = 0; r < maxr; r++) {
for (c = 0; c < maxc; c++) {
skip = skip &&
- cm->mi_grid_visible[(mi_row + r)*cm->mi_stride + mi_col + c]->
- mbmi.skip;
+ cm->mi_grid_visible[(mi_row + r) * cm->mi_stride + mi_col + c]
+ ->mbmi.skip;
}
}
return skip;
@@ -52,30 +51,29 @@
int nhsb, nvsb;
od_dering_in *src[3];
unsigned char *bskip;
- int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS] = {{0}};
+ int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS] = { { 0 } };
int stride;
int bsize[3];
int dec[3];
int pli;
int coeff_shift = VPXMAX(cm->bit_depth - 8, 0);
- nvsb = (cm->mi_rows + MI_BLOCK_SIZE - 1)/MI_BLOCK_SIZE;
- nhsb = (cm->mi_cols + MI_BLOCK_SIZE - 1)/MI_BLOCK_SIZE;
- bskip = vpx_malloc(sizeof(*bskip)*cm->mi_rows*cm->mi_cols);
+ nvsb = (cm->mi_rows + MI_BLOCK_SIZE - 1) / MI_BLOCK_SIZE;
+ nhsb = (cm->mi_cols + MI_BLOCK_SIZE - 1) / MI_BLOCK_SIZE;
+ bskip = vpx_malloc(sizeof(*bskip) * cm->mi_rows * cm->mi_cols);
vp10_setup_dst_planes(xd->plane, frame, 0, 0);
for (pli = 0; pli < 3; pli++) {
dec[pli] = xd->plane[pli].subsampling_x;
bsize[pli] = 8 >> dec[pli];
}
- stride = bsize[0]*cm->mi_cols;
+ stride = bsize[0] * cm->mi_cols;
for (pli = 0; pli < 3; pli++) {
- src[pli] = vpx_malloc(sizeof(*src)*cm->mi_rows*cm->mi_cols*64);
- for (r = 0; r < bsize[pli]*cm->mi_rows; ++r) {
- for (c = 0; c < bsize[pli]*cm->mi_cols; ++c) {
+ src[pli] = vpx_malloc(sizeof(*src) * cm->mi_rows * cm->mi_cols * 64);
+ for (r = 0; r < bsize[pli] * cm->mi_rows; ++r) {
+ for (c = 0; c < bsize[pli] * cm->mi_cols; ++c) {
#if CONFIG_VPX_HIGHBITDEPTH
if (cm->use_highbitdepth) {
- src[pli][r * stride + c] =
- CONVERT_TO_SHORTPTR(xd->plane[pli].dst.buf)
- [r * xd->plane[pli].dst.stride + c];
+ src[pli][r * stride + c] = CONVERT_TO_SHORTPTR(
+ xd->plane[pli].dst.buf)[r * xd->plane[pli].dst.stride + c];
} else {
#endif
src[pli][r * stride + c] =
@@ -97,46 +95,48 @@
for (sbc = 0; sbc < nhsb; sbc++) {
int level;
int nhb, nvb;
- nhb = VPXMIN(MI_BLOCK_SIZE, cm->mi_cols - MI_BLOCK_SIZE*sbc);
- nvb = VPXMIN(MI_BLOCK_SIZE, cm->mi_rows - MI_BLOCK_SIZE*sbr);
+ nhb = VPXMIN(MI_BLOCK_SIZE, cm->mi_cols - MI_BLOCK_SIZE * sbc);
+ nvb = VPXMIN(MI_BLOCK_SIZE, cm->mi_rows - MI_BLOCK_SIZE * sbr);
for (pli = 0; pli < 3; pli++) {
- int16_t dst[MI_BLOCK_SIZE*MI_BLOCK_SIZE*8*8];
+ int16_t dst[MI_BLOCK_SIZE * MI_BLOCK_SIZE * 8 * 8];
int threshold;
#if DERING_REFINEMENT
level = compute_level_from_index(
global_level,
- cm->mi_grid_visible[MI_BLOCK_SIZE*sbr*cm->mi_stride +
- MI_BLOCK_SIZE*sbc]->mbmi.dering_gain);
+ cm->mi_grid_visible[MI_BLOCK_SIZE * sbr * cm->mi_stride +
+ MI_BLOCK_SIZE * sbc]
+ ->mbmi.dering_gain);
#else
- level = global_level;
+ level = global_level;
#endif
/* FIXME: This is a temporary hack that uses more conservative
deringing for chroma. */
- if (pli) level = (level*5 + 4) >> 3;
- if (sb_all_skip(cm, sbr*MI_BLOCK_SIZE, sbc*MI_BLOCK_SIZE)) level = 0;
+ if (pli) level = (level * 5 + 4) >> 3;
+ if (sb_all_skip(cm, sbr * MI_BLOCK_SIZE, sbc * MI_BLOCK_SIZE))
+ level = 0;
threshold = level << coeff_shift;
od_dering(
- &OD_DERING_VTBL_C,
- dst,
- MI_BLOCK_SIZE*bsize[pli],
- &src[pli][sbr*stride*bsize[pli]*MI_BLOCK_SIZE +
- sbc*bsize[pli]*MI_BLOCK_SIZE],
+ &OD_DERING_VTBL_C, dst, MI_BLOCK_SIZE * bsize[pli],
+ &src[pli][sbr * stride * bsize[pli] * MI_BLOCK_SIZE +
+ sbc * bsize[pli] * MI_BLOCK_SIZE],
stride, nhb, nvb, sbc, sbr, nhsb, nvsb, dec[pli], dir, pli,
- &bskip[MI_BLOCK_SIZE*sbr*cm->mi_cols + MI_BLOCK_SIZE*sbc],
+ &bskip[MI_BLOCK_SIZE * sbr * cm->mi_cols + MI_BLOCK_SIZE * sbc],
cm->mi_cols, threshold, OD_DERING_NO_CHECK_OVERLAP, coeff_shift);
- for (r = 0; r < bsize[pli]*nvb; ++r) {
- for (c = 0; c < bsize[pli]*nhb; ++c) {
+ for (r = 0; r < bsize[pli] * nvb; ++r) {
+ for (c = 0; c < bsize[pli] * nhb; ++c) {
#if CONFIG_VPX_HIGHBITDEPTH
if (cm->use_highbitdepth) {
CONVERT_TO_SHORTPTR(xd->plane[pli].dst.buf)
- [xd->plane[pli].dst.stride*(bsize[pli]*MI_BLOCK_SIZE*sbr + r)
- + sbc*bsize[pli]*MI_BLOCK_SIZE + c] =
+ [xd->plane[pli].dst.stride *
+ (bsize[pli] * MI_BLOCK_SIZE * sbr + r) +
+ sbc * bsize[pli] * MI_BLOCK_SIZE + c] =
dst[r * MI_BLOCK_SIZE * bsize[pli] + c];
} else {
#endif
- xd->plane[pli].dst.buf[xd->plane[pli].dst.stride*
- (bsize[pli]*MI_BLOCK_SIZE*sbr + r) +
- sbc*bsize[pli]*MI_BLOCK_SIZE + c] =
+ xd->plane[pli]
+ .dst.buf[xd->plane[pli].dst.stride *
+ (bsize[pli] * MI_BLOCK_SIZE * sbr + r) +
+ sbc * bsize[pli] * MI_BLOCK_SIZE + c] =
dst[r * MI_BLOCK_SIZE * bsize[pli] + c];
#if CONFIG_VPX_HIGHBITDEPTH
}
diff --git a/vp10/common/dering.h b/vp10/common/dering.h
index 946366a..706804b 100644
--- a/vp10/common/dering.h
+++ b/vp10/common/dering.h
@@ -24,8 +24,7 @@
MACROBLOCKD *xd, int global_level);
int vp10_dering_search(YV12_BUFFER_CONFIG *frame, const YV12_BUFFER_CONFIG *ref,
- VP10_COMMON *cm,
- MACROBLOCKD *xd);
+ VP10_COMMON *cm, MACROBLOCKD *xd);
#ifdef __cplusplus
} // extern "C"
diff --git a/vp10/common/entropy.c b/vp10/common/entropy.c
index aa9c68c..2b84e08 100644
--- a/vp10/common/entropy.c
+++ b/vp10/common/entropy.c
@@ -59,12 +59,9 @@
{ 1, 2, 3, 4, 3, 16 - 13, 0 }, { 1, 2, 3, 4, 11, 64 - 21, 0 },
{ 1, 2, 3, 4, 11, 256 - 21, 0 }, { 1, 2, 3, 4, 11, 1024 - 21, 0 },
#if CONFIG_EXT_TX
- { 1, 2, 3, 4, 8, 32 - 18, 0 },
- { 1, 2, 3, 4, 8, 32 - 18, 0 },
- { 1, 2, 3, 4, 11, 128 - 21, 0 },
- { 1, 2, 3, 4, 11, 128 - 21, 0 },
- { 1, 2, 3, 4, 11, 512 - 21, 0 },
- { 1, 2, 3, 4, 11, 512 - 21, 0 },
+ { 1, 2, 3, 4, 8, 32 - 18, 0 }, { 1, 2, 3, 4, 8, 32 - 18, 0 },
+ { 1, 2, 3, 4, 11, 128 - 21, 0 }, { 1, 2, 3, 4, 11, 128 - 21, 0 },
+ { 1, 2, 3, 4, 11, 512 - 21, 0 }, { 1, 2, 3, 4, 11, 512 - 21, 0 },
#endif // CONFIG_EXT_TX
};
@@ -72,12 +69,9 @@
{ 0, 1, 3, 6, 10, 13, 16, 0 }, { 0, 1, 3, 6, 10, 21, 64, 0 },
{ 0, 1, 3, 6, 10, 21, 256, 0 }, { 0, 1, 3, 6, 10, 21, 1024, 0 },
#if CONFIG_EXT_TX
- { 0, 1, 3, 6, 10, 18, 32, 0 },
- { 0, 1, 3, 6, 10, 18, 32, 0 },
- { 0, 1, 3, 6, 10, 21, 128, 0 },
- { 0, 1, 3, 6, 10, 21, 128, 0 },
- { 0, 1, 3, 6, 10, 21, 512, 0 },
- { 0, 1, 3, 6, 10, 21, 512, 0 },
+ { 0, 1, 3, 6, 10, 18, 32, 0 }, { 0, 1, 3, 6, 10, 18, 32, 0 },
+ { 0, 1, 3, 6, 10, 21, 128, 0 }, { 0, 1, 3, 6, 10, 21, 128, 0 },
+ { 0, 1, 3, 6, 10, 21, 512, 0 }, { 0, 1, 3, 6, 10, 21, 512, 0 },
#endif // CONFIG_EXT_TX
};
diff --git a/vp10/common/entropy.h b/vp10/common/entropy.h
index 917f5b0..c90c9c8 100644
--- a/vp10/common/entropy.h
+++ b/vp10/common/entropy.h
@@ -168,8 +168,7 @@
switch (tx_size) {
case TX_4X4: return vp10_coefband_trans_4x4;
#if CONFIG_EXT_TX
- case TX_4X8:
- return vp10_coefband_trans_4x8_8x4;
+ case TX_4X8: return vp10_coefband_trans_4x8_8x4;
#endif // CONFIG_EXT_TX
default: return vp10_coefband_trans_8x8plus;
}
@@ -230,19 +229,19 @@
break;
case TX_8X16:
above_ec = !!*(const uint16_t *)a;
- left_ec = !!*(const uint32_t *)l;
+ left_ec = !!*(const uint32_t *)l;
break;
case TX_16X8:
above_ec = !!*(const uint32_t *)a;
- left_ec = !!*(const uint16_t *)l;
+ left_ec = !!*(const uint16_t *)l;
break;
case TX_16X32:
above_ec = !!*(const uint32_t *)a;
- left_ec = !!*(const uint64_t *)l;
+ left_ec = !!*(const uint64_t *)l;
break;
case TX_32X16:
above_ec = !!*(const uint64_t *)a;
- left_ec = !!*(const uint32_t *)l;
+ left_ec = !!*(const uint32_t *)l;
break;
#endif // CONFIG_EXT_TX
case TX_8X8:
diff --git a/vp10/common/enums.h b/vp10/common/enums.h
index 60fa43e..05cb423 100644
--- a/vp10/common/enums.h
+++ b/vp10/common/enums.h
@@ -138,12 +138,12 @@
#define TX_SIZES ((TX_SIZE)4)
#if CONFIG_EXT_TX
-#define TX_4X8 ((TX_SIZE)4) // 4x8 transform
-#define TX_8X4 ((TX_SIZE)5) // 8x4 transform
-#define TX_8X16 ((TX_SIZE)6) // 8x16 transform
-#define TX_16X8 ((TX_SIZE)7) // 16x8 transform
-#define TX_16X32 ((TX_SIZE)8) // 16x32 transform
-#define TX_32X16 ((TX_SIZE)9) // 32x16 transform
+#define TX_4X8 ((TX_SIZE)4) // 4x8 transform
+#define TX_8X4 ((TX_SIZE)5) // 8x4 transform
+#define TX_8X16 ((TX_SIZE)6) // 8x16 transform
+#define TX_16X8 ((TX_SIZE)7) // 16x8 transform
+#define TX_16X32 ((TX_SIZE)8) // 16x32 transform
+#define TX_32X16 ((TX_SIZE)9) // 32x16 transform
#define TX_SIZES_ALL ((TX_SIZE)10) // Includes rectangular transforms
#else
#define TX_SIZES_ALL ((TX_SIZE)4)
diff --git a/vp10/common/idct.c b/vp10/common/idct.c
index c3add18..c19c684 100644
--- a/vp10/common/idct.c
+++ b/vp10/common/idct.c
@@ -548,8 +548,8 @@
{ iadst8_c, idct4_c }, // ADST_DCT
{ idct8_c, iadst4_c }, // DCT_ADST
{ iadst8_c, iadst4_c }, // ADST_ADST
- { iadst8_c, idct4_c }, // FLIPADST_DCT
- { idct8_c, iadst4_c }, // DCT_FLIPADST
+ { iadst8_c, idct4_c }, // FLIPADST_DCT
+ { idct8_c, iadst4_c }, // DCT_FLIPADST
{ iadst8_c, iadst4_c }, // FLIPADST_FLIPADST
{ iadst8_c, iadst4_c }, // ADST_FLIPADST
{ iadst8_c, iadst4_c }, // FLIPADST_ADST
@@ -601,8 +601,8 @@
{ iadst4_c, idct8_c }, // ADST_DCT
{ idct4_c, iadst8_c }, // DCT_ADST
{ iadst4_c, iadst8_c }, // ADST_ADST
- { iadst4_c, idct8_c }, // FLIPADST_DCT
- { idct4_c, iadst8_c }, // DCT_FLIPADST
+ { iadst4_c, idct8_c }, // FLIPADST_DCT
+ { idct4_c, iadst8_c }, // DCT_FLIPADST
{ iadst4_c, iadst8_c }, // FLIPADST_FLIPADST
{ iadst4_c, iadst8_c }, // ADST_FLIPADST
{ iadst4_c, iadst8_c }, // FLIPADST_ADST
@@ -647,21 +647,21 @@
}
}
-void vp10_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest,
- int stride, int tx_type) {
+void vp10_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest, int stride,
+ int tx_type) {
static const transform_2d IHT_8x16[] = {
- { idct16_c, idct8_c }, // DCT_DCT
- { iadst16_c, idct8_c }, // ADST_DCT
- { idct16_c, iadst8_c }, // DCT_ADST
+ { idct16_c, idct8_c }, // DCT_DCT
+ { iadst16_c, idct8_c }, // ADST_DCT
+ { idct16_c, iadst8_c }, // DCT_ADST
{ iadst16_c, iadst8_c }, // ADST_ADST
- { iadst16_c, idct8_c }, // FLIPADST_DCT
- { idct16_c, iadst8_c }, // DCT_FLIPADST
+ { iadst16_c, idct8_c }, // FLIPADST_DCT
+ { idct16_c, iadst8_c }, // DCT_FLIPADST
{ iadst16_c, iadst8_c }, // FLIPADST_FLIPADST
{ iadst16_c, iadst8_c }, // ADST_FLIPADST
{ iadst16_c, iadst8_c }, // FLIPADST_ADST
{ iidtx16_c, iidtx8_c }, // IDTX
- { idct16_c, iidtx8_c }, // V_DCT
- { iidtx16_c, idct8_c }, // H_DCT
+ { idct16_c, iidtx8_c }, // V_DCT
+ { iidtx16_c, idct8_c }, // H_DCT
{ iadst16_c, iidtx8_c }, // V_ADST
{ iidtx16_c, iadst8_c }, // H_ADST
{ iadst16_c, iidtx8_c }, // V_FLIPADST
@@ -680,7 +680,7 @@
IHT_8x16[tx_type].rows(input, outtmp);
for (j = 0; j < n; ++j)
out[j][i] = (tran_low_t)dct_const_round_shift(outtmp[j] * Sqrt2);
- input += n;
+ input += n;
}
// inverse transform column vectors
@@ -700,21 +700,21 @@
}
}
-void vp10_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest,
- int stride, int tx_type) {
+void vp10_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest, int stride,
+ int tx_type) {
static const transform_2d IHT_16x8[] = {
- { idct8_c, idct16_c }, // DCT_DCT
- { iadst8_c, idct16_c }, // ADST_DCT
- { idct8_c, iadst16_c }, // DCT_ADST
+ { idct8_c, idct16_c }, // DCT_DCT
+ { iadst8_c, idct16_c }, // ADST_DCT
+ { idct8_c, iadst16_c }, // DCT_ADST
{ iadst8_c, iadst16_c }, // ADST_ADST
- { iadst8_c, idct16_c }, // FLIPADST_DCT
- { idct8_c, iadst16_c }, // DCT_FLIPADST
+ { iadst8_c, idct16_c }, // FLIPADST_DCT
+ { idct8_c, iadst16_c }, // DCT_FLIPADST
{ iadst8_c, iadst16_c }, // FLIPADST_FLIPADST
{ iadst8_c, iadst16_c }, // ADST_FLIPADST
{ iadst8_c, iadst16_c }, // FLIPADST_ADST
{ iidtx8_c, iidtx16_c }, // IDTX
- { idct8_c, iidtx16_c }, // V_DCT
- { iidtx8_c, idct16_c }, // H_DCT
+ { idct8_c, iidtx16_c }, // V_DCT
+ { iidtx8_c, idct16_c }, // H_DCT
{ iadst8_c, iidtx16_c }, // V_ADST
{ iidtx8_c, iadst16_c }, // H_ADST
{ iadst8_c, iidtx16_c }, // V_FLIPADST
@@ -733,7 +733,7 @@
IHT_16x8[tx_type].rows(input, outtmp);
for (j = 0; j < n2; ++j)
out[j][i] = (tran_low_t)dct_const_round_shift(outtmp[j] * Sqrt2);
- input += n2;
+ input += n2;
}
// inverse transform column vectors
@@ -753,25 +753,25 @@
}
}
-void vp10_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest,
- int stride, int tx_type) {
+void vp10_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest, int stride,
+ int tx_type) {
static const transform_2d IHT_16x32[] = {
- { idct32_c, idct16_c }, // DCT_DCT
- { ihalfright32_c, idct16_c }, // ADST_DCT
- { idct32_c, iadst16_c }, // DCT_ADST
+ { idct32_c, idct16_c }, // DCT_DCT
+ { ihalfright32_c, idct16_c }, // ADST_DCT
+ { idct32_c, iadst16_c }, // DCT_ADST
{ ihalfright32_c, iadst16_c }, // ADST_ADST
- { ihalfright32_c, idct16_c }, // FLIPADST_DCT
- { idct32_c, iadst16_c }, // DCT_FLIPADST
+ { ihalfright32_c, idct16_c }, // FLIPADST_DCT
+ { idct32_c, iadst16_c }, // DCT_FLIPADST
{ ihalfright32_c, iadst16_c }, // FLIPADST_FLIPADST
{ ihalfright32_c, iadst16_c }, // ADST_FLIPADST
{ ihalfright32_c, iadst16_c }, // FLIPADST_ADST
- { iidtx32_c, iidtx16_c }, // IDTX
- { idct32_c, iidtx16_c }, // V_DCT
- { iidtx32_c, idct16_c }, // H_DCT
+ { iidtx32_c, iidtx16_c }, // IDTX
+ { idct32_c, iidtx16_c }, // V_DCT
+ { iidtx32_c, idct16_c }, // H_DCT
{ ihalfright32_c, iidtx16_c }, // V_ADST
- { iidtx32_c, iadst16_c }, // H_ADST
+ { iidtx32_c, iadst16_c }, // H_ADST
{ ihalfright32_c, iidtx16_c }, // V_FLIPADST
- { iidtx32_c, iadst16_c }, // H_FLIPADST
+ { iidtx32_c, iadst16_c }, // H_FLIPADST
};
const int n = 16;
@@ -786,7 +786,7 @@
IHT_16x32[tx_type].rows(input, outtmp);
for (j = 0; j < n; ++j)
out[j][i] = (tran_low_t)dct_const_round_shift(outtmp[j] * Sqrt2);
- input += n;
+ input += n;
}
// inverse transform column vectors
@@ -806,24 +806,24 @@
}
}
-void vp10_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest,
- int stride, int tx_type) {
+void vp10_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest, int stride,
+ int tx_type) {
static const transform_2d IHT_32x16[] = {
- { idct16_c, idct32_c }, // DCT_DCT
- { iadst16_c, idct32_c }, // ADST_DCT
- { idct16_c, ihalfright32_c }, // DCT_ADST
+ { idct16_c, idct32_c }, // DCT_DCT
+ { iadst16_c, idct32_c }, // ADST_DCT
+ { idct16_c, ihalfright32_c }, // DCT_ADST
{ iadst16_c, ihalfright32_c }, // ADST_ADST
- { iadst16_c, idct32_c }, // FLIPADST_DCT
- { idct16_c, ihalfright32_c }, // DCT_FLIPADST
+ { iadst16_c, idct32_c }, // FLIPADST_DCT
+ { idct16_c, ihalfright32_c }, // DCT_FLIPADST
{ iadst16_c, ihalfright32_c }, // FLIPADST_FLIPADST
{ iadst16_c, ihalfright32_c }, // ADST_FLIPADST
{ iadst16_c, ihalfright32_c }, // FLIPADST_ADST
- { iidtx16_c, iidtx32_c }, // IDTX
- { idct16_c, iidtx32_c }, // V_DCT
- { iidtx16_c, idct32_c }, // H_DCT
- { iadst16_c, iidtx32_c }, // V_ADST
+ { iidtx16_c, iidtx32_c }, // IDTX
+ { idct16_c, iidtx32_c }, // V_DCT
+ { iidtx16_c, idct32_c }, // H_DCT
+ { iadst16_c, iidtx32_c }, // V_ADST
{ iidtx16_c, ihalfright32_c }, // H_ADST
- { iadst16_c, iidtx32_c }, // V_FLIPADST
+ { iadst16_c, iidtx32_c }, // V_FLIPADST
{ iidtx16_c, ihalfright32_c }, // H_FLIPADST
};
const int n = 16;
@@ -839,7 +839,7 @@
IHT_32x16[tx_type].rows(input, outtmp);
for (j = 0; j < n2; ++j)
out[j][i] = (tran_low_t)dct_const_round_shift(outtmp[j] * Sqrt2);
- input += n2;
+ input += n2;
}
// inverse transform column vectors
@@ -1140,39 +1140,39 @@
}
#if CONFIG_EXT_TX
-void vp10_inv_txfm_add_4x8(const tran_low_t *input, uint8_t *dest,
- int stride, int eob, TX_TYPE tx_type) {
- (void) eob;
+void vp10_inv_txfm_add_4x8(const tran_low_t *input, uint8_t *dest, int stride,
+ int eob, TX_TYPE tx_type) {
+ (void)eob;
vp10_iht4x8_32_add(input, dest, stride, tx_type);
}
-void vp10_inv_txfm_add_8x4(const tran_low_t *input, uint8_t *dest,
- int stride, int eob, TX_TYPE tx_type) {
- (void) eob;
+void vp10_inv_txfm_add_8x4(const tran_low_t *input, uint8_t *dest, int stride,
+ int eob, TX_TYPE tx_type) {
+ (void)eob;
vp10_iht8x4_32_add(input, dest, stride, tx_type);
}
-void vp10_inv_txfm_add_8x16(const tran_low_t *input, uint8_t *dest,
- int stride, int eob, TX_TYPE tx_type) {
- (void) eob;
+void vp10_inv_txfm_add_8x16(const tran_low_t *input, uint8_t *dest, int stride,
+ int eob, TX_TYPE tx_type) {
+ (void)eob;
vp10_iht8x16_128_add(input, dest, stride, tx_type);
}
-void vp10_inv_txfm_add_16x8(const tran_low_t *input, uint8_t *dest,
- int stride, int eob, TX_TYPE tx_type) {
- (void) eob;
+void vp10_inv_txfm_add_16x8(const tran_low_t *input, uint8_t *dest, int stride,
+ int eob, TX_TYPE tx_type) {
+ (void)eob;
vp10_iht16x8_128_add(input, dest, stride, tx_type);
}
-void vp10_inv_txfm_add_16x32(const tran_low_t *input, uint8_t *dest,
- int stride, int eob, TX_TYPE tx_type) {
- (void) eob;
+void vp10_inv_txfm_add_16x32(const tran_low_t *input, uint8_t *dest, int stride,
+ int eob, TX_TYPE tx_type) {
+ (void)eob;
vp10_iht16x32_512_add(input, dest, stride, tx_type);
}
-void vp10_inv_txfm_add_32x16(const tran_low_t *input, uint8_t *dest,
- int stride, int eob, TX_TYPE tx_type) {
- (void) eob;
+void vp10_inv_txfm_add_32x16(const tran_low_t *input, uint8_t *dest, int stride,
+ int eob, TX_TYPE tx_type) {
+ (void)eob;
vp10_iht32x16_512_add(input, dest, stride, tx_type);
}
#endif // CONFIG_EXT_TX
@@ -1364,8 +1364,8 @@
for (i = 0; i < n2; ++i) {
HIGH_IHT_4x8[tx_type].rows(input, outtmp, bd);
for (j = 0; j < n; ++j) {
- out[j][i] = HIGHBD_WRAPLOW(
- highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
+ out[j][i] =
+ HIGHBD_WRAPLOW(highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
}
input += n;
}
@@ -1422,10 +1422,10 @@
for (i = 0; i < n; ++i) {
HIGH_IHT_8x4[tx_type].rows(input, outtmp, bd);
for (j = 0; j < n2; ++j) {
- out[j][i] = HIGHBD_WRAPLOW(
- highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
+ out[j][i] =
+ HIGHBD_WRAPLOW(highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
}
- input += n2;
+ input += n2;
}
// inverse transform column vectors
@@ -1449,22 +1449,22 @@
void vp10_highbd_iht8x16_128_add_c(const tran_low_t *input, uint8_t *dest8,
int stride, int tx_type, int bd) {
static const highbd_transform_2d HIGH_IHT_8x16[] = {
- { vpx_highbd_idct16_c, vpx_highbd_idct8_c }, // DCT_DCT
- { vpx_highbd_iadst16_c, vpx_highbd_idct8_c }, // ADST_DCT
- { vpx_highbd_idct16_c, vpx_highbd_iadst8_c }, // DCT_ADST
+ { vpx_highbd_idct16_c, vpx_highbd_idct8_c }, // DCT_DCT
+ { vpx_highbd_iadst16_c, vpx_highbd_idct8_c }, // ADST_DCT
+ { vpx_highbd_idct16_c, vpx_highbd_iadst8_c }, // DCT_ADST
{ vpx_highbd_iadst16_c, vpx_highbd_iadst8_c }, // ADST_ADST
- { vpx_highbd_iadst16_c, vpx_highbd_idct8_c }, // FLIPADST_DCT
- { vpx_highbd_idct16_c, vpx_highbd_iadst8_c }, // DCT_FLIPADST
+ { vpx_highbd_iadst16_c, vpx_highbd_idct8_c }, // FLIPADST_DCT
+ { vpx_highbd_idct16_c, vpx_highbd_iadst8_c }, // DCT_FLIPADST
{ vpx_highbd_iadst16_c, vpx_highbd_iadst8_c }, // FLIPADST_FLIPADST
{ vpx_highbd_iadst16_c, vpx_highbd_iadst8_c }, // ADST_FLIPADST
{ vpx_highbd_iadst16_c, vpx_highbd_iadst8_c }, // FLIPADST_ADST
- { highbd_iidtx16_c, highbd_iidtx8_c }, // IDTX
- { vpx_highbd_idct16_c, highbd_iidtx8_c }, // V_DCT
- { highbd_iidtx16_c, vpx_highbd_idct8_c }, // H_DCT
- { vpx_highbd_iadst16_c, highbd_iidtx8_c }, // V_ADST
- { highbd_iidtx16_c, vpx_highbd_iadst8_c }, // H_ADST
- { vpx_highbd_iadst16_c, highbd_iidtx8_c }, // V_FLIPADST
- { highbd_iidtx16_c, vpx_highbd_iadst8_c }, // H_FLIPADST
+ { highbd_iidtx16_c, highbd_iidtx8_c }, // IDTX
+ { vpx_highbd_idct16_c, highbd_iidtx8_c }, // V_DCT
+ { highbd_iidtx16_c, vpx_highbd_idct8_c }, // H_DCT
+ { vpx_highbd_iadst16_c, highbd_iidtx8_c }, // V_ADST
+ { highbd_iidtx16_c, vpx_highbd_iadst8_c }, // H_ADST
+ { vpx_highbd_iadst16_c, highbd_iidtx8_c }, // V_FLIPADST
+ { highbd_iidtx16_c, vpx_highbd_iadst8_c }, // H_FLIPADST
};
const int n = 8;
const int n2 = 16;
@@ -1480,9 +1480,9 @@
for (i = 0; i < n2; ++i) {
HIGH_IHT_8x16[tx_type].rows(input, outtmp, bd);
for (j = 0; j < n; ++j)
- out[j][i] = HIGHBD_WRAPLOW(
- highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
- input += n;
+ out[j][i] =
+ HIGHBD_WRAPLOW(highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
+ input += n;
}
// inverse transform column vectors
@@ -1497,8 +1497,8 @@
for (j = 0; j < n; ++j) {
int d = i * stride + j;
int s = j * outstride + i;
- dest[d] = highbd_clip_pixel_add(dest[d],
- ROUND_POWER_OF_TWO(outp[s], 6), bd);
+ dest[d] =
+ highbd_clip_pixel_add(dest[d], ROUND_POWER_OF_TWO(outp[s], 6), bd);
}
}
}
@@ -1506,22 +1506,22 @@
void vp10_highbd_iht16x8_128_add_c(const tran_low_t *input, uint8_t *dest8,
int stride, int tx_type, int bd) {
static const highbd_transform_2d HIGH_IHT_16x8[] = {
- { vpx_highbd_idct8_c, vpx_highbd_idct16_c }, // DCT_DCT
- { vpx_highbd_iadst8_c, vpx_highbd_idct16_c }, // ADST_DCT
- { vpx_highbd_idct8_c, vpx_highbd_iadst16_c }, // DCT_ADST
+ { vpx_highbd_idct8_c, vpx_highbd_idct16_c }, // DCT_DCT
+ { vpx_highbd_iadst8_c, vpx_highbd_idct16_c }, // ADST_DCT
+ { vpx_highbd_idct8_c, vpx_highbd_iadst16_c }, // DCT_ADST
{ vpx_highbd_iadst8_c, vpx_highbd_iadst16_c }, // ADST_ADST
- { vpx_highbd_iadst8_c, vpx_highbd_idct16_c }, // FLIPADST_DCT
- { vpx_highbd_idct8_c, vpx_highbd_iadst16_c }, // DCT_FLIPADST
+ { vpx_highbd_iadst8_c, vpx_highbd_idct16_c }, // FLIPADST_DCT
+ { vpx_highbd_idct8_c, vpx_highbd_iadst16_c }, // DCT_FLIPADST
{ vpx_highbd_iadst8_c, vpx_highbd_iadst16_c }, // FLIPADST_FLIPADST
{ vpx_highbd_iadst8_c, vpx_highbd_iadst16_c }, // ADST_FLIPADST
{ vpx_highbd_iadst8_c, vpx_highbd_iadst16_c }, // FLIPADST_ADST
- { highbd_iidtx8_c, highbd_iidtx16_c }, // IDTX
- { vpx_highbd_idct8_c, highbd_iidtx16_c }, // V_DCT
- { highbd_iidtx8_c, vpx_highbd_idct16_c }, // H_DCT
- { vpx_highbd_iadst8_c, highbd_iidtx16_c }, // V_ADST
- { highbd_iidtx8_c, vpx_highbd_iadst16_c }, // H_ADST
- { vpx_highbd_iadst8_c, highbd_iidtx16_c }, // V_FLIPADST
- { highbd_iidtx8_c, vpx_highbd_iadst16_c }, // H_FLIPADST
+ { highbd_iidtx8_c, highbd_iidtx16_c }, // IDTX
+ { vpx_highbd_idct8_c, highbd_iidtx16_c }, // V_DCT
+ { highbd_iidtx8_c, vpx_highbd_idct16_c }, // H_DCT
+ { vpx_highbd_iadst8_c, highbd_iidtx16_c }, // V_ADST
+ { highbd_iidtx8_c, vpx_highbd_iadst16_c }, // H_ADST
+ { vpx_highbd_iadst8_c, highbd_iidtx16_c }, // V_FLIPADST
+ { highbd_iidtx8_c, vpx_highbd_iadst16_c }, // H_FLIPADST
};
const int n = 8;
const int n2 = 16;
@@ -1537,9 +1537,9 @@
for (i = 0; i < n; ++i) {
HIGH_IHT_16x8[tx_type].rows(input, outtmp, bd);
for (j = 0; j < n2; ++j)
- out[j][i] = HIGHBD_WRAPLOW(
- highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
- input += n2;
+ out[j][i] =
+ HIGHBD_WRAPLOW(highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
+ input += n2;
}
// inverse transform column vectors
@@ -1554,31 +1554,31 @@
for (j = 0; j < n2; ++j) {
int d = i * stride + j;
int s = j * outstride + i;
- dest[d] = highbd_clip_pixel_add(dest[d],
- ROUND_POWER_OF_TWO(outp[s], 6), bd);
+ dest[d] =
+ highbd_clip_pixel_add(dest[d], ROUND_POWER_OF_TWO(outp[s], 6), bd);
}
}
}
void vp10_highbd_iht16x32_512_add_c(const tran_low_t *input, uint8_t *dest8,
- int stride, int tx_type, int bd) {
+ int stride, int tx_type, int bd) {
static const highbd_transform_2d HIGH_IHT_16x32[] = {
- { vpx_highbd_idct32_c, vpx_highbd_idct16_c }, // DCT_DCT
- { highbd_ihalfright32_c, vpx_highbd_idct16_c }, // ADST_DCT
- { vpx_highbd_idct32_c, vpx_highbd_iadst16_c }, // DCT_ADST
+ { vpx_highbd_idct32_c, vpx_highbd_idct16_c }, // DCT_DCT
+ { highbd_ihalfright32_c, vpx_highbd_idct16_c }, // ADST_DCT
+ { vpx_highbd_idct32_c, vpx_highbd_iadst16_c }, // DCT_ADST
{ highbd_ihalfright32_c, vpx_highbd_iadst16_c }, // ADST_ADST
- { highbd_ihalfright32_c, vpx_highbd_idct16_c }, // FLIPADST_DCT
- { vpx_highbd_idct32_c, vpx_highbd_iadst16_c }, // DCT_FLIPADST
+ { highbd_ihalfright32_c, vpx_highbd_idct16_c }, // FLIPADST_DCT
+ { vpx_highbd_idct32_c, vpx_highbd_iadst16_c }, // DCT_FLIPADST
{ highbd_ihalfright32_c, vpx_highbd_iadst16_c }, // FLIPADST_FLIPADST
{ highbd_ihalfright32_c, vpx_highbd_iadst16_c }, // ADST_FLIPADST
{ highbd_ihalfright32_c, vpx_highbd_iadst16_c }, // FLIPADST_ADST
- { highbd_iidtx32_c, highbd_iidtx16_c }, // IDTX
- { vpx_highbd_idct32_c, highbd_iidtx16_c }, // V_DCT
- { highbd_iidtx32_c, vpx_highbd_idct16_c }, // H_DCT
- { highbd_ihalfright32_c, highbd_iidtx16_c }, // V_ADST
- { highbd_iidtx32_c, vpx_highbd_iadst16_c }, // H_ADST
- { highbd_ihalfright32_c, highbd_iidtx16_c }, // V_FLIPADST
- { highbd_iidtx32_c, vpx_highbd_iadst16_c }, // H_FLIPADST
+ { highbd_iidtx32_c, highbd_iidtx16_c }, // IDTX
+ { vpx_highbd_idct32_c, highbd_iidtx16_c }, // V_DCT
+ { highbd_iidtx32_c, vpx_highbd_idct16_c }, // H_DCT
+ { highbd_ihalfright32_c, highbd_iidtx16_c }, // V_ADST
+ { highbd_iidtx32_c, vpx_highbd_iadst16_c }, // H_ADST
+ { highbd_ihalfright32_c, highbd_iidtx16_c }, // V_FLIPADST
+ { highbd_iidtx32_c, vpx_highbd_iadst16_c }, // H_FLIPADST
};
const int n = 16;
const int n2 = 32;
@@ -1594,9 +1594,9 @@
for (i = 0; i < n2; ++i) {
HIGH_IHT_16x32[tx_type].rows(input, outtmp, bd);
for (j = 0; j < n; ++j)
- out[j][i] = HIGHBD_WRAPLOW(
- highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
- input += n;
+ out[j][i] =
+ HIGHBD_WRAPLOW(highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
+ input += n;
}
// inverse transform column vectors
@@ -1611,8 +1611,8 @@
for (j = 0; j < n; ++j) {
int d = i * stride + j;
int s = j * outstride + i;
- dest[d] = highbd_clip_pixel_add(dest[d],
- ROUND_POWER_OF_TWO(outp[s], 6), bd);
+ dest[d] =
+ highbd_clip_pixel_add(dest[d], ROUND_POWER_OF_TWO(outp[s], 6), bd);
}
}
}
@@ -1620,22 +1620,22 @@
void vp10_highbd_iht32x16_512_add_c(const tran_low_t *input, uint8_t *dest8,
int stride, int tx_type, int bd) {
static const highbd_transform_2d HIGH_IHT_32x16[] = {
- { vpx_highbd_idct16_c, vpx_highbd_idct32_c }, // DCT_DCT
- { vpx_highbd_iadst16_c, vpx_highbd_idct32_c }, // ADST_DCT
- { vpx_highbd_idct16_c, highbd_ihalfright32_c }, // DCT_ADST
+ { vpx_highbd_idct16_c, vpx_highbd_idct32_c }, // DCT_DCT
+ { vpx_highbd_iadst16_c, vpx_highbd_idct32_c }, // ADST_DCT
+ { vpx_highbd_idct16_c, highbd_ihalfright32_c }, // DCT_ADST
{ vpx_highbd_iadst16_c, highbd_ihalfright32_c }, // ADST_ADST
- { vpx_highbd_iadst16_c, vpx_highbd_idct32_c }, // FLIPADST_DCT
- { vpx_highbd_idct16_c, highbd_ihalfright32_c }, // DCT_FLIPADST
+ { vpx_highbd_iadst16_c, vpx_highbd_idct32_c }, // FLIPADST_DCT
+ { vpx_highbd_idct16_c, highbd_ihalfright32_c }, // DCT_FLIPADST
{ vpx_highbd_iadst16_c, highbd_ihalfright32_c }, // FLIPADST_FLIPADST
{ vpx_highbd_iadst16_c, highbd_ihalfright32_c }, // ADST_FLIPADST
{ vpx_highbd_iadst16_c, highbd_ihalfright32_c }, // FLIPADST_ADST
- { highbd_iidtx16_c, highbd_iidtx32_c }, // IDTX
- { vpx_highbd_idct16_c, highbd_iidtx32_c }, // V_DCT
- { highbd_iidtx16_c, vpx_highbd_idct32_c }, // H_DCT
- { vpx_highbd_iadst16_c, highbd_iidtx32_c }, // V_ADST
- { highbd_iidtx16_c, highbd_ihalfright32_c }, // H_ADST
- { vpx_highbd_iadst16_c, highbd_iidtx32_c }, // V_FLIPADST
- { highbd_iidtx16_c, highbd_ihalfright32_c }, // H_FLIPADST
+ { highbd_iidtx16_c, highbd_iidtx32_c }, // IDTX
+ { vpx_highbd_idct16_c, highbd_iidtx32_c }, // V_DCT
+ { highbd_iidtx16_c, vpx_highbd_idct32_c }, // H_DCT
+ { vpx_highbd_iadst16_c, highbd_iidtx32_c }, // V_ADST
+ { highbd_iidtx16_c, highbd_ihalfright32_c }, // H_ADST
+ { vpx_highbd_iadst16_c, highbd_iidtx32_c }, // V_FLIPADST
+ { highbd_iidtx16_c, highbd_ihalfright32_c }, // H_FLIPADST
};
const int n = 16;
const int n2 = 32;
@@ -1651,9 +1651,9 @@
for (i = 0; i < n; ++i) {
HIGH_IHT_32x16[tx_type].rows(input, outtmp, bd);
for (j = 0; j < n2; ++j)
- out[j][i] = HIGHBD_WRAPLOW(
- highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
- input += n2;
+ out[j][i] =
+ HIGHBD_WRAPLOW(highbd_dct_const_round_shift(outtmp[j] * Sqrt2), bd);
+ input += n2;
}
// inverse transform column vectors
@@ -1668,8 +1668,8 @@
for (j = 0; j < n2; ++j) {
int d = i * stride + j;
int s = j * outstride + i;
- dest[d] = highbd_clip_pixel_add(dest[d],
- ROUND_POWER_OF_TWO(outp[s], 6), bd);
+ dest[d] =
+ highbd_clip_pixel_add(dest[d], ROUND_POWER_OF_TWO(outp[s], 6), bd);
}
}
}
@@ -1980,42 +1980,42 @@
void vp10_highbd_inv_txfm_add_4x8(const tran_low_t *input, uint8_t *dest,
int stride, int eob, int bd,
TX_TYPE tx_type) {
- (void) eob;
+ (void)eob;
vp10_highbd_iht4x8_32_add_c(input, dest, stride, tx_type, bd);
}
void vp10_highbd_inv_txfm_add_8x4(const tran_low_t *input, uint8_t *dest,
int stride, int eob, int bd,
TX_TYPE tx_type) {
- (void) eob;
+ (void)eob;
vp10_highbd_iht8x4_32_add_c(input, dest, stride, tx_type, bd);
}
void vp10_highbd_inv_txfm_add_8x16(const tran_low_t *input, uint8_t *dest,
int stride, int eob, int bd,
TX_TYPE tx_type) {
- (void) eob;
+ (void)eob;
vp10_highbd_iht8x16_128_add_c(input, dest, stride, tx_type, bd);
}
void vp10_highbd_inv_txfm_add_16x8(const tran_low_t *input, uint8_t *dest,
int stride, int eob, int bd,
TX_TYPE tx_type) {
- (void) eob;
+ (void)eob;
vp10_highbd_iht16x8_128_add_c(input, dest, stride, tx_type, bd);
}
void vp10_highbd_inv_txfm_add_16x32(const tran_low_t *input, uint8_t *dest,
int stride, int eob, int bd,
TX_TYPE tx_type) {
- (void) eob;
+ (void)eob;
vp10_highbd_iht16x32_512_add_c(input, dest, stride, tx_type, bd);
}
void vp10_highbd_inv_txfm_add_32x16(const tran_low_t *input, uint8_t *dest,
int stride, int eob, int bd,
TX_TYPE tx_type) {
- (void) eob;
+ (void)eob;
vp10_highbd_iht32x16_512_add_c(input, dest, stride, tx_type, bd);
}
#endif // CONFIG_EXT_TX
diff --git a/vp10/common/od_dering.c b/vp10/common/od_dering.c
index af89b80..b7a459c 100644
--- a/vp10/common/od_dering.c
+++ b/vp10/common/od_dering.c
@@ -23,7 +23,7 @@
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/
#ifdef HAVE_CONFIG_H
-# include "config.h"
+#include "config.h"
#endif
#include <stdlib.h>
@@ -31,25 +31,26 @@
#include "dering.h"
const od_dering_opt_vtbl OD_DERING_VTBL_C = {
- {od_filter_dering_direction_4x4_c, od_filter_dering_direction_8x8_c},
- {od_filter_dering_orthogonal_4x4_c, od_filter_dering_orthogonal_8x8_c}
+ { od_filter_dering_direction_4x4_c, od_filter_dering_direction_8x8_c },
+ { od_filter_dering_orthogonal_4x4_c, od_filter_dering_orthogonal_8x8_c }
};
/* Generated from gen_filter_tables.c. */
const int OD_DIRECTION_OFFSETS_TABLE[8][3] = {
- {-1*OD_FILT_BSTRIDE + 1, -2*OD_FILT_BSTRIDE + 2, -3*OD_FILT_BSTRIDE + 3 },
- { 0*OD_FILT_BSTRIDE + 1, -1*OD_FILT_BSTRIDE + 2, -1*OD_FILT_BSTRIDE + 3 },
- { 0*OD_FILT_BSTRIDE + 1, 0*OD_FILT_BSTRIDE + 2, 0*OD_FILT_BSTRIDE + 3 },
- { 0*OD_FILT_BSTRIDE + 1, 1*OD_FILT_BSTRIDE + 2, 1*OD_FILT_BSTRIDE + 3 },
- { 1*OD_FILT_BSTRIDE + 1, 2*OD_FILT_BSTRIDE + 2, 3*OD_FILT_BSTRIDE + 3 },
- { 1*OD_FILT_BSTRIDE + 0, 2*OD_FILT_BSTRIDE + 1, 3*OD_FILT_BSTRIDE + 1 },
- { 1*OD_FILT_BSTRIDE + 0, 2*OD_FILT_BSTRIDE + 0, 3*OD_FILT_BSTRIDE + 0 },
- { 1*OD_FILT_BSTRIDE + 0, 2*OD_FILT_BSTRIDE - 1, 3*OD_FILT_BSTRIDE - 1 },
+ { -1 * OD_FILT_BSTRIDE + 1, -2 * OD_FILT_BSTRIDE + 2,
+ -3 * OD_FILT_BSTRIDE + 3 },
+ { 0 * OD_FILT_BSTRIDE + 1, -1 * OD_FILT_BSTRIDE + 2,
+ -1 * OD_FILT_BSTRIDE + 3 },
+ { 0 * OD_FILT_BSTRIDE + 1, 0 * OD_FILT_BSTRIDE + 2, 0 * OD_FILT_BSTRIDE + 3 },
+ { 0 * OD_FILT_BSTRIDE + 1, 1 * OD_FILT_BSTRIDE + 2, 1 * OD_FILT_BSTRIDE + 3 },
+ { 1 * OD_FILT_BSTRIDE + 1, 2 * OD_FILT_BSTRIDE + 2, 3 * OD_FILT_BSTRIDE + 3 },
+ { 1 * OD_FILT_BSTRIDE + 0, 2 * OD_FILT_BSTRIDE + 1, 3 * OD_FILT_BSTRIDE + 1 },
+ { 1 * OD_FILT_BSTRIDE + 0, 2 * OD_FILT_BSTRIDE + 0, 3 * OD_FILT_BSTRIDE + 0 },
+ { 1 * OD_FILT_BSTRIDE + 0, 2 * OD_FILT_BSTRIDE - 1, 3 * OD_FILT_BSTRIDE - 1 },
};
-const double OD_DERING_GAIN_TABLE[OD_DERING_LEVELS] = {
- 0, 0.5, 0.707, 1, 1.41, 2
-};
+const double OD_DERING_GAIN_TABLE[OD_DERING_LEVELS] = { 0, 0.5, 0.707,
+ 1, 1.41, 2 };
/* Detect direction. 0 means 45-degree up-right, 2 is horizontal, and so on.
The search minimizes the weighted variance along all the lines in a
@@ -59,56 +60,59 @@
that term is never computed. See Section 2, step 2, of:
http://jmvalin.ca/notes/intra_paint.pdf */
static int od_dir_find8(const od_dering_in *img, int stride, int32_t *var,
- int coeff_shift) {
+ int coeff_shift) {
int i;
- int32_t cost[8] = {0};
- int partial[8][15] = {{0}};
+ int32_t cost[8] = { 0 };
+ int partial[8][15] = { { 0 } };
int32_t best_cost = 0;
int best_dir = 0;
/* Instead of dividing by n between 2 and 8, we multiply by 3*5*7*8/n.
The output is then 840 times larger, but we don't care for finding
the max. */
- static const int div_table[] = {0, 840, 420, 280, 210, 168, 140, 120, 105};
+ static const int div_table[] = { 0, 840, 420, 280, 210, 168, 140, 120, 105 };
for (i = 0; i < 8; i++) {
int j;
for (j = 0; j < 8; j++) {
int x;
/* We subtract 128 here to reduce the maximum range of the squared
partial sums. */
- x = (img[i*stride + j] >> coeff_shift) - 128;
+ x = (img[i * stride + j] >> coeff_shift) - 128;
partial[0][i + j] += x;
- partial[1][i + j/2] += x;
+ partial[1][i + j / 2] += x;
partial[2][i] += x;
- partial[3][3 + i - j/2] += x;
+ partial[3][3 + i - j / 2] += x;
partial[4][7 + i - j] += x;
- partial[5][3 - i/2 + j] += x;
+ partial[5][3 - i / 2 + j] += x;
partial[6][j] += x;
- partial[7][i/2 + j] += x;
+ partial[7][i / 2 + j] += x;
}
}
for (i = 0; i < 8; i++) {
- cost[2] += partial[2][i]*partial[2][i];
- cost[6] += partial[6][i]*partial[6][i];
+ cost[2] += partial[2][i] * partial[2][i];
+ cost[6] += partial[6][i] * partial[6][i];
}
cost[2] *= div_table[8];
cost[6] *= div_table[8];
for (i = 0; i < 7; i++) {
- cost[0] += (partial[0][i]*partial[0][i]
- + partial[0][14 - i]*partial[0][14 - i])*div_table[i + 1];
- cost[4] += (partial[4][i]*partial[4][i]
- + partial[4][14 - i]*partial[4][14 - i])*div_table[i + 1];
+ cost[0] += (partial[0][i] * partial[0][i] +
+ partial[0][14 - i] * partial[0][14 - i]) *
+ div_table[i + 1];
+ cost[4] += (partial[4][i] * partial[4][i] +
+ partial[4][14 - i] * partial[4][14 - i]) *
+ div_table[i + 1];
}
- cost[0] += partial[0][7]*partial[0][7]*div_table[8];
- cost[4] += partial[4][7]*partial[4][7]*div_table[8];
+ cost[0] += partial[0][7] * partial[0][7] * div_table[8];
+ cost[4] += partial[4][7] * partial[4][7] * div_table[8];
for (i = 1; i < 8; i += 2) {
int j;
for (j = 0; j < 4 + 1; j++) {
- cost[i] += partial[i][3 + j]*partial[i][3 + j];
+ cost[i] += partial[i][3 + j] * partial[i][3 + j];
}
cost[i] *= div_table[8];
for (j = 0; j < 4 - 1; j++) {
- cost[i] += (partial[i][j]*partial[i][j]
- + partial[i][10 - j]*partial[i][10 - j])*div_table[2*j + 2];
+ cost[i] += (partial[i][j] * partial[i][j] +
+ partial[i][10 - j] * partial[i][10 - j]) *
+ div_table[2 * j + 2];
}
}
for (i = 0; i < 8; i++) {
@@ -127,57 +131,62 @@
}
#define OD_DERING_VERY_LARGE (30000)
-#define OD_DERING_INBUF_SIZE ((OD_BSIZE_MAX + 2*OD_FILT_BORDER)*\
- (OD_BSIZE_MAX + 2*OD_FILT_BORDER))
+#define OD_DERING_INBUF_SIZE \
+ ((OD_BSIZE_MAX + 2 * OD_FILT_BORDER) * (OD_BSIZE_MAX + 2 * OD_FILT_BORDER))
/* Smooth in the direction detected. */
void od_filter_dering_direction_c(int16_t *y, int ystride, const int16_t *in,
- int ln, int threshold, int dir) {
+ int ln, int threshold, int dir) {
int i;
int j;
int k;
- static const int taps[3] = {3, 2, 2};
+ static const int taps[3] = { 3, 2, 2 };
for (i = 0; i < 1 << ln; i++) {
for (j = 0; j < 1 << ln; j++) {
int16_t sum;
int16_t xx;
int16_t yy;
- xx = in[i*OD_FILT_BSTRIDE + j];
- sum= 0;
+ xx = in[i * OD_FILT_BSTRIDE + j];
+ sum = 0;
for (k = 0; k < 3; k++) {
int16_t p0;
int16_t p1;
- p0 = in[i*OD_FILT_BSTRIDE + j + OD_DIRECTION_OFFSETS_TABLE[dir][k]]
- - xx;
- p1 = in[i*OD_FILT_BSTRIDE + j - OD_DIRECTION_OFFSETS_TABLE[dir][k]]
- - xx;
- if (abs(p0) < threshold) sum += taps[k]*p0;
- if (abs(p1) < threshold) sum += taps[k]*p1;
+ p0 = in[i * OD_FILT_BSTRIDE + j + OD_DIRECTION_OFFSETS_TABLE[dir][k]] -
+ xx;
+ p1 = in[i * OD_FILT_BSTRIDE + j - OD_DIRECTION_OFFSETS_TABLE[dir][k]] -
+ xx;
+ if (abs(p0) < threshold) sum += taps[k] * p0;
+ if (abs(p1) < threshold) sum += taps[k] * p1;
}
yy = xx + ((sum + 8) >> 4);
- y[i*ystride + j] = yy;
+ y[i * ystride + j] = yy;
}
}
}
void od_filter_dering_direction_4x4_c(int16_t *y, int ystride,
- const int16_t *in, int threshold, int dir) {
+ const int16_t *in, int threshold,
+ int dir) {
od_filter_dering_direction_c(y, ystride, in, 2, threshold, dir);
}
void od_filter_dering_direction_8x8_c(int16_t *y, int ystride,
- const int16_t *in, int threshold, int dir) {
+ const int16_t *in, int threshold,
+ int dir) {
od_filter_dering_direction_c(y, ystride, in, 3, threshold, dir);
}
/* Smooth in the direction orthogonal to what was detected. */
void od_filter_dering_orthogonal_c(int16_t *y, int ystride, const int16_t *in,
- const od_dering_in *x, int xstride, int ln, int threshold, int dir) {
+ const od_dering_in *x, int xstride, int ln,
+ int threshold, int dir) {
int i;
int j;
int offset;
- if (dir > 0 && dir < 4) offset = OD_FILT_BSTRIDE;
- else offset = 1;
+ if (dir > 0 && dir < 4)
+ offset = OD_FILT_BSTRIDE;
+ else
+ offset = 1;
for (i = 0; i < 1 << ln; i++) {
for (j = 0; j < 1 << ln; j++) {
int16_t athresh;
@@ -192,32 +201,33 @@
to be a little bit more aggressive on pure horizontal/vertical
since the ringing there tends to be directional, so it doesn't
get removed by the directional filtering. */
- athresh = OD_MINI(threshold, threshold/3
- + abs(in[i*OD_FILT_BSTRIDE + j] - x[i*xstride + j]));
- yy = in[i*OD_FILT_BSTRIDE + j];
+ athresh = OD_MINI(
+ threshold, threshold / 3 +
+ abs(in[i * OD_FILT_BSTRIDE + j] - x[i * xstride + j]));
+ yy = in[i * OD_FILT_BSTRIDE + j];
sum = 0;
- p = in[i*OD_FILT_BSTRIDE + j + offset] - yy;
+ p = in[i * OD_FILT_BSTRIDE + j + offset] - yy;
if (abs(p) < athresh) sum += p;
- p = in[i*OD_FILT_BSTRIDE + j - offset] - yy;
+ p = in[i * OD_FILT_BSTRIDE + j - offset] - yy;
if (abs(p) < athresh) sum += p;
- p = in[i*OD_FILT_BSTRIDE + j + 2*offset] - yy;
+ p = in[i * OD_FILT_BSTRIDE + j + 2 * offset] - yy;
if (abs(p) < athresh) sum += p;
- p = in[i*OD_FILT_BSTRIDE + j - 2*offset] - yy;
+ p = in[i * OD_FILT_BSTRIDE + j - 2 * offset] - yy;
if (abs(p) < athresh) sum += p;
- y[i*ystride + j] = yy + ((3*sum + 8) >> 4);
+ y[i * ystride + j] = yy + ((3 * sum + 8) >> 4);
}
}
}
void od_filter_dering_orthogonal_4x4_c(int16_t *y, int ystride,
- const int16_t *in, const od_dering_in *x, int xstride, int threshold,
- int dir) {
+ const int16_t *in, const od_dering_in *x,
+ int xstride, int threshold, int dir) {
od_filter_dering_orthogonal_c(y, ystride, in, x, xstride, 2, threshold, dir);
}
void od_filter_dering_orthogonal_8x8_c(int16_t *y, int ystride,
- const int16_t *in, const od_dering_in *x, int xstride, int threshold,
- int dir) {
+ const int16_t *in, const od_dering_in *x,
+ int xstride, int threshold, int dir) {
od_filter_dering_orthogonal_c(y, ystride, in, x, xstride, 3, threshold, dir);
}
@@ -225,9 +235,8 @@
to [-.5, 3]. The table is computed as:
round(256*min(3, max(.5, 1.08*(sqrt(2)*2.^([0:17]+8)/256/256).^.16))) */
static const int16_t OD_THRESH_TABLE_Q8[18] = {
- 128, 134, 150, 168, 188, 210, 234, 262,
- 292, 327, 365, 408, 455, 509, 569, 635,
- 710, 768,
+ 128, 134, 150, 168, 188, 210, 234, 262, 292,
+ 327, 365, 408, 455, 509, 569, 635, 710, 768,
};
/* Compute deringing filter threshold for each 8x8 block based on the
@@ -237,8 +246,9 @@
contrast edge, or a non-directional texture, so we want to be careful not
to blur. */
static void od_compute_thresh(int thresh[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS],
- int threshold, int32_t var[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS],
- int nhb, int nvb) {
+ int threshold,
+ int32_t var[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS],
+ int nhb, int nvb) {
int bx;
int by;
for (by = 0; by < nvb; by++) {
@@ -246,16 +256,17 @@
int v1;
/* We use the variance of 8x8 blocks to adjust the threshold. */
v1 = OD_MINI(32767, var[by][bx] >> 6);
- thresh[by][bx] = (threshold*OD_THRESH_TABLE_Q8[OD_ILOG(v1)] + 128) >> 8;
+ thresh[by][bx] = (threshold * OD_THRESH_TABLE_Q8[OD_ILOG(v1)] + 128) >> 8;
}
}
}
void od_dering(const od_dering_opt_vtbl *vtbl, int16_t *y, int ystride,
- const od_dering_in *x, int xstride, int nhb, int nvb, int sbx, int sby,
- int nhsb, int nvsb, int xdec, int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS],
- int pli, unsigned char *bskip, int skip_stride, int threshold, int overlap,
- int coeff_shift) {
+ const od_dering_in *x, int xstride, int nhb, int nvb, int sbx,
+ int sby, int nhsb, int nvsb, int xdec,
+ int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS], int pli,
+ unsigned char *bskip, int skip_stride, int threshold,
+ int overlap, int coeff_shift) {
int i;
int j;
int bx;
@@ -266,28 +277,27 @@
int32_t var[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS];
int thresh[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS];
bsize = 3 - xdec;
- in = inbuf + OD_FILT_BORDER*OD_FILT_BSTRIDE + OD_FILT_BORDER;
+ in = inbuf + OD_FILT_BORDER * OD_FILT_BSTRIDE + OD_FILT_BORDER;
/* We avoid filtering the pixels for which some of the pixels to average
are outside the frame. We could change the filter instead, but it would
add special cases for any future vectorization. */
for (i = 0; i < OD_DERING_INBUF_SIZE; i++) inbuf[i] = OD_DERING_VERY_LARGE;
- for (i = -OD_FILT_BORDER*(sby != 0); i < (nvb << bsize)
- + OD_FILT_BORDER*(sby != nvsb - 1); i++) {
- for (j = -OD_FILT_BORDER*(sbx != 0); j < (nhb << bsize)
- + OD_FILT_BORDER*(sbx != nhsb - 1); j++) {
- in[i*OD_FILT_BSTRIDE + j] = x[i*xstride + j];
+ for (i = -OD_FILT_BORDER * (sby != 0);
+ i < (nvb << bsize) + OD_FILT_BORDER * (sby != nvsb - 1); i++) {
+ for (j = -OD_FILT_BORDER * (sbx != 0);
+ j < (nhb << bsize) + OD_FILT_BORDER * (sbx != nhsb - 1); j++) {
+ in[i * OD_FILT_BSTRIDE + j] = x[i * xstride + j];
}
}
if (pli == 0) {
for (by = 0; by < nvb; by++) {
for (bx = 0; bx < nhb; bx++) {
- dir[by][bx] = od_dir_find8(&x[8*by*xstride + 8*bx], xstride,
- &var[by][bx], coeff_shift);
+ dir[by][bx] = od_dir_find8(&x[8 * by * xstride + 8 * bx], xstride,
+ &var[by][bx], coeff_shift);
}
}
od_compute_thresh(thresh, threshold, var, nhb, nvb);
- }
- else {
+ } else {
for (by = 0; by < nvb; by++) {
for (bx = 0; bx < nhb; bx++) {
thresh[by][bx] = threshold;
@@ -297,7 +307,7 @@
for (by = 0; by < nvb; by++) {
for (bx = 0; bx < nhb; bx++) {
int skip;
-# if defined(DAALA_ODINTRIN)
+#if defined(DAALA_ODINTRIN)
int xstart;
int ystart;
int xend;
@@ -316,13 +326,13 @@
times. */
for (i = ystart; i < yend; i++) {
for (j = xstart; j < xend; j++) {
- skip = skip && bskip[((by << 1 >> xdec) + i)*skip_stride
- + (bx << 1 >> xdec) + j];
+ skip = skip && bskip[((by << 1 >> xdec) + i) * skip_stride +
+ (bx << 1 >> xdec) + j];
}
}
#else
(void)overlap;
- skip = bskip[by*skip_stride + bx];
+ skip = bskip[by * skip_stride + bx];
#endif
if (skip) thresh[by][bx] = 0;
}
@@ -330,23 +340,23 @@
for (by = 0; by < nvb; by++) {
for (bx = 0; bx < nhb; bx++) {
(vtbl->filter_dering_direction[bsize - OD_LOG_BSIZE0])(
- &y[(by*ystride << bsize) + (bx << bsize)], ystride,
- &in[(by*OD_FILT_BSTRIDE << bsize) + (bx << bsize)],
- thresh[by][bx], dir[by][bx]);
+ &y[(by * ystride << bsize) + (bx << bsize)], ystride,
+ &in[(by * OD_FILT_BSTRIDE << bsize) + (bx << bsize)], thresh[by][bx],
+ dir[by][bx]);
}
}
for (i = 0; i < nvb << bsize; i++) {
for (j = 0; j < nhb << bsize; j++) {
- in[i*OD_FILT_BSTRIDE + j] = y[i*ystride + j];
+ in[i * OD_FILT_BSTRIDE + j] = y[i * ystride + j];
}
}
for (by = 0; by < nvb; by++) {
for (bx = 0; bx < nhb; bx++) {
(vtbl->filter_dering_orthogonal[bsize - OD_LOG_BSIZE0])(
- &y[(by*ystride << bsize) + (bx << bsize)], ystride,
- &in[(by*OD_FILT_BSTRIDE << bsize) + (bx << bsize)],
- &x[(by*xstride << bsize) + (bx << bsize)], xstride,
- thresh[by][bx], dir[by][bx]);
+ &y[(by * ystride << bsize) + (bx << bsize)], ystride,
+ &in[(by * OD_FILT_BSTRIDE << bsize) + (bx << bsize)],
+ &x[(by * xstride << bsize) + (bx << bsize)], xstride, thresh[by][bx],
+ dir[by][bx]);
}
}
}
diff --git a/vp10/common/od_dering.h b/vp10/common/od_dering.h
index 24127dd..6bb3974 100644
--- a/vp10/common/od_dering.h
+++ b/vp10/common/od_dering.h
@@ -23,14 +23,14 @@
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/
#if !defined(_dering_H)
-# define _dering_H (1)
+#define _dering_H (1)
-# include "odintrin.h"
+#include "odintrin.h"
-# if defined(DAALA_ODINTRIN)
-# include "filter.h"
+#if defined(DAALA_ODINTRIN)
+#include "filter.h"
typedef int16_t od_dering_in;
-# endif
+#endif
#define OD_DERINGSIZES (2)
@@ -40,18 +40,21 @@
#define OD_DERING_LEVELS (6)
extern const double OD_DERING_GAIN_TABLE[OD_DERING_LEVELS];
-#define OD_DERING_NBLOCKS (OD_BSIZE_MAX/8)
+#define OD_DERING_NBLOCKS (OD_BSIZE_MAX / 8)
#define OD_FILT_BORDER (3)
-#define OD_FILT_BSTRIDE (OD_BSIZE_MAX + 2*OD_FILT_BORDER)
+#define OD_FILT_BSTRIDE (OD_BSIZE_MAX + 2 * OD_FILT_BORDER)
extern const int OD_DIRECTION_OFFSETS_TABLE[8][3];
typedef void (*od_filter_dering_direction_func)(int16_t *y, int ystride,
- const int16_t *in, int threshold, int dir);
+ const int16_t *in,
+ int threshold, int dir);
typedef void (*od_filter_dering_orthogonal_func)(int16_t *y, int ystride,
- const int16_t *in, const od_dering_in *x, int xstride, int threshold,
- int dir);
+ const int16_t *in,
+ const od_dering_in *x,
+ int xstride, int threshold,
+ int dir);
struct od_dering_opt_vtbl {
od_filter_dering_direction_func filter_dering_direction[OD_DERINGSIZES];
@@ -59,28 +62,31 @@
};
typedef struct od_dering_opt_vtbl od_dering_opt_vtbl;
-
void od_dering(const od_dering_opt_vtbl *vtbl, int16_t *y, int ystride,
- const od_dering_in *x, int xstride, int nvb, int nhb, int sbx, int sby,
- int nhsb, int nvsb, int xdec, int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS],
- int pli, unsigned char *bskip, int skip_stride, int threshold, int overlap,
- int coeff_shift);
+ const od_dering_in *x, int xstride, int nvb, int nhb, int sbx,
+ int sby, int nhsb, int nvsb, int xdec,
+ int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS], int pli,
+ unsigned char *bskip, int skip_stride, int threshold,
+ int overlap, int coeff_shift);
void od_filter_dering_direction_c(int16_t *y, int ystride, const int16_t *in,
- int ln, int threshold, int dir);
+ int ln, int threshold, int dir);
void od_filter_dering_orthogonal_c(int16_t *y, int ystride, const int16_t *in,
- const od_dering_in *x, int xstride, int ln, int threshold, int dir);
+ const od_dering_in *x, int xstride, int ln,
+ int threshold, int dir);
extern const od_dering_opt_vtbl OD_DERING_VTBL_C;
void od_filter_dering_direction_4x4_c(int16_t *y, int ystride,
- const int16_t *in, int threshold, int dir);
+ const int16_t *in, int threshold,
+ int dir);
void od_filter_dering_direction_8x8_c(int16_t *y, int ystride,
- const int16_t *in, int threshold, int dir);
+ const int16_t *in, int threshold,
+ int dir);
void od_filter_dering_orthogonal_4x4_c(int16_t *y, int ystride,
- const int16_t *in, const od_dering_in *x, int xstride, int threshold,
- int dir);
+ const int16_t *in, const od_dering_in *x,
+ int xstride, int threshold, int dir);
void od_filter_dering_orthogonal_8x8_c(int16_t *y, int ystride,
- const int16_t *in, const od_dering_in *x, int xstride, int threshold,
- int dir);
+ const int16_t *in, const od_dering_in *x,
+ int xstride, int threshold, int dir);
#endif
diff --git a/vp10/common/odintrin.c b/vp10/common/odintrin.c
index ca9a5fc..2024880 100644
--- a/vp10/common/odintrin.c
+++ b/vp10/common/odintrin.c
@@ -37,346 +37,516 @@
year=2005
}*/
uint32_t OD_DIVU_SMALL_CONSTS[OD_DIVU_DMAX][2] = {
- {0xFFFFFFFF, 0xFFFFFFFF}, {0xFFFFFFFF, 0xFFFFFFFF}, {0xAAAAAAAB, 0},
- {0xFFFFFFFF, 0xFFFFFFFF}, {0xCCCCCCCD, 0}, {0xAAAAAAAB, 0},
- {0x92492492, 0x92492492}, {0xFFFFFFFF, 0xFFFFFFFF}, {0xE38E38E4, 0},
- {0xCCCCCCCD, 0}, {0xBA2E8BA3, 0}, {0xAAAAAAAB, 0},
- {0x9D89D89E, 0}, {0x92492492, 0x92492492}, {0x88888889, 0},
- {0xFFFFFFFF, 0xFFFFFFFF}, {0xF0F0F0F1, 0}, {0xE38E38E4, 0},
- {0xD79435E5, 0xD79435E5}, {0xCCCCCCCD, 0}, {0xC30C30C3, 0xC30C30C3},
- {0xBA2E8BA3, 0}, {0xB21642C9, 0}, {0xAAAAAAAB, 0},
- {0xA3D70A3E, 0}, {0x9D89D89E, 0}, {0x97B425ED, 0x97B425ED},
- {0x92492492, 0x92492492}, {0x8D3DCB09, 0}, {0x88888889, 0},
- {0x84210842, 0x84210842}, {0xFFFFFFFF, 0xFFFFFFFF}, {0xF83E0F84, 0},
- {0xF0F0F0F1, 0}, {0xEA0EA0EA, 0xEA0EA0EA}, {0xE38E38E4, 0},
- {0xDD67C8A6, 0xDD67C8A6}, {0xD79435E5, 0xD79435E5}, {0xD20D20D2, 0xD20D20D2},
- {0xCCCCCCCD, 0}, {0xC7CE0C7D, 0}, {0xC30C30C3, 0xC30C30C3},
- {0xBE82FA0C, 0}, {0xBA2E8BA3, 0}, {0xB60B60B6, 0xB60B60B6},
- {0xB21642C9, 0}, {0xAE4C415D, 0}, {0xAAAAAAAB, 0},
- {0xA72F053A, 0}, {0xA3D70A3E, 0}, {0xA0A0A0A1, 0},
- {0x9D89D89E, 0}, {0x9A90E7D9, 0x9A90E7D9}, {0x97B425ED, 0x97B425ED},
- {0x94F2094F, 0x94F2094F}, {0x92492492, 0x92492492}, {0x8FB823EE, 0x8FB823EE},
- {0x8D3DCB09, 0}, {0x8AD8F2FC, 0}, {0x88888889, 0},
- {0x864B8A7E, 0}, {0x84210842, 0x84210842}, {0x82082082, 0x82082082},
- {0xFFFFFFFF, 0xFFFFFFFF}, {0xFC0FC0FD, 0}, {0xF83E0F84, 0},
- {0xF4898D60, 0}, {0xF0F0F0F1, 0}, {0xED7303B6, 0},
- {0xEA0EA0EA, 0xEA0EA0EA}, {0xE6C2B449, 0}, {0xE38E38E4, 0},
- {0xE070381C, 0xE070381C}, {0xDD67C8A6, 0xDD67C8A6}, {0xDA740DA8, 0},
- {0xD79435E5, 0xD79435E5}, {0xD4C77B04, 0}, {0xD20D20D2, 0xD20D20D2},
- {0xCF6474A9, 0}, {0xCCCCCCCD, 0}, {0xCA4587E7, 0},
- {0xC7CE0C7D, 0}, {0xC565C87C, 0}, {0xC30C30C3, 0xC30C30C3},
- {0xC0C0C0C1, 0}, {0xBE82FA0C, 0}, {0xBC52640C, 0},
- {0xBA2E8BA3, 0}, {0xB81702E1, 0}, {0xB60B60B6, 0xB60B60B6},
- {0xB40B40B4, 0xB40B40B4}, {0xB21642C9, 0}, {0xB02C0B03, 0},
- {0xAE4C415D, 0}, {0xAC769184, 0xAC769184}, {0xAAAAAAAB, 0},
- {0xA8E83F57, 0xA8E83F57}, {0xA72F053A, 0}, {0xA57EB503, 0},
- {0xA3D70A3E, 0}, {0xA237C32B, 0xA237C32B}, {0xA0A0A0A1, 0},
- {0x9F1165E7, 0x9F1165E7}, {0x9D89D89E, 0}, {0x9C09C09C, 0x9C09C09C},
- {0x9A90E7D9, 0x9A90E7D9}, {0x991F1A51, 0x991F1A51}, {0x97B425ED, 0x97B425ED},
- {0x964FDA6C, 0x964FDA6C}, {0x94F2094F, 0x94F2094F}, {0x939A85C4, 0x939A85C4},
- {0x92492492, 0x92492492}, {0x90FDBC09, 0x90FDBC09}, {0x8FB823EE, 0x8FB823EE},
- {0x8E78356D, 0x8E78356D}, {0x8D3DCB09, 0}, {0x8C08C08C, 0x8C08C08C},
- {0x8AD8F2FC, 0}, {0x89AE408A, 0}, {0x88888889, 0},
- {0x8767AB5F, 0x8767AB5F}, {0x864B8A7E, 0}, {0x85340853, 0x85340853},
- {0x84210842, 0x84210842}, {0x83126E98, 0}, {0x82082082, 0x82082082},
- {0x81020408, 0x81020408}, {0xFFFFFFFF, 0xFFFFFFFF}, {0xFE03F810, 0},
- {0xFC0FC0FD, 0}, {0xFA232CF3, 0}, {0xF83E0F84, 0},
- {0xF6603D99, 0}, {0xF4898D60, 0}, {0xF2B9D649, 0},
- {0xF0F0F0F1, 0}, {0xEF2EB720, 0}, {0xED7303B6, 0},
- {0xEBBDB2A6, 0}, {0xEA0EA0EA, 0xEA0EA0EA}, {0xE865AC7C, 0},
- {0xE6C2B449, 0}, {0xE525982B, 0}, {0xE38E38E4, 0},
- {0xE1FC780F, 0}, {0xE070381C, 0xE070381C}, {0xDEE95C4D, 0},
- {0xDD67C8A6, 0xDD67C8A6}, {0xDBEB61EF, 0}, {0xDA740DA8, 0},
- {0xD901B204, 0}, {0xD79435E5, 0xD79435E5}, {0xD62B80D7, 0},
- {0xD4C77B04, 0}, {0xD3680D37, 0}, {0xD20D20D2, 0xD20D20D2},
- {0xD0B69FCC, 0}, {0xCF6474A9, 0}, {0xCE168A77, 0xCE168A77},
- {0xCCCCCCCD, 0}, {0xCB8727C1, 0}, {0xCA4587E7, 0},
- {0xC907DA4F, 0}, {0xC7CE0C7D, 0}, {0xC6980C6A, 0},
- {0xC565C87C, 0}, {0xC4372F86, 0}, {0xC30C30C3, 0xC30C30C3},
- {0xC1E4BBD6, 0}, {0xC0C0C0C1, 0}, {0xBFA02FE8, 0xBFA02FE8},
- {0xBE82FA0C, 0}, {0xBD691047, 0xBD691047}, {0xBC52640C, 0},
- {0xBB3EE722, 0}, {0xBA2E8BA3, 0}, {0xB92143FA, 0xB92143FA},
- {0xB81702E1, 0}, {0xB70FBB5A, 0xB70FBB5A}, {0xB60B60B6, 0xB60B60B6},
- {0xB509E68B, 0}, {0xB40B40B4, 0xB40B40B4}, {0xB30F6353, 0},
- {0xB21642C9, 0}, {0xB11FD3B8, 0xB11FD3B8}, {0xB02C0B03, 0},
- {0xAF3ADDC7, 0}, {0xAE4C415D, 0}, {0xAD602B58, 0xAD602B58},
- {0xAC769184, 0xAC769184}, {0xAB8F69E3, 0}, {0xAAAAAAAB, 0},
- {0xA9C84A48, 0}, {0xA8E83F57, 0xA8E83F57}, {0xA80A80A8, 0xA80A80A8},
- {0xA72F053A, 0}, {0xA655C439, 0xA655C439}, {0xA57EB503, 0},
- {0xA4A9CF1E, 0}, {0xA3D70A3E, 0}, {0xA3065E40, 0},
- {0xA237C32B, 0xA237C32B}, {0xA16B312F, 0}, {0xA0A0A0A1, 0},
- {0x9FD809FE, 0}, {0x9F1165E7, 0x9F1165E7}, {0x9E4CAD24, 0},
- {0x9D89D89E, 0}, {0x9CC8E161, 0}, {0x9C09C09C, 0x9C09C09C},
- {0x9B4C6F9F, 0}, {0x9A90E7D9, 0x9A90E7D9}, {0x99D722DB, 0},
- {0x991F1A51, 0x991F1A51}, {0x9868C80A, 0}, {0x97B425ED, 0x97B425ED},
- {0x97012E02, 0x97012E02}, {0x964FDA6C, 0x964FDA6C}, {0x95A02568, 0x95A02568},
- {0x94F2094F, 0x94F2094F}, {0x94458094, 0x94458094}, {0x939A85C4, 0x939A85C4},
- {0x92F11384, 0x92F11384}, {0x92492492, 0x92492492}, {0x91A2B3C5, 0},
- {0x90FDBC09, 0x90FDBC09}, {0x905A3863, 0x905A3863}, {0x8FB823EE, 0x8FB823EE},
- {0x8F1779DA, 0}, {0x8E78356D, 0x8E78356D}, {0x8DDA5202, 0x8DDA5202},
- {0x8D3DCB09, 0}, {0x8CA29C04, 0x8CA29C04}, {0x8C08C08C, 0x8C08C08C},
- {0x8B70344A, 0x8B70344A}, {0x8AD8F2FC, 0}, {0x8A42F870, 0x8A42F870},
- {0x89AE408A, 0}, {0x891AC73B, 0}, {0x88888889, 0},
- {0x87F78088, 0}, {0x8767AB5F, 0x8767AB5F}, {0x86D90545, 0},
- {0x864B8A7E, 0}, {0x85BF3761, 0x85BF3761}, {0x85340853, 0x85340853},
- {0x84A9F9C8, 0x84A9F9C8}, {0x84210842, 0x84210842}, {0x83993052, 0x83993052},
- {0x83126E98, 0}, {0x828CBFBF, 0}, {0x82082082, 0x82082082},
- {0x81848DA9, 0}, {0x81020408, 0x81020408}, {0x80808081, 0},
- {0xFFFFFFFF, 0xFFFFFFFF}, {0xFF00FF01, 0}, {0xFE03F810, 0},
- {0xFD08E551, 0}, {0xFC0FC0FD, 0}, {0xFB188566, 0},
- {0xFA232CF3, 0}, {0xF92FB222, 0}, {0xF83E0F84, 0},
- {0xF74E3FC3, 0}, {0xF6603D99, 0}, {0xF57403D6, 0},
- {0xF4898D60, 0}, {0xF3A0D52D, 0}, {0xF2B9D649, 0},
- {0xF1D48BCF, 0}, {0xF0F0F0F1, 0}, {0xF00F00F0, 0xF00F00F0},
- {0xEF2EB720, 0}, {0xEE500EE5, 0xEE500EE5}, {0xED7303B6, 0},
- {0xEC979119, 0}, {0xEBBDB2A6, 0}, {0xEAE56404, 0},
- {0xEA0EA0EA, 0xEA0EA0EA}, {0xE9396520, 0}, {0xE865AC7C, 0},
- {0xE79372E3, 0}, {0xE6C2B449, 0}, {0xE5F36CB0, 0xE5F36CB0},
- {0xE525982B, 0}, {0xE45932D8, 0}, {0xE38E38E4, 0},
- {0xE2C4A689, 0}, {0xE1FC780F, 0}, {0xE135A9CA, 0},
- {0xE070381C, 0xE070381C}, {0xDFAC1F75, 0}, {0xDEE95C4D, 0},
- {0xDE27EB2D, 0}, {0xDD67C8A6, 0xDD67C8A6}, {0xDCA8F159, 0},
- {0xDBEB61EF, 0}, {0xDB2F171E, 0}, {0xDA740DA8, 0},
- {0xD9BA4257, 0}, {0xD901B204, 0}, {0xD84A598F, 0},
- {0xD79435E5, 0xD79435E5}, {0xD6DF43FD, 0}, {0xD62B80D7, 0},
- {0xD578E97D, 0}, {0xD4C77B04, 0}, {0xD417328A, 0},
- {0xD3680D37, 0}, {0xD2BA083C, 0}, {0xD20D20D2, 0xD20D20D2},
- {0xD161543E, 0xD161543E}, {0xD0B69FCC, 0}, {0xD00D00D0, 0xD00D00D0},
- {0xCF6474A9, 0}, {0xCEBCF8BC, 0}, {0xCE168A77, 0xCE168A77},
- {0xCD712753, 0}, {0xCCCCCCCD, 0}, {0xCC29786D, 0},
- {0xCB8727C1, 0}, {0xCAE5D85F, 0xCAE5D85F}, {0xCA4587E7, 0},
- {0xC9A633FD, 0}, {0xC907DA4F, 0}, {0xC86A7890, 0xC86A7890},
- {0xC7CE0C7D, 0}, {0xC73293D8, 0}, {0xC6980C6A, 0},
- {0xC5FE7403, 0xC5FE7403}, {0xC565C87C, 0}, {0xC4CE07B0, 0xC4CE07B0},
- {0xC4372F86, 0}, {0xC3A13DE6, 0xC3A13DE6}, {0xC30C30C3, 0xC30C30C3},
- {0xC2780614, 0}, {0xC1E4BBD6, 0}, {0xC152500C, 0xC152500C},
- {0xC0C0C0C1, 0}, {0xC0300C03, 0xC0300C03}, {0xBFA02FE8, 0xBFA02FE8},
- {0xBF112A8B, 0}, {0xBE82FA0C, 0}, {0xBDF59C92, 0},
- {0xBD691047, 0xBD691047}, {0xBCDD535E, 0}, {0xBC52640C, 0},
- {0xBBC8408D, 0}, {0xBB3EE722, 0}, {0xBAB65610, 0xBAB65610},
- {0xBA2E8BA3, 0}, {0xB9A7862A, 0xB9A7862A}, {0xB92143FA, 0xB92143FA},
- {0xB89BC36D, 0}, {0xB81702E1, 0}, {0xB79300B8, 0},
- {0xB70FBB5A, 0xB70FBB5A}, {0xB68D3134, 0xB68D3134}, {0xB60B60B6, 0xB60B60B6},
- {0xB58A4855, 0xB58A4855}, {0xB509E68B, 0}, {0xB48A39D4, 0xB48A39D4},
- {0xB40B40B4, 0xB40B40B4}, {0xB38CF9B0, 0xB38CF9B0}, {0xB30F6353, 0},
- {0xB2927C2A, 0}, {0xB21642C9, 0}, {0xB19AB5C5, 0},
- {0xB11FD3B8, 0xB11FD3B8}, {0xB0A59B42, 0}, {0xB02C0B03, 0},
- {0xAFB321A1, 0xAFB321A1}, {0xAF3ADDC7, 0}, {0xAEC33E20, 0},
- {0xAE4C415D, 0}, {0xADD5E632, 0xADD5E632}, {0xAD602B58, 0xAD602B58},
- {0xACEB0F89, 0xACEB0F89}, {0xAC769184, 0xAC769184}, {0xAC02B00B, 0},
- {0xAB8F69E3, 0}, {0xAB1CBDD4, 0}, {0xAAAAAAAB, 0},
- {0xAA392F36, 0}, {0xA9C84A48, 0}, {0xA957FAB5, 0xA957FAB5},
- {0xA8E83F57, 0xA8E83F57}, {0xA8791709, 0}, {0xA80A80A8, 0xA80A80A8},
- {0xA79C7B17, 0}, {0xA72F053A, 0}, {0xA6C21DF7, 0},
- {0xA655C439, 0xA655C439}, {0xA5E9F6ED, 0xA5E9F6ED}, {0xA57EB503, 0},
- {0xA513FD6C, 0}, {0xA4A9CF1E, 0}, {0xA4402910, 0xA4402910},
- {0xA3D70A3E, 0}, {0xA36E71A3, 0}, {0xA3065E40, 0},
- {0xA29ECF16, 0xA29ECF16}, {0xA237C32B, 0xA237C32B}, {0xA1D13986, 0},
- {0xA16B312F, 0}, {0xA105A933, 0}, {0xA0A0A0A1, 0},
- {0xA03C1689, 0}, {0x9FD809FE, 0}, {0x9F747A15, 0x9F747A15},
- {0x9F1165E7, 0x9F1165E7}, {0x9EAECC8D, 0x9EAECC8D}, {0x9E4CAD24, 0},
- {0x9DEB06C9, 0x9DEB06C9}, {0x9D89D89E, 0}, {0x9D2921C4, 0},
- {0x9CC8E161, 0}, {0x9C69169B, 0x9C69169B}, {0x9C09C09C, 0x9C09C09C},
- {0x9BAADE8E, 0x9BAADE8E}, {0x9B4C6F9F, 0}, {0x9AEE72FD, 0},
- {0x9A90E7D9, 0x9A90E7D9}, {0x9A33CD67, 0x9A33CD67}, {0x99D722DB, 0},
- {0x997AE76B, 0x997AE76B}, {0x991F1A51, 0x991F1A51}, {0x98C3BAC7, 0x98C3BAC7},
- {0x9868C80A, 0}, {0x980E4156, 0x980E4156}, {0x97B425ED, 0x97B425ED},
- {0x975A7510, 0}, {0x97012E02, 0x97012E02}, {0x96A8500A, 0},
- {0x964FDA6C, 0x964FDA6C}, {0x95F7CC73, 0}, {0x95A02568, 0x95A02568},
- {0x9548E498, 0}, {0x94F2094F, 0x94F2094F}, {0x949B92DE, 0},
- {0x94458094, 0x94458094}, {0x93EFD1C5, 0x93EFD1C5}, {0x939A85C4, 0x939A85C4},
- {0x93459BE7, 0}, {0x92F11384, 0x92F11384}, {0x929CEBF5, 0},
- {0x92492492, 0x92492492}, {0x91F5BCB9, 0}, {0x91A2B3C5, 0},
- {0x91500915, 0x91500915}, {0x90FDBC09, 0x90FDBC09}, {0x90ABCC02, 0x90ABCC02},
- {0x905A3863, 0x905A3863}, {0x90090090, 0x90090090}, {0x8FB823EE, 0x8FB823EE},
- {0x8F67A1E4, 0}, {0x8F1779DA, 0}, {0x8EC7AB3A, 0},
- {0x8E78356D, 0x8E78356D}, {0x8E2917E1, 0}, {0x8DDA5202, 0x8DDA5202},
- {0x8D8BE340, 0}, {0x8D3DCB09, 0}, {0x8CF008CF, 0x8CF008CF},
- {0x8CA29C04, 0x8CA29C04}, {0x8C55841D, 0}, {0x8C08C08C, 0x8C08C08C},
- {0x8BBC50C9, 0}, {0x8B70344A, 0x8B70344A}, {0x8B246A88, 0},
- {0x8AD8F2FC, 0}, {0x8A8DCD20, 0}, {0x8A42F870, 0x8A42F870},
- {0x89F8746A, 0}, {0x89AE408A, 0}, {0x89645C4F, 0x89645C4F},
- {0x891AC73B, 0}, {0x88D180CD, 0x88D180CD}, {0x88888889, 0},
- {0x883FDDF0, 0x883FDDF0}, {0x87F78088, 0}, {0x87AF6FD6, 0},
- {0x8767AB5F, 0x8767AB5F}, {0x872032AC, 0x872032AC}, {0x86D90545, 0},
- {0x869222B2, 0}, {0x864B8A7E, 0}, {0x86053C34, 0x86053C34},
- {0x85BF3761, 0x85BF3761}, {0x85797B91, 0x85797B91}, {0x85340853, 0x85340853},
- {0x84EEDD36, 0}, {0x84A9F9C8, 0x84A9F9C8}, {0x84655D9C, 0},
- {0x84210842, 0x84210842}, {0x83DCF94E, 0}, {0x83993052, 0x83993052},
- {0x8355ACE4, 0}, {0x83126E98, 0}, {0x82CF7504, 0},
- {0x828CBFBF, 0}, {0x824A4E61, 0}, {0x82082082, 0x82082082},
- {0x81C635BC, 0x81C635BC}, {0x81848DA9, 0}, {0x814327E4, 0},
- {0x81020408, 0x81020408}, {0x80C121B3, 0}, {0x80808081, 0},
- {0x80402010, 0x80402010}, {0xFFFFFFFF, 0xFFFFFFFF}, {0xFF803FE1, 0},
- {0xFF00FF01, 0}, {0xFE823CA6, 0}, {0xFE03F810, 0},
- {0xFD863087, 0}, {0xFD08E551, 0}, {0xFC8C15B5, 0},
- {0xFC0FC0FD, 0}, {0xFB93E673, 0}, {0xFB188566, 0},
- {0xFA9D9D20, 0}, {0xFA232CF3, 0}, {0xF9A9342D, 0},
- {0xF92FB222, 0}, {0xF8B6A622, 0xF8B6A622}, {0xF83E0F84, 0},
- {0xF7C5ED9D, 0}, {0xF74E3FC3, 0}, {0xF6D7054E, 0},
- {0xF6603D99, 0}, {0xF5E9E7FD, 0}, {0xF57403D6, 0},
- {0xF4FE9083, 0}, {0xF4898D60, 0}, {0xF414F9CE, 0},
- {0xF3A0D52D, 0}, {0xF32D1EE0, 0}, {0xF2B9D649, 0},
- {0xF246FACC, 0}, {0xF1D48BCF, 0}, {0xF16288B9, 0},
- {0xF0F0F0F1, 0}, {0xF07FC3E0, 0xF07FC3E0}, {0xF00F00F0, 0xF00F00F0},
- {0xEF9EA78C, 0}, {0xEF2EB720, 0}, {0xEEBF2F19, 0},
- {0xEE500EE5, 0xEE500EE5}, {0xEDE155F4, 0}, {0xED7303B6, 0},
- {0xED05179C, 0xED05179C}, {0xEC979119, 0}, {0xEC2A6FA0, 0xEC2A6FA0},
- {0xEBBDB2A6, 0}, {0xEB5159A0, 0}, {0xEAE56404, 0},
- {0xEA79D14A, 0}, {0xEA0EA0EA, 0xEA0EA0EA}, {0xE9A3D25E, 0xE9A3D25E},
- {0xE9396520, 0}, {0xE8CF58AB, 0}, {0xE865AC7C, 0},
- {0xE7FC600F, 0}, {0xE79372E3, 0}, {0xE72AE476, 0},
- {0xE6C2B449, 0}, {0xE65AE1DC, 0}, {0xE5F36CB0, 0xE5F36CB0},
- {0xE58C544A, 0}, {0xE525982B, 0}, {0xE4BF37D9, 0},
- {0xE45932D8, 0}, {0xE3F388AF, 0}, {0xE38E38E4, 0},
- {0xE32942FF, 0}, {0xE2C4A689, 0}, {0xE260630B, 0},
- {0xE1FC780F, 0}, {0xE198E520, 0}, {0xE135A9CA, 0},
- {0xE0D2C59A, 0}, {0xE070381C, 0xE070381C}, {0xE00E00E0, 0xE00E00E0},
- {0xDFAC1F75, 0}, {0xDF4A9369, 0}, {0xDEE95C4D, 0},
- {0xDE8879B3, 0}, {0xDE27EB2D, 0}, {0xDDC7B04D, 0},
- {0xDD67C8A6, 0xDD67C8A6}, {0xDD0833CE, 0}, {0xDCA8F159, 0},
- {0xDC4A00DD, 0}, {0xDBEB61EF, 0}, {0xDB8D1428, 0},
- {0xDB2F171E, 0}, {0xDAD16A6B, 0}, {0xDA740DA8, 0},
- {0xDA17006D, 0xDA17006D}, {0xD9BA4257, 0}, {0xD95DD300, 0},
- {0xD901B204, 0}, {0xD8A5DEFF, 0}, {0xD84A598F, 0},
- {0xD7EF2152, 0}, {0xD79435E5, 0xD79435E5}, {0xD73996E9, 0},
- {0xD6DF43FD, 0}, {0xD6853CC1, 0}, {0xD62B80D7, 0},
- {0xD5D20FDF, 0}, {0xD578E97D, 0}, {0xD5200D52, 0xD5200D52},
- {0xD4C77B04, 0}, {0xD46F3235, 0}, {0xD417328A, 0},
- {0xD3BF7BA9, 0}, {0xD3680D37, 0}, {0xD310E6DB, 0},
- {0xD2BA083C, 0}, {0xD2637101, 0}, {0xD20D20D2, 0xD20D20D2},
- {0xD1B71759, 0}, {0xD161543E, 0xD161543E}, {0xD10BD72C, 0},
- {0xD0B69FCC, 0}, {0xD061ADCA, 0}, {0xD00D00D0, 0xD00D00D0},
- {0xCFB8988C, 0}, {0xCF6474A9, 0}, {0xCF1094D4, 0},
- {0xCEBCF8BC, 0}, {0xCE69A00D, 0}, {0xCE168A77, 0xCE168A77},
- {0xCDC3B7A9, 0xCDC3B7A9}, {0xCD712753, 0}, {0xCD1ED924, 0},
- {0xCCCCCCCD, 0}, {0xCC7B0200, 0}, {0xCC29786D, 0},
- {0xCBD82FC7, 0}, {0xCB8727C1, 0}, {0xCB36600D, 0},
- {0xCAE5D85F, 0xCAE5D85F}, {0xCA95906C, 0}, {0xCA4587E7, 0},
- {0xC9F5BE86, 0}, {0xC9A633FD, 0}, {0xC956E803, 0xC956E803},
- {0xC907DA4F, 0}, {0xC8B90A96, 0}, {0xC86A7890, 0xC86A7890},
- {0xC81C23F5, 0xC81C23F5}, {0xC7CE0C7D, 0}, {0xC78031E0, 0xC78031E0},
- {0xC73293D8, 0}, {0xC6E5321D, 0}, {0xC6980C6A, 0},
- {0xC64B2278, 0xC64B2278}, {0xC5FE7403, 0xC5FE7403}, {0xC5B200C6, 0},
- {0xC565C87C, 0}, {0xC519CAE0, 0xC519CAE0}, {0xC4CE07B0, 0xC4CE07B0},
- {0xC4827EA8, 0xC4827EA8}, {0xC4372F86, 0}, {0xC3EC1A06, 0},
- {0xC3A13DE6, 0xC3A13DE6}, {0xC3569AE6, 0}, {0xC30C30C3, 0xC30C30C3},
- {0xC2C1FF3E, 0}, {0xC2780614, 0}, {0xC22E4507, 0},
- {0xC1E4BBD6, 0}, {0xC19B6A42, 0}, {0xC152500C, 0xC152500C},
- {0xC1096CF6, 0}, {0xC0C0C0C1, 0}, {0xC0784B2F, 0},
- {0xC0300C03, 0xC0300C03}, {0xBFE80300, 0}, {0xBFA02FE8, 0xBFA02FE8},
- {0xBF589280, 0}, {0xBF112A8B, 0}, {0xBEC9F7CE, 0},
- {0xBE82FA0C, 0}, {0xBE3C310C, 0}, {0xBDF59C92, 0},
- {0xBDAF3C64, 0}, {0xBD691047, 0xBD691047}, {0xBD231803, 0},
- {0xBCDD535E, 0}, {0xBC97C21E, 0xBC97C21E}, {0xBC52640C, 0},
- {0xBC0D38EE, 0xBC0D38EE}, {0xBBC8408D, 0}, {0xBB837AB1, 0},
- {0xBB3EE722, 0}, {0xBAFA85A9, 0xBAFA85A9}, {0xBAB65610, 0xBAB65610},
- {0xBA725820, 0xBA725820}, {0xBA2E8BA3, 0}, {0xB9EAF063, 0},
- {0xB9A7862A, 0xB9A7862A}, {0xB9644CC4, 0}, {0xB92143FA, 0xB92143FA},
- {0xB8DE6B9A, 0}, {0xB89BC36D, 0}, {0xB8594B41, 0},
- {0xB81702E1, 0}, {0xB7D4EA19, 0xB7D4EA19}, {0xB79300B8, 0},
- {0xB7514689, 0}, {0xB70FBB5A, 0xB70FBB5A}, {0xB6CE5EF9, 0xB6CE5EF9},
- {0xB68D3134, 0xB68D3134}, {0xB64C31D9, 0}, {0xB60B60B6, 0xB60B60B6},
- {0xB5CABD9B, 0}, {0xB58A4855, 0xB58A4855}, {0xB54A00B5, 0xB54A00B5},
- {0xB509E68B, 0}, {0xB4C9F9A5, 0}, {0xB48A39D4, 0xB48A39D4},
- {0xB44AA6E9, 0xB44AA6E9}, {0xB40B40B4, 0xB40B40B4}, {0xB3CC0706, 0},
- {0xB38CF9B0, 0xB38CF9B0}, {0xB34E1884, 0}, {0xB30F6353, 0},
- {0xB2D0D9EF, 0}, {0xB2927C2A, 0}, {0xB25449D7, 0},
- {0xB21642C9, 0}, {0xB1D866D1, 0xB1D866D1}, {0xB19AB5C5, 0},
- {0xB15D2F76, 0}, {0xB11FD3B8, 0xB11FD3B8}, {0xB0E2A260, 0xB0E2A260},
- {0xB0A59B42, 0}, {0xB068BE31, 0}, {0xB02C0B03, 0},
- {0xAFEF818C, 0}, {0xAFB321A1, 0xAFB321A1}, {0xAF76EB19, 0},
- {0xAF3ADDC7, 0}, {0xAEFEF982, 0}, {0xAEC33E20, 0},
- {0xAE87AB76, 0xAE87AB76}, {0xAE4C415D, 0}, {0xAE10FFA9, 0},
- {0xADD5E632, 0xADD5E632}, {0xAD9AF4D0, 0}, {0xAD602B58, 0xAD602B58},
- {0xAD2589A4, 0}, {0xACEB0F89, 0xACEB0F89}, {0xACB0BCE1, 0xACB0BCE1},
- {0xAC769184, 0xAC769184}, {0xAC3C8D4A, 0}, {0xAC02B00B, 0},
- {0xABC8F9A0, 0xABC8F9A0}, {0xAB8F69E3, 0}, {0xAB5600AC, 0},
- {0xAB1CBDD4, 0}, {0xAAE3A136, 0}, {0xAAAAAAAB, 0},
- {0xAA71DA0D, 0}, {0xAA392F36, 0}, {0xAA00AA01, 0},
- {0xA9C84A48, 0}, {0xA9900FE6, 0}, {0xA957FAB5, 0xA957FAB5},
- {0xA9200A92, 0xA9200A92}, {0xA8E83F57, 0xA8E83F57}, {0xA8B098E0, 0xA8B098E0},
- {0xA8791709, 0}, {0xA841B9AD, 0}, {0xA80A80A8, 0xA80A80A8},
- {0xA7D36BD8, 0}, {0xA79C7B17, 0}, {0xA765AE44, 0},
- {0xA72F053A, 0}, {0xA6F87FD6, 0xA6F87FD6}, {0xA6C21DF7, 0},
- {0xA68BDF79, 0}, {0xA655C439, 0xA655C439}, {0xA61FCC16, 0xA61FCC16},
- {0xA5E9F6ED, 0xA5E9F6ED}, {0xA5B4449D, 0}, {0xA57EB503, 0},
- {0xA54947FE, 0}, {0xA513FD6C, 0}, {0xA4DED52C, 0xA4DED52C},
- {0xA4A9CF1E, 0}, {0xA474EB1F, 0xA474EB1F}, {0xA4402910, 0xA4402910},
- {0xA40B88D0, 0}, {0xA3D70A3E, 0}, {0xA3A2AD39, 0xA3A2AD39},
- {0xA36E71A3, 0}, {0xA33A575A, 0xA33A575A}, {0xA3065E40, 0},
- {0xA2D28634, 0}, {0xA29ECF16, 0xA29ECF16}, {0xA26B38C9, 0},
- {0xA237C32B, 0xA237C32B}, {0xA2046E1F, 0xA2046E1F}, {0xA1D13986, 0},
- {0xA19E2540, 0}, {0xA16B312F, 0}, {0xA1385D35, 0},
- {0xA105A933, 0}, {0xA0D3150C, 0}, {0xA0A0A0A1, 0},
- {0xA06E4BD4, 0xA06E4BD4}, {0xA03C1689, 0}, {0xA00A00A0, 0xA00A00A0},
- {0x9FD809FE, 0}, {0x9FA63284, 0}, {0x9F747A15, 0x9F747A15},
- {0x9F42E095, 0x9F42E095}, {0x9F1165E7, 0x9F1165E7}, {0x9EE009EE, 0x9EE009EE},
- {0x9EAECC8D, 0x9EAECC8D}, {0x9E7DADA9, 0}, {0x9E4CAD24, 0},
- {0x9E1BCAE3, 0}, {0x9DEB06C9, 0x9DEB06C9}, {0x9DBA60BB, 0x9DBA60BB},
- {0x9D89D89E, 0}, {0x9D596E54, 0x9D596E54}, {0x9D2921C4, 0},
- {0x9CF8F2D1, 0x9CF8F2D1}, {0x9CC8E161, 0}, {0x9C98ED58, 0},
- {0x9C69169B, 0x9C69169B}, {0x9C395D10, 0x9C395D10}, {0x9C09C09C, 0x9C09C09C},
- {0x9BDA4124, 0x9BDA4124}, {0x9BAADE8E, 0x9BAADE8E}, {0x9B7B98C0, 0},
- {0x9B4C6F9F, 0}, {0x9B1D6311, 0x9B1D6311}, {0x9AEE72FD, 0},
- {0x9ABF9F48, 0x9ABF9F48}, {0x9A90E7D9, 0x9A90E7D9}, {0x9A624C97, 0},
- {0x9A33CD67, 0x9A33CD67}, {0x9A056A31, 0}, {0x99D722DB, 0},
- {0x99A8F74C, 0}, {0x997AE76B, 0x997AE76B}, {0x994CF320, 0x994CF320},
- {0x991F1A51, 0x991F1A51}, {0x98F15CE7, 0}, {0x98C3BAC7, 0x98C3BAC7},
- {0x989633DB, 0x989633DB}, {0x9868C80A, 0}, {0x983B773B, 0},
- {0x980E4156, 0x980E4156}, {0x97E12644, 0x97E12644}, {0x97B425ED, 0x97B425ED},
- {0x97874039, 0}, {0x975A7510, 0}, {0x972DC45B, 0},
- {0x97012E02, 0x97012E02}, {0x96D4B1EF, 0}, {0x96A8500A, 0},
- {0x967C083B, 0}, {0x964FDA6C, 0x964FDA6C}, {0x9623C686, 0x9623C686},
- {0x95F7CC73, 0}, {0x95CBEC1B, 0}, {0x95A02568, 0x95A02568},
- {0x95747844, 0}, {0x9548E498, 0}, {0x951D6A4E, 0},
- {0x94F2094F, 0x94F2094F}, {0x94C6C187, 0}, {0x949B92DE, 0},
- {0x94707D3F, 0}, {0x94458094, 0x94458094}, {0x941A9CC8, 0x941A9CC8},
- {0x93EFD1C5, 0x93EFD1C5}, {0x93C51F76, 0}, {0x939A85C4, 0x939A85C4},
- {0x9370049C, 0}, {0x93459BE7, 0}, {0x931B4B91, 0},
- {0x92F11384, 0x92F11384}, {0x92C6F3AC, 0x92C6F3AC}, {0x929CEBF5, 0},
- {0x9272FC48, 0x9272FC48}, {0x92492492, 0x92492492}, {0x921F64BF, 0},
- {0x91F5BCB9, 0}, {0x91CC2C6C, 0x91CC2C6C}, {0x91A2B3C5, 0},
- {0x917952AF, 0}, {0x91500915, 0x91500915}, {0x9126D6E5, 0},
- {0x90FDBC09, 0x90FDBC09}, {0x90D4B86F, 0}, {0x90ABCC02, 0x90ABCC02},
- {0x9082F6B0, 0}, {0x905A3863, 0x905A3863}, {0x9031910A, 0},
- {0x90090090, 0x90090090}, {0x8FE086E3, 0}, {0x8FB823EE, 0x8FB823EE},
- {0x8F8FD7A0, 0}, {0x8F67A1E4, 0}, {0x8F3F82A8, 0x8F3F82A8},
- {0x8F1779DA, 0}, {0x8EEF8766, 0}, {0x8EC7AB3A, 0},
- {0x8E9FE542, 0x8E9FE542}, {0x8E78356D, 0x8E78356D}, {0x8E509BA8, 0x8E509BA8},
- {0x8E2917E1, 0}, {0x8E01AA05, 0}, {0x8DDA5202, 0x8DDA5202},
- {0x8DB30FC6, 0x8DB30FC6}, {0x8D8BE340, 0}, {0x8D64CC5C, 0},
- {0x8D3DCB09, 0}, {0x8D16DF35, 0x8D16DF35}, {0x8CF008CF, 0x8CF008CF},
- {0x8CC947C5, 0}, {0x8CA29C04, 0x8CA29C04}, {0x8C7C057D, 0},
- {0x8C55841D, 0}, {0x8C2F17D2, 0x8C2F17D2}, {0x8C08C08C, 0x8C08C08C},
- {0x8BE27E39, 0x8BE27E39}, {0x8BBC50C9, 0}, {0x8B963829, 0x8B963829},
- {0x8B70344A, 0x8B70344A}, {0x8B4A451A, 0}, {0x8B246A88, 0},
- {0x8AFEA483, 0x8AFEA483}, {0x8AD8F2FC, 0}, {0x8AB355E0, 0x8AB355E0},
- {0x8A8DCD20, 0}, {0x8A6858AB, 0}, {0x8A42F870, 0x8A42F870},
- {0x8A1DAC60, 0x8A1DAC60}, {0x89F8746A, 0}, {0x89D3507D, 0},
- {0x89AE408A, 0}, {0x89894480, 0}, {0x89645C4F, 0x89645C4F},
- {0x893F87E8, 0x893F87E8}, {0x891AC73B, 0}, {0x88F61A37, 0x88F61A37},
- {0x88D180CD, 0x88D180CD}, {0x88ACFAEE, 0}, {0x88888889, 0},
- {0x8864298F, 0}, {0x883FDDF0, 0x883FDDF0}, {0x881BA59E, 0},
- {0x87F78088, 0}, {0x87D36EA0, 0}, {0x87AF6FD6, 0},
- {0x878B841B, 0}, {0x8767AB5F, 0x8767AB5F}, {0x8743E595, 0},
- {0x872032AC, 0x872032AC}, {0x86FC9296, 0x86FC9296}, {0x86D90545, 0},
- {0x86B58AA8, 0}, {0x869222B2, 0}, {0x866ECD53, 0x866ECD53},
- {0x864B8A7E, 0}, {0x86285A23, 0x86285A23}, {0x86053C34, 0x86053C34},
- {0x85E230A3, 0x85E230A3}, {0x85BF3761, 0x85BF3761}, {0x859C5060, 0x859C5060},
- {0x85797B91, 0x85797B91}, {0x8556B8E7, 0x8556B8E7}, {0x85340853, 0x85340853},
- {0x851169C7, 0x851169C7}, {0x84EEDD36, 0}, {0x84CC6290, 0},
- {0x84A9F9C8, 0x84A9F9C8}, {0x8487A2D1, 0}, {0x84655D9C, 0},
- {0x84432A1B, 0x84432A1B}, {0x84210842, 0x84210842}, {0x83FEF802, 0x83FEF802},
- {0x83DCF94E, 0}, {0x83BB0C18, 0}, {0x83993052, 0x83993052},
- {0x837765F0, 0x837765F0}, {0x8355ACE4, 0}, {0x83340520, 0x83340520},
- {0x83126E98, 0}, {0x82F0E93D, 0x82F0E93D}, {0x82CF7504, 0},
- {0x82AE11DE, 0}, {0x828CBFBF, 0}, {0x826B7E99, 0x826B7E99},
- {0x824A4E61, 0}, {0x82292F08, 0}, {0x82082082, 0x82082082},
- {0x81E722C2, 0x81E722C2}, {0x81C635BC, 0x81C635BC}, {0x81A55963, 0},
- {0x81848DA9, 0}, {0x8163D283, 0}, {0x814327E4, 0},
- {0x81228DBF, 0}, {0x81020408, 0x81020408}, {0x80E18AB3, 0},
- {0x80C121B3, 0}, {0x80A0C8FB, 0x80A0C8FB}, {0x80808081, 0},
- {0x80604836, 0x80604836}, {0x80402010, 0x80402010}, {0x80200802, 0x80200802},
- {0xFFFFFFFF, 0xFFFFFFFF}
+ { 0xFFFFFFFF, 0xFFFFFFFF }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xAAAAAAAB, 0 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xCCCCCCCD, 0 }, { 0xAAAAAAAB, 0 },
+ { 0x92492492, 0x92492492 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xE38E38E4, 0 }, { 0xCCCCCCCD, 0 },
+ { 0xBA2E8BA3, 0 }, { 0xAAAAAAAB, 0 },
+ { 0x9D89D89E, 0 }, { 0x92492492, 0x92492492 },
+ { 0x88888889, 0 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xF0F0F0F1, 0 }, { 0xE38E38E4, 0 },
+ { 0xD79435E5, 0xD79435E5 }, { 0xCCCCCCCD, 0 },
+ { 0xC30C30C3, 0xC30C30C3 }, { 0xBA2E8BA3, 0 },
+ { 0xB21642C9, 0 }, { 0xAAAAAAAB, 0 },
+ { 0xA3D70A3E, 0 }, { 0x9D89D89E, 0 },
+ { 0x97B425ED, 0x97B425ED }, { 0x92492492, 0x92492492 },
+ { 0x8D3DCB09, 0 }, { 0x88888889, 0 },
+ { 0x84210842, 0x84210842 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xF83E0F84, 0 }, { 0xF0F0F0F1, 0 },
+ { 0xEA0EA0EA, 0xEA0EA0EA }, { 0xE38E38E4, 0 },
+ { 0xDD67C8A6, 0xDD67C8A6 }, { 0xD79435E5, 0xD79435E5 },
+ { 0xD20D20D2, 0xD20D20D2 }, { 0xCCCCCCCD, 0 },
+ { 0xC7CE0C7D, 0 }, { 0xC30C30C3, 0xC30C30C3 },
+ { 0xBE82FA0C, 0 }, { 0xBA2E8BA3, 0 },
+ { 0xB60B60B6, 0xB60B60B6 }, { 0xB21642C9, 0 },
+ { 0xAE4C415D, 0 }, { 0xAAAAAAAB, 0 },
+ { 0xA72F053A, 0 }, { 0xA3D70A3E, 0 },
+ { 0xA0A0A0A1, 0 }, { 0x9D89D89E, 0 },
+ { 0x9A90E7D9, 0x9A90E7D9 }, { 0x97B425ED, 0x97B425ED },
+ { 0x94F2094F, 0x94F2094F }, { 0x92492492, 0x92492492 },
+ { 0x8FB823EE, 0x8FB823EE }, { 0x8D3DCB09, 0 },
+ { 0x8AD8F2FC, 0 }, { 0x88888889, 0 },
+ { 0x864B8A7E, 0 }, { 0x84210842, 0x84210842 },
+ { 0x82082082, 0x82082082 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xFC0FC0FD, 0 }, { 0xF83E0F84, 0 },
+ { 0xF4898D60, 0 }, { 0xF0F0F0F1, 0 },
+ { 0xED7303B6, 0 }, { 0xEA0EA0EA, 0xEA0EA0EA },
+ { 0xE6C2B449, 0 }, { 0xE38E38E4, 0 },
+ { 0xE070381C, 0xE070381C }, { 0xDD67C8A6, 0xDD67C8A6 },
+ { 0xDA740DA8, 0 }, { 0xD79435E5, 0xD79435E5 },
+ { 0xD4C77B04, 0 }, { 0xD20D20D2, 0xD20D20D2 },
+ { 0xCF6474A9, 0 }, { 0xCCCCCCCD, 0 },
+ { 0xCA4587E7, 0 }, { 0xC7CE0C7D, 0 },
+ { 0xC565C87C, 0 }, { 0xC30C30C3, 0xC30C30C3 },
+ { 0xC0C0C0C1, 0 }, { 0xBE82FA0C, 0 },
+ { 0xBC52640C, 0 }, { 0xBA2E8BA3, 0 },
+ { 0xB81702E1, 0 }, { 0xB60B60B6, 0xB60B60B6 },
+ { 0xB40B40B4, 0xB40B40B4 }, { 0xB21642C9, 0 },
+ { 0xB02C0B03, 0 }, { 0xAE4C415D, 0 },
+ { 0xAC769184, 0xAC769184 }, { 0xAAAAAAAB, 0 },
+ { 0xA8E83F57, 0xA8E83F57 }, { 0xA72F053A, 0 },
+ { 0xA57EB503, 0 }, { 0xA3D70A3E, 0 },
+ { 0xA237C32B, 0xA237C32B }, { 0xA0A0A0A1, 0 },
+ { 0x9F1165E7, 0x9F1165E7 }, { 0x9D89D89E, 0 },
+ { 0x9C09C09C, 0x9C09C09C }, { 0x9A90E7D9, 0x9A90E7D9 },
+ { 0x991F1A51, 0x991F1A51 }, { 0x97B425ED, 0x97B425ED },
+ { 0x964FDA6C, 0x964FDA6C }, { 0x94F2094F, 0x94F2094F },
+ { 0x939A85C4, 0x939A85C4 }, { 0x92492492, 0x92492492 },
+ { 0x90FDBC09, 0x90FDBC09 }, { 0x8FB823EE, 0x8FB823EE },
+ { 0x8E78356D, 0x8E78356D }, { 0x8D3DCB09, 0 },
+ { 0x8C08C08C, 0x8C08C08C }, { 0x8AD8F2FC, 0 },
+ { 0x89AE408A, 0 }, { 0x88888889, 0 },
+ { 0x8767AB5F, 0x8767AB5F }, { 0x864B8A7E, 0 },
+ { 0x85340853, 0x85340853 }, { 0x84210842, 0x84210842 },
+ { 0x83126E98, 0 }, { 0x82082082, 0x82082082 },
+ { 0x81020408, 0x81020408 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xFE03F810, 0 }, { 0xFC0FC0FD, 0 },
+ { 0xFA232CF3, 0 }, { 0xF83E0F84, 0 },
+ { 0xF6603D99, 0 }, { 0xF4898D60, 0 },
+ { 0xF2B9D649, 0 }, { 0xF0F0F0F1, 0 },
+ { 0xEF2EB720, 0 }, { 0xED7303B6, 0 },
+ { 0xEBBDB2A6, 0 }, { 0xEA0EA0EA, 0xEA0EA0EA },
+ { 0xE865AC7C, 0 }, { 0xE6C2B449, 0 },
+ { 0xE525982B, 0 }, { 0xE38E38E4, 0 },
+ { 0xE1FC780F, 0 }, { 0xE070381C, 0xE070381C },
+ { 0xDEE95C4D, 0 }, { 0xDD67C8A6, 0xDD67C8A6 },
+ { 0xDBEB61EF, 0 }, { 0xDA740DA8, 0 },
+ { 0xD901B204, 0 }, { 0xD79435E5, 0xD79435E5 },
+ { 0xD62B80D7, 0 }, { 0xD4C77B04, 0 },
+ { 0xD3680D37, 0 }, { 0xD20D20D2, 0xD20D20D2 },
+ { 0xD0B69FCC, 0 }, { 0xCF6474A9, 0 },
+ { 0xCE168A77, 0xCE168A77 }, { 0xCCCCCCCD, 0 },
+ { 0xCB8727C1, 0 }, { 0xCA4587E7, 0 },
+ { 0xC907DA4F, 0 }, { 0xC7CE0C7D, 0 },
+ { 0xC6980C6A, 0 }, { 0xC565C87C, 0 },
+ { 0xC4372F86, 0 }, { 0xC30C30C3, 0xC30C30C3 },
+ { 0xC1E4BBD6, 0 }, { 0xC0C0C0C1, 0 },
+ { 0xBFA02FE8, 0xBFA02FE8 }, { 0xBE82FA0C, 0 },
+ { 0xBD691047, 0xBD691047 }, { 0xBC52640C, 0 },
+ { 0xBB3EE722, 0 }, { 0xBA2E8BA3, 0 },
+ { 0xB92143FA, 0xB92143FA }, { 0xB81702E1, 0 },
+ { 0xB70FBB5A, 0xB70FBB5A }, { 0xB60B60B6, 0xB60B60B6 },
+ { 0xB509E68B, 0 }, { 0xB40B40B4, 0xB40B40B4 },
+ { 0xB30F6353, 0 }, { 0xB21642C9, 0 },
+ { 0xB11FD3B8, 0xB11FD3B8 }, { 0xB02C0B03, 0 },
+ { 0xAF3ADDC7, 0 }, { 0xAE4C415D, 0 },
+ { 0xAD602B58, 0xAD602B58 }, { 0xAC769184, 0xAC769184 },
+ { 0xAB8F69E3, 0 }, { 0xAAAAAAAB, 0 },
+ { 0xA9C84A48, 0 }, { 0xA8E83F57, 0xA8E83F57 },
+ { 0xA80A80A8, 0xA80A80A8 }, { 0xA72F053A, 0 },
+ { 0xA655C439, 0xA655C439 }, { 0xA57EB503, 0 },
+ { 0xA4A9CF1E, 0 }, { 0xA3D70A3E, 0 },
+ { 0xA3065E40, 0 }, { 0xA237C32B, 0xA237C32B },
+ { 0xA16B312F, 0 }, { 0xA0A0A0A1, 0 },
+ { 0x9FD809FE, 0 }, { 0x9F1165E7, 0x9F1165E7 },
+ { 0x9E4CAD24, 0 }, { 0x9D89D89E, 0 },
+ { 0x9CC8E161, 0 }, { 0x9C09C09C, 0x9C09C09C },
+ { 0x9B4C6F9F, 0 }, { 0x9A90E7D9, 0x9A90E7D9 },
+ { 0x99D722DB, 0 }, { 0x991F1A51, 0x991F1A51 },
+ { 0x9868C80A, 0 }, { 0x97B425ED, 0x97B425ED },
+ { 0x97012E02, 0x97012E02 }, { 0x964FDA6C, 0x964FDA6C },
+ { 0x95A02568, 0x95A02568 }, { 0x94F2094F, 0x94F2094F },
+ { 0x94458094, 0x94458094 }, { 0x939A85C4, 0x939A85C4 },
+ { 0x92F11384, 0x92F11384 }, { 0x92492492, 0x92492492 },
+ { 0x91A2B3C5, 0 }, { 0x90FDBC09, 0x90FDBC09 },
+ { 0x905A3863, 0x905A3863 }, { 0x8FB823EE, 0x8FB823EE },
+ { 0x8F1779DA, 0 }, { 0x8E78356D, 0x8E78356D },
+ { 0x8DDA5202, 0x8DDA5202 }, { 0x8D3DCB09, 0 },
+ { 0x8CA29C04, 0x8CA29C04 }, { 0x8C08C08C, 0x8C08C08C },
+ { 0x8B70344A, 0x8B70344A }, { 0x8AD8F2FC, 0 },
+ { 0x8A42F870, 0x8A42F870 }, { 0x89AE408A, 0 },
+ { 0x891AC73B, 0 }, { 0x88888889, 0 },
+ { 0x87F78088, 0 }, { 0x8767AB5F, 0x8767AB5F },
+ { 0x86D90545, 0 }, { 0x864B8A7E, 0 },
+ { 0x85BF3761, 0x85BF3761 }, { 0x85340853, 0x85340853 },
+ { 0x84A9F9C8, 0x84A9F9C8 }, { 0x84210842, 0x84210842 },
+ { 0x83993052, 0x83993052 }, { 0x83126E98, 0 },
+ { 0x828CBFBF, 0 }, { 0x82082082, 0x82082082 },
+ { 0x81848DA9, 0 }, { 0x81020408, 0x81020408 },
+ { 0x80808081, 0 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xFF00FF01, 0 }, { 0xFE03F810, 0 },
+ { 0xFD08E551, 0 }, { 0xFC0FC0FD, 0 },
+ { 0xFB188566, 0 }, { 0xFA232CF3, 0 },
+ { 0xF92FB222, 0 }, { 0xF83E0F84, 0 },
+ { 0xF74E3FC3, 0 }, { 0xF6603D99, 0 },
+ { 0xF57403D6, 0 }, { 0xF4898D60, 0 },
+ { 0xF3A0D52D, 0 }, { 0xF2B9D649, 0 },
+ { 0xF1D48BCF, 0 }, { 0xF0F0F0F1, 0 },
+ { 0xF00F00F0, 0xF00F00F0 }, { 0xEF2EB720, 0 },
+ { 0xEE500EE5, 0xEE500EE5 }, { 0xED7303B6, 0 },
+ { 0xEC979119, 0 }, { 0xEBBDB2A6, 0 },
+ { 0xEAE56404, 0 }, { 0xEA0EA0EA, 0xEA0EA0EA },
+ { 0xE9396520, 0 }, { 0xE865AC7C, 0 },
+ { 0xE79372E3, 0 }, { 0xE6C2B449, 0 },
+ { 0xE5F36CB0, 0xE5F36CB0 }, { 0xE525982B, 0 },
+ { 0xE45932D8, 0 }, { 0xE38E38E4, 0 },
+ { 0xE2C4A689, 0 }, { 0xE1FC780F, 0 },
+ { 0xE135A9CA, 0 }, { 0xE070381C, 0xE070381C },
+ { 0xDFAC1F75, 0 }, { 0xDEE95C4D, 0 },
+ { 0xDE27EB2D, 0 }, { 0xDD67C8A6, 0xDD67C8A6 },
+ { 0xDCA8F159, 0 }, { 0xDBEB61EF, 0 },
+ { 0xDB2F171E, 0 }, { 0xDA740DA8, 0 },
+ { 0xD9BA4257, 0 }, { 0xD901B204, 0 },
+ { 0xD84A598F, 0 }, { 0xD79435E5, 0xD79435E5 },
+ { 0xD6DF43FD, 0 }, { 0xD62B80D7, 0 },
+ { 0xD578E97D, 0 }, { 0xD4C77B04, 0 },
+ { 0xD417328A, 0 }, { 0xD3680D37, 0 },
+ { 0xD2BA083C, 0 }, { 0xD20D20D2, 0xD20D20D2 },
+ { 0xD161543E, 0xD161543E }, { 0xD0B69FCC, 0 },
+ { 0xD00D00D0, 0xD00D00D0 }, { 0xCF6474A9, 0 },
+ { 0xCEBCF8BC, 0 }, { 0xCE168A77, 0xCE168A77 },
+ { 0xCD712753, 0 }, { 0xCCCCCCCD, 0 },
+ { 0xCC29786D, 0 }, { 0xCB8727C1, 0 },
+ { 0xCAE5D85F, 0xCAE5D85F }, { 0xCA4587E7, 0 },
+ { 0xC9A633FD, 0 }, { 0xC907DA4F, 0 },
+ { 0xC86A7890, 0xC86A7890 }, { 0xC7CE0C7D, 0 },
+ { 0xC73293D8, 0 }, { 0xC6980C6A, 0 },
+ { 0xC5FE7403, 0xC5FE7403 }, { 0xC565C87C, 0 },
+ { 0xC4CE07B0, 0xC4CE07B0 }, { 0xC4372F86, 0 },
+ { 0xC3A13DE6, 0xC3A13DE6 }, { 0xC30C30C3, 0xC30C30C3 },
+ { 0xC2780614, 0 }, { 0xC1E4BBD6, 0 },
+ { 0xC152500C, 0xC152500C }, { 0xC0C0C0C1, 0 },
+ { 0xC0300C03, 0xC0300C03 }, { 0xBFA02FE8, 0xBFA02FE8 },
+ { 0xBF112A8B, 0 }, { 0xBE82FA0C, 0 },
+ { 0xBDF59C92, 0 }, { 0xBD691047, 0xBD691047 },
+ { 0xBCDD535E, 0 }, { 0xBC52640C, 0 },
+ { 0xBBC8408D, 0 }, { 0xBB3EE722, 0 },
+ { 0xBAB65610, 0xBAB65610 }, { 0xBA2E8BA3, 0 },
+ { 0xB9A7862A, 0xB9A7862A }, { 0xB92143FA, 0xB92143FA },
+ { 0xB89BC36D, 0 }, { 0xB81702E1, 0 },
+ { 0xB79300B8, 0 }, { 0xB70FBB5A, 0xB70FBB5A },
+ { 0xB68D3134, 0xB68D3134 }, { 0xB60B60B6, 0xB60B60B6 },
+ { 0xB58A4855, 0xB58A4855 }, { 0xB509E68B, 0 },
+ { 0xB48A39D4, 0xB48A39D4 }, { 0xB40B40B4, 0xB40B40B4 },
+ { 0xB38CF9B0, 0xB38CF9B0 }, { 0xB30F6353, 0 },
+ { 0xB2927C2A, 0 }, { 0xB21642C9, 0 },
+ { 0xB19AB5C5, 0 }, { 0xB11FD3B8, 0xB11FD3B8 },
+ { 0xB0A59B42, 0 }, { 0xB02C0B03, 0 },
+ { 0xAFB321A1, 0xAFB321A1 }, { 0xAF3ADDC7, 0 },
+ { 0xAEC33E20, 0 }, { 0xAE4C415D, 0 },
+ { 0xADD5E632, 0xADD5E632 }, { 0xAD602B58, 0xAD602B58 },
+ { 0xACEB0F89, 0xACEB0F89 }, { 0xAC769184, 0xAC769184 },
+ { 0xAC02B00B, 0 }, { 0xAB8F69E3, 0 },
+ { 0xAB1CBDD4, 0 }, { 0xAAAAAAAB, 0 },
+ { 0xAA392F36, 0 }, { 0xA9C84A48, 0 },
+ { 0xA957FAB5, 0xA957FAB5 }, { 0xA8E83F57, 0xA8E83F57 },
+ { 0xA8791709, 0 }, { 0xA80A80A8, 0xA80A80A8 },
+ { 0xA79C7B17, 0 }, { 0xA72F053A, 0 },
+ { 0xA6C21DF7, 0 }, { 0xA655C439, 0xA655C439 },
+ { 0xA5E9F6ED, 0xA5E9F6ED }, { 0xA57EB503, 0 },
+ { 0xA513FD6C, 0 }, { 0xA4A9CF1E, 0 },
+ { 0xA4402910, 0xA4402910 }, { 0xA3D70A3E, 0 },
+ { 0xA36E71A3, 0 }, { 0xA3065E40, 0 },
+ { 0xA29ECF16, 0xA29ECF16 }, { 0xA237C32B, 0xA237C32B },
+ { 0xA1D13986, 0 }, { 0xA16B312F, 0 },
+ { 0xA105A933, 0 }, { 0xA0A0A0A1, 0 },
+ { 0xA03C1689, 0 }, { 0x9FD809FE, 0 },
+ { 0x9F747A15, 0x9F747A15 }, { 0x9F1165E7, 0x9F1165E7 },
+ { 0x9EAECC8D, 0x9EAECC8D }, { 0x9E4CAD24, 0 },
+ { 0x9DEB06C9, 0x9DEB06C9 }, { 0x9D89D89E, 0 },
+ { 0x9D2921C4, 0 }, { 0x9CC8E161, 0 },
+ { 0x9C69169B, 0x9C69169B }, { 0x9C09C09C, 0x9C09C09C },
+ { 0x9BAADE8E, 0x9BAADE8E }, { 0x9B4C6F9F, 0 },
+ { 0x9AEE72FD, 0 }, { 0x9A90E7D9, 0x9A90E7D9 },
+ { 0x9A33CD67, 0x9A33CD67 }, { 0x99D722DB, 0 },
+ { 0x997AE76B, 0x997AE76B }, { 0x991F1A51, 0x991F1A51 },
+ { 0x98C3BAC7, 0x98C3BAC7 }, { 0x9868C80A, 0 },
+ { 0x980E4156, 0x980E4156 }, { 0x97B425ED, 0x97B425ED },
+ { 0x975A7510, 0 }, { 0x97012E02, 0x97012E02 },
+ { 0x96A8500A, 0 }, { 0x964FDA6C, 0x964FDA6C },
+ { 0x95F7CC73, 0 }, { 0x95A02568, 0x95A02568 },
+ { 0x9548E498, 0 }, { 0x94F2094F, 0x94F2094F },
+ { 0x949B92DE, 0 }, { 0x94458094, 0x94458094 },
+ { 0x93EFD1C5, 0x93EFD1C5 }, { 0x939A85C4, 0x939A85C4 },
+ { 0x93459BE7, 0 }, { 0x92F11384, 0x92F11384 },
+ { 0x929CEBF5, 0 }, { 0x92492492, 0x92492492 },
+ { 0x91F5BCB9, 0 }, { 0x91A2B3C5, 0 },
+ { 0x91500915, 0x91500915 }, { 0x90FDBC09, 0x90FDBC09 },
+ { 0x90ABCC02, 0x90ABCC02 }, { 0x905A3863, 0x905A3863 },
+ { 0x90090090, 0x90090090 }, { 0x8FB823EE, 0x8FB823EE },
+ { 0x8F67A1E4, 0 }, { 0x8F1779DA, 0 },
+ { 0x8EC7AB3A, 0 }, { 0x8E78356D, 0x8E78356D },
+ { 0x8E2917E1, 0 }, { 0x8DDA5202, 0x8DDA5202 },
+ { 0x8D8BE340, 0 }, { 0x8D3DCB09, 0 },
+ { 0x8CF008CF, 0x8CF008CF }, { 0x8CA29C04, 0x8CA29C04 },
+ { 0x8C55841D, 0 }, { 0x8C08C08C, 0x8C08C08C },
+ { 0x8BBC50C9, 0 }, { 0x8B70344A, 0x8B70344A },
+ { 0x8B246A88, 0 }, { 0x8AD8F2FC, 0 },
+ { 0x8A8DCD20, 0 }, { 0x8A42F870, 0x8A42F870 },
+ { 0x89F8746A, 0 }, { 0x89AE408A, 0 },
+ { 0x89645C4F, 0x89645C4F }, { 0x891AC73B, 0 },
+ { 0x88D180CD, 0x88D180CD }, { 0x88888889, 0 },
+ { 0x883FDDF0, 0x883FDDF0 }, { 0x87F78088, 0 },
+ { 0x87AF6FD6, 0 }, { 0x8767AB5F, 0x8767AB5F },
+ { 0x872032AC, 0x872032AC }, { 0x86D90545, 0 },
+ { 0x869222B2, 0 }, { 0x864B8A7E, 0 },
+ { 0x86053C34, 0x86053C34 }, { 0x85BF3761, 0x85BF3761 },
+ { 0x85797B91, 0x85797B91 }, { 0x85340853, 0x85340853 },
+ { 0x84EEDD36, 0 }, { 0x84A9F9C8, 0x84A9F9C8 },
+ { 0x84655D9C, 0 }, { 0x84210842, 0x84210842 },
+ { 0x83DCF94E, 0 }, { 0x83993052, 0x83993052 },
+ { 0x8355ACE4, 0 }, { 0x83126E98, 0 },
+ { 0x82CF7504, 0 }, { 0x828CBFBF, 0 },
+ { 0x824A4E61, 0 }, { 0x82082082, 0x82082082 },
+ { 0x81C635BC, 0x81C635BC }, { 0x81848DA9, 0 },
+ { 0x814327E4, 0 }, { 0x81020408, 0x81020408 },
+ { 0x80C121B3, 0 }, { 0x80808081, 0 },
+ { 0x80402010, 0x80402010 }, { 0xFFFFFFFF, 0xFFFFFFFF },
+ { 0xFF803FE1, 0 }, { 0xFF00FF01, 0 },
+ { 0xFE823CA6, 0 }, { 0xFE03F810, 0 },
+ { 0xFD863087, 0 }, { 0xFD08E551, 0 },
+ { 0xFC8C15B5, 0 }, { 0xFC0FC0FD, 0 },
+ { 0xFB93E673, 0 }, { 0xFB188566, 0 },
+ { 0xFA9D9D20, 0 }, { 0xFA232CF3, 0 },
+ { 0xF9A9342D, 0 }, { 0xF92FB222, 0 },
+ { 0xF8B6A622, 0xF8B6A622 }, { 0xF83E0F84, 0 },
+ { 0xF7C5ED9D, 0 }, { 0xF74E3FC3, 0 },
+ { 0xF6D7054E, 0 }, { 0xF6603D99, 0 },
+ { 0xF5E9E7FD, 0 }, { 0xF57403D6, 0 },
+ { 0xF4FE9083, 0 }, { 0xF4898D60, 0 },
+ { 0xF414F9CE, 0 }, { 0xF3A0D52D, 0 },
+ { 0xF32D1EE0, 0 }, { 0xF2B9D649, 0 },
+ { 0xF246FACC, 0 }, { 0xF1D48BCF, 0 },
+ { 0xF16288B9, 0 }, { 0xF0F0F0F1, 0 },
+ { 0xF07FC3E0, 0xF07FC3E0 }, { 0xF00F00F0, 0xF00F00F0 },
+ { 0xEF9EA78C, 0 }, { 0xEF2EB720, 0 },
+ { 0xEEBF2F19, 0 }, { 0xEE500EE5, 0xEE500EE5 },
+ { 0xEDE155F4, 0 }, { 0xED7303B6, 0 },
+ { 0xED05179C, 0xED05179C }, { 0xEC979119, 0 },
+ { 0xEC2A6FA0, 0xEC2A6FA0 }, { 0xEBBDB2A6, 0 },
+ { 0xEB5159A0, 0 }, { 0xEAE56404, 0 },
+ { 0xEA79D14A, 0 }, { 0xEA0EA0EA, 0xEA0EA0EA },
+ { 0xE9A3D25E, 0xE9A3D25E }, { 0xE9396520, 0 },
+ { 0xE8CF58AB, 0 }, { 0xE865AC7C, 0 },
+ { 0xE7FC600F, 0 }, { 0xE79372E3, 0 },
+ { 0xE72AE476, 0 }, { 0xE6C2B449, 0 },
+ { 0xE65AE1DC, 0 }, { 0xE5F36CB0, 0xE5F36CB0 },
+ { 0xE58C544A, 0 }, { 0xE525982B, 0 },
+ { 0xE4BF37D9, 0 }, { 0xE45932D8, 0 },
+ { 0xE3F388AF, 0 }, { 0xE38E38E4, 0 },
+ { 0xE32942FF, 0 }, { 0xE2C4A689, 0 },
+ { 0xE260630B, 0 }, { 0xE1FC780F, 0 },
+ { 0xE198E520, 0 }, { 0xE135A9CA, 0 },
+ { 0xE0D2C59A, 0 }, { 0xE070381C, 0xE070381C },
+ { 0xE00E00E0, 0xE00E00E0 }, { 0xDFAC1F75, 0 },
+ { 0xDF4A9369, 0 }, { 0xDEE95C4D, 0 },
+ { 0xDE8879B3, 0 }, { 0xDE27EB2D, 0 },
+ { 0xDDC7B04D, 0 }, { 0xDD67C8A6, 0xDD67C8A6 },
+ { 0xDD0833CE, 0 }, { 0xDCA8F159, 0 },
+ { 0xDC4A00DD, 0 }, { 0xDBEB61EF, 0 },
+ { 0xDB8D1428, 0 }, { 0xDB2F171E, 0 },
+ { 0xDAD16A6B, 0 }, { 0xDA740DA8, 0 },
+ { 0xDA17006D, 0xDA17006D }, { 0xD9BA4257, 0 },
+ { 0xD95DD300, 0 }, { 0xD901B204, 0 },
+ { 0xD8A5DEFF, 0 }, { 0xD84A598F, 0 },
+ { 0xD7EF2152, 0 }, { 0xD79435E5, 0xD79435E5 },
+ { 0xD73996E9, 0 }, { 0xD6DF43FD, 0 },
+ { 0xD6853CC1, 0 }, { 0xD62B80D7, 0 },
+ { 0xD5D20FDF, 0 }, { 0xD578E97D, 0 },
+ { 0xD5200D52, 0xD5200D52 }, { 0xD4C77B04, 0 },
+ { 0xD46F3235, 0 }, { 0xD417328A, 0 },
+ { 0xD3BF7BA9, 0 }, { 0xD3680D37, 0 },
+ { 0xD310E6DB, 0 }, { 0xD2BA083C, 0 },
+ { 0xD2637101, 0 }, { 0xD20D20D2, 0xD20D20D2 },
+ { 0xD1B71759, 0 }, { 0xD161543E, 0xD161543E },
+ { 0xD10BD72C, 0 }, { 0xD0B69FCC, 0 },
+ { 0xD061ADCA, 0 }, { 0xD00D00D0, 0xD00D00D0 },
+ { 0xCFB8988C, 0 }, { 0xCF6474A9, 0 },
+ { 0xCF1094D4, 0 }, { 0xCEBCF8BC, 0 },
+ { 0xCE69A00D, 0 }, { 0xCE168A77, 0xCE168A77 },
+ { 0xCDC3B7A9, 0xCDC3B7A9 }, { 0xCD712753, 0 },
+ { 0xCD1ED924, 0 }, { 0xCCCCCCCD, 0 },
+ { 0xCC7B0200, 0 }, { 0xCC29786D, 0 },
+ { 0xCBD82FC7, 0 }, { 0xCB8727C1, 0 },
+ { 0xCB36600D, 0 }, { 0xCAE5D85F, 0xCAE5D85F },
+ { 0xCA95906C, 0 }, { 0xCA4587E7, 0 },
+ { 0xC9F5BE86, 0 }, { 0xC9A633FD, 0 },
+ { 0xC956E803, 0xC956E803 }, { 0xC907DA4F, 0 },
+ { 0xC8B90A96, 0 }, { 0xC86A7890, 0xC86A7890 },
+ { 0xC81C23F5, 0xC81C23F5 }, { 0xC7CE0C7D, 0 },
+ { 0xC78031E0, 0xC78031E0 }, { 0xC73293D8, 0 },
+ { 0xC6E5321D, 0 }, { 0xC6980C6A, 0 },
+ { 0xC64B2278, 0xC64B2278 }, { 0xC5FE7403, 0xC5FE7403 },
+ { 0xC5B200C6, 0 }, { 0xC565C87C, 0 },
+ { 0xC519CAE0, 0xC519CAE0 }, { 0xC4CE07B0, 0xC4CE07B0 },
+ { 0xC4827EA8, 0xC4827EA8 }, { 0xC4372F86, 0 },
+ { 0xC3EC1A06, 0 }, { 0xC3A13DE6, 0xC3A13DE6 },
+ { 0xC3569AE6, 0 }, { 0xC30C30C3, 0xC30C30C3 },
+ { 0xC2C1FF3E, 0 }, { 0xC2780614, 0 },
+ { 0xC22E4507, 0 }, { 0xC1E4BBD6, 0 },
+ { 0xC19B6A42, 0 }, { 0xC152500C, 0xC152500C },
+ { 0xC1096CF6, 0 }, { 0xC0C0C0C1, 0 },
+ { 0xC0784B2F, 0 }, { 0xC0300C03, 0xC0300C03 },
+ { 0xBFE80300, 0 }, { 0xBFA02FE8, 0xBFA02FE8 },
+ { 0xBF589280, 0 }, { 0xBF112A8B, 0 },
+ { 0xBEC9F7CE, 0 }, { 0xBE82FA0C, 0 },
+ { 0xBE3C310C, 0 }, { 0xBDF59C92, 0 },
+ { 0xBDAF3C64, 0 }, { 0xBD691047, 0xBD691047 },
+ { 0xBD231803, 0 }, { 0xBCDD535E, 0 },
+ { 0xBC97C21E, 0xBC97C21E }, { 0xBC52640C, 0 },
+ { 0xBC0D38EE, 0xBC0D38EE }, { 0xBBC8408D, 0 },
+ { 0xBB837AB1, 0 }, { 0xBB3EE722, 0 },
+ { 0xBAFA85A9, 0xBAFA85A9 }, { 0xBAB65610, 0xBAB65610 },
+ { 0xBA725820, 0xBA725820 }, { 0xBA2E8BA3, 0 },
+ { 0xB9EAF063, 0 }, { 0xB9A7862A, 0xB9A7862A },
+ { 0xB9644CC4, 0 }, { 0xB92143FA, 0xB92143FA },
+ { 0xB8DE6B9A, 0 }, { 0xB89BC36D, 0 },
+ { 0xB8594B41, 0 }, { 0xB81702E1, 0 },
+ { 0xB7D4EA19, 0xB7D4EA19 }, { 0xB79300B8, 0 },
+ { 0xB7514689, 0 }, { 0xB70FBB5A, 0xB70FBB5A },
+ { 0xB6CE5EF9, 0xB6CE5EF9 }, { 0xB68D3134, 0xB68D3134 },
+ { 0xB64C31D9, 0 }, { 0xB60B60B6, 0xB60B60B6 },
+ { 0xB5CABD9B, 0 }, { 0xB58A4855, 0xB58A4855 },
+ { 0xB54A00B5, 0xB54A00B5 }, { 0xB509E68B, 0 },
+ { 0xB4C9F9A5, 0 }, { 0xB48A39D4, 0xB48A39D4 },
+ { 0xB44AA6E9, 0xB44AA6E9 }, { 0xB40B40B4, 0xB40B40B4 },
+ { 0xB3CC0706, 0 }, { 0xB38CF9B0, 0xB38CF9B0 },
+ { 0xB34E1884, 0 }, { 0xB30F6353, 0 },
+ { 0xB2D0D9EF, 0 }, { 0xB2927C2A, 0 },
+ { 0xB25449D7, 0 }, { 0xB21642C9, 0 },
+ { 0xB1D866D1, 0xB1D866D1 }, { 0xB19AB5C5, 0 },
+ { 0xB15D2F76, 0 }, { 0xB11FD3B8, 0xB11FD3B8 },
+ { 0xB0E2A260, 0xB0E2A260 }, { 0xB0A59B42, 0 },
+ { 0xB068BE31, 0 }, { 0xB02C0B03, 0 },
+ { 0xAFEF818C, 0 }, { 0xAFB321A1, 0xAFB321A1 },
+ { 0xAF76EB19, 0 }, { 0xAF3ADDC7, 0 },
+ { 0xAEFEF982, 0 }, { 0xAEC33E20, 0 },
+ { 0xAE87AB76, 0xAE87AB76 }, { 0xAE4C415D, 0 },
+ { 0xAE10FFA9, 0 }, { 0xADD5E632, 0xADD5E632 },
+ { 0xAD9AF4D0, 0 }, { 0xAD602B58, 0xAD602B58 },
+ { 0xAD2589A4, 0 }, { 0xACEB0F89, 0xACEB0F89 },
+ { 0xACB0BCE1, 0xACB0BCE1 }, { 0xAC769184, 0xAC769184 },
+ { 0xAC3C8D4A, 0 }, { 0xAC02B00B, 0 },
+ { 0xABC8F9A0, 0xABC8F9A0 }, { 0xAB8F69E3, 0 },
+ { 0xAB5600AC, 0 }, { 0xAB1CBDD4, 0 },
+ { 0xAAE3A136, 0 }, { 0xAAAAAAAB, 0 },
+ { 0xAA71DA0D, 0 }, { 0xAA392F36, 0 },
+ { 0xAA00AA01, 0 }, { 0xA9C84A48, 0 },
+ { 0xA9900FE6, 0 }, { 0xA957FAB5, 0xA957FAB5 },
+ { 0xA9200A92, 0xA9200A92 }, { 0xA8E83F57, 0xA8E83F57 },
+ { 0xA8B098E0, 0xA8B098E0 }, { 0xA8791709, 0 },
+ { 0xA841B9AD, 0 }, { 0xA80A80A8, 0xA80A80A8 },
+ { 0xA7D36BD8, 0 }, { 0xA79C7B17, 0 },
+ { 0xA765AE44, 0 }, { 0xA72F053A, 0 },
+ { 0xA6F87FD6, 0xA6F87FD6 }, { 0xA6C21DF7, 0 },
+ { 0xA68BDF79, 0 }, { 0xA655C439, 0xA655C439 },
+ { 0xA61FCC16, 0xA61FCC16 }, { 0xA5E9F6ED, 0xA5E9F6ED },
+ { 0xA5B4449D, 0 }, { 0xA57EB503, 0 },
+ { 0xA54947FE, 0 }, { 0xA513FD6C, 0 },
+ { 0xA4DED52C, 0xA4DED52C }, { 0xA4A9CF1E, 0 },
+ { 0xA474EB1F, 0xA474EB1F }, { 0xA4402910, 0xA4402910 },
+ { 0xA40B88D0, 0 }, { 0xA3D70A3E, 0 },
+ { 0xA3A2AD39, 0xA3A2AD39 }, { 0xA36E71A3, 0 },
+ { 0xA33A575A, 0xA33A575A }, { 0xA3065E40, 0 },
+ { 0xA2D28634, 0 }, { 0xA29ECF16, 0xA29ECF16 },
+ { 0xA26B38C9, 0 }, { 0xA237C32B, 0xA237C32B },
+ { 0xA2046E1F, 0xA2046E1F }, { 0xA1D13986, 0 },
+ { 0xA19E2540, 0 }, { 0xA16B312F, 0 },
+ { 0xA1385D35, 0 }, { 0xA105A933, 0 },
+ { 0xA0D3150C, 0 }, { 0xA0A0A0A1, 0 },
+ { 0xA06E4BD4, 0xA06E4BD4 }, { 0xA03C1689, 0 },
+ { 0xA00A00A0, 0xA00A00A0 }, { 0x9FD809FE, 0 },
+ { 0x9FA63284, 0 }, { 0x9F747A15, 0x9F747A15 },
+ { 0x9F42E095, 0x9F42E095 }, { 0x9F1165E7, 0x9F1165E7 },
+ { 0x9EE009EE, 0x9EE009EE }, { 0x9EAECC8D, 0x9EAECC8D },
+ { 0x9E7DADA9, 0 }, { 0x9E4CAD24, 0 },
+ { 0x9E1BCAE3, 0 }, { 0x9DEB06C9, 0x9DEB06C9 },
+ { 0x9DBA60BB, 0x9DBA60BB }, { 0x9D89D89E, 0 },
+ { 0x9D596E54, 0x9D596E54 }, { 0x9D2921C4, 0 },
+ { 0x9CF8F2D1, 0x9CF8F2D1 }, { 0x9CC8E161, 0 },
+ { 0x9C98ED58, 0 }, { 0x9C69169B, 0x9C69169B },
+ { 0x9C395D10, 0x9C395D10 }, { 0x9C09C09C, 0x9C09C09C },
+ { 0x9BDA4124, 0x9BDA4124 }, { 0x9BAADE8E, 0x9BAADE8E },
+ { 0x9B7B98C0, 0 }, { 0x9B4C6F9F, 0 },
+ { 0x9B1D6311, 0x9B1D6311 }, { 0x9AEE72FD, 0 },
+ { 0x9ABF9F48, 0x9ABF9F48 }, { 0x9A90E7D9, 0x9A90E7D9 },
+ { 0x9A624C97, 0 }, { 0x9A33CD67, 0x9A33CD67 },
+ { 0x9A056A31, 0 }, { 0x99D722DB, 0 },
+ { 0x99A8F74C, 0 }, { 0x997AE76B, 0x997AE76B },
+ { 0x994CF320, 0x994CF320 }, { 0x991F1A51, 0x991F1A51 },
+ { 0x98F15CE7, 0 }, { 0x98C3BAC7, 0x98C3BAC7 },
+ { 0x989633DB, 0x989633DB }, { 0x9868C80A, 0 },
+ { 0x983B773B, 0 }, { 0x980E4156, 0x980E4156 },
+ { 0x97E12644, 0x97E12644 }, { 0x97B425ED, 0x97B425ED },
+ { 0x97874039, 0 }, { 0x975A7510, 0 },
+ { 0x972DC45B, 0 }, { 0x97012E02, 0x97012E02 },
+ { 0x96D4B1EF, 0 }, { 0x96A8500A, 0 },
+ { 0x967C083B, 0 }, { 0x964FDA6C, 0x964FDA6C },
+ { 0x9623C686, 0x9623C686 }, { 0x95F7CC73, 0 },
+ { 0x95CBEC1B, 0 }, { 0x95A02568, 0x95A02568 },
+ { 0x95747844, 0 }, { 0x9548E498, 0 },
+ { 0x951D6A4E, 0 }, { 0x94F2094F, 0x94F2094F },
+ { 0x94C6C187, 0 }, { 0x949B92DE, 0 },
+ { 0x94707D3F, 0 }, { 0x94458094, 0x94458094 },
+ { 0x941A9CC8, 0x941A9CC8 }, { 0x93EFD1C5, 0x93EFD1C5 },
+ { 0x93C51F76, 0 }, { 0x939A85C4, 0x939A85C4 },
+ { 0x9370049C, 0 }, { 0x93459BE7, 0 },
+ { 0x931B4B91, 0 }, { 0x92F11384, 0x92F11384 },
+ { 0x92C6F3AC, 0x92C6F3AC }, { 0x929CEBF5, 0 },
+ { 0x9272FC48, 0x9272FC48 }, { 0x92492492, 0x92492492 },
+ { 0x921F64BF, 0 }, { 0x91F5BCB9, 0 },
+ { 0x91CC2C6C, 0x91CC2C6C }, { 0x91A2B3C5, 0 },
+ { 0x917952AF, 0 }, { 0x91500915, 0x91500915 },
+ { 0x9126D6E5, 0 }, { 0x90FDBC09, 0x90FDBC09 },
+ { 0x90D4B86F, 0 }, { 0x90ABCC02, 0x90ABCC02 },
+ { 0x9082F6B0, 0 }, { 0x905A3863, 0x905A3863 },
+ { 0x9031910A, 0 }, { 0x90090090, 0x90090090 },
+ { 0x8FE086E3, 0 }, { 0x8FB823EE, 0x8FB823EE },
+ { 0x8F8FD7A0, 0 }, { 0x8F67A1E4, 0 },
+ { 0x8F3F82A8, 0x8F3F82A8 }, { 0x8F1779DA, 0 },
+ { 0x8EEF8766, 0 }, { 0x8EC7AB3A, 0 },
+ { 0x8E9FE542, 0x8E9FE542 }, { 0x8E78356D, 0x8E78356D },
+ { 0x8E509BA8, 0x8E509BA8 }, { 0x8E2917E1, 0 },
+ { 0x8E01AA05, 0 }, { 0x8DDA5202, 0x8DDA5202 },
+ { 0x8DB30FC6, 0x8DB30FC6 }, { 0x8D8BE340, 0 },
+ { 0x8D64CC5C, 0 }, { 0x8D3DCB09, 0 },
+ { 0x8D16DF35, 0x8D16DF35 }, { 0x8CF008CF, 0x8CF008CF },
+ { 0x8CC947C5, 0 }, { 0x8CA29C04, 0x8CA29C04 },
+ { 0x8C7C057D, 0 }, { 0x8C55841D, 0 },
+ { 0x8C2F17D2, 0x8C2F17D2 }, { 0x8C08C08C, 0x8C08C08C },
+ { 0x8BE27E39, 0x8BE27E39 }, { 0x8BBC50C9, 0 },
+ { 0x8B963829, 0x8B963829 }, { 0x8B70344A, 0x8B70344A },
+ { 0x8B4A451A, 0 }, { 0x8B246A88, 0 },
+ { 0x8AFEA483, 0x8AFEA483 }, { 0x8AD8F2FC, 0 },
+ { 0x8AB355E0, 0x8AB355E0 }, { 0x8A8DCD20, 0 },
+ { 0x8A6858AB, 0 }, { 0x8A42F870, 0x8A42F870 },
+ { 0x8A1DAC60, 0x8A1DAC60 }, { 0x89F8746A, 0 },
+ { 0x89D3507D, 0 }, { 0x89AE408A, 0 },
+ { 0x89894480, 0 }, { 0x89645C4F, 0x89645C4F },
+ { 0x893F87E8, 0x893F87E8 }, { 0x891AC73B, 0 },
+ { 0x88F61A37, 0x88F61A37 }, { 0x88D180CD, 0x88D180CD },
+ { 0x88ACFAEE, 0 }, { 0x88888889, 0 },
+ { 0x8864298F, 0 }, { 0x883FDDF0, 0x883FDDF0 },
+ { 0x881BA59E, 0 }, { 0x87F78088, 0 },
+ { 0x87D36EA0, 0 }, { 0x87AF6FD6, 0 },
+ { 0x878B841B, 0 }, { 0x8767AB5F, 0x8767AB5F },
+ { 0x8743E595, 0 }, { 0x872032AC, 0x872032AC },
+ { 0x86FC9296, 0x86FC9296 }, { 0x86D90545, 0 },
+ { 0x86B58AA8, 0 }, { 0x869222B2, 0 },
+ { 0x866ECD53, 0x866ECD53 }, { 0x864B8A7E, 0 },
+ { 0x86285A23, 0x86285A23 }, { 0x86053C34, 0x86053C34 },
+ { 0x85E230A3, 0x85E230A3 }, { 0x85BF3761, 0x85BF3761 },
+ { 0x859C5060, 0x859C5060 }, { 0x85797B91, 0x85797B91 },
+ { 0x8556B8E7, 0x8556B8E7 }, { 0x85340853, 0x85340853 },
+ { 0x851169C7, 0x851169C7 }, { 0x84EEDD36, 0 },
+ { 0x84CC6290, 0 }, { 0x84A9F9C8, 0x84A9F9C8 },
+ { 0x8487A2D1, 0 }, { 0x84655D9C, 0 },
+ { 0x84432A1B, 0x84432A1B }, { 0x84210842, 0x84210842 },
+ { 0x83FEF802, 0x83FEF802 }, { 0x83DCF94E, 0 },
+ { 0x83BB0C18, 0 }, { 0x83993052, 0x83993052 },
+ { 0x837765F0, 0x837765F0 }, { 0x8355ACE4, 0 },
+ { 0x83340520, 0x83340520 }, { 0x83126E98, 0 },
+ { 0x82F0E93D, 0x82F0E93D }, { 0x82CF7504, 0 },
+ { 0x82AE11DE, 0 }, { 0x828CBFBF, 0 },
+ { 0x826B7E99, 0x826B7E99 }, { 0x824A4E61, 0 },
+ { 0x82292F08, 0 }, { 0x82082082, 0x82082082 },
+ { 0x81E722C2, 0x81E722C2 }, { 0x81C635BC, 0x81C635BC },
+ { 0x81A55963, 0 }, { 0x81848DA9, 0 },
+ { 0x8163D283, 0 }, { 0x814327E4, 0 },
+ { 0x81228DBF, 0 }, { 0x81020408, 0x81020408 },
+ { 0x80E18AB3, 0 }, { 0x80C121B3, 0 },
+ { 0x80A0C8FB, 0x80A0C8FB }, { 0x80808081, 0 },
+ { 0x80604836, 0x80604836 }, { 0x80402010, 0x80402010 },
+ { 0x80200802, 0x80200802 }, { 0xFFFFFFFF, 0xFFFFFFFF }
};
diff --git a/vp10/common/odintrin.h b/vp10/common/odintrin.h
index c96f8a7..b33be69 100644
--- a/vp10/common/odintrin.h
+++ b/vp10/common/odintrin.h
@@ -7,41 +7,42 @@
#include "vpx_ports/bitops.h"
/*Smallest blocks are 4x4*/
-# define OD_LOG_BSIZE0 (2)
+#define OD_LOG_BSIZE0 (2)
/*There are 5 block sizes total (4x4, 8x8, 16x16, 32x32 and 64x64).*/
-# define OD_NBSIZES (5)
+#define OD_NBSIZES (5)
/*The log of the maximum length of the side of a block.*/
-# define OD_LOG_BSIZE_MAX (OD_LOG_BSIZE0 + OD_NBSIZES - 1)
+#define OD_LOG_BSIZE_MAX (OD_LOG_BSIZE0 + OD_NBSIZES - 1)
/*The maximum length of the side of a block.*/
-# define OD_BSIZE_MAX (1 << OD_LOG_BSIZE_MAX)
+#define OD_BSIZE_MAX (1 << OD_LOG_BSIZE_MAX)
typedef int od_coeff;
typedef int16_t od_dering_in;
-# define OD_DIVU_DMAX (1024)
+#define OD_DIVU_DMAX (1024)
extern uint32_t OD_DIVU_SMALL_CONSTS[OD_DIVU_DMAX][2];
/*Translate unsigned division by small divisors into multiplications.*/
-# define OD_DIVU_SMALL(_x, _d) \
- ((uint32_t)((OD_DIVU_SMALL_CONSTS[(_d)-1][0]* \
- (uint64_t)(_x)+OD_DIVU_SMALL_CONSTS[(_d)-1][1])>>32)>> \
- (OD_ILOG(_d)-1))
+#define OD_DIVU_SMALL(_x, _d) \
+ ((uint32_t)((OD_DIVU_SMALL_CONSTS[(_d)-1][0] * (uint64_t)(_x) + \
+ OD_DIVU_SMALL_CONSTS[(_d)-1][1]) >> \
+ 32) >> \
+ (OD_ILOG(_d) - 1))
-# define OD_DIVU(_x, _d) \
- (((_d) < OD_DIVU_DMAX)?(OD_DIVU_SMALL((_x), (_d))):((_x)/(_d)))
+#define OD_DIVU(_x, _d) \
+ (((_d) < OD_DIVU_DMAX) ? (OD_DIVU_SMALL((_x), (_d))) : ((_x) / (_d)))
#define OD_MINI VPXMIN
#define OD_CLAMPI(min, val, max) clamp((val), (min), (max))
-# define OD_CLZ0 (1)
-# define OD_CLZ(x) (-get_msb(x))
-# define OD_ILOG_NZ(x) (OD_CLZ0 - OD_CLZ(x))
+#define OD_CLZ0 (1)
+#define OD_CLZ(x) (-get_msb(x))
+#define OD_ILOG_NZ(x) (OD_CLZ0 - OD_CLZ(x))
/*Note that __builtin_clz is not defined when x == 0, according to the gcc
documentation (and that of the x86 BSR instruction that implements it), so
we have to special-case it.
We define a special version of the macro to use when x can be zero.*/
-# define OD_ILOG(x) ((x) ? OD_ILOG_NZ(x) : 0)
+#define OD_ILOG(x) ((x) ? OD_ILOG_NZ(x) : 0)
#endif
diff --git a/vp10/common/scan.c b/vp10/common/scan.c
index 142b557..fbeffc7 100644
--- a/vp10/common/scan.c
+++ b/vp10/common/scan.c
@@ -105,363 +105,297 @@
#if CONFIG_EXT_TX
DECLARE_ALIGNED(16, static const int16_t, default_scan_8x16[128]) = {
- 0, 1, 8, 2, 9, 16, 3, 10, 17, 24, 4, 11,
- 18, 25, 32, 5, 12, 19, 26, 33, 40, 6, 13, 20,
- 27, 34, 41, 48, 7, 14, 21, 28, 35, 42, 49, 56,
- 15, 22, 29, 36, 43, 50, 57, 64, 23, 30, 37, 44,
- 51, 58, 65, 72, 31, 38, 45, 52, 59, 66, 73, 80,
- 39, 46, 53, 60, 67, 74, 81, 88, 47, 54, 61, 68,
- 75, 82, 89, 96, 55, 62, 69, 76, 83, 90, 97, 104,
- 63, 70, 77, 84, 91, 98, 105, 112, 71, 78, 85, 92,
- 99, 106, 113, 120, 79, 86, 93, 100, 107, 114, 121, 87,
- 94, 101, 108, 115, 122, 95, 102, 109, 116, 123, 103, 110,
+ 0, 1, 8, 2, 9, 16, 3, 10, 17, 24, 4, 11, 18, 25, 32,
+ 5, 12, 19, 26, 33, 40, 6, 13, 20, 27, 34, 41, 48, 7, 14,
+ 21, 28, 35, 42, 49, 56, 15, 22, 29, 36, 43, 50, 57, 64, 23,
+ 30, 37, 44, 51, 58, 65, 72, 31, 38, 45, 52, 59, 66, 73, 80,
+ 39, 46, 53, 60, 67, 74, 81, 88, 47, 54, 61, 68, 75, 82, 89,
+ 96, 55, 62, 69, 76, 83, 90, 97, 104, 63, 70, 77, 84, 91, 98,
+ 105, 112, 71, 78, 85, 92, 99, 106, 113, 120, 79, 86, 93, 100, 107,
+ 114, 121, 87, 94, 101, 108, 115, 122, 95, 102, 109, 116, 123, 103, 110,
117, 124, 111, 118, 125, 119, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, default_scan_16x8[128]) = {
- 0, 1, 16, 2, 17, 32, 3, 18, 33, 48, 4, 19,
- 34, 49, 64, 5, 20, 35, 50, 65, 80, 6, 21, 36,
- 51, 66, 81, 96, 7, 22, 37, 52, 67, 82, 97, 112,
- 8, 23, 38, 53, 68, 83, 98, 113, 9, 24, 39, 54,
- 69, 84, 99, 114, 10, 25, 40, 55, 70, 85, 100, 115,
- 11, 26, 41, 56, 71, 86, 101, 116, 12, 27, 42, 57,
- 72, 87, 102, 117, 13, 28, 43, 58, 73, 88, 103, 118,
- 14, 29, 44, 59, 74, 89, 104, 119, 15, 30, 45, 60,
- 75, 90, 105, 120, 31, 46, 61, 76, 91, 106, 121, 47,
- 62, 77, 92, 107, 122, 63, 78, 93, 108, 123, 79, 94,
- 109, 124, 95, 110, 125, 111, 126, 127,
+ 0, 1, 16, 2, 17, 32, 3, 18, 33, 48, 4, 19, 34, 49, 64, 5,
+ 20, 35, 50, 65, 80, 6, 21, 36, 51, 66, 81, 96, 7, 22, 37, 52,
+ 67, 82, 97, 112, 8, 23, 38, 53, 68, 83, 98, 113, 9, 24, 39, 54,
+ 69, 84, 99, 114, 10, 25, 40, 55, 70, 85, 100, 115, 11, 26, 41, 56,
+ 71, 86, 101, 116, 12, 27, 42, 57, 72, 87, 102, 117, 13, 28, 43, 58,
+ 73, 88, 103, 118, 14, 29, 44, 59, 74, 89, 104, 119, 15, 30, 45, 60,
+ 75, 90, 105, 120, 31, 46, 61, 76, 91, 106, 121, 47, 62, 77, 92, 107,
+ 122, 63, 78, 93, 108, 123, 79, 94, 109, 124, 95, 110, 125, 111, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, mcol_scan_8x16[128]) = {
- 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88,
- 96, 104, 112, 120, 1, 9, 17, 25, 33, 41, 49, 57,
- 65, 73, 81, 89, 97, 105, 113, 121, 2, 10, 18, 26,
- 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122,
- 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91,
- 99, 107, 115, 123, 4, 12, 20, 28, 36, 44, 52, 60,
- 68, 76, 84, 92, 100, 108, 116, 124, 5, 13, 21, 29,
- 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125,
- 6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94,
- 102, 110, 118, 126, 7, 15, 23, 31, 39, 47, 55, 63,
- 71, 79, 87, 95, 103, 111, 119, 127,
+ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,
+ 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121,
+ 2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122,
+ 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 107, 115, 123,
+ 4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124,
+ 5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125,
+ 6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126,
+ 7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127,
};
DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x8[128]) = {
- 0, 16, 32, 48, 64, 80, 96, 112, 1, 17, 33, 49,
- 65, 81, 97, 113, 2, 18, 34, 50, 66, 82, 98, 114,
- 3, 19, 35, 51, 67, 83, 99, 115, 4, 20, 36, 52,
- 68, 84, 100, 116, 5, 21, 37, 53, 69, 85, 101, 117,
- 6, 22, 38, 54, 70, 86, 102, 118, 7, 23, 39, 55,
- 71, 87, 103, 119, 8, 24, 40, 56, 72, 88, 104, 120,
- 9, 25, 41, 57, 73, 89, 105, 121, 10, 26, 42, 58,
- 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123,
- 12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61,
- 77, 93, 109, 125, 14, 30, 46, 62, 78, 94, 110, 126,
- 15, 31, 47, 63, 79, 95, 111, 127,
+ 0, 16, 32, 48, 64, 80, 96, 112, 1, 17, 33, 49, 65, 81, 97, 113,
+ 2, 18, 34, 50, 66, 82, 98, 114, 3, 19, 35, 51, 67, 83, 99, 115,
+ 4, 20, 36, 52, 68, 84, 100, 116, 5, 21, 37, 53, 69, 85, 101, 117,
+ 6, 22, 38, 54, 70, 86, 102, 118, 7, 23, 39, 55, 71, 87, 103, 119,
+ 8, 24, 40, 56, 72, 88, 104, 120, 9, 25, 41, 57, 73, 89, 105, 121,
+ 10, 26, 42, 58, 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123,
+ 12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61, 77, 93, 109, 125,
+ 14, 30, 46, 62, 78, 94, 110, 126, 15, 31, 47, 63, 79, 95, 111, 127,
};
DECLARE_ALIGNED(16, static const int16_t, mrow_scan_8x16[128]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x8[128]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, default_scan_16x32[512]) = {
- 0, 1, 16, 2, 17, 32, 3, 18, 33, 48, 4, 19,
- 34, 49, 64, 5, 20, 35, 50, 65, 80, 6, 21, 36,
- 51, 66, 81, 96, 7, 22, 37, 52, 67, 82, 97, 112,
- 8, 23, 38, 53, 68, 83, 98, 113, 128, 9, 24, 39,
- 54, 69, 84, 99, 114, 129, 144, 10, 25, 40, 55, 70,
- 85, 100, 115, 130, 145, 160, 11, 26, 41, 56, 71, 86,
- 101, 116, 131, 146, 161, 176, 12, 27, 42, 57, 72, 87,
- 102, 117, 132, 147, 162, 177, 192, 13, 28, 43, 58, 73,
- 88, 103, 118, 133, 148, 163, 178, 193, 208, 14, 29, 44,
- 59, 74, 89, 104, 119, 134, 149, 164, 179, 194, 209, 224,
- 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180,
- 195, 210, 225, 240, 31, 46, 61, 76, 91, 106, 121, 136,
- 151, 166, 181, 196, 211, 226, 241, 256, 47, 62, 77, 92,
- 107, 122, 137, 152, 167, 182, 197, 212, 227, 242, 257, 272,
- 63, 78, 93, 108, 123, 138, 153, 168, 183, 198, 213, 228,
- 243, 258, 273, 288, 79, 94, 109, 124, 139, 154, 169, 184,
- 199, 214, 229, 244, 259, 274, 289, 304, 95, 110, 125, 140,
- 155, 170, 185, 200, 215, 230, 245, 260, 275, 290, 305, 320,
- 111, 126, 141, 156, 171, 186, 201, 216, 231, 246, 261, 276,
- 291, 306, 321, 336, 127, 142, 157, 172, 187, 202, 217, 232,
- 247, 262, 277, 292, 307, 322, 337, 352, 143, 158, 173, 188,
- 203, 218, 233, 248, 263, 278, 293, 308, 323, 338, 353, 368,
- 159, 174, 189, 204, 219, 234, 249, 264, 279, 294, 309, 324,
- 339, 354, 369, 384, 175, 190, 205, 220, 235, 250, 265, 280,
- 295, 310, 325, 340, 355, 370, 385, 400, 191, 206, 221, 236,
- 251, 266, 281, 296, 311, 326, 341, 356, 371, 386, 401, 416,
- 207, 222, 237, 252, 267, 282, 297, 312, 327, 342, 357, 372,
- 387, 402, 417, 432, 223, 238, 253, 268, 283, 298, 313, 328,
- 343, 358, 373, 388, 403, 418, 433, 448, 239, 254, 269, 284,
- 299, 314, 329, 344, 359, 374, 389, 404, 419, 434, 449, 464,
- 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420,
- 435, 450, 465, 480, 271, 286, 301, 316, 331, 346, 361, 376,
- 391, 406, 421, 436, 451, 466, 481, 496, 287, 302, 317, 332,
- 347, 362, 377, 392, 407, 422, 437, 452, 467, 482, 497, 303,
- 318, 333, 348, 363, 378, 393, 408, 423, 438, 453, 468, 483,
- 498, 319, 334, 349, 364, 379, 394, 409, 424, 439, 454, 469,
- 484, 499, 335, 350, 365, 380, 395, 410, 425, 440, 455, 470,
- 485, 500, 351, 366, 381, 396, 411, 426, 441, 456, 471, 486,
- 501, 367, 382, 397, 412, 427, 442, 457, 472, 487, 502, 383,
- 398, 413, 428, 443, 458, 473, 488, 503, 399, 414, 429, 444,
- 459, 474, 489, 504, 415, 430, 445, 460, 475, 490, 505, 431,
- 446, 461, 476, 491, 506, 447, 462, 477, 492, 507, 463, 478,
- 493, 508, 479, 494, 509, 495, 510, 511,
+ 0, 1, 16, 2, 17, 32, 3, 18, 33, 48, 4, 19, 34, 49, 64,
+ 5, 20, 35, 50, 65, 80, 6, 21, 36, 51, 66, 81, 96, 7, 22,
+ 37, 52, 67, 82, 97, 112, 8, 23, 38, 53, 68, 83, 98, 113, 128,
+ 9, 24, 39, 54, 69, 84, 99, 114, 129, 144, 10, 25, 40, 55, 70,
+ 85, 100, 115, 130, 145, 160, 11, 26, 41, 56, 71, 86, 101, 116, 131,
+ 146, 161, 176, 12, 27, 42, 57, 72, 87, 102, 117, 132, 147, 162, 177,
+ 192, 13, 28, 43, 58, 73, 88, 103, 118, 133, 148, 163, 178, 193, 208,
+ 14, 29, 44, 59, 74, 89, 104, 119, 134, 149, 164, 179, 194, 209, 224,
+ 15, 30, 45, 60, 75, 90, 105, 120, 135, 150, 165, 180, 195, 210, 225,
+ 240, 31, 46, 61, 76, 91, 106, 121, 136, 151, 166, 181, 196, 211, 226,
+ 241, 256, 47, 62, 77, 92, 107, 122, 137, 152, 167, 182, 197, 212, 227,
+ 242, 257, 272, 63, 78, 93, 108, 123, 138, 153, 168, 183, 198, 213, 228,
+ 243, 258, 273, 288, 79, 94, 109, 124, 139, 154, 169, 184, 199, 214, 229,
+ 244, 259, 274, 289, 304, 95, 110, 125, 140, 155, 170, 185, 200, 215, 230,
+ 245, 260, 275, 290, 305, 320, 111, 126, 141, 156, 171, 186, 201, 216, 231,
+ 246, 261, 276, 291, 306, 321, 336, 127, 142, 157, 172, 187, 202, 217, 232,
+ 247, 262, 277, 292, 307, 322, 337, 352, 143, 158, 173, 188, 203, 218, 233,
+ 248, 263, 278, 293, 308, 323, 338, 353, 368, 159, 174, 189, 204, 219, 234,
+ 249, 264, 279, 294, 309, 324, 339, 354, 369, 384, 175, 190, 205, 220, 235,
+ 250, 265, 280, 295, 310, 325, 340, 355, 370, 385, 400, 191, 206, 221, 236,
+ 251, 266, 281, 296, 311, 326, 341, 356, 371, 386, 401, 416, 207, 222, 237,
+ 252, 267, 282, 297, 312, 327, 342, 357, 372, 387, 402, 417, 432, 223, 238,
+ 253, 268, 283, 298, 313, 328, 343, 358, 373, 388, 403, 418, 433, 448, 239,
+ 254, 269, 284, 299, 314, 329, 344, 359, 374, 389, 404, 419, 434, 449, 464,
+ 255, 270, 285, 300, 315, 330, 345, 360, 375, 390, 405, 420, 435, 450, 465,
+ 480, 271, 286, 301, 316, 331, 346, 361, 376, 391, 406, 421, 436, 451, 466,
+ 481, 496, 287, 302, 317, 332, 347, 362, 377, 392, 407, 422, 437, 452, 467,
+ 482, 497, 303, 318, 333, 348, 363, 378, 393, 408, 423, 438, 453, 468, 483,
+ 498, 319, 334, 349, 364, 379, 394, 409, 424, 439, 454, 469, 484, 499, 335,
+ 350, 365, 380, 395, 410, 425, 440, 455, 470, 485, 500, 351, 366, 381, 396,
+ 411, 426, 441, 456, 471, 486, 501, 367, 382, 397, 412, 427, 442, 457, 472,
+ 487, 502, 383, 398, 413, 428, 443, 458, 473, 488, 503, 399, 414, 429, 444,
+ 459, 474, 489, 504, 415, 430, 445, 460, 475, 490, 505, 431, 446, 461, 476,
+ 491, 506, 447, 462, 477, 492, 507, 463, 478, 493, 508, 479, 494, 509, 495,
+ 510, 511,
};
DECLARE_ALIGNED(16, static const int16_t, default_scan_32x16[512]) = {
- 0, 1, 32, 2, 33, 64, 3, 34, 65, 96, 4, 35,
- 66, 97, 128, 5, 36, 67, 98, 129, 160, 6, 37, 68,
- 99, 130, 161, 192, 7, 38, 69, 100, 131, 162, 193, 224,
- 8, 39, 70, 101, 132, 163, 194, 225, 256, 9, 40, 71,
- 102, 133, 164, 195, 226, 257, 288, 10, 41, 72, 103, 134,
- 165, 196, 227, 258, 289, 320, 11, 42, 73, 104, 135, 166,
- 197, 228, 259, 290, 321, 352, 12, 43, 74, 105, 136, 167,
- 198, 229, 260, 291, 322, 353, 384, 13, 44, 75, 106, 137,
- 168, 199, 230, 261, 292, 323, 354, 385, 416, 14, 45, 76,
- 107, 138, 169, 200, 231, 262, 293, 324, 355, 386, 417, 448,
- 15, 46, 77, 108, 139, 170, 201, 232, 263, 294, 325, 356,
- 387, 418, 449, 480, 16, 47, 78, 109, 140, 171, 202, 233,
- 264, 295, 326, 357, 388, 419, 450, 481, 17, 48, 79, 110,
- 141, 172, 203, 234, 265, 296, 327, 358, 389, 420, 451, 482,
- 18, 49, 80, 111, 142, 173, 204, 235, 266, 297, 328, 359,
- 390, 421, 452, 483, 19, 50, 81, 112, 143, 174, 205, 236,
- 267, 298, 329, 360, 391, 422, 453, 484, 20, 51, 82, 113,
- 144, 175, 206, 237, 268, 299, 330, 361, 392, 423, 454, 485,
- 21, 52, 83, 114, 145, 176, 207, 238, 269, 300, 331, 362,
- 393, 424, 455, 486, 22, 53, 84, 115, 146, 177, 208, 239,
- 270, 301, 332, 363, 394, 425, 456, 487, 23, 54, 85, 116,
- 147, 178, 209, 240, 271, 302, 333, 364, 395, 426, 457, 488,
- 24, 55, 86, 117, 148, 179, 210, 241, 272, 303, 334, 365,
- 396, 427, 458, 489, 25, 56, 87, 118, 149, 180, 211, 242,
- 273, 304, 335, 366, 397, 428, 459, 490, 26, 57, 88, 119,
- 150, 181, 212, 243, 274, 305, 336, 367, 398, 429, 460, 491,
- 27, 58, 89, 120, 151, 182, 213, 244, 275, 306, 337, 368,
- 399, 430, 461, 492, 28, 59, 90, 121, 152, 183, 214, 245,
- 276, 307, 338, 369, 400, 431, 462, 493, 29, 60, 91, 122,
- 153, 184, 215, 246, 277, 308, 339, 370, 401, 432, 463, 494,
- 30, 61, 92, 123, 154, 185, 216, 247, 278, 309, 340, 371,
- 402, 433, 464, 495, 31, 62, 93, 124, 155, 186, 217, 248,
- 279, 310, 341, 372, 403, 434, 465, 496, 63, 94, 125, 156,
- 187, 218, 249, 280, 311, 342, 373, 404, 435, 466, 497, 95,
- 126, 157, 188, 219, 250, 281, 312, 343, 374, 405, 436, 467,
- 498, 127, 158, 189, 220, 251, 282, 313, 344, 375, 406, 437,
- 468, 499, 159, 190, 221, 252, 283, 314, 345, 376, 407, 438,
- 469, 500, 191, 222, 253, 284, 315, 346, 377, 408, 439, 470,
- 501, 223, 254, 285, 316, 347, 378, 409, 440, 471, 502, 255,
- 286, 317, 348, 379, 410, 441, 472, 503, 287, 318, 349, 380,
- 411, 442, 473, 504, 319, 350, 381, 412, 443, 474, 505, 351,
- 382, 413, 444, 475, 506, 383, 414, 445, 476, 507, 415, 446,
- 477, 508, 447, 478, 509, 479, 510, 511,
+ 0, 1, 32, 2, 33, 64, 3, 34, 65, 96, 4, 35, 66, 97, 128,
+ 5, 36, 67, 98, 129, 160, 6, 37, 68, 99, 130, 161, 192, 7, 38,
+ 69, 100, 131, 162, 193, 224, 8, 39, 70, 101, 132, 163, 194, 225, 256,
+ 9, 40, 71, 102, 133, 164, 195, 226, 257, 288, 10, 41, 72, 103, 134,
+ 165, 196, 227, 258, 289, 320, 11, 42, 73, 104, 135, 166, 197, 228, 259,
+ 290, 321, 352, 12, 43, 74, 105, 136, 167, 198, 229, 260, 291, 322, 353,
+ 384, 13, 44, 75, 106, 137, 168, 199, 230, 261, 292, 323, 354, 385, 416,
+ 14, 45, 76, 107, 138, 169, 200, 231, 262, 293, 324, 355, 386, 417, 448,
+ 15, 46, 77, 108, 139, 170, 201, 232, 263, 294, 325, 356, 387, 418, 449,
+ 480, 16, 47, 78, 109, 140, 171, 202, 233, 264, 295, 326, 357, 388, 419,
+ 450, 481, 17, 48, 79, 110, 141, 172, 203, 234, 265, 296, 327, 358, 389,
+ 420, 451, 482, 18, 49, 80, 111, 142, 173, 204, 235, 266, 297, 328, 359,
+ 390, 421, 452, 483, 19, 50, 81, 112, 143, 174, 205, 236, 267, 298, 329,
+ 360, 391, 422, 453, 484, 20, 51, 82, 113, 144, 175, 206, 237, 268, 299,
+ 330, 361, 392, 423, 454, 485, 21, 52, 83, 114, 145, 176, 207, 238, 269,
+ 300, 331, 362, 393, 424, 455, 486, 22, 53, 84, 115, 146, 177, 208, 239,
+ 270, 301, 332, 363, 394, 425, 456, 487, 23, 54, 85, 116, 147, 178, 209,
+ 240, 271, 302, 333, 364, 395, 426, 457, 488, 24, 55, 86, 117, 148, 179,
+ 210, 241, 272, 303, 334, 365, 396, 427, 458, 489, 25, 56, 87, 118, 149,
+ 180, 211, 242, 273, 304, 335, 366, 397, 428, 459, 490, 26, 57, 88, 119,
+ 150, 181, 212, 243, 274, 305, 336, 367, 398, 429, 460, 491, 27, 58, 89,
+ 120, 151, 182, 213, 244, 275, 306, 337, 368, 399, 430, 461, 492, 28, 59,
+ 90, 121, 152, 183, 214, 245, 276, 307, 338, 369, 400, 431, 462, 493, 29,
+ 60, 91, 122, 153, 184, 215, 246, 277, 308, 339, 370, 401, 432, 463, 494,
+ 30, 61, 92, 123, 154, 185, 216, 247, 278, 309, 340, 371, 402, 433, 464,
+ 495, 31, 62, 93, 124, 155, 186, 217, 248, 279, 310, 341, 372, 403, 434,
+ 465, 496, 63, 94, 125, 156, 187, 218, 249, 280, 311, 342, 373, 404, 435,
+ 466, 497, 95, 126, 157, 188, 219, 250, 281, 312, 343, 374, 405, 436, 467,
+ 498, 127, 158, 189, 220, 251, 282, 313, 344, 375, 406, 437, 468, 499, 159,
+ 190, 221, 252, 283, 314, 345, 376, 407, 438, 469, 500, 191, 222, 253, 284,
+ 315, 346, 377, 408, 439, 470, 501, 223, 254, 285, 316, 347, 378, 409, 440,
+ 471, 502, 255, 286, 317, 348, 379, 410, 441, 472, 503, 287, 318, 349, 380,
+ 411, 442, 473, 504, 319, 350, 381, 412, 443, 474, 505, 351, 382, 413, 444,
+ 475, 506, 383, 414, 445, 476, 507, 415, 446, 477, 508, 447, 478, 509, 479,
+ 510, 511,
};
DECLARE_ALIGNED(16, static const int16_t, mcol_scan_16x32[512]) = {
- 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176,
- 192, 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368,
- 384, 400, 416, 432, 448, 464, 480, 496, 1, 17, 33, 49,
- 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241,
- 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433,
- 449, 465, 481, 497, 2, 18, 34, 50, 66, 82, 98, 114,
- 130, 146, 162, 178, 194, 210, 226, 242, 258, 274, 290, 306,
- 322, 338, 354, 370, 386, 402, 418, 434, 450, 466, 482, 498,
- 3, 19, 35, 51, 67, 83, 99, 115, 131, 147, 163, 179,
- 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371,
- 387, 403, 419, 435, 451, 467, 483, 499, 4, 20, 36, 52,
- 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244,
- 260, 276, 292, 308, 324, 340, 356, 372, 388, 404, 420, 436,
- 452, 468, 484, 500, 5, 21, 37, 53, 69, 85, 101, 117,
- 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309,
- 325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501,
- 6, 22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182,
- 198, 214, 230, 246, 262, 278, 294, 310, 326, 342, 358, 374,
- 390, 406, 422, 438, 454, 470, 486, 502, 7, 23, 39, 55,
- 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
- 263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439,
- 455, 471, 487, 503, 8, 24, 40, 56, 72, 88, 104, 120,
- 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312,
- 328, 344, 360, 376, 392, 408, 424, 440, 456, 472, 488, 504,
- 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185,
- 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377,
- 393, 409, 425, 441, 457, 473, 489, 505, 10, 26, 42, 58,
- 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250,
- 266, 282, 298, 314, 330, 346, 362, 378, 394, 410, 426, 442,
- 458, 474, 490, 506, 11, 27, 43, 59, 75, 91, 107, 123,
- 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315,
- 331, 347, 363, 379, 395, 411, 427, 443, 459, 475, 491, 507,
- 12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188,
- 204, 220, 236, 252, 268, 284, 300, 316, 332, 348, 364, 380,
- 396, 412, 428, 444, 460, 476, 492, 508, 13, 29, 45, 61,
- 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253,
- 269, 285, 301, 317, 333, 349, 365, 381, 397, 413, 429, 445,
- 461, 477, 493, 509, 14, 30, 46, 62, 78, 94, 110, 126,
- 142, 158, 174, 190, 206, 222, 238, 254, 270, 286, 302, 318,
- 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510,
- 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191,
- 207, 223, 239, 255, 271, 287, 303, 319, 335, 351, 367, 383,
- 399, 415, 431, 447, 463, 479, 495, 511,
+ 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224,
+ 240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464,
+ 480, 496, 1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193,
+ 209, 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433,
+ 449, 465, 481, 497, 2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162,
+ 178, 194, 210, 226, 242, 258, 274, 290, 306, 322, 338, 354, 370, 386, 402,
+ 418, 434, 450, 466, 482, 498, 3, 19, 35, 51, 67, 83, 99, 115, 131,
+ 147, 163, 179, 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371,
+ 387, 403, 419, 435, 451, 467, 483, 499, 4, 20, 36, 52, 68, 84, 100,
+ 116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340,
+ 356, 372, 388, 404, 420, 436, 452, 468, 484, 500, 5, 21, 37, 53, 69,
+ 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309,
+ 325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501, 6, 22, 38,
+ 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278,
+ 294, 310, 326, 342, 358, 374, 390, 406, 422, 438, 454, 470, 486, 502, 7,
+ 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
+ 263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439, 455, 471, 487,
+ 503, 8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216,
+ 232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392, 408, 424, 440, 456,
+ 472, 488, 504, 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185,
+ 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377, 393, 409, 425,
+ 441, 457, 473, 489, 505, 10, 26, 42, 58, 74, 90, 106, 122, 138, 154,
+ 170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 394,
+ 410, 426, 442, 458, 474, 490, 506, 11, 27, 43, 59, 75, 91, 107, 123,
+ 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363,
+ 379, 395, 411, 427, 443, 459, 475, 491, 507, 12, 28, 44, 60, 76, 92,
+ 108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 268, 284, 300, 316, 332,
+ 348, 364, 380, 396, 412, 428, 444, 460, 476, 492, 508, 13, 29, 45, 61,
+ 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269, 285, 301,
+ 317, 333, 349, 365, 381, 397, 413, 429, 445, 461, 477, 493, 509, 14, 30,
+ 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 270,
+ 286, 302, 318, 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510,
+ 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239,
+ 255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479,
+ 495, 511,
};
DECLARE_ALIGNED(16, static const int16_t, mcol_scan_32x16[512]) = {
- 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
- 384, 416, 448, 480, 1, 33, 65, 97, 129, 161, 193, 225,
- 257, 289, 321, 353, 385, 417, 449, 481, 2, 34, 66, 98,
- 130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482,
- 3, 35, 67, 99, 131, 163, 195, 227, 259, 291, 323, 355,
- 387, 419, 451, 483, 4, 36, 68, 100, 132, 164, 196, 228,
- 260, 292, 324, 356, 388, 420, 452, 484, 5, 37, 69, 101,
- 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485,
- 6, 38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358,
- 390, 422, 454, 486, 7, 39, 71, 103, 135, 167, 199, 231,
- 263, 295, 327, 359, 391, 423, 455, 487, 8, 40, 72, 104,
- 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488,
- 9, 41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361,
- 393, 425, 457, 489, 10, 42, 74, 106, 138, 170, 202, 234,
- 266, 298, 330, 362, 394, 426, 458, 490, 11, 43, 75, 107,
- 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491,
- 12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364,
- 396, 428, 460, 492, 13, 45, 77, 109, 141, 173, 205, 237,
- 269, 301, 333, 365, 397, 429, 461, 493, 14, 46, 78, 110,
- 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494,
- 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367,
- 399, 431, 463, 495, 16, 48, 80, 112, 144, 176, 208, 240,
- 272, 304, 336, 368, 400, 432, 464, 496, 17, 49, 81, 113,
- 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497,
- 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370,
- 402, 434, 466, 498, 19, 51, 83, 115, 147, 179, 211, 243,
- 275, 307, 339, 371, 403, 435, 467, 499, 20, 52, 84, 116,
- 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500,
- 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373,
- 405, 437, 469, 501, 22, 54, 86, 118, 150, 182, 214, 246,
- 278, 310, 342, 374, 406, 438, 470, 502, 23, 55, 87, 119,
- 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503,
- 24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376,
- 408, 440, 472, 504, 25, 57, 89, 121, 153, 185, 217, 249,
- 281, 313, 345, 377, 409, 441, 473, 505, 26, 58, 90, 122,
- 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506,
- 27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379,
- 411, 443, 475, 507, 28, 60, 92, 124, 156, 188, 220, 252,
- 284, 316, 348, 380, 412, 444, 476, 508, 29, 61, 93, 125,
- 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509,
- 30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382,
- 414, 446, 478, 510, 31, 63, 95, 127, 159, 191, 223, 255,
- 287, 319, 351, 383, 415, 447, 479, 511,
+ 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480,
+ 1, 33, 65, 97, 129, 161, 193, 225, 257, 289, 321, 353, 385, 417, 449, 481,
+ 2, 34, 66, 98, 130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482,
+ 3, 35, 67, 99, 131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483,
+ 4, 36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 388, 420, 452, 484,
+ 5, 37, 69, 101, 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485,
+ 6, 38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486,
+ 7, 39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 455, 487,
+ 8, 40, 72, 104, 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488,
+ 9, 41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361, 393, 425, 457, 489,
+ 10, 42, 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490,
+ 11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491,
+ 12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364, 396, 428, 460, 492,
+ 13, 45, 77, 109, 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493,
+ 14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494,
+ 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367, 399, 431, 463, 495,
+ 16, 48, 80, 112, 144, 176, 208, 240, 272, 304, 336, 368, 400, 432, 464, 496,
+ 17, 49, 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497,
+ 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 402, 434, 466, 498,
+ 19, 51, 83, 115, 147, 179, 211, 243, 275, 307, 339, 371, 403, 435, 467, 499,
+ 20, 52, 84, 116, 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500,
+ 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 469, 501,
+ 22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 342, 374, 406, 438, 470, 502,
+ 23, 55, 87, 119, 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503,
+ 24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504,
+ 25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 409, 441, 473, 505,
+ 26, 58, 90, 122, 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506,
+ 27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507,
+ 28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 476, 508,
+ 29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509,
+ 30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382, 414, 446, 478, 510,
+ 31, 63, 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511,
};
DECLARE_ALIGNED(16, static const int16_t, mrow_scan_16x32[512]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
- 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
- 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
- 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
- 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
- 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
- 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
- 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
- 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
- 504, 505, 506, 507, 508, 509, 510, 511,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
+ 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
+ 510, 511,
};
DECLARE_ALIGNED(16, static const int16_t, mrow_scan_32x16[512]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
- 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
- 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
- 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
- 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
- 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
- 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
- 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
- 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
- 504, 505, 506, 507, 508, 509, 510, 511,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
+ 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
+ 510, 511,
};
#endif // CONFIG_EXT_TX
@@ -1208,710 +1142,570 @@
#if CONFIG_EXT_TX
DECLARE_ALIGNED(16, static const int16_t,
default_scan_8x16_neighbors[129 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 0, 0, 1, 1, 1, 8, 8, 8,
- 2, 2, 2, 9, 9, 16, 16, 16, 3, 3, 3, 10,
- 10, 17, 17, 24, 24, 24, 4, 4, 4, 11, 11, 18,
- 18, 25, 25, 32, 32, 32, 5, 5, 5, 12, 12, 19,
- 19, 26, 26, 33, 33, 40, 40, 40, 6, 6, 6, 13,
- 13, 20, 20, 27, 27, 34, 34, 41, 41, 48, 48, 48,
- 7, 14, 14, 21, 21, 28, 28, 35, 35, 42, 42, 49,
- 49, 56, 56, 56, 15, 22, 22, 29, 29, 36, 36, 43,
- 43, 50, 50, 57, 57, 64, 64, 64, 23, 30, 30, 37,
- 37, 44, 44, 51, 51, 58, 58, 65, 65, 72, 72, 72,
- 31, 38, 38, 45, 45, 52, 52, 59, 59, 66, 66, 73,
- 73, 80, 80, 80, 39, 46, 46, 53, 53, 60, 60, 67,
- 67, 74, 74, 81, 81, 88, 88, 88, 47, 54, 54, 61,
- 61, 68, 68, 75, 75, 82, 82, 89, 89, 96, 96, 96,
- 55, 62, 62, 69, 69, 76, 76, 83, 83, 90, 90, 97,
- 97, 104, 104, 104, 63, 70, 70, 77, 77, 84, 84, 91,
- 91, 98, 98, 105, 105, 112, 112, 112, 71, 78, 78, 85,
- 85, 92, 92, 99, 99, 106, 106, 113, 113, 120, 79, 86,
- 86, 93, 93, 100, 100, 107, 107, 114, 114, 121, 87, 94,
- 94, 101, 101, 108, 108, 115, 115, 122, 95, 102, 102, 109,
- 109, 116, 116, 123, 103, 110, 110, 117, 117, 124, 111, 118,
- 118, 125, 119, 126,
- 0, 0
+ 0, 0, 0, 0, 0, 0, 1, 1, 1, 8, 8, 8, 2, 2, 2,
+ 9, 9, 16, 16, 16, 3, 3, 3, 10, 10, 17, 17, 24, 24, 24,
+ 4, 4, 4, 11, 11, 18, 18, 25, 25, 32, 32, 32, 5, 5, 5,
+ 12, 12, 19, 19, 26, 26, 33, 33, 40, 40, 40, 6, 6, 6, 13,
+ 13, 20, 20, 27, 27, 34, 34, 41, 41, 48, 48, 48, 7, 14, 14,
+ 21, 21, 28, 28, 35, 35, 42, 42, 49, 49, 56, 56, 56, 15, 22,
+ 22, 29, 29, 36, 36, 43, 43, 50, 50, 57, 57, 64, 64, 64, 23,
+ 30, 30, 37, 37, 44, 44, 51, 51, 58, 58, 65, 65, 72, 72, 72,
+ 31, 38, 38, 45, 45, 52, 52, 59, 59, 66, 66, 73, 73, 80, 80,
+ 80, 39, 46, 46, 53, 53, 60, 60, 67, 67, 74, 74, 81, 81, 88,
+ 88, 88, 47, 54, 54, 61, 61, 68, 68, 75, 75, 82, 82, 89, 89,
+ 96, 96, 96, 55, 62, 62, 69, 69, 76, 76, 83, 83, 90, 90, 97,
+ 97, 104, 104, 104, 63, 70, 70, 77, 77, 84, 84, 91, 91, 98, 98,
+ 105, 105, 112, 112, 112, 71, 78, 78, 85, 85, 92, 92, 99, 99, 106,
+ 106, 113, 113, 120, 79, 86, 86, 93, 93, 100, 100, 107, 107, 114, 114,
+ 121, 87, 94, 94, 101, 101, 108, 108, 115, 115, 122, 95, 102, 102, 109,
+ 109, 116, 116, 123, 103, 110, 110, 117, 117, 124, 111, 118, 118, 125, 119,
+ 126, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
default_scan_16x8_neighbors[129 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 0, 0, 1, 1, 1, 16, 16, 16,
- 2, 2, 2, 17, 17, 32, 32, 32, 3, 3, 3, 18,
- 18, 33, 33, 48, 48, 48, 4, 4, 4, 19, 19, 34,
- 34, 49, 49, 64, 64, 64, 5, 5, 5, 20, 20, 35,
- 35, 50, 50, 65, 65, 80, 80, 80, 6, 6, 6, 21,
- 21, 36, 36, 51, 51, 66, 66, 81, 81, 96, 96, 96,
- 7, 7, 7, 22, 22, 37, 37, 52, 52, 67, 67, 82,
- 82, 97, 97, 112, 8, 8, 8, 23, 23, 38, 38, 53,
- 53, 68, 68, 83, 83, 98, 98, 113, 9, 9, 9, 24,
- 24, 39, 39, 54, 54, 69, 69, 84, 84, 99, 99, 114,
- 10, 10, 10, 25, 25, 40, 40, 55, 55, 70, 70, 85,
- 85, 100, 100, 115, 11, 11, 11, 26, 26, 41, 41, 56,
- 56, 71, 71, 86, 86, 101, 101, 116, 12, 12, 12, 27,
- 27, 42, 42, 57, 57, 72, 72, 87, 87, 102, 102, 117,
- 13, 13, 13, 28, 28, 43, 43, 58, 58, 73, 73, 88,
- 88, 103, 103, 118, 14, 14, 14, 29, 29, 44, 44, 59,
- 59, 74, 74, 89, 89, 104, 104, 119, 15, 30, 30, 45,
- 45, 60, 60, 75, 75, 90, 90, 105, 105, 120, 31, 46,
- 46, 61, 61, 76, 76, 91, 91, 106, 106, 121, 47, 62,
- 62, 77, 77, 92, 92, 107, 107, 122, 63, 78, 78, 93,
- 93, 108, 108, 123, 79, 94, 94, 109, 109, 124, 95, 110,
- 110, 125, 111, 126,
- 0, 0
+ 0, 0, 0, 0, 0, 0, 1, 1, 1, 16, 16, 16, 2, 2, 2,
+ 17, 17, 32, 32, 32, 3, 3, 3, 18, 18, 33, 33, 48, 48, 48,
+ 4, 4, 4, 19, 19, 34, 34, 49, 49, 64, 64, 64, 5, 5, 5,
+ 20, 20, 35, 35, 50, 50, 65, 65, 80, 80, 80, 6, 6, 6, 21,
+ 21, 36, 36, 51, 51, 66, 66, 81, 81, 96, 96, 96, 7, 7, 7,
+ 22, 22, 37, 37, 52, 52, 67, 67, 82, 82, 97, 97, 112, 8, 8,
+ 8, 23, 23, 38, 38, 53, 53, 68, 68, 83, 83, 98, 98, 113, 9,
+ 9, 9, 24, 24, 39, 39, 54, 54, 69, 69, 84, 84, 99, 99, 114,
+ 10, 10, 10, 25, 25, 40, 40, 55, 55, 70, 70, 85, 85, 100, 100,
+ 115, 11, 11, 11, 26, 26, 41, 41, 56, 56, 71, 71, 86, 86, 101,
+ 101, 116, 12, 12, 12, 27, 27, 42, 42, 57, 57, 72, 72, 87, 87,
+ 102, 102, 117, 13, 13, 13, 28, 28, 43, 43, 58, 58, 73, 73, 88,
+ 88, 103, 103, 118, 14, 14, 14, 29, 29, 44, 44, 59, 59, 74, 74,
+ 89, 89, 104, 104, 119, 15, 30, 30, 45, 45, 60, 60, 75, 75, 90,
+ 90, 105, 105, 120, 31, 46, 46, 61, 61, 76, 76, 91, 91, 106, 106,
+ 121, 47, 62, 62, 77, 77, 92, 92, 107, 107, 122, 63, 78, 78, 93,
+ 93, 108, 108, 123, 79, 94, 94, 109, 109, 124, 95, 110, 110, 125, 111,
+ 126, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mcol_scan_8x16_neighbors[129 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 8, 8, 16, 16, 24, 24, 32, 32,
- 40, 40, 48, 48, 56, 56, 64, 64, 72, 72, 80, 80,
- 88, 88, 96, 96, 104, 104, 112, 112, 0, 0, 1, 8,
- 9, 16, 17, 24, 25, 32, 33, 40, 41, 48, 49, 56,
- 57, 64, 65, 72, 73, 80, 81, 88, 89, 96, 97, 104,
- 105, 112, 113, 120, 1, 1, 2, 9, 10, 17, 18, 25,
- 26, 33, 34, 41, 42, 49, 50, 57, 58, 65, 66, 73,
- 74, 81, 82, 89, 90, 97, 98, 105, 106, 113, 114, 121,
- 2, 2, 3, 10, 11, 18, 19, 26, 27, 34, 35, 42,
- 43, 50, 51, 58, 59, 66, 67, 74, 75, 82, 83, 90,
- 91, 98, 99, 106, 107, 114, 115, 122, 3, 3, 4, 11,
- 12, 19, 20, 27, 28, 35, 36, 43, 44, 51, 52, 59,
- 60, 67, 68, 75, 76, 83, 84, 91, 92, 99, 100, 107,
- 108, 115, 116, 123, 4, 4, 5, 12, 13, 20, 21, 28,
- 29, 36, 37, 44, 45, 52, 53, 60, 61, 68, 69, 76,
- 77, 84, 85, 92, 93, 100, 101, 108, 109, 116, 117, 124,
- 5, 5, 6, 13, 14, 21, 22, 29, 30, 37, 38, 45,
- 46, 53, 54, 61, 62, 69, 70, 77, 78, 85, 86, 93,
- 94, 101, 102, 109, 110, 117, 118, 125, 6, 6, 7, 14,
- 15, 22, 23, 30, 31, 38, 39, 46, 47, 54, 55, 62,
- 63, 70, 71, 78, 79, 86, 87, 94, 95, 102, 103, 110,
- 111, 118, 119, 126,
- 0, 0
+ 0, 0, 0, 0, 8, 8, 16, 16, 24, 24, 32, 32, 40, 40, 48, 48,
+ 56, 56, 64, 64, 72, 72, 80, 80, 88, 88, 96, 96, 104, 104, 112, 112,
+ 0, 0, 1, 8, 9, 16, 17, 24, 25, 32, 33, 40, 41, 48, 49, 56,
+ 57, 64, 65, 72, 73, 80, 81, 88, 89, 96, 97, 104, 105, 112, 113, 120,
+ 1, 1, 2, 9, 10, 17, 18, 25, 26, 33, 34, 41, 42, 49, 50, 57,
+ 58, 65, 66, 73, 74, 81, 82, 89, 90, 97, 98, 105, 106, 113, 114, 121,
+ 2, 2, 3, 10, 11, 18, 19, 26, 27, 34, 35, 42, 43, 50, 51, 58,
+ 59, 66, 67, 74, 75, 82, 83, 90, 91, 98, 99, 106, 107, 114, 115, 122,
+ 3, 3, 4, 11, 12, 19, 20, 27, 28, 35, 36, 43, 44, 51, 52, 59,
+ 60, 67, 68, 75, 76, 83, 84, 91, 92, 99, 100, 107, 108, 115, 116, 123,
+ 4, 4, 5, 12, 13, 20, 21, 28, 29, 36, 37, 44, 45, 52, 53, 60,
+ 61, 68, 69, 76, 77, 84, 85, 92, 93, 100, 101, 108, 109, 116, 117, 124,
+ 5, 5, 6, 13, 14, 21, 22, 29, 30, 37, 38, 45, 46, 53, 54, 61,
+ 62, 69, 70, 77, 78, 85, 86, 93, 94, 101, 102, 109, 110, 117, 118, 125,
+ 6, 6, 7, 14, 15, 22, 23, 30, 31, 38, 39, 46, 47, 54, 55, 62,
+ 63, 70, 71, 78, 79, 86, 87, 94, 95, 102, 103, 110, 111, 118, 119, 126,
+ 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mcol_scan_16x8_neighbors[129 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 16, 16, 32, 32, 48, 48, 64, 64,
- 80, 80, 96, 96, 0, 0, 1, 16, 17, 32, 33, 48,
- 49, 64, 65, 80, 81, 96, 97, 112, 1, 1, 2, 17,
- 18, 33, 34, 49, 50, 65, 66, 81, 82, 97, 98, 113,
- 2, 2, 3, 18, 19, 34, 35, 50, 51, 66, 67, 82,
- 83, 98, 99, 114, 3, 3, 4, 19, 20, 35, 36, 51,
- 52, 67, 68, 83, 84, 99, 100, 115, 4, 4, 5, 20,
- 21, 36, 37, 52, 53, 68, 69, 84, 85, 100, 101, 116,
- 5, 5, 6, 21, 22, 37, 38, 53, 54, 69, 70, 85,
- 86, 101, 102, 117, 6, 6, 7, 22, 23, 38, 39, 54,
- 55, 70, 71, 86, 87, 102, 103, 118, 7, 7, 8, 23,
- 24, 39, 40, 55, 56, 71, 72, 87, 88, 103, 104, 119,
- 8, 8, 9, 24, 25, 40, 41, 56, 57, 72, 73, 88,
- 89, 104, 105, 120, 9, 9, 10, 25, 26, 41, 42, 57,
- 58, 73, 74, 89, 90, 105, 106, 121, 10, 10, 11, 26,
- 27, 42, 43, 58, 59, 74, 75, 90, 91, 106, 107, 122,
- 11, 11, 12, 27, 28, 43, 44, 59, 60, 75, 76, 91,
- 92, 107, 108, 123, 12, 12, 13, 28, 29, 44, 45, 60,
- 61, 76, 77, 92, 93, 108, 109, 124, 13, 13, 14, 29,
- 30, 45, 46, 61, 62, 77, 78, 93, 94, 109, 110, 125,
- 14, 14, 15, 30, 31, 46, 47, 62, 63, 78, 79, 94,
- 95, 110, 111, 126,
- 0, 0
+ 0, 0, 0, 0, 16, 16, 32, 32, 48, 48, 64, 64, 80, 80, 96, 96,
+ 0, 0, 1, 16, 17, 32, 33, 48, 49, 64, 65, 80, 81, 96, 97, 112,
+ 1, 1, 2, 17, 18, 33, 34, 49, 50, 65, 66, 81, 82, 97, 98, 113,
+ 2, 2, 3, 18, 19, 34, 35, 50, 51, 66, 67, 82, 83, 98, 99, 114,
+ 3, 3, 4, 19, 20, 35, 36, 51, 52, 67, 68, 83, 84, 99, 100, 115,
+ 4, 4, 5, 20, 21, 36, 37, 52, 53, 68, 69, 84, 85, 100, 101, 116,
+ 5, 5, 6, 21, 22, 37, 38, 53, 54, 69, 70, 85, 86, 101, 102, 117,
+ 6, 6, 7, 22, 23, 38, 39, 54, 55, 70, 71, 86, 87, 102, 103, 118,
+ 7, 7, 8, 23, 24, 39, 40, 55, 56, 71, 72, 87, 88, 103, 104, 119,
+ 8, 8, 9, 24, 25, 40, 41, 56, 57, 72, 73, 88, 89, 104, 105, 120,
+ 9, 9, 10, 25, 26, 41, 42, 57, 58, 73, 74, 89, 90, 105, 106, 121,
+ 10, 10, 11, 26, 27, 42, 43, 58, 59, 74, 75, 90, 91, 106, 107, 122,
+ 11, 11, 12, 27, 28, 43, 44, 59, 60, 75, 76, 91, 92, 107, 108, 123,
+ 12, 12, 13, 28, 29, 44, 45, 60, 61, 76, 77, 92, 93, 108, 109, 124,
+ 13, 13, 14, 29, 30, 45, 46, 61, 62, 77, 78, 93, 94, 109, 110, 125,
+ 14, 14, 15, 30, 31, 46, 47, 62, 63, 78, 79, 94, 95, 110, 111, 126,
+ 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mrow_scan_8x16_neighbors[129 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
- 5, 5, 6, 6, 0, 0, 1, 8, 2, 9, 3, 10,
- 4, 11, 5, 12, 6, 13, 7, 14, 8, 8, 9, 16,
- 10, 17, 11, 18, 12, 19, 13, 20, 14, 21, 15, 22,
- 16, 16, 17, 24, 18, 25, 19, 26, 20, 27, 21, 28,
- 22, 29, 23, 30, 24, 24, 25, 32, 26, 33, 27, 34,
- 28, 35, 29, 36, 30, 37, 31, 38, 32, 32, 33, 40,
- 34, 41, 35, 42, 36, 43, 37, 44, 38, 45, 39, 46,
- 40, 40, 41, 48, 42, 49, 43, 50, 44, 51, 45, 52,
- 46, 53, 47, 54, 48, 48, 49, 56, 50, 57, 51, 58,
- 52, 59, 53, 60, 54, 61, 55, 62, 56, 56, 57, 64,
- 58, 65, 59, 66, 60, 67, 61, 68, 62, 69, 63, 70,
- 64, 64, 65, 72, 66, 73, 67, 74, 68, 75, 69, 76,
- 70, 77, 71, 78, 72, 72, 73, 80, 74, 81, 75, 82,
- 76, 83, 77, 84, 78, 85, 79, 86, 80, 80, 81, 88,
- 82, 89, 83, 90, 84, 91, 85, 92, 86, 93, 87, 94,
- 88, 88, 89, 96, 90, 97, 91, 98, 92, 99, 93, 100,
- 94, 101, 95, 102, 96, 96, 97, 104, 98, 105, 99, 106,
- 100, 107, 101, 108, 102, 109, 103, 110, 104, 104, 105, 112,
- 106, 113, 107, 114, 108, 115, 109, 116, 110, 117, 111, 118,
- 112, 112, 113, 120, 114, 121, 115, 122, 116, 123, 117, 124,
- 118, 125, 119, 126,
- 0, 0
+ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
+ 6, 0, 0, 1, 8, 2, 9, 3, 10, 4, 11, 5, 12, 6, 13,
+ 7, 14, 8, 8, 9, 16, 10, 17, 11, 18, 12, 19, 13, 20, 14,
+ 21, 15, 22, 16, 16, 17, 24, 18, 25, 19, 26, 20, 27, 21, 28,
+ 22, 29, 23, 30, 24, 24, 25, 32, 26, 33, 27, 34, 28, 35, 29,
+ 36, 30, 37, 31, 38, 32, 32, 33, 40, 34, 41, 35, 42, 36, 43,
+ 37, 44, 38, 45, 39, 46, 40, 40, 41, 48, 42, 49, 43, 50, 44,
+ 51, 45, 52, 46, 53, 47, 54, 48, 48, 49, 56, 50, 57, 51, 58,
+ 52, 59, 53, 60, 54, 61, 55, 62, 56, 56, 57, 64, 58, 65, 59,
+ 66, 60, 67, 61, 68, 62, 69, 63, 70, 64, 64, 65, 72, 66, 73,
+ 67, 74, 68, 75, 69, 76, 70, 77, 71, 78, 72, 72, 73, 80, 74,
+ 81, 75, 82, 76, 83, 77, 84, 78, 85, 79, 86, 80, 80, 81, 88,
+ 82, 89, 83, 90, 84, 91, 85, 92, 86, 93, 87, 94, 88, 88, 89,
+ 96, 90, 97, 91, 98, 92, 99, 93, 100, 94, 101, 95, 102, 96, 96,
+ 97, 104, 98, 105, 99, 106, 100, 107, 101, 108, 102, 109, 103, 110, 104,
+ 104, 105, 112, 106, 113, 107, 114, 108, 115, 109, 116, 110, 117, 111, 118,
+ 112, 112, 113, 120, 114, 121, 115, 122, 116, 123, 117, 124, 118, 125, 119,
+ 126, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mrow_scan_16x8_neighbors[129 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
- 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10,
- 11, 11, 12, 12, 13, 13, 14, 14, 0, 0, 1, 16,
- 2, 17, 3, 18, 4, 19, 5, 20, 6, 21, 7, 22,
- 8, 23, 9, 24, 10, 25, 11, 26, 12, 27, 13, 28,
- 14, 29, 15, 30, 16, 16, 17, 32, 18, 33, 19, 34,
- 20, 35, 21, 36, 22, 37, 23, 38, 24, 39, 25, 40,
- 26, 41, 27, 42, 28, 43, 29, 44, 30, 45, 31, 46,
- 32, 32, 33, 48, 34, 49, 35, 50, 36, 51, 37, 52,
- 38, 53, 39, 54, 40, 55, 41, 56, 42, 57, 43, 58,
- 44, 59, 45, 60, 46, 61, 47, 62, 48, 48, 49, 64,
- 50, 65, 51, 66, 52, 67, 53, 68, 54, 69, 55, 70,
- 56, 71, 57, 72, 58, 73, 59, 74, 60, 75, 61, 76,
- 62, 77, 63, 78, 64, 64, 65, 80, 66, 81, 67, 82,
- 68, 83, 69, 84, 70, 85, 71, 86, 72, 87, 73, 88,
- 74, 89, 75, 90, 76, 91, 77, 92, 78, 93, 79, 94,
- 80, 80, 81, 96, 82, 97, 83, 98, 84, 99, 85, 100,
- 86, 101, 87, 102, 88, 103, 89, 104, 90, 105, 91, 106,
- 92, 107, 93, 108, 94, 109, 95, 110, 96, 96, 97, 112,
- 98, 113, 99, 114, 100, 115, 101, 116, 102, 117, 103, 118,
- 104, 119, 105, 120, 106, 121, 107, 122, 108, 123, 109, 124,
- 110, 125, 111, 126,
- 0, 0
+ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
+ 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13,
+ 14, 14, 0, 0, 1, 16, 2, 17, 3, 18, 4, 19, 5, 20, 6,
+ 21, 7, 22, 8, 23, 9, 24, 10, 25, 11, 26, 12, 27, 13, 28,
+ 14, 29, 15, 30, 16, 16, 17, 32, 18, 33, 19, 34, 20, 35, 21,
+ 36, 22, 37, 23, 38, 24, 39, 25, 40, 26, 41, 27, 42, 28, 43,
+ 29, 44, 30, 45, 31, 46, 32, 32, 33, 48, 34, 49, 35, 50, 36,
+ 51, 37, 52, 38, 53, 39, 54, 40, 55, 41, 56, 42, 57, 43, 58,
+ 44, 59, 45, 60, 46, 61, 47, 62, 48, 48, 49, 64, 50, 65, 51,
+ 66, 52, 67, 53, 68, 54, 69, 55, 70, 56, 71, 57, 72, 58, 73,
+ 59, 74, 60, 75, 61, 76, 62, 77, 63, 78, 64, 64, 65, 80, 66,
+ 81, 67, 82, 68, 83, 69, 84, 70, 85, 71, 86, 72, 87, 73, 88,
+ 74, 89, 75, 90, 76, 91, 77, 92, 78, 93, 79, 94, 80, 80, 81,
+ 96, 82, 97, 83, 98, 84, 99, 85, 100, 86, 101, 87, 102, 88, 103,
+ 89, 104, 90, 105, 91, 106, 92, 107, 93, 108, 94, 109, 95, 110, 96,
+ 96, 97, 112, 98, 113, 99, 114, 100, 115, 101, 116, 102, 117, 103, 118,
+ 104, 119, 105, 120, 106, 121, 107, 122, 108, 123, 109, 124, 110, 125, 111,
+ 126, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
default_scan_16x32_neighbors[513 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 0, 0, 1, 1, 1, 16, 16, 16,
- 2, 2, 2, 17, 17, 32, 32, 32, 3, 3, 3, 18,
- 18, 33, 33, 48, 48, 48, 4, 4, 4, 19, 19, 34,
- 34, 49, 49, 64, 64, 64, 5, 5, 5, 20, 20, 35,
- 35, 50, 50, 65, 65, 80, 80, 80, 6, 6, 6, 21,
- 21, 36, 36, 51, 51, 66, 66, 81, 81, 96, 96, 96,
- 7, 7, 7, 22, 22, 37, 37, 52, 52, 67, 67, 82,
- 82, 97, 97, 112, 112, 112, 8, 8, 8, 23, 23, 38,
- 38, 53, 53, 68, 68, 83, 83, 98, 98, 113, 113, 128,
- 128, 128, 9, 9, 9, 24, 24, 39, 39, 54, 54, 69,
- 69, 84, 84, 99, 99, 114, 114, 129, 129, 144, 144, 144,
- 10, 10, 10, 25, 25, 40, 40, 55, 55, 70, 70, 85,
- 85, 100, 100, 115, 115, 130, 130, 145, 145, 160, 160, 160,
- 11, 11, 11, 26, 26, 41, 41, 56, 56, 71, 71, 86,
- 86, 101, 101, 116, 116, 131, 131, 146, 146, 161, 161, 176,
- 176, 176, 12, 12, 12, 27, 27, 42, 42, 57, 57, 72,
- 72, 87, 87, 102, 102, 117, 117, 132, 132, 147, 147, 162,
- 162, 177, 177, 192, 192, 192, 13, 13, 13, 28, 28, 43,
- 43, 58, 58, 73, 73, 88, 88, 103, 103, 118, 118, 133,
- 133, 148, 148, 163, 163, 178, 178, 193, 193, 208, 208, 208,
- 14, 14, 14, 29, 29, 44, 44, 59, 59, 74, 74, 89,
- 89, 104, 104, 119, 119, 134, 134, 149, 149, 164, 164, 179,
- 179, 194, 194, 209, 209, 224, 224, 224, 15, 30, 30, 45,
- 45, 60, 60, 75, 75, 90, 90, 105, 105, 120, 120, 135,
- 135, 150, 150, 165, 165, 180, 180, 195, 195, 210, 210, 225,
- 225, 240, 240, 240, 31, 46, 46, 61, 61, 76, 76, 91,
- 91, 106, 106, 121, 121, 136, 136, 151, 151, 166, 166, 181,
- 181, 196, 196, 211, 211, 226, 226, 241, 241, 256, 256, 256,
- 47, 62, 62, 77, 77, 92, 92, 107, 107, 122, 122, 137,
- 137, 152, 152, 167, 167, 182, 182, 197, 197, 212, 212, 227,
- 227, 242, 242, 257, 257, 272, 272, 272, 63, 78, 78, 93,
- 93, 108, 108, 123, 123, 138, 138, 153, 153, 168, 168, 183,
- 183, 198, 198, 213, 213, 228, 228, 243, 243, 258, 258, 273,
- 273, 288, 288, 288, 79, 94, 94, 109, 109, 124, 124, 139,
- 139, 154, 154, 169, 169, 184, 184, 199, 199, 214, 214, 229,
- 229, 244, 244, 259, 259, 274, 274, 289, 289, 304, 304, 304,
- 95, 110, 110, 125, 125, 140, 140, 155, 155, 170, 170, 185,
- 185, 200, 200, 215, 215, 230, 230, 245, 245, 260, 260, 275,
- 275, 290, 290, 305, 305, 320, 320, 320, 111, 126, 126, 141,
- 141, 156, 156, 171, 171, 186, 186, 201, 201, 216, 216, 231,
- 231, 246, 246, 261, 261, 276, 276, 291, 291, 306, 306, 321,
- 321, 336, 336, 336, 127, 142, 142, 157, 157, 172, 172, 187,
- 187, 202, 202, 217, 217, 232, 232, 247, 247, 262, 262, 277,
- 277, 292, 292, 307, 307, 322, 322, 337, 337, 352, 352, 352,
- 143, 158, 158, 173, 173, 188, 188, 203, 203, 218, 218, 233,
- 233, 248, 248, 263, 263, 278, 278, 293, 293, 308, 308, 323,
- 323, 338, 338, 353, 353, 368, 368, 368, 159, 174, 174, 189,
- 189, 204, 204, 219, 219, 234, 234, 249, 249, 264, 264, 279,
- 279, 294, 294, 309, 309, 324, 324, 339, 339, 354, 354, 369,
- 369, 384, 384, 384, 175, 190, 190, 205, 205, 220, 220, 235,
- 235, 250, 250, 265, 265, 280, 280, 295, 295, 310, 310, 325,
- 325, 340, 340, 355, 355, 370, 370, 385, 385, 400, 400, 400,
- 191, 206, 206, 221, 221, 236, 236, 251, 251, 266, 266, 281,
- 281, 296, 296, 311, 311, 326, 326, 341, 341, 356, 356, 371,
- 371, 386, 386, 401, 401, 416, 416, 416, 207, 222, 222, 237,
- 237, 252, 252, 267, 267, 282, 282, 297, 297, 312, 312, 327,
- 327, 342, 342, 357, 357, 372, 372, 387, 387, 402, 402, 417,
- 417, 432, 432, 432, 223, 238, 238, 253, 253, 268, 268, 283,
- 283, 298, 298, 313, 313, 328, 328, 343, 343, 358, 358, 373,
- 373, 388, 388, 403, 403, 418, 418, 433, 433, 448, 448, 448,
- 239, 254, 254, 269, 269, 284, 284, 299, 299, 314, 314, 329,
- 329, 344, 344, 359, 359, 374, 374, 389, 389, 404, 404, 419,
- 419, 434, 434, 449, 449, 464, 464, 464, 255, 270, 270, 285,
- 285, 300, 300, 315, 315, 330, 330, 345, 345, 360, 360, 375,
- 375, 390, 390, 405, 405, 420, 420, 435, 435, 450, 450, 465,
- 465, 480, 480, 480, 271, 286, 286, 301, 301, 316, 316, 331,
- 331, 346, 346, 361, 361, 376, 376, 391, 391, 406, 406, 421,
- 421, 436, 436, 451, 451, 466, 466, 481, 481, 496, 287, 302,
- 302, 317, 317, 332, 332, 347, 347, 362, 362, 377, 377, 392,
- 392, 407, 407, 422, 422, 437, 437, 452, 452, 467, 467, 482,
- 482, 497, 303, 318, 318, 333, 333, 348, 348, 363, 363, 378,
- 378, 393, 393, 408, 408, 423, 423, 438, 438, 453, 453, 468,
- 468, 483, 483, 498, 319, 334, 334, 349, 349, 364, 364, 379,
- 379, 394, 394, 409, 409, 424, 424, 439, 439, 454, 454, 469,
- 469, 484, 484, 499, 335, 350, 350, 365, 365, 380, 380, 395,
- 395, 410, 410, 425, 425, 440, 440, 455, 455, 470, 470, 485,
- 485, 500, 351, 366, 366, 381, 381, 396, 396, 411, 411, 426,
- 426, 441, 441, 456, 456, 471, 471, 486, 486, 501, 367, 382,
- 382, 397, 397, 412, 412, 427, 427, 442, 442, 457, 457, 472,
- 472, 487, 487, 502, 383, 398, 398, 413, 413, 428, 428, 443,
- 443, 458, 458, 473, 473, 488, 488, 503, 399, 414, 414, 429,
- 429, 444, 444, 459, 459, 474, 474, 489, 489, 504, 415, 430,
- 430, 445, 445, 460, 460, 475, 475, 490, 490, 505, 431, 446,
- 446, 461, 461, 476, 476, 491, 491, 506, 447, 462, 462, 477,
- 477, 492, 492, 507, 463, 478, 478, 493, 493, 508, 479, 494,
- 494, 509, 495, 510,
- 0, 0
+ 0, 0, 0, 0, 0, 0, 1, 1, 1, 16, 16, 16, 2, 2, 2,
+ 17, 17, 32, 32, 32, 3, 3, 3, 18, 18, 33, 33, 48, 48, 48,
+ 4, 4, 4, 19, 19, 34, 34, 49, 49, 64, 64, 64, 5, 5, 5,
+ 20, 20, 35, 35, 50, 50, 65, 65, 80, 80, 80, 6, 6, 6, 21,
+ 21, 36, 36, 51, 51, 66, 66, 81, 81, 96, 96, 96, 7, 7, 7,
+ 22, 22, 37, 37, 52, 52, 67, 67, 82, 82, 97, 97, 112, 112, 112,
+ 8, 8, 8, 23, 23, 38, 38, 53, 53, 68, 68, 83, 83, 98, 98,
+ 113, 113, 128, 128, 128, 9, 9, 9, 24, 24, 39, 39, 54, 54, 69,
+ 69, 84, 84, 99, 99, 114, 114, 129, 129, 144, 144, 144, 10, 10, 10,
+ 25, 25, 40, 40, 55, 55, 70, 70, 85, 85, 100, 100, 115, 115, 130,
+ 130, 145, 145, 160, 160, 160, 11, 11, 11, 26, 26, 41, 41, 56, 56,
+ 71, 71, 86, 86, 101, 101, 116, 116, 131, 131, 146, 146, 161, 161, 176,
+ 176, 176, 12, 12, 12, 27, 27, 42, 42, 57, 57, 72, 72, 87, 87,
+ 102, 102, 117, 117, 132, 132, 147, 147, 162, 162, 177, 177, 192, 192, 192,
+ 13, 13, 13, 28, 28, 43, 43, 58, 58, 73, 73, 88, 88, 103, 103,
+ 118, 118, 133, 133, 148, 148, 163, 163, 178, 178, 193, 193, 208, 208, 208,
+ 14, 14, 14, 29, 29, 44, 44, 59, 59, 74, 74, 89, 89, 104, 104,
+ 119, 119, 134, 134, 149, 149, 164, 164, 179, 179, 194, 194, 209, 209, 224,
+ 224, 224, 15, 30, 30, 45, 45, 60, 60, 75, 75, 90, 90, 105, 105,
+ 120, 120, 135, 135, 150, 150, 165, 165, 180, 180, 195, 195, 210, 210, 225,
+ 225, 240, 240, 240, 31, 46, 46, 61, 61, 76, 76, 91, 91, 106, 106,
+ 121, 121, 136, 136, 151, 151, 166, 166, 181, 181, 196, 196, 211, 211, 226,
+ 226, 241, 241, 256, 256, 256, 47, 62, 62, 77, 77, 92, 92, 107, 107,
+ 122, 122, 137, 137, 152, 152, 167, 167, 182, 182, 197, 197, 212, 212, 227,
+ 227, 242, 242, 257, 257, 272, 272, 272, 63, 78, 78, 93, 93, 108, 108,
+ 123, 123, 138, 138, 153, 153, 168, 168, 183, 183, 198, 198, 213, 213, 228,
+ 228, 243, 243, 258, 258, 273, 273, 288, 288, 288, 79, 94, 94, 109, 109,
+ 124, 124, 139, 139, 154, 154, 169, 169, 184, 184, 199, 199, 214, 214, 229,
+ 229, 244, 244, 259, 259, 274, 274, 289, 289, 304, 304, 304, 95, 110, 110,
+ 125, 125, 140, 140, 155, 155, 170, 170, 185, 185, 200, 200, 215, 215, 230,
+ 230, 245, 245, 260, 260, 275, 275, 290, 290, 305, 305, 320, 320, 320, 111,
+ 126, 126, 141, 141, 156, 156, 171, 171, 186, 186, 201, 201, 216, 216, 231,
+ 231, 246, 246, 261, 261, 276, 276, 291, 291, 306, 306, 321, 321, 336, 336,
+ 336, 127, 142, 142, 157, 157, 172, 172, 187, 187, 202, 202, 217, 217, 232,
+ 232, 247, 247, 262, 262, 277, 277, 292, 292, 307, 307, 322, 322, 337, 337,
+ 352, 352, 352, 143, 158, 158, 173, 173, 188, 188, 203, 203, 218, 218, 233,
+ 233, 248, 248, 263, 263, 278, 278, 293, 293, 308, 308, 323, 323, 338, 338,
+ 353, 353, 368, 368, 368, 159, 174, 174, 189, 189, 204, 204, 219, 219, 234,
+ 234, 249, 249, 264, 264, 279, 279, 294, 294, 309, 309, 324, 324, 339, 339,
+ 354, 354, 369, 369, 384, 384, 384, 175, 190, 190, 205, 205, 220, 220, 235,
+ 235, 250, 250, 265, 265, 280, 280, 295, 295, 310, 310, 325, 325, 340, 340,
+ 355, 355, 370, 370, 385, 385, 400, 400, 400, 191, 206, 206, 221, 221, 236,
+ 236, 251, 251, 266, 266, 281, 281, 296, 296, 311, 311, 326, 326, 341, 341,
+ 356, 356, 371, 371, 386, 386, 401, 401, 416, 416, 416, 207, 222, 222, 237,
+ 237, 252, 252, 267, 267, 282, 282, 297, 297, 312, 312, 327, 327, 342, 342,
+ 357, 357, 372, 372, 387, 387, 402, 402, 417, 417, 432, 432, 432, 223, 238,
+ 238, 253, 253, 268, 268, 283, 283, 298, 298, 313, 313, 328, 328, 343, 343,
+ 358, 358, 373, 373, 388, 388, 403, 403, 418, 418, 433, 433, 448, 448, 448,
+ 239, 254, 254, 269, 269, 284, 284, 299, 299, 314, 314, 329, 329, 344, 344,
+ 359, 359, 374, 374, 389, 389, 404, 404, 419, 419, 434, 434, 449, 449, 464,
+ 464, 464, 255, 270, 270, 285, 285, 300, 300, 315, 315, 330, 330, 345, 345,
+ 360, 360, 375, 375, 390, 390, 405, 405, 420, 420, 435, 435, 450, 450, 465,
+ 465, 480, 480, 480, 271, 286, 286, 301, 301, 316, 316, 331, 331, 346, 346,
+ 361, 361, 376, 376, 391, 391, 406, 406, 421, 421, 436, 436, 451, 451, 466,
+ 466, 481, 481, 496, 287, 302, 302, 317, 317, 332, 332, 347, 347, 362, 362,
+ 377, 377, 392, 392, 407, 407, 422, 422, 437, 437, 452, 452, 467, 467, 482,
+ 482, 497, 303, 318, 318, 333, 333, 348, 348, 363, 363, 378, 378, 393, 393,
+ 408, 408, 423, 423, 438, 438, 453, 453, 468, 468, 483, 483, 498, 319, 334,
+ 334, 349, 349, 364, 364, 379, 379, 394, 394, 409, 409, 424, 424, 439, 439,
+ 454, 454, 469, 469, 484, 484, 499, 335, 350, 350, 365, 365, 380, 380, 395,
+ 395, 410, 410, 425, 425, 440, 440, 455, 455, 470, 470, 485, 485, 500, 351,
+ 366, 366, 381, 381, 396, 396, 411, 411, 426, 426, 441, 441, 456, 456, 471,
+ 471, 486, 486, 501, 367, 382, 382, 397, 397, 412, 412, 427, 427, 442, 442,
+ 457, 457, 472, 472, 487, 487, 502, 383, 398, 398, 413, 413, 428, 428, 443,
+ 443, 458, 458, 473, 473, 488, 488, 503, 399, 414, 414, 429, 429, 444, 444,
+ 459, 459, 474, 474, 489, 489, 504, 415, 430, 430, 445, 445, 460, 460, 475,
+ 475, 490, 490, 505, 431, 446, 446, 461, 461, 476, 476, 491, 491, 506, 447,
+ 462, 462, 477, 477, 492, 492, 507, 463, 478, 478, 493, 493, 508, 479, 494,
+ 494, 509, 495, 510, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
default_scan_32x16_neighbors[513 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 0, 0, 1, 1, 1, 32, 32, 32,
- 2, 2, 2, 33, 33, 64, 64, 64, 3, 3, 3, 34,
- 34, 65, 65, 96, 96, 96, 4, 4, 4, 35, 35, 66,
- 66, 97, 97, 128, 128, 128, 5, 5, 5, 36, 36, 67,
- 67, 98, 98, 129, 129, 160, 160, 160, 6, 6, 6, 37,
- 37, 68, 68, 99, 99, 130, 130, 161, 161, 192, 192, 192,
- 7, 7, 7, 38, 38, 69, 69, 100, 100, 131, 131, 162,
- 162, 193, 193, 224, 224, 224, 8, 8, 8, 39, 39, 70,
- 70, 101, 101, 132, 132, 163, 163, 194, 194, 225, 225, 256,
- 256, 256, 9, 9, 9, 40, 40, 71, 71, 102, 102, 133,
- 133, 164, 164, 195, 195, 226, 226, 257, 257, 288, 288, 288,
- 10, 10, 10, 41, 41, 72, 72, 103, 103, 134, 134, 165,
- 165, 196, 196, 227, 227, 258, 258, 289, 289, 320, 320, 320,
- 11, 11, 11, 42, 42, 73, 73, 104, 104, 135, 135, 166,
- 166, 197, 197, 228, 228, 259, 259, 290, 290, 321, 321, 352,
- 352, 352, 12, 12, 12, 43, 43, 74, 74, 105, 105, 136,
- 136, 167, 167, 198, 198, 229, 229, 260, 260, 291, 291, 322,
- 322, 353, 353, 384, 384, 384, 13, 13, 13, 44, 44, 75,
- 75, 106, 106, 137, 137, 168, 168, 199, 199, 230, 230, 261,
- 261, 292, 292, 323, 323, 354, 354, 385, 385, 416, 416, 416,
- 14, 14, 14, 45, 45, 76, 76, 107, 107, 138, 138, 169,
- 169, 200, 200, 231, 231, 262, 262, 293, 293, 324, 324, 355,
- 355, 386, 386, 417, 417, 448, 448, 448, 15, 15, 15, 46,
- 46, 77, 77, 108, 108, 139, 139, 170, 170, 201, 201, 232,
- 232, 263, 263, 294, 294, 325, 325, 356, 356, 387, 387, 418,
- 418, 449, 449, 480, 16, 16, 16, 47, 47, 78, 78, 109,
- 109, 140, 140, 171, 171, 202, 202, 233, 233, 264, 264, 295,
- 295, 326, 326, 357, 357, 388, 388, 419, 419, 450, 450, 481,
- 17, 17, 17, 48, 48, 79, 79, 110, 110, 141, 141, 172,
- 172, 203, 203, 234, 234, 265, 265, 296, 296, 327, 327, 358,
- 358, 389, 389, 420, 420, 451, 451, 482, 18, 18, 18, 49,
- 49, 80, 80, 111, 111, 142, 142, 173, 173, 204, 204, 235,
- 235, 266, 266, 297, 297, 328, 328, 359, 359, 390, 390, 421,
- 421, 452, 452, 483, 19, 19, 19, 50, 50, 81, 81, 112,
- 112, 143, 143, 174, 174, 205, 205, 236, 236, 267, 267, 298,
- 298, 329, 329, 360, 360, 391, 391, 422, 422, 453, 453, 484,
- 20, 20, 20, 51, 51, 82, 82, 113, 113, 144, 144, 175,
- 175, 206, 206, 237, 237, 268, 268, 299, 299, 330, 330, 361,
- 361, 392, 392, 423, 423, 454, 454, 485, 21, 21, 21, 52,
- 52, 83, 83, 114, 114, 145, 145, 176, 176, 207, 207, 238,
- 238, 269, 269, 300, 300, 331, 331, 362, 362, 393, 393, 424,
- 424, 455, 455, 486, 22, 22, 22, 53, 53, 84, 84, 115,
- 115, 146, 146, 177, 177, 208, 208, 239, 239, 270, 270, 301,
- 301, 332, 332, 363, 363, 394, 394, 425, 425, 456, 456, 487,
- 23, 23, 23, 54, 54, 85, 85, 116, 116, 147, 147, 178,
- 178, 209, 209, 240, 240, 271, 271, 302, 302, 333, 333, 364,
- 364, 395, 395, 426, 426, 457, 457, 488, 24, 24, 24, 55,
- 55, 86, 86, 117, 117, 148, 148, 179, 179, 210, 210, 241,
- 241, 272, 272, 303, 303, 334, 334, 365, 365, 396, 396, 427,
- 427, 458, 458, 489, 25, 25, 25, 56, 56, 87, 87, 118,
- 118, 149, 149, 180, 180, 211, 211, 242, 242, 273, 273, 304,
- 304, 335, 335, 366, 366, 397, 397, 428, 428, 459, 459, 490,
- 26, 26, 26, 57, 57, 88, 88, 119, 119, 150, 150, 181,
- 181, 212, 212, 243, 243, 274, 274, 305, 305, 336, 336, 367,
- 367, 398, 398, 429, 429, 460, 460, 491, 27, 27, 27, 58,
- 58, 89, 89, 120, 120, 151, 151, 182, 182, 213, 213, 244,
- 244, 275, 275, 306, 306, 337, 337, 368, 368, 399, 399, 430,
- 430, 461, 461, 492, 28, 28, 28, 59, 59, 90, 90, 121,
- 121, 152, 152, 183, 183, 214, 214, 245, 245, 276, 276, 307,
- 307, 338, 338, 369, 369, 400, 400, 431, 431, 462, 462, 493,
- 29, 29, 29, 60, 60, 91, 91, 122, 122, 153, 153, 184,
- 184, 215, 215, 246, 246, 277, 277, 308, 308, 339, 339, 370,
- 370, 401, 401, 432, 432, 463, 463, 494, 30, 30, 30, 61,
- 61, 92, 92, 123, 123, 154, 154, 185, 185, 216, 216, 247,
- 247, 278, 278, 309, 309, 340, 340, 371, 371, 402, 402, 433,
- 433, 464, 464, 495, 31, 62, 62, 93, 93, 124, 124, 155,
- 155, 186, 186, 217, 217, 248, 248, 279, 279, 310, 310, 341,
- 341, 372, 372, 403, 403, 434, 434, 465, 465, 496, 63, 94,
- 94, 125, 125, 156, 156, 187, 187, 218, 218, 249, 249, 280,
- 280, 311, 311, 342, 342, 373, 373, 404, 404, 435, 435, 466,
- 466, 497, 95, 126, 126, 157, 157, 188, 188, 219, 219, 250,
- 250, 281, 281, 312, 312, 343, 343, 374, 374, 405, 405, 436,
- 436, 467, 467, 498, 127, 158, 158, 189, 189, 220, 220, 251,
- 251, 282, 282, 313, 313, 344, 344, 375, 375, 406, 406, 437,
- 437, 468, 468, 499, 159, 190, 190, 221, 221, 252, 252, 283,
- 283, 314, 314, 345, 345, 376, 376, 407, 407, 438, 438, 469,
- 469, 500, 191, 222, 222, 253, 253, 284, 284, 315, 315, 346,
- 346, 377, 377, 408, 408, 439, 439, 470, 470, 501, 223, 254,
- 254, 285, 285, 316, 316, 347, 347, 378, 378, 409, 409, 440,
- 440, 471, 471, 502, 255, 286, 286, 317, 317, 348, 348, 379,
- 379, 410, 410, 441, 441, 472, 472, 503, 287, 318, 318, 349,
- 349, 380, 380, 411, 411, 442, 442, 473, 473, 504, 319, 350,
- 350, 381, 381, 412, 412, 443, 443, 474, 474, 505, 351, 382,
- 382, 413, 413, 444, 444, 475, 475, 506, 383, 414, 414, 445,
- 445, 476, 476, 507, 415, 446, 446, 477, 477, 508, 447, 478,
- 478, 509, 479, 510,
- 0, 0
+ 0, 0, 0, 0, 0, 0, 1, 1, 1, 32, 32, 32, 2, 2, 2,
+ 33, 33, 64, 64, 64, 3, 3, 3, 34, 34, 65, 65, 96, 96, 96,
+ 4, 4, 4, 35, 35, 66, 66, 97, 97, 128, 128, 128, 5, 5, 5,
+ 36, 36, 67, 67, 98, 98, 129, 129, 160, 160, 160, 6, 6, 6, 37,
+ 37, 68, 68, 99, 99, 130, 130, 161, 161, 192, 192, 192, 7, 7, 7,
+ 38, 38, 69, 69, 100, 100, 131, 131, 162, 162, 193, 193, 224, 224, 224,
+ 8, 8, 8, 39, 39, 70, 70, 101, 101, 132, 132, 163, 163, 194, 194,
+ 225, 225, 256, 256, 256, 9, 9, 9, 40, 40, 71, 71, 102, 102, 133,
+ 133, 164, 164, 195, 195, 226, 226, 257, 257, 288, 288, 288, 10, 10, 10,
+ 41, 41, 72, 72, 103, 103, 134, 134, 165, 165, 196, 196, 227, 227, 258,
+ 258, 289, 289, 320, 320, 320, 11, 11, 11, 42, 42, 73, 73, 104, 104,
+ 135, 135, 166, 166, 197, 197, 228, 228, 259, 259, 290, 290, 321, 321, 352,
+ 352, 352, 12, 12, 12, 43, 43, 74, 74, 105, 105, 136, 136, 167, 167,
+ 198, 198, 229, 229, 260, 260, 291, 291, 322, 322, 353, 353, 384, 384, 384,
+ 13, 13, 13, 44, 44, 75, 75, 106, 106, 137, 137, 168, 168, 199, 199,
+ 230, 230, 261, 261, 292, 292, 323, 323, 354, 354, 385, 385, 416, 416, 416,
+ 14, 14, 14, 45, 45, 76, 76, 107, 107, 138, 138, 169, 169, 200, 200,
+ 231, 231, 262, 262, 293, 293, 324, 324, 355, 355, 386, 386, 417, 417, 448,
+ 448, 448, 15, 15, 15, 46, 46, 77, 77, 108, 108, 139, 139, 170, 170,
+ 201, 201, 232, 232, 263, 263, 294, 294, 325, 325, 356, 356, 387, 387, 418,
+ 418, 449, 449, 480, 16, 16, 16, 47, 47, 78, 78, 109, 109, 140, 140,
+ 171, 171, 202, 202, 233, 233, 264, 264, 295, 295, 326, 326, 357, 357, 388,
+ 388, 419, 419, 450, 450, 481, 17, 17, 17, 48, 48, 79, 79, 110, 110,
+ 141, 141, 172, 172, 203, 203, 234, 234, 265, 265, 296, 296, 327, 327, 358,
+ 358, 389, 389, 420, 420, 451, 451, 482, 18, 18, 18, 49, 49, 80, 80,
+ 111, 111, 142, 142, 173, 173, 204, 204, 235, 235, 266, 266, 297, 297, 328,
+ 328, 359, 359, 390, 390, 421, 421, 452, 452, 483, 19, 19, 19, 50, 50,
+ 81, 81, 112, 112, 143, 143, 174, 174, 205, 205, 236, 236, 267, 267, 298,
+ 298, 329, 329, 360, 360, 391, 391, 422, 422, 453, 453, 484, 20, 20, 20,
+ 51, 51, 82, 82, 113, 113, 144, 144, 175, 175, 206, 206, 237, 237, 268,
+ 268, 299, 299, 330, 330, 361, 361, 392, 392, 423, 423, 454, 454, 485, 21,
+ 21, 21, 52, 52, 83, 83, 114, 114, 145, 145, 176, 176, 207, 207, 238,
+ 238, 269, 269, 300, 300, 331, 331, 362, 362, 393, 393, 424, 424, 455, 455,
+ 486, 22, 22, 22, 53, 53, 84, 84, 115, 115, 146, 146, 177, 177, 208,
+ 208, 239, 239, 270, 270, 301, 301, 332, 332, 363, 363, 394, 394, 425, 425,
+ 456, 456, 487, 23, 23, 23, 54, 54, 85, 85, 116, 116, 147, 147, 178,
+ 178, 209, 209, 240, 240, 271, 271, 302, 302, 333, 333, 364, 364, 395, 395,
+ 426, 426, 457, 457, 488, 24, 24, 24, 55, 55, 86, 86, 117, 117, 148,
+ 148, 179, 179, 210, 210, 241, 241, 272, 272, 303, 303, 334, 334, 365, 365,
+ 396, 396, 427, 427, 458, 458, 489, 25, 25, 25, 56, 56, 87, 87, 118,
+ 118, 149, 149, 180, 180, 211, 211, 242, 242, 273, 273, 304, 304, 335, 335,
+ 366, 366, 397, 397, 428, 428, 459, 459, 490, 26, 26, 26, 57, 57, 88,
+ 88, 119, 119, 150, 150, 181, 181, 212, 212, 243, 243, 274, 274, 305, 305,
+ 336, 336, 367, 367, 398, 398, 429, 429, 460, 460, 491, 27, 27, 27, 58,
+ 58, 89, 89, 120, 120, 151, 151, 182, 182, 213, 213, 244, 244, 275, 275,
+ 306, 306, 337, 337, 368, 368, 399, 399, 430, 430, 461, 461, 492, 28, 28,
+ 28, 59, 59, 90, 90, 121, 121, 152, 152, 183, 183, 214, 214, 245, 245,
+ 276, 276, 307, 307, 338, 338, 369, 369, 400, 400, 431, 431, 462, 462, 493,
+ 29, 29, 29, 60, 60, 91, 91, 122, 122, 153, 153, 184, 184, 215, 215,
+ 246, 246, 277, 277, 308, 308, 339, 339, 370, 370, 401, 401, 432, 432, 463,
+ 463, 494, 30, 30, 30, 61, 61, 92, 92, 123, 123, 154, 154, 185, 185,
+ 216, 216, 247, 247, 278, 278, 309, 309, 340, 340, 371, 371, 402, 402, 433,
+ 433, 464, 464, 495, 31, 62, 62, 93, 93, 124, 124, 155, 155, 186, 186,
+ 217, 217, 248, 248, 279, 279, 310, 310, 341, 341, 372, 372, 403, 403, 434,
+ 434, 465, 465, 496, 63, 94, 94, 125, 125, 156, 156, 187, 187, 218, 218,
+ 249, 249, 280, 280, 311, 311, 342, 342, 373, 373, 404, 404, 435, 435, 466,
+ 466, 497, 95, 126, 126, 157, 157, 188, 188, 219, 219, 250, 250, 281, 281,
+ 312, 312, 343, 343, 374, 374, 405, 405, 436, 436, 467, 467, 498, 127, 158,
+ 158, 189, 189, 220, 220, 251, 251, 282, 282, 313, 313, 344, 344, 375, 375,
+ 406, 406, 437, 437, 468, 468, 499, 159, 190, 190, 221, 221, 252, 252, 283,
+ 283, 314, 314, 345, 345, 376, 376, 407, 407, 438, 438, 469, 469, 500, 191,
+ 222, 222, 253, 253, 284, 284, 315, 315, 346, 346, 377, 377, 408, 408, 439,
+ 439, 470, 470, 501, 223, 254, 254, 285, 285, 316, 316, 347, 347, 378, 378,
+ 409, 409, 440, 440, 471, 471, 502, 255, 286, 286, 317, 317, 348, 348, 379,
+ 379, 410, 410, 441, 441, 472, 472, 503, 287, 318, 318, 349, 349, 380, 380,
+ 411, 411, 442, 442, 473, 473, 504, 319, 350, 350, 381, 381, 412, 412, 443,
+ 443, 474, 474, 505, 351, 382, 382, 413, 413, 444, 444, 475, 475, 506, 383,
+ 414, 414, 445, 445, 476, 476, 507, 415, 446, 446, 477, 477, 508, 447, 478,
+ 478, 509, 479, 510, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mcol_scan_16x32_neighbors[513 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 16, 16, 32, 32, 48, 48, 64, 64,
- 80, 80, 96, 96, 112, 112, 128, 128, 144, 144, 160, 160,
- 176, 176, 192, 192, 208, 208, 224, 224, 240, 240, 256, 256,
- 272, 272, 288, 288, 304, 304, 320, 320, 336, 336, 352, 352,
- 368, 368, 384, 384, 400, 400, 416, 416, 432, 432, 448, 448,
- 464, 464, 480, 480, 0, 0, 1, 16, 17, 32, 33, 48,
- 49, 64, 65, 80, 81, 96, 97, 112, 113, 128, 129, 144,
- 145, 160, 161, 176, 177, 192, 193, 208, 209, 224, 225, 240,
- 241, 256, 257, 272, 273, 288, 289, 304, 305, 320, 321, 336,
- 337, 352, 353, 368, 369, 384, 385, 400, 401, 416, 417, 432,
- 433, 448, 449, 464, 465, 480, 481, 496, 1, 1, 2, 17,
- 18, 33, 34, 49, 50, 65, 66, 81, 82, 97, 98, 113,
- 114, 129, 130, 145, 146, 161, 162, 177, 178, 193, 194, 209,
- 210, 225, 226, 241, 242, 257, 258, 273, 274, 289, 290, 305,
- 306, 321, 322, 337, 338, 353, 354, 369, 370, 385, 386, 401,
- 402, 417, 418, 433, 434, 449, 450, 465, 466, 481, 482, 497,
- 2, 2, 3, 18, 19, 34, 35, 50, 51, 66, 67, 82,
- 83, 98, 99, 114, 115, 130, 131, 146, 147, 162, 163, 178,
- 179, 194, 195, 210, 211, 226, 227, 242, 243, 258, 259, 274,
- 275, 290, 291, 306, 307, 322, 323, 338, 339, 354, 355, 370,
- 371, 386, 387, 402, 403, 418, 419, 434, 435, 450, 451, 466,
- 467, 482, 483, 498, 3, 3, 4, 19, 20, 35, 36, 51,
- 52, 67, 68, 83, 84, 99, 100, 115, 116, 131, 132, 147,
- 148, 163, 164, 179, 180, 195, 196, 211, 212, 227, 228, 243,
- 244, 259, 260, 275, 276, 291, 292, 307, 308, 323, 324, 339,
- 340, 355, 356, 371, 372, 387, 388, 403, 404, 419, 420, 435,
- 436, 451, 452, 467, 468, 483, 484, 499, 4, 4, 5, 20,
- 21, 36, 37, 52, 53, 68, 69, 84, 85, 100, 101, 116,
- 117, 132, 133, 148, 149, 164, 165, 180, 181, 196, 197, 212,
- 213, 228, 229, 244, 245, 260, 261, 276, 277, 292, 293, 308,
- 309, 324, 325, 340, 341, 356, 357, 372, 373, 388, 389, 404,
- 405, 420, 421, 436, 437, 452, 453, 468, 469, 484, 485, 500,
- 5, 5, 6, 21, 22, 37, 38, 53, 54, 69, 70, 85,
- 86, 101, 102, 117, 118, 133, 134, 149, 150, 165, 166, 181,
- 182, 197, 198, 213, 214, 229, 230, 245, 246, 261, 262, 277,
- 278, 293, 294, 309, 310, 325, 326, 341, 342, 357, 358, 373,
- 374, 389, 390, 405, 406, 421, 422, 437, 438, 453, 454, 469,
- 470, 485, 486, 501, 6, 6, 7, 22, 23, 38, 39, 54,
- 55, 70, 71, 86, 87, 102, 103, 118, 119, 134, 135, 150,
- 151, 166, 167, 182, 183, 198, 199, 214, 215, 230, 231, 246,
- 247, 262, 263, 278, 279, 294, 295, 310, 311, 326, 327, 342,
- 343, 358, 359, 374, 375, 390, 391, 406, 407, 422, 423, 438,
- 439, 454, 455, 470, 471, 486, 487, 502, 7, 7, 8, 23,
- 24, 39, 40, 55, 56, 71, 72, 87, 88, 103, 104, 119,
- 120, 135, 136, 151, 152, 167, 168, 183, 184, 199, 200, 215,
- 216, 231, 232, 247, 248, 263, 264, 279, 280, 295, 296, 311,
- 312, 327, 328, 343, 344, 359, 360, 375, 376, 391, 392, 407,
- 408, 423, 424, 439, 440, 455, 456, 471, 472, 487, 488, 503,
- 8, 8, 9, 24, 25, 40, 41, 56, 57, 72, 73, 88,
- 89, 104, 105, 120, 121, 136, 137, 152, 153, 168, 169, 184,
- 185, 200, 201, 216, 217, 232, 233, 248, 249, 264, 265, 280,
- 281, 296, 297, 312, 313, 328, 329, 344, 345, 360, 361, 376,
- 377, 392, 393, 408, 409, 424, 425, 440, 441, 456, 457, 472,
- 473, 488, 489, 504, 9, 9, 10, 25, 26, 41, 42, 57,
- 58, 73, 74, 89, 90, 105, 106, 121, 122, 137, 138, 153,
- 154, 169, 170, 185, 186, 201, 202, 217, 218, 233, 234, 249,
- 250, 265, 266, 281, 282, 297, 298, 313, 314, 329, 330, 345,
- 346, 361, 362, 377, 378, 393, 394, 409, 410, 425, 426, 441,
- 442, 457, 458, 473, 474, 489, 490, 505, 10, 10, 11, 26,
- 27, 42, 43, 58, 59, 74, 75, 90, 91, 106, 107, 122,
- 123, 138, 139, 154, 155, 170, 171, 186, 187, 202, 203, 218,
- 219, 234, 235, 250, 251, 266, 267, 282, 283, 298, 299, 314,
- 315, 330, 331, 346, 347, 362, 363, 378, 379, 394, 395, 410,
- 411, 426, 427, 442, 443, 458, 459, 474, 475, 490, 491, 506,
- 11, 11, 12, 27, 28, 43, 44, 59, 60, 75, 76, 91,
- 92, 107, 108, 123, 124, 139, 140, 155, 156, 171, 172, 187,
- 188, 203, 204, 219, 220, 235, 236, 251, 252, 267, 268, 283,
- 284, 299, 300, 315, 316, 331, 332, 347, 348, 363, 364, 379,
- 380, 395, 396, 411, 412, 427, 428, 443, 444, 459, 460, 475,
- 476, 491, 492, 507, 12, 12, 13, 28, 29, 44, 45, 60,
- 61, 76, 77, 92, 93, 108, 109, 124, 125, 140, 141, 156,
- 157, 172, 173, 188, 189, 204, 205, 220, 221, 236, 237, 252,
- 253, 268, 269, 284, 285, 300, 301, 316, 317, 332, 333, 348,
- 349, 364, 365, 380, 381, 396, 397, 412, 413, 428, 429, 444,
- 445, 460, 461, 476, 477, 492, 493, 508, 13, 13, 14, 29,
- 30, 45, 46, 61, 62, 77, 78, 93, 94, 109, 110, 125,
- 126, 141, 142, 157, 158, 173, 174, 189, 190, 205, 206, 221,
- 222, 237, 238, 253, 254, 269, 270, 285, 286, 301, 302, 317,
- 318, 333, 334, 349, 350, 365, 366, 381, 382, 397, 398, 413,
- 414, 429, 430, 445, 446, 461, 462, 477, 478, 493, 494, 509,
- 14, 14, 15, 30, 31, 46, 47, 62, 63, 78, 79, 94,
- 95, 110, 111, 126, 127, 142, 143, 158, 159, 174, 175, 190,
- 191, 206, 207, 222, 223, 238, 239, 254, 255, 270, 271, 286,
- 287, 302, 303, 318, 319, 334, 335, 350, 351, 366, 367, 382,
- 383, 398, 399, 414, 415, 430, 431, 446, 447, 462, 463, 478,
- 479, 494, 495, 510,
- 0, 0
+ 0, 0, 0, 0, 16, 16, 32, 32, 48, 48, 64, 64, 80, 80, 96,
+ 96, 112, 112, 128, 128, 144, 144, 160, 160, 176, 176, 192, 192, 208, 208,
+ 224, 224, 240, 240, 256, 256, 272, 272, 288, 288, 304, 304, 320, 320, 336,
+ 336, 352, 352, 368, 368, 384, 384, 400, 400, 416, 416, 432, 432, 448, 448,
+ 464, 464, 480, 480, 0, 0, 1, 16, 17, 32, 33, 48, 49, 64, 65,
+ 80, 81, 96, 97, 112, 113, 128, 129, 144, 145, 160, 161, 176, 177, 192,
+ 193, 208, 209, 224, 225, 240, 241, 256, 257, 272, 273, 288, 289, 304, 305,
+ 320, 321, 336, 337, 352, 353, 368, 369, 384, 385, 400, 401, 416, 417, 432,
+ 433, 448, 449, 464, 465, 480, 481, 496, 1, 1, 2, 17, 18, 33, 34,
+ 49, 50, 65, 66, 81, 82, 97, 98, 113, 114, 129, 130, 145, 146, 161,
+ 162, 177, 178, 193, 194, 209, 210, 225, 226, 241, 242, 257, 258, 273, 274,
+ 289, 290, 305, 306, 321, 322, 337, 338, 353, 354, 369, 370, 385, 386, 401,
+ 402, 417, 418, 433, 434, 449, 450, 465, 466, 481, 482, 497, 2, 2, 3,
+ 18, 19, 34, 35, 50, 51, 66, 67, 82, 83, 98, 99, 114, 115, 130,
+ 131, 146, 147, 162, 163, 178, 179, 194, 195, 210, 211, 226, 227, 242, 243,
+ 258, 259, 274, 275, 290, 291, 306, 307, 322, 323, 338, 339, 354, 355, 370,
+ 371, 386, 387, 402, 403, 418, 419, 434, 435, 450, 451, 466, 467, 482, 483,
+ 498, 3, 3, 4, 19, 20, 35, 36, 51, 52, 67, 68, 83, 84, 99,
+ 100, 115, 116, 131, 132, 147, 148, 163, 164, 179, 180, 195, 196, 211, 212,
+ 227, 228, 243, 244, 259, 260, 275, 276, 291, 292, 307, 308, 323, 324, 339,
+ 340, 355, 356, 371, 372, 387, 388, 403, 404, 419, 420, 435, 436, 451, 452,
+ 467, 468, 483, 484, 499, 4, 4, 5, 20, 21, 36, 37, 52, 53, 68,
+ 69, 84, 85, 100, 101, 116, 117, 132, 133, 148, 149, 164, 165, 180, 181,
+ 196, 197, 212, 213, 228, 229, 244, 245, 260, 261, 276, 277, 292, 293, 308,
+ 309, 324, 325, 340, 341, 356, 357, 372, 373, 388, 389, 404, 405, 420, 421,
+ 436, 437, 452, 453, 468, 469, 484, 485, 500, 5, 5, 6, 21, 22, 37,
+ 38, 53, 54, 69, 70, 85, 86, 101, 102, 117, 118, 133, 134, 149, 150,
+ 165, 166, 181, 182, 197, 198, 213, 214, 229, 230, 245, 246, 261, 262, 277,
+ 278, 293, 294, 309, 310, 325, 326, 341, 342, 357, 358, 373, 374, 389, 390,
+ 405, 406, 421, 422, 437, 438, 453, 454, 469, 470, 485, 486, 501, 6, 6,
+ 7, 22, 23, 38, 39, 54, 55, 70, 71, 86, 87, 102, 103, 118, 119,
+ 134, 135, 150, 151, 166, 167, 182, 183, 198, 199, 214, 215, 230, 231, 246,
+ 247, 262, 263, 278, 279, 294, 295, 310, 311, 326, 327, 342, 343, 358, 359,
+ 374, 375, 390, 391, 406, 407, 422, 423, 438, 439, 454, 455, 470, 471, 486,
+ 487, 502, 7, 7, 8, 23, 24, 39, 40, 55, 56, 71, 72, 87, 88,
+ 103, 104, 119, 120, 135, 136, 151, 152, 167, 168, 183, 184, 199, 200, 215,
+ 216, 231, 232, 247, 248, 263, 264, 279, 280, 295, 296, 311, 312, 327, 328,
+ 343, 344, 359, 360, 375, 376, 391, 392, 407, 408, 423, 424, 439, 440, 455,
+ 456, 471, 472, 487, 488, 503, 8, 8, 9, 24, 25, 40, 41, 56, 57,
+ 72, 73, 88, 89, 104, 105, 120, 121, 136, 137, 152, 153, 168, 169, 184,
+ 185, 200, 201, 216, 217, 232, 233, 248, 249, 264, 265, 280, 281, 296, 297,
+ 312, 313, 328, 329, 344, 345, 360, 361, 376, 377, 392, 393, 408, 409, 424,
+ 425, 440, 441, 456, 457, 472, 473, 488, 489, 504, 9, 9, 10, 25, 26,
+ 41, 42, 57, 58, 73, 74, 89, 90, 105, 106, 121, 122, 137, 138, 153,
+ 154, 169, 170, 185, 186, 201, 202, 217, 218, 233, 234, 249, 250, 265, 266,
+ 281, 282, 297, 298, 313, 314, 329, 330, 345, 346, 361, 362, 377, 378, 393,
+ 394, 409, 410, 425, 426, 441, 442, 457, 458, 473, 474, 489, 490, 505, 10,
+ 10, 11, 26, 27, 42, 43, 58, 59, 74, 75, 90, 91, 106, 107, 122,
+ 123, 138, 139, 154, 155, 170, 171, 186, 187, 202, 203, 218, 219, 234, 235,
+ 250, 251, 266, 267, 282, 283, 298, 299, 314, 315, 330, 331, 346, 347, 362,
+ 363, 378, 379, 394, 395, 410, 411, 426, 427, 442, 443, 458, 459, 474, 475,
+ 490, 491, 506, 11, 11, 12, 27, 28, 43, 44, 59, 60, 75, 76, 91,
+ 92, 107, 108, 123, 124, 139, 140, 155, 156, 171, 172, 187, 188, 203, 204,
+ 219, 220, 235, 236, 251, 252, 267, 268, 283, 284, 299, 300, 315, 316, 331,
+ 332, 347, 348, 363, 364, 379, 380, 395, 396, 411, 412, 427, 428, 443, 444,
+ 459, 460, 475, 476, 491, 492, 507, 12, 12, 13, 28, 29, 44, 45, 60,
+ 61, 76, 77, 92, 93, 108, 109, 124, 125, 140, 141, 156, 157, 172, 173,
+ 188, 189, 204, 205, 220, 221, 236, 237, 252, 253, 268, 269, 284, 285, 300,
+ 301, 316, 317, 332, 333, 348, 349, 364, 365, 380, 381, 396, 397, 412, 413,
+ 428, 429, 444, 445, 460, 461, 476, 477, 492, 493, 508, 13, 13, 14, 29,
+ 30, 45, 46, 61, 62, 77, 78, 93, 94, 109, 110, 125, 126, 141, 142,
+ 157, 158, 173, 174, 189, 190, 205, 206, 221, 222, 237, 238, 253, 254, 269,
+ 270, 285, 286, 301, 302, 317, 318, 333, 334, 349, 350, 365, 366, 381, 382,
+ 397, 398, 413, 414, 429, 430, 445, 446, 461, 462, 477, 478, 493, 494, 509,
+ 14, 14, 15, 30, 31, 46, 47, 62, 63, 78, 79, 94, 95, 110, 111,
+ 126, 127, 142, 143, 158, 159, 174, 175, 190, 191, 206, 207, 222, 223, 238,
+ 239, 254, 255, 270, 271, 286, 287, 302, 303, 318, 319, 334, 335, 350, 351,
+ 366, 367, 382, 383, 398, 399, 414, 415, 430, 431, 446, 447, 462, 463, 478,
+ 479, 494, 495, 510, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mcol_scan_32x16_neighbors[513 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 32, 32, 64, 64, 96, 96, 128, 128,
- 160, 160, 192, 192, 224, 224, 256, 256, 288, 288, 320, 320,
- 352, 352, 384, 384, 416, 416, 448, 448, 0, 0, 1, 32,
- 33, 64, 65, 96, 97, 128, 129, 160, 161, 192, 193, 224,
- 225, 256, 257, 288, 289, 320, 321, 352, 353, 384, 385, 416,
- 417, 448, 449, 480, 1, 1, 2, 33, 34, 65, 66, 97,
- 98, 129, 130, 161, 162, 193, 194, 225, 226, 257, 258, 289,
- 290, 321, 322, 353, 354, 385, 386, 417, 418, 449, 450, 481,
- 2, 2, 3, 34, 35, 66, 67, 98, 99, 130, 131, 162,
- 163, 194, 195, 226, 227, 258, 259, 290, 291, 322, 323, 354,
- 355, 386, 387, 418, 419, 450, 451, 482, 3, 3, 4, 35,
- 36, 67, 68, 99, 100, 131, 132, 163, 164, 195, 196, 227,
- 228, 259, 260, 291, 292, 323, 324, 355, 356, 387, 388, 419,
- 420, 451, 452, 483, 4, 4, 5, 36, 37, 68, 69, 100,
- 101, 132, 133, 164, 165, 196, 197, 228, 229, 260, 261, 292,
- 293, 324, 325, 356, 357, 388, 389, 420, 421, 452, 453, 484,
- 5, 5, 6, 37, 38, 69, 70, 101, 102, 133, 134, 165,
- 166, 197, 198, 229, 230, 261, 262, 293, 294, 325, 326, 357,
- 358, 389, 390, 421, 422, 453, 454, 485, 6, 6, 7, 38,
- 39, 70, 71, 102, 103, 134, 135, 166, 167, 198, 199, 230,
- 231, 262, 263, 294, 295, 326, 327, 358, 359, 390, 391, 422,
- 423, 454, 455, 486, 7, 7, 8, 39, 40, 71, 72, 103,
- 104, 135, 136, 167, 168, 199, 200, 231, 232, 263, 264, 295,
- 296, 327, 328, 359, 360, 391, 392, 423, 424, 455, 456, 487,
- 8, 8, 9, 40, 41, 72, 73, 104, 105, 136, 137, 168,
- 169, 200, 201, 232, 233, 264, 265, 296, 297, 328, 329, 360,
- 361, 392, 393, 424, 425, 456, 457, 488, 9, 9, 10, 41,
- 42, 73, 74, 105, 106, 137, 138, 169, 170, 201, 202, 233,
- 234, 265, 266, 297, 298, 329, 330, 361, 362, 393, 394, 425,
- 426, 457, 458, 489, 10, 10, 11, 42, 43, 74, 75, 106,
- 107, 138, 139, 170, 171, 202, 203, 234, 235, 266, 267, 298,
- 299, 330, 331, 362, 363, 394, 395, 426, 427, 458, 459, 490,
- 11, 11, 12, 43, 44, 75, 76, 107, 108, 139, 140, 171,
- 172, 203, 204, 235, 236, 267, 268, 299, 300, 331, 332, 363,
- 364, 395, 396, 427, 428, 459, 460, 491, 12, 12, 13, 44,
- 45, 76, 77, 108, 109, 140, 141, 172, 173, 204, 205, 236,
- 237, 268, 269, 300, 301, 332, 333, 364, 365, 396, 397, 428,
- 429, 460, 461, 492, 13, 13, 14, 45, 46, 77, 78, 109,
- 110, 141, 142, 173, 174, 205, 206, 237, 238, 269, 270, 301,
- 302, 333, 334, 365, 366, 397, 398, 429, 430, 461, 462, 493,
- 14, 14, 15, 46, 47, 78, 79, 110, 111, 142, 143, 174,
- 175, 206, 207, 238, 239, 270, 271, 302, 303, 334, 335, 366,
- 367, 398, 399, 430, 431, 462, 463, 494, 15, 15, 16, 47,
- 48, 79, 80, 111, 112, 143, 144, 175, 176, 207, 208, 239,
- 240, 271, 272, 303, 304, 335, 336, 367, 368, 399, 400, 431,
- 432, 463, 464, 495, 16, 16, 17, 48, 49, 80, 81, 112,
- 113, 144, 145, 176, 177, 208, 209, 240, 241, 272, 273, 304,
- 305, 336, 337, 368, 369, 400, 401, 432, 433, 464, 465, 496,
- 17, 17, 18, 49, 50, 81, 82, 113, 114, 145, 146, 177,
- 178, 209, 210, 241, 242, 273, 274, 305, 306, 337, 338, 369,
- 370, 401, 402, 433, 434, 465, 466, 497, 18, 18, 19, 50,
- 51, 82, 83, 114, 115, 146, 147, 178, 179, 210, 211, 242,
- 243, 274, 275, 306, 307, 338, 339, 370, 371, 402, 403, 434,
- 435, 466, 467, 498, 19, 19, 20, 51, 52, 83, 84, 115,
- 116, 147, 148, 179, 180, 211, 212, 243, 244, 275, 276, 307,
- 308, 339, 340, 371, 372, 403, 404, 435, 436, 467, 468, 499,
- 20, 20, 21, 52, 53, 84, 85, 116, 117, 148, 149, 180,
- 181, 212, 213, 244, 245, 276, 277, 308, 309, 340, 341, 372,
- 373, 404, 405, 436, 437, 468, 469, 500, 21, 21, 22, 53,
- 54, 85, 86, 117, 118, 149, 150, 181, 182, 213, 214, 245,
- 246, 277, 278, 309, 310, 341, 342, 373, 374, 405, 406, 437,
- 438, 469, 470, 501, 22, 22, 23, 54, 55, 86, 87, 118,
- 119, 150, 151, 182, 183, 214, 215, 246, 247, 278, 279, 310,
- 311, 342, 343, 374, 375, 406, 407, 438, 439, 470, 471, 502,
- 23, 23, 24, 55, 56, 87, 88, 119, 120, 151, 152, 183,
- 184, 215, 216, 247, 248, 279, 280, 311, 312, 343, 344, 375,
- 376, 407, 408, 439, 440, 471, 472, 503, 24, 24, 25, 56,
- 57, 88, 89, 120, 121, 152, 153, 184, 185, 216, 217, 248,
- 249, 280, 281, 312, 313, 344, 345, 376, 377, 408, 409, 440,
- 441, 472, 473, 504, 25, 25, 26, 57, 58, 89, 90, 121,
- 122, 153, 154, 185, 186, 217, 218, 249, 250, 281, 282, 313,
- 314, 345, 346, 377, 378, 409, 410, 441, 442, 473, 474, 505,
- 26, 26, 27, 58, 59, 90, 91, 122, 123, 154, 155, 186,
- 187, 218, 219, 250, 251, 282, 283, 314, 315, 346, 347, 378,
- 379, 410, 411, 442, 443, 474, 475, 506, 27, 27, 28, 59,
- 60, 91, 92, 123, 124, 155, 156, 187, 188, 219, 220, 251,
- 252, 283, 284, 315, 316, 347, 348, 379, 380, 411, 412, 443,
- 444, 475, 476, 507, 28, 28, 29, 60, 61, 92, 93, 124,
- 125, 156, 157, 188, 189, 220, 221, 252, 253, 284, 285, 316,
- 317, 348, 349, 380, 381, 412, 413, 444, 445, 476, 477, 508,
- 29, 29, 30, 61, 62, 93, 94, 125, 126, 157, 158, 189,
- 190, 221, 222, 253, 254, 285, 286, 317, 318, 349, 350, 381,
- 382, 413, 414, 445, 446, 477, 478, 509, 30, 30, 31, 62,
- 63, 94, 95, 126, 127, 158, 159, 190, 191, 222, 223, 254,
- 255, 286, 287, 318, 319, 350, 351, 382, 383, 414, 415, 446,
- 447, 478, 479, 510,
- 0, 0
+ 0, 0, 0, 0, 32, 32, 64, 64, 96, 96, 128, 128, 160, 160, 192,
+ 192, 224, 224, 256, 256, 288, 288, 320, 320, 352, 352, 384, 384, 416, 416,
+ 448, 448, 0, 0, 1, 32, 33, 64, 65, 96, 97, 128, 129, 160, 161,
+ 192, 193, 224, 225, 256, 257, 288, 289, 320, 321, 352, 353, 384, 385, 416,
+ 417, 448, 449, 480, 1, 1, 2, 33, 34, 65, 66, 97, 98, 129, 130,
+ 161, 162, 193, 194, 225, 226, 257, 258, 289, 290, 321, 322, 353, 354, 385,
+ 386, 417, 418, 449, 450, 481, 2, 2, 3, 34, 35, 66, 67, 98, 99,
+ 130, 131, 162, 163, 194, 195, 226, 227, 258, 259, 290, 291, 322, 323, 354,
+ 355, 386, 387, 418, 419, 450, 451, 482, 3, 3, 4, 35, 36, 67, 68,
+ 99, 100, 131, 132, 163, 164, 195, 196, 227, 228, 259, 260, 291, 292, 323,
+ 324, 355, 356, 387, 388, 419, 420, 451, 452, 483, 4, 4, 5, 36, 37,
+ 68, 69, 100, 101, 132, 133, 164, 165, 196, 197, 228, 229, 260, 261, 292,
+ 293, 324, 325, 356, 357, 388, 389, 420, 421, 452, 453, 484, 5, 5, 6,
+ 37, 38, 69, 70, 101, 102, 133, 134, 165, 166, 197, 198, 229, 230, 261,
+ 262, 293, 294, 325, 326, 357, 358, 389, 390, 421, 422, 453, 454, 485, 6,
+ 6, 7, 38, 39, 70, 71, 102, 103, 134, 135, 166, 167, 198, 199, 230,
+ 231, 262, 263, 294, 295, 326, 327, 358, 359, 390, 391, 422, 423, 454, 455,
+ 486, 7, 7, 8, 39, 40, 71, 72, 103, 104, 135, 136, 167, 168, 199,
+ 200, 231, 232, 263, 264, 295, 296, 327, 328, 359, 360, 391, 392, 423, 424,
+ 455, 456, 487, 8, 8, 9, 40, 41, 72, 73, 104, 105, 136, 137, 168,
+ 169, 200, 201, 232, 233, 264, 265, 296, 297, 328, 329, 360, 361, 392, 393,
+ 424, 425, 456, 457, 488, 9, 9, 10, 41, 42, 73, 74, 105, 106, 137,
+ 138, 169, 170, 201, 202, 233, 234, 265, 266, 297, 298, 329, 330, 361, 362,
+ 393, 394, 425, 426, 457, 458, 489, 10, 10, 11, 42, 43, 74, 75, 106,
+ 107, 138, 139, 170, 171, 202, 203, 234, 235, 266, 267, 298, 299, 330, 331,
+ 362, 363, 394, 395, 426, 427, 458, 459, 490, 11, 11, 12, 43, 44, 75,
+ 76, 107, 108, 139, 140, 171, 172, 203, 204, 235, 236, 267, 268, 299, 300,
+ 331, 332, 363, 364, 395, 396, 427, 428, 459, 460, 491, 12, 12, 13, 44,
+ 45, 76, 77, 108, 109, 140, 141, 172, 173, 204, 205, 236, 237, 268, 269,
+ 300, 301, 332, 333, 364, 365, 396, 397, 428, 429, 460, 461, 492, 13, 13,
+ 14, 45, 46, 77, 78, 109, 110, 141, 142, 173, 174, 205, 206, 237, 238,
+ 269, 270, 301, 302, 333, 334, 365, 366, 397, 398, 429, 430, 461, 462, 493,
+ 14, 14, 15, 46, 47, 78, 79, 110, 111, 142, 143, 174, 175, 206, 207,
+ 238, 239, 270, 271, 302, 303, 334, 335, 366, 367, 398, 399, 430, 431, 462,
+ 463, 494, 15, 15, 16, 47, 48, 79, 80, 111, 112, 143, 144, 175, 176,
+ 207, 208, 239, 240, 271, 272, 303, 304, 335, 336, 367, 368, 399, 400, 431,
+ 432, 463, 464, 495, 16, 16, 17, 48, 49, 80, 81, 112, 113, 144, 145,
+ 176, 177, 208, 209, 240, 241, 272, 273, 304, 305, 336, 337, 368, 369, 400,
+ 401, 432, 433, 464, 465, 496, 17, 17, 18, 49, 50, 81, 82, 113, 114,
+ 145, 146, 177, 178, 209, 210, 241, 242, 273, 274, 305, 306, 337, 338, 369,
+ 370, 401, 402, 433, 434, 465, 466, 497, 18, 18, 19, 50, 51, 82, 83,
+ 114, 115, 146, 147, 178, 179, 210, 211, 242, 243, 274, 275, 306, 307, 338,
+ 339, 370, 371, 402, 403, 434, 435, 466, 467, 498, 19, 19, 20, 51, 52,
+ 83, 84, 115, 116, 147, 148, 179, 180, 211, 212, 243, 244, 275, 276, 307,
+ 308, 339, 340, 371, 372, 403, 404, 435, 436, 467, 468, 499, 20, 20, 21,
+ 52, 53, 84, 85, 116, 117, 148, 149, 180, 181, 212, 213, 244, 245, 276,
+ 277, 308, 309, 340, 341, 372, 373, 404, 405, 436, 437, 468, 469, 500, 21,
+ 21, 22, 53, 54, 85, 86, 117, 118, 149, 150, 181, 182, 213, 214, 245,
+ 246, 277, 278, 309, 310, 341, 342, 373, 374, 405, 406, 437, 438, 469, 470,
+ 501, 22, 22, 23, 54, 55, 86, 87, 118, 119, 150, 151, 182, 183, 214,
+ 215, 246, 247, 278, 279, 310, 311, 342, 343, 374, 375, 406, 407, 438, 439,
+ 470, 471, 502, 23, 23, 24, 55, 56, 87, 88, 119, 120, 151, 152, 183,
+ 184, 215, 216, 247, 248, 279, 280, 311, 312, 343, 344, 375, 376, 407, 408,
+ 439, 440, 471, 472, 503, 24, 24, 25, 56, 57, 88, 89, 120, 121, 152,
+ 153, 184, 185, 216, 217, 248, 249, 280, 281, 312, 313, 344, 345, 376, 377,
+ 408, 409, 440, 441, 472, 473, 504, 25, 25, 26, 57, 58, 89, 90, 121,
+ 122, 153, 154, 185, 186, 217, 218, 249, 250, 281, 282, 313, 314, 345, 346,
+ 377, 378, 409, 410, 441, 442, 473, 474, 505, 26, 26, 27, 58, 59, 90,
+ 91, 122, 123, 154, 155, 186, 187, 218, 219, 250, 251, 282, 283, 314, 315,
+ 346, 347, 378, 379, 410, 411, 442, 443, 474, 475, 506, 27, 27, 28, 59,
+ 60, 91, 92, 123, 124, 155, 156, 187, 188, 219, 220, 251, 252, 283, 284,
+ 315, 316, 347, 348, 379, 380, 411, 412, 443, 444, 475, 476, 507, 28, 28,
+ 29, 60, 61, 92, 93, 124, 125, 156, 157, 188, 189, 220, 221, 252, 253,
+ 284, 285, 316, 317, 348, 349, 380, 381, 412, 413, 444, 445, 476, 477, 508,
+ 29, 29, 30, 61, 62, 93, 94, 125, 126, 157, 158, 189, 190, 221, 222,
+ 253, 254, 285, 286, 317, 318, 349, 350, 381, 382, 413, 414, 445, 446, 477,
+ 478, 509, 30, 30, 31, 62, 63, 94, 95, 126, 127, 158, 159, 190, 191,
+ 222, 223, 254, 255, 286, 287, 318, 319, 350, 351, 382, 383, 414, 415, 446,
+ 447, 478, 479, 510, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mrow_scan_16x32_neighbors[513 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
- 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10,
- 11, 11, 12, 12, 13, 13, 14, 14, 0, 0, 1, 16,
- 2, 17, 3, 18, 4, 19, 5, 20, 6, 21, 7, 22,
- 8, 23, 9, 24, 10, 25, 11, 26, 12, 27, 13, 28,
- 14, 29, 15, 30, 16, 16, 17, 32, 18, 33, 19, 34,
- 20, 35, 21, 36, 22, 37, 23, 38, 24, 39, 25, 40,
- 26, 41, 27, 42, 28, 43, 29, 44, 30, 45, 31, 46,
- 32, 32, 33, 48, 34, 49, 35, 50, 36, 51, 37, 52,
- 38, 53, 39, 54, 40, 55, 41, 56, 42, 57, 43, 58,
- 44, 59, 45, 60, 46, 61, 47, 62, 48, 48, 49, 64,
- 50, 65, 51, 66, 52, 67, 53, 68, 54, 69, 55, 70,
- 56, 71, 57, 72, 58, 73, 59, 74, 60, 75, 61, 76,
- 62, 77, 63, 78, 64, 64, 65, 80, 66, 81, 67, 82,
- 68, 83, 69, 84, 70, 85, 71, 86, 72, 87, 73, 88,
- 74, 89, 75, 90, 76, 91, 77, 92, 78, 93, 79, 94,
- 80, 80, 81, 96, 82, 97, 83, 98, 84, 99, 85, 100,
- 86, 101, 87, 102, 88, 103, 89, 104, 90, 105, 91, 106,
- 92, 107, 93, 108, 94, 109, 95, 110, 96, 96, 97, 112,
- 98, 113, 99, 114, 100, 115, 101, 116, 102, 117, 103, 118,
- 104, 119, 105, 120, 106, 121, 107, 122, 108, 123, 109, 124,
- 110, 125, 111, 126, 112, 112, 113, 128, 114, 129, 115, 130,
- 116, 131, 117, 132, 118, 133, 119, 134, 120, 135, 121, 136,
- 122, 137, 123, 138, 124, 139, 125, 140, 126, 141, 127, 142,
- 128, 128, 129, 144, 130, 145, 131, 146, 132, 147, 133, 148,
- 134, 149, 135, 150, 136, 151, 137, 152, 138, 153, 139, 154,
- 140, 155, 141, 156, 142, 157, 143, 158, 144, 144, 145, 160,
- 146, 161, 147, 162, 148, 163, 149, 164, 150, 165, 151, 166,
- 152, 167, 153, 168, 154, 169, 155, 170, 156, 171, 157, 172,
- 158, 173, 159, 174, 160, 160, 161, 176, 162, 177, 163, 178,
- 164, 179, 165, 180, 166, 181, 167, 182, 168, 183, 169, 184,
- 170, 185, 171, 186, 172, 187, 173, 188, 174, 189, 175, 190,
- 176, 176, 177, 192, 178, 193, 179, 194, 180, 195, 181, 196,
- 182, 197, 183, 198, 184, 199, 185, 200, 186, 201, 187, 202,
- 188, 203, 189, 204, 190, 205, 191, 206, 192, 192, 193, 208,
- 194, 209, 195, 210, 196, 211, 197, 212, 198, 213, 199, 214,
- 200, 215, 201, 216, 202, 217, 203, 218, 204, 219, 205, 220,
- 206, 221, 207, 222, 208, 208, 209, 224, 210, 225, 211, 226,
- 212, 227, 213, 228, 214, 229, 215, 230, 216, 231, 217, 232,
- 218, 233, 219, 234, 220, 235, 221, 236, 222, 237, 223, 238,
- 224, 224, 225, 240, 226, 241, 227, 242, 228, 243, 229, 244,
- 230, 245, 231, 246, 232, 247, 233, 248, 234, 249, 235, 250,
- 236, 251, 237, 252, 238, 253, 239, 254, 240, 240, 241, 256,
- 242, 257, 243, 258, 244, 259, 245, 260, 246, 261, 247, 262,
- 248, 263, 249, 264, 250, 265, 251, 266, 252, 267, 253, 268,
- 254, 269, 255, 270, 256, 256, 257, 272, 258, 273, 259, 274,
- 260, 275, 261, 276, 262, 277, 263, 278, 264, 279, 265, 280,
- 266, 281, 267, 282, 268, 283, 269, 284, 270, 285, 271, 286,
- 272, 272, 273, 288, 274, 289, 275, 290, 276, 291, 277, 292,
- 278, 293, 279, 294, 280, 295, 281, 296, 282, 297, 283, 298,
- 284, 299, 285, 300, 286, 301, 287, 302, 288, 288, 289, 304,
- 290, 305, 291, 306, 292, 307, 293, 308, 294, 309, 295, 310,
- 296, 311, 297, 312, 298, 313, 299, 314, 300, 315, 301, 316,
- 302, 317, 303, 318, 304, 304, 305, 320, 306, 321, 307, 322,
- 308, 323, 309, 324, 310, 325, 311, 326, 312, 327, 313, 328,
- 314, 329, 315, 330, 316, 331, 317, 332, 318, 333, 319, 334,
- 320, 320, 321, 336, 322, 337, 323, 338, 324, 339, 325, 340,
- 326, 341, 327, 342, 328, 343, 329, 344, 330, 345, 331, 346,
- 332, 347, 333, 348, 334, 349, 335, 350, 336, 336, 337, 352,
- 338, 353, 339, 354, 340, 355, 341, 356, 342, 357, 343, 358,
- 344, 359, 345, 360, 346, 361, 347, 362, 348, 363, 349, 364,
- 350, 365, 351, 366, 352, 352, 353, 368, 354, 369, 355, 370,
- 356, 371, 357, 372, 358, 373, 359, 374, 360, 375, 361, 376,
- 362, 377, 363, 378, 364, 379, 365, 380, 366, 381, 367, 382,
- 368, 368, 369, 384, 370, 385, 371, 386, 372, 387, 373, 388,
- 374, 389, 375, 390, 376, 391, 377, 392, 378, 393, 379, 394,
- 380, 395, 381, 396, 382, 397, 383, 398, 384, 384, 385, 400,
- 386, 401, 387, 402, 388, 403, 389, 404, 390, 405, 391, 406,
- 392, 407, 393, 408, 394, 409, 395, 410, 396, 411, 397, 412,
- 398, 413, 399, 414, 400, 400, 401, 416, 402, 417, 403, 418,
- 404, 419, 405, 420, 406, 421, 407, 422, 408, 423, 409, 424,
- 410, 425, 411, 426, 412, 427, 413, 428, 414, 429, 415, 430,
- 416, 416, 417, 432, 418, 433, 419, 434, 420, 435, 421, 436,
- 422, 437, 423, 438, 424, 439, 425, 440, 426, 441, 427, 442,
- 428, 443, 429, 444, 430, 445, 431, 446, 432, 432, 433, 448,
- 434, 449, 435, 450, 436, 451, 437, 452, 438, 453, 439, 454,
- 440, 455, 441, 456, 442, 457, 443, 458, 444, 459, 445, 460,
- 446, 461, 447, 462, 448, 448, 449, 464, 450, 465, 451, 466,
- 452, 467, 453, 468, 454, 469, 455, 470, 456, 471, 457, 472,
- 458, 473, 459, 474, 460, 475, 461, 476, 462, 477, 463, 478,
- 464, 464, 465, 480, 466, 481, 467, 482, 468, 483, 469, 484,
- 470, 485, 471, 486, 472, 487, 473, 488, 474, 489, 475, 490,
- 476, 491, 477, 492, 478, 493, 479, 494, 480, 480, 481, 496,
- 482, 497, 483, 498, 484, 499, 485, 500, 486, 501, 487, 502,
- 488, 503, 489, 504, 490, 505, 491, 506, 492, 507, 493, 508,
- 494, 509, 495, 510,
- 0, 0
+ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
+ 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13,
+ 14, 14, 0, 0, 1, 16, 2, 17, 3, 18, 4, 19, 5, 20, 6,
+ 21, 7, 22, 8, 23, 9, 24, 10, 25, 11, 26, 12, 27, 13, 28,
+ 14, 29, 15, 30, 16, 16, 17, 32, 18, 33, 19, 34, 20, 35, 21,
+ 36, 22, 37, 23, 38, 24, 39, 25, 40, 26, 41, 27, 42, 28, 43,
+ 29, 44, 30, 45, 31, 46, 32, 32, 33, 48, 34, 49, 35, 50, 36,
+ 51, 37, 52, 38, 53, 39, 54, 40, 55, 41, 56, 42, 57, 43, 58,
+ 44, 59, 45, 60, 46, 61, 47, 62, 48, 48, 49, 64, 50, 65, 51,
+ 66, 52, 67, 53, 68, 54, 69, 55, 70, 56, 71, 57, 72, 58, 73,
+ 59, 74, 60, 75, 61, 76, 62, 77, 63, 78, 64, 64, 65, 80, 66,
+ 81, 67, 82, 68, 83, 69, 84, 70, 85, 71, 86, 72, 87, 73, 88,
+ 74, 89, 75, 90, 76, 91, 77, 92, 78, 93, 79, 94, 80, 80, 81,
+ 96, 82, 97, 83, 98, 84, 99, 85, 100, 86, 101, 87, 102, 88, 103,
+ 89, 104, 90, 105, 91, 106, 92, 107, 93, 108, 94, 109, 95, 110, 96,
+ 96, 97, 112, 98, 113, 99, 114, 100, 115, 101, 116, 102, 117, 103, 118,
+ 104, 119, 105, 120, 106, 121, 107, 122, 108, 123, 109, 124, 110, 125, 111,
+ 126, 112, 112, 113, 128, 114, 129, 115, 130, 116, 131, 117, 132, 118, 133,
+ 119, 134, 120, 135, 121, 136, 122, 137, 123, 138, 124, 139, 125, 140, 126,
+ 141, 127, 142, 128, 128, 129, 144, 130, 145, 131, 146, 132, 147, 133, 148,
+ 134, 149, 135, 150, 136, 151, 137, 152, 138, 153, 139, 154, 140, 155, 141,
+ 156, 142, 157, 143, 158, 144, 144, 145, 160, 146, 161, 147, 162, 148, 163,
+ 149, 164, 150, 165, 151, 166, 152, 167, 153, 168, 154, 169, 155, 170, 156,
+ 171, 157, 172, 158, 173, 159, 174, 160, 160, 161, 176, 162, 177, 163, 178,
+ 164, 179, 165, 180, 166, 181, 167, 182, 168, 183, 169, 184, 170, 185, 171,
+ 186, 172, 187, 173, 188, 174, 189, 175, 190, 176, 176, 177, 192, 178, 193,
+ 179, 194, 180, 195, 181, 196, 182, 197, 183, 198, 184, 199, 185, 200, 186,
+ 201, 187, 202, 188, 203, 189, 204, 190, 205, 191, 206, 192, 192, 193, 208,
+ 194, 209, 195, 210, 196, 211, 197, 212, 198, 213, 199, 214, 200, 215, 201,
+ 216, 202, 217, 203, 218, 204, 219, 205, 220, 206, 221, 207, 222, 208, 208,
+ 209, 224, 210, 225, 211, 226, 212, 227, 213, 228, 214, 229, 215, 230, 216,
+ 231, 217, 232, 218, 233, 219, 234, 220, 235, 221, 236, 222, 237, 223, 238,
+ 224, 224, 225, 240, 226, 241, 227, 242, 228, 243, 229, 244, 230, 245, 231,
+ 246, 232, 247, 233, 248, 234, 249, 235, 250, 236, 251, 237, 252, 238, 253,
+ 239, 254, 240, 240, 241, 256, 242, 257, 243, 258, 244, 259, 245, 260, 246,
+ 261, 247, 262, 248, 263, 249, 264, 250, 265, 251, 266, 252, 267, 253, 268,
+ 254, 269, 255, 270, 256, 256, 257, 272, 258, 273, 259, 274, 260, 275, 261,
+ 276, 262, 277, 263, 278, 264, 279, 265, 280, 266, 281, 267, 282, 268, 283,
+ 269, 284, 270, 285, 271, 286, 272, 272, 273, 288, 274, 289, 275, 290, 276,
+ 291, 277, 292, 278, 293, 279, 294, 280, 295, 281, 296, 282, 297, 283, 298,
+ 284, 299, 285, 300, 286, 301, 287, 302, 288, 288, 289, 304, 290, 305, 291,
+ 306, 292, 307, 293, 308, 294, 309, 295, 310, 296, 311, 297, 312, 298, 313,
+ 299, 314, 300, 315, 301, 316, 302, 317, 303, 318, 304, 304, 305, 320, 306,
+ 321, 307, 322, 308, 323, 309, 324, 310, 325, 311, 326, 312, 327, 313, 328,
+ 314, 329, 315, 330, 316, 331, 317, 332, 318, 333, 319, 334, 320, 320, 321,
+ 336, 322, 337, 323, 338, 324, 339, 325, 340, 326, 341, 327, 342, 328, 343,
+ 329, 344, 330, 345, 331, 346, 332, 347, 333, 348, 334, 349, 335, 350, 336,
+ 336, 337, 352, 338, 353, 339, 354, 340, 355, 341, 356, 342, 357, 343, 358,
+ 344, 359, 345, 360, 346, 361, 347, 362, 348, 363, 349, 364, 350, 365, 351,
+ 366, 352, 352, 353, 368, 354, 369, 355, 370, 356, 371, 357, 372, 358, 373,
+ 359, 374, 360, 375, 361, 376, 362, 377, 363, 378, 364, 379, 365, 380, 366,
+ 381, 367, 382, 368, 368, 369, 384, 370, 385, 371, 386, 372, 387, 373, 388,
+ 374, 389, 375, 390, 376, 391, 377, 392, 378, 393, 379, 394, 380, 395, 381,
+ 396, 382, 397, 383, 398, 384, 384, 385, 400, 386, 401, 387, 402, 388, 403,
+ 389, 404, 390, 405, 391, 406, 392, 407, 393, 408, 394, 409, 395, 410, 396,
+ 411, 397, 412, 398, 413, 399, 414, 400, 400, 401, 416, 402, 417, 403, 418,
+ 404, 419, 405, 420, 406, 421, 407, 422, 408, 423, 409, 424, 410, 425, 411,
+ 426, 412, 427, 413, 428, 414, 429, 415, 430, 416, 416, 417, 432, 418, 433,
+ 419, 434, 420, 435, 421, 436, 422, 437, 423, 438, 424, 439, 425, 440, 426,
+ 441, 427, 442, 428, 443, 429, 444, 430, 445, 431, 446, 432, 432, 433, 448,
+ 434, 449, 435, 450, 436, 451, 437, 452, 438, 453, 439, 454, 440, 455, 441,
+ 456, 442, 457, 443, 458, 444, 459, 445, 460, 446, 461, 447, 462, 448, 448,
+ 449, 464, 450, 465, 451, 466, 452, 467, 453, 468, 454, 469, 455, 470, 456,
+ 471, 457, 472, 458, 473, 459, 474, 460, 475, 461, 476, 462, 477, 463, 478,
+ 464, 464, 465, 480, 466, 481, 467, 482, 468, 483, 469, 484, 470, 485, 471,
+ 486, 472, 487, 473, 488, 474, 489, 475, 490, 476, 491, 477, 492, 478, 493,
+ 479, 494, 480, 480, 481, 496, 482, 497, 483, 498, 484, 499, 485, 500, 486,
+ 501, 487, 502, 488, 503, 489, 504, 490, 505, 491, 506, 492, 507, 493, 508,
+ 494, 509, 495, 510, 0, 0
};
DECLARE_ALIGNED(16, static const int16_t,
mrow_scan_32x16_neighbors[513 * MAX_NEIGHBORS]) = {
- 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4,
- 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10,
- 11, 11, 12, 12, 13, 13, 14, 14, 15, 15, 16, 16,
- 17, 17, 18, 18, 19, 19, 20, 20, 21, 21, 22, 22,
- 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28,
- 29, 29, 30, 30, 0, 0, 1, 32, 2, 33, 3, 34,
- 4, 35, 5, 36, 6, 37, 7, 38, 8, 39, 9, 40,
- 10, 41, 11, 42, 12, 43, 13, 44, 14, 45, 15, 46,
- 16, 47, 17, 48, 18, 49, 19, 50, 20, 51, 21, 52,
- 22, 53, 23, 54, 24, 55, 25, 56, 26, 57, 27, 58,
- 28, 59, 29, 60, 30, 61, 31, 62, 32, 32, 33, 64,
- 34, 65, 35, 66, 36, 67, 37, 68, 38, 69, 39, 70,
- 40, 71, 41, 72, 42, 73, 43, 74, 44, 75, 45, 76,
- 46, 77, 47, 78, 48, 79, 49, 80, 50, 81, 51, 82,
- 52, 83, 53, 84, 54, 85, 55, 86, 56, 87, 57, 88,
- 58, 89, 59, 90, 60, 91, 61, 92, 62, 93, 63, 94,
- 64, 64, 65, 96, 66, 97, 67, 98, 68, 99, 69, 100,
- 70, 101, 71, 102, 72, 103, 73, 104, 74, 105, 75, 106,
- 76, 107, 77, 108, 78, 109, 79, 110, 80, 111, 81, 112,
- 82, 113, 83, 114, 84, 115, 85, 116, 86, 117, 87, 118,
- 88, 119, 89, 120, 90, 121, 91, 122, 92, 123, 93, 124,
- 94, 125, 95, 126, 96, 96, 97, 128, 98, 129, 99, 130,
- 100, 131, 101, 132, 102, 133, 103, 134, 104, 135, 105, 136,
- 106, 137, 107, 138, 108, 139, 109, 140, 110, 141, 111, 142,
- 112, 143, 113, 144, 114, 145, 115, 146, 116, 147, 117, 148,
- 118, 149, 119, 150, 120, 151, 121, 152, 122, 153, 123, 154,
- 124, 155, 125, 156, 126, 157, 127, 158, 128, 128, 129, 160,
- 130, 161, 131, 162, 132, 163, 133, 164, 134, 165, 135, 166,
- 136, 167, 137, 168, 138, 169, 139, 170, 140, 171, 141, 172,
- 142, 173, 143, 174, 144, 175, 145, 176, 146, 177, 147, 178,
- 148, 179, 149, 180, 150, 181, 151, 182, 152, 183, 153, 184,
- 154, 185, 155, 186, 156, 187, 157, 188, 158, 189, 159, 190,
- 160, 160, 161, 192, 162, 193, 163, 194, 164, 195, 165, 196,
- 166, 197, 167, 198, 168, 199, 169, 200, 170, 201, 171, 202,
- 172, 203, 173, 204, 174, 205, 175, 206, 176, 207, 177, 208,
- 178, 209, 179, 210, 180, 211, 181, 212, 182, 213, 183, 214,
- 184, 215, 185, 216, 186, 217, 187, 218, 188, 219, 189, 220,
- 190, 221, 191, 222, 192, 192, 193, 224, 194, 225, 195, 226,
- 196, 227, 197, 228, 198, 229, 199, 230, 200, 231, 201, 232,
- 202, 233, 203, 234, 204, 235, 205, 236, 206, 237, 207, 238,
- 208, 239, 209, 240, 210, 241, 211, 242, 212, 243, 213, 244,
- 214, 245, 215, 246, 216, 247, 217, 248, 218, 249, 219, 250,
- 220, 251, 221, 252, 222, 253, 223, 254, 224, 224, 225, 256,
- 226, 257, 227, 258, 228, 259, 229, 260, 230, 261, 231, 262,
- 232, 263, 233, 264, 234, 265, 235, 266, 236, 267, 237, 268,
- 238, 269, 239, 270, 240, 271, 241, 272, 242, 273, 243, 274,
- 244, 275, 245, 276, 246, 277, 247, 278, 248, 279, 249, 280,
- 250, 281, 251, 282, 252, 283, 253, 284, 254, 285, 255, 286,
- 256, 256, 257, 288, 258, 289, 259, 290, 260, 291, 261, 292,
- 262, 293, 263, 294, 264, 295, 265, 296, 266, 297, 267, 298,
- 268, 299, 269, 300, 270, 301, 271, 302, 272, 303, 273, 304,
- 274, 305, 275, 306, 276, 307, 277, 308, 278, 309, 279, 310,
- 280, 311, 281, 312, 282, 313, 283, 314, 284, 315, 285, 316,
- 286, 317, 287, 318, 288, 288, 289, 320, 290, 321, 291, 322,
- 292, 323, 293, 324, 294, 325, 295, 326, 296, 327, 297, 328,
- 298, 329, 299, 330, 300, 331, 301, 332, 302, 333, 303, 334,
- 304, 335, 305, 336, 306, 337, 307, 338, 308, 339, 309, 340,
- 310, 341, 311, 342, 312, 343, 313, 344, 314, 345, 315, 346,
- 316, 347, 317, 348, 318, 349, 319, 350, 320, 320, 321, 352,
- 322, 353, 323, 354, 324, 355, 325, 356, 326, 357, 327, 358,
- 328, 359, 329, 360, 330, 361, 331, 362, 332, 363, 333, 364,
- 334, 365, 335, 366, 336, 367, 337, 368, 338, 369, 339, 370,
- 340, 371, 341, 372, 342, 373, 343, 374, 344, 375, 345, 376,
- 346, 377, 347, 378, 348, 379, 349, 380, 350, 381, 351, 382,
- 352, 352, 353, 384, 354, 385, 355, 386, 356, 387, 357, 388,
- 358, 389, 359, 390, 360, 391, 361, 392, 362, 393, 363, 394,
- 364, 395, 365, 396, 366, 397, 367, 398, 368, 399, 369, 400,
- 370, 401, 371, 402, 372, 403, 373, 404, 374, 405, 375, 406,
- 376, 407, 377, 408, 378, 409, 379, 410, 380, 411, 381, 412,
- 382, 413, 383, 414, 384, 384, 385, 416, 386, 417, 387, 418,
- 388, 419, 389, 420, 390, 421, 391, 422, 392, 423, 393, 424,
- 394, 425, 395, 426, 396, 427, 397, 428, 398, 429, 399, 430,
- 400, 431, 401, 432, 402, 433, 403, 434, 404, 435, 405, 436,
- 406, 437, 407, 438, 408, 439, 409, 440, 410, 441, 411, 442,
- 412, 443, 413, 444, 414, 445, 415, 446, 416, 416, 417, 448,
- 418, 449, 419, 450, 420, 451, 421, 452, 422, 453, 423, 454,
- 424, 455, 425, 456, 426, 457, 427, 458, 428, 459, 429, 460,
- 430, 461, 431, 462, 432, 463, 433, 464, 434, 465, 435, 466,
- 436, 467, 437, 468, 438, 469, 439, 470, 440, 471, 441, 472,
- 442, 473, 443, 474, 444, 475, 445, 476, 446, 477, 447, 478,
- 448, 448, 449, 480, 450, 481, 451, 482, 452, 483, 453, 484,
- 454, 485, 455, 486, 456, 487, 457, 488, 458, 489, 459, 490,
- 460, 491, 461, 492, 462, 493, 463, 494, 464, 495, 465, 496,
- 466, 497, 467, 498, 468, 499, 469, 500, 470, 501, 471, 502,
- 472, 503, 473, 504, 474, 505, 475, 506, 476, 507, 477, 508,
- 478, 509, 479, 510,
- 0, 0
+ 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6,
+ 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13,
+ 14, 14, 15, 15, 16, 16, 17, 17, 18, 18, 19, 19, 20, 20, 21,
+ 21, 22, 22, 23, 23, 24, 24, 25, 25, 26, 26, 27, 27, 28, 28,
+ 29, 29, 30, 30, 0, 0, 1, 32, 2, 33, 3, 34, 4, 35, 5,
+ 36, 6, 37, 7, 38, 8, 39, 9, 40, 10, 41, 11, 42, 12, 43,
+ 13, 44, 14, 45, 15, 46, 16, 47, 17, 48, 18, 49, 19, 50, 20,
+ 51, 21, 52, 22, 53, 23, 54, 24, 55, 25, 56, 26, 57, 27, 58,
+ 28, 59, 29, 60, 30, 61, 31, 62, 32, 32, 33, 64, 34, 65, 35,
+ 66, 36, 67, 37, 68, 38, 69, 39, 70, 40, 71, 41, 72, 42, 73,
+ 43, 74, 44, 75, 45, 76, 46, 77, 47, 78, 48, 79, 49, 80, 50,
+ 81, 51, 82, 52, 83, 53, 84, 54, 85, 55, 86, 56, 87, 57, 88,
+ 58, 89, 59, 90, 60, 91, 61, 92, 62, 93, 63, 94, 64, 64, 65,
+ 96, 66, 97, 67, 98, 68, 99, 69, 100, 70, 101, 71, 102, 72, 103,
+ 73, 104, 74, 105, 75, 106, 76, 107, 77, 108, 78, 109, 79, 110, 80,
+ 111, 81, 112, 82, 113, 83, 114, 84, 115, 85, 116, 86, 117, 87, 118,
+ 88, 119, 89, 120, 90, 121, 91, 122, 92, 123, 93, 124, 94, 125, 95,
+ 126, 96, 96, 97, 128, 98, 129, 99, 130, 100, 131, 101, 132, 102, 133,
+ 103, 134, 104, 135, 105, 136, 106, 137, 107, 138, 108, 139, 109, 140, 110,
+ 141, 111, 142, 112, 143, 113, 144, 114, 145, 115, 146, 116, 147, 117, 148,
+ 118, 149, 119, 150, 120, 151, 121, 152, 122, 153, 123, 154, 124, 155, 125,
+ 156, 126, 157, 127, 158, 128, 128, 129, 160, 130, 161, 131, 162, 132, 163,
+ 133, 164, 134, 165, 135, 166, 136, 167, 137, 168, 138, 169, 139, 170, 140,
+ 171, 141, 172, 142, 173, 143, 174, 144, 175, 145, 176, 146, 177, 147, 178,
+ 148, 179, 149, 180, 150, 181, 151, 182, 152, 183, 153, 184, 154, 185, 155,
+ 186, 156, 187, 157, 188, 158, 189, 159, 190, 160, 160, 161, 192, 162, 193,
+ 163, 194, 164, 195, 165, 196, 166, 197, 167, 198, 168, 199, 169, 200, 170,
+ 201, 171, 202, 172, 203, 173, 204, 174, 205, 175, 206, 176, 207, 177, 208,
+ 178, 209, 179, 210, 180, 211, 181, 212, 182, 213, 183, 214, 184, 215, 185,
+ 216, 186, 217, 187, 218, 188, 219, 189, 220, 190, 221, 191, 222, 192, 192,
+ 193, 224, 194, 225, 195, 226, 196, 227, 197, 228, 198, 229, 199, 230, 200,
+ 231, 201, 232, 202, 233, 203, 234, 204, 235, 205, 236, 206, 237, 207, 238,
+ 208, 239, 209, 240, 210, 241, 211, 242, 212, 243, 213, 244, 214, 245, 215,
+ 246, 216, 247, 217, 248, 218, 249, 219, 250, 220, 251, 221, 252, 222, 253,
+ 223, 254, 224, 224, 225, 256, 226, 257, 227, 258, 228, 259, 229, 260, 230,
+ 261, 231, 262, 232, 263, 233, 264, 234, 265, 235, 266, 236, 267, 237, 268,
+ 238, 269, 239, 270, 240, 271, 241, 272, 242, 273, 243, 274, 244, 275, 245,
+ 276, 246, 277, 247, 278, 248, 279, 249, 280, 250, 281, 251, 282, 252, 283,
+ 253, 284, 254, 285, 255, 286, 256, 256, 257, 288, 258, 289, 259, 290, 260,
+ 291, 261, 292, 262, 293, 263, 294, 264, 295, 265, 296, 266, 297, 267, 298,
+ 268, 299, 269, 300, 270, 301, 271, 302, 272, 303, 273, 304, 274, 305, 275,
+ 306, 276, 307, 277, 308, 278, 309, 279, 310, 280, 311, 281, 312, 282, 313,
+ 283, 314, 284, 315, 285, 316, 286, 317, 287, 318, 288, 288, 289, 320, 290,
+ 321, 291, 322, 292, 323, 293, 324, 294, 325, 295, 326, 296, 327, 297, 328,
+ 298, 329, 299, 330, 300, 331, 301, 332, 302, 333, 303, 334, 304, 335, 305,
+ 336, 306, 337, 307, 338, 308, 339, 309, 340, 310, 341, 311, 342, 312, 343,
+ 313, 344, 314, 345, 315, 346, 316, 347, 317, 348, 318, 349, 319, 350, 320,
+ 320, 321, 352, 322, 353, 323, 354, 324, 355, 325, 356, 326, 357, 327, 358,
+ 328, 359, 329, 360, 330, 361, 331, 362, 332, 363, 333, 364, 334, 365, 335,
+ 366, 336, 367, 337, 368, 338, 369, 339, 370, 340, 371, 341, 372, 342, 373,
+ 343, 374, 344, 375, 345, 376, 346, 377, 347, 378, 348, 379, 349, 380, 350,
+ 381, 351, 382, 352, 352, 353, 384, 354, 385, 355, 386, 356, 387, 357, 388,
+ 358, 389, 359, 390, 360, 391, 361, 392, 362, 393, 363, 394, 364, 395, 365,
+ 396, 366, 397, 367, 398, 368, 399, 369, 400, 370, 401, 371, 402, 372, 403,
+ 373, 404, 374, 405, 375, 406, 376, 407, 377, 408, 378, 409, 379, 410, 380,
+ 411, 381, 412, 382, 413, 383, 414, 384, 384, 385, 416, 386, 417, 387, 418,
+ 388, 419, 389, 420, 390, 421, 391, 422, 392, 423, 393, 424, 394, 425, 395,
+ 426, 396, 427, 397, 428, 398, 429, 399, 430, 400, 431, 401, 432, 402, 433,
+ 403, 434, 404, 435, 405, 436, 406, 437, 407, 438, 408, 439, 409, 440, 410,
+ 441, 411, 442, 412, 443, 413, 444, 414, 445, 415, 446, 416, 416, 417, 448,
+ 418, 449, 419, 450, 420, 451, 421, 452, 422, 453, 423, 454, 424, 455, 425,
+ 456, 426, 457, 427, 458, 428, 459, 429, 460, 430, 461, 431, 462, 432, 463,
+ 433, 464, 434, 465, 435, 466, 436, 467, 437, 468, 438, 469, 439, 470, 440,
+ 471, 441, 472, 442, 473, 443, 474, 444, 475, 445, 476, 446, 477, 447, 478,
+ 448, 448, 449, 480, 450, 481, 451, 482, 452, 483, 453, 484, 454, 485, 455,
+ 486, 456, 487, 457, 488, 458, 489, 459, 490, 460, 491, 461, 492, 462, 493,
+ 463, 494, 464, 495, 465, 496, 466, 497, 467, 498, 468, 499, 469, 500, 470,
+ 501, 471, 502, 472, 503, 473, 504, 474, 505, 475, 506, 476, 507, 477, 508,
+ 478, 509, 479, 510, 0, 0
};
#endif // CONFIG_EXT_TX
@@ -3116,363 +2910,296 @@
#if CONFIG_EXT_TX
DECLARE_ALIGNED(16, static const int16_t, vp10_default_iscan_8x16[128]) = {
- 0, 1, 3, 6, 10, 15, 21, 28, 2, 4, 7, 11,
- 16, 22, 29, 36, 5, 8, 12, 17, 23, 30, 37, 44,
- 9, 13, 18, 24, 31, 38, 45, 52, 14, 19, 25, 32,
- 39, 46, 53, 60, 20, 26, 33, 40, 47, 54, 61, 68,
- 27, 34, 41, 48, 55, 62, 69, 76, 35, 42, 49, 56,
- 63, 70, 77, 84, 43, 50, 57, 64, 71, 78, 85, 92,
- 51, 58, 65, 72, 79, 86, 93, 100, 59, 66, 73, 80,
- 87, 94, 101, 107, 67, 74, 81, 88, 95, 102, 108, 113,
- 75, 82, 89, 96, 103, 109, 114, 118, 83, 90, 97, 104,
- 110, 115, 119, 122, 91, 98, 105, 111, 116, 120, 123, 125,
- 99, 106, 112, 117, 121, 124, 126, 127,
+ 0, 1, 3, 6, 10, 15, 21, 28, 2, 4, 7, 11, 16, 22, 29, 36,
+ 5, 8, 12, 17, 23, 30, 37, 44, 9, 13, 18, 24, 31, 38, 45, 52,
+ 14, 19, 25, 32, 39, 46, 53, 60, 20, 26, 33, 40, 47, 54, 61, 68,
+ 27, 34, 41, 48, 55, 62, 69, 76, 35, 42, 49, 56, 63, 70, 77, 84,
+ 43, 50, 57, 64, 71, 78, 85, 92, 51, 58, 65, 72, 79, 86, 93, 100,
+ 59, 66, 73, 80, 87, 94, 101, 107, 67, 74, 81, 88, 95, 102, 108, 113,
+ 75, 82, 89, 96, 103, 109, 114, 118, 83, 90, 97, 104, 110, 115, 119, 122,
+ 91, 98, 105, 111, 116, 120, 123, 125, 99, 106, 112, 117, 121, 124, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_default_iscan_16x8[128]) = {
- 0, 1, 3, 6, 10, 15, 21, 28, 36, 44, 52, 60,
- 68, 76, 84, 92, 2, 4, 7, 11, 16, 22, 29, 37,
- 45, 53, 61, 69, 77, 85, 93, 100, 5, 8, 12, 17,
- 23, 30, 38, 46, 54, 62, 70, 78, 86, 94, 101, 107,
- 9, 13, 18, 24, 31, 39, 47, 55, 63, 71, 79, 87,
- 95, 102, 108, 113, 14, 19, 25, 32, 40, 48, 56, 64,
- 72, 80, 88, 96, 103, 109, 114, 118, 20, 26, 33, 41,
- 49, 57, 65, 73, 81, 89, 97, 104, 110, 115, 119, 122,
- 27, 34, 42, 50, 58, 66, 74, 82, 90, 98, 105, 111,
- 116, 120, 123, 125, 35, 43, 51, 59, 67, 75, 83, 91,
- 99, 106, 112, 117, 121, 124, 126, 127,
+ 0, 1, 3, 6, 10, 15, 21, 28, 36, 44, 52, 60, 68, 76, 84, 92,
+ 2, 4, 7, 11, 16, 22, 29, 37, 45, 53, 61, 69, 77, 85, 93, 100,
+ 5, 8, 12, 17, 23, 30, 38, 46, 54, 62, 70, 78, 86, 94, 101, 107,
+ 9, 13, 18, 24, 31, 39, 47, 55, 63, 71, 79, 87, 95, 102, 108, 113,
+ 14, 19, 25, 32, 40, 48, 56, 64, 72, 80, 88, 96, 103, 109, 114, 118,
+ 20, 26, 33, 41, 49, 57, 65, 73, 81, 89, 97, 104, 110, 115, 119, 122,
+ 27, 34, 42, 50, 58, 66, 74, 82, 90, 98, 105, 111, 116, 120, 123, 125,
+ 35, 43, 51, 59, 67, 75, 83, 91, 99, 106, 112, 117, 121, 124, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mcol_iscan_8x16[128]) = {
- 0, 16, 32, 48, 64, 80, 96, 112, 1, 17, 33, 49,
- 65, 81, 97, 113, 2, 18, 34, 50, 66, 82, 98, 114,
- 3, 19, 35, 51, 67, 83, 99, 115, 4, 20, 36, 52,
- 68, 84, 100, 116, 5, 21, 37, 53, 69, 85, 101, 117,
- 6, 22, 38, 54, 70, 86, 102, 118, 7, 23, 39, 55,
- 71, 87, 103, 119, 8, 24, 40, 56, 72, 88, 104, 120,
- 9, 25, 41, 57, 73, 89, 105, 121, 10, 26, 42, 58,
- 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123,
- 12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61,
- 77, 93, 109, 125, 14, 30, 46, 62, 78, 94, 110, 126,
- 15, 31, 47, 63, 79, 95, 111, 127,
+ 0, 16, 32, 48, 64, 80, 96, 112, 1, 17, 33, 49, 65, 81, 97, 113,
+ 2, 18, 34, 50, 66, 82, 98, 114, 3, 19, 35, 51, 67, 83, 99, 115,
+ 4, 20, 36, 52, 68, 84, 100, 116, 5, 21, 37, 53, 69, 85, 101, 117,
+ 6, 22, 38, 54, 70, 86, 102, 118, 7, 23, 39, 55, 71, 87, 103, 119,
+ 8, 24, 40, 56, 72, 88, 104, 120, 9, 25, 41, 57, 73, 89, 105, 121,
+ 10, 26, 42, 58, 74, 90, 106, 122, 11, 27, 43, 59, 75, 91, 107, 123,
+ 12, 28, 44, 60, 76, 92, 108, 124, 13, 29, 45, 61, 77, 93, 109, 125,
+ 14, 30, 46, 62, 78, 94, 110, 126, 15, 31, 47, 63, 79, 95, 111, 127,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mcol_iscan_16x8[128]) = {
- 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88,
- 96, 104, 112, 120, 1, 9, 17, 25, 33, 41, 49, 57,
- 65, 73, 81, 89, 97, 105, 113, 121, 2, 10, 18, 26,
- 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122,
- 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91,
- 99, 107, 115, 123, 4, 12, 20, 28, 36, 44, 52, 60,
- 68, 76, 84, 92, 100, 108, 116, 124, 5, 13, 21, 29,
- 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125,
- 6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94,
- 102, 110, 118, 126, 7, 15, 23, 31, 39, 47, 55, 63,
- 71, 79, 87, 95, 103, 111, 119, 127,
+ 0, 8, 16, 24, 32, 40, 48, 56, 64, 72, 80, 88, 96, 104, 112, 120,
+ 1, 9, 17, 25, 33, 41, 49, 57, 65, 73, 81, 89, 97, 105, 113, 121,
+ 2, 10, 18, 26, 34, 42, 50, 58, 66, 74, 82, 90, 98, 106, 114, 122,
+ 3, 11, 19, 27, 35, 43, 51, 59, 67, 75, 83, 91, 99, 107, 115, 123,
+ 4, 12, 20, 28, 36, 44, 52, 60, 68, 76, 84, 92, 100, 108, 116, 124,
+ 5, 13, 21, 29, 37, 45, 53, 61, 69, 77, 85, 93, 101, 109, 117, 125,
+ 6, 14, 22, 30, 38, 46, 54, 62, 70, 78, 86, 94, 102, 110, 118, 126,
+ 7, 15, 23, 31, 39, 47, 55, 63, 71, 79, 87, 95, 103, 111, 119, 127,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mrow_iscan_8x16[128]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mrow_iscan_16x8[128]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
120, 121, 122, 123, 124, 125, 126, 127,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_default_iscan_16x32[512]) = {
- 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66,
- 78, 91, 105, 120, 2, 4, 7, 11, 16, 22, 29, 37,
- 46, 56, 67, 79, 92, 106, 121, 136, 5, 8, 12, 17,
- 23, 30, 38, 47, 57, 68, 80, 93, 107, 122, 137, 152,
- 9, 13, 18, 24, 31, 39, 48, 58, 69, 81, 94, 108,
- 123, 138, 153, 168, 14, 19, 25, 32, 40, 49, 59, 70,
- 82, 95, 109, 124, 139, 154, 169, 184, 20, 26, 33, 41,
- 50, 60, 71, 83, 96, 110, 125, 140, 155, 170, 185, 200,
- 27, 34, 42, 51, 61, 72, 84, 97, 111, 126, 141, 156,
- 171, 186, 201, 216, 35, 43, 52, 62, 73, 85, 98, 112,
- 127, 142, 157, 172, 187, 202, 217, 232, 44, 53, 63, 74,
- 86, 99, 113, 128, 143, 158, 173, 188, 203, 218, 233, 248,
- 54, 64, 75, 87, 100, 114, 129, 144, 159, 174, 189, 204,
- 219, 234, 249, 264, 65, 76, 88, 101, 115, 130, 145, 160,
- 175, 190, 205, 220, 235, 250, 265, 280, 77, 89, 102, 116,
- 131, 146, 161, 176, 191, 206, 221, 236, 251, 266, 281, 296,
- 90, 103, 117, 132, 147, 162, 177, 192, 207, 222, 237, 252,
- 267, 282, 297, 312, 104, 118, 133, 148, 163, 178, 193, 208,
- 223, 238, 253, 268, 283, 298, 313, 328, 119, 134, 149, 164,
- 179, 194, 209, 224, 239, 254, 269, 284, 299, 314, 329, 344,
- 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300,
- 315, 330, 345, 360, 151, 166, 181, 196, 211, 226, 241, 256,
- 271, 286, 301, 316, 331, 346, 361, 376, 167, 182, 197, 212,
- 227, 242, 257, 272, 287, 302, 317, 332, 347, 362, 377, 392,
- 183, 198, 213, 228, 243, 258, 273, 288, 303, 318, 333, 348,
- 363, 378, 393, 407, 199, 214, 229, 244, 259, 274, 289, 304,
- 319, 334, 349, 364, 379, 394, 408, 421, 215, 230, 245, 260,
- 275, 290, 305, 320, 335, 350, 365, 380, 395, 409, 422, 434,
- 231, 246, 261, 276, 291, 306, 321, 336, 351, 366, 381, 396,
- 410, 423, 435, 446, 247, 262, 277, 292, 307, 322, 337, 352,
- 367, 382, 397, 411, 424, 436, 447, 457, 263, 278, 293, 308,
- 323, 338, 353, 368, 383, 398, 412, 425, 437, 448, 458, 467,
- 279, 294, 309, 324, 339, 354, 369, 384, 399, 413, 426, 438,
- 449, 459, 468, 476, 295, 310, 325, 340, 355, 370, 385, 400,
- 414, 427, 439, 450, 460, 469, 477, 484, 311, 326, 341, 356,
- 371, 386, 401, 415, 428, 440, 451, 461, 470, 478, 485, 491,
- 327, 342, 357, 372, 387, 402, 416, 429, 441, 452, 462, 471,
- 479, 486, 492, 497, 343, 358, 373, 388, 403, 417, 430, 442,
- 453, 463, 472, 480, 487, 493, 498, 502, 359, 374, 389, 404,
- 418, 431, 443, 454, 464, 473, 481, 488, 494, 499, 503, 506,
- 375, 390, 405, 419, 432, 444, 455, 465, 474, 482, 489, 495,
- 500, 504, 507, 509, 391, 406, 420, 433, 445, 456, 466, 475,
- 483, 490, 496, 501, 505, 508, 510, 511,
+ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105,
+ 120, 2, 4, 7, 11, 16, 22, 29, 37, 46, 56, 67, 79, 92, 106,
+ 121, 136, 5, 8, 12, 17, 23, 30, 38, 47, 57, 68, 80, 93, 107,
+ 122, 137, 152, 9, 13, 18, 24, 31, 39, 48, 58, 69, 81, 94, 108,
+ 123, 138, 153, 168, 14, 19, 25, 32, 40, 49, 59, 70, 82, 95, 109,
+ 124, 139, 154, 169, 184, 20, 26, 33, 41, 50, 60, 71, 83, 96, 110,
+ 125, 140, 155, 170, 185, 200, 27, 34, 42, 51, 61, 72, 84, 97, 111,
+ 126, 141, 156, 171, 186, 201, 216, 35, 43, 52, 62, 73, 85, 98, 112,
+ 127, 142, 157, 172, 187, 202, 217, 232, 44, 53, 63, 74, 86, 99, 113,
+ 128, 143, 158, 173, 188, 203, 218, 233, 248, 54, 64, 75, 87, 100, 114,
+ 129, 144, 159, 174, 189, 204, 219, 234, 249, 264, 65, 76, 88, 101, 115,
+ 130, 145, 160, 175, 190, 205, 220, 235, 250, 265, 280, 77, 89, 102, 116,
+ 131, 146, 161, 176, 191, 206, 221, 236, 251, 266, 281, 296, 90, 103, 117,
+ 132, 147, 162, 177, 192, 207, 222, 237, 252, 267, 282, 297, 312, 104, 118,
+ 133, 148, 163, 178, 193, 208, 223, 238, 253, 268, 283, 298, 313, 328, 119,
+ 134, 149, 164, 179, 194, 209, 224, 239, 254, 269, 284, 299, 314, 329, 344,
+ 135, 150, 165, 180, 195, 210, 225, 240, 255, 270, 285, 300, 315, 330, 345,
+ 360, 151, 166, 181, 196, 211, 226, 241, 256, 271, 286, 301, 316, 331, 346,
+ 361, 376, 167, 182, 197, 212, 227, 242, 257, 272, 287, 302, 317, 332, 347,
+ 362, 377, 392, 183, 198, 213, 228, 243, 258, 273, 288, 303, 318, 333, 348,
+ 363, 378, 393, 407, 199, 214, 229, 244, 259, 274, 289, 304, 319, 334, 349,
+ 364, 379, 394, 408, 421, 215, 230, 245, 260, 275, 290, 305, 320, 335, 350,
+ 365, 380, 395, 409, 422, 434, 231, 246, 261, 276, 291, 306, 321, 336, 351,
+ 366, 381, 396, 410, 423, 435, 446, 247, 262, 277, 292, 307, 322, 337, 352,
+ 367, 382, 397, 411, 424, 436, 447, 457, 263, 278, 293, 308, 323, 338, 353,
+ 368, 383, 398, 412, 425, 437, 448, 458, 467, 279, 294, 309, 324, 339, 354,
+ 369, 384, 399, 413, 426, 438, 449, 459, 468, 476, 295, 310, 325, 340, 355,
+ 370, 385, 400, 414, 427, 439, 450, 460, 469, 477, 484, 311, 326, 341, 356,
+ 371, 386, 401, 415, 428, 440, 451, 461, 470, 478, 485, 491, 327, 342, 357,
+ 372, 387, 402, 416, 429, 441, 452, 462, 471, 479, 486, 492, 497, 343, 358,
+ 373, 388, 403, 417, 430, 442, 453, 463, 472, 480, 487, 493, 498, 502, 359,
+ 374, 389, 404, 418, 431, 443, 454, 464, 473, 481, 488, 494, 499, 503, 506,
+ 375, 390, 405, 419, 432, 444, 455, 465, 474, 482, 489, 495, 500, 504, 507,
+ 509, 391, 406, 420, 433, 445, 456, 466, 475, 483, 490, 496, 501, 505, 508,
+ 510, 511,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_default_iscan_32x16[512]) = {
- 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66,
- 78, 91, 105, 120, 136, 152, 168, 184, 200, 216, 232, 248,
- 264, 280, 296, 312, 328, 344, 360, 376, 2, 4, 7, 11,
- 16, 22, 29, 37, 46, 56, 67, 79, 92, 106, 121, 137,
- 153, 169, 185, 201, 217, 233, 249, 265, 281, 297, 313, 329,
- 345, 361, 377, 392, 5, 8, 12, 17, 23, 30, 38, 47,
- 57, 68, 80, 93, 107, 122, 138, 154, 170, 186, 202, 218,
- 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 393, 407,
- 9, 13, 18, 24, 31, 39, 48, 58, 69, 81, 94, 108,
- 123, 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299,
- 315, 331, 347, 363, 379, 394, 408, 421, 14, 19, 25, 32,
- 40, 49, 59, 70, 82, 95, 109, 124, 140, 156, 172, 188,
- 204, 220, 236, 252, 268, 284, 300, 316, 332, 348, 364, 380,
- 395, 409, 422, 434, 20, 26, 33, 41, 50, 60, 71, 83,
- 96, 110, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269,
- 285, 301, 317, 333, 349, 365, 381, 396, 410, 423, 435, 446,
- 27, 34, 42, 51, 61, 72, 84, 97, 111, 126, 142, 158,
- 174, 190, 206, 222, 238, 254, 270, 286, 302, 318, 334, 350,
- 366, 382, 397, 411, 424, 436, 447, 457, 35, 43, 52, 62,
- 73, 85, 98, 112, 127, 143, 159, 175, 191, 207, 223, 239,
- 255, 271, 287, 303, 319, 335, 351, 367, 383, 398, 412, 425,
- 437, 448, 458, 467, 44, 53, 63, 74, 86, 99, 113, 128,
- 144, 160, 176, 192, 208, 224, 240, 256, 272, 288, 304, 320,
- 336, 352, 368, 384, 399, 413, 426, 438, 449, 459, 468, 476,
- 54, 64, 75, 87, 100, 114, 129, 145, 161, 177, 193, 209,
- 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 400,
- 414, 427, 439, 450, 460, 469, 477, 484, 65, 76, 88, 101,
- 115, 130, 146, 162, 178, 194, 210, 226, 242, 258, 274, 290,
- 306, 322, 338, 354, 370, 386, 401, 415, 428, 440, 451, 461,
- 470, 478, 485, 491, 77, 89, 102, 116, 131, 147, 163, 179,
- 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371,
- 387, 402, 416, 429, 441, 452, 462, 471, 479, 486, 492, 497,
- 90, 103, 117, 132, 148, 164, 180, 196, 212, 228, 244, 260,
- 276, 292, 308, 324, 340, 356, 372, 388, 403, 417, 430, 442,
- 453, 463, 472, 480, 487, 493, 498, 502, 104, 118, 133, 149,
- 165, 181, 197, 213, 229, 245, 261, 277, 293, 309, 325, 341,
- 357, 373, 389, 404, 418, 431, 443, 454, 464, 473, 481, 488,
- 494, 499, 503, 506, 119, 134, 150, 166, 182, 198, 214, 230,
- 246, 262, 278, 294, 310, 326, 342, 358, 374, 390, 405, 419,
- 432, 444, 455, 465, 474, 482, 489, 495, 500, 504, 507, 509,
- 135, 151, 167, 183, 199, 215, 231, 247, 263, 279, 295, 311,
- 327, 343, 359, 375, 391, 406, 420, 433, 445, 456, 466, 475,
- 483, 490, 496, 501, 505, 508, 510, 511,
+ 0, 1, 3, 6, 10, 15, 21, 28, 36, 45, 55, 66, 78, 91, 105,
+ 120, 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312, 328, 344,
+ 360, 376, 2, 4, 7, 11, 16, 22, 29, 37, 46, 56, 67, 79, 92,
+ 106, 121, 137, 153, 169, 185, 201, 217, 233, 249, 265, 281, 297, 313, 329,
+ 345, 361, 377, 392, 5, 8, 12, 17, 23, 30, 38, 47, 57, 68, 80,
+ 93, 107, 122, 138, 154, 170, 186, 202, 218, 234, 250, 266, 282, 298, 314,
+ 330, 346, 362, 378, 393, 407, 9, 13, 18, 24, 31, 39, 48, 58, 69,
+ 81, 94, 108, 123, 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299,
+ 315, 331, 347, 363, 379, 394, 408, 421, 14, 19, 25, 32, 40, 49, 59,
+ 70, 82, 95, 109, 124, 140, 156, 172, 188, 204, 220, 236, 252, 268, 284,
+ 300, 316, 332, 348, 364, 380, 395, 409, 422, 434, 20, 26, 33, 41, 50,
+ 60, 71, 83, 96, 110, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269,
+ 285, 301, 317, 333, 349, 365, 381, 396, 410, 423, 435, 446, 27, 34, 42,
+ 51, 61, 72, 84, 97, 111, 126, 142, 158, 174, 190, 206, 222, 238, 254,
+ 270, 286, 302, 318, 334, 350, 366, 382, 397, 411, 424, 436, 447, 457, 35,
+ 43, 52, 62, 73, 85, 98, 112, 127, 143, 159, 175, 191, 207, 223, 239,
+ 255, 271, 287, 303, 319, 335, 351, 367, 383, 398, 412, 425, 437, 448, 458,
+ 467, 44, 53, 63, 74, 86, 99, 113, 128, 144, 160, 176, 192, 208, 224,
+ 240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 399, 413, 426, 438, 449,
+ 459, 468, 476, 54, 64, 75, 87, 100, 114, 129, 145, 161, 177, 193, 209,
+ 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 400, 414, 427, 439,
+ 450, 460, 469, 477, 484, 65, 76, 88, 101, 115, 130, 146, 162, 178, 194,
+ 210, 226, 242, 258, 274, 290, 306, 322, 338, 354, 370, 386, 401, 415, 428,
+ 440, 451, 461, 470, 478, 485, 491, 77, 89, 102, 116, 131, 147, 163, 179,
+ 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371, 387, 402, 416,
+ 429, 441, 452, 462, 471, 479, 486, 492, 497, 90, 103, 117, 132, 148, 164,
+ 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340, 356, 372, 388, 403,
+ 417, 430, 442, 453, 463, 472, 480, 487, 493, 498, 502, 104, 118, 133, 149,
+ 165, 181, 197, 213, 229, 245, 261, 277, 293, 309, 325, 341, 357, 373, 389,
+ 404, 418, 431, 443, 454, 464, 473, 481, 488, 494, 499, 503, 506, 119, 134,
+ 150, 166, 182, 198, 214, 230, 246, 262, 278, 294, 310, 326, 342, 358, 374,
+ 390, 405, 419, 432, 444, 455, 465, 474, 482, 489, 495, 500, 504, 507, 509,
+ 135, 151, 167, 183, 199, 215, 231, 247, 263, 279, 295, 311, 327, 343, 359,
+ 375, 391, 406, 420, 433, 445, 456, 466, 475, 483, 490, 496, 501, 505, 508,
+ 510, 511,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mcol_iscan_16x32[512]) = {
- 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352,
- 384, 416, 448, 480, 1, 33, 65, 97, 129, 161, 193, 225,
- 257, 289, 321, 353, 385, 417, 449, 481, 2, 34, 66, 98,
- 130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482,
- 3, 35, 67, 99, 131, 163, 195, 227, 259, 291, 323, 355,
- 387, 419, 451, 483, 4, 36, 68, 100, 132, 164, 196, 228,
- 260, 292, 324, 356, 388, 420, 452, 484, 5, 37, 69, 101,
- 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485,
- 6, 38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358,
- 390, 422, 454, 486, 7, 39, 71, 103, 135, 167, 199, 231,
- 263, 295, 327, 359, 391, 423, 455, 487, 8, 40, 72, 104,
- 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488,
- 9, 41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361,
- 393, 425, 457, 489, 10, 42, 74, 106, 138, 170, 202, 234,
- 266, 298, 330, 362, 394, 426, 458, 490, 11, 43, 75, 107,
- 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491,
- 12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364,
- 396, 428, 460, 492, 13, 45, 77, 109, 141, 173, 205, 237,
- 269, 301, 333, 365, 397, 429, 461, 493, 14, 46, 78, 110,
- 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494,
- 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367,
- 399, 431, 463, 495, 16, 48, 80, 112, 144, 176, 208, 240,
- 272, 304, 336, 368, 400, 432, 464, 496, 17, 49, 81, 113,
- 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497,
- 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370,
- 402, 434, 466, 498, 19, 51, 83, 115, 147, 179, 211, 243,
- 275, 307, 339, 371, 403, 435, 467, 499, 20, 52, 84, 116,
- 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500,
- 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373,
- 405, 437, 469, 501, 22, 54, 86, 118, 150, 182, 214, 246,
- 278, 310, 342, 374, 406, 438, 470, 502, 23, 55, 87, 119,
- 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503,
- 24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376,
- 408, 440, 472, 504, 25, 57, 89, 121, 153, 185, 217, 249,
- 281, 313, 345, 377, 409, 441, 473, 505, 26, 58, 90, 122,
- 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506,
- 27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379,
- 411, 443, 475, 507, 28, 60, 92, 124, 156, 188, 220, 252,
- 284, 316, 348, 380, 412, 444, 476, 508, 29, 61, 93, 125,
- 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509,
- 30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382,
- 414, 446, 478, 510, 31, 63, 95, 127, 159, 191, 223, 255,
- 287, 319, 351, 383, 415, 447, 479, 511,
+ 0, 32, 64, 96, 128, 160, 192, 224, 256, 288, 320, 352, 384, 416, 448, 480,
+ 1, 33, 65, 97, 129, 161, 193, 225, 257, 289, 321, 353, 385, 417, 449, 481,
+ 2, 34, 66, 98, 130, 162, 194, 226, 258, 290, 322, 354, 386, 418, 450, 482,
+ 3, 35, 67, 99, 131, 163, 195, 227, 259, 291, 323, 355, 387, 419, 451, 483,
+ 4, 36, 68, 100, 132, 164, 196, 228, 260, 292, 324, 356, 388, 420, 452, 484,
+ 5, 37, 69, 101, 133, 165, 197, 229, 261, 293, 325, 357, 389, 421, 453, 485,
+ 6, 38, 70, 102, 134, 166, 198, 230, 262, 294, 326, 358, 390, 422, 454, 486,
+ 7, 39, 71, 103, 135, 167, 199, 231, 263, 295, 327, 359, 391, 423, 455, 487,
+ 8, 40, 72, 104, 136, 168, 200, 232, 264, 296, 328, 360, 392, 424, 456, 488,
+ 9, 41, 73, 105, 137, 169, 201, 233, 265, 297, 329, 361, 393, 425, 457, 489,
+ 10, 42, 74, 106, 138, 170, 202, 234, 266, 298, 330, 362, 394, 426, 458, 490,
+ 11, 43, 75, 107, 139, 171, 203, 235, 267, 299, 331, 363, 395, 427, 459, 491,
+ 12, 44, 76, 108, 140, 172, 204, 236, 268, 300, 332, 364, 396, 428, 460, 492,
+ 13, 45, 77, 109, 141, 173, 205, 237, 269, 301, 333, 365, 397, 429, 461, 493,
+ 14, 46, 78, 110, 142, 174, 206, 238, 270, 302, 334, 366, 398, 430, 462, 494,
+ 15, 47, 79, 111, 143, 175, 207, 239, 271, 303, 335, 367, 399, 431, 463, 495,
+ 16, 48, 80, 112, 144, 176, 208, 240, 272, 304, 336, 368, 400, 432, 464, 496,
+ 17, 49, 81, 113, 145, 177, 209, 241, 273, 305, 337, 369, 401, 433, 465, 497,
+ 18, 50, 82, 114, 146, 178, 210, 242, 274, 306, 338, 370, 402, 434, 466, 498,
+ 19, 51, 83, 115, 147, 179, 211, 243, 275, 307, 339, 371, 403, 435, 467, 499,
+ 20, 52, 84, 116, 148, 180, 212, 244, 276, 308, 340, 372, 404, 436, 468, 500,
+ 21, 53, 85, 117, 149, 181, 213, 245, 277, 309, 341, 373, 405, 437, 469, 501,
+ 22, 54, 86, 118, 150, 182, 214, 246, 278, 310, 342, 374, 406, 438, 470, 502,
+ 23, 55, 87, 119, 151, 183, 215, 247, 279, 311, 343, 375, 407, 439, 471, 503,
+ 24, 56, 88, 120, 152, 184, 216, 248, 280, 312, 344, 376, 408, 440, 472, 504,
+ 25, 57, 89, 121, 153, 185, 217, 249, 281, 313, 345, 377, 409, 441, 473, 505,
+ 26, 58, 90, 122, 154, 186, 218, 250, 282, 314, 346, 378, 410, 442, 474, 506,
+ 27, 59, 91, 123, 155, 187, 219, 251, 283, 315, 347, 379, 411, 443, 475, 507,
+ 28, 60, 92, 124, 156, 188, 220, 252, 284, 316, 348, 380, 412, 444, 476, 508,
+ 29, 61, 93, 125, 157, 189, 221, 253, 285, 317, 349, 381, 413, 445, 477, 509,
+ 30, 62, 94, 126, 158, 190, 222, 254, 286, 318, 350, 382, 414, 446, 478, 510,
+ 31, 63, 95, 127, 159, 191, 223, 255, 287, 319, 351, 383, 415, 447, 479, 511,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mcol_iscan_32x16[512]) = {
- 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176,
- 192, 208, 224, 240, 256, 272, 288, 304, 320, 336, 352, 368,
- 384, 400, 416, 432, 448, 464, 480, 496, 1, 17, 33, 49,
- 65, 81, 97, 113, 129, 145, 161, 177, 193, 209, 225, 241,
- 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433,
- 449, 465, 481, 497, 2, 18, 34, 50, 66, 82, 98, 114,
- 130, 146, 162, 178, 194, 210, 226, 242, 258, 274, 290, 306,
- 322, 338, 354, 370, 386, 402, 418, 434, 450, 466, 482, 498,
- 3, 19, 35, 51, 67, 83, 99, 115, 131, 147, 163, 179,
- 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371,
- 387, 403, 419, 435, 451, 467, 483, 499, 4, 20, 36, 52,
- 68, 84, 100, 116, 132, 148, 164, 180, 196, 212, 228, 244,
- 260, 276, 292, 308, 324, 340, 356, 372, 388, 404, 420, 436,
- 452, 468, 484, 500, 5, 21, 37, 53, 69, 85, 101, 117,
- 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309,
- 325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501,
- 6, 22, 38, 54, 70, 86, 102, 118, 134, 150, 166, 182,
- 198, 214, 230, 246, 262, 278, 294, 310, 326, 342, 358, 374,
- 390, 406, 422, 438, 454, 470, 486, 502, 7, 23, 39, 55,
- 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
- 263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439,
- 455, 471, 487, 503, 8, 24, 40, 56, 72, 88, 104, 120,
- 136, 152, 168, 184, 200, 216, 232, 248, 264, 280, 296, 312,
- 328, 344, 360, 376, 392, 408, 424, 440, 456, 472, 488, 504,
- 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185,
- 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377,
- 393, 409, 425, 441, 457, 473, 489, 505, 10, 26, 42, 58,
- 74, 90, 106, 122, 138, 154, 170, 186, 202, 218, 234, 250,
- 266, 282, 298, 314, 330, 346, 362, 378, 394, 410, 426, 442,
- 458, 474, 490, 506, 11, 27, 43, 59, 75, 91, 107, 123,
- 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315,
- 331, 347, 363, 379, 395, 411, 427, 443, 459, 475, 491, 507,
- 12, 28, 44, 60, 76, 92, 108, 124, 140, 156, 172, 188,
- 204, 220, 236, 252, 268, 284, 300, 316, 332, 348, 364, 380,
- 396, 412, 428, 444, 460, 476, 492, 508, 13, 29, 45, 61,
- 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253,
- 269, 285, 301, 317, 333, 349, 365, 381, 397, 413, 429, 445,
- 461, 477, 493, 509, 14, 30, 46, 62, 78, 94, 110, 126,
- 142, 158, 174, 190, 206, 222, 238, 254, 270, 286, 302, 318,
- 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510,
- 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191,
- 207, 223, 239, 255, 271, 287, 303, 319, 335, 351, 367, 383,
- 399, 415, 431, 447, 463, 479, 495, 511,
+ 0, 16, 32, 48, 64, 80, 96, 112, 128, 144, 160, 176, 192, 208, 224,
+ 240, 256, 272, 288, 304, 320, 336, 352, 368, 384, 400, 416, 432, 448, 464,
+ 480, 496, 1, 17, 33, 49, 65, 81, 97, 113, 129, 145, 161, 177, 193,
+ 209, 225, 241, 257, 273, 289, 305, 321, 337, 353, 369, 385, 401, 417, 433,
+ 449, 465, 481, 497, 2, 18, 34, 50, 66, 82, 98, 114, 130, 146, 162,
+ 178, 194, 210, 226, 242, 258, 274, 290, 306, 322, 338, 354, 370, 386, 402,
+ 418, 434, 450, 466, 482, 498, 3, 19, 35, 51, 67, 83, 99, 115, 131,
+ 147, 163, 179, 195, 211, 227, 243, 259, 275, 291, 307, 323, 339, 355, 371,
+ 387, 403, 419, 435, 451, 467, 483, 499, 4, 20, 36, 52, 68, 84, 100,
+ 116, 132, 148, 164, 180, 196, 212, 228, 244, 260, 276, 292, 308, 324, 340,
+ 356, 372, 388, 404, 420, 436, 452, 468, 484, 500, 5, 21, 37, 53, 69,
+ 85, 101, 117, 133, 149, 165, 181, 197, 213, 229, 245, 261, 277, 293, 309,
+ 325, 341, 357, 373, 389, 405, 421, 437, 453, 469, 485, 501, 6, 22, 38,
+ 54, 70, 86, 102, 118, 134, 150, 166, 182, 198, 214, 230, 246, 262, 278,
+ 294, 310, 326, 342, 358, 374, 390, 406, 422, 438, 454, 470, 486, 502, 7,
+ 23, 39, 55, 71, 87, 103, 119, 135, 151, 167, 183, 199, 215, 231, 247,
+ 263, 279, 295, 311, 327, 343, 359, 375, 391, 407, 423, 439, 455, 471, 487,
+ 503, 8, 24, 40, 56, 72, 88, 104, 120, 136, 152, 168, 184, 200, 216,
+ 232, 248, 264, 280, 296, 312, 328, 344, 360, 376, 392, 408, 424, 440, 456,
+ 472, 488, 504, 9, 25, 41, 57, 73, 89, 105, 121, 137, 153, 169, 185,
+ 201, 217, 233, 249, 265, 281, 297, 313, 329, 345, 361, 377, 393, 409, 425,
+ 441, 457, 473, 489, 505, 10, 26, 42, 58, 74, 90, 106, 122, 138, 154,
+ 170, 186, 202, 218, 234, 250, 266, 282, 298, 314, 330, 346, 362, 378, 394,
+ 410, 426, 442, 458, 474, 490, 506, 11, 27, 43, 59, 75, 91, 107, 123,
+ 139, 155, 171, 187, 203, 219, 235, 251, 267, 283, 299, 315, 331, 347, 363,
+ 379, 395, 411, 427, 443, 459, 475, 491, 507, 12, 28, 44, 60, 76, 92,
+ 108, 124, 140, 156, 172, 188, 204, 220, 236, 252, 268, 284, 300, 316, 332,
+ 348, 364, 380, 396, 412, 428, 444, 460, 476, 492, 508, 13, 29, 45, 61,
+ 77, 93, 109, 125, 141, 157, 173, 189, 205, 221, 237, 253, 269, 285, 301,
+ 317, 333, 349, 365, 381, 397, 413, 429, 445, 461, 477, 493, 509, 14, 30,
+ 46, 62, 78, 94, 110, 126, 142, 158, 174, 190, 206, 222, 238, 254, 270,
+ 286, 302, 318, 334, 350, 366, 382, 398, 414, 430, 446, 462, 478, 494, 510,
+ 15, 31, 47, 63, 79, 95, 111, 127, 143, 159, 175, 191, 207, 223, 239,
+ 255, 271, 287, 303, 319, 335, 351, 367, 383, 399, 415, 431, 447, 463, 479,
+ 495, 511,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mrow_iscan_16x32[512]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
- 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
- 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
- 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
- 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
- 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
- 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
- 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
- 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
- 504, 505, 506, 507, 508, 509, 510, 511,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
+ 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
+ 510, 511,
};
DECLARE_ALIGNED(16, static const int16_t, vp10_mrow_iscan_32x16[512]) = {
- 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
- 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
- 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
- 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
- 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107,
- 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
- 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131,
- 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155,
- 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
- 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
- 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203,
- 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215,
- 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227,
- 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
- 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251,
- 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263,
- 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275,
- 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287,
- 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311,
- 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323,
- 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335,
- 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347,
- 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
- 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371,
- 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383,
- 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395,
- 396, 397, 398, 399, 400, 401, 402, 403, 404, 405, 406, 407,
- 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
- 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431,
- 432, 433, 434, 435, 436, 437, 438, 439, 440, 441, 442, 443,
- 444, 445, 446, 447, 448, 449, 450, 451, 452, 453, 454, 455,
- 456, 457, 458, 459, 460, 461, 462, 463, 464, 465, 466, 467,
- 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
- 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491,
- 492, 493, 494, 495, 496, 497, 498, 499, 500, 501, 502, 503,
- 504, 505, 506, 507, 508, 509, 510, 511,
+ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
+ 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29,
+ 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59,
+ 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
+ 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104,
+ 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119,
+ 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134,
+ 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
+ 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164,
+ 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179,
+ 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194,
+ 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209,
+ 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224,
+ 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239,
+ 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254,
+ 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269,
+ 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284,
+ 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314,
+ 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329,
+ 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359,
+ 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374,
+ 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389,
+ 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401, 402, 403, 404,
+ 405, 406, 407, 408, 409, 410, 411, 412, 413, 414, 415, 416, 417, 418, 419,
+ 420, 421, 422, 423, 424, 425, 426, 427, 428, 429, 430, 431, 432, 433, 434,
+ 435, 436, 437, 438, 439, 440, 441, 442, 443, 444, 445, 446, 447, 448, 449,
+ 450, 451, 452, 453, 454, 455, 456, 457, 458, 459, 460, 461, 462, 463, 464,
+ 465, 466, 467, 468, 469, 470, 471, 472, 473, 474, 475, 476, 477, 478, 479,
+ 480, 481, 482, 483, 484, 485, 486, 487, 488, 489, 490, 491, 492, 493, 494,
+ 495, 496, 497, 498, 499, 500, 501, 502, 503, 504, 505, 506, 507, 508, 509,
+ 510, 511,
};
#endif // CONFIG_EXT_TX
@@ -4169,212 +3896,241 @@
};
const scan_order vp10_inter_scan_orders[TX_SIZES_ALL][TX_TYPES] = {
- { // TX_4X4
- {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},
- {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
- {default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors},
- {mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors},
- {mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors},
- {mcol_scan_4x4, vp10_mcol_iscan_4x4, mcol_scan_4x4_neighbors},
- {mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors},
- {mcol_scan_4x4, vp10_mcol_iscan_4x4, mcol_scan_4x4_neighbors},
- {mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors},
- {mcol_scan_4x4, vp10_mcol_iscan_4x4, mcol_scan_4x4_neighbors},
- }, { // 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},
- {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},
- {mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors},
- {mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors},
- {mcol_scan_8x8, vp10_mcol_iscan_8x8, mcol_scan_8x8_neighbors},
- {mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors},
- {mcol_scan_8x8, vp10_mcol_iscan_8x8, mcol_scan_8x8_neighbors},
- {mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors},
- {mcol_scan_8x8, vp10_mcol_iscan_8x8, mcol_scan_8x8_neighbors},
- }, { // TX_16X16
- {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},
- {mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors},
- {mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors},
- {mcol_scan_16x16, vp10_mcol_iscan_16x16, mcol_scan_16x16_neighbors},
- {mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors},
- {mcol_scan_16x16, vp10_mcol_iscan_16x16, mcol_scan_16x16_neighbors},
- {mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors},
- {mcol_scan_16x16, vp10_mcol_iscan_16x16, mcol_scan_16x16_neighbors},
- }, { // TX_32X32
- {default_scan_32x32, vp10_default_iscan_32x32,
- default_scan_32x32_neighbors},
- {h2_scan_32x32, vp10_h2_iscan_32x32,
- h2_scan_32x32_neighbors},
- {v2_scan_32x32, vp10_v2_iscan_32x32,
- v2_scan_32x32_neighbors},
- {qtr_scan_32x32, vp10_qtr_iscan_32x32,
- qtr_scan_32x32_neighbors},
- {h2_scan_32x32, vp10_h2_iscan_32x32,
- h2_scan_32x32_neighbors},
- {v2_scan_32x32, vp10_v2_iscan_32x32,
- v2_scan_32x32_neighbors},
- {qtr_scan_32x32, vp10_qtr_iscan_32x32,
- qtr_scan_32x32_neighbors},
- {qtr_scan_32x32, vp10_qtr_iscan_32x32,
- qtr_scan_32x32_neighbors},
- {qtr_scan_32x32, vp10_qtr_iscan_32x32,
- qtr_scan_32x32_neighbors},
- {mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors},
- {mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors},
- {mcol_scan_32x32, vp10_mcol_iscan_32x32, mcol_scan_32x32_neighbors},
- {mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors},
- {mcol_scan_32x32, vp10_mcol_iscan_32x32, mcol_scan_32x32_neighbors},
- {mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors},
- {mcol_scan_32x32, vp10_mcol_iscan_32x32, mcol_scan_32x32_neighbors},
- }, { // TX_4X8
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors},
- {mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors},
- {mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors},
- {mcol_scan_4x8, vp10_mcol_iscan_4x8, mcol_scan_4x8_neighbors},
- {mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors},
- {mcol_scan_4x8, vp10_mcol_iscan_4x8, mcol_scan_4x8_neighbors},
- {mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors},
- {mcol_scan_4x8, vp10_mcol_iscan_4x8, mcol_scan_4x8_neighbors},
- }, { // TX_8X4
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors},
- {mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors},
- {mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors},
- {mcol_scan_8x4, vp10_mcol_iscan_8x4, mcol_scan_8x4_neighbors},
- {mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors},
- {mcol_scan_8x4, vp10_mcol_iscan_8x4, mcol_scan_8x4_neighbors},
- {mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors},
- {mcol_scan_8x4, vp10_mcol_iscan_8x4, mcol_scan_8x4_neighbors},
- }, { // TX_8X16
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {default_scan_8x16, vp10_default_iscan_8x16, default_scan_8x16_neighbors},
- {mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors},
- {mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors},
- {mcol_scan_8x16, vp10_mcol_iscan_8x16, mcol_scan_8x16_neighbors},
- {mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors},
- {mcol_scan_8x16, vp10_mcol_iscan_8x16, mcol_scan_8x16_neighbors},
- {mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors},
- {mcol_scan_8x16, vp10_mcol_iscan_8x16, mcol_scan_8x16_neighbors},
- }, { // TX_16X8
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {default_scan_16x8, vp10_default_iscan_16x8, default_scan_16x8_neighbors},
- {mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors},
- {mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors},
- {mcol_scan_16x8, vp10_mcol_iscan_16x8, mcol_scan_16x8_neighbors},
- {mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors},
- {mcol_scan_16x8, vp10_mcol_iscan_16x8, mcol_scan_16x8_neighbors},
- {mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors},
- {mcol_scan_16x8, vp10_mcol_iscan_16x8, mcol_scan_16x8_neighbors},
- }, { // TX_16X32
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {default_scan_16x32, vp10_default_iscan_16x32,
- default_scan_16x32_neighbors},
- {mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors},
- {mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors},
- {mcol_scan_16x32, vp10_mcol_iscan_16x32, mcol_scan_16x32_neighbors},
- {mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors},
- {mcol_scan_16x32, vp10_mcol_iscan_16x32, mcol_scan_16x32_neighbors},
- {mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors},
- {mcol_scan_16x32, vp10_mcol_iscan_16x32, mcol_scan_16x32_neighbors},
- }, { // TX_32X16
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {default_scan_32x16, vp10_default_iscan_32x16,
- default_scan_32x16_neighbors},
- {mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors},
- {mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors},
- {mcol_scan_32x16, vp10_mcol_iscan_32x16, mcol_scan_32x16_neighbors},
- {mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors},
- {mcol_scan_32x16, vp10_mcol_iscan_32x16, mcol_scan_32x16_neighbors},
- {mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors},
- {mcol_scan_32x16, vp10_mcol_iscan_32x16, mcol_scan_32x16_neighbors},
+ {
+ // TX_4X4
+ { 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 },
+ { default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors },
+ { default_scan_4x4, vp10_default_iscan_4x4, default_scan_4x4_neighbors },
+ { mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors },
+ { mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors },
+ { mcol_scan_4x4, vp10_mcol_iscan_4x4, mcol_scan_4x4_neighbors },
+ { mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors },
+ { mcol_scan_4x4, vp10_mcol_iscan_4x4, mcol_scan_4x4_neighbors },
+ { mrow_scan_4x4, vp10_mrow_iscan_4x4, mrow_scan_4x4_neighbors },
+ { mcol_scan_4x4, vp10_mcol_iscan_4x4, mcol_scan_4x4_neighbors },
+ },
+ {
+ // 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 },
+ { 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 },
+ { mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors },
+ { mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors },
+ { mcol_scan_8x8, vp10_mcol_iscan_8x8, mcol_scan_8x8_neighbors },
+ { mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors },
+ { mcol_scan_8x8, vp10_mcol_iscan_8x8, mcol_scan_8x8_neighbors },
+ { mrow_scan_8x8, vp10_mrow_iscan_8x8, mrow_scan_8x8_neighbors },
+ { mcol_scan_8x8, vp10_mcol_iscan_8x8, mcol_scan_8x8_neighbors },
+ },
+ {
+ // TX_16X16
+ { 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 },
+ { mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors },
+ { mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors },
+ { mcol_scan_16x16, vp10_mcol_iscan_16x16, mcol_scan_16x16_neighbors },
+ { mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors },
+ { mcol_scan_16x16, vp10_mcol_iscan_16x16, mcol_scan_16x16_neighbors },
+ { mrow_scan_16x16, vp10_mrow_iscan_16x16, mrow_scan_16x16_neighbors },
+ { mcol_scan_16x16, vp10_mcol_iscan_16x16, mcol_scan_16x16_neighbors },
+ },
+ {
+ // TX_32X32
+ { default_scan_32x32, vp10_default_iscan_32x32,
+ default_scan_32x32_neighbors },
+ { h2_scan_32x32, vp10_h2_iscan_32x32, h2_scan_32x32_neighbors },
+ { v2_scan_32x32, vp10_v2_iscan_32x32, v2_scan_32x32_neighbors },
+ { qtr_scan_32x32, vp10_qtr_iscan_32x32, qtr_scan_32x32_neighbors },
+ { h2_scan_32x32, vp10_h2_iscan_32x32, h2_scan_32x32_neighbors },
+ { v2_scan_32x32, vp10_v2_iscan_32x32, v2_scan_32x32_neighbors },
+ { qtr_scan_32x32, vp10_qtr_iscan_32x32, qtr_scan_32x32_neighbors },
+ { qtr_scan_32x32, vp10_qtr_iscan_32x32, qtr_scan_32x32_neighbors },
+ { qtr_scan_32x32, vp10_qtr_iscan_32x32, qtr_scan_32x32_neighbors },
+ { mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors },
+ { mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors },
+ { mcol_scan_32x32, vp10_mcol_iscan_32x32, mcol_scan_32x32_neighbors },
+ { mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors },
+ { mcol_scan_32x32, vp10_mcol_iscan_32x32, mcol_scan_32x32_neighbors },
+ { mrow_scan_32x32, vp10_mrow_iscan_32x32, mrow_scan_32x32_neighbors },
+ { mcol_scan_32x32, vp10_mcol_iscan_32x32, mcol_scan_32x32_neighbors },
+ },
+ {
+ // TX_4X8
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { default_scan_4x8, vp10_default_iscan_4x8, default_scan_4x8_neighbors },
+ { mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors },
+ { mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors },
+ { mcol_scan_4x8, vp10_mcol_iscan_4x8, mcol_scan_4x8_neighbors },
+ { mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors },
+ { mcol_scan_4x8, vp10_mcol_iscan_4x8, mcol_scan_4x8_neighbors },
+ { mrow_scan_4x8, vp10_mrow_iscan_4x8, mrow_scan_4x8_neighbors },
+ { mcol_scan_4x8, vp10_mcol_iscan_4x8, mcol_scan_4x8_neighbors },
+ },
+ {
+ // TX_8X4
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { default_scan_8x4, vp10_default_iscan_8x4, default_scan_8x4_neighbors },
+ { mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors },
+ { mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors },
+ { mcol_scan_8x4, vp10_mcol_iscan_8x4, mcol_scan_8x4_neighbors },
+ { mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors },
+ { mcol_scan_8x4, vp10_mcol_iscan_8x4, mcol_scan_8x4_neighbors },
+ { mrow_scan_8x4, vp10_mrow_iscan_8x4, mrow_scan_8x4_neighbors },
+ { mcol_scan_8x4, vp10_mcol_iscan_8x4, mcol_scan_8x4_neighbors },
+ },
+ {
+ // TX_8X16
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { default_scan_8x16, vp10_default_iscan_8x16,
+ default_scan_8x16_neighbors },
+ { mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors },
+ { mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors },
+ { mcol_scan_8x16, vp10_mcol_iscan_8x16, mcol_scan_8x16_neighbors },
+ { mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors },
+ { mcol_scan_8x16, vp10_mcol_iscan_8x16, mcol_scan_8x16_neighbors },
+ { mrow_scan_8x16, vp10_mrow_iscan_8x16, mrow_scan_8x16_neighbors },
+ { mcol_scan_8x16, vp10_mcol_iscan_8x16, mcol_scan_8x16_neighbors },
+ },
+ {
+ // TX_16X8
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { default_scan_16x8, vp10_default_iscan_16x8,
+ default_scan_16x8_neighbors },
+ { mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors },
+ { mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors },
+ { mcol_scan_16x8, vp10_mcol_iscan_16x8, mcol_scan_16x8_neighbors },
+ { mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors },
+ { mcol_scan_16x8, vp10_mcol_iscan_16x8, mcol_scan_16x8_neighbors },
+ { mrow_scan_16x8, vp10_mrow_iscan_16x8, mrow_scan_16x8_neighbors },
+ { mcol_scan_16x8, vp10_mcol_iscan_16x8, mcol_scan_16x8_neighbors },
+ },
+ {
+ // TX_16X32
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { default_scan_16x32, vp10_default_iscan_16x32,
+ default_scan_16x32_neighbors },
+ { mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors },
+ { mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors },
+ { mcol_scan_16x32, vp10_mcol_iscan_16x32, mcol_scan_16x32_neighbors },
+ { mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors },
+ { mcol_scan_16x32, vp10_mcol_iscan_16x32, mcol_scan_16x32_neighbors },
+ { mrow_scan_16x32, vp10_mrow_iscan_16x32, mrow_scan_16x32_neighbors },
+ { mcol_scan_16x32, vp10_mcol_iscan_16x32, mcol_scan_16x32_neighbors },
+ },
+ {
+ // TX_32X16
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { default_scan_32x16, vp10_default_iscan_32x16,
+ default_scan_32x16_neighbors },
+ { mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors },
+ { mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors },
+ { mcol_scan_32x16, vp10_mcol_iscan_32x16, mcol_scan_32x16_neighbors },
+ { mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors },
+ { mcol_scan_32x16, vp10_mcol_iscan_32x16, mcol_scan_32x16_neighbors },
+ { mrow_scan_32x16, vp10_mrow_iscan_32x16, mrow_scan_32x16_neighbors },
+ { mcol_scan_32x16, vp10_mcol_iscan_32x16, mcol_scan_32x16_neighbors },
}
};
diff --git a/vp10/decoder/decodeframe.c b/vp10/decoder/decodeframe.c
index 67f685f..921ada6 100644
--- a/vp10/decoder/decodeframe.c
+++ b/vp10/decoder/decodeframe.c
@@ -1783,10 +1783,11 @@
#if DERING_REFINEMENT
if (bsize == BLOCK_64X64) {
if (cm->dering_level != 0 && !sb_all_skip(cm, mi_row, mi_col)) {
- cm->mi_grid_visible[mi_row*cm->mi_stride + mi_col]->mbmi.dering_gain =
+ cm->mi_grid_visible[mi_row * cm->mi_stride + mi_col]->mbmi.dering_gain =
vpx_read_literal(r, DERING_REFINEMENT_BITS);
} else {
- cm->mi_grid_visible[mi_row*cm->mi_stride + mi_col]->mbmi.dering_gain = 0;
+ cm->mi_grid_visible[mi_row * cm->mi_stride + mi_col]->mbmi.dering_gain =
+ 0;
}
}
#endif // DERGING_REFINEMENT
@@ -1967,7 +1968,7 @@
#if CONFIG_DERING
static void setup_dering(VP10_COMMON *cm, struct vpx_read_bit_buffer *rb) {
- cm->dering_level = vpx_rb_read_literal(rb, DERING_LEVEL_BITS);
+ cm->dering_level = vpx_rb_read_literal(rb, DERING_LEVEL_BITS);
}
#endif // CONFIG_DERING
@@ -3390,7 +3391,7 @@
GM_ALPHA_DECODE_FACTOR);
params->motion_params.wmmat[5] =
vp10_read_primitive_symmetric(r, GM_ABS_ALPHA_BITS) *
- GM_ALPHA_DECODE_FACTOR +
+ GM_ALPHA_DECODE_FACTOR +
(1 << WARPEDMODEL_PREC_BITS);
// fallthrough intended
case GLOBAL_ROTZOOM:
diff --git a/vp10/encoder/bitstream.c b/vp10/encoder/bitstream.c
index d89a52e..54df99a 100644
--- a/vp10/encoder/bitstream.c
+++ b/vp10/encoder/bitstream.c
@@ -1883,7 +1883,8 @@
if (bsize == BLOCK_64X64 && cm->dering_level != 0 &&
!sb_all_skip(cm, mi_row, mi_col)) {
vpx_write_literal(
- w, cm->mi_grid_visible[mi_row*cm->mi_stride + mi_col]->mbmi.dering_gain,
+ w,
+ cm->mi_grid_visible[mi_row * cm->mi_stride + mi_col]->mbmi.dering_gain,
DERING_REFINEMENT_BITS);
}
#endif
diff --git a/vp10/encoder/dct.c b/vp10/encoder/dct.c
index 6df8aa7..2f52ed9 100644
--- a/vp10/encoder/dct.c
+++ b/vp10/encoder/dct.c
@@ -1253,18 +1253,18 @@
};
static const transform_2d FHT_8x16[] = {
- { fdct16, fdct8 }, // DCT_DCT
- { fadst16, fdct8 }, // ADST_DCT
- { fdct16, fadst8 }, // DCT_ADST
+ { fdct16, fdct8 }, // DCT_DCT
+ { fadst16, fdct8 }, // ADST_DCT
+ { fdct16, fadst8 }, // DCT_ADST
{ fadst16, fadst8 }, // ADST_ADST
- { fadst16, fdct8 }, // FLIPADST_DCT
- { fdct16, fadst8 }, // DCT_FLIPADST
+ { fadst16, fdct8 }, // FLIPADST_DCT
+ { fdct16, fadst8 }, // DCT_FLIPADST
{ fadst16, fadst8 }, // FLIPADST_FLIPADST
{ fadst16, fadst8 }, // ADST_FLIPADST
{ fadst16, fadst8 }, // FLIPADST_ADST
{ fidtx16, fidtx8 }, // IDTX
- { fdct16, fidtx8 }, // V_DCT
- { fidtx16, fdct8 }, // H_DCT
+ { fdct16, fidtx8 }, // V_DCT
+ { fidtx16, fdct8 }, // H_DCT
{ fadst16, fidtx8 }, // V_ADST
{ fidtx16, fadst8 }, // H_ADST
{ fadst16, fidtx8 }, // V_FLIPADST
@@ -1272,18 +1272,18 @@
};
static const transform_2d FHT_16x8[] = {
- { fdct8, fdct16 }, // DCT_DCT
- { fadst8, fdct16 }, // ADST_DCT
- { fdct8, fadst16 }, // DCT_ADST
+ { fdct8, fdct16 }, // DCT_DCT
+ { fadst8, fdct16 }, // ADST_DCT
+ { fdct8, fadst16 }, // DCT_ADST
{ fadst8, fadst16 }, // ADST_ADST
- { fadst8, fdct16 }, // FLIPADST_DCT
- { fdct8, fadst16 }, // DCT_FLIPADST
+ { fadst8, fdct16 }, // FLIPADST_DCT
+ { fdct8, fadst16 }, // DCT_FLIPADST
{ fadst8, fadst16 }, // FLIPADST_FLIPADST
{ fadst8, fadst16 }, // ADST_FLIPADST
{ fadst8, fadst16 }, // FLIPADST_ADST
{ fidtx8, fidtx16 }, // IDTX
- { fdct8, fidtx16 }, // V_DCT
- { fidtx8, fdct16 }, // H_DCT
+ { fdct8, fidtx16 }, // V_DCT
+ { fidtx8, fdct16 }, // H_DCT
{ fadst8, fidtx16 }, // V_ADST
{ fidtx8, fadst16 }, // H_ADST
{ fadst8, fidtx16 }, // V_FLIPADST
@@ -1291,40 +1291,40 @@
};
static const transform_2d FHT_16x32[] = {
- { fdct32, fdct16 }, // DCT_DCT
- { fhalfright32, fdct16 }, // ADST_DCT
- { fdct32, fadst16 }, // DCT_ADST
- { fhalfright32, fadst16 }, // ADST_ADST
- { fhalfright32, fdct16 }, // FLIPADST_DCT
- { fdct32, fadst16 }, // DCT_FLIPADST
- { fhalfright32, fadst16 }, // FLIPADST_FLIPADST
- { fhalfright32, fadst16 }, // ADST_FLIPADST
- { fhalfright32, fadst16 }, // FLIPADST_ADST
- { fidtx32, fidtx16 }, // IDTX
- { fdct32, fidtx16 }, // V_DCT
- { fidtx32, fdct16 }, // H_DCT
- { fhalfright32, fidtx16 }, // V_ADST
- { fidtx32, fadst16 }, // H_ADST
- { fhalfright32, fidtx16 }, // V_FLIPADST
- { fidtx32, fadst16 }, // H_FLIPADST
+ { fdct32, fdct16 }, // DCT_DCT
+ { fhalfright32, fdct16 }, // ADST_DCT
+ { fdct32, fadst16 }, // DCT_ADST
+ { fhalfright32, fadst16 }, // ADST_ADST
+ { fhalfright32, fdct16 }, // FLIPADST_DCT
+ { fdct32, fadst16 }, // DCT_FLIPADST
+ { fhalfright32, fadst16 }, // FLIPADST_FLIPADST
+ { fhalfright32, fadst16 }, // ADST_FLIPADST
+ { fhalfright32, fadst16 }, // FLIPADST_ADST
+ { fidtx32, fidtx16 }, // IDTX
+ { fdct32, fidtx16 }, // V_DCT
+ { fidtx32, fdct16 }, // H_DCT
+ { fhalfright32, fidtx16 }, // V_ADST
+ { fidtx32, fadst16 }, // H_ADST
+ { fhalfright32, fidtx16 }, // V_FLIPADST
+ { fidtx32, fadst16 }, // H_FLIPADST
};
static const transform_2d FHT_32x16[] = {
- { fdct16, fdct32 }, // DCT_DCT
- { fadst16, fdct32 }, // ADST_DCT
- { fdct16, fhalfright32 }, // DCT_ADST
+ { fdct16, fdct32 }, // DCT_DCT
+ { fadst16, fdct32 }, // ADST_DCT
+ { fdct16, fhalfright32 }, // DCT_ADST
{ fadst16, fhalfright32 }, // ADST_ADST
- { fadst16, fdct32 }, // FLIPADST_DCT
- { fdct16, fhalfright32 }, // DCT_FLIPADST
+ { fadst16, fdct32 }, // FLIPADST_DCT
+ { fdct16, fhalfright32 }, // DCT_FLIPADST
{ fadst16, fhalfright32 }, // FLIPADST_FLIPADST
{ fadst16, fhalfright32 }, // ADST_FLIPADST
{ fadst16, fhalfright32 }, // FLIPADST_ADST
- { fidtx16, fidtx32 }, // IDTX
- { fdct16, fidtx32 }, // V_DCT
- { fidtx16, fdct32 }, // H_DCT
- { fadst16, fidtx32 }, // V_ADST
+ { fidtx16, fidtx32 }, // IDTX
+ { fdct16, fidtx32 }, // V_DCT
+ { fidtx16, fdct32 }, // H_DCT
+ { fadst16, fidtx32 }, // V_ADST
{ fidtx16, fhalfright32 }, // H_ADST
- { fadst16, fidtx32 }, // V_FLIPADST
+ { fadst16, fidtx32 }, // V_FLIPADST
{ fidtx16, fhalfright32 }, // H_FLIPADST
};
#endif // CONFIG_EXT_TX
@@ -1376,11 +1376,10 @@
// Columns
for (i = 0; i < n; ++i) {
for (j = 0; j < n2; ++j)
- temp_in[j] = (tran_low_t)fdct_round_shift(
- input[j * stride + i] * 8 * Sqrt2);
+ temp_in[j] =
+ (tran_low_t)fdct_round_shift(input[j * stride + i] * 8 * Sqrt2);
ht.cols(temp_in, temp_out);
- for (j = 0; j < n2; ++j)
- out[j * n + i] = temp_out[j];
+ for (j = 0; j < n2; ++j) out[j * n + i] = temp_out[j];
}
// Rows
@@ -1406,11 +1405,10 @@
// Columns
for (i = 0; i < n2; ++i) {
for (j = 0; j < n; ++j)
- temp_in[j] = (tran_low_t)fdct_round_shift(
- input[j * stride + i] * 8 * Sqrt2);
+ temp_in[j] =
+ (tran_low_t)fdct_round_shift(input[j * stride + i] * 8 * Sqrt2);
ht.cols(temp_in, temp_out);
- for (j = 0; j < n; ++j)
- out[j * n2 + i] = temp_out[j];
+ for (j = 0; j < n; ++j) out[j * n2 + i] = temp_out[j];
}
// Rows
@@ -1422,8 +1420,8 @@
// Note: overall scale factor of transform is 8 times unitary
}
-void vp10_fht8x16_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_fht8x16_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
const int n = 8;
const int n2 = 16;
tran_low_t out[16 * 8];
@@ -1436,26 +1434,23 @@
// Columns
for (i = 0; i < n; ++i) {
for (j = 0; j < n2; ++j)
- temp_in[j] = (tran_low_t)fdct_round_shift(
- input[j * stride + i] * 4 * Sqrt2);
+ temp_in[j] =
+ (tran_low_t)fdct_round_shift(input[j * stride + i] * 4 * Sqrt2);
ht.cols(temp_in, temp_out);
- for (j = 0; j < n2; ++j)
- out[j * n + i] = temp_out[j];
+ for (j = 0; j < n2; ++j) out[j * n + i] = temp_out[j];
}
// Rows
for (i = 0; i < n2; ++i) {
- for (j = 0; j < n; ++j)
- temp_in[j] = out[j + i * n];
+ for (j = 0; j < n; ++j) temp_in[j] = out[j + i * n];
ht.rows(temp_in, temp_out);
- for (j = 0; j < n; ++j)
- output[j + i * n] = (temp_out[j] + 1) >> 1;
+ for (j = 0; j < n; ++j) output[j + i * n] = (temp_out[j] + 1) >> 1;
}
// Note: overall scale factor of transform is 8 times unitary
}
-void vp10_fht16x8_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_fht16x8_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
const int n = 8;
const int n2 = 16;
tran_low_t out[16 * 8];
@@ -1468,26 +1463,23 @@
// Columns
for (i = 0; i < n2; ++i) {
for (j = 0; j < n; ++j)
- temp_in[j] = (tran_low_t)fdct_round_shift(
- input[j * stride + i] * 4 * Sqrt2);
+ temp_in[j] =
+ (tran_low_t)fdct_round_shift(input[j * stride + i] * 4 * Sqrt2);
ht.cols(temp_in, temp_out);
- for (j = 0; j < n; ++j)
- out[j * n2 + i] = temp_out[j];
+ for (j = 0; j < n; ++j) out[j * n2 + i] = temp_out[j];
}
// Rows
for (i = 0; i < n; ++i) {
- for (j = 0; j < n2; ++j)
- temp_in[j] = out[j + i * n2];
+ for (j = 0; j < n2; ++j) temp_in[j] = out[j + i * n2];
ht.rows(temp_in, temp_out);
- for (j = 0; j < n2; ++j)
- output[j + i * n2] = (temp_out[j] + 1) >> 1;
+ for (j = 0; j < n2; ++j) output[j + i * n2] = (temp_out[j] + 1) >> 1;
}
// Note: overall scale factor of transform is 8 times unitary
}
-void vp10_fht16x32_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_fht16x32_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
const int n = 16;
const int n2 = 32;
tran_low_t out[32 * 16];
@@ -1500,17 +1492,14 @@
// Columns
for (i = 0; i < n; ++i) {
for (j = 0; j < n2; ++j)
- temp_in[j] = (tran_low_t)fdct_round_shift(
- input[j * stride + i] * Sqrt2);
+ temp_in[j] = (tran_low_t)fdct_round_shift(input[j * stride + i] * Sqrt2);
ht.cols(temp_in, temp_out);
- for (j = 0; j < n2; ++j)
- out[j * n + i] = temp_out[j];
+ for (j = 0; j < n2; ++j) out[j * n + i] = temp_out[j];
}
// Rows
for (i = 0; i < n2; ++i) {
- for (j = 0; j < n; ++j)
- temp_in[j] = out[j + i * n];
+ for (j = 0; j < n; ++j) temp_in[j] = out[j + i * n];
ht.rows(temp_in, temp_out);
for (j = 0; j < n; ++j)
output[j + i * n] =
@@ -1519,8 +1508,8 @@
// Note: overall scale factor of transform is 4 times unitary
}
-void vp10_fht32x16_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_fht32x16_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
const int n = 16;
const int n2 = 32;
tran_low_t out[32 * 16];
@@ -1533,17 +1522,14 @@
// Columns
for (i = 0; i < n2; ++i) {
for (j = 0; j < n; ++j)
- temp_in[j] = (tran_low_t)fdct_round_shift(
- input[j * stride + i] * Sqrt2);
+ temp_in[j] = (tran_low_t)fdct_round_shift(input[j * stride + i] * Sqrt2);
ht.cols(temp_in, temp_out);
- for (j = 0; j < n; ++j)
- out[j * n2 + i] = temp_out[j];
+ for (j = 0; j < n; ++j) out[j * n2 + i] = temp_out[j];
}
// Rows
for (i = 0; i < n; ++i) {
- for (j = 0; j < n2; ++j)
- temp_in[j] = out[j + i * n2];
+ for (j = 0; j < n2; ++j) temp_in[j] = out[j + i * n2];
ht.rows(temp_in, temp_out);
for (j = 0; j < n2; ++j)
output[j + i * n2] =
@@ -1807,23 +1793,23 @@
}
#if CONFIG_EXT_TX
-void vp10_highbd_fht4x8_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_highbd_fht4x8_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
vp10_fht4x8_c(input, output, stride, tx_type);
}
-void vp10_highbd_fht8x4_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_highbd_fht8x4_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
vp10_fht8x4_c(input, output, stride, tx_type);
}
-void vp10_highbd_fht8x16_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_highbd_fht8x16_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
vp10_fht8x16_c(input, output, stride, tx_type);
}
-void vp10_highbd_fht16x8_c(const int16_t *input, tran_low_t *output,
- int stride, int tx_type) {
+void vp10_highbd_fht16x8_c(const int16_t *input, tran_low_t *output, int stride,
+ int tx_type) {
vp10_fht16x8_c(input, output, stride, tx_type);
}
diff --git a/vp10/encoder/encoder.c b/vp10/encoder/encoder.c
index 823c861..6bf980d 100644
--- a/vp10/encoder/encoder.c
+++ b/vp10/encoder/encoder.c
@@ -3349,8 +3349,8 @@
if (is_lossless_requested(&cpi->oxcf)) {
cm->dering_level = 0;
} else {
- cm->dering_level = vp10_dering_search(cm->frame_to_show, cpi->Source, cm,
- xd);
+ cm->dering_level =
+ vp10_dering_search(cm->frame_to_show, cpi->Source, cm, xd);
vp10_dering_frame(cm->frame_to_show, cm, xd, cm->dering_level);
}
#endif // CONFIG_DERING
diff --git a/vp10/encoder/hybrid_fwd_txfm.c b/vp10/encoder/hybrid_fwd_txfm.c
index 72100cc..3c70a5a 100644
--- a/vp10/encoder/hybrid_fwd_txfm.c
+++ b/vp10/encoder/hybrid_fwd_txfm.c
@@ -58,42 +58,42 @@
static void fwd_txfm_4x8(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt) {
- (void) fwd_txfm_opt;
+ (void)fwd_txfm_opt;
vp10_fht4x8(src_diff, coeff, diff_stride, tx_type);
}
static void fwd_txfm_8x4(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt) {
- (void) fwd_txfm_opt;
+ (void)fwd_txfm_opt;
vp10_fht8x4(src_diff, coeff, diff_stride, tx_type);
}
static void fwd_txfm_8x16(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt) {
- (void) fwd_txfm_opt;
+ (void)fwd_txfm_opt;
vp10_fht8x16(src_diff, coeff, diff_stride, tx_type);
}
static void fwd_txfm_16x8(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt) {
- (void) fwd_txfm_opt;
+ (void)fwd_txfm_opt;
vp10_fht16x8(src_diff, coeff, diff_stride, tx_type);
}
static void fwd_txfm_16x32(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt) {
- (void) fwd_txfm_opt;
+ (void)fwd_txfm_opt;
vp10_fht16x32(src_diff, coeff, diff_stride, tx_type);
}
static void fwd_txfm_32x16(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt) {
- (void) fwd_txfm_opt;
+ (void)fwd_txfm_opt;
vp10_fht32x16(src_diff, coeff, diff_stride, tx_type);
}
#endif // CONFIG_EXT_TX
@@ -244,48 +244,48 @@
static void highbd_fwd_txfm_4x8(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
- (void) fwd_txfm_opt;
- (void) bd;
+ (void)fwd_txfm_opt;
+ (void)bd;
vp10_highbd_fht4x8(src_diff, coeff, diff_stride, tx_type);
}
static void highbd_fwd_txfm_8x4(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
- (void) fwd_txfm_opt;
- (void) bd;
+ (void)fwd_txfm_opt;
+ (void)bd;
vp10_highbd_fht8x4(src_diff, coeff, diff_stride, tx_type);
}
static void highbd_fwd_txfm_8x16(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
- (void) fwd_txfm_opt;
- (void) bd;
+ (void)fwd_txfm_opt;
+ (void)bd;
vp10_highbd_fht8x16(src_diff, coeff, diff_stride, tx_type);
}
static void highbd_fwd_txfm_16x8(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
- (void) fwd_txfm_opt;
- (void) bd;
+ (void)fwd_txfm_opt;
+ (void)bd;
vp10_highbd_fht16x8(src_diff, coeff, diff_stride, tx_type);
}
static void highbd_fwd_txfm_16x32(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
- (void) fwd_txfm_opt;
- (void) bd;
+ (void)fwd_txfm_opt;
+ (void)bd;
vp10_highbd_fht16x32(src_diff, coeff, diff_stride, tx_type);
}
static void highbd_fwd_txfm_32x16(const int16_t *src_diff, tran_low_t *coeff,
int diff_stride, TX_TYPE tx_type,
FWD_TXFM_OPT fwd_txfm_opt, const int bd) {
- (void) fwd_txfm_opt;
- (void) bd;
+ (void)fwd_txfm_opt;
+ (void)bd;
vp10_highbd_fht32x16(src_diff, coeff, diff_stride, tx_type);
}
#endif // CONFIG_EXT_TX
@@ -473,29 +473,26 @@
bd);
break;
case TX_8X16:
- highbd_fwd_txfm_8x16(src_diff, coeff, diff_stride, tx_type,
- fwd_txfm_opt, bd);
+ highbd_fwd_txfm_8x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
+ bd);
break;
case TX_16X8:
- highbd_fwd_txfm_16x8(src_diff, coeff, diff_stride, tx_type,
- fwd_txfm_opt, bd);
+ highbd_fwd_txfm_16x8(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
+ bd);
break;
case TX_16X32:
- highbd_fwd_txfm_16x32(src_diff, coeff, diff_stride, tx_type,
- fwd_txfm_opt, bd);
+ highbd_fwd_txfm_16x32(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
+ bd);
break;
case TX_32X16:
- highbd_fwd_txfm_32x16(src_diff, coeff, diff_stride, tx_type,
- fwd_txfm_opt, bd);
+ highbd_fwd_txfm_32x16(src_diff, coeff, diff_stride, tx_type, fwd_txfm_opt,
+ bd);
break;
#endif // CONFIG_EXT_TX
case TX_4X4:
- highbd_fwd_txfm_4x4(src_diff, coeff, diff_stride, tx_type,
- lossless, bd);
+ highbd_fwd_txfm_4x4(src_diff, coeff, diff_stride, tx_type, lossless, bd);
break;
- default:
- assert(0);
- break;
+ default: assert(0); break;
}
}
#endif // CONFIG_VP9_HIGHBITDEPTH
diff --git a/vp10/encoder/pickdering.c b/vp10/encoder/pickdering.c
index 5a185ee..45acaa1 100644
--- a/vp10/encoder/pickdering.c
+++ b/vp10/encoder/pickdering.c
@@ -18,64 +18,62 @@
#include "vpx/vpx_integer.h"
static double compute_dist(int16_t *x, int xstride, int16_t *y, int ystride,
- int nhb, int nvb, int coeff_shift) {
+ int nhb, int nvb, int coeff_shift) {
int i, j;
double sum;
sum = 0;
for (i = 0; i < nvb << 3; i++) {
for (j = 0; j < nhb << 3; j++) {
double tmp;
- tmp = x[i*xstride + j] - y[i*ystride + j];
- sum += tmp*tmp;
+ tmp = x[i * xstride + j] - y[i * ystride + j];
+ sum += tmp * tmp;
}
}
- return sum/(double)(1 << 2*coeff_shift);
+ return sum / (double)(1 << 2 * coeff_shift);
}
int vp10_dering_search(YV12_BUFFER_CONFIG *frame, const YV12_BUFFER_CONFIG *ref,
- VP10_COMMON *cm,
- MACROBLOCKD *xd) {
+ VP10_COMMON *cm, MACROBLOCKD *xd) {
int r, c;
int sbr, sbc;
int nhsb, nvsb;
od_dering_in *src;
int16_t *ref_coeff;
unsigned char *bskip;
- int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS] = {{0}};
+ int dir[OD_DERING_NBLOCKS][OD_DERING_NBLOCKS] = { { 0 } };
int stride;
int bsize[3];
int dec[3];
int pli;
- int (*mse)[MAX_DERING_LEVEL];
- int best_count[MAX_DERING_LEVEL] = {0};
- double tot_mse[MAX_DERING_LEVEL] = {0};
+ int(*mse)[MAX_DERING_LEVEL];
+ int best_count[MAX_DERING_LEVEL] = { 0 };
+ double tot_mse[MAX_DERING_LEVEL] = { 0 };
int level;
int best_level;
int global_level;
double best_tot_mse = 1e15;
int coeff_shift = VPXMAX(cm->bit_depth - 8, 0);
- src = vpx_malloc(sizeof(*src)*cm->mi_rows*cm->mi_cols*64);
- ref_coeff = vpx_malloc(sizeof(*ref_coeff)*cm->mi_rows*cm->mi_cols*64);
- bskip = vpx_malloc(sizeof(*bskip)*cm->mi_rows*cm->mi_cols);
+ src = vpx_malloc(sizeof(*src) * cm->mi_rows * cm->mi_cols * 64);
+ ref_coeff = vpx_malloc(sizeof(*ref_coeff) * cm->mi_rows * cm->mi_cols * 64);
+ bskip = vpx_malloc(sizeof(*bskip) * cm->mi_rows * cm->mi_cols);
vp10_setup_dst_planes(xd->plane, frame, 0, 0);
for (pli = 0; pli < 3; pli++) {
dec[pli] = xd->plane[pli].subsampling_x;
bsize[pli] = 8 >> dec[pli];
}
- stride = bsize[0]*cm->mi_cols;
- for (r = 0; r < bsize[0]*cm->mi_rows; ++r) {
- for (c = 0; c < bsize[0]*cm->mi_cols; ++c) {
+ stride = bsize[0] * cm->mi_cols;
+ for (r = 0; r < bsize[0] * cm->mi_rows; ++r) {
+ for (c = 0; c < bsize[0] * cm->mi_cols; ++c) {
#if CONFIG_VPX_HIGHBITDEPTH
if (cm->use_highbitdepth) {
- src[r * stride + c] =
- CONVERT_TO_SHORTPTR(xd->plane[0].dst.buf)
- [r*xd->plane[0].dst.stride + c];
+ src[r * stride + c] = CONVERT_TO_SHORTPTR(
+ xd->plane[0].dst.buf)[r * xd->plane[0].dst.stride + c];
ref_coeff[r * stride + c] =
CONVERT_TO_SHORTPTR(ref->y_buffer)[r * ref->y_stride + c];
} else {
#endif
src[r * stride + c] =
- xd->plane[0].dst.buf[r*xd->plane[0].dst.stride + c];
+ xd->plane[0].dst.buf[r * xd->plane[0].dst.stride + c];
ref_coeff[r * stride + c] = ref->y_buffer[r * ref->y_stride + c];
#if CONFIG_VPX_HIGHBITDEPTH
}
@@ -89,37 +87,35 @@
bskip[r * cm->mi_cols + c] = mbmi->skip;
}
}
- nvsb = (cm->mi_rows + MAX_MIB_SIZE - 1)/MAX_MIB_SIZE;
- nhsb = (cm->mi_cols + MAX_MIB_SIZE - 1)/MAX_MIB_SIZE;
- mse = vpx_malloc(nvsb*nhsb*sizeof(*mse));
+ nvsb = (cm->mi_rows + MAX_MIB_SIZE - 1) / MAX_MIB_SIZE;
+ nhsb = (cm->mi_cols + MAX_MIB_SIZE - 1) / MAX_MIB_SIZE;
+ mse = vpx_malloc(nvsb * nhsb * sizeof(*mse));
for (sbr = 0; sbr < nvsb; sbr++) {
for (sbc = 0; sbc < nhsb; sbc++) {
int best_mse = 1000000000;
int nvb, nhb;
- int16_t dst[MAX_MIB_SIZE*MAX_MIB_SIZE*8*8];
+ int16_t dst[MAX_MIB_SIZE * MAX_MIB_SIZE * 8 * 8];
best_level = 0;
- nhb = VPXMIN(MAX_MIB_SIZE, cm->mi_cols - MAX_MIB_SIZE*sbc);
- nvb = VPXMIN(MAX_MIB_SIZE, cm->mi_rows - MAX_MIB_SIZE*sbr);
+ nhb = VPXMIN(MAX_MIB_SIZE, cm->mi_cols - MAX_MIB_SIZE * sbc);
+ nvb = VPXMIN(MAX_MIB_SIZE, cm->mi_rows - MAX_MIB_SIZE * sbr);
for (level = 0; level < 64; level++) {
int threshold;
threshold = level << coeff_shift;
od_dering(
- &OD_DERING_VTBL_C,
- dst,
- MAX_MIB_SIZE*bsize[0],
- &src[sbr*stride*bsize[0]*MAX_MIB_SIZE +
- sbc*bsize[0]*MAX_MIB_SIZE],
- cm->mi_cols*bsize[0], nhb, nvb, sbc, sbr, nhsb, nvsb, 0, dir, 0,
- &bskip[MAX_MIB_SIZE*sbr*cm->mi_cols + MAX_MIB_SIZE*sbc],
+ &OD_DERING_VTBL_C, dst, MAX_MIB_SIZE * bsize[0],
+ &src[sbr * stride * bsize[0] * MAX_MIB_SIZE +
+ sbc * bsize[0] * MAX_MIB_SIZE],
+ cm->mi_cols * bsize[0], nhb, nvb, sbc, sbr, nhsb, nvsb, 0, dir, 0,
+ &bskip[MAX_MIB_SIZE * sbr * cm->mi_cols + MAX_MIB_SIZE * sbc],
cm->mi_cols, threshold, OD_DERING_NO_CHECK_OVERLAP, coeff_shift);
- mse[nhsb*sbr+sbc][level] = (int)compute_dist(
- dst, MAX_MIB_SIZE*bsize[0],
- &ref_coeff[sbr*stride*bsize[0]*MAX_MIB_SIZE +
- sbc*bsize[0]*MAX_MIB_SIZE],
+ mse[nhsb * sbr + sbc][level] = (int)compute_dist(
+ dst, MAX_MIB_SIZE * bsize[0],
+ &ref_coeff[sbr * stride * bsize[0] * MAX_MIB_SIZE +
+ sbc * bsize[0] * MAX_MIB_SIZE],
stride, nhb, nvb, coeff_shift);
- tot_mse[level] += mse[nhsb*sbr+sbc][level];
- if (mse[nhsb*sbr+sbc][level] < best_mse) {
- best_mse = mse[nhsb*sbr+sbc][level];
+ tot_mse[level] += mse[nhsb * sbr + sbc][level];
+ if (mse[nhsb * sbr + sbc][level] < best_mse) {
+ best_mse = mse[nhsb * sbr + sbc][level];
best_level = level;
}
}
@@ -134,11 +130,11 @@
for (sbr = 0; sbr < nvsb; sbr++) {
for (sbc = 0; sbc < nhsb; sbc++) {
int gi;
- int best_mse = mse[nhsb*sbr+sbc][0];
+ int best_mse = mse[nhsb * sbr + sbc][0];
for (gi = 1; gi < 4; gi++) {
level = compute_level_from_index(global_level, gi);
- if (mse[nhsb*sbr+sbc][level] < best_mse) {
- best_mse = mse[nhsb*sbr+sbc][level];
+ if (mse[nhsb * sbr + sbc][level] < best_mse) {
+ best_mse = mse[nhsb * sbr + sbc][level];
}
}
tot_mse += best_mse;
@@ -153,24 +149,25 @@
for (sbc = 0; sbc < nhsb; sbc++) {
int gi;
int best_gi;
- int best_mse = mse[nhsb*sbr+sbc][0];
+ int best_mse = mse[nhsb * sbr + sbc][0];
best_gi = 0;
for (gi = 1; gi < DERING_REFINEMENT_LEVELS; gi++) {
level = compute_level_from_index(best_level, gi);
- if (mse[nhsb*sbr+sbc][level] < best_mse) {
+ if (mse[nhsb * sbr + sbc][level] < best_mse) {
best_gi = gi;
- best_mse = mse[nhsb*sbr+sbc][level];
+ best_mse = mse[nhsb * sbr + sbc][level];
}
}
- cm->mi_grid_visible[MAX_MIB_SIZE*sbr*cm->mi_stride + MAX_MIB_SIZE*sbc]->
- mbmi.dering_gain = best_gi;
+ cm->mi_grid_visible[MAX_MIB_SIZE * sbr * cm->mi_stride +
+ MAX_MIB_SIZE * sbc]
+ ->mbmi.dering_gain = best_gi;
}
}
#else
- best_level = 0;
- for (level = 0; level < MAX_DERING_LEVEL; level++) {
- if (tot_mse[level] < tot_mse[best_level]) best_level = level;
- }
+ best_level = 0;
+ for (level = 0; level < MAX_DERING_LEVEL; level++) {
+ if (tot_mse[level] < tot_mse[best_level]) best_level = level;
+ }
#endif
vpx_free(src);
vpx_free(ref_coeff);
diff --git a/vp10/encoder/rd.c b/vp10/encoder/rd.c
index 5408948..ca4575c 100644
--- a/vp10/encoder/rd.c
+++ b/vp10/encoder/rd.c
@@ -625,9 +625,7 @@
t_left[i] = !!*(const uint32_t *)&left[i];
break;
#endif // CONFIG_EXT_TX
- default:
- assert(0 && "Invalid transform size.");
- break;
+ default: assert(0 && "Invalid transform size."); break;
}
}