Commit Graph

5536 Commits

Author SHA1 Message Date
Yunqing Wang
1f2200080b Revert "Making vp9_get_sse_sum_{8x8, 16x16} static."
This reverts commit e8bbb3d9db.

Change-Id: Ie368d36fd249d323d859d208609c711f04537bbc
2014-05-27 13:37:08 -07:00
Deb Mukherjee
444f93945b Merge "Remove Wextra warnings from vp9_sad.c" 2014-05-27 11:54:05 -07:00
Yunqing Wang
a591ac9e5a Merge "Fix decoder mismatch in sub-pixel AVX2 intrinsic filters" 2014-05-27 10:52:16 -07:00
Dmitry Kovalev
bf503e5236 Merge "Reusing rd_less_than_thresh() function." 2014-05-27 10:50:55 -07:00
Paul Wilkins
debd048531 Merge "Further first pass allocation changes." 2014-05-25 14:48:36 -07:00
Paul Wilkins
620ce56154 Merge "Re-factor bit allocation in first pass." 2014-05-25 14:47:35 -07:00
levytamar82
773596050f Fix decoder mismatch in sub-pixel AVX2 intrinsic filters
The subpixel SSSE3 was fixed in this patch:
https://gerrit.chromium.org/gerrit/#/c/70283/
So the equivalent AVX2 is fixed accordingly.

Change-Id: Ieebbc1949c99d34b12b8b47692df71aca5001f3a
2014-05-23 16:48:40 -07:00
Jingning Han
59c3f446fe Merge "Inverse 16x16 2D-DCT SSSE3 implementation" 2014-05-23 16:01:22 -07:00
Jingning Han
48b0891370 Inverse 16x16 2D-DCT SSSE3 implementation
This commit enables the SSSE3 implementation of full inverse 16x16
2D-DCT. The unit runtime goes down from 1642 cycles to 1519 cycles,
about 7% speed-up.

Change-Id: I14d2fdf9da1fb4ed1e5db7ce24f77a1bfc8ea90d
2014-05-23 15:09:35 -07:00
Yunqing Wang
67ca5b586a Merge "Fix decoder mismatch in sub-pixel SSSE3 intrinsic filters" 2014-05-23 14:24:48 -07:00
Dmitry Kovalev
d7d7cedaaa Merge "Removing vp9_pragmas.h." 2014-05-23 12:58:00 -07:00
Paul Wilkins
1edbaeb09d Further first pass allocation changes.
Further changes to first pass allocation for gf/arf groups.
Three variables removed from TWO_PASS structure as only
now used locally. Dont adjust gf_group_bits in the post
encode update as this will no longer have any effect.

Change-Id: Iff89b225db923fc856f5d2aedbc899f1d7d68b55
2014-05-23 20:21:25 +01:00
Yunqing Wang
c5443fc881 Fix decoder mismatch in sub-pixel SSSE3 intrinsic filters
In 8-tap filtering, to guarantee the intermediate results fit in
16 bits, the order of accumulating the products needs to be done
correctly, and the largest product should be added last. This
patch fixed the problem using the method in commit "Correct ssse3
8/16-pixel wide sub-pixel filter calculation".

Change-Id: I79d0ad60c057b15011ece84cda9648eee0809423
2014-05-23 11:52:20 -07:00
Alex Converse
52b32ad025 Merge "Use offset mode info when filling pc tree." 2014-05-23 10:19:13 -07:00
Alex Converse
7c8479acea Merge "Always partition check after keyframe (rt speed 5)" 2014-05-23 10:19:03 -07:00
Paul Wilkins
03eb06212a Re-factor bit allocation in first pass.
Restructuring to allocate the bits for each frame in
a GF group at the time the group is defined.

At the moment the allocation closely mirrors what
we had before.

Also changes the default rate adjustment method to
LONG_TERM_VBR_CORRECTION.

Change-Id: Ie5793c46c6b9c888cead5d8790792efd7d60b7c1
2014-05-23 18:01:54 +01:00
Yaowu Xu
9410330893 Merge "change to use assembly version of ssse3 filter code" 2014-05-23 08:02:28 -07:00
Deb Mukherjee
916550428d Remove Wextra warnings from vp9_sad.c
As a side-effect, the sad unit tests for VP8 and VP9
had to be separated.

