]> granicus.if.org Git - libvpx/log
libvpx
11 years agoMerge "Bug fix: use correct count_mb_ref_frame_usage"
Scott LaVarnway [Tue, 11 Dec 2012 19:00:53 +0000 (11:00 -0800)]
Merge "Bug fix: use correct count_mb_ref_frame_usage"

11 years agoBug fix: use correct count_mb_ref_frame_usage
Scott LaVarnway [Tue, 11 Dec 2012 01:38:55 +0000 (17:38 -0800)]
Bug fix: use correct count_mb_ref_frame_usage

Change-Id: I9702f3e9ed664c2537e7874698c944620b07fff8

11 years agoMoved error_bins to macroblock struct
Scott LaVarnway [Tue, 11 Dec 2012 01:32:58 +0000 (17:32 -0800)]
Moved error_bins to macroblock struct

Change-Id: Ic9956ddf1c2ddffcf7be7fdfc23ad9a2426fc47a
WIP: Fixing unsafe threading in VP8 encoder.

11 years agoMerge "Moved zbin_mode_boost to macroblock struct"
Scott LaVarnway [Tue, 11 Dec 2012 00:22:57 +0000 (16:22 -0800)]
Merge "Moved zbin_mode_boost to macroblock struct"

11 years agoUpdate correct macroblock quantize_b function ptrs
Scott LaVarnway [Mon, 10 Dec 2012 23:23:11 +0000 (15:23 -0800)]
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

11 years agoMoved zbin_mode_boost to macroblock struct
Scott LaVarnway [Mon, 10 Dec 2012 18:33:01 +0000 (10:33 -0800)]
Moved zbin_mode_boost to macroblock struct

Fixing unsafe threading in VP8 encoder.

Change-Id: Ibf4c89a2043654834747811bc11eb283de0bb830

11 years agoMoved zbin_over_quant to macroblock struct
Scott LaVarnway [Mon, 10 Dec 2012 18:51:42 +0000 (10:51 -0800)]
Moved zbin_over_quant to macroblock struct

Change-Id: I76fe20ade099573997404b8733cf7f79e82fb21e
WIP: Fixing unsafe threading in VP8 encoder.

11 years agoMoved denoiser frame copy/updates out of loopfilter thread
Scott LaVarnway [Fri, 7 Dec 2012 20:19:52 +0000 (12:19 -0800)]
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

11 years agoMerge "added work buffer for denoiser"
Scott LaVarnway [Thu, 6 Dec 2012 23:27:54 +0000 (15:27 -0800)]
Merge "added work buffer for denoiser"

11 years agoadded work buffer for denoiser
Scott LaVarnway [Thu, 6 Dec 2012 03:09:05 +0000 (19:09 -0800)]
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

11 years agoDisable background update on non-base layer frames
Adrian Grange [Wed, 5 Dec 2012 21:24:52 +0000 (13:24 -0800)]
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

11 years agoRemoved check_gf_quality()
Scott LaVarnway [Wed, 7 Nov 2012 23:54:20 +0000 (15:54 -0800)]
Removed check_gf_quality()

and various unused members in VP8_COMP along with other
code cleanups.

Change-Id: I56c6c0a77a51f5ac5cbd6071017bcbfd2623b7df

11 years agoMoving mbs_tested_so_far, mode_test_hit_counts to macroblock struct
Scott LaVarnway [Wed, 5 Dec 2012 00:52:47 +0000 (16:52 -0800)]
Moving mbs_tested_so_far, mode_test_hit_counts to macroblock struct

Change-Id: Ifa78c0a953fab3e5dd7af0446924846c7022cd09

11 years agoMerge "Moving rd_thresh_mult, rd_threshes to macroblock struct"
Scott LaVarnway [Mon, 3 Dec 2012 20:05:48 +0000 (12:05 -0800)]
Merge "Moving rd_thresh_mult, rd_threshes to macroblock struct"

