Dmitry Kovalev
7bca32a6a3
Merge "Changing vp9_full_search_sad{, x3, x8} signatures."
2014-02-25 10:51:17 -08:00
Dmitry Kovalev
55214924ac
Merge "Cleaning up vp9_refining_search_sad() function."
2014-02-25 10:44:19 -08:00
Yunqing Wang
360c80cfb9
Use fast HEX search in real time mode
...
In good quality mode motion search, the best matches are normally
found after searching in a large area. In real time mode, to make
encoding fast, a center-biased fast HEX search is used, which
converges quickly most of the time. A 4-point diamond search is
also carried out as the following refining search, which gives more
precise results, and maintains good motion search quality.
At speed 5, the borg test on rtc set showed an overall PSNR loss of
0.936%. The encoding speed gain is 4% - 5%.
Change-Id: I42cd68bb56a09ca1b86293c99d5f7312225ca7ae
2014-02-18 14:35:16 -08:00
Dmitry Kovalev
35092585d8
Cleaning up vp9_refining_search_sad() function.
...
Change-Id: Ife6131d31882177953a22a69d25adc35940429ed
2014-02-17 14:51:58 +01:00
Dmitry Kovalev
36420009ea
Changing vp9_full_search_sad{, x3, x8} signatures.
...
Passing block MV pointer instead of block index into
vp9_full_search_sad{, x3, x8} functions.
Change-Id: Ica07356633471c2c8f81b583a7aeba85a436bafb
2014-02-17 14:24:57 +01:00
Jim Bankoski
e727bcf7ce
Merge "vp9_mcomp.c visual studio warnings resolved"
2014-02-14 09:08:34 -08:00
Jim Bankoski
6025ec7901
vp9_mcomp.c visual studio warnings resolved
...
Change-Id: I7546cc8db4decbcd094ad76c64385b97666331b0
2014-02-14 06:35:36 -08:00
Dmitry Kovalev
fde1b6d7f2
Using MV instead of int_mv inside vp9_full_pixel_diamond().
...
Change-Id: If33a5a12c4025d9b5ec863dfccea7ee70f800665
2014-02-13 11:23:05 -08:00
Jim Bankoski
d2cd088cb7
Merge "vp9_mcomp.c static analysis issues"
2014-02-13 06:20:16 -08:00
Dmitry Kovalev
50712fcaa9
Adding consts to mv search function arguments.
...
Change-Id: Ie79114bba4f0cea55d9f701e20d2be2017630f3b
2014-02-12 14:28:23 -08:00
Jim Bankoski
f324f0c54e
vp9_mcomp.c static analysis issues
...
Change-Id: I8c0023e3f03297993431e21158ee3821af75f82d
2014-02-12 11:54:47 -08:00
Dmitry Kovalev
dcb48761cb
Cleaning up vp9_full_search_sad_c() function.
...
Change-Id: Ief941ff75c5e25f3288326a162b1bd0c0f17a779
2014-02-11 17:24:22 -08:00
Dmitry Kovalev
c1749e14f6
Adding is_mv_in() function.
...
Change-Id: I9bdb18c5cde386d3caaa2c2846649cfbda609927
2014-02-04 16:58:33 -08:00
Dmitry Kovalev
ae1c298733
Inlinging get_next_chkpts macro in vp9_mcomp.c.
...
Change-Id: I38ca35dccfb9051d08b026d75ba2f3a35adb0259
2014-02-03 14:26:36 -08:00
Dmitry Kovalev
3b3f1d8303
Cleaning up vp9_mcomp.{c, h}.
...
Change-Id: Ib71d9ed3f98e9468ad951bdc24c9ab565216eb38
2014-01-31 18:11:41 -08:00
Dmitry Kovalev
c2ca97caaf
Merge "Cleaning up motion compensation code."
2014-01-31 17:33:40 -08:00
Dmitry Kovalev
abf37f1d6c
Inlining IFMVCV macro.
...
Change-Id: I5173f996612e410d9cd495df9414d194b1ab18f3
2014-01-24 11:13:39 -08:00
Dmitry Kovalev
6c98df29e4
Cleaning up motion compensation code.
...
Change-Id: I74cf028e8c732cd0dbc070326152d3085b824a80
2014-01-23 17:15:30 -08:00
Dmitry Kovalev
5f75fda9e9
Merge "Cleaning up vp9_refining_search_sad() function."
2014-01-22 17:15:22 -08:00
James Zern
eb4cb43397
Merge "Enforce effective motion vector search range"
2014-01-22 16:50:30 -08:00
Jingning Han
20cf22a128
Enforce effective motion vector search range
...
This commit explicitly enforces the effective motion vector range
in the motion search stage. The range needs to be the intersection
of UMV border, effective absolute motion vector value range, and
the target search area.
Change-Id: I1cf7c563e02b1086040dad6c1f4f6be1538635a6
2014-01-21 12:03:18 -08:00
Dmitry Kovalev
575a083bcc
Merge "Replacing macros with inline functions."
2014-01-21 10:17:29 -08:00
Dmitry Kovalev
d8bfe9e24c
Cleaning up vp9_refining_search_sad() function.
...
Change-Id: I660b53da8ebf3049832ce8a10721051c4e0ebb00
2014-01-17 15:20:28 -08:00
Dmitry Kovalev
67246764a2
Replacing macros with inline functions.
...
Change-Id: Ibde8fb45594cd259fc3281d7874de8fc877fd4f2
2014-01-16 18:00:44 -08:00
Dmitry Kovalev
55d0230221
Cleaning up vp9_refining_search_8p_c() function.
...
Change-Id: Icf3b3dd96d7e133a4ad7260cd95288f6217998a6
2014-01-16 16:05:36 -08:00
Dmitry Kovalev
80aae67f44
Making motion search code more compact.
...
Change-Id: I04d6a006eaf2676f2d8d1d96b87f69e081969382
2014-01-13 15:24:06 -08:00
Dmitry Kovalev
2344e3a2e1
Merge "Converting CHECK_POINT macro to inline function."
2014-01-03 18:02:10 -08:00
Dmitry Kovalev
6e8c103620
Merge "Replacing int_mv with MV."
2014-01-03 17:38:28 -08:00
Dmitry Kovalev
513666e78c
Converting CHECK_POINT macro to inline function.
...
Change-Id: I08533d59a78346dac30a7dcbc12146f23ef88bbc
2014-01-03 16:16:28 -08:00
Dmitry Kovalev
ed2fba2a79
Merge "Replacing CHECK_BOUNDS macro with inline check_bounds function."
2014-01-03 15:57:36 -08:00
Dmitry Kovalev
672c355a26
Replacing int_mv with MV.
...
Change-Id: Ifd432fa3741ba47102d298e0b348eb00f5a9ce53
2014-01-03 11:48:07 -08:00
Yunqing Wang
a7248a04b7
Merge "Remove a unused sub-pixel search"
2013-12-27 14:05:38 -08:00
Dmitry Kovalev
987810ad95
Removing vp9_findnearmv.{h, c} files.
...
Moving all code from that files to vp9_mvref_common.{h, c}.
Change-Id: Ibc4afcb8cea6847166ff411130e93611ebe63b20
2013-12-19 17:39:57 -08:00
Yunqing Wang
6ff4f19269
Remove a unused sub-pixel search
...
The original iterative search was replaced by subpel_tree search,
and was not used anymore.
Change-Id: I998b38e1cb0ee359a08b2410d0766dbf183ab071
2013-12-19 11:20:56 -08:00
Dmitry Kovalev
095b03231c
Using MV struct instead of int_mv union in encoder (2).
...
Change-Id: I068345f722a7116e3119927295ad23a28d3066a0
2013-12-13 17:20:40 -08:00
Dmitry Kovalev
25da21b14e
Using MV struct instead of int_mv union in encoder.
...
Change-Id: I8b81a3e4b4fa530a654c28d9c136afa0c1d379fd
2013-12-13 15:24:48 -08:00
Dmitry Kovalev
5556090dd0
Replacing CHECK_BOUNDS macro with inline check_bounds function.
...
Change-Id: I8437113da256088576bf66401186e35125089c03
2013-12-11 15:00:36 -08:00
Jingning Han
9d6e7ce12d
Rename clamp_mv_min_max to set_mv_search_range
...
This function sets the motion search range limit. Rename it to be
more informative.
Change-Id: I2e8e01073dcb99c9bea9c9acd0a61d672d615444
2013-12-11 14:00:08 -08:00
Guillaume Martres
0102f1d5ec
avoid crash when using --best on cpus with SSE3 (but not SSE4) support
...
Change-Id: Ie100114a01b8b4da7248603c40676792cd06b32a
2013-12-10 18:17:10 +01:00
Jingning Han
44627a9677
Clean-ups in diamond_search_sad
...
Use the pre-fetched stride value.
Change-Id: I8d4aaedab7a83a4870be51c110da27e55ca3bc85
2013-12-06 14:25:20 -08:00
Jingning Han
b295092b8f
Full range motion search for regular block sizes
...
Add a full range motion search for regular block sizes. This runs
exhaustive search within the given reference area. This commit further
optimizes the search process by combining 4 points test into one
pipeline, which gives 30% speed-up as compared to run each individual
point at a time.
This full range search serves as a best possible motion search reference.
When replacing the diamond search with full range search, the speed 0
runtime of bus CIF at 2000 kbps goes from 153872ms to 623051ms. The
compression performance compared to speed 0 setting gains 0.585% for
derf set.
Change-Id: Ieef1225216b0b86b4ac4872fa7fb9e18bf2eabb3
2013-12-06 12:24:53 -08:00
Jingning Han
bbe68fbd2a
Constrain encoder motion search range
...
Explicitly constrain the upper limit of motion search range (in the
unit of full pixel) to be [-1023, +1023]. It is intended to control
the effective motion search range for 4K sequences.
Change-Id: I645539c70885eec0f155781f439d97d333336e88
2013-11-18 11:19:45 -08:00
Dmitry Kovalev
2726f383cd
Adding allow_hp as an argument to mv search functions.
...
Making this change in order to move allow_high_precision_mv field
from MACROBLOCKD structure to VP9_COMMON (because it is a frame level
flag).
Change-Id: I1d006ba36d938e0caf4d40fa051e2e38df9c1108
2013-10-17 14:02:04 -07:00
Jim Bankoski
b79b7c354d
cpplint issues resolved in vp9_mcomp.c
...
Change-Id: I2c2f83f4dfa2782fc6b0aa6db3ba2c4e6e423ffa
2013-10-05 16:44:40 -07:00
Dmitry Kovalev
8266da1cd1
Moving from int_mv* to MV* (3).
...
Change-Id: I9795d0937bc07793c13d067281995e0750f694d9
2013-09-25 16:44:19 -07:00
Dmitry Kovalev
b87696ac37
Moving from int_mv* to MV* (2).
...
Updating fractional_mv_step_fp and fractional_mv_step_comp_fp function
types.
Change-Id: I601c4378bc39ac3ffd4e295d9cbd8e1f74829d46
2013-09-24 12:48:12 -07:00
Dmitry Kovalev
30888742f4
Merge "Moving from int_mv to MV."
2013-09-24 12:25:56 -07:00
Yaowu Xu
838eae3961
Correct 3 step search site initialziation
...
39c7b01d accidently reverted the row/col initialization, which broke
mv clamps, which is dependent on the sites for valid motion vector
range. This commit fixed the issue.
Change-Id: Ibcce0226e0360b1ef483fe760b2e33f1af4bf494
2013-09-23 16:11:49 -07:00
Dmitry Kovalev
e51e7a0e8d
Moving from int_mv to MV.
...
Converting vp9_mv_bit_cost, mv_err_cost, and mvsad_err_cost
functions for now.
Change-Id: I60e3cc20daef773c2adf9a18e30bc85b1c2eb211
2013-09-20 13:52:43 +04:00
Dmitry Kovalev
39c7b01d3c
Cleanup in vp9_init3smotion_compensation.
...
Change-Id: Ie47f53e76bc9530475c8c6d24e9b7a5a0189de56
2013-09-20 12:54:14 +04:00