Merge changes I7d6394e4,Ia8ce1464,If20e8637,Ia9adc46b,I651db25b into nextgenv2
* changes: Define SIMD_INLINE using AOM_FORCE_INLINE AOM_FORCE_INLINE: fix always_inline attribute Free memory allocated by daala_ec encoder. Move clpf_sse4_1.c to clpf_sse4.c in agreement with convention sync avg_test.cc with aom/master
This commit is contained in:
@@ -19,7 +19,7 @@
|
||||
#define AOM_FORCE_INLINE __forceinline
|
||||
#define AOM_INLINE __inline
|
||||
#else
|
||||
#define AOM_FORCE_INLINE __inline__ __attribute__(always_inline)
|
||||
#define AOM_FORCE_INLINE __inline__ __attribute__((always_inline))
|
||||
// TODO(jbb): Allow a way to force inline off for older compilers.
|
||||
#define AOM_INLINE inline
|
||||
#endif
|
||||
|
||||
@@ -388,5 +388,15 @@ DSP_SRCS-yes += aom_dsp_rtcd.c
|
||||
DSP_SRCS-yes += aom_dsp_rtcd_defs.pl
|
||||
|
||||
DSP_SRCS-yes += aom_simd.c
|
||||
DSP_SRCS-yes += aom_simd.h
|
||||
DSP_SRCS-yes += aom_simd_inline.h
|
||||
DSP_SRCS-yes += simd/v64_intrinsics.h
|
||||
DSP_SRCS-yes += simd/v64_intrinsics_c.h
|
||||
DSP_SRCS-yes += simd/v128_intrinsics.h
|
||||
DSP_SRCS-yes += simd/v128_intrinsics_c.h
|
||||
DSP_SRCS-$(HAVE_SSE2) += simd/v64_intrinsics_x86.h
|
||||
DSP_SRCS-$(HAVE_SSE2) += simd/v128_intrinsics_x86.h
|
||||
DSP_SRCS-$(HAVE_NEON) += simd/v64_intrinsics_arm.h
|
||||
DSP_SRCS-$(HAVE_NEON) += simd/v128_intrinsics_arm.h
|
||||
|
||||
$(eval $(call rtcd_h_template,aom_dsp_rtcd,aom_dsp/aom_dsp_rtcd_defs.pl))
|
||||
|
||||
@@ -9,20 +9,8 @@
|
||||
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
||||
*/
|
||||
|
||||
#ifndef _AOM_SIMD_H
|
||||
#define _AOM_SIMD_H
|
||||
|
||||
#ifndef SIMD_INLINE
|
||||
#ifdef __GNUC__
|
||||
#define SIMD_INLINE static inline __attribute__((always_inline))
|
||||
#elif __STDC_VERSION__ >= 199901L
|
||||
#define SIMD_INLINE static inline
|
||||
#elif defined(_MSC_VER)
|
||||
#define SIMD_INLINE static __inline
|
||||
#else
|
||||
#define SIMD_INLINE static
|
||||
#endif
|
||||
#endif
|
||||
#ifndef AOM_DSP_AOM_AOM_SIMD_H_
|
||||
#define AOM_DSP_AOM_AOM_SIMD_H_
|
||||
|
||||
#include <stdint.h>
|
||||
|
||||
@@ -31,6 +19,7 @@
|
||||
#endif
|
||||
|
||||
#include "./aom_config.h"
|
||||
#include "./aom_simd_inline.h"
|
||||
|
||||
#if HAVE_NEON
|
||||
#include "simd/v128_intrinsics_arm.h"
|
||||
@@ -40,4 +29,4 @@
|
||||
#include "simd/v128_intrinsics.h"
|
||||
#endif
|
||||
|
||||
#endif /* _AOM_SIMD_H */
|
||||
#endif // AOM_DSP_AOM_AOM_SIMD_H_
|
||||
|
||||
21
aom_dsp/aom_simd_inline.h
Normal file
21
aom_dsp/aom_simd_inline.h
Normal file
@@ -0,0 +1,21 @@
|
||||
/*
|
||||
* Copyright (c) 2016, Alliance for Open Media. All rights reserved
|
||||
*
|
||||
* This source code is subject to the terms of the BSD 2 Clause License and
|
||||
* the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
|
||||
* was not distributed with this source code in the LICENSE file, you can
|
||||
* obtain it at www.aomedia.org/license/software. If the Alliance for Open
|
||||
* Media Patent License 1.0 was not distributed with this source code in the
|
||||
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
|
||||
*/
|
||||
|
||||
#ifndef AOM_DSP_AOM_SIMD_INLINE_H_
|
||||
#define AOM_DSP_AOM_SIMD_INLINE_H_
|
||||
|
||||
#include "aom/aom_integer.h"
|
||||
|
||||
#ifndef SIMD_INLINE
|
||||
#define SIMD_INLINE static AOM_FORCE_INLINE
|
||||
#endif
|
||||
|
||||
#endif // AOM_DSP_AOM_SIMD_INLINE_H_
|
||||
@@ -28,4 +28,5 @@ void aom_daala_stop_encode(daala_writer *br) {
|
||||
Must always be added, so that rawbits knows the exact length of the
|
||||
bitstream. */
|
||||
br->buffer[br->pos++] = 0;
|
||||
od_ec_enc_clear(&br->ec);
|
||||
}
|
||||
|
||||
@@ -92,7 +92,7 @@ AV1_COMMON_SRCS-yes += common/clpf.h
|
||||
AV1_COMMON_SRCS-yes += common/clpf_simd.h
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE2) += common/clpf_sse2.c
|
||||
AV1_COMMON_SRCS-$(HAVE_SSSE3) += common/clpf_ssse3.c
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/clpf_sse4_1.c
|
||||
AV1_COMMON_SRCS-$(HAVE_SSE4_1) += common/clpf_sse4.c
|
||||
AV1_COMMON_SRCS-$(HAVE_NEON) += common/clpf_neon.c
|
||||
endif
|
||||
ifeq ($(CONFIG_DERING),yes)
|
||||
|
||||
@@ -54,14 +54,14 @@ class AverageTestBase : public ::testing::Test {
|
||||
}
|
||||
|
||||
// Sum Pixels
|
||||
unsigned int ReferenceAverage8x8(const uint8_t *source, int pitch) {
|
||||
static unsigned int ReferenceAverage8x8(const uint8_t *source, int pitch) {
|
||||
unsigned int average = 0;
|
||||
for (int h = 0; h < 8; ++h)
|
||||
for (int w = 0; w < 8; ++w) average += source[h * pitch + w];
|
||||
return ((average + 32) >> 6);
|
||||
}
|
||||
|
||||
unsigned int ReferenceAverage4x4(const uint8_t *source, int pitch) {
|
||||
static unsigned int ReferenceAverage4x4(const uint8_t *source, int pitch) {
|
||||
unsigned int average = 0;
|
||||
for (int h = 0; h < 4; ++h)
|
||||
for (int w = 0; w < 4; ++w) average += source[h * pitch + w];
|
||||
@@ -97,11 +97,12 @@ class AverageTest : public AverageTestBase,
|
||||
|
||||
protected:
|
||||
void CheckAverages() {
|
||||
const int block_size = GET_PARAM(3);
|
||||
unsigned int expected = 0;
|
||||
if (GET_PARAM(3) == 8) {
|
||||
if (block_size == 8) {
|
||||
expected =
|
||||
ReferenceAverage8x8(source_data_ + GET_PARAM(2), source_stride_);
|
||||
} else if (GET_PARAM(3) == 4) {
|
||||
} else if (block_size == 4) {
|
||||
expected =
|
||||
ReferenceAverage4x4(source_data_ + GET_PARAM(2), source_stride_);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user