platform/upstream/libvpx.git
9 years agoMerge "Make vp9_print_modes_and_motion_vectors() work"
Yunqing Wang [Thu, 12 Feb 2015 00:58:52 +0000 (16:58 -0800)]
Merge "Make vp9_print_modes_and_motion_vectors() work"

9 years agoMerge "vp9_thread: prefer pthread.h if available"
James Zern [Thu, 12 Feb 2015 00:50:07 +0000 (16:50 -0800)]
Merge "vp9_thread: prefer pthread.h if available"

9 years agoMerge "vp9_highbd_tm_predictor_16x16: fix win64"
James Zern [Thu, 12 Feb 2015 00:49:53 +0000 (16:49 -0800)]
Merge "vp9_highbd_tm_predictor_16x16: fix win64"

9 years agoMerge "Account for inter prediction filter rate cost in rtc mode selection"
Jingning Han [Wed, 11 Feb 2015 22:42:44 +0000 (14:42 -0800)]
Merge "Account for inter prediction filter rate cost in rtc mode selection"

9 years agoMerge "Add ref frame rate cost to non-RD mode decision"
Jingning Han [Wed, 11 Feb 2015 22:36:48 +0000 (14:36 -0800)]
Merge "Add ref frame rate cost to non-RD mode decision"

9 years agoAccount for inter prediction filter rate cost in rtc mode selection
Jingning Han [Mon, 9 Feb 2015 23:29:58 +0000 (15:29 -0800)]
Account for inter prediction filter rate cost in rtc mode selection

Add the rate cost on inter prediction filter type to the overall
rate-distortion cost in vp9_pick_mode_inter.

Change-Id: I72c34017adf5220cadb3962694ee5404469fc673

9 years agoAdd ref frame rate cost to non-RD mode decision
Jingning Han [Wed, 11 Feb 2015 18:51:50 +0000 (10:51 -0800)]
Add ref frame rate cost to non-RD mode decision

This commit adds a heuristic rate cost of reference frame to the
non-RD mode decision. It improves the compression performance of
speed -6 by 0.31% and speed -5 by 0.69%.

Change-Id: If7f3b45519d49b2cb640bcb7316a254efc8be446

9 years agovp9_highbd_tm_predictor_16x16: fix win64
James Zern [Wed, 11 Feb 2015 03:30:58 +0000 (19:30 -0800)]
vp9_highbd_tm_predictor_16x16: fix win64

by saving xmm8; cglobal's xmm reg arg is 0-based

Change-Id: Ic8426ec9ac59ab4478716aa812452a6406794dcb

9 years agoAdd --color-space to vpxenc
Yaowu Xu [Tue, 10 Feb 2015 23:03:05 +0000 (15:03 -0800)]
Add --color-space to vpxenc

This enbale the encoder to set color space information for the input
video, so it is then coded in the output bitstream.

Change-Id: Ife03deab3c762425ccd27c4c190902c4d94a76f4

9 years agoMake vp9_print_modes_and_motion_vectors() work
Yunqing Wang [Wed, 11 Feb 2015 00:29:03 +0000 (16:29 -0800)]
Make vp9_print_modes_and_motion_vectors() work

MODE_INFO struct was modified, and vp9_print_modes_and_motion_vectors()
didn't work anymore. This patch modified vp9_debugmodes.c so that
this function works again for debug usage.

Change-Id: I293fae0295235deb2529a460a274caf7c045ac1a

9 years agoMove computation up to frame level
Yaowu Xu [Mon, 9 Feb 2015 18:21:17 +0000 (10:21 -0800)]
Move computation up to frame level

This is to avoid redo the same calculation repeatly, and also allow
easier adjustments for further experiments.

This commit shall have no effect on quality/compression.

Change-Id: I4460acf5c808ff5518da18d21e002c5da58af857

9 years agovp9_thread: prefer pthread.h if available
James Zern [Tue, 10 Feb 2015 20:47:14 +0000 (12:47 -0800)]
vp9_thread: prefer pthread.h if available

this avoids conflicts with recent versions of mingw-w64 (tested g++
4.8.2) and the unit tests

Change-Id: Ic41ea31eebe0e3e712ed5e657f37d8cad6712088

9 years agoMerge "Auto-adaptive encoder frame resizing logic"
Adrian Grange [Tue, 10 Feb 2015 20:16:55 +0000 (12:16 -0800)]
Merge "Auto-adaptive encoder frame resizing logic"

