2586 Commits

Author SHA1 Message Date
James Zern
cc894a184f Fix variance (signed integer) overflow
based on change made in experimental:
  9847344 Fix variance (signed integer) overflow

Change-Id: I36f4ba5700f6f4615057daf7e70868f68a86669f
2013-02-22 12:40:08 -08:00
KO Myung-Hun
0ef72720d0 Use dq instead of ddq with NASM
Change-Id: Iffb7cd44b449dc10fa5c24405be909d051b7abb5
2013-02-17 17:30:34 +09: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
75f647fe8a WIP: Multiple decoder instances support
Started adding support for multiple internal decoder instances.  Also added
code to limit the vp8 config options available when using frame-based
multithreading.

Change-Id: I0f1ee7abcfcff59204f50162e28254b8dd6972eb
2013-01-30 10:27:26 -08:00
Scott LaVarnway
2146c68dfd Use FRAGMENT_DATA struct in pbi
for fragment information.

Change-Id: Idc83625591a1e4ca6f551dcfb7fc0428f6f37351
2013-01-29 10:34:35 -08:00
Jim Bankoski
e893af1283 Merge "Bug fix: error-concealment enabled changed postproc output" 2013-01-25 19:23:55 -08:00
Deb Mukherjee
dfd89f2eab Adding a frame parallel decoding mode
Adds a flag to disable features that would inhibit frame parallel
decoding. This includes backward adaptation and MV sorting based
on search in ref frame buffer.

Also includes some minor clean-ups.

Change-Id: I434846717a47b7bcb244b37ea670c5cdf776f14d
2013-01-25 17:16:19 -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
Marco Paniconi
c582617b13 Merge "Bug fix: Handle input data ptr = NULL and size = 0 correctly" 2013-01-25 12:05:13 -08:00
Scott LaVarnway
d6a4a5d98f Bug fix: Handle input data ptr = NULL and size = 0 correctly
Issue 517:	Issues decoding VPX_CODEC_USE_INPUT_FRAGMENTS
http://code.google.com/p/webm/issues/detail?id=517

Change-Id: I030c4cf15b1e1b993433571b6ee77c959a368ff2
2013-01-22 10:52:29 -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
John Koleszar
879cb7d962 Merge vp9-preview changes into experimental branch
Incorportate vp9-preview changes by merging master branch into experimental.

Conflicts:
	test/test.mk
	vp9/common/vp9_filter.c
	vp9/common/vp9_idctllm.c
	vp9/common/vp9_invtrans.h
	vp9/common/vp9_mbpitch.c
	vp9/common/vp9_rtcd_defs.sh
	vp9/common/vp9_systemdependent.h
	vp9/common/vp9_type_aliases.h
	vp9/common/x86/vp9_asm_stubs.c
	vp9/common/x86/vp9_subpixel_mmx.asm
	vp9/decoder/vp9_decodframe.c
	vp9/decoder/vp9_dequantize.c
	vp9/decoder/vp9_dequantize.h
	vp9/decoder/vp9_onyxd_int.h
	vp9/encoder/vp9_bitstream.c
	vp9/encoder/vp9_encodeframe.c
	vp9/encoder/vp9_rdopt.c

Change-Id: I17f51c3666d1b59cf1a699f87607cbc5d30a87c5
2013-01-08 10:19:59 -08:00
Scott LaVarnway
27825e9e3a Merge "Remove cpi parameter from update_mvcount()" 2013-01-08 10:04:21 -08:00
Marco Paniconi
bdca030caf Use seg/ref/mode offsets in loop_filter_partial.
Use the proper seg/mode/ref filter offsets when selecting the
frame loop filter level for fast mode (pick_filter_level_fast).

Change-Id: I2473e2131c800ad19755cb6211ad735fecfe2ac0
2013-01-03 16:01:48 -08:00
John Koleszar
16810c10c1 Merge branch 'vp9-preview' of review:webm/libvpx
Merge the vp9-preview branch into master.

