summaryrefslogtreecommitdiff
path: root/vp9/decoder
AgeCommit message (Collapse)Author
2018-08-30Revert "Loopfilter MultiThread Optimization"James Zern
This reverts commit dafe064289a917977439ab6f4f002b9946496084. Corrupted files may cause the decoder to hang as row progress in the loopfilter is used to progress each thread. BUG=webm:1558 Change-Id: I0674ce9af14d3fb7b2da8124e7b600616c8e734a
2018-08-27Rework enc/dec mismatch detectionJingning Han
The previous enc/dec mismatch detection assumes the previously reconstructed frame would always stay at frame buffer pool index at 0. It could hence cause certain delay in enc/dec mismatch detection when the immediate reconstruction frame is not yet propagated to index 0 in the buffer map pool. This change always keeps the latest decoded show frame buffer index and directly gets the reconstructed frame from encoder and decoder buffer pools to check for mismatch. Change-Id: If53092cbc42ab78d55af5b83f12a489fc362f3ae
2018-08-21Merge "Loopfilter MultiThread Optimization"Harish Mahendrakar
2018-08-20Loopfilter MultiThread OptimizationSupradeep T R
Adding LPF within the tileworker hook. This means that LPF will be done immediately after decode, without waiting for all threads to sync. Performance Improvement - Platform Resolution 2 Threads 4 Threads X86 720p 7.24% 22.04% 1080p 5.29% 17.02% ARM 720p 4.61% 8.75% 1080p 5.55% 12.03% x86 Improvement measured on Intel Core i7-6700 CPU @ 2.10GHz set in performance with turbo mode off ARM Improvement measured on Nexus 6 Snapdragon 805 Quad-core @ 2.65 GHz Change-Id: Ifa73c71b40db3fa7fa16f54f4e3aa06d1258caae
2018-08-13Merge "vp9: don't release buffer for current frame."Jerome Jiang
2018-08-11vp9: don't release buffer for current frame.Jerome Jiang
when resync is needed, we flush all frame buffers on key frame. BUG=b/112406540 BUG=oss-fuzz:9722 Change-Id: Ie53feb12126f25877436eba40317400bf69c6207
2018-08-06vp9: address integer sanitizer warningJohann
Comparing the size values with subtraction requires casting. Sort in descending order. (a < b) - (a > b) If a is greater, this is 0 - 1 = -1 If the values are equal, this is 0 - 0 = 0 If b is greater, this is 1 - 0 = 1 Change-Id: I5c20fd10fbc97c391c6858235c44d25d7db57f0e
2018-07-27Merge "vp9: release frame buffer on key frame."Jerome Jiang
2018-07-26vp9: release frame buffer on key frame.Jerome Jiang
Add tests with corrupted frames and periodic key frames. BUG=webm:1545 Change-Id: Ic0684bdafd01507036f56465387b9d2187b1458e
2018-07-20Add Flag to Enable Row Based MultiThreadingVenkatarama NG. Avadhani
This commit adds a command line argument "--row-mt". Passing "--row-mt=1" will set the row_mt flag in the decoder context. This flag will be used to determine whether row-wise multi-threading path is to be taken when the row-wise multi-threading functions are added. Change-Id: I35a5393a2720254437daa5e796630709049e0bc2
2018-07-12Backport libaom bug fixes.Wan-Teh Chang
libaom commit 80a5b09337a80093e1e7ae5eb540020a22949805: dec_free_mi: Reset cm->mi_alloc_size. libaom commit fb0dd0bb80fc95ef016f1421b105a52fffa32816: Clear cm->width and cm->height on alloc failure. libaom commit ccb27264089a8cfa1334391ebbcb6a11b8dff442: Misc. resize fixes along with the resize test Note: only the change to enc_free_mi in av1/encoder/encoder.c is merged. Change-Id: I602813230d40125e59608fa013085dca3e160c33
2018-06-06VP9: fix unsigned integer overflow in decoder.Jerome Jiang
The difference of two size_t variables. Change-Id: I73f35cdafc2ba64a9ddaf855cc6a410cfb63b8da
2017-11-20[CFI] Remove function pointer castsVlad Tsyrklevich
Control Flow Integrity [1] indirect call checking verifies that function pointers only call valid functions with a matching type signature. This change eliminates function pointer casts to make libvpx CFI-safe. [1] https://www.chromium.org/developers/testing/control-flow-integrity Change-Id: I7e08522d195a43c88cda06fa20414426c8c4372c
2017-11-09vp9: Fix mem rel for non-ref for external buffer.Jerome Jiang
Release frame buffers for non-ref when the decoder is destroyed. Enable the non ref test. BUG=b/68819248 Change-Id: Id87ef3b0a62318f9812e927cd957c05c859047fa
2017-07-05vp9: remove FrameWorkerData & vp9_dthread.hJames Zern
the file was empty after the struct removal. the only remaining use was within vp9_dx_iface, but the wrapper became unnecessary after the removal of frame_parallel_decode. BUG=webm:1395 Change-Id: I515ab585d701e77d388d12b2802d844c424f9bcd
2017-07-05vp9: remove (un)lock_buffer_poolJames Zern
there is no threaded access to this pool after the removal of frame_parallel_decode BUG=webm:1395 Change-Id: I710769b87102edc898c59eb9a2e7a91d8c49107f
2017-06-30vp9_onyxc_int,RefCntBuffer: rm unused membersJames Zern
the last frame_worker_owner, row and col references were removed in: 131bd06e6 remove vp9_dthread.c BUG=webm:1395 Change-Id: Ia7fb2e8782b12a58d2a2263849d20a8abf06aef6
2017-06-30remove vp9_dthread.cJames Zern
and the related prototypes in vp9_dthread.h. the last references were removed in: 09dabc58d VP9_COMMON: rm frame_parallel_decode vp9_dx_iface.c still uses FrameWorkerData BUG=webm:1395 Change-Id: Ica8e98ae776fc0105f1fbbed9e0a729808980810
2017-06-30VP9_COMMON: rm frame_parallel_decodeJames Zern
this has been 0 since the removal of frame_parallel_decode in vp9_dx_iface. BUG=webm:1395 Change-Id: I3a562b2c6b82050064d2b2ccb18a3e77c700b2da
2017-06-30VP9Decoder: rm frame_parallel_decodeJames Zern
this has been 0 since the removal of frame_parallel_decode in vp9_dx_iface. BUG=webm:1395 Change-Id: I3f579766ecfa4777395b99686738e1c5610f86ef
2017-05-26Fix vp8 race when build --enable-vp9-highbitdepth.Jerome Jiang
Split vp8/vp9 implementations on yv12_copy_frame_c. Remove high-bitdepth codes from vp8_yv12_extend_frame_borders_c. Clean up vp8 codes usage in vp9. BUG=webm:1435 Change-Id: Ic68e79e9d71e1b20ddfc451fb8dcf2447861236d
2017-05-03Update highbd idct functions arguments to use uint16_t dstLinfeng Zhang
BUG=webm:1388 Change-Id: I3581d80d0389b99166e70987d38aba2db6c469d5
2017-05-03Clean CONVERT_TO_BYTEPTR/SHORTPTR in idctLinfeng Zhang
BUG=webm:1388 Change-Id: Ida62c941f2b836d6c9e27b427a7d5008ab6dc112
2017-04-25Clean vp9_highbd_build_inter_predictor() and highbd_inter_predictor()Linfeng Zhang
BUG=webm:1388 Change-Id: I7ee32e0c08f0fb41712a8cc640b2c5bba872421d
2017-02-14apply clang-formatclang-format
Change-Id: I75e4a9e0b37bd4586f26c8d6c1fa27f3f6ff1bce
2016-11-22vp9,read_inter_block_mode_info: quiet msan warningJames Zern
best_sub8x8[1] won't be used meaningfully when is_compound is false, but may trigger an msan warning as the value is copied around and later clamped. BUG=667044 Change-Id: Icc24c3b72cdb550bebea44d4aaa4ff8bf3fbab56
2016-11-01vp9,tile_worker_hook: correctly set jmp targetJames Zern
vp9_init_macroblockd() resets the error_info to cm's global copy; this needs to be set to the thread-level target to avoid jumping to the incorrect stack, resulting in hang or crash. broken since: 1f4a6c8 vp9/tile_worker_hook: add multiple tile decoding includes v1.5.0, v1.6.0 BUG=629481 Change-Id: Icbf1696b25ba8c479e845fbf227b3c3ca73542f5
2016-09-28vp9_detokenize,decode_coefs: fix signed int overflowJames Zern
when decoding an invalid bitstream with --enable-vp9-highbitdepth BUG=webm:1297 Change-Id: I401d87033b4293f2ca595bc51678aad9951ecf15
2016-09-27Fix for compile error with range checkingPeter de Rivaz
Current version does not build with options: --enable-vp9-highbitdepth --enable-coefficient-range-checking Change-Id: Ic3285f1a3e0d6be88da7f2cd8fa5a631368dd03b
2016-09-23VP9: token decoder expansionScott LaVarnway
This version is based on Change 267683, but does not use the macros. Change-Id: I0619fa618decf8bdeef250584d75d70318b5d9a7
2016-09-23Merge "VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader."Scott LaVarnway
2016-09-22VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader.Scott LaVarnway
Change-Id: I869ef0f113c022143b531c44aefa0f1bb267052d
2016-09-19Code class0 using vpx_read() / vpx_write().Nathan E. Egge
The vp9_mv_class0_tree is a balanced tree with two leafs and can simply be coded as a boolean with probability class0[0]. Change-Id: If294dac825a5f945371092c74aa8e3f84cd962b6 (cherry picked from commit be8a8ab62ebdd111c6f2e9a33b15630570671eba)
2016-08-31Refactor uv tx size with lookup arraysDebargha Mukherjee
Change-Id: Ife6a3d301c5faaba89d16d188d638631083511f7
2016-08-03vp9/decoder,vp9/*.[hc]: apply clang-formatclang-format
Change-Id: Ic38ea06c7b2fb3e8e94a4c0910e82672a1acaea7
2016-07-21VP9: get_pred_context_switchable_interp() -- encoder sideScott LaVarnway
Change-Id: I7217c90d5cf38c51b76759a2dc4f10070f3a40ac
2016-07-06Merge "Remove decode asserts from better-hw-compatibility"Debargha Mukherjee
2016-07-06Remove decode asserts from better-hw-compatibilityDebargha Mukherjee
Safer to have the decoder operate normally and have better-hw-compatibility only implement encoding changes. Fixes some test failures. Change-Id: I0dd70d002e4e893992f0cd59774b9363e6f7fe76
2016-07-01Make set_reference control API work in VP9Yunqing Wang
Moved the API patch from NextGenv2. An example was included. To try it, for example, run the following command: $ examples/vpx_cx_set_ref vp9 352 288 in.yuv out.ivf 4 30 Change-Id: I4cf8f23b86d7ebd85ffd2630dcfbd799c0b88101
2016-06-21Add a hardware compatibility featurehui su
This commit adds an encoder workaround to support better compatibility with a non-compliant hardware vp9 profile 2 decoder. The known issue with this decoder is: The decoder assumes a wrong value, 127 instead of the correct value of 511 and 2047, for any assumed top-left corner pixel in UV planes for 10 and 12 bit, respectively. Such assumed top-left corner pixel is used for INTRA prediction when a real decoded/reconstructed pixel is not avalable, e.g. when it is located inside the row above the top row or inside the column left to the leftest column of a video image. Change-Id: Ic15a938a3107e1b85e96cb7903a5c4220986b99d
2016-05-25Prevent read to invalid RefBufferYaowu Xu
This commit adds check to validate RefBuffer before reading into the data structure, to prevent invalid read. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=614701 Change-Id: Ie111e95bd18e88fa19d8b25e097cdf52b7139cb6
2016-05-18Merge "Prevent invalid read"Yaowu Xu
2016-05-18Merge "Move, rename, and inline high_inter_predictor."Alex Converse
2016-05-18Move, rename, and inline high_inter_predictor.Alex Converse
The inlining mirrors what was done with the low bit depth inter_predictor. And the new highbd_inter_predictor name is more consistent with other high bit depth functions. Change-Id: I96437f745759aeec6260c6e39a974bf36f1c211c
2016-05-18Prevent invalid readYaowu Xu
This commit adds a check before reading into RefBuffer to prevent OOB read. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=612023 Change-Id: I5b02951932e7f457cfbe6b2e650790496b8577ae
2016-05-18Merge "VP9: _get_pred_context_switchable_interp()"Scott LaVarnway
2016-05-17VP9: _get_pred_context_switchable_interp()Scott LaVarnway
Remove unnecessary checks. Change-Id: Ic7bce8277ac5f4ae88d4ab7d0ae3ab110b2f225b
2016-05-17Promote to uint32_t before left shiftYaowu Xu
This commit change to promote uint8_t explicitly to uint32_t before left shift operation. BUG=https://bugs.chromium.org/p/chromium/issues/detail?id=612021 Change-Id: Id7059154efb5bdfa45889dabe72aaafd46d79f23
2016-04-15VP9: inline vp9_get_intra_inter_context()Scott LaVarnway
Change-Id: I71366140799b9b39474b9b459082cdb250bd1905
2016-04-10Merge "VP9: Combine TileData with TileWorkerData"Scott LaVarnway