Commit Graph

587 Commits

Author SHA1 Message Date
Dmitry Kovalev
b098c04290 Merge "Decoupling set_ref_ptrs() and vp9_setup_interp_filters()." 2014-01-28 10:37:58 -08:00
Yaowu Xu
1fecc5bd2e Merge "Added a speed feature" 2014-01-28 10:28:54 -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
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
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
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
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
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
Deb Mukherjee
58b9c9fbce Merge "Adds a non-normative resize library to vp9 encoder" 2014-01-22 11:46:43 -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
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
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
a001016996 Removing MODE_STATS.
Change-Id: I7520e1cc82b749187c9445356dd7b54f3f3826cc
2014-01-17 17:30:22 -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
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
Jim Bankoski
3977e64fc7 don't dummy pack if we won't recode
Avoid packing the bitstream 2 times unless we need to.  For me this
at speed -5 was a 2% speed up.

Change-Id: I32205c98f55eedd4ff031ed5fb498c84bdaa855d
2014-01-15 15:30:13 -08:00
Yaowu Xu
293532f314 Merge "Add max burst bitrate control." 2014-01-15 14:40:59 -08:00
Dmitry Kovalev
a26899ada5 Merge "Removing intra_mode_stats." 2014-01-15 12:16:50 -08:00
Adrian Grange
7a203301b7 Fix printf formatting
Change-Id: I37c5d6f4a0f09d48d3ee31eecdb68dfa11d30bd3
2014-01-15 09:58:01 -08:00
Dmitry Kovalev
b53113c3ca Merge "Removing unused error_bins[] field from VP9_COMP." 2014-01-14 14:45:17 -08:00
Dmitry Kovalev
7da6422d63 Merge "Adding get_vp9_ref_frame_buffer() function." 2014-01-14 14:12:45 -08:00
Deb Mukherjee
1699d6bd53 Minor fix on an assert
Fixes assert that fails occasionally on small values of
max-key frame intervals. Also, adds a small change on
updating frames_to_key for frame drops.

Change-Id: Icc2b33b25e3e4ced7e49f8db73e0a887ef9c99e0
2014-01-14 12:51:13 -08:00
Paul Wilkins
5c808ba13a Add max burst bitrate control.
Applies an upper limit on burst bitrate for any
frame. This is to insure that typical encodes for YT
do not produce frames that are so large that they
risk stalling HW implementations. Such frames
could also cause playback problems in SW.

For now the limit is set at 250 bits per MB for 1080P
and larger (with the 1080P limit used for smaller frames).

Setting maxQ, constant quality mode or targeting a
very high bandwidth will have precedence over this limit.

Change-Id: Ie6f776c38b06ac7cec043d034085f4b79ee46a38
2014-01-14 09:52:49 +00:00
Dmitry Kovalev
a8a5774ba9 Removing unused error_bins[] field from VP9_COMP.
Change-Id: I883eb9026b44cb354d5b01c0f1d34ecd71f942e4
2014-01-13 16:33:16 -08:00
Dmitry Kovalev
b9592fa0b3 Removing intra_mode_stats.
Change-Id: I6e0895f7f826b484ac86945e6abe3a706a6b0399
2014-01-13 11:40:33 -08:00
Dmitry Kovalev
4ae8ac7be8 Merge "Cleaning up and fixing psnr calculation code." 2014-01-13 10:59:26 -08:00
Yaowu Xu
5e5d4c0ea7 Enable reference frame masking for rt mode
Reference frame masking helped good quality mode to gain about 5% in
encoding speed, this commit enable it for rt mode to gain the speed
improvement.

In addition, this commit move the speed feature setup to a separate
function.

Change-Id: I015e8f78bbb21dd43ae183b9b9355bea2ccda9c5
2014-01-13 10:06:17 -08:00
Dmitry Kovalev
4def0a8125 Cleaning up and fixing psnr calculation code.
Introducing calc_psnr() which calculates psnr between two yv12 buffers.
Previously we incorrectly used width/height instead of
crop_width/crop_height to calculate number of samples -- fixed.

Change-Id: Iecda01980555de55ad347e0276e6641c793fa56c
2014-01-10 16:09:56 -08:00
Jingning Han
4f969ccc1b Merge "Enable skipping reference frame check in rd loop" 2014-01-10 16:00:56 -08:00
Jim Bankoski
6439aa5a0e explain speed features
Added comments to explain what the various speed features do, and removed
1 that was clearly unused.

