Commit Graph

7268 Commits

Author SHA1 Message Date
James Zern
4e6c799e9f Merge "vp9 dec/com: only update frame counts when necessary" 2013-10-18 13:56:11 -07:00
Yaowu Xu
b905dab377 Added necessary includes
To avoid the dependency on the order of header files included.

Change-Id: Ic142638d75fe95e6aba41b11664bfa15f076f793
2013-10-18 13:49:31 -07:00
James Zern
68573c9d2b Merge "vp9 com/dec: avoid reading unavailable above/left" 2013-10-18 13:22:19 -07:00
James Zern
7563dd4a8d vp9 dec/com: only update frame counts when necessary
don't update them when frame_parallel_mode is true

Change-Id: I22ff131a6c6eea238415d10b729f195c7d6dc60d
2013-10-18 22:16:56 +02:00
Yaowu Xu
db1045f2c0 Merge "Use lookup table to simplify logic" 2013-10-18 12:55:24 -07:00
Dmitry Kovalev
5cb8cca9eb Merge "Using stride (# of elements) instead of pitch (bytes) in fdct16x16." 2013-10-18 12:53:09 -07:00
Jingning Han
72033fcff8 Make memory alloc in pick_mode_context bsize aware
This commit makes the buffer allocation of zcoeff_blk array in
pick_mode_context block size aware. It calculates the number of
4x4 blocks in the partition and assigns the memory space accordingly.
This process (and the uninitialization) is done once for each encoding
pass. It allows memory copy of smaller buffer when possible.

For football at 600kbps, the runtimes improve by about 1%:
speed 1, 45961ms -> 45472ms
speed 2, 23863ms -> 23598ms

Change-Id: Id2ca24906fa89f46fa5fe742ec4b8efc2a61f877
2013-10-18 12:42:44 -07:00
James Zern
67e41fe2f6 vp9 com/dec: avoid reading unavailable above/left
in most cases at least the left column was a harmless race as it was
left unused later in the code.