11 years agoMerge "Moving count_mb_ref_frame_usage to macroblock struct"
Scott LaVarnway [Mon, 3 Dec 2012 19:55:46 +0000 (11:55 -0800)]
Merge "Moving count_mb_ref_frame_usage to macroblock struct"

11 years agoDisable fast unaligned on armv5te
Martin Storsjo [Wed, 28 Nov 2012 20:05:42 +0000 (22:05 +0200)]
Disable fast unaligned on armv5te

This is enabled by default in the main configure.sh, but apparently
is supposed to be disabled if the hardware doesn't support it.
Unaligned reads is only supported on armv6 and newer.

Change-Id: Ie1412e36a14036bbb4fe7b89aa36a178f35b2228

11 years agoMerge "avoid redefining DECLSPEC_DEPRECATED"
John Koleszar [Wed, 28 Nov 2012 18:19:44 +0000 (10:19 -0800)]
Merge "avoid redefining DECLSPEC_DEPRECATED"

11 years agotests: add xmm register check for win64 targets
James Zern [Tue, 27 Nov 2012 21:08:05 +0000 (13:08 -0800)]
tests: add xmm register check for win64 targets

Change-Id: I69d00bfd1b10c03581838b15cd9a6dd66f4fa416

11 years agoavoid redefining DECLSPEC_DEPRECATED
James Zern [Tue, 27 Nov 2012 22:03:36 +0000 (14:03 -0800)]
avoid redefining DECLSPEC_DEPRECATED

fixes, e.g.:

In file included from ../vpx/internal/../vpx_decoder.h:33:0,
                 from ../vpx/internal/vpx_codec_internal.h:46,
                 from ../vp8/common/onyx.h:21,
                 from ../vp8/encoder/block.h:15,
                 from ../test/subtract_test.cc:18:
../vpx/internal/../vpx_codec.h:52:0: warning: "DECLSPEC_DEPRECATED"
redefined
/usr/x86_64-w64-mingw32/sys-root/mingw/include/winnt.h:164:0: note: this
is the location of the previous definition

Change-Id: Iddc9318451d3e4e4a78b4d706518083fffff5c61

11 years agoUpdates to qp-regulate and rate correction factor.
Marco Paniconi [Mon, 26 Nov 2012 22:14:50 +0000 (14:14 -0800)]
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

11 years agoMerge "vp8_intra_pred_y_tm_sse2: save/restore xmm registers"
James Zern [Mon, 26 Nov 2012 20:14:06 +0000 (12:14 -0800)]
Merge "vp8_intra_pred_y_tm_sse2: save/restore xmm registers"

11 years agoMerge "vpxenc: don't print STATS_PKT size w/--quiet"
John Koleszar [Wed, 21 Nov 2012 04:35:41 +0000 (20:35 -0800)]
Merge "vpxenc: don't print STATS_PKT size w/--quiet"

11 years agoMerge "vp8_loop_filter_bh_y_sse2: save/restore xmm registers"
John Koleszar [Wed, 21 Nov 2012 04:23:41 +0000 (20:23 -0800)]
Merge "vp8_loop_filter_bh_y_sse2: save/restore xmm registers"

11 years agovp8_filter_block1d4_h6_ssse3: add missing xmm restore
James Zern [Wed, 21 Nov 2012 01:52:03 +0000 (17:52 -0800)]
vp8_filter_block1d4_h6_ssse3: add missing xmm restore

Change-Id: Ia8f6b6c2a9ed60bee7949dd06fcc18b392e91d76

11 years agovp8_loop_filter_bh_y_sse2: save/restore xmm registers
James Zern [Wed, 21 Nov 2012 01:49:24 +0000 (17:49 -0800)]
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

11 years agovp8_intra_pred_y_tm_sse2: save/restore xmm registers
James Zern [Tue, 20 Nov 2012 02:45:17 +0000 (18:45 -0800)]
vp8_intra_pred_y_tm_sse2: save/restore xmm registers

