Commit Graph

8127 Commits

Author SHA1 Message Date
Ralph Giles
a0c6c23eca libmkv: Remove spurious declaration.
Change-Id: I5a83f6651a42df8387aa8996f9353a20e60483df
2014-01-31 15:50:42 -08:00
Yaowu Xu
d009b06ebf Merge "Only allow interp_filter change in SWITCHABLE mode" 2014-01-31 15:44:00 -08:00
Yaowu Xu
328f6d0eef Merge "fix IOCs" 2014-01-31 15:33:22 -08:00
Yaowu Xu
d6a319c62c Merge "Properly merge two different real time modes" 2014-01-31 15:31:33 -08:00
Yaowu Xu
538b1c6d52 Only allow interp_filter change in SWITCHABLE mode
This commit added a logic to prevent the inter_filter type from being
changed if the default interp_filter mode is not switchable. Also, it
sets the default interp_filter to BILINEAR at very and super fast rtc
encoding modes

Change-Id: Ic41e6d31de29795a4ce536ec79afb01cab6daad3
2014-01-31 15:10:08 -08:00
Yaowu Xu
dc9af3b509 fix IOCs
Left shift of negative values caused IOC warnings.

Change-Id: I6f41b020ca0ff51f7861719d41393e9460b75d4e
2014-01-31 15:07:51 -08:00
Yaowu Xu
6a4e2ddabc Properly merge two different real time modes
--rt --cpu-used=-5 uses the progressive rtc mode
--rt --cpu-used=-6 uses the new super fast rtc mode

Change-Id: Id6469ca996100cdf794a0e42d76430161f22f976
2014-01-31 15:07:51 -08:00
Yunqing Wang
903801f1ef vp9 decoder: row-based multi-threaded loopfilter
Implemented parallel loopfiltering, which uses existing tile-
decoding threads. Each thread works on one row, and when that row
is loopfiltered, it moves to next unattended row. To ensure the
correct filtering order, threads are synchronized and one
superblock is filtered only if the superblocks it depends on are
filtered already.

To reduce synchronization overhead and speed up the decoder, we use
nsync > 1 for high resolution.

Performance tests:
1. on desktop:
8-tile 4k video using 8 threads, speedup: 70% - 80%
4-tile HD video using 4 threads, speedup: ~35%
2. on mobile device(Nexus 7):
4-tile 1080p video using 4 threads, speedup: 18% - 25%
4-tile 1080p video using 2 threads, speedup: 10% - 15%

Change-Id: If54b4a11960dd706c22d5ad145ad94156031f36a
2014-01-31 14:44:53 -08:00
Alex Converse
e78c174e54 Cleanup block_rd_txfm.
* Avoid unnecessary type erasure
* Prune unused/duplicate fields from struct rdcost_block_args
* Make struct rdcost_block_args a local

Change-Id: I4f1fd4837ccd028bbfe727191ee8d69f0463b7e5
2014-01-31 12:13:18 -08:00
Adrian Grange
42bc14e619 Merge "Add constant to represent minimum KF boost" 2014-01-31 11:10:04 -08:00
Adrian Grange
64e2597465 Disable update of last_show_frame for existing frame
When showing a previously decoded frame, i.e. when
show_existing_frame=1, the update of the
last_show_frame flag must be disabled.

This is to ensure that the last_show_frame flag
reflects the state of the flag for the immediately
previously decoded frame rather then the value that
was forced to ensure that a previously decoded frame
would be displayed.

This patch also adds a test vector to verify that the
display_existing_frame flag works as expected. Code
for generating the test vector can be found in this
patch:
https://gerrit.chromium.org/gerrit/#/c/68581/

(Bug originally reported by Alexander Voronov
<ru.xalba@gmail.com>).

Change-Id: I731d288fba02088959f7fcc87707137fffc6acf5
2014-01-31 08:55:01 -08:00
Jim Bankoski
da6b18622f remove confusing compressor_speed
use mode instead

Change-Id: I419d7a2dc4b0714ca6ff723c5e824521c150c460
2014-01-31 07:55:19 -08:00
Adrian Grange
284e793d5a Add constant to represent minimum KF boost
Added a constant to represent the minimum KF boost
rather than using the magic number 2000 in the code.