9 years agoMerge "Fix block partition size in fill_mode_info_sb"
Jingning Han [Tue, 10 Feb 2015 18:49:03 +0000 (10:49 -0800)]
Merge "Fix block partition size in fill_mode_info_sb"

9 years agoAuto-adaptive encoder frame resizing logic
Adrian Grange [Fri, 14 Nov 2014 23:29:18 +0000 (15:29 -0800)]
Auto-adaptive encoder frame resizing logic

Note: This feature is still in development.

Add an option for the encoder to decide the resolution
at which to encode each frame.

Each KF/GF/ARF goup is tested to see if it would be
better encoded at a lower resolution. At present, each
KF/GF/ARF is coded first at full-size and if the coded
size exceeds a threshold (twice target data rate) at
the maximum active Q then the entire group is encoded
at lower resolution.

This feature is enabled in vpxenc by setting:
  --resize-allowed=1

In addition, if the vpxenc command line also specifies
valid frame dimensions using:
  --resize-width=XXXX & --resize_height=YYYY
then *all* frames will be encoded at this resolution.

Change-Id: I13f341e0a82512f9e84e144e0f3b5aed8a65402b

9 years agoMerge "Make encoder and decoder share common thread function"
Yunqing Wang [Tue, 10 Feb 2015 17:06:41 +0000 (09:06 -0800)]
Merge "Make encoder and decoder share common thread function"

9 years agoMerge "Rename loopfilter_thread files to thread_common files"
Yunqing Wang [Tue, 10 Feb 2015 17:06:23 +0000 (09:06 -0800)]
Merge "Rename loopfilter_thread files to thread_common files"

9 years agoFix block partition size in fill_mode_info_sb
Jingning Han [Mon, 9 Feb 2015 17:48:44 +0000 (09:48 -0800)]
Fix block partition size in fill_mode_info_sb

This commit fixes the sub block partition size used in
fill_mode_info_sb. Previous implementation effectively disabled
the rectangular block sizes. This commit resolved this issue.

Change-Id: Ic1c383ab0a9a2e7d59e85b388093f1f1f94d1e7f

9 years agoMerge "configure: add --(disable|enable)-dependency-tracking"
James Zern [Tue, 10 Feb 2015 08:00:24 +0000 (00:00 -0800)]
Merge "configure: add --(disable|enable)-dependency-tracking"

9 years agoMerge "Add two constant definitions"
Yaowu Xu [Tue, 10 Feb 2015 01:00:55 +0000 (17:00 -0800)]
Merge "Add two constant definitions"

9 years agoconfigure: add --(disable|enable)-dependency-tracking
James Zern [Fri, 6 Feb 2015 03:31:38 +0000 (19:31 -0800)]
configure: add --(disable|enable)-dependency-tracking

defaults to enabled. when disabled skips dependency file (.d) generation
allowing for faster one-time builds.

Change-Id: I2d7d7f905f1663315b8eb2b2e81fffb6fcb15829

9 years agoAdd two constant definitions
Yaowu Xu [Tue, 10 Feb 2015 00:26:53 +0000 (16:26 -0800)]
Add two constant definitions

This fixes compiler errors for vs 2008.

Change-Id: Ifaabb1c5e74fe6ede6dacf66ec3f634fecb556fd

9 years agoMerge "Set the maximum decode threads to be 8."
hkuang [Tue, 10 Feb 2015 00:25:20 +0000 (16:25 -0800)]
Merge "Set the maximum decode threads to be 8."

9 years agoMerge "Fix high bit depth assembly function bugs"
Yunqing Wang [Mon, 9 Feb 2015 23:30:36 +0000 (15:30 -0800)]
Merge "Fix high bit depth assembly function bugs"

9 years agoSet the maximum decode threads to be 8.
hkuang [Thu, 5 Feb 2015 21:59:15 +0000 (13:59 -0800)]
Set the maximum decode threads to be 8.

This will fix the frame parallel decode hang on windows
due to not enough semaphores.

This will also make the frame parallel decode safer as
the number of frame buffers could only support maximum
8 threads.

Change-Id: Id9ef50692819dcbebbd74a0aabffbfb3f39a4309

9 years agoFix jenkins unit test failure due to "uninitialised value".
hkuang [Sat, 7 Feb 2015 23:13:45 +0000 (15:13 -0800)]
Fix jenkins unit test failure due to "uninitialised value".

Change-Id: Ief6b526486bc729dcb787358bc0b781f278bdc66

