Commit Graph

1842 Commits

Author SHA1 Message Date
Yaowu Xu
db92356577 change to prevent computatio of log(0.0)
Change-Id: I5759f309f94a2b5c1297e6db3735c52986d3ecb2
2013-09-23 17:19:12 -07:00
Yaowu Xu
fbb62c6d2b fix integer overflow in vp8
Change-Id: I62550a7a883115f3ce878710cf3bb039bea54390
2013-09-23 17:15:55 -07:00
Yaowu Xu
6a7a4ba753 renamed vp8_yv12_copy_y to vpx_yv12_copy_y
Becuase the routine is used by both vp8 and vp9

Change-Id: I2d35b287b5bc2394865d931a27da61f4ce7edeeb
2013-08-09 07:37:08 -07:00
James Zern
5f30a0c687 VP[89]_COMMON: remove golden/altref frame counts
these are only used in the encoder.
frames_since_golden / frames_till_alt_ref_frame -> VP[89]_COMP

Change-Id: Ie14a6f46987bced685ddb449b85dc261caba6dfe
2013-07-18 14:09:21 -07:00
James Zern
9581eb6e8a use consistent framerate naming
s/frame_rate/framerate/g

Change-Id: I6fc3e088e419c5f46e3a9390dd8a2cad2677a2fc
2013-07-16 14:12:47 -07:00
James Zern
4fc6c88e9c yv12config: remove YUV_TYPE
this was never fleshed out in the context of VP8, for which it was
added. for VP9 it has no meaning.

Change-Id: Iba2ecc026d9e947067b96690245d337e51e26eff
2013-07-12 15:25:48 -07:00
Frank Galligan
4524548f80 Fix compile warnings on windows.
Change-Id: If74bc6110016bc75ea3883ab136fbbac88f6a913
2013-06-12 11:34:15 -07:00
John Koleszar
d0ed677a34 Merge branch 'master' into experimental
Change-Id: Ie648398b82f7311143709f55c0e30ba452f50eff
2013-06-11 16:29:28 -07:00
Yaowu Xu
8b3ad75266 Specify mv neighborhood for block larger than 8x8
The new neighorbhood adapts to the shape and size of the block type
cif +.16%
stdhd +.13%

Change-Id: I978db58278e9ae3fbd6726ef831bdfc5f5f37d02
2013-06-07 08:59:48 -07:00
Scott LaVarnway
ec34afd1b0 Fixed crash in VP8/CQTest
If the codec was configured with --enable-internal-stats,
a seg fault would occur.  This patch fixes the problem.

Change-Id: Id10a577973d185e93037c59e5b36bebdded327da
2013-06-05 12:04:19 -07:00
Marco Paniconi
b71542dc13 Condition the zbin_boost increase to 1 layer.
Condition the existing zbin boost logic for gf/altf mode to temporal layers==1,
since gf/altf reference frames are used in temporal layers as reference frames.

Change-Id: I618bb20730e5f193e078215d06f54997c363dd7b
2013-06-04 14:19:52 -07:00
Johann
4d5f1955de Remove type from vmvn
datatype is optional for the instruction but clang refuses it.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/CIHIJIHC.html

It is still required when using an immediate.
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0489c/CIHGGEEB.html

Change-Id: I0fae956c8c0fa3f97578ce80abea247f7fc88705
2013-05-23 13:02:44 -07:00
Marco Paniconi
fb48bbf5c6 Fixes for run-time change in temporal layers.
Use a separate counter for resetting the pattern upon
a change in temporal layers, and set/initialize the
layer context parameters for the new temporal layer state.

Also moved the setting of layer configuation in init_config()
to a separate function.

Change-Id: Ic7fc023a1e5490020509e107004645098f4c00f0
2013-05-21 09:04:14 -07:00
Johann
32a5c52856 Merge branch 'master' into experimental
Conflicts:
	vp9/common/vp9_findnearmv.c
	vp9/common/vp9_rtcd_defs.sh
	vp9/decoder/vp9_decodframe.c
	vp9/decoder/x86/vp9_dequantize_sse2.c
	vp9/encoder/vp9_rdopt.c
	vp9/vp9_common.mk

Resolve file name changes in favor of master. Resolve rdopt changes in
favor of experimental, preserving the newer experiments.

Change-Id: If51ed8f457470281c7b20a5c1a2f4ce2cf76c20f
2013-04-26 12:57:10 -07:00
Johann
fe74c4286a Rename quantize_sse2_intrinsics.c
The only reason for the _intrinsics part of the file name was for the
interim period where only one of the functions was redone and the base
file name was the same.