Change-Id: I068cc2391eed51e9b140ea6aba78338c5fec8d71
2014-05-22 22:21:16 -07:00
Dmitry Kovalev
d1ad3b678b Merge "Adding several consts to assign_std_frame_bits()." 2014-05-22 19:26:39 -07:00
Yaowu Xu
7a0c9b82f2 change to use assembly version of ssse3 filter code
As mismatchs were found  between the intrinsic version and c only. The
commit temporarily revert to use the matching assembly version to
allow further investigation.

Change-Id: I08436c47d4888b562c0eac8e8856d90a831442df
2014-05-22 17:11:57 -07:00
Yunqing Wang
aaf204e550 Merge "Fix a decoding mismatch in sub-pixel filters" 2014-05-22 17:09:14 -07:00
Alex Converse
b9c24dfa23 Always partition check after keyframe (rt speed 5)
Prevents too small partitions from being copied to the next frame.

Change-Id: I4b97c30b27d06051574d54aaaca5434407a0c9ff
2014-05-22 16:51:06 -07:00
Alex Converse
80e5326cf2 Use offset mode info when filling pc tree.
Use the appropriate subblock offset mode info rather than the parent
block base, when filling mbmi in the pc tree in nonrd_use_partition.
This mimics what is done in the vertical case and what is done for
both cases in nonrd_pick_partition.

This change has little practical effect at the moment since in speed 5
rt horizontal and vertical partitions are currently only used unpaired
at edges of the picture.

Change-Id: I4632f66ca84086dac56c7d36b45ddbe38a06f42a
2014-05-22 16:24:40 -07:00
Deb Mukherjee
701d907f3a Fix for missing initialization of ratectrl vars
Initializes total_actual_bits and total_target_bits to 0

Change-Id: Ia50d3bf5df765146a44aa1f6045e73367ccf50df
2014-05-22 15:51:41 -07:00
Yunqing Wang
efcdf946ed Fix a decoding mismatch in sub-pixel filters
This did the same correction as the one in commit "Correct ssse3
8/16-pixel wide sub-pixel filter calculation" to avoid saturation
during filtering.

Change-Id: Ife9aa3f62daf9114eb24fe38f7baa3c3f361b2d6
2014-05-22 15:42:13 -07:00
Tom Finegan
00fbdc159b Merge "vp9_ratectrl.c: Fix MSVC warnings." 2014-05-22 15:16:01 -07:00
Dmitry Kovalev
639e16ee00 Merge "Cleaning up vp9_init_second_pass()." 2014-05-22 14:49:33 -07:00
Tom Finegan
4205b51d51 vp9_ratectrl.c: Fix MSVC warnings.
Change-Id: I4bd635949240880ced5f581c24e981ccd0374e40
2014-05-22 14:44:37 -07:00
Dmitry Kovalev
59948cc343 Merge "Cleaning up calculate_section_intra_ratio()." 2014-05-22 13:49:28 -07:00
Deb Mukherjee
cebb03c39b Merge "Adjust cq_level in constrained quality mode" 2014-05-22 13:49:17 -07:00
Dmitry Kovalev
72ab966d5e Removing vp9_pragmas.h.
Change-Id: I9120a87e27e73e496932d11716937e2fad246521
2014-05-22 13:46:31 -07:00
Dmitry Kovalev
f738895099 Merge "Cleaning up calc_frame_boost()." 2014-05-22 13:05:23 -07:00
Dmitry Kovalev
b2be554351 Cleaning up vp9_init_second_pass().
modified_error_total from TWO_PASS struct is not required anymore.

Change-Id: I0e07cac1e6d1b6a78418116be725bcd72bfbd847
2014-05-22 13:04:43 -07:00
Deb Mukherjee
b59b324171 Merge "Renames x86_64 specific asm files" 2014-05-22 12:30:38 -07:00
Deb Mukherjee
53f1452f5d Adjust cq_level in constrained quality mode
If we are already saving a lot in bits from the target (maximum)
bitrate in the constrained quality mode, allow the quantizer
to go lower than the cq level. This hopefully will solve issues
with getting too low a bitrate and consequently poor quality for
certain videos in cq mode.

