summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_decodeframe.c
AgeCommit message (Collapse)Author
2019-12-04trivial: remove reference to error correctionJohann
vp9 does not support error correction Change-Id: I89517ae97abfa60833c9150495556d49c9656778
2019-12-02Merge "Fix mutex free in multi-thread lpf"James Zern
2019-11-27Fix mutex free in multi-thread lpfVenkatarama NG. Avadhani
The mutex lf_mutex will now be allocated and destroyed, making it easier to verify if it has been inited before destruction. BUG=webm:1662 Change-Id: I8169bea9e117bd615d68b8d02da98aeab570b53f
2019-11-14Move buffer from extend_and_predict into TileWorkerDataVitaly Buka
This avoids unneeded initializations. extend_and_predict is called from multiple nested loops, allocate large buffer on stack and use just a portion of it. -ftrivial-auto-var-init= inserts initializations which performed on multiple iterations of loops causing 258.5% regression on webrtc_perf_tests decode_time/pc_vp9svc_3sl_low_alice-video. Bug: 1020220, 977230 Change-Id: I7e5bb3c3780adab74dd8b5c8bd2a96bf45e0c231
2019-05-06Add mismatch_debug toolAngie Chiang
Change-Id: I045b4cf625d428109688303ced5433d824df2790
2019-04-26Add bistream_debug toolAngie Chiang
Change-Id: I339899cff65c7ef563f9411f2d7af9a32a08a705
2019-04-22[vp9] Fix handling of skip in row_mt=1Harish Mahendrakar
For row_mt=1, when mi->skip is set to 1 after parse based on eobtotal for that partition, dqcoeff and eob need to be restored as recon_partition doesn't increment these pointers for skip cases Change-Id: I79711b0c175937aa6da3bba3b3bc053f91a8ce35
2019-04-19[CFI] Remove function pointer cast of row_decode_worker_hookHarish Mahendrakar
This fixes CFI error flagged for this function when row-mt=1 Change-Id: Ic5b427a6b621228280ebe829d00b540b18e2c087
2019-04-16Revert "Refactor tile boundary condition for intra prediction"James Zern
This reverts commit 14208ab41e114f5779d106ae54a7cc8fd9d43820. This causes test vectors failures with --row-mt=1. BUG=webm:1617 Change-Id: Icb14bbbb6f38608a73dde0370ad874c0b1b0af8a
2019-03-14Refactor tile boundary condition for intra predictionJingning Han
Explicitly compare the block location against tile coordinate to decide if intra prediction boundary is available. No coding stats will be changed by this refactoring. Change-Id: I80b3a131366bb2c5f8ea53a139ed6e9b0b7ddb68
2019-02-07Fixing ClangTidy issues reported by downstream integrationkyslov
ClangTidy reported 16 issues. All are around typecasting and straightforward Change-Id: Ie8f9fc2ba7992dd44fef65b121fe65966a1a1297
2019-02-01Fix segmentation fault when num tile cols change in row-mt.Ritu Baldwa
Change-Id: Ifc165d76a71fcdb7c19c158c940a8d273be0d95f
2019-01-30Modify map read/write to sync logic in row_mt caseRitu Baldwa
Adds conditional wait/signal instead of sched_yield. Change-Id: I49a760eacdd6b6ac690e797ea5f10febf6a1a084
2019-01-19Revert "Revert "Add Tile-SB-Row based Multi-threading in Decoder""Ritu Baldwa
This reverts commit 06983668cf41f66765528db044419f954e5a5d64. Fixes Visual Studio build errors introduced by earlier row mt commit BUG=webm:1587 Change-Id: I792df86e8254cd6b2a511955b691af619a569cd0
2018-12-22Revert "Add Tile-SB-Row based Multi-threading in Decoder"James Zern
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
2018-12-21vp9_decodeframe.c: resolve missing declarationsJohann
BUG=webm:1584 Change-Id: Ie0d26b745ab1f5907a6a2dc10fbc5083f3fb0b8d
2018-12-18Add Tile-SB-Row based Multi-threading in DecoderRitu Baldwa
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
2018-12-03Add Parse and Recon Split functionsShubham Tandle
Add functions that will do only parse or only recon. These are duplicated and modified from decode_partition and decode_block. Change-Id: I2201e235bf491e823ae63d27b2586bbb43b48929
2018-10-25Add Memory to Enable Row DecodeRitu Baldwa
Row based multi-thread needs extra memory to store the parsed co-efficients, partitions and eob. This commit adds memory for the same. Change-Id: I13fa4a6ada2ec3048bc973e465055b832429388f
2018-10-08Loopfilter Multi-Thread OptimizationSupradeep T R
Take the original loopfilter multi-thread optimization (dafe064289a917977439ab6f4f002b9946496084) along with the fixes for bugs 1558 and 1562. BUG=webm:1558 BUG=webm:1562 Change-Id: Ibbf6bd13f4ffff0e79184ccfd6b85a49e067a6d8
2018-09-22Revert "Revert "Revert "Loopfilter MultiThread Optimization"""James Zern
This reverts commit bf6299010e815e111d7326530c249e9d99611f34. segfaults, causes an assertion failure with corrupt input: get_uv_tx_size: Assertion `mi->sb_type < BLOCK_8X8 || ss_size_lookup[mi->sb_type][pd->subsampling_x][pd->subsampling_y] != BLOCK_INVALID BUG=webm:1562 Change-Id: I05a711cad3d8e7f1a8e64422b4356bdf4edb3d12
2018-09-21Rework is_compound_allowed logic at encoderJingning Han
Allow the encoder to fully utilize the decoder's capability to handle both 1 fwd + 2 bwd case and 2 fwd + 1 bw case. Change-Id: I3f984d52552ddb701b80b042d979f8fe09dd3a80
2018-09-20Generalize encoder comp_var_ref settingJingning Han
Generalize the encoder comp_fixed_ref and comp_var_ref assignments. Make it fully support 2 fwd + 1 bwd and 1 fwd + 2 bwd settings that VP9 decoder allows. Change-Id: Id74da9a66327189a3fdf382d447243003c431131
2018-09-12Revert "Revert "Loopfilter MultiThread Optimization""Venkatarama NG. Avadhani
This reverts commit 753fd86e86ac727dccac88376260b8f54502f2a3. This also has the fix for the DoS reported in bug 1558. BUG=webm:1558 Change-Id: I65ea84e0c11d6bd40d8cb0587dfe934b3ac11dce
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-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-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-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 (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-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-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-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-22VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader.Scott LaVarnway
Change-Id: I869ef0f113c022143b531c44aefa0f1bb267052d
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-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-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-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