- 25 Oct, 2016 1 commit
-
-
Jingning Han authored
Introduce the transform block partition depth macro definition. Change-Id: I218dc77a77c8e967da4d270d4ec0d7691b712a5f
-
- 24 Oct, 2016 1 commit
-
-
Jingning Han authored
Change-Id: I85532cf88f91f0f0cb4d9cb4b2dbda8a181297bf
-
- 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
-
- 19 Oct, 2016 1 commit
-
-
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
-
- 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 2 commits
-
-
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
-
Yue Chen authored
To get ready for pulling AV1 to nextgenv2 Replace the experimental flag by MOTION_VAR. Rename major variables. Change-Id: If6cf4f37b9319c46d8f90df551cc7295d66ca205
-
- 22 Sep, 2016 1 commit
-
-
Urvang Joshi authored
enums for BLOCK_SIZE, TX_SIZE and PREDICTION_MODE. Note: These were converted to #defines earlier to save on memory: https://chromium-review.googlesource.com/#/c/269854/ But we, instead, use attribute 'packed' (see here: https://gcc.gnu.org/onlinedocs/gcc/Common-Type-Attributes.html#Common-Type-Attributes) to ensure that these enums use the smallest possible integer type, and so use smallest memory when used in structs/arrays etc. Change-Id: If1fc136686b28847109c9f3a06f8728165e7e475
-
- 17 Sep, 2016 1 commit
-
-
Debargha Mukherjee authored
Includes a major refactoring/enhancement to support tile-adaptive switchable restoration. The framework can be readily extended to add more restoration schemes in the future. Also includes various cleanups and fixes. Specifically the framework allows restoration to be conducted on tiles such that each tile can be either left unrestored, or use bilateral or wiener filtering. There is a modest improvemnt in coding efficiency (0.1 - 0.2%). Further enhancements will be added subsequently to improve coding efficiency and complexity. Change-Id: I5ebedb04785ce1ef6f324abe209e925c2d6cbe8a
-
- 05 Sep, 2016 1 commit
-
-
Debargha Mukherjee authored
Uses an array to map block sizes, y tx sizes, and subsampling factors to various transform sizes for UV. Results improve by 0.1-0.2% Change-Id: Icb58fd96bc7c01a72cbf1332fe2be4d55a0feedc
-
- 02 Sep, 2016 1 commit
-
-
Yaowu Xu authored
Change-Id: I2b2b70e756b7eb9611b7b33b7d5f19b3b30e0a50
-
- 01 Sep, 2016 2 commits
-
-
Yaowu Xu authored
Cherry-Picked the following commits: 0defd8f2 Changed "WebM" to "AOMedia" & "webm" to "aomedia" 54e66767 Replace "VPx" by "AVx" 5082a369 Change "Vpx" to "Avx" 7df44f17 Replace "Vp9" w/ "Av1" 967f722f Remove kVp9CodecId 828f30ce Change "Vp8" to "AOM" 030b5ffc AUTHORS regenerated 2524caee Add ref-mv experimental flag 016762be Change copyright notice to AOMedia form 81e55269 Replace vp9 w/ av1 9b94565b Add missing files fa8ca9f2 Change "vp9" to "av1" ec838b76 Convert "vp8" to "aom" 80edfa01 Change "VP9" to "AV1" d1a11fb9 Change "vp8" to "aom" 7b582513 Point to WebM test data dd1a5c8d Replace "VP8" with "AOM" ff00fc0f Change "VPX" to "AOM" 01dee0bb Change "vp10" to "av1" in source code cebe6f0c Convert "vpx" to "aom" 17b05679 rename vp10*.mk to av1_*.mk fe5f8a8a rename files vp10_* to av1_* Change-Id: I6fc3d18eb11fc171e46140c836ad5339cf6c9419
-
- 18 Aug, 2016 1 commit
-
-
clang-format authored
after: 253c001f Port dering experiment from aom 72081457 Adding 8x16/16x8/32x16/16x32 transforms Change-Id: Id93e0d7b72a128701d8dec35fc2fac473944d0c1
-
- 15 Aug, 2016 1 commit
-
-
Debargha Mukherjee authored
Adds forward, inverse transforms and scan orders. Change-Id: Iab6994f4b0ef65e660b714d111b79b1c8172d6a8
-
- 12 Aug, 2016 1 commit
-
-
clang-format authored
Change-Id: I01d8241eba3ccaf4d06c00a51df2d17c126f6f9d
-
- 04 Aug, 2016 1 commit
-
-
Zoe Liu authored
We have renamed following Macros to avoid name confusion: REFS_PER_FRAME --> INTER_REFS_PER_FRAME (= ALTREF_FRAME - LAST_FRAME + 1) MAX_REF_FRAMES --> TOTAL_REFS_PER_FRAME (= ALTREF_FRAME - INTRA_FRAME + 1) INTER_REFS_PER_FRAME specifies the maximum number of reference frames that each Inter frame may use. TOTAL_REFS_PER_FRAME is equal to INTER_REFS_PER_FRAME + 1, which counts the INTRA_FRAME. Further, at the encoder side, since REF_FRAMES specifies the maximum number of the reference frames that the encoder may store, REF_FRAMES is usually larger than INTER_REFS_PER_FRAME. For example, in the ext-refs experiment, REF_FRAMES == 8, which allows the encoder to store maximum 8 reference frames in the buffer, but INTER_REFS_PER_FRAME equals to 6, which allows each Inter frame may use up to 6 frames out of the 8 buffered frames as its references. Hence, in order to explore the possibility to store more reference frames in future patches, we modified a couple of array sizes to accomodate the case that the number of buffered reference frames is not always equal to the number of the references that are being used by each Inter frame. Change-Id: I19e42ef608946cc76ebfd3e965a05f4b9b93a0b3
-
- 02 Aug, 2016 1 commit
-
- 21 Jul, 2016 1 commit
-
-
Debargha Mukherjee authored
Added a new expt rect-tx to be used in conjunction with ext-tx. [rect-tx is a temporary config flag and will eventually be merged into ext-tx once it works correctly with all other experiments]. Added 4x8 and 8x4 tranforms for use initially with rectangular sub8x8 y blocks as part of this experiment. There is about a -0.2% BDRATE improvement on lowres, others pending. When var-tx is on rectangular transforms are currently not used. That will be enabled in a subsequent patch. Change-Id: Iaf3f88ede2740ffe6a0ffb1ef5fc01a16cd0283a
-
- 22 Jun, 2016 1 commit
-
-
Jingning Han authored
Move the reference frame type definitions to common/enums.h file. Replace hard coded numbers. Combine repeated definitions. Change-Id: I288e079a03e448014cc181bcdb3f88ee8ec8d139
-
- 17 Jun, 2016 1 commit
-
-
Zoe Liu authored
This patch removed the experiment of BIDIR_PRED and merged the feature into the experiment of EXT_REFS: (1) Each frame now has up to 6 reference frames, namely LAST_FRAME, LAST2_FRAME, LAST3_FRAME, GOLDEN_FRAME, (forward) and BWDREF_FRAME, ALTREF_FRAME (backward); LAST4_FRAME has been removed; (2) First pass still keeps the 8 updates: KF_UPDATE, LF_UPDATE, GF_UPDATE, ARF_UPDATE, OVERLAY_UPDATE, and BRF_UPDATE, LAST_BIPRED_UPDATE, BI_PRED_UPDATE; (3) show_existing_frame==1 is supported in the experiment of EXT_REFS; (4) New encoding modes are added for both single-ref and compound cases, through the use of the 2 extra forward references (LAST2 & LAST3) and the 1 extra backward reference (BWDREF). RD performance wise, using Overall PSNR: Avg/BDRate Bipred only Prev EXT_REFS Current EXT_REFS with bipred lowres: -3.474/-3.324 -1.748/-1.586 -4.613/-4.387 derflr: -2.097/-1.353 -1.439/-1.215 -3.120/-2.252 midres: -2.129/-1.901 -1.345/-1.185 -2.898/-2.636 If in vp10/encoder/firstpass.h, change BFG_INTERVAL from 2 to 3, i.e. to use 2 bi-predictive frames than 1, a further improvement may be obtained: Current EXT_REFS with bipred 1 bi-predictive frame 2 bi-predictive frames lowres: -4.613/-4.387 -4.675/-4.465 derflr: -3.120/-2.252 -3.333/-2.516 midres: -2.898/-2.636 -3.406/-3.095 Change-Id: Ib06fe9ea0a5cfd7418a1d79b978ee9d80bf191cb
-
- 10 Jun, 2016 1 commit
-
-
Debargha Mukherjee authored
Change-Id: I15d54a3ae48b2b33082668116792c6595bdb3ddb
-
- 08 Jun, 2016 1 commit
-
-
Jingning Han authored
Change-Id: I399d601d40827ac383a6687cbeaec59e9a9c63e4
-
- 24 May, 2016 1 commit
-
-
Zoe Liu authored
Major parts have been implemented as follows: (1) Added BRF_UPDATE, LASTNRF_UPDATE, and NRF_UPDATE in firstpass.c; (2) Added the handling for the scenario of "cpi->common.show_existing_frame == 1" at the encoder; (3) Added a new reference frame of BWDREF_FRAME; (4) Have bwd-ref work with upsampled references. Note that when the experiment of "ext_refs" turned on, this experiment will be turned off automatically currently. RD performance in Overall PSNR has been improved, compared against the VP10 baseline: lowres: Avg -3.312; BDRate -3.154 derflr: Avg -1.927; BDRate -1.176 midres: Avg -2.149; BDRate -2.001 hdres : Avg -0.567; BDRate -0.588 Change-Id: I4c06ff51cc20194bffbd4d2346e57ba3dcf6b62c
-
- 04 May, 2016 1 commit
-
-
Sarah Parker authored
This is the set of 1D transforms that are used in each ext_tx_used_inter set. The 1D sets will help speed up the ext tx pruning functions. Change-Id: Ib46ad26be2df60b3bfcd2f22d96e7f38ae286df5
-
- 28 Apr, 2016 1 commit
-
-
Debargha Mukherjee authored
lowres: improves by 0.1% Change-Id: I245019916bf47c6e24bc8c3953b86715ab0193c9
-
- 13 Apr, 2016 1 commit
-
-
Geza Lore authored
The VP8_EFLAG_NO_UPD_LAST and VP8_EFLAG_NO_REF_LAST flags can be passed to the encoder to signal that it should not update/reference the LAST ref frame when encoding the current frame. With --enable-ext-refs turned on, the new LAST2 LAST3 and LAST4 ref frames could still be used or updated, which causes the VP10/ErrorResilienceTestLarge.DropFramesWithoutRecovery/{0,1,2} tests to fail. With this patch, if --enable-ext-refs is used, then VP8_EFLAG_NO_UPD_LAST and VP8_EFLAG_NO_REF_LAST also applies to the new LAST2 LAST3 and LAST4 ref frames, as well as the LAST ref frame. Change-Id: If482b1c09bbaf914eca8e0348a2367bff261661d
-
- 08 Apr, 2016 1 commit
-
-
Geza Lore authored
Change-Id: Id8b16c1b18bd6f909e72aae3fd582dd3503c88c6
-
- 07 Apr, 2016 1 commit
-
-
Geza Lore authored
The uncompressed frame header contains a bit to signal whether the frame is encoded using 64x64 or 128x128 superblocks. This can vary between any 2 frames. vpxenc gained the --sb-size={64,128,dynamic} option, which allows the configuration of the superblock size used (default is dynamic). 64/128 will force the encoder to always use the specified superblock size. Dynamic would enable the encoder to choose the sb size for each frame, but this is not implemented yet (dynamic does the same as 128 for now). Constraints on tile sizes depend on the superblock size, the following is a summary of the current bitstream syntax and semantics: If both --enable-ext-tile is OFF and --enable-ext-partition is OFF: The tile coding in this case is the same as VP9. In particular, tiles have a minimum width of 256 pixels and a maximum width of 4096 pixels. The tile width must be multiples of 64 pixels (except for the rightmost tile column). There can be a maximum of 64 tile columns and 4 tile rows. If --enable-ext-tile is OFF and --enable-ext-partition is ON: Same constraints as above, except that tile width must be multiples of 128 pixels (except for the rightmost tile column). There is no change in the bitstream syntax used for coding the tile configuration if --enable-ext-tile is OFF. If --enable-ext-tile is ON and --enable-ext-partition is ON: This is the new large scale tile coding configuration. The minimum/maximum tile width and height are 64/4096 pixels. Tile width and height must be multiples of 64 pixels. The uncompressed header contains two 6 bit fields that hold the tile width/heigh in units of 64 pixels. The maximum number of tile rows/columns is only limited by the maximum frame size of 65536x65536 pixels that can be coded in the bitstream. This yields a maximum of 1024x1024 tile rows and columns (of 64x64 tiles in a 65536x65536 frame). If both --enable-ext-tile is ON and --enable-ext-partition is ON: Same applies as above, except that in the bitstream the 2 fields containing the tile width/height are in units of the superblock size, and the superblock size itself is also coded in the bitstream. If the uncompressed header signals the use of 64x64 superblocks, then the tile width/height fields are 6 bits wide and are in units of 64 pixels. If the uncompressed header signals the use of 128x128 superblocks, then the tile width/height fields are 5 bits wide and are in units of 128 pixels. The above is a summary of the bitstream. The user interface to vpxenc (and the equivalent encoder API) behaves a follows: If --enable-ext-tile is OFF: No change in the user interface. --tile-columns and --tile-rows specify the base 2 logarithm of the desired number of tile columns and tile rows. The actual number of tile rows and tile columns, and the particular tile width and tile height are computed by the codec ensuring all of the above constraints are respected. If --enable-ext-tile is ON, but --enable-ext-partition is OFF: No change in the user interface. --tile-columns and --tile-rows specify the WIDTH and HEIGHT of the tiles in unit of 64 pixels. The valid values are in the range [1, 64] (which corresponds to [64, 4096] pixels in increments of 64. If both --enable-ext-tile is ON and --enable-ext-partition is ON: If --sb-size=64 (default): The user interface is the same as in the previous point. --tile-columns and --tile-rows specify tile WIDTH and HEIGHT, in units of 64 pixels, in the range [1, 64] (which corresponds to [64, 4096] pixels in increments of 64). If --sb-size=128 or --sb-size=dynamic: --tile-columns and --tile-rows specify tile WIDTH and HEIGHT, in units of 128 pixels in the range [1, 32] (which corresponds to [128, 4096] pixels in increments of 128). Change-Id: Idc9beee1ad12ff1634e83671985d14c680f9179a
-
- 31 Mar, 2016 2 commits
-
-
Debargha Mukherjee authored
Decouples interintra modes and probability models from regular intra modes, to enable creating/optimizing new interintra modes. Also, fixes interpolation values for 128x128 interintra and obmc. Change-Id: I5c2016db49b8f029164e5fe84c6274d4e02ff90e
-
Geza Lore authored
Rename MI_BLOCK_SIZE.* -> MAX_MIB_SIZE.* (MIB is for MI Block). Rename MI_MASK.* -> MAX_MIB_MASK.* There are no functional changes. This is in preparation for coding the superblock size at the frame level, which will require some of these constants to become variables. The new names better reflect future semantics, and hence make the code clearer. Change-Id: Iee08d97554cf4cc16a5dc166a3ffd1ab91529992
-
- 30 Mar, 2016 1 commit
-
-
Geza Lore authored
If --enable-ext-partition is used at build time, the superblock size (sometimes also referred to as coding unit (CU) size) is extended to 128x128 pixels. Change-Id: Ie09cec6b7e8d765b7555ff5d80974aab60803f3a
-
- 24 Mar, 2016 1 commit
-
-
Geza Lore authored
If configured with --enable-ext-tile, the codec uses an alternative tile coding syntax in the bitstream. Changes include:: - The maximum number of tile rows and columns is extended to 1024 each. - The minimum tile width/height is 64 pixels (1 superblock). - A tile copy mode is added where a tile directly reuse the coded data of a previous tile - The meaning of the tile-columns and tile-rows codec parameters are overloaded to mean tile-width and tile-height in units of 64 pixels. - All tiles should now be independent, including rows within the same columns, so large scale parallel, or independent decoding is possible. - vpxdec also gained the options to decode only a particular tile, tile row, or tile column. Changes without --enable-ext-tile: - All tiles should now be independent, including rows within the same columns, so large scale parallel, or independent decoding is possible. - vpxenc default tile configuration changed to use 1 tile column. Change-Id: I0cd08ad550967ac18622dae5e98ad23d581cb33e
-
- 22 Mar, 2016 1 commit
-
-
Julia Robson authored
This has been ported under ext_partition_types because it is due to be combined with the coding_unit_size experiment which is already being ported under ext_partition Change-Id: I47af869ae123ddf0aa99160dac644059d14266ee
-
- 21 Mar, 2016 2 commits
-
-
Debargha Mukherjee authored
Makes a set of 16 transforms total, adding all 1D combinations of ADST and FlipADST, and removng all DST transforms. lowres, midres both improve by about 0.1% and hdres by -0.378% in BDRATE but with fewer transforms that are also simpler. Further experiments to continue later. Change-Id: I7348a4c0e12078fdea5ae3a2d36a89a319ffcc6e
-
Jingning Han authored
This commit re-designs the probability model for the syntax elements of the dynamic motion vector referencing system. Change-Id: Icfb8203c7e8f64e10e99f5890e25e6f6b15fe5d1
-
- 10 Mar, 2016 1 commit
-
-
Debargha Mukherjee authored
Incorporates wedge compound prediction modes. Change-Id: Ie73b54b629105b9dcc5f3763be87f35b09ad2ec7
-
- 07 Mar, 2016 1 commit
-
-
Jingning Han authored
This commit enables a hybrid 1-D/2-D transform coding scheme and the accompany entropy coding system. It currently uses hybrid 1-D/2-D DCT transform coding. It provides coding performance gains: lowres_all 0.55% hdres_all 0.43% Change-Id: I2b30dcafd21eb2bb3371f6e854cbab440a4dfa78
-