]>
granicus.if.org Git - libvpx/log
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
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
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"
Marco Paniconi [Mon, 24 Mar 2014 17:54:52 +0000 (10:54 -0700)]
Merge "Fix to a static warning."
Dmitry Kovalev [Mon, 24 Mar 2014 17:54:22 +0000 (10:54 -0700)]
Adding init_rate_control() function + cleanup.
Change-Id: I49b0937a8dd3520f20435a4817a408a094ab1679
Minghai Shang [Mon, 24 Mar 2014 17:54:06 +0000 (10:54 -0700)]
Merge "[svc] Add min/max q and min/max bitrate in svc test app"
Yunqing Wang [Mon, 24 Mar 2014 17:52:32 +0000 (10:52 -0700)]
Merge "AVX2 SAD Optimization:"
Jim Bankoski [Mon, 3 Mar 2014 23:40:13 +0000 (15:40 -0800)]
vp9_write_bit_buffer.h header statics converted to globals
Change-Id: I12c29a630da1fbc5508f11b61d182f9b527b3a35
Jim Bankoski [Mon, 3 Mar 2014 23:32:38 +0000 (15:32 -0800)]
vp9_variance.h header static version converted to global
Change-Id: I8d02cdb5e7fef02b8c95413dfd239fa51a8c7777
Marco Paniconi [Mon, 24 Mar 2014 16:31:17 +0000 (09:31 -0700)]
Fix to a static warning.
Change-Id: I398decf319c8f4d1b3abe1f276e009840e61b684
Dmitry Kovalev [Mon, 24 Mar 2014 16:27:06 +0000 (09:27 -0700)]
Merge "Removing unused members from VP9D_CONFIG struct."
Jim Bankoski [Mon, 24 Mar 2014 16:26:20 +0000 (09:26 -0700)]
vp9_onyx_int.h convert header statics to inline
Change-Id: I7872b726511887494107466a946e2b34e3d74045
Dmitry Kovalev [Mon, 24 Mar 2014 16:02:06 +0000 (09:02 -0700)]
Merge "Cleaning up vp9_loopfilter.c."
Jim Bankoski [Mon, 24 Mar 2014 15:51:45 +0000 (08:51 -0700)]
refactor reset_skip_txfm_size and elimate a lot of code
Change-Id: Id70bd0ff8836c28d9c8653e018e071ca9fb06610
hkuang [Fri, 21 Mar 2014 21:27:03 +0000 (14:27 -0700)]
Change back the scaling calculation.
Let the calculation to be compatible with Google's HW implementation.
Change-Id: I22e179888cdb0419e230351c0a47661b37051fef
Jim Bankoski [Tue, 11 Mar 2014 16:28:45 +0000 (09:28 -0700)]
vp9_block.h static reconverted to inline
Change-Id: I0e7d2815839d8a64250116a5486570d03659a4c0
Dmitry Kovalev [Sun, 23 Mar 2014 05:31:48 +0000 (22:31 -0700)]
Merge "Removing redundant {above, left}_seg_context manipulation code."
Dmitry Kovalev [Sun, 23 Mar 2014 05:31:38 +0000 (22:31 -0700)]
Merge "Removing output_partition from vp9."
Jingning Han [Sat, 22 Mar 2014 04:43:02 +0000 (21:43 -0700)]
Merge "Reformat non-RD coding flow"
Dmitry Kovalev [Sat, 22 Mar 2014 04:19:31 +0000 (21:19 -0700)]
Merge "Convert use_fast_lpf_pick to an enum."
Dmitry Kovalev [Sat, 22 Mar 2014 04:19:18 +0000 (21:19 -0700)]
Merge "Renaming and making vp9_update_mode_info_border() static."
Dmitry Kovalev [Sat, 22 Mar 2014 01:33:20 +0000 (18:33 -0700)]
Merge "Cleaning up vp9_svc_layercontext.c"
Minghai Shang [Fri, 14 Mar 2014 18:57:51 +0000 (11:57 -0700)]
[svc] Add min/max q and min/max bitrate in svc test app
Change-Id: I67ea45119f23659279d24aa67eb823c751ac86fc
Marco Paniconi [Sat, 22 Mar 2014 00:17:53 +0000 (17:17 -0700)]
Merge "Rename the aq_mode files."
Jingning Han [Thu, 20 Mar 2014 21:06:54 +0000 (14:06 -0700)]
Reformat non-RD coding flow
This commit reformats non-RD coding flow layout to allow mode
decision with fixed and variable block sizes.
Change-Id: I2cdd3bb9f26c499ee4a9849004fd925cdd195d09
Dmitry Kovalev [Fri, 21 Mar 2014 23:31:15 +0000 (16:31 -0700)]
Cleaning up vp9_loopfilter.c.
Change-Id: I7c7cf7d3c7b00d1c74ffa8aa8fb8d78a0e48326f
Dmitry Kovalev [Fri, 21 Mar 2014 23:10:51 +0000 (16:10 -0700)]
Removing output_partition from vp9.
Change-Id: I5e0c558b86cf300722ab34fa45ab4ad7c81bd4df
Dmitry Kovalev [Fri, 21 Mar 2014 22:57:31 +0000 (15:57 -0700)]
Adding get_buf_from_mv() function.
Change-Id: I21aff45546778b8393e2edf2d810448dec1f4cdb
Frank Galligan [Fri, 21 Mar 2014 22:24:39 +0000 (15:24 -0700)]
Merge "Fix libvpx VP9 decoder dr memory errors"
Marco Paniconi [Fri, 21 Mar 2014 21:31:53 +0000 (14:31 -0700)]
Rename the aq_mode files.
Change-Id: Id76a628495c822e23825b66a7589b4a3279680e2
Alex Converse [Fri, 21 Mar 2014 21:59:26 +0000 (14:59 -0700)]
Convert use_fast_lpf_pick to an enum.
Change-Id: I06e17b489dea74dedea356c73ef72dc5ffad3a30
Dmitry Kovalev [Fri, 21 Mar 2014 21:37:01 +0000 (14:37 -0700)]
Making c++ compiler happier.
Change-Id: Ie224e968589bdb0774dc112e6f6df56cc0447465
Dmitry Kovalev [Fri, 21 Mar 2014 21:20:13 +0000 (14:20 -0700)]
General cleanup in vp9_decoder.{h, c}.
Change-Id: I68819558a9c5ac6ea85fe62260712af6f4cc46b7
Dmitry Kovalev [Fri, 21 Mar 2014 21:08:19 +0000 (14:08 -0700)]
Removing unused members from VP9D_CONFIG struct.
Change-Id: I83a201ab4dcf2f00131f2030f382c6dbfcb39d7e
Dmitry Kovalev [Fri, 21 Mar 2014 21:03:49 +0000 (14:03 -0700)]
Merge "Tiny vp9_picklpf.c cleanup."
Dmitry Kovalev [Fri, 21 Mar 2014 21:02:25 +0000 (14:02 -0700)]
Renaming and making vp9_update_mode_info_border() static.
Change-Id: Ibb72a29cae9ca9443aae56fc4c5458d190eae279
Dmitry Kovalev [Fri, 21 Mar 2014 20:56:15 +0000 (13:56 -0700)]
Cleaning up vp9_svc_layercontext.c
Change-Id: I7c94b02f621ccc1a738b0d52edf60e9012cfc014
levytamar82 [Thu, 13 Mar 2014 21:47:30 +0000 (14:47 -0700)]
AVX2 SAD Optimization:
2 functions were optimized for avx2 by using full 256 bit register
In order to handle 32 elements in parallel instead of only 16 in parallel:
1. vp9_sad32x32x4d
2. vp9_sad64x64x4d
The function level gain is 66% and the user level gain is ~1%.
Change-Id: I4efbb3bc7d8bc03b64b6c98f5cd5c4a9dd3212cb
Yunqing Wang [Fri, 21 Mar 2014 20:40:27 +0000 (13:40 -0700)]
Merge "Add prediction mode skipping in non-rd situation"
Dmitry Kovalev [Fri, 21 Mar 2014 20:23:18 +0000 (13:23 -0700)]
Merge "Cleaning up vp9_mcomp.c."
Yunqing Wang [Fri, 21 Mar 2014 19:23:47 +0000 (12:23 -0700)]
Fix libvpx VP9 decoder dr memory errors
Fixed dr memory errors reported in Issue 736:
https://code.google.com/p/webm/issues/detail?id=736
All elements in left_col buffer need to be initialized to ensure
the correctness of SIMD operations in x86 optimized code.
Change-Id: I8e7f26ab45cca8099c1f9342bcf852f828bda7e4
Dmitry Kovalev [Fri, 28 Feb 2014 02:58:32 +0000 (18:58 -0800)]
Using local variable for token_cache.
We use local variable for token_cache in the decoder.
Change-Id: I032763fa7894313cffe73e3f14863ae1d0527665
Yaowu Xu [Fri, 21 Mar 2014 19:13:44 +0000 (12:13 -0700)]
Merge "Fix bad speed settings interaction."
Dmitry Kovalev [Fri, 21 Mar 2014 19:12:55 +0000 (12:12 -0700)]
Removing redundant {above, left}_seg_context manipulation code.
Change-Id: Ib3c1746e61220c629cbd971b2458aa686b5c9e36
Dmitry Kovalev [Fri, 21 Mar 2014 19:02:42 +0000 (12:02 -0700)]
Merge "Reusing {above, left}_seg_context vars in both encoder and decoder."
Dmitry Kovalev [Fri, 21 Mar 2014 19:01:25 +0000 (12:01 -0700)]
Merge "Removing source & source_sz from VP9Decompressor struct."
Dmitry Kovalev [Fri, 21 Mar 2014 19:00:26 +0000 (12:00 -0700)]
Tiny vp9_picklpf.c cleanup.
Change-Id: I1804c3629c3df2b67438e87196ab35fafaddaa24
Yaowu Xu [Fri, 21 Mar 2014 18:13:48 +0000 (11:13 -0700)]
Merge "changed to use correct pred_mv"
Yaowu Xu [Fri, 21 Mar 2014 18:13:43 +0000 (11:13 -0700)]
Merge "Fix a valgrind error"
Yaowu Xu [Fri, 21 Mar 2014 03:02:08 +0000 (20:02 -0700)]
changed to use correct pred_mv
The third pred_mv is stored in x->pred_mv[ref_frame]. This commit make
sure the correct mv is read.
Change-Id: Ibed24daf36703a63f0394c87b2381ee1d2eb7910
Yunqing Wang [Wed, 19 Mar 2014 18:52:13 +0000 (11:52 -0700)]
Add prediction mode skipping in non-rd situation
In non-rd pick_mode code, added mode skipping according to
thresholds. Used rd thresholds now, but we can modified them
later for real-time case.
RTC set borg test showed a 0.095% PSNR gain. For different rtc
clips, the real-time(speed 7) encoder speedup is 2% - 10%.
Change-Id: Ic72535c96b891092c662453be32d3168f7e34dcc
Yaowu Xu [Fri, 21 Mar 2014 15:44:04 +0000 (08:44 -0700)]
Merge "Remove duplicate declaration"
Yaowu Xu [Fri, 21 Mar 2014 02:35:06 +0000 (19:35 -0700)]
Fix a valgrind error
Valgrind was complaining uninitialzed values are being used.
Change-Id: Ia9eb619f4e67d1fb7af1057d50304f15adc02aab
Paul Wilkins [Thu, 20 Mar 2014 15:16:35 +0000 (15:16 +0000)]
Fix bad speed settings interaction.
The flag x->skip_recode interacts badly with
the cpi->sf.use_nonrd_pick_mode and
cpi->sf.skip_encode_sb speed settings.
Restricting the use of the skip_decode flag when
these other speed choices are in use helps quality
for speeds 3 and 4 by a large amount with only a
small impact on speed.
Average improvmentes for 2 pass speed 4:
Derf +8.8%
Yt + 10.53%
Std-Hd +6.95%
yt-hd + 22.95%
Change-Id: I8010876d8012042a11077c92e69d813c3dfa58eb
Marco Paniconi [Fri, 21 Mar 2014 04:15:40 +0000 (21:15 -0700)]
Merge "Some code cleanup for cyclic refresh."
Yaowu Xu [Fri, 21 Mar 2014 00:29:04 +0000 (17:29 -0700)]
Change the min/max q validation in lossless mode
This commit changed how q is validated in lossless mode. With this
commit, when --lossless=1 is specificed at commandline, --min-q and
--max-q are now ignored. This is to make the option non-ambiguious.
Change-Id: I33e85690460537509d33be75d6a3597be4affc09
Yaowu Xu [Wed, 19 Mar 2014 23:19:16 +0000 (16:19 -0700)]
Use local vairable in rd_auto_partition_range()
In addition to a few cleanups.
Change-Id: Ice5938ef494513921a47e7c64ba9928f2202e24e
Marco Paniconi [Fri, 21 Mar 2014 00:58:35 +0000 (17:58 -0700)]
Disable speed 6 for datarate test.
One of the tests for real-time mode is failing at speed 6.
Introduced recently, will enable again when fixed.
Change-Id: I8f42de6a3eca226c9aa5c5e1fab98d629993c087
Marco Paniconi [Thu, 20 Mar 2014 23:42:13 +0000 (16:42 -0700)]
Some code cleanup for cyclic refresh.
Change-Id: I0e4e2462ee27640f9bf4091431241ede6fc97267
Dmitry Kovalev [Thu, 20 Mar 2014 23:08:54 +0000 (16:08 -0700)]
Reusing {above, left}_seg_context vars in both encoder and decoder.
Change-Id: Id1fa36c92cb007b73a450cc8552e810cedad38b9
Tom Finegan [Thu, 20 Mar 2014 22:17:48 +0000 (15:17 -0700)]
Merge "intrapred_test: fix inheritance"
Minghai Shang [Thu, 20 Mar 2014 22:12:14 +0000 (15:12 -0700)]
Merge "[svc] Finalize spatial svc first pass rate control"
Dmitry Kovalev [Thu, 20 Mar 2014 22:01:37 +0000 (15:01 -0700)]
Removing source & source_sz from VP9Decompressor struct.
Change-Id: If4c1a48c60e8b27dd021a83170289ccc5467c6de
Dmitry Kovalev [Thu, 20 Mar 2014 20:43:13 +0000 (13:43 -0700)]
Merge "Removing mi_stream."
Marco Paniconi [Thu, 20 Mar 2014 18:32:39 +0000 (11:32 -0700)]
Log encoding time/fps in vpx_temporal_scalable_patterns
Change-Id: I368750c3641c5daaa8871f3880af5cfcf5e79bba
Yunqing Wang [Fri, 14 Mar 2014 22:42:23 +0000 (15:42 -0700)]
Remove unused mode_sad
Removed mode_sad.
Change-Id: I230b42ac9b617ae2c375e297057aa0756bd355fe
Martin Storsjo [Thu, 20 Mar 2014 06:12:29 +0000 (08:12 +0200)]
ads2armasm_ms: Match the indentation of the previous line
Instead of hardcoding a certain indentation, use the regexp to
provide similar indentation for the new line as well.
Change-Id: Iacb2621b35ce7e1aa3980c1603b8e3ab02d98a35
James Zern [Thu, 20 Mar 2014 02:33:53 +0000 (19:33 -0700)]
Merge "configure: test -m(mmx|sse|sse2|sse3) flags"
James Zern [Thu, 20 Mar 2014 02:10:46 +0000 (19:10 -0700)]
Merge "ads2armasm_ms: Add an ALIGN 4 after ENDP"
Jingning Han [Thu, 20 Mar 2014 01:54:42 +0000 (18:54 -0700)]
Merge "Enable variable block size test in non-RD mode decision"
Dmitry Kovalev [Thu, 20 Mar 2014 01:36:09 +0000 (18:36 -0700)]
Merge "Cleaning up vp9_onyx_if.c and vp9_onyx_int.h."
Dmitry Kovalev [Wed, 19 Mar 2014 23:46:28 +0000 (16:46 -0700)]
Merge "Moving common code into vp9_update_mv_count()."
Jingning Han [Wed, 19 Mar 2014 18:25:40 +0000 (11:25 -0700)]
Enable variable block size test in non-RD mode decision
This is an initial attempt to allow variable block size partition
in non-RD coding flow. It tests 8x8, 16x16 and 32x32 block size per
64x64 block, all using non-RD mode decision and the associated rate
distortion costs from modeling, then selects the best block size to
encode the entire 64x64 block. Such operations are triggered every
other 3 frames. The blocks of intermediate frames will reuse the
collocated block's partition type.
It improves the compression performance by 13.2%. Note that the gains
are not evenly distributed. For many hard clips, the compression
performance is improved by 20% to 28%. Local speed test shows that
it will also increase runtime by 50%, as compared to speed -7. It is
now enabled in speed -6 setting.
Change-Id: Ib4fb8659d21621c9075b3c369ddaa9ecb0a4b204