9 years agoPrevent VP8 encoding crash
Yaowu Xu [Sat, 7 Feb 2015 00:32:20 +0000 (16:32 -0800)]
Prevent VP8 encoding crash

This commit changes the value of highbitdepth flag to avoid conflict
with vp8 refresh_last_frame flag.

Change-Id: Idcff2cf44f0a200bd935b326f785c0cf32d7228a

9 years agoMerge "vpxdec: correct file op error messages"
James Zern [Fri, 6 Feb 2015 22:40:52 +0000 (14:40 -0800)]
Merge "vpxdec: correct file op error messages"

9 years agoMerge "Correct the miscalculation in uv dimensions"
Yaowu Xu [Fri, 6 Feb 2015 21:54:44 +0000 (13:54 -0800)]
Merge "Correct the miscalculation in uv dimensions"

9 years agoCorrect the miscalculation in uv dimensions
Yaowu Xu [Fri, 6 Feb 2015 20:19:32 +0000 (12:19 -0800)]
Correct the miscalculation in uv dimensions

The calculation of required extension used in HBD case was wrong due
to rounding for UV when y dimension is odd. This commit replace the
computation with correct version.

This fixes a crash caused by writting beyond buffer boundary.

Change-Id: Ic7c9afeb7388cd1341ec4974a611dacfb74ac6b6

9 years agoMake encoder and decoder share common thread function
Yunqing Wang [Fri, 6 Feb 2015 19:37:45 +0000 (11:37 -0800)]
Make encoder and decoder share common thread function

Moved vp9_accumulate_frame_counts to vp9_thread_common.c to
eliminate the duplicate code.

Change-Id: I9cf506d729603c8bf1494b4c86a3b7d47af1917a

9 years agoMerge "Re-arrange inter mode search order in RTC coding flow"
Jingning Han [Fri, 6 Feb 2015 18:11:33 +0000 (10:11 -0800)]
Merge "Re-arrange inter mode search order in RTC coding flow"

9 years agoRename loopfilter_thread files to thread_common files
Yunqing Wang [Fri, 6 Feb 2015 18:03:31 +0000 (10:03 -0800)]
Rename loopfilter_thread files to thread_common files

Renames the files to allow more common thread code to
be moved to vp9/common.

Change-Id: I7386e64e221086e3cdc087e79812f993c423413b

9 years agoMerge "Replace repeated check with single variable"
Yaowu Xu [Fri, 6 Feb 2015 17:17:59 +0000 (09:17 -0800)]
Merge "Replace repeated check with single variable"

9 years agoRe-arrange inter mode search order in RTC coding flow
Jingning Han [Fri, 6 Feb 2015 01:13:25 +0000 (17:13 -0800)]
Re-arrange inter mode search order in RTC coding flow

This commit makes the ZEROMV mode first in the search order to
ensure that the zero mv is always checked in the RTC coding mode.
It improves the average speed -6 compression performance by 0.3%
in both PSNR and SSIM at no visible speed change.

Change-Id: I465a7e59f4e20cd84fee3f02ced6f98036945949

9 years agoMerge "vp9: fix segfault w/corrupt data post frame-parallel merge"
James Zern [Fri, 6 Feb 2015 08:28:10 +0000 (00:28 -0800)]
Merge "vp9: fix segfault w/corrupt data post frame-parallel merge"

9 years agovpxdec: correct file op error messages
James Zern [Fri, 6 Feb 2015 05:06:29 +0000 (21:06 -0800)]
vpxdec: correct file op error messages

- use fatal() consistently
- correct wording in output file open failure message

Change-Id: I4dafe03c6eece6df53375f72adf0d5964e211c9a

9 years agoMerge "Revert "Add vp9_highbitdepth info in configure --help""
James Zern [Thu, 5 Feb 2015 22:09:01 +0000 (14:09 -0800)]
Merge "Revert "Add vp9_highbitdepth info in configure --help""

9 years agoMerge "Fix a thread lost bug in frame parallel decode."
hkuang [Thu, 5 Feb 2015 22:07:35 +0000 (14:07 -0800)]
Merge "Fix a thread lost bug in frame parallel decode."

9 years agoMerge "vpx_temporal_svc_encoder: change default setting for static threshold."
Marco [Thu, 5 Feb 2015 21:01:40 +0000 (13:01 -0800)]
Merge "vpx_temporal_svc_encoder: change default setting for static threshold."

9 years agoRevert "Add vp9_highbitdepth info in configure --help"
James Zern [Thu, 5 Feb 2015 20:53:44 +0000 (12:53 -0800)]
Revert "Add vp9_highbitdepth info in configure --help"

