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
Yaowu Xu
014acfa2af
fix integer overflow errors
...
Change-Id: I76f440a917832c02d7a727697b225bac66b99f56
2013-09-19 08:14:26 -07:00
Dmitry Kovalev
72fd127f8c
Removing redundant code from vp9_mcomp.c.
...
Replacing ((1 << MV_MAX_BITS) - 1) with MV_MAX, adding const
qualifiers, reusing computed values.
Change-Id: I7b46d47f6c644b079d9c3478116a9de465a9baec
2013-09-18 13:11:38 +04:00
Scott LaVarnway
ac6093d179
New mode_info_context storage -- undo revert
...
mode_info_context was stored as a grid of MODE_INFO structs.
The grid now constists of pointers to MODE_INFO structs. The
MODE_INFO structs are now stored as a stream (decoder only),
eliminating unnecessary copies and is a little more cache
friendly.
Change-Id: I031d376284c6eb98a38ad5595b797f048a6cfc0d
2013-09-11 13:45:44 -04:00
James Zern
54a03e20dd
Revert "New mode_info_context storage"
...
This reverts commit dae17734ec
Encode crashes, leaks and increases integer overflow errors.
Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
2013-09-09 13:37:01 -07:00
Scott LaVarnway
dae17734ec
New mode_info_context storage
...
mode_info_context was stored as a grid of MODE_INFO structs.
The grid now constists of a pointer to a MODE_INFO struct and
a "in the image" flag. The MODE_INFO structs are now stored
as a stream, eliminating unnecessary copies and is a little
more cache friendly.
For the test clips used, the decoder performance improved
by ~4.3% (1080p) and ~9.7% (720p).
Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p)
and 5.9% (720p).
Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
2013-09-06 12:33:34 -04:00