Change-Id: I7851154f1633d48821bee885b1cadb2148e65a23
2013-04-24 09:08:56 -07:00
Scott LaVarnway
f71e5246f2 Merge "Removed shadow warnings : postproc.c decodframe.c threading.c" 2013-04-19 07:19:14 -07:00
Scott LaVarnway
3971fab3e5 Merge "Removed shadow warnings : mcomp.c rdopt.c" 2013-04-19 07:16:34 -07:00
Scott LaVarnway
55dc089522 Merge "Removed shadow warnings : bitstream.c encodeframe.c onyx_if.c" 2013-04-19 07:08:59 -07:00
Johann
fc37c2198d Merge "Include RTCD header in encodeframe.c" 2013-04-17 10:14:30 -07:00
John Koleszar
7f7d1357a2 Merge branch 'experimental' into master
VP9 preview bitstream 2, commit '868ecb55a1528ca3f19286e7d1551572bf89b642'

Conflicts:
	vp9/vp9_common.mk

Change-Id: I3f0f6e692c987ff24f98ceafbb86cb9cf64ad8d3
2013-04-16 06:49:46 -07:00
Johann
6c3f06a4d7 Include RTCD header in encodeframe.c
The file uses functions defined in vp8_rtcd.h but did not include the
header.

Change-Id: I110196ddc9181e533be1fe656e21c1791cabe226
2013-04-15 12:23:41 -07:00
Adrian Grange
c2876cf0fd Initial addition of multiple ARF frames
This is work-in-progress, it implements multiple ARF
encoding behind an experimental flag.

It adds the ability to insert multiple ARF frames into a
single ARF group. This patch implements the reordering
of the coded frames, and implements a fixed-length coding
pattern. It applies a fixed quantizer strategy based on
where the frame is in the coding sequence.

Further work to modify the rate control strategy is
ongoing and will be submitted via a set of future patches.

In this first step, each ARF group is recursively
bisected and an ARF frame added at that position in the
sequence. The recursion continues until ARF frames are
within MIN_GF_INTERVAL frames.

The code sits behind the "multiple-arf" experimental
flag ("CONFIG_MULTIPLE_ARF"). The experimental flag
"oneshotq" ("CONFIG_ONESHOTQ") also needs to be enabled
for this patch to work correctly.

Change-Id: Ie473b05ebb43ac473c0cfb659b2b8042823085e2
2013-04-15 09:11:39 -07:00
Marco Paniconi
282c963923 Fix for multi-res-encoding:
Use local variable for setting the improved prediction mode.
cpi->sf.improved_mv_pred is set/fixed at the frame level
and should not be changed inside pick_inter_mode.

Change-Id: Ie28d9171ac000e631af0e30204970e3d4fff3078
2013-04-11 21:56:23 -07:00
John Koleszar
771fc832f3 Merge branch 'master' into experimental
Pick up VP8 encryption, quantization changes, and some fixes to vpxenc

Conflicts:
	test/decode_test_driver.cc
	test/decode_test_driver.h
	test/encode_test_driver.cc
	vp8/vp8cx.mk
	vpxdec.c
	vpxenc.c

Change-Id: I9fbcc64808ead47e22f1f22501965cc7f0c4791c
2013-03-27 10:46:19 -07:00
Shimon Doodkin
907016fdc7 Remove gcc-specific __label__
Use unique names and ditch the local label declaration. Visual Studio
does not support it.

https://code.google.com/p/webm/issues/detail?id=561

Change-Id: Ica643cf5abb56ee6156371f5bf73fdeb58014422
2013-03-22 10:08:19 -07:00
Scott LaVarnway
699196dc3d Removed mode_chosen_counts
This eliminates a tsan warning.

Change-Id: I204d109b12adb4e347762e63d12859244f28d1a9
2013-03-20 14:41:24 -07:00
Ronald S. Bultje
65d22825e2 ENTROPY_STATS -> VP8_ENTROPY_STATS in vp8/.
Change-Id: I0027483e47900de84394de47c3273cc8292e6119
2013-03-18 15:39:04 -07:00
Scott LaVarnway
ae64e7b408 Removed shadow warnings : postproc.c decodframe.c threading.c
and denoising.c
Adding -Wshadow to CFLAGS generated a bunch of warnings.  This patch
removes these warnings.

Change-Id: I434a9f4bfac9ad4ab7d2a67a35ef21e6636280da
2013-03-14 14:45:23 -07:00
Scott LaVarnway
5d79720d57 Removed shadow warnings : mcomp.c rdopt.c
Adding -Wshadow to CFLAGS generated a bunch of warnings.  This patch
removes these warnings.

Change-Id: Ib498de4b8652051d257cf86dcb40d2968a5013ae
2013-03-14 14:23:13 -07:00
Scott LaVarnway
96e41cb461 Removed shadow warnings : bitstream.c encodeframe.c onyx_if.c
ratectrl.c and quantize.c

Adding -Wshadow to CFLAGS generated a bunch of warnings.  This patch
removes these warnings.

Change-Id: I8c8faa9fde57c1c49662d332a90bc8d9a0f4a2ce
2013-03-14 09:49:38 -07:00
James Zern
215084b31c vp8: clamp probability values
fixes out of bounds reads on vp8_prob_cost table.
present since:
217591f Added rate-targeted temporal scalability
v0.9.7-p1-71-g217591f

