platform/upstream/libvpx.git
4 years agoOptimize vp9_get_sub_block_energy.
Clement Courbet [Fri, 20 Mar 2020 08:22:55 +0000 (09:22 +0100)]
Optimize vp9_get_sub_block_energy.

Because energy scaling is non-decreasing, we can work on the variance
and scale after the loop. This avoids costly computations (in
particular, log()) within the loop.
We've measured that we spend 0.8% of our total time computing the log.

Change-Id: I302fc0ecd9fd8cf96ee9f31b8673e82de1b2b3e2

4 years agoMerge changes I8a14fcad,Iad7ca261,I2063c592,I9c5c74ab
Angie Chiang [Tue, 17 Mar 2020 23:32:15 +0000 (23:32 +0000)]
Merge changes I8a14fcad,Iad7ca261,I2063c592,I9c5c74ab

* changes:
  Correct time_base of ivf header in SimpleEncode
  Add detail comments on valid_list in SimpleEncode
  Add missing Copyright to python files
  Move member functions up in simple_encode.h

4 years agoCorrect time_base of ivf header in SimpleEncode
angiebird [Mon, 16 Mar 2020 19:34:02 +0000 (12:34 -0700)]
Correct time_base of ivf header in SimpleEncode

Change-Id: I8a14fcad3e7b4c4689f4e7387414e59ba9c4c20a

4 years agoAdd detail comments on valid_list in SimpleEncode
angiebird [Sat, 14 Mar 2020 00:28:28 +0000 (17:28 -0700)]
Add detail comments on valid_list in SimpleEncode

Change-Id: Iad7ca261a99c7b5f082cf3cc6504f4af438bf409

4 years agoAdd missing Copyright to python files
angiebird [Sat, 14 Mar 2020 00:25:49 +0000 (17:25 -0700)]
Add missing Copyright to python files

BUG=webm:1655,webm:1654

Change-Id: I2063c59218e082f40958dddbdcb1c105d5440199

4 years agovpx_codec_enc_config_default: rm unnecessary loop
James Zern [Sat, 14 Mar 2020 03:29:09 +0000 (20:29 -0700)]
vpx_codec_enc_config_default: rm unnecessary loop

quiets -Wunreachable-code-loop-increment, present since:
e57f388bc vpx_codec_enc_config_default: disable 'usage'

as g_usage was never supported for vp8/9 this was always a single
iteration. if additional usages are added in the future similar to av1
this can be restored.

Bug: b/150166387
Change-Id: Ic6f0985829e87694de8b5e0340cffa6c451ed1c2

4 years agoMove member functions up in simple_encode.h
angiebird [Fri, 13 Mar 2020 23:22:06 +0000 (16:22 -0700)]
Move member functions up in simple_encode.h

Change-Id: I9c5c74ab52361bcd73aef110729c6e332066c2af

4 years agofix minor spelling errors
Johann [Thu, 12 Mar 2020 23:25:47 +0000 (08:25 +0900)]
fix minor spelling errors

Change-Id: I929fec66d541705fe94365b56a5bdd8cf5ee7c37

4 years agoMerge changes Ie7c70a1d,I2c5abbe2,If41a1ea6,Id6ba4664,I156308bc
Angie Chiang [Thu, 5 Mar 2020 19:24:29 +0000 (19:24 +0000)]
Merge changes Ie7c70a1d,I2c5abbe2,If41a1ea6,Id6ba4664,I156308bc

* changes:
  Add unit test for ref_frame_info
  Add key frame group info to SimpleEncode
  Add ref_frame_info to encode_frame_result
  Add init/update_frame_indexes()
  Add GetVectorData()

4 years agortc: Update svc test for resize
Marco Paniconi [Thu, 5 Mar 2020 00:08:41 +0000 (16:08 -0800)]
rtc: Update svc test for resize

Add count on expected number of resizes,
and use the speed_setting_ for base layer.

Also allow AQ_MODE=3 for the tests with
dynamic layer disabling/enabling.

Change-Id: I03fb0789a2210ba00b8b153941bf79fb774d51bf

4 years agovp9-svc: Allow for dynamic resize for single layer SVC
Marco Paniconi [Tue, 3 Mar 2020 23:14:02 +0000 (15:14 -0800)]
vp9-svc: Allow for dynamic resize for single layer SVC

