Guillaume Martres [Sat, 5 Apr 2014 23:07:53 +0000 (01:07 +0200)]
vp9_ratectrl: change ARF overlays rate correction factor
ARF overlays now use the same rate correction factor as regular inter
frames, further testing would be needed to see if it makes sense to use
a completely separate rate correction factor for ARF overlays.
$ vpxenc --cpu-used=5 --fps=50/1 --target-bitrate=2000
parkjoy.y4m -o out.webm
=> Before: 3356 kb/s
=> After: 2271 kb/s
Change-Id: I73e4defa615ba7a8a2bdb845864f4b1721cbbffe
Guillaume Martres [Sat, 5 Apr 2014 20:32:06 +0000 (22:32 +0200)]
Replace imprecise 32 bits calculations by 64 bits calculations
Change-Id: If1b0a2d6603ce24f5dd99855e8dfe459e7a2835a
Guillaume Martres [Sat, 5 Apr 2014 19:57:14 +0000 (21:57 +0200)]
vp9_firstpass: Get rid of magic number in bits per MB calculation
Change-Id: Ib3886cb7cafc211581f4f9e7f76782d9d1984434
Dmitry Kovalev [Fri, 4 Apr 2014 22:47:34 +0000 (15:47 -0700)]
Merge "Refactoring decode_one() function."
hkuang [Fri, 4 Apr 2014 22:32:14 +0000 (15:32 -0700)]
Merge "Code clean up."
Dmitry Kovalev [Fri, 4 Apr 2014 22:13:29 +0000 (15:13 -0700)]
Merge "Adding FAST_COEFF_UPDATE enum."
James Zern [Fri, 4 Apr 2014 22:04:48 +0000 (15:04 -0700)]
Merge "Re-enable datarate tests for speeds 5 and 6."
Dmitry Kovalev [Fri, 4 Apr 2014 17:43:47 +0000 (10:43 -0700)]
Refactoring decode_one() function.
Change-Id: Ic3ee3b1fb04691e8c7d16020b56e034ab8888525
Marco Paniconi [Fri, 4 Apr 2014 17:32:13 +0000 (10:32 -0700)]
Re-enable datarate tests for speeds 5 and 6.
Changed a parameter to make speed 5 pass, and
valgring issue for speed 6 fixed: https://code.google.com/p/webm/issues/detail?id=740
Change-Id: I5b804b08069e29df3f08b9ec37f5b80151b4c910
Dmitry Kovalev [Fri, 4 Apr 2014 17:31:34 +0000 (10:31 -0700)]
Adding FAST_COEFF_UPDATE enum.
Change-Id: I75ad328c6d719df81cc24f3ae21c152af4ebdacc
Jan Gerber [Fri, 4 Apr 2014 00:49:05 +0000 (17:49 -0700)]
Remove an unused typedef
Change-Id: Ie0eb9ac4529db00a322511e5241a59b501c289b7
Yaowu Xu [Fri, 4 Apr 2014 15:32:08 +0000 (08:32 -0700)]
Merge "Removed space in ETA printout"
Paul Wilkins [Fri, 4 Apr 2014 13:30:40 +0000 (06:30 -0700)]
Merge "Reinstating the DISABLE_RC_LONG_TERM_MEM macro"
James Zern [Fri, 4 Apr 2014 01:36:59 +0000 (18:36 -0700)]
Merge "gen_msvs_*proj.sh: add 'cpp' as a source extension"
Yaowu Xu [Fri, 4 Apr 2014 01:05:17 +0000 (18:05 -0700)]
Removed space in ETA printout
This is to fix issue#709
Change-Id: I537f1fb74252fef8a58e68b0960a36a9aada856e
Dmitry Kovalev [Thu, 3 Apr 2014 23:58:21 +0000 (16:58 -0700)]
Merge "Removing interp_kernel from MACROBLOCKD."
Marco Paniconi [Thu, 3 Apr 2014 23:57:44 +0000 (16:57 -0700)]
Merge "Add codec control function for enabling frame_periodic_boost."
Yaowu Xu [Thu, 3 Apr 2014 23:51:49 +0000 (16:51 -0700)]
Merge "Fix complexity Aq mode."
hkuang [Thu, 3 Apr 2014 23:20:26 +0000 (16:20 -0700)]
Code clean up.
No need to check pbi->common.frame_to_show again.
Change-Id: I572ea4afd0d8b6000c0bb7575b7023d75cad5a4e
Dmitry Kovalev [Thu, 3 Apr 2014 22:54:49 +0000 (15:54 -0700)]
Merge "Replacing magic constants with expressions."
Marco Paniconi [Thu, 3 Apr 2014 22:49:03 +0000 (15:49 -0700)]
Add codec control function for enabling frame_periodic_boost.
Change-Id: I6371ef7301c6bc3138552bd349e9bd154dee3e08
Jingning Han [Thu, 3 Apr 2014 22:35:48 +0000 (15:35 -0700)]
Merge "Adjust key frame quantization index for rtc coding"
Dmitry Kovalev [Thu, 3 Apr 2014 22:28:42 +0000 (15:28 -0700)]
Removing interp_kernel from MACROBLOCKD.
Now interp_kernel is obtained when it is really required (based on
mbmi->interp_filter value).
Change-Id: I4c7a93c179d1045eba16e7526c293d02c9b8b47e
James Zern [Thu, 3 Apr 2014 21:11:32 +0000 (14:11 -0700)]
Merge "Fix build for resize_util"
Deb Mukherjee [Thu, 3 Apr 2014 21:06:20 +0000 (14:06 -0700)]
Fix build for resize_util
Fix that handles undefined CONFIG_SHARED
Change-Id: I585bd03078f9061d010880a294bf0ac423f0981a
Tom Finegan [Thu, 3 Apr 2014 21:05:58 +0000 (14:05 -0700)]
Merge "Add shell scripts for verifying basic vpx{dec,enc} features."
Alex Converse [Thu, 3 Apr 2014 21:03:45 +0000 (14:03 -0700)]
Merge "Remove full scale duplicates of bsize."
Tom Finegan [Thu, 3 Apr 2014 20:16:58 +0000 (13:16 -0700)]
Add shell scripts for verifying basic vpx{dec,enc} features.
Tests the basics (first confirms feature is available in vpx_config.h):
- VP8 decode (in IVF file).
- VP9 decode (in WebM file).
- VP8 encode (to IVF and WebM).
- VP9 encode (to IVF and WebM).
- VP9 lossless encode (to IVF, currently disabled due to failure).
- Pipe input (to vpxdec and vpxenc).
Test data path and path to vpx{dec,enc} have been parameterized. In
addition:
- Supports disabling tests (test names prefixed with DISABLED_ are not
run by default).
- Supports filtering tests.
vpxdec.sh: Tests vpxdec.
vpxenc.sh: Tests vpxenc.
tools_common.sh: Common test functions.
Change-Id: I0612c88b8dd6049a05bbbc79a317a0cca61733a5
James Zern [Thu, 3 Apr 2014 19:27:29 +0000 (12:27 -0700)]
gen_msvs_*proj.sh: add 'cpp' as a source extension
Change-Id: I21cdaeea33a56dd4c0e38c36d01f338b1ab04c74
James Zern [Thu, 3 Apr 2014 19:00:27 +0000 (12:00 -0700)]
Merge "tools_common.h: (msvs) avoid redefining off_t"
Alex Converse [Thu, 3 Apr 2014 18:51:21 +0000 (11:51 -0700)]
Remove full scale duplicates of bsize.
Change-Id: I28e45870a0e3b0de3b9e40fb044789ae1209c0f7
Dmitry Kovalev [Thu, 3 Apr 2014 18:13:31 +0000 (11:13 -0700)]
Merge "Removing XMA legacy from VP9 code."
Deb Mukherjee [Thu, 3 Apr 2014 17:22:58 +0000 (10:22 -0700)]
Reinstating the DISABLE_RC_LONG_TERM_MEM macro
Reinstates this macro and truns it on in order to avoid issues
due to some frames at the end starving in harder videos.
A more acceptable solution is in the works.
Change-Id: I3c46148e86fa6114e3fed245246fb3686a9e6700
Dmitry Kovalev [Thu, 3 Apr 2014 16:59:10 +0000 (09:59 -0700)]
Merge "Making frame_branch_ct a local array."
Paul Wilkins [Thu, 3 Apr 2014 13:34:43 +0000 (14:34 +0100)]
Fix complexity Aq mode.
This was broken by change
Icc4b66f3935fad5ec4516a4d57e843d12c365e64
Change-Id: I49e3fc525664eb7a433f55f76b8f8628fe251eab
Dmitry Kovalev [Thu, 3 Apr 2014 08:41:46 +0000 (01:41 -0700)]
Merge "Fixing typo in cal_nmvjointsadcost()."
Jingning Han [Thu, 3 Apr 2014 05:44:06 +0000 (22:44 -0700)]
Adjust key frame quantization index for rtc coding
This commit slightly increases the bit allocation for key frame. This
improves speed -5 coding performance by 2.77% with aq-mode=0 and by
2.78% with aq-mode=3.
Change-Id: Iaa3e777f80b9706306606af06e89852bac146659
James Zern [Thu, 3 Apr 2014 03:06:07 +0000 (20:06 -0700)]
tools_common.h: (msvs) avoid redefining off_t
in some configurations MSVS will define _off_t / off_t in wchar.h; the
former is used locally while the latter is for compatibility. this
change overrides off_t as in the past and sets _OFF_T_DEFINED to prevent
a clash in types.
Change-Id: I9b0e6db586a0a2729b545d93edfc56570d2fcf97
Dmitry Kovalev [Thu, 3 Apr 2014 02:07:51 +0000 (19:07 -0700)]
Making frame_branch_ct a local array.
Change-Id: Id79ed3b87fd6055e96738af53eb964addd0b918b
Dmitry Kovalev [Thu, 3 Apr 2014 02:05:59 +0000 (19:05 -0700)]
Removing XMA legacy from VP9 code.
Change-Id: I5e9dfc50b6312848df8c3b8276f6b4d0c7ff9cf9
Dmitry Kovalev [Thu, 3 Apr 2014 01:28:47 +0000 (18:28 -0700)]
Merge "Cleaning up vp9_pattern_search() function."
Marco Paniconi [Wed, 2 Apr 2014 21:11:49 +0000 (14:11 -0700)]
Merge "Set min_block_size for aq_mode=3 to 8x8."
Marco Paniconi [Wed, 2 Apr 2014 18:03:27 +0000 (11:03 -0700)]
Set min_block_size for aq_mode=3 to 8x8.
For real-time mode under cbr, this increases the gain (5-10%)
for speed 5 (none/little change for 6), on vc-clips.
Change-Id: I9b38beeb3c820de22c43a0ba53a9456168dd24ba
Deb Mukherjee [Wed, 2 Apr 2014 20:29:34 +0000 (13:29 -0700)]
Merge "Rate ctrl changes to track target bitrates closer"
Dmitry Kovalev [Wed, 2 Apr 2014 20:05:21 +0000 (13:05 -0700)]
Merge "Cleaning up vp9_get_mvpred_{av_,}var() functions."
Jingning Han [Wed, 2 Apr 2014 19:48:05 +0000 (12:48 -0700)]
Merge "Make frame level quantization change a parameter"
Jingning Han [Wed, 2 Apr 2014 19:47:50 +0000 (12:47 -0700)]
Merge "Adjust rate allocation in non-RD coding mode"
Paul Wilkins [Wed, 2 Apr 2014 19:22:48 +0000 (12:22 -0700)]
Merge "Revert "Changing webmenc to use libwebm""
Paul Wilkins [Wed, 2 Apr 2014 19:22:33 +0000 (12:22 -0700)]
Merge "Add speed feature for recode tolerance."
Deb Mukherjee [Wed, 2 Apr 2014 00:31:59 +0000 (17:31 -0700)]
Rate ctrl changes to track target bitrates closer
Turns off the DISABLE_RC_LONG_TERM_MEM macro and makes other changes
in the way the bits are updated, to make 2-pass rate control track
target bitrates closer.
Change-Id: I5f3be4b11c2908e6a9a9a1dd4fcf4e65531c44d8
Dmitry Kovalev [Wed, 2 Apr 2014 18:03:36 +0000 (11:03 -0700)]
Merge "Cleaning up vp9_mvref_common.c."
Dmitry Kovalev [Wed, 2 Apr 2014 18:01:16 +0000 (11:01 -0700)]
Merge "Cleaning up vp9_cx_iface.c file."
Dmitry Kovalev [Wed, 2 Apr 2014 18:00:58 +0000 (11:00 -0700)]
Merge "Grouping members in MB_MODE_INFO struct."
Dmitry Kovalev [Wed, 2 Apr 2014 18:00:32 +0000 (11:00 -0700)]
Merge "Adding return value to set_offsets() function."
Dmitry Kovalev [Wed, 2 Apr 2014 17:59:13 +0000 (10:59 -0700)]
Merge "Clearing all encoder counts with single vp9_zero() call."
Dmitry Kovalev [Wed, 2 Apr 2014 17:58:49 +0000 (10:58 -0700)]
Merge "Adding local pointer variables referencing REATE_CONTROL struct."
Marco Paniconi [Wed, 2 Apr 2014 17:21:52 +0000 (10:21 -0700)]
Merge "Remove the q division by 3 for first frame."
Jingning Han [Tue, 1 Apr 2014 22:52:38 +0000 (15:52 -0700)]
Make frame level quantization change a parameter
Parameterize the frame level quantization index used in non-RD
coding flow with cbr.
Change-Id: I79cfbd9c32c0d0fc33ad720d2180432e910baf7a
Jingning Han [Tue, 1 Apr 2014 19:55:20 +0000 (12:55 -0700)]
Adjust rate allocation in non-RD coding mode
This commit reduces the frequency of frames using finer quantizer
in non-RD coding flow, and slightly tune up the quantizer resolution
when used. It provides 1.7% compression gains in speed -5 at no speed
difference.
Change-Id: I430249a51260a841a0402666e5ec1566e4f7d5a6
Paul Wilkins [Wed, 2 Apr 2014 11:08:18 +0000 (04:08 -0700)]
Revert "Changing webmenc to use libwebm"
Temporary revert.
Problems with conflicting definitions of type off_t
in MSVC builds that need resolving.
c:\Program Files (x86)\
Microsoft Visual Studio 9.0\VC\include\wchar.h(479) :
"error C2371: 'off_t' : redefinition; different basic types
c:\on2experimental\libvpx\tools_common.h(26) :
see declaration of 'off_t'"
This reverts commit
92a4c591122fa406a1d7aed834a5283a86d9758a.
Change-Id: I535e40a18842a92e3e6e0b29e5fba66313010803
Paul Wilkins [Mon, 31 Mar 2014 15:58:39 +0000 (16:58 +0100)]
Add speed feature for recode tolerance.
The new tolerance is a little higher than before (especially
for kf/gf/arf) so this change gives an encode speed up
for some clips up for speeds 0-2.
Change-Id: I63f7d6c9cc11c7f58742f41e250dcd3eab1741eb
Paul Wilkins [Wed, 2 Apr 2014 11:08:18 +0000 (04:08 -0700)]
Merge "Speed setting correction to max q estimate."
Dmitry Kovalev [Wed, 2 Apr 2014 01:25:11 +0000 (18:25 -0700)]
Adding local pointer variables referencing REATE_CONTROL struct.
Change-Id: I1d8c312a599db505a023e5cd0cc4ba2b8f696a2e
Dmitry Kovalev [Wed, 2 Apr 2014 01:03:26 +0000 (18:03 -0700)]
Clearing all encoder counts with single vp9_zero() call.
Change-Id: I4341d16ef83acd1cc9e55f7c5eff4af921bf57d4
Dmitry Kovalev [Wed, 2 Apr 2014 02:50:47 +0000 (19:50 -0700)]
Adding return value to set_offsets() function.
Change-Id: I88e018442c527cf21eac791f0768e805dda244f1
Marco Paniconi [Wed, 2 Apr 2014 00:50:14 +0000 (17:50 -0700)]
Remove the q division by 3 for first frame.
This code/setting was actually not used (since speed features were not set on first frame,
until a recent change) and should be removed.
In CBR mode, the q value for the first frame can be controlled by setting
the target size via the parameters rc_buf_initial_sz (and max_intra_size_pct).
Change-Id: I65afc64972b36c449bd5a8c25800e65da5389066
Dmitry Kovalev [Tue, 1 Apr 2014 23:18:47 +0000 (16:18 -0700)]
Renaming two members in MACROBLOCKD struct.
Renames:
mi_8x8 -> mi
mode_info_stride -> mi_stride
Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
Dmitry Kovalev [Wed, 2 Apr 2014 00:42:14 +0000 (17:42 -0700)]
Replacing magic constants with expressions.
Change-Id: I434682bbd4cb2089cd213d77ed5a5e06256dc45d
Dmitry Kovalev [Wed, 2 Apr 2014 00:15:11 +0000 (17:15 -0700)]
Merge "Moving encoder quantization parameters into separate struct."
Dmitry Kovalev [Wed, 2 Apr 2014 00:14:55 +0000 (17:14 -0700)]
Cleaning up vp9_cx_iface.c file.
Change-Id: I4de07d3ef81ebba759a983207d9ca768a65220a6
Dmitry Kovalev [Tue, 1 Apr 2014 22:54:34 +0000 (15:54 -0700)]
Merge "Common configuration for MACROBLOCKD struct."
Yunqing Wang [Tue, 1 Apr 2014 22:54:13 +0000 (15:54 -0700)]
Merge "Make last frame source available in current frame encoding"
Yunqing Wang [Fri, 28 Mar 2014 17:47:36 +0000 (10:47 -0700)]
Make last frame source available in current frame encoding
While encoding a frame, its last frame source can be used to give
acurate motion information. This patch prevents last frame to be
overwritten so that it is available during current frame encoding.
The last source is scaled when it is necessary. cpi->Last_Source
points to the last source frame.
Change-Id: I0e1ef5e9e1d2badf9d0c7a1a44a7ed5b24c09425
Vignesh Venkatasubramanian [Tue, 1 Apr 2014 21:23:35 +0000 (14:23 -0700)]
Merge "Changing webmenc to use libwebm"
Alex Converse [Tue, 1 Apr 2014 20:49:26 +0000 (13:49 -0700)]
Merge "Propagate active map state."
Dmitry Kovalev [Tue, 1 Apr 2014 17:57:59 +0000 (10:57 -0700)]
Common configuration for MACROBLOCKD struct.
Change-Id: Ie2ea9dd8bd338cc9fe12ca9033df64f7644c68b3
Jingning Han [Tue, 1 Apr 2014 17:15:00 +0000 (10:15 -0700)]
Merge "Apply finer quantizer to partition search frames in non-RD flow"
Paul Wilkins [Fri, 28 Mar 2014 16:56:14 +0000 (16:56 +0000)]
Speed setting correction to max q estimate.
Use a crude correction factor to correct for
lower compression efficiency at higher encode
speeds when estimating the max Q for the
clip.
Change-Id: I5ae377647f4adf5e91d700a8791fb3b8f70efc73
Alex Converse [Mon, 31 Mar 2014 23:54:33 +0000 (16:54 -0700)]
Propagate active map state.
This fixes active map for non-rd realtime speeds.
Change-Id: I1bf416de3f7ef2e5dd2eabde052cce3c0683a52c
Joshua Litt [Fri, 28 Mar 2014 20:13:56 +0000 (13:13 -0700)]
Small script to scrape json for waterfall
Change-Id: I879fcd3203c84fa83125e06662009d308bc2dbb6
Jingning Han [Sat, 29 Mar 2014 00:42:45 +0000 (17:42 -0700)]
Apply finer quantizer to partition search frames in non-RD flow
This commit optimizes the bit allocation for the non-RD coding flow.
It applies slightly better quantizer to the frames, where all blocks
run a non-RD partition search. Such frames typically have better
rate-distortion trade off, thus improving the reconstruction quality
for next few frames reference at reasonably low increment in rate
cost.
The coding performance for rtc set at speed -5 with error-resilient
tuned on and rate control set as cbr is improved by 19.58%. It improved
the coding speed by about 10% for a portion of local test clips.
Change-Id: I9d56696cd4359dc8136ca10aff10fff05aaa2686
Yaowu Xu [Mon, 31 Mar 2014 14:08:40 +0000 (07:08 -0700)]
Merge "[BITSTREAM]Fix the scaling calculation"
Yaowu Xu [Mon, 31 Mar 2014 14:08:31 +0000 (07:08 -0700)]
Merge "Adjust rt speed steps."
Dmitry Kovalev [Sat, 29 Mar 2014 00:43:50 +0000 (17:43 -0700)]
Grouping members in MB_MODE_INFO struct.
Change-Id: Ia6d7e7a08810e0c3401da4d10266828d560e6851
James Zern [Sat, 29 Mar 2014 00:09:31 +0000 (17:09 -0700)]
Merge "[svc] Fix SvcTest.SecondPassEncode failure"
Dmitry Kovalev [Fri, 28 Mar 2014 23:46:41 +0000 (16:46 -0700)]
Moving encoder quantization parameters into separate struct.
Change-Id: I2a169535489aeda3943fb5a46ab53e7a12abaa36
Yaowu Xu [Thu, 27 Mar 2014 19:54:06 +0000 (12:54 -0700)]
[BITSTREAM]Fix the scaling calculation
For very large size video image, the scaling calculation may need use
value beyond the range of int. This commit upgrade the value to 64bit
to make sure the calculation do not wrap around INT_MAX.
The change corrected the decoder behavior.
The bug affects only very large resolution video because the scaling
calculation was sufficient for image size smaller than 2^13.
This resolves issue:
https://code.google.com/p/webm/issues/detail?id=750
Change-Id: I2d2ed303ca6482f31f819f3c07d6d3e98ef3adc5
Yaowu Xu [Wed, 26 Mar 2014 23:15:00 +0000 (16:15 -0700)]
Adjust rt speed steps.
This commit adjusted the speed steps in rt mode to make the steps
more evenly spaced on speed and quality, specifically:
1. Merged 3 and 4 into one single step 3 and removed confilicting
features.
2. Move 8, 7, 6, 5 to be 7, 6, 5, 4 repsectively.
Change-Id: I38d56d61531f3561d772aef953c411c8fb38c063
Minghai Shang [Fri, 28 Mar 2014 22:58:23 +0000 (15:58 -0700)]
Merge "[svc] Finalize first version of 2nd pass rc"
Minghai Shang [Fri, 28 Mar 2014 21:34:38 +0000 (14:34 -0700)]
Merge "[svc] Initialization of 2nd pass rc for svc two pass rc"
Minghai Shang [Fri, 28 Mar 2014 18:42:26 +0000 (11:42 -0700)]
[svc] Fix SvcTest.SecondPassEncode failure
Root cause is the different default register length between x86
and x64 platform. Change spatial_layer_id to long long.
Change-Id: If1a5972365c7a59f7e76cb4fd714610f3d48a8ff
Minghai Shang [Thu, 27 Mar 2014 23:59:44 +0000 (16:59 -0700)]
[svc] Finalize first version of 2nd pass rc
Change-Id: I366850015004644c4fc7feabe27a782fdd8d8718
Dmitry Kovalev [Fri, 28 Mar 2014 20:32:37 +0000 (13:32 -0700)]
Merge "Moving dqcoeff array to MACROBLOCKD in decoder."
Dmitry Kovalev [Tue, 25 Mar 2014 22:12:28 +0000 (15:12 -0700)]
Moving dqcoeff array to MACROBLOCKD in decoder.
Change-Id: I3e20c0cdb9d2437bddf21afb255855f2dead8e02
Dmitry Kovalev [Fri, 28 Mar 2014 17:30:28 +0000 (10:30 -0700)]
Adding vp9_speed_features.{h, c}.
Change-Id: I7d9874da8ff78a2d7e0cf11073af9c30538bc9a6
Minghai Shang [Fri, 28 Mar 2014 15:58:45 +0000 (08:58 -0700)]
Merge "[svc] Fix issue for setting layers through ffmpeg"
Vignesh Venkatasubramanian [Wed, 19 Mar 2014 18:56:02 +0000 (11:56 -0700)]
Changing webmenc to use libwebm
Changing webmenc to use libwebm for WebM file muxing.
Change-Id: I42eb688953865003214c05bdf2076ee00db28970
Paul Wilkins [Fri, 28 Mar 2014 13:10:21 +0000 (06:10 -0700)]
Merge "Further speed trade off adjustments."
Paul Wilkins [Fri, 28 Mar 2014 13:10:06 +0000 (06:10 -0700)]
Merge "Experimental change to speed 1 settings."
Alex Converse [Fri, 28 Mar 2014 07:28:08 +0000 (00:28 -0700)]
Merge "Automatically count test vectors and make the tables const."