hkuang
31c7a9b174
Fix the VP9 encoding unit test failure on ARM.
...
The cause is because VP9 encoding use vp8_vpxyv12_extendframeborders_neon
on arm which only extend boarder size 32. But VP9's border size is 160
Change-Id: I1ff7e945344a658af862beb1197925e677e8ff57
2014-04-10 17:37:48 -07:00
Dmitry Kovalev
5053845a70
Merge "Cleaning up optimize_b()."
2014-04-10 17:15:19 -07:00
Dmitry Kovalev
a286ff8077
Moving last_frame_type update out from vp9_rc_postencode_update.
...
Change-Id: Ib00a694b9cf8e0c276dfefddab8cb36b8693e022
2014-04-10 16:35:10 -07:00
Dmitry Kovalev
01c4b5ddd7
Merge "Removing unnecessary vp9_zero() call."
2014-04-10 16:27:45 -07:00
Dmitry Kovalev
4d2523bfda
Removing output_framerate field from VP9_COMP.
...
Change-Id: Id755813fd5e78039bc9e76a046b33c8cafbc36dc
2014-04-10 16:21:39 -07:00
Dmitry Kovalev
69c6671ead
Cleaning up vp9_dthread.{c, h}.
...
Change-Id: If33087462293605f79d9281af133091fff33a876
2014-04-10 16:17:49 -07:00
Dmitry Kovalev
d3127382fd
Removing offset argument of mvcomp macros.
...
Change-Id: I8bb72b790a0783720833f27b7cf41055bee6becd
2014-04-10 16:07:41 -07:00
Yunqing Wang
c3e08e4aeb
Merge "Define var threshold as unsigned int to match the type"
2014-04-10 15:59:05 -07:00
Marco Paniconi
65d4f6916e
Merge "Remove the unneeded output_framerate from svc."
2014-04-10 15:26:59 -07:00
John Koleszar
a5ce28a15a
Merge "Fix onyx_if.c to not to redefine M_LOG2_E if it's already defined."
2014-04-10 15:24:25 -07:00
Dmitry Kovalev
c8167f5ba7
Fixing invalid ref buffer in vp9_diamond_search_sad_c().
...
Problem has been introduced recently with the cleanup patch
I0816ec12ec0a6f21d0f25f10c214b5fd327afc6c
Change-Id: Iaacb956a6039eb5826b82618dc03be32053fb892
2014-04-10 15:16:48 -07:00
Marco Paniconi
a39b201344
Remove the unneeded output_framerate from svc.
...
And change a parameter setting in vpx_temporal_scalable_patterns.
Change-Id: I7c208296ebcecbc8f73de032f6cdb26a1fc1442b
2014-04-10 13:49:25 -07:00
Dmitry Kovalev
11eb6075ca
Removing unnecessary vp9_zero() call.
...
Change-Id: I9886f52a0fb19b4250c4c9444c3348897c84c9e2
2014-04-10 11:35:36 -07:00
Dmitry Kovalev
9cf7a0f0da
Cleaning up optimize_b().
...
Change-Id: I5c62fabd380492740c1c2c0d71861e64ee1b05e8
2014-04-10 11:19:38 -07:00
Dmitry Kovalev
35c18baa26
Merge "Regrouping code in rd_pick_sb_modes()."
2014-04-10 11:14:59 -07:00
Dmitry Kovalev
91ff90760a
Merge "Cleaning up get_sby_perpixel_{, diff_}variance()."
2014-04-10 11:14:24 -07:00
Alex Converse
67affd9ec9
Merge "Remove vestiges of large tx sizes in sub8x8 code."
2014-04-10 11:13:50 -07:00
Alex Converse
6a9b44c281
Merge "Cleanup table declarations in vp9_rdopt."
2014-04-10 11:13:44 -07:00
Yunqing Wang
eb505a3f3f
Define var threshold as unsigned int to match the type
...
Minor change to use matching type in comparison.
Change-Id: I670cae2d584918c67c1af791a797629f392f599e
2014-04-10 09:48:33 -07:00
Yunqing Wang
23ccf71924
Merge "Fix encoder uninitialized read errors reported by drmemory"
2014-04-10 09:45:08 -07:00
Jingning Han
4b8ad4a847
Merge "Fix coding format in vp9_rc_regulate_q"
2014-04-10 09:30:03 -07:00
Yaowu Xu
675d95f9d9
Merge "Prevent the usage of invalid best_mode_index"
2014-04-10 09:04:10 -07:00
Yaowu Xu
9034094b80
Merge "Remove duplicate code"
2014-04-10 09:04:04 -07:00
Sergey Ulanov
409f8da265
Fix onyx_if.c to not to redefine M_LOG2_E if it's already defined.
...
This fixes warning when compiling libvpx for PNaCl. PNaCl's version
of math.h defines M_LOG2_E.
Change-Id: Iba9450441538e9f82447ad2936bea94d21bafdf1
2014-04-10 08:54:30 -07:00
Yunqing Wang
81056e2d5e
Merge "Minor code cleanup"
2014-04-10 08:25:10 -07:00
Dmitry Kovalev
65e650e0c0
Merge "Revert "Converting set_prev_mi() to get_prev_mi().""
2014-04-09 20:44:30 -07:00
Dmitry Kovalev
3dff8aa36b
Merge "Moving q_trans[] table to vp9_quantize.{c, h}."
2014-04-09 20:18:24 -07:00
Dmitry Kovalev
f10c173b40
Merge "Removing unused code from vp9_onyx_if.c."
2014-04-09 20:18:07 -07:00
Alex Converse
dad9e4abaa
Remove vestiges of large tx sizes in sub8x8 code.
...
Change-Id: I27015ed57b4c4390cfde3d0eecd82c3e76fd3786
2014-04-09 18:43:29 -07:00
Yaowu Xu
1dcc1aa942
Prevent the usage of invalid best_mode_index
...
This commit changed the initialization of best_mode_index to -1 to make
sure it is not mistakenly used for mode masking.
Change-Id: I75b05db51466070dd23c4ee57a4d4b40764dc019
2014-04-09 17:56:06 -07:00
Dmitry Kovalev
41ea9ef955
Merge "Removing redundant assignments."
2014-04-09 16:56:25 -07:00
Alex Converse
71ffc7d7ff
Merge "Remove unused tile arguments from vp_rdopt."
2014-04-09 16:45:46 -07:00
Alex Converse
1eee13c0ab
Merge "Cleanup vp9_rd_pick_inter_mode_sub8x8()."
2014-04-09 16:45:41 -07:00
Dmitry Kovalev
46a20d67cb
Removing unused initial_{width, height} from VP9Decoder.
...
Change-Id: I039474b34863bc3db9c6cda82485c32826a1b5d1
2014-04-09 16:18:29 -07:00
Jingning Han
2255085584
Fix coding format in vp9_rc_regulate_q
...
Change-Id: I08aa0c213df34c084eb7a3c51b6b3306e49c7757
2014-04-09 15:41:39 -07:00
Dmitry Kovalev
60def47f21
Revert "Converting set_prev_mi() to get_prev_mi()."
...
This reverts commit 22a3e30790
Change-Id: I460d905edf5fb2006da58c18fbe02c04d0c631bb
2014-04-09 15:23:16 -07:00
Yaowu Xu
2dc92482d0
Merge "Fix the setting of mode_skip_mask"
2014-04-09 14:29:23 -07:00
Alex Converse
666ecf21df
Cleanup table declarations in vp9_rdopt.
...
Change-Id: Ia4bef41a6b0252593ad84612a2a143c724fd03ea
2014-04-09 14:22:39 -07:00
Dmitry Kovalev
b60d23f308
Removing unused code from vp9_onyx_if.c.
...
Change-Id: I0462bf1ca1b4e5a1c06259979b4daff949b8a2c6
2014-04-09 13:42:26 -07:00
Dmitry Kovalev
d1a396d8b9
Moving q_trans[] table to vp9_quantize.{c, h}.
...
Change-Id: I1324c339815a47004ddccdaf651d24c60382b92f
2014-04-09 13:35:39 -07:00
Tom Finegan
4fffefe189
Merge "Fix avx builds on macosx with clang 5.0."
2014-04-09 13:03:26 -07:00
Dmitry Kovalev
876059f7c2
Regrouping code in rd_pick_sb_modes().
...
Change-Id: I51c71dd4aee6592fb90feebcf864bccc87dacec6
2014-04-09 13:00:02 -07:00
Yaowu Xu
585e01bfe2
Remove duplicate code
...
Change-Id: Ie26b6ca8de733a527f820b16148e7a2231073f0f
2014-04-09 12:58:10 -07:00
Dmitry Kovalev
7cc78c06e0
Merge "Adding vp9_inc_frame_in_layer() function."
2014-04-09 12:50:25 -07:00
Yunqing Wang
7c891ed2e0
Minor code cleanup
...
Cleanup.
Change-Id: I54d989e24b35323cda7290654e425565d5c9ea2d
2014-04-09 12:08:07 -07:00
Alex Converse
3ab4d57196
Remove unused tile arguments from vp_rdopt.
...
Change-Id: I721ff26e3d5dbef80b8cd2dd562adae3748f6687
2014-04-09 11:48:30 -07:00
Alex Converse
dcb5157608
Cleanup vp9_rd_pick_inter_mode_sub8x8().
...
Change-Id: I9be2e4e9aeda0fae6dc946deae2999be51daebe0
2014-04-09 11:48:24 -07:00
Alex Converse
6e943cabdc
Merge "Fixing broken build."
2014-04-09 11:47:23 -07:00
Yaowu Xu
4f95a7fe3e
Fix the setting of mode_skip_mask
...
In mode selection loop, once mode_index pass mode_skip_start, all
modes with a different reference frame from current best mode are
masked out using mode_skip_mask.
However, the setting of mode_skip_mask may use an invalid mode if
there is no mode tested yet. This commit fixes the issue by making
sure a mode has been tested and selected. Otherwise, no mode will be
masked out because of their reference frame.
Change-Id: Ib0009e8a96836a65cf5347440fff8a2e1a67f29f
2014-04-09 11:42:28 -07:00
James Zern
db8af0b0b3
Merge "Fix TODO typo"
2014-04-09 11:29:44 -07:00
Dmitry Kovalev
0ba14e600c
Fixing broken build.
...
Change-Id: I9b8f9a3f4fa9d48695149dd68ecb5e8d84accafe
2014-04-09 10:46:54 -07:00
Dmitry Kovalev
5ed83c3220
Merge "Converting set_prev_mi() to get_prev_mi()."
2014-04-09 10:27:05 -07:00
Yunqing Wang
2e7d327789
Merge "Use source frame difference to make partition decision"
2014-04-09 10:26:42 -07:00
Dmitry Kovalev
51b3035fc3
Adding vp9_inc_frame_in_layer() function.
...
Change-Id: Idf612c772440158cd1645623241c51ab0d57405c
2014-04-09 10:26:32 -07:00
Dmitry Kovalev
a30ff3458d
Merge "Applying q_trans[] inside set_encoder_config()."
2014-04-09 10:25:59 -07:00
Yunqing Wang
3a6670fcf8
Fix encoder uninitialized read errors reported by drmemory
...
This patch fixed the uninitialized read errors in Issue 748:
"dr memory VP9 encode errors". In vp9_convolve_avg_sse2,
when width is 4, pavgb reads 8 bytes from dst buffer that is
out of range. An error is reported although the data is not
actually used later. This issue was resolved by preventing
uninitialized reads.
Change-Id: I109a54910aa47139cb13119de86f2062cff207df
2014-04-09 09:59:15 -07:00
Jingning Han
ae6485663a
Merge "Select prediction filter type in non-RD mode decision"
2014-04-09 09:07:45 -07:00
Frank Galligan
bbf8971a28
Fix TODO typo
...
Change-Id: I7a5230852cb24ce22bfe85ea2608cdb4619b5200
2014-04-09 08:48:44 -07:00
Deb Mukherjee
0cca5dd8d7
Merge "High-level hooks for Profile 2 (10/12 bit)"
2014-04-08 22:19:38 -07:00
Dmitry Kovalev
5db5154029
Applying q_trans[] inside set_encoder_config().
...
Change-Id: Ib64edeb58b3e25488fb85bbe85c9decb15b4d0a1
2014-04-08 19:43:08 -07:00
Dmitry Kovalev
191dfa8dc7
Cleaning up get_sby_perpixel_{, diff_}variance().
...
Change-Id: Icbfeb04647d654253866d290abd4775a877b4f61
2014-04-08 19:00:12 -07:00
Tom Finegan
f600b50a6e
Fix avx builds on macosx with clang 5.0.
...
The macosx release of clang v5.0 identifies itself as:
Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn)
This version of clang uses the older _mm_broadcastsi128_si256, like
v3.3, as given away in the LLVM svn version above.
Change-Id: I4d6d59d5454efd57d2ae9e75f5eb7486af7cbd0c
2014-04-08 18:56:03 -07:00
Dmitry Kovalev
4b1c4420e7
Removing redundant assignments.
...
Change-Id: I3ced24f2c3b9cc483278c0f0d60512e7d2efa4f4
2014-04-08 18:52:25 -07:00
Dmitry Kovalev
c27bdb9bc1
Merge "Cleaning up encode_frame_internal()."
2014-04-08 18:23:15 -07:00
Dmitry Kovalev
755433927c
Merge "Cleaning up vp9_firstpass.c"
2014-04-08 18:22:34 -07:00
Dmitry Kovalev
c800e3c816
Merge "Adding vp9_ssim.h file."
2014-04-08 18:19:21 -07:00
Frank Galligan
9893fb9859
Merge "Fix decoder resolution change with tiles"
2014-04-08 17:13:33 -07:00
Yunqing Wang
4e66293fcb
Use source frame difference to make partition decision
...
Calculate the difference variance between last source frame and
current source frame. The variance is calculated at 16x16 block
level. The variances are compared to several thresholds to decide
final partition sizes.
An adaptive strategy is implemented to decide using
SOURCE_VAR_BASED_PARTITION or FIXED_PARTITION based on motions
in the video. The switching test is done once every
search_type_check_frequency frames.
The selection of source_var_thresh needs to be investigated
further later.
RTC set Borg test showed 0.424% overall psnr gain, and 0.357%
ssim gain. For clips with large enough static area, the
encoding speedup is around 2% to 15%.
Change-Id: Id7d268f1d8cbca7fb8026aa4a53b3c77459dc156
2014-04-08 17:03:02 -07:00
Jingning Han
06ec873f2c
Select prediction filter type in non-RD mode decision
...
This commit allows the non-RD mode decision flow to select
prediction filter type in NEWMV mode. It provides 8.14% compression
performance gains in both settings of AQ=0 and 3. The current speed
impact is about 5% to 10% slower.
Change-Id: Id66ecebf77abd8f90fb3f6a066c0e8dfb4bf1c42
2014-04-08 16:47:42 -07:00
Deb Mukherjee
d35df2d8ea
High-level hooks for Profile 2 (10/12 bit)
...
Adds some high-level hooks for profile 2 before further
progress on the implementation.
According to the definitiion in this patch:
1. Profile 2 only supports 10 or 12 bit color but not 8
2. Profile 2 supports all color sampling modes: 444, 422 and 420,
and alpha plane.
3. Profile 3 is currently undefined.
Please consider the definition carefully and suggest modifications
to the definition as needed.
Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
2014-04-08 16:18:34 -07:00
Dmitry Kovalev
129cb23c14
Adding vp9_ssim.h file.
...
Change-Id: Ib3b3864a6018c62ac1ea18e30795af74464596cd
2014-04-08 16:08:39 -07:00
Dmitry Kovalev
231ef057c4
Cleaning up vp9_firstpass.c
...
Change-Id: Ie5723690f7c0bfa29a7ccef5da0c6c6326600ee6
2014-04-08 15:21:30 -07:00
Frank Galligan
6ae58931d6
Fix decoder resolution change with tiles
...
There was a bug with the decoder that if you started the decoder
with more threads than the first frame had tile columns. Afterwards
tried to decode a frame with more tile columns than the first frame,
the decoder would hang. E.g. run vpxdec --threads=4. The first frame
had two tile columns, then the next key frame had 4 tile columns, the
decoder would hang. If you started with 4 tiles and switched to 2
tiles the decoder would be fine. The issue is that the worker the thread
loop is using is stale.
I added a test vector "vp90-2-14-resize-848x480-1280x720.webm" that
exhibited the bug.
Change-Id: I7bdd47241a52ac0fe1c693a609bc779257e94229
2014-04-08 15:16:11 -07:00
Dmitry Kovalev
e8e380f994
Merge "Cleaning up vp9_ratectrl.c file."
2014-04-08 15:06:29 -07:00
Dmitry Kovalev
7e7c95a291
Merge "Cleaning up vp9_diamond_search_sad_c() function."
2014-04-08 13:47:41 -07:00
Dmitry Kovalev
e9fb970af1
Merge "Moving init_rate_control() to vp9_ratectrl.{c, h}."
2014-04-08 12:45:49 -07:00
Dmitry Kovalev
92380695f6
Cleaning up vp9_ratectrl.c file.
...
Change-Id: If8044d9c71afe02ed1e6c94487344e143bdfcd74
2014-04-08 11:59:41 -07:00
Dmitry Kovalev
56c2f41ccb
Renaming VP9D_COMP & VP9Decompressor to VP9Decoder.
...
Change-Id: Ieb9b455b8aaef9884391021b7f640ef24c554687
2014-04-08 11:41:12 -07:00
Yaowu Xu
e2ab65ab7d
Merge "vp9_ratectrl: change ARF overlays rate correction factor"
2014-04-08 07:17:38 -07:00
Yaowu Xu
8f68468917
Merge "Replace imprecise 32 bits calculations by 64 bits calculations"
2014-04-08 07:14:21 -07:00
Yaowu Xu
2914bcfd9b
Merge "vp9_firstpass: Get rid of magic number in bits per MB calculation"
2014-04-08 07:13:49 -07:00
Dmitry Kovalev
6769143cef
Merge "Moving compute_qdelta functions into vp9_ratectrl.{h, c}."
2014-04-07 22:39:38 -07:00
Marco Paniconi
b03e7757d1
Merge "Add constrained-copy partition to speed features."
2014-04-07 18:31:56 -07:00
Dmitry Kovalev
91dbac178f
Moving compute_qdelta functions into vp9_ratectrl.{h, c}.
...
Change-Id: I512f2a287dd8765879a2d1144e2f028dc65f71ff
2014-04-07 16:57:53 -07:00
Dmitry Kovalev
9243edc737
Cleaning up vp9_diamond_search_sad_c() function.
...
Change-Id: I0816ec12ec0a6f21d0f25f10c214b5fd327afc6c
2014-04-07 16:28:35 -07:00
Dmitry Kovalev
8eec5cad50
Merge "Fixing memory leak introduced in previous commit."
2014-04-07 16:13:04 -07:00
Dmitry Kovalev
22a3e30790
Converting set_prev_mi() to get_prev_mi().
...
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f
2014-04-07 16:01:34 -07:00
Dmitry Kovalev
8204140891
Cleaning up encode_frame_internal().
...
Change-Id: I9c5f7edc2d5d1ec5aee396b87bdfc99ee21c435a
2014-04-07 15:51:48 -07:00
Marco Paniconi
181949948e
Add constrained-copy partition to speed features.
...
Copy up to a certain bsize, otherwise set to a fixed bsize.
This helsp to reduce artifact near moving boundary caused by full partition
copy without checking motion of super-block.
This artifact can occur at speeds 3,4 in real-time mode.
Issue: https://code.google.com/p/webm/issues/detail?id=738 .
Change-Id: I05812521fd38816a467f72eb6a951cae4c227931
2014-04-07 14:58:28 -07:00
Dmitry Kovalev
e8c1c95cde
Merge "Rewriting calc_plane_error() function."
2014-04-07 14:41:42 -07:00
Dmitry Kovalev
bbffaf627b
Merge "General vp9_encodeframe.c cleanup."
2014-04-07 14:35:54 -07:00
Dmitry Kovalev
e7e426b274
Moving init_rate_control() to vp9_ratectrl.{c, h}.
...
Change-Id: Iab3effc39064f265426c82b455ef38d37dcce5a8
2014-04-07 14:34:46 -07:00
Dmitry Kovalev
579504b2ef
Fixing memory leak introduced in previous commit.
...
Commit introduced the leak: "Removing XMA legacy from VP9 code."
I5e9dfc50b6312848df8c3b8276f6b4d0c7ff9cf9
Change-Id: Ia1f91bb8403bef340de9f089fa78b3fccc3e9917
2014-04-07 14:21:43 -07:00
Dmitry Kovalev
3f48418472
Merge "Cleaning up vp9_speed_features.c."
2014-04-07 14:18:02 -07:00
Dmitry Kovalev
0cb65fe5cc
Merge "Removing unused seg0_* vars."
2014-04-07 13:16:06 -07:00
Dmitry Kovalev
acf39c8568
Merge "Moving {restore, save}_coding_context to vp9_onyx_if.c"
2014-04-07 13:15:58 -07:00
Dmitry Kovalev
1e96d3a50e
Merge "Cleaning up vp9_{cx, dx}_iface.c files."
2014-04-07 13:06:01 -07:00
Dmitry Kovalev
233b581cef
Cleaning up vp9_speed_features.c.
...
Change-Id: I7b2b690d2d51d55daa642be4131e5febd78cbe0a
2014-04-07 12:54:11 -07:00
Dmitry Kovalev
7169a0b114
Adding temp svc variable.
...
Change-Id: Ic68caec1bcb8a88f443c3e40ce9770eade5bd320
2014-04-07 11:31:26 -07:00
Dmitry Kovalev
b5e12dda52
Cleaning up vp9_{cx, dx}_iface.c files.
...
Change-Id: Ib4e31ba74c4b882bd93942ef743f4a189892738d
2014-04-07 10:38:51 -07:00