Commit f883b42c authored by Yaowu Xu's avatar Yaowu Xu

Port renaming changes from AOMedia

Cherry-Picked the following commits:
0defd8f2 Changed "WebM" to "AOMedia" & "webm" to "aomedia"
54e66767 Replace "VPx" by "AVx"
5082a369 Change "Vpx" to "Avx"
7df44f17 Replace "Vp9" w/ "Av1"
967f722f Remove kVp9CodecId
828f30ce Change "Vp8" to "AOM"
030b5ffc AUTHORS regenerated
2524caee Add ref-mv experimental flag
016762be Change copyright notice to AOMedia form
81e55269 Replace vp9 w/ av1
9b94565b Add missing files
fa8ca9f2 Change "vp9" to "av1"
ec838b76  Convert "vp8" to "aom"
80edfa01 Change "VP9" to "AV1"
d1a11fb9 Change "vp8" to "aom"
7b582513 Point to WebM test data
dd1a5c8d Replace "VP8" with "AOM"
ff00fc0f Change "VPX" to "AOM"
01dee0bb Change "vp10" to "av1" in source code
cebe6f0c Convert "vpx" to "aom"
17b05679 rename vp10*.mk to av1_*.mk
fe5f8a8a rename files vp10_* to av1_*

Change-Id: I6fc3d18eb11fc171e46140c836ad5339cf6c9419
parent c27fc14b
......@@ -38,9 +38,9 @@
/examples/twopass_encoder
/examples/vp8_multi_resolution_encoder
/examples/vp[8x]cx_set_ref
/examples/vp9_spatial_scalable_encoder
/examples/vpx_temporal_scalable_patterns
/examples/vpx_temporal_svc_encoder
/examples/av1_spatial_scalable_encoder
/examples/aom_temporal_scalable_patterns
/examples/aom_temporal_svc_encoder
/ivfdec
/ivfdec.dox
/ivfenc
......@@ -49,18 +49,18 @@
/libaom.ver
/samples.dox
/test_intra_pred_speed
/test_libvpx
/test_libaom
/vp8_api1_migration.dox
/vp[89x]_rtcd.h
/vp10_rtcd.h
/vpx.pc
/vpx_config.c
/vpx_config.h
/vpx_dsp_rtcd.h
/vpx_scale_rtcd.h
/vpx_version.h
/vpxdec
/vpxdec.dox
/vpxenc
/vpxenc.dox
/av1_rtcd.h
/aom.pc
/aom_config.c
/aom_config.h
/aom_dsp_rtcd.h
/aom_scale_rtcd.h
/aom_version.h
/aomdec
/aomdec.dox
/aomenc
/aomenc.dox
TAGS
......@@ -56,13 +56,16 @@ James Zern <jzern@google.com>
Jan Gerber <j@mailb.org>
Jan Kratochvil <jan.kratochvil@redhat.com>
Janne Salonen <jsalonen@google.com>
Jean-Marc Valin <jmvalin@jmvalin.ca>
Jeff Faust <jfaust@google.com>
Jeff Muizelaar <jmuizelaar@mozilla.com>
Jeff Petkau <jpet@chromium.org>
Jia Jia <jia.jia@linaro.org>
Jian Zhou <zhoujian@google.com>
Jim Bankoski <jimbankoski@google.com>
Jingning Han <jingning@google.com>
Joey Parrish <joeyparrish@google.com>
Johann Koenig <johannkoenig@chromium.org>
Johann Koenig <johannkoenig@google.com>
John Koleszar <jkoleszar@google.com>
Johnny Klonaris <google@jawknee.com>
......@@ -89,6 +92,7 @@ Mike Hommey <mhommey@mozilla.com>
Mikhal Shemer <mikhal@google.com>
Minghai Shang <minghai@google.com>
Morton Jonuschat <yabawock@gmail.com>
Nathan E. Egge <negge@dgql.org>
Nico Weber <thakis@chromium.org>
Parag Salasakar <img.mips1@gmail.com>
Pascal Massimino <pascal.massimino@gmail.com>
......@@ -97,6 +101,7 @@ Paul Wilkins <paulwilkins@google.com>
Pavol Rusnak <stick@gk2.sk>
Paweł Hajdan <phajdan@google.com>
Pengchong Jin <pengchong@google.com>
Peter de Rivaz <peter.derivaz@argondesign.com>
Peter de Rivaz <peter.derivaz@gmail.com>
Philip Jägenstedt <philipj@opera.com>
Priit Laes <plaes@plaes.org>
......@@ -107,13 +112,16 @@ Rob Bradford <rob@linux.intel.com>
Ronald S. Bultje <rsbultje@gmail.com>
Rui Ueyama <ruiu@google.com>
Sami Pietilä <samipietila@google.com>
Sasi Inguva <isasi@google.com>
Scott Graham <scottmg@chromium.org>
Scott LaVarnway <slavarnway@google.com>
Sean McGovern <gseanmcg@gmail.com>
Sergey Kolomenkin <kolomenkin@gmail.com>
Sergey Ulanov <sergeyu@chromium.org>
Shimon Doodkin <helpmepro1@gmail.com>
Shunyao Li <shunyaoli@google.com>
Stefan Holmer <holmer@google.com>
Steinar Midtskogen <stemidts@cisco.com>
Suman Sunkara <sunkaras@google.com>
Taekhyun Kim <takim@nvidia.com>
Takanori MATSUURA <t.matsuu@gmail.com>
......@@ -121,9 +129,14 @@ Tamar Levy <tamar.levy@intel.com>
Tao Bai <michaelbai@chromium.org>
Tero Rintaluoma <teror@google.com>
Thijs Vermeir <thijsvermeir@gmail.com>
Thomas Daede <tdaede@mozilla.com>
Thomas Davies <thdavies@cisco.com>
Thomas <thdavies@cisco.com>
Tim Kopp <tkopp@google.com>
Timothy B. Terriberry <tterribe@xiph.org>
Tom Finegan <tomfinegan@google.com>
Tristan Matthews <le.businessman@gmail.com>
Tristan Matthews <tmatth@videolan.org>
Vignesh Venkatasubramanian <vigneshv@google.com>
Yaowu Xu <yaowu@google.com>
Yongzhe Wang <yongzhe@google.com>
......
Next Release
- Incompatible changes:
The VP9 encoder's default keyframe interval changed to 128 from 9999.
The AV1 encoder's default keyframe interval changed to 128 from 9999.
2015-11-09 v1.5.0 "Javan Whistling Duck"
This release improves upon the VP9 encoder and speeds up the encoding and
This release improves upon the AV1 encoder and speeds up the encoding and
decoding processes.
- Upgrading:
This release is ABI incompatible with 1.4.0. It drops deprecated VP8
controls and adds a variety of VP9 controls for testing.
controls and adds a variety of AV1 controls for testing.
The vpxenc utility now prefers VP9 by default.
The aomenc utility now prefers AV1 by default.
- Enhancements:
Faster VP9 encoding and decoding
Smaller library size by combining functions used by VP8 and VP9
Faster AV1 encoding and decoding
Smaller library size by combining functions used by VP8 and AV1
- Bug Fixes:
A variety of fuzzing issues
2015-04-03 v1.4.0 "Indian Runner Duck"
This release includes significant improvements to the VP9 codec.
This release includes significant improvements to the AV1 codec.
- Upgrading:
This release is ABI incompatible with 1.3.0. It drops the compatibility
layer, requiring VPX_IMG_FMT_* instead of IMG_FMT_*, and adds several codec
controls for VP9.
controls for AV1.
- Enhancements:
Faster VP9 encoding and decoding
Multithreaded VP9 decoding (tile and frame-based)
Multithreaded VP9 encoding - on by default
YUV 4:2:2 and 4:4:4 support in VP9
10 and 12bit support in VP9
Faster AV1 encoding and decoding
Multithreaded AV1 decoding (tile and frame-based)
Multithreaded AV1 encoding - on by default
YUV 4:2:2 and 4:4:4 support in AV1
10 and 12bit support in AV1
64bit ARM support by replacing ARM assembly with intrinsics
- Bug Fixes:
Fixes a VP9 bitstream issue in Profile 1. This only affected non-YUV 4:2:0
Fixes a AV1 bitstream issue in Profile 1. This only affected non-YUV 4:2:0
files.
- Known Issues:
Frame Parallel decoding fails for segmented and non-420 files.
2013-11-15 v1.3.0 "Forest"
This release introduces the VP9 codec in a backward-compatible way.
This release introduces the AV1 codec in a backward-compatible way.
All existing users of VP8 can continue to use the library without
modification. However, some VP8 options do not map to VP9 in the same manner.
modification. However, some VP8 options do not map to AV1 in the same manner.
The VP9 encoder in this release is not feature complete. Users interested in
The AV1 encoder in this release is not feature complete. Users interested in
the encoder are advised to use the git master branch and discuss issues on
libvpx mailing lists.
......@@ -68,11 +68,11 @@ Next Release
configure: support mingw-w64
configure: support hardfloat armv7 CHOSTS
configure: add support for android x86
Add estimated completion time to vpxenc
Don't exit on decode errors in vpxenc
vpxenc: support scaling prior to encoding
vpxdec: support scaling output
vpxenc: improve progress indicators with --skip
Add estimated completion time to aomenc
Don't exit on decode errors in aomenc
aomenc: support scaling prior to encoding
aomdec: support scaling output
aomenc: improve progress indicators with --skip
msvs: Don't link to winmm.lib
Add a new script for producing vcxproj files
Produce Visual Studio 10 and 11 project files
......@@ -82,7 +82,7 @@ Next Release
Add encoding option --static-thresh
- Speed:
Miscellaneous speed optimizations for VP8 and VP9.
Miscellaneous speed optimizations for VP8 and AV1.
- Quality:
In general, quality is consistent with the Eider release.
......@@ -104,7 +104,7 @@ Next Release
- Enhancements:
VP8 optimizations for MIPS dspr2
vpxenc: add -quiet option
aomenc: add -quiet option
- Speed:
Encoder and decoder speed is consistent with the Eider release.
......@@ -159,17 +159,17 @@ Next Release
OS/2 support
SunCC support
Changing resolution with vpx_codec_enc_config_set() is now
Changing resolution with aom_codec_enc_config_set() is now
supported. Previously, reinitializing the codec was required to
change the input resolution.
The vpxenc application has initial support for producing multiple
The aomenc application has initial support for producing multiple
encodes from the same input in one call. Resizing is not yet
supported, but varying other codec parameters is. Use -- to
delineate output streams. Options persist from one stream to the
next.
Also, the vpxenc application will now use a keyframe interval of
Also, the aomenc application will now use a keyframe interval of
5 seconds by default. Use the --kf-max-dist option to override.
- Speed:
......@@ -206,7 +206,7 @@ Next Release
enhancement (MFQE) in sections of the frame where there is motion.
(#392)
Fixed corruption issues when vpx_codec_enc_config_set() was called
Fixed corruption issues when aom_codec_enc_config_set() was called
with spatial resampling enabled.
Fixed a decoder error introduced in Duclair where the segmentation
......@@ -300,12 +300,12 @@ Next Release
notes in this document for that release.
- Enhancements:
Stereo 3D format support for vpxenc
Stereo 3D format support for aomenc
Runtime detection of available processor cores.
Allow specifying --end-usage by enum name
vpxdec: test for frame corruption
vpxenc: add quantizer histogram display
vpxenc: add rate histogram display
aomdec: test for frame corruption
aomenc: add quantizer histogram display
aomenc: add rate histogram display
Set VPX_FRAME_IS_DROPPABLE
update configure for ios sdk 4.3
Avoid text relocations in ARM vp8 decoder
......@@ -370,7 +370,7 @@ Next Release
Fix semaphore emulation, spin-wait intrinsics on Windows
Fix build with xcode4 and simplify GLOBAL.
Mark ARM asm objects as allowing a non-executable stack.
Fix vpxenc encoding incorrect webm file header on big endian
Fix aomenc encoding incorrect webm file header on big endian
2011-03-07 v0.9.6 "Bali"
......@@ -382,7 +382,7 @@ Next Release
document for that release.
- Enhancements:
vpxenc --psnr shows a summary when encode completes
aomenc --psnr shows a summary when encode completes
--tune=ssim option to enable activity masking
improved postproc visualizations for development
updated support for Apple iOS to SDK 4.2
......@@ -455,9 +455,9 @@ Next Release
- Upgrading:
This release incorporates backwards-incompatible changes to the
ivfenc and ivfdec tools. These tools are now called vpxenc and vpxdec.
ivfenc and ivfdec tools. These tools are now called aomenc and aomdec.
vpxdec
aomdec
* the -q (quiet) option has been removed, and replaced with
-v (verbose). the output is quiet by default. Use -v to see
the version number of the binary.
......@@ -470,13 +470,13 @@ Next Release
options must be specified.
$ ivfdec -o OUTPUT INPUT
$ vpxdec --i420 -o OUTPUT INPUT
$ aomdec --i420 -o OUTPUT INPUT
* If an output file is not specified, the default is to write
Y4M to stdout. This makes piping more natural.
$ ivfdec -y -o - INPUT | ...
$ vpxdec INPUT | ...
$ aomdec INPUT | ...
* The output file has additional flexibility for formatting the
filename. It supports escape characters for constructing a
......@@ -484,33 +484,33 @@ Next Release
replaces the -p option. To get the equivalent:
$ ivfdec -p frame INPUT
$ vpxdec --i420 -o frame-%wx%h-%4.i420 INPUT
$ aomdec --i420 -o frame-%wx%h-%4.i420 INPUT
vpxenc
aomenc
* The output file must be specified with -o, rather than as the
last argument.
$ ivfenc <options> INPUT OUTPUT
$ vpxenc <options> -o OUTPUT INPUT
$ aomenc <options> -o OUTPUT INPUT
* The output defaults to webm. To get IVF output, use the --ivf
option.
$ ivfenc <options> INPUT OUTPUT.ivf
$ vpxenc <options> -o OUTPUT.ivf --ivf INPUT
$ aomenc <options> -o OUTPUT.ivf --ivf INPUT
- Enhancements:
ivfenc and ivfdec have been renamed to vpxenc, vpxdec.
vpxdec supports .webm input
vpxdec writes .y4m by default
vpxenc writes .webm output by default
vpxenc --psnr now shows the average/overall PSNR at the end
ivfenc and ivfdec have been renamed to aomenc, aomdec.
aomdec supports .webm input
aomdec writes .y4m by default
aomenc writes .webm output by default
aomenc --psnr now shows the average/overall PSNR at the end
ARM platforms now support runtime cpu detection
vpxdec visualizations added for motion vectors, block modes, references
vpxdec now silent by default
vpxdec --progress shows frame-by-frame timing information
vpxenc supports the distinction between --fps and --timebase
aomdec visualizations added for motion vectors, block modes, references
aomdec now silent by default
aomdec --progress shows frame-by-frame timing information
aomenc supports the distinction between --fps and --timebase
NASM is now a supported assembler
configure: enable PIC for shared libs by default
configure: add --enable-small
......
README - 23 March 2015
Welcome to the WebM VP8/VP9 Codec SDK!
Welcome to the WebM VP8/AV1 Codec SDK!
COMPILING THE APPLICATIONS/LIBRARIES:
The build system used is similar to autotools. Building generally consists of
......@@ -119,7 +119,7 @@ COMPILING THE APPLICATIONS/LIBRARIES:
This defaults to config.log. This should give a good indication of what went
wrong. If not, contact us for support.
VP8/VP9 TEST VECTORS:
VP8/AV1 TEST VECTORS:
The test vectors can be downloaded and verified using the build system after
running configure. To specify an alternate directory the
LIBVPX_TEST_DATA_PATH environment variable can be used.
......
......@@ -8,9 +8,9 @@
* be found in the AUTHORS file in the root of the source tree.
*/
/*!\defgroup vp8 VP8
/*!\defgroup aom AOM
* \ingroup codecs
* VP8 is vpx'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
* prediction error signal and context dependent entropy coding techniques
* based on arithmetic principles. It features:
......@@ -25,13 +25,13 @@
* @{
*/
/*!\file
* \brief Provides controls common to both the VP8 encoder and decoder.
* \brief Provides controls common to both the AOM encoder and decoder.
*/
#ifndef VPX_VP8_H_
#define VPX_VP8_H_
#ifndef AOM_AOM_H_
#define AOM_AOM_H_
#include "./vpx_codec.h"
#include "./vpx_image.h"
#include "./aom_codec.h"
#include "./aom_image.h"
#ifdef __cplusplus
extern "C" {
......@@ -39,121 +39,121 @@ extern "C" {
/*!\brief Control functions
*
* The set of macros define the control functions of VP8 interface
* The set of macros define the control functions of AOM interface
*/
enum vp8_com_control_id {
enum aom_com_control_id {
/*!\brief pass in an external frame into decoder to be used as reference frame
*/
VP8_SET_REFERENCE = 1,
VP8_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */
VP8_SET_POSTPROC = 3, /**< set the decoder's post processing settings */
VP8_SET_DBG_COLOR_REF_FRAME =
AOM_SET_REFERENCE = 1,
AOM_COPY_REFERENCE = 2, /**< get a copy of reference frame from the decoder */
AOM_SET_POSTPROC = 3, /**< set the decoder's post processing settings */
AOM_SET_DBG_COLOR_REF_FRAME =
4, /**< set the reference frames to color for each macroblock */
VP8_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to color */
VP8_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */
VP8_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to draw */
AOM_SET_DBG_COLOR_MB_MODES = 5, /**< set which macro block modes to color */
AOM_SET_DBG_COLOR_B_MODES = 6, /**< set which blocks modes to color */
AOM_SET_DBG_DISPLAY_MV = 7, /**< set which motion vector modes to draw */
/* TODO(jkoleszar): The encoder incorrectly reuses some of these values (5+)
* for its control ids. These should be migrated to something like the
* VP8_DECODER_CTRL_ID_START range next time we're ready to break the ABI.
* AOM_DECODER_CTRL_ID_START range next time we're ready to break the ABI.
*/
VP9_GET_REFERENCE = 128, /**< get a pointer to a reference frame */
VP8_COMMON_CTRL_ID_MAX,
AV1_GET_REFERENCE = 128, /**< get a pointer to a reference frame */
AOM_COMMON_CTRL_ID_MAX,
VP10_GET_NEW_FRAME_IMAGE = 192, /**< get a pointer to the new frame */
AV1_GET_NEW_FRAME_IMAGE = 192, /**< get a pointer to the new frame */
VP8_DECODER_CTRL_ID_START = 256
AOM_DECODER_CTRL_ID_START = 256
};
/*!\brief post process flags
*
* The set of macros define VP8 decoder post processing flags
* The set of macros define AOM decoder post processing flags
*/
enum vp8_postproc_level {
VP8_NOFILTERING = 0,
VP8_DEBLOCK = 1 << 0,
VP8_DEMACROBLOCK = 1 << 1,
VP8_ADDNOISE = 1 << 2,
VP8_DEBUG_TXT_FRAME_INFO = 1 << 3, /**< print frame information */
VP8_DEBUG_TXT_MBLK_MODES =
enum aom_postproc_level {
AOM_NOFILTERING = 0,
AOM_DEBLOCK = 1 << 0,