- 23 Aug, 2013 - 3 commits
-
-
Yaowu Xu authored
To the source buffer to be encoded as an alt ref frame. This is to fix the problem of using uninitialized memory in encoder. See https://code.google.com/p/webm/issues/detail?id=605 Change-Id: I97618a2fc207e08abcf5301b734aa9e3ad695e2c
-
Adrian Grange authored
(In response to Issue 604: https://code.google.com/p/webm/issues/detail?id=604) There were bugs in the convolution code for two cases: 1. Where the filter table was assumed to be aligned to a 256 byte boundary. The offset of the pixel in the source buffer was computed incorrectly. 2. Where no such alignment assumption was made. An incorrect address for the filter table base was used. To fix both problems, I now assume that the filter table is 256-byte aligned and modify the pixel offset calculation to match. A later patch should remove the restriction that the filter table is aligned to a 256-byte boundary. There was also a bug in the ConvolveTest unit test (convolve_test.cc). (Bug & initial fix suggestion submitted by Tero Rintaluoma and Sami Pietilä). Change-Id: I71985551e62846e55e40de9e7e3959d4805baa82
-
Jingning Han authored
Put rectangular partition check flag change according to the rd costs of NONE and SPLIT partition types under the speed feature. Change-Id: If681e1e078a8d43d86961ea4b748da5cd1b6c331
-
- 22 Aug, 2013 - 14 commits
-
-
hkuang authored
vp9_short_idct10_16x16_add is used to handle the block that only have valid data at top left 4x4 block. All the other datas are 0. So we could cut many unnecessary calculations in order to save instructions. Change-Id: I6e30a3fee1ece5af7f258532416d0bfddd1143f0
-
Dmitry Kovalev authored
Removing unused get_sbuv_perpixel_variance function, using has_second_ref/ is_inter_block functions, organizing includes. Change-Id: I016de4af12fbbb8b4ece26a70759b2392651b095
-
Dmitry Kovalev authored
Change-Id: Ib7803857b35c00e317c9deb8630e777e25eb278f
-
Dmitry Kovalev authored
It is possible to have invalid scale factors and not access them during decoding. Error is reported if we really try to use invalid scale factors. Change-Id: Ie532d3ea7325ee0c7a6ada08269f804350c80fdf
-
James Zern authored
gets rid of a mix of styles Change-Id: I3591d312157bc6f53a25438bf047765c671fd8a8
-
Dmitry Kovalev authored
Comment is wrong, we don't initialize any xd pointers. We only initialize xd->planes[i]->dst and xd->planes[i]->pre[], which are actually initialized for every block during the decoding. Change-Id: If152ea872ebef1f83ca70712fa6f8df1b6855f56
-
James Zern authored
remove duplicate allocation from vp9_create_compressor, it was added to vp9_alloc_frame_buffers in: d5bec522 Added resizing & initialization of last frame segment map Change-Id: I996723226a16a62aff8f9a52ac74e0b73cc98fdf
-
Dmitry Kovalev authored
Change-Id: Ieb7077ca3586b9491912027eed450a4f6fd38d30
-
Jingning Han authored
This commit changes the partition search order of superblocks from {SPLIT, NONE, HORZ, VERT} to {NONE, SPLIT, HORZ, VERT} for consistency with that of sub8x8 partition search. It enable the use of early termination in partition search for all block sizes. For ped_area_1080p 50 frames coded at 4000 kbps, it makes the runtime goes down from 844305ms -> 818003ms (3% speed-up) at speed 0. This will further move towards making the in-search partition types configurable, hence unifying various speed-up approaches. Some speed 1 and 2 features are turned off during the refactoring process, including: disable_split_var_thresh using_small_partition_info Stricter constraints are applied to use_square_partition_only for right/bottom boundary blocks. Will bring back/refine these features subsequently. At this point, it makes derf set at speed 1 about 0.45% higher in compression performance, and 9% down in run-time. Change-Id: I3db9f9d1d1a0d6cbe2e50e49bd9eda1cf705f37c
-
hkuang authored
to improve instruction scheduling. Change-Id: I5ea881a6e419f9e8ed4b3b619406403b4de24134
-
Deb Mukherjee authored
Adds a couple of minor fixes, which may be absorbed in Jingning's patch. Thanks to Guillaume for pointing these out. Also adjusts the thresholds for speed 1 and 2 to 16 and 32 respectively, to keep quality drops small. Results: -------- derfraw300: threshold = 16, psnr -0.082%, speedup 2-3% threshold = 32, psnr -0.218%, speedup 5-6% stdhdraw250: threshold = 16, psnr -0.031%, speedup 2-3% threshold = 32, psnr -0.273%, speedup 5-6% Change-Id: I4b11ae8296cca6c2a9f644be7e40de7c423b8330
-
Scott LaVarnway authored
It appears that the above/left mb_skip_coeff used during the pick modes, is left over from the previously encode frame. This patch initializes the flag to the default value of zero. Change-Id: Ida4684cc99611d6e3e82628db35ed717e28ce550
-
Dmitry Kovalev authored
Change-Id: I9f45af3894c57f35cb266c255e2b904295d39c34
-
James Zern authored
currently protected by CONFIG_NON420 as v1 is still not entirely stable Change-Id: Id1c5081b04a2c47a842822048b8804be67d23a6d
-
- 21 Aug, 2013 - 10 commits
-
-
Dmitry Kovalev authored
Change-Id: Ib2c975e1d96deefb7ac4d6b600c8c5388035d111
-
Dmitry Kovalev authored
Change-Id: Ib3e72671eb8da6f2e9767a6de292ec7c7cde6bc7
-
Dmitry Kovalev authored
Using size_group_lookup table and better variable names. Change-Id: I6e67f2ce091845db43ace7d21b7ae31c6f165aec
-
Dmitry Kovalev authored
We can determine plane_type for another function arguments. Change-Id: I85331877aedb357632ae916a37b5b15f22c0bb1f
-
Deb Mukherjee authored
Currently, the best quality mode in VP9 is not very well developed, and unnecessarily makes the encode too slow. Hence the command line default is changed to "good" quality. Also, the number of passes default is changed to 2 passes as well, since 1-pass encoding is not very efficient in VP9. Besides, a number of VP9 defaults are set to the currently recommended settings. With these changes, vpxenc run with --codec=vp9 --kf-max-dist=9999 --cpu-used=0 should work about the same as our borg results. Note when the --cpu-used=0 option is dropped there will be a slight difference in the output, because of a difference in the cpu-used value for the first pass. Specifically, the default when unspecified is to use cpu_used=1 for the first pass and cpu_used=0 for the second pass. But when specified, both passes will use the cpu-used value specified. Note that this also changes the default for VP8 as being "good" but other options stay unchanged. Change-Id: Ib23c...
-
Dmitry Kovalev authored
Adding set_contexts contexts function and call it instead of set_contexts_on_border. Calling txfrm_block_to_raster_xy to get aoff and loff. Change-Id: I41897e344afd2cae1f923f4fdbe63daccf6fe80e
-
Dmitry Kovalev authored
We support only [1/16, 2] scale factors, enforcing this now. Change-Id: I0822eb7cea51720df6814e42d3f35ff340963061
-
Adrian Grange authored
Change-Id: I32e43474e8651ef2eb181d24860a8f118cfea7bf
-
James Zern authored
vp9_sad32x3, vp9_sad3x32 + remove unnecessary sad include from vp9_findnearmv.c Change-Id: Idef2a89cadc3fec64eff82ba9be60ffff50b3468
-
Dmitry Kovalev authored
Moving foreach_predicted_block_in_plane function to vp9_reconinter.c because there is only one usage. Change-Id: I9852feae43fc3cf809b817fc541d043bc5496209
-
- 20 Aug, 2013 - 11 commits
-
-
Dmitry Kovalev authored
Updating implementation of vp9_get_pred_context_single_ref_p2 using has_second_ref function to make code easier to read. Change-Id: I5ba642712f59861a48aab974e73aa01640d086fe
-
Dmitry Kovalev authored
Change-Id: Ib394ea23f464591dad50b5c65c316701378d06d7
-
hkuang authored
vp9_short_idct10_8x8_add is used to handle the block that only have valid data at top left 4x4 block. All the other datas are 0. So we could cut several unnecessary calculations in order to save instructions. Change-Id: I34fda95e29082b789aded97c2df193991c2d9195
-
Jingning Han authored
Check the minimum rate-distortion cost of regular quantization and all zero coeffs cases in the sub8x8 inter prediction rd loop for luma components. Use this as the cumulative rdcost sent to UV rd estimation. Change-Id: Ia4bc7700437d5e13d7cdad4cf9ae57ab036d3e97
-
Deb Mukherjee authored
Cleans up the switchable filter search logic. Also adds a speed feature - a variance threshold - to disable filter search if source variance is lower than this value. Results: derfraw300 threshold = 16, psnr -0.238%, 4-5% speedup (tested on football) threshold = 32, psnr -0.381%, 8-9% speedup (tested on football) threshold = 64, psnr -0.611%, 12-13% speedup (tested on football) threshold = 96, psnr -0.804%, 16-17% speedup (tested on football) Based on these results, the threshold is chosen as 16 for speed 1, 32 for speed 2, 64 for speed 3 and 96 for speed 4. Change-Id: Ib630d39192773b1983d3d349b97973768e170c04
-
Jim Bankoski authored
The following issue was reported : https://code.google.com/p/webm/issues/detail?id=601&q=jimbankoski&sort=-id&colspec=ID%20Pri%20mstone%20ReleaseBlock%20Type%20Component%20Status%20Owner%20Summary This code makes the choice and code cleaner and removes any question about whether the border needs to be checked. Change-Id: Ia7aecfb3168e340618805bd318499176c2989597
-
Paul Wilkins authored
Changes to code to auto select a partition size range based on data from spatial neighbors. Now looks at the sb_type in each 8x8 block of above and left SB64. The effect on speed 1 is now weaker giving better quality but less speed gain. Now also used in speed 2. Change-Id: Iace33a97d5c3498dd2a9a8a4067351941abcbabc
-
Dmitry Kovalev authored
Removing VP9_FILTER_WEIGHT, VP9_FILTER_SHIFT, BLOCK_WIDTH_HEIGHT constants. Using ROUND_POWER_OF_TWO for rounding. Change-Id: I2e8d6858dcd600a87096138209731137d7decc24
-
Dmitry Kovalev authored
Updating implementation of vp9_get_pred_context_single_ref_p1 using has_second_ref function to make code easier to read. Change-Id: Ie8f60403a7195117ceb2c6c43176ca9a9e70b909
-
Yaowu Xu authored
As the pixel values beyond image border are duplicates of pixels on edge, the change limits the mv search range, any mv beyond the limits no longer produce new/different prediction values as entire block with pixels used for subpel interpolation are outside image border. Change-Id: I4c6fdf06e33c1cef1489f5470ce0fb4e5e01fb79
-
Yaowu Xu authored
For certain partition size, the function poniter may not be intialized at all. The patch prevent the call if the pointer is not set. Change-Id: I78b8c3992b639e8799a16b3c74f0973d07b8b9ac
-
- 19 Aug, 2013 - 2 commits
-
-
Dmitry Kovalev authored
Change-Id: Ib8af21f2e7f603c2fb407e5d15a3bba64b545b49
-
Jingning Han authored
This commit enables early termination in the rate-distortion optimization search loop for chroma components. When the cumulative rd cost is above the current best value, skip the rest per-block transform/quantization/coeff_cost and continue to the next prediction mode. For bus_cif at 2000 kbps, the average run-time goes down from 168546ms -> 164678ms, (2% speed-up) at speed 0 36197ms -> 34465ms, (4% speed-up) at speed 1 Change-Id: I9d3043864126e62bd0166250d66b3170d520b3c0
-