Yunqing Wang [Tue, 16 Dec 2014 19:10:20 +0000 (11:10 -0800)]
vp9_ethread: add the multi-threaded encoder unit tests
The unit tests for VP9 multi-threaded encoder are added, which
carry out tests for all three modes(i.e. kTwoPassGood, kOnePassGood
and kRealTime), and speeds ranging from 1 to 8. A 1280x720 test
clip is used, which is encoded into multiple tiles. The number of
threads is num_of_tiles.
Change-Id: I04419eeca145ad841c9c527603668239a82e7fbd
Paul Wilkins [Wed, 17 Dec 2014 15:35:23 +0000 (15:35 +0000)]
Remove mode dependent zbin boost.
Initial patch to remove get_zbin_mode_boost() and
cpi->zbin_mode_boost.
For now sets a dummy value of 0 for zbin extra pending
a further clean up patch.
Change-Id: I64a1e1eca2d39baa8ffb0871b515a0be05c9a6af
Paul Wilkins [Thu, 18 Dec 2014 16:38:21 +0000 (08:38 -0800)]
Merge "Improve motion detection for low complexity regions."
hkuang [Fri, 12 Dec 2014 19:31:23 +0000 (11:31 -0800)]
Let YUV plane share the same dqcoeff buffer.
Remove unnecessary dqcoeff from macroblockd which reduce macroblockd
size by 16384 bytes.
Change-Id: Ia379a703b4fee81c8fd4698b52488a85a90c9bc2
Yaowu Xu [Thu, 18 Dec 2014 01:12:14 +0000 (17:12 -0800)]
Merge "Corrected value range of --cpu-used for vp9"
Yaowu Xu [Wed, 17 Dec 2014 23:15:33 +0000 (15:15 -0800)]
Corrected value range of --cpu-used for vp9
This commit removes undefined value options of cpu-used for VP9 and
changed vpxenc prompt to reflect the usable range of [-8,8]
Change-Id: Ib80fef3dbb6ec9aabac45ed13e8ab6fbaf94f55e
JackyChen [Wed, 17 Dec 2014 23:10:02 +0000 (15:10 -0800)]
Merge "Add rectangle block support for MFQE."
Deb Mukherjee [Wed, 17 Dec 2014 21:49:13 +0000 (13:49 -0800)]
Merge "Enhance the end to end psnr tests"
Deb Mukherjee [Mon, 15 Dec 2014 19:58:43 +0000 (11:58 -0800)]
Enhance the end to end psnr tests
Includes more speed settings and also real-time mode now.
Change-Id: I71c77c4a2471d715c61cc30db092aa053cf012e1
Yunqing Wang [Wed, 17 Dec 2014 18:06:33 +0000 (10:06 -0800)]
Merge "Improve the libvpx encoder test driver"
JackyChen [Wed, 17 Dec 2014 17:30:32 +0000 (09:30 -0800)]
Merge "Use bit_depth in VP9Common as the flag of highbit."
Jingning Han [Wed, 17 Dec 2014 17:24:44 +0000 (09:24 -0800)]
Merge "Remove reset mode_info array per frame"
Jingning Han [Wed, 17 Dec 2014 17:24:39 +0000 (09:24 -0800)]
Merge "Set second ref frame to be NONE in key frame coding"
Yunqing Wang [Fri, 12 Dec 2014 22:34:30 +0000 (14:34 -0800)]
Improve the libvpx encoder test driver
The encoder initialization is called in EncodeFrame(). Therefore,
in the unit tests, the set control is done when video->frame() is 1.
This didn't cause problem since current tests mainly test lag_frame
> 0 case, or no encoding option that needs to allocate memory before
1st frame is used. If use lag_frame = 0 and encoding multiple tiles,
the unit tests crash. The issue is fixed by doing the initialization
before encoding frames.
Change-Id: I43102048f88448bcf27e9c60e0ec06c176b02e5c
JackyChen [Tue, 16 Dec 2014 22:17:14 +0000 (14:17 -0800)]
Use bit_depth in VP9Common as the flag of highbit.
Change-Id: I881aefbe68f9c10bb4629a2a5ee1e42a225d5ab7
James Yu [Sat, 8 Feb 2014 04:06:21 +0000 (12:06 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 15
Re-write
- vp9_lpf_horizontal_4_dual_neon
in vp9_loopfilter_16_neon.c
Change-Id: Ie14f63d352f9564ad01db3939a61d91cf6d21a31
Signed-off-by: James Yu <james.yu@linaro.org>
Johann [Wed, 17 Dec 2014 02:04:04 +0000 (18:04 -0800)]
Merge "Use defines for inline and __builtin_prefetch"
Jingning Han [Wed, 17 Dec 2014 01:04:04 +0000 (17:04 -0800)]
Merge "Fix intra mode update process in vp9_pick_inter_mode"
JackyChen [Tue, 16 Dec 2014 19:17:20 +0000 (11:17 -0800)]
Add rectangle block support for MFQE.
Only for the rectangle blocks larger than 16X16, SAD and Variance are
still based on the internal square blocks.
Change-Id: I3754da1b0254147313f86a0140dbf4f980f06a5a
Johann [Wed, 17 Dec 2014 00:15:48 +0000 (16:15 -0800)]
Merge "VP9 common for ARMv8 by using NEON intrinsics 16"
Johann [Tue, 16 Dec 2014 23:54:36 +0000 (15:54 -0800)]
Merge "Allow building multi-res encoder with --shared"
Johann [Tue, 16 Dec 2014 23:54:29 +0000 (15:54 -0800)]
Merge "Silence -Werror=unused-parameter"
Jingning Han [Tue, 16 Dec 2014 17:21:22 +0000 (09:21 -0800)]
Remove reset mode_info array per frame
The mode_info array was unnecessarily reset to zero every frame
when error resilient mode turned on, given that the mode info
values per block will be assigned during mode search stage.
This commit removes this reset operation. It reduces the runtime
cost on memset operation to 1/3. The overall speed -6 runtime is
reduced by 2%.
Change-Id: I32ecb73338d8995cc0c5147de09357364f13d45b
Jingning Han [Tue, 16 Dec 2014 23:46:59 +0000 (15:46 -0800)]
Set second ref frame to be NONE in key frame coding
This commit explicitly set the second reference frame type to be
NONE in key frame coding mode. This fixes a subtle dependency of
reference motion vector used by next inter frame on mode_info
reset before key frame coding.
Change-Id: I5ff0359753fdc9992b0bfe889490f7a32d7d5f6a
Johann [Tue, 16 Dec 2014 23:08:16 +0000 (15:08 -0800)]
Use defines for inline and __builtin_prefetch
These were established for compatibility. Make sure to use them.
Most frequently they manifest as issues on Visual Studio builds.
Change-Id: I39d764d2eb341b999d7a6132cb44b2acfc511160
Frank Galligan [Tue, 16 Dec 2014 23:14:17 +0000 (15:14 -0800)]
Merge "Revert "Revert "Add support for setting byte alignment."""
James Yu [Sat, 8 Feb 2014 17:01:36 +0000 (01:01 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 16
Add vp9_reconintra_neon.c
- vp9_v_predictor_4x4_neon
- vp9_v_predictor_8x8_neon
- vp9_v_predictor_16x16_neon
- vp9_v_predictor_32x32_neon
- vp9_h_predictor_4x4_neon
- vp9_h_predictor_8x8_neon
- vp9_h_predictor_16x16_neon
- vp9_h_predictor_32x32_neon
- vp9_tm_predictor_4x4_neon
- vp9_tm_predictor_8x8_neon
- vp9_tm_predictor_16x16_neon
- vp9_tm_predictor_32x32_neon
Change-Id: Ib5d54a4766a1b5127169045659974f33aa98376d
Signed-off-by: James Yu <james.yu@linaro.org>
Johann [Tue, 16 Dec 2014 20:47:53 +0000 (12:47 -0800)]
Allow building multi-res encoder with --shared
Export vpx_codec_enc_init_multi_ver so the vp8 multi res encoder example
can see it when building shared.
Change-Id: Ic5222b1b6d949f39c7e50c3bc58fb76bece2a3f1
Johann [Tue, 16 Dec 2014 20:22:10 +0000 (12:22 -0800)]
Silence -Werror=unused-parameter
Cast away remaining issues so that new ones don't get lost in the noise.
Change-Id: Iacd6999b0686ce80f9835730d68db6382690fa92
James Zern [Tue, 16 Dec 2014 20:22:55 +0000 (12:22 -0800)]
Merge "rtcd: handle armv7s architecture"
James Yu [Wed, 15 Jan 2014 08:20:34 +0000 (16:20 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 19
Delete vp9_dc_only_idct_add_neon.c
The function was merged with vp9_short_idct4x4_1_add (later
vp9_idct4x4_1_add) in d2de1ca and should have been deleted then.
Change-Id: Ie58ba3dd9dc7330a8f1238dd7dd71c9ed4639b94
Signed-off-by: James Yu <james.yu@linaro.org>
JackyChen [Tue, 16 Dec 2014 19:12:03 +0000 (11:12 -0800)]
Merge "Fixed MFQE crash issue for highbit depth."
JackyChen [Tue, 16 Dec 2014 18:02:47 +0000 (10:02 -0800)]
Fixed MFQE crash issue for highbit depth.
Check the flags, no MFQE for highbit now. Will add highbit support
latter.
Change-Id: I548c27593e0f47ab7f4c92b45f14fb037dc86591
Jingning Han [Tue, 16 Dec 2014 18:01:03 +0000 (10:01 -0800)]
Merge "Initialize best_tx_size with invalid value"
Yaowu Xu [Tue, 16 Dec 2014 17:30:24 +0000 (09:30 -0800)]
Merge "Prevent decoder from using uninitialized entropy context."
Jingning Han [Tue, 16 Dec 2014 17:26:51 +0000 (09:26 -0800)]
Merge "Use right shift to replace division in vp9_pick_inter_mode"
Paul Wilkins [Thu, 11 Dec 2014 16:22:03 +0000 (16:22 +0000)]
Improve motion detection for low complexity regions.
Where there is very subtle motion, especially when combined
with low spatial complexity, the codec sometimes fails to quickly
pick up the ambient motion field.
Once it has been established though the field propagates well using
Nearest and Near MV.
This patch looks specifically at the case where the Nearest and Near
have not been established as non zero vectors and in this case
discounts the cost of searching for a new vector in the rd code.
This will almost certainly have some implications in terms of encode
speed but it should be possible to mitigate the impact in a subsequent
using first pass stats and the local spatial complexity.
Average results for test sets approximately neutral.
Change-Id: I44a29e20f11f7ab10f8c93ffbdc50183d9801524
Debargha Mukherjee [Tue, 16 Dec 2014 14:41:54 +0000 (06:41 -0800)]
Merge "Fix for crash in highbitdepth rt mode"
Jim Bankoski [Tue, 16 Dec 2014 14:25:01 +0000 (06:25 -0800)]
Merge "Fix the comments."
Peter de Rivaz [Tue, 16 Dec 2014 10:55:49 +0000 (10:55 +0000)]
Fix for crash in highbitdepth rt mode
Change 72141 introduced a new use of vp9_avg_4x4.
This call needs to switch to using vp9_highbd_avg_4x4
when performing high bitdepth encodes.
Change-Id: I6a8ba4b62f8a75d0a917b365a55245e2f0438ea1
James Zern [Tue, 16 Dec 2014 06:04:46 +0000 (22:04 -0800)]
Merge "iosbuild.sh: allow for out of tree builds"
James Zern [Tue, 16 Dec 2014 02:41:46 +0000 (18:41 -0800)]
iosbuild.sh: allow for out of tree builds
Change-Id: Id89ed4a4153dd6e02380c4b8ae8ad6c1f8d21944
James Zern [Tue, 16 Dec 2014 02:39:51 +0000 (18:39 -0800)]
rtcd: handle armv7s architecture
quiets build warnings about implicit (armv6) function declarations
Change-Id: I896a5ef3e367e5bb92777a60d34003eb3a040997
Jingning Han [Mon, 15 Dec 2014 22:43:07 +0000 (14:43 -0800)]
Fix intra mode update process in vp9_pick_inter_mode
When multiple intra modes are tested, the previous mode info
update process may overwrite the selected best intra mode and make
the final selection use an inter mode. This commit fixes this
issue by moving the mode_info reset outside the intra mode search
loop.
Change-Id: I15ed4288a6b3cb0832104a5e6d5d9a25cd1a5b2b
Johann [Mon, 15 Dec 2014 22:49:33 +0000 (14:49 -0800)]
Merge "VP9 common for ARMv8 by using NEON intrinsics 06"
Johann [Mon, 15 Dec 2014 22:48:53 +0000 (14:48 -0800)]
Merge "VP9 common for ARMv8 by using NEON intrinsics 05"
Jingning Han [Mon, 15 Dec 2014 22:37:19 +0000 (14:37 -0800)]
Merge "Simplify rate-distortion modeling function"
Jingning Han [Mon, 15 Dec 2014 20:54:02 +0000 (12:54 -0800)]
Initialize best_tx_size with invalid value
If vp9_pick_inter_mode works properly, it should at least check
one coding mode and hence get best_tx_size assigned a valid value.
There is no need to initialize best_tx_size with a legitimate
value before starting the mode search.
Change-Id: Ic0496cd89672ea9c2c512a9bd1da952190af9cba
Jingning Han [Mon, 15 Dec 2014 20:48:07 +0000 (12:48 -0800)]
Use right shift to replace division in vp9_pick_inter_mode
Make the variable reduction_fac log2 based and explicitly use
right shift when computing intra_cost_penalty.
Change-Id: I208f1fb879a02debb3b3fc64f9fd06260dcf1c86
Frank Galligan [Mon, 15 Dec 2014 20:00:09 +0000 (12:00 -0800)]
Revert "Revert "Add support for setting byte alignment.""
This reverts commit
91471d6aad285ff10e7582e485d8adadd1986fe2.
Fixes the compile issues if post_proc is enabled.
Change-Id: Ib40a15ce2c194f9b5adfa65a17ab01ddf60f5a59
James Yu [Tue, 28 Jan 2014 17:31:07 +0000 (01:31 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 06
Add vp9_iht8x8_add_neon.c
- vp9_iht8x8_64_add_neon
The assembly did not previously implement tx_type 0
BUG=716
Change-Id: Icfc99dd24f3d59047f9184a7d0c761ba7e3de934
Signed-off-by: James Yu <james.yu@linaro.org>
James Yu [Mon, 27 Jan 2014 10:38:35 +0000 (18:38 +0800)]
VP9 common for ARMv8 by using NEON intrinsics 05
Add vp9_iht4x4_add_neon.c
- vp9_iht4x4_16_add_neon
The assembly did not previously implement tx_type 0
BUG=715
Change-Id: I60034d1568de034edba45c5cdd13f3d87dbc73b6
Signed-off-by: James Yu <james.yu@linaro.org>
James Zern [Mon, 15 Dec 2014 19:54:51 +0000 (11:54 -0800)]
Merge "vp9/MACROBLOCKD: reorder struct members"
Jingning Han [Fri, 12 Dec 2014 22:33:52 +0000 (14:33 -0800)]
Simplify rate-distortion modeling function
Use left shift to replace one multiplication. The computation
outcome remains identical.
Change-Id: I1e1737af0a245de0d2a2bde10f0c171477199fc1
Paul Wilkins [Mon, 15 Dec 2014 11:52:55 +0000 (11:52 +0000)]
Revert "Add support for setting byte alignment."
Fails to compile. Bad calls to vp9_alloc_frame_buffer
and vp9_realloc_frame_buffer in postproc.c
This reverts commit
399823b6f50fb7465f62822d1395e2192e7b07fc.
Change-Id: I29f0e173f8e185d3a303cfdb17813e1eccb51e3a
hkuang [Sat, 13 Dec 2014 17:56:55 +0000 (09:56 -0800)]
Merge "Fix a bug that break the vp8 fragment decoder."
James Zern [Sat, 13 Dec 2014 03:45:15 +0000 (19:45 -0800)]
iosbuild: add success/failure output
Change-Id: I84492f68752321f0266141666e2672ed2da5f509
James Zern [Sat, 13 Dec 2014 02:01:24 +0000 (18:01 -0800)]
vp9/MACROBLOCKD: reorder struct members
improves locality of reference
Change-Id: I0639b98bf38879f918173b3a1b25dd93090e88b4
hkuang [Thu, 20 Nov 2014 23:39:56 +0000 (15:39 -0800)]
Fix a bug that break the vp8 fragment decoder.
(issue #882).
Change-Id: I2ca7f96d390c4eaec0473c50cb01b903d0bd3ee6
James Zern [Sat, 13 Dec 2014 00:29:42 +0000 (16:29 -0800)]
Merge "Optimize bit_read_buffer."
Tom Finegan [Sat, 13 Dec 2014 00:14:57 +0000 (16:14 -0800)]
Merge "vpxdec: Rename the libyuv scale wrapper."
Tom Finegan [Sat, 13 Dec 2014 00:14:12 +0000 (16:14 -0800)]
Merge "iosbuild.sh: Add targets argument."
Frank Galligan [Fri, 12 Dec 2014 23:47:11 +0000 (15:47 -0800)]
Merge "Add support for setting byte alignment."
hkuang [Fri, 12 Dec 2014 21:54:40 +0000 (13:54 -0800)]
Optimize bit_read_buffer.
Change-Id: Iee43c34909deec9787b29c1c33672213b9f049df
James Zern [Fri, 12 Dec 2014 22:32:52 +0000 (14:32 -0800)]
Merge "Remove redundant loads on 1d16_v8 filter."
James Zern [Fri, 12 Dec 2014 22:32:26 +0000 (14:32 -0800)]
Merge "Remove redundant loads on 1d8_v8 filter."
James Zern [Fri, 12 Dec 2014 22:28:55 +0000 (14:28 -0800)]
Merge "vp9: move encoder-only member from common"
James Zern [Fri, 12 Dec 2014 22:28:20 +0000 (14:28 -0800)]
Merge "don't set INLINE to 'always_inline'"
James Zern [Fri, 12 Dec 2014 22:27:56 +0000 (14:27 -0800)]
Merge changes Id6421838,I37499329
* changes:
vp9: make postproc members depend on CONFIG_VP9_POSTPROC
vp9_postproc: remove redundant CONFIG_* checks
Marco [Fri, 12 Dec 2014 22:27:31 +0000 (14:27 -0800)]
Merge "Allow for 4x4 prediction blocks for key frame, speed 6."
James Zern [Fri, 12 Dec 2014 22:25:53 +0000 (14:25 -0800)]
Merge "vp9_loopfilter_mmx: remove some unused tables"
James Zern [Fri, 12 Dec 2014 22:25:30 +0000 (14:25 -0800)]
Merge "x86_abi_support: set LIBVPX_RAND w/vp9-postproc"
Tom Finegan [Fri, 12 Dec 2014 21:53:58 +0000 (13:53 -0800)]
iosbuild.sh: Add targets argument.
Allows override of default target list. Also added missing usage info
for --extra-configure-args, and removed last vestiges of armv6 support.
Change-Id: Ic0f14fffa0cbaea1bed371d38ff65e035bbe3273
Frank Galligan [Thu, 13 Nov 2014 20:28:34 +0000 (12:28 -0800)]
Add support for setting byte alignment.
Add support for setting byte alignment on the Y, U, and V plane of the
reference buffers. The byte alignment must be a power of 2, from 32 to
1024. A value of 0 sets legacy alignment.
Change-Id: I7c1399622f7aa68e123646369216b32047dda73d
James Zern [Fri, 12 Dec 2014 20:16:32 +0000 (12:16 -0800)]
Merge "Remove unnecessary dqcoeff memset."
Tom Finegan [Fri, 12 Dec 2014 19:57:04 +0000 (11:57 -0800)]
vpxdec: Rename the libyuv scale wrapper.
The other name was misleading: We do not export scaling support from
libvpx via vpx_im{g,age}*.
Change-Id: I8acb4ea0301f08c9bab557a4063ea35d147b4631
Frank Galligan [Fri, 12 Dec 2014 19:48:47 +0000 (11:48 -0800)]
Remove redundant loads on 1d16_v8 filter.
This CL showed about a 3% gain in performance on some systems.
Change-Id: Id27e7e0b8e69068aa364e67859436da852669250
Frank Galligan [Fri, 12 Dec 2014 19:34:24 +0000 (11:34 -0800)]
Remove redundant loads on 1d8_v8 filter.
This CL showed a modest gain in performance on some systems.
Change-Id: Iad636a89a1a9804ab7a0dea302bf2c6a4d1653a4
James Zern [Thu, 11 Dec 2014 02:42:07 +0000 (18:42 -0800)]
don't set INLINE to 'always_inline'
INLINE is used quite widely in vp9, this change improves performance
1-2% on most modern platforms.
Change-Id: I8a9974aab89fa588ea4923cc7eaf6199e344a528
James Zern [Thu, 11 Dec 2014 02:11:17 +0000 (18:11 -0800)]
vp9: move encoder-only member from common
allow_comp_inter_inter VP9_COMMON -> VP9_COMP
Change-Id: I6d9dc25d1cdd7e2ab62f5be69cd9fa883d21dbb6
James Zern [Thu, 11 Dec 2014 02:12:29 +0000 (18:12 -0800)]
vp9: make postproc members depend on CONFIG_VP9_POSTPROC
Change-Id: Id64218386968cee3132269e4a0572650f20fd980
James Zern [Wed, 10 Dec 2014 01:27:52 +0000 (17:27 -0800)]
vp9_postproc: remove redundant CONFIG_* checks
the entire module is wrapped in CONFIG_VP9_POSTPROC which is forcibly
enabled with CONFIG_INTERNAL_STATS
+ a similar change in vp9_alloccommon.c
Change-Id: I374993297a9fba5bef2f0b71f984eba42f0995a3
James Zern [Wed, 10 Dec 2014 01:57:00 +0000 (17:57 -0800)]
vp9_loopfilter_mmx: remove some unused tables
Change-Id: I964d25cc91c8e4864d73b142d9c7a1b39cb6cfbb
Jim Bankoski [Fri, 12 Dec 2014 19:10:17 +0000 (11:10 -0800)]
Merge "vp9_dx_iface.c uses CONFIG_VP9_POSTPROC but config.h not included"
Jim Bankoski [Fri, 12 Dec 2014 19:10:08 +0000 (11:10 -0800)]
Merge "Adds a test to make sure encoder parms get to decoder."
James Zern [Wed, 10 Dec 2014 01:24:49 +0000 (17:24 -0800)]
x86_abi_support: set LIBVPX_RAND w/vp9-postproc
set LIBVPX_RAND with --enable-vp9-postproc, previously only the vp8
config was checked. this fixes the build with --disable-postproc.
Change-Id: Ia61baded6aa0e44d6443ae4a3c85915f1054f053
Jingning Han [Fri, 12 Dec 2014 17:16:01 +0000 (09:16 -0800)]
Merge "Fix PICK_MODE_CONTEXT index in non-RD coding mode"
Jim Bankoski [Fri, 12 Dec 2014 16:42:36 +0000 (08:42 -0800)]
vp9_dx_iface.c uses CONFIG_VP9_POSTPROC but config.h not included
Change-Id: Id316b3786214bf1028992968955da917e3f2d4a3
Jim Bankoski [Fri, 12 Dec 2014 14:18:56 +0000 (06:18 -0800)]
Fix test to call clear system state in convolve_test.
Assembly tests should clear system state, as we have no
expectation of proper system state in between test runs..
Change-Id: I0f591996c1f17ef2a5a8572a6b445f757223a144
Jim Bankoski [Fri, 12 Dec 2014 01:34:32 +0000 (17:34 -0800)]
Adds a test to make sure encoder parms get to decoder.
This is meant as a framework for testing that encode parms make it
through to the decoder.
Change-Id: Idb86ee3668b45b4e73c23c6e4daef94b0650b786
Jingning Han [Fri, 12 Dec 2014 01:17:53 +0000 (17:17 -0800)]
Fix PICK_MODE_CONTEXT index in non-RD coding mode
This commit fixes a bug in the PICK_MODE_CONTEXT index for
horizontal partition case. The compression performance change
is less than 0.01% level, since most blocks are selected to
use square block size in RTC coding mode.
Change-Id: I67effc18ae8795fccdd82a55f4efc609fa5cb3e1
JackyChen [Fri, 12 Dec 2014 00:24:08 +0000 (16:24 -0800)]
Merge "Multiframe Quality Enhancement(MFQE) in VP9."
Marco [Thu, 11 Dec 2014 23:21:17 +0000 (15:21 -0800)]
Allow for 4x4 prediction blocks for key frame, speed 6.
For key frame under variance source partition: 4x4 prediction blocks
may be selected when variance of 8x8 block is very high (threshold is set fairly high for now).
Testing on some RTC clips shows this helps to reduce some ringing artifacts on key frame.
Encoded key frame size increases about ~10%. Key frame PSNR increases about ~0.1-0.2dB.
Change-Id: I56e203fac32ea6ef69897fb3ea269c59cb50d174
Jingning Han [Thu, 11 Dec 2014 21:30:03 +0000 (13:30 -0800)]
Merge "Replace division with bit shift in choose_partitioning"
Deb Mukherjee [Thu, 11 Dec 2014 20:29:06 +0000 (12:29 -0800)]
Merge "Re-enable 8x8 fdct/fht tests by changing tolerance"
Debargha Mukherjee [Thu, 11 Dec 2014 20:28:45 +0000 (12:28 -0800)]
Merge "Corrected optimization of 8x8 DCT code"
hkuang [Thu, 11 Dec 2014 20:27:25 +0000 (12:27 -0800)]
Remove unnecessary dqcoeff memset.
dqcoeff is set to be 0 on initialization. And set back to 0 after being
used everytime.
Change-Id: I32b8e149bba40a8d707849f737a8e49a691f319c
Jingning Han [Thu, 11 Dec 2014 19:14:07 +0000 (11:14 -0800)]
Merge "Refactor choose_partitioning computing scheme"
Jingning Han [Thu, 11 Dec 2014 19:04:49 +0000 (11:04 -0800)]
Replace division with bit shift in choose_partitioning
This commit explicitly uses the bit shift operation instead of
division for computing block variance.
Change-Id: Id19c0ff27dd1d1ae4aceee6657e1aad0d406bd74
Alexander Voronov [Thu, 11 Dec 2014 17:44:19 +0000 (20:44 +0300)]
Prevent decoder from using uninitialized entropy context.
If decoding starts with intra-only frame, there is a possibility
of using uninitialized entropy context, what leads to undefined
behavior.
Change-Id: Icbb64b5b1bd1e5de2a4bfa2884e56bc0a20840af