This reverts commit a6715a75589b418f9af5f44d93e0d7ecbaa77d48.

Removes a duplicate entry; this was previously added by:
14e37cf Add help info for --enable-vp9-highbitdepth

Change-Id: I61408e782232821ef6ed84775b5c79d172ba7f2d

9 years agoMerge "Mute the harmless tsan error in frame parallel decode."
hkuang [Thu, 5 Feb 2015 20:44:04 +0000 (12:44 -0800)]
Merge "Mute the harmless tsan error in frame parallel decode."

9 years agoMerge "configure: enable x86inc for all intel platforms"
James Zern [Thu, 5 Feb 2015 20:18:24 +0000 (12:18 -0800)]
Merge "configure: enable x86inc for all intel platforms"

9 years agovp9: fix segfault w/corrupt data post frame-parallel merge
James Zern [Wed, 4 Feb 2015 03:55:55 +0000 (19:55 -0800)]
vp9: fix segfault w/corrupt data post frame-parallel merge

cm->frame_bufs[].idx values were made consistent in:
61c5e94 Use -1 consistently as invalid buffer idx
update the initialization in swap_frame_buffers() to match.
additionally:
  - remove some shadowed variables in the former and marked them volatile

Change-Id: Ie3f9636c405bd822112bb56bd22d28024ae98909

9 years agovpx_temporal_svc_encoder: change default setting for static threshold.
Marco [Thu, 5 Feb 2015 20:05:49 +0000 (12:05 -0800)]
vpx_temporal_svc_encoder: change default setting for static threshold.

Change-Id: Ie45c8344df9415173eae7aa20384ea8ecb05d07a

9 years agoFix high bit depth assembly function bugs
Yunqing Wang [Wed, 4 Feb 2015 20:02:06 +0000 (12:02 -0800)]
Fix high bit depth assembly function bugs

The high bit depth build failed while building for 32bit target.
The bugs were in vp9_highbd_subpel_variance.asm and
vp9_highbd_sad4d_sse2.asm functions. This patch fixed the bugs,
and made 32bit build work.

Change-Id: Idc8e5e1b7965bb70d4afba140c6583c5d9666b75

9 years agoconfigure: enable x86inc for all intel platforms
James Zern [Thu, 5 Feb 2015 03:16:12 +0000 (19:16 -0800)]
configure: enable x86inc for all intel platforms

there are no known issues since:
10d5e09 Fix issues in 32bit PIC enabled build

related issues: #808, #924

Change-Id: I80454f95fe6b4ce630fdd434d740ce8b0d42951b

9 years agoMerge "Xcode: Fix includes in examples."
Tom Finegan [Thu, 5 Feb 2015 01:33:41 +0000 (17:33 -0800)]
Merge "Xcode: Fix includes in examples."

9 years agoXcode: Fix includes in examples.
Tom Finegan [Thu, 5 Feb 2015 00:11:57 +0000 (16:11 -0800)]
Xcode: Fix includes in examples.

The current file's directory, ".", is treated much more literally
when building libvpx examples with Xcode than it is with make, and
clang cannot find common include files included via "./" when those
files actually reside one directory up in the tree.

Change-Id: I5f66a026282e35d80248ca4052ebb882b859172e

9 years agoRemove unnecessary initialization
Yaowu Xu [Wed, 4 Feb 2015 02:03:51 +0000 (18:03 -0800)]
Remove unnecessary initialization

loop_filter_level is always reset in loop_filter_frame() later in
encoder.

Change-Id: I608e03d905a6b23e7d5025ca747e4784c665007e

9 years agoMove tx_mode decision logic into select_tx_mode()
Yaowu Xu [Wed, 4 Feb 2015 01:50:48 +0000 (17:50 -0800)]
Move tx_mode decision logic into select_tx_mode()

Change-Id: I7f8f78c33eb3f33344b029a27bda320f4d68c577

9 years agoReplace repeated check with single variable
Yaowu Xu [Wed, 4 Feb 2015 20:53:33 +0000 (12:53 -0800)]
Replace repeated check with single variable

Change-Id: I2f6a669bf7c6d9796388ad3f3fa3fc942635c215

9 years agoMerge "Adjust partitioning threshold based rtc speed"
Yaowu Xu [Wed, 4 Feb 2015 20:52:03 +0000 (12:52 -0800)]
Merge "Adjust partitioning threshold based rtc speed"

