1. 20 Oct, 2015 2 commits
  2. 19 Oct, 2015 1 commit
  3. 17 Oct, 2015 1 commit
  4. 16 Oct, 2015 7 commits
    • Ronald S. Bultje's avatar
      vp10: per-segment lossless coding. · 60c58b52
      Ronald S. Bultje authored
      Some more testing of this patch would probably be useful, but I
      think the basics of it should work fine now.
      
      See issue 1035.
      
      Change-Id: I4a36d58f671c5391cb09d564581784a00ed26245
      60c58b52
    • Ronald S. Bultje's avatar
      vp10: add extended-intra prediction edges experiment. · c7dc1d78
      Ronald S. Bultje authored
      This experiment allows using full above/right edges for all transform
      sizes whenever available (for d45/d63), and adds bottom/left edges for
      d207.
      
      See issue 1043.
      
      Change-Id: I5cf7f345e783e8539bb6b6d2c9972fb1d6d0a78b
      c7dc1d78
    • Ronald S. Bultje's avatar
      vp10: allow MV refs to point outside visible image. · dea99899
      Ronald S. Bultje authored
      In VP9, the ref MV had to point to a block that itself fully resided
      within the visible image, i.e. all borders of the image had to be
      within the visible borders of the coded frame. This is somewhat
      illogical, and had obscure side effects, e.g. clamping of fairly
      reasonable motion vectors such as 0,0 were clipped to negative values
      if the block was overhanging on frame edges (such as the last rows
      on 1080p content), which makes no sense whatsoever.
      
      Instead, relax clamping constraints such that the ref MVs are allowed
      to point to blocks exactly outside the visible edges in both Y as well
      as UV planes, including the 8tap filter edges (that's why the offset is
      8 pixels + block size).
      
      See issue 1037.
      
      Change-Id: I2683eb2a18b24955e4dcce36c2940aa2ba3a1061
      dea99899
    • Ronald S. Bultje's avatar
      vp10: allow forward updates for keyframe y intra mode probabilities. · 1eb51a20
      Ronald S. Bultje authored
      See issue 1040 point 5.
      
      Change-Id: I51a70b9eade39efba392a1457bd70a3c515525cb
      1eb51a20
    • Ronald S. Bultje's avatar
      vp10: merge keyframe/interframe uvintramode/partition probabilities. · d8f3bb18
      Ronald S. Bultje authored
      This has various benefits:
      - simplify implementations because we don't have to switch between
        multiple probability tables depending on frametype
      - allows fw subexp and bw adaptivity for partitions/uvmode in keyframes
      
      See issue 1040 point 5.
      
      Change-Id: Ia566aa2863252d130cee9deedcf123bb2a0d3765
      d8f3bb18
    • Ronald S. Bultje's avatar
      vp10: make segmentation probs use generic probability model. · 6e5a1165
      Ronald S. Bultje authored
      Locate them (code-wise) in frame_context, and have them be updated
      as any other probability using the subexp forward and adaptive bw
      updates.
      
      See issue 1040 point 1.
      
      TODOs:
      - real-world default probabilities
      - why is counts sometimes NULL in the decoder? Does that mean bw
        adaptivity updates only work on some frames? (I haven't looked
        very closely yet, maybe this is a red herring.)
      
      Change-Id: I23b57b4e5e7574b75f16eb64823b29c22fbab42e
      6e5a1165
    • hui su's avatar
      VP10: some changes to palette mode · 17c817ad
      hui su authored
      Account for rounding in distortion calculation in k-means;
      carry out rounding before duplicates removal of base colors;
      replace numbers with macros;
      use prefix increment.
      
      Slight coding gain (<0.1%) on screen_content testset.
      
      Change-Id: Ie8bd241266da6b82c7b2874befc3a0c72b4fcd8c
      17c817ad
  5. 15 Oct, 2015 3 commits
  6. 13 Oct, 2015 2 commits
  7. 12 Oct, 2015 7 commits
    • Ronald S. Bultje's avatar
      vp10: allow forward updates for uv_mode probabilities. · 00170953
      Ronald S. Bultje authored
      See issue 1040 point 4.
      
      Change-Id: I79e06bd71a27f45770c760c47dc71bc3767a77a0
      00170953
    • Ronald S. Bultje's avatar
      vp10: allow bw adaptivity for skip/tx probabilities in keyframes. · 5f589826
      Ronald S. Bultje authored
      See issue 1040 point 3.
      
      Change-Id: Ieef6d326b7fb50ceca5936525b7c688225a11fd1
      5f589826
    • Ronald S. Bultje's avatar
      vp10: don't write tile size marker bit if CONFIG_MISC_FIXES=0. · fee146e6
      Ronald S. Bultje authored
      Change-Id: I41b13b8767e30da391c2c4da9a729ca7292b16b9
      fee146e6
    • Ronald S. Bultje's avatar
      vp10: remove ref-MV-dependent use of HP. · 1799f2f8
      Ronald S. Bultje authored
      This change (in a new config experiment: universal_hp) removes the
      bitstream parsing dependency of the HP MV bit on the ref MV to be
      coded. It also cleans up clearing of the HP bit in near/nearestMV,
      since HP is always on if it's set in the frame header.
      
      This admittedly doesn't clean up the crap that could be cleaned up,
      but that's mostly because I think this needs some careful review;
      not so much for coding style, but more from hardware people and from
      the codec team on what we/you want. It would also be nice to get some
      actual numbers on the real quality impact of this change. If, for
      example, hardware people come up and tell us they don't actually care
      anymore, we should probably just this code as-is and do nothing (i.e.
      discard this patch).
      
      See issue 1036.
      
      Change-Id: Ic9b106f34422aa0f79de0c28125b72d566bd511a
      1799f2f8
    • Ronald S. Bultje's avatar
      vp10: remove clamp_mv2() call from vp10_find_best_ref_mvs(). · 5b4805d6
      Ronald S. Bultje authored
      This actually has no effect whatsoever, since the input MVs themselves
      are clamped by clamp_mv_ref() already, which is significantly more
      restrictive in its bounds.
      
      Change-Id: I4a3a7b2b121ee422c56428c2a12d930c3813c06e
      5b4805d6
    • Ronald S. Bultje's avatar
      vp10: update assertion/allocation for tokens. · 2e45ce14
      Ronald S. Bultje authored
      We only write EOSB tokens if we write tokens (i.e. not for skip blocks),
      and we write EOSB tokens per-plane instead of per block.
      
      Change-Id: I8d7ee99f8ec50eb7ae809f9f9282c1c91dbf6537
      2e45ce14
    • hui su's avatar
      VP10: Add palette mode part 1 · 5d011cb2
      hui su authored
      Add palette mode for keyframe luma channel. Palette mode is enabled
      when using "--tune-content=screen" in encoding config parameters.
      
      on screen_content testset:  +6.89%
      on derlr                 :  +0.00%
      
      Design doc (WIP):
      https://goo.gl/lD4yJw
      
      Change-Id: Ib368b216bfd3ea21c6c27436934ad87afdaa6f88
      5d011cb2
  8. 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
  9. 02 Oct, 2015 2 commits
  10. 01 Oct, 2015 2 commits
    • hui su's avatar
      Small cleanup · 06bdc7f6
      hui su authored
      Change-Id: I5aeaa94b743f84738d288f8b027fec4c164f2ec3
      06bdc7f6
    • Ronald S. Bultje's avatar
      vp10: reimplement d45/4x4 to match vp8 instead of vp9. · 62a15795
      Ronald S. Bultje authored
      This is more a proof of concept than anything else. The problem here
      isn't so much how to code it, but rather where to place the resulting
      code. All intrapred DSP code lives in vpx_dsp, so do we want the vp10
      specific intra pred functions to live there, or in vp10/?
      
      See issue 1015.
      
      Change-Id: I675f7badcc8e18fd99a9553910ecf3ddf81f0a05
      62a15795
  11. 26 Sep, 2015 5 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
    • Angie Chiang's avatar
      comment out fdct32 · 6a382101
      Angie Chiang authored
      comment out fdct32
      remove fdct32 test
      
      Change-Id: I31c47fb435377465cd3265e39621ca50d3aae656
      6a382101
    • 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
    • Ronald S. Bultje's avatar
      vp10: split UV int4x4 loopfilter flag in one for each covered edge. · 034c28b0
      Ronald S. Bultje authored
      In practice, this fixes the issue that if you have an odd number of
      mi_cols, on the full right of the image, the UV int4x4 loopfilter
      will be skipped over odd cols as well as odd rows (because it holds a
      single variable for both edges).
      
      See issue 1016.
      
      Change-Id: Id53b501cbff9323a8239ed4775ae01fe91874b7e
      034c28b0
  12. 25 Sep, 2015 3 commits