Angie Chiang [Thu, 24 Jan 2019 01:15:06 +0000 (17:15 -0800)]
Add get_mv_from_mv_mode()
Given an mv_mode, this function will return the corresponding mv.
find_ref_mv()
A helper function finds the nearest and near mvs from the neighbor
blocks.
select_mv_arr[]
An array used for storing selected motion vectors.
Change-Id: Ibeb434007f65b2c6e461360f208d99455e76bcbf
Angie Chiang [Thu, 24 Jan 2019 00:52:56 +0000 (16:52 -0800)]
Add set_block_src_pred_buf()
This function sets src and pre buffer of MACROBLOCK
and MACROBLOCKD.
Will add static decorator once this function is called.
Change-Id: I0fb46784dd97839e4d87c9e027fe8c59683e70d8
Angie Chiang [Wed, 23 Jan 2019 23:45:47 +0000 (15:45 -0800)]
[cleanup] Move get_feature_score to a proper place
Add static decorator to it as well.
Change-Id: I6c89fae456561b6975ab49af139a45a7483507c6
Chi Yo Tsai [Wed, 23 Jan 2019 17:43:44 +0000 (17:43 +0000)]
Merge "Clean up code for yuv_temporal filter_test.cc"
Jon Kunkee [Tue, 22 Jan 2019 23:01:06 +0000 (15:01 -0800)]
Fix Windows SDK and VS version checks
If WindowsTargetPlatformVersion is not set, the Visual Studio 15 (2017)
toolchain assumes that Windows 8.1 is being targeted. Since ARM64
support is only present and unlocked in Windows SDKs >= Windows 10 1809,
set that SDK as required in the vcxproj files.
Note that this will not be an issue in Visual Studio 16 or greater,
hence the -eq major version check.
https://developercommunity.visualstudio.com/content/problem/128836/windowstargetplatformversion-to-use-the-latest-ava.html
Bug: chromium:893460
Change-Id: Ib069501ad384d91349b1f635722dedd31a4edd97
chiyotsai [Fri, 18 Jan 2019 23:48:55 +0000 (15:48 -0800)]
Clean up code for yuv_temporal filter_test.cc
Some cosmetic changes to make the code google c++-style compliant.
BUG=webm:1591
Change-Id: Icef3ccc8ebed7210b6b6f915885d5f648e62da72
Johann Koenig [Tue, 22 Jan 2019 22:31:13 +0000 (22:31 +0000)]
Merge "ads2gas: remove DO1STROUNDING"
chiyotsai [Thu, 17 Jan 2019 22:15:00 +0000 (14:15 -0800)]
Change temporal filter's search_method on speed 1
This commit introduces a new speed feature that determines the
SEARCH_METHOD used by temporal filter when doing 16x16 block on
full_pixel_motion_search. On speed 0, the most exhaustive method MESH is
used. On speed 1 and above, a faster method NSTEP is used.
Performance:
| AVG_PSNR | AVG_SPDUP | AVG_SPDUP:AVG_PSNR
MISRES | 0.007% | 2.818% | 402:1
HDRES | 0.004% | 4.897% | 1224:1
In the case of midres, there is a small quality gain of -0.021% on
OVR_PSNR.
Performance measurement is done on speed 1 with auto_alt_ref=1.
Quality is measured on full midres set over 60 frames. Speed is measured
on 5 midres clips over 4 bitrates over 30 frames.
STATS_CHANGED
Change-Id: Ic1879d2237f8734529e194767a6cf5e43e20b47b
Chi Yo Tsai [Fri, 18 Jan 2019 23:13:01 +0000 (23:13 +0000)]
Merge "Add unit speed test for vp9_apply_temporal_filter"
Angie Chiang [Fri, 18 Jan 2019 23:05:51 +0000 (23:05 +0000)]
Merge changes Id99ca6fc,I34cdbc6e,Iac7fee46
* changes:
Correct pyramid_mv_arr's memory size
Adjust lambda with bsize in build_motion_field()
Free pyramid_mv_arr properly
Yunqing Wang [Fri, 18 Jan 2019 01:20:11 +0000 (01:20 +0000)]
Merge "Use longer test clips in y4m_test"
Yunqing Wang [Fri, 18 Jan 2019 01:19:56 +0000 (01:19 +0000)]
Merge "Use longer videos in end-to-end tests"
Chi Yo Tsai [Fri, 18 Jan 2019 00:34:37 +0000 (00:34 +0000)]
Merge "Add unit test for temporal filter on VP9"
Johann [Thu, 17 Jan 2019 18:06:21 +0000 (10:06 -0800)]
ads2gas: remove DO1STROUNDING
Change-Id: Iacd1ad5673c71d350cad235e504da0e066dfc4a0
chiyotsai [Wed, 16 Jan 2019 23:33:06 +0000 (15:33 -0800)]
Add unit speed test for vp9_apply_temporal_filter
This patch adds unit speed test for vp9_apply_temporal_filter.
BUG=webm:1591
Change-Id: I4792dfc6ecd4a82775b9a895a90aafdc2a199f86
chiyotsai [Wed, 16 Jan 2019 18:53:56 +0000 (10:53 -0800)]
Add unit test for temporal filter on VP9
The current unit tests for temporal filtering only tests single
channel version of temporal filter. Since VP9 currently uses both luma
and chroma channel information for temporal filtering on low bitdepth,
there is no unit case in this scenario.
This commit adds some basic unit tests to facilitate further development
on temporal filtering.
BUG=webm:1591
Change-Id: Id38ceba5305865d7148e9b2bc636acddae54d6c2
Johann Koenig [Wed, 16 Jan 2019 05:06:59 +0000 (05:06 +0000)]
Merge "mips highbd: resolve missing declarations"
Johann Koenig [Wed, 16 Jan 2019 05:06:53 +0000 (05:06 +0000)]
Merge "mips: add rtcd.h to resolve missing declarations"
Jerome Jiang [Wed, 16 Jan 2019 00:16:15 +0000 (00:16 +0000)]
Merge "vp9: fix definition for VP9E_SET_POSTENCODE_DROP"
Jerome Jiang [Tue, 15 Jan 2019 23:02:39 +0000 (15:02 -0800)]
vp9: fix definition for VP9E_SET_POSTENCODE_DROP
Change-Id: I667be78eb7c41154bf44c242992f622f12c31b80
Marco Paniconi [Tue, 15 Jan 2019 23:02:18 +0000 (23:02 +0000)]
Merge "vp9-svc: Fix to buffer update under frame_drops"
Johann [Tue, 15 Jan 2019 22:22:24 +0000 (14:22 -0800)]
mips: add rtcd.h to resolve missing declarations
BUG=webm:1584
Change-Id: Ifdebf33356abcc6869f695d129165ba17e042dcd
Johann [Tue, 15 Jan 2019 22:23:59 +0000 (14:23 -0800)]
mips highbd: resolve missing declarations
BUG=webm:1584
Change-Id: I4cbfafe8ea72b3d4523aabcaed4848fa29bb19fe
Marco Paniconi [Tue, 15 Jan 2019 20:12:47 +0000 (12:12 -0800)]
vp9-svc: Fix to buffer update under frame_drops
For svc with frame dropping in full_superframe_drop or
constrained dropped mode: the buffer level for a given layer
may be capped from increasing too much. This is because that layer
may be dropped even though its buffer is stable (the dropped is forced
due to underflow in other layers in full/constrained svc-drop mode).
This capping is needed to prevent decrease in qp over consecutive
frame drops.
The capping already exists and has been used, but this change
introduce an error that prevented its usage:
https://chromium-review.googlesource.com/c/webm/libvpx/+/1330875
The fix here is to also cap the bits_off_target as well, since after
the change mentioned above, its the bits_off_target that is used to
update buffer on next frame (which in turn affects qp for next frame/layer).
Change-Id: Ifdab5d478e91cce20ecec51faa574eed375ee36b
chiyotsai [Sat, 3 Nov 2018 00:08:05 +0000 (17:08 -0700)]
Remove unnecessary calculation in 4-tap interpolation filter
Reduces the number of rows calculated for 2D 4-tap interpolation filter
from h+7 rows to h+3 rows.
Also fixes a bug in the avx2 function for 4-tap filters where the last
row is computed incorrectly.
Performance:
| Baseline | Result | Pct Gain |
bitdepth lo| 4.00 fps | 4.02 fps | 0.5% |
bitdepth 10| 1.90 fps | 1.91 fps | 0.5% |
The performance is evaluated on speed 1 on jets.y4m br 500 over 100
frames.
No BDBR loss is observed.
Change-Id: I90b0d4d697319b7bba599f03c5dc01abd85d13b1
Johann Koenig [Tue, 15 Jan 2019 18:19:31 +0000 (18:19 +0000)]
Merge " highbd_iadst16_neon: resolve missing declaration"
Marco Paniconi [Tue, 15 Jan 2019 05:05:18 +0000 (05:05 +0000)]
Merge "vp9-svc: Rate control fix for key base layer"
Marco Paniconi [Tue, 15 Jan 2019 01:02:59 +0000 (17:02 -0800)]
vp9-svc: Rate control fix for key base layer
After encoding key frame on base spatial layer,
if the overshoot is significant, reset the
avg_frame_qindex[INTER] on base spatial layer for
all temporal layers.
This forces the active_worst_quality to increase
on subsequent frames/layers and reduces frame dropping.
Change-Id: I53a3cd14131d69120e59a649b7ed1bfde3e940ee
Jerome Jiang [Tue, 15 Jan 2019 01:42:07 +0000 (01:42 +0000)]
Merge "Fix typo: exhuastive"
Jerome Jiang [Tue, 15 Jan 2019 01:41:55 +0000 (01:41 +0000)]
Merge "clean up debug print."
Yunqing Wang [Tue, 15 Jan 2019 01:12:54 +0000 (17:12 -0800)]
Use longer test clips in y4m_test
Used 20-frame clips to replace 10-frame clips in y4m_test. Also, removed
unused 10-frame clips.
Change-Id: Ib82ad2c3718f1f5f31478957b9ee970593536940
Yunqing Wang [Tue, 15 Jan 2019 00:30:20 +0000 (16:30 -0800)]
Use longer videos in end-to-end tests
Used 20-frame clips got from Deb in end-to-end unit tests to improve
the test coverage.
TODO: remove 10-frame clips.
Change-Id: I06ec2d35f5c5c47263d3be61623c80f52fd18ffe
Jerome Jiang [Mon, 14 Jan 2019 23:46:04 +0000 (15:46 -0800)]
clean up debug print.
printf -> assert(0 & ...)
Change-Id: I7bd6c0127ad816e8a5b555e86d54961b33da2bc4
Jerome Jiang [Mon, 14 Jan 2019 23:42:20 +0000 (15:42 -0800)]
Fix typo: exhuastive
Change-Id: Ia00570a00b871eb1f929bd7e0af221d2c0b5ed21
Wan-Teh Chang [Mon, 14 Jan 2019 22:53:08 +0000 (22:53 +0000)]
Merge "Change "ximage" to "vpx_image_t" in comments."
Wan-Teh Chang [Mon, 14 Jan 2019 22:03:50 +0000 (22:03 +0000)]
Merge "Reset buffer_alloc_sz after freeing buffer_alloc."
Wan-Teh Chang [Mon, 14 Jan 2019 19:54:59 +0000 (11:54 -0800)]
Reset buffer_alloc_sz after freeing buffer_alloc.
ybf->buffer_alloc and ybf->buffer_alloc_sz should ideally be kept in
sync. If ybf->buffer_alloc is reset to NULL after being freed, then
ybf->buffer_alloc_sz should be reset to 0.
Change-Id: I7e7566b563ddf145d0e46050c5b6bd141084f8b3
Jerome Jiang [Mon, 14 Jan 2019 19:19:08 +0000 (19:19 +0000)]
Merge "Fix typo."
Wan-Teh Chang [Mon, 14 Jan 2019 19:13:43 +0000 (11:13 -0800)]
Change "ximage" to "vpx_image_t" in comments.
In test/external_frame_buffer_test.cc, rename CheckXImageFrameBuffer()
to CheckXImageFrameBuffer().
Change-Id: Ifea3910445673be465d7536a69f85f1a2e2bce6e
Jerome Jiang [Fri, 11 Jan 2019 22:32:09 +0000 (14:32 -0800)]
Fix typo.
Blocking libvpx update into google3.
Change-Id: I18c29f0a68568e65ae5e0c7fcdb5097b08b586a6
James Zern [Sat, 12 Jan 2019 00:36:45 +0000 (16:36 -0800)]
convolve_test: Add missing init of HBD buffers
this resolves some msan errors.
the same change was done in libaom:
5ab58722c Add missing initializations of HBD buffers
Change-Id: I8882af45b95c90ba43bf138c7d305a6c3b99e61c
Yunqing Wang [Fri, 11 Jan 2019 22:53:31 +0000 (22:53 +0000)]
Merge "Fix segmentation fault in hbd path"
Johann Koenig [Fri, 11 Jan 2019 19:39:34 +0000 (19:39 +0000)]
Merge "highbd idct: resolve missing declarations"
Deepa K G [Fri, 11 Jan 2019 12:32:12 +0000 (18:02 +0530)]
Fix segmentation fault in hbd path
When CONFIG_VP9_HIGHBITDEPTH is enabled,
lowbd modules were called in the hbd path.
This patch fixes the issue.
Change-Id: I59820180fbed120697b6ef1fc1a02be0d35ac1d5
Angie Chiang [Fri, 11 Jan 2019 06:44:01 +0000 (22:44 -0800)]
Correct pyramid_mv_arr's memory size
Change-Id: Id99ca6fc846ebe11a9f5363da4e6449e976303a1
Angie Chiang [Fri, 11 Jan 2019 03:35:10 +0000 (19:35 -0800)]
Adjust lambda with bsize in build_motion_field()
Change-Id: I34cdbc6e8625c0de8595860af02ca277c3448a19
Jerome Jiang [Thu, 10 Jan 2019 21:57:07 +0000 (21:57 +0000)]
Merge "vp8 dec: Add flag to bring up threads."
Jerome Jiang [Tue, 8 Jan 2019 18:51:54 +0000 (10:51 -0800)]
vp8 dec: Add flag to bring up threads.
Instead of creating a new decoder instance when restarting all threads
after they were shut down, re-create threads on the new flag.
BUG=webm:1577
Change-Id: I6272ecaa1b586afdaa5ed8d6eab80aff8f5eb673
Angie Chiang [Thu, 10 Jan 2019 13:55:08 +0000 (05:55 -0800)]
Free pyramid_mv_arr properly
Change-Id: Iac7fee461759599a7e167f8e6716ae3c6414a7d1
Johann [Wed, 9 Jan 2019 23:35:30 +0000 (15:35 -0800)]
highbd_iadst16_neon: resolve missing declaration
Only used in a local array. Similar to lowbd iadst16 naming.
BUG=webm:1584
Change-Id: Ie07c2fb9599fb54fab221e5c0ccec0e95d69b893
Johann [Wed, 9 Jan 2019 18:57:07 +0000 (10:57 -0800)]
highbd idct: resolve missing declarations
BUG=webm:1584
Change-Id: I596f5f0e1a1c152493cd8177b32d416cc79937e0
Angie Chiang [Wed, 9 Jan 2019 16:11:04 +0000 (16:11 +0000)]
Merge changes Icec98e6f,I63614e65,I25ea05f4
* changes:
Add full_pixel_exhaustive_new
Add sse cost in vp9_full_pixel_diamond_new
Use motion field for mv inconsistency in mv search
Johann Koenig [Wed, 9 Jan 2019 15:38:38 +0000 (15:38 +0000)]
Merge "ppc: resolve missing declarations"
Johann [Tue, 8 Jan 2019 18:34:39 +0000 (10:34 -0800)]
ppc: resolve missing declarations
Add rtcd headers and make local functions static.
BUG=webm:1584
Change-Id: Ic19aec1dc90703b0b89d1092baee487d0fd0cb4e
Johann [Tue, 8 Jan 2019 18:24:21 +0000 (10:24 -0800)]
vp8 arm loopfilter: resolve missing declarations
BUG=webm:1584
Change-Id: I3270e6efe79fe9728e8d11f4c352deefc3cea00b
Johann Koenig [Tue, 8 Jan 2019 15:39:10 +0000 (15:39 +0000)]
Merge "vp8 idct: remove return"
Johann Koenig [Tue, 8 Jan 2019 05:23:24 +0000 (05:23 +0000)]
Merge "vp8_copy32xn: resolve missing declaration"
Johann [Tue, 8 Jan 2019 04:38:13 +0000 (20:38 -0800)]
vp8 idct: remove return
Change-Id: Ib1648e1f6559e65ddf11cb54266c7eeff37a6ea6
Johann Koenig [Tue, 8 Jan 2019 04:36:45 +0000 (04:36 +0000)]
Merge "vp8 idct dequant: resolve missing declarations"
Johann Koenig [Tue, 8 Jan 2019 04:29:03 +0000 (04:29 +0000)]
Merge "vp8 blend: resolve missing declarations"
Johann Koenig [Tue, 8 Jan 2019 04:28:38 +0000 (04:28 +0000)]
Merge "vp8 overlaps: resolve missing declaration"
Johann [Tue, 8 Jan 2019 02:01:01 +0000 (18:01 -0800)]
vp8 idct dequant: resolve missing declarations
BUG=webm:1584
Change-Id: Iecd2a0154c523fa61349c456befdf6c37d980efc
Johann [Tue, 8 Jan 2019 00:29:24 +0000 (16:29 -0800)]
vp8_copy32xn: resolve missing declaration
BUG=webm:1584
Change-Id: I9898a6e2f977acd4e26b09222a1eb2ab4f37f0af
Johann [Tue, 8 Jan 2019 00:24:06 +0000 (16:24 -0800)]
vp8 overlaps: resolve missing declaration
BUG=webm:1584
Change-Id: I67fa7460cb90b9bbe8583b60340d7bbf615a11f2
Johann [Tue, 8 Jan 2019 00:18:31 +0000 (16:18 -0800)]
vp9_get_blockiness: resolve missing declaration
BUG=webm:1584
Change-Id: I719c64734f4eae07def2d700006834a2420891a7
Johann [Tue, 8 Jan 2019 00:10:01 +0000 (16:10 -0800)]
vp8 blend: resolve missing declarations
Remove unused functions.
BUG=webm:1584
Change-Id: If7a49e920e12f7fca0541190b87e6dae510df05c
Johann Koenig [Mon, 7 Jan 2019 23:56:07 +0000 (23:56 +0000)]
Merge "vp8 multi dimensional search: resolve missing declarations"
Johann Koenig [Mon, 7 Jan 2019 23:54:39 +0000 (23:54 +0000)]
Merge "vp8_copy32xn: resolve missing declaration"
Johann Koenig [Mon, 7 Jan 2019 23:26:54 +0000 (23:26 +0000)]
Merge "vpx_filter: resolve missing declarations"
Johann Koenig [Mon, 7 Jan 2019 23:26:43 +0000 (23:26 +0000)]
Merge "vpx_clear_system_state: resolve missing declaration"
Johann Koenig [Mon, 7 Jan 2019 23:26:32 +0000 (23:26 +0000)]
Merge "vp9 intra pred test: resolve -Wuninitialized warning"
Johann Koenig [Mon, 7 Jan 2019 23:26:06 +0000 (23:26 +0000)]
Merge "arm neon: resolve missing declarations"
Johann [Mon, 7 Jan 2019 18:39:04 +0000 (10:39 -0800)]
vp8_copy32xn: resolve missing declaration
BUG=webm:1584
Change-Id: I8279e099fb9595edad858bf7332bf2b40fecae02
Johann [Mon, 7 Jan 2019 22:05:58 +0000 (14:05 -0800)]
arm neon: resolve missing declarations
BUG=webm:1584
Change-Id: I2dcf39f2327b72b58be72c27f952ea781a790dd3
Johann [Mon, 7 Jan 2019 20:34:53 +0000 (12:34 -0800)]
vpx_filter: resolve missing declarations
BUG=webm:1584
Change-Id: I1be768446b9304123da7b1ea0aed0db056db31c5
Johann [Mon, 7 Jan 2019 19:58:28 +0000 (11:58 -0800)]
vpx_clear_system_state: resolve missing declaration
BUG=webm:1584
Change-Id: I0770fc97055b98cdf9ff7bd7a93ae3a5e19b8180
Fyodor Kyslov [Mon, 7 Jan 2019 19:30:21 +0000 (19:30 +0000)]
Merge "Fix OOB memory access on fuzzed data"
Johann [Mon, 7 Jan 2019 19:27:53 +0000 (11:27 -0800)]
vp9 intra pred test: resolve -Wuninitialized warning
BUG=webm:1584
Change-Id: I58505e04bd248697047d4957cebe495dada670a0
Johann [Mon, 7 Jan 2019 19:14:57 +0000 (11:14 -0800)]
vp8 multi dimensional search: resolve missing declarations
BUG=webm:1584
Change-Id: I5c3fb5ab00bff66a8e8f4b8d27cbcea4946eced0
kyslov [Sat, 5 Jan 2019 01:04:09 +0000 (17:04 -0800)]
Fix OOB memory access on fuzzed data
vp8_norm table has 256 elements while index to it can be higher on
fuzzed data. Typecasting it to unsigned char will ensure valid range and
will trigger proper error later. Also declaring "shift" as unsigned char to
avoid UB sanitizer warning
BUG=b/
122373286,b/
122373822,b/
122371119
Change-Id: I3cef1d07f107f061b1504976a405fa0865afe9f5
Johann [Mon, 7 Jan 2019 17:53:18 +0000 (09:53 -0800)]
fix vp9 fdct_quant
Values in [q]coeff1 were not correctly stored. This caused a segfault
in the sse2 libvpx__nightly_optimization jobs.
Broken in:
commit
85032bac388917916f7a149173db8b34e93e8f6e
Author: Johann <johannkoenig@google.com>
Date: Fri Dec 21 00:27:00 2018 +0000
fdct_quant: resolve missing declarations
BUG=webm:1584
Change-Id: I5f5fad34ec5e32023f5b40ff3691125754c11ced
Urvang Joshi [Fri, 4 Jan 2019 23:03:57 +0000 (23:03 +0000)]
Merge "VP9 firstpass: Bugfix when mi_col_start/end is odd"
Urvang Joshi [Thu, 3 Jan 2019 22:49:18 +0000 (14:49 -0800)]
VP9 firstpass: Bugfix when mi_col_start/end is odd
Before this patch, if mi_col_end was odd, then the for loop for 'mb_col'
was looping once LESS than it should have been.
For example, if mi_col_end = 47, then the loop was terminating when
mb_col == 23. However, the correct behavior would be to terminate when
mb_col == 24.
The issue was introduced in:
https://chromium-review.googlesource.com/c/webm/libvpx/+/423279
This can lead to many of the stats being inaccurate, for such videos
(with mi_col_start/end having an odd value).
As an example:
Even for very static content, fp_acc_data->intercount can never reach the
same value as num_mbs. And in turn, pcnt_inter can never reach the value 1
(that is, 100%). This would lead to very static videos NOT being marked
static, and encoded like regular videos.
Note: this is just one possible effect based on observation. Other
issues are also possible based on other stats.
Improvement on some test clips:
-------------------------------
- One test clip saw a gain of -2.580% in VBR mode (and -3.153% in Q
mode). The reason for improvement: a wrongly detected scene cut was
avoided due to corrected value in 'this_frame->pcnt_inter'.
- Some very static clips correctly marked as having 100% zero motion.
This avoided addition of unncecessary alt-refs, thereby reducing the
bitrate.
BDRate (PSNR) on regular sets (VBR mode):
-----------------------------------------
lowres: 0.0
midres: -0.027 (some clips were better/worse, but I double checked that
changes were as expected, given correction in stats calculation).
hdres: 0.0
STATS_CHANGED for the types of videos described above.
Change-Id: Ifbc2c0c0815d23ec4015475680bdf8886f158dcc
Angie Chiang [Fri, 4 Jan 2019 04:48:12 +0000 (20:48 -0800)]
Add full_pixel_exhaustive_new
Add full_pixel_exhaustive_new() and exhuastive_mesh_search_new().
The two functions are variants from full_pixel_exhaustive() and
exhuastive_mesh_search().
In the new versions, we use mv inconsistency in place of
mv entropy cost.
Change-Id: Icec98e6fae24f2771806a3e78276734624ec0303
Angie Chiang [Tue, 1 Jan 2019 15:28:20 +0000 (07:28 -0800)]
Add sse cost in vp9_full_pixel_diamond_new
Change-Id: I63614e652686557652985bde882889eea9ecbcad
Angie Chiang [Mon, 10 Dec 2018 23:29:39 +0000 (15:29 -0800)]
Use motion field for mv inconsistency in mv search
Change-Id: I25ea05f4bfe3c6f420e967c33763909c979a0d1b
Angie Chiang [Tue, 1 Jan 2019 04:56:31 +0000 (20:56 -0800)]
Increase memory size in non-greedy-mv
The smallest block size of motion field is 4x4, but the mi_unit
size is 8x8, therefore the number of units of motion field is
"mi_rows * mi_cols * 4".
Change-Id: I95292904d757705d39b78af5d0cf2d25f376c642
Angie Chiang [Sun, 23 Dec 2018 00:42:28 +0000 (16:42 -0800)]
Build pyramid motion field
Change-Id: I43fd61f7946a8a96d444dab5e94a9b01483ffab7
Jerome Jiang [Wed, 2 Jan 2019 20:55:26 +0000 (12:55 -0800)]
vp9: psnr diff thres for single vs multi threading.
Change the threshold from 0.1 to 0.2.
BUG=webm:1588
Change-Id: I1ca20b360bcae66d09dc898c3266c9f5ac346561
Yunqing Wang [Fri, 21 Dec 2018 22:46:52 +0000 (14:46 -0800)]
Adaptively choose block sizes in temporal filtering
Use variable block sizes in temporal filtering. Based on prediction
errors of 32x32 or 16x16 blocks, choose the block size adaptively.
This improves the coding performance, especially for HD resolutions.
Speed 1 borg test result:
avg_psnr: ovr_psnr: ssim:
lowres: -0.090 -0.075 -0.112
midres: -0.120 -0.107 -0.168
hdres: -0.506 -0.512 -0.547
Change-Id: I8f774e29ecb2e0dd372b32b60c32d8fa30c013a8
Johann Koenig [Mon, 24 Dec 2018 02:06:17 +0000 (02:06 +0000)]
Merge "fwd_dct32x32 avx2: resolve missing declarations"
James Zern [Sat, 22 Dec 2018 17:46:54 +0000 (17:46 +0000)]
Merge "Revert "Add Tile-SB-Row based Multi-threading in Decoder""
James Zern [Sat, 22 Dec 2018 14:35:35 +0000 (09:35 -0500)]
test-data: add missing test data entries
invalid-bug-1443-v2.ivf{,.res}
invalid-vp80-00-comprehensive-s17661_r01-05_b6-.v2.ivf{,.res}
missed in:
6dbf738a4 vp8: kill all threads on corrupted frame.
Change-Id: I6481f4ad7544ecc069d0e0442888e97e9638fdd3
James Zern [Sat, 22 Dec 2018 14:26:29 +0000 (09:26 -0500)]
Revert "Add Tile-SB-Row based Multi-threading in Decoder"
This reverts commit
02b3ef7faee5be5ee519856fbb3523d3ab49f6e7.
Reason for revert: fails to build under visual studio
Original change's description:
> Add Tile-SB-Row based Multi-threading in Decoder
>
> Add the multi-thread function that decodes a video row by row instead
> of a tile at a time. Create a job queue for queueing all parse and recon jobs.
> Each SB row of a tile is a job.
>
> Performance Improvement:
>
> Platform Resolution 3 Threads 4 Threads
> ARM 720p 36.81% 18.37%
> 1080p 32.27% 14.76%
>
> ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz
>
> Change-Id: I3d4dd7a932fc2904c90d9546b2de99c809afd29e
BUG=webm:1587
Change-Id: Ia4c8f5128922a205cd9fd83aaef8a2e73764d4a7
Fyodor Kyslov [Fri, 21 Dec 2018 23:24:29 +0000 (23:24 +0000)]
Merge "Bound the total allocated memory of frame buffer"
Johann Koenig [Fri, 21 Dec 2018 22:02:49 +0000 (22:02 +0000)]
Merge "fwd_dct32x32 sse2: resolve missing declarations"
kyslov [Fri, 21 Dec 2018 20:04:04 +0000 (12:04 -0800)]
Bound the total allocated memory of frame buffer
This CL allows to limit memory consumption of the frame buffer pool. As
the result if compiled with VPX_MAX_ALLOCABLE_MEMORY set codec will fail
if frame resolution requires more memory
This is backported CL
aae2183cb58b60d01b8e4e15269ee9f48dd72908 from
aomedia
Tested:
configure --extra-cflags="-DVPX_MAX_ALLOCABLE_MEMORY=
536870912"
make
./test_libvpx
BUG=webm:1579
Change-Id: Ic62213b600a7562917d5a339a344ad8db4b6f481
Johann Koenig [Fri, 21 Dec 2018 21:46:00 +0000 (21:46 +0000)]
Merge "vp9_decodeframe.c: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 21:40:49 +0000 (21:40 +0000)]
Merge "vp9_highbd_block_error_sse2: resolve missing declarations"
Johann Koenig [Fri, 21 Dec 2018 21:37:53 +0000 (21:37 +0000)]
Merge "convolve avx2: resolve missing declarations"