9 years agoMerge "Move calls to avoid unnecessary operations"
Yaowu Xu [Wed, 4 Feb 2015 20:51:16 +0000 (12:51 -0800)]
Merge "Move calls to avoid unnecessary operations"

9 years agoMute the harmless tsan error in frame parallel decode.
hkuang [Wed, 4 Feb 2015 00:40:13 +0000 (16:40 -0800)]
Mute the harmless tsan error in frame parallel decode.

Change-Id: I52565fd90461221f89134997a0782cb1b681df01

9 years agoMerge "Unify luma and chroma inter predictors in choose_partitioning"
Jingning Han [Wed, 4 Feb 2015 20:09:21 +0000 (12:09 -0800)]
Merge "Unify luma and chroma inter predictors in choose_partitioning"

9 years agoMerge "Save an extra call for setup_pred_plane function"
Jingning Han [Wed, 4 Feb 2015 20:09:14 +0000 (12:09 -0800)]
Merge "Save an extra call for setup_pred_plane function"

9 years agoMerge "Account for chroma component costs in RTC mode decision"
Jingning Han [Wed, 4 Feb 2015 20:09:01 +0000 (12:09 -0800)]
Merge "Account for chroma component costs in RTC mode decision"

9 years agoAdjust partitioning threshold based rtc speed
Yaowu Xu [Wed, 4 Feb 2015 18:37:57 +0000 (10:37 -0800)]
Adjust partitioning threshold based rtc speed

On rtc set:
speed 7 quality improves about 0.5%
speed 8 quality improves about 1.0%

Encoding time for speed 7 changes from 67804ms to 65889ms
Encoding time for speed 8 changes from 58659ms to 56808ms

Change-Id: Iabcfb53012fc1b9f3326cdbc167e5758b8c7ad30

9 years agoFix a thread lost bug in frame parallel decode.
hkuang [Tue, 3 Feb 2015 23:19:11 +0000 (15:19 -0800)]
Fix a thread lost bug in frame parallel decode.

After syncing the frame worker thread, avaiable thread count should
increase by 1 even the worker thread does not have displayable frame
to output.

Change-Id: I9eeb87720fed82dfe38555286833ff88e8a8e746

9 years agoUnify luma and chroma inter predictors in choose_partitioning
Jingning Han [Wed, 4 Feb 2015 18:02:14 +0000 (10:02 -0800)]
Unify luma and chroma inter predictors in choose_partitioning

Change-Id: I8bfc80f4fffb0892e93d3326394a52d1ee3c0f37

9 years agoSave an extra call for setup_pred_plane function
Jingning Han [Tue, 3 Feb 2015 23:56:36 +0000 (15:56 -0800)]
Save an extra call for setup_pred_plane function

Reuse the yv12_mb array to fetch the buffer pointers/strides
corresponding to the current reference frame.

Change-Id: I5276b7494158b2cccef15213be2dc189e9036851

9 years agoAccount for chroma component costs in RTC mode decision
Jingning Han [Wed, 21 Jan 2015 17:32:23 +0000 (09:32 -0800)]
Account for chroma component costs in RTC mode decision

This commit allows the encoder to account for additional chroma
plane costs in the mode decision process, if the current block
potentially contains significant color change. It improves the
visual quality at very low bit-rates.

The compression performance of dark720p is improved by 12.39% in
speed 6. For jimred at 150 kbps, the PSNR of V component (red)
increased by 0.2 dB, at the expense of about 5% increase in
encoding time. Note that for sequences where the chroma components
are fairly consistent, the encoding time increase is negligible.

On average the rtc set compression performance is improved by
1.172% in PSNR and 1.920% in SSIM.

Change-Id: Ia55b24ef23a25304f7ec9958fbf07fd6e658505c

9 years agovp9_dthread: remove frame_parallel_decoding_mode requirement
Yunqing Wang [Sat, 31 Jan 2015 01:00:54 +0000 (17:00 -0800)]
vp9_dthread: remove frame_parallel_decoding_mode requirement

This patch continues the work to remove frame_parallel_decoding_mode
requirement in VP9 multi-threaded tile decoder. In order to do that,
the frame counts associated to each thread need to be accumulated
together after the frame is decoded.

Change-Id: Idba1a756cedfed3c154aef52ed82c8da3bbf9e0c

9 years agoMerge "Remove unnecessary pointer check"
Johann [Wed, 4 Feb 2015 01:12:56 +0000 (17:12 -0800)]
Merge "Remove unnecessary pointer check"