Make internal dynamic resize work for SVC mode
when single layer SVC is running (i.e, other layers
are dropped due to 0 bitrate).

Added unittest.

Change-Id: Icf03e1f276d9c4ba2734c87c927f7881c6b0a116

4 years agoAdd unit test for ref_frame_info
angiebird [Tue, 3 Mar 2020 04:04:11 +0000 (20:04 -0800)]
Add unit test for ref_frame_info

Fix several bugs to make the test pass.
1) Move update_frame_indexes() out of show_frame check.
2) Init coding_indexes[i] to -1 when key frame appears
3) Fix a bug in PostUpdateRefFrameInfo()

Change-Id: Ie7c70a1d460e5b89475a1aef77416fc9a88387e1

4 years agoAdd key frame group info to SimpleEncode
angiebird [Tue, 3 Mar 2020 00:50:39 +0000 (16:50 -0800)]
Add key frame group info to SimpleEncode

Change-Id: I2c5abbe23c84c6d794e06ed6429136b10fb18683

4 years agoAdd ref_frame_info to encode_frame_result
angiebird [Fri, 28 Feb 2020 04:03:11 +0000 (20:03 -0800)]
Add ref_frame_info to encode_frame_result

Change-Id: If41a1ea6ce0a2b8db3811f2fa8efcf16f97fa0bd

4 years agoAdd init/update_frame_indexes()
angiebird [Thu, 27 Feb 2020 00:43:50 +0000 (16:43 -0800)]
Add init/update_frame_indexes()

We will init and update current_video_frame and
current_frame_coding_index in the functions.

So it's easier to keep track of when the frame indexes are updated.

Change-Id: Id6ba46643f8923348bb4f81c5dd9ace553244057

4 years agoAdd GetVectorData()
angiebird [Wed, 26 Feb 2020 23:18:52 +0000 (15:18 -0800)]
Add GetVectorData()

It's necessary to get data pointer from a vector sometimes.
This function will guarantee that the data pointer is nullptr
if the vector is empty.

Change-Id: I156308bcb193fe404452d3cd3b24b3f80c3c3727

4 years agoAdd RefFrameInfo
angiebird [Wed, 26 Feb 2020 01:30:14 +0000 (17:30 -0800)]
Add RefFrameInfo

RefFrameInfo contains the coding_indexes and valid_list of
three reference frame types.

Note that I will add unit test in the follow-up CLs.

Change-Id: Ia055df1f8a5537b2bdd02c78991df9bbf48e951a

4 years agoKeep ref frame coding indexes in SimpleEncode
angiebird [Mon, 24 Feb 2020 19:20:10 +0000 (11:20 -0800)]
Keep ref frame coding indexes in SimpleEncode

Change-Id: Id76aeb54ef93b11ca9a582f76289da0e60368e56

4 years agoMake external arf consistent with vp9
Cheng Chen [Tue, 18 Feb 2020 20:20:58 +0000 (12:20 -0800)]
Make external arf consistent with vp9

Add a test to ensure that encoding with the external arfs gets the
same result as long as the arfs are the same as the vp9 baseline.

Change-Id: I92c79001018f4df3bc16e9fc56c733509bebb9dc

4 years agoAllow external arf to determine gop size
Cheng Chen [Tue, 18 Feb 2020 17:57:46 +0000 (09:57 -0800)]
Allow external arf to determine gop size

When "rate_ctrl" experiment is on, we allow the external arf
passed from outside to determine group of picture size
in define_gf_group().

Change-Id: I0b8c3e1bf3087f21a4e484354168df4967d35bba

4 years agoAdd interface for external arf indexes.
Cheng Chen [Tue, 18 Feb 2020 00:19:44 +0000 (16:19 -0800)]
Add interface for external arf indexes.

Pass in external arf indexes to encode command.

Change-Id: Ifea5a7d835643760fc5effc594bb448848f6d639

4 years agoRename values in RefFrameType and FrameType
angiebird [Fri, 21 Feb 2020 01:26:14 +0000 (17:26 -0800)]
Rename values in RefFrameType and FrameType

Replace golden and altref by past and future in RefFrameType.
So that we don't get confused with FrameType and RefFrameType.

Change-Id: I1be45d49f76c68869fc4bf53ff946fee9ce7eb9d

4 years agoUse ref_frame[0] to determine mv_count
angiebird [Fri, 21 Feb 2020 01:14:31 +0000 (17:14 -0800)]
Use ref_frame[0] to determine mv_count