Change-Id: I9428b61f47d26312caff81c6f9ae8587df004791
2014-01-31 07:52:09 -08:00
Yaowu Xu
6f954c7b5c Merge "Replace inline with INLINE" 2014-01-30 12:05:09 -08:00
James Zern
46f02da747 Merge "tests: fix a few msvc warnings" 2014-01-30 12:03:36 -08:00
Yaowu Xu
5ebed3e861 Replace inline with INLINE
So x86_64-win64-vs11 can build successfully.

Change-Id: If354c2ea3921fac8c9b413ed39223e70bc20c535
2014-01-30 11:48:16 -08:00
Alex Converse
54ba75a5ee Merge "Enforce the use of profile 1 for non-420 content." 2014-01-30 11:01:53 -08:00
Yaowu Xu
c0856b98cc Merge "Fixing out of bounds access in frame_refs[] array." 2014-01-30 09:34:18 -08:00
Yaowu Xu
127f0a0c5f Merge "Fix some automerge artifacts" 2014-01-30 09:33:24 -08:00
Yaowu Xu
e127bb8a2b Merge "Fix a build issue for --enable-intern-stats" 2014-01-30 09:33:20 -08:00
Yaowu Xu
4c0a623124 Fix some automerge artifacts
Some changes in 1ca1186 were mistakenly reverted by a later merge,
this commit re-instated the chanages from values to enums.

Change-Id: Ia6b01c31da584a1f612996e6432612c1295b9eaf
2014-01-30 09:01:09 -08:00
Yaowu Xu
6f81942f0e Fix a build issue for --enable-intern-stats
Change-Id: Iea7c9fa0726dbf9792eea79e6a05eb8a3c718d45
2014-01-30 08:20:08 -08:00
Dmitry Kovalev
0768fc0bad Merge "Changing ivf_write_frame_header() function signature." 2014-01-29 22:07:17 -08:00
Dmitry Kovalev
1bd69ac57f Fixing out of bounds access in frame_refs[] array.
Change-Id: I08f45573e0b2195c09fb6aecacb4c57431a711ea
2014-01-29 22:02:24 -08:00
James Zern
376c5386a4 Merge "obj_int_extract (msvs): add missing project dep" 2014-01-29 20:23:10 -08:00
Dmitry Kovalev
373b0f9ae3 Changing ivf_write_frame_header() function signature.
Replacing vpx_codec_cx_pkt argument with two separate pts and frame_size.

Change-Id: I7b37e379ee71342520cf08f03acfb4b499b2cbe4
2014-01-29 17:57:21 -08:00
James Zern
1c3de84161 obj_int_extract (msvs): add missing project dep
obj_int_extract.bat
this project and target still need some work to allow for concurrent
builds to succeed from the command line.

Change-Id: Ieb3bddc54636e77519083c48573909616257eb23
2014-01-29 17:26:02 -08:00
Yaowu Xu
96dc80da61 Merge "create super fast rtc mode" 2014-01-29 16:36:20 -08:00
Yaowu Xu
08b912b4d1 Merge "Add a strict mode for auto_min_max_partition_size feature" 2014-01-29 16:36:06 -08:00
James Zern
77e64d8c13 tests: fix a few msvc warnings
Change-Id: I7ee89d6fc2afc20563d1784598ce83e29c0e6651
2014-01-29 15:48:45 -08:00
Yaowu Xu
1ca1186529 Add a strict mode for auto_min_max_partition_size feature
In this new mode, the size range is strictly determined by the min
and max partition size in neighborhood blocks.

Niklas720 encoding time at cpu-used -5 goes from 56250ms to 50676ms,
a 10% reduction.

