1. 20 Oct, 2015 1 commit
  2. 19 Oct, 2015 1 commit
  3. 16 Oct, 2015 5 commits
  4. 15 Oct, 2015 1 commit
  5. 12 Oct, 2015 4 commits
  6. 06 Oct, 2015 5 commits
    • Ronald S. Bultje's avatar
      vp10: use subexp probability updates for MV probs. · 177e7b53
      Ronald S. Bultje authored
      See issue 1040 point 2.
      
      Change-Id: I0b37fe74be764610696620f1fe296dc74e4806d7
      177e7b53
    • Ronald S. Bultje's avatar
      vp10: skip unreachable cat6 token extrabits. · 3461e8ce
      Ronald S. Bultje authored
      We have historically added new bits to cat6 whenever we added a new
      transform size (or bitdepth, for that matter). However, we have
      always coded these new bits regardless of the actual transform size,
      which means that for smaller transforms, we code bits that cannot
      possibly be set. The coding (quality) impact of this is negligible,
      but the bigger issue is that this allows creating bitstreams with
      coefficient values that are nonsensible and can cause int overflows,
      which then de facto become part of the bitstream spec. By not coding
      these bits, we remove this possibility.
      
      See issue 1065.
      
      Change-Id: Ib3186eca2df6a7a15ddc60c8b55af182aadd964d
      3461e8ce
    • Ronald S. Bultje's avatar
      vp10: remove superframe size field for last frame in superframe. · d77a84bf
      Ronald S. Bultje authored
      This is identical to what the tile size does for the last tile. See
      issue 1042 (which covers generalizing the superframe/tile concepts).
      
      Change-Id: I1f187d2e3b984e424e3b6d79201b8723069e1a50
      d77a84bf
    • Ronald S. Bultje's avatar
      vp10: use superframe marker index/size mechanism for tile size. · 7460798b
      Ronald S. Bultje authored
      See issue 1042. Should provide slight bitstream savings in most cases
      where tiles are being used.
      
      Change-Id: Ie2808cf8ef30b3efe50804396900c4d63a3fa026
      7460798b
    • Ronald S. Bultje's avatar
      vp10: extend range for delta Q values. · 612104bb
      Ronald S. Bultje authored
      See issue 1051. 6 bits is fairly arbitrary but at least allows writing
      delta Q values that are fairly normal in other codecs. I can extend to
      8 if people want full range, although I personally don't have any need
      for that.
      
      Change-Id: I0a5a7c3d9b8eb3de4418430ab0e925d4a08cd7a0
      612104bb
  7. 02 Oct, 2015 1 commit
  8. 26 Sep, 2015 3 commits
    • Ronald S. Bultje's avatar
      vp9/10: improve support for render_width/height. · 812945a8
      Ronald S. Bultje authored
      In the decoder, map this to the output variable vpx_image_t.r_w/h.
      This is intended as an improved version of VP9D_GET_DISPLAY_SIZE,
      which doesn't work with parallel frame decoding. In the encoder,
      map this to a codec control func (VP9E_SET_RENDER_SIZE) that takes
      a w/h pair argument in a int[2] (identical to VP9D_GET_DISPLAY_SIZE).
      
      Also add render_size to the encoder_param_get_to_decoder unit test.
      
      See issue 1030.
      
      Change-Id: I12124c13602d832bf4c44090db08c1009c94c7e8
      812945a8
    • Ronald S. Bultje's avatar
      Rename display_{size,width,height} to render_*. · 36ffe644
      Ronald S. Bultje authored
      The name "display_*" (or "d_*") is used for non-compatible information
      (that is, the cropped frame dimensions in pixels, as opposed to the
      intended screen rendering surface size). Therefore, continuing to use
      display_* would be confusing to end users. Instead, rename the field
      to render_*, so that struct vpx_image can include it.
      
      Change-Id: Iab8d2eae96492b71c4ea60c4bce8121cb2a1fe2d
      36ffe644
    • Ronald S. Bultje's avatar
      vp10: code reference_mode in uncompressed header. · 8979e9e3
      Ronald S. Bultje authored
      See issue 1041 point 2.
      
      Change-Id: I6fc6427b1a0edff828e39d43428e3271491f8ac5
      8979e9e3
  9. 25 Sep, 2015 2 commits
  10. 16 Sep, 2015 6 commits
    • Ronald S. Bultje's avatar
      vp10: do sub8x8 block reconstruction in full subblocks. · 50f94427
      Ronald S. Bultje authored
      This means that we don't reconstruct in 4x4 dimensions, but in
      blocksize dimensions, e.g. 4x8 or 8x4. This may in some cases lead
      to performance improvements. Also, if we decide to re-introduce
      scalable coding support, this would fix the fact that you need to
      re-scale the MV halfway the block in sub8x8 non-4x4 blocks.
      
      See issue 1013.
      
      Change-Id: If39c890cad20dff96635720d8c75b910cafac495
      50f94427
    • Ronald S. Bultje's avatar
      vp10: fix 4:2:2 chroma MVs for 8x4/4x4 blocks. · ed29c2f9
      Ronald S. Bultje authored
      In vp9, the bottom MV would be the average of the topright and
      bottomleft luma MV (instead of the bottomleft/bottomright luma MV).
      
      See issue 993.
      
      Change-Id: Ic91c0b195950e7b32fc26c84c04788a09321e391
      ed29c2f9
    • 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
  11. 15 Sep, 2015 1 commit
  12. 14 Sep, 2015 1 commit
    • Ronald S. Bultje's avatar
      vp10: fix entropy counts for the hp bit. · 1e9e9ce2
      Ronald S. Bultje authored
      The counts didn't take usehp into account, which means that if the
      scope of the refmv is too large for the hp bit to be coded, the value
      (always 1) is still included in the stats. Therefore, the final
      counts will not reflect the entropy of the coded bits, but rather the
      entropy of the combination of coded bits and the implied value (which
      is always 1). Fix that by only including counts if the hp bit is
      actually coded.
      
      See issue 1060.
      
      Change-Id: I19a3adda4a8662a05f08a9e58d7e56ff979be11e
      1e9e9ce2
  13. 11 Sep, 2015 3 commits
  14. 10 Sep, 2015 1 commit
  15. 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
  16. 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
  17. 31 Aug, 2015 1 commit
  18. 27 Aug, 2015 1 commit
  19. 24 Aug, 2015 1 commit