The motion vector counts should be determined by whether this
block is using intra_mode or not.

Change-Id: If866c91fb8a3f2b3944e5b219a90154d2172690d

4 years agoConsistency test for GroupOfPicture
angiebird [Fri, 21 Feb 2020 00:35:30 +0000 (16:35 -0800)]
Consistency test for GroupOfPicture

Make sure frame_type, show_idx and coding_index in GroupOfPicture
match the results in EncodeFrameInfo.

Change-Id: I3b477a03b5efd651c2d174e7146a4cd4f5551604

4 years agoUse ObserveGroupOfPicture() in EncodeFrame test
angiebird [Fri, 21 Feb 2020 00:16:38 +0000 (16:16 -0800)]
Use ObserveGroupOfPicture() in EncodeFrame test

In the previous version, we assume the number of coding frames is
known.

Although the assumption is true for now with rate_ctrl flag on,
it's more proper to use ObserveGroupOfPicture() to get
the partial info about how many coding frames are in the group.

Because We want to keep the flexibility of changing the size of
group of pictures on the fly in the future.

Change-Id: Ibbe6ab49268c468bf1cef8344efd3a3e1eab972a

4 years agoAdd kGoldenFrame and kOverlayFrame to FrameType
angiebird [Thu, 20 Feb 2020 22:11:25 +0000 (14:11 -0800)]
Add kGoldenFrame and kOverlayFrame to FrameType

Add coding_index to EncodeFrameInfo
Add start_coding_index to GroupOfPicture
Add frame_coding_index_ to SimpleEncode

The definition of coding index is as follows.

Each show or no show frame is assigned with a coding index based
on its coding order (starting from zero) in the coding process of
the entire video. The coding index for each frame is unique.

Change-Id: I43e18434a0dff0d1cd6f927a693d6860e4038337

4 years agoMerge "x86_simd_caps: make mask value unsigned"
James Zern [Wed, 19 Feb 2020 21:41:41 +0000 (21:41 +0000)]
Merge "x86_simd_caps: make mask value unsigned"

4 years agoMerge "vp9-rtc: Increase partition threshold to 8x8 for high Q"
Marco Paniconi [Wed, 19 Feb 2020 02:24:39 +0000 (02:24 +0000)]
Merge "vp9-rtc: Increase partition threshold to 8x8 for high Q"

4 years agoMerge "Cap delta_q_uv to -15..15"
Jerome Jiang [Tue, 18 Feb 2020 23:40:47 +0000 (23:40 +0000)]
Merge "Cap delta_q_uv to -15..15"

4 years agovp9-rtc: Increase partition threshold to 8x8 for high Q
Marco Paniconi [Tue, 18 Feb 2020 23:04:32 +0000 (15:04 -0800)]
vp9-rtc: Increase partition threshold to 8x8 for high Q

For low resolutions: increase the partition threshold
to split to 8x8 blocks for high Q.
Some improvement in quality for low bitrates at low resoln.

On rtc_derf speed 7: ~1.7 bdrate gain for low bitrates.

Change-Id: I1900c32497b75da4e8b882fedc8f4b440b017480

4 years agoCap delta_q_uv to -15..15
Jerome Jiang [Tue, 18 Feb 2020 18:46:03 +0000 (10:46 -0800)]
Cap delta_q_uv to -15..15

only 4 bits in bitstream

Change-Id: I338fe54475e094ee5e556467e0b66c982bb560fa

4 years agovp9-rtc: Set enable_adaptive_subpel_force_stop to 0
Marco Paniconi [Tue, 18 Feb 2020 18:12:18 +0000 (10:12 -0800)]
vp9-rtc: Set enable_adaptive_subpel_force_stop to 0

Set enable_adaptive_subpel_force_stop to 0 as default
for all speeds. Its only enabled for speed >= 9.

Change-Id: I23a1c1cb9765994d2153ef401976c11a07f3fe7f

4 years agovp8_decode: add missing vpx_clear_system_state
James Zern [Sat, 15 Feb 2020 05:00:21 +0000 (21:00 -0800)]
vp8_decode: add missing vpx_clear_system_state

this avoids leaving the floating point unit in an inconsistent state on
error and breaking subsequent tests on x86
the test clip invalid-bug-148271109.ivf would also result in a sanitizer
error prior to:
vp8,GetSigned: silence unsigned int overflow warning

