summaryrefslogtreecommitdiff
path: root/vp9/decoder
AgeCommit message (Collapse)Author
2015-11-11Revert "VP9: Only zero counts when !frame_parallel_decoding_mode"James Zern
This reverts commit 380a5519cca999f54b17f37b709996a11f3204ea. This causes an assertion failure in debug_check_frame_counts() which probably isn't valid with this change; leaving the investigation for later now. Change-Id: Ieda5ca811ed2fa50a0cc6935919a8d10dca996e0
2015-11-09VP9: Only zero counts when !frame_parallel_decoding_modeScott LaVarnway
The counts are never used when frame_parallel_decoding_mode is set. Change-Id: Ic7a566a048297f7373c9ffbb48929ea09eff674f
2015-10-29vp9_decodeframe.h: add missing includeJames Zern
Change-Id: I8ef772a016a79cab88bee8e9739530aa030baaa9
2015-10-27Shrink probability remap tables.Alex Converse
Saves 2288 bytes in vp8+vp9 libvpx.a. Change-Id: Iaa5712e59a9693ed58cea63de63781a96827e44e
2015-10-16Add a new enum type vpx_color_range_tYaowu Xu
to make meaning of color_range obvious. Change-Id: I303582e448b82b3203b497e27b22601cc718dfff
2015-10-10tile_worker_hook: fix -Wclobbered warningJames Zern
*tile should be marked volatile like the others due to the use of setjmp() Change-Id: I5dbf8e6792e4c0f34a683434b4fd06e3b4c75c4b
2015-10-07vp9/decode_tiles_mt: remove unnecessary localJames Zern
reuse the common loop index Change-Id: I9db45a93c219c2123917514cb8e9d4ea86454711
2015-10-06vp9/tile_worker_hook: pass pbi directlyJames Zern
reduces the size of TileWorkerData reusing the storage in the worker itself Change-Id: If8a62fcb35167037c3da5814ab84fb81893f9cab
2015-10-06vp9/tile_worker_hook: add multiple tile decodingJames Zern
this reduces the number of synchronizations in decode_tiles_mt() and improves overall performance when the number of threads is less than the number of tiles Change-Id: Iaee6082673dc187ffe0e3d91a701d1e470c62924
2015-09-30VP9: remove plane_type from macroblockd_planeScott LaVarnway
Change-Id: Ia5072a3a92212d8565f33359f6c146469bdfbbec
2015-09-29Merge "VP9: move loopfilter build masks to decode loop"Scott LaVarnway
2015-09-29VP9: move loopfilter build masks to decode loopScott LaVarnway
The loopfilter masks are now built in the decode loop. This is done so we can eventually reduce the number of MODE_INFO structs required by the decoder. The encoder builds the masks for the entire frame prior to calling the loopfilter. Change-Id: Ia2146b07e0acb8c50203e586dfae0c4c5b316f11
2015-09-25vp9/10: improve support for render_width/height.Ronald S. Bultje
In the decoder, map this to the output variable vpx_image_t.r_w/h. This is intended as an improved version of VP9D_GET_DISPLAY_SIZE, which doesn't work with parallel frame decoding. In the encoder, map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE). Also add render_size to the encoder_param_get_to_decoder unit test. See issue 1030. Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
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-24vp9/10 decoder_remove: check pbi pointerJames Zern
fixes crash on error Change-Id: Ibb1ef5565fb833cdee1a49335473d98f1187ef43
2015-09-17Merge changes from topic 'tile-thread-cleanup'James Zern
* changes: vp9/decode_tiles_mt: move frame count accum from loop VP9Decoder: remove duplicate tile_worker_info vp9/decode_tiles_mt: move some inits from inner loop vp9_accumulate_frame_counts: pass counts directly
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-09-09vp9: add extern "C" to headersJames Zern
Change-Id: I1b6927ad820f99340985b094d415aaab14defaf4
2015-09-04vp9/decode_tiles_mt: move frame count accum from loopJames Zern
the check performed within the while was redundant; simply place the accumulation after all tiles are decoded. Change-Id: I6a74e87257c775fd8bfc8ac4511e4a6ad8f18346
2015-09-04VP9Decoder: remove duplicate tile_worker_infoJames Zern
unnecessary since: 86f4a3d Remove tile param Change-Id: Iff75d3acf6c5aade833ea0a214c919279403cf97
2015-09-04vp9/decode_tiles_mt: move some inits from inner loopJames Zern
worker copies of pbi/xd/counts only need to be initialized once Change-Id: I0081a85b9c82d39573c22d2fd2c670ec2f7b8715
2015-09-04vp9_accumulate_frame_counts: pass counts directlyJames Zern
Change-Id: Ic3c6cfba5b1867c335f2834da936e20caec8597a
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-14Change vp9_ prefix function names in vpx_scale to vpx_Jingning Han
Change-Id: Iac85902cbbb3e752801dc85de9a3c778e47304aa
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-08-06Cosmetic - align format in vp9Jingning Han
Change-Id: I83ed3422f1f4009675ad2f5c4b7236bc7b83b30e
2015-07-31Code refactor on InterpKernelZoe Liu
It in essence refactors the code for both the interpolation filtering and the convolution. This change includes the moving of all the files as well as the changing of the code from vp9_ prefix to vpx_ prefix accordingly, for underneath architectures: (1) x86; (2) arm/neon; and (3) mips/msa. The work on mips/drsp2 will be done in a separate change list. Change-Id: Ic3ce7fb7f81210db7628b373c73553db68793c46
2015-07-20vpx_dsp/bitreader_buffer.h: vp9_->vpx_Yaowu Xu
Replace vp9_ in names to vpx_ for non codec specific functions. Change-Id: Ib9e3b86cb0728d10b239f3493ceda18cc2c34e0f
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-20Merge "Correctly report "Unsupported bitstream profile""Yaowu Xu
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-17Correctly report "Unsupported bitstream profile"Yaowu Xu
For vp9 decoder build without profile 2 and profile 3 support, this commit changes to report error "Unsupported bitstream profile" for input streams in profile 2 or 3, rather than other misleading error information. In addition, one of the invalid files in unit tests is actually coded profile 2, this commit makes it tested only when the decoder is built with vp9-highbitdepth. This fixes issue #1028. Change-Id: I8b6c1210787c8f89c703a546687dcf973ac20fc0
2015-07-13Refactor intra block prediction and reconstruction processJingning Han
Flaten the intra block decoding process. It removes the legacy foreach_transformed_block use in the decoder. This saves cycles spent on retrieving the transform block position. Change-Id: I21969afa50bb0a8ca292ef72f3569f33f663ef00
2015-07-13Refactor intra block prediction functionJingning Han
This commit simplifies the intra block boundary condition logic. It removes the block index from the argument set. Change-Id: If00142512eb88992613d6609356dfd73ba390138
2015-07-13Merge "Revert "Fill buffer speed up""Jim Bankoski
2015-07-13Revert "Fill buffer speed up"Jim Bankoski
This reverts commit 9b4f9f45eee4d63cef3cd10f24923ed0bdd5ab7b. Change-Id: I23545ac8c7464127f7466fc6a58de517874fe0cf
2015-07-09Merge "Fill buffer speed up"Jim Bankoski
2015-07-09Fill buffer speed upJim Bankoski
Eliminates the byte by byte read from bool decoder, by reading in a size_t and then shifting it into place. Change-Id: Id89241977103fc3b973e4ed172a5cbf246998e5d
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-07-08Refactor transform block loop for inter mode decodingJingning Han
Rework the inter mode transform block decoding loop. Replace the block index with the row and col index as the input argument. It saves function call to compute the row and col index according to the block index and overall block size, and many if statements associated with the transform block position relative to the coding block. For the test bit-stream pedestrian_area 1080p at 5 Mbps, the decoding speed goes up from 81.13 fps to 81.92 fps. Note that the intra coded block decoding needs more refactoring work than the inter ones. So keep it using foreach_transforme_block as for now. Change-Id: I5622bdae7be28ed5af96693274057f55ba9b4fb4
2015-07-08Merge "Don't allocate dqcoeff in MACROBLOCKD."Alex Converse
2015-07-08Don't allocate dqcoeff in MACROBLOCKD.Alex Converse
The encoder gets its dqcoeff from the context tree. In the decoder move it to directly after MACROBLOCKD. Change-Id: I46c9b76f26956a360d17de0b26ecb994dae34ecb
2015-07-08Merge "Refactor inverse_transform_block argument list"Jingning Han
2015-07-08Merge "Reset dqcoeff[0] only if eob is 1"Jingning Han
2015-07-08Refactor inverse_transform_block argument listJingning Han
Replace block index with transform type in the argument list. This allows to save an extra fetch to the prediction mode. For pedestrian area 1080p coded at 5 Mbps with single tile, the average decoding speed goes up from 80.55 fps (before the refactoring series) to 81.13 fps. Change-Id: Icbebf84ce63c19c0c92f3690ed201f6c3eab7881
2015-07-08Merge "vp9_entropymv: remove vp9_get_mv_mag()"James Zern
2015-07-07Reset dqcoeff[0] only if eob is 1Jingning Han
If only the first dequantized coefficient is non-zero, reset dqcoeff[0] to zero directly. Change-Id: I0197ba72028a8ec436f0b1b9abcc1c0ae5d70abe
2015-07-07Rework scan order fetch logic for decoderJingning Han
Save redundant call for getting prediction mode to obtain scan order for detokenization. Change-Id: I0683ef119f1579d1261ed5d59052a1745b68ef6f