summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2013-01-30don't code the branch for the predicted seg_id if that flag is false.Ronald S. Bultje
Change-Id: Icb6e21dc0c2d9918faa33c8bf70943660df7ad88
2013-01-29Write only visible area (for better comparison with rec.yuv).Ronald S. Bultje
Change-Id: I32bf4ee532a15af78619cbcd8a193224029fab50
2013-01-29Merge "Fix block pointer corruption in intra8x8 prediction with 4x4 ↵Ronald S. Bultje
transform." into experimental
2013-01-29Merge "Fix overread/write reported by valgrind if (mb_cols) & 3 != 0." into ↵Ronald S. Bultje
experimental
2013-01-29Merge "Remove eob_max_offset markers." into experimentalPaul Wilkins
2013-01-29Merge "Segment Skip Flag" into experimentalPaul Wilkins
2013-01-29Merge "Added eob == 0 check to vp9_dequant_idct_add_32x32_c" into experimentalScott LaVarnway
2013-01-29Fix block pointer corruption in intra8x8 prediction with 4x4 transform.Ronald S. Bultje
The RD loop would change the pointer after the first mode (DC) was tested, leading to corrupt block objects being provided for the others. This would essentially render the i8x8 predictor useless. Change-Id: I16c5906ca64fb34878ac32ce59af8974e4582bb8
2013-01-29Remove eob_max_offset markers.Paul Wilkins
Remove eob_max_offset markers and replace with the generic skip_block flag to indicate to the quantizer that all coeffs to be set to 0 and eob position set to 0; Change-Id: Id477e8f8d4ec1a5562758904071013c24b76bfd7
2013-01-28Segment Skip FlagPaul Wilkins
First step in simplifying the segment mode and segment EOB flags into a simpler segment skip flag that implies 0,0 mv and EOB at position 0. Change-Id: Ib750cac31a7a02dc21082580498efd9f7d8d72a5
2013-01-28Merge "Simplify Zero bin and zero bin run code." into experimentalPaul Wilkins
2013-01-28Simplify Zero bin and zero bin run code.Paul Wilkins
Simplification to eliminate a number of very large data data structures. All zero run, zbin boosts for different transform sizes are now limited to a maximum run length of 15 before they max out the boost. Some further work still needs be done to refactor, rationalize and optimize the multiple quantizer functions. The simplification coupled with tweaks to the 16 element array now used for all transform sizes, has minimal effect on quality. Change-Id: I6f3948b8ca0418b60d4db9030ff19026a34ed423
2013-01-25Tweak DropFramesWithoutRecovery paramsJohn Koleszar
The previous parameters did not pass with VP8. Change-Id: I1505171fbd713d21029541828ebdbe4c7dea79b8
2013-01-25Fix overread/write reported by valgrind if (mb_cols) & 3 != 0.Ronald S. Bultje
We'd backup and restore all cols for a 64x64 SB, but the array wouldn't be big enough to hold all that data. Change-Id: Ic68ea721bf07e0b2f3937bd16b0b734bcc743ce1
2013-01-25Merge "Remove "update_context" variable from VP9_COMP context." into ↵Ronald S. Bultje
experimental
2013-01-24Added eob == 0 check to vp9_dequant_idct_add_32x32_cScott LaVarnway
Added a quick eob == 0 check. Once the integer version of the dct32x32 is complete, we can check for other eob cases. For the 1080p clip used, the decoder performance improved by 4%. Change-Id: I9390b6ed3c8be0c0c0a0c44c578d9a031d6e026e
2013-01-24Remove "update_context" variable from VP9_COMP context.Ronald S. Bultje
The variable is always zero. Change-Id: Id5cdbecad543bca465a5b1d471badaec7e112c8d
2013-01-24Mvref speedupPaul Wilkins
Quality / decode speed trade off changes. Simpler insert method without sort. Quality impact small. Change-Id: Id0c0941bc508d985405abd06a13ffe7489170b62
2013-01-24Merge "MSVS compiler error" into experimentalPaul Wilkins
2013-01-24MSVS compiler errorPaul Wilkins
Visual Studio reports and error on the line static const int bsize2 = bsize >> 1; "error C2099: initializer is not a constant" Also warnings on signed/unsigned mismatch Change-Id: I76cb06f736bd9c90107a26bfb3c130ec3f6c33de
2013-01-24Merge "Intrinsic version of loopfilter now matches C code" into experimentalScott LaVarnway
2013-01-23Adds an error-resilient mode with testDeb Mukherjee
Adds an error-resilient mode where frames can be continued to be decoded even when there are errors (due to network losses) on a prior frame. Specifically, backward updates are turned off and probabilities of various symbols are reset to defaults at the beginning of each frame. Further, the last frame's mvs are not used for the mv reference list, and the sorting of the initial list based on search on previous frames is turned off as well. Also adds a test where an arbitrary set of frames are skipped from decoding to simulate errors. The test verifies (1) that if the error frames are droppable - i.e. frame buffer updates have been turned off - there are no mismatch errors for the remaining frames after the error frames; and (2) if the error-frames are non droppable, there are not only no decoding errors but the mismatch PSNR between the decoder's version of the post-error frames and the encoder's version is at least 20 dB. Change-Id: Ie6e2bcd436b1e8643270356d3a930e8989ff52a5
2013-01-23Merge "Support multiple codecs in test infrastructure" into experimentalJohn Koleszar
2013-01-23Support multiple codecs in test infrastructureJohn Koleszar
This commit starts to convert the tests to a system where the codec to be used is provided by a factory object. Currently no tests are instantiated for VP9 since they all fail for various reasons, but it was verified that they're called and the correct codec is instantiated. Change-Id: Ia7506df2ca3a7651218ba3ca560634f08c9fbdeb
2013-01-23Merge "Modifies the comp inter-intra expt" into experimentalDeb Mukherjee
2013-01-23Intrinsic version of loopfilter now matches C codeScott LaVarnway
Updated the instrinsic code to match Yaowu's latest loopfilter change. (I584393906c4f5f948a581d6590959522572743bb) The decoder performance improved by ~30% for the test clip used. Change-Id: I026cfc75d5bcb7d8d58be6f0440ac9e126ef39d2
2013-01-22Merge changes Ia82cef79,I7324a75a,I7b66daad,I73344451,I91dc210f,I5945b5ce ↵John Koleszar
into experimental * changes: Use alt-ref frame context for keyframes Preserve the previous golden frame on golden updates Generalize and increase frame coding contexts Start to anonymize reference frames Update encoder to use fb_idx_ref_cnt Remove buffer-to-buffer copy logic
2013-01-18Use alt-ref frame context for keyframesJohn Koleszar
This matches the behavior prior to generalizing the frame context selection, and intuitively makes sense in that the first forward ref is immediately after the keyframe, so it's quality is improved a bit by using the keyframe's entropy context rather than the default. Change-Id: Ia82cef79382b9d8cfafdc44ba0533d4dc3e44053
2013-01-18a minor change to a portion of loop filteringYaowu Xu
The loop filtering used for MB edge or internal edge of a MB using 8x8 tranform was reading 5 pixel each side and writting 3 pixel each side. With suggestion from Aki and Scott on hardware&software performance, this commit changed to read 4 pixel each side and write 3 pixel each side. Change-Id: I584393906c4f5f948a581d6590959522572743bb
2013-01-16Preserve the previous golden frame on golden updatesJohn Koleszar
This commit restores the quality lost when the buffer-to-buffer copy logic was removed. Note that this is specific to the current use of golden frames and will need rework when RTC functionality is added. Change-Id: I7324a75acd96eafd9e0f9b8633d782e390d5dc21
2013-01-16Generalize and increase frame coding contextsJohn Koleszar
Previously there were two frame coding contexts tracked, one for normal frames and one for alt-ref frames. Generalize this by signalling the context to use in the bitstream, rather than tieing it to the alt ref refresh bit. Also increase the number of contexts available to 4, which may be useful for temporal scalability. Change-Id: I7b66daaddd55c535c20cd16713541fab182b1662
2013-01-16Start to anonymize reference framesJohn Koleszar
Remove lst_fb_idx, gld_fb_idx, alt_fb_idx, refresh_last_frame, refresh_golden_frame, refresh_alt_ref_frame from common. Gold/Alt are encode side conventions. From the decoder's perspective, we want to be dealing with numbered references. Updates to active_ref 2 signal mode context switches, vestigial from refresh_alt_ref_frame. This needs some clean up to make sense with increased numbers of reference frames, as well as reimplementing the swapping of alt/golden which was previously done using the buffer-to-buffer copy mechanism removed in an earlier commit. Change-Id: I7334445158b7666f9295d2a2dd22aa03f4485f58
2013-01-15Update encoder to use fb_idx_ref_cntJohn Koleszar
Do reference counting the same way on the encoder as the decoder does, rather than maintaining the 'flags' member of YV12_BUFFER_CONFIG. Change-Id: I91dc210ffca081acaf9d5c09a06e7461b3c3139c
2013-01-15Remove buffer-to-buffer copy logicJohn Koleszar
This is the first in a series of commits to add additional reference frames to the codec. Each frame will be able to update any of the available references, but copying between references is not supported. Change-Id: I5945b5ce6cc3582c495102b4e7eed4f08c44d5a1
2013-01-14fix a number issues that cause failuresYaowu Xu
During master jenkins verification proces Change-Id: I3722b8753eaf39f99b45979ce407a8ea0bea0b89
2013-01-14Modifies the comp inter-intra exptDeb Mukherjee
Uses a single 1D table to implement the weighting of the predictors for the compound inter-intra experiment. Change-Id: I204ffbe4f9fc79d5d43b6c724ad253d800461012
2013-01-14Use INT64_MAX instead of LLONG_MAXJohn Koleszar
These variables have the type int64_t, not long long. long long could be a larger type than 64 bits. Emulate INT64_MAX for older versions of MSVC, and remove the unreferenced vpx_ports/vpxtypes.h Change-Id: Ideaca71838fcd3849d816d5ab17aa347c97d03b0
2013-01-14Remove compound intra-intra experiment.Ronald S. Bultje
This experiment gives little gains and adds relatively much code complexity (and it hinders other experiments), so let's get rid of it. Change-Id: Id25e79a137a1b8a01138aa27a1fa0ba4a2df274a
2013-01-14Merge experiment "subpelrefmv"Yaowu Xu
Change-Id: Iac7f3d108863552b850c92c727e00c95571c9e96
2013-01-14Merge experiment "widerlpf"Yaowu Xu
Change-Id: I0c94475075e66e13cfe4c20fab7db6474441ae86
2013-01-14Merge "changed UV plane loop filtering for TX_8X8" into experimentalYaowu Xu
2013-01-14Merge "change to evaluate reference mvs using above only" into experimentalYaowu Xu
2013-01-14changed UV plane loop filtering for TX_8X8Yaowu Xu
In commit 9a1d73d, loop filtering was added for UV 4x4 boundaries when TX_8X8 is used by a MB. This commit further refined the decision to be based on the actual transform used for the UV planes. When UV planes use 4x4 transform, i.e. when prediction mode used is either I8X8_PRED or SPLITMV, UV planes are filtered on 4x4 boundaries, and no filtering is applied on 4x4 block boundaries when UV planes use 8X8 transform. Change-Id: Ibb404face0a1d129b4b4abaf67c55d82e8df8bec
2013-01-14Merge "Fix compiler warnings" into experimentalPaul Wilkins
2013-01-14Merge "Merge prediction filter" into experimentalAdrian Grange
2013-01-14change to evaluate reference mvs using above onlyYaowu Xu
Change-Id: Ibcc342efac0a9be7a21d9b2c09984d9e16bbb225
2013-01-14Fix compiler warningsYaowu Xu
The warnings caused verify failure with gerrit for several commits Change-Id: I030df8638bd69b8783a3ac58e720ff9f0bfd546c
2013-01-14Merge prediction filterAdrian Grange
Removed the experimental flag from around the prediction filter. Change-Id: Ic1dd2db8fe8ac17ed5129f83094d4c5cdd5527d2
2013-01-14Reset x->skip for each iteration in the RD loop.Ronald S. Bultje
This prevents ill-defined behaviour, such as setting x->skip for a mode that is excluded because of frame-level flags (e.g. filter selection, compound prediction selection), then not breaking out of the RD loop because the mode is not allowed, but keeping the flag on. Whatever mode is iterated through next in the RD loop will then carry this flag, and all sort of bad stuff happens, such as x->skip being set on intra pred modes. Change-Id: I5bec46b36e38292174acb1c564b3caf00a9b4b9a
2013-01-14Fix unused variable warningsJohn Koleszar
Previous commit does not build cleanly on Jenkins with the DWT/DCT hybrid experiment enabled (--enable-dwtdcthybrid). Change-Id: Ia67e8f59d17ef2d5200ec6b90dfe6711ed6835a5