summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_decodemv.h
AgeCommit message (Collapse)Author
2018-09-15cosmetics: normalize include guardsJames Zern
use the recommended format [1] of: <PROJECT>_<PATH>_<FILE>_H_ [1] https://google.github.io/styleguide/cppguide.html#The__define_Guard "All header files should have #define guards to prevent multiple inclusion. The format of the symbol name should be <PROJECT>_<PATH>_<FILE>_H_." Change-Id: I2e8ab0b32fb23c30fa43cff5fec12d043c0d2037
2016-09-22VP9: pass TileWorkerData instead of MACROBLOCKD and vpx_reader.Scott LaVarnway
Change-Id: I869ef0f113c022143b531c44aefa0f1bb267052d
2016-08-03vp9/decoder,vp9/*.[hc]: apply clang-formatclang-format
Change-Id: Ic38ea06c7b2fb3e8e94a4c0910e82672a1acaea7
2016-02-19VP9: rename vpx_read_mode_info to vp9_read_mode_infoScott LaVarnway
Change-Id: I3cb3da864e33012ba68d61ee8bafa8c42f00313c
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-20Removed vp9_ prefix from vpx_dsp/bitreader file namesYaowu Xu
Change-Id: I0426126d0a65f13f9250983e44cc366b1b1a9c4a
2015-07-17Move bit reader files to vpx_dspYaowu Xu
Change-Id: Ib1cb1fbe92a39ff5312cee069559be6d3ea458d0
2015-07-09Eliminate num_8x8 and num_4x4 width/height lookupsScott LaVarnway
Also some log2 lookups. Pass in 8x8 block width/height and log2 num4x4s instead. Change-Id: I8ea9a1ec1e0bbab23f8ba556954a1b5433f4d613
2015-06-22Remove tile paramScott LaVarnway
and added to MACROBLOCKD. Change-Id: I0e60aaa9f84bcc9f2376d71bd934f251baee38db
2015-06-02Remove counts paramScott LaVarnway
Moved to MACROBLOCKD. Change-Id: Icce765b334f2755f4fe2a4c39fb2ae2d7660d004
2015-02-03vp9_dthread: pass frame counts to decoder functionsYunqing Wang
The current multi-threaded tile decoder requires that the videoes are encoded with frame_parallel_decoding_mode = 1. This requirement is not necessary, and is better to be removed. This patch includes the first part of the work. Change-Id: Ic7695fb3cfe13f9022582c9f0edd2aa6e2e36d28
2015-01-30Try again to merge branch 'frame-parallel' into master branch.hkuang
In frame parallel decode, libvpx decoder decodes several frames on all cpus in parallel fashion. If not being flushed, it will only return frame when all the cpus are busy. If getting flushed, it will return all the frames in the decoder. Compare with current serial decode mode in which libvpx decoder is idle between decode calls, libvpx decoder is busy between decode calls. Current frame parallel decode will only speed up the decoding for frame parallel encoded videos. For non frame parallel encoded videos, frame parallel decode is slower than serial decode due to lack of loopfilter worker thread. There are still some known issues that need to be addressed. For example: decode frame parallel videos with segmentation enabled is not right sometimes. * frame-parallel: Add error handling for frame parallel decode and unit test for that. Fix a bug in frame parallel decode and add a unit test for that. Add two test vectors to test frame parallel decode. Add key frame seeking to webmdec and webm_video_source. Implement frame parallel decode for VP9. Increase the thread test range to cover 5, 6, 7, 8 threads. Fix a bug in adding frame parallel unit test. Add VP9 frame-parallel unit test. Manually pick "Make the api behavior conform to api spec." from master branch. Move vp9_dec_build_inter_predictors_* to decoder folder. Add segmentation map array for current and last frame segmentation. Include the right header for VP9 worker thread. Move vp9_thread.* to common. ctrl_get_reference does not need user_priv. Seperate the frame buffers from VP9 encoder/decoder structure. Revert "Revert "Revert "Revert 3 patches from Hangyu to get Chrome to build:""" Conflicts: test/codec_factory.h test/decode_test_driver.cc test/decode_test_driver.h test/invalid_file_test.cc test/test-data.sha1 test/test.mk test/test_vectors.cc vp8/vp8_dx_iface.c vp9/common/vp9_alloccommon.c vp9/common/vp9_entropymode.c vp9/common/vp9_loopfilter_thread.c vp9/common/vp9_loopfilter_thread.h vp9/common/vp9_mvref_common.c vp9/common/vp9_onyxc_int.h vp9/common/vp9_reconinter.c vp9/decoder/vp9_decodeframe.c vp9/decoder/vp9_decodeframe.h vp9/decoder/vp9_decodemv.c vp9/decoder/vp9_decoder.c vp9/decoder/vp9_decoder.h vp9/encoder/vp9_encoder.c vp9/encoder/vp9_pickmode.c vp9/encoder/vp9_rdopt.c vp9/vp9_cx_iface.c vp9/vp9_dx_iface.c This reverts commit a18da9760a74d9ce6fb9f875706dc639c95402f5. Change-Id: I361442ffec1586d036ea2e0ee97ce4f077585f02
2015-01-23Revert "Merge branch 'frame-parallel' to enable frame parallel decode in ↵Johann
master branch." This reverts commit bde04ce5039cbcf86c8b34bdb4127e18d7e1d0c7 Change-Id: I053dae04c761b04a36dc239558503905a14d2470
2014-10-22Implement frame parallel decode for VP9.Hangyu Kuang
Using 4 threads, frame parallel decode is ~3x faster than single thread decode and around 30% faster than tile parallel decode for frame parallel encoded video on both Android and desktop with 4 threads. Decode speed is scalable to threads too which means decode could be even faster with more threads. Change-Id: Ia0a549aaa3e83b5a17b31d8299aa496ea4f21e3e
2014-03-05Removing vp9_onyxd_int.h file.Dmitry Kovalev
Moving VP9Decompressor struct from vp9_onyxd_int.h to vp9_onyxd.h. Change-Id: Ic86c15e44130541a7f692db43ef9109293f99ae8
2014-01-23vp9/decoder: add extern "C" to headersJames Zern
Change-Id: I0e6aa00f220280e22d30d098545265835d0c1079
2013-12-20Renaming vp9_dboolhuff.{h, c} to vp9_reader.{h, c}.Dmitry Kovalev
Change-Id: I50c009ff8108bda1c57427f23d63a79c04f7e776
2013-10-28vp9: add TileInfoJames Zern
replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making it less stateful and more reusable for parallel tile decoding Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
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-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_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-07-25General cleanups.Dmitry Kovalev
Removing unused constants, macros, and function declarations. Using ROUND_POWER_OF_TWO macro, vp9_zero, vp9_copy where possible. Moving #include from *.h to *.c. Merging for loops for motion vectors. Change-Id: Ic3bf841764a2bb177128bb3a6d7aa8f68229cd13
2013-06-28Cleanup inside vp9_decodemv.c.Dmitry Kovalev
Adding read_skip_coeff function. Renaming decode_mv to read_mv for consistency with another function names. Removing redundant function arguments. Renaming kfread_modes to read_intra_mode_info, read_mb_modes_mv to read_inter_mode_info, vp9_decode_mb_mode_mv to vp9_read_mode_info, vp9_decode_mode_mvs_init to vp9_prepare_read_mode_info. Inlining function mb_mode_mv_init inside vp9_prepare_read_mode_info. Change-Id: Ifee05d333da4cd331d4aff40ce41ccd9b70e494a
2013-04-16Replacing BOOL_DECODER with vp9_reader inside vp9_decodemv.Dmitry Kovalev
Also a little bit of code cleanup: replacing pbi->common with cm, pbi->mb with xd. Change-Id: I2f70a005704a2833d644dfaafc4cd354e6e8532b
2012-12-18Use standard integer types for pixel values and coefficients.Ronald S. Bultje
For coefficients, use int16_t (instead of short); for pixel values in 16-bit intermediates, use uint16_t (instead of unsigned short); for all others, use uint8_t (instead of unsigned char). Change-Id: I3619cd9abf106c3742eccc2e2f5e89a62774f7da
2012-11-28fixed includes to be fully specifiedJim Bankoski
Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
2012-11-27Add vp9_ prefix to all vp9 filesJohn Koleszar
Support for gyp which doesn't support multiple objects in the same static library having the same basename. Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc