1. 05 Nov, 2013 1 commit
    • Jingning Han's avatar
      Avoid mv cost check for invalid mv values · c2217f22
      Jingning Han authored
      The compound inter prediction could potentially run with initial
      motion vectors of invalid value and check the mv_cost, which triggers
      overheap read. This commit resolves this issue by forcing a motion
      vector value check for compound inter modes of both superblock and
      sub8x8 block sizes.
      
      Change-Id: I4f4fc19ce83c8272782bc382f12c82a3f03212fc
      c2217f22
  2. 30 Oct, 2013 3 commits
  3. 29 Oct, 2013 2 commits
    • Dmitry Kovalev's avatar
      Fixing wrongly initialized tx_type variable. · e6dcf2ae
      Dmitry Kovalev authored
      Wrong value was used in get_tx_type_4x4() function, so making
      initialization before that call.
      
      Change-Id: Ief30bb1e0c03b2f23d993bbf9ae18d7150ba9a83
      e6dcf2ae
    • Dmitry Kovalev's avatar
      Removing is_intra_mode() function. · aa76cd1e
      Dmitry Kovalev authored
      It is enough to check just block type: intra or inter. Intra block implies
      intra prediction mode, and inter block implies inter mode.
      
      Change-Id: I3cf98731a3935f670a3cd8e2b2443483eb944be4
      aa76cd1e
  4. 28 Oct, 2013 2 commits
    • Dmitry Kovalev's avatar
      Cleaning up vp9_regular_quantize_b_4x4. · 8253532c
      Dmitry Kovalev authored
      Passing scan & iscan as parameters, adding useful local variables.
      
      Change-Id: Ia2a87906941db9557350d273669ce5c3cdb7235d
      8253532c
    • James Zern's avatar
      vp9: add TileInfo · 58a0f6db
      James Zern authored
      replaces use of cur_tile_mi_(row|col)_(start|end) by VP9_COMMON, making
      it less stateful and more reusable for parallel tile decoding
      
      Change-Id: I1df09382b4567a0e5f4434825d47c79afe2399be
      58a0f6db
  5. 24 Oct, 2013 1 commit
  6. 23 Oct, 2013 1 commit
    • Jingning Han's avatar
      Use inter mode flag in super_block_yrd · f3b31380
      Jingning Han authored
      Use a flag variable to determine if coded in inter mode, thus avoiding
      multiple inter mode checks in super_block_yrd.
      
      Change-Id: I0ef998b2811c38e185a2e0583f0f636cee45d2cf
      f3b31380
  7. 22 Oct, 2013 3 commits
    • 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
    • Dmitry Kovalev's avatar
      Removing quantize_b_4x4 function pointer. · ec414372
      Dmitry Kovalev authored
      The pointer was asigned only once with vp9_regular_quantize_b_4x4, calling
      this function directly now. Also removing unused declarations:
        prototype_quantize_block
        prototype_quantize_block_pair
        prototype_quantize_mb
        vp9_regular_quantize_b_4x4_pair
        vp9_regular_quantize_b_8x8
      
      Change-Id: I14325bc2f082336820671eafbc06126651b79f73
      ec414372
    • Jingning Han's avatar
      Prevent left_block_mode stepping into left tile · c8079494
      Jingning Han authored
      This commit uses left_available flag to decide if the left mode_info
      struct is available for left_block_mode. As discussed with James
      Zern (jzern@), this prevents the codec from fetching mode_info from
      blocks in the left tile, which although effectively not used might
      present concerns for multi-threaded tile decoding.
      
      This is NOT a bit-stream change.
      
      Change-Id: I1dc8cf1bcbf056688eee27c7bc5706ac4b4e0125
      c8079494
  8. 21 Oct, 2013 3 commits
  9. 19 Oct, 2013 1 commit
    • Dmitry Kovalev's avatar
      Removing NUM_ prefix from constant names. · 6d2a0da7
      Dmitry Kovalev authored
      Renames for consistency with other constants:
        NUM_FRAME_TYPES -> FRAME_TYPES
        NUM_PARTITION_CONTEXTS -> PARTITION_CONTEXTS
      
      Change-Id: I3db30acb2868eb0a424237c831087b2e264ec47f
      6d2a0da7
  10. 18 Oct, 2013 1 commit
    • Jingning Han's avatar
      Make memory alloc in pick_mode_context bsize aware · 72033fcf
      Jingning Han authored
      This commit makes the buffer allocation of zcoeff_blk array in
      pick_mode_context block size aware. It calculates the number of
      4x4 blocks in the partition and assigns the memory space accordingly.
      This process (and the uninitialization) is done once for each encoding
      pass. It allows memory copy of smaller buffer when possible.
      
      For football at 600kbps, the runtimes improve by about 1%:
      speed 1, 45961ms -> 45472ms
      speed 2, 23863ms -> 23598ms
      
      Change-Id: Id2ca24906fa89f46fa5fe742ec4b8efc2a61f877
      72033fcf
  11. 17 Oct, 2013 2 commits
  12. 16 Oct, 2013 3 commits
  13. 15 Oct, 2013 2 commits
    • Alexander Voronov's avatar
      Updated encoder to handle intra-only frames · d6a59fb1
      Alexander Voronov authored
      Updated the encoder to handle frames that are coded
      intra-only. Intra-only frames must be non-showable,
      that is, the "show frame" flag must be set to 0 in
      the frame header.
      
      Tested by forcing the ARF frames to be coded intra-
      only.
      
      Note: The rate control code will need to be modified
      to account for intra-only frames better than they
      are currently handled.
      
      Change-Id: I6a9dd5337deddcecc599d3a44a7431909ed21079
      d6a59fb1
    • Jingning Han's avatar
      Re-design all-zero-coeff block index buffer use · 8e3ce1a9
      Jingning Han authored
      Use the zcoeff_blk buffer of PICK_MODE_CONTEXT to store the indexes
      of all-zero-coeff block of the current best mode. Remove the temporary
      buffer best_zcoeff_blk defined in the rate-distortion optimization
      loop. This improves the speed performance by about 0.5% in all speed
      settings.
      
      Change-Id: Ie3e15988ddfa581eafa2e19a8228d3fe4a46095c
      8e3ce1a9
  14. 14 Oct, 2013 1 commit
    • Jingning Han's avatar
      Move token_cache from cost_coeffs to MACROBLOCK · f60a3910
      Jingning Han authored
      This commit moves token_cache buffer into macroblock struct, instead
      of defining as a local variable in cost_coeffs. This avoids repeatedly
      re-allocating memory space in the rate-distortion optimization loop.
      
      The runtime at speed 0 reduces:
      bus 2000kbps, 161692ms to 159951ms
      football 600kbps, 229505ms to 225821ms
      
      Change-Id: If7da6b0b6d8c5138a16271a33c4548fba33d8840
      f60a3910
  15. 11 Oct, 2013 3 commits
    • Dmitry Kovalev's avatar
      Consistent names for inverse hybrid transforms (1 of 2). · 7ef57391
      Dmitry Kovalev authored
      Renames:
        vp9_short_iht4x4_add     -> vp9_iht4x4_16_add
        vp9_short_iht8x8_add     -> vp9_iht8x8_64_add
        vp9_short_iht16x16_add_c -> vp9_iht16x16_256_add
      
      Change-Id: Ibca7a188fd062b196787ac5efc1ea545e7f166c0
      7ef57391
    • Deb Mukherjee's avatar
      Change in rddiv parameter to make it a power of 2 · d9655e42
      Deb Mukherjee authored
      Converts the constant rddiv parameter to 128 (from 100) and
      implements RDCOST with bit-shift rather than multiplication.
      Other parameters are also adjusted to roughly keep the same
      balance between Rate and Distortion.
      
      There is a slight speed-up of about 0.5-1% (at speed 0) as
      testted on football_cif.
      
      There is a slight change in performance due to small change
      in the parameters.
      derfraw300: +0.033%
      stdhdraw250; +0.102%
      
      Change-Id: I70ac69f58fa71c83108f68fe41796cd19d1fc760
      d9655e42
    • Yaowu Xu's avatar
      Masking intra mode choice adaptively · 8b175679
      Yaowu Xu authored
      The commit changes to mask available intra prediction modes for test
      based on prediction block size.
      
      With this patch, encoding time of CpuUsed 2 reduces from 10% to 20% for
      HD clips with a compression drop of 0.2%
      
      Change-Id: I65f320f1237c0f5ae3a355bf7caf447f55625455
      8b175679
  16. 10 Oct, 2013 3 commits
    • Jingning Han's avatar
      Re-design rate-distortion cost tracking buffers · fc19243c
      Jingning Han authored
      This commit re-designs the per transformed block rate-distortion
      costs tracking buffers. It removes redundant buffer usage, makes
      the needed context memory allocation per VP9_COMP instance and
      reuses the same buffer sets inside the rate-distortion optimization
      search loop, thereby avoiding repeatedly requiring memory space.
      
      It reduces speed 0 runtime:
      
      bus at 2000 kbps from 166763ms to 158967ms,
      football at 600 kbps from 246614ms to 234257ms.
      
      Both about 5% speed-up. Local tests suggest about 2% to 5% speed-up
      for speed 1 and 2 settings. This does not change compression
      performance.
      
      Change-Id: I363514c5276b5cf9a38c7251088ffc6ab7f9a4c3
      fc19243c
    • Yaowu Xu's avatar
      change to avoid out-of-range computation · b47cef05
      Yaowu Xu authored
      Change-Id: Id5e31833a0ef40de9f64c2f5674af7083233bf14
      b47cef05
    • Deb Mukherjee's avatar
      Adjustment to mv cost parameters · e4b0fce4
      Deb Mukherjee authored
      Increases these parameters.
      There is a small efficiency gain.
      
      Change-Id: Ie5f0ddb39c907d335e0dafa5eb112365a81f4542
      derfraw300: +0.091%
      stdhdraw250: +0.238%
      e4b0fce4
  17. 09 Oct, 2013 3 commits
    • Jingning Han's avatar
      Fix intra dist model of skip_encode feature · 013db649
      Jingning Han authored
      The intra mode distortion adjustment for skip_encode feature was
      broken in the refactoring cc91851. This commit fixes it and tunes
      the distortion models used therein.
      
      Change-Id: I0d676e82f8e855536a90cf9b3e3fdefafcd886c6
      013db649
    • Deb Mukherjee's avatar
      Clean-ups in rdopt.c · eb8b1cd7
      Deb Mukherjee authored
      Some minor cleanups in preparation for experimentation with
      some encode parameters and thresholds
      
      Change-Id: I449d66da97eae0a7acdf4aae374e2f9111342056
      eb8b1cd7
    • Jingning Han's avatar
      Deprecate the use of PARTITION_INFO from encoder · 03fe08ca
      Jingning Han authored
      Use b_mode_info to store the inter prediction mode of sub8x8 block,
      in replacement of the use of partition_info. Remove redundant buffer
      update for partition_info. For bus_cif at 2000 kbps, this seem to make
      speed 0 about 1% faster.
      
      Change-Id: Id1b3be45e75a24fb4b42335ac480c23e440978f6
      03fe08ca
  18. 08 Oct, 2013 2 commits
  19. 07 Oct, 2013 3 commits