Age | Commit message (Collapse) | Author |
|
This commit enables a new quantization process for 32x32 2D-DCT
transform coefficient blocks. It improves the compression
performance of speed 5 by 1.4%. The overall compression gains of
speed 5 due to the new quantization scheme is 4.7%. It also includes
the SSSE3 implementation of the 32x32 quantization process.
Change-Id: I0855b124fd6462418683f783f5bcb44255c9993b
|
|
vp9_rdopt is for making rd optimal mode decisions. vp9_rd is for all
other rd related routines. Anything used outside of making an rd optimal
decision belongs in rd.
Change-Id: I772a3073f7588bdf139f551fb9810b6864d8e64b
|
|
|
|
This commit re-designs the quantization process for transform
coefficient blocks of size 4x4 to 16x16. It improves compression
performance for speed 7 by 3.85%. The SSSE3 version for the
new quantization process is included.
The average runtime of the 8x8 block quantization is reduced
from 285 cycles -> 255 cycles, i.e., over 10% faster.
Change-Id: I61278aa02efc70599b962d3314671db5b0446a50
|
|
This breaks the profile 1 bitstream.
Don't force non420 uv transform size to 1/4 y size. In the 4:2:0 case the
chroma corresponding to a luma block is 1/4 its size. In the 4:4:4 case
chroma and luma planes are the same size. Disallowing larger transforms
can result in a loss of compression efficiency and is inconsistent.
For sub-8x8 blocks only average corresponding motion vectors.
4:2:0 and profile 0 behavior remains unchanged.
Change-Id: I560ae07183012c6734dd1860ea54ed6f62f3cae8
|
|
This commit enables a fast path computational flow for forward
transformation. It checks the sse and variance of prediction
residuals and decides if the quantized coefficients are all
zero, dc only, or more. It then selects the corresponding coding
path in the forward transformation and quantization stage.
It is currently enabled in rtc coding mode. Will do it for rd
coding mode next.
In speed -6, the runtime for pedestrian_area 1080p at 1000 kbps
goes down from 14234 ms to 13704 ms, i.e., about 4% speed-up.
Overall coding performance for rtc set is changed by -0.18%.
Change-Id: I0452da1786d59bc8bcbe0a35fdae9f623d1d44e1
|
|
The final goal is eventually to get rid of both itxm_add and fwd_txm4x4.
This patch does it in the decoder.
Change-Id: Ibb3db57efbcbb1ac387c6742538a9fcf2c6f24a5
|
|
Remove unused function parameters from:
vp9_encodemb.c
vp9_encodeframe.c
Change-Id: I07725e5099cf98486e70c9c70babb0cd785c58a9
|
|
Change-Id: I6b520553cb5334b44356dc4651a2dbc1cb93cca5
|
|
Actually, it would be great to have two separate enums INTRA_MODES and
INTER_MODES in future.
Change-Id: I6c4147cf0002853da9c1e03fe9514eab876f01c8
|
|
Change-Id: I81eb1e931e00acfcb65f824e394bbe7795d6deaa
|
|
Change-Id: I5c62fabd380492740c1c2c0d71861e64ee1b05e8
|
|
Renames:
mi_8x8 -> mi
mode_info_stride -> mi_stride
Change-Id: I66f3e5fd1e7b7f46f108af5bb711c5fd9493c1be
|
|
The use of uninitialized skip flag will trigger inconsistency in
coding statistics, when alternate RD and non-RD coding modes are
enabled. This commit fixes this issue and removes unnecessary if
statements from update_state_rt.
Change-Id: I7d549dcb0e3ef48b999e5bbc78174ba84502cfcf
|
|
Change-Id: Id4c5b73ad747a8851969e9daf5bac40b4b9beefc
|
|
Change-Id: I4a54b12e5229705222c5a101258b9d1f81e2948d
|
|
|
|
Change-Id: Iaac57b24f79cd205a8c62bc1177412d22f5787a8
|
|
Change-Id: If41459f8ba186bb47d977b76e2f4bab97078462d
|
|
Change-Id: Id56089107b7458aa59f345edc1b49e62eac41035
|
|
Change-Id: I197670a405f7c2e7796424faa187a61081db8567
|
|
|
|
Usage of encode_b_args is unnecessary because encode_block_pass1() doesn't
use them. That's why optimize_init_b() call is also not required.
Change-Id: Ib6cfe4916c2ca85749c90bb0adcba6fea592f9ac
|
|
Change-Id: If859c9d58a8fe3f478d409b9e9ca59bcee8fd35d
|
|
|
|
Change-Id: I67a82a347245076b6c3b0bc41b587f9961a29943
|
|
Change-Id: Ia5b35494e4e18758f9f6c172526db83a87fdaa26
|
|
Change-Id: If8e340dd6823323025a12f851e78fffdbcaaf6f8
|
|
Change-Id: I036e815ca63d00cba71202ae09ba0f6ef745dcb8
|
|
Change-Id: I35ec77b71e6fd686865cead9281e4dd9e9bc9e86
|
|
Change-Id: I5bcd32874f8a8a693e3eb68ef6728dfbf5475bda
|
|
Change-Id: I5259b68dc1bcceb153e3ffe638a79a59a3019e9d
|
|
Change-Id: Ifdd951f24932839f06d1c700371662511dde6ebe
|
|
|
|
Change-Id: If446225afbb49f6033c2a4516a37c377de6f70f7
|
|
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
|
|
Change-Id: I8d17867a4772554cbba2bd113cc5b4c99d50146d
|
|
We don't use different filter kernels for x and y, it is always one kernel
for both directions.
Change-Id: Iefcbb02ec74bf46ea20d9dca672a3efd5d631517
|
|
Corresponding renames:
subpel_kernel => interp_kernel
vp9_get_filter_kernel() => vp9_get_interp_kernel()
pred_filter_type => pred_interp_filter
adaptive_pred_filter_type => adaptive_pred_interp_filter
mcomp_filter_type => interp_filter
read_interp_filter_type() => read_interp_filter()
write_interp_filter_type() => write_interp_filter()
fix_mcomp_filter_type() => fix_interp_filter()
Change-Id: I1fa61fa1dc81ebbf043457c3ee2d8d4515bee6d3
|
|
New name better describes what the function does.
Change-Id: I33be1366a81f058a9854b804bcde211061187dc7
|
|
Calculate the skip_coeff as part of the encode process, rather than
checking the eobs after the fact with another pass.
Change-Id: Ib41b139e96a97dee30e4b993b4cc53d86337128d
|
|
Moving back to scale_factors struct. We don't need anymore x_offset_q4 and
y_offset_q4 because both values are calculated locally inside vp9_scale_mv
function.
Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
|
|
|
|
Change-Id: Id677df4d3dbbed6fdf7319ca6464f19cf32c8176
|
|
|
|
Change-Id: I7ff2899ea18a55b37f5c581431ef59806f01e009
|
|
string literal to int within an assert
Change-Id: I0c889256b67a078e6e2a79577f0b7ae084243258
|
|
Change-Id: Ibfe04b920648e15bf7116f4fdc98960572a7007e
|
|
|
|
In the decoder we don't need to save eobs, we can pass eob as an argument.
That's why removing eob arrays from VP9Decompressor and TileWorkerData,
and moving eob pointer from macroblockd_plane to macroblock_plane.
Change-Id: I8eb919acc837acfb3abdd8319af63d1bbca8217a
|