Dmitry Kovalev
005fc6970b
Finally removing "short" from transform names.
...
Change-Id: I5259b68dc1bcceb153e3ffe638a79a59a3019e9d
2014-02-06 11:54:15 -08:00
Dmitry Kovalev
4d8ebc9ec4
Merge "Adding is_mv_in() function."
2014-02-06 11:06:00 -08:00
Marco Paniconi
4864ab21b0
Layer based rate control for CBR mode.
...
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.
Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).
Updated datarate unittest with tests for temporal layer rate-targeting.
Change-Id: I8900a854288b9354d9c697cfeb0243a9fd6790b1
2014-02-06 09:24:45 -08:00
Dmitry Kovalev
b3ea534155
Merge "Removing redundant is_inter_mode() call."
2014-02-05 18:39:08 -08:00
Dmitry Kovalev
5eda0eae6b
Merge "Renaming vp9_sad_c.c to vp9_sad.c."
2014-02-05 18:37:20 -08:00
Dmitry Kovalev
1976dd616d
Moving twopass_rc and FIRSTPASS_STATS to vp9_firstpass.h.
...
Change-Id: I5c942ee1a04eb0d7f2ae7ba8ea8ce47e666550c5
2014-02-05 18:28:28 -08:00
Dmitry Kovalev
a1cfcc0af8
Merge "Cleaning up encode_frame_to_data_rate()."
2014-02-05 18:03:56 -08:00
Dmitry Kovalev
5f5c262766
Merge "Cleaning up recode_loop_test()."
2014-02-05 17:36:18 -08:00
Dmitry Kovalev
1811bc1aa0
Merge "Cleaning up vp9_firstpass.c."
2014-02-05 17:35:56 -08:00
Dmitry Kovalev
6432ae4902
Merge "Clamping active_{best, worst}_quality values."
2014-02-05 15:53:00 -08:00
Dmitry Kovalev
66188f3a78
Cleaning up recode_loop_test().
...
Change-Id: Iaa6d01221a1f82ce9b500c85e186ab53b92aae9a
2014-02-05 15:46:11 -08:00
Dmitry Kovalev
2f05847dbc
Cleaning up encode_frame_to_data_rate().
...
Change-Id: Ib76a31e68aef5cb9eeba57dc58d9c30c9c98ed95
2014-02-05 15:35:37 -08:00
Dmitry Kovalev
dce41c013b
Cleaning up vp9_firstpass.c.
...
Change-Id: I111d6d1ea5ee641780abc096341369a37627aaae
2014-02-05 15:11:12 -08:00
Dmitry Kovalev
77f7f6a8e8
Merge "Removing unused SPEEDSTATS."
2014-02-05 14:44:12 -08:00
Dmitry Kovalev
8b53947a42
Renaming vp9_sad_c.c to vp9_sad.c.
...
Change-Id: I0beb01b0209cf4ae849b4c67d72107b631f46c0d
2014-02-05 11:31:15 -08:00
Dmitry Kovalev
faeb21dd70
Removing unused SPEEDSTATS.
...
Change-Id: Ia41007206ce437852dd1b532ee8e233d889e0040
2014-02-05 11:23:13 -08:00
Deb Mukherjee
40e63d4b51
One-pass rate control cleanups/fixes/refactoring
...
Inlcudes a number cleanups:
1. Moves the one-pass pre-encode parameter setting functions
to vp9_ratectrl.c
2. Deprecates per_frame_bandwidth in RATE_CONTROL structure
3. Removes target_bandwidth in cpi structure since it is not used.
4. Various renaming of functions
There is no bit-stream change in 2-pass, one-pass cbr and one-pass
vbr modes.
Change-Id: Ifd9916bf4d485b7d04c5f52044ffe6703254ccbd
2014-02-05 11:22:15 -08:00
Dmitry Kovalev
9f528c5dbd
Removing redundant is_inter_mode() call.
...
Block type was already detected by is_inter_block() call.
Change-Id: I7923ce11b6a0071ce9df8c744a78c816651a15dc
2014-02-05 11:04:53 -08:00
Yaowu Xu
0dc535ecbb
Merge "Adjust speed feature for --rt"
2014-02-04 18:20:57 -08:00
Dmitry Kovalev
0c7e1a950c
Merge "Removing DBG_PRNT_SEGMAP."
2014-02-04 17:52:16 -08:00
Dmitry Kovalev
c1749e14f6
Adding is_mv_in() function.
...
Change-Id: I9bdb18c5cde386d3caaa2c2846649cfbda609927
2014-02-04 16:58:33 -08:00
Dmitry Kovalev
8d7cd8e75c
Merge "Removing unused estimate_cq() function."
2014-02-04 16:57:57 -08:00
Dmitry Kovalev
96cabf8de1
Merge "Moving MBGRAPH_{MB, FRAME}_STATS structs to vp9_mbgraph.h."
2014-02-04 16:53:55 -08:00
Dmitry Kovalev
041104a965
Merge "Renaming vp9_variance_c.c to vp9_variance.c."
2014-02-04 16:53:27 -08:00
Dmitry Kovalev
fce6a6a346
Merge "Replacing int_mv with MV."
2014-02-04 16:53:14 -08:00
Dmitry Kovalev
4cbe8ec765
Merge "Inlinging get_next_chkpts macro in vp9_mcomp.c."
2014-02-04 16:52:47 -08:00
Dmitry Kovalev
2b3b29332a
Merge "Removing SECTIONBITS_OUTPUT."
2014-02-04 16:52:12 -08:00
Dmitry Kovalev
b9fea167f9
Removing DBG_PRNT_SEGMAP.
...
Change-Id: I71d85e3455545960938e525ae8aa0a667e1db94c
2014-02-04 16:33:03 -08:00
Dmitry Kovalev
9d6d35c5ef
Renaming vp9_variance_c.c to vp9_variance.c.
...
Change-Id: I7b29cb18ad36d79e1c6329c7de88496059f49db4
2014-02-04 14:49:43 -08:00
Dmitry Kovalev
e829487371
Removing unused estimate_cq() function.
...
Change-Id: If3a1af1a54f3a3c0d9c966fdc0721981070c7f28
2014-02-04 13:11:25 -08:00
Deb Mukherjee
35ee7f5f4b
One-pass rate control fixes and cleanups
...
Fixes rate control partially in one-pass non-cbr case to achieve a
bitrate close to the one desired. Previous version was way off at
the high bitrate end.
Also includes several one-pass rate control cleanups and refactoring.
On derfraw300, one-pass encoding is now 19% off from two-pass speed
0 encoding, down from 35%.
Change-Id: I6f0dcdb7f8aa85a7e7cd3a3155d4f9d2a4d2f4f4
2014-02-04 10:51:27 -08:00
James Zern
0669cd57c3
Merge "vp9/encoder: fix function prototypes"
2014-02-03 23:09:26 -08:00
Yaowu Xu
084c49ac79
Adjust speed feature for --rt
...
Moved a few features with low impact on compression form -5 to -4 and
increased adaptive_rd_thresh for -5.
Change-Id: Ib1b748168cc6ed7684ae4818499f3a536ae76253
2014-02-03 18:13:25 -08:00
Dmitry Kovalev
9fca1ce9c3
Replacing int_mv with MV.
...
Change-Id: I36b8b419be92171857e77a881da066424ff47af5
2014-02-03 17:30:59 -08:00
Dmitry Kovalev
3ffb204360
Merge "Removing ENC_DEBUG."
2014-02-03 17:11:52 -08:00
Dmitry Kovalev
220b8f8644
Encoder quantization cleanup.
...
Change-Id: I633205c95f0e81ce0589580501d0be4425a3cb8e
2014-02-03 14:57:28 -08:00
Yongzhe Wang
513faceaed
Build fix with config internal stats
...
Fixes a build issue when internal stats is enabled
Change-Id: I822cc60274e34b5f29ccbaa1f986fb9da6a8de4b
2014-02-03 14:35:48 -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
a2baab8b85
Moving MBGRAPH_{MB, FRAME}_STATS structs to vp9_mbgraph.h.
...
Change-Id: I424c79735a7f3bbf6bf9c1391ff53aa78abae624
2014-02-03 12:35:06 -08:00
Alex Converse
5470e0cfda
Merge "Propgate constants through subexp routines."
2014-02-03 12:29:52 -08:00
Marco Paniconi
5437474c54
Merge "Revert "Layer based rate control for CBR mode.""
2014-02-03 12:28:47 -08:00
Marco Paniconi
7ec838edc4
Revert "Layer based rate control for CBR mode."
...
This reverts commit 6be2b750b8
Change-Id: Ic52acd98b37c3ba49d4999b463389eb564f49c4b
2014-02-03 12:28:32 -08:00
Alex Converse
41d3c989fd
Propgate constants through subexp routines.
...
This avoids calls to get_unsigned_bits() with constants and
replaces hard to trace loops with simpler structures.
Change-Id: Ic1afc5a17d7df5bcfc85b76efda316b0bf118467
2014-02-03 11:55:46 -08:00
Dmitry Kovalev
f7c17b89f0
Merge "Cleaning up vp9_mcomp.{c, h}."
2014-02-03 10:53:21 -08:00
Marco Paniconi
6be2b750b8
Layer based rate control for CBR mode.
...
This patch adds a buffer-based rate control for temporal layers,
under CBR mode.
Added vpx_temporal_scalable_patters.c encoder for testing temporal
layers, for both vp9 and vp8 (replaces the old vp8_scalable_patterns).
Updated datarate unittest with tests for temporal layer rate-targeting.
Change-Id: I9cb6cce2494390ae6096ee17774af7fb9308bde7
2014-02-02 14:30:43 -08:00
James Zern
ef951d1919
vp9/encoder: fix function prototypes
...
silences warnings about declarations not matching prototype
Change-Id: I30b9a24f78ebe3b9cc2bbfcd3a7363ba7c328e4d
2014-01-31 20:45:36 -08:00
Jim Bankoski
37e5325b9f
Merge "static function convert to inline or global vp9_blockd.h"
2014-01-31 20:16:37 -08:00
Yaowu Xu
1c3fc43771
Merge "Set proper rtc interp_filter at block level"
2014-01-31 19:59:32 -08:00
Adrian Grange
61142301ac
Merge "Typo & comment corrections"
2014-01-31 19:51:44 -08:00
Jim Bankoski
9dec7712ab
static function convert to inline or global vp9_blockd.h
...
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
2014-01-31 19:50:40 -08:00
Yunqing Wang
7c6a49bada
Merge "Rename a loopfilter parameter"
2014-01-31 18:33:33 -08:00
Dmitry Kovalev
f1761a74cd
Merge "Cleaning up vp9_get_second_pass_params() function."
2014-01-31 18:15:33 -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
1ee4916794
Cleaning up vp9_get_second_pass_params() function.
...
Change-Id: Ie7b295190d8def447408e575ea0f3fa3c7eb7dd2
2014-01-31 16:49:33 -08:00
Yaowu Xu
f99eb936a4
Set proper rtc interp_filter at block level
...
Based on frame level settings.
Change-Id: I922c09c195ab055585eaa4f544c51aceb1203a7a
2014-01-31 16:32:19 -08:00
Yunqing Wang
11a9366e3b
Rename a loopfilter parameter
...
As pointed out by Dmitry and James, "partial" is a Microsoft-
specific c++ keyword, and it is renamed.
Change-Id: Ia0fc11ceb89e54b3195287f89f7e26edbbe9beb8
2014-01-31 16:30:04 -08:00
Jim Bankoski
5ccd193219
Merge "bsize problem 360p"
2014-01-31 16:21:13 -08:00
Adrian Grange
908482cb3a
Typo & comment corrections
...
Change-Id: I64569afe61a2679afdd263d3e226a89b9f73cc61
2014-01-31 16:02:48 -08:00
Dmitry Kovalev
88340b173b
Merge "Combining fb_idx_ref_cnt[] and yv12_fb[] arrays."
2014-01-31 15:55:04 -08:00
Dmitry Kovalev
a8a2f22958
Merge "Renaming "mbskip" to "skip"."
2014-01-31 15:52:35 -08:00
Yaowu Xu
d009b06ebf
Merge "Only allow interp_filter change in SWITCHABLE mode"
2014-01-31 15:44:00 -08:00
Jim Bankoski
1833028681
bsize problem 360p
...
Fixes an assert that crashed for 360p..
Change-Id: I2faf15c93cbdb0e62a27a3b663f0d09ba62774a8
2014-01-31 15:14:02 -08:00
Yaowu Xu
538b1c6d52
Only allow interp_filter change in SWITCHABLE mode
...
This commit added a logic to prevent the inter_filter type from being
changed if the default interp_filter mode is not switchable. Also, it
sets the default interp_filter to BILINEAR at very and super fast rtc
encoding modes
Change-Id: Ic41e6d31de29795a4ce536ec79afb01cab6daad3
2014-01-31 15:10:08 -08:00
Yaowu Xu
dc9af3b509
fix IOCs
...
Left shift of negative values caused IOC warnings.
Change-Id: I6f41b020ca0ff51f7861719d41393e9460b75d4e
2014-01-31 15:07:51 -08:00
Yaowu Xu
6a4e2ddabc
Properly merge two different real time modes
...
--rt --cpu-used=-5 uses the progressive rtc mode
--rt --cpu-used=-6 uses the new super fast rtc mode
Change-Id: Id6469ca996100cdf794a0e42d76430161f22f976
2014-01-31 15:07:51 -08:00
Alex Converse
e78c174e54
Cleanup block_rd_txfm.
...
* Avoid unnecessary type erasure
* Prune unused/duplicate fields from struct rdcost_block_args
* Make struct rdcost_block_args a local
Change-Id: I4f1fd4837ccd028bbfe727191ee8d69f0463b7e5
2014-01-31 12:13:18 -08:00
Adrian Grange
42bc14e619
Merge "Add constant to represent minimum KF boost"
2014-01-31 11:10:04 -08:00
Adrian Grange
64e2597465
Disable update of last_show_frame for existing frame
...
When showing a previously decoded frame, i.e. when
show_existing_frame=1, the update of the
last_show_frame flag must be disabled.
This is to ensure that the last_show_frame flag
reflects the state of the flag for the immediately
previously decoded frame rather then the value that
was forced to ensure that a previously decoded frame
would be displayed.
This patch also adds a test vector to verify that the
display_existing_frame flag works as expected. Code
for generating the test vector can be found in this
patch:
https://gerrit.chromium.org/gerrit/#/c/68581/
(Bug originally reported by Alexander Voronov
<ru.xalba@gmail.com>).
Change-Id: I731d288fba02088959f7fcc87707137fffc6acf5
2014-01-31 08:55:01 -08:00
Jim Bankoski
da6b18622f
remove confusing compressor_speed
...
use mode instead
Change-Id: I419d7a2dc4b0714ca6ff723c5e824521c150c460
2014-01-31 07:55:19 -08:00
Adrian Grange
284e793d5a
Add constant to represent minimum KF boost
...
Added a constant to represent the minimum KF boost
rather than using the magic number 2000 in the code.
Change-Id: I9428b61f47d26312caff81c6f9ae8587df004791
2014-01-31 07:52:09 -08:00
Yaowu Xu
6f954c7b5c
Merge "Replace inline with INLINE"
2014-01-30 12:05:09 -08:00
Yaowu Xu
5ebed3e861
Replace inline with INLINE
...
So x86_64-win64-vs11 can build successfully.
Change-Id: If354c2ea3921fac8c9b413ed39223e70bc20c535
2014-01-30 11:48:16 -08:00
Alex Converse
54ba75a5ee
Merge "Enforce the use of profile 1 for non-420 content."
2014-01-30 11:01:53 -08:00
Yaowu Xu
c0856b98cc
Merge "Fixing out of bounds access in frame_refs[] array."
2014-01-30 09:34:18 -08:00
Yaowu Xu
4c0a623124
Fix some automerge artifacts
...
Some changes in 1ca1186
were mistakenly reverted by a later merge,
this commit re-instated the chanages from values to enums.
Change-Id: Ia6b01c31da584a1f612996e6432612c1295b9eaf
2014-01-30 09:01:09 -08:00
Yaowu Xu
6f81942f0e
Fix a build issue for --enable-intern-stats
...
Change-Id: Iea7c9fa0726dbf9792eea79e6a05eb8a3c718d45
2014-01-30 08:20:08 -08:00
Dmitry Kovalev
1bd69ac57f
Fixing out of bounds access in frame_refs[] array.
...
Change-Id: I08f45573e0b2195c09fb6aecacb4c57431a711ea
2014-01-29 22:02:24 -08:00
Yaowu Xu
96dc80da61
Merge "create super fast rtc mode"
2014-01-29 16:36:20 -08:00
Yaowu Xu
08b912b4d1
Merge "Add a strict mode for auto_min_max_partition_size feature"
2014-01-29 16:36:06 -08:00
Yaowu Xu
1ca1186529
Add a strict mode for auto_min_max_partition_size feature
...
In this new mode, the size range is strictly determined by the min
and max partition size in neighborhood blocks.
Niklas720 encoding time at cpu-used -5 goes from 56250ms to 50676ms,
a 10% reduction.
Change-Id: I316b0e2ac967ff3fad57b28d69c0ec80b7d8b34e
2014-01-29 14:51:51 -08:00
Dmitry Kovalev
b107f2c470
Renaming "mbskip" to "skip".
...
Change-Id: I27a30b43eae026a77f92958e2238d02d9cdf7832
2014-01-29 14:48:42 -08:00
Dmitry Kovalev
a8285de7a8
Removing SECTIONBITS_OUTPUT.
...
This code seems to be unmaintaned for a long time (e.g. because of __int64
type usage).
Change-Id: I35fd60d985032fe824f6fd6266910378adcca519
2014-01-29 14:15:34 -08:00
Dmitry Kovalev
afc8f43448
Merge "Moving RATE_CONTROL struct to vp9_ratectrl.h."
2014-01-29 14:02:26 -08:00
Dmitry Kovalev
0ac4e139d4
Merge "Removing ONEPASS_FRAMESTATS struct."
2014-01-29 14:00:25 -08:00
Deb Mukherjee
56200336d1
Merge "Enables alt-ref frames in one pass mode"
2014-01-29 13:37:30 -08:00
Dmitry Kovalev
70cde0af3d
Removing ENC_DEBUG.
...
Change-Id: I101017621003314f000a454725ea13fc9db43177
2014-01-29 12:58:57 -08:00
Dmitry Kovalev
5670f1e2a8
Merge "Finally removing vp9_setup_interp_filters() function."
2014-01-29 12:54:21 -08:00
Dmitry Kovalev
6332063475
Combining fb_idx_ref_cnt[] and yv12_fb[] arrays.
...
Adding new RefCntBuffer struct which contains reference counter and image
buffer.
Change-Id: I71c1f532faa13442c32c43fc03ec45b6f88fb844
2014-01-29 12:48:01 -08:00
Dmitry Kovalev
b00eb5c464
Finally removing vp9_setup_interp_filters() function.
...
Change-Id: If446225afbb49f6033c2a4516a37c377de6f70f7
2014-01-29 11:29:34 -08:00
Dmitry Kovalev
b496d141af
Cleaning up vp9_firstpass.c.
...
Change-Id: Ic2ff6405f01fd43d07c5ee3b5e374909401115cc
2014-01-29 11:26:09 -08:00
Deb Mukherjee
50bf8fd4f5
Enables alt-ref frames in one pass mode
...
Includes a few fixes and clean-ups that adds the ability
to use alt-ref frames in one-pass mode.
Whether alt-refs are actually used or not is controlled by a
macro USE_ALTREF_FOR_ONE_PASS in vp9_firstpass.c.
This first cut seems to improve derf by 15+% in 1-pass mode.
But further experiments with parameters are underway.
Change-Id: I78254421435478003367c788c7930d2dc4ee2816
2014-01-29 11:04:52 -08:00
Jim Bankoski
ea8aaf15b5
create super fast rtc mode
...
This patch only works if the video is a width and height that are both
a multiple of 32.. It sets every partition to 16x16, and does INTRADC
only on the first frame and ZEROMV on every other frame. It always does
does the largest possible transform, and loop filter level is set to 4.
Was ~20% faster than speed -5 of vp8
Now 20% slower but adds motion search ( every block ), nearest, near
and zeromv
The SVC test was changed because - while this realtime mode produces
bad quality albeit quickly, it isn't obeying all the rules it should
about which frames are available.
Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
2014-01-29 08:39:39 -08:00
Paul Wilkins
c382136122
Trap divide by 0.
...
Trap divide by 0 that could occur with a 0 rate target
in aq mode COMPLEXITY_AQ.
Change-Id: I034514f512b2a0db470ae8d37ea395278bf473cf
2014-01-29 14:59:04 +00:00
Jim Bankoski
d9201cb109
Merge "Reintroduce modelling for some speeds"
2014-01-28 15:12:03 -08:00
Jim Bankoski
79af185891
Reintroduce modelling for some speeds
...
Change-Id: Ia8fa3961eec34545465018281dc022bc6f73869a
2014-01-28 13:51:06 -08:00
Dmitry Kovalev
45d99257c9
Moving RATE_CONTROL struct to vp9_ratectrl.h.
...
Change-Id: I0c286e3d68a4a4ecf6df02e6fd9990327b0ceb22
2014-01-28 12:57:49 -08:00
Dmitry Kovalev
214d9bb03a
Removing ONEPASS_FRAMESTATS struct.
...
It seems we don't use it and not going to.
Change-Id: Ie76cd04dafc79b0a5911f8957d4253ca2d787f0c
2014-01-28 12:48:19 -08:00
Dmitry Kovalev
b098c04290
Merge "Decoupling set_ref_ptrs() and vp9_setup_interp_filters()."
2014-01-28 10:37:58 -08:00
Dmitry Kovalev
4ce35d8f2d
Merge "Removing _1d suffix from transform names."
2014-01-28 10:37:26 -08:00
Yaowu Xu
1fecc5bd2e
Merge "Added a speed feature"
2014-01-28 10:28:54 -08:00
Dmitry Kovalev
ff41764920
Removing _1d suffix from transform names.
...
It is enough to specify (e.g.) idct16, it is obviously different from
idct16x16.
Change-Id: I6b408a37a945de3162429380b59a775b03b95db0
2014-01-27 16:15:36 -08:00
Dmitry Kovalev
e5b31a1d8c
Decoupling set_ref_ptrs() and vp9_setup_interp_filters().
...
Change-Id: I8d17867a4772554cbba2bd113cc5b4c99d50146d
2014-01-27 16:00:20 -08:00
Dmitry Kovalev
aaa43ed383
Clamping active_{best, worst}_quality values.
...
Change-Id: If370f83080b403e417716d1edad58fdaa2b90170
2014-01-27 12:58:31 -08:00
Dmitry Kovalev
1c96e3985e
Merge "Adding get_bsize() function to vp9_firstpass.c."
2014-01-27 11:46:41 -08:00
Alex Converse
321f0ee272
Enforce the use of profile 1 for non-420 content.
...
Change-Id: I297954b16bce9e23931331520eadfb47540ff660
2014-01-27 11:23:08 -08:00
Dmitry Kovalev
b2f0ae65c7
Merge "Removing subpix_fn_table struct."
2014-01-27 10:42:42 -08:00
Alex Converse
f01855b0c7
Merge "Cache loop filter errors."
2014-01-27 10:25:35 -08:00
Alex Converse
11786b04e2
Merge "Refactor loop filter level search."
2014-01-27 10:25:12 -08:00
Deb Mukherjee
1a8394f7f3
Multiple resize filters
...
Adds multiple filters in the 0.5-1.0 range in the last stage
of the resize functions to prevent over-smoothing/aliasing
Change-Id: I1a615adb16f0df5095790945c94b28b4d6a6fc48
2014-01-25 09:39:48 -08:00
Dmitry Kovalev
b93fcec3b7
Adding get_bsize() function to vp9_firstpass.c.
...
Change-Id: I31373ad860eb554eb3b03e877e8fba580dc3de07
2014-01-24 18:10:02 -08:00
Alex Converse
c0214e7155
Cache loop filter errors.
...
This avoids fitlering a frame multiple times at the same level.
Change-Id: I1fd54dd7ea257d16da8569f48036b8fad3a3ed61
2014-01-24 17:08:25 -08:00
Alex Converse
8c2ae2d5df
Refactor loop filter level search.
...
Factor out the code that tries filtering a frame at a given level.
Change-Id: Ia04507e3ce6b1ad6ae7d05a9d88222fd319f44b7
2014-01-24 17:08:24 -08:00
Dmitry Kovalev
8691565441
Removing subpix_fn_table struct.
...
We don't use different filter kernels for x and y, it is always one kernel
for both directions.
Change-Id: Iefcbb02ec74bf46ea20d9dca672a3efd5d631517
2014-01-24 17:06:26 -08:00
Dmitry Kovalev
f9f936b82f
Merge "Renaming INTERPOLATION_TYPE to INTERP_FILTER."
2014-01-24 16:52:10 -08:00
Yaowu Xu
a0b9b050b8
Added a speed feature
...
That force the stop of subpel search possibly at full/half/quater pel
stages
Change-Id: Ie50c500417bd78e1a53e6620bd4c2b85f63d9c67
2014-01-24 16:40:36 -08:00
Yaowu Xu
7adfa9f4cb
Merge "change to avoid IOC"
2014-01-24 16:05:13 -08:00
Dmitry Kovalev
4264c93844
Renaming INTERPOLATION_TYPE to INTERP_FILTER.
...
Corresponding renames:
subpel_kernel => interp_kernel
vp9_get_filter_kernel() => vp9_get_interp_kernel()
pred_filter_type => pred_interp_filter
adaptive_pred_filter_type => adaptive_pred_interp_filter
mcomp_filter_type => interp_filter
read_interp_filter_type() => read_interp_filter()
write_interp_filter_type() => write_interp_filter()
fix_mcomp_filter_type() => fix_interp_filter()
Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
2014-01-24 15:57:28 -08:00
Dmitry Kovalev
03eb63c114
Merge "Removing MODE_STATS."
2014-01-24 15:53:12 -08:00
Alex Converse
aed0d8c463
Merge "Add some consts to vp9_calc_ss_err()."
2014-01-24 15:41:01 -08:00
Dmitry Kovalev
29c1af295f
Merge "Removing unused inter_mode_counts field from CODING_CONTEXT."
2014-01-24 14:47:59 -08:00
Alex Converse
ea283a6272
Add some consts to vp9_calc_ss_err().
...
Also change its wrongly named dest parameter to reference.
Change-Id: Ide142dead31c9ccda1f09a48b221284369783fb7
2014-01-24 14:26:02 -08:00
Alex Converse
6a457ef794
Merge "Add a method to estimate loop filter level from quantizer and frame type."
2014-01-24 14:10:14 -08:00
Dmitry Kovalev
3a05782c6f
Merge "Inlining IFMVCV macro."
2014-01-24 13:56:16 -08:00
Yaowu Xu
6d2307b2dd
Merge "Fixed integer overflow for large input video"
2014-01-24 13:44:05 -08:00
Dmitry Kovalev
f7ddbeba4a
Removing unused inter_mode_counts field from CODING_CONTEXT.
...
Change-Id: I24ff8ab3d2c807906aa86974bcb4c540256206de
2014-01-24 13:31:57 -08:00
Yaowu Xu
8971338c6b
change to avoid IOC
...
SSE for a 64x64 block with 3 planes can go as high as 3*2^28. So left
shift by 4 may overflow 32 bit int.
Change-Id: I63c84aa56894788bb987299badabbd7cc6fd0be6
2014-01-24 12:49:44 -08:00
Dmitry Kovalev
d79b0706e9
Merge "Cleaning up vp9_ratectl.c file."
2014-01-24 12:29:50 -08:00
Alex Converse
4ce8929b9e
Add a method to estimate loop filter level from quantizer and frame type.
...
Use this method with rt at speed -5.
Change-Id: If3bd6fad4c05ddde72131442dad191e4145047e7
2014-01-24 11:44:10 -08:00
Yaowu Xu
e5034f65e5
Fixed integer overflow for large input video
...
The sum of squared mv components can go beyond int range for large
input resolution. This commit changed the type to int64 to avoid
overflow.
Change-Id: Ib21ea2817845cea1435f893064e6417c79c5bc64
2014-01-24 11:34:41 -08:00
Frank Galligan
c6d537155c
Merge "Revert external frame buffer code."
2014-01-24 11:31:23 -08:00
Dmitry Kovalev
9c0fbd573f
Merge "Setup pre[0] buffer before calls to {first_pass, zz}_motion_search."
2014-01-24 11:15:01 -08:00
Dmitry Kovalev
4bc1877b71
Cleaning up vp9_ratectl.c file.
...
Change-Id: I8cfa5d5eb2c1bbacd9b604cc5dc0a2cd2e5cebb8
2014-01-24 11:14:05 -08:00
Dmitry Kovalev
abf37f1d6c
Inlining IFMVCV macro.
...
Change-Id: I5173f996612e410d9cd495df9414d194b1ab18f3
2014-01-24 11:13:39 -08:00
James Zern
26c88ec14e
Merge changes I826655a7,I5164df72,Iba9b198c,Ide9a6846,I4f51ce85,I0e6aa00f,Ic334da9a,I252f5f8a,I7865db2d,I13b434b1
...
* changes:
test/: remove unnecessary extern "C"s
top-level: add extern "C" to headers
vpx_ports: add extern "C" to headers
vpx: add extern "C" to headers
vp9/encoder: add extern "C" to headers
vp9/decoder: add extern "C" to headers
vp9/common: add extern "C" to headers
vp8/encoder: add extern "C" to headers
vp8/decoder: add extern "C" to headers
vp8/common: add extern "C" to headers
2014-01-24 10:47:00 -08:00
Frank Galligan
b1c72b633e
Revert external frame buffer code.
...
A future CL will add external frame buffers
differently.
Squash commit of four revert commits:
Revert "Increase required number of external frame buffers"
This reverts commit 9e41d569d7
.
Revert "Add external constants."
This reverts commit bbf53047b0
.
Revert "Add frame buffer lru cache."
This reverts commit fbada948fa
.
Conflicts:
vpxdec.c
Change-Id: I76fe42419923a6ea6c75d9997cbbf941d73d3005
Revert "Add support to pass in external frame buffers."
This reverts commit 10f891696b
.
Conflicts:
test/external_frame_buffer_test.cc
vp9/common/vp9_alloccommon.c
vp9/common/vp9_reconinter.c
vp9/decoder/vp9_decodeframe.c
vp9/encoder/vp9_onyx_if.c
vp9/vp9_dx_iface.c
vpx/vpx_decoder.h
vpx/vpx_external_frame_buffer.h
vpx_scale/generic/yv12config.c
vpxdec.c
Change-Id: I7434cf590f1c852b38569980e4247fad0d939c2e
2014-01-24 10:10:20 -08:00
Adrian Grange
8b0537f631
Merge changes I24ad1f0f,I33be1366
...
* changes:
Reorder functions to avoid forward declaration
Rename set_scale_factors as set_ref_ptrs
2014-01-24 08:38:52 -08:00
Dmitry Kovalev
b7944ff1b8
Merge "Cleaning up vp9_firstpass.c file."
2014-01-23 23:09:21 -08:00
Dmitry Kovalev
31bb283d6d
Merge "Removing get_scale_ref_frame_idx() function + cleanup."
2014-01-23 22:37:36 -08:00
Dmitry Kovalev
6c98df29e4
Cleaning up motion compensation code.
...
Change-Id: I74cf028e8c732cd0dbc070326152d3085b824a80
2014-01-23 17:15:30 -08:00
James Zern
b453941caf
vp9/encoder: add extern "C" to headers
...
Change-Id: I4f51ce859a97bf1b8fd2b37ac585b7c643232b69
2014-01-23 16:21:24 -08:00
Dmitry Kovalev
520496ba95
Cleaning up vp9_firstpass.c file.
...
Change-Id: Ic352b0429d5784f9d78872a478fe6275ee7a56a0
2014-01-23 12:36:19 -08:00
Dmitry Kovalev
7450275755
Setup pre[0] buffer before calls to {first_pass, zz}_motion_search.
...
Change-Id: I9b94e741201eacb1982014724a532bdaae31f130
2014-01-23 12:14:57 -08:00
Yaowu Xu
63fb34c9bc
Revert "Removing unnecessary vp9_clear_system_state() calls."
...
This reverts commit 36406fdb07
.
Change-Id: I0bd31d03ce2a562d0624f2cd67593d0d25df4a54
2014-01-23 09:05:08 -08:00
Dmitry Kovalev
5f75fda9e9
Merge "Cleaning up vp9_refining_search_sad() function."
2014-01-22 17:15:22 -08:00
Dmitry Kovalev
e4755db40b
Removing get_scale_ref_frame_idx() function + cleanup.
...
Change-Id: Ic9472f361f8749a165aa464c2fa859681b66381b
2014-01-22 17:10:37 -08:00
James Zern
eb4cb43397
Merge "Enforce effective motion vector search range"
2014-01-22 16:50:30 -08:00
Dmitry Kovalev
af14853802
Merge "Fixing simple_weight() function + cleanup."
2014-01-22 16:28:31 -08:00
Adrian Grange
e54e4b03db
Reorder functions to avoid forward declaration
...
Change-Id: I24ad1f0f1cb0e991c476ea174db8ac1584929b02
2014-01-22 16:20:39 -08:00
Adrian Grange
e37eb0ade7
Rename set_scale_factors as set_ref_ptrs
...
New name better describes what the function does.
Change-Id: I33be1366a81f058a9854b804bcde211061187dc7
2014-01-22 13:04:30 -08:00
Yaowu Xu
ea2d319cfc
changed to use vpx_integer.h for type definition
...
Change-Id: I7739849aa8dd5dcb0755858367fd3223587d107f
2014-01-22 12:52:31 -08:00
Deb Mukherjee
58b9c9fbce
Merge "Adds a non-normative resize library to vp9 encoder"
2014-01-22 11:46:43 -08:00
Yaowu Xu
528bf858fa
Merge "Prevent invaid memory access"
2014-01-22 11:39:24 -08:00
Adrian Grange
a858c5c227
Merge "Tidy up comments & remove commented out code."
2014-01-22 11:14:07 -08:00
hkuang
7f30a6f877
Merge "Seperate the border size for encoder and decoder."
2014-01-22 10:59:31 -08:00
Adrian Grange
82f6af6009
Tidy up comments & remove commented out code.
...
Change-Id: I46dd5ce06f36362c6274511cd1531d93926aa9bc
2014-01-22 09:59:01 -08:00
Yaowu Xu
ebe160568b
Prevent invaid memory access
...
Reading second motion vector only when it has a second ref_frame
Change-Id: Ica72c1cd955832e15ceccda5e5a17b0bfcd83044
2014-01-22 09:10:44 -08:00
Dmitry Kovalev
ed6bb10f0f
Fixing simple_weight() function + cleanup.
...
We used y_width/y_height instead of y_crop_width/y_crop_height.
Change-Id: Ia796494956f16d7a4085e043d58bdfe6de19abe7
2014-01-22 08:57:13 -08:00
Dmitry Kovalev
73b7405a90
Merge "Simplifying target_size_from_buffer_level() function."
2014-01-22 08:54:59 -08:00
Dmitry Kovalev
36406fdb07
Removing unnecessary vp9_clear_system_state() calls.
...
Change-Id: I597645a15fff2d3a1104861a5c90f64394952e0b
2014-01-22 02:39:52 -08:00
Dmitry Kovalev
3cdcb2f567
Simplifying target_size_from_buffer_level() function.
...
Change-Id: I1d556ddf04ab0a98eadf412972a6977c1055446f
2014-01-22 02:24:01 -08:00
Dmitry Kovalev
2b6e0fe010
Merge "Cleaning up first_pass_motion_search() function."
2014-01-22 01:51:08 -08:00
Dmitry Kovalev
6e706ed783
Merge "Cleaning up vp9_ratectrl.c."
2014-01-21 23:12:42 -08:00
Dmitry Kovalev
52bcaf426d
Merge "Cleaning up vp9_setup_buffer_inter() function."
2014-01-21 23:11:39 -08:00
Dmitry Kovalev
209a3ae4f4
Merge "Replacing cpi->twopass with twopass."
2014-01-21 23:01:27 -08:00
Dmitry Kovalev
ef9f7446be
Cleaning up vp9_setup_buffer_inter() function.
...
Change-Id: Ia63e2d05fa5dca3fb67788b0f1f28e9802ef27dd
2014-01-21 19:46:07 -08:00
Yaowu Xu
4e2ae30287
Merge "remove complex rd modeling."
2014-01-21 18:02:50 -08:00
Deb Mukherjee
3cd37dfeb5
Adds a non-normative resize library to vp9 encoder
...
Adds an arbitrary-size resize library for use in scaling of input
frames in a non-normative manner in the vp9 encoder. The method
used is as follows:
Downsampling - Uses a 8 tap filter for factor of 2 decimation upto
a size just higher than the desired size. Then interpolates pixels
at a precision of 1/32 pel using a set of 8-tap filters.
Upsampling - Interpolates pixels at a precision of 1/32 pel using
a set of 8-tap filters.
There is no assembly optimization yet.
Change-Id: Ib5b81e174fc139da322bb97c8214d52289d60d8a
2014-01-21 16:50:00 -08:00
Alex Converse
7a197b2d49
Merge "Have check_initial_width() take subsampling as arguments directly."
2014-01-21 16:31:14 -08:00
Yaowu Xu
000efb5711
Merge "Enforce key frame placement"
2014-01-21 16:04:35 -08:00
hkuang
437004c710
Seperate the border size for encoder and decoder.
...
Encoder's boarder is still 160, while decoder's boarder will be 32.
With on demand and separate boarder buffer for boarder extension.
The decoder's boarder does not need to to 160 anymore.
Change-Id: I93d5aaff15a33a2213e9761eaa37c5f2870747db
2014-01-21 15:28:41 -08:00
Dmitry Kovalev
c2b5a39345
Removing duplicated SAD calculation code.
...
Change-Id: I8d693371a29103769d5bed9d5f9cfe4f58ca3189
2014-01-21 14:24:37 -08:00
Yaowu Xu
dbae98082c
Enforce key frame placement
...
Change-Id: I2f85c6b058638571d68a7209779de8ca8168934f
2014-01-21 14:08:43 -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
Jim Bankoski
3fa1356994
remove complex rd modeling.
...
The affect on quality was minimal. Less than .1%, various sets
yt ( +.15%), derf (-.1%), hd ( -.1% ), std hd(-.15%)...
The affect on speed of encode at speed -5 was substantial ( ~3% ).
Change-Id: I8903346fbae0c35f5b9ea20f81fdd239ae81247d
2014-01-21 09:59:49 -08:00
Yaowu Xu
466f42aa10
Merge "Deprecate best_mv from encoder"
2014-01-21 09:35:52 -08:00
Dmitry Kovalev
6031abeb38
Cleaning up vp9_ratectrl.c.
...
Change-Id: I3a260d3ca68db3a9352ae5409de76e56202976e5
2014-01-17 17:43:04 -08:00
Dmitry Kovalev
a001016996
Removing MODE_STATS.
...
Change-Id: I7520e1cc82b749187c9445356dd7b54f3f3826cc
2014-01-17 17:30:22 -08:00
Jingning Han
b461c0884e
Deprecate best_mv from encoder
...
This commit deprecates the use of best_mv from encoding and bit-stream
writing stages. It hence removes the definition from MACROBLOCKD.
Change-Id: I8e5302775a2aa4a18900726df407bff881f2dfb1
2014-01-17 17:15:34 -08:00
Dmitry Kovalev
2f4e6ee55d
Cleaning up vp9_picklpf.c file.
...
Change-Id: Id54f317846f61a320cc5aeef47248e074376ee5d
2014-01-17 16:09:21 -08:00
Alex Converse
7e157467dc
Merge "Fix output cropping in vp9_get_preview_raw_frame."
2014-01-17 15:49:06 -08:00
Dmitry Kovalev
c5b633975c
Merge "Removing unused vp9_yv12_copy_partial_frame() function."
2014-01-17 15:43:02 -08:00
Dmitry Kovalev
d8bfe9e24c
Cleaning up vp9_refining_search_sad() function.
...
Change-Id: I660b53da8ebf3049832ce8a10721051c4e0ebb00
2014-01-17 15:20:28 -08:00
Alex Converse
9c19953763
Fix output cropping in vp9_get_preview_raw_frame.
...
Handle the non-420 case and set uv_width.
This is needed to get the correct colorspace information out of
vp9e_get_preview().
Change-Id: I62ce118cd7082708d812deb0843c1be87582e0fe
2014-01-17 14:03:42 -08:00
Dmitry Kovalev
50ca3c8324
Merge "Cleaning up vp9_refining_search_8p_c() function."
2014-01-17 12:36:00 -08:00
Jingning Han
d100fb6139
Merge "Rename pick_sb_modes to rd_pick_sb_modes"
2014-01-17 10:58:26 -08:00
Alex Converse
2bfafefb34
Merge "Fix key frames for one pass."
2014-01-17 10:22:59 -08:00
Dmitry Kovalev
ac40c87f68
Removing unused vp9_yv12_copy_partial_frame() function.
...
Change-Id: I3149e562fe9500914f67b6f908283edcdc381ac6
2014-01-16 18:16:34 -08:00
Jingning Han
98b01c038f
Rename pick_sb_modes to rd_pick_sb_modes
...
Keep naming consistency for RD and non-RD mode decision functions,
respectively.
Change-Id: I904282b675fc511a46c13cb1f8287aa5d1c8ac94
2014-01-16 18:05:42 -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
Jingning Han
013eba8ee8
Merge "Inter-frame non-RD mode decision"
2014-01-16 14:04:51 -08:00
Alex Converse
2b3891d9da
Fix key frames for one pass.
...
Set this_key_frame_forced flag and don't use kf_boost when not set.
Change-Id: Ibe66a82fa9219e60db358ddeb43d6471816c8b50
2014-01-16 13:04:51 -08:00
Jingning Han
2f52decd22
Inter-frame non-RD mode decision
...
This commit setups a test framework for real-time coding. It enables
a light motion search for non-RD mode decision purpose.
Change-Id: I8bec656331539e963c2b685a70e43e0ae32a6e9d
2014-01-16 12:35:04 -08:00
Adrian Grange
6cd6349896
Merge "Fix printf formatting"
2014-01-16 11:02:55 -08:00
Jim Bankoski
a5cb1b1ad5
Merge "don't dummy pack if we won't recode"
2014-01-16 08:21:03 -08:00
Dmitry Kovalev
8f0d213494
Merge "Cleaning up reatectrl.c file."
2014-01-15 16:26:09 -08:00
Dmitry Kovalev
a86a5b17e5
Replacing cpi->twopass with twopass.
...
Change-Id: I733a84ec178439ead66e031395d9a8e49e8f4d1a
2014-01-15 16:21:38 -08:00
Dmitry Kovalev
c37d54a93e
Merge "Replacing cpi->rc with rc."
2014-01-15 16:04:05 -08:00