xmm6/xmm7 should be saved and restored for Windows x64; prevents an
encoder mismatch and some datarate issues.

Change-Id: Ifa1a82ab25fbdc5112d66f5332e14b16e69ac164

11 years agoUpstream build bug for chromium
Johann [Mon, 19 Nov 2012 20:47:27 +0000 (12:47 -0800)]
Upstream build bug for chromium

https://codereview.chromium.org/11413061/

The Android NDK automatically manages the include directories. Trying
to do so manually for the Android GYP files can cause the wrong setjmp.h
to be included.

Change-Id: I5c3769f983fcbad1ed602feda781690c6e4e97b3

11 years agovpxenc: don't print STATS_PKT size w/--quiet
James Zern [Sun, 18 Nov 2012 00:36:02 +0000 (16:36 -0800)]
vpxenc: don't print STATS_PKT size w/--quiet

missed in 1fc3cc8

Change-Id: I80ffc1179245bc124e9938aad92a4d5fdfee187b

11 years agoMove documentation file list to relevant make file
Johann [Fri, 16 Nov 2012 01:19:44 +0000 (17:19 -0800)]
Move documentation file list to relevant make file

Change-Id: I2fe3095c4eb60233f00830d4124583ce7a64caa4

11 years agoEach make file is responsible for its own directory
Johann [Fri, 16 Nov 2012 00:41:03 +0000 (16:41 -0800)]
Each make file is responsible for its own directory

Change-Id: Ia8a59ce79045af209e49c68810bae44616422db5

11 years agoSequester vpx_ports file list
Johann [Fri, 16 Nov 2012 00:28:20 +0000 (16:28 -0800)]
Sequester vpx_ports file list

Move BUILD_LIBVPX evaluation before the include.

Change-Id: I8860414c42a8161765a17bf433ff2607c0d027ca

11 years agoUpdate to datarate_test.
Marco Paniconi [Wed, 14 Nov 2012 23:05:06 +0000 (15:05 -0800)]
Update to datarate_test.

Exlcude key frame from buffer underrun check, and increase
lowest bitrate in BasicBufferModel.
Both changes are needed because of a known issue (#495).

Change-Id: If5e994f813d7d5ae870c1a72be404c8f7dbbdf27

12 years agoMerge "use calloc() instead of malloc()"
John Koleszar [Fri, 9 Nov 2012 16:36:16 +0000 (08:36 -0800)]
Merge "use calloc() instead of malloc()"

12 years 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

12 years 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

12 years agoMoving count_mb_ref_frame_usage to macroblock struct
Scott LaVarnway [Wed, 7 Nov 2012 00:58:28 +0000 (16:58 -0800)]
Moving count_mb_ref_frame_usage to macroblock struct

Change-Id: I44e4e3869f231ae270cca98c9565f23c512e3ddf

12 years 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"

12 years agoMoving rd_thresh_mult, rd_threshes to macroblock struct
Scott LaVarnway [Wed, 7 Nov 2012 00:27:00 +0000 (16:27 -0800)]
Moving rd_thresh_mult, rd_threshes to macroblock struct

Change-Id: I650a593162280ab40e71e527ec6518303e2d5723

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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"

12 years 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

12 years 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."

12 years 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"

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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

12 years 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"

12 years 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

12 years 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"

12 years 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

12 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

12 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"

12 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

12 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

12 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

12 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

12 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"

12 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

12 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"

12 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"

12 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

12 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

12 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"

12 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

12 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"

12 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"

12 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

12 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

12 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

12 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

12 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"

12 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"

12 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

12 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

12 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"

12 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

12 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

12 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

12 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>
12 years agoMerge "check for x32 targets"
John Koleszar [Tue, 25 Sep 2012 18:32:11 +0000 (11:32 -0700)]
Merge "check for x32 targets"

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

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

Change-Id: I67bf154e35fa02b407a9b2c312a536d6bb2aaaf2

12 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"

12 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

12 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()"

12 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"

12 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

12 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