- 17 Jun, 2013 - 1 commit
-
-
Ronald S. Bultje authored
2.5% faster when encoding first 50 frames of bus @ 1500kbps. Change-Id: I5a64703996cf7fd39b07e32c72311c4b125ec6d4
-
- 08 Jun, 2013 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: Iec41736c2b6140715f90f40de5ae6cf52497a9b8
-
- 31 May, 2013 - 1 commit
-
-
Jim Bankoski authored
This speed 1 - uses variance threshold stolen from static-thresh to determine split. Any superblock with greater than the variance set by static thresh * quantizer index squared is split. In addition transform size is set to largest size less than or equal to partition size, sub pixel filter is set to normal, and only 12 modes are used at all. Change-Id: If7a2858ee70f96d1eb989c04fd87a332b147abef
-
- 17 May, 2013 - 1 commit
-
-
Jingning Han authored
Correct the stride parameter of 4x8 in vp9_sub_pixel_variance4x8_ and vp9_sub_pixel_avg_variance4x8. Change-Id: I2ca74d4043817503b21737563994270e3b0619ff
-
- 16 May, 2013 - 1 commit
-
-
Jingning Han authored
These building blocks enable rate-distortion optimization search over block sizes of 8x4 and 4x8. Need to convert them into mmx/sse forms. Change-Id: I570ea2d22d14ceec3fe3575128d7dfa172a577de
-
- 10 May, 2013 - 1 commit
-
-
Yunqing Wang authored
In current code, motion vectors got from single prediction mode are used in compound prediction mode directly. These motion vectors may not give accurate prediction since they are searched independently. In this patch, we took Pascal's suggestion, and did joint motion search in compound prediction mode to find better motion vectors in this situation. Test results: Overall PSNR: 0.570%(derf), 0.918%(stdhd); SSIM: 0.572%(derf), 1.009%(stdhd); The encoder is a little slower. This can be improved since some c code is used in motion search. Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6
-
- 01 May, 2013 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I390bb1cedc835f439fd5dd6cda6572b29cbb139c
-
- 29 Apr, 2013 - 1 commit
-
-
John Koleszar authored
Incorrect strides caused use of uninitialized stack data. Change-Id: Ifc12174285311bcf0453987d4283e91141f979ef
-
- 24 Apr, 2013 - 1 commit
-
-
Jingning Han authored
Move rectangular superblock coding out of experimental list. Change-Id: I96c37547d122330d666a67b4bf577ae54547857f
-
- 15 Apr, 2013 - 1 commit
-
-
Jingning Han authored
With this, the RD loop properly supports rectangular blocks. Change-Id: Iece79048fb4e84741ee1ada982da129a7bf00470
-
- 05 Feb, 2013 - 1 commit
-
-
John Koleszar authored
Update the code to call the new convolution functions to do subpixel prediction rather than the existing functions. Remove the old C and assembly code, since it is unused. This causes a 50% performance reduction on the decoder, but that will be resolved when the asm for the new functions is available. There is no consensus for whether 6-tap or 2-tap predictors will be supported in the final codec, so these filters are implemented in terms of the 8-tap code, so that quality testing of these modes can continue. Implementing the lower complexity algorithms is a simple exercise, should it be necessary. This code produces slightly better results in the EIGHTTAP_SMOOTH case, since the filter is now applied in only one direction when the subpel motion is only in one direction. Like the previous code, the filtering is skipped entirely on full-pel MVs. This combination seems to give the best quality gains, but this may be indicative of a bug in the encoder's fil...
-
- 10 Jan, 2013 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: If6c88752dffdb566f8d4322f135145270716fb8e
-
- 08 Jan, 2013 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I0df99742029834a85c4933652b0587cf5b6b2587
-
- 06 Jan, 2013 - 1 commit
-
-
Ronald S. Bultje authored
3.2% gains on std/hd, 1.0% gains on hd. Change-Id: I481d5df23d8a4fc650a5bcba956554490b2bd200
-
- 18 Dec, 2012 - 1 commit
-
-
Ronald S. Bultje authored
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
-
- 28 Nov, 2012 - 1 commit
-
-
Jim Bankoski authored
Change-Id: Ia1cce221f8511561b9cbd8edb7726fbc286ff243
-
- 27 Nov, 2012 - 1 commit
-
-
John Koleszar authored
Support for gyp which doesn't support multiple objects in the same static library having the same basename. Change-Id: Ib947eefbaf68f8b177a796d23f875ccdfa6bc9dc
-
- 14 Nov, 2012 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I478878c78ef8a770186622d987d318176827ef5f
-
- 07 Nov, 2012 - 1 commit
-
-
James Zern authored
In the variance calculations the difference is summed and later squared. When the sum exceeds sqrt(2^31) the value is treated as a negative when it is shifted which gives incorrect results. To fix this we force the multiplication to be unsigned. The alternative fix is to shift sum down by 4 before multiplying. However that will reduce precision. For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and change). This change is based on: 16982342 Missed some variance casts fea3556e Fix variance overflow Change-Id: I2c61856cca9db54b9b81de83b4505ea81a050a0f
-
- 06 Nov, 2012 - 1 commit
-
-
Yaowu Xu authored
Change-Id: Iedaa108ddb65f54d768424f9c47ad4d069b656fd
-
- 01 Nov, 2012 - 2 commits
-
-
Ronald S. Bultje authored
Change-Id: Ic084c475844b24092a433ab88138cf58af3abbe4
-
Ronald S. Bultje authored
For non-static functions, change the prefix to vp9_. For static functions, remove the prefix. Also fix some comments, remove unused code or unused function prototypes. Change-Id: I1f8be05362f66060fe421c3d4c9a906fdf835de5
-
- 31 Oct, 2012 - 3 commits
-
-
Ronald S. Bultje authored
For local symbols, make them static instead. Change-Id: I13d60947a46f711bc8991e16100cea2a13e3a22e
-
Ronald S. Bultje authored
Most of these were picked up in the previous commit (prefix change from vp8_ to vp9_), but I'm pushing this separately so that it's easier to review. Change-Id: I91e959895778b8632d7d33375523df8a7568a490
-
Ronald S. Bultje authored
Change-Id: Ie2e3652591b010ded10c216501ce24fd95d0aec5
-
- 29 Oct, 2012 - 1 commit
-
-
Yaowu Xu authored
Previously, in evaluating reference motion vectors, MVs are always rounded to integer pixel position and SADs are calculated. This commit takes into account the subpixel portion of the mvs, and uses bilinear interpolation to produce reference pixel values in subpixel postions. In addition, SSE is used in place of SAD. Pixels used are 16x2 above and 2x16 to the left. This commmit intends to test the potential of this line of work in term of compression improvement, obviously, the change would increase decoder complexity significantly. Test results std-hd: 1.738%(avg) 1.779%(glb), 1.663%(ssim) derf: 0.472%(avg) 0.477%(glb), 0.418%(ssim) Change-Id: I3ae1b098f6289df78891134d9a5e4bb2fde87a0b
-
- 20 Aug, 2012 - 1 commit
-
-
Ronald S. Bultje authored
This commit adds a pick_sb_mode() function which selects the best 32x32 superblock coding mode. Then it selects the best per-MB modes, compares the two and encodes that in the bitstream. The bitstream coding is rather simplistic right now. At the SB level, we code a bit to indicate whether this block uses SB-coding (32x32 prediction) or MB-coding (anything else), and then we follow with the actual modes. This could and should be modified in the future, but is omitted from this commit because it will likely involve reorganizing much more code rather than just adding SB coding, so it's better to let that be judged on its own merits. Gains on derf: about even, YT/HD: +0.75%, STD/HD: +1.5%. Change-Id: Iae313a7cbd8f75b3c66d04a68b991cb096eaaba6
-
- 08 Aug, 2012 - 1 commit
-
-
Deb Mukherjee authored
Merges this experiment in to make it easier to run tests on filter precision, vectorized implementation etc. Also removes an experimental filter. Change-Id: I1e8706bb6d4fc469815123939e9c6e0b5ae945cd
-
- 17 Jul, 2012 - 1 commit
-
-
John Koleszar authored
Approximate the Google style guide[1] so that that there's a written document to follow and tools to check compliance[2]. [1]: http://google-styleguide.googlecode.com/svn/trunk/cppguide.xml [2]: http://google-styleguide.googlecode.com/svn/trunk/cpplint/cpplint.py Change-Id: Idf40e3d8dddcc72150f6af127b13e5dab838685f
-
- 15 Mar, 2012 - 1 commit
-
-
Yaowu Xu authored
This is a code snapshot of experimental work currently ongoing for a next-generation codec. The codebase has been cut down considerably from the libvpx baseline. For example, we are currently only supporting VBR 2-pass rate control and have removed most of the code relating to coding speed, threading, error resilience, partitions and various other features. This is in part to make the codebase easier to work on and experiment with, but also because we want to have an open discussion about how the bitstream will be structured and partitioned and not have that conversation constrained by past work. Our basic working pattern has been to initially encapsulate experiments using configure options linked to #IF CONFIG_XXX statements in the code. Once experiments have matured and we are reasonably happy that they give benefit and can be merged without breaking other experiments, we remove the conditional compile statements and merge them in. Current changes include: * T...
-
- 06 Mar, 2012 - 1 commit
-
-
Johann authored
The MFQE function of the postprocessor depends on these Change-Id: I256a37c6de079fe92ce744b1f11e16526d06b50a
-
- 23 Feb, 2012 - 1 commit
-
-
Deb Mukherjee authored
This is the initial patch for supporting 1/8th pel motion. Currently if we configure with enable-high-precision-mv, all motion vectors would default to 1/8 pel. Encode and decode syncs fine with the current code. In the next phase the code will be refactored so that we can choose the 1/8 pel mode adaptively at a frame/segment/mb level. Derf results: http://www.corp.google.com/~debargha/vp8_results/enhinterp_hpmv.html (about 0.83% better than 8-tap interpoaltion) Patch 3: Rebased. Also adding 1/16th pel interpolation for U and V Patch 4: HD results. http://www.corp.google.com/~debargha/vp8_results/enhinterp_hd_hpmv.html Seems impressive (unless I am doing something wrong). Patch 5: Added mmx/sse for bilateral filtering, as well as enforced use of c-versions of subpel filters with 8-taps and 1/16th pel; Also redesigned the 8-tap filters to reduce the cut-off in order to introduce a denoising effect. There is a new configure option sixteenth-subpel-uv whic...
-
- 09 Feb, 2012 - 1 commit
-
-
Johann authored
In the variance calculations the difference is summed and later squared. When the sum exceeds sqrt(2^31) the value is treated as a negative when it is shifted which gives incorrect results. To fix this we cast the result of the multiplication as unsigned. The alternative fix is to shift sum down by 4 before multiplying. However that will reduce precision. For 16x16 blocks the maximum sum is 65280 and sqrt(2^31) is 46340 (and change). PPC change is untested. Change-Id: I1bad27ea0720067def6d71a6da5f789508cec265
-
- 06 Jun, 2011 - 1 commit
-
-
Yaowu Xu authored
The encoder defined about 4 set of similar functions to calculate sum, variance or sse or a combination of them. This commit removed one set of these functions, get8x8var and get16x16var, where calls to the later function are replaced with var16x16 by using the fact on a 16x16 MB: variance == sse - sum*sum/256 Change-Id: I803eabd1fb3ab177780a40338cbd596dffaed267
-
- 18 Mar, 2011 - 1 commit
-
-
John Koleszar authored
A large number of functions were defined with external linkage, even though they were only used from within one file. This patch changes their linkage to static and removes the vp8_ prefix from their names, which should make it more obvious to the reader that the function is contained within the current translation unit. Functions that were not referenced were removed. These symbols were identified by: $ nm -A libvpx.a | sort -k3 | uniq -c -f2 | grep ' [A-Z] ' \ | sort | grep '^ *1 ' Change-Id: I59609f58ab65312012c047036ae1e0634f795779
-
- 27 Oct, 2010 - 2 commits
-
-
John Koleszar authored
This patch fixes the system dependent entries for the half-pixel variance functions in both the RTCD and non-RTCD cases: - The generic C versions of these functions are now correct. Before all three cases called the hv code. - Wire up the ARM functions in RTCD mode - Created stubs for x86 to call the optimized subpixel functions with the correct parameters, rather than falling back to C code. Change-Id: I1d937d074d929e0eb93aacb1232cc5e0ad1c6184
-
John Koleszar authored
NEON has optimized 16x16 half-pixel variance functions, but they were not part of the RTCD framework. Add these functions to RTCD, so that other platforms can make use of this optimization in the future and special-case ARM code can be removed. A number of functions were taking two variance functions as parameters. These functions were changed to take a single parameter, a pointer to a struct containing all the variance functions for that block size. This provides additional flexibility for calling additional variance functions (the half-pixel special case, for example) and by initializing the table for all block sizes, we don't have to construct this function pointer table for each macroblock. Change-Id: I78289ff36b2715f9a7aa04d5f6fbe3d23acdc29c
-
- 12 Oct, 2010 - 1 commit
-
-
Timothy B. Terriberry authored
These functions should never change their input, and there's no reason not to declare that. This allows them to be passed static const data. Change-Id: Ia49fe4b01e80e9afcb24b4844817694d4da5995c
-
- 09 Sep, 2010 - 1 commit
-
-
John Koleszar authored
Changes 'The VP8 project' to 'The WebM project', for consistency with other webmproject.org repositories. Fixes issue #97. Change-Id: I37c13ed5fbdb9d334ceef71c6350e9febed9bbba
-
- 18 Jun, 2010 - 1 commit
-
-
John Koleszar authored
When the license headers were updated, they accidentally contained trailing whitespace, so unfortunately we have to touch all the files again. Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
-