Change-Id: If700b9054676f24bed9deb59050af546c1ca5296
2012-12-27 09:37:19 -08:00
James Zern
9dab3ce624 add emmintrin_compat.h for builds with gcc < 4
Change-Id: If7822e6fcd0d3568b934032322b19ba3e401df26
2012-12-20 14:56:13 -08:00
Yaowu Xu
28765690fe Changed MAX_PSNR to 100
The MAX_PSNR was used to assign a "psnr" number when the mse is close
to zero. The direct assignment is used to prevent divide by zero in
computation. Changing it from 60 to 100 to be consistent against what
is being done in VP9

Change-Id: I4854ffc4961e59d372ec8005a0d52ca46e3c4c1a
2012-12-18 14:36:20 -08:00
Scott LaVarnway
fd671152bc Merge "Bug fix: use correct count_mb_ref_frame_usage" 2012-12-11 11:00:53 -08:00
Scott LaVarnway
57e12be283 Bug fix: use correct count_mb_ref_frame_usage
Change-Id: I9702f3e9ed664c2537e7874698c944620b07fff8
2012-12-10 17:38:55 -08:00
Scott LaVarnway
a0ad16e203 Moved error_bins to macroblock struct
Change-Id: Ic9956ddf1c2ddffcf7be7fdfc23ad9a2426fc47a
WIP: Fixing unsafe threading in VP8 encoder.
2012-12-10 17:32:58 -08:00
Scott LaVarnway
2cd48bdc92 Merge "Moved zbin_mode_boost to macroblock struct" 2012-12-10 16:22:57 -08:00
Scott LaVarnway
cc91d655e4 Update correct macroblock quantize_b function ptrs
WIP: Fixing unsafe threading in VP8 encoder.
Use the passed in macroblock instead of the macroblock located in
cpi.

Change-Id: I1bfa07de6ea463f2baeaae1bae5d950691bc4afc
2012-12-10 15:23:11 -08:00
Scott LaVarnway
74efda4bd6 Moved zbin_mode_boost to macroblock struct
Fixing unsafe threading in VP8 encoder.

Change-Id: Ibf4c89a2043654834747811bc11eb283de0bb830
2012-12-10 12:42:24 -08:00
Scott LaVarnway
3a19eebe4d Moved zbin_over_quant to macroblock struct
Change-Id: I76fe20ade099573997404b8733cf7f79e82fb21e
WIP: Fixing unsafe threading in VP8 encoder.
2012-12-10 10:51:42 -08:00
Scott LaVarnway
000c8414b5 Moved denoiser frame copy/updates out of loopfilter thread
The loopfilter thread from the previous frame can be running while
starting the current frame.  cpi->Source will change during this time causing
the wrong data to be copied.  The refresh_x_frame flags also change, which
will cause incorrect updates of the denoised buffers.

Change-Id: I7d982b4fcb40a0610801332aa85f3b792c64e4c3
2012-12-07 12:19:52 -08:00
Scott LaVarnway
bc10eab41b Merge "added work buffer for denoiser" 2012-12-06 15:27:54 -08:00
Scott LaVarnway
ef2248a2a3 added work buffer for denoiser
The denoiser was writing to LAST_FRAME buffer.   If LAST_FRAME isn't being
updated,  the reference frame buffers were out of sync between the encoder and the
denoised raw buffers. This patch resolves the discrepancy by always writing to a work
buffer (INTRA_FRAME) and then copying from that buffer to any buffers that needs to
be updated.

Change-Id: I6dd855b9749978b542bc3d515914d5f16faf25df
2012-12-05 19:09:05 -08:00
Johann
a36d9a4a15 Move vp8_scale_frame to vpx namespace
Change-Id: I92d613e89c8f1174eca0789116120bfa20c25c28
2012-12-05 16:05:46 -08:00
Johann
1009f76566 Use 'vpx_scale' consistently
Change-Id: I178352813d2b8702d081caf405de9dbad9af2cc3
2012-12-05 16:05:44 -08:00
Adrian Grange
9a3de881c0 Disable background update on non-base layer frames
Multi-threaded code was not updated to disable background
refresh for non base-layer frames at the time it was
disabled in the main C-code.

Change-Id: Id6cc376130b7def046942121cfd0526b4f0a71d4
2012-12-05 13:24:52 -08:00
Johann
a905672906 Remove ARM optimizations from VP9
Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
2012-12-05 08:59:25 -08:00
Johann
4a9b95470c Update ARM for vpx_scale changes
Refactor asm_offsets for vpx_scale.

