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"
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."
James Zern [Sat, 29 Mar 2014 00:09:31 +0000 (17:09 -0700)]
Merge "[svc] Fix SvcTest.SecondPassEncode failure"
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"
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."
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 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: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."
Jingning Han [Tue, 25 Mar 2014 18:05:50 +0000 (11:05 -0700)]
Apply early termination in non-RD partition search
This commit allows the recursive non-RD partition search to early
terminate sub search tree when the cumulative rate-distortion is
already above the best available.
Change-Id: Ifdbcbb4bee229f47fde3033200829577c9f1fc1d
Alex Converse [Tue, 25 Mar 2014 22:42:24 +0000 (15:42 -0700)]
Merge "Add consts to cost_mv_ref."
James Zern [Sat, 22 Mar 2014 20:22:15 +0000 (13:22 -0700)]
configure: clean up temp gcov (.gcno) files
Change-Id: I792e4ef7d81aa81beb28091a37a61bafb91b30f4
James Zern [Sat, 22 Mar 2014 21:13:14 +0000 (14:13 -0700)]
tests: use consistent case for VP[89]
Vp[89] -> VP[89]
Change-Id: Ib5863444c0c022cc51e2f160ecea92ca157fdf1d
Dmitry Kovalev [Tue, 25 Mar 2014 21:28:15 +0000 (14:28 -0700)]
Removing unused force_next_frame_intra member.
Change-Id: I3d9fc6da986d0f1ec682fb12e067c52472453eed
Yaowu Xu [Tue, 25 Mar 2014 21:27:45 +0000 (14:27 -0700)]
Added a speed feature "allow_skip_recode"
This commit added a speed feature to make the logic of calculating
skip_recode on a block level more explicit. This also enable the
feature to be enabled at speed 5 where the previous logic is too
conservative, help gain back the lost speed for --rt(-5).
Change-Id: Ieb37ca3e85c2e7bda343486edf13d5f5395f2233
Dmitry Kovalev [Tue, 25 Mar 2014 21:21:26 +0000 (14:21 -0700)]
Removing redundant references to VP9D_COMP struct.
Change-Id: I4c4772c0e6aca2c7d7085a72412ac8dba8874a3d
Alex Converse [Tue, 25 Mar 2014 21:16:11 +0000 (14:16 -0700)]
Refactor out zero motion vector equivalence.
Change-Id: I6b20248b6f76545356f910ca6386f5466e287b6e
Alex Converse [Tue, 25 Mar 2014 21:15:42 +0000 (14:15 -0700)]
Add consts to cost_mv_ref.
Change-Id: Ie5dadb5c2bcfe80a703edb58a71dc453644c9ade
Dmitry Kovalev [Tue, 25 Mar 2014 00:47:25 +0000 (17:47 -0700)]
Removing redundant vpx_free() call.
above_seg_context is alreaded freed during vp9_remove_common() call.
Change-Id: I16b72c710e71d2f143df2d47e876d220c8d374e0
Yaowu Xu [Tue, 25 Mar 2014 19:33:22 +0000 (12:33 -0700)]
Removed redundant settings
The recode_loop feature is disabled for one-pass always.
Change-Id: I6de8820add4a6f97196874af83a970f9898f842d
Dmitry Kovalev [Tue, 25 Mar 2014 01:32:46 +0000 (18:32 -0700)]
Moving above_context to VP9_COMMON.
Change-Id: I713af99d1e17e05a20eab20df51d74ebfd1a68d2
Jingning Han [Tue, 25 Mar 2014 16:54:32 +0000 (09:54 -0700)]
Fix compiling errors due to git merge
There were a few conflicts between the new non-RD partition search
and recent clean-up patches, which were not caught by git control.
This commit fixed these issues.
Change-Id: Ieebefbd6c19d81d0d13e3c568877d5cce2ab7797
Yaowu Xu [Tue, 25 Mar 2014 17:22:18 +0000 (10:22 -0700)]
Merge "Fixed a build issue"
Yaowu Xu [Tue, 25 Mar 2014 16:48:21 +0000 (09:48 -0700)]
Merge "Change back the scaling calculation."
Yaowu Xu [Tue, 25 Mar 2014 16:39:29 +0000 (09:39 -0700)]
Fixed a build issue
Adding the missed include file.
Change-Id: I7e48df6b0633afbebaf1ccb3062ae404e7203dc9
Jingning Han [Tue, 25 Mar 2014 16:27:03 +0000 (09:27 -0700)]
Merge "Always use adaptive motion search in non-RD coding mode"
Jingning Han [Tue, 25 Mar 2014 16:26:49 +0000 (09:26 -0700)]
Merge "Enable recursive partition selection for non-RD coding mode"
Jingning Han [Tue, 25 Mar 2014 05:31:03 +0000 (22:31 -0700)]
Always use adaptive motion search in non-RD coding mode
This commit takes out the if statements on using adaptive motion
search flag. This feature is automatically enabled in non-RD mode
decision flow for variable partition types search.
Change-Id: I5a25cf9109d84d07aa61b3e02c8d32dda1e90cb0
Yunqing Wang [Tue, 25 Mar 2014 03:38:30 +0000 (20:38 -0700)]
Merge "Fix uninitialized read in postprocessing"
Yaowu Xu [Tue, 25 Mar 2014 00:19:48 +0000 (17:19 -0700)]
Merge "Align threading LFWorkerData to 32 bytes."
Dmitry Kovalev [Tue, 25 Mar 2014 00:17:57 +0000 (17:17 -0700)]
Merge "Making c++ compiler happier."
Alex Converse [Tue, 25 Mar 2014 00:04:45 +0000 (17:04 -0700)]
Merge "Don't subpartion inactive area in rd_use_partition."
Alex Converse [Tue, 25 Mar 2014 00:04:30 +0000 (17:04 -0700)]
Merge "Deduplicate and rename mode info step."
Dmitry Kovalev [Mon, 24 Mar 2014 23:12:42 +0000 (16:12 -0700)]
Merge "Initialization code cleanup."
Dmitry Kovalev [Mon, 24 Mar 2014 22:56:25 +0000 (15:56 -0700)]
Merge "General cleanup in vp9_decoder.{h, c}."
Dmitry Kovalev [Mon, 24 Mar 2014 22:54:38 +0000 (15:54 -0700)]
Merge "Using local variable for token_cache."
Dmitry Kovalev [Mon, 24 Mar 2014 22:52:09 +0000 (15:52 -0700)]
Merge "Adding get_buf_from_mv() function."
Dmitry Kovalev [Mon, 24 Mar 2014 22:44:50 +0000 (15:44 -0700)]
Merge "Cleaning up vp9_aq_cyclicrefresh.{c, h}."
Yunqing Wang [Mon, 24 Mar 2014 21:54:25 +0000 (14:54 -0700)]
Fix uninitialized read in postprocessing
This patch fixed WebRTC Issue 3020: "Uninit error at
vp8_mbpost_proc_down_xmm". The first 8 values in d were not initialized,
but was accessed. This patch fixed c code as well as mmx and sse2 code.
Change-Id: Iaa5b41a4ed3bea971b15fb826ce34b7ab4e36fb1
Jingning Han [Fri, 21 Mar 2014 18:05:39 +0000 (11:05 -0700)]
Enable recursive partition selection for non-RD coding mode
This commit enables a recursive partition type search for non-RD
mode decisions. It allows the encoder to choose variable block
sizes in a 64x64 block based on rate-distortion modeling.
It improves speed -6 coding efficiency for rtc set by 2.4%. Most
of the gains come from 32-40dB range, where many sequences gain
about 5% to 20%. Local tests suggest there is no speed change.
Change-Id: I06300016e500a21652812b7b3b081db39a783d66
Jim Bankoski [Mon, 24 Mar 2014 21:18:24 +0000 (14:18 -0700)]
Merge "vp9_write_bit_buffer.h header statics converted to globals"
Jim Bankoski [Mon, 24 Mar 2014 21:18:07 +0000 (14:18 -0700)]
Merge "vp9_variance.h header static version converted to global"
Dmitry Kovalev [Mon, 24 Mar 2014 21:17:23 +0000 (14:17 -0700)]
Merge "Adding init_rate_control() function + cleanup."
Alex Converse [Wed, 19 Mar 2014 00:00:30 +0000 (17:00 -0700)]
Don't subpartion inactive area in rd_use_partition.
Change-Id: I50db8d3c99eea39e46cc5876cb1f49513c084073
Alex Converse [Fri, 21 Mar 2014 21:24:03 +0000 (14:24 -0700)]
Deduplicate and rename mode info step.
Change-Id: Ie624a119ce8e0891f4ca396040d679e22ef8ce27
Yaowu Xu [Mon, 24 Mar 2014 19:48:27 +0000 (12:48 -0700)]
Align threading LFWorkerData to 32 bytes.
This is to silent a number misalignment warning reported by valgrind.
Change-Id: Ia47a06010b28d7a88dde21f3e4ccb9308fc6f8cf
Dmitry Kovalev [Mon, 24 Mar 2014 19:21:22 +0000 (12:21 -0700)]
Initialization code cleanup.
Change-Id: I47a8b4bf9a6cc0063d1a6785eaaad641d0659e24
Dmitry Kovalev [Mon, 24 Mar 2014 17:48:14 +0000 (10:48 -0700)]
Cleaning up vp9_aq_cyclicrefresh.{c, h}.
Change-Id: I288e5ffade508fc3c803986d47ccf06df8d784dd
Dmitry Kovalev [Mon, 24 Mar 2014 18:27:08 +0000 (11:27 -0700)]
Moving setup_{key, inter}_frame() to vp9_onyx_if.c.
Change-Id: I044e393438c7b58a6393e20efa38fd03d745ad33
Jim Bankoski [Mon, 24 Mar 2014 18:08:27 +0000 (11:08 -0700)]
Merge "refactor reset_skip_txfm_size and elimate a lot of code"
Jim Bankoski [Mon, 24 Mar 2014 18:07:53 +0000 (11:07 -0700)]
Merge "vp9_onyx_int.h convert header statics to inline"
Dmitry Kovalev [Mon, 24 Mar 2014 18:02:27 +0000 (11:02 -0700)]
Cleaning up vp9_entropymv.c.
Change-Id: I01b3530779da89acb84c71bac5ccac456f00c5ac
Marco Paniconi [Mon, 24 Mar 2014 17:54:52 +0000 (10:54 -0700)]
Merge "Fix to a static warning."