- 15 Jun, 2012 - 1 commit
-
-
Deb Mukherjee authored
This patch incorporates adaptive entropy coding of coefficient tokens, and mode/mv information based on distributions encountered in a frame. Specifically, there is an initial forward update to the probabilities in the bitstream as before for coding the symbols in the frame, however at the end of decoding each frame, the forward update to the probabilities is reverted and instead the probabilities are updated towards the actual distributions encountered within the frame. The amount of update is weighted by the number of hits within each context. Results on derf/hd/std-hd are all up by 1.6%. On derf, the most of the gains come from coefficients, however for the hd and std-hd sets, the most of the gains come from the mode/mv information updates. Change-Id: I708c0e11fdacafee04940fe7ae159ba6844005fd
-
- 12 Jun, 2012 - 3 commits
-
-
Yaowu Xu authored
This commit is to remove two arrays, which contain the probabilities of how likely each probability in coef_probs table is updated. The commit changed to use a fixed number "252". Surprisedly, the overall impact on quality is close to zero, which basically says the two big static arrays are not helpful at all. derf: -0.016%, -0.020% std-hd: 0.000%, -0.013% yt: -0.022%, +0.007% yt-hd: -0.038%, +0.034% Change-Id: Ifee94d28a37dcab4f1d2b994bd5b07575be42b72
-
Yaowu Xu authored
This commit added the ability to accumulate the coef stats across different encodings using an intermediate binary stats files. The accumulation happens only the binary stats file exists in current directory. The encoder needs to be built with "ENTROPY_STATS" to allow the output. The commit also fixed a few formating issues in output stats file. Change-Id: Ib1a41180aa554845cf51e4421a230b128a3a82b4
-
Paul Wilkins authored
Changes to calculation of sr_coded_error to include 0,0 case. Experimental use of sr_coded_error in calculating correction factor for estimating the allowable Q range. Reinstated some code needed for calculating section_intra_rating. Add flash detection in calculation of KF boost Increased tolerance in testing candidate key frames (needed with longer motion search as this tends to slightly increase inter %. Zbin changes for 8x8. Other minor adjustments, refactoring and bug fixes. Reinstated some motion break out clauses in boost loop as their removal hurt a few 50fps clips badly in the std set. It may be possible to remove them again later if a better way can be found of preventing overly long gf intervals. Change-Id: Iee686d0c31072828bb1ccd2bc63f5f1c7c548ea2
-
- 08 Jun, 2012 - 1 commit
-
-
Paul Wilkins authored
Changes to the equations for kf and gf minQ and to the boost calculations for kg and gf Change-Id: I312031c910e6a575334f49075c32f49a8dfff239
-
- 31 May, 2012 - 1 commit
-
-
Adrian Grange authored
Variables m & mi were being dereferenced when they might hold invalid values. The fix is simply to move these dereferences to after the point at which mb_row and mb_col are tested for validity. Change-Id: Ib16561efa9792dc469759936189ea379d374ad20
-
- 30 May, 2012 - 1 commit
-
-
Paul Wilkins authored
This fix addresses some problems with very complex clips like handling of flashes on clips like crew (which was made worse by an earlier patch (derf and std-hd)). Most clips a small effect but some between 1 & 2% Derf +0.039, +0.211% YT +0.042, +0.083% Change-Id: I65fc7c13afc31482040068544dd65b8808f5cb4a
-
- 29 May, 2012 - 1 commit
-
-
Paul Wilkins authored
Removed the local scaling factor est_max_qcorrection_factor and related code to simplify estimateq calculation (little effect anyway) Cap range of total correction factor. Slight change to break out case to turn off arf. Change-Id: I748187737ba93cfadf016f3dfdf8d2741934067f
-
- 26 May, 2012 - 1 commit
-
-
Yaowu Xu authored
One more compiling issue, only happened in Visual C under a specific combination of experiments. Change-Id: Iba0775dc0ea7342b556348a9cdf60a05a59e0241
-
- 25 May, 2012 - 1 commit
-
-
Yaowu Xu authored
the commit fixed a number of compiling issues when some epxeriments are turned on at the same time. Change-Id: Idb15b215e2d2a7d25f2707f99ef55a34e7301ce7
-
- 23 May, 2012 - 1 commit
-
-
Yaowu Xu authored
The commit changed how baseline 8x8 coefficient probabilities are initialized, to be consistent with the initialization of baseline 4x4 coefficient probabilities. The commit does not have any effect on compression. Change-Id: Ifb3902b5dc0b0c2e6dc3aa5d4a6589d528e58355
-
- 17 May, 2012 - 1 commit
-
-
Paul Wilkins authored
Remove dependency on amount and speed of motion as this may not behave well across different image sizes. Tweak impact of % inter. Add in experimental adjustment based on relative quality of an older second reference frame. Cap range of decay values allowed. Some small + effect on derf but -ve on yt & hd at this stage. Change-Id: I390d6f6ebe67a2eb0b834980d0d4650124980d3e
-
- 15 May, 2012 - 6 commits
-
-
Ronald S. Bultje authored
I now see I didn't write a very long description, so let's do it here then. We took a pretty big quality hit (0.1-0.2%) from my recent fix of the inversion of arguments to vp8_cost_bit() in the RD reference frame costing. I looked into it and basically the costing prevented us from switching reference frames. This is of course silly, since each frame codes its own prob_intra_coded, so using last frame cost indications as a limiting factor can never be right. Here, I've rewritten that code to estimate costings based partially on statistics from progress on current frame encoding. Overall, this gives us a ~0.2%-0.3% improvement over what we had previously before my argument-inversion-fix, and thus about ~0.4% over current git (on derf-set), and a little more (0.5-1.0%) on HD/STD-HD/YT. Change-Id: I79ebd4ccec4d6edbf0e152d9590d103ba2747775
-
Paul Wilkins authored
base the static image test off a measure of 0,0 motion instead of the decay accumulator value. Change "transition to still detection" to compare the decay rate from successive frames. Minor tweak to the arf extra boost given based on the number of frames affected. Removed unused variable mod_err_per_mb_accumulator. Change-Id: Idd8360083ad409e45f133ce97dd2488259003e64
-
Deb Mukherjee authored
Adds 6 directional intra predictiom modes for 16x16 and 8x8 blocks. Change-Id: I25eccc0836f28d8d74922e4e9231568a648b47d1
-
Yaowu Xu authored
The commit added an integer version of 8x8 forward DCT, based on the orginal forward DCT from VP6. The constants, roundings, and shifts were adjusted to improve the accuracy. The latest patch has a very similar accuracy in term of round trip error against the floating point version. It should be noted here that the purpose of the patch is to help encoding speed and facilitate all other experiments. There will be futher review in combination with inverse DCT before finalization. configure with "--enable--int_8x8fdct" to use the integer version Change-Id: I5a4f80507429f0e07cf02a13768ec81cbfddc5bc
-
Paul Wilkins authored
Some marginal impact due to the fact that it makes use of arf more likely / stable even in hard sections. Change-Id: Ic72fda0f63eefc9433914b5d9cd374d515810129
-
Paul Wilkins authored
Removed unused function. Added tentative code to take error score of an older frame into account when calculating Q range. However, for now it is disabled pending merging other changes and testing. Change-Id: Ie89955e70319dac31b79e3b833e3352712a061ec
-
- 14 May, 2012 - 2 commits
-
-
Paul Wilkins authored
Remove testing of whether we estimate that it will be possible to code an arf at a lower Q than the ambient Q. This adds quite a bit of extra code and complexity for marginal gain. Factored out some code relating to ARNR selection to a separate function as this is likely to be changed / simplified soon. Change-Id: Ia1cf060405637ef5bbf7018355437be21d12375f
-
Paul Wilkins authored
Removed odd *100 >> 4 factor from boost calculations. Not all the calculations exactly match what was there before so there may be some minor impact on results. Some other minor tidying up in regard to coding conventions. The specific values of factors and thresholds will likely change as part of subsequent patches. Change-Id: Id976321484ac02ba50294cf54fafbc17dda85686
-
- 12 May, 2012 - 1 commit
-
-
Ronald S. Bultje authored
These frames can force reference frame (arf), mode (zeromv) and skip, which means that if we use compound prediction (i.e. arf+last), we might use a blend of a perfect (arf) and an imperfect (last) predictor, leading to semi-garbage display and thus a huge drop in SSIM/PSNR (up to 10dB for some frames I analyzed). Gives a +0.2% gain on YT. Change-Id: If1f2b7899ad165684af3808fd379295e82558cbb
-
- 11 May, 2012 - 1 commit
-
-
Paul Wilkins authored
This is the first patch in a series of changes to the first pass code. (Broken down for ease of testing/merging/review). This patch introduces a new stats element "sr_coded_error". This is the coded error recorded vs the second reference frame (which is updated such that it lags by at least one frame). No use is made of the new structure in this change so this patch should have no material effect. Removed some ifdefs and deprecated code (#if NEW_BOOST). Removed twopass.gf_decay_rate (not used any more) Change-Id: I1be672a73017f7c13fd50fb4f99236aa2ed30916
-
- 10 May, 2012 - 1 commit
-
-
Yaowu Xu authored
This commit changed the forward and the inverse 4x4 Walsh Hadamard transform to a new pair, where the inverse transform can pefectly reconstuct the input to forward transform. It also does so without changing the input and output value range. Even more, it does not change the complexity of the transforms. While it was not expected to improve the results of our current test, it does improve std-hd set by 0.2% on all metrics. No change on derf. Change-Id: Ie4f23ddd3a0f3c5fbe97fb58399f860031f99337
-
- 09 May, 2012 - 1 commit
-
-
Deb Mukherjee authored
Also includes some clean ups and refactoring. Rebased. Change-Id: I268c97fe325b4881103fe19f41ae818569e7ccf7
-
- 08 May, 2012 - 1 commit
-
-
Yaowu Xu authored
1. block types There are only three types of blocks for 8x8 transformed MBs, i.e. Y block with DC does not exist for 8x8 transformed MBs as all MB using 8x8 transform have 2nd order haar transform. This commit introduced a new macro BLOCK_TYPES_8X8 to reflect such fact. 2. context counters This commit also fixed the mixed of context_counters between 4x4 and 8x8 transformed MBs. The mixed use of the counters leads me to think the existing the context probabilities were not properly generated from 8x8 transformed MBs. 3. redundant collecting in recoding The commit also corrected the code that accumulates entropy stats by making sure stats only collected for final packing, not during the recode loop Change-Id: I029f09f8f60bd0c3240cc392ff5c6d05435e322c
-
- 04 May, 2012 - 1 commit
-
-
Deb Mukherjee authored
This patch expands the set of prev contexts used for video coding from 3 to 4. There is a small improvement of the order of 0.08% for derf and 0.15% on the HD set. The tests were rerun after the various merges last week. There are two columns in each test - the first are the results with the mbskip change, and the second with expanded contexts added on top of that. Derf: http://www.corp.google.com/~debargha/vp8_results/explibvpx_newentropy_expcontext.html HD: http://www.corp.google.com/~debargha/vp8_results/explibvpx_hd_newentropy_expcontext.html Rebased. Broke up 80 char lines. Change-Id: I82d2e72d054e530cbf5ce9aa0e6d85c582965675
-
- 30 Apr, 2012 - 3 commits
-
-
Ronald S. Bultje authored
Change-Id: I9f1686249ac812f7b9b872eabe3970d1dfb25e56
-
Deb Mukherjee authored
Change-Id: I87291fb40c745f34c36b067f47abdf69774a812f
-
Deb Mukherjee authored
Removes a set of spurious declarations that were inadvertently checked in. Change-Id: I2f80b6b66d2ec9ea667c810eaf1a6e7d52478c67
-
- 27 Apr, 2012 - 1 commit
-
-
Adrian Grange authored
The ARNR filter uses a motion compensated temporal filter, but the motion estimation implementation accounts for the cost of the mv in its decision making process. The ARNR filter uses a dummy cost table initialized to 0 as a way to ignore the mv costs (which are irrelevant to the filter). This CL modifies the ARNR filter implementation to so that the mv costing is ignored without the requirement for dummy tables. Change-Id: I0dd9620c3b70682f938b2a70912c11d4d7c9284c
-
- 26 Apr, 2012 - 1 commit
-
-
Deb Mukherjee authored
Adds a speed feature to conduct a brute force search among a set of available interpolation filters for the best one in an RD sense. There is a gain of 0.4% on derf, 1.0% on Std-HD. Patch 2: A macro added to determine if the encoder state is reset for each new filter tried. Patch 3: rebase, also fixes a bug (decodframe.c) introduced by a couple of missing function pointer assignements. Patch 4: rebase. Change-Id: Ic9ccca9d8c35c6af557449ae867391a2f996cc29
-
- 25 Apr, 2012 - 2 commits
-
-
Yaowu Xu authored
This commit merge the QI mode experiment. As the experiment affects the encoding of intra coding modes on key frame only, the overall effect of the experiment on encoding tests is insignificant. Change-Id: I9e4e3933adface88867ad429cee3986e529c511d
-
Yaowu Xu authored
The commit merges the UVINTRA experiment and removed the related macros. The overall effect of the experiment is a small gain (.1% on derf) Change-Id: Ia34b3312fb9b5b34c9ba111bf0fa78c6f78ac80b
-
- 24 Apr, 2012 - 1 commit
-
-
Deb Mukherjee authored
Adds differential encoding of prob updates using a subexponential code centered around the previous probability value. Also searches for the most cost-effective update, and breaks up the coefficient updates into smaller groups. Small gain on Derf: 0.2% Change-Id: Ie0071e3dc113e3d0d7ab95b6442bb07a89970030
-
- 20 Apr, 2012 - 3 commits
-
-
Ronald S. Bultje authored
Change-Id: I7c0597dede20cc71145c053f76bd99aaf759d144
-
Yaowu Xu authored
This commit changed to enable the usage 8x8 transform for all frame type, all resolution and all quantizer range. This has an overall benefit .2% to .3% in term of compression, but more importantly, the difficult clips benefits much more, up to 2% to 3% on clips like football, harbour and so on. We observed some weird humps on very high end on a couple of youtube clips, but have determined the underly cause was the aggressive zbin having an effect of lowering rate with lower quality, which have an impact on slide show clips around 60DB. The commit does not change the association between prediction mode and transform size. Change-Id: I33043bdce6207528ae00b4a4b26d8ff63cfea1f4
-
Yaowu Xu authored
This is to prevent the evaluation of a mode from using values left over from a mode evaluated prior in the loop. Change-Id: Ife2c6ceb76d2f7365fd262515d3ae48229033c2d
-
- 19 Apr, 2012 - 1 commit
-
-
Ronald S. Bultje authored
Change-Id: I9d6083d54e3d478ec20dc6dc48d3f45eb5c7e16b
-
- 18 Apr, 2012 - 2 commits
-
-
Ronald S. Bultje authored
Change-Id: I0af3395500b1cb0ed629249eb6636a0c9322cb18
-
Adrian Grange authored
With the NEWENTROPY experiment enabled encoding certain clips produced invlid bitstreams, or files that had a high degree of artefacts. This was the results of pointers in MACROBLOCKD not being setup correctly (mode_info_context and prev_mode_info_context). Change-Id: Ice13e1efa8bd122997d2f8f3f1e761c6c16e0403
-