Change-Id: I2db0eeb28c8e757bd033c6614a1e5319a1a204a5
2012-12-05 08:59:17 -08:00
Scott LaVarnway
f2b36a4de7 Removed check_gf_quality()
and various unused members in VP8_COMP along with other
code cleanups.

Change-Id: I56c6c0a77a51f5ac5cbd6071017bcbfd2623b7df
2012-12-05 08:56:42 -08:00
Scott LaVarnway
bfca084fcd Moving mbs_tested_so_far, mode_test_hit_counts to macroblock struct
Change-Id: Ifa78c0a953fab3e5dd7af0446924846c7022cd09
2012-12-04 16:52:47 -08:00
Scott LaVarnway
358b0efec5 Remove cpi parameter from update_mvcount()
cpi is no longer used .

Change-Id: Ie86b994059e506cc1944212e12d4f75c041c1d15
2012-12-04 15:43:25 -08:00
Johann
34591b54dd Remove ARM optimizations from VP9
Change-Id: I9f0ae635fb9a95c4aa1529c177ccb07e2b76970b
2012-12-03 12:50:15 -08:00
Johann
0d793ccfb6 Update ARM for vpx_scale changes
Refactor asm_offsets for vpx_scale.

Change-Id: I2db0eeb28c8e757bd033c6614a1e5319a1a204a5
2012-12-03 12:50:09 -08:00
Scott LaVarnway
9961ad479a Merge "Moving rd_thresh_mult, rd_threshes to macroblock struct" 2012-12-03 12:05:48 -08:00
Scott LaVarnway
7891fb5eda Merge "Moving count_mb_ref_frame_usage to macroblock struct" 2012-12-03 11:55:46 -08:00
Jim Bankoski
3e3fffe038 a vp8 warning to boot.
Change-Id: I32ed051c8b4d3e5afa4e13bb4e3b2ca5e922ff64
2012-11-29 14:24:54 -08:00
John Koleszar
1760c39bce Revert "make: flatten object file directories"
This reverts commit b72373de79800e801ce730d24cb115daf78ae660.

Change-Id: Ic1601160e11df1a018ef12da25967cfb5eebd5ba
2012-11-27 16:36:39 -08:00
Marco Paniconi
464b1df6d4 Updates to qp-regulate and rate correction factor.
Don't use the switch to gf_rate_correction factor when
temporal layers is used (i.e., cpi->oxcf.number_of_layers > 1).

In temporal layers, we prefer to avoid this as any frame
(e.g., base layer frame at anchor of pattern) may update
both last and golden (and possibly alt-ref), and so we would get
different rate correction factors within the same layer.

This change will make sure one rate correction factor exists for each layer.

Also, made some other code in qp-regulate that depends on
alt/golden update specific to the 1 layer case.

Change-Id: I41a6d085bd477f9307ef3b3c311695214273892c
2012-11-26 16:29:43 -08:00
James Zern
6b1d95d6d8 Merge "vp8_intra_pred_y_tm_sse2: save/restore xmm registers" 2012-11-26 12:14:06 -08:00
Jim Bankoski
510557e2eb removed the idct rtcd idct calls
More cleanup to do after this,  but this is a good chunk of removing rtcd.

Change-Id: I551db75e341a0a85c3ad650df1e9a60dc305681a
2012-11-24 19:33:58 -08:00
John Koleszar
9cc6f078dc Merge "vp8_loop_filter_bh_y_sse2: save/restore xmm registers" 2012-11-20 20:23:41 -08:00
James Zern
17718fbbcd vp8_filter_block1d4_h6_ssse3: add missing xmm restore
Change-Id: Ia8f6b6c2a9ed60bee7949dd06fcc18b392e91d76
2012-11-20 17:52:03 -08:00
James Zern
0d80584327 vp8_loop_filter_bh_y_sse2: save/restore xmm registers
xmm[6-11] should be saved and restored for Windows x64; prevents an
encoder mismatch and some datarate issues.

Change-Id: I03c38eb18ec20c6c441cae19416393058baad1ee
2012-11-20 17:49:24 -08:00