This change (in a new config experiment: universal_hp) removes the
bitstream parsing dependency of the HP MV bit on the ref MV to be
coded. It also cleans up clearing of the HP bit in near/nearestMV,
since HP is always on if it's set in the frame header.
This admittedly doesn't clean up the crap that could be cleaned up,
but that's mostly because I think this needs some careful review;
not so much for coding style, but more from hardware people and from
the codec team on what we/you want. It would also be nice to get some
actual numbers on the real quality impact of this change. If, for
example, hardware people come up and tell us they don't actually care
anymore, we should probably just this code as-is and do nothing (i.e.
discard this patch).
See issue 1036.
Change-Id: Ic9b106f34422aa0f79de0c28125b72d566bd511a
previously any flags added while setting up the toolchain would
override the user selections; environment variables could be treated
similarly
Change-Id: Ibfcc644137d8e579af554d19a38d4020019a7a34
requires r10e or newer:
Android NDK, Revision 10e (May 2015)
...
Other bug fixes:
...
- Fixed .asm support for ABI x86_64.
Change-Id: I51ec9a5f77c982b7412d922e896348a83ae2d7d6
These targets no longer build (PPC support was removed from
libvpx). Remove the dead code and misleading help output.
BUG=https://code.google.com/p/webm/issues/detail?id=997
Change-Id: Ib35614806adeae970f3821da0d8dbcc54ab8d868
vestigial. the code is stale and couldn't be configured directly; there
are better ways to achieve this now
Change-Id: I5a9c62e099215588cd0d7e5ae002dfc77c21a895
This reverts commit a6715a7558.
Removes a duplicate entry; this was previously added by:
14e37cf Add help info for --enable-vp9-highbitdepth
Change-Id: I61408e782232821ef6ed84775b5c79d172ba7f2d
Probably not even the dominant platform the library is being built for.
Add --cpu= option description to help. The option already exists.
Don't allow passing just --cpu as a no-op.
BUG=826
Change-Id: Iaa3f4f693ec78b18927b159b480daafeba0549c0
All the assembly code has been removed, the tests no longer check for
the target, and android and chrome do not use the targets.
Change-Id: I193993f7b2b0bd6478453402f573ce3606e04e8d
The obj_int_extract code is no longer worth maintaining. It creates
significant issues when adapting for different build systems and no
longer offers as significant of a performance benefit due to
improvements in intrinsics.
Source files will remain until the various third-party builds are updated.
The neon fast quantizer has been moved to intrinsics. The armv6 version
has been removed because so few remaining targets require it.
Compilers and processors have improved significantly since the
pack_tokens code was written. The assembly is no longer faster than the
C code.
pack_tokens were the only optimizations for the armv5te targets so the targets
will be removed after the test infrastructure has been updated.
BUG=710
Change-Id: Ic785b167cd9f95eeff31c7c76b7b736c07fb30eb
Incorporates the WRAPLOW macro into the non-highbitdepth transforms
to aid hardware verification between a software C model and an
intended hardware implementation though the use of the configure
options: --enable-experimental --enable-emulate-hardware.
Note that to avoid further discrepancies between the sse/sse2
implementations of the transforms and the C implementation, when the
emulate hardware option is invoked, we also disable sse/sse2/etc.
Also incudes some minor cleanups/renaming etc.
Change-Id: Ib864d8493313927d429cce402982f1c8e45b3287
Adds various high bitdepth transform functions and tests.
Much of the changes are related to using typedefs tran_low_t
and tran_high_t for the final transform cofficients and intermediate
stages of the transform computation respectively rather than fixed
types int16_t/int. When vp9_highbitdepth configure flag is off,
these map tp int16_t/int32_t, but when the flag is on, they map
to int32_t/int64_t to make space for needed extra precision.
Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
Also includes most vpx level high bit-depth functions. However
encode/decode in the highbitdepth profiles will not work until
the rest of the code is in place.
Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
This commit adds a configure time option used to enable strict error
checking in decoder to make sure intermediate stage cofficients of
inverse transforms are within valid range of signed 16 bit integer.
For valid VP9 input streams, intermediate stage coefficients should
always stay within the range of a signed 16 bit integer. Coefficients
can go out of this range for invalid/corrupt VP9 streams. However,
strictly checking this range for every intermediate coefficient can
be a burden for decoder, therefore such validation is only enabled
with configure option --enable-coefficient-range-checking.
Change-Id: I47d47c8c4e48a922c3d223ca59064f51b3f0f5ed
the code tied to CONFIG_MULTIPLE_ARF was deleted in:
2611022 Clean out old CONFIG_MULTIPLE_ARF code.
Change-Id: Ie70bf047cde7e88d4b3996c8ff529e409bbe99e2
This is a practical concern to allow us to fail in a decoder instance
if the size of a file is bigger than we can reasonably handle.
Change-Id: I0446b5502b1f8a48408107648ff2a8d187dca393
Add a conditional compile flag for this feature. Also add a
switch to enable the encoder to use these statistics in the
second pass. Currently, the switch is turned off.
Change-Id: Ia1c858c35ec90e36f19f5cffe156b97ddaa04922
Really just armv7. This is a convenience target intended to make iOS
development with libvpx easier. Xcode projects with default settings
will fail to build when a framework lacks armv7s support when targetting
iOS7.
Change-Id: I7eb80d52eec25501febc0d2c3c0b4ed964b8ed5b
disabled by default, enable with:
--enable-experimental --enable-spatial-svc
this disables vp9_spatial_svc_encoder and svc_test, further work is
needed to remove internal lib references
Change-Id: I6a487ecbf07eb98843a99d96e17f08f960b63088
+ the remnants in the build system & README
the documentation that required php was removed in:
50fa585 Removing examples code generation and making them static.
Change-Id: Ibf00dca9ab2715fc21e8de358807b63d1445662c
Temporary revert.
Problems with conflicting definitions of type off_t
in MSVC builds that need resolving.
c:\Program Files (x86)\
Microsoft Visual Studio 9.0\VC\include\wchar.h(479) :
"error C2371: 'off_t' : redefinition; different basic types
c:\on2experimental\libvpx\tools_common.h(26) :
see declaration of 'off_t'"
This reverts commit 92a4c59112.
Change-Id: I535e40a18842a92e3e6e0b29e5fba66313010803
This reverts commit 89025585cd.
This check breaks BSD builds and isn't useful through the configure
process. The README describes the build environment requirements (GNU
make).
Change-Id: I25f8a9c1640909412ab405dbd09a1c4d93e5a511
Adding a --(enable|disable)-webm-io flag to control WebM container input and
output support. For now, enabling WebM IO by default only when there is a C++
compiler. Doing so because eventually we will move WebM IO to libwebm and it
is built using C++.
Change-Id: I210ac36c23528e382ed41d3c4322291720481492
translates to TreatWarningAsError (/WX)
setting this via the CL environment variable is not possible due to the
/WX- default which is used on the command line
Change-Id: I0b42a9d3ca9eba6af82c25b8e434baa2fcb00156
prevents out of tree build failures when the source tree has already
been configured; modeled after a similar check in autoconf
Change-Id: I627eb7243576f4d753141dfcb4ed4e34544d03a7
When building with new versions of Clang we encounter some issues. Work
around them by adding -fno-strict-aliasing when we detect Clang.
https://code.google.com/p/webm/issues/detail?id=603
Change-Id: I8e945a18a7215bcc627e7a1ee110078413259cc7
In configure when internal-stats is enabled, because postprocessing
code is needed for computing stats for enabling internal-stats
Change-Id: I3601dc5a4aa65feb99465452486a21e75eb62c1f
+ disable() -> disable_feature() for balance
this avoids shadowing the bash builtin 'enable' allowing the scripts to
be linted with checkbashisms
Change-Id: Ia11cf86c92ec25bd14e69427b0ac0a9a61a5f7a5
The conversion was done with the help of the checkbashisms script
and https://wiki.ubuntu.com/DashAsBinSh .
Change-Id: Id64ecefb35c8d72302f343cd2ec442e7ef989d47
Enable use_x86inc as a commandline option. Fix Bug with sse2 when
x86inc is disabled. Adds Sad asm protection to x86inc protection
Change-Id: Iee0f9dd235ea10e8ace512eb362ba9bebe8c9df6
Support enabling it or disabling it. Moved read out to configure.sh
so that its done once instead of in make and in config.
Change-Id: I73a9190cf31de9f03e8a577f478fa522f8c01c8b
Chromium does not support 32bit builds for Mac which use x86inc.asm.
Make the files which include it work if 64bit or not PIC enabled
starting with vp9_copy_sse2.asm
Consolidate these targets in vp9_rtcd_defs.sh
Change-Id: If18f0b957a611efd085a3ee7d245cf1eb91e8248
currently threading is internal to libvpx so thread safety is unneeded
in libgtest -- visual studio builds already operate in this way as they
do not have pthread.h available by default.
this removes an unconditional link to libpthread using $(extralibs)
should libvpx require it.
Change-Id: I2f278b711f533d0f4d8a6c896833e3e2237d1f45
This reverts commit 90a9900abb
Seems to break the Mac build:
src/include/gtest/internal/gtest-port.h:1208:: pthread_mutex_lock(&mutex_)failed with error 22
Abort trap: 6
Change-Id: Icbe31161d7c27f1b0a28d33409e7712430bbf0ae
currently threading is internal to libvpx so thread safety is unneeded
in libgtest -- visual studio builds already operate in this way as they
do not have pthread.h available by default.
this removes an unconditional link to libpthread using $(extralibs)
should libvpx require it.
Change-Id: Ieae1d693406653a54b54fba818c598836797d33b
This version of the loop filter supports non-4:2:0 subsampling and
a fourth plane, as well as changing the filtering order to be more
friendly to hardware implementations.
The filters are applied first to all vertical edges within the
64x64 SB, followed by the top horizontal edge and any internal
horizontal edges. Since filtering is applied on each 4x4 edge
serially, a dependency is created from filtering one block edge
to the next. It would be possible to remove this depencnecy by
building all filtering decisions from the unfiltered
reconstruction data.
Change-Id: I08f3e9683eb7bded8a76651cbc50fc0dfdd05fa7
This patch removes the implicit segmentation
experiment from the code base as the benefits
were still unproven as of the bitstream deadline.
Change-Id: I273b99d8d621d1853eac4182f97982cb5957247e
This patch changes the coefficient tree to move the EOB to below
the ZERO node in order to save number of bool decodes.
The advantages of moving EOB one step down as opposed to two steps down
in the other parallel patch are: 1. The coef modeling based on
the One-node becomes independent of the tree structure above it, and
2. Fewer conext/counter increases are needed.
The drawback is that the potential savings in bool decodes will be
less, but assuming that 0s are much more predominant than 1's the
potential savings is still likely to be substantial.
Results on derf300: -0.237%
Change-Id: Ie784be13dc98291306b338e8228703a4c2ea2242
Move 4x4/4x8/8x4 partition coding out of experimental list.
This commit fixed the unit test failure issues. It also resolved
the merge conflicts between 4x4 block level partition and iterative
motion search for comp_inter_inter.
Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58