Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
10
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
Yushin Cho
aom-rav1e
Commits
ec838b76
Commit
ec838b76
authored
Mar 28, 2016
by
Adrian Grange
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Convert "vp8" to "aom"
Change-Id: I0d57cf019d5715d3360736763be0c5afe0bd0de4
parent
80edfa01
Changes
32
Hide whitespace changes
Inline
Side-by-side
Showing
32 changed files
with
227 additions
and
227 deletions
+227
-227
.gitignore
.gitignore
+3
-3
CHANGELOG
CHANGELOG
+9
-9
aom/aom.h
aom/aom.h
+10
-10
aom/aomcx.h
aom/aomcx.h
+6
-6
aom/aomdx.h
aom/aomdx.h
+6
-6
aom_dsp/arm/loopfilter_16_neon.c
aom_dsp/arm/loopfilter_16_neon.c
+3
-3
aom_dsp/arm/loopfilter_4_neon.asm
aom_dsp/arm/loopfilter_4_neon.asm
+2
-2
aom_dsp/arm/loopfilter_8_neon.asm
aom_dsp/arm/loopfilter_8_neon.asm
+1
-1
aom_dsp/intrapred.c
aom_dsp/intrapred.c
+3
-3
aom_dsp/mips/loopfilter_filters_dspr2.h
aom_dsp/mips/loopfilter_filters_dspr2.h
+16
-16
aom_dsp/variance.h
aom_dsp/variance.h
+1
-1
av1/av1_cx_iface.c
av1/av1_cx_iface.c
+1
-1
av1/av1_dx_iface.c
av1/av1_dx_iface.c
+2
-2
examples/aom_temporal_svc_encoder.c
examples/aom_temporal_svc_encoder.c
+6
-6
examples/simple_decoder.c
examples/simple_decoder.c
+1
-1
examples/simple_encoder.c
examples/simple_encoder.c
+1
-1
mainpage.dox
mainpage.dox
+4
-4
test/aom_multi_resolution_encoder.sh
test/aom_multi_resolution_encoder.sh
+16
-16
test/aom_temporal_svc_encoder.sh
test/aom_temporal_svc_encoder.sh
+49
-49
test/aomcx_set_ref.sh
test/aomcx_set_ref.sh
+12
-12
test/aomdec.sh
test/aomdec.sh
+8
-8
test/aomenc.sh
test/aomenc.sh
+34
-34
test/decode_test_driver.cc
test/decode_test_driver.cc
+2
-2
test/decode_to_md5.sh
test/decode_to_md5.sh
+4
-4
test/decode_with_drops.sh
test/decode_with_drops.sh
+5
-5
test/idct_test.cc
test/idct_test.cc
+4
-4
test/set_maps.sh
test/set_maps.sh
+4
-4
test/simple_decoder.sh
test/simple_decoder.sh
+4
-4
test/simple_encoder.sh
test/simple_encoder.sh
+4
-4
test/tools_common.sh
test/tools_common.sh
+1
-1
test/twopass_encoder.sh
test/twopass_encoder.sh
+4
-4
test/variance_test.cc
test/variance_test.cc
+1
-1
No files found.
.gitignore
View file @
ec838b76
...
@@ -35,8 +35,8 @@
...
@@ -35,8 +35,8 @@
/examples/simple_decoder
/examples/simple_decoder
/examples/simple_encoder
/examples/simple_encoder
/examples/twopass_encoder
/examples/twopass_encoder
/examples/
vp8
_multi_resolution_encoder
/examples/
aom
_multi_resolution_encoder
/examples/
vp8
cx_set_ref
/examples/
aom
cx_set_ref
/examples/vp9_lossless_encoder
/examples/vp9_lossless_encoder
/examples/vp9_spatial_scalable_encoder
/examples/vp9_spatial_scalable_encoder
/examples/aom_temporal_scalable_patterns
/examples/aom_temporal_scalable_patterns
...
@@ -50,7 +50,7 @@
...
@@ -50,7 +50,7 @@
/samples.dox
/samples.dox
/test_intra_pred_speed
/test_intra_pred_speed
/test_libaom
/test_libaom
/
vp8
_api1_migration.dox
/
aom
_api1_migration.dox
/vp[89x]_rtcd.h
/vp[89x]_rtcd.h
/aom.pc
/aom.pc
/aom_config.c
/aom_config.c
...
...
CHANGELOG
View file @
ec838b76
...
@@ -304,7 +304,7 @@
...
@@ -304,7 +304,7 @@
aomenc: add rate histogram display
aomenc: add rate histogram display
Set AOM_FRAME_IS_DROPPABLE
Set AOM_FRAME_IS_DROPPABLE
update configure for ios sdk 4.3
update configure for ios sdk 4.3
Avoid text relocations in ARM
vp8
decoder
Avoid text relocations in ARM
aom
decoder
Generate a aom.pc file for pkg-config.
Generate a aom.pc file for pkg-config.
New ways of passing encoded data between encoder and decoder.
New ways of passing encoded data between encoder and decoder.
...
@@ -333,7 +333,7 @@
...
@@ -333,7 +333,7 @@
disable trellis optimization for first pass
disable trellis optimization for first pass
Write SSSE3 sub-pixel filter function
Write SSSE3 sub-pixel filter function
Improve SSE2 half-pixel filter funtions
Improve SSE2 half-pixel filter funtions
Add
vp8
_sub_pixel_variance16x8_ssse3 function
Add
aom
_sub_pixel_variance16x8_ssse3 function
Reduce unnecessary distortion computation
Reduce unnecessary distortion computation
Use diamond search to replace full search
Use diamond search to replace full search
Preload reference area in sub-pixel motion search (real-time mode)
Preload reference area in sub-pixel motion search (real-time mode)
...
@@ -399,7 +399,7 @@
...
@@ -399,7 +399,7 @@
FDCT optimizations.
FDCT optimizations.
x86 sse2 temporal filter
x86 sse2 temporal filter
SSSE3 version of fast quantizer
SSSE3 version of fast quantizer
vp8
_rd_pick_best_mbsegmentation code restructure
aom
_rd_pick_best_mbsegmentation code restructure
Adjusted breakout RD for SPLITMV
Adjusted breakout RD for SPLITMV
Changed segmentation check order
Changed segmentation check order
Improved rd_pick_intra4x4block
Improved rd_pick_intra4x4block
...
@@ -408,7 +408,7 @@
...
@@ -408,7 +408,7 @@
ARMv6 optimized half pixel variance calculations
ARMv6 optimized half pixel variance calculations
Full search SAD function optimization in SSE4.1
Full search SAD function optimization in SSE4.1
Improve MV prediction accuracy to achieve performance gain
Improve MV prediction accuracy to achieve performance gain
Improve MV prediction in
vp8
_pick_inter_mode() for speed>3
Improve MV prediction in
aom
_pick_inter_mode() for speed>3
- Quality:
- Quality:
Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
Best quality mode improved PSNR 6.3%, and SSIM 6.1%. This release
...
@@ -439,7 +439,7 @@
...
@@ -439,7 +439,7 @@
Fix ARM encoder crash with multiple token partitions
Fix ARM encoder crash with multiple token partitions
Fixed bug first cluster timecode of webm file is wrong.
Fixed bug first cluster timecode of webm file is wrong.
Fixed various encoder bugs with odd-sized images
Fixed various encoder bugs with odd-sized images
vp8
e_get_preview fixed when spatial resampling enabled
aom
e_get_preview fixed when spatial resampling enabled
quantizer: fix assertion in fast quantizer path
quantizer: fix assertion in fast quantizer path
Allocate source buffers to be multiples of 16
Allocate source buffers to be multiples of 16
Fix for manual Golden frame frequency
Fix for manual Golden frame frequency
...
@@ -517,13 +517,13 @@
...
@@ -517,13 +517,13 @@
Improve handling of invalid frames
Improve handling of invalid frames
Fix valgrind errors in the NEON loop filters.
Fix valgrind errors in the NEON loop filters.
Fix loopfilter delta zero transitions
Fix loopfilter delta zero transitions
Fix valgrind errors in
vp8
_sixtap_predict8x4_armv6().
Fix valgrind errors in
aom
_sixtap_predict8x4_armv6().
Build fixes for darwin-icc
Build fixes for darwin-icc
- Speed:
- Speed:
20-40% (average 28%) improvement in libaom decoder speed,
20-40% (average 28%) improvement in libaom decoder speed,
including:
including:
Rewrite
vp8
_short_walsh4x4_sse2()
Rewrite
aom
_short_walsh4x4_sse2()
Optimizations on the loopfilters.
Optimizations on the loopfilters.
Miscellaneous improvements for Atom
Miscellaneous improvements for Atom
Add 4-tap version of 2nd-pass ARMv6 MC filter.
Add 4-tap version of 2nd-pass ARMv6 MC filter.
...
@@ -539,8 +539,8 @@
...
@@ -539,8 +539,8 @@
Encoder speed improvements (percentage gain not measured):
Encoder speed improvements (percentage gain not measured):
Skip unnecessary search of identical frames
Skip unnecessary search of identical frames
Add SSE2 subtract functions
Add SSE2 subtract functions
Improve bounds checking in
vp8
_diamond_search_sadx4()
Improve bounds checking in
aom
_diamond_search_sadx4()
Added
vp8
_fast_quantize_b_sse2
Added
aom
_fast_quantize_b_sse2
- Quality:
- Quality:
Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality
Over 7% overall PSNR improvement (6.3% SSIM) in "best" quality
...
...
aom/aom.h
View file @
ec838b76
...
@@ -9,7 +9,7 @@
...
@@ -9,7 +9,7 @@
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
*/
/*!\defgroup
vp8
AOM
/*!\defgroup
aom
AOM
* \ingroup codecs
* \ingroup codecs
* AOM is aom's newest video compression algorithm that uses motion
* AOM is aom's newest video compression algorithm that uses motion
* compensated prediction, Discrete Cosine Transform (DCT) coding of the
* compensated prediction, Discrete Cosine Transform (DCT) coding of the
...
@@ -42,7 +42,7 @@ extern "C" {
...
@@ -42,7 +42,7 @@ extern "C" {
*
*
* The set of macros define the control functions of AOM interface
* The set of macros define the control functions of AOM interface
*/
*/
enum
vp8
_com_control_id
{
enum
aom
_com_control_id
{
AOM_SET_REFERENCE
=
AOM_SET_REFERENCE
=
1
,
/**< pass in an external frame into decoder to be used as reference
1
,
/**< pass in an external frame into decoder to be used as reference
frame */
frame */
...
@@ -67,7 +67,7 @@ enum vp8_com_control_id {
...
@@ -67,7 +67,7 @@ enum vp8_com_control_id {
*
*
* The set of macros define AOM decoder post processing flags
* The set of macros define AOM decoder post processing flags
*/
*/
enum
vp8
_postproc_level
{
enum
aom
_postproc_level
{
AOM_NOFILTERING
=
0
,
AOM_NOFILTERING
=
0
,
AOM_DEBLOCK
=
1
<<
0
,
AOM_DEBLOCK
=
1
<<
0
,
AOM_DEMACROBLOCK
=
1
<<
1
,
AOM_DEMACROBLOCK
=
1
<<
1
,
...
@@ -87,12 +87,12 @@ enum vp8_postproc_level {
...
@@ -87,12 +87,12 @@ enum vp8_postproc_level {
* to AOM_DEBLOCK and deblocking_level to 1.
* to AOM_DEBLOCK and deblocking_level to 1.
*/
*/
typedef
struct
vp8
_postproc_cfg
{
typedef
struct
aom
_postproc_cfg
{
int
post_proc_flag
;
/**< the types of post processing to be done, should be
int
post_proc_flag
;
/**< the types of post processing to be done, should be
combination of "
vp8
_postproc_level" */
combination of "
aom
_postproc_level" */
int
deblocking_level
;
/**< the strength of deblocking, valid range [0, 16] */
int
deblocking_level
;
/**< the strength of deblocking, valid range [0, 16] */
int
noise_level
;
/**< the strength of additive noise, valid range [0, 16] */
int
noise_level
;
/**< the strength of additive noise, valid range [0, 16] */
}
vp8
_postproc_cfg_t
;
}
aom
_postproc_cfg_t
;
/*!\brief reference frame type
/*!\brief reference frame type
*
*
...
@@ -106,7 +106,7 @@ typedef enum aom_ref_frame_type {
...
@@ -106,7 +106,7 @@ typedef enum aom_ref_frame_type {
/*!\brief reference frame data struct
/*!\brief reference frame data struct
*
*
* Define the data struct to access
vp8
reference frames.
* Define the data struct to access
aom
reference frames.
*/
*/
typedef
struct
aom_ref_frame
{
typedef
struct
aom_ref_frame
{
aom_ref_frame_type_t
frame_type
;
/**< which reference frame */
aom_ref_frame_type_t
frame_type
;
/**< which reference frame */
...
@@ -123,7 +123,7 @@ typedef struct vp9_ref_frame {
...
@@ -123,7 +123,7 @@ typedef struct vp9_ref_frame {
}
vp9_ref_frame_t
;
}
vp9_ref_frame_t
;
/*!\cond */
/*!\cond */
/*!\brief
vp8
decoder control function parameter type
/*!\brief
aom
decoder control function parameter type
*
*
* defines the data type for each of AOM decoder control function requires
* defines the data type for each of AOM decoder control function requires
*/
*/
...
@@ -131,7 +131,7 @@ AOM_CTRL_USE_TYPE(AOM_SET_REFERENCE, aom_ref_frame_t *)
...
@@ -131,7 +131,7 @@ AOM_CTRL_USE_TYPE(AOM_SET_REFERENCE, aom_ref_frame_t *)
#define AOM_CTRL_AOM_SET_REFERENCE
#define AOM_CTRL_AOM_SET_REFERENCE
AOM_CTRL_USE_TYPE
(
AOM_COPY_REFERENCE
,
aom_ref_frame_t
*
)
AOM_CTRL_USE_TYPE
(
AOM_COPY_REFERENCE
,
aom_ref_frame_t
*
)
#define AOM_CTRL_AOM_COPY_REFERENCE
#define AOM_CTRL_AOM_COPY_REFERENCE
AOM_CTRL_USE_TYPE
(
AOM_SET_POSTPROC
,
vp8
_postproc_cfg_t
*
)
AOM_CTRL_USE_TYPE
(
AOM_SET_POSTPROC
,
aom
_postproc_cfg_t
*
)
#define AOM_CTRL_AOM_SET_POSTPROC
#define AOM_CTRL_AOM_SET_POSTPROC
AOM_CTRL_USE_TYPE
(
AOM_SET_DBG_COLOR_REF_FRAME
,
int
)
AOM_CTRL_USE_TYPE
(
AOM_SET_DBG_COLOR_REF_FRAME
,
int
)
#define AOM_CTRL_AOM_SET_DBG_COLOR_REF_FRAME
#define AOM_CTRL_AOM_SET_DBG_COLOR_REF_FRAME
...
@@ -145,7 +145,7 @@ AOM_CTRL_USE_TYPE(AV1_GET_REFERENCE, vp9_ref_frame_t *)
...
@@ -145,7 +145,7 @@ AOM_CTRL_USE_TYPE(AV1_GET_REFERENCE, vp9_ref_frame_t *)
#define AOM_CTRL_AV1_GET_REFERENCE
#define AOM_CTRL_AV1_GET_REFERENCE
/*!\endcond */
/*!\endcond */
/*! @} - end defgroup
vp8
*/
/*! @} - end defgroup
aom
*/
#ifdef __cplusplus
#ifdef __cplusplus
}
// extern "C"
}
// extern "C"
...
...
aom/aomcx.h
View file @
ec838b76
...
@@ -11,8 +11,8 @@
...
@@ -11,8 +11,8 @@
#ifndef AOM_AOMCX_H_
#ifndef AOM_AOMCX_H_
#define AOM_AOMCX_H_
#define AOM_AOMCX_H_
/*!\defgroup
vp8
_encoder WebM AOM/AV1 Encoder
/*!\defgroup
aom
_encoder WebM AOM/AV1 Encoder
* \ingroup
vp8
* \ingroup
aom
*
*
* @{
* @{
*/
*/
...
@@ -114,7 +114,7 @@ extern aom_codec_iface_t *aom_codec_av1_cx(void);
...
@@ -114,7 +114,7 @@ extern aom_codec_iface_t *aom_codec_av1_cx(void);
*
*
* \sa #aom_codec_control
* \sa #aom_codec_control
*/
*/
enum
vp8
e_enc_control_id
{
enum
aom
e_enc_control_id
{
/*!\brief Codec control function to pass an ROI map to encoder.
/*!\brief Codec control function to pass an ROI map to encoder.
*
*
* Supported in codecs: AOM, AV1
* Supported in codecs: AOM, AV1
...
@@ -667,7 +667,7 @@ typedef enum {
...
@@ -667,7 +667,7 @@ typedef enum {
AOM_TWO_TOKENPARTITION
=
1
,
AOM_TWO_TOKENPARTITION
=
1
,
AOM_FOUR_TOKENPARTITION
=
2
,
AOM_FOUR_TOKENPARTITION
=
2
,
AOM_EIGHT_TOKENPARTITION
=
3
AOM_EIGHT_TOKENPARTITION
=
3
}
vp8
e_token_partitions
;
}
aom
e_token_partitions
;
/*!brief AV1 encoder content type */
/*!brief AV1 encoder content type */
typedef
enum
{
typedef
enum
{
...
@@ -748,7 +748,7 @@ AOM_CTRL_USE_TYPE(AOME_SET_SHARPNESS, unsigned int)
...
@@ -748,7 +748,7 @@ AOM_CTRL_USE_TYPE(AOME_SET_SHARPNESS, unsigned int)
#define AOM_CTRL_AOME_SET_SHARPNESS
#define AOM_CTRL_AOME_SET_SHARPNESS
AOM_CTRL_USE_TYPE
(
AOME_SET_STATIC_THRESHOLD
,
unsigned
int
)
AOM_CTRL_USE_TYPE
(
AOME_SET_STATIC_THRESHOLD
,
unsigned
int
)
#define AOM_CTRL_AOME_SET_STATIC_THRESHOLD
#define AOM_CTRL_AOME_SET_STATIC_THRESHOLD
AOM_CTRL_USE_TYPE
(
AOME_SET_TOKEN_PARTITIONS
,
int
)
/*
vp8
e_token_partitions */
AOM_CTRL_USE_TYPE
(
AOME_SET_TOKEN_PARTITIONS
,
int
)
/*
aom
e_token_partitions */
#define AOM_CTRL_AOME_SET_TOKEN_PARTITIONS
#define AOM_CTRL_AOME_SET_TOKEN_PARTITIONS
AOM_CTRL_USE_TYPE
(
AOME_SET_ARNR_MAXFRAMES
,
unsigned
int
)
AOM_CTRL_USE_TYPE
(
AOME_SET_ARNR_MAXFRAMES
,
unsigned
int
)
...
@@ -836,7 +836,7 @@ AOM_CTRL_USE_TYPE(AV1E_SET_RENDER_SIZE, int *)
...
@@ -836,7 +836,7 @@ AOM_CTRL_USE_TYPE(AV1E_SET_RENDER_SIZE, int *)
#define AOM_CTRL_AV1E_SET_RENDER_SIZE
#define AOM_CTRL_AV1E_SET_RENDER_SIZE
/*!\endcond */
/*!\endcond */
/*! @} - end defgroup
vp8
_encoder */
/*! @} - end defgroup
aom
_encoder */
#ifdef __cplusplus
#ifdef __cplusplus
}
// extern "C"
}
// extern "C"
#endif
#endif
...
...
aom/aomdx.h
View file @
ec838b76
...
@@ -9,8 +9,8 @@
...
@@ -9,8 +9,8 @@
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
* PATENTS file, you can obtain it at www.aomedia.org/license/patent.
*/
*/
/*!\defgroup
vp8
_decoder WebM AOM/AV1 Decoder
/*!\defgroup
aom
_decoder WebM AOM/AV1 Decoder
* \ingroup
vp8
* \ingroup
aom
*
*
* @{
* @{
*/
*/
...
@@ -37,7 +37,7 @@ extern aom_codec_iface_t aom_codec_av1_dx_algo;
...
@@ -37,7 +37,7 @@ extern aom_codec_iface_t aom_codec_av1_dx_algo;
extern
aom_codec_iface_t
*
aom_codec_av1_dx
(
void
);
extern
aom_codec_iface_t
*
aom_codec_av1_dx
(
void
);
/*!@} - end algorithm interface member group*/
/*!@} - end algorithm interface member group*/
/*!\enum
vp8
_dec_control_id
/*!\enum
aom
_dec_control_id
* \brief AOM decoder control functions
* \brief AOM decoder control functions
*
*
* This set of macros define the control functions available for the AOM
* This set of macros define the control functions available for the AOM
...
@@ -45,7 +45,7 @@ extern aom_codec_iface_t *aom_codec_av1_dx(void);
...
@@ -45,7 +45,7 @@ extern aom_codec_iface_t *aom_codec_av1_dx(void);
*
*
* \sa #aom_codec_control
* \sa #aom_codec_control
*/
*/
enum
vp8
_dec_control_id
{
enum
aom
_dec_control_id
{
/** control function to get info on which reference frames were updated
/** control function to get info on which reference frames were updated
* by the last decode
* by the last decode
*/
*/
...
@@ -126,7 +126,7 @@ typedef struct aom_decrypt_init {
...
@@ -126,7 +126,7 @@ typedef struct aom_decrypt_init {
/*!\brief A deprecated alias for aom_decrypt_init.
/*!\brief A deprecated alias for aom_decrypt_init.
*/
*/
typedef
aom_decrypt_init
vp8
_decrypt_init
;
typedef
aom_decrypt_init
aom
_decrypt_init
;
/*!\cond */
/*!\cond */
/*!\brief AOM decoder control function parameter type
/*!\brief AOM decoder control function parameter type
...
@@ -156,7 +156,7 @@ AOM_CTRL_USE_TYPE(AV1_INVERT_TILE_DECODE_ORDER, int)
...
@@ -156,7 +156,7 @@ AOM_CTRL_USE_TYPE(AV1_INVERT_TILE_DECODE_ORDER, int)
#define AOM_CTRL_AV1_INVERT_TILE_DECODE_ORDER
#define AOM_CTRL_AV1_INVERT_TILE_DECODE_ORDER
/*!\endcond */
/*!\endcond */
/*! @} - end defgroup
vp8
_decoder */
/*! @} - end defgroup
aom
_decoder */
#ifdef __cplusplus
#ifdef __cplusplus
}
// extern "C"
}
// extern "C"
...
...
aom_dsp/arm/loopfilter_16_neon.c
View file @
ec838b76
...
@@ -50,7 +50,7 @@ static INLINE void loop_filter_neon_16(uint8x16_t qblimit, // blimit
...
@@ -50,7 +50,7 @@ static INLINE void loop_filter_neon_16(uint8x16_t qblimit, // blimit
q9
=
vabdq_u8
(
q6
,
q7
);
q9
=
vabdq_u8
(
q6
,
q7
);
//
vp8
_hevmask
//
aom
_hevmask
q13u8
=
vcgtq_u8
(
q13u8
,
qthresh
);
q13u8
=
vcgtq_u8
(
q13u8
,
qthresh
);
q14u8
=
vcgtq_u8
(
q14u8
,
qthresh
);
q14u8
=
vcgtq_u8
(
q14u8
,
qthresh
);
q15u8
=
vmaxq_u8
(
q15u8
,
q3
);
q15u8
=
vmaxq_u8
(
q15u8
,
q3
);
...
@@ -60,7 +60,7 @@ static INLINE void loop_filter_neon_16(uint8x16_t qblimit, // blimit
...
@@ -60,7 +60,7 @@ static INLINE void loop_filter_neon_16(uint8x16_t qblimit, // blimit
q15u8
=
vcgeq_u8
(
qlimit
,
q15u8
);
q15u8
=
vcgeq_u8
(
qlimit
,
q15u8
);
//
vp8
_filter() function
//
aom
_filter() function
// convert to signed
// convert to signed
q10
=
vdupq_n_u8
(
0x80
);
q10
=
vdupq_n_u8
(
0x80
);
q8
=
veorq_u8
(
q8
,
q10
);
q8
=
veorq_u8
(
q8
,
q10
);
...
@@ -95,7 +95,7 @@ static INLINE void loop_filter_neon_16(uint8x16_t qblimit, // blimit
...
@@ -95,7 +95,7 @@ static INLINE void loop_filter_neon_16(uint8x16_t qblimit, // blimit
q4
=
vdupq_n_u8
(
3
);
q4
=
vdupq_n_u8
(
3
);
q9
=
vdupq_n_u8
(
4
);
q9
=
vdupq_n_u8
(
4
);
//
vp8
_filter = clamp(
vp8
_filter + 3 * ( qs0 - ps0))
//
aom
_filter = clamp(
aom
_filter + 3 * ( qs0 - ps0))
d2s8
=
vqmovn_s16
(
q2s16
);
d2s8
=
vqmovn_s16
(
q2s16
);
d3s8
=
vqmovn_s16
(
q11s16
);
d3s8
=
vqmovn_s16
(
q11s16
);
q1s8
=
vcombine_s8
(
d2s8
,
d3s8
);
q1s8
=
vcombine_s8
(
d2s8
,
d3s8
);
...
...
aom_dsp/arm/loopfilter_4_neon.asm
View file @
ec838b76
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
AREA
||
.text
||
,
CODE
,
READONLY
,
AL
IGN
=
2
AREA
||
.text
||
,
CODE
,
READONLY
,
AL
IGN
=
2
; Currently aom only works on iterations 8 at a time. The
vp8
loop filter
; Currently aom only works on iterations 8 at a time. The
aom
loop filter
; works on 16 iterations at a time.
; works on 16 iterations at a time.
; TODO(fgalligan): See about removing the count code as this function is only
; TODO(fgalligan): See about removing the count code as this function is only
; called with a count of 1.
; called with a count of 1.
...
@@ -77,7 +77,7 @@ end_aom_lf_h_edge
...
@@ -77,7 +77,7 @@ end_aom_lf_h_edge
pop
{
pc
}
pop
{
pc
}
ENDP
; |aom_lpf_horizontal_4_neon|
ENDP
; |aom_lpf_horizontal_4_neon|
; Currently aom only works on iterations 8 at a time. The
vp8
loop filter
; Currently aom only works on iterations 8 at a time. The
aom
loop filter
; works on 16 iterations at a time.
; works on 16 iterations at a time.
; TODO(fgalligan): See about removing the count code as this function is only
; TODO(fgalligan): See about removing the count code as this function is only
; called with a count of 1.
; called with a count of 1.
...
...
aom_dsp/arm/loopfilter_8_neon.asm
View file @
ec838b76
...
@@ -14,7 +14,7 @@
...
@@ -14,7 +14,7 @@
AREA
||
.text
||
,
CODE
,
READONLY
,
AL
IGN
=
2
AREA
||
.text
||
,
CODE
,
READONLY
,
AL
IGN
=
2
; Currently aom only works on iterations 8 at a time. The
vp8
loop filter
; Currently aom only works on iterations 8 at a time. The
aom
loop filter
; works on 16 iterations at a time.
; works on 16 iterations at a time.
; TODO(fgalligan): See about removing the count code as this function is only
; TODO(fgalligan): See about removing the count code as this function is only
; called with a count of 1.
; called with a count of 1.
...
...
aom_dsp/intrapred.c
View file @
ec838b76
...
@@ -347,13 +347,13 @@ void aom_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
...
@@ -347,13 +347,13 @@ void aom_d63_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
DST
(
1
,
0
)
=
DST
(
0
,
2
)
=
AVG2
(
B
,
C
);
DST
(
1
,
0
)
=
DST
(
0
,
2
)
=
AVG2
(
B
,
C
);
DST
(
2
,
0
)
=
DST
(
1
,
2
)
=
AVG2
(
C
,
D
);
DST
(
2
,
0
)
=
DST
(
1
,
2
)
=
AVG2
(
C
,
D
);
DST
(
3
,
0
)
=
DST
(
2
,
2
)
=
AVG2
(
D
,
E
);
DST
(
3
,
0
)
=
DST
(
2
,
2
)
=
AVG2
(
D
,
E
);
DST
(
3
,
2
)
=
AVG2
(
E
,
F
);
// differs from
vp8
DST
(
3
,
2
)
=
AVG2
(
E
,
F
);
// differs from
aom
DST
(
0
,
1
)
=
AVG3
(
A
,
B
,
C
);
DST
(
0
,
1
)
=
AVG3
(
A
,
B
,
C
);
DST
(
1
,
1
)
=
DST
(
0
,
3
)
=
AVG3
(
B
,
C
,
D
);
DST
(
1
,
1
)
=
DST
(
0
,
3
)
=
AVG3
(
B
,
C
,
D
);
DST
(
2
,
1
)
=
DST
(
1
,
3
)
=
AVG3
(
C
,
D
,
E
);
DST
(
2
,
1
)
=
DST
(
1
,
3
)
=
AVG3
(
C
,
D
,
E
);
DST
(
3
,
1
)
=
DST
(
2
,
3
)
=
AVG3
(
D
,
E
,
F
);
DST
(
3
,
1
)
=
DST
(
2
,
3
)
=
AVG3
(
D
,
E
,
F
);
DST
(
3
,
3
)
=
AVG3
(
E
,
F
,
G
);
// differs from
vp8
DST
(
3
,
3
)
=
AVG3
(
E
,
F
,
G
);
// differs from
aom
}
}
void
aom_d63f_predictor_4x4_c
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
aom_d63f_predictor_4x4_c
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
...
@@ -398,7 +398,7 @@ void aom_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
...
@@ -398,7 +398,7 @@ void aom_d45_predictor_4x4_c(uint8_t *dst, ptrdiff_t stride,
DST
(
3
,
0
)
=
DST
(
2
,
1
)
=
DST
(
1
,
2
)
=
DST
(
0
,
3
)
=
AVG3
(
D
,
E
,
F
);
DST
(
3
,
0
)
=
DST
(
2
,
1
)
=
DST
(
1
,
2
)
=
DST
(
0
,
3
)
=
AVG3
(
D
,
E
,
F
);
DST
(
3
,
1
)
=
DST
(
2
,
2
)
=
DST
(
1
,
3
)
=
AVG3
(
E
,
F
,
G
);
DST
(
3
,
1
)
=
DST
(
2
,
2
)
=
DST
(
1
,
3
)
=
AVG3
(
E
,
F
,
G
);
DST
(
3
,
2
)
=
DST
(
2
,
3
)
=
AVG3
(
F
,
G
,
H
);
DST
(
3
,
2
)
=
DST
(
2
,
3
)
=
AVG3
(
F
,
G
,
H
);
DST
(
3
,
3
)
=
H
;
// differs from
vp8
DST
(
3
,
3
)
=
H
;
// differs from
aom
}
}
void
aom_d45e_predictor_4x4_c
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
void
aom_d45e_predictor_4x4_c
(
uint8_t
*
dst
,
ptrdiff_t
stride
,
...
...
aom_dsp/mips/loopfilter_filters_dspr2.h
View file @
ec838b76
...
@@ -73,7 +73,7 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
...
@@ -73,7 +73,7 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
hev_r
=
hev_r
&
HWM
;
hev_r
=
hev_r
&
HWM
;
__asm__
__volatile__
(
__asm__
__volatile__
(
/* aom_filter =
vp8
_signed_char_clamp(ps1 - qs1); */
/* aom_filter =
aom
_signed_char_clamp(ps1 - qs1); */
"subq_s.ph %[aom_filter_l], %[vps1_l], %[vqs1_l]
\n\t
"
"subq_s.ph %[aom_filter_l], %[vps1_l], %[vqs1_l]
\n\t
"
"subq_s.ph %[aom_filter_r], %[vps1_r], %[vqs1_r]
\n\t
"
"subq_s.ph %[aom_filter_r], %[vps1_r], %[vqs1_r]
\n\t
"
...
@@ -85,7 +85,7 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
...
@@ -85,7 +85,7 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
"and %[aom_filter_l], %[aom_filter_l], %[hev_l]
\n\t
"
"and %[aom_filter_l], %[aom_filter_l], %[hev_l]
\n\t
"
"and %[aom_filter_r], %[aom_filter_r], %[hev_r]
\n\t
"
"and %[aom_filter_r], %[aom_filter_r], %[hev_r]
\n\t
"
/* aom_filter =
vp8
_signed_char_clamp(aom_filter + 3 * (qs0 - ps0)); */
/* aom_filter =
aom
_signed_char_clamp(aom_filter + 3 * (qs0 - ps0)); */
"addq_s.ph %[aom_filter_l], %[aom_filter_l], %[subr_l]
\n\t
"
"addq_s.ph %[aom_filter_l], %[aom_filter_l], %[subr_l]
\n\t
"
"addq_s.ph %[aom_filter_r], %[aom_filter_r], %[subr_r]
\n\t
"
"addq_s.ph %[aom_filter_r], %[aom_filter_r], %[subr_r]
\n\t
"
"xor %[invhev_l], %[hev_l], %[HWM]
\n\t
"
"xor %[invhev_l], %[hev_l], %[HWM]
\n\t
"
...
@@ -110,11 +110,11 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
...
@@ -110,11 +110,11 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
/* save bottom 3 bits so that we round one side +4 and the other +3 */
/* save bottom 3 bits so that we round one side +4 and the other +3 */
__asm__
__volatile__
(
__asm__
__volatile__
(
/* Filter2 =
vp8
_signed_char_clamp(aom_filter + 3) >>= 3; */
/* Filter2 =
aom
_signed_char_clamp(aom_filter + 3) >>= 3; */
"addq_s.ph %[Filter1_l], %[aom_filter_l], %[t2]
\n\t
"
"addq_s.ph %[Filter1_l], %[aom_filter_l], %[t2]
\n\t
"
"addq_s.ph %[Filter1_r], %[aom_filter_r], %[t2]
\n\t
"
"addq_s.ph %[Filter1_r], %[aom_filter_r], %[t2]
\n\t
"
/* Filter1 =
vp8
_signed_char_clamp(aom_filter + 4) >>= 3; */
/* Filter1 =
aom
_signed_char_clamp(aom_filter + 4) >>= 3; */
"addq_s.ph %[Filter2_l], %[aom_filter_l], %[t1]
\n\t
"
"addq_s.ph %[Filter2_l], %[aom_filter_l], %[t1]
\n\t
"
"addq_s.ph %[Filter2_r], %[aom_filter_r], %[t1]
\n\t
"
"addq_s.ph %[Filter2_r], %[aom_filter_r], %[t1]
\n\t
"
"shra.ph %[Filter1_r], %[Filter1_r], 3
\n\t
"
"shra.ph %[Filter1_r], %[Filter1_r], 3
\n\t
"
...
@@ -126,11 +126,11 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
...
@@ -126,11 +126,11 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
"and %[Filter1_l], %[Filter1_l], %[HWM]
\n\t
"
"and %[Filter1_l], %[Filter1_l], %[HWM]
\n\t
"
"and %[Filter1_r], %[Filter1_r], %[HWM]
\n\t
"
"and %[Filter1_r], %[Filter1_r], %[HWM]
\n\t
"
/* vps0 =
vp8
_signed_char_clamp(ps0 + Filter2); */
/* vps0 =
aom
_signed_char_clamp(ps0 + Filter2); */
"addq_s.ph %[vps0_l], %[vps0_l], %[Filter2_l]
\n\t
"
"addq_s.ph %[vps0_l], %[vps0_l], %[Filter2_l]
\n\t
"
"addq_s.ph %[vps0_r], %[vps0_r], %[Filter2_r]
\n\t
"
"addq_s.ph %[vps0_r], %[vps0_r], %[Filter2_r]
\n\t
"
/* vqs0 =
vp8
_signed_char_clamp(qs0 - Filter1); */
/* vqs0 =
aom
_signed_char_clamp(qs0 - Filter1); */
"subq_s.ph %[vqs0_l], %[vqs0_l], %[Filter1_l]
\n\t
"
"subq_s.ph %[vqs0_l], %[vqs0_l], %[Filter1_l]
\n\t
"
"subq_s.ph %[vqs0_r], %[vqs0_r], %[Filter1_r]
\n\t
"
"subq_s.ph %[vqs0_r], %[vqs0_r], %[Filter1_r]
\n\t
"
...
@@ -150,11 +150,11 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
...
@@ -150,11 +150,11 @@ static INLINE void filter_dspr2(uint32_t mask, uint32_t hev, uint32_t *ps1,
"and %[Filter1_l], %[Filter1_l], %[invhev_l]
\n\t
"
"and %[Filter1_l], %[Filter1_l], %[invhev_l]
\n\t
"
"and %[Filter1_r], %[Filter1_r], %[invhev_r]
\n\t
"
"and %[Filter1_r], %[Filter1_r], %[invhev_r]
\n\t
"
/* vps1 =
vp8
_signed_char_clamp(ps1 + aom_filter); */
/* vps1 =
aom
_signed_char_clamp(ps1 + aom_filter); */
"addq_s.ph %[vps1_l], %[vps1_l], %[Filter1_l]
\n\t
"
"addq_s.ph %[vps1_l], %[vps1_l], %[Filter1_l]
\n\t
"
"addq_s.ph %[vps1_r], %[vps1_r], %[Filter1_r]
\n\t
"
"addq_s.ph %[vps1_r], %[vps1_r], %[Filter1_r]
\n\t
"
/* vqs1 =
vp8
_signed_char_clamp(qs1 - aom_filter); */
/* vqs1 =
aom
_signed_char_clamp(qs1 - aom_filter); */
"subq_s.ph %[vqs1_l], %[vqs1_l], %[Filter1_l]
\n\t
"
"subq_s.ph %[vqs1_l], %[vqs1_l], %[Filter1_l]
\n\t
"
"subq_s.ph %[vqs1_r], %[vqs1_r], %[Filter1_r]
\n\t
"
"subq_s.ph %[vqs1_r], %[vqs1_r], %[Filter1_r]
\n\t
"
...
@@ -240,7 +240,7 @@ static INLINE void filter1_dspr2(uint32_t mask, uint32_t hev, uint32_t ps1,
...
@@ -240,7 +240,7 @@ static INLINE void filter1_dspr2(uint32_t mask, uint32_t hev, uint32_t ps1,
hev_r
=
hev_r
&
HWM
;
hev_r
=
hev_r
&
HWM
;
__asm__
__volatile__
(
__asm__
__volatile__
(
/* aom_filter =
vp8
_signed_char_clamp(ps1 - qs1); */
/* aom_filter =
aom
_signed_char_clamp(ps1 - qs1); */
"subq_s.ph %[aom_filter_l], %[vps1_l], %[vqs1_l]
\n\t
"
"subq_s.ph %[aom_filter_l], %[vps1_l], %[vqs1_l]
\n\t
"
"subq_s.ph %[aom_filter_r], %[vps1_r], %[vqs1_r]
\n\t
"
"subq_s.ph %[aom_filter_r], %[vps1_r], %[vqs1_r]
\n\t
"
...
@@ -252,7 +252,7 @@ static INLINE void filter1_dspr2(uint32_t mask, uint32_t hev, uint32_t ps1,
...
@@ -252,7 +252,7 @@ static INLINE void filter1_dspr2(uint32_t mask, uint32_t hev, uint32_t ps1,
"and %[aom_filter_l], %[aom_filter_l], %[hev_l]
\n\t
"
"and %[aom_filter_l], %[aom_filter_l], %[hev_l]
\n\t
"
"and %[aom_filter_r], %[aom_filter_r], %[hev_r]
\n\t
"
"and %[aom_filter_r], %[aom_filter_r], %[hev_r]
\n\t
"
/* aom_filter =
vp8
_signed_char_clamp(aom_filter + 3 * (qs0 - ps0)); */
/* aom_filter =
aom
_signed_char_clamp(aom_filter + 3 * (qs0 - ps0)); */
"addq_s.ph %[aom_filter_l], %[aom_filter_l], %[subr_l]
\n\t
"
"addq_s.ph %[aom_filter_l], %[aom_filter_l], %[subr_l]
\n\t
"
"addq_s.ph %[aom_filter_r], %[aom_filter_r], %[subr_r]
\n\t
"
"addq_s.ph %[aom_filter_r], %[aom_filter_r], %[subr_r]
\n\t
"
"xor %[invhev_l], %[hev_l], %[HWM]
\n\t
"
"xor %[invhev_l], %[hev_l], %[HWM]
\n\t
"
...
@@ -277,11 +277,11 @@ static INLINE void filter1_dspr2(uint32_t mask, uint32_t hev, uint32_t ps1,
...
@@ -277,11 +277,11 @@ static INLINE void filter1_dspr2(uint32_t mask, uint32_t hev, uint32_t ps1,
/* save bottom 3 bits so that we round one side +4 and the other +3 */
/* save bottom 3 bits so that we round one side +4 and the other +3 */
__asm__
__volatile__
(
__asm__
__volatile__
(