summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Release v1.5.0v1.5.0javanwhistlingduckJohann2015-11-09188-76578/+40
| | | | | | Javan Whistling Duck release. Change-Id: If44c9ca16a8188b68759325fbacc771365cb4af8
* vp9_dx_iface: move struct defs to separate headerJames Zern2015-10-314-53/+68
| | | | | | | | this avoids redefining vpx_codec_vp9_dx, vpx_codec_vp9_dx_algo in vp9_encoder_parms_get_to_decoder.cc Change-Id: I3b89e7a62497227ee32419f1a7d30e4c10a13c05 (cherry picked from commit ca163b85bb13fc07df3e1be60d4e4b71c8e83090)
* vp9_decodeframe.h: add missing includeJames Zern2015-10-311-0/+2
| | | | | Change-Id: I8ef772a016a79cab88bee8e9739530aa030baaa9 (cherry picked from commit 68ecfc1e62408800611ed96c37949d65b7f25cf7)
* Merge "Code cleanup for vp9-denoiser."Marco Paniconi2015-10-262-13/+8
|\
| * Code cleanup for vp9-denoiser.Marco2015-10-262-13/+8
| | | | | | | | Change-Id: Ibb573f50c4bf2cfb382b589803f3363db0ac1285
* | Merge "Incorrect frame used in KF boost loop."Paul Wilkins2015-10-261-1/+1
|\ \
| * | Incorrect frame used in KF boost loop.Paul Wilkins2015-10-211-1/+1
| | | | | | | | | | | | | | | | | | Fixes a bug in the calculation of the boost for key frames. Change-Id: I75e9c96a9e86379239fbbbecb56ccd529783dc7c
* | | Merge "Bug in clamping of base_frame_target."Paul Wilkins2015-10-262-7/+10
|\ \ \ | |_|/ |/| |
| * | Bug in clamping of base_frame_target.Paul Wilkins2015-10-232-7/+10
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bug relating to issue:- http://b/25090786 base_frame_target is supposed to track the idealized bit allocation based on error score and not the actual bits allocated to each frame. The clamping of this value based on the VBR min and max pct values was causing a bug where in some cases the loop that adjusts the active max quantizer for each GF group was running out of bits at the end of a KF group. This caused a spike in Q and some ugly artifacts. A second change makes sure that the calculation of the active Q range for a group DOES, however, take account of clamping. Change-Id: I31035e97d18853530b0874b433c1da7703f607d1
* | Merge "Optimize vpx_quantize_{b,b_32x32} assembler."Debargha Mukherjee2015-10-265-23/+562
|\ \
| * | Optimize vpx_quantize_{b,b_32x32} assembler.Geza Lore2015-10-205-23/+562
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added optimization of the 8 bit assembly quantizer routines. This makes these functions up to 100% faster, depending on encoding parameters. This patch maskes the encoder faster in both the high bitdepth and 8bit configurations. In the high bitdepth configuration, it effects profile 0 only. Based on my profiling using 1080p input the net gain is between 1-3% for the 8 bit config, and around 2.5-4.5% for the high bitdepth config, depending on target bitrate. The difference between the 8 bit and high bitdepth configurations for the same encoder run is reduced by 1% in all cases I have profiled. Change-Id: I86714a6b7364da20cd468cd784247009663a5140
* | | Merge "Optimize vp9_highbd_block_error_8bit assembly."Debargha Mukherjee2015-10-265-46/+331
|\ \ \
| * | | Optimize vp9_highbd_block_error_8bit assembly.Geza Lore2015-10-215-46/+331
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A new version of vp9_highbd_error_8bit is now available which is optimized with AVX assembly. AVX itself does not buy us too much, but the non-destructive 3 operand format encoding of the 128bit SSEn integer instructions helps to eliminate move instructions. The Sandy Bridge micro-architecture cannot eliminate move instructions in the processor front end, so AVX will help on these machines. Further 2 optimizations are applied: 1. The common case of computing block error on 4x4 blocks is optimized as a special case. 2. All arithmetic is speculatively done on 32 bits only. At the end of the loop, the code detects if overflow might have happened and if so, the whole computation is re-executed using higher precision arithmetic. This case however is extremely rare in real use, so we can achieve a large net gain here. The optimizations rely on the fact that the coefficients are in the range [-(2^15-1), 2^15-1], and that the quantized coefficients always have the same sign as the input coefficients (in the worst case they are 0). These are the same assumptions that the old SSE2 assembly code for the non high bitdepth configuration relied on. The unit tests have been updated to take this constraint into consideration when generating test input data. Change-Id: I57d9888a74715e7145a5d9987d67891ef68f39b7
* | | | Merge "palette: Replace rand() call with custom LCG."Alex Converse2015-10-261-3/+10
|\ \ \ \
| * | | | palette: Replace rand() call with custom LCG.Alex Converse2015-10-241-3/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The custom LCG is based on the POSIX recommend constants for a 16-bit rand(). This implementation uses less computation than typical standard library procedures which have been extended for 32-bit support, is guaranteed to be reentrant, and identical everywhere. Change-Id: I3140bbd566f44ab820d131c584a5d4ec6134c5a0 Ref: http://pubs.opengroup.org/onlinepubs/9699919799/functions/rand.html
* | | | | Merge "Use explicit block position in foreach_transformed_block"Jingning Han2015-10-266-79/+73
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Use explicit block position in foreach_transformed_blockJingning Han2015-10-236-79/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add the row and column index to the argument list of unit functions called by foreach_transformed_block wrapper. This avoids the repeated internal parsing according to the block index. Change-Id: Ie7508acdac0b498487564639bc5cc6378a8a0df7
* | | | | VP9: Estimate noise level for denoiser.Marco2015-10-233-6/+173
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | Periodically estiamte noise level in source, and only denoise if estimated noise level is above threshold. Change-Id: I54f967b3003b0c14d0b1d3dc83cb82ce8cc2d381
* | | | Merge "vp10: merge ext_ipred_bltr experiment into misc_fixes."Ronald S. Bultje2015-10-223-34/+20
|\ \ \ \
| * | | | vp10: merge ext_ipred_bltr experiment into misc_fixes.Ronald S. Bultje2015-10-213-34/+20
| | | | | | | | | | | | | | | | | | | | Change-Id: I2f2deb700748408b8278b7f5c29ee1f2e39785ec
* | | | | Merge "vp10: merge universal_hp experiment into misc_fixes."Ronald S. Bultje2015-10-222-2/+1
|\ \ \ \ \ | |/ / / /
| * | | | vp10: merge universal_hp experiment into misc_fixes.Ronald S. Bultje2015-10-212-2/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: I79fc3c0594535adc0056339c929cff69b8188760
* | | | | Merge "Adjust superframe-is-optional unit test for vp10 superframe syntax."Ronald S. Bultje2015-10-221-7/+20
|\ \ \ \ \ | |/ / / /
| * | | | Adjust superframe-is-optional unit test for vp10 superframe syntax.Ronald S. Bultje2015-10-211-7/+20
| | | | | | | | | | | | | | | | | | | | Change-Id: Ic64b6928af7ae8ecc987f845b0bf0faecdacb072
* | | | | Merge "vp10: don't allow comp_inter_inter on keyframes."Ronald S. Bultje2015-10-222-0/+4
|\ \ \ \ \ | |/ / / /
| * | | | vp10: don't allow comp_inter_inter on keyframes.Ronald S. Bultje2015-10-212-0/+4
| | | | | | | | | | | | | | | | | | | | Change-Id: Ibd0e13721a2bb71c532d20b36c42f4cccf5c5de2
* | | | | Merge "vp10: fix tile size in remuxing step."Ronald S. Bultje2015-10-221-4/+4
|\ \ \ \ \ | |/ / / /
| * | | | vp10: fix tile size in remuxing step.Ronald S. Bultje2015-10-211-4/+4
| | | | | | | | | | | | | | | | | | | | Change-Id: Id48fb193bbdb3afed1d0db26c4ddded65a293b1b
* | | | | Merge "vp10: use correct constant for bw adaptation of seg pred probs."Ronald S. Bultje2015-10-221-1/+1
|\ \ \ \ \ | |/ / / /
| * | | | vp10: use correct constant for bw adaptation of seg pred probs.Ronald S. Bultje2015-10-211-1/+1
| | | | | | | | | | | | | | | | | | | | Change-Id: Idb869a77a126982814b8e7e288f952a65340e6be
* | | | | Merge "vp10: don't make right edge available across tile boundaries."Ronald S. Bultje2015-10-221-1/+3
|\ \ \ \ \ | |/ / / /
| * | | | vp10: don't make right edge available across tile boundaries.Ronald S. Bultje2015-10-211-1/+3
| | | | | | | | | | | | | | | | | | | | Change-Id: Ia81cf3858ef6c8d1fd4b1fb2dd9627906081129d
* | | | | Merge "vp10: clip MVs before adding to find_ref_mvs() list."Ronald S. Bultje2015-10-222-19/+35
|\ \ \ \ \ | |/ / / / | | | | / | |_|_|/ |/| | |
| * | | vp10: clip MVs before adding to find_ref_mvs() list.Ronald S. Bultje2015-10-202-19/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This causes the output of find_ref_mvs() to always be unique or zero. A nice side-effect of this is that it also causes the output of find_ref_mvs_sub8x8() to be unique-or-zero, and it will not ignore available candidate MVs under certain conditions. See issue 1012. Change-Id: If4792789cb7885dbc9db420001d95f9b91b63bfa
* | | | Merge "vp10: disallow coding zero-sized tiles-in-frame/frames-in-superframe."Ronald S. Bultje2015-10-204-6/+13
|\ \ \ \ | |/ / /
| * | | vp10: disallow coding zero-sized tiles-in-frame/frames-in-superframe.Ronald S. Bultje2015-10-204-6/+13
| |/ / | | | | | | | | | | | | | | | See issue 1088. Change-Id: Icb15d33b4e316add848f210b50cbccd7c7847207
* | | Setting change in sample encoder: vpx_temporal_svc_encoder.cMarco2015-10-201-2/+2
| | | | | | | | | | | | Change-Id: Ifb384fa571eb08b516ed08fe05b8bca0c94b1edf
* | | Merge "VP10: some changes to palette mode"Hui Su2015-10-206-20/+26
|\ \ \ | |/ / |/| |
| * | VP10: some changes to palette modehui su2015-10-166-20/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Account for rounding in distortion calculation in k-means; carry out rounding before duplicates removal of base colors; replace numbers with macros; use prefix increment. Slight coding gain (<0.1%) on screen_content testset. Change-Id: Ie8bd241266da6b82c7b2874befc3a0c72b4fcd8c
* | | Merge "vp10: write colorspace info for profile 0 intraonly frames."Ronald S. Bultje2015-10-202-0/+8
|\ \ \
| * | | vp10: write colorspace info for profile 0 intraonly frames.Ronald S. Bultje2015-10-192-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | See issue 1087. Change-Id: I231f6f12f870d0a56391daf1673536048418b207
* | | | Merge "vp10: per-segment lossless coding."Ronald S. Bultje2015-10-208-48/+96
|\ \ \ \ | |/ / /
| * | | vp10: per-segment lossless coding.Ronald S. Bultje2015-10-168-48/+96
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some more testing of this patch would probably be useful, but I think the basics of it should work fine now. See issue 1035. Change-Id: I4a36d58f671c5391cb09d564581784a00ed26245
* | | | Merge "vp10: add extended-intra prediction edges experiment."Ronald S. Bultje2015-10-2011-17/+502
|\ \ \ \ | |/ / /
| * | | vp10: add extended-intra prediction edges experiment.Ronald S. Bultje2015-10-1611-17/+502
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This experiment allows using full above/right edges for all transform sizes whenever available (for d45/d63), and adds bottom/left edges for d207. See issue 1043. Change-Id: I5cf7f345e783e8539bb6b6d2c9972fb1d6d0a78b
* | | | Merge "vp10: allow MV refs to point outside visible image."Ronald S. Bultje2015-10-202-2/+17
|\ \ \ \ | |/ / /
| * | | vp10: allow MV refs to point outside visible image.Ronald S. Bultje2015-10-162-2/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In VP9, the ref MV had to point to a block that itself fully resided within the visible image, i.e. all borders of the image had to be within the visible borders of the coded frame. This is somewhat illogical, and had obscure side effects, e.g. clamping of fairly reasonable motion vectors such as 0,0 were clipped to negative values if the block was overhanging on frame edges (such as the last rows on 1080p content), which makes no sense whatsoever. Instead, relax clamping constraints such that the ref MVs are allowed to point to blocks exactly outside the visible edges in both Y as well as UV planes, including the 8tap filter edges (that's why the offset is 8 pixels + block size). See issue 1037. Change-Id: I2683eb2a18b24955e4dcce36c2940aa2ba3a1061
* | | | Merge "vp10: allow forward updates for keyframe y intra mode probabilities."Ronald S. Bultje2015-10-207-24/+69
|\ \ \ \ | |/ / /
| * | | vp10: allow forward updates for keyframe y intra mode probabilities.Ronald S. Bultje2015-10-167-24/+69
| | | | | | | | | | | | | | | | | | | | | | | | See issue 1040 point 5. Change-Id: I51a70b9eade39efba392a1457bd70a3c515525cb
* | | | Merge "vp10: merge keyframe/interframe uvintramode/partition probabilities."Ronald S. Bultje2015-10-2010-57/+53
|\ \ \ \ | |/ / /