1. 05 Aug, 2013 1 commit
    • James Zern's avatar
      vp9/decoder: add thread worker · 183b77d5
      James Zern authored
      vp9/decoder/vp9_thread.[hc]
      Original source:
       http://git.chromium.org/webm/libwebp.git
       100644 blob b1615d0fb8d311666b2fa4561076c62d72c2e3ff  src/utils/thread.c
       100644 blob 13a61a4c84194c3374080cbf03d881d3cd6af40d  src/utils/thread.h
      
      Local modifications:
       - s/WebP/VP9/g
       - camelcase functions -> lower with _'s
      
      Change-Id: Ib6932640ee34f8b4782c6fbd15864a59d5d4c5fe
      183b77d5
  2. 30 Jul, 2013 7 commits
  3. 29 Jul, 2013 10 commits
  4. 27 Jul, 2013 7 commits
  5. 26 Jul, 2013 11 commits
    • Dmitry Kovalev's avatar
      vp9_decodemv.c cleanup. · d42e60d2
      Dmitry Kovalev authored
      Renaming:
        read_intra_mode_info  -> read_intra_frame_mode_info
        read_inter_mode_info  -> read_inter_frame_mode_info
        read_intra_block_part -> read_intra_block_mode_info
        read_inter_block_part -> read_inter_block_mode_info
        read_ref_frame        -> read_ref_frames
        read_reference_frame  -> read_is_inter_block
      
      Using num_4x4_blocks_{wide, high}_lookup instead of bit shifts.
      
      Change-Id: I83c81573b4ef6f53f2f8d24683895014bebfba61
      d42e60d2
    • Jingning Han's avatar
      b9c3dd48
    • Dmitry Kovalev's avatar
    • hkuang's avatar
      aaa97557
    • Jingning Han's avatar
      Special handle on DC only inverse 8x8 2D-DCT · 325e0aa6
      Jingning Han authored
      This commit enables a special handle for the 8x8 inverse 2D-DCT,
      where only DC coefficient is quantized to be non-zero. For bus_cif
      at 2000 kbps, it provides about 1% speed-up at speed 0.
      
      Change-Id: I2523222359eec26b144cf8fd4c63a4ad63b1b011
      325e0aa6
    • hkuang's avatar
      Fix some format error and code error in neon code. · 588b4daf
      hkuang authored
      Change-Id: I748dee8938dfb19f417f24eed005f3d216f83a82
      588b4daf
    • Dmitry Kovalev's avatar
      Merge "General cleanups." · c09b8171
      Dmitry Kovalev authored
      c09b8171
    • Ronald S. Bultje's avatar
      d45 intra prediction SSSE3 optimizations. · 94b0c679
      Ronald S. Bultje authored
      Change-Id: Ie48035ff4f93c41f8a9b3023e6444fd10432d8fb
      94b0c679
    • Yaowu Xu's avatar
      4f75a1f4
    • Paul Wilkins's avatar
      Auto min and max partition size experiment. · fe5e2a91
      Paul Wilkins authored
      Speed feature experiment to set an upper and lower
      partition size limit based on what has been seen
      in spatial neighbors.
      
      This seems to gives quite reasonable speed gains in local
      (10-15%) and when used with speed 0 the losses are small
      (0.25% derf, 0.35% stdhd). However, for now I am only
      enabling it on speed 1 as there may be clashes with the existing
      temporal partition selection in speed 2.
      
      Using a tighter min / max around the range derived from the
      neighbors increases speed further but at the cost of a
      bigger quality loss. However,  I think this spatial method could
      be combined with data from either the last frame or a variance
      method (or both) to refine the range of minimum and maximum
      partition size. I.e. consider the min and max from spatial and
      temporal neighbors and the variance recommendation.
      
      Change-Id: I1b96bf8b84368d6aad0c7aa600fe141b4f07435f
      fe5e2a91
    • Yunqing Wang's avatar
      Modify static threshold calculation · 52256cdb
      Yunqing Wang authored
      Used 3 * standard_deviation in internal threshold calculation
      instead of fit curve. This actually approached the algorithm
      better.
      For comparison, similar tests were done:
      The overall psnr loss is less than before.
      1. derf set:
      when static-thresh = 1, psnr loss is 0.329%;
      when static-thresh = 500, psnr loss is 0.970%;
      2. stdhd set:
      when static-thresh = 1, psnr loss is 0.922%;
      when static-thresh = 500, psnr loss is 1.307%;
      
      Similar speedup is achieved. For example,
      clip            bitrate  static-thresh psnr    time
      akiyo(cif)       500        0          48.952  5.077s(50f)
      akiyo            500        500        48.866  4.169s(50f)
      
      parkjoy(1080p)   4000       0          30.388  78.20s(30f)
      parkjoy          4000       500        30.367  70.85s(30f)
      
      sunflower(1080p) 4000       0          44.402  74.55s(30f)
      sunflower        4000       500        44.414  68.69s(30f)
      
      Change-Id: Ic78833642ce1911dbbd1cb6c899a2d7e2dfcc1f3
      52256cdb
  6. 25 Jul, 2013 4 commits
    • Dmitry Kovalev's avatar
      Making read_inter_mode_info function more clear. · 048e9c09
      Dmitry Kovalev authored
      Now read_inter_mode_info calls read_intra_block_part (renamed from
      read_intra_block_modes) or read_inter_block_part (just added).
      
      Change-Id: I541badea6b663e0ae692ec158665efb90ed20c03
      048e9c09
    • Johann's avatar
      Merge "Add const to vp9_accum_mv_refs parameter" · 67b07c52
      Johann authored
      67b07c52
    • Yunqing Wang's avatar
      Merge "Add encoding option --static-thresh" · 845fd501
      Yunqing Wang authored
      845fd501
    • Yunqing Wang's avatar
      Add encoding option --static-thresh · d36852b7
      Yunqing Wang authored
      This option exists in VP8, and it was rewritten in VP9 to support
      skipping on different partition levels. After prediction is done,
      we can check if the residuals in the partition block will be all
      quantized to 0. If this is true, the skip flag is set, and only
      prediction data are needed in reconstruction. Based on DCT's energy
      conservation property, the skipping check can be estimated in
      spatial domain.
      
      The prediction error is calculated and compared to a threshold.
      The threshold is determined by the dequant values, and also
      adjusted by partition sizes. To be precise, the DC and AC parts
      for Y, U, and V planes are checked to decide skipping or not.
      
      Test showed that
      1. derf set:
      when static-thresh = 1, psnr loss is 0.666%;
      when static-thresh = 500, psnr loss is 1.162%;
      2. stdhd set:
      when static-thresh = 1, psnr loss is 1.249%;
      when static-thresh = 500, psnr loss is 1.668%;
      
      For different clips, encoding speedup range is between several
      percentage and 20+% when static-thresh <= 500. For example,
      clip            bitrate  static-thresh psnr    time
      akiyo(cif)       500        0          48.923  5.635s(50f)
      akiyo            500        500        48.863  4.402s(50f)
      
      parkjoy(1080p)   4000       0          30.380  77.54s(30f)
      parkjoy          4000       500        30.384  69.59s(30f)
      
      sunflower(1080p) 4000       0          44.461  85.2s(30f)
      sunflower        4000       500        44.418  78.1s(30f)
      
      Higher static-thresh values give larger speedup with larger
      quality loss.
      
      Change-Id: I857031ceb466ff314ab580ac5ec5d18542203c53
      d36852b7