1. 30 Aug, 2013 1 commit
  2. 29 Aug, 2013 6 commits
    • Paul Wilkins's avatar
      Added per pixel inter rd hit count stats · 1f4bf79d
      Paul Wilkins authored
      Added some code to output normalized rd hit count stats.
      In effect this approximates to the average number of rd
      operations/tests per pixel for the sequence.
      
      The results are not quite accurate and I have not bothered
      to account for partial SB64s at frame edges and for key frames
      However they do give some idea of the number of modes /
      prediction methods being tested for each pixel across the
      different partition sizes. This indicates how much scope their
      is for further gains either by reducing the number of partitions
      examined or the modes per partition through heuristics.
      
      Patch 3 moved place where count incremented so partial rd
      tests that are aborted with INT_MAX return are also counted.
      
      Example numbers for first 50 frames of Akiyo.
      Speed 0 ~84.4 rd operations / pixel
      Speed 1 ~28.8
      Speed 2 ~11.9
      
      Change-Id: Ib956e787e12f7fa8b12d3a1a2f6cda19a65a6cb8
      1f4bf79d
    • James Zern's avatar
      consistently name VP9_COMMON variables #3 · d765df27
      James Zern authored
      stragglers
      
      Change-Id: Ib1e853f9a331b7b66639dc34d79568d84d1930f1
      d765df27
    • James Zern's avatar
      consistently name VP9_COMMON variables #2 · aa053212
      James Zern authored
      oci -> cm
      
      Change-Id: Ifd75c809d9cc99034d3c2fccc4653a78b3aec21f
      aa053212
    • James Zern's avatar
      consistently name VP9_COMMON variables #1 · 924d7451
      James Zern authored
      pc -> cm
      
      Change-Id: If3e83404f574316fdd3b9aace2487b64efdb66f3
      924d7451
    • Jingning Han's avatar
      Fix overflow issue in SSSE3 32x32 quantization · abff6788
      Jingning Han authored
      The 32x32 quantization process can potentially have the intermediate
      stacks over 16-bit range, thereby causing enc/dec mismatch. This commit
      fixes this overflow issue in the SSSE3 implementation, as well as the
      prototype, of 32x32 quantization.
      
      This fixes issue 607 from webm@googlecode.
      
      Change-Id: I85635e6ca236b90c3dcfc40d449215c7b9caa806
      abff6788
    • Yaowu Xu's avatar
      Fixed potential overflows · aaa7b444
      Yaowu Xu authored
      The two arrays are typically initialized to INT64_MAX, if they are not
      filled with valid values before the addition, the values can overflow
      and lead to wrong results.
      
      Change-Id: I515de22cf3e8f55af4b74bdb2c8eb821a02d3059
      aaa7b444
  3. 28 Aug, 2013 3 commits
    • Dmitry Kovalev's avatar
      General code cleanup. · b62ddd5f
      Dmitry Kovalev authored
      Switching from mi_{width, height}_log2 and b_{width, height}_log2 to
      num_8x8_blocks_{wide, high} and num_4x4_blocks_{wide, high}. Removing
      redundant code, adding const.
      
      Change-Id: Iaab2207590fd24d0b76999071778d1395dc5cd5d
      b62ddd5f
    • Deb Mukherjee's avatar
      Adds a speed feature for fast 1-loop forw updates · e02dc84c
      Deb Mukherjee authored
      Incorporates a speed feature for fast forward updates of
      coefficients. This feature takes 3 values:
      0 - use standard 2-loop version
      1 - use a 1-loop version
      2 - use a 1-loop version with reduced updates
      
      Results: derfraw300 +0.007% (on speed 0) at feature value = 1
                          -0.160% (on speed 0) at feature value = 2
      
      There is substantial speed up at speeds 2 and above for low
      resolution sequences where the entropy updates are a big part
      of the overall computations.
      
      Change-Id: Ie96fc50777088a5bd441288bca6111e43d03bcae
      e02dc84c
    • Dmitry Kovalev's avatar
      Renaming txfm_size to tx_size. · 851a2fd7
      Dmitry Kovalev authored
      Change-Id: I752e374867d459960995b24d197301d65ad535e3
      851a2fd7
  4. 27 Aug, 2013 7 commits
  5. 26 Aug, 2013 8 commits
  6. 24 Aug, 2013 3 commits
  7. 23 Aug, 2013 9 commits
    • Yaowu Xu's avatar
      Limit mv range to be based on partition size · 13930cf5
      Yaowu Xu authored
      Previous change c4048dbd limits the mv search range assuming max block
      size of 64x64, this commit change the search range using actual block
      size instead.
      
      Change-Id: Ibe07ab02b62bf64bd9f8675d2b997af20a2c7e11
      13930cf5
    • Dmitry Kovalev's avatar
      Removing redundant calls to clamp_mv2. · cd2cc27a
      Dmitry Kovalev authored
      We could avoid calling clamp_mv2 because it has been already called
      inside vp9_find_best_ref_mvs function.
      
      Change-Id: I08edeaf3e11e98c19e67b9711b2523ca5fb1416e
      cd2cc27a
    • Dmitry Kovalev's avatar
      Fixing display size setting problem. · 11e3ac62
      Dmitry Kovalev authored
      Fix of https://code.google.com/p/webm/issues/detail?id=608. We could have
      used invalid display size equal to the previous frame size (not to the
      current frame size).
      
      Change-Id: I91b576be5032e47084214052a1990dc51213e2f0
      11e3ac62
    • Dmitry Kovalev's avatar
      Cleanup in mvref_common.{h, c}. · 21d8e859
      Dmitry Kovalev authored
      Making code more compact, adding consts, removing redundant arguments,
      adding do/while(0) for macros.
      
      Change-Id: Ic9ec0bc58cee0910a5450b7fb8cfbf35fa9d0d16
      21d8e859
    • Yaowu Xu's avatar
      Added border extension · 656632b7
      Yaowu Xu authored
      To the source buffer to be encoded as an alt ref frame. This is to fix
      the problem of using uninitialized memory in encoder.
      
      See https://code.google.com/p/webm/issues/detail?id=605
      
      Change-Id: I97618a2fc207e08abcf5301b734aa9e3ad695e2c
      656632b7
    • Adrian Grange's avatar
      Fix bug in convolution functions (filter selection) · 3f108313
      Adrian Grange authored
      (In response to Issue 604:
       https://code.google.com/p/webm/issues/detail?id=604)
      
      There were bugs in the convolution code for two cases:
      
      1. Where the filter table was assumed to be aligned to a
         256 byte boundary. The offset of the pixel in the
         source buffer was computed incorrectly.
      
      2. Where no such alignment assumption was made. An
         incorrect address for the filter table base was used.
      
      To fix both problems, I now assume that the filter table is
      256-byte aligned and modify the pixel offset calculation to
      match.
      
      A later patch should remove the restriction that the filter
      table is aligned to a 256-byte boundary.
      
      There was also a bug in the ConvolveTest unit test
      (convolve_test.cc).
      
      (Bug & initial fix suggestion submitted by Tero Rintaluoma
      and Sami Pietilä).
      
      Change-Id: I71985551e62846e55e40de9e7e3959d4805baa82
      3f108313
    • Paul Wilkins's avatar
      Changes to adaptive inter rd thresholds. · aa5b67ad
      Paul Wilkins authored
      Values now carried over frame to frame.
      Change to algorithm for decreasing threshold after
      a hit and to max threshold (now based on speed)
      
      Removed some old commented out code relating to
      VP8 adaptive thresholds.
      
      The impact of these changes tested on Akiyo (50 frames)
      and measured in terms of unit rd hits is as follows:
      
      Speed 0 84.36 -> 84.67
      Speed 1 29.48 -> 22.22
      Speed 2 11.76 -> 8.21
      Speed 3 12.32 -> 7.21
      
      Encode speed impact is broadly in line with these.
      
      Change-Id: I5b886efee3077a11553fa950d796fd6d00c8cb19
      aa5b67ad
    • Paul Wilkins's avatar
      Limit Key frame Intra modes checks. · f76f52df
      Paul Wilkins authored
      Most of the focus so far has been on inter frames.
      
      At high speed settings the key frame is now taking a high %
      of the cycles.
      
      This patch puts in some masking to reduce the number
      of INTRA modes searched during key frame coding (as already
      happens for inter frames) at higher speed settings
      
      TODO: Develop this further with either adaptive rd thresholds
      when choosing which intra modes to consider or some other
      heuristic.
      
      Impact.
      At high speed settings on some clips the key frame was starting
      to dominate. In a coding of the first 50 frames of AKIYO at speed
      2 limiting the key frame intra modes to DC or TM_PRED resulted in
      ~30% overall speedup. For Bus the number was lower at ~4-5%.
      
      Change-Id: I7bde68aee04995f9d9beb13a1902143112e341e2
      f76f52df
    • Jingning Han's avatar
      Fix rectangular partition check flag · 84f3b76e
      Jingning Han authored
      Put rectangular partition check flag change according to the rd
      costs of NONE and SPLIT partition types under the speed feature.
      
      Change-Id: If681e1e078a8d43d86961ea4b748da5cd1b6c331
      84f3b76e
  8. 22 Aug, 2013 3 commits
    • hkuang's avatar
      Add neon optimize vp9_short_idct10_16x16_add. · 4082bf9d
      hkuang authored
      vp9_short_idct10_16x16_add is used to handle the block that only have valid data
      at top left 4x4 block. All the other datas are 0. So we could cut many
      unnecessary calculations in order to save instructions.
      
      Change-Id: I6e30a3fee1ece5af7f258532416d0bfddd1143f0
      4082bf9d
    • Dmitry Kovalev's avatar
      vp9_encodeframe.c cleanup. · 604022d4
      Dmitry Kovalev authored
      Removing unused get_sbuv_perpixel_variance function, using has_second_ref/
      is_inter_block functions, organizing includes.
      
      Change-Id: I016de4af12fbbb8b4ece26a70759b2392651b095
      604022d4
    • Dmitry Kovalev's avatar
      check_bsize_coverage cleanup. · 335b1d36
      Dmitry Kovalev authored
      Change-Id: Ib7803857b35c00e317c9deb8630e777e25eb278f
      335b1d36