mirror of
https://github.com/signalwire/freeswitch.git
synced 2025-08-13 09:36:46 +00:00
[libvpx] Update to v1.8.1 from https://chromium.googlesource.com/webm/libvpx
This commit is contained in:
committed by
Andrey Volk
parent
34fcadbd53
commit
ceb051af4e
@@ -20,24 +20,13 @@
|
||||
#include "test/register_state_check.h"
|
||||
#include "vpx/vpx_codec.h"
|
||||
#include "vpx/vpx_integer.h"
|
||||
#include "vpx_dsp/variance.h"
|
||||
#include "vpx_mem/vpx_mem.h"
|
||||
#include "vpx_ports/mem.h"
|
||||
#include "vpx_ports/vpx_timer.h"
|
||||
|
||||
namespace {
|
||||
|
||||
typedef unsigned int (*VarianceMxNFunc)(const uint8_t *a, int a_stride,
|
||||
const uint8_t *b, int b_stride,
|
||||
unsigned int *sse);
|
||||
typedef unsigned int (*SubpixVarMxNFunc)(const uint8_t *a, int a_stride,
|
||||
int xoffset, int yoffset,
|
||||
const uint8_t *b, int b_stride,
|
||||
unsigned int *sse);
|
||||
typedef unsigned int (*SubpixAvgVarMxNFunc)(const uint8_t *a, int a_stride,
|
||||
int xoffset, int yoffset,
|
||||
const uint8_t *b, int b_stride,
|
||||
uint32_t *sse,
|
||||
const uint8_t *second_pred);
|
||||
typedef unsigned int (*Get4x4SseFunc)(const uint8_t *a, int a_stride,
|
||||
const uint8_t *b, int b_stride);
|
||||
typedef unsigned int (*SumOfSquaresFunction)(const int16_t *src);
|
||||
@@ -572,15 +561,16 @@ class SubpelVarianceTest
|
||||
if (!use_high_bit_depth()) {
|
||||
src_ = reinterpret_cast<uint8_t *>(vpx_memalign(16, block_size()));
|
||||
sec_ = reinterpret_cast<uint8_t *>(vpx_memalign(16, block_size()));
|
||||
ref_ = new uint8_t[block_size() + width() + height() + 1];
|
||||
ref_ = reinterpret_cast<uint8_t *>(
|
||||
vpx_malloc(block_size() + width() + height() + 1));
|
||||
#if CONFIG_VP9_HIGHBITDEPTH
|
||||
} else {
|
||||
src_ = CONVERT_TO_BYTEPTR(reinterpret_cast<uint16_t *>(
|
||||
vpx_memalign(16, block_size() * sizeof(uint16_t))));
|
||||
sec_ = CONVERT_TO_BYTEPTR(reinterpret_cast<uint16_t *>(
|
||||
vpx_memalign(16, block_size() * sizeof(uint16_t))));
|
||||
ref_ = CONVERT_TO_BYTEPTR(
|
||||
new uint16_t[block_size() + width() + height() + 1]);
|
||||
ref_ = CONVERT_TO_BYTEPTR(reinterpret_cast<uint16_t *>(vpx_malloc(
|
||||
(block_size() + width() + height() + 1) * sizeof(uint16_t))));
|
||||
#endif // CONFIG_VP9_HIGHBITDEPTH
|
||||
}
|
||||
ASSERT_TRUE(src_ != NULL);
|
||||
@@ -591,12 +581,12 @@ class SubpelVarianceTest
|
||||
virtual void TearDown() {
|
||||
if (!use_high_bit_depth()) {
|
||||
vpx_free(src_);
|
||||
delete[] ref_;
|
||||
vpx_free(sec_);
|
||||
vpx_free(ref_);
|
||||
#if CONFIG_VP9_HIGHBITDEPTH
|
||||
} else {
|
||||
vpx_free(CONVERT_TO_SHORTPTR(src_));
|
||||
delete[] CONVERT_TO_SHORTPTR(ref_);
|
||||
vpx_free(CONVERT_TO_SHORTPTR(ref_));
|
||||
vpx_free(CONVERT_TO_SHORTPTR(sec_));
|
||||
#endif // CONFIG_VP9_HIGHBITDEPTH
|
||||
}
|
||||
@@ -692,7 +682,7 @@ void SubpelVarianceTest<SubpelVarianceFunctionType>::ExtremeRefTest() {
|
||||
}
|
||||
|
||||
template <>
|
||||
void SubpelVarianceTest<SubpixAvgVarMxNFunc>::RefTest() {
|
||||
void SubpelVarianceTest<vpx_subp_avg_variance_fn_t>::RefTest() {
|
||||
for (int x = 0; x < 8; ++x) {
|
||||
for (int y = 0; y < 8; ++y) {
|
||||
if (!use_high_bit_depth()) {
|
||||
@@ -728,10 +718,10 @@ void SubpelVarianceTest<SubpixAvgVarMxNFunc>::RefTest() {
|
||||
}
|
||||
|
||||
typedef MainTestClass<Get4x4SseFunc> VpxSseTest;
|
||||
typedef MainTestClass<VarianceMxNFunc> VpxMseTest;
|
||||
typedef MainTestClass<VarianceMxNFunc> VpxVarianceTest;
|
||||
typedef SubpelVarianceTest<SubpixVarMxNFunc> VpxSubpelVarianceTest;
|
||||
typedef SubpelVarianceTest<SubpixAvgVarMxNFunc> VpxSubpelAvgVarianceTest;
|
||||
typedef MainTestClass<vpx_variance_fn_t> VpxMseTest;
|
||||
typedef MainTestClass<vpx_variance_fn_t> VpxVarianceTest;
|
||||
typedef SubpelVarianceTest<vpx_subpixvariance_fn_t> VpxSubpelVarianceTest;
|
||||
typedef SubpelVarianceTest<vpx_subp_avg_variance_fn_t> VpxSubpelAvgVarianceTest;
|
||||
|
||||
TEST_P(VpxSseTest, RefSse) { RefTestSse(); }
|
||||
TEST_P(VpxSseTest, MaxSse) { MaxTestSse(); }
|
||||
@@ -756,14 +746,14 @@ INSTANTIATE_TEST_CASE_P(C, VpxSseTest,
|
||||
::testing::Values(SseParams(2, 2,
|
||||
&vpx_get4x4sse_cs_c)));
|
||||
|
||||
typedef TestParams<VarianceMxNFunc> MseParams;
|
||||
typedef TestParams<vpx_variance_fn_t> MseParams;
|
||||
INSTANTIATE_TEST_CASE_P(C, VpxMseTest,
|
||||
::testing::Values(MseParams(4, 4, &vpx_mse16x16_c),
|
||||
MseParams(4, 3, &vpx_mse16x8_c),
|
||||
MseParams(3, 4, &vpx_mse8x16_c),
|
||||
MseParams(3, 3, &vpx_mse8x8_c)));
|
||||
|
||||
typedef TestParams<VarianceMxNFunc> VarianceParams;
|
||||
typedef TestParams<vpx_variance_fn_t> VarianceParams;
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
C, VpxVarianceTest,
|
||||
::testing::Values(VarianceParams(6, 6, &vpx_variance64x64_c),
|
||||
@@ -780,7 +770,7 @@ INSTANTIATE_TEST_CASE_P(
|
||||
VarianceParams(2, 3, &vpx_variance4x8_c),
|
||||
VarianceParams(2, 2, &vpx_variance4x4_c)));
|
||||
|
||||
typedef TestParams<SubpixVarMxNFunc> SubpelVarianceParams;
|
||||
typedef TestParams<vpx_subpixvariance_fn_t> SubpelVarianceParams;
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
C, VpxSubpelVarianceTest,
|
||||
::testing::Values(
|
||||
@@ -798,7 +788,7 @@ INSTANTIATE_TEST_CASE_P(
|
||||
SubpelVarianceParams(2, 3, &vpx_sub_pixel_variance4x8_c, 0),
|
||||
SubpelVarianceParams(2, 2, &vpx_sub_pixel_variance4x4_c, 0)));
|
||||
|
||||
typedef TestParams<SubpixAvgVarMxNFunc> SubpelAvgVarianceParams;
|
||||
typedef TestParams<vpx_subp_avg_variance_fn_t> SubpelAvgVarianceParams;
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
C, VpxSubpelAvgVarianceTest,
|
||||
::testing::Values(
|
||||
@@ -817,10 +807,11 @@ INSTANTIATE_TEST_CASE_P(
|
||||
SubpelAvgVarianceParams(2, 2, &vpx_sub_pixel_avg_variance4x4_c, 0)));
|
||||
|
||||
#if CONFIG_VP9_HIGHBITDEPTH
|
||||
typedef MainTestClass<VarianceMxNFunc> VpxHBDMseTest;
|
||||
typedef MainTestClass<VarianceMxNFunc> VpxHBDVarianceTest;
|
||||
typedef SubpelVarianceTest<SubpixVarMxNFunc> VpxHBDSubpelVarianceTest;
|
||||
typedef SubpelVarianceTest<SubpixAvgVarMxNFunc> VpxHBDSubpelAvgVarianceTest;
|
||||
typedef MainTestClass<vpx_variance_fn_t> VpxHBDMseTest;
|
||||
typedef MainTestClass<vpx_variance_fn_t> VpxHBDVarianceTest;
|
||||
typedef SubpelVarianceTest<vpx_subpixvariance_fn_t> VpxHBDSubpelVarianceTest;
|
||||
typedef SubpelVarianceTest<vpx_subp_avg_variance_fn_t>
|
||||
VpxHBDSubpelAvgVarianceTest;
|
||||
|
||||
TEST_P(VpxHBDMseTest, RefMse) { RefTestMse(); }
|
||||
TEST_P(VpxHBDMseTest, MaxMse) { MaxTestMse(); }
|
||||
@@ -1384,15 +1375,19 @@ INSTANTIATE_TEST_CASE_P(
|
||||
|
||||
#if HAVE_AVX2
|
||||
INSTANTIATE_TEST_CASE_P(AVX2, VpxMseTest,
|
||||
::testing::Values(MseParams(4, 4, &vpx_mse16x16_avx2)));
|
||||
::testing::Values(MseParams(4, 4, &vpx_mse16x16_avx2),
|
||||
MseParams(4, 3, &vpx_mse16x8_avx2)));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
AVX2, VpxVarianceTest,
|
||||
::testing::Values(VarianceParams(6, 6, &vpx_variance64x64_avx2),
|
||||
VarianceParams(6, 5, &vpx_variance64x32_avx2),
|
||||
VarianceParams(5, 6, &vpx_variance32x64_avx2),
|
||||
VarianceParams(5, 5, &vpx_variance32x32_avx2),
|
||||
VarianceParams(5, 4, &vpx_variance32x16_avx2),
|
||||
VarianceParams(4, 4, &vpx_variance16x16_avx2)));
|
||||
VarianceParams(4, 5, &vpx_variance16x32_avx2),
|
||||
VarianceParams(4, 4, &vpx_variance16x16_avx2),
|
||||
VarianceParams(4, 3, &vpx_variance16x8_avx2)));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
AVX2, VpxSubpelVarianceTest,
|
||||
@@ -1539,6 +1534,27 @@ INSTANTIATE_TEST_CASE_P(VSX, SumOfSquaresTest,
|
||||
INSTANTIATE_TEST_CASE_P(VSX, VpxSseTest,
|
||||
::testing::Values(SseParams(2, 2,
|
||||
&vpx_get4x4sse_cs_vsx)));
|
||||
INSTANTIATE_TEST_CASE_P(VSX, VpxMseTest,
|
||||
::testing::Values(MseParams(4, 4, &vpx_mse16x16_vsx),
|
||||
MseParams(4, 3, &vpx_mse16x8_vsx),
|
||||
MseParams(3, 4, &vpx_mse8x16_vsx),
|
||||
MseParams(3, 3, &vpx_mse8x8_vsx)));
|
||||
|
||||
INSTANTIATE_TEST_CASE_P(
|
||||
VSX, VpxVarianceTest,
|
||||
::testing::Values(VarianceParams(6, 6, &vpx_variance64x64_vsx),
|
||||
VarianceParams(6, 5, &vpx_variance64x32_vsx),
|
||||
VarianceParams(5, 6, &vpx_variance32x64_vsx),
|
||||
VarianceParams(5, 5, &vpx_variance32x32_vsx),
|
||||
VarianceParams(5, 4, &vpx_variance32x16_vsx),
|
||||
VarianceParams(4, 5, &vpx_variance16x32_vsx),
|
||||
VarianceParams(4, 4, &vpx_variance16x16_vsx),
|
||||
VarianceParams(4, 3, &vpx_variance16x8_vsx),
|
||||
VarianceParams(3, 4, &vpx_variance8x16_vsx),
|
||||
VarianceParams(3, 3, &vpx_variance8x8_vsx),
|
||||
VarianceParams(3, 2, &vpx_variance8x4_vsx),
|
||||
VarianceParams(2, 3, &vpx_variance4x8_vsx),
|
||||
VarianceParams(2, 2, &vpx_variance4x4_vsx)));
|
||||
#endif // HAVE_VSX
|
||||
|
||||
#if HAVE_MMI
|
||||
|
Reference in New Issue
Block a user