- 07 Sep, 2017 11 commits
-
-
Cheng Chen authored
A lot of local functions have av1_ prefix due to legacy reasons. Make them static and remove their prefix. Change-Id: I069a3a1af583d5d307cdc56819901d1f9e004d07
-
Debargha Mukherjee authored
Use macro SCALE_SUBPEL_BITS rather than hard-coded 4 for old warping code that is used for non-affine global models. Change-Id: I10ee7b29101cd79e77a4d29e69d67497fda4e967
-
Tom Finegan authored
Newer gcc's output logical-op warnings when and'ing together a duplicate condition. In this case it's because a constant was set to an enum value that was also checked locally. Change-Id: Iada9571d3e59ec9b75aa446fd6690587092af161
-
David Barker authored
Save bits by not encoding global motion data when there's no previous frame to use as a reference. Use the same logic as for using the previous frame's motion vectors - ie, we don't read global motion information when the current frame is intra-only or when using error-resilient mode. This also fixes an undefined behaviour / segfault bug - see https://bugs.chromium.org/p/aomedia/issues/detail?id=731 for details BUG=aomedia:731 Change-Id: Icca90a1bccafd06de8a4056ca5353318fce416cb
-
Yaowu Xu authored
Change-Id: I43e92e3f3799857e928543434d049b4155b64d7d
-
Yi Luo authored
Baseline + parallel_deblocking: - Passed unit tests *SSE2/Loop8Test6*, *AVX2/Loop8Test6*. - 1080p, 25 frames, profile=0, encoding/decoding, output match. - Decoder frame rate increases from 54.15 to 65.84. Change-Id: I55938c94961066594f4b9080192c7268c19d9bf9
-
Wei-Ting Lin authored
Change-Id: I0e9df3719e5f9a55e1386afe44851d1707e2e01b
-
Rupert Swarbrick authored
The callsites to decode_block and decode_partition in the body of decode_partition are rather noisy with code that is enabled or disabled by config flags, so it's hard to see what is fundamentally a simple recursion. This patch moves all that cruft into a pair of locally defined preprocessor macros (DEC_BLOCK and DEC_PARTITION) to simplify things. There's no diff in disassembled code when compiling before and after the patch. Change-Id: Ie08db263a9874e2c566c758e8f3a51d131b1b80b
-
Debargha Mukherjee authored
This patch forces the vertical filtering for the top and bottom rows of a processing unit for the Wiener filter to be 5-tap. The 5-taps are derived from the primary 7-tap fitler by forcing the taps at the end to be zero, and absorbing their weights into the other taps to maintain normalization. This will effectively reduce the line buffer size for luma Wiener filter to 4 (from 6). Change-Id: I5e21b58369777eabf553a8987387d112f98a5598
-
David Barker authored
As of patch https://aomedia-review.googlesource.com/c/20220 , it is no longer always the case that tile_rows == (1 << log2_tile_rows) and tile_cols == (1 << log2_tile_cols). This exposed an inconsistency in the tile-group decoding: When reading the first tile group in a frame, we read (log2_tile_rows + log2_tile_cols) bits each for the tile group start and length, but when reading later tile groups we read get_msb(tile_rows * tile_cols) bits. But now there are edge cases where those values differ! Since the encoder always uses (log2_tile_rows + log2_tile_cols) bits, this leads to mis-parsing the bitstream. Fix this by moving the decode logic to one function, which always reads (log2_tile_rows + log2_tile_cols) bits. As a bonus, this gives us one place to check other invariants, eg. that tile groups can't run off the end of the frame. Change-Id: I83b24314526b6055300b70b0f1cdce038e6b23dc
-
Yaowu Xu authored
Change-Id: Id606669875ef1dcb163ff7dec619dae6110d9047
-
- 06 Sep, 2017 20 commits
-
-
Sarah Parker authored
This requires making a temporary copy of the functions in binary_codes_writer/reader to take in the aom_write_bit_buffer type. Change-Id: Idb60b29cff69b45224535c6e6a4079a34a2c6871
-
Wei-Ting Lin authored
Fix the bug forcing encoder/decoder to transmit/decoder all mbmi info for a superblock first. Change-Id: I623217655b043fc90adbcc13e4cf2a4a845084ab
-
Tom Finegan authored
Change-Id: If60c97131bed58ce7c6d3875f9a088df27b9bae4
-
Zoe Liu authored
In the old code, the function of allocate_gf_group_bits() in firstpass.c handles both GF group structure design as well as the corresponding bit allocation for each coded frame. This CL separates the two functionalities. It has been verified that no coding performance has been incurred by this CL. Change-Id: I544b4fcdc8cb37ec810373f1f820dbd2e400c39b
-
Yue Chen authored
Update cdf after each superblock being finalized, and re-compute symbol costs. Affected symbols include prediction parameters and tx type. BDRate: -0.119% lowres, -0.092% midres Change-Id: I724900ac04f725910ed7055a18c2f6a139469b52
-
Jingning Han authored
Merge the tile context models at the end of frame coding. Change-Id: I0a71c49c448cfbd71fb0bd15ca7b1f6097c56529
-
Jingning Han authored
BUG=aomedia:719 Change-Id: Id47c2c68cb61e142ce62fee5e97f7c474b3dc273
-
Wei-Ting Lin authored
Change-Id: Iff1a7e35c439f0baa7240eef75fcb5da46d06a4c
-
Wei-Ting Lin authored
Change-Id: I3de1c933ee0fa90e9c0d52e6cbe4bc8bf5482a73
-
Wei-Ting Lin authored
Change-Id: I7393596d98f11aa53ba4b9e329386b5168b3e086
-
Tom Finegan authored
Add AOM_EXTRA_<TYPE>_FLAGS variables. Currently AS, C, CXX, and LINKER are the available type values. These variables are added to argument strings for each type as the last step in generation to ensure that user flags have precedence over flags added by the AOM build itself. Change-Id: I8e01682ee6c7dad2253e01c446a5ced7d06596c7
-
Tom Finegan authored
BUG=aomedia:659,aomedia:695,aomedia:705,aomedia:706 Change-Id: Iba60166370362599f3f4ef7959a6304bf079857d
-
Yaowu Xu authored
Change-Id: I1b921e79484e78a272c4f62e30cb85631a65ac25
-
David Barker authored
When using chroma subsampling, the warp filter currently behaves strangely when projecting chroma pixels, especially when the subsamplings are not equal along the x and y axes. For example, when subsampling_x = 1 and subsampling_y = 0, we calculate the destination coordinates (dx, dy) from the source coordinates (sx, sy) as: dx = project(2*sx+0.5, 2*sy+0.5)/2 - 0.5 dy = project(sx, sy) where project() applies the affine warp model. This patch changes to a simpler and more consistent model, where we: * Project the chroma sample into luma coordinates, taking the chroma sample to be co-located with the top-left luma sample in its (2x2, or 2x1, or 1x2) subsampling block (this is done for simplicity; we don't expect the exact position to make much difference to the output quality) * Apply the transformation in luma coordinates * Project the resulting luma sample back into chroma coordinates Change to software speed is in the noise, but this approach should be simpler in hardware, and should slightly improve quality for 4:2:2 and 4:4:0 videos. Change-Id: Idd455fdd3897594ca7d4edff5b85b78961d1638d
-
Rupert Swarbrick authored
The previous code converted a frame_w (say) of 1 to zero for a plane where subsampling was enabled, causing a division by zero in av1_get_rest_ntiles. This doesn't match the spec, which says subsampling rounds up. The patch adds the rounding, and also adds an assertion to av1_get_rest_ntiles to help diagnose any other broken callsites. Change-Id: Ia6c249fa935c3a16d122ba6e7b450fe99f412fde
-
Debargha Mukherjee authored
Changes loop-restoration to use processing unit size that is 64x64 for luma; for chroma the processing unit is coupled to 64x64 support region for luma. Thus for chroma the processing unit size is 32x32 for 4:2:0, 32x64 for 4:2:2 and 64x64 for 4:4:4, etc. While the Wiener filter output should not change with this patch, the sgr filter will change since the boundary pixel handling in sgr is internal within the filter. Change-Id: I65a9e2df88927a19445420ce400acb1fcf7afa93
-
Cheng Chen authored
This is a legacy function but not used outside of the file. Make it static. Change-Id: I1d32c26aaf243202a7fa72056f5e74cf25bbb62a
-
Zoe Liu authored
Change-Id: If44394e363cc443e46c31d91c8e03a85d91b1a92
-
Yushin Cho authored
One of the changed files has been mistakenly missed for the commit 55104335 https://aomedia-review.googlesource.com/#/c/aom/+/18261/ Change-Id: Ie47f882a25e650bb4d74d5675f2306adc9e654a7
-
Yushin Cho authored
Change-Id: I3f3df7acc79f770e42fe65b52f383ee8dfe2702a
-
- 05 Sep, 2017 9 commits
-
-
Timothy B. Terriberry authored
Automatic rebasing didn't pick up that an extra instance of the EC_SMALLMUL flag was added in commit 8711cf5f. However, that commit also broke CONFIG_ANS, since the CDF probabilities are not inverted in that case. This patch fixes both issues. Change-Id: I85b3eb8a4be5b7a392f2f872fc4a90f3fdbf2727
-
Wei-Ting Lin authored
Change-Id: I8c8c13d46fc20453794e28a6dbcb478180ad71d0
-
Wei-Ting Lin authored
Change-Id: I1cd1197b48a3315fe4f44578b80634be73de17a3
-
Wei-Ting Lin authored
Update the inter-prediction functions to comply the changes made in commit #1cfe474b Change-Id: Icac30eee2523989031e0fc3b220cbbcf8c513258
-
Rupert Swarbrick authored
In the bitstream in bug 709, the frame has a width of 13318 mi units. This rounds up to 13328 mi units (when rounding to a whole number of max superblocks) but then the shift right by log2_tile_cols gives floor(13328/32) = floor(416.5) = 416. Of course 32*416 = 13312 which is less than 13318. This patch moves the <mi_cols, log2_tile_cols> -> tile_width calculation (and the equivalent calculation for tile_height) into a common function which gets the rounding right. BUG=aomedia:709 Change-Id: If5e8e6b7a3c6f3d336cda9edd94a17595eaf5406
-
Timothy B. Terriberry authored
This experiment has been fully adopted and is now an integral part of the draft AV1 bitstream definition. objdump -d libaom.a gives identical output before and after this patch. Change-Id: I6f936f4b10de23a9471e0ccadf9cf178fb62be69
-
Wei-Ting Lin authored
Change-Id: I58c135ac173801dc7fafd27b0c1cafb072db52e5
-
Rupert Swarbrick authored
The example bitstream in bug 710 shows what might go on. This has a frame with mi_cols=540 and log2_tile_cols=3. But 540/8 = 67.5, which gets rounded up to give a tile_width of 5*16=80. However, 540/80 = 6.75 which means that the frame finishes somewhere in the middle of tile 7 (and tile 8 is completely empty). This patch clamps tile_rows/tile_cols to ensure that can't happen. The bitstream still signals ceil(log2(tile_<rows/cols>)) so there's no change there. BUG=aomedia:710 Change-Id: Idfad658ef59cf71674100f5e74bd53dd192c6a84
-
Yi Luo authored
Change-Id: I51d0a095c08c64a93b883d16805aea820a5761fa
-