Dmitry Kovalev [Wed, 9 Apr 2014 17:46:54 +0000 (10:46 -0700)]
Fixing broken build.
Change-Id: I9b8f9a3f4fa9d48695149dd68ecb5e8d84accafe
Dmitry Kovalev [Wed, 9 Apr 2014 17:27:05 +0000 (10:27 -0700)]
Merge "Converting set_prev_mi() to get_prev_mi()."
Yunqing Wang [Wed, 9 Apr 2014 17:26:42 +0000 (10:26 -0700)]
Merge "Use source frame difference to make partition decision"
Dmitry Kovalev [Wed, 9 Apr 2014 17:25:59 +0000 (10:25 -0700)]
Merge "Applying q_trans[] inside set_encoder_config()."
Jingning Han [Wed, 9 Apr 2014 16:07:45 +0000 (09:07 -0700)]
Merge "Select prediction filter type in non-RD mode decision"
Deb Mukherjee [Wed, 9 Apr 2014 05:19:38 +0000 (22:19 -0700)]
Merge "High-level hooks for Profile 2 (10/12 bit)"
Dmitry Kovalev [Wed, 9 Apr 2014 02:43:08 +0000 (19:43 -0700)]
Applying q_trans[] inside set_encoder_config().
Change-Id: Ib64edeb58b3e25488fb85bbe85c9decb15b4d0a1
Dmitry Kovalev [Wed, 9 Apr 2014 01:23:15 +0000 (18:23 -0700)]
Merge "Cleaning up encode_frame_internal()."
Dmitry Kovalev [Wed, 9 Apr 2014 01:22:34 +0000 (18:22 -0700)]
Merge "Cleaning up vp9_firstpass.c"
Dmitry Kovalev [Wed, 9 Apr 2014 01:19:21 +0000 (18:19 -0700)]
Merge "Adding vp9_ssim.h file."
Frank Galligan [Wed, 9 Apr 2014 00:13:33 +0000 (17:13 -0700)]
Merge "Fix decoder resolution change with tiles"
Yunqing Wang [Wed, 2 Apr 2014 00:32:20 +0000 (17:32 -0700)]
Use source frame difference to make partition decision
Calculate the difference variance between last source frame and
current source frame. The variance is calculated at 16x16 block
level. The variances are compared to several thresholds to decide
final partition sizes.
An adaptive strategy is implemented to decide using
SOURCE_VAR_BASED_PARTITION or FIXED_PARTITION based on motions
in the video. The switching test is done once every
search_type_check_frequency frames.
The selection of source_var_thresh needs to be investigated
further later.
RTC set Borg test showed 0.424% overall psnr gain, and 0.357%
ssim gain. For clips with large enough static area, the
encoding speedup is around 2% to 15%.
Change-Id: Id7d268f1d8cbca7fb8026aa4a53b3c77459dc156
Jingning Han [Fri, 4 Apr 2014 22:59:10 +0000 (15:59 -0700)]
Select prediction filter type in non-RD mode decision
This commit allows the non-RD mode decision flow to select
prediction filter type in NEWMV mode. It provides 8.14% compression
performance gains in both settings of AQ=0 and 3. The current speed
impact is about 5% to 10% slower.
Change-Id: Id66ecebf77abd8f90fb3f6a066c0e8dfb4bf1c42
Deb Mukherjee [Sat, 5 Apr 2014 00:30:16 +0000 (17:30 -0700)]
High-level hooks for Profile 2 (10/12 bit)
Adds some high-level hooks for profile 2 before further
progress on the implementation.
According to the definitiion in this patch:
1. Profile 2 only supports 10 or 12 bit color but not 8
2. Profile 2 supports all color sampling modes: 444, 422 and 420,
and alpha plane.
3. Profile 3 is currently undefined.
Please consider the definition carefully and suggest modifications
to the definition as needed.
Change-Id: I5b284fc679e54ac5aee171af72fa7994cfd28995
Dmitry Kovalev [Tue, 8 Apr 2014 23:08:39 +0000 (16:08 -0700)]
Adding vp9_ssim.h file.
Change-Id: Ib3b3864a6018c62ac1ea18e30795af74464596cd
Dmitry Kovalev [Tue, 8 Apr 2014 22:21:30 +0000 (15:21 -0700)]
Cleaning up vp9_firstpass.c
Change-Id: Ie5723690f7c0bfa29a7ccef5da0c6c6326600ee6
Frank Galligan [Mon, 7 Apr 2014 03:07:14 +0000 (20:07 -0700)]
Fix decoder resolution change with tiles
There was a bug with the decoder that if you started the decoder
with more threads than the first frame had tile columns. Afterwards
tried to decode a frame with more tile columns than the first frame,
the decoder would hang. E.g. run vpxdec --threads=4. The first frame
had two tile columns, then the next key frame had 4 tile columns, the
decoder would hang. If you started with 4 tiles and switched to 2
tiles the decoder would be fine. The issue is that the worker the thread
loop is using is stale.
I added a test vector "vp90-2-14-resize-848x480-1280x720.webm" that
exhibited the bug.
Change-Id: I7bdd47241a52ac0fe1c693a609bc779257e94229
Dmitry Kovalev [Tue, 8 Apr 2014 22:06:29 +0000 (15:06 -0700)]
Merge "Cleaning up vp9_ratectrl.c file."
Dmitry Kovalev [Tue, 8 Apr 2014 20:47:41 +0000 (13:47 -0700)]
Merge "Cleaning up vp9_diamond_search_sad_c() function."
Dmitry Kovalev [Tue, 8 Apr 2014 19:45:49 +0000 (12:45 -0700)]
Merge "Moving init_rate_control() to vp9_ratectrl.{c, h}."
Dmitry Kovalev [Tue, 8 Apr 2014 18:59:41 +0000 (11:59 -0700)]
Cleaning up vp9_ratectrl.c file.
Change-Id: If8044d9c71afe02ed1e6c94487344e143bdfcd74
Dmitry Kovalev [Tue, 8 Apr 2014 18:41:12 +0000 (11:41 -0700)]
Renaming VP9D_COMP & VP9Decompressor to VP9Decoder.
Change-Id: Ieb9b455b8aaef9884391021b7f640ef24c554687
Yaowu Xu [Tue, 8 Apr 2014 14:17:38 +0000 (07:17 -0700)]
Merge "vp9_ratectrl: change ARF overlays rate correction factor"
Yaowu Xu [Tue, 8 Apr 2014 14:14:21 +0000 (07:14 -0700)]
Merge "Replace imprecise 32 bits calculations by 64 bits calculations"
Yaowu Xu [Tue, 8 Apr 2014 14:13:49 +0000 (07:13 -0700)]
Merge "vp9_firstpass: Get rid of magic number in bits per MB calculation"
Dmitry Kovalev [Tue, 8 Apr 2014 05:39:38 +0000 (22:39 -0700)]
Merge "Moving compute_qdelta functions into vp9_ratectrl.{h, c}."
Marco Paniconi [Tue, 8 Apr 2014 01:31:56 +0000 (18:31 -0700)]
Merge "Add constrained-copy partition to speed features."
Dmitry Kovalev [Mon, 7 Apr 2014 23:57:53 +0000 (16:57 -0700)]
Moving compute_qdelta functions into vp9_ratectrl.{h, c}.
Change-Id: I512f2a287dd8765879a2d1144e2f028dc65f71ff
Dmitry Kovalev [Mon, 7 Apr 2014 23:28:35 +0000 (16:28 -0700)]
Cleaning up vp9_diamond_search_sad_c() function.
Change-Id: I0816ec12ec0a6f21d0f25f10c214b5fd327afc6c
Dmitry Kovalev [Mon, 7 Apr 2014 23:13:04 +0000 (16:13 -0700)]
Merge "Fixing memory leak introduced in previous commit."
Dmitry Kovalev [Mon, 7 Apr 2014 23:01:34 +0000 (16:01 -0700)]
Converting set_prev_mi() to get_prev_mi().
Change-Id: Iad4002d7aecaae0e25d88e286bacde7e6cd7264f
Dmitry Kovalev [Mon, 7 Apr 2014 22:51:48 +0000 (15:51 -0700)]
Cleaning up encode_frame_internal().
Change-Id: I9c5f7edc2d5d1ec5aee396b87bdfc99ee21c435a
Marco Paniconi [Fri, 4 Apr 2014 22:10:14 +0000 (15:10 -0700)]
Add constrained-copy partition to speed features.
Copy up to a certain bsize, otherwise set to a fixed bsize.
This helsp to reduce artifact near moving boundary caused by full partition
copy without checking motion of super-block.
This artifact can occur at speeds 3,4 in real-time mode.
Issue: https://code.google.com/p/webm/issues/detail?id=738.
Change-Id: I05812521fd38816a467f72eb6a951cae4c227931
Joshua Litt [Mon, 7 Apr 2014 21:43:56 +0000 (14:43 -0700)]
Merge "Small fixes to script based off of cry-infra"
Dmitry Kovalev [Mon, 7 Apr 2014 21:41:42 +0000 (14:41 -0700)]
Merge "Rewriting calc_plane_error() function."
Joshua Litt [Fri, 4 Apr 2014 23:59:04 +0000 (16:59 -0700)]
Small fixes to script based off of cry-infra
Change-Id: I5a65d6fdb27516aefda0473ac45b05186cf0913c
Dmitry Kovalev [Mon, 7 Apr 2014 21:35:54 +0000 (14:35 -0700)]
Merge "General vp9_encodeframe.c cleanup."
Dmitry Kovalev [Mon, 7 Apr 2014 21:34:46 +0000 (14:34 -0700)]
Moving init_rate_control() to vp9_ratectrl.{c, h}.
Change-Id: Iab3effc39064f265426c82b455ef38d37dcce5a8
Dmitry Kovalev [Mon, 7 Apr 2014 21:21:43 +0000 (14:21 -0700)]
Fixing memory leak introduced in previous commit.
Commit introduced the leak: "Removing XMA legacy from VP9 code."
I5e9dfc50b6312848df8c3b8276f6b4d0c7ff9cf9
Change-Id: Ia1f91bb8403bef340de9f089fa78b3fccc3e9917
Dmitry Kovalev [Mon, 7 Apr 2014 21:18:02 +0000 (14:18 -0700)]
Merge "Cleaning up vp9_speed_features.c."
Dmitry Kovalev [Mon, 7 Apr 2014 20:16:06 +0000 (13:16 -0700)]
Merge "Removing unused seg0_* vars."
Dmitry Kovalev [Mon, 7 Apr 2014 20:15:58 +0000 (13:15 -0700)]
Merge "Moving {restore, save}_coding_context to vp9_onyx_if.c"
Dmitry Kovalev [Mon, 7 Apr 2014 20:06:01 +0000 (13:06 -0700)]
Merge "Cleaning up vp9_{cx, dx}_iface.c files."
Dmitry Kovalev [Fri, 4 Apr 2014 17:52:20 +0000 (10:52 -0700)]
Cleaning up vp9_speed_features.c.
Change-Id: I7b2b690d2d51d55daa642be4131e5febd78cbe0a
Dmitry Kovalev [Mon, 7 Apr 2014 18:31:26 +0000 (11:31 -0700)]
Adding temp svc variable.
Change-Id: Ic68caec1bcb8a88f443c3e40ce9770eade5bd320
Dmitry Kovalev [Mon, 7 Apr 2014 17:38:51 +0000 (10:38 -0700)]
Cleaning up vp9_{cx, dx}_iface.c files.
Change-Id: Ib4e31ba74c4b882bd93942ef743f4a189892738d
Dmitry Kovalev [Fri, 4 Apr 2014 22:54:31 +0000 (15:54 -0700)]
Moving {restore, save}_coding_context to vp9_onyx_if.c
These functions do nothing about rate control.
Change-Id: I714e80b1c1f4f9aa157a56df705247fce6db138d
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 [Mon, 7 Apr 2014 08:49:21 +0000 (01:49 -0700)]
Merge "Cleaning up vp9_refining_search_sadx4() function."
Dmitry Kovalev [Mon, 7 Apr 2014 08:46:28 +0000 (01:46 -0700)]
Merge "Moving all RATE_CONTROL initialization to init_rate_control()."
Jingning Han [Sun, 6 Apr 2014 18:13:32 +0000 (11:13 -0700)]
Merge "Set up early RD cost check for NEWMV in non-RD mode decision flow"
Jingning Han [Fri, 4 Apr 2014 01:04:04 +0000 (18:04 -0700)]
Set up early RD cost check for NEWMV in non-RD mode decision flow
This commit estimates the motion vector rate cost right after full
pixel motion search. It combines this and the mode cost and compares
the corresponding rate-distortion cost. If it is already above the
current best one, skip the rest sub-pixel motion search and modeling
process. For pedestrian_area 1080p at 4000 kpbs, the speed -5 runtime
goes down from 39425 ms -> 38399 ms.
Change-Id: If4cd7119fd6c266798d5cf1d19d19ab425e52a26
Dmitry Kovalev [Fri, 4 Apr 2014 22:47:34 +0000 (15:47 -0700)]
Merge "Refactoring decode_one() function."
Dmitry Kovalev [Fri, 4 Apr 2014 22:46:55 +0000 (15:46 -0700)]
Moving all RATE_CONTROL initialization to init_rate_control().
Change-Id: I4685706b816dd1c45500e1387c9f63edb2fa1962
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 [Thu, 3 Apr 2014 22:51:40 +0000 (15:51 -0700)]
General vp9_encodeframe.c cleanup.
Change-Id: Ie364fe837002de96923da2c1c0ff8bb4b8d469a7
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:59:21 +0000 (18:59 -0700)]
Cleaning up vp9_refining_search_sadx4() function.
Change-Id: I47a7148bf746f61d0c4947f9b22624a8c071359f
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"