9 years agoMove calls to avoid unnecessary operations
Yaowu Xu [Wed, 4 Feb 2015 01:01:37 +0000 (17:01 -0800)]
Move calls to avoid unnecessary operations

Change-Id: I236f7f75ab9a4511d1b52a6a67299b0e844a103e

9 years agoMerge "adjust rtc setting and threshold"
Yaowu Xu [Tue, 3 Feb 2015 23:13:52 +0000 (15:13 -0800)]
Merge "adjust rtc setting and threshold"

9 years agoMerge "Use correct buffer size in vp8 subpixel variance"
Johann [Tue, 3 Feb 2015 21:52:14 +0000 (13:52 -0800)]
Merge "Use correct buffer size in vp8 subpixel variance"

9 years agoMerge "Remove duplicate code."
hkuang [Tue, 3 Feb 2015 21:37:48 +0000 (13:37 -0800)]
Merge "Remove duplicate code."

9 years agoMerge "make low bitrates a lot less blocky"
Jim Bankoski [Tue, 3 Feb 2015 21:25:06 +0000 (13:25 -0800)]
Merge "make low bitrates a lot less blocky"

9 years agoRemove unnecessary pointer check
Johann [Tue, 3 Feb 2015 20:58:34 +0000 (12:58 -0800)]
Remove unnecessary pointer check

The original implementation had the following comment:
// Ignore mv costing if mvsadcost is NULL

However the current implementation does not allow for this.
If x exists then nmvsadcost must not be null.

This removes the only warning from -Wpointer-bool-conversion

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

Change-Id: I1a2cee340d7972d41e1bbbe1ec8dfbe917667085

9 years agoMerge "Assign 2nd ref frame in choose_partitioning"
Jingning Han [Tue, 3 Feb 2015 20:25:18 +0000 (12:25 -0800)]
Merge "Assign 2nd ref frame in choose_partitioning"

9 years agoMerge "Fail when only an old nasm is found"
Johann [Tue, 3 Feb 2015 19:19:24 +0000 (11:19 -0800)]
Merge "Fail when only an old nasm is found"

9 years agoAssign 2nd ref frame in choose_partitioning
Jingning Han [Tue, 3 Feb 2015 19:17:51 +0000 (11:17 -0800)]
Assign 2nd ref frame in choose_partitioning

Avoid the use of uninitialized second reference frame for fetching
reference block.

Change-Id: I9983a0daea829700b3270dc8bf2bcc6d6ea36652

9 years agoMerge "vp9_dthread: pass frame counts to decoder functions"
Yunqing Wang [Tue, 3 Feb 2015 18:52:02 +0000 (10:52 -0800)]
Merge "vp9_dthread: pass frame counts to decoder functions"

9 years agoMerge "Add mutex initialization in encoder"
Yaowu Xu [Tue, 3 Feb 2015 18:36:42 +0000 (10:36 -0800)]
Merge "Add mutex initialization in encoder"

9 years agoAdd mutex initialization in encoder
Yaowu Xu [Tue, 3 Feb 2015 17:52:21 +0000 (09:52 -0800)]
Add mutex initialization in encoder

This resolves the encoder crashes on windows.

Change-Id: I159d79014cf9279751e403936ce1f84482ae82da

9 years agoMerge "Ensure the error-concealment code is available"
Johann [Tue, 3 Feb 2015 17:40:12 +0000 (09:40 -0800)]
Merge "Ensure the error-concealment code is available"

9 years agovp9_dthread: pass frame counts to decoder functions
Yunqing Wang [Fri, 30 Jan 2015 18:14:44 +0000 (10:14 -0800)]
vp9_dthread: pass frame counts to decoder functions

The current multi-threaded tile decoder requires that the videoes
are encoded with frame_parallel_decoding_mode = 1. This requirement
is not necessary, and is better to be removed. This patch includes
the first part of the work.

Change-Id: Ic7695fb3cfe13f9022582c9f0edd2aa6e2e36d28

9 years agoUse correct buffer size in vp8 subpixel variance
Johann [Tue, 3 Feb 2015 17:02:50 +0000 (09:02 -0800)]
Use correct buffer size in vp8 subpixel variance

In vp8_sub_pixel_variance8x8_neon the temp2 buffer is only initialized
to kHeight8 * kWidth8. However, in the case that xoffset != 0 and
yoffset == 0, var_filter_block2d_bil_w8 is called with output_width
kHeight8PlusOne.

Thanks to cmugurel for diagnosing and yulius for the patch.