BUG=b/148271109

Change-Id: Ia254f3892ac1eeec51db5e9d42ea071545db0cd8

4 years agovp8,GetSigned: silence unsigned int overflow warning
James Zern [Sat, 15 Feb 2020 01:36:47 +0000 (17:36 -0800)]
vp8,GetSigned: silence unsigned int overflow warning

in non-conformant fuzzed bitstreams the calculation of br->value may
overflow. this is defined behavior and harmless in that the stream is
already corrupt.

BUG=b/148271109

Change-Id: I3668ada57e0bd68cea86b82917fb03c19ac1283d

4 years agomove common attribute defs to compiler_attributes.h
James Zern [Sat, 15 Feb 2020 01:31:42 +0000 (17:31 -0800)]
move common attribute defs to compiler_attributes.h

BUG=b/148271109

Change-Id: I620e26ff1233fcd34ebe0723cb913e82eb58271c

4 years agox86_simd_caps: make mask value unsigned
James Zern [Sat, 15 Feb 2020 01:39:22 +0000 (17:39 -0800)]
x86_simd_caps: make mask value unsigned

fixes -fsanitize=integer warning:
runtime error: implicit conversion from type 'int' of value -1 (32-bit,
signed) to type 'unsigned int' changed the value to 4294967295 (32-bit,
unsigned)

Change-Id: I95d41aade78cea5e4f870a804d3f358c2cf618d7

4 years agoMerge "Set mv to zero if the second ref does not exist"
Cheng Chen [Tue, 11 Feb 2020 20:30:50 +0000 (20:30 +0000)]
Merge "Set mv to zero if the second ref does not exist"

4 years agoMerge "Add a unit test to check partition info"
Cheng Chen [Tue, 11 Feb 2020 20:21:19 +0000 (20:21 +0000)]
Merge "Add a unit test to check partition info"

4 years agoAdd a unit test to check partition info
Cheng Chen [Tue, 28 Jan 2020 02:58:31 +0000 (18:58 -0800)]
Add a unit test to check partition info

Change-Id: I397d7005961a037c9c9cb29e3ff0a3d39a501d15

4 years agoSet mv to zero if the second ref does not exist
Cheng Chen [Tue, 11 Feb 2020 00:13:58 +0000 (16:13 -0800)]
Set mv to zero if the second ref does not exist

Change-Id: I94b936c2642981eccdff073fc71c12e2dccb7909

4 years agoDo save/restore_encode_params when rate_ctrl is on
angiebird [Mon, 10 Feb 2020 20:04:26 +0000 (12:04 -0800)]
Do save/restore_encode_params when rate_ctrl is on

Change-Id: I06492a4d1511869cb243477a47295d5f82608fca

4 years agoReplace NULL by nullptr in simple_encode.c/h
angiebird [Fri, 7 Feb 2020 02:15:02 +0000 (18:15 -0800)]
Replace NULL by nullptr in simple_encode.c/h

Change-Id: Ib68740a02be852d03a3a2ad4d9d4a7d84d537590

4 years agoSync simple_encode.h
angiebird [Thu, 6 Feb 2020 22:53:21 +0000 (14:53 -0800)]
Sync simple_encode.h

Change-Id: I046b8c65c96e1864813f9a82649dd6b41ba0aa1f

4 years agoRename inverse_vpx_rational to invert_vpx_rational
angiebird [Thu, 6 Feb 2020 22:51:51 +0000 (14:51 -0800)]
Rename inverse_vpx_rational to invert_vpx_rational

Change-Id: I9139ebc22be74e9726eee157821faf22d44bd30f

4 years agoConsistency test for motion vector info
Cheng Chen [Sun, 2 Feb 2020 21:12:49 +0000 (13:12 -0800)]
Consistency test for motion vector info

Change-Id: Ie1d77e231b973eb16f4e9c520721b47cdf86622c

4 years agoPass motion vector info to encode frame result
Cheng Chen [Sun, 2 Feb 2020 21:12:49 +0000 (13:12 -0800)]
Pass motion vector info to encode frame result

Pass the motion vector info stored to the encode frame result
through the interface "update_encode_frame_result()".

Change-Id: I589affa0c4c4d0fd4d639edff9068e44a715beff

