- 09 Dec, 2016 1 commit
-
-
Jingning Han authored
Change the table content to support 4x4 mode_info unit. Refactor partition_plane_context() to reflect the fact that the minimum partition block size is 8x8. Change-Id: Id26fcfba8d74efdb9ae316c9d066cd65358dd7e6
-
- 07 Dec, 2016 4 commits
-
-
Jingning Han authored
Make the block size and mode_info size scalable to mode_info unit size. Change-Id: I38c49bad118e0565a104cb6edfc3e3266519f9ee
-
Jingning Han authored
Change-Id: Ib7807125e533c32dad04b02bc54838dd1e90e8af
-
Jingning Han authored
Separate the use cases of number of 8x8 blocks from those of mode_info array. This allows the mode_info array processing to be scaled to 4x4 resolution. Change-Id: Iab78f2540355ce7658d9ea21e902a86f71148d8f
-
Jingning Han authored
Scale up the mb_mode_info resolution from 8x8 to 4x4 unit. Change-Id: I60ee20f5fc353a3c16ced14b55422fc5e4ea1e06
-
- 18 Nov, 2016 2 commits
-
-
Debargha Mukherjee authored
Introduced in I2c0bc4ba540886dd196e87a78b205407ad3e866b Change-Id: I9ff49e7d37c5a1fea8dc8b5659a53697f76320df
-
Debargha Mukherjee authored
Adds 64x64 default scan orders Adds 64x64 coefficient entropy models (just copy the 32x32 ones) Entropy context updates for 64x64 transform Various misc. changes to support 64x64 transforms Change-Id: I2c0bc4ba540886dd196e87a78b205407ad3e866b
-
- 11 Nov, 2016 1 commit
-
-
David Barker authored
After https://aomedia-review.googlesource.com/#/c/5589/ , the Global_Motion_Params and GLOBAL_MOTION_TYPE types are redundant, and can be removed in favour of WarpedMotionParams and TransformationType respectively. Change-Id: I33f3796e5c469e595fd012ccdb65a672dd1bb86c
-
- 10 Nov, 2016 1 commit
-
-
Jingning Han authored
Reset the transform block size context to the actual block size if the skip flag is turned on. Change-Id: I821afac2dcd4c3a17389e9954b7b2575f87d07d7
-
- 09 Nov, 2016 1 commit
-
-
Arild Fuldseth (arilfuld) authored
Change-Id: Iaaf9244678cde74cf3e216f3b8c9d293f206f27e
-
- 08 Nov, 2016 1 commit
-
-
Jingning Han authored
Replace max_tx_size with min_tx_size for transform type decision. Change-Id: I64e39923a67903d52b381bd93eaac33b3400a201
-
- 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
-
- 01 Nov, 2016 2 commits
-
-
Jingning Han authored
Count the transform block partition context in the unit of pixels. Change-Id: Ibb66f053526ed347ad0274b78db7ac35cc086b0e
-
Jingning Han authored
This commit allows the partition context model to account for the maximum transform block size of the coding block. Change-Id: I22b91e85fff70faa974afd362ce327d3f2eda81d
-
- 31 Oct, 2016 2 commits
-
-
Jingning Han authored
Change-Id: I7d2414a8766141d5109b599271179bc505c772d3
-
Jingning Han authored
Factor common codes that show up in multiple places. Change-Id: I0a72213a151f74bdad926d59f86f0a28d00968fc
-
- 29 Oct, 2016 1 commit
-
-
Thomas authored
This experiment performs symbol-by-symbol statistics adaptation for non-binary symbols. It requires DAALA_EC or RANS and ANS to be enabled. The adaptation is currently based on a simple recursive filter and is taken from Daala. It has an adaptation rate dependent on alphabet size, taken from Daala. It applies wherever non-binary symbols are encoded using Cumulative Probability Functions rather than trees. Where symbols are adapted, forward updates in the compressed header are removed. In the case of RANS coefficient token values are adapted, with the exception of the zero token which remains a binary symbol. In the case of DAALA_EC other values such as inter and intra modes are adapted as CDFs are provided in those cases. The experiment is configured with: ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt or ./configure --enable-experimental --enable-ans --enable-rans \ --enable-ec-adapt EC_ADAPT is not currently compatible with tiles. BDR results on Objective-1-fast give a small loss: PSNR YCbCr: 0.51% 0.49% 0.48% PSNRHVS: 0.50% SSIM: 0.50% MSSSIM: 0.51% CIEDE2000: 0.50% Change-Id: I3888718e42616f3fd87144de7f125228446ac984
-
- 28 Oct, 2016 1 commit
-
-
Thomas Davies authored
This is a manual adaptation of the following commit from aom/master: ce12003d The original commit message: A tile group is a set of tiles in scan order. Each tile group has a version of uncompressed and compressed headers, identical apart from tile group parameters. Encoding probability updates takes account of the number of headers to control overheads. The decoder supports arbitrary numbers of tile groups with arbitrary number of tiles. The number of tiles in a TG is signalled in the uncompressed header for that TG. The encoder currently only supports a fixed number of TGs (3, when error resilient mode is on) of equal size (except possibly for the last one). The average BDR performnce with 3 tile groups versus anchor with error resilient mode and up to 16 tiles is: NR YCbCr: 3.02% 3.04% 3.05% PSNRHVS: 3.09% SSIM: 3.06% MSSSIM: 3.05% CIEDE2000: 3.04% Change-Id: I9b97c5ed733103b9160a3a5d4370de5322c00c0b
-
- 26 Oct, 2016 1 commit
-
-
Jingning Han authored
Make the codec support 2x2 tranform block unit for chroma components. Change-Id: Ic454535bd5620abe88a2e99789160cc4664ee518
-
- 24 Oct, 2016 1 commit
-
-
Jingning Han authored
Simplify the input arguments. Make direct use of the block size in the unit of pixels. Change-Id: Ifec9d90b4b4fa9605f93b4f93b8242f76f898b5f
-
- 21 Oct, 2016 3 commits
-
-
Jingning Han authored
This prepares for the next refactoring to support 2x2 transform block sizes. Change-Id: Ia06bc487da34e853ef9323cd13e3d482e819db43
-
Nathan E. Egge authored
Move computing the kf_y_mode_cdf tables per coded intra mode symbol to computing them only when the probabilities are updated. Change-Id: I5999447050c2f7d5dbccde80bee05ecd1c5440ab
-
Jingning Han authored
Remove the separate implementations of set_contexts() in encoder and decoder. Change-Id: I9f6e9b075532faae0f74f885d9443589254258a7
-
- 20 Oct, 2016 1 commit
-
-
Zoe Liu authored
Plus a small code clean up. The experiment of EXT_REFS, compared against the baseline, using Overall PSNR, now obtains a gain on lowres as: Avg: -5.818; BDRate: -5.653 Compared against the previous EXT_REFS results on lowres, a tiny gain is obtained as: Avg: -0.047, BDRate: -0.063 (1) 780952 Add encoder first pass support to bi-prediction in EXT_REFS (2) f91498 Add pred prob handling for new references in EXT_REFS (3) e91472 Add decoder support for bi-direct prediction in EXT_REFS (4) 0dbac9 Add encoder support to new references in EXT_REFS (5) ad70cc Remove hard-coded number for EXT_REFS (6) 9c1e2f Add the use of new reference frames at encoder in EXT_REFS (7) 6d4fde Add the experiment flag of EXT_REFS Change-Id: I26f7ca45b9ede7579fdb9d0d6a1a91f4334599bd
-
- 19 Oct, 2016 3 commits
-
-
Thomas Davies authored
Example performance: 1.8% bit rate savings using the AQ test mode aq-mode=4 : ./aomenc --codec=av1 --ivf --tile-columns=1 --tile-rows=1 \ --kf-max-dist=1000 --kf-min-dist=1000 --cpu-used=0 \ --passes=1 --threads=1 --lag-in-frames=0 \ --end-usage=q --limit=600 --cq-level=42 \ --aq-mode=4 --error-resilient=1 out.bits FourPeople_1280x720_60.y4m Change-Id: Iba01cf2732a57f3c27481ac2a3c8fc37bb9e5533
-
Arild Fuldseth authored
Change-Id: I4128af44776d1f361bddc1fdffb75ed2224dbfa5
-
Yaowu Xu authored
Change-Id: I97487bf353471bf9d245cd620780adfb1d3fc2b1
-
- 18 Oct, 2016 1 commit
-
-
Jingning Han authored
This commit fixes the use of uninitialized value in obmc motion search, which causes unstable encoder behavior when row_tile is not zero. Change-Id: Ib6aa46ebedad90376ae2ac2edcae9e17f9234b6d
-
- 14 Oct, 2016 3 commits
-
-
Urvang Joshi authored
This flag was already added to aomedia/master, so bringing it back to webm/nextgenv2, as part of an effort to get the two codebases in sync. Change-Id: I2b933a6a160e4210d1411a9e7978149eb8553205
-
- 13 Oct, 2016 1 commit
-
-
Steinar Midtskogen authored
These signals were in the uncompressed frame header (as a temporary hack), which caused two problems: * We don't want that header to be duplicated in the slice header * It was necessary to signal the number of bits to transmit up front However, the filter size can be 128x128 which is greater than the SB size, and a decoder wouldn't be able to know whether to read a bit or not until the final SB of that 128x128 block has been decoded (depending on whether the 128x128 is all skip or not). Therefore the signalling was changed for 128x128 blocks so that every top left SB of a 128x128 filter block contains a signal regardless of whether the block is all skip or not. Also, all the MB's of 128x128 block are filtered even if they are skip MB's. This gives the signal a purpose even when the 128x128 block is all skip, and it also gives a slight coding gain as it leaves a way to filter skip blocks, which was previously forbidden. Low latency: PSNR YCbCr: -0.19% -0.14% -0.06% PSNRHVS: -0.15% SSIM: -0.13% MSSSIM: -0.15% CIEDE2000: -0.19% High latency: PSNR YCbCr: -0.03% -0.01% -0.09% PSNRHVS: 0.04% SSIM: 0.00% MSSSIM: 0.02% CIEDE2000: -0.02% Change-Id: I69ba7144d07d388b4f0968f6a53558f480979171
-
- 10 Oct, 2016 1 commit
-
-
Steinar Midtskogen authored
Objective quality impact (low latency): PSNR YCbCr: 0.13% -1.37% -1.79% PSNRHVS: 0.03% SSIM: 0.24% MSSSIM: 0.10% CIEDE2000: -0.83% Change-Id: I8ddf0def569286775f0f9d4d4005932766a7fc27
-
- 06 Oct, 2016 1 commit
-
-
Steinar Midtskogen authored
This commit ports a CLPF change from aom/master by manually cherry-picking: 7560123c Change-Id: I61eb08862a101df74a6b65ece459833401e81117
-
- 04 Oct, 2016 2 commits
-
-
Thomas authored
This experiment performs symbol-by-symbol statistics adaptation for non-binary symbols. It requires DAALA_EC or RANS and ANS to be enabled. The adaptation is currently based on a simple recursive filter and is taken from Daala. It has an adaptation rate dependent on alphabet size, taken from Daala. It applies wherever non-binary symbols are encoded using Cumulative Probability Functions rather than trees. Where symbols are adapted, forward updates in the compressed header are removed. In the case of RANS coefficient token values are adapted, with the exception of the zero token which remains a binary symbol. In the case of DAALA_EC other values such as inter and intra modes are adapted as CDFs are provided in those cases. The experiment is configured with: ./configure --enable-experimental --enable-daala-ec --enable-ec-adapt or ./configure --enable-experimental --enable-ans --enable-rans \ --enable-ec-adapt EC_ADAPT is not currently compatible with tiles. BDR results on Objective-1-fast give a small loss: PSNR YCbCr: 0.51% 0.49% 0.48% PSNRHVS: 0.50% SSIM: 0.50% MSSSIM: 0.51% CIEDE2000: 0.50% Change-Id: I3888718e42616f3fd87144de7f125228446ac984
-
Steinar Midtskogen authored
These signals were in the uncompressed frame header (as a temporary hack), which caused two problems: * We don't want that header to be duplicated in the slice header * It was necessary to signal the number of bits to transmit up front However, the filter size can be 128x128 which is greater than the SB size, and a decoder wouldn't be able to know whether to read a bit or not until the final SB of that 128x128 block has been decoded (depending on whether the 128x128 is all skip or not). Therefore the signalling was changed for 128x128 blocks so that every top left SB of a 128x128 filter block contains a signal regardless of whether the block is all skip or not. Also, all the MB's of 128x128 block are filtered even if they are skip MB's. This gives the signal a purpose even when the 128x128 block is all skip, and it also gives a slight coding gain as it leaves a way to filter skip blocks, which was previously forbidden. Low latency: PSNR YCbCr: -0.19% -0.14% -0.06% PSNRHVS: -0.15% SSIM: -0.13% MSSSIM: -0.15% CIEDE2000: -0.19% High latency: PSNR YCbCr: -0.03% -0.01% -0.09% PSNRHVS: 0.04% SSIM: 0.00% MSSSIM: 0.02% CIEDE2000: -0.02% Change-Id: I69ba7144d07d388b4f0968f6a53558f480979171
-
- 30 Sep, 2016 1 commit
-
-
Yaowu Xu authored
This commit merges the fix that makes use of generic probability model for segmentation related probabilities. Related tracking issue: https://bugs.chromium.org/p/webm/issues/detail?id=1040 point#1 Original libvpx commit: 6e5a1165 Change-Id: Ia1be5df86ac223b967b50dbfb3cb59239f171b36
-
- 29 Sep, 2016 1 commit
-
-
Yaowu Xu authored
Change-Id: I9152f898dfacdf3877ed719f193bb1e0dbee0a1a
-
- 23 Sep, 2016 1 commit
-
-
Thomas Davies authored
A tile group is a set of tiles in scan order. Each tile group has a version of uncompressed and compressed headers, identical apart from tile group parameters. Encoding probability updates takes account of the number of headers to control overheads. The decoder supports arbitrary numbers of tile groups with arbitrary number of tiles. The number of tiles in a TG is signalled in the uncompressed header for that TG. The encoder currently only supports a fixed number of TGs (3, when error resilient mode is on) of equal size (except possibly for the last one). The average BDR performnce with 3 tile groups versus anchor with error resilient mode and up to 16 tiles is: NR YCbCr: 3.02% 3.04% 3.05% PSNRHVS: 3.09% SSIM: 3.06% MSSSIM: 3.05% CIEDE2000: 3.04% Change-Id: I9b97c5ed733103b9160a3a5d4370de5322c00c0b
-