Change-Id: I9194b773098a381f1e3f67bd3307f05df27c24fd
2013-03-05 16:18:24 -08:00
Ronald S. Bultje
f60f6db716 Rename quantize_sse2.c to quantize_sse2_intrinsics.c to avoid collision.
Change-Id: I5637d491eb6a9b7633f72e03fd9df72131eeb121
2013-03-04 12:25:01 -08:00
James Zern
08348d9cab prefix vp8 asm_{com,dec,enc}_offsets files
make them symmetrical with the generated output and their vp9
counterparts

Change-Id: I72cc97c4d33d713dff620a6d7cc25955266216fc
2013-03-02 14:45:40 -08:00
Johann
403145032d Merge "Use intrinsics for sse2 regular quantize" 2013-03-01 17:20:26 -08:00
Johann
eca59cad0b Use intrinsics for sse2 regular quantize
Remove dependency of this function on asm_offsets. ssse3/sse4 next.

Change quant_shift calculation so it be done using SIMD. Pre-calculate
as much as possible to simplify EOB selection.

Take advantage of qcoeff being zero'd by tying the if statements
together.

Speed parity with previous implementation with gcc x86_64 linux

Change-Id: Ife97556a1eca3a74b09def1a3d04084974dff1fb
2013-02-28 18:06:15 -08:00
James Zern
a07bed2b2b firstpass.c: correct casting around gf_group_bits
gf_group_bits is int64_t remove casts to int.

Change-Id: I3b4225905041fac9af9fdfcbcb6f1c357ea4b593
2013-02-28 15:45:29 -08:00
Johann
67978d1380 Merge "vp8 fast quantizer with intrinsics" 2013-02-28 11:32:03 -08:00
James Zern
3b79000122 Merge "vp8/encoder/mcomp.c: remove an unused variable" 2013-02-27 11:33:18 -08:00
Jan Kratochvil
82ed3f9a41 Fix --as=nasm compatibility for new asm code.
s/movd/movq/

Change-Id: Id1a56de91551f8dc796f14f1056c565dfc1ba626
2013-02-27 09:55:38 -08:00
Johann
ef887974aa vp8 fast quantizer with intrinsics
Reduce dependency on offsets file by using intrinsics. Disassembly shows
improvements over previous assembly specifically in register management,
preloading, and {pro,epi}log. Speed change is within margin of error.

Change-Id: I8131b4b4d62bc092407fe847bfaa8f2c0e1384ff
2013-02-26 10:48:24 -08:00
James Zern
ca64f6c14f vp8/encoder/mcomp.c: remove an unused variable
Change-Id: I980da3c70f7cee1b723ede0ed2ae527ac7cd6a51
2013-02-22 15:38:45 -08:00
James Zern
c21226b638 Merge "vp8: make gf_group_bits 64-bit" 2013-02-22 15:31:28 -08:00
James Zern
4e00060d29 vp8: make gf_group_bits 64-bit
avoids signed integer overflow; matches kf_group_bits

Change-Id: I193145cdc4fa53e70fba0a1731a03eb1a574931d
2013-02-22 12:45:28 -08:00
James Zern
fba9772dd2 vp8_first_pass(): avoid floating point div by 0
Change-Id: Id1e6a12db6b0c1d3f64ead8fd8834aadc30fbed2
2013-02-22 12:41:59 -08:00
John Koleszar
226c57e4fa Merge "Add support for x64 and win64 yasm flags." 2013-01-31 17:05:33 -08:00
Frank Galligan
f67d740b34 Add support for x64 and win64 yasm flags.
Some projects must define only win64 for Windows 64bit builds using
yasm.

Change-Id: I1d09590d66a7bfc8b4412e1cc8685978ac60b748
2013-01-31 16:25:37 -08:00
Marco Paniconi
ec6cf493ff Fix for divide by zero in vp8_adjust_key_frame.
Change-Id: I3bf9bdd95abfd287fbcb644f4fb85fb9204be95a
2013-01-31 10:53:06 -08:00
Scott LaVarnway
0c2919c3d5 Bug fix: error-concealment enabled changed postproc output
When error concealment is enabled, it swaps the mi and prev_mi ptrs after
each frame is decoded.  The postproc uses the mi ptr for the mode info context.
Now the postproc will use the correct mode info context.

Change-Id: I537ae5450f319c624999b44525bb52bb30047b7b
2013-01-25 17:06:32 -08:00
John Koleszar
de5546c372 Merge branch 'experimental' of review:webm/libvpx
Change-Id: Ib2c2236349c2ae8ee81bd01c5067dddcbac713ca
2013-01-14 18:34:04 -08:00
Frank Galligan
bc45f23192 Upstream changes from Chromium Android Clang build.
See https://codereview.chromium.org/11875006/

Change-Id: Ied2a17df2b3222635f84aef120eaa9feb53750d2
2013-01-11 15:37:23 -08:00