4 years agoLet SimpleEncode be able to output bitstream
angiebird [Tue, 4 Feb 2020 00:44:43 +0000 (16:44 -0800)]
Let SimpleEncode be able to output bitstream

Add outfile_path to SimpleEncode() with default value NULL.
The encoder will only output bitstream when outfile_path is set.

Change-Id: Ic68e5358ea454358c510bb0ae214f4201cb3db39

4 years agoAdd coded_frame to EncodeFrameResults
angiebird [Thu, 23 Jan 2020 22:56:01 +0000 (14:56 -0800)]
Add coded_frame to EncodeFrameResults

This coded_frame represents the raw coded image.

Change-Id: Iea439da2f9e84c4507b082d77ebaac49bfd74fff

4 years agoMerge "Store frame motion vector info"
Cheng Chen [Wed, 5 Feb 2020 21:21:47 +0000 (21:21 +0000)]
Merge "Store frame motion vector info"

4 years agoloopfilter_sse2: call unsuffixed lpf functions
James Zern [Tue, 4 Feb 2020 00:57:58 +0000 (16:57 -0800)]
loopfilter_sse2: call unsuffixed lpf functions

this allows calls to use better versions (e.g., avx2) if available. in
most other cases the function pointer will be defined to the sse2
variant if another isn't available. this improves performance at 1080P
by ~2% on a Xeon E5-2690.

Change-Id: Ie9da3a567021f8416651a29b8c9ab9238dc4bdf1

4 years agoStore frame motion vector info
Cheng Chen [Mon, 27 Jan 2020 20:58:10 +0000 (12:58 -0800)]
Store frame motion vector info

Allocate motion vector information for the frame, and store it
when a superblock (64x64) is encoded.

The unit size of the smallest block is 4x4.

A special requirement by the vp9 spec is that sub 8x8 blocks
of a 8x8 block must have the same reference frame.

There is no such requirement for blocks large or equal to 8x8.

Change-Id: Iba17c568c450361e5d059503c6fb7bc458184c31

4 years agoMerge "Fix initialization of delta_q_uv"
Jerome Jiang [Wed, 29 Jan 2020 00:53:15 +0000 (00:53 +0000)]
Merge "Fix initialization of delta_q_uv"

4 years agoFix initialization of delta_q_uv
Jerome Jiang [Tue, 28 Jan 2020 23:25:31 +0000 (15:25 -0800)]
Fix initialization of delta_q_uv

Change-Id: If778c6534a5e68a9bcd5974f778e97e1c5cc89ee

4 years agoChange partition_info to a vector
Cheng Chen [Tue, 28 Jan 2020 17:58:42 +0000 (09:58 -0800)]
Change partition_info to a vector

Change-Id: Ia59229da51671045448ea904ed65026155868993

4 years agoMerge "Add some description about partition info"
Cheng Chen [Tue, 28 Jan 2020 04:41:17 +0000 (04:41 +0000)]
Merge "Add some description about partition info"

4 years agoCorrectly assign partition info
Cheng Chen [Tue, 28 Jan 2020 01:17:56 +0000 (17:17 -0800)]
Correctly assign partition info

If partition type is horz or vert, the info of the second rectangle
block should be stored.

Change-Id: I8af5f37eb2c9140cf75d4b87a0fadcec5e4d7b28

4 years agoAdd some description about partition info
Cheng Chen [Mon, 27 Jan 2020 23:26:13 +0000 (15:26 -0800)]
Add some description about partition info

Change-Id: I62e45433aad7887f47e3c88fc40f046feef92ad9

4 years agoMerge "l2e: cosmetic changes of multi-dimension arrays"
Cheng Chen [Mon, 27 Jan 2020 22:50:08 +0000 (22:50 +0000)]
Merge "l2e: cosmetic changes of multi-dimension arrays"

4 years agoMerge "Consistency test for partition info"
Cheng Chen [Mon, 27 Jan 2020 22:49:58 +0000 (22:49 +0000)]
Merge "Consistency test for partition info"

4 years agoMerge "Pass partition info to encode frame result"
Cheng Chen [Mon, 27 Jan 2020 22:14:57 +0000 (22:14 +0000)]
Merge "Pass partition info to encode frame result"

4 years agoConsistency test for partition info
Cheng Chen [Tue, 21 Jan 2020 23:59:41 +0000 (15:59 -0800)]
Consistency test for partition info

