webm/libvpx-internal.git
23 months agoMerge "use calloc() instead of malloc()" master origin
John Koleszar [Fri, 9 Nov 2012 16:36:16 +0000 (08:36 -0800)]
Merge "use calloc() instead of malloc()"

23 months agoads2gas.pl: convert push/pop and whole keywords.
Ahmad Sharif [Thu, 8 Nov 2012 23:14:44 +0000 (15:14 -0800)]
ads2gas.pl: convert push/pop and whole keywords.

This change converts push to stmdb and pop to ldmia. In addition word boundaries
are obeyed using \b avoiding substituion where not appropriate.

Patch provided by ihf@chromium.org.

TEST=Used on many Daisy assembly files.
BUG=None.

Change-Id: Ie5b197b158edd0467294551d0b640c8db6530d95

23 months agoIncorrect parameter passed into vp8_stuff_mb
Scott LaVarnway [Wed, 7 Nov 2012 01:35:02 +0000 (17:35 -0800)]
Incorrect parameter passed into vp8_stuff_mb

Should be MACROBLOCK, not MACROBLOCKD

Change-Id: I0353bbdf085a181ae2ac1f0b96849b38566e9f6a

23 months agoMerge "Removed mb_norm_activity_map"
Scott LaVarnway [Wed, 7 Nov 2012 00:28:54 +0000 (16:28 -0800)]
Merge "Removed mb_norm_activity_map"

23 months agouse calloc() instead of malloc()
Pascal Massimino [Tue, 6 Nov 2012 16:53:21 +0000 (08:53 -0800)]
use calloc() instead of malloc()

So that, in case of error, the arrays are not filled with trash
pointers that are attempted a free() during vp8mt_de_alloc_temp_buffers()

Change-Id: Ic074549c2903a43316510eb42e4f393e7d3ee528

23 months agoRemoved mb_norm_activity_map
Scott LaVarnway [Tue, 6 Nov 2012 17:47:45 +0000 (09:47 -0800)]
Removed mb_norm_activity_map

Not used.

Change-Id: I07ba929e3ff82b4b0c86f731769cdf5434c7a816

23 months agoMoving _error counts to macroblock struct
Scott LaVarnway [Tue, 6 Nov 2012 01:30:49 +0000 (17:30 -0800)]
Moving _error counts to macroblock struct

Change-Id: I28ac1519d1594801fef9a623cb64598d3d751eb0

23 months agoMoving MVcount to macroblock struct
Scott LaVarnway [Mon, 5 Nov 2012 20:41:24 +0000 (12:41 -0800)]
Moving MVcount to macroblock struct

Change-Id: Ie22841d096f3c86694b95bd06fc3a8ce1f032a10

23 months agoMoving ymode_count, uv_mode_count to macroblock struct
Scott LaVarnway [Mon, 5 Nov 2012 20:25:18 +0000 (12:25 -0800)]
Moving ymode_count, uv_mode_count to macroblock struct

Change-Id: Ib73c7b2bee4cb2eb2528fa6b381fffe9503079a0

23 months agoMoved skip_true_count to macroblock struct
Scott LaVarnway [Sat, 3 Nov 2012 01:03:03 +0000 (18:03 -0700)]
Moved skip_true_count to macroblock struct

Change-Id: Ie9a26be7c9baa54a0e43a63ed6c77f2746477a9c

23 months agoMoving coef_counts to macroblock struct
Scott LaVarnway [Fri, 2 Nov 2012 23:04:52 +0000 (16:04 -0700)]
Moving coef_counts to macroblock struct

Change-Id: I289564a5a27f0d03ddc6f19c7838542ff22719be

23 months agoMerge "Removed unnecessary VP8_COMP *cpi parameters"
Scott LaVarnway [Mon, 5 Nov 2012 17:51:40 +0000 (09:51 -0800)]
Merge "Removed unnecessary VP8_COMP *cpi parameters"

23 months agoRemoved unnecessary VP8_COMP *cpi parameters
Scott LaVarnway [Fri, 2 Nov 2012 19:10:07 +0000 (12:10 -0700)]
Removed unnecessary VP8_COMP *cpi parameters

Code cleanup

Change-Id: I82f9d787a2f511d39895fd8dfd5347a1676d9dbc

23 months agoMerge "ads2gas.pl: various enhancements to work with flash."
Johann [Fri, 2 Nov 2012 16:26:18 +0000 (09:26 -0700)]
Merge "ads2gas.pl: various enhancements to work with flash."

