summaryrefslogtreecommitdiff
path: root/vp9/common
AgeCommit message (Collapse)Author
2014-05-14Merge "Remove Wextra warnings from vp9_sad.c"Deb Mukherjee
2014-05-14Merge "Silience -wextra warnings in vp9_reconintra.c"Jingning Han
2014-05-14Remove Wextra warnings from vp9_sad.cDeb Mukherjee
As a side-effect, the max_sad check is removed from the C-implementation of VP8, for consistency with VP9, and to ensure that the SAD tests common to VP8/VP9 pass. That will make the VP8 C implementation of sad a little slower but given that is rarely used in practice, the impact will be minimal. Change-Id: I7f43089fdea047fbf1862e40c21e4715c30f07ca
2014-05-13Merge "Moving loopfilter call to vp9_decode_frame()."Dmitry Kovalev
2014-05-13Silience -wextra warnings in vp9_reconintra.cJingning Han
The warning messages complained that there are unused arguments in a few prediction modes. This structure was designed on purpose, such that a wrapper function can cover all prediction mode cases and make them readily accessible as an pointer array. This commit silences such warnings. Change-Id: I7036b6bdb70747e5327d8f6fceb154f100abc4c0
2014-05-13vp9_convolve.c: cleanup -wextra warningsAdrian Grange
Change-Id: I04930aca2293ebbaeb96dfedd2f9c5a55762fd2e
2014-05-12Moving loopfilter call to vp9_decode_frame().Dmitry Kovalev
Inline loopfilter has been already handled in vp9_decode_frame(). Collecting all similar code in one place now. Change-Id: I358a0280fc7c2b27cca520bc1e8c16c4eb6491dd
2014-05-12Only build neon assembly for armv7 targetsJohann
Allow selectively building just the intrinsics for armv8 Change-Id: I2f29b2e4508b8b8e5649c2906b3159ad1d4ec477
2014-05-09Merge "Add an x86inc MMX fwht4x4."Alex Converse
2014-05-09Merge changes I3edd4b95,I4514f974,Ie7fa4386Jingning Han
* changes: Turn on unit tests for SSSE3 8x8 forward and inverse 2D-DCT Change eob threshold for partial inverse 8x8 2D-DCT to 12 SSSE3 8x8 inverse 2D-DCT with first 10 coeffs non-zero
2014-05-08Add an x86inc MMX fwht4x4.Alex Converse
Change-Id: Ib0a73d4863478f9b8a00976379d25d2f6ebbb197
2014-05-08Change eob threshold for partial inverse 8x8 2D-DCT to 12Jingning Han
The scanning order has the first 12 coefficients of the 8x8 2D-DCT sitting in the top left 4x4 block. Hence the partial inverse 8x8 2D-DCT allows to handle cases with eob below 12. The overall runtime of the inverse 8x8 2D-DCT unit is reduced from 166 cycles (using SSE2) to 150 cycles (using SSSE3). Change-Id: I4514f9748042809ac84df4c14382c00f313f1cd2
2014-05-07SSSE3 8x8 inverse 2D-DCT with first 10 coeffs non-zeroJingning Han
This commit enables ssse3 assembly implementation of the 8x8 inverse 2D-DCT with only first 10 coefficients non-zero. The average runtime for this unit goes down from 198 cycles to 129 cycles (34.8% faster). Change-Id: Ie7fa4386f6d3a2fe0d47a2eb26fc2a6bbc592ac7
2014-05-07Merge "Moving pair_set_epi32 macro into vp9_dct32x32_sse2.c."Dmitry Kovalev
2014-05-07Revert "Add an MMX fwht4x4"Paul Wilkins
Includes changes that are not compatible with VS windows builds. Amongst other things stdint.h is not supported in VS. This reverts commit 89fbf3de501b5d7fd90047192521eae3198705cd. Change-Id: Ifa86d7df250578d1ada9b539c9ff12ed0c523cdd
2014-05-06Merge "Add an MMX fwht4x4"Alex Converse
2014-05-06Merge "SSSE3 implementation of full inverse 8x8 2D-DCT"Jingning Han
2014-05-05Making vp9_get_sse_sum_{8x8, 16x16} static.Dmitry Kovalev
Change-Id: Ifb7937c977308c682986f0ce9645a0807d2aa46a
2014-05-05Add an MMX fwht4x4Alex Converse
7% faster encoding a desktop lossless at RT speed 4. Change-Id: I41627f5b737752616b6512bb91a36ec45995bf64
2014-05-05SSSE3 implementation of full inverse 8x8 2D-DCTJingning Han
This commit enables SSSE3 version full inverse 8x8 2D-DCT and reconstruction. It makes the runtime of vp9_idct8x8_64_add down from 256 cycles (SSE2) to 246 cycles. Change-Id: I0600feac894d6a443a3c9d18daf34156d4e225c3
2014-05-01Moving pair_set_epi32 macro into vp9_dct32x32_sse2.c.Dmitry Kovalev
Change-Id: I642a7d343677bf934e9a54cf4ad78e908620e39a
2014-04-30Merge "Enable SSSE3 implementation of 8x8 forward 2D-DCT"Jingning Han
2014-04-29Merge "Adding search_site_config struct."Dmitry Kovalev
2014-04-29Enable SSSE3 implementation of 8x8 forward 2D-DCTJingning Han
Assembly implementation of ssse3 8x8 forward 2D-DCT. The current version is turned on only for x86_64. The average unit runtime goes from 157 cycles down to 136 cycles, i.e., about 12.8% faster. This translates into about 1.5% speed-up for pedestrian_area 1080p at speed 2. Change-Id: I0f12435857e9425ed7ce12541344dfa16837f4f4
2014-04-29Merge "Removing unused vp9_variance_halfpixvar*() functions."Dmitry Kovalev
2014-04-29Adding search_site_config struct.Dmitry Kovalev
Change-Id: I2ad333553e673dbabcdc0f0366aea311e90849bf
2014-04-25Removing old unused vp9_tapify.py.Dmitry Kovalev
Change-Id: I7d66987fd04a3f98c140fc5f99ed0e9bc01f61d0
2014-04-25Removing unused vp9_variance_halfpixvar*() functions.Dmitry Kovalev
Change-Id: I99695564a3aa9bc8c79ac0a551d257e2ff3ad3c3
2014-04-24Removing unused vp9_sub_pixel_mse* functions.Dmitry Kovalev
Change-Id: I8d906da3bd6de0d3042676846f61a8b2a3444508
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-15Merge "Moving frame_frags field from VP9Common to VP9_COMP."Dmitry Kovalev
2014-04-11Removing unused cost arguments from mcomp functions.Dmitry Kovalev
Change-Id: Id81a76d18be6b2de69f81bb563d74c3bb356d434
2014-04-10Merge "Fix encoder uninitialized read errors reported by drmemory"Yunqing Wang
2014-04-09Moving frame_frags field from VP9Common to VP9_COMP.Dmitry Kovalev
Change-Id: I0f4a5c50561a2653d22c366c214a937272ecfa2c
2014-04-09Merge "Revert "Converting set_prev_mi() to get_prev_mi().""Dmitry Kovalev
2014-04-09Revert "Converting set_prev_mi() to get_prev_mi()."Dmitry Kovalev
This reverts commit 22a3e30790d141033778e430a47ba7d558237362 Change-Id: I460d905edf5fb2006da58c18fbe02c04d0c631bb
2014-04-09Merge "Fix avx builds on macosx with clang 5.0."Tom Finegan
2014-04-09Merge "Converting set_prev_mi() to get_prev_mi()."Dmitry Kovalev
2014-04-09Merge "Use source frame difference to make partition decision"Yunqing Wang
2014-04-09Fix encoder uninitialized read errors reported by drmemoryYunqing Wang
This patch fixed the uninitialized read errors in Issue 748: "dr memory VP9 encode errors". In vp9_convolve_avg_sse2, when width is 4, pavgb reads 8 bytes from dst buffer that is out of range. An error is reported although the data is not actually used later. This issue was resolved by preventing uninitialized reads. Change-Id: I109a54910aa47139cb13119de86f2062cff207df
2014-04-08Fix avx builds on macosx with clang 5.0.Tom Finegan
The macosx release of clang v5.0 identifies itself as: Apple LLVM version 5.0 (clang-500.2.79) (based on LLVM 3.3svn) This version of clang uses the older _mm_broadcastsi128_si256, like v3.3, as given away in the LLVM svn version above. Change-Id: I4d6d59d5454efd57d2ae9e75f5eb7486af7cbd0c
2014-04-08Use source frame difference to make partition decisionYunqing Wang
Calculate the difference variance between last source frame and current source frame. The variance is calculated at 16x16 block level. The variances are compared to several thresholds to decide final partition sizes. An adaptive strategy is implemented to decide using SOURCE_VAR_BASED_PARTITION or FIXED_PARTITION based on motions in the video. The switching test is done once every search_type_check_frequency frames. The selection of source_var_thresh needs to be investigated further later. RTC set Borg test showed 0.424% overall psnr gain, and 0.357% ssim gain. For clips with large enough static area, the encoding speedup is around 2% to 15%. Change-Id: Id7d268f1d8cbca7fb8026aa4a53b3c77459dc156
2014-04-08High-level hooks for Profile 2 (10/12 bit)Deb Mukherjee
Adds some high-level hooks for profile 2 before further progress on the implementation. According to the definitiion in this patch: 1. Profile 2 only supports 10 or 12 bit color but not 8 2. Profile 2 supports all color sampling modes: 444, 422 and 420, and alpha plane. 3. Profile 3 is currently undefined. Please consider the definition carefully and suggest modifications to the definition as needed. Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
2014-04-07Converting set_prev_mi() to get_prev_mi().Dmitry Kovalev
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f
2014-04-07Cleaning up vp9_{cx, dx}_iface.c files.Dmitry Kovalev
Change-Id: Ib4e31ba74c4b882bd93942ef743f4a189892738d
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 "Cleaning up vp9_mvref_common.c."Dmitry Kovalev
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