Test the information stored in the encoder is the same
between two encode runs.

Change-Id: I4f97fac4f212602f766aee0a6cbef566ca43b41e

4 years agoPass partition info to encode frame result
Cheng Chen [Tue, 21 Jan 2020 23:59:41 +0000 (15:59 -0800)]
Pass partition info to encode frame result

Init the memory for partition information in "EncodeFrameResult".
And pass the partition information of vp9 encoder to it through
the interface: "update_encode_frame_result()".

Change-Id: Iea049e661da79f54d41da7924b9ef28ff7cfbfa3

4 years agoMerge "vp9-rtc: Fix condition in regulate_q for cyclic_refresh"
Marco Paniconi [Mon, 27 Jan 2020 06:06:29 +0000 (06:06 +0000)]
Merge "vp9-rtc: Fix condition in regulate_q for cyclic_refresh"

4 years agovp9-rtc: Fix condition in regulate_q for cyclic_refresh
Marco Paniconi [Mon, 27 Jan 2020 02:06:28 +0000 (18:06 -0800)]
vp9-rtc: Fix condition in regulate_q for cyclic_refresh

The bits_per_mb factor from cyclic refresh does not
need to be conditioned on seg_enabled, cr->apply_cyclic_refresh
is sufficient. This is more correct for the case where
the refresh is turned off/on dynamically.

Small/neutral change in bdrate metrics.

Change-Id: Ifbeda9d3e022e6b61cdefa1482d3075f076d7253

4 years agol2e: cosmetic changes of multi-dimension arrays
Cheng Chen [Thu, 23 Jan 2020 23:25:51 +0000 (15:25 -0800)]
l2e: cosmetic changes of multi-dimension arrays

Change-Id: I8c504b031cefeb8cfa4df8ca3a85c55fd1ae5a7f

4 years agovp9-svc: Fix to resetting rc flags on change_config
Marco Paniconi [Mon, 27 Jan 2020 01:54:02 +0000 (17:54 -0800)]
vp9-svc: Fix to resetting rc flags on change_config

Condition should account for spatial layers.

Change-Id: I53ef27800d6cba1ae9d313d8f476e5137734d3d8

4 years agoStore frame partition info
Cheng Chen [Fri, 17 Jan 2020 19:25:56 +0000 (11:25 -0800)]
Store frame partition info

Allocate partition information for the frame, and update it
when a superblock (64x64) is encoded.

The unit size of the smallest block is 4x4.

For each 4x4 block, store the current positition (row, column),
the start positition (row_start, column_start) of the partition,
and the block width and height of the partition.

Change-Id: I11c16bbca7e89a088715a1200abd23fe2f9ca1d6

4 years agoMerge "vpx_timestamp,gcd: assert params are positive"
James Zern [Thu, 23 Jan 2020 22:53:25 +0000 (22:53 +0000)]
Merge "vpx_timestamp,gcd: assert params are positive"

4 years agovp9-rtc: Lower threshold for color sensitivity for screen
Marco Paniconi [Wed, 22 Jan 2020 23:29:41 +0000 (15:29 -0800)]
vp9-rtc: Lower threshold for color sensitivity for screen

For screen content: lower the threshold for setting
color sensitivity on scene change.

Reduces artifacts in color slide change content.

Change-Id: Ie9a375dee9b8a546dede8afbd241e0e46f79a7f4

4 years agoMerge "vp9: fix control for delta qp for uv"
Jerome Jiang [Wed, 22 Jan 2020 18:03:38 +0000 (18:03 +0000)]
Merge "vp9: fix control for delta qp for uv"

4 years agovpx_timestamp,gcd: assert params are positive
James Zern [Sat, 18 Jan 2020 07:33:35 +0000 (23:33 -0800)]
vpx_timestamp,gcd: assert params are positive

this function is currently only used with range checked timestamp
values, but this documents the function's expectations in case it's used
elsewhere

Change-Id: I9de314fc500a49f34f8a1df3598d64bc5070248e

4 years agoMerge "add static_assert.h"
James Zern [Wed, 22 Jan 2020 00:10:34 +0000 (00:10 +0000)]
Merge "add static_assert.h"

4 years agovp9: fix control for delta qp for uv
Jerome Jiang [Tue, 21 Jan 2020 22:46:47 +0000 (14:46 -0800)]
vp9: fix control for delta qp for uv