Change-Id: Ib71ffd96ffad963c92b8b7ca23f303942785b8e0
https://code.google.com/p/webrtc/issues/detail?id=4190

9 years agoFail when only an old nasm is found
Johann [Fri, 30 Jan 2015 22:39:01 +0000 (14:39 -0800)]
Fail when only an old nasm is found

Apple ships version 0.98 of nasm through at least XCode 6. It is
incompatible with the assembly in libvpx.

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

Change-Id: I33245a76f50a8224fe6fafa3cce9991f953fdcc8

9 years agomake low bitrates a lot less blocky
Jim Bankoski [Tue, 3 Feb 2015 14:45:56 +0000 (06:45 -0800)]
make low bitrates a lot less blocky

Remove loop filter skip at speed 7+ because of bad visual artifacts and
up the postprocessing.

Change-Id: Ibdd0bac71aaee232d2bb2e14462733c51517768d

9 years agoadjust rtc setting and threshold
Yaowu Xu [Mon, 2 Feb 2015 16:05:31 +0000 (08:05 -0800)]
adjust rtc setting and threshold

1. Adjusted the threshold for coef update computation based on counts
of tx used, avoid coef update computation when count is low (<20)
2. Move sf->lpf_pick = LPF_PICK_MINIMAL_LPF to speed 8.

Change-Id: I02b44309e40fcdbf135c7934ae067a3f42502d30

9 years agoMerge "Fix a bug from merging frame parallel branch into master."
hkuang [Tue, 3 Feb 2015 01:08:42 +0000 (17:08 -0800)]
Merge "Fix a bug from merging frame parallel branch into "

9 years agoFix a bug from merging frame parallel branch into master.
hkuang [Mon, 2 Feb 2015 23:34:21 +0000 (15:34 -0800)]
Fix a bug from merging frame parallel branch into 

The merge did not merge the fix for issue #850.

Change-Id: I0dc1377dbfcb9497fb01a13d4f78ac65bff5eb33

9 years agoMerge "Require webm when explicitly requested"
Johann [Mon, 2 Feb 2015 21:13:04 +0000 (13:13 -0800)]
Merge "Require webm when explicitly requested"

9 years agoMerge "Allow larger encoder configurations."
Alex Converse [Mon, 2 Feb 2015 20:05:56 +0000 (12:05 -0800)]
Merge "Allow larger encoder configurations."

9 years agoRequire webm when explicitly requested
Johann [Fri, 30 Jan 2015 23:05:14 +0000 (15:05 -0800)]
Require webm when explicitly requested

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

Change-Id: I72841078ff81152d21d84ccf4d5548e757685a6d

9 years agoMerge "Abort if firstpass file does not exist"
Adrian Grange [Mon, 2 Feb 2015 16:11:14 +0000 (08:11 -0800)]
Merge "Abort if firstpass file does not exist"

9 years agoMerge "Optimize coef update"
Yaowu Xu [Mon, 2 Feb 2015 04:08:29 +0000 (20:08 -0800)]
Merge "Optimize coef update"

9 years agoTry again to merge branch 'frame-parallel' into master branch.
hkuang [Tue, 27 Jan 2015 20:26:28 +0000 (12:26 -0800)]
Try again to merge branch 'frame-parallel' into master branch.

In frame parallel decode, libvpx decoder decodes several frames on all
cpus in parallel fashion. If not being flushed, it will only return frame
when all the cpus are busy. If getting flushed, it will return all the
frames in the decoder. Compare with current serial decode mode in which
libvpx decoder is idle between decode calls, libvpx decoder is busy
between decode calls.

Current frame parallel decode will only speed up the decoding for frame
parallel encoded videos. For non frame parallel encoded videos, frame
parallel decode is slower than serial decode due to lack of loopfilter
worker thread.

There are still some known issues that need to be addressed. For example:
decode frame parallel videos with segmentation enabled is not right sometimes.