Change-Id: I43211df66fb157c6feecf08c681add4fcf18b644
2013-10-18 21:39:37 +02:00
Yaowu Xu
ea77b03479 Merge "Converted assert to error checking" 2013-10-18 12:39:28 -07:00
Dmitry Kovalev
e5fa44c869 Using stride (# of elements) instead of pitch (bytes) in fdct8x8.
Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: Ibc944952a192e6c7b2b6a869ec2894c01da82ed1
2013-10-18 12:20:26 -07:00
Dmitry Kovalev
1f5d744742 Removing unused struct member mvcount[MV_VALS].
Change-Id: Iaaca88097904b889769901f2bd331f4fff0e5044
2013-10-18 11:56:55 -07:00
Dmitry Kovalev
c093b6228c Merge "Passing block index explicitly instead of using get_sb_index()." 2013-10-18 11:51:24 -07:00
Dmitry Kovalev
1aa7fd5aef Using stride (# of elements) instead of pitch (bytes) in fdct16x16.
Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: I2d95fdcbba96aaa0ed24a80870cb38f53487a97d
2013-10-18 11:49:33 -07:00
Yaowu Xu
535a1085bc Converted assert to error checking
Change-Id: Icb8c677f910f588cc7c97e70f024787fe6789257
2013-10-18 11:49:32 -07:00
Yaowu Xu
ce34b6f50d Merge "Added checking for invalid size" 2013-10-18 11:45:12 -07:00
Dmitry Kovalev
a8ffa96e9b Passing block index explicitly instead of using get_sb_index().
That makes decoder and encoder (only bitstream writing part) a little bit
simpler and faster. Moving get_sb_index() function to the encoder.

Change-Id: Ie91aaeefd69c84b085948267b33556a7666c6278
2013-10-18 11:02:32 -07:00
Yaowu Xu
062fb50562 Added checking for invalid size
Change-Id: I9672a61e60a26e2934796f088880ce4cb49605be
2013-10-18 10:33:38 -07:00
Paul Wilkins
eaf2d4cbfc Merge "Add missing calls to emms in the adaptive quantization code" 2013-10-18 01:59:03 -07:00
Yaowu Xu
dd54f0babd fix a VP8 build issue
coef_counts is now in cpi->mb, instead of cpi. The commit corrected the
mis-use and enable succefual build.

Change-Id: I0e77909d34571cfd2560c66b46b1f8fa0cd1a6b4
2013-10-17 16:02:53 -07:00
Yaowu Xu
30d1ec38a7 Use lookup table to simplify logic
In deciding the transform size for a given block in a given TX_MODE.

Change-Id: I1467da09853e69cd320695a24c04e19a2f3d04fb
2013-10-17 14:54:16 -07:00
Dmitry Kovalev
08fc2c925f Merge "Adding allow_hp as an argument to mv search functions." 2013-10-17 14:47:06 -07:00
Dmitry Kovalev
ab1e65b380 Merge "Using TREE_SIZE macro for vp9_segment_tree." 2013-10-17 14:46:08 -07:00
Dmitry Kovalev
631d216273 Merge "Removing last_kf_gf_q member from VP9Common structure." 2013-10-17 14:46:02 -07:00
Guillaume Martres
ff3aada6cb Add missing calls to emms in the adaptive quantization code
Also avoid using floating-point operations when adaptive quantization is
disabled.

Change-Id: I54936d7afb661df049cdb3ecd246d04ac2a9d8d3
2013-10-17 14:04:41 -07:00
Dmitry Kovalev
2726f383cd Adding allow_hp as an argument to mv search functions.
Making this change in order to move allow_high_precision_mv field
from MACROBLOCKD structure to VP9_COMMON (because it is a frame level
flag).

Change-Id: I1d006ba36d938e0caf4d40fa051e2e38df9c1108
2013-10-17 14:02:04 -07:00
Dmitry Kovalev
e05412fc23 Using stride (# of elements) instead of pitch (bytes) in fdct32x32.
Just making fdct consistent with iht/idct/fht functions which all use
stride (# of elements) as input argument.

Change-Id: Id623c5113262655fa50f7c9d6cec9a91fcb20bb4
2013-10-17 13:02:28 -07:00
Yaowu Xu
518fc282f4 Merge "Prevent first pass from outputing invalid info" 2013-10-17 09:01:14 -07:00
James Zern
820201caa8 vp9_thread: add vp9_worker_execute()
cherry-picked from:
commit 988b70844e03efcfcc075a9bc25d846670494f36
Author: Pascal Massimino <pascal.massimino@gmail.com>
Date:   Fri Aug 2 11:15:16 2013 -0700

    add WebPWorkerExecute() for convenient bypass

    This is mainly for re-using the worker structs without using the
    thread.

    Change-Id: I8e1be29e53874ef425b15c192fb68036b4c0a359

Original source:
 http://git.chromium.org/webm/libwebp.git
 100644 blob c0d318aee628fdf9ba4876451a28aa978f1066b8 src/utils/thread.c
 100644 blob c2b92c9fe353f8e514f78922f3d237204a9cbc66 src/utils/thread.h

Change-Id: I13fe92b1e94062bb99fdeeb7cb0b4b0575d27793
2013-10-17 16:44:22 +02:00
Dmitry Kovalev
01993f7d4a Removing last_kf_gf_q member from VP9Common structure.
It looks like we don't actually use this value.

Change-Id: If21d52b597337e7755f7ea817824fc2b1e477a14
2013-10-16 18:01:48 -07:00
Dmitry Kovalev
1350f885f6 Using TREE_SIZE macro for vp9_segment_tree.
Change-Id: I2965453135643d8f061b9fa9406fdca2db9c961e
2013-10-16 17:35:06 -07:00
Guillaume Martres
7fd2561d64 Merge changes I6226456d,I97925178,I766c4b74
* changes:
  Use a separate MODE_INFO stream for each tile column
  Get rid of "this_mi", use "mi_8x8[0]" everywhere instead
  Make the static_segmentation feature work again
2013-10-16 17:05:39 -07:00
Yaowu Xu
47e784eab6 Prevent first pass from outputing invalid info
First pass does not produce compressed data, therefore encode/decode
match check is not initialized.

Change-Id: I1971a6747337872a850987cc70ba267bd0f1d564
2013-10-16 16:29:28 -07:00
Guillaume Martres
5b984b36ca Use a separate MODE_INFO stream for each tile column
This should make parallel tiles decoding easier to implement.

Change-Id: I6226456dd11f275fa991e4a7a930549da6675915
2013-10-16 16:24:48 -07:00
Guillaume Martres
acf0d56f0b Get rid of "this_mi", use "mi_8x8[0]" everywhere instead
The only case where they were intentionally pointing to different
structures was in mbgraph, and this didn't have the expected behavior
because both of these pointers are used interchangeably through the code

Change-Id: I979251782f90885fe962305bcc845bc05907f80c
2013-10-16 16:24:03 -07:00
Guillaume Martres
9a03154f46 Make the static_segmentation feature work again
Change-Id: I766c4b74db526efa4ff6dd2d95ef3e0beb45b6e5
2013-10-16 16:15:27 -07:00
Dmitry Kovalev
6c891d4303 Merge "Adding get_band_translate() function." 2013-10-16 16:15:18 -07:00
Guillaume Martres
42bcb4a7ad Merge "Prevent accidental changes to the previous frame mode_infos" 2013-10-16 16:07:05 -07:00
Yaowu Xu
f5377cd74f Merge "change to use vp9_idct_32x32_add" 2013-10-16 15:53:37 -07:00
Dmitry Kovalev
9deb614a57 Adding get_band_translate() function.
Moving code that gets band_translate array from get_scan_and_band()
function to get_band_translate() function. Renaming get_scan_and_band() to
get_scan().

Change-Id: I43047c205a1ca2a6e24be44db39dc04b7a385008
2013-10-16 15:11:42 -07:00
Dmitry Kovalev
ab829274b1 Inlining and removing fwd_txm16x16 and fwd_txm8x8 pointers.
Change-Id: I3528ba1c3fee761918509f9d9dc2d842c69f5a44
2013-10-16 15:00:48 -07:00
Dmitry Kovalev
ba71191ce1 Merge "Cleanup of decode_coefs() function." 2013-10-16 14:47:17 -07:00
Yaowu Xu
aa60db19d2 change to use vp9_idct_32x32_add
instead of vp9_idct32x32_1024_add by making use the eob positions

Change-Id: Iafcad20f0c75d8e00536c6a20dda76fe40a973fb
2013-10-16 14:39:14 -07:00
Dmitry Kovalev
501a8c6b91 Merge "Removing print_prob_tree function and vp9_coeff_probs typedef." 2013-10-16 13:13:25 -07:00
Dmitry Kovalev
65583b14e0 Merge "Moving FILTER_BITS constant from vp9_convolve.h to vp9_filter.h." 2013-10-16 13:13:14 -07:00
Dmitry Kovalev
9e66515886 Merge "Using constants instead of plain numbers." 2013-10-16 13:13:04 -07:00
Marco Paniconi
e078c3d854 Initial 1-pass.
Change-Id: I58c5436f5c95f6012fb2891cd2a02f76e4870b6a
2013-10-16 12:04:29 -07:00
Guillaume Martres
e55f60240a Implement variance-based adaptive quantization
This should be similar to what x264 does with --aq-mode 1.
It works well with clips like parkjoy and touhou
(http://x264.nl/developers/Dark_Shikari/LosslessTouhou.mkv).
At low bitrates, the segmentation signaling overhead may negate the
benefits of this feature.

(PGW) Default changed to feature OFF to allow provisional merge.
Change-Id: I938abf9bb487e1d4ad3b0264ea03d9826275c70b
2013-10-16 11:55:13 +01:00
James Zern
660fc5f560 Merge "lint-hunks: remove runtime/int filter" 2013-10-16 01:44:24 -07:00
Adrian Grange
12b2c712ca Merge "Updated encoder to handle intra-only frames" 2013-10-15 17:19:28 -07:00
Johann
e404db44ff Merge "Remove Windows-style newlines using dos2unix" 2013-10-15 17:05:32 -07:00