summaryrefslogtreecommitdiff
path: root/vp9/encoder/vp9_bitstream.c
AgeCommit message (Collapse)Author
2018-09-18Sync ref frame writing with decoderJingning Han
Enable the encoder to produce compound reference frame writing that supports both 2 fwd + 1 bwd and 1 fwd + 2 bwd cases. Change-Id: I63d2141435e2de7d8115d52b974fc41c2e608405
2018-09-17Remove multi_arf_allowed variable.Paul Wilkins
Removes deprecated multi_arf_allowed variable and dependent code. Change-Id: Ic1cf341f807c38207e728c48a4c4442387db93ff
2018-08-31Build arf index stackJingning Han
Stack the ARF frame indexes. Use the most recent one as the ARF reference frame for frame coding. Change-Id: I88a2202fa5deb2587d861b434d27ab8de0642cf7
2018-08-17Skip frame bit-stream writing for show-existing frameJingning Han
Make the bit-stream writer match the decoder behavior, when the show existing frame feature is used. Change-Id: Ibc8153f8668da0f9a2ed8af3b42dae91a5ac08c7
2018-08-17Support code show_existing_frame in bit-stream headerJingning Han
Allow the bit-stream writer to support potential use of show_existing_frame. At this point, cm->show_existing_frame is always 0. Change-Id: I64fed1d72db6d4902d56774854ce24fb7a082e0c
2018-08-11vp9-svc: Fix to updated SET_SVC_REF_FRAME_CONFIG controlMarco Paniconi
Add flag to separate two cases of bypass (flexible) SVC mode: usage of using the SET_SVC_REF_FRAME_CONFIG vs passing in the frame_flags in the vpx_encode (only used for temporal layers). This fixes failures in Datarate Temporal layer test, introduced in commit: a66da31 Change-Id: Ie62f933987c20792d1f963d645e98c1903bdd423
2018-08-09vp9-svc: Update to SET/GET_SVC_REF_FRAME_CONFIG apiJerome Jiang
Add update_buffer_slot to SVC API to allow for refreshing any of the 8 reference buffers. Remove frame_flags from the struct. Remove svc tests from vp8 build. BUG=b/112292577 Change-Id: I0551c349d2b311227245a8ed1639cdbbaf5bc5db
2018-05-01Clean switch cases in vp9 encoderLinfeng Zhang
To save a branch. Change-Id: Ifa2be7583e95c6991784731c654bbd4cce31e993
2018-04-23Remove get_tx_probs2()Hui Su
This function is redundant. Change-Id: I7651fc34787c09e59cb1366495f6b525dec8510d
2018-04-17Merge "Clean up svc comment in vp9_bitstream.c"Jerome Jiang
2018-04-13Clean up is_two_pass_svc.Jerome Jiang
Change-Id: I9e92616471be380d3ba4e2b85399d7eb9f687d2f
2018-04-13Clean up svc comment in vp9_bitstream.cJerome Jiang
SVC related conditions were removed long time ago and comments should be removed too. Change-Id: Iff3f3b6815d85ae5a69994932a4893cd1f831ce3
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-02-15Merge "Row based multi-threading of encoding stage"Yunqing Wang
2017-02-15Row based multi-threading of encoding stageRanjit Kumar Tulabandu
(Yunqing Wang) This patch implements the row-based multi-threading within tiles in the encoding pass, and substantially speeds up the multi-threaded encoder in VP9. Speed tests at speed 1 on STDHD(using 4 tiles) set show that the average speedups of the encoding pass(second pass in the 2-pass encoding) is 7% while using 2 threads, 16% while using 4 threads, 85% while using 8 threads, and 116% while using 16 threads. Change-Id: I12e41dbc171951958af9e6d098efd6e2c82827de
2017-02-14apply clang-formatclang-format
Change-Id: I75e4a9e0b37bd4586f26c8d6c1fa27f3f6ff1bce
2017-02-02Changes to facilitate multi-threading of encoding stageRanjit Kumar Tulabandu
Modified the encoding stage to have row level entry points with relevant initializations and to access the token information at row level Change-Id: Ife10e55a7c1a420ee906d711caf75002688d9e39
2016-10-21vp9_bitstream: Encode tiles in parallelVignesh Venkatasubramanian
Re-use the tile worker threads to pack the bitstream in parallel on a per-tile basis. Restricting this to real-time only for now (further testing is needed to ensure this does not make 2-pass worse in any case). BUG=webm:1309 Change-Id: I8a80da7c5089b837d0df79a5c49d5e3022dfc8ec
2016-10-18Revert "vp9_bitstream: Encode tiles in parallel"James Zern
This reverts commit 9e8efa5b189a5abf78b1bcbc8076893728129d1e. this change causes ubsan warnings, failures in vpxenc_vp9_webm_rt_multithread_tiled BUG=webm:1309 Change-Id: I020c7be985c771bfff4b3de1afe51cc8edb980da
2016-10-17vp9_bitstream: Encode tiles in parallelVignesh Venkatasubramanian
Re-use the tile worker threads to pack the bitstream in parallel on a per-tile basis. Restricting this to real-time only for now (further testing is needed to ensure this does not make 2-pass worse in any case). BUG=webm:1309 Change-Id: Ia2c982da56697756e12f02643f589189b3271d98
2016-10-12vp9_bitstream: Parameterize interp_filter_selectedVignesh Venkatasubramanian
Facilitates encoding tiles in parallel. BUG=webm:1309 Change-Id: I37aa336d47babffc8352188dc767eebdb8a99474
2016-10-12vp9_bitstream: Parameterize max_mv_magnitudeVignesh Venkatasubramanian
Facilitates encoding tiles in parallel. BUG=webm:1309 Change-Id: I614a5a492c30b6773c30e7294cd6a6f456e02ab4
2016-10-07write_modes: add MACROBLOCKD as a parameterVignesh Venkatasubramanian
This will enable bit stream packing of each tile column in parallel. BUG=webm:1309 Change-Id: Ie349d8cc5825326218ffda893a50730b2e68ed34
2016-10-01Fix warning when building with GCC 5.Geza Lore
These caused the following warning with GCC 5: warning: logical not is only applied to the left hand side of comparison [-Wlogical-not-parentheses] assert(!is_compound == (cm->reference_mode == SINGLE_REFERENCE)); Change-Id: If296aabb2311ceb7d903b395c1549ef81c2cbf9b (cherry picked from commit c6cf7a6111f6539f01a34865aaedd179a5ae062c)
2016-08-02vp9/encoder: apply clang-formatclang-format
Change-Id: I45d9fb4013f50766b24363a86365e8063e8954c2
2016-07-21VP9: get_pred_context_switchable_interp() -- encoder sideScott LaVarnway
Change-Id: I7217c90d5cf38c51b76759a2dc4f10070f3a40ac
2016-06-15Add vp9 encoder API VP9E_GET_LEVEL to provide bitstream levelhui su
Change-Id: I1ef3df0192491035728fe9d5eb25cc66dc2965de
2016-05-25Refactor probability savings search.Alex Converse
- Avoid excessive copying - Don't both searching if no update can possibly offer savings - Simplify the interface - Remove the confusing vp9_cost_upd256 macro Change-Id: Id9d9676a361fd1203b27e930cd29c23b2813ce59
2016-01-19VP9: Eliminate MB_MODE_INFOScott LaVarnway
Change-Id: Ifa607dd2bb366ce09fa16dfcad3cc45a2440c185
2015-11-06Expand unconstrained nodes in pack_mb_tokens and loop on zeros.Alex Converse
Reduces Linux perf estimated cycle count for pack_mb_tokens on a lossless encode on my desktop from 61858501855 to 48154040219 or from 26% of the overall profile to 21%. Change-Id: I9ca3426d7e3272bc7f7030abda4f0d0cec87fb4a
2015-10-06vp9: simplify extrabits encodingAlex Converse
Change-Id: I5a2abd35cb303d8f6354b3119ab95acf90405116
2015-09-25Rename display_{size,width,height} to render_*.Ronald S. Bultje
The name "display_*" (or "d_*") is used for non-compatible information (that is, the cropped frame dimensions in pixels, as opposed to the intended screen rendering surface size). Therefore, continuing to use display_* would be confusing to end users. Instead, rename the field to render_*, so that struct vpx_image can include it. Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d
2015-09-16Add support for color-range.Ronald S. Bultje
In decoder, export (eventually) into vpx_image_t.range field. In encoder, use oxcf->color_range to set it (same way as for color_space). See issue 1059. Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce
2015-08-31Include vpx_dsp_common.h when using VPXMIN/MAXJohann
Change-Id: I2e387a06484a06301f3cd6600c4ba2f4335b61ee
2015-08-26vpx_dsp_common: add VPX prefix to MIN/MAXJames Zern
prevents redeclaration warnings; vp8 has its own define which will be resolved in a future commit Change-Id: Ic941fef3dd4262fcdce48b73075fe6b375f11c9c
2015-08-10Move vp9_systemdependent.h to vpx_ports bitops.h and system_state.hAlex Converse
Use system_state.h in vpx_dsp and remove unneeded includes of vp9_systemdependent.h. Change-Id: I92557ec6dd5aa790160b4f31fe7967db0d7ec3c4
2015-07-20vpx_dsp/bitwriter_buffer.h: vp9_ -> vpx_Yaowu Xu
Change-Id: I0ac7beaa160a6c2a60a019f6b8ce85e6537bed7d
2015-07-20vpx_dsp/bitwriter.h: vp9_->vpx_Yaowu Xu
changes prefix vp9_ to vpx_ for non codec specific functions and data structures. Change-Id: I91a21548e39bd24d2c7caaaa223ae47240bb78c8
2015-07-20vpx_dsp/prob.h: vp9_ -> vpx_Yaowu Xu
change prefix vp9_ to vpx_ for non codec specific functions and data structures. Change-Id: I97c7e6422eceea99212b93f4942bc2187763a07c
2015-07-20vpx_dsp/bitreader.h: vp9_->vpx_Yaowu Xu
Replace vp9_ in names to vpx_ as they are not codec specific. Change-Id: I2e583aa63dee769353ada4b42417aa15c4074ebb
2015-07-20Remove vp9_ prefix from bit writer filesYaowu Xu
Change-Id: I07647c7482b9ec498fbad3a9c9901f72b2336500
2015-07-20Move bit writer files to vpx_dsp/Yaowu Xu
Change-Id: Id27e0007a0feac821ca66bcecbf3a723305da82d
2015-06-29VP9: Move ref_mvs[][] and mode_context[] from MB_MODE_INFOScott LaVarnway
to MB_MODE_INFO_EXT. This saves 36 bytes per 8x8 area for both the decoder and encoder. (encoder has two MODE_INFO buffers) Change-Id: If006abb2224acaf326df3c2be09e77e967662107
2015-06-16Merge "Eliminated frame_type check in get_partition_probs()"Scott LaVarnway
2015-06-16Eliminated frame_type check in get_partition_probs()Scott LaVarnway
Moved the frame_type check to the tile level and stored the prob ptr in MACROBLOCKD. Change-Id: I10b5a4abd58213dc7610e3ade1a1583c01526842
2015-06-11inline vp9_get_segdata()Scott LaVarnway
and change name. Change-Id: I706645cf9d9dc04f1b3b6ac80df80edb7f101854
2015-06-11inline vp9_segfeature_active()Scott LaVarnway
and changed name. Change-Id: Ie023ca66cc2c823032f58d4faeb53fd1863c94f3
2015-04-28vpx_mem: remove vpx_memsetJames Zern
vestigial. replace instances with memset() which they already were being defined to. Change-Id: Ie030cfaaa3e890dd92cf1a995fcb1927ba175201
2015-04-21Revert "Remove mi_grid_* structures."Scott LaVarnway
(see I3a05cf1610679fed26e0b2eadd315a9ae91afdd6) For the test clip used, the decoder performance improved by ~2%. This is also an intermediate step towards adding back the mode_info streams. Change-Id: Idddc4a3f46e4180fbebddc156c4bbf177d5c2e0d
2015-03-23Simplify skip check.Alex Converse
SEG_LVL_SKIP implies skip. This is enforced by skip = write_skip(). Change-Id: I61c79581c9c53deae36685c2bcf388cb4d8827d3