It could be overwritten by other controls.

Change-Id: I86b430842d6819d3858bc65e728f7cb2bd471284

4 years agoadd static_assert.h
James Zern [Sat, 18 Jan 2020 07:15:19 +0000 (23:15 -0800)]
add static_assert.h

unify COMPILE_TIME_ASSERT definitions and rename to VPX_STATIC_ASSERT

Change-Id: Id51150c204e0c4eaf355ee45b20915113209d524

4 years agoMerge "Validate data used by vpx_codec_control..."
James Zern [Sat, 18 Jan 2020 07:14:34 +0000 (07:14 +0000)]
Merge "Validate data used by vpx_codec_control..."

4 years agoValidate data used by vpx_codec_control...
Brian Foley [Fri, 17 Jan 2020 04:33:48 +0000 (20:33 -0800)]
Validate data used by vpx_codec_control...

...instead of blindly derefing NULL.

Found by some additional fuzzing of the vp8/vp9 decoders to be
upstreamed soon.

Change-Id: I2ea08c2d15f689f3fac8cc73622056a82d94ec00

4 years agovp9: add delta q for uv channel. add tests.
Jerome Jiang [Fri, 17 Jan 2020 07:17:26 +0000 (23:17 -0800)]
vp9: add delta q for uv channel. add tests.

Add control for delta q for uv. 0 by default.

Change-Id: Ib8ed160b1a5c9a61ba15985076f6c6f121477103

4 years agoAdd comments to frame counts.
Cheng Chen [Mon, 13 Jan 2020 20:31:33 +0000 (12:31 -0800)]
Add comments to frame counts.

Change-Id: I74a1ccb55af78af1153af75734ca43fa140910a7

4 years agoMerge "Copy frame counts to the encode result."
Cheng Chen [Mon, 13 Jan 2020 19:18:21 +0000 (19:18 +0000)]
Merge "Copy frame counts to the encode result."

4 years agoMerge "vp9_encoder.c,cosmetics: fix some typos"
James Zern [Sat, 11 Jan 2020 04:10:07 +0000 (04:10 +0000)]
Merge "vp9_encoder.c,cosmetics: fix some typos"

4 years agoMerge "simple_encode*.cc: add missing copyright"
James Zern [Sat, 11 Jan 2020 04:08:21 +0000 (04:08 +0000)]
Merge "simple_encode*.cc: add missing copyright"

4 years agovp9_encoder.c,cosmetics: fix some typos
James Zern [Sat, 11 Jan 2020 00:53:55 +0000 (16:53 -0800)]
vp9_encoder.c,cosmetics: fix some typos

Change-Id: Iac474fcd1937371a9ef2620110740f60fed6b083

4 years agoMerge "trivial: fix spelling errors"
James Zern [Sat, 11 Jan 2020 01:20:39 +0000 (01:20 +0000)]
Merge "trivial: fix spelling errors"

4 years agoMerge "Add text to clarify the unit of variables for target bitrate"
James Zern [Sat, 11 Jan 2020 01:09:19 +0000 (01:09 +0000)]
Merge "Add text to clarify the unit of variables for target bitrate"

4 years agosimple_encode*.cc: add missing copyright
James Zern [Sat, 11 Jan 2020 00:47:01 +0000 (16:47 -0800)]
simple_encode*.cc: add missing copyright

Change-Id: I58ddf13698e3892aa591af4196ca03d7c09426c6

4 years agotrivial: fix spelling errors
Johann [Fri, 10 Jan 2020 23:59:30 +0000 (15:59 -0800)]
trivial: fix spelling errors

Found when updating a downstream client.

Change-Id: Ibaa20d883ebfea9410d0252e7a19c7acdb78c907

4 years agoMerge "Fix test failure with --size-limit"
Jerome Jiang [Fri, 10 Jan 2020 06:00:31 +0000 (06:00 +0000)]
Merge "Fix test failure with --size-limit"

4 years agoFix test failure with --size-limit
Jerome Jiang [Thu, 9 Jan 2020 18:50:43 +0000 (10:50 -0800)]
Fix test failure with --size-limit

The test didn't verify expected error code with invalid sizes. It
assumed VPX_CODEC_OK.

Added new Encoder class which doesn't run decoding at all. It accepts
expected error code to verify with encoder output.

The encoder behavior was changed in 94a65e8.

