- 31 Jul, 2017 3 commits
-
-
Rupert Swarbrick authored
Since patch 52c5173e, update_stats() calls set_ref_ptrs on its local xd variable, which updates xd->block_refs. This means xd should not be const. Change-Id: Ia7b8e062e81497653d77f539e4aa403870c4fbb0
-
Rupert Swarbrick authored
This patch surrounds two uses of motion_mode_cost and motion_mode_cdf with preprocessor #if lines. Both uses were added by commit bdc8dab2. Change-Id: I7e4a74e97b9179e42bae6ee17e9b2094acb992f2
-
Yue Chen authored
Initialize mode cost using frame-level cdf. Also in rd selection stage, cdf is updated per 64x64. Performance gain 0.20% Still suboptimal since in real bitstream packing, cdf is updated per symbol. Per symbol update in RDO is work in progress. Change-Id: I5062af91d8b00e5bf4c08abd0a7bfb0e5b27a619
-
- 26 Jul, 2017 2 commits
-
-
Yue Chen authored
Change-Id: Ie2c34490dc50cb242bcd701308e6b55243883b15
-
Luc Trudeau authored
A separate prediction mode struct is added to allow for uv-only modes (like CfL). Note: CfL will be added as a separate mode in an upcoming commit. Results on Subset1 (Compared to 4266a7ed with CfL enabled) PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 | 0.0000 Change-Id: Ie80711c641c97f745daac899eadce6201ed97fcc
-
- 24 Jul, 2017 1 commit
-
-
Todd Nguyen authored
- Modified temporal filter to take extra buffer parameter - Added bilinear interpolation, can be turned on by setting BGSPRITE_INTERPOLATION define to 1. - Added mean filter to bgsprite for blending modes - Bilinear interpolation is turned OFF by default - Mean filtering turned ON by default (was previously median filtering) - Allow for multiple references for alt_ref in encodeframe Change-Id: Icfe9054049339d353b4befff11e96c12ca73ed4e
-
- 21 Jul, 2017 1 commit
-
-
Thomas Davies authored
Tile groups are now an integral part of the codec. Change-Id: I620a88ec7a44b057d5cce0bf6cf602822a3339a9
-
- 20 Jul, 2017 3 commits
-
-
Yi Luo authored
- Split av1_update_boundary_info() into two functions to avoid unnecessarily checking which goes through each mi block. - av1_setup_frame_boundary_info() sets up frame level boundary, i.e. non-tile case, which is called in frame level only. - av1_setup_across_tile_boundary_info sets up tiles boundary, which is called per tile, in multiple tile case. - Decoder running time reduction: 8.72% (1080p, 25 frames, 4Mbps). Change-Id: I2fc42d4281c77bce4a7dab5d208347308cfbe579
-
hui su authored
Handle the first color index in the tokenization process, along with the other color indeices. This patch also includes some minor refactoring changes. Test results verify that there is no implact on compression efficiency. Change-Id: I7de51c18a52f337320331b5e8d63dfea3cf510f0
-
Yushin Cho authored
A framework for computing a distortion at 8x8 luma block level during RDO-based mode decision search. New 8x8 distortion metric can be plugged in by way of this tool. Existing daala_dist now uses this experiment as well. Other possible applications that can make use of this experiment would be a distortion meric, which should apply at 8x8 pixels such as PSNR-HVS, SSIM, or etc. A rd_cost for final coding mode decision for a super block is computed for a partition size 8x8 or larger. For a block larger than 8x8, a distortion of each 8x8 block is independently computed then summed up. The rd_cost for 8x8 block with new 8x8 distortion metric is computed only when the mode decision of its sub8x8 blocks are completed. However, MSE distortion metric is used with sub8x8 mode decision. Thus, early termination is also determined with the MSE based rd_cost. Because the best rd_cost (i.e. the reference rd_cost) during sub8x8 prediction or sub8x8 tx is based on new 8x8 distortion while each sub8x8 uses MSE, the existing early termination cannot be used (And this can be the one of possible reason for the BD-Rate change with this revision). For a sub8x8 prediction, prediction mode for each sub8x8 block of a 8x8 block is decided with existing MSE and then av1_dist_8x8() is applied to the 8x8 pixels. (There is also av1_dist_8x8_diff, which can input diff signal directly) For a sub8x8 tx in a block larger than 8x8, instead of computing MSE distortion for each sub8x8 tx block, we wait until all sub8x8 tx blocks are encoded before av1_dist_8x8() is applied to 8x8 pixels. Sub8x8 prediction and transformas were most of tricky parts in this change. Two kind of distortions, for a) predicted pixels and b) decoded pixels (i.e. predicted + possible reconstructed residue), are always computed during RDO. In order to access those two signals a) and b) for a 8x8 block after its sub8x8 mode decision is finished, a) and b) need be properly stored for later retrieval. The CB4X4 makes the task of accessing a) and b) signals for sub8x8 block further difficult, since the intermediate data (i.e. a and/or b) for sub8x8 block are not easily accessible outside of current partition unless reconstruced with decided coding modes. Change-Id: If60301a890c0674a3de1d8206965bbd6a6495bb7
-
- 19 Jul, 2017 1 commit
-
-
Jingning Han authored
Use the row and column indexes to fetch txk_type, which allows the chroma components to derive the tx type from the corresponding luma components. It improves the coding performance of txk-sel by 0.18%. Change-Id: I3f4bca5839e13ae95e51053e76cd86fe58202ac9
-
- 18 Jul, 2017 2 commits
-
-
Alex Converse authored
Screen content tools can be forced on or inferred by color counting. This prevents the inferred status of the tools from getting clobbered when controls are evaluated. BUG=aomedia:656 This also fixes the build with --disable-palette --enable-intrabc Change-Id: If815a1eff2f9419117477f14cda143dd669c87c6
-
Alex Converse authored
This reverts commit 1b5328e0. This commit has some pretty negative consequences with block copy. I need to be able to force block copy on for arbitrary sequences while it is still in development, and I need to be able to keep the palette enable status between block copy and non-block copy runs. Change If815a1eff2f9419117477f14cda143dd669c87c6 will prevent allow_screen_content_tools from getting clobbered and still allow us to force it on. BUG=aomedia:656 Change-Id: I7a2f4207b5d2da35aec7870250e8b330c58a0e13
-
- 17 Jul, 2017 1 commit
-
-
hui su authored
Change-Id: I802c9e41ebfed090b5ad8300917aad5e16ad026a
-
- 14 Jul, 2017 2 commits
-
-
hui su authored
Change-Id: I2888bd8905253e02e3ac74597275cf56e5142d29
-
hui su authored
Always let the encoder decide if "allow_screen_content_tools" should be set. -The screen content detector(is_screen_content()) works fairly well. -Keeping the config control may lead to mismatches. For example, user may encode the 1st frame with the flag on, then turn the flag off for the 2nd frame via config control. On the decoder side, the flag is on for both frames, because the flag is only transmitted in the header of all-intra frame, i.e. the 1st frame in this example. BUT=aomedia:656 Change-Id: I0652fe2b9f8df19bfbf7ed7d3513205c80ea9c61
-
- 13 Jul, 2017 5 commits
-
-
Wei-Ting Lin authored
Transmit ncobmc modes only when the motion mode, ncobmc_adapt_weight, is selected. Change-Id: I19d6dd83278457b1867f8e2e5cd94d25f535fcaf
-
Urvang Joshi authored
Before this, this function was copied-and-edited from av1_build_inter_predictors_sby() and av1_build_inter_predictors_sbuv(). Also, some places used sb() one directly (like rdopt.c), while others used sby() and sbuv() separately (like encodeframe.c --> encode_superblock()). This was prone to errors, if someone mistakenly modified only one/two of the 3 functions. Now, we just reuse sby() and sbuv() functions in sb(). Verified that there's no change in output. Change-Id: If81d78e767cc3fa09f06094d4db36ff1eaea3e4f
-
hui su authored
BUG=aomedia:654 Change-Id: Ic77a456246f87acb59ae95ddd4c421e741a99789
-
Jingning Han authored
Use row and column indexes to fetch the txk_type value. Change-Id: I881d500c030e322d8aca9dccb6ff2870c9e1e392
-
Yue Chen authored
To make it compatible with frame_superres Change-Id: Id1560e1477a09cfd27a4b4f17468be9c76d09013
-
- 12 Jul, 2017 3 commits
-
-
hui su authored
Turn "allow_screen_content_tools" on when the source video has many blocks with only few different colors. The automatic detection is enabled by defualt (or with command line flag "--tune-content=default"). With "--tune-content=screen", the screen content tools are always turned on. On the screen_content test set, the "default" setting is less than 0.3% worse than the "screen" setting on keyframe encoding. Change-Id: Iac7ab8952c96531d1fae84da1823291f5987519c
-
Rupert Swarbrick authored
This patch adds support for 4:1 rectangular blocks to various common data arrays, and adds new partition types to the EXT_PARTITION_TYPES experiment which will use them. This patch has the following restrictions, which can be lifted in future patches: * ext-partition-types is incompatible with fp_mb_stats and supertx for the moment * Currently only 32x32 superblocks can use the new partition types There's a slightly odd restriction about when we allow PARTITION_HORZ_4 or PARTITION_VERT_4. Since these both live in the EXT_PARTITION_TYPES CDF, read_partition() can only return them if both has_rows and has_cols is true. This means that at least half of the width and height of the block must be visible. It might be nice to relax that restriction but that would imply a change to how we encode partition types, which seems already to be in a state of flux, so maybe it's better to wait until that has settled down. Change-Id: Id7fc3fd0f762f35f63b3d3e3bf4e07c245c7b4fa
-
Zoe Liu authored
(1) Work with var-refs to remove redundant bits in ref frame coding; (2) Add a new uni-directional compound reference pair: (LAST_FRAME, LAST3_FRAME); (3) Redesign the contexts for encoding uni-directional reference frame pairs; (4) Use aom_entropy_optimizer to collect stats for all the default probability setups related to the coding of reference frames. Compared against the baseline (default enabled tools excluding ext-tx and global-motion for encoder speed concern) with one-sided-compound, the coding gain of ext-comp-refs + var-refs - one-sided-compound is: lowres: avg_psnr -0.385%; ovr_psnr -0.378% ssim -0.344% midres: avg_psnr -0.466%; ovr_psnr -0.447% ssim -0.513% AWCY - High Latency: PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.2758 | -0.1526 | -0.0965 | -0.2581 | -0.2492 | -0.2534 | -0.2118 AWCY - Low Latency: PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -1.0467 | -1.4500 | -0.9732 | -0.9928 | -1.0407 | -1.0180 | -1.0049 Compared against the baseline (default enabled tools excluding ext-tx and global-motion for encoder speed concern) without one-sided-compound, the coding gain of ext-comp-refs + var-refs - one-sided-compound is: lowres: avg_psnr -0.875%; ovr_psnr -0.877% ssim -0.895% midres: avg_psnr -0.824%; ovr_psnr -0.802% ssim -0.843% Change-Id: I8de774c9a74c20632ea93ccb0c17779fa94431cb
-
- 11 Jul, 2017 3 commits
-
-
Sarah Parker authored
Global_motion, obmc and warped_motion are now permanently mutually exclusive. Change-Id: Ib1a1207cc7caa6459a2027c6c4a50fcf4c451e76
-
Debargha Mukherjee authored
Change-Id: I472775a6877721f5ebee6b14f760227546110b7a
-
Nathan E. Egge authored
Removing these flags make the EC_ADAPT experiment an integral part of the draft AV1 bitstream definition This commit has no effect on metrics. Change-Id: Ice78520935e8bfa9d25cf4b8384a1b872069d09c
-
- 07 Jul, 2017 1 commit
-
-
Nathan E. Egge authored
This experiment removes the tx_mode flag from the uncompressed frame header and instead always uses a constant value. objective-1-fast: master@2017-06-29T00:51:22.142Z -> no_tx_mode@2017-06-29T01:09:32.392Z PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.0103 | 0.0183 | -0.0076 | -0.0103 | -0.0052 | -0.0208 | 0.0004 Change-Id: I9d49c4d99ed102e52c86e339f20623063886f49d
-
- 06 Jul, 2017 1 commit
-
-
Wei-Ting Lin authored
The new motion mode "NCOBMC_ADAPT_WEIGHT" cannot be used in the motion search loop as it requires all mvs from the neighboring blocks. This patch add a wrapper to skip checking this mode during mv search. Change-Id: I3a39954e91101929f26b5479c8c6ae22abdc7bce
-
- 05 Jul, 2017 2 commits
-
-
Thomas Daede authored
This required moving the CDEF and lr signaling in the uncompressed header to after segmentation is signaled. The all_lossless logic was factored out into onyxc_int.h. Change-Id: If8de03438d4e9f8cb49ed49b60a880962cc9d28b
-
Nathan E. Egge authored
This commit has no change to metrics. Change-Id: I363f18698117dc9c3de10e3ae46cbc5a6ce840d0
-
- 03 Jul, 2017 1 commit
-
-
Luc Trudeau authored
Adjust row and col offset for sub8x8 blocks to allow the CfL prediction to use all available reconstructed luma pixels. Results on Subset 1 (Compared to b03c2f44 with CfL) PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.1355 | -0.8517 | -0.4481 | -0.0579 | -0.0237 | -0.0203 | -0.2765 Change-Id: Ia91f0a078f0ff4f28bb2d272b096f579e0d04dac
-
- 28 Jun, 2017 1 commit
-
-
Jingning Han authored
Support the transform block kernel coding for rectangular transform block size in var-tx. This integrates txk-sel with var-tx. Change-Id: I9a8edd84812168f56c79b78cc9af34f6304b1d54
-
- 27 Jun, 2017 1 commit
-
-
Wei-Ting Lin authored
Define the syntax and entropy coding templates for NCOBMC_ADAPT_WEIGHT. The actual values of the default probabilities and the index tree structure need to be fine tuned. In this experiment all mv's in a superblock are sent first as in the ncobmc case. Change-Id: I68d50d3d27346c2847ea449a1168c6a99fbb4d3d
-
- 26 Jun, 2017 3 commits
-
-
Yushin Cho authored
Change-Id: Idafef140d3425a9a9f66cb8864a804c4d2a89a70
-
Yushin Cho authored
The var-tx has its own suite of tx size/type RD search functions, which recursively split the partition into square tx blocks. The Daala-dist requires access to 8x8 pixels (both decoded and predicted) since it measures the distortion for multiple of a 8x8 pixels. Thus, if tx block is smaller than 8x8, it waits until all of sub8x8 blocks are RD searched (with MSE) then replaces the MSE of 8x8 pixels with daala-dist's calculated distortion for 8x8 pixels. It is also applied to luma pixels only. Change-Id: Ic4891e89b4ef05cf880aa26781d2d06ccf3142de
-
Yushin Cho authored
- If invisible pixels, av1_daala_dist() simply use source pixles for dst. - Added av1_daala_dist_diff() which inputs diff signal instead of dst. - Refactored daala_dist code so that av1_daala_dist() and _diff() is called inside av1's distortion calculation functions, pixel_sse() and sum_squares_visible(). Change-Id: Id857db52fe19856d92c46a9e84ac2962c01ae045
-
- 21 Jun, 2017 2 commits
-
-
Timothy B. Terriberry authored
cb4x4 itself should not require these sizes. This simplifies compatibility with other experiments, since we can first make them work with cb4x4 (which is now on by default), and then worry about chroma_sub8x8 and chroma_2x2 (which is not) in separate steps. Encoder and decoder output should remain unchanged. Change-Id: Iff2a5494cab3b7d96f881e8bd9cd4bf18c817cfa
-
Fergus Simpson authored
Without tempmv-signaling configured, using the previous frame's MVs requires that the last frame was a show frame. With tempmv-signaling configured, cm->show_last_frame is not checked when calculating use_prev_frame_mvs. This patch adds that check and resolves mismatches seen with random resizing and random superres. Includes a couple fixes too - cm's last_width, last_height, and last_show_frame were updated under different conditions. Now they're all updated at the same time. Change-Id: Ibdfb196cb6e9d002fd57cb4df10a899b60faac00
-
- 20 Jun, 2017 1 commit
-
-
Luc Trudeau authored
CfL performs an extra loop iteration during luma mode selection. Recent changes have broken the extra iteration. Remove previous approach. New approach adds the extra iteration right before uv parameter selection. Interesting fact, If the best luma intra mode already has worse RD performance than the best inter mode found so far (if any), then the entire chroma intra search is skipped, including the extra iteration. Results on Subset1 (compared to 3e18e4ae with CfL) PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.3090 | -2.7271 | -2.3521 | -0.3369 | -0.3463 | -0.3525 | -1.1868 Change-Id: If67b0badd2c8ea25c61685483d39d622c1729b18
-