Change-Id: Icd37a536072ddafedbfaefcecbe48979f6d10faf
2014-01-10 14:10:34 -08:00
Dmitry Kovalev
804a155d64 Adding get_vp9_ref_frame_buffer() function.
Change-Id: Iae195fcf952dd27ba424f8e95090b8ffc4d5a7c8
2014-01-10 11:59:38 -08:00
Marco Paniconi
21a0c1f38f Merge "Don't use gf_update by default for 1-pass CBR." 2014-01-10 11:43:20 -08:00
Marco Paniconi
c46538d45e Don't use gf_update by default for 1-pass CBR.
Change-Id: I5df6abceb0a2a69706feadeb820b593cae88f573
2014-01-10 10:40:12 -08:00
Marco Paniconi
a260369aa8 Merge "Keep buffer clipped to maximum in change_config." 2014-01-10 09:33:33 -08:00
Jingning Han
d66c748635 Enable skipping reference frame check in rd loop
This commit allows encoder to compare the SAD cost associated with
the best motion vector predictor, per frame. If one reference frame
has this cost more than 4 times of the best SAD cost given by other
reference frames, skip NEARESTMV, NEARMV, ZEROMV mode check of this
reference frame.

This setting is turned on in speed 2 and above. Compression quality
change in speed 2:
derf  -0.014%
yt    -0.097%
hd    -0.023%
stdhd  0.046%

It reduces the speed 2 runtime of test sequences:
pedestrian_area_1080p 4000 kbps 310763 ms -> 303595 ms
bluesky_1080p 6000 kbps         259852 ms -> 251920 ms

Change-Id: I7f59cf79503d51836d61d56d50dc5bdf0e502e22
2014-01-09 18:25:53 -08:00
Deb Mukherjee
36c8daed58 Merge "Cleanups on refresh flags" 2014-01-09 17:38:45 -08:00
Deb Mukherjee
412e4954c1 Cleanups on refresh flags
Cleanups on frame refresh flags and external overrides.

Change-Id: Ia6a56fe1bde906b1dc3fcbf4ef1c7b207cd2df2d
2014-01-09 17:00:23 -08:00
Yaowu Xu
b1d81e19d8 Merge "Simplify set_rt_speed_feature()" 2014-01-09 15:02:24 -08:00
Marco Paniconi
193fa5c8ba Keep buffer clipped to maximum in change_config.
Under a configuration change, where the bitrate suddenly decreases,
the buffer level may be larger than maximum allowed (for that first frame to be encoded after change_config).
This change keeps it clipped to its maximum level.

Change-Id: I4d0b5b3d1fd8148600dd39e02bd630c9464baba5
2014-01-09 14:33:40 -08:00
Dmitry Kovalev
c8e8d3a461 Merge "Renaming 'Sharpness' to 'sharpness'." 2014-01-09 13:42:55 -08:00
Yaowu Xu
2d381d76d8 Simplify set_rt_speed_feature()
1. Made speed choices to be progressive
2. Adjusted rt speed settings to achieve better speed/quality

Overall, rt-5 gained 2.5% in compression/quality, encoding time of 720p
niklas clip goes from 137,052ms to 121,874ms

Change-Id: Ia6e7e1e15225395a868a2f1059c3db8e266e1600
2014-01-09 13:02:15 -08:00
Dmitry Kovalev
d606bf93ef Merge "Removing direct references to {lst_fb, gld_fb, alt_fb}_idx fields." 2014-01-08 18:12:09 -08:00
Dmitry Kovalev
510a828256 Removing direct references to {lst_fb, gld_fb, alt_fb}_idx fields.
Change-Id: Ib1d9628d2b538b6dc27b0db1fa7f40f70ff2072f
2014-01-08 15:21:41 -08:00
Dmitry Kovalev
962c8b241e Renaming 'Mode' to 'mode'.
Change-Id: I6cdd670d66288dbd66228f38bba6b30502d25362
2014-01-08 14:33:59 -08:00
Dmitry Kovalev
57be81369a Renaming 'Sharpness' to 'sharpness'.
Change-Id: I54513dc3b3321e0c0bb6b15ea5c34085ed80b4a4
2014-01-08 14:19:14 -08:00