23 months agoMerge "vpx_scale: sync from experimental"
John Koleszar [Fri, 2 Nov 2012 16:16:41 +0000 (09:16 -0700)]
Merge "vpx_scale: sync from experimental"

23 months agovpx_scale: sync from experimental
John Koleszar [Fri, 2 Nov 2012 02:14:42 +0000 (19:14 -0700)]
vpx_scale: sync from experimental

Import changes made on the experimental branch in preparation for
merging the two branches.

Change-Id: I7b5b8fb4fca155cb1d72e7ba13eef18e6a94a298

23 months agoads2gas.pl: various enhancements to work with flash.
Ahmad Sharif [Thu, 1 Nov 2012 20:01:14 +0000 (13:01 -0700)]
ads2gas.pl: various enhancements to work with flash.

TEST=Ran it on different asm files.

Change-Id: Ief2a009366787954d0eb5c356c64acaef350cf84

23 months agovp8dx_receive_compressed_data() cleanup
Scott LaVarnway [Wed, 31 Oct 2012 20:35:13 +0000 (13:35 -0700)]
vp8dx_receive_compressed_data() cleanup

Change-Id: I6edf0626d00ae177c7c04eec64e1ec0dd861dfbe

23 months agoadd unit test for datarate control
Jim Bankoski [Tue, 30 Oct 2012 02:54:06 +0000 (19:54 -0700)]
add unit test for datarate control

Adds some basic datarate control tests..

Change-Id: I6eff18aa58ef7cfd14886c6b1e048247cd1ad247

23 months agoMinor tweaks to video source frameworks
Jim Bankoski [Sat, 27 Oct 2012 02:49:44 +0000 (19:49 -0700)]
Minor tweaks to video source frameworks

Fix the video source to close if file is open already and add a limit.

Change-Id: I36ada4c609d027b6eaa9b447fe9ad4115532edc1

23 months agovpxenc: add -quiet option
James Zern [Fri, 26 Oct 2012 01:31:35 +0000 (18:31 -0700)]
vpxenc: add -quiet option

suppresses encoder progress

Change-Id: Iacc04d98de970f13697c002363ee3a40a03f021b

23 months agoUse vp8_clear_system_state helper function
Johann [Fri, 26 Oct 2012 00:04:03 +0000 (17:04 -0700)]
Use vp8_clear_system_state helper function

Change-Id: I4dd192c3297e31b8eadd108ca8d0934e58f502f7

23 months agovariance.h uses defines in vpx_config.h
Johann [Thu, 25 Oct 2012 22:51:33 +0000 (15:51 -0700)]
variance.h uses defines in vpx_config.h

Change-Id: Ibd3e4425a3bf8aae8aa33b70da2b84e1cda8c07f

23 months agopostproc_sse2: avoid reading off the end of the limits array
John Koleszar [Tue, 23 Oct 2012 17:59:05 +0000 (10:59 -0700)]
postproc_sse2: avoid reading off the end of the limits array

Rather than unconditionally reading in the next MB's limits, test
the loop exit condition first.

Change-Id: I105d1e92698fb5561aa87160816787604aed03a2

23 months agoMerge "postproc: allocate enough memory for limits buffer"
John Koleszar [Mon, 22 Oct 2012 22:09:33 +0000 (15:09 -0700)]
Merge "postproc: allocate enough memory for limits buffer"

23 months agopostproc: allocate enough memory for limits buffer
John Koleszar [Mon, 22 Oct 2012 21:21:59 +0000 (14:21 -0700)]
postproc: allocate enough memory for limits buffer

The vp8_post_proc_down_and_across_mb_row_sse2() needs space for an
even number of macroblocks, as they are read two at a time for the
chroma planes. Round up the width during the allocation of
pp_limits_buffer to support this.

Change-Id: Ibfc10c7be290d961ab23ac3dde12a7bb96c12af0

23 months agoMerge "Add unit test for decoder test_vector_test"
Yunqing Wang [Mon, 22 Oct 2012 21:26:53 +0000 (14:26 -0700)]
Merge "Add unit test for decoder test_vector_test"

23 months agoAdd unit test for decoder test_vector_test
Yunqing Wang [Thu, 4 Oct 2012 19:59:36 +0000 (12:59 -0700)]
Add unit test for decoder test_vector_test

