James Zern [Fri, 5 Sep 2014 19:01:59 +0000 (12:01 -0700)]
Merge changes I7b9f40dc,I76e74f2e
* changes:
vp9: correct context buffer resize check
vp9: fail decode if block/frame refs are corrupt
James Zern [Fri, 5 Sep 2014 18:58:55 +0000 (11:58 -0700)]
Merge "fix x86-darwin* build"
James Zern [Fri, 5 Sep 2014 18:58:09 +0000 (11:58 -0700)]
Merge "vp9: skip loopfilter when the frame is corrupt"
Dmitry Kovalev [Fri, 5 Sep 2014 17:31:41 +0000 (10:31 -0700)]
Merge "Adding temp cpi var."
Jia Jia [Fri, 5 Sep 2014 05:02:22 +0000 (05:02 +0000)]
vp8 common: change 'HAVE_NEON_ASM' to 'HAVE_NEON' for compiling functions of NEON intrinsics.
Change-Id: I975e5eac16f8b623ff589f0ec072cdaff2183b04
James Zern [Fri, 5 Sep 2014 06:32:13 +0000 (23:32 -0700)]
fix x86-darwin* build
vp9_variance_sse2.c contains a mix of intrinsics and references to
assembly which uses x86inc.asm; it's conditionally included as a result.
Change-Id: I254451483a65881c0b8e18e27bf0c3ddef60c4ec
James Zern [Fri, 11 Jul 2014 07:05:57 +0000 (00:05 -0700)]
bilinearpredict_neon: fix type conversion warnings
make bifilter4_coeff[][] uint8_t, no values exceed this range and
they're loaded with vdup_n_u8().
Change-Id: I921983e9edd828d29820e40ac30a7801dbe0fb4f
James Zern [Thu, 4 Sep 2014 23:05:18 +0000 (16:05 -0700)]
vp9: correct context buffer resize check
allocations within vp9_alloc_context_buffers() rely on mi_rows/mi_cols
individually, use those to determine whether to realloc rather than
stride and stride * rows. this fixes a crash with some fuzzed files for
invalid accesses into last_frame_seg_map and above_context.
Change-Id: I7b9f40dcf170d443890f3bd2acd285507943c7d4
James Zern [Thu, 4 Sep 2014 22:11:45 +0000 (15:11 -0700)]
vp9: fail decode if block/frame refs are corrupt
proceeding using a corrupt (incompletely decoded) frame reference may
lead to incorrect assumptions about allocation sizes leading to a crash.
Change-Id: I76e74f2e1be127c2e2c7e1174bb3307497dfd23d
Dmitry Kovalev [Fri, 5 Sep 2014 00:28:22 +0000 (17:28 -0700)]
Merge "Removing sz member from vpx_codec_priv. "
Dmitry Kovalev [Fri, 5 Sep 2014 00:28:16 +0000 (17:28 -0700)]
Merge "Removing unused function prototypes."
JackyChen [Thu, 4 Sep 2014 23:59:53 +0000 (16:59 -0700)]
Merge "Map motion magnitude in VP9 denoiser."
Jingning Han [Thu, 4 Sep 2014 23:09:07 +0000 (16:09 -0700)]
Merge "Speed up compound inter prediction mode check"
JackyChen [Thu, 4 Sep 2014 22:48:22 +0000 (15:48 -0700)]
Merge "Update the condition when COPY_BLOCK is chosen."
Dmitry Kovalev [Thu, 4 Sep 2014 22:36:52 +0000 (15:36 -0700)]
Merge "Removing local set_speed_features() function."
JackyChen [Thu, 4 Sep 2014 21:44:46 +0000 (14:44 -0700)]
Map motion magnitude in VP9 denoiser.
This is to keep the same with VP8 denoiser.
If motion magnitude is small,
make denoiser more aggressive.
Change-Id: I942a6e2f2ed9aec6f0c4c1f9e5fa47066cadcc0c
Dmitry Kovalev [Thu, 4 Sep 2014 21:51:29 +0000 (14:51 -0700)]
Adding temp cpi var.
Change-Id: Ifa3c1cc2317c1bc21d1042b9662b35056d1e9ed0
Dmitry Kovalev [Thu, 4 Sep 2014 21:47:42 +0000 (14:47 -0700)]
Removing sz member from vpx_codec_priv.
Change-Id: I811526a9ee9f237604f72abe7fc677e39e0f457f
JackyChen [Thu, 4 Sep 2014 21:08:18 +0000 (14:08 -0700)]
Update the condition when COPY_BLOCK is chosen.
The change is just to keep the condition the same with VP8.
Change-Id: I9662b40996126605945dd853c0cbe8916c1ce578
Dmitry Kovalev [Thu, 4 Sep 2014 21:27:04 +0000 (14:27 -0700)]
Merge "Actually resetting random generator for all variance test cases."
Dmitry Kovalev [Thu, 4 Sep 2014 21:26:30 +0000 (14:26 -0700)]
Removing unused function prototypes.
Change-Id: Ia5e383e2cf18052f6f1eacf8b9495ab8e4d58878
JackyChen [Thu, 4 Sep 2014 21:16:26 +0000 (14:16 -0700)]
Merge "Fix a bug in VP9 denoiser."
Dmitry Kovalev [Thu, 4 Sep 2014 20:59:37 +0000 (13:59 -0700)]
Merge "Adding sse2 variant for vp9_mse{8x8, 8x16, 16x8}."
Dmitry Kovalev [Thu, 4 Sep 2014 19:24:52 +0000 (12:24 -0700)]
Actually resetting random generator for all variance test cases.
Calling Reset(int) method instead of overloaded operator()(int).
Adding underscore at the end of class member name.
Change-Id: I01934e7bc056d4b594e5d05d693328febd34ac3c
JackyChen [Thu, 4 Sep 2014 18:16:56 +0000 (11:16 -0700)]
Fix a bug in VP9 denoiser.
When the first try of denoising turns out to be too much,
we will use a softer filter by adopting an adjustment to
make the result closer to original pixel (as in VP8 denoiser).
The old code made the adjustment in the wrong direction.
Change-Id: I84e28fa9e01eef47c5a37d5a2e6d3d378a06786b
James Zern [Thu, 4 Sep 2014 18:00:53 +0000 (11:00 -0700)]
Merge "arm: Fix building vp8_subpixelvariance_neon.c with MSVC"
Scott LaVarnway [Tue, 2 Sep 2014 12:27:28 +0000 (05:27 -0700)]
Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 10""
This reverts commit
677fb5123e0ece1d6c30be9d0282e1e1f594a56d
Compiles with 4.6.
Change-Id: I7f87048911b6bc28a61741d95501fa45ee97b819
Jia Jia [Thu, 4 Sep 2014 09:36:18 +0000 (09:36 +0000)]
vp8 common: change 'HAVE_NEON_ASM' to 'HAVE_NEON' for compiling idct_blk_neon.c.
Change-Id: Ib89107fb824b5fe58afef6841104d5a27b2e0f2d
Martin Storsjo [Thu, 4 Sep 2014 06:23:08 +0000 (09:23 +0300)]
arm: Fix building vp8_subpixelvariance_neon.c with MSVC
Use the right return values - vget_low_s64 returns int64x1_t, not
a normal int64_t.
Also make __builtin_prefetch a no-op on MSVC for this file.
Change-Id: I4d2fce01d0ba106b98d3d53b137803119c2c2c08
Dmitry Kovalev [Thu, 4 Sep 2014 02:41:28 +0000 (19:41 -0700)]
Merge "Consistent allocation of vpx_codec_alg_priv_t."
Dmitry Kovalev [Tue, 2 Sep 2014 19:09:14 +0000 (12:09 -0700)]
Adding sse2 variant for vp9_mse{8x8, 8x16, 16x8}.
Change-Id: I6786d25ce4f32b8d8912f2d239a45ca15b310c4b
Dmitry Kovalev [Thu, 4 Sep 2014 01:57:33 +0000 (18:57 -0700)]
Merge "Replacing asm 16x16 variance calculation with intrinsics."
Dmitry Kovalev [Thu, 4 Sep 2014 01:57:25 +0000 (18:57 -0700)]
Merge "Small cleanup: reusing existing code."
Yaowu Xu [Thu, 4 Sep 2014 00:17:12 +0000 (17:17 -0700)]
Merge "Add a more complex SEG_LVL_SKIP test vector."
Jingning Han [Wed, 3 Sep 2014 00:32:12 +0000 (17:32 -0700)]
Speed up compound inter prediction mode check
This commit allows the encoder to store outcomes of single reference
frame modes and compares them to decide if the inter prediction
filter, forward transform, and quantization can be skipped.
The compression performance of speed 3 is down
derf -0.364%
stdhd -0.198%
For test sequences, the speed 3 runtime is reduced
highway CIF 100 kbps, 51976 ms -> 45033 ms, 13% speed-up
stockholm 720p 1000 kbps, 71826 ms -> 67838 ms, 5.5% speed-up
pedestrian 1080p 2000 kbps, 154924 ms -> 150702 ms, 2.6% speed-up
Change-Id: I5aa26f918d2b4b5197a2c0afa2779319f1c88e44
Alex Converse [Wed, 3 Sep 2014 22:08:49 +0000 (15:08 -0700)]
Add a more complex SEG_LVL_SKIP test vector.
This file changes the segmentation map, deactivates the map, and
reactivates the map.
Change-Id: I1c8b8949887257b9f4c49a1a9ba9a7c74666ef2e
Yaowu Xu [Wed, 3 Sep 2014 21:57:02 +0000 (14:57 -0700)]
Merge "Change last_partition_redo_frequency for speed 3"
Yaowu Xu [Wed, 3 Sep 2014 21:55:28 +0000 (14:55 -0700)]
Merge "Remove redundant code"
Marco [Wed, 3 Sep 2014 20:58:16 +0000 (13:58 -0700)]
Merge "Make process_denoise_mode_change function cond-compiled."
Scott LaVarnway [Wed, 3 Sep 2014 18:26:27 +0000 (11:26 -0700)]
Neon version of vp8_build_intra_predictors_mby_s() and
vp8_build_intra_predictors_mbuv_s().
This patch replaces the assembly version with an intrinsic
version.
On a Nexus 7, vpxenc (in realtime mode, speed -12)
reported a performance improvement of ~2.6%.
Change-Id: I9ef65bad929450c0215253fdae1c16c8b4a8f26f
Scott LaVarnway [Tue, 26 Aug 2014 19:13:03 +0000 (12:13 -0700)]
VP8 for ARMv8 by using NEON intrinsics 17
Add vp8_subpixelvariance_neon.c
- vp8_sub_pixel_variance16x16_neon_func
- vp8_variance_halfpixvar16x16_h_neon
- vp8_variance_halfpixvar16x16_v_neon
- vp8_variance_halfpixvar16x16_hv_neon
- vp8_sub_pixel_variance8x8_neon
Change-Id: I3e5d85b2eafc26be0eef6a777789b80e4579257b
Signed-off-by: James Yu <james.yu@linaro.org>
Johann [Wed, 3 Sep 2014 20:27:11 +0000 (13:27 -0700)]
Merge "Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 06" This reverts commit
81ad047ee57ecb0e2c1ee4dcebda54a44ea54ae9. Revert "VP8 for ARMv8 by using NEON intrinsics 15" This reverts commit
727af7cebe3698b8493ba6c1360b0a6606c310fb.""
Dmitry Kovalev [Wed, 3 Sep 2014 20:21:38 +0000 (13:21 -0700)]
Merge "Cleaning up vp9_variance_avx2.c."
Yaowu Xu [Wed, 3 Sep 2014 20:00:02 +0000 (13:00 -0700)]
Merge "Merge two similar functions into one"
Dmitry Kovalev [Wed, 3 Sep 2014 19:20:29 +0000 (12:20 -0700)]
Small cleanup: reusing existing code.
Change-Id: Iac4775ad98e988f2b9cf5bd0dc91ab994d0262ce
Dmitry Kovalev [Wed, 3 Sep 2014 19:11:37 +0000 (12:11 -0700)]
Merge "Removing duplicated code."
Yaowu Xu [Wed, 3 Sep 2014 18:54:44 +0000 (11:54 -0700)]
Merge "select_tx_mode(): remove special case for key frame"
Marco [Wed, 3 Sep 2014 18:35:06 +0000 (11:35 -0700)]
Make process_denoise_mode_change function cond-compiled.
This function is called only when temporal denoising is enabled.
Change-Id: I25a036e3d628edd34410d6e6fe1f9e68a90a8e56
Yaowu Xu [Tue, 2 Sep 2014 19:42:34 +0000 (12:42 -0700)]
Merge two similar functions into one
intra_super_block_yrd() and inter_super_block_yrd() are largely same,
this commit merges them into one to reduce code duplication.
Change-Id: I64d7042a5b099345627cf55663010c185b25ec37
Dmitry Kovalev [Wed, 3 Sep 2014 18:05:45 +0000 (11:05 -0700)]
Merge "Removing clear_system_state() call from update_coef_probs()."
Dmitry Kovalev [Wed, 3 Sep 2014 01:26:53 +0000 (18:26 -0700)]
Consistent allocation of vpx_codec_alg_priv_t.
Change-Id: I5a03496de035fbcf31e4527cd25fcae4627a57a0
Minghai Shang [Wed, 3 Sep 2014 17:51:19 +0000 (10:51 -0700)]
Merge "[svc] Temporal svc with two pass rate control"
Yaowu Xu [Wed, 3 Sep 2014 01:53:10 +0000 (18:53 -0700)]
Change last_partition_redo_frequency for speed 3
From 3 to 2, which seems to be slightly positive on compression for
all test sets, also reduces encoding time by 2%-5%, varying on the
test clips.
Change-Id: If045417bd27311700c919b4a335eff0dc1130ae0
Yaowu Xu [Wed, 3 Sep 2014 01:00:49 +0000 (18:00 -0700)]
Remove redundant code
Change-Id: I453b167f03811a3cd3592089593b3f2823f62ab3
Yaowu Xu [Tue, 2 Sep 2014 23:21:57 +0000 (16:21 -0700)]
select_tx_mode(): remove special case for key frame
This commit removes the special case for key frame, as transform size
decision is controlled by the appropriate speed feature for all lossy
coding modes: tx_size_search_method.
Change-Id: I9677171e3f2432ec23705f7c5ea8170dd4562fae
Yaowu Xu [Wed, 3 Sep 2014 15:12:20 +0000 (08:12 -0700)]
Merge "Add a test vector for SEG_LVL_SKIP."
Paul Wilkins [Wed, 3 Sep 2014 09:26:47 +0000 (02:26 -0700)]
Merge "Skip comp inter mode test in RD loop with same frame bias signs"
Jingning Han [Wed, 3 Sep 2014 01:05:03 +0000 (18:05 -0700)]
Skip comp inter mode test in RD loop with same frame bias signs
This commit allows the encoder to skip check on compound inter
modes in the rate-distortion optimization loop, if the reference
frame bias signs are the same.
Change-Id: Ib753e6bb11cbdd338aee69dbe2b649671f75a6b0
Dmitry Kovalev [Wed, 3 Sep 2014 00:57:35 +0000 (17:57 -0700)]
Removing duplicated code.
Change-Id: I7b5c776d5e6f5ca428b87fa9411ae4012a9538ba
Dmitry Kovalev [Wed, 3 Sep 2014 00:35:59 +0000 (17:35 -0700)]
Merge "Removing MMX SAD calculation code."
Alex Converse [Tue, 2 Sep 2014 23:39:21 +0000 (16:39 -0700)]
Add a test vector for SEG_LVL_SKIP.
Change-Id: Ib41acade12fe6cdd4c4a4efdb1260d5f100a3e7f
Deb Mukherjee [Tue, 2 Sep 2014 22:41:27 +0000 (15:41 -0700)]
Merge "Adds config opt for highbitdepth + misc. vpx"
Dmitry Kovalev [Tue, 2 Sep 2014 21:41:36 +0000 (14:41 -0700)]
Removing MMX SAD calculation code.
Removed functions:
* vp9_sad_16x16_mmx
* vp9_sad_8x16_mmx
* vp9_sad_16x8_mmx
* vp9_sad_8x8_mmx
* vp9_sad_4x4_mmx
Change-Id: Ic5174b93b64d65d846f0c11e72cab149e9472bc3
Deb Mukherjee [Tue, 26 Aug 2014 19:35:15 +0000 (12:35 -0700)]
Adds config opt for highbitdepth + misc. vpx
Adds config parameter vp9_highbitdepth, to support highbitdepth profiles.
Also includes most vpx level high bit-depth functions. However
encode/decode in the highbitdepth profiles will not work until
the rest of the code is in place.
Change-Id: I34c53b253c38873611057a6cbc89a1361b8985a6
Dmitry Kovalev [Tue, 2 Sep 2014 21:02:04 +0000 (14:02 -0700)]
Merge "Switching back to #define instead of static const int."
Dmitry Kovalev [Tue, 2 Sep 2014 17:50:12 +0000 (10:50 -0700)]
Replacing asm 16x16 variance calculation with intrinsics.
New code is 20% faster for 64-bit and 15% faster for 32-bit. Compiled
using clang.
Change-Id: Icfea461238411001fd093561293dbfedfbf8d0bb
Minghai Shang [Tue, 2 Sep 2014 19:05:14 +0000 (12:05 -0700)]
[svc] Temporal svc with two pass rate control
It's built based on current spatial svc code.
We only support one spatial two temporal layers at this time.
Change-Id: I1fdc8584354b910331e626bfae60473b3b701ba1
Dmitry Kovalev [Tue, 2 Sep 2014 18:29:40 +0000 (11:29 -0700)]
Switching back to #define instead of static const int.
To avoid 'variable length array' warnings from gcc.
Change-Id: I426f7e93ce674a10b901e79c0c9d9df5d4e47cb6
Jingning Han [Tue, 2 Sep 2014 17:57:10 +0000 (10:57 -0700)]
Skip comp inter mode tests for arf coding
This commit skips the compound inter mode prediction check in the
rate-distortion optimization loop for ARF coding. It reduces the
runtime for certain test clips at speed 3, at no compression
performance change:
bus CIF 1000 kbps, 8260 ms -> 8090 ms, 1.8% speed-up
stockholm 720p 1000 kbps, 74453 ms -> 71826 ms, 2.9% speed-up
No visible speed-up for pedestrian area 1080p at 2000 kbps.
Change-Id: Ic68aa56837159b726563b784e2e3729e846465ad
Dmitry Kovalev [Wed, 28 May 2014 18:44:45 +0000 (11:44 -0700)]
Cleaning up vp9_variance_avx2.c.
Change-Id: I75eb47dd21f87015efd673dbd2aa71f4386afdf5
Marco [Tue, 2 Sep 2014 17:58:41 +0000 (10:58 -0700)]
Merge "Updates to adaptive/aggressive denoiser mode."
Dmitry Kovalev [Tue, 2 Sep 2014 17:01:20 +0000 (10:01 -0700)]
Merge "Removing 'frames' field from VP9_COMP."
Dmitry Kovalev [Tue, 2 Sep 2014 17:00:51 +0000 (10:00 -0700)]
Merge "Adding get_frame_pkt_flags() function."
Marco [Tue, 2 Sep 2014 16:45:37 +0000 (09:45 -0700)]
Updates to adaptive/aggressive denoiser mode.
Parameter changes and modification to zero_last bias.
Change-Id: I50a408d47fde049c562bbe95075194cb0f17c31b
Johann [Tue, 2 Sep 2014 16:28:14 +0000 (09:28 -0700)]
Merge "Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 08"""
Dmitry Kovalev [Tue, 2 Sep 2014 16:25:16 +0000 (09:25 -0700)]
Merge "Removing lookup_next_frame_stats()."
Jingning Han [Tue, 2 Sep 2014 15:32:52 +0000 (08:32 -0700)]
Merge "Skip intra mode tests depending on inter residuals"
Dmitry Kovalev [Mon, 1 Sep 2014 01:39:46 +0000 (18:39 -0700)]
Merge "Replacing asm 8x8 variance calculation with intrinsics."
Dmitry Kovalev [Fri, 22 Aug 2014 00:28:44 +0000 (17:28 -0700)]
Removing dummy_packing member from VP9_COMP.
Change-Id: I571ce84c97087f8a1a36a10058393bfdcefbf72a
Dmitry Kovalev [Fri, 29 Aug 2014 21:25:31 +0000 (14:25 -0700)]
Replacing asm 8x8 variance calculation with intrinsics.
New code is 10% faster for 64-bit and 25% faster for 32-bit. Compiled
using clang.
Change-Id: I8ba1544c30dd6f3ca479db806384317549650dfc
Jingning Han [Sat, 30 Aug 2014 00:15:46 +0000 (17:15 -0700)]
Merge "Fix int64_t to unsigned int conversion warnings"
Jingning Han [Sat, 30 Aug 2014 00:15:30 +0000 (17:15 -0700)]
Merge "Extend block level sse to support multiple txfm blocks"
Jingning Han [Thu, 28 Aug 2014 16:21:58 +0000 (09:21 -0700)]
Fix int64_t to unsigned int conversion warnings
Use unsigned int type to store the sse in the pixel domain. The
precision is sufficient to handle sse of block size up to 64x64.
The transform domain version however needs int64_t, since there is
a transfer gain applied in the forward transformation that might
cause unsigned int overflow.
Change-Id: Ifef97c38597e426262290f35341fbb093cf0a079
Dmitry Kovalev [Fri, 29 Aug 2014 21:08:02 +0000 (14:08 -0700)]
Merge "Removing variance MMX code."
James Zern [Fri, 29 Aug 2014 21:07:37 +0000 (14:07 -0700)]
Merge "vp9: sync workers at the start of decode_tiles_mt()"
James Zern [Fri, 29 Aug 2014 21:07:02 +0000 (14:07 -0700)]
Merge "vp9: fix m/t loop filter invalid free"
Yunqing Wang [Fri, 29 Aug 2014 20:44:10 +0000 (13:44 -0700)]
Merge "Minor fix in vp9_encoder.h"
Scott LaVarnway [Fri, 29 Aug 2014 20:29:36 +0000 (13:29 -0700)]
Revert "Revert "VP8 for ARMv8 by using NEON intrinsics 08""
This reverts commit
928ff03889dadc3f63883553b443c08e625b4885
Compiles with 4.6 now.
Change-Id: Ib455da1098bb0e0623248be07579882a425fcbd1
Yunqing Wang [Fri, 29 Aug 2014 18:27:24 +0000 (11:27 -0700)]
Minor fix in vp9_encoder.h
Added the missing "int".
Change-Id: I7c8af3dee700837b40f010d53e1431a59370ae3a
James Zern [Fri, 29 Aug 2014 00:11:31 +0000 (17:11 -0700)]
vp9: fix m/t loop filter invalid free
store the number of allocated rows in VP9LfSync, the calculated values
can not be relied on when dealing with corrupt material.
Change-Id: I13b8bcec9738c299a71df726772ab7ac05511e5b
Dmitry Kovalev [Fri, 29 Aug 2014 00:31:00 +0000 (17:31 -0700)]
Removing variance MMX code.
Removed functions:
* vp9_mse16x16_mmx
* vp9_get_mb_ss_mmx
* vp9_get4x4var_mmx
* vp9_get8x8var_mmx
* vp9_variance4x4_mmx
* vp9_variance8x8_mmx
* vp9_variance16x16_mmx
* vp9_variance16x8_mmx
* vp9_variance8x16_mmx
They all have SSE2 equivalent.
Change-Id: I3796f2477c4f59b35b4828f46a300c16e62a2615
Jingning Han [Fri, 29 Aug 2014 05:58:30 +0000 (22:58 -0700)]
Skip intra mode tests depending on inter residuals
This commit allows encoder to skip intra coding mode test, when
the known inter residual is less than the source variance. It
reduces the runtime of speed 3 for test clips:
bus cif 1000 kbps: 8587 ms -> 8260 ms, 3.8% speed-up
pedestrian 1080p 2000 kbps: 161381 ms -> 155241 ms, 3.7% speed-up.
The compression performance is down by
derf -0.36%
stdhd -0.25%
Change-Id: I75ce1e035b4da2153cb1ac14111d1a07c05a735d
Jingning Han [Thu, 28 Aug 2014 16:09:37 +0000 (09:09 -0700)]
Extend block level sse to support multiple txfm blocks
This commit extends the sse and forward transform computation flag
to support the case 64x64 blocks where there are 4 32x32 2D-DCT
blocks.
Change-Id: I86a3e805dfaa0f3abd812f590520c71aa0e40473
James Zern [Fri, 29 Aug 2014 01:37:30 +0000 (18:37 -0700)]
Merge "vp9: fix crash in inline loopfilter w/corrupt file"
James Zern [Fri, 29 Aug 2014 01:36:31 +0000 (18:36 -0700)]
Merge "vp9: fix crash in mt loopfilter w/corrupt file"
James Zern [Fri, 29 Aug 2014 00:50:38 +0000 (17:50 -0700)]
vp9: sync workers at the start of decode_tiles_mt()
prevents any problems resuming decode after decoding a corrupt frame
Change-Id: Ib7eb1b5c062aebe71074fef1ece32a32822c16be
Dmitry Kovalev [Fri, 29 Aug 2014 00:25:46 +0000 (17:25 -0700)]
Merge "Implementing 4x4 variance calculation with SSE2."
Dmitry Kovalev [Thu, 28 Aug 2014 00:39:44 +0000 (17:39 -0700)]
Implementing 4x4 variance calculation with SSE2.
New SSE2 function is three times faster than MMX one.
Change-Id: I4f387ce9f75b88379176ec7bdc62d86eb5f70fbe
Dmitry Kovalev [Thu, 21 Aug 2014 00:02:10 +0000 (17:02 -0700)]
Removing alg_priv from vpx_codec_priv struct.
In order to understand memory layout consider the declaration of the
following structs. The first one is a part of our API:
struct vpx_codec_ctx {
// ...
struct vpx_codec_priv *priv;
};
The second one is defined in vpx_codec_internal.h:
struct vpx_codec_priv {
// ...
};
The following struct is defined 4 times for encoder/decoder VP8/VP9:
struct vpx_codec_alg_priv {
struct vpx_codec_priv base;
// ...
};
Private data allocation for the given ctx:
struct vpx_codec_ctx *ctx = <get>
struct vpx_codec_alg_priv *alg_priv = <allocate>
ctx->priv = (struct vpx_codec_priv *)alg_priv;
The cast works because vpx_codec_alg_priv has a
vpx_codec_priv instance as a first member 'base'.
Change-Id: I10d1afc8c9a7dfda50baade8c7b0296678bdb0d0
Dmitry Kovalev [Thu, 28 Aug 2014 20:50:05 +0000 (13:50 -0700)]
Merge "Removing unused arnr_type from VP9EncoderConfig and vp9_extracfg."