1. 16 Sep, 2015 4 commits
    • Ronald S. Bultje's avatar
      vp10: move coding of tx_mode element to the non-arithcoded header. · 00a203b7
      Ronald S. Bultje authored
      See issue 1040 point 3.
      
      Change-Id: If051b92c24a34d6a39861fb7d7180c5ca32f3d82
      00a203b7
    • Ronald S. Bultje's avatar
      vp10: code sign bit before absolute value in non-arithcoded header. · a3df343c
      Ronald S. Bultje authored
      For reading, this makes the operation branchless, although it still
      requires two shifts. For writing, this makes the operation as fast
      as writing an unsigned value, branchlessly. This is also how other
      codecs typically code signed, non-arithcoded bitstream elements.
      
      See issue 1039.
      
      Change-Id: I6a8182cc88a16842fb431688c38f6b52d7f24ead
      a3df343c
    • Ronald S. Bultje's avatar
      vp10: don't reset contextual skip flag if block has no coefficients. · a5d930e4
      Ronald S. Bultje authored
      The implicitly changed value would be used for contextualizing future
      skip flags of neighbour blocks (bottom/right), which is certainly not
      what was intended. The original code stems from vp8, and was useful
      in cases where coding of the skip flag was disabled. In vp9, the skip
      flag is always coded. The result of this change is that for bitstream
      parsing purposes, decoding of the skip flag becomes independent of
      decoding of block coefficients.
      
      See issue 1014.
      
      Change-Id: I8629e6abe76f7c1d649f28cd6fe22a675ce4a15d
      a5d930e4
    • Ronald S. Bultje's avatar
      Add support for color-range. · eeb5ef0a
      Ronald S. Bultje authored
      In decoder, export (eventually) into vpx_image_t.range field. In
      encoder, use oxcf->color_range to set it (same way as for
      color_space).
      
      See issue 1059.
      
      Change-Id: Ieabbb2a785fa58cc4044bd54eee66f328f3906ce
      eeb5ef0a
  2. 15 Sep, 2015 1 commit
  3. 11 Sep, 2015 3 commits
  4. 04 Sep, 2015 1 commit
    • Ronald S. Bultje's avatar
      Make update_map/temporal_update fields implicit for keyframes. · d88cee37
      Ronald S. Bultje authored
      These frame types cannot make bitstream parsing depend on previous
      frames, so the hypothetical combinations of e.g. keyframe=1 and
      update_map=0 or keyframe=1 and temporal_update=1 are non-sensical.
      Therefore, make it impossible to code such combinations in the vp10
      bitstream header.
      
      See issue 1044.
      
      Change-Id: I3f0a83d5c7e3989541a469a909471424a285239d
      d88cee37
  5. 03 Sep, 2015 1 commit
    • Ronald S. Bultje's avatar
      Unify coding order of MC filters between blocks and frame header. · ecd34e64
      Ronald S. Bultje authored
      In VP9, the order for frame header was: [0] smooth, [1] regular, [2]
      sharp, [3] bilinear. Per-block, the order was [0] regular, [1] smooth
      and [2] sharp. For VP10, swap smooth/regular in the frame header so
      that the block ordering and frame header ordering are interchangeable.
      
      See issue #1046.
      
      Change-Id: Ic9ec5964874375e40cd59bef50b489a76cbe4365
      ecd34e64
  6. 31 Aug, 2015 1 commit
  7. 27 Aug, 2015 1 commit
  8. 24 Aug, 2015 2 commits
  9. 21 Aug, 2015 1 commit
    • hui su's avatar
      Refactor get_tx_type and get_scan · 5eed74e1
      hui su authored
      This makes it easier to add new transform types and scan orders
      to VP10 in the future.
      
      Change-Id: I94874ddc9b19928d7820d57e94e2af04adf51efe
      5eed74e1
  10. 20 Aug, 2015 1 commit
  11. 14 Aug, 2015 2 commits
  12. 13 Aug, 2015 2 commits
  13. 12 Aug, 2015 2 commits
  14. 06 Aug, 2015 1 commit
  15. 31 Jul, 2015 1 commit
    • Zoe Liu's avatar
      Code refactor on InterpKernel · 7186a2dd
      Zoe Liu authored
      It in essence refactors the code for both the interpolation
      filtering and the convolution. This change includes the moving
      of all the files as well as the changing of the code from vp9_
      prefix to vpx_ prefix accordingly, for underneath architectures:
      (1) x86;
      (2) arm/neon; and
      (3) mips/msa.
      The work on mips/drsp2 will be done in a separate change list.
      
      Change-Id: Ic3ce7fb7f81210db7628b373c73553db68793c46
      7186a2dd
  16. 21 Jul, 2015 2 commits
  17. 20 Jul, 2015 1 commit
  18. 17 Jul, 2015 2 commits
    • Yaowu Xu's avatar
      Move bit reader files to vpx_dsp · 97279ed2
      Yaowu Xu authored
      Change-Id: Ib1cb1fbe92a39ff5312cee069559be6d3ea458d0
      97279ed2
    • Yaowu Xu's avatar
      Correctly report "Unsupported bitstream profile" · 7c0c62df
      Yaowu Xu authored
      For vp9 decoder build without profile 2 and profile 3 support, this
      commit changes to report error "Unsupported bitstream profile" for
      input streams in profile 2 or 3, rather than other misleading error
      information.
      
      In addition, one of the invalid files in unit tests is actually coded
      profile 2, this commit makes it tested only when the decoder is built
      with vp9-highbitdepth.
      
      This fixes issue #1028.
      
      Change-Id: I8b6c1210787c8f89c703a546687dcf973ac20fc0
      7c0c62df
  19. 13 Jul, 2015 2 commits
    • Jingning Han's avatar
      Refactor intra block prediction and reconstruction process · cb1e817c
      Jingning Han authored
      Flaten the intra block decoding process. It removes the legacy
      foreach_transformed_block use in the decoder. This saves cycles
      spent on retrieving the transform block position.
      
      Change-Id: I21969afa50bb0a8ca292ef72f3569f33f663ef00
      cb1e817c
    • Jingning Han's avatar
      Refactor intra block prediction function · 81452cf0
      Jingning Han authored
      This commit simplifies the intra block boundary condition logic.
      It removes the block index from the argument set.
      
      Change-Id: If00142512eb88992613d6609356dfd73ba390138
      81452cf0
  20. 09 Jul, 2015 1 commit
  21. 08 Jul, 2015 3 commits
    • Jingning Han's avatar
      Refactor transform block loop for inter mode decoding · 8783a8a9
      Jingning Han authored
      Rework the inter mode transform block decoding loop. Replace the
      block index with the row and col index as the input argument. It
      saves function call to compute the row and col index according to
      the block index and overall block size, and many if statements
      associated with the transform block position relative to the coding
      block. For the test bit-stream pedestrian_area 1080p at 5 Mbps,
      the decoding speed goes up from 81.13 fps to 81.92 fps.
      
      Note that the intra coded block decoding needs more refactoring
      work than the inter ones. So keep it using foreach_transforme_block
      as for now.
      
      Change-Id: I5622bdae7be28ed5af96693274057f55ba9b4fb4
      8783a8a9
    • Alex Converse's avatar
      Don't allocate dqcoeff in MACROBLOCKD. · 89090d80
      Alex Converse authored
      The encoder gets its dqcoeff from the context tree. In the decoder move
      it to directly after MACROBLOCKD.
      
      Change-Id: I46c9b76f26956a360d17de0b26ecb994dae34ecb
      89090d80
    • Jingning Han's avatar
      Refactor inverse_transform_block argument list · 7e0d0de2
      Jingning Han authored
      Replace block index with transform type in the argument list. This
      allows to save an extra fetch to the prediction mode. For pedestrian
      area 1080p coded at 5 Mbps with single tile, the average decoding
      speed goes up from 80.55 fps (before the refactoring series) to
      81.13 fps.
      
      Change-Id: Icbebf84ce63c19c0c92f3690ed201f6c3eab7881
      7e0d0de2
  22. 07 Jul, 2015 4 commits
    • Jingning Han's avatar
      Reset dqcoeff[0] only if eob is 1 · 76ccba9e
      Jingning Han authored
      If only the first dequantized coefficient is non-zero, reset
      dqcoeff[0] to zero directly.
      
      Change-Id: I0197ba72028a8ec436f0b1b9abcc1c0ae5d70abe
      76ccba9e
    • Jingning Han's avatar
      Rework scan order fetch logic for decoder · 97d1f1aa
      Jingning Han authored
      Save redundant call for getting prediction mode to obtain scan
      order for detokenization.
      
      Change-Id: I0683ef119f1579d1261ed5d59052a1745b68ef6f
      97d1f1aa
    • Jingning Han's avatar
      Add vp9_ prefix to init_macroblockd · a652048e
      Jingning Han authored
      Change-Id: I202d4924e627eec94838741df004ed9259d38b88
      a652048e
    • Jingning Han's avatar
      Reduce dqcoeff array size in decoder · cccad1c5
      Jingning Han authored
      The decoding process handles detokenization and reconstruction per
      transform block sequentially. There is no need to offset the dqcoeff
      buffer according to the transform block index. This allows to
      reduce the memory spill and improve cache performance.
      
      Change-Id: Ibb8bfe532a7a08fcabaf6d42cbec1e986901d32d
      cccad1c5
  23. 06 Jul, 2015 1 commit