summaryrefslogtreecommitdiff
path: root/vp8
AgeCommit message (Collapse)Author
2019-03-19Wrap macro definition in do-while(0)Jerome Jiang
Change-Id: Id654a48d2fa40355552d7267e58461e6cc1c6998
2019-03-14Merge "Enclose macro arguments in parentheses"Jerome Jiang
2019-03-14Enclose macro arguments in parenthesesJerome Jiang
BUG=webm:1606 Change-Id: I661485b860243c95b6450035dbac77b0dd4d9ff4
2019-03-05vp9: map speed > 9 to speed 9.Jerome Jiang
Report warning in example encoder. Change-Id: Iec4cdffce9faa65241756fbdac498214c8b93cc1
2019-02-12vp8: Limit Q change for screen content CBR modeMarco Paniconi
Add last_q[] to layer context, and add limit on Q change from previous layer/frame. For now put hard limit of 12 for decrease. For 1 pass CBR sreen content mode. Change-Id: Ifb972c9b6831440c80b1cb07a054c577ece930ec
2019-02-11vp8: Fix condition for update of last_pred_err_mbMarco Paniconi
For 1 pass cbr screen-content mode: quantity should only be updated on delta frames. Change-Id: I16fc47b2805c7527ab4ff25bd8b5a5bd9c2b8976
2019-02-04vp8: Add extra conditon for overshoot-dropMarco Paniconi
For drop due to large overshoot feature (in 1 pass CBR): add additional condition that current prediction error is larger than that of last encoded frame. This make the drop due to sudden overshoot more robust, and improves rate convergence for steady hard content. Change-Id: If20027d26b4dcd290e4f788ae8e2760d95b536a5
2019-01-10Merge "vp8 dec: Add flag to bring up threads."Jerome Jiang
2019-01-10vp8 dec: Add flag to bring up threads.Jerome Jiang
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
2019-01-08vp8 arm loopfilter: resolve missing declarationsJohann
BUG=webm:1584 Change-Id: I3270e6efe79fe9728e8d11f4c352deefc3cea00b
2019-01-08Merge "vp8 idct: remove return"Johann Koenig
2019-01-08Merge "vp8_copy32xn: resolve missing declaration"Johann Koenig
2019-01-07vp8 idct: remove returnJohann
Change-Id: Ib1648e1f6559e65ddf11cb54266c7eeff37a6ea6
2019-01-08Merge "vp8 idct dequant: resolve missing declarations"Johann Koenig
2019-01-08Merge "vp8 blend: resolve missing declarations"Johann Koenig
2019-01-07vp8 idct dequant: resolve missing declarationsJohann
BUG=webm:1584 Change-Id: Iecd2a0154c523fa61349c456befdf6c37d980efc
2019-01-07vp8_copy32xn: resolve missing declarationJohann
BUG=webm:1584 Change-Id: I9898a6e2f977acd4e26b09222a1eb2ab4f37f0af
2019-01-07vp8 overlaps: resolve missing declarationJohann
BUG=webm:1584 Change-Id: I67fa7460cb90b9bbe8583b60340d7bbf615a11f2
2019-01-07vp8 blend: resolve missing declarationsJohann
Remove unused functions. BUG=webm:1584 Change-Id: If7a49e920e12f7fca0541190b87e6dae510df05c
2019-01-07Merge "vp8 multi dimensional search: resolve missing declarations"Johann Koenig
2019-01-07Merge "vp8_copy32xn: resolve missing declaration"Johann Koenig
2019-01-07Merge "arm neon: resolve missing declarations"Johann Koenig
2019-01-07vp8_copy32xn: resolve missing declarationJohann
BUG=webm:1584 Change-Id: I8279e099fb9595edad858bf7332bf2b40fecae02
2019-01-07arm neon: resolve missing declarationsJohann
BUG=webm:1584 Change-Id: I2dcf39f2327b72b58be72c27f952ea781a790dd3
2019-01-07vp8 multi dimensional search: resolve missing declarationsJohann
BUG=webm:1584 Change-Id: I5c3fb5ab00bff66a8e8f4b8d27cbcea4946eced0
2019-01-07Fix OOB memory access on fuzzed datakyslov
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
2018-12-21vp8: kill all threads on corrupted frame.Jerome Jiang
If decoder keeps going, threads will be brought up. BUG=902650,webm:1577 Change-Id: I7765ba134aeed76ec0f58bd05e3a35383e6861c3
2018-12-17Merge "Remove -Wextra suppression."Jerome Jiang
2018-12-17Remove -Wextra suppression.Jerome Jiang
BUG=webm:1246 Change-Id: Iae78e266faa9c4989500fc919b24f2f584ac0550
2018-12-15Merge "vp8: Fix potential use-after-free in mfqe."Jerome Jiang
2018-12-14vp8: Fix potential use-after-free in mfqe.Jerome Jiang
Similar issue to 842265. The pointer in vp8 postproc refers to show_frame_mi which is only updated on show frame. However, when there is a no-show frame which also changes the size (thus new frame buffers allocated), show_frame_mi is not updated with new frame buffer memory. Change the pointer in postproc to mi which is always updated. BUG=913246 Change-Id: I5159ba7134a06db472c29a1d84b8d39bb60c7254
2018-12-13vp8-mfqe: Increase initial frame# thresholdMarco Paniconi
Increase the initial frame number threshold for the mfqe, as using the running average of last_base_qindex doesn't work well after very first frame. Only affects the very first few frames. Fixes an issue with a test. Change-Id: Ia249924257b44263e0b9f43cbff473902f08e28c
2018-11-12quantize: use aarch64 vmaxvJohann
Simplify max value calculation on aarch64 by using vmaxv. Much faster for 4x4 but diminishing returns as the block size grows. Only the vp9 quantize has a speed test hooked up. Anticipate similar results for the other quantize versions. Before: [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/2 [ BENCH ] Bypass calculations 4x4 31.6 ms ( ±0.0 ms ) [ BENCH ] Full calculations 4x4 31.6 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 8x8 17.7 ms ( ±0.0 ms ) [ BENCH ] Full calculations 8x8 17.7 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 16x16 14.2 ms ( ±0.0 ms ) [ BENCH ] Full calculations 16x16 14.2 ms ( ±0.0 ms ) [ OK ] NEON/VP9QuantizeTest.DISABLED_Speed/2 (1906 ms) [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/3 [ BENCH ] Bypass calculations 32x32 18.6 ms ( ±0.0 ms ) [ BENCH ] Full calculations 32x32 18.6 ms ( ±0.0 ms ) After: [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/2 [ BENCH ] Bypass calculations 4x4 29.1 ms ( ±0.0 ms ) [ BENCH ] Full calculations 4x4 29.1 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 8x8 16.9 ms ( ±0.0 ms ) [ BENCH ] Full calculations 8x8 16.9 ms ( ±0.0 ms ) [ BENCH ] Bypass calculations 16x16 14.1 ms ( ±0.0 ms ) [ BENCH ] Full calculations 16x16 14.1 ms ( ±0.0 ms ) [ OK ] NEON/VP9QuantizeTest.DISABLED_Speed/2 (1803 ms) [ RUN ] NEON/VP9QuantizeTest.DISABLED_Speed/3 [ BENCH ] Bypass calculations 32x32 18.6 ms ( ±0.0 ms ) [ BENCH ] Full calculations 32x32 18.6 ms ( ±0.0 ms ) Change-Id: Ic95812b3fdbd4e47b4dcb8ed46c68a9617de38d2
2018-11-09vp8: Init buffers and pred arrays for mt after allocation.Jerome Jiang
Buffers and arrays used for prediction are not initialized after allocation. BUG=902691 Change-Id: Ic727e5dab7456e91ec9d6c80694f60a1a3600640
2018-11-07Merge "vp8: remove VP8_ENTROPY_STATS code"Johann Koenig
2018-11-06Merge "vp8: Increase rate correction threshold for drop-overshoot"Marco Paniconi
2018-11-06Merge "vp8 dec: only compute ref frame buffer pointer for non intra"Jerome Jiang
2018-11-05vp8 dec: only compute ref frame buffer pointer for non intraJerome Jiang
When ref frame is INTRA_FRAME, pre buffer shouldn't be used. This CL copies behavior in single thread. That should apply to multithreading case too. BUG=webm:1496 Change-Id: Ibe9ab8ea9dc664151fa7ebac529d5fd1a481b4a3
2018-11-05vpx_codec_enc_config_default: disable 'usage'Johann
Found with clang-tidy. This value is unused in libvpx. There is an existing test which ensures this is not used: test/encode_api_test.cc: EXPECT_EQ(VPX_CODEC_INVALID_PARAM, vpx_codec_enc_config_default(kCodecs[i], &cfg, 1)); Change-Id: I94bd0663c6652b4267204c02c3921972c854d0b0
2018-11-05vp8: Increase rate correction threshold for drop-overshootMarco Paniconi
For 1 pass cbr encoding mode, with frame-dropping on: increase the rate correction threshold for drop-overshoot detection, to better capture cases of large overshoot. Change-Id: I1153b1b71cf106749dd985074d6bc8f37d163c7e
2018-11-01vp8: remove VP8_ENTROPY_STATS codeJohann
Does not compile. Noticed while cleaning up un-namespaced functions Change-Id: I4a9048e66d051397f652e7b5412606a5e234f61f
2018-10-31Merge "vp8 boolcoder: normalize to "bc""Johann Koenig
2018-10-31Merge "vp8: fix to address overflow in decoder."Jerome Jiang
2018-10-31Merge "vp8dx_get_quantizer: normalize VP8D_COMP"Johann Koenig
2018-10-31vp8 boolcoder: normalize to "bc"Johann
"bc" maps to BOOL_CODER better than "br" Change-Id: Idefd03e79ccc1851a1b26f8206a159b0e5c5fb2d
2018-10-31vp8dx_get_quantizer: normalize VP8D_COMPJohann
Use "pbi" like the rest of the functions Change-Id: I5f3036b8f8361c30353be378d83455b83b82ac9f
2018-10-31vp8: fix to address overflow in decoder.Jerome Jiang
Can't call internal error from the decoder thread. Add vpx_internal_error_info to MACROBLOCKD. When corrupted frame detected, the decoder thread returns to its own context and signal completion of decoding for current frame. The main decoding thread will detect error too and return error code to decoding API call. Each thread will signal end of decoding of the frame. Main thread waits for the signal of all other threads to start decoding next frame. BUG=875626,webm:1496 Change-Id: Icd05fbc558893a4e7d8532c1e7177e7550283a64
2018-10-30clang-tidy: fix vp8/encoder parametersJohann
BUG=webm:1444 Change-Id: I57a305cdab0d62b0745116272fbd5d9257c6e679
2018-10-30clang-tidy: fix vp8/decoder parametersJohann
BUG=webm:1444 Change-Id: I3dfc56f7f6430d36a1c447d8999733015a001101
2018-10-30clang-tidy: fix vp8/common parametersJohann
Match function definitions to declarations BUG=webm:1444 Change-Id: Ib96d3b735eaf81cece5406c89cc5156bc2cde462