Commit Graph

1859 Commits

Author SHA1 Message Date
Dmitry Kovalev
7d5bffc452 Adding vpx_sse_to_psnr() function.
Removing all copies of identical vp8_mse2psnr/vp9_mse2psnr functions.
Using vpx_sse_to_psnr() instead in all places.

Change-Id: I15beef9834d43d8fc8a8a7a2d1fc5de3d658fed8
2014-02-26 16:21:12 -08:00
Adrian Grange
b7be30eb36 Cleanup some comments.
Change-Id: I568861ba1d43620865ad9a98a97eef37a51fd856
2014-02-14 15:05:30 -08:00
Tom Finegan
9ff89d9446 vp8/encoder: Silence MSVC warnings in firstpass.c.
Added some casts to int to silence MSVC warnings.

Change-Id: I72481ec2abd12110cf87a3d0da7a1cbe9ef2f47c
2014-02-06 17:02:02 -08:00
James Zern
513fae3ee6 vp8/encoder: add extern "C" to headers
Change-Id: I252f5f8a5d5ada65da08699774a7bb1eb2bd5b2e
2014-01-23 16:21:24 -08:00
Martin Storsjo
e5647d6826 arm: Use vreinterpret instead of a plain cast for converting between neon vector types
This fixes building with MSVC for arm.

Change-Id: Iffae0408e0c68760e87e96b9e17d9df8e8cadb1a
2014-01-22 11:28:37 +02:00
Marco Paniconi
193fa5c8ba Keep buffer clipped to maximum in change_config.
Under a configuration change, where the bitrate suddenly decreases,
the buffer level may be larger than maximum allowed (for that first frame to be encoded after change_config).
This change keeps it clipped to its maximum level.

Change-Id: I4d0b5b3d1fd8148600dd39e02bd630c9464baba5
2014-01-09 14:33:40 -08:00
Christian Duvivier
b52db6b7e8 ARM NEON version of denoiser.
Change-Id: I951abd4ad0078f78949f3cb79453ac334fb82a7e
2014-01-02 10:51:05 -08:00
James Zern
bb28520891 vp8/encoder: normalize include guards
Change-Id: I82834550503a43ff7ec8422342dc65136453b287
2013-12-16 19:41:01 -08:00
James Zern
dce5b82f12 Merge "vp8: remove 2 unused tables" 2013-12-11 13:16:41 -08:00
Adrian Grange
8af3e6507e Fix the printf format string
There were two problems with the format string in
the conditionally compiled print statement. It referred
to a variable that is no longer available and it used
incorrect format specifiers.

Change-Id: I315e22bea2691bb535a2e33f5ca206fc55287a37
2013-12-11 10:47:59 -08:00
James Zern
3d7cc9d2d1 vp8: remove 2 unused tables
Change-Id: Ib5ba4e0b438107741efa28251848306322fd7f89
2013-12-10 21:13:21 -08:00
Marco Paniconi
d486427cf1 Undo the vp8 change in "Reduce loop filter in..."
Patch in https://gerrit.chromium.org/gerrit/#/c/41176/
was merged into repository by mistake.

Change-Id: I235c71af26bb2d72698c8aac2301e5a7e9c5f960
2013-11-19 17:16:00 -08:00
Jim Bankoski
69541e1dec Merge "Reduce loop filter in cyclic refresh." 2013-11-19 14:42:32 -08:00
Marco Paniconi
41138e01f5 Fixes to buffer update for temporal layers.
When a frame is dropped due to |buffer_level| < 0 for a given temporal layer,
the buffer level for the upper temporal layers was not updated (in calc_pframe_target_size()).
This change fixes that.

Also, use the layer per-frame-bandwidth for updating the buffer level
of the higher layers when a frame is dropped.

Change-Id: I660c23f3229b47e9d124a950b480314b4307c5a8
2013-11-01 11:47:40 -07:00
Yaowu Xu
dd54f0babd fix a VP8 build issue
coef_counts is now in cpi->mb, instead of cpi. The commit corrected the
mis-use and enable succefual build.

Change-Id: I0e77909d34571cfd2560c66b46b1f8fa0cd1a6b4
2013-10-17 16:02:53 -07:00
Yaowu Xu
da0ce28fe3 fixed integer overflow warnings
Jenkins warns on left shift of negative numbers and non-aligned read
of int. This commit fixed the two issues.

Change-Id: I389a7fb6a572c643902e40a4c10fefef94500d2c
2013-09-26 09:20:15 -07:00
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