BUG=webm:1670

Change-Id: I6324d8f744e6c4aa82aa66913923dc140b07bfc9

4 years agoCopy frame counts to the encode result.
Cheng Chen [Fri, 3 Jan 2020 01:22:21 +0000 (17:22 -0800)]
Copy frame counts to the encode result.

Explicitly copy frame counts of each frame to the encode result
struct.

Change-Id: Icc18ac83a9e2be8d7a4819f2fffcfda6568b275c

4 years agoAvoid reloads in vp9_read_mode_info.
Clement Courbet [Tue, 7 Jan 2020 08:08:24 +0000 (09:08 +0100)]
Avoid reloads in vp9_read_mode_info.

The compiler cannot prove that the buffers do not alias, so it has to emit a
reload. On our internal workloads, the reloads are about 1% of the total time
spent decoding frames.

The loop before the change:

movzwl 0x8(%r15), %edx       # load ref_frame
addq $0xc, %rax
movw %dx, -0x4(%rax)         # store ref_frame
movq 0xc(%r15), %rdx         # load mv
movq %rdx, -0xc(%rax)        # store mv
cmpq %rax, %rcx
jne -0x1a

The loop after the change:

movw %r9w, 0x8(%rax)         # store cached ref_frame
addq $0xc, %rax
movq %r8, -0xc(%rax)         # store cached mv
cmpq %rax, %rdx
jne -0x12

Change-Id: Ia1e9634bcabb4d7e06ed60f470bc4cd67f5ab27e

4 years agoMerge remote-tracking branch 'origin/pekin'
Johann [Thu, 19 Dec 2019 22:24:23 +0000 (14:24 -0800)]
Merge remote-tracking branch 'origin/pekin'

Change-Id: I6f8e21696023fa4067960a7dedb6e7bbdb531ff9

4 years agoAdd text to clarify the unit of variables for target bitrate
Wonkap Jang [Wed, 18 Dec 2019 21:29:09 +0000 (13:29 -0800)]
Add text to clarify the unit of variables for target bitrate

ts_target_bitrate, layer_target_bitrate, and ss_target_bitrate

Change-Id: I845c4b67b5b8b546f7a185e97ad9e510bc246ce0

4 years agoMerge "vp8: move error check earlier"
Johann Koenig [Wed, 18 Dec 2019 06:01:54 +0000 (06:01 +0000)]
Merge "vp8: move error check earlier"

4 years agoMerge "trivial: remove reference to error correction"
Johann Koenig [Tue, 17 Dec 2019 20:44:58 +0000 (20:44 +0000)]
Merge "trivial: remove reference to error correction"

4 years agoMerge "trivial: fix 'fragment' spelling"
Johann Koenig [Tue, 17 Dec 2019 20:22:07 +0000 (20:22 +0000)]
Merge "trivial: fix 'fragment' spelling"

4 years agovp8: move error check earlier
Johann [Tue, 17 Dec 2019 19:44:26 +0000 (11:44 -0800)]
vp8: move error check earlier

This avoids assigning variables which will not be used. A
similar change was made to vpx_dsp/bitreader.c a long time
ago.

Change-Id: Ia5012091b8d85ca9bfefc7735a2aa69c5c2bf516

4 years agoMerge "vp8 boolreader: ignore invalid input"
Johann Koenig [Tue, 17 Dec 2019 19:41:23 +0000 (19:41 +0000)]
Merge "vp8 boolreader: ignore invalid input"

4 years agoRename encode_frame_index
angiebird [Mon, 16 Dec 2019 23:19:35 +0000 (15:19 -0800)]
Rename encode_frame_index

to next_encode_frame_index

Change-Id: Id9bd2a0f6c4278bf0f0c270eb937a317232dead6

4 years agoAdd start_show_index/show_frame_count
angiebird [Sat, 14 Dec 2019 00:44:21 +0000 (16:44 -0800)]
Add start_show_index/show_frame_count

to GroupOfPicture

Change-Id: I905be72686b6c0e27ea782a12f1e8a8176c8b0f5

4 years agoCosmetic change of update_encode_frame_result()
angiebird [Fri, 13 Dec 2019 00:14:05 +0000 (16:14 -0800)]
Cosmetic change of update_encode_frame_result()

Move output parameter to the end.

Change-Id: I579a118768d29cb1ae2e3c8995a952ef11cfeb8d