1. 29 May, 2013 2 commits
    • Deb Mukherjee's avatar
      Balancing coef-tree to reduce bool decodes · b8b3f1a4
      Deb Mukherjee authored
      This patch changes the coefficient tree to move the EOB to below
      the ZERO node in order to save number of bool decodes.
      
      The advantages of moving EOB one step down as opposed to two steps down
      in the other parallel patch are: 1. The coef modeling based on
      the One-node becomes independent of the tree structure above it, and
      2. Fewer conext/counter increases are needed.
      
      The drawback is that the potential savings in bool decodes will be
      less, but assuming that 0s are much more predominant than 1's the
      potential savings is still likely to be substantial.
      
      Results on derf300: -0.237%
      
      Change-Id: Ie784be13dc98291306b338e8228703a4c2ea2242
      b8b3f1a4
    • Sami Pietila's avatar
      Residual coding to cache energy class of tokens. · 88a4d4c5
      Sami Pietila authored
      Proposal for tuning the residual coding by changing how the context
      from previous tokens is calculated. Storing the energy class of previous
      tokens instead of the token itself eases the critical path of
      HW implementations.
      
      Change-Id: I6d71d856b84518f6c88de771ddd818436f794bab
      88a4d4c5
  2. 28 May, 2013 2 commits
    • Jingning Han's avatar
      Refactor rd loop for inter modes · 94d700e7
      Jingning Han authored
      This commit pulls the iterative motion search for compound inter-
      inter out from handle_inter_mode_ as a separate function. Hence,
      it is applicable to 4x4/4x8/8x4 level compound inter search to be
      enabled later.
      
      Also edit the rd loop for 4x4 inter block sizes for cosmetic
      purpose.
      
      Change-Id: Ibc71a11cbe5a26cd52faba01026cf8446cf4d2b4
      94d700e7
    • Jingning Han's avatar
      further clean-ups on intra4x4 coding · 4729a6f3
      Jingning Han authored
      Removed one 4x4 prediction step that was unnessary in the rd loop.
      Removed a unused modecosts estimate from encoder side.
      
      Change-Id: I65221a52719d6876492996955ef04142d2752d86
      4729a6f3
  3. 27 May, 2013 3 commits
  4. 26 May, 2013 1 commit
    • Ronald S. Bultje's avatar
      Remove splitmv. · 5cac6607
      Ronald S. Bultje authored
      Also do per-partition motion vector referencing in <sb8x8 partitions,
      and adjust mvref finding for sub8x8 partitions.
      
      Change-Id: Id3ed1ed4d2a8910d11d327db6cc63b8eb79f941f
      5cac6607
  5. 24 May, 2013 1 commit
    • Jingning Han's avatar
      Fix a bug in intra4x4 level rd loop · 826efc83
      Jingning Han authored
      This commit fixed a uninitialized value use in the intra 4x4/8x4/4x8
      rate-distortion loop.
      
      Change-Id: I5c25b3536b59e4f5fbb23cf85baf93b2ccec7d72
      826efc83
  6. 23 May, 2013 3 commits
    • Jingning Han's avatar
      Make comp_inter_inter support 4x4 partition coding · ae103195
      Jingning Han authored
      This commit refactors the iterative motion search for compound
      inter-inter mode, to make it support all partition types including
      4x4/4x8/8x4 block sizes.
      
      Change-Id: I5f1212b0f307377291763e45c6bdc9693b5f04c8
      ae103195
    • Paul Wilkins's avatar
      Merge Scatter Scan experiment. · 33ecd6ad
      Paul Wilkins authored
      Removal from under configure flag.
      A bit  renaming
      
      Change-Id: I2213229dfe852001dfec16b149f47c52ce88f3aa
      33ecd6ad
    • Jingning Han's avatar
      Merge 4x4 block level partition into codebase · 7ac5ac52
      Jingning Han authored
      Move 4x4/4x8/8x4 partition coding out of experimental list.
      
      This commit fixed the unit test failure issues. It also resolved
      the merge conflicts between 4x4 block level partition and iterative
      motion search for comp_inter_inter.
      
      Change-Id: I898671f0631f5ddc4f5cc68d4c62ead7de9c5a58
      7ac5ac52
  7. 22 May, 2013 3 commits
    • Deb Mukherjee's avatar
      Using 128 entry look up table for coef models · de4d682c
      Deb Mukherjee authored
      Reverts to using 128 bit LUT for the coef models rather than 48
      to ease hardware implementation.
      
      Also incorporates some cleanups including removing various
      hooks to support different lookup tables based on block_type and
      ref_type.
      
      Change-Id: I54100c120cca07a2ebd3a7776bc4630fa6a153f6
      de4d682c
    • Paul Wilkins's avatar
      Merge CONFIG_COMP_INTER_JOINT_SEARCH. · 0b713f8c
      Paul Wilkins authored
      Merge this experiment so that it is under a speed feature
      flag not a configuration flag.
      
      Change-Id: I536f7f125a4ff5149bb3a64f791e835c324535fd
      0b713f8c
    • Jingning Han's avatar
      Make the intra rd search support 8x4/4x8 · f153a5d0
      Jingning Han authored
      This commit allows the rate-distortion optimization of intra coding
      capable of supporting 8x4 and 4x8 partition settings.
      
      It enables the entropy coding of intra modes in key frame using a
      unified contextual probability model conditioned on its above/left
      prediction modes.
      
      Coding performance:
      derf 0.464%
      
      Change-Id: Ieed055084e11fcb64d5d5faeb0e706d30268ba18
      f153a5d0
  8. 21 May, 2013 1 commit
  9. 20 May, 2013 3 commits
    • Dmitry Kovalev's avatar
      Adding get_ref_frame_idx function. · 4ac70bd7
      Dmitry Kovalev authored
      Change-Id: I4f1a4eca6794cda78d00512196caacd5567e2dcc
      4ac70bd7
    • Deb Mukherjee's avatar
      Updating the model coef experiment · 39a90bc8
      Deb Mukherjee authored
      Cleans up the experiment. Actually uses reduced counts for backward
      updates, and reduced number of probabilities in the context.
      
      No change in bitstream when the experiment is on.
      
      Between expt on and off:
      derfraw300 is down only -0.062% (which is better than when expts
      were run previously).
      
      Change-Id: I55285a049a0c22810bdb42914212ab5a4f8521b5
      39a90bc8
    • Scott LaVarnway's avatar
      WIP: 4x4 idct/recon merge · ba48a111
      Scott LaVarnway authored
      This patch eliminates the intermediate diff buffer usage by
      combining the short idct and the add residual into one function.
      The encoder can use the same code as well.
      
      Change-Id: I296604bf73579c45105de0dd1adbcc91bcc53c22
      ba48a111
  10. 19 May, 2013 1 commit
    • Jingning Han's avatar
      Enable bit-stream support to 8x4 and 4x8 partition · 810b612c
      Jingning Han authored
      The recursive partition type search is enabled down to 4x4, 4x8 and
      8x4, followed by the corresponding rate-distortion optimization for
      the per-partition encoding mode decisions.
      
      The bit-stream writing/reading synchronized in supporting the
      rectangular partition of 8x8 block.
      
      This provides above 1% coding performance gains on derf.
      
      To do next:
      1. re-design the rate-distortion loop for inter prediction below 8x8.
      2. re-design the rate-distortion loop for intra prediction below 4x4.
      3. make the loop-filter aware of rectangular partition of 8x8 block.
      4. clean the unused probability models.
      5. update default probability values.
      
      Change-Id: Idd41a315b16879db08f045a322241f46f1d53f20
      810b612c
  11. 17 May, 2013 1 commit
    • John Koleszar's avatar
      Initial version of alpha channel support · 679e4abd
      John Koleszar authored
      This is a mostly-working implementation of an extra channel in the
      bitstream. Configure with --enable-alpha to test. Notable TODOs:
      
       - Add extra channel to all mismatch tests, PSNR, SSIM, etc
       - Configurable subsampling
       - Variable number of planes (currently always uses all 4)
       - Loop filtering
       - Per-plane lossless quantizer
       - ARNR support
      
      This implementation just uses the same contents as the Y channel
      for the A channel, due to lack of content and general pain in
      playing back 4 channel content. A later patch will use the actual
      alpha channel passed in from outside the codec.
      
      Change-Id: Ibf81f023b1c570bd84b3064e9b4b8ae52e087592
      679e4abd
  12. 16 May, 2013 1 commit
    • Jingning Han's avatar
      Add building blocks for 4x8/8x4 rd search · 8e3d0e4d
      Jingning Han authored
      These building blocks enable rate-distortion optimization search
      over block sizes of 8x4 and 4x8. Need to convert them into mmx/sse
      forms.
      
      Change-Id: I570ea2d22d14ceec3fe3575128d7dfa172a577de
      8e3d0e4d
  13. 15 May, 2013 1 commit
  14. 14 May, 2013 1 commit
    • Jingning Han's avatar
      Enable recursive partition down to 4x4 · 1f26840f
      Jingning Han authored
      This commit allows the rate-distortion optimization recursion
      at encoder to go down to 4x4 block size. It deprecates the use
      of I4X4_PRED and SPLITMV syntax elements from bit-stream
      writing/reading. Will remove the unused probability models in
      the next patch.
      
      The partition type search and bit-stream are now capable of
      supporting the rectangular partition of 8x8 block, i.e., 8x4
      and 4x8. Need to revise the rate-distortion parts to get these
      two partition tested in the rd loop.
      
      Change-Id: I0dfe3b90a1507ad6138db10cc58e6e237a06a9d6
      1f26840f
  15. 13 May, 2013 2 commits
    • Yunqing Wang's avatar
      Do joint motion search iteratively · 60456083
      Yunqing Wang authored
      Allow motion search multiple times iteratively, and break out
      the loop if this search couldn't find better motion vectors.
      Limit the maximum number of search to 2.
      
      Tests results:
      1. stdhd set: 0.311%(overall psnr); 0.346%(ssim).
      positive gain on 10 out of 16 clips(best: 2.746% on sunflower;
      worst: -0.434% on old_town_cross).
      2. derf set: 0.016%(overall psnr); 0.062%(ssim).
      positive gain on half of the clips(best: 0.499% on bowing;
      worst: -0.387 on city).
      
      Change-Id: Ibf0a51776d4caf7707be0586346db08128117559
      60456083
    • Paul Wilkins's avatar
      Change to band calculation. · e5f71520
      Paul Wilkins authored
      Change band calculation back to simpler model based
      on the order in which coefficients are coded in scan order
      not the absolute coefficient positions.
      
      With the scatter scan experiment enabled the results were
      appear broadly neutral on derf (-0.028) but up a little on std-hd +0.134).
      
      Without the scatterscan experiment on the results were up derf as well.
      
      Change-Id: Ie9ef03ce42a6b24b849a4bebe950d4a5dffa6791
      e5f71520
  16. 11 May, 2013 1 commit
    • Jingning Han's avatar
      Force bsize for UV in I4X4 and SPLITMV · 4c2c3503
      Jingning Han authored
      Use 4x4 block coding for UV components arbitrarily in I4X4_PRED and
      SPLITMV coding modes. This is a temporary solution to enable
      bit-stream support for recursive partition down to 4x4 block size.
      Will separate the functionalities of 4x4 block coding rate-distortion
      out from those of superblocks.
      
      Change-Id: I03dc15d5897014f175f3f2c91e9b266091d56797
      4c2c3503
  17. 10 May, 2013 2 commits
    • Yunqing Wang's avatar
      Remove unused mdcounts · 9755d9fd
      Yunqing Wang authored
      mdcounts seems no longer used.
      
      Change-Id: Idd8162e8acfa3f5be7a18767156cc79ccbc2bdee
      9755d9fd
    • Yunqing Wang's avatar
      Add joint motion search in comp_inter_inter mode(experiment) · 9f5811c2
      Yunqing Wang authored
      In current code, motion vectors got from single prediction mode are used
      in compound prediction mode directly. These motion vectors may not give
      accurate prediction since they are searched independently. In this patch,
      we took Pascal's suggestion, and did joint motion search in compound
      prediction mode to find better motion vectors in this situation.
      Test results:
      Overall PSNR: 0.570%(derf), 0.918%(stdhd);
      SSIM: 0.572%(derf), 1.009%(stdhd);
      
      The encoder is a little slower. This can be improved since some c
      code is used in motion search.
      
      Change-Id: Ib30c9240f6c56c9b070867b4ca89412a76d9f3c6
      9f5811c2
  18. 08 May, 2013 3 commits
  19. 07 May, 2013 8 commits