summaryrefslogtreecommitdiff
path: root/vp9/encoder
AgeCommit message (Collapse)Author
2013-09-10Small tweaks on the constant quality modeDeb Mukherjee
Improves results a little. derf is now +1.078% over bitrate control. Change-Id: I4812136f3e67be21d14ec089419976a32a841785
2013-09-09Merge "API extensions and sample app for spacial scalable encoder"Ivan Maltz
2013-09-09API extensions and sample app for spacial scalable encoderIvan Maltz
Sample app: vp9_spatial_scalable_encoder vpx_codec_control extensions: VP9E_SET_SVC VP9E_SET_WIDTH, VP9E_SET_HEIGHT, VP9E_SET_LAYER VP9E_SET_MIN_Q, VP9E_SET_MAX_Q expanded buffer size for vp9_convolve modified setting of initial width in vp9_onyx_if.c so that layer size can be set prior to initial encode Default number of layers set to 3 (VPX_SS_DEFAULT_LAYERS) Number of layers set explicitly in vpx_codec_enc_cfg.ss_number_layers Change-Id: I2c7a6fe6d665113671337032f7ad032430ac4197
2013-09-09Merge "Revert "New mode_info_context storage""James Zern
2013-09-09Revert "New mode_info_context storage"James Zern
This reverts commit dae17734ece414091ba1184f7becd0aa6c0004f1 Encode crashes, leaks and increases integer overflow errors. Change-Id: I595aa2649bb8d0b6552ff91652837a74c103fda2
2013-09-09Merge "Enable kf restrictions at speed 4"Paul Wilkins
2013-09-08Merge "New mode_info_context storage"Jim Bankoski
2013-09-06Fix overflow issue in 16x16 quantization SSSE3Jingning Han
The 16x16 transform unit test suggested that the peak coefficient value can reach 32639. This could cause potential overflow issue in the SSSE3 implmentation of 16x16 block quantization. This commit fixes this issue by replacing addition with saturated addition. Change-Id: I6d5bb7c5faad4a927be53292324bd2728690717e
2013-09-06Enable kf restrictions at speed 4Paul Wilkins
Change-Id: I453409d3be3f5fe118b15affde45cb52184aef20
2013-09-06Support a constant quality mode in VP9Deb Mukherjee
Adds a new end-usage option for constant quality encoding in vpx. This first version implemented for VP9, encodes all regular inter frames using the quality specified in the --cq-level= option, while encoding all key frames and golden/altref frames at a quality better than that. The current performance on derfraw300 is +0.910% up from bitrate control, but achieved without multiple recode loops per frame. The decision for qp for each altref/golden/key frame will be improved in subsequent patches based on better use of stats from the first pass. Further, the qp for regular inter frames may also be varied around the provided cq-level. Change-Id: I6c4a2a68563679d60e0616ebcb11698578615fb3
2013-09-06New mode_info_context storageScott LaVarnway
mode_info_context was stored as a grid of MODE_INFO structs. The grid now constists of a pointer to a MODE_INFO struct and a "in the image" flag. The MODE_INFO structs are now stored as a stream, eliminating unnecessary copies and is a little more cache friendly. For the test clips used, the decoder performance improved by ~4.3% (1080p) and ~9.7% (720p). Patch Set 2: Re-encoded clips with latest. Now ~1.7% (1080p) and 5.9% (720p). Change-Id: I846f29e88610fce2523ca697a9a9ef2a182e9256
2013-09-05Merge "Use saturated addition in SSSE3 of 32x32 quant"Jingning Han
2013-09-05Use saturated addition in SSSE3 of 32x32 quantJingning Han
The 32x32 forward transform can potentially reach peak coefficient value close to 32700, while the rounding factor can go upto 610. This could cause overflow issue in the SSSE3 implementation of 32x32 quantization process. This commit resolves this issue by replacing the addition operations with saturated addition operations in 32x32 block quantization. Change-Id: Id6b98996458e16c5b6241338ca113c332bef6e70
2013-09-05Merge "faster accounting of inc_mv"Jim Bankoski
2013-09-04Merge "Attempt to fix speed 4"Paul Wilkins
2013-09-04Merge "make vp9 postproc a config option"Jim Bankoski
2013-09-04Merge "Use correct bit cost while static-thresh is on"Yunqing Wang
2013-09-04make vp9 postproc a config optionJim Bankoski
Vp9 postproc is disabled for now as its not been shown to help and may be merged with vp8. Change-Id: I25620d6cd34c6e10331b18c7b5ef7482e39c6057
2013-09-04faster accounting of inc_mvJim Bankoski
Moves counting of mv branches to where we have a new mv, instead of after the whole frame is summed. Change-Id: I945d9f6d9199ba2443fe816c92d5849340d17bbd
2013-09-03Attempt to fix speed 4Paul Wilkins
Speed 4 fixed partition size. Use fixed size unless it does not fit inside image, in which case use the largest size that does. Change-Id: I250f7a80506750dd82ab355721624a1344247223
2013-09-03Merge "Fix 32x32 forward transform SSE2 version"Jingning Han
2013-08-31Fix 32x32 forward transform SSE2 versionJingning Han
This commit fixed the potential overflow issue in the SSE2 implementation of 32x32 forward DCT. It resolved the corrupted coded frames in the border of scenes. Change-Id: If87eef2d46209269f74ef27e7295b6707fbf56f9
2013-08-30Use correct bit cost while static-thresh is onYunqing Wang
While static-thresh is on, we only need to transmit skip flag if skip = 1. The cost of skip bit is added to the total rate cost. Change-Id: I64e73e482bc297eba22907026298a15fa8cc3920
2013-08-30Merge "Added per pixel inter rd hit count stats"Paul Wilkins
2013-08-29Merge "Fix overflow issue in SSSE3 32x32 quantization"Jingning Han
2013-08-30Added per pixel inter rd hit count statsPaul Wilkins
Added some code to output normalized rd hit count stats. In effect this approximates to the average number of rd operations/tests per pixel for the sequence. The results are not quite accurate and I have not bothered to account for partial SB64s at frame edges and for key frames However they do give some idea of the number of modes / prediction methods being tested for each pixel across the different partition sizes. This indicates how much scope their is for further gains either by reducing the number of partitions examined or the modes per partition through heuristics. Patch 3 moved place where count incremented so partial rd tests that are aborted with INT_MAX return are also counted. Example numbers for first 50 frames of Akiyo. Speed 0 ~84.4 rd operations / pixel Speed 1 ~28.8 Speed 2 ~11.9 Change-Id: Ib956e787e12f7fa8b12d3a1a2f6cda19a65a6cb8
2013-08-29Merge "Adds a speed feature for fast 1-loop forw updates"Deb Mukherjee
2013-08-29Merge changes Ib1e853f9,Ifd75c809,If3e83404James Zern
* changes: consistently name VP9_COMMON variables #3 consistently name VP9_COMMON variables #2 consistently name VP9_COMMON variables #1
2013-08-29Merge "Fixed potential overflows"Yaowu Xu
2013-08-29consistently name VP9_COMMON variables #3James Zern
stragglers Change-Id: Ib1e853f9a331b7b66639dc34d79568d84d1930f1
2013-08-29consistently name VP9_COMMON variables #1James Zern
pc -> cm Change-Id: If3e83404f574316fdd3b9aace2487b64efdb66f3
2013-08-29Merge "Renaming txfm_size to tx_size."Dmitry Kovalev
2013-08-29Fix overflow issue in SSSE3 32x32 quantizationJingning Han
The 32x32 quantization process can potentially have the intermediate stacks over 16-bit range, thereby causing enc/dec mismatch. This commit fixes this overflow issue in the SSSE3 implementation, as well as the prototype, of 32x32 quantization. This fixes issue 607 from webm@googlecode. Change-Id: I85635e6ca236b90c3dcfc40d449215c7b9caa806
2013-08-29Fixed potential overflowsYaowu Xu
The two arrays are typically initialized to INT64_MAX, if they are not filled with valid values before the addition, the values can overflow and lead to wrong results. Change-Id: I515de22cf3e8f55af4b74bdb2c8eb821a02d3059
2013-08-28General code cleanup.Dmitry Kovalev
Switching from mi_{width, height}_log2 and b_{width, height}_log2 to num_8x8_blocks_{wide, high} and num_4x4_blocks_{wide, high}. Removing redundant code, adding const. Change-Id: Iaab2207590fd24d0b76999071778d1395dc5cd5d
2013-08-28Adds a speed feature for fast 1-loop forw updatesDeb Mukherjee
Incorporates a speed feature for fast forward updates of coefficients. This feature takes 3 values: 0 - use standard 2-loop version 1 - use a 1-loop version 2 - use a 1-loop version with reduced updates Results: derfraw300 +0.007% (on speed 0) at feature value = 1 -0.160% (on speed 0) at feature value = 2 There is substantial speed up at speeds 2 and above for low resolution sequences where the entropy updates are a big part of the overall computations. Change-Id: Ie96fc50777088a5bd441288bca6111e43d03bcae
2013-08-27Renaming txfm_size to tx_size.Dmitry Kovalev
Change-Id: I752e374867d459960995b24d197301d65ad535e3
2013-08-27Merge "Fix buf alignment in sub8x8 comp inter-inter pred"Jingning Han
2013-08-27Adding get_entropy_context function.Dmitry Kovalev
Moving common code from encoder and decoder to this function. Change-Id: I60fa643fb1ddf7ebbff5e83b6c4710137b0195ef
2013-08-27Renaming BLOCK_SIZE_TYPE to BLOCK_SIZE in the encoder.Dmitry Kovalev
Change-Id: I62bb07c377f947cb72fac68add7a6b199e42c6b9
2013-08-27Merge "Using num_8x8_* lookup tables instead of mi_*_log2."Dmitry Kovalev
2013-08-27Merge "Cleaning up model_rd_for_sb_y_tx."Dmitry Kovalev
2013-08-27Merge "Renaming D27 to D207."Dmitry Kovalev
2013-08-27Fix buf alignment in sub8x8 comp inter-inter predJingning Han
This commit resolved a mis-alignment issue in compound inter-inter prediction of sub8x8. This patch follows solution from dkovalev@. Change-Id: I3cc0cf7e55b84110e0c42ef4b2e6ca7ac3f8f932
2013-08-27fixed the reading too many bytesYaowu Xu
In subpel_avg_variance functions, code similar to the following punpkldq m2, [addr] actually reads 8 bytes. For functions that are supposed to work on buffers only have less 8 bytes a line, this caused valgrind error of reading uninitialized memory. Change-Id: I2a4c079dbdbc747829bd9e2ed85f0018ad2a3a34
2013-08-26Cleaning up model_rd_for_sb_y_tx.Dmitry Kovalev
Removing references to plane_block_width and plane_block_height (we are going to delete the latter ones). Change-Id: I7982da4d373aebb54d2209dc8886f6192df4d287
2013-08-26Using num_8x8_* lookup tables instead of mi_*_log2.Dmitry Kovalev
Change-Id: I8a246b3d056c98be614d05a90bc261e2441ffc10
2013-08-26Merge "Fix the reading of too many input pixels"Yaowu Xu
2013-08-26Merge "Changes to adaptive inter rd thresholds."Paul Wilkins
2013-08-26Fix the reading of too many input pixelsYaowu Xu
in VP9_get4x4var_mmx Change-Id: I4b4a8f45f25ebdfad281f169cc87aba5e2d6f227