summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_decodeframe.c
AgeCommit message (Collapse)Author
2014-01-03Adding RefBuffer struct.Dmitry Kovalev
Adding RefBuffer to simplify reference buffer management. The struct has a pointer to image data and scale factors relative to the current frame. Change-Id: If38eb1491ff687cc11428aee339f3e052e2c5d9e
2014-01-02Merge "Fix show existing frame"Yaowu Xu
2013-12-20Renaming vp9_dboolhuff.{h, c} to vp9_reader.{h, c}.Dmitry Kovalev
Change-Id: I50c009ff8108bda1c57427f23d63a79c04f7e776
2013-12-19Using single struct to represent scale factors.Dmitry Kovalev
Moving back to scale_factors struct. We don't need anymore x_offset_q4 and y_offset_q4 because both values are calculated locally inside vp9_scale_mv function. Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
2013-12-18Cast away Windows warningJohann
Subtracting the pointers promoted to a signed type. Change-Id: Ied0e822a1756ed7b2f514efafcb6dce4efb9b9d6
2013-12-17Fix incorrect size readingJohann
Guard against incorrect size values moving *data past data_end. Check read length against the difference of the buffers. Change-Id: Ie0b54e2db517fd41a0f3ceb23402ee44839a4739
2013-12-16Merge "Remove border extension in intra frame prediction."hkuang
2013-12-16Remove border extension in intra frame prediction.hkuang
Change-Id: Id677df4d3dbbed6fdf7319ca6464f19cf32c8176
2013-12-15Merge "Add support to pass in external frame buffers."Frank Galligan
2013-12-15Add support to pass in external frame buffers.Frank Galligan
VP9 decoder can now use frame buffers passed in by the application. Change-Id: I599527ec85c577f3f5552831d79a693884fafb73
2013-12-13Merge "vp9 asserts: fix compile warning"James Zern
2013-12-12Moving mi configuration loop from vp9_read_mode_info to set_offsets.Dmitry Kovalev
set_offsets() is a right place to configure all mi-related pointers. Change-Id: I7d2fda72de5fc27e86c6589543b41fa044681dbf
2013-12-12vp9 asserts: fix compile warningJames Zern
string literal to int within an assert Change-Id: I0c889256b67a078e6e2a79577f0b7ae084243258
2013-12-10vp9 mt decode: reorder tile decodeJames Zern
reorder the tiles based on size and their presumed complexity. this minimizes the cases where the main thread is waiting on a worker to complete. Change-Id: Ie80642c6a1d64ece884f41683d23a3708ab38e0c
2013-12-10Merge "Renaming comp_pred_mode to reference_mode."Dmitry Kovalev
2013-12-09Merge "Implenment on demand border extension. In place extend the border ↵hkuang
now. Next commit will totally remove the border."
2013-12-09Implenment on demand border extension. In place extendhkuang
the border now. Next commit will totally remove the border. Change-Id: Ic1e1ca9cc34f81c688715b3948689b47df63a151
2013-12-09Renaming comp_pred_mode to reference_mode.Dmitry Kovalev
Change-Id: I83ffed2b1878a35ac35f07f9ee74309adc9c7b11
2013-12-06Removing BLOCK_TYPES and adding PLANE_TYPES constant instead.Dmitry Kovalev
Change-Id: Ic3bb862e93aedf6a489a33ea6f7e5097d96855ee
2013-12-06Merge "Renaming constants."Dmitry Kovalev
2013-12-05Renaming PREV_COEF_CONTEXTS to COEFF_CONTEXTS.Dmitry Kovalev
Also adding BAND_COEFF_CONTEXTS macro to simplify for loop logic. Change-Id: I12a78a49cf1addf81e6b3fe2a3736ec2b79bd79e
2013-12-05Renaming constants.Dmitry Kovalev
NUM_YV12_BUFFERS => FRAME_BUFFERS ALLOWED_REFS_PER_FRAME => REFS_PER_FRAME NUM_REF_FRAMES_LOG2 => REF_FRAMES_LOG2 NUM_REF_FRAMES => REF_FRAMES NUM_FRAME_CONTEXTS_LOG2 => FRAME_CONTEXTS_LOG2 NUM_FRAME_CONTEXTS => FRAME_CONTEXTS Change-Id: I4e1ada08f25d8fa30fdf03aebe1b1c9df0f87e63
2013-12-05Fix show existing frameTero Rintaluoma
- Disable mode info update in case where current frame is coded as "show existing frame". - Should fix issue 676. Change-Id: Ibee681850eb307f982da6528d3e31cb94f881c08
2013-12-04Fix the initial references to frame buffers.Frank Galligan
The old code would start in a mixed state, where all the reference frames were pointing to frame buffer 0, but the reference counts were 0. This is why we needed special code for the first frame. Change-Id: I734961012917654ff8c0c8b317aac00ab75ded1a
2013-12-03Moving eob array to the encoder.Dmitry Kovalev
In the decoder we don't need to save eobs, we can pass eob as an argument. That's why removing eob arrays from VP9Decompressor and TileWorkerData, and moving eob pointer from macroblockd_plane to macroblock_plane. Change-Id: I8eb919acc837acfb3abdd8319af63d1bbca8217a
2013-12-03Merge "Making names consistent with REFERENCE_MODE enum name."Dmitry Kovalev
2013-12-02Using local variable for token_cache.Dmitry Kovalev
The difference with the old code is that originally the whole token_cache was initialized with zeros at the beginning of decode_coefs() function. Now we set several zero values explicitly with "token_cache[scan[c]] = 0". Change-Id: I88cc5031f01d13012d1a4491739c36cb44f9401e
2013-11-26Removing qcoeff buffers from the decoder.Dmitry Kovalev
We only need qcoeff buffers in the encoder. Reducing TileWorkerData struct and VP9Decompressor struct sizes by 24K. Change-Id: Id148868461f7ffa3d3dd634b371503ae9c57e207
2013-11-26Making names consistent with REFERENCE_MODE enum name.Dmitry Kovalev
Change-Id: I17268af3e0cbf7e5788c3154466e404947c944b3
2013-11-26Deleting vp9_treereader.h file.Dmitry Kovalev
Renaming treed_read() to consistent vp9_read_tree() and moving it from deleted vp9_treereader.h to vp9_dboolhuff.h file. Change-Id: Iedd8655acbe25e4fcf62b79e5a13bdea69b6b004
2013-11-25Merge "Renaming COMPPREDMODE_TYPE enum and its members."Dmitry Kovalev
2013-11-25Use separate inter predictors for enc/decJingning Han
The decoder will construct inter predictor using lazy border extension, while the encoder, going with multiple runs of motion search in the rate- distortion optimization loop for each block, does border extension at frame level. This commit makes separate the inter predictors for encoder and decoder, respectively. Change-Id: Ieca2fecba3a7201a6d64ef9f219e5d91e50559c3
2013-11-25Merge "Separate setup_scale_factor/extend_frame_borders"Jingning Han
2013-11-22Renaming COMPPREDMODE_TYPE enum and its members.Dmitry Kovalev
List of renames: COMPPREDMODE_TYPE => REFERENCE_MODE SINGLE_PREDICTION_ONLY => SINGLE_REFERENCE COMP_PREDICTION_ONLY => COMPOUND_REFERENCE HYBRID_PREDICTION => REFERENCE_MODE_SELECT (like TX_MODE_SELECT) NB_PREDICTION_TYPES => REFERENCE_MODES Change-Id: If723dabe9435325d0165dcd028142a2c78b417b4
2013-11-22Separate setup_scale_factor/extend_frame_bordersJingning Han
This commit takes out vp9_extend_frame_borders from vp9_setup_scale_factors. The refactoring is for the preparation of the use of lazy border extension at decoder. This makes it necessary to handle border extension separately at encoder/decoder. The use of vp9_extend_frame_borders will be removed, when lazy border extension is ready. Change-Id: Ia3baba3d179d5f11eee1634f19b3b319d2a59186
2013-11-22Merge "Removing txfrm_block_to_raster_xy() call from extend_for_intra()."Dmitry Kovalev
2013-11-22Merge changes Id1698a35,Idcabd0b9Jim Bankoski
* changes: detokenization speedups Don't write 0's to token_cache
2013-11-21Removing txfrm_block_to_raster_xy() call from extend_for_intra().Dmitry Kovalev
Change-Id: I6a48d1f35ed5fe7a2c7499675b339994c9c3bdf2
2013-11-21Don't write 0's to token_cacheJim Bankoski
This code only updates the token_cache if the result is non0. Change-Id: Idcabd0b993a926fea9c29dbec134b9c5c4859b40
2013-11-20Adding MV_FP_SIZE constant.Dmitry Kovalev
Change-Id: I98d750ee92ff51fb714980418ea28be3b1d0f3c6
2013-11-18Calculating dst pointer only once per transform block.Dmitry Kovalev
Change-Id: I23fea0a2e85be8373600e3e2dae98d36acde389c
2013-11-18Move vp9_extend.{h,c} from common to encoderYaowu Xu
Since they used in encoder only. This commit also re-order includes for the files that include vp9_extend.h Change-Id: I929fc113f2135d3198cd1fc6a17434e5a2f8a459
2013-11-15Renamed two filesYaowu Xu
from vp9_decodframe.{c,h} to vp9_decodeframe.{c,h} Change-Id: I21ac4b14fc90246e3f16bd90c52c12d126d791f8