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: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."
Marco Paniconi [Fri, 28 Mar 2014 03:54:28 +0000 (20:54 -0700)]
Merge "vpx_temporal_pattern_encoder: add speed setting to command line."
Alex Converse [Fri, 28 Mar 2014 02:12:35 +0000 (19:12 -0700)]
Merge "Remove a duplicate block_size variable."
Dmitry Kovalev [Fri, 28 Mar 2014 00:50:02 +0000 (17:50 -0700)]
Cleaning up vp9_mvref_common.c.
Change-Id: I4eb815156ecaab02c9182e6e1abbea0e4d86c441
Marco Paniconi [Thu, 27 Mar 2014 21:15:37 +0000 (14:15 -0700)]
vpx_temporal_pattern_encoder: add speed setting to command line.
Change-Id: I0abf4401b37e2f786a958c8eb0fb40640f7fc140
Minghai Shang [Thu, 27 Mar 2014 20:35:27 +0000 (13:35 -0700)]
[svc] Fix issue for setting layers through ffmpeg
Root cause is number of spatial layers is set through
parse_options() when running from ffmpeg.
Change-Id: Icd79cd13fd76e8712150d803838a33fee9117dcb
Minghai Shang [Thu, 27 Mar 2014 22:46:32 +0000 (15:46 -0700)]
[svc] Initialization of 2nd pass rc for svc two pass rc
Change-Id: If67ed8721f258883e41bab18f5c456505de68785
Alex Converse [Thu, 27 Mar 2014 21:58:43 +0000 (14:58 -0700)]
Automatically count test vectors and make the tables const.
Change-Id: I742b0f26b7d735e75c3653a3e52bd4f4fc198d3d
Minghai Shang [Thu, 27 Mar 2014 22:06:42 +0000 (15:06 -0700)]
Merge "[svc] Verify and store input two pass stats data in 2nd pass rc"
Alex Converse [Thu, 27 Mar 2014 20:44:29 +0000 (13:44 -0700)]
Remove a duplicate block_size variable.
Change-Id: Ia6b1e3c5a8ac21219bbfe9eecdb4801f3eaa10e5
Minghai Shang [Thu, 27 Mar 2014 20:43:20 +0000 (13:43 -0700)]
[svc] Verify and store input two pass stats data in 2nd pass rc
Change-Id: Ib09eedc17ea0ea2eec75d78112e4786d98f382aa
Jingning Han [Thu, 27 Mar 2014 18:44:19 +0000 (11:44 -0700)]
Fix segment_id assignment in update_state_rt for AQ mode
Properly obtain and buffer the segment_id in non-RD mode information
update process.
Change-Id: I43230001872f6a986d12c0d94e98fdec0db3be2c
Johann [Thu, 27 Mar 2014 18:58:26 +0000 (11:58 -0700)]
Merge "Add compile option to parse ELF."
Dmitry Kovalev [Thu, 27 Mar 2014 18:08:12 +0000 (11:08 -0700)]
Merge "Moving thresh_mult{,_sub8x8} from SPEED_FEATURES to VP9_COMP."
Paul Wilkins [Mon, 24 Mar 2014 18:11:47 +0000 (18:11 +0000)]
Further speed trade off adjustments.
Small speed gain for speed 1.
Quality is generally a little up for speed 2.
Speed 3 was similar to speed 4 but now positioned more
evenly between 2 and 4 speed and quality wise.
(opsnr +5.6% ssim +8.25% across all sets)
Speed 4 is a little slower than before but sizable quality gains.
(opsnr +3.7% ssim +6.8% across all sets)
The code has been cleaned up a bit so that for each incremental
speed step changes over the previous speed step are applied.
This makes it easier to see what is changing from one setting to
the next.
Change-Id: I2d98d0d6230af23486adaec01908f58942a7cdeb
Marco Paniconi [Thu, 27 Mar 2014 15:48:22 +0000 (08:48 -0700)]
Merge "aq_mode=3: Set target seg_map in sb-block order."
Paul Wilkins [Fri, 21 Mar 2014 16:14:46 +0000 (16:14 +0000)]
Experimental change to speed 1 settings.
Allow tx search for ARF and GF helps quality but a little slower.
Setting subpel_iters_per_step to 1 improves encode speed.
Setting sf->mode_skip_start = 10 improves speed.
Initial local results suggest overall impact on quality is neutral
but encode is up to 15% faster.
Change-Id: Ibde02cae6626a44c10a1da0cefe888afbb51f037
Tao Bai [Thu, 27 Mar 2014 05:05:24 +0000 (22:05 -0700)]
Add compile option to parse ELF.
Change-Id: I64a81601d11e9fa383435bfd1a1d35206ebb2fc8
Marco Paniconi [Thu, 27 Mar 2014 01:09:20 +0000 (18:09 -0700)]
aq_mode=3: Set target seg_map in sb-block order.
Removes a TODO. Changed meaning of some parameters
(target-max-percent refresh and starting index) to be
defined relative to superblock. Also, modify turn-off condition.
Change-Id: I5e55f372b7079c24f9cdac0b06fa34620dbf456b
Marco Paniconi [Wed, 26 Mar 2014 23:05:45 +0000 (16:05 -0700)]
Move aq_mode=2 (complexity_aq) to separate file.
Change-Id: Iffa45b9b04196c1ded6037622a8644a2500a62de
Jingning Han [Wed, 26 Mar 2014 23:06:01 +0000 (16:06 -0700)]
Merge "Motion referenced partition search for non-RD coding flow"
Dmitry Kovalev [Wed, 26 Mar 2014 22:45:11 +0000 (15:45 -0700)]
Merge "Removing prev_mi_8x8 from MACROBLOCKD."
Dmitry Kovalev [Wed, 26 Mar 2014 22:40:41 +0000 (15:40 -0700)]
Cleaning up vp9_get_mvpred_{av_,}var() functions.
Change-Id: I0df8c2a6d9863f92ee406010f2daeb5e40627649
Dmitry Kovalev [Wed, 26 Mar 2014 21:28:45 +0000 (14:28 -0700)]
Merge "Cleaning up vp9_entropymv.c."
Dmitry Kovalev [Wed, 26 Mar 2014 20:39:00 +0000 (13:39 -0700)]
Merge "Encapsulating CYCLIC_REFRESH struct into .c file."
Jingning Han [Wed, 26 Mar 2014 20:00:06 +0000 (13:00 -0700)]
Motion referenced partition search for non-RD coding flow
This commit enables the non-RD mode decision coding flow to
adaptively apply partition search in non-refresh frame, when the
collocated block in previous frame suggests there might be a motion
activity. It refactors the update_state_rt() function to support
buffer swap of mode_info struct, thereby unifying the encoding
stage across various non-RD coding modes.
It provides 5% compression performance gains in speed -6 for rtc
test set, at about 12% speed slow down.
Change-Id: Iefa374aed5a11c4b7ff9a3ed36a98ea8bd184edb
James Zern [Wed, 26 Mar 2014 19:40:16 +0000 (12:40 -0700)]
Merge "tests: use consistent case for VP[89]"
Dmitry Kovalev [Wed, 26 Mar 2014 18:29:10 +0000 (11:29 -0700)]
Moving thresh_mult{,_sub8x8} from SPEED_FEATURES to VP9_COMP.
SPEED_FEATURES should contain only configuration parameters.
Change-Id: I7d6d0636879c3e87dad09bc9455c1cf1dc039da8
Dmitry Kovalev [Wed, 26 Mar 2014 18:00:35 +0000 (11:00 -0700)]
Encapsulating CYCLIC_REFRESH struct into .c file.
Change-Id: I32695ad703dcbbbbf5f122b403f3d3120a0be366
Dmitry Kovalev [Wed, 26 Mar 2014 17:48:01 +0000 (10:48 -0700)]
Removing prev_mi_8x8 from MACROBLOCKD.
Change-Id: I32beb5f18c10b5771146c55933b5555487f53633
Yaowu Xu [Wed, 26 Mar 2014 16:53:42 +0000 (09:53 -0700)]
Merge "Added a speed feature "allow_skip_recode""
Yaowu Xu [Wed, 26 Mar 2014 16:53:32 +0000 (09:53 -0700)]
Merge "Removed redundant settings"
Jingning Han [Wed, 26 Mar 2014 16:28:55 +0000 (09:28 -0700)]
Merge "Apply early termination in non-RD partition search"
Marco Paniconi [Wed, 26 Mar 2014 16:15:15 +0000 (09:15 -0700)]
Merge "Fix to cylcic refresh: use correct/chosen mode for update_segment."
James Zern [Wed, 26 Mar 2014 05:52:06 +0000 (22:52 -0700)]
Merge "configure: clean up temp gcov (.gcno) files"
Dmitry Kovalev [Wed, 26 Mar 2014 00:41:19 +0000 (17:41 -0700)]
Cleaning up vp9_pattern_search() function.
Change-Id: I8da5e13b23a3d6b73c82bbe443c82dd87fd689f3
Dmitry Kovalev [Wed, 26 Mar 2014 00:17:22 +0000 (17:17 -0700)]
Merge "Removing unused force_next_frame_intra member."
Dmitry Kovalev [Tue, 25 Mar 2014 23:56:33 +0000 (16:56 -0700)]
Merge "Removing redundant references to VP9D_COMP struct."
Marco Paniconi [Tue, 25 Mar 2014 17:33:02 +0000 (10:33 -0700)]
Fix to cylcic refresh: use correct/chosen mode for update_segment.
Fix so that vp9_update_segment_aq() will use the correct (i..e, chosen)
encoding mode (from ctx struct) in update_state.
Change-Id: Icc4b66f3935fad5ec4516a4d57e843d12c365e64
Dmitry Kovalev [Tue, 25 Mar 2014 23:28:49 +0000 (16:28 -0700)]
Merge "Moving setup_{key, inter}_frame() to vp9_onyx_if.c."
Alex Converse [Tue, 25 Mar 2014 22:59:24 +0000 (15:59 -0700)]
Merge "Refactor out zero motion vector equivalence."