summaryrefslogtreecommitdiff
path: root/vp9/common/vp9_blockd.h
AgeCommit message (Collapse)Author
2015-06-10Merge "Reducing size of MODE_INFO struct"Scott LaVarnway
2015-06-04Reducing size of MODE_INFO structScott LaVarnway
Reduced size from 124 bytes to 104 bytes. For decode only builds, it is reduced to 68 bytes. Change-Id: If9e6b92285459425fa086ab5a743d0a598a69de3
2015-06-04Remove cm parameter from vp9_decode_block_tokens() part 2Scott LaVarnway
Change-Id: Iee24b6bb095f748333223e6036fc5c9d9e7e5f1c
2015-06-02Remove counts paramScott LaVarnway
Moved to MACROBLOCKD. Change-Id: Icce765b334f2755f4fe2a4c39fb2ae2d7660d004
2015-05-22Re-worked header filesScott LaVarnway
Various header/test files had to be re-worked in order to build "Remove cm parameter from vp9_decode_block_tokens()". This patch reverts the "Remove cm" part and only contains the re-worked header files. Change-Id: I520958a88d1991fee988a3c784d0eac40e117a32
2015-05-14Move mc_buf to cut down size of MACROBLOCKD.Frank Galligan
Change-Id: Icea64b9e5632b41aaa7cd7018c501d6add9b7a7f
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-01-08Merge "vp9: add per-tile longjmp error handling"James Zern
2014-12-19vp9: add per-tile longjmp error handlingJames Zern
this avoids longjmp'ing from another thread on error which will cause undesired behavior Change-Id: Ic9074ed8cc4243944bf2539d6e482f213f4e8c86
2014-12-17Let YUV plane share the same dqcoeff buffer.hkuang
Remove unnecessary dqcoeff from macroblockd which reduce macroblockd size by 16384 bytes. Change-Id: Ia379a703b4fee81c8fd4698b52488a85a90c9bc2
2014-12-12vp9/MACROBLOCKD: reorder struct membersJames Zern
improves locality of reference Change-Id: I0639b98bf38879f918173b3a1b25dd93090e88b4
2014-12-05Improve the performance by caching the left_mi and right_mi in macroblockd.hkuang
This improve the deocde performance by ~2% on Nexus 7 2013. Change-Id: Ie9c4ba0371a149eb7fddc687a6a291c17298d6c3
2014-12-02Added high bitdepth sse2 transform functionsPeter de Rivaz
Also removes some spurious changes in common/vp9_blockd.h which was introduced by a rebase issue between nextgen and master branches. Change-Id: If359f0e9a71bca9c2ba685a87a355873536bb282 (cherry picked from commit 005d80cd05269a299cd2f7ddbc3d4d8b791aebba) (cherry picked from commit 08d2f548007fd8d6fd41da8ef7fdb488b6485af3) (cherry picked from commit 4230c2306c194c058f56433a5275aa02a2e71d56)
2014-11-14Added sse2 acceleration for highbitdepth variancePeter de Rivaz
Change-Id: I446bdf3a405e4e9d2aa633d6281d66ea0cdfd79f (cherry picked from commit d7422b2b1eb9f0011a8c379c2be680d6892b16bc) (cherry picked from commit 6d741e4d76a7d9ece69ca117d1d9e2f9ee48ef8c)
2014-10-07Clean up header files in vp9_blockd.h and related filesJingning Han
This commit breaks the overly broad header files into more targeted and smaller ones, to help better structure the system layout. Change-Id: I7b24559d3ea6e582cf5d9bbe8f71459f9824d71b
2014-10-07Use #define statement for MAX_MB_PLANEJingning Han
Change-Id: I3a7f83ab1dbfcedc8a82fe798c2fa30dd9c7d696
2014-10-07Remove vp9_blockd.h from vp9_common_data.cJingning Han
The basic data defs should be above block operation level. Change-Id: I7dd9836d01120ab75e0c472baac9f15495ed0db5
2014-10-07Replace mi_width_log2() with mi_width_log2_lookup tableJingning Han
Change-Id: If0ea98aa139d14d40cd924114e18396aff36b5a5
2014-10-07Take out repeated block width/height lookup functionsJingning Han
The functions b_width_log2 and b_height_log2 only do direct table fetch. This commit unifies such use cases by using the table directly and removes these functions. Change-Id: I3103fc6ba959c1182886a2799d21b8b77c8a7b6b
2014-09-30Revert "Fix compiling error in vp9_idct.h"James Zern
This reverts commit eafc8c9c40d712aabe234bed5269a02c62fa0bfc. tran_low_t/tran_high_t don't belong in a public header, they're private. Similarly the public headers shouldn't rely on config defines, vpx_config.h isn't installed. Change-Id: I194ec273598da418df8dd727b6c0e78a556740ad
2014-09-30Fix compiling error in vp9_idct.hJingning Han
This commit fixes a compiling error in vp9_idct.h, where the codec checks that the intermediate steps of transformation fit within 16-bit length. The issue was due to broken file dependency. Change-Id: Ib22bba13a1e6df28489cb23d6774c561969f1fdc
2014-09-19Remove mi_grid_* structures.hkuang
mi_grid_* are arrays of pointer to pointer. They save the pointers that point to the MIs in cm->mi. But they are unnecessary and complicated. The original goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer inside MODE_INFO_t, same goal could be achieved. This commit totally removes the mi_grid_* structures. But there are still many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit will do on-demand MODE_INFO_t allocation in order to save these memories. Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
2014-09-13Merge "Add a note for enum values of MV_REFERENCE_FRAME"Jingning Han
2014-09-11Adds high bitdepth transform functions and testsDeb Mukherjee
Adds various high bitdepth transform functions and tests. Much of the changes are related to using typedefs tran_low_t and tran_high_t for the final transform cofficients and intermediate stages of the transform computation respectively rather than fixed types int16_t/int. When vp9_highbitdepth configure flag is off, these map tp int16_t/int32_t, but when the flag is on, they map to int32_t/int64_t to make space for needed extra precision. Change-Id: I3c56de79e15b904d6f655b62ffae170729befdd8
2014-09-11Add a note for enum values of MV_REFERENCE_FRAMEJingning Han
Change-Id: Ifaf6738f26e86ded6eb6ea1465bad7a229612999
2014-08-04uint8_t segment and skip to avoid signed / unsigned warningsJim Bankoski
Change-Id: I2e2765b851fb0a1b15351c2aa0e079197cbee373
2014-07-21Remove unfinished VP9 alpha channel.Alex Converse
Change-Id: Ic5d3a3a0dac10b49495771886a31e793bb78b5ca
2014-07-11Remove unnecessary assertionsYunqing Wang
Removed 2 unnecessary assertions. Change-Id: I0f8877d0494bf3ecdb0d7931ccbcaa8289e01d8b
2014-06-18BITSTREAM: Handle transform size and motion vectors more logically for non-420.Alex Converse
This breaks the profile 1 bitstream. Don't force non420 uv transform size to 1/4 y size. In the 4:2:0 case the chroma corresponding to a luma block is 1/4 its size. In the 4:4:4 case chroma and luma planes are the same size. Disallowing larger transforms can result in a loss of compression efficiency and is inconsistent. For sub-8x8 blocks only average corresponding motion vectors. 4:2:0 and profile 0 behavior remains unchanged. Change-Id: I560ae07183012c6734dd1860ea54ed6f62f3cae8
2014-05-21Moving itxm_add pointer from MACROBLOCKD to MACROBLOCK.Dmitry Kovalev
The final goal is eventually to get rid of both itxm_add and fwd_txm4x4. This patch does it in the decoder. Change-Id: Ibb3db57efbcbb1ac387c6742538a9fcf2c6f24a5
2014-04-22Renaming MB_PREDICTION_MODE to PREDICTION_MODE.Dmitry Kovalev
Actually, it would be great to have two separate enums INTRA_MODES and INTER_MODES in future. Change-Id: I6c4147cf0002853da9c1e03fe9514eab876f01c8
2014-04-03Removing interp_kernel from MACROBLOCKD.Dmitry Kovalev
Now interp_kernel is obtained when it is really required (based on mbmi->interp_filter value). Change-Id: I4c7a93c179d1045eba16e7526c293d02c9b8b47e
2014-04-02Merge "Grouping members in MB_MODE_INFO struct."Dmitry Kovalev
2014-04-01Renaming two members in MACROBLOCKD struct.Dmitry Kovalev
Renames: mi_8x8 -> mi mode_info_stride -> mi_stride Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
2014-04-01Common configuration for MACROBLOCKD struct.Dmitry Kovalev
Change-Id: Ie2ea9dd8bd338cc9fe12ca9033df64f7644c68b3
2014-03-28Grouping members in MB_MODE_INFO struct.Dmitry Kovalev
Change-Id: Ia6d7e7a08810e0c3401da4d10266828d560e6851
2014-03-28Moving dqcoeff array to MACROBLOCKD in decoder.Dmitry Kovalev
Change-Id: I3e20c0cdb9d2437bddf21afb255855f2dead8e02
2014-03-26Removing prev_mi_8x8 from MACROBLOCKD.Dmitry Kovalev
Change-Id: I32beb5f18c10b5771146c55933b5555487f53633
2014-03-19Removing mi_stream.Dmitry Kovalev
Change-Id: If674140e30c223c88894b983fd22a583efb99dcf
2014-03-12Renaming mode2txfm_map to intra_mode_to_tx_type_lookup.Dmitry Kovalev
Change-Id: I9a19eb96907f674e3ce1e573f5dd49f0fbf2ae4f
2014-03-10Removing last_mi from MACROBLOCKD struct.Dmitry Kovalev
Change-Id: Ied12b39c55667b26fd3bf90eb331e601c53a10f6
2014-03-03Adding get_tx_type() instead of get_tx_type_{8x8, 16x16}.Dmitry Kovalev
Change-Id: I4a54b12e5229705222c5a101258b9d1f81e2948d
2014-02-28Merge "Adding get_y_mode() function."Dmitry Kovalev
2014-02-27Moving get_tx_eob() from common to encoder.Dmitry Kovalev
Change-Id: I7d11c6ae259aff6560710d16fea3032c661e5b02
2014-02-27Adding get_y_mode() function.Dmitry Kovalev
Change-Id: Iaac57b24f79cd205a8c62bc1177412d22f5787a8
2014-02-12Renaming skip_coeff to skip for consistency.Dmitry Kovalev
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
2014-02-12Merge "Removing vp9_foreach_transformed_block_uv() function."Dmitry Kovalev
2014-02-12Use INTER_OFFSET in vp9_pick_inter_modeJingning Han
Cosmetic change to use pre-defined macros. Change-Id: I93e9fa90113d0242599048940b39694660385a6f
2014-02-11Removing vp9_foreach_transformed_block_uv() function.Dmitry Kovalev
Change-Id: I35ec77b71e6fd686865cead9281e4dd9e9bc9e86
2014-02-10Merge "Encoder quantization cleanup."Dmitry Kovalev