summaryrefslogtreecommitdiff
path: root/vp9
AgeCommit message (Collapse)Author
2013-08-09Bug fix: call set_offsets before rd_auto_partition_rangeScott LaVarnway
The set_offsets call is necessary inorder to set the mode_info_context ptr correctly. Change-Id: I644910cc5bacc50ee9cd78458843274ad8ee636d
2013-08-09Merge "Correct bug in loopfilter initialization"Adrian Grange
2013-08-09Correct bug in loopfilter initializationAdrian Grange
The memset sets 16 bytes rather than the correct size of the final array dimension (MAX_MODE_LF_DELTAS). (In response to bug posted by Manjit Hota to codec-devel and webm-discuss lists) Change-Id: I8980f5aa71ddc9d7ef57c5b4700bc28ddf8651c7
2013-08-09Added lpf level picking using partial frameYaowu Xu
Change-Id: I599ab1bd22b5f3f10d5962c609952abdef8ff67a
2013-08-09renamed vp8_yv12_copy_y to vpx_yv12_copy_yYaowu Xu
Becuase the routine is used by both vp8 and vp9 Change-Id: I2d35b287b5bc2394865d931a27da61f4ce7edeeb
2013-08-09added a speed feature on lpf level pickingYaowu Xu
Change-Id: Id578f8afdeab3702fc8386969f2d832d8f1b5420
2013-08-08General code cleanup.Dmitry Kovalev
Removing redundant parenthesis and curly braces. Combining declarations with initializations. Adding useful intermediate variables instead of recalculating expressions every time. Change-Id: I00106f404afd60bfc189905b0fded881684f941a
2013-08-08Merge "Cleanup inside vp9_reconinter.c."Dmitry Kovalev
2013-08-08Merge "Adds a new subpel motion function"Deb Mukherjee
2013-08-08Merge "Removing unneeded intermediate entropy_nodes_adapt var."Dmitry Kovalev
2013-08-08Removing unneeded intermediate entropy_nodes_adapt var.Dmitry Kovalev
Change-Id: I541a178d997b4541e0e2d4d5b854e2ed6b113c3a
2013-08-08Adds a new subpel motion functionDeb Mukherjee
Adds a new subpel motion estimation function that uses a 2-level tree-structured decision tree to eliminate redundant computations. It searches fewer points than iterative search (which can search the same point multiple times) but has the same quality roughly. This is made the default setting at speeds 0 and 1, while at speed 2 and above only a 1-level search is used. Also includes various cleanups for consistency and redundancy removal. Results: derf: +0.012% psnr stdhd: +0.09% psnr Speedup of about 2-3% Change-Id: Iedde4866f5475586dea0f0ba4cb7428fba24eee9
2013-08-08Moved fast motion search level decision to functionAdrian Grange
Moving this block of code into a function makes the code easier to read and change. Change-Id: If4ede570cce1eab1982b188c4d3e4fd3d4db236e
2013-08-08Simplify & fix potential bug in rd_pick_partitionAdrian Grange
Different partitionings were not being evaluated against best_rd and there were unnecessary calls to RDCOST. This could have resulted in a non-optimal partioning being selected. I simplified the variables used to track the rate, distortion and RD values throughout the function. Change-Id: Ifa7085ee80d824e86791432a5bc6d8fea5a3e313
2013-08-07Merge "Use low precision 32x32fdct for encodemb in speed1"Jingning Han
2013-08-07Cleanup inside vp9_reconinter.c.Dmitry Kovalev
Using block width and block height instead of their logarithms. Using SUBPEL_BITS and SUBPEL_SHIFTS constants instead of magic numbers. Change-Id: I4e10e93c907c8a5e1cb27dfe74d1fcdcc4995448
2013-08-07Merge "Using only one scale function in scale_factors struct."Dmitry Kovalev
2013-08-07Merge "Adding ss_size_lookup table."Dmitry Kovalev
2013-08-07Use low precision 32x32fdct for encodemb in speed1Jingning Han
The low precision 32x32 fdct has all the intermediate steps within 16-bit depth, hence allowing faster SSE2 implementation, at the expense of larger round-trip error. It was used in the rate-distortion optimization search loop only. Using the low precision version, in replace of the high precision one, affects the compression performance by about 0.7% (derf, stdhd) at speed 0. For speed 1, it makes derf set down by only 0.017%. Change-Id: I4e7d18fac5bea5317b91c8e7dabae143bc6b5c8b
2013-08-07Adding ss_size_lookup table.Dmitry Kovalev
Removing the old one bsize_from_dim_lookup. Now we have a way to determine block size for plane using its subsampling values (ss_size_lookup). And then we can find the number of pixels in the block (num_pels_log2_lookup). Change-Id: I6fc981da2ae093de81741d3d78eaefed11015db9
2013-08-07Merge "Removing NMS_STATS defines."Dmitry Kovalev
2013-08-06Neon version of vp9_short_idct4x4_add.Christian Duvivier
Change-Id: Idec4cae0cb9b3a29835fd2750d354c1393d47aa4
2013-08-06Merge "Clean ups of the subpel search functions"Deb Mukherjee
2013-08-06Clean ups of the subpel search functionsDeb Mukherjee
Removes some unused code and speed features, and organizes the interfaces for fractional mv step functions for use in new speed features to come. In the process a new speed feature - number of iterations per step during the subpel search - is exposed. No change when this parameter is set as the original value of 3. Results: subpel_iters_per_step = 3: baseline subpel_iters_per_step = 2: psnr -0.067%, 1% speedup subpel_iters_per_step = 1: psnr -0.331%, 3-4% speedup Change-Id: I2eba8a21f6461be8caf56af04a5337257a5693a8
2013-08-06Merge "Motion vector code cleanup."Dmitry Kovalev
2013-08-06Using only one scale function in scale_factors struct.Dmitry Kovalev
Functions scale_mv_q4 and scale_mv_q3_to_q4 were almost identical except q3->q4 conversion in scale_mv_q3_to_q4. Now q3->q4 conversion happens directly in vp9_build_inter_predictor. Also adding useful constants: SUBPEL_BITS and SUBPEL_MASK. Change-Id: Ia0a6ad2ac07c45fdf95a5139ece6286c035e9639
2013-08-06Merge "Place holder for high-precision 32x32 fdct"Jingning Han
2013-08-06variance x86inc guardsJim Bankoski
also fixed bug in sad calcs Change-Id: I6571fcbe37556c16ae32be66dc0fd879852aac1d
2013-08-06sse3 intrapred x86inc protectedJim Bankoski
Change-Id: I4a3c83119cdf8a205920034c8019d855d5504605
2013-08-06Merge "Flexible support for various pattern searches"Deb Mukherjee
2013-08-06sad + miscellaneous updatesJim Bankoski
Enable use_x86inc as a commandline option. Fix Bug with sse2 when x86inc is disabled. Adds Sad asm protection to x86inc protection Change-Id: Iee0f9dd235ea10e8ace512eb362ba9bebe8c9df6
2013-08-06Merge "Inlining vp9_get_pred_probs_switchable_interp function."Dmitry Kovalev
2013-08-06Flexible support for various pattern searchesDeb Mukherjee
Adds a few pattern searches to achieve various tradeoffs between motion estimation complexity and performance. The search framework is unified across these searches so that a common pattern search function is used for all. Besides it will be easier to experiment with various patterns or combinations thereof at different scales in the future. The new pattern search is multi-scale and is capable of using different patterns at different scales. The new hex search uses 8 points at the smallest scale and 6 points at other scales. Two other pattern searches - big-diamond and square are also added. Big diamond uses 4 points at the smallest scale and 8 points in diamond shape at the larger scales. Square is very similar conceptually to the default n-step search but is somewhat faster since it keeps only one survivor across all scales. Psnr/speed-up results on derf300: hex: -1.6% psnr%, 6-8% speed-up big-diamond: -0.96% psnr, 4-5% speedup square: -0.93% psnr, 4-5% speedup Change-Id: I02a7ef5193f762601e0994e2c99399a3535a43d2
2013-08-06Place holder for high-precision 32x32 fdctJingning Han
Resolve compile warnings on re-define FDCT32x32_2D template. Change-Id: Idb3a54ef8d2710ce7245b726379a0e5c875f5cad
2013-08-06Inlining vp9_get_pred_probs_switchable_interp function.Dmitry Kovalev
There was no benefit having this function. For example, inside read_switchable_filter_type switchable filter context was calculated twice. Change-Id: I79cd5bf95cbc0f6d8bf91a2e32289e01b18dcff1
2013-08-06Merge "Move fdct32x32 SSE2 implementation in separate file."Jingning Han
2013-08-06Merge "intrapred x86inc guards"Jim Bankoski
2013-08-06Motion vector code cleanup.Dmitry Kovalev
Converting arguments of two functions (clamp_mv_ref, lower_mv_precision) from int_mv* to MV*. Rewriting is_inside function to make it much shorter. Change-Id: Ie4c4cf3eccd46707c7df099ec21fb1b61c72fc7a
2013-08-06Merge "Finally removing all old block size constants."Dmitry Kovalev
2013-08-06Merge "Changing the order switchable filter enum constants."Dmitry Kovalev
2013-08-06Merge "Removing unused functions."Dmitry Kovalev
2013-08-06Merge "Add variance based mode/skipping"Deb Mukherjee
2013-08-06Move fdct32x32 SSE2 implementation in separate file.Christian Duvivier
This is in preparation for the SSE2 version of the high-precision 32x32 forward DCT which will share a lot of code with the existing low precision version used for rate-distortion search. Change-Id: I7084b6bdfb480b1fabb8493fb14e3f7fcc7888c0
2013-08-06intrapred x86inc guardsJim Bankoski
Change-Id: If0399d8e11f4ebe75a5c91abb8d6a52a7709065b
2013-08-06block error / x86inc modsJim Bankoski
Change-Id: Icb607745634e10b9bac5019d06661ece09fcdb40
2013-08-05reworked config for use_x86_incJim Bankoski
Support enabling it or disabling it. Moved read out to configure.sh so that its done once instead of in make and in config. Change-Id: I73a9190cf31de9f03e8a577f478fa522f8c01c8b
2013-08-05Merge changes I082959ab,Ib6932640James Zern
* changes: vp9/decoder: threaded row-based loop filter vp9/decoder: add thread worker
2013-08-05Finally removing all old block size constants.Dmitry Kovalev
Change-Id: I3aae21e88b876d53ecc955260479980ffe04ad8d
2013-08-05fixed script problem with config_force_x86_incJim Bankoski
Change-Id: I226e5094d216b09dc47fa5511a66e2d314608000
2013-08-05Merge "Begin to restrict x86inc.asm usage"Jim Bankoski