Change-Id: I316b0e2ac967ff3fad57b28d69c0ec80b7d8b34e
2014-01-29 14:51:51 -08:00
Dmitry Kovalev
afc8f43448 Merge "Moving RATE_CONTROL struct to vp9_ratectrl.h." 2014-01-29 14:02:26 -08:00
Dmitry Kovalev
0ac4e139d4 Merge "Removing ONEPASS_FRAMESTATS struct." 2014-01-29 14:00:25 -08:00
Deb Mukherjee
56200336d1 Merge "Enables alt-ref frames in one pass mode" 2014-01-29 13:37:30 -08:00
Dmitry Kovalev
5670f1e2a8 Merge "Finally removing vp9_setup_interp_filters() function." 2014-01-29 12:54:21 -08:00
Dmitry Kovalev
126b096b3c Merge "Cleaning up vp9_firstpass.c." 2014-01-29 12:50:26 -08:00
Dmitry Kovalev
a8b547ea4d Merge "vpxenc: Relocate rate/quantizer histogram code." 2014-01-29 12:47:12 -08:00
Yunqing Wang
ce1da99745 Merge "Add macros for convolve functions" 2014-01-29 12:45:49 -08:00
Dmitry Kovalev
f11da2b550 vpxenc: Relocate rate/quantizer histogram code.
Adding rate_hist.{h, c} files.

Change-Id: Iaa28af6b25ec8982966a7296a073d6017b3a7f96
2014-01-29 12:28:29 -08:00
Dmitry Kovalev
b00eb5c464 Finally removing vp9_setup_interp_filters() function.
Change-Id: If446225afbb49f6033c2a4516a37c377de6f70f7
2014-01-29 11:29:34 -08:00
Dmitry Kovalev
b496d141af Cleaning up vp9_firstpass.c.
Change-Id: Ic2ff6405f01fd43d07c5ee3b5e374909401115cc
2014-01-29 11:26:09 -08:00
Dmitry Kovalev
99d39e5b99 Merge "Adapting decode_with_drops example to use new file reading API." 2014-01-29 11:21:08 -08:00
Deb Mukherjee
50bf8fd4f5 Enables alt-ref frames in one pass mode
Includes a few fixes and clean-ups that adds the ability
to use alt-ref frames in one-pass mode.
Whether alt-refs are actually used or not is controlled by a
macro USE_ALTREF_FOR_ONE_PASS in vp9_firstpass.c.

This first cut seems to improve derf by 15+% in 1-pass mode.
But further experiments with parameters are underway.

Change-Id: I78254421435478003367c788c7930d2dc4ee2816
2014-01-29 11:04:52 -08:00
Dmitry Kovalev
834f2fbcec Adapting decode_with_drops example to use new file reading API.
Change-Id: Idd1acfcf8bb16a2ddb9c6c1c841a7741e90589d9
2014-01-29 11:02:17 -08:00
Dmitry Kovalev
2e862ce71c Adapting postproc example to use new file reading API.
Change-Id: Ib3747c81db8cc89b5d7012db557411a3b49712aa
2014-01-29 10:55:59 -08:00
Jim Bankoski
ea8aaf15b5 create super fast rtc mode
This patch only works if the video is a width and height that are both
a multiple of 32..   It sets every partition to 16x16, and does INTRADC
only on the first frame and ZEROMV on every other frame.   It always does
does the largest possible transform, and loop filter level is set to 4.

Was ~20% faster than speed -5 of vp8

Now 20% slower but adds motion search ( every block ), nearest, near
and zeromv

The SVC test was changed because - while this realtime mode produces
bad quality albeit quickly, it isn't obeying all the rules it should
about which frames are available.

Change-Id: I235c0b22573957986d41497dfb84568ec1dec8c7
2014-01-29 08:39:39 -08:00
Paul Wilkins
c382136122 Trap divide by 0.
Trap divide by 0 that could occur with a 0 rate target
in aq mode COMPLEXITY_AQ.

Change-Id: I034514f512b2a0db470ae8d37ea395278bf473cf
2014-01-29 14:59:04 +00:00
Yunqing Wang
3c29cbffbf Add macros for convolve functions
Added macros to reduce the code duplication.

Change-Id: I1916aa5a386ea07d961d4ec439ab09bb8c45487d
2014-01-28 18:40:23 -08:00
Johann
3b83a395da Correct OUTPUT_C_HEADER
OUTPUT_FMT_C_HEADER

Change-Id: Ic1a583352ead8268efc39f1b89257e9c622e1613
2014-01-28 15:57:33 -08:00
Jim Bankoski
d9201cb109 Merge "Reintroduce modelling for some speeds" 2014-01-28 15:12:03 -08:00