Change-Id: I1c4e8b0171fcf58f95198b3add85eea5f3c8f19f
2014-05-22 12:19:55 -07:00
Dmitry Kovalev
0a6e42c241 Adding several consts to assign_std_frame_bits().
Change-Id: I6c27c60f7192b1b397f01882ab68a68cdf767534
2014-05-22 12:17:18 -07:00
Dmitry Kovalev
6e6f5881d8 Merge "Cleaning up calculate_modified_err()." 2014-05-22 12:09:48 -07:00
Dmitry Kovalev
da39b6a1af Cleaning up calc_frame_boost().
Change-Id: I3ba9374de96dc31fb4e736742603ef988d8aaa5f
2014-05-22 12:07:14 -07:00
Dmitry Kovalev
3b72ed50b4 Merge "Removing decoded_key_frame flag." 2014-05-22 11:55:19 -07:00
Dmitry Kovalev
b8a65127ae Cleaning up calculate_section_intra_ratio().
Addition of reset_fpf_position() call fixes previous issue with this patch.

Change-Id: I356186d5a1032297a147194e81e9c7db252d14a6
2014-05-22 11:38:02 -07:00
Paul Wilkins
56966ea8ce Merge "Revert "Cleaning up calculate_section_intra_ratio()."" 2014-05-22 10:39:04 -07:00
Yaowu Xu
04cf82fb04 Merge "Enable various thresholds of motion detection" 2014-05-22 09:09:42 -07:00
Paul Wilkins
74a919a239 Revert "Cleaning up calculate_section_intra_ratio()."
Breaks rate control completely.

This reverts commit 9067b293b3.

Change-Id: I8f89e209cf7bd607f7de5c4872adcd57a9c5c72b
2014-05-22 14:30:41 +01:00
Dmitry Kovalev
e7135a9344 Removing decoded_key_frame flag.
Change-Id: I79576920efb7f3f6f197d386727409759d8bda8d
2014-05-21 15:51:40 -07:00
Deb Mukherjee
e272273443 Renames x86_64 specific asm files
Renames all x86_64 specific assembly files to consistently
end in _x86_64.asm. This will be useful for build systems to
handle these files differently.
All new 64-bit specific assembly files should use the new
naming convention.

Change-Id: I36c89584967c82ffc4088b1b5044ac15d2bb7536
2014-05-21 13:55:56 -07:00
Dmitry Kovalev
508cd5a6bf Reusing rd_less_than_thresh() function.
Change-Id: I29df10fde86128467f5e99fc373ac04f004257e1
2014-05-21 12:20:07 -07:00
hkuang
0958bbd185 Merge "Fix the memory alignment issue due to patch: https://gerrit.chromium.org/gerrit/#/c/70162/" 2014-05-21 12:12:21 -07:00
Yaowu Xu
3bda7ec1ba Enable various thresholds of motion detection
This commit changed to enable the encoder to adjust motion dection
speed threshold based on picture size. In addition, cpu-used 1 now
does a partition search every other frame instead of every third
frame for low resolution inputs.

The change has no quality/speed impact for 720p and above. Test
showed the change increase encoding time by between 3% to 6% for
cpu-used 2 encodiong of 360p sequences. It also has a compression
gain about .3%.

For cpu-used 2, the change resolved some very disturbing visual
artifacts in certain sequences when large block partitionings and
transforms are used as a result of copying the partition from a
previous frame.

Change-Id: Ic7fd22508cdb811d4ca935655adbf20109286cfa
2014-05-21 12:08:56 -07:00
Dmitry Kovalev
66ce10c13d Merge "Deadline is not supported in VP9 decoder, removing it completely." 2014-05-21 10:37:39 -07:00
Dmitry Kovalev
3971967c0b Merge "Cleaning up calculate_section_intra_ratio()." 2014-05-21 10:35:01 -07:00