1. 24 Sep, 2014 1 commit
    • Yaowu Xu's avatar
      Correct the condition for border extension · d237d483
      Yaowu Xu authored
      As reported in issue #850, the condition for border extension was not
      complete. This commit added the case when the scaling is enabled.
      
      This fixes issue #850.
      
      Change-Id: I67768b23f0dcc4ac9a9aa0a0825b0fe8cb85a72e
      d237d483
  2. 20 Sep, 2014 1 commit
    • hkuang's avatar
      Remove mi_grid_* structures. · c70cea97
      hkuang authored
      mi_grid_* are arrays of pointer to pointer. They save the pointers that point
      to the MIs in cm->mi. But they are unnecessary and complicated. The original
      goal was to remove MODE_INFO_t copy. But with an extra MODE_INFO_t pointer
      inside MODE_INFO_t, same goal could be achieved.
      
      This commit totally removes the mi_grid_* structures. But there are still
      many dummy MODE_INFO_t inside cm->mi which are a waste of memory. Next commit
      will do on-demand MODE_INFO_t allocation in order to save these memories.
      
      Change-Id: I3a05cf1610679fed26e0b2eadd315a9ae91afdd6
      c70cea97
  3. 18 Sep, 2014 1 commit
  4. 15 Sep, 2014 1 commit
    • Alexander Voronov's avatar
      Fix invalid memory access on 2x downscale. · 29071a41
      Alexander Voronov authored
      The issue was discovered on bitstream with 2x vertical downscale. For
      zero MVs, y_pad is set to 1 only when vertical convolution is
      required. The original code assumes that for y_step_q4 == 32 we don't
      perform vertical convolution. But vp9_setup_scale_factors_for_frame()
      sets convolve functions so that when x_step and y_step are both not
      equal to 16, convolve in both directions is performed. And convolve()
      unconditionally subtracts one stride from source pointer when calls
      convolve_horiz(). This leads to invalid memory access.
      
      Change-Id: I882dfa6081a58e172b5ffa55842bfcd6727f10bf
      29071a41
  5. 11 Jul, 2014 1 commit
  6. 10 Jul, 2014 1 commit
  7. 18 Jun, 2014 1 commit
    • Alex Converse's avatar
      BITSTREAM: Handle transform size and motion vectors more logically for non-420. · 7557a65d
      Alex Converse authored
      This breaks the profile 1 bitstream.
      
      Don't force non420 uv transform size to 1/4 y size. In the 4:2:0 case the
      chroma corresponding to a luma block is 1/4 its size. In the 4:4:4 case
      chroma and luma planes are the same size. Disallowing larger transforms
      can result in a loss of compression efficiency and is inconsistent.
      
      For sub-8x8 blocks only average corresponding motion vectors.
      
      4:2:0 and profile 0 behavior remains unchanged.
      
      Change-Id: I560ae07183012c6734dd1860ea54ed6f62f3cae8
      7557a65d
  8. 16 May, 2014 1 commit
  9. 03 Apr, 2014 1 commit
  10. 02 Apr, 2014 1 commit
  11. 24 Mar, 2014 1 commit
    • hkuang's avatar
      Change back the scaling calculation. · 22232ec6
      hkuang authored
      Let the calculation to be compatible with Google's HW implementation.
      
      Change-Id: I22e179888cdb0419e230351c0a47661b37051fef
      22232ec6
  12. 17 Mar, 2014 1 commit
  13. 13 Mar, 2014 2 commits
  14. 03 Mar, 2014 1 commit
  15. 01 Mar, 2014 1 commit
  16. 14 Feb, 2014 1 commit
  17. 04 Feb, 2014 3 commits
  18. 25 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Removing subpix_fn_table struct. · 86915654
      Dmitry Kovalev authored
      We don't use different filter kernels for x and y, it is always one kernel
      for both directions.
      
      Change-Id: Iefcbb02ec74bf46ea20d9dca672a3efd5d631517
      86915654
  19. 18 Jan, 2014 1 commit
  20. 03 Jan, 2014 1 commit
    • Dmitry Kovalev's avatar
      Adding RefBuffer struct. · ba41e9d4
      Dmitry Kovalev authored
      Adding RefBuffer to simplify reference buffer management. The struct has a
      pointer to image data and scale factors relative to the current frame.
      
      Change-Id: If38eb1491ff687cc11428aee339f3e052e2c5d9e
      ba41e9d4
  21. 20 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Using single struct to represent scale factors. · a3fbcc88
      Dmitry Kovalev authored
      Moving back to scale_factors struct. We don't need anymore x_offset_q4 and
      y_offset_q4 because both values are calculated locally inside vp9_scale_mv
      function.
      
      Change-Id: I78a2122ba253c428a14558bda0e78ece738d2b5b
      a3fbcc88
  22. 19 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Call set_scaled_offsets() just before scale_mv() call. · c872d2be
      Dmitry Kovalev authored
      Before mv scaling it is required to calculate x_offset_q4/y_offset_q4
      by calling set_scaled_offsets(). Now offset configuration can not be
      missed because it happens just before scale_mv().
      
      Change-Id: I7dd1a85b85811a6cc67c46c9b01e6ccbbb06ce3a
      c872d2be
  23. 16 Dec, 2013 1 commit
  24. 11 Dec, 2013 1 commit
    • hkuang's avatar
      Fix valgrind error. · 1339f384
      hkuang authored
      Temporarily change memcpy to memmove.
      
      Change-Id: I700a197bc1ce496be1ddad7118429c5da465b0ca
      1339f384
  25. 10 Dec, 2013 2 commits
  26. 06 Dec, 2013 1 commit
    • Dmitry Kovalev's avatar
      Renaming constants. · 0d4b8d7e
      Dmitry Kovalev authored
      NUM_YV12_BUFFERS        => FRAME_BUFFERS
      ALLOWED_REFS_PER_FRAME  => REFS_PER_FRAME
      NUM_REF_FRAMES_LOG2     => REF_FRAMES_LOG2
      NUM_REF_FRAMES          => REF_FRAMES
      NUM_FRAME_CONTEXTS_LOG2 => FRAME_CONTEXTS_LOG2
      NUM_FRAME_CONTEXTS      => FRAME_CONTEXTS
      
      Change-Id: I4e1ada08f25d8fa30fdf03aebe1b1c9df0f87e63
      0d4b8d7e
  27. 04 Dec, 2013 1 commit
  28. 25 Nov, 2013 1 commit
    • Jingning Han's avatar
      Use separate inter predictors for enc/dec · ba8b5e8d
      Jingning Han authored
      The decoder will construct inter predictor using lazy border extension,
      while the encoder, going with multiple runs of motion search in the rate-
      distortion optimization loop for each block, does border extension at
      frame level. This commit makes separate the inter predictors for encoder
      and decoder, respectively.
      
      Change-Id: Ieca2fecba3a7201a6d64ef9f219e5d91e50559c3
      ba8b5e8d
  29. 22 Nov, 2013 1 commit
    • Jingning Han's avatar
      Separate setup_scale_factor/extend_frame_borders · 86d2a9b9
      Jingning Han authored
      This commit takes out vp9_extend_frame_borders from
      vp9_setup_scale_factors.
      
      The refactoring is for the preparation of the use of lazy border
      extension at decoder. This makes it necessary to handle border
      extension separately at encoder/decoder. The use of
      vp9_extend_frame_borders will be removed, when lazy border extension
      is ready.
      
      Change-Id: Ia3baba3d179d5f11eee1634f19b3b319d2a59186
      86d2a9b9
  30. 20 Nov, 2013 1 commit
  31. 19 Nov, 2013 1 commit
  32. 12 Nov, 2013 1 commit
  33. 30 Oct, 2013 1 commit
    • Yunqing Wang's avatar
      Fix x_offset_q4/y_offset_q4 calculation · 9ed2d0a5
      Yunqing Wang authored
      "<< SUBPEL_BITS" needs to be added in the calculation. Call
      set_scaled_offsets() to calculate x_offset_q4 and y_offset_q4.
      
      Change-Id: Ied130ea771510e918f51cd1dc3abe57f4c0962b5
      9ed2d0a5
  34. 24 Oct, 2013 1 commit
  35. 22 Oct, 2013 1 commit
    • Yunqing Wang's avatar
      Improve scale_factors struct · 175c313a
      Yunqing Wang authored
      The ref's scale_factors are set at frame level, and then copied for
      each partition block. Since the struct members are mostly constant,
      this patch separated the constant and non-constant members, and
      reduced struct copying. This gave 0.5% ~ 1.4% decoder speed gain.
      
      Change-Id: I94043bf5a6995c8042da52e5c661818dfa6f6d4c
      175c313a
  36. 16 Oct, 2013 1 commit
    • Guillaume Martres's avatar
      Get rid of "this_mi", use "mi_8x8[0]" everywhere instead · acf0d56f
      Guillaume Martres authored
      The only case where they were intentionally pointing to different
      structures was in mbgraph, and this didn't have the expected behavior
      because both of these pointers are used interchangeably through the code
      
      Change-Id: I979251782f90885fe962305bcc845bc05907f80c
      acf0d56f