summaryrefslogtreecommitdiff
path: root/vp9/decoder
AgeCommit message (Collapse)Author
2013-10-24Adding get_frame_ref_buffer() function + cleanup.Dmitry Kovalev
Change-Id: Ib9ead216fc54b2df6f6f1fe82d2ea137197beebd
2013-10-24Merge "Eliminating usage of allow_comp_inter_inter in the decoder."Dmitry Kovalev
2013-10-24Merge changes I1868fb75,I9ff504c6Dmitry Kovalev
* changes: Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE. Adding VP9_FRAME_MARKER constant.
2013-10-24Merge "Improve scale_factors struct"Yunqing Wang
2013-10-23Renaming INTERPOLATIONFILTERTYPE to INTERPOLATION_TYPE.Dmitry Kovalev
Change-Id: I1868fb75ed88bfa65c1c2ca24677d65f2894d713
2013-10-23Adding VP9_FRAME_MARKER constant.Dmitry Kovalev
Also renaming SYNC_CODE_* to VP9_SYNC_CODE_*. Change-Id: I9ff504c6ebce6cd6673d7df2085d597b818f5960
2013-10-23Eliminating usage of allow_comp_inter_inter in the decoder.Dmitry Kovalev
Splitting setup_inter_inter function into is_compound_prediction_allowed and setup_compound_prediction. Moving setup_compound_prediction call into read_comp_pred from read_uncompressed_header. We should do the same in the encoder as well. Change-Id: I40d75fdc4a221b2f7705df00d23a4b3fe79987c3
2013-10-23Merge "Make decode modules independent of tile index"Jingning Han
2013-10-22Make decode modules independent of tile indexJingning Han
Assign the pointer to mode_info stream per tile. Remove the use of tile_col in the decoding modules. Change-Id: I7df87086708a3d92c5e20e86bcfb04e458ff47a6
2013-10-22Merge "Moving functions from vp9_decodemv.c to vp9_decodframe.c."Dmitry Kovalev
2013-10-22Moving functions from vp9_decodemv.c to vp9_decodframe.c.Dmitry Kovalev
This move is done to have all compressed header reading functions in one place. Moved functions: read_switchable_interp_probs read_inter_mode_probs read_comp_pred_mode read_comp_pred update_mv read_mv_probs Change-Id: I2aebb57d2826d03d11bf2f8fbbfc3a9978c4f9fb
2013-10-22Improve scale_factors structYunqing Wang
The ref's scale_factors are set at frame level, and then copied for each partition block. Since the struct members are mostly constant, this patch separated the constant and non-constant members, and reduced struct copying. This gave 0.5% ~ 1.4% decoder speed gain. Change-Id: I94043bf5a6995c8042da52e5c661818dfa6f6d4c
2013-10-22Merge "vp9 dec/com: only update frame counts when necessary (2)"James Zern
2013-10-22Merge changes I305fd55f,I13fe92b1James Zern
* changes: vp9/dec: use loop filter worker for all inline cases vp9_thread: add vp9_worker_execute()
2013-10-22Merge "Removing NUM_ prefix from constant names."Dmitry Kovalev
2013-10-22Merge "Prevent left_block_mode stepping into left tile"Jingning Han
2013-10-22Prevent left_block_mode stepping into left tileJingning Han
This commit uses left_available flag to decide if the left mode_info struct is available for left_block_mode. As discussed with James Zern (jzern@), this prevents the codec from fetching mode_info from blocks in the left tile, which although effectively not used might present concerns for multi-threaded tile decoding. This is NOT a bit-stream change. Change-Id: I1dc8cf1bcbf056688eee27c7bc5706ac4b4e0125
2013-10-21Inlining set_partition_seg_context function.Dmitry Kovalev
We used set_partition_seg_context() only before calls to: 1. update_partition_context() 2. partition_plane_context() Moving these functions from vp9_blockd.h to vp9_onyxc_int.h and inlining set_partition_seg_context into them. After that it is not necessary to have {above, left}_seg_context fields in MACROBLOCKD struture, so removing them also. Change-Id: I4723f59e1c8f3788432b7f51185d8d747b3a97f9
2013-10-21vp9 dec/com: only update frame counts when necessary (2)James Zern
missed one in vp9_detokenize.c in the last + add some asserts in vp9_decode_frame() to catch regressions Change-Id: Ide67505114ee17efdafb13694aed0c09039e5a16
2013-10-21Moving allow_high_precision_mv from MACROBLOCKD to VP9_COMMON.Dmitry Kovalev
This value is a global frame-level flag, not a macroblock-level. Change-Id: Ie8c5790a931150741c2167c00c3e3dd2cf26744d
2013-10-21vp9_decodframe: limit scope of private function paramsJames Zern
replace VP9D_COMP usage with the (slightly) more targeted VP9_COMMON/MACROBLCKD structures. Change-Id: I50d2579238d1a5d51ba5a82379266448ae64b24b
2013-10-21vp9_decode_tokens: limit scope of function paramsJames Zern
replace VP9D_COMP usage with the (slightly) more targeted VP9_COMMON/MACROBLCKD/struct segmentation structures. Change-Id: Iabb3616e231417b0e17b7e4b384ea63167a81745
2013-10-21vp9_read_mode_info: limit scope of function paramsJames Zern
replace VP9D_COMP usage with the (slightly) more targeted VP9_COMMON/MACROBLCKD structures. Change-Id: I09f6c4a5b0bcc20222210831b5b4c1582eced300
2013-10-21vp9_decodemv: limit scope of private function paramsJames Zern
replace VP9D_COMP usage with the (slightly) more targeted VP9_COMMON/MACROBLCKD structures. Change-Id: Ieafac9ad035cba808ed91d3dfd321ba864b58905
2013-10-21vp9/dec: use loop filter worker for all inline casesJames Zern
- uses vp9_worker_execute() in non-threaded case + removes hook reassignment Change-Id: I305fd55f2be5cd92367373c929cdb9004066f90f
2013-10-18Removing NUM_ prefix from constant names.Dmitry Kovalev
Renames for consistency with other constants: NUM_FRAME_TYPES -> FRAME_TYPES NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f
2013-10-18Merge "vp9 dec/com: only update frame counts when necessary"James Zern
2013-10-18Merge "vp9 com/dec: avoid reading unavailable above/left"James Zern
2013-10-18vp9 dec/com: only update frame counts when necessaryJames Zern
don't update them when frame_parallel_mode is true Change-Id: I22ff131a6c6eea238415d10b729f195c7d6dc60d
2013-10-18Merge "Use lookup table to simplify logic"Yaowu Xu
2013-10-18vp9 com/dec: avoid reading unavailable above/leftJames Zern
in most cases at least the left column was a harmless race as it was left unused later in the code. Change-Id: I43211df66fb157c6feecf08c681add4fcf18b644
2013-10-18Merge "Converted assert to error checking"Yaowu Xu
2013-10-18Merge "Passing block index explicitly instead of using get_sb_index()."Dmitry Kovalev
2013-10-18Converted assert to error checkingYaowu Xu
Change-Id: Icb8c677f910f588cc7c97e70f024787fe6789257
2013-10-18Passing block index explicitly instead of using get_sb_index().Dmitry Kovalev
That makes decoder and encoder (only bitstream writing part) a little bit simpler and faster. Moving get_sb_index() function to the encoder. Change-Id: Ie91aaeefd69c84b085948267b33556a7666c6278
2013-10-18Added checking for invalid sizeYaowu Xu
Change-Id: I9672a61e60a26e2934796f088880ce4cb49605be
2013-10-17Use lookup table to simplify logicYaowu Xu
In deciding the transform size for a given block in a given TX_MODE. Change-Id: I1467da09853e69cd320695a24c04e19a2f3d04fb
2013-10-17vp9_thread: add vp9_worker_execute()James Zern
cherry-picked from: commit 988b70844e03efcfcc075a9bc25d846670494f36 Author: Pascal Massimino <pascal.massimino@gmail.com> Date: Fri Aug 2 11:15:16 2013 -0700 add WebPWorkerExecute() for convenient bypass This is mainly for re-using the worker structs without using the thread. Change-Id: I8e1be29e53874ef425b15c192fb68036b4c0a359 Original source: http://git.chromium.org/webm/libwebp.git 100644 blob c0d318aee628fdf9ba4876451a28aa978f1066b8 src/utils/thread.c 100644 blob c2b92c9fe353f8e514f78922f3d237204a9cbc66 src/utils/thread.h Change-Id: I13fe92b1e94062bb99fdeeb7cb0b4b0575d27793
2013-10-16Merge changes I6226456d,I97925178,I766c4b74Guillaume Martres
* changes: Use a separate MODE_INFO stream for each tile column Get rid of "this_mi", use "mi_8x8[0]" everywhere instead Make the static_segmentation feature work again
2013-10-16Use a separate MODE_INFO stream for each tile columnGuillaume Martres
This should make parallel tiles decoding easier to implement. Change-Id: I6226456dd11f275fa991e4a7a930549da6675915
2013-10-16Get rid of "this_mi", use "mi_8x8[0]" everywhere insteadGuillaume Martres
The only case where they were intentionally pointing to different structures was in mbgraph, and this didn't have the expected behavior because both of these pointers are used interchangeably through the code Change-Id: I979251782f90885fe962305bcc845bc05907f80c
2013-10-16Merge "Adding get_band_translate() function."Dmitry Kovalev
2013-10-16Merge "Prevent accidental changes to the previous frame mode_infos"Guillaume Martres
2013-10-16Adding get_band_translate() function.Dmitry Kovalev
Moving code that gets band_translate array from get_scan_and_band() function to get_band_translate() function. Renaming get_scan_and_band() to get_scan(). Change-Id: I43047c205a1ca2a6e24be44db39dc04b7a385008
2013-10-16Merge "Cleanup of decode_coefs() function."Dmitry Kovalev
2013-10-15Updated encoder to handle intra-only framesAlexander Voronov
Updated the encoder to handle frames that are coded intra-only. Intra-only frames must be non-showable, that is, the "show frame" flag must be set to 0 in the frame header. Tested by forcing the ARF frames to be coded intra- only. Note: The rate control code will need to be modified to account for intra-only frames better than they are currently handled. Change-Id: I6a9dd5337deddcecc599d3a44a7431909ed21079
2013-10-15Converted assertion to returning errorYaowu Xu
Assertion happens for invalid input data, the commit replace the assertion with returning error. Change-Id: I1b73ae752d64882d984cd23936efe75a757c2b41
2013-10-15Added trap for invalid key frameYaowu Xu
Change-Id: I698e8df9b336d38bffe01e656acba00d4003695f
2013-10-15Add clamp to prevent out of bound accessYaowu Xu
For bad input data, the decoder may access the array out of bounds. The commit added clamp to prevent such out of bound access Change-Id: I0a1cfd9b8786ea7113a998053c76605c963b077a
2013-10-14Cleanup of decode_coefs() function.Dmitry Kovalev
Moving entropy context calculation to outer scope and adding consts to pointers. Change-Id: I25d0987e97495326ab1e8046e3fa3082c0584485