1. 15 Jul, 2013 - 1 commit
    • Jingning Han's avatar
      Skip duplicate block encoding in the rd loop · faff6ed0
      Jingning Han authored
      This speed feature allows the encoder to largely remove the spatial
      dependency between blocks inside a 64x64 superblock, thereby removing
      the need to repeatedly encode superblocks per partition type in the
      rate-distortion optimization loop.
      
      A major challenge lies in the intra modes tested in the rate-distortion
      optimization loop. The subsequent blocks do not have access to the
      reconstructed boundary pixels without the intermediate coding steps.
      This was resolved by using the original pixels for intra prediction
      in the rd loop, followed by an appropriately designed distortion
      modeling on the quantization parameters. Experiments also suggested
      that the performance impact is more discernible at lower bit-rate/psnr
      settings. Hence a quantizer dependent threshold is applied to deactivate
      skip of block coding.
      
      For bus_cif at 2000 kbps,
      speed 0: runtime 269854ms -> 237774ms (12% speed-up) at 0.05dB
               performance loss.
      
      speed 1: runtime 65312ms  -> 61536ms, (7...
      faff6ed0
  2. 28 Jun, 2013 - 1 commit
    • Yaowu Xu's avatar
      Minor cleanups · 8b9eea0a
      Yaowu Xu authored
      Change-Id: I379617c1c731a686b3f7e032b8805860c1055b12
      8b9eea0a
  3. 17 Jun, 2013 - 1 commit
  4. 08 Jun, 2013 - 1 commit
  5. 07 Jun, 2013 - 1 commit
    • Ronald S. Bultje's avatar
      Change ref frame coding. · 6ef805eb
      Ronald S. Bultje authored
      Code intra/inter, then comp/single, then the ref frame selection.
      Use contextualization for all steps. Don't code two past frames
      in comp pred mode.
      
      Change-Id: I4639a78cd5cccb283023265dbcc07898c3e7cf95
      6ef805eb
  6. 31 May, 2013 - 1 commit
  7. 27 May, 2013 - 2 commits
    • Yaowu Xu's avatar
      a few clean-ups · 2b96ffe0
      Yaowu Xu authored
      1. remove prediction mode conversion
      2. unified bmode, same for key and non-key frame
      3. set I4X4_PRED count for pdf to 0, as I4X4_PRED is no longer
      coded ever. It is determined by ref_frame and block partition
      
      Change-Id: If5b282957c24339b241acdb9f2afef85658fe47d
      2b96ffe0
    • Jingning Han's avatar
      Reduce bmi buffer length from 16 to 4 · de735929
      Jingning Han authored
      This commit removes the use of bmi_ in the first-pass encoding by
      forcing encode_intra4x4block_ to use DC_PRED, followed by DCT_DCT
      only, as John suggested. This makes the need for bmi buffer only
      up to 4 entries, instead of 16.
      
      Change-Id: I3410007dfae789ee46a09ae20c39d3ce3c7954aa
      de735929
  8. 22 May, 2013 - 1 commit
  9. 20 May, 2013 - 1 commit
    • 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. 07 May, 2013 - 2 commits
  11. 04 May, 2013 - 1 commit
  12. 03 May, 2013 - 1 commit
    • John Koleszar's avatar
      Separate transform and quant from vp9_encode_sb · 4529c68b
      John Koleszar authored
      This allows removing a large number of transform size specific functions,
      as well as supporting 444/alpha by routing all code through the
      subsampling-aware path.
      
      Change-Id: Ieb085cebe9f37f24fc24de179898b22abfda08a4
      4529c68b
  13. 01 May, 2013 - 1 commit
    • John Koleszar's avatar
      Make vp9_optimize_sb* common · 1f80a568
      John Koleszar authored
      Unify the various vp9_optimize_sb functions into one that handles all
      transform sizes.
      
      Change-Id: I48b642fbfb3e72cc2e0bcf1d0317a80a80547882
      1f80a568
  14. 30 Apr, 2013 - 2 commits
    • Ronald S. Bultje's avatar
      sb8x8 integration in rd loop. · d068d869
      Ronald S. Bultje authored
      Work-in-progress, not yet ready for review. TODO items:
      - bitstream writing (encoder) and reading (decoder)
      - decoder reconstruction
      
      Change-Id: I5afb7284e7e0480847b47cd0097cb469433c9081
      d068d869
    • Jingning Han's avatar
      Separate I4X4_PRED coding from macroblock modules · 94191b5c
      Jingning Han authored
      Separate the functionality of I4X4_PRED from decode_mb. Use
      decode_atom_intra instead, to enable recursive partition of superblock
      down to 8x8.
      
      Change-Id: Ifc89a3be82225398954169d0a839abdbbfd8ca3b
      94191b5c
  15. 26 Apr, 2013 - 3 commits
    • John Koleszar's avatar
      Remove BLOCKD structure · bb41ab4a
      John Koleszar authored
      All members can be referenced from their per-plane counterparts, and
      removes assumptions about 24 blocks per macroblock.
      
      Change-Id: I7ff2fa72d22c29163eb558981c8193765a8113d9
      bb41ab4a
    • John Koleszar's avatar
      Remove destination pointers from BLOCKD · 4f55c561
      John Koleszar authored
      Access these members from MACROBLOCKD instead.
      
      Change-Id: I7907230dd473ff12ebe182b9280d8b7f12a888c4
      4f55c561
    • Scott LaVarnway's avatar
      Removed bmi from blockd · 57f180b3
      Scott LaVarnway authored
      This originally was "Removed update_blockd_bmi()".  Now,
      this patch removed bmi from blockd and uses the bmi found
      in mode_info_context.  Eliminates unnecessary bmi copies between
      blockd and mode_info_context.
      
      Change-Id: I287a4972974bb363f49e528daa9b2a2293f4bc76
      57f180b3
  16. 25 Apr, 2013 - 3 commits
    • John Koleszar's avatar
      quantize: make 4x4, 8x8 common with larger transforms · a672351a
      John Koleszar authored
      There were 4 variants of the quantize loop in vp9_quantize.c, now
      there is 1.
      
      Change-Id: Ic853393411214b32d46a6ba53769413bd14e1cac
      a672351a
    • John Koleszar's avatar
      Remove diff from BLOCKD · 6c0c6b86
      John Koleszar authored
      The underlying storage for these buffers is in the per-plane MACROBLOCKD
      area, so read it from there directly.
      
      Change-Id: Id6bd835117fdd9dea07db95ad06eff9f12afaaf7
      6c0c6b86
    • John Koleszar's avatar
      Remove BLOCK structure · 4bd0f4f6
      John Koleszar authored
      All members can be referenced from their per-plane counterparts, and
      removes assumptions about 24 blocks per macroblock.
      
      Change-Id: I593fb0715e74cd84b48facd1c9b18c3ae1185d4b
      4bd0f4f6
  17. 23 Apr, 2013 - 2 commits
    • John Koleszar's avatar
      Remove coeff from BLOCK · 48f3e66e
      John Koleszar authored
      Lookup the data per-plane from the MACROBLOCK struct.
      
      Change-Id: I9253c4d3cf886aa9ab4aeab23a2156bfcf994ede
      48f3e66e
    • John Koleszar's avatar
      Move src_diff to per-plane MACROBLOCK data · cbd1315a
      John Koleszar authored
      First in a series of commits making certain MACROBLOCK members
      addressable per-plane. This commit also refactors the block subtraction
      functions vp9_subtract_b, vp9_subtract_sby_c, etc to be
      loops-over-planes and variable subsampling aware.
      
      Change-Id: I371d092b914ae0a495dfd852ea1a3d2467be6ec3
      cbd1315a
  18. 22 Apr, 2013 - 1 commit
  19. 19 Apr, 2013 - 2 commits
    • John Koleszar's avatar
      Move dst to per-plane MACROBLOCKD data · d12376aa
      John Koleszar authored
      First in a series of commits moving the framebuffers pointers to
      per-plane data, so that they can be indexed numerically rather than
      by name.
      
      Change-Id: I6e0d60fd4d51e6375c384eb7321776564df21775
      d12376aa
    • John Koleszar's avatar
      Remove vp9_recon_mb{,y} · 9ec0f658
      John Koleszar authored
      Use the common sb functions instead.
      
      Change-Id: I4fa0a8ee3c6ada56271dd09bf895b97642f55858
      9ec0f658
  20. 18 Apr, 2013 - 1 commit
    • Jingning Han's avatar
      Make the use of pred buffers consistent in MB/SB · 6f43ff58
      Jingning Han authored
      Use in-place buffers (dst of MACROBLOCKD) for  macroblock prediction.
      This makes the macroblock buffer handling consistent with those of
      superblock. Remove predictor buffer MACROBLOCKD.
      
      Change-Id: Id1bcd898961097b1e6230c10f0130753a59fc6df
      6f43ff58
  21. 11 Apr, 2013 - 2 commits
    • Scott LaVarnway's avatar
      WIP: removing predictor buffer usage from decoder · 6189f2bc
      Scott LaVarnway authored
      This patch will use the dest buffer instead of the
      predictor buffer.  This will allow us in future commits
      to remove the extra mem copy that occurs in the dequant
      functions when eob == 0.  We should also be able to remove
      extra params that are passed into the dequant functions.
      
      Change-Id: I7241bc1ab797a430418b1f3a95b5476db7455f6a
      6189f2bc
    • Ronald S. Bultje's avatar
      Remove unused macroblock versions of reconstruction functions. · 13e41ba4
      Ronald S. Bultje authored
      More specifically, remove vp9_quantize_mb*, vp9_optimize_mb*,
      vp9_inverse_transform_mb* and vp9_transform_mb*. Instead, use the
      generic _sb* functions that take a size argument, and call them with
      BLOCK_SIZE_MB16X16.
      
      Change-Id: I33024afea95d3a23ffbc1df7da426e4645110f29
      13e41ba4
  22. 05 Apr, 2013 - 1 commit
    • John Koleszar's avatar
      Move EOB to per-plane data · 05a79f2f
      John Koleszar authored
      Continue migrating data from BLOCKD/MACROBLOCKD to the per-plane
      structures.
      
      Change-Id: Ibbfa68d6da438d32dcbe8df68245ee28b0a2fa2c
      05a79f2f
  23. 04 Apr, 2013 - 1 commit
  24. 26 Mar, 2013 - 1 commit
  25. 16 Mar, 2013 - 1 commit
    • Deb Mukherjee's avatar
      Context-pred fix to not use top/left on edges · b1921b2f
      Deb Mukherjee authored
      This fix resolves some of the mismatch issues being seen
      recently. While this is the right thing to do when tiling
      is used for this experiment, it is not the underlying cause
      of the the mismatches.
      Something else is causing writing outside of the allowable
      frame area in the encoder leading to this mismatch.
      
      Change-Id: If52c6f67555aa18ab8762865384e323b47237277
      b1921b2f
  26. 07 Mar, 2013 - 2 commits
    • Ronald S. Bultje's avatar
      Re-add support for ADST in superblocks. · d3724abe
      Ronald S. Bultje authored
      This also changes the RD search to take account of the correct block
      index when searching (this is required for ADST positioning to work
      correctly in combination with tx_select).
      
      Change-Id: Ie50d05b3a024a64ecd0b376887aa38ac5f7b6af6
      d3724abe
    • Deb Mukherjee's avatar
      Coding con-zero count rather than EOB for coeffs · eb6ef241
      Deb Mukherjee authored
      This patch revamps the entropy coding of coefficients to code first
      a non-zero count per coded block and correspondingly remove the EOB
      token from the token set.
      
      STATUS:
      Main encode/decode code achieving encode/decode sync - done.
      Forward and backward probability updates to the nzcs - done.
      Rd costing updates for nzcs - done.
      Note: The dynamic progrmaming apporach used in trellis quantization
      is not exactly compatible with nzcs. A suboptimal approach has been
      used instead where branch costs are updated to account for changes
      in the nzcs.
      
      TODO:
      Training the default probs/counts for nzcs
      
      Change-Id: I951bc1e22f47885077a7453a09b0493daa77883d
      eb6ef241
  27. 05 Mar, 2013 - 1 commit
    • Ronald S. Bultje's avatar
      Make superblocks independent of macroblock code and data. · 111ca421
      Ronald S. Bultje authored
      Split macroblock and superblock tokenization and detokenization
      functions and coefficient-related data structs so that the bitstream
      layout and related code of superblock coefficients looks less like it's
      a hack to fit macroblocks in superblocks.
      
      In addition, unify chroma transform size selection from luma transform
      size (i.e. always use the same size, as long as it fits the predictor);
      in practice, this means 32x32 and 64x64 superblocks using the 16x16 luma
      transform will now use the 16x16 (instead of the 8x8) chroma transform,
      and 64x64 superblocks using the 32x32 luma transform will now use the
      32x32 (instead of the 16x16) chroma transform.
      
      Lastly, add a trellis optimize function for 32x32 transform blocks.
      
      HD gains about 0.3%, STDHD about 0.15% and derf about 0.1%. There's
      a few negative points here and there that I might want to analyze
      a little closer.
      
      Change-Id: Ibad7c3ddfe1acfc52771dfc27c03e9783e054430
      111ca421
  28. 28 Feb, 2013 - 1 commit
    • Dmitry Kovalev's avatar
      Code cleanup. · 0d9cc0a9
      Dmitry Kovalev authored
      Removing redundant 'extern' keyword, better formatting, code
      simplification.
      
      Change-Id: I132fea14f08c706ee9ea147d19464d03f833f25b
      0d9cc0a9
  29. 27 Feb, 2013 - 1 commit