* frame-parallel:
  Add error handling for frame parallel decode and unit test for that.
  Fix a bug in frame parallel decode and add a unit test for that.
  Add two test vectors to test frame parallel decode.
  Add key frame seeking to webmdec and webm_video_source.
  Implement frame parallel decode for VP9.
  Increase the thread test range to cover 5, 6, 7, 8 threads.
  Fix a bug in adding frame parallel unit test.
  Add VP9 frame-parallel unit test.
  Manually pick "Make the api behavior conform to api spec." from master branch.
  Move vp9_dec_build_inter_predictors_* to decoder folder.
  Add segmentation map array for current and last frame segmentation.
  Include the right header for VP9 worker thread.
  Move vp9_thread.* to common.
  ctrl_get_reference does not need user_priv.
  Seperate the frame buffers from VP9 encoder/decoder structure.
  Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:"""
 Conflicts:
       test/codec_factory.h
       test/decode_test_driver.cc
       test/decode_test_driver.h
       test/invalid_file_test.cc
       test/test-data.sha1
       test/test.mk
       test/test_vectors.cc
       vp8/vp8_dx_iface.c
       vp9/common/vp9_alloccommon.c
       vp9/common/vp9_entropymode.c
       vp9/common/vp9_loopfilter_thread.c
       vp9/common/vp9_loopfilter_thread.h
       vp9/common/vp9_mvref_common.c
       vp9/common/vp9_onyxc_int.h
       vp9/common/vp9_reconinter.c
       vp9/decoder/vp9_decodeframe.c
       vp9/decoder/vp9_decodeframe.h
       vp9/decoder/vp9_decodemv.c
       vp9/decoder/vp9_decoder.c
       vp9/decoder/vp9_decoder.h
       vp9/encoder/vp9_encoder.c
       vp9/encoder/vp9_pickmode.c
       vp9/encoder/vp9_rdopt.c
       vp9/vp9_cx_iface.c
       vp9/vp9_dx_iface.c

This reverts commit a18da9760a74d9ce6fb9f875706dc639c95402f5.

Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02

9 years agovp9: rename 'near' parameters
James Zern [Fri, 30 Jan 2015 23:52:24 +0000 (15:52 -0800)]
vp9: rename 'near' parameters

+ nearest for consistency

near is a reserved word in windows builds so using it as a parameter
name may cause build failures with some configurations

Change-Id: Iddf1d4ecdb39843f14e95dbfd9dca55f07f81403

9 years agoMerge "Format fixes in vp9_rd_pick_inter_mode_sb/sub8x8"
Jingning Han [Fri, 30 Jan 2015 23:49:14 +0000 (15:49 -0800)]
Merge "Format fixes in vp9_rd_pick_inter_mode_sb/sub8x8"

9 years agoMerge "configure: echo --(disable|enable)-* cmdline options"
James Zern [Fri, 30 Jan 2015 21:16:02 +0000 (13:16 -0800)]
Merge "configure: echo --(disable|enable)-* cmdline options"

9 years agoMerge "Explicitly include vp8_rtcd.h"
Johann [Fri, 30 Jan 2015 19:19:28 +0000 (11:19 -0800)]
Merge "Explicitly include vp8_rtcd.h"

9 years agoAbort if firstpass file does not exist
Adrian Grange [Fri, 30 Jan 2015 18:42:29 +0000 (10:42 -0800)]
Abort if firstpass file does not exist

This fixes a crash if the firstpass file does not
exist when doing a two-pass encode.

Change-Id: I3a1a95d68d57125c63123d6208af7537f5a689a0

9 years agoOptimize coef update
Yaowu Xu [Thu, 29 Jan 2015 18:22:48 +0000 (10:22 -0800)]
Optimize coef update

1. move the check of search method of USE_TX_8X8 up one level to
avoid operations of build_tree_distributions()
2. count tx used and avoid computaton for coef udpate when one size
is not used at all.

Change-Id: Ia3e54a2588aa531c41377a1bfaa64385d04a592c

9 years agoEnable use_x86inc for 32bit pic enabled Darwin target
Yunqing Wang [Thu, 29 Jan 2015 19:33:50 +0000 (11:33 -0800)]
Enable use_x86inc for 32bit pic enabled Darwin target

The previous patch "Fix issues in 32bit PIC enabled build" fixed
the x86inc.asm for macho32. Now we can enable use_x86inc while
building libvpx for 32bit pic enabled Darwin target, which makes
the encoder a lot faster(>2X) in this case by turning on the
existing optimizations.

Change-Id: I5f5c7add428d73f50c935c48d0a70aed2b1eb7af

9 years agoMerge "Fix issues in 32bit PIC enabled build"
Yunqing Wang [Fri, 30 Jan 2015 00:41:25 +0000 (16:41 -0800)]
Merge "Fix issues in 32bit PIC enabled build"

9 years agoAllow larger encoder configurations.
Alex Converse [Thu, 15 Jan 2015 21:56:55 +0000 (13:56 -0800)]
Allow larger encoder configurations.

Allow changing colorspace in the encoder and increasing frame size.

Change-Id: I8e7c3b891af29ce420a15beb4f6f9c250245b2bb