Got 61 test vectors from vp8-test-vectors.git
(http://git.chromium.org/gitweb/?p=webm/vp8-test-vectors.git)

Added decoder test vectors downloading in unit tests. Uploaded
the test vectors and their md5 files to WebM website.
  $ gsutil cp *.* gs://downloads.webmproject.org/test_data/libvpx

Added their sha1sum to the test/test-data.sha1 file.

In unit tests, download the test vectors to LIBVPX_TEST_DATA_PATH.

Test_vector_test goes through the test vectors, decodes them, and
compute the md5 checksums. The checksums are compared with the
expected md5 checksums to tell if the decoder decodes correctly.

Change-Id: Ia1e84f9347ddf1d4a02e056c0fee7d28dccfae15

2 years agoFix to rd cost computation for mv bias.
Marco Paniconi [Tue, 16 Oct 2012 01:41:32 +0000 (18:41 -0700)]
Fix to rd cost computation for mv bias.

This prevents the rd cost from wrapping around and going negative.

Change-Id: Id61390537d2ad47762e410918bb4e18f6a0912d4

2 years agoMerge "Add option to disable documentation"
John Koleszar [Thu, 11 Oct 2012 16:55:06 +0000 (09:55 -0700)]
Merge "Add option to disable documentation"

2 years agoClean up error return code in alloccommon.c
Yunqing Wang [Thu, 11 Oct 2012 15:46:23 +0000 (08:46 -0700)]
Clean up error return code in alloccommon.c

Clean up the duplicate code as Pascal suggested.

Change-Id: I685fcbb488502e969f6cb73a46db3ea79b90910d

2 years agopost-proc: fix 0 or negative threshold handling
Yunqing Wang [Wed, 10 Oct 2012 18:27:11 +0000 (11:27 -0700)]
post-proc: fix 0 or negative threshold handling

If the threshold(limits) <= 0, skipped filtering and copied the
frame directly. Also, fixed memory allocation checking.

Change-Id: If3d79d5b2bcb71b9777e6eb5cba1384585131e22

2 years agoAdd option to disable documentation
Johann [Wed, 10 Oct 2012 16:16:37 +0000 (09:16 -0700)]
Add option to disable documentation

Documentation is typically auto-detected by checking for php and
doxygen. Add an option to explicitly disable it.

Remove toggle keywords from libraries, examples, documentation and
unit tests. They were not consistent with the default status.

Change-Id: I21049675ccfd8e58ac612cd058641b197db5c0eb

2 years agomulti-res: disable intra on forced ref frames
John Koleszar [Mon, 8 Oct 2012 22:58:04 +0000 (15:58 -0700)]
multi-res: disable intra on forced ref frames

If a reference frame is forced because of low dissimilarity, then
shut off the search of intra modes. This change has mixed results. On
one clip (QVGA), it hurt quality by ~1.5% with negligible speed impact.
On another (VGA) it had negligible affect on quality, but a ~0.2% speed
impact.

Change-Id: Ic8b07648979d732f489de5f094957e140f84d2eb

2 years agoMerge "multi-res: add parent_ref_valid flag"
John Koleszar [Tue, 9 Oct 2012 17:24:37 +0000 (10:24 -0700)]
Merge "multi-res: add parent_ref_valid flag"

2 years agomulti-res: add parent_ref_valid flag
John Koleszar [Mon, 8 Oct 2012 22:54:24 +0000 (15:54 -0700)]
multi-res: add parent_ref_valid flag

Rather than overloading the parent_ref_frame value to shut off the
search in some cases, add a new validity flag. This cleans up some
of the duplicated mr_encoder_id && mr_low_res_mv_avail checks as
well, for readability.

Change-Id: Iddad93a27066c3d85ff2f25a361ac113b288ab7b

2 years agoMerge "post-proc: deblock filter optimization"
Yunqing Wang [Tue, 9 Oct 2012 16:26:36 +0000 (09:26 -0700)]
Merge "post-proc: deblock filter optimization"

2 years agoMerge "multi-res: work around reference mismatch"
John Koleszar [Mon, 8 Oct 2012 22:48:25 +0000 (15:48 -0700)]
Merge "multi-res: work around reference mismatch"

2 years agopost-proc: deblock filter optimization
Yunqing Wang [Fri, 28 Sep 2012 17:13:07 +0000 (10:13 -0700)]
post-proc: deblock filter optimization

1. Algorithm modification:
Instead of having same filter threshold for a whole frame, now we
allow the thresholds to be adjusted for each macroblock. In current
implementation, to avoid excessive blur on background as reported
in issue480(http://code.google.com/p/webm/issues/detail?id=480), we
reduce the thresholds for skipped macroblocks.

2. SSE2 optimization:
As started in issue479(http://code.google.com/p/webm/issues/detail?id=479),
the filter calculation was adjusted for better performance. The c
code was also modified accordingly. This made the deblock filter
2x faster, and the decoder was 1.2x faster overall.

Next, the demacroblock filter will be modified similarly.

Change-Id: I05e54c3f580ccd427487d085096b3174f2ab7e86

2 years agomulti-res: work around reference mismatch
John Koleszar [Mon, 8 Oct 2012 15:39:47 +0000 (08:39 -0700)]
multi-res: work around reference mismatch

In some situations, believed to be an interaction between temporal
scalability and dropped frames, the references available to an
encoder may not be the same references available to its parent.
Previously, the code tried to force the reference frame chosen by
the parent to be used on this frame, even if it was disabled. This
was preventing the pick mode loop from running even once, which led
to a crash.

Attempts to reproduce this bug locally were unsuccessful, so it is
still undetermined what the underlying cause of this issue is. In
the specific case that was failing, the application did not set
any flags which influenced the reference selection on that frame.
ref_frame_flags indicated that the golden frame was disabled,
believed to be because the last frame updated the last and golden
frames, so golden was shut off by default. It's not clear why this
wouldn't have also been true in the lower res encoder, ie, why the
lower res encoder decided to use and/or was allowed to use the
golden frame. We weren't able to debug into the non-crashing
lower res encoder as the crash couldn't be reproduced locally.

Change-Id: Ifb265253d26963ac2afde0e20cf6792788be6af7

2 years agoMerge "Unit Test for Error Resilience Mode"
Adrian Grange [Fri, 5 Oct 2012 00:33:55 +0000 (17:33 -0700)]
Merge "Unit Test for Error Resilience Mode"

2 years agoAdd a unit test for CQ mode.
Ronald S. Bultje [Thu, 4 Oct 2012 23:38:21 +0000 (16:38 -0700)]
Add a unit test for CQ mode.

Change-Id: I66c391987eabc5ea0159bf4a2a4fd8e8e163872f

2 years agoMerge "Added handler for PSNR packets to EncoderTest class"
Adrian Grange [Thu, 4 Oct 2012 17:38:35 +0000 (10:38 -0700)]
Merge "Added handler for PSNR packets to EncoderTest class"

2 years agoMerge "Add initialization and per frame flag members"
Adrian Grange [Thu, 4 Oct 2012 17:37:38 +0000 (10:37 -0700)]
Merge "Add initialization and per frame flag members"

2 years agoUnit Test for Error Resilience Mode
Adrian Grange [Tue, 2 Oct 2012 19:16:27 +0000 (12:16 -0700)]
Unit Test for Error Resilience Mode

This unit test compares the difference in quality with
error resilience enabled and disabled. The test runs
for all of the one-pass encoding modes.

The test ensures that the effect of turning on error
resilience makes less than a 10% difference in PSNR.

Further cases should be added to do a more comprehensive
test.

Change-Id: I1fc747fc78c9459bc6c74494f4b38308dbed0c32

2 years agofix uninitialized value in multi-res encoding
John Koleszar [Wed, 3 Oct 2012 21:52:56 +0000 (14:52 -0700)]
fix uninitialized value in multi-res encoding

If a parent mb is available but is intra coded, then parent_ref_mv is
invalid. Check that the parent is inter coded before trying to access
the parent_ref_mv. Previously the parent_ref_mv was being read from
an uninitialized stack allocation, causing potential OOB reads and
other undefined behavior.

Change-Id: I0c93cd412a19c3a184bcf6decaa145b3a036a6c0

2 years agoAdded handler for PSNR packets to EncoderTest class
Adrian Grange [Tue, 2 Oct 2012 18:27:29 +0000 (11:27 -0700)]
Added handler for PSNR packets to EncoderTest class

Added a virtual function to handle PSNR packets.

Change-Id: Id2a6372c691a14f19bbeed217a93a9df03e81e75

2 years agoAdd initialization and per frame flag members
Adrian Grange [Tue, 2 Oct 2012 18:03:09 +0000 (11:03 -0700)]
Add initialization and per frame flag members

Modified EncoderTest class to have separate member variables
for initialization time and per-frame.

Change-Id: I08a1901f8f3ec16e45f96297e08e7f6df0f4aa0b

2 years agoMerge "Added Reset method to TwopassStatsStore"
Adrian Grange [Wed, 3 Oct 2012 20:45:46 +0000 (13:45 -0700)]
Merge "Added Reset method to TwopassStatsStore"

2 years agoMerge "rtcd/win32: use InitializeCriticalSection explicitly"
John Koleszar [Wed, 3 Oct 2012 19:51:29 +0000 (12:51 -0700)]
Merge "rtcd/win32: use InitializeCriticalSection explicitly"

2 years agoAdded Reset method to TwopassStatsStore
Adrian Grange [Tue, 2 Oct 2012 16:36:41 +0000 (09:36 -0700)]
Added Reset method to TwopassStatsStore

The stats buffer needs to be reset between runs of the
encoder. I added a Reset() function to TwopassStatsStore
and called it at the beginning of each encode.

This enables us to run multiple encodes which was
previously not possible since there was no way to reset
the stats between runs.

Change-Id: Iebb18dab83ba9331f009f764cc858609738a27f9

2 years agortcd/win32: use InitializeCriticalSection explicitly
John Koleszar [Mon, 24 Sep 2012 21:52:18 +0000 (14:52 -0700)]
rtcd/win32: use InitializeCriticalSection explicitly

Protect the call to {Initialize,Delete}CriticalSection() with an
Interlocked{Inc,Dec}rement() pair, rather than the previous static
initialization. This should play better with AppVerifier, and fix issue

  http://code.google.com/p/webm/issues/detail?id=467

Change-Id: I06eadbfac1b3b4414adb8eac862ef9bd14bbe4ad

2 years agoMerge "Added unit test for subtract functions"
John Koleszar [Wed, 3 Oct 2012 15:17:16 +0000 (08:17 -0700)]
Merge "Added unit test for subtract functions"

2 years agoDisable keyframe in real time that's placed one frame after a cut.
Jim Bankoski [Mon, 1 Oct 2012 21:17:43 +0000 (14:17 -0700)]
Disable keyframe in real time that's placed one frame after a cut.

The codec as it stood placed a keyframe one frame after a
real cut scene - and ignored datarate and other considerations.

TODO: Its possible that we should detect a keyframe and recode
the frame ( in certain circumstances) to improve quality.

Change-Id: Ia1fd6d90103f4da4d21ca5ab62897d22e0b888a8

2 years agoResetting of the cyclic_refresh_mode_index:
Marco Paniconi [Thu, 27 Sep 2012 21:30:40 +0000 (14:30 -0700)]
Resetting of the cyclic_refresh_mode_index:

Reset the cyclie refresh mode index in alloc_compressor_data().
This is needed to handle both cases of internal and
external spatial resizing.

Change-Id: I2697e12d45135eae2e8f0d45161811f24722312a

2 years agoReset the cyclic_refresh_mode_index to 0 on resize.
Marco Paniconi [Wed, 26 Sep 2012 22:42:36 +0000 (15:42 -0700)]
Reset the cyclic_refresh_mode_index to 0 on resize.

On an internal spatial resize, this mode index was not reset to 0,
and therefore could exceed dimensions of seg_map or cyclic_refresh_map.

Change-Id: I6fe85dbd2765eb0207a9d9f71fda8d8b8c34f075

2 years agoAdded unit test for subtract functions
Scott LaVarnway [Wed, 26 Sep 2012 20:45:53 +0000 (13:45 -0700)]
Added unit test for subtract functions

Patch Set 1: gain familiarity with unit tests... added simple
4x4 subtract test
Patch Set 2: fixed mistakes, parameterized as suggested
Patch Set 3: randomized the source/predictor data

Change-Id: I33432bdf7c9f2a9b8c2533a37106382c2a8209ee
Signed-off-by: Scott LaVarnway <slavarnway@google.com>
2 years agoMerge "check for x32 targets"
John Koleszar [Tue, 25 Sep 2012 18:32:11 +0000 (11:32 -0700)]
Merge "check for x32 targets"

2 years agoMerge "update gitignores"
John Koleszar [Tue, 25 Sep 2012 18:25:53 +0000 (11:25 -0700)]
Merge "update gitignores"

2 years agoupdate gitignores
Mike Frysinger [Tue, 25 Sep 2012 18:11:13 +0000 (14:11 -0400)]
update gitignores

Change-Id: I67bf154e35fa02b407a9b2c312a536d6bb2aaaf2

2 years agoMerge "disable segmentation on enhancement layers"
Jim Bankoski [Tue, 25 Sep 2012 17:49:25 +0000 (10:49 -0700)]
Merge "disable segmentation on enhancement layers"

2 years agocheck for x32 targets
Mike Frysinger [Tue, 25 Sep 2012 04:37:11 +0000 (00:37 -0400)]
check for x32 targets

Add configure detection of the new x32 ABI as well as support in asm.

Change-Id: Ic66a069599adeb81062090e3f11b71ee1fb97cb8

2 years agoMerge "Move frame allocations out of vp8_decode_frame()"
Scott LaVarnway [Mon, 24 Sep 2012 23:15:54 +0000 (16:15 -0700)]
Merge "Move frame allocations out of vp8_decode_frame()"

2 years agoMerge "Removed bc and bc2 vp8_readers from VP8D_COMP"
Scott LaVarnway [Mon, 24 Sep 2012 20:50:30 +0000 (13:50 -0700)]
Merge "Removed bc and bc2 vp8_readers from VP8D_COMP"

2 years agoMove frame allocations out of vp8_decode_frame()
Scott LaVarnway [Mon, 24 Sep 2012 19:44:45 +0000 (12:44 -0700)]
Move frame allocations out of vp8_decode_frame()

in order to make it easier to implement the frame-base multithreading.

Change-Id: Iea2fd05be34fa704848fdc7669bf167f2ed229c5

2 years agortcd/win32: prefer win32 primatives to pthreads
John Koleszar [Mon, 24 Sep 2012 18:47:35 +0000 (11:47 -0700)]
rtcd/win32: prefer win32 primatives to pthreads

Fixes some build issues for people building for win32 who have a
pthreads emulation layer installed.

Change-Id: I0e0003fa01f65020f6ced35d961dcb1130db37a8

2 years agodisable segmentation on enhancement layers
Jim Bankoski [Mon, 24 Sep 2012 14:53:26 +0000 (07:53 -0700)]
disable segmentation on enhancement layers

This should avoid problems with blocks gettings high quality
improvement despite having recently moved:

Change-Id: Ic0af0de2d6577807fa3c553f47b55d547ef36359

2 years agoUpdate to cyclic refresh:
Marco Paniconi [Mon, 24 Sep 2012 03:56:49 +0000 (20:56 -0700)]
Update to cyclic refresh:

Set the seg map to 0 for key frame.

In previous commit on cyclic refresh, the seg map for key frame
was not reset, and instead used the seg map from last frame.

Change-Id: I848eb2face420dfcd2f7daca6f070b9127ca938b

2 years agoUpdate to cyclic refresh.
Marco Paniconi [Sat, 22 Sep 2012 01:54:11 +0000 (18:54 -0700)]
Update to cyclic refresh.

-Increase the amount of mbs to be refreshed.
-Replace the delta qp with a fixed and reduced delta.
-Change to the mb update loop to try to always update same amount of mbs.

Change-Id: I93ac88002fd8dc677d2337f77998ff93f64e4ff9

2 years agoRemoved bc and bc2 vp8_readers from VP8D_COMP
Scott LaVarnway [Fri, 21 Sep 2012 18:00:29 +0000 (11:00 -0700)]
Removed bc and bc2 vp8_readers from VP8D_COMP

Used mbc instead.

Change-Id: If22136b4fee89b68ca2246265f3c27853701136c

2 years agoMoved vp8dx_get_raw_frame() call to vp8_get_frame()
Scott LaVarnway [Wed, 19 Sep 2012 19:30:44 +0000 (12:30 -0700)]
Moved vp8dx_get_raw_frame() call to vp8_get_frame()

This change is necessary for the frame-based multithreading
implementation.
Since the postproc occurs in this call, vpxdec was modified to time around
vpx_codec_get_frame()

Change-Id: I389acf78b6003cd35e41becc16c893f7d3028523

2 years agoMerge "Changed setup intra recon to be row based"
Scott LaVarnway [Mon, 17 Sep 2012 23:07:08 +0000 (16:07 -0700)]
Merge "Changed setup intra recon to be row based"

2 years agoMerge "Update to 2 layer case in vp8_scalable_patterns."
Adrian Grange [Mon, 17 Sep 2012 20:40:07 +0000 (13:40 -0700)]
Merge "Update to 2 layer case in vp8_scalable_patterns."

2 years agoMerge "Moved mb_no_coeff_skip flag read"
Scott LaVarnway [Mon, 17 Sep 2012 20:08:38 +0000 (13:08 -0700)]
Merge "Moved mb_no_coeff_skip flag read"

2 years agoMerge "Removed pre_mvc"
Scott LaVarnway [Mon, 17 Sep 2012 20:08:18 +0000 (13:08 -0700)]
Merge "Removed pre_mvc"

2 years agoUpdate to 2 layer case in vp8_scalable_patterns.
Marco Paniconi [Mon, 17 Sep 2012 18:57:51 +0000 (11:57 -0700)]
Update to 2 layer case in vp8_scalable_patterns.

Change-Id: I11aa90be41dd585c9784301f47a9d580fac09260

2 years agoUpdate to vp8_scalable_patters.
Marco Paniconi [Fri, 14 Sep 2012 19:07:02 +0000 (12:07 -0700)]
Update to vp8_scalable_patters.

Change-Id: I43ea65bf0a35ddb33a096a392e10b1869ea73f9a

2 years agoMerge "Updates to vp8_scalable_patterns.c."
Adrian Grange [Fri, 14 Sep 2012 16:49:06 +0000 (09:49 -0700)]
Merge "Updates to vp8_scalable_patterns.c."

2 years agoMoved mb_no_coeff_skip flag read
Scott LaVarnway [Thu, 13 Sep 2012 20:37:24 +0000 (13:37 -0700)]
Moved mb_no_coeff_skip flag read

from vp8_decode_frame() to mb_mode_mv_init()

Change-Id: I267fd764a4c826d62e6799dceb1b8fb5f97fde6d

2 years agoRemoved pre_mvc
Scott LaVarnway [Thu, 13 Sep 2012 18:55:57 +0000 (11:55 -0700)]
Removed pre_mvc

Not used.

Change-Id: Ifbd97c9ad537d5184f7e305fa8acf6f027978b6b

2 years agoChanged setup intra recon to be row based
Scott LaVarnway [Thu, 13 Sep 2012 18:51:27 +0000 (11:51 -0700)]
Changed setup intra recon to be row based

Initialize the top line at the beginning of each frame and
the left column at the beginning of each row.

Change-Id: I5412f7ea49ffc490215cf65a62715a6c5e3a5a29

2 years agoMerge "valgrind found motion vectors which exceeded frame boundaries"
Jim Bankoski [Wed, 12 Sep 2012 20:50:29 +0000 (13:50 -0700)]
Merge "valgrind found motion vectors which exceeded frame boundaries"

2 years agofix valgrind mem leak on garbage decode
Jim Bankoski [Tue, 11 Sep 2012 23:30:19 +0000 (16:30 -0700)]
fix valgrind mem leak on garbage decode

Multiple decoders were getting allocated per frame.
If the decoder crashed we exitted with out freeing
them and the next time in we'd allocate over.

This fix removes the allocation and just has 8
boolcoders in the pbi structure

Change-Id: I638b5bda23b622b43b7992aec21dd7cf6f6278da

2 years agoUpdates to vp8_scalable_patterns.c.
Marco Paniconi [Tue, 11 Sep 2012 20:15:51 +0000 (13:15 -0700)]
Updates to vp8_scalable_patterns.c.

Updated/added a few cases of temporal patterns,
and some changes to the encoder settings.

Change-Id: Idaa75cfc4a26e5b6321f273ef9450b5c85368a4d

2 years agovalgrind found motion vectors which exceeded frame boundaries
Scott LaVarnway [Tue, 11 Sep 2012 16:14:02 +0000 (09:14 -0700)]
valgrind found motion vectors which exceeded frame boundaries

Bug introduced in I02d034c70cd97b65025d59dd67c695e1db529f0b

Change-Id: Ifb74ab659f3b3cf5f5b95046bacffb202d5b4d64

2 years agovalgrind caught uninitialized cond
Jim Bankoski [Fri, 7 Sep 2012 23:38:15 +0000 (16:38 -0700)]
valgrind caught uninitialized cond

If the decoder crashes and returned an error before it set up
block offsets but after it set up frame buffers.   We had a
problem decoding the next keyframe because the block offsets
were never set.

Change-Id: Ied2866e9770d80fc66241d5e0d978d4f5f9cdd89

2 years agoMerge "added encode/decode matching validation to tests"
Yaowu Xu [Thu, 6 Sep 2012 16:28:17 +0000 (09:28 -0700)]
Merge "added encode/decode matching validation to tests"

2 years agoAdjusting thresholds in mfqe post-processing
Deb Mukherjee [Tue, 4 Sep 2012 19:09:05 +0000 (12:09 -0700)]
Adjusting thresholds in mfqe post-processing

Adjusts some of the qualification thresholds in mfqe to eliminate
artifacts due to wrong decisions. Besides, a new qualification
criteria is used to disable mfqe if the quality of the previous
frame is itself not too good.

Change-Id: I4097c20b7fd4fcc60cc3003c1e33e8faae2ff066

2 years agoMerge "Encoder denoiser performance improvement"
Yunqing Wang [Fri, 31 Aug 2012 20:51:30 +0000 (13:51 -0700)]
Merge "Encoder denoiser performance improvement"

2 years agoEncoder denoiser performance improvement
Yunqing Wang [Fri, 10 Aug 2012 19:35:55 +0000 (12:35 -0700)]
Encoder denoiser performance improvement

The denoiser function was modified to reduce the computational
complexity.

1. The denoiser c function modification:
The original implementation calculated pixel's filter_coefficient
based on the pixel value difference between current raw frame and last
denoised raw frame, and stored them in lookup tables. For each pixel c,
find its coefficient using
    filter_coefficient[c] = LUT[abs_diff[c]];
and then apply filtering operation for the pixel.

The denoising filter costed about 12% of encoding time when it was
turned on, and half of the time was spent on finding coefficients in
lookup tables. In order to simplify the process, a short cut was taken.
The pixel adjustments vs. pixel diff value were calculated ahead of time.
    adjustment = filtered_value - current_raw
               = (filter_coefficient * diff + 128) >> 8

The adjustment vs. diff curve becomes flat very quick when diff increases.
This allowed us to use only several levels to get a close approximation
of the curve. Following the denoiser algorithm, the adjustments are
further modified according to how big the motion magnitude is.

2. The sse2 function was rewritten.

This change made denoiser filter function 3x faster, and improved the
encoder performance by 7% ~ 10% with the denoiser on.

Change-Id: I93a4308963b8e80c7307f96ffa8b8c667425bf50

2 years agoadded encode/decode matching validation to tests
Yaowu Xu [Thu, 30 Aug 2012 20:43:15 +0000 (13:43 -0700)]
added encode/decode matching validation to tests

This commit adds the ability of validating matched encoder and
decoder to unit tests.

Change-Id: Ie00d69a42477b6a69b324a6bd134939684f7300b

2 years agoMerge "msvs/tests: fix data alignment for asm tests"
John Koleszar [Fri, 31 Aug 2012 17:50:01 +0000 (10:50 -0700)]
Merge "msvs/tests: fix data alignment for asm tests"

2 years agomsvs/tests: fix data alignment for asm tests
James Zern [Tue, 28 Aug 2012 00:13:09 +0000 (17:13 -0700)]
msvs/tests: fix data alignment for asm tests

Replace DECLARE_ALIGNED_ with vpx_memalign()

DECLARE_ALIGNED (__declspec(align())) does not work as intended when
used on class data members:

Data in classes or structures is aligned within the class or structure
at the minimum of its natural alignment and the current packing setting
(from #pragma pack or the /Zp compiler option)

Change-Id: I304aaa6c3716fbfae24675ecf192f4b40787e83e

2 years agoMerge "silent one more compiler warning"
Yaowu Xu [Tue, 28 Aug 2012 14:03:19 +0000 (07:03 -0700)]
Merge "silent one more compiler warning"

2 years agosilent one more compiler warning
Yaowu Xu [Tue, 28 Aug 2012 13:33:24 +0000 (06:33 -0700)]
silent one more compiler warning

Change-Id: I621a2bbd5f07691fa76dac36b65f406ad4fed792

2 years agoMerge "Added error checking to vp8cx_create_encoder_threads()"
Scott LaVarnway [Thu, 23 Aug 2012 20:55:06 +0000 (13:55 -0700)]
Merge "Added error checking to vp8cx_create_encoder_threads()"

2 years agoMerge "Added row based extend borders"
Scott LaVarnway [Thu, 23 Aug 2012 00:23:28 +0000 (17:23 -0700)]
Merge "Added row based extend borders"

2 years agoMerge "Add biasing to ZEROMV for videos with static background"
Jim Bankoski [Tue, 21 Aug 2012 22:56:59 +0000 (15:56 -0700)]
Merge "Add biasing to ZEROMV for videos with static background"

2 years agoMerge "Removed unused dr from VP8D_COMP"
Scott LaVarnway [Tue, 21 Aug 2012 22:20:14 +0000 (15:20 -0700)]
Merge "Removed unused dr from VP8D_COMP"

2 years agoMerge "Removed last_kf_gf_q"
Scott LaVarnway [Tue, 21 Aug 2012 22:19:58 +0000 (15:19 -0700)]
Merge "Removed last_kf_gf_q"