- 15 Dec, 2017 1 commit
-
-
Jingning Han authored
Following the cb4x4 design, the logic related to sub8x8 handling can be simplifed. Change-Id: I1ed0c0327a4498614408320a583ad37607bde4af
-
- 14 Dec, 2017 1 commit
-
-
Luc Trudeau authored
The get_y_mode function, is superfluous, not used consistently, and requires a useless block_idx parameter than gets pass around a lot inside the codebase for no apparent reason. The block parameter is misleading, as it could cause people to think all these functions actually use this value. Change-Id: I7ae0a8d1282c009b9114c83771cce10f5c2ee397
-
- 13 Dec, 2017 1 commit
-
-
Mattias Hansson authored
HW simplifications for intra predicition. Changed from 256 points interpolation to 32 points. Changed values in dr_intra_derivative to be upscaled by 64 instead of 256 and adjusted the angles to be more evenly spread out. Values are also kept within 10-bits. AWCY results: objective-1-fast-1, key-frame only, cpu-used=0 --disable-ext-partition --disable-ext-partition-types PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 -0.0476 | N/A | 0.2705 | -0.0741 | -0.1357 | -0.1960 | N/A Change-Id: I1e1712ab71dc47a3e898b1799ba9e648153735eb
-
- 07 Nov, 2017 1 commit
-
-
Rupert Swarbrick authored
This seems a little cleaner than having the loop open coded in four places. Change-Id: I2ce7be2745ba3575f618d9e261ab767d10f551f7
-
- 31 Oct, 2017 1 commit
-
-
Sebastien Alaiwan authored
This experiment has been abandonned. Change-Id: Ifde0a76266af9f8c202c01805410b72d64594b0b
-
- 24 Oct, 2017 1 commit
-
-
Hui Su authored
Change-Id: I32c5015bedef07f58413c679b4aaf30651a357b9
-
- 21 Oct, 2017 1 commit
-
-
Yushin Cho authored
Change-Id: Id377c68e30031ad4697ca1ba311487b803a8af4c
-
- 20 Oct, 2017 1 commit
-
-
Debargha Mukherjee authored
Since CB4X4 is adopted and without it the codec does not work, it is better to remove it and simplify the code. Change-Id: I51019312846928069727967e3b2bbb60f0fba80d
-
- 16 Oct, 2017 1 commit
-
-
Hui Su authored
This experiment uses switchable interpolation filter for intra prediction. Current gain is too small to be useful for AV1. May explore more for AV2 in the future. Change-Id: I24ae8c75dc71adf6271eabdb68a81b68a0869fa2
-
- 21 Jul, 2017 1 commit
-
-
Luc Trudeau authored
Change-Id: Ib03758eb5ab32ee7d0f87d216bc5fad591578597
-
- 20 Jul, 2017 1 commit
-
-
Jingning Han authored
Process the intra block coding in maximum of 64x64 block unit. This allows to simpilify the hardware design for 128x128 level block coding. Change-Id: I6ef1dd8549bdb53b2d2394c6aa7d61cea93686bf
-
- 17 Jul, 2017 1 commit
-
-
hui su authored
Change-Id: I802c9e41ebfed090b5ad8300917aad5e16ad026a
-
- 21 Jun, 2017 1 commit
-
-
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
-
- 08 Jun, 2017 1 commit
-
-
Yushin Cho authored
For a tx size RD search with partition size >= 8x8 and tx size < 8x8, daala-dist function is applied to the whole partition after all tx blocks are encoded instead of each 8x8 sub block of the partition. Change-Id: I27d9e2960aa641f550096e32ebcdf8dfb4de79a6
-
- 01 Jun, 2017 1 commit
-
-
Yushin Cho authored
The place where av1_daala_dist() is applied for sub8x8 partition is moved from sub8x8 mode decision functions to rd_pick_partition(). BD-Rate change by daala-dist with '--disable-var-tx' is: (AWCY, objective-1-fast, high delay mode) PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 15.1558 | 12.9585 | 14.4662 | -3.8651 | -1.7102 | -9.2956 | 10.8686 In MSE probe mode: PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 0.0429 | 0.0435 | 0.1651 | -0.0415 | 0.0850 | 0.0122 | 0.0546 Change-Id: I3b2ea916d41c48e433eb641adf44552e4725c198
-
- 21 May, 2017 1 commit
-
-
Timothy B. Terriberry authored
reset_skip_context() was always clearing the entropy contexts for all three color planes, using a block size that corresponded with the luma plane. However, when chroma_2x2 is disabled, then for sub-8x8 luma block sizes, the corresponding chroma block size is always 4x4, and the skip flag only affects the chroma blocks corresponding to the upper-left luma block. This patch makes reset_skip_context() reset the contexts that actually correspond to the chroma blocks that are skipped (if any). It also moves reset_skip_context() to av1_reset_skip_context() in blockd.c, because blockd.h gets included before onyx_int.h, which declares the required is_chroma_reference() function. reset_skip_context() was too large and used in too many places to be a reasonable candidate for inlining, anyway. AWCY results on objective-1-fast: cb4x4-fix-base@2017-05-11T06:26:50.159Z -> cb4x4-fix-reset_skip@2017-05-11T06:28:45.482Z PSNR | PSNR Cb | PSNR Cr | PSNR HVS | SSIM | MS SSIM | CIEDE 2000 0.0301 | 0.1068 | 0.1463 | 0.0359 | 0.0260 | 0.0347 | 0.0479 A regression (near the noise range), but without this fix, the line buffer size required by the entropy contexts will be doubled. Change-Id: I12fa6e60d9c1c7c85927742775a346ea22b3193f
-
- 07 Apr, 2017 1 commit
-
-
Jingning Han authored
Make is_chroma_reference() account for all the YUV420, 444, and 422 formats. Change-Id: Ia87e51894493dcea86843194a34e5de05799248a
-
- 05 Apr, 2017 1 commit
-
-
Jingning Han authored
This commit integrates the level map coding within cb4x4 framework. Change-Id: Ied9721df0a7ffd21d1d69d68759d91b6c320c179
-
- 16 Mar, 2017 1 commit
-
-
Angie Chiang authored
This draft version only pass compiling check, it's not working yet. The following goal is to use new coding system when doing bitstream packing but keep old coding system in RD loop. Change-Id: I224a1581d1cc5c67d73e71558fb77d9faf9c2470
-
- 08 Mar, 2017 1 commit
-
-
Fangwen Fu authored
* Run 45 degree wavefront coding for palette index with palette_throughput experiment. * Remove palette index interleave. Change-Id: Ibb57004401f817dec8b00bc2a941d70a26783ff9
-
- 01 Mar, 2017 1 commit
-
-
Jingning Han authored
Change-Id: Ie836a113978028f3bde2acd31061d9a663547087
-
- 27 Feb, 2017 1 commit
-
-
Angie Chiang authored
Change-Id: Ifcdd3ce2953c1ecb1d0962da412a4b5ba2cda912
-
- 25 Feb, 2017 1 commit
-
-
James Zern authored
Change-Id: Idd4a7ff49c594e8d1c7cb057967fe7bf75770dfb
-
- 24 Feb, 2017 2 commits
-
-
Fangwen Fu authored
* code the palette color index using 45 wavefront * interleave the coeff and palette color index in transform block level * the above change does not change code efficiency Details: The 45 wavefront scan allows to compute the ctx of the diagonal samples' indices at the same time. Interleaving palette indices and palette residual on a transform block basis means that the entropy decoding and further processing of the palette residual is not delayed by the entropy decoding of all the color indices of the palette encoded block. Change-Id: Ie9f576002a9a68394b99c23b01e9730df06df070
-
Luc Trudeau authored
Adds the static inline function get_plane_type to convert a plane number to the corresponding PLANE_TYPE. There's no change to the bitstream, it only encapsulates the logic to get the PLANE_TYPE. Change-Id: I1199db3a32c89437d9c029ab5b2b2e62582a13a2
-
- 23 Feb, 2017 1 commit
-
-
Jingning Han authored
Support the use of 2x2 prediction and transform block size for chroma components. This experiment builds on top of cb4x4. It brings back the loss in performance gains due to 4x4 chroma component constrain. The coding gains for lowres are up from 1.5% to 2.5%. Change-Id: I8e461e230c2d920f6df1af9d935ebe9dfa3820d9
-
- 18 Feb, 2017 2 commits
-
-
Jingning Han authored
Use the top-left 4x4 luma block's coding information for chroma component encoding at size 4x4. Change-Id: I4bcfbc2bf8b71f7fc30094553503468460a56f9b
-
Jingning Han authored
Change-Id: I3fa9d24f2a61dd1b4a234fb1cfea679af06ebdb5
-
- 23 Jan, 2017 1 commit
-
-
Yushin Cho authored
This commit adds a new experiment, Daala's distortion function, which is designed to better approximate perceptual distortion in 8x8 pixel blocks. This experiment is expected to work best with PVQ. It measures the variance of overlapped 4x4 regions in the 8x8 area, then uses these variances to scale the MSE of weighted frequency domain distortion of 8x8 block. Since AV1 calculates distortion in blocks as small as 4x4, it is not possible to directly replace the existing distortion functions of AV1, such as dist_block() and block_rd_txf(). Hence, there has been substantial changes in order to apply Daala's 8x8 distortion function. The daala distortion function is applied after all 4x4 tx blocks in a 8x8 block are encoded (during RDO), as in below two cases: 1) intra/inter sub8x8 predictions and 2) 4x4 transform with prediction size >= 8. To enable this experiment, add '--enable-daala-dist' with configure. TODO: Significant tuning of parameters is required since the function has originally came from Daala thus most parameters would not work correctly outside Daala. The fact that chroma distortion is added to the distortion of AV1's RDO is also critical since Daala's distortion function is applied to luma only and chroma continues to use MSE. Change-Id: If35fdd3aec7efe401f351ba1c99891ad57a3d957
-
- 15 Dec, 2016 1 commit
-
-
Jingning Han authored
Remove the use case of bmi->as_mode in cb4x4 mode. Its function is covered by 4x4 level mode_info. Change-Id: I04abc1b7a0a97c12c3b6fddc1f16f7045512772e
-
- 09 Dec, 2016 1 commit
-
-
hui su authored
intra-interp experiment allows intra prediction to use different interpolation filters. It was part of the ext-intra in the nextgenv2 branch. Change-Id: I27ab692494dc79bb92e457dbf9a72988577f1c6d
-
- 05 Dec, 2016 1 commit
-
-
Jingning Han authored
Replace hard coded numbers with table fetch. Support scalability in transform block operating unit. Change-Id: I4a5e67576e72de4936ac52d1401412ca6217ed6d
-
- 02 Dec, 2016 1 commit
-
-
Jingning Han authored
Control the loop over transform blocks in the unit of smallest transform block size. This would provide scalability to support smaller transform block sizes. Change-Id: I6a8167cf91f71c5d4af4e244c628f378866a607c
-
- 21 Nov, 2016 1 commit
-
-
iole moccagatta authored
This commit adds an experiment to interleave the coding of transform coefficients from YUV planes. The experiment can be enabled at config time by --enable-coef-interleave. Change-Id: Ifd92f9c367304bca9732f13fa026eb8996363677
-
- 07 Nov, 2016 1 commit
-
-
Yushin Cho authored
PVQ replaces the scalar quantizer and coefficient coding with a new design originally developed in Daala. It currently depends on the Daala entropy coder although it could be adapted to work with another entropy coder if needed: ./configure --enable-experimental --enable-daala_ec --enable-pvq The version of PVQ in this commit is adapted from the following revision of Daala: https://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8 More information about PVQ: - https://people.xiph.org/~jm/daala/pvq_demo/ - https://jmvalin.ca/papers/spie_pvq.pdf The following files are copied as-is from Daala with minimal adaptations, therefore we disable clang-format on those files to make it easier to synchronize the AV1 and Daala codebases in the future: av1/common/generic_code.c av1/common/generic_code.h av1/common/laplace_tables.c av1/common/partition.c av1/common/partition.h av1/common/pvq.c av1/common/pvq.h av1/common/state.c av1/common/state.h av1/common/zigzag.h av1/common/zigzag16.c av1/common/zigzag32.c av1/common/zigzag4.c av1/common/zigzag64.c av1/common/zigzag8.c av1/decoder/decint.h av1/decoder/generic_decoder.c av1/decoder/laplace_decoder.c av1/decoder/pvq_decoder.c av1/decoder/pvq_decoder.h av1/encoder/daala_compat_enc.c av1/encoder/encint.h av1/encoder/generic_encoder.c av1/encoder/laplace_encoder.c av1/encoder/pvq_encoder.c av1/encoder/pvq_encoder.h Known issues: - Lossless mode is not supported, '--lossless=1' will give the same result as '--end-usage=q --cq-level=1'. - High bit depth is not supported by PVQ. Change-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e
-
- 04 Nov, 2016 1 commit
-
-
Yushin Cho authored
PVQ replaces the scalar quantizer and coefficient coding with a new design originally developed in Daala. It currently depends on the Daala entropy coder although it could be adapted to work with another entropy coder if needed: ./configure --enable-experimental --enable-daala_ec --enable-pvq The version of PVQ in this commit is adapted from the following revision of Daala: https://github.com/xiph/daala/commit/fb51c1ade6a31b668a0157d89de8f0a4493162a8 More information about PVQ: - https://people.xiph.org/~jm/daala/pvq_demo/ - https://jmvalin.ca/papers/spie_pvq.pdf The following files are copied as-is from Daala with minimal adaptations, therefore we disable clang-format on those files to make it easier to synchronize the AV1 and Daala codebases in the future: av1/common/generic_code.c av1/common/generic_code.h av1/common/laplace_tables.c av1/common/partition.c av1/common/partition.h av1/common/pvq.c av1/common/pvq.h av1/common/state.c av1/common/state.h av1/common/zigzag.h av1/common/zigzag16.c av1/common/zigzag32.c av1/common/zigzag4.c av1/common/zigzag64.c av1/common/zigzag8.c av1/decoder/decint.h av1/decoder/generic_decoder.c av1/decoder/laplace_decoder.c av1/decoder/pvq_decoder.c av1/decoder/pvq_decoder.h av1/encoder/daala_compat_enc.c av1/encoder/encint.h av1/encoder/generic_encoder.c av1/encoder/laplace_encoder.c av1/encoder/pvq_encoder.c av1/encoder/pvq_encoder.h Known issues: - Lossless mode is not supported, '--lossless=1' will give the same result as '--end-usage=q --cq-level=1'. - High bit depth is not supported by PVQ. Change-Id: I1ae0d6517b87f4c1ccea944b2e12dc906979f25e
-
- 25 Oct, 2016 1 commit
-
-
Jingning Han authored
Use table to replace the arithmetic computation for mapping between transform block and pixel number. Support automatic scale of block size and transform block size. Change-Id: I84766850172265d4295f418383dbc5e6e5838ec8
-
- 24 Oct, 2016 1 commit
-
-
Jingning Han authored
Account for the rectangular transform block size in setting the context data. Change-Id: Ic30a6a3eaaca4c945e0aab3acbaeb99aa48b0064
-
- 21 Oct, 2016 1 commit
-
-
Jingning Han authored
Remove the separate implementations of set_contexts() in encoder and decoder. Change-Id: I9f6e9b075532faae0f74f885d9443589254258a7
-
- 20 Oct, 2016 1 commit
-
-
hui su authored
Prepare for the av1/nextgenv2 merge. Coding gain (%): lowres midres ext-intra 0.69 0.97 filter-intra 0.67 0.83 both 1.05 1.48 Change-Id: Ia24d6fafb3e484c4f92192e0b7eee5e39f4f4ee6
-