1. 27 Oct, 2010 1 commit
    • John Koleszar's avatar
      Add half-pixel variance RTCD functions · 209d82ad
      John Koleszar authored
      NEON has optimized 16x16 half-pixel variance functions, but they
      were not part of the RTCD framework. Add these functions to RTCD,
      so that other platforms can make use of this optimization in the
      future and special-case ARM code can be removed.
      
      A number of functions were taking two variance functions as
      parameters. These functions were changed to take a single
      parameter, a pointer to a struct containing all the variance
      functions for that block size. This provides additional flexibility
      for calling additional variance functions (the half-pixel special
      case, for example) and by initializing the table for all block sizes,
      we don't have to construct this function pointer table for each
      macroblock.
      
      Change-Id: I78289ff36b2715f9a7aa04d5f6fbe3d23acdc29c
      209d82ad
  2. 22 Oct, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Convert [4][4] matrices to [16] arrays. · 8f75ea6b
      Timothy B. Terriberry authored
      Most of the code that actually uses these matrices indexes them as
       if they were a single contiguous array, and coverity produces
       reports about the resulting accesses that overflow the static
       bounds of the first row.
      This is perfectly legal in C, but converting them to actual [16]
       arrays should eliminate the report, and removes a good deal of
       extraneous indexing and address operators from the code.
      
      Change-Id: Ibda479e2232b3e51f9edf3b355b8640520fdbf23
      8f75ea6b
  3. 21 Oct, 2010 1 commit
    • John Koleszar's avatar
      Move firstpass motion map to stats packet · bb7dd5b1
      John Koleszar authored
      The first implementation of the firstpass motion map for motion
      compensated temporal filtering created a file, fpmotionmap.stt,
      in the current working directory. This was not safe for multiple
      encoder instances. This patch merges this data into the first pass
      stats packet interface, so that it is handled like the other
      (numerical) firstpass stats.
      
      The new stats packet is defined as follows:
          Numerical Stats (16 doubles) -- 128 bytes
          Motion Map                   -- 1 byte / Macroblock
          Padding                      -- to align packet to 8 bytes
      
      The fpmotionmap.stt file can still be generated for debugging
      purposes in the same way that the textual version of the stats
      are available (defining OUTPUT_FPF in firstpass.c)
      
      Change-Id: I083ffbfd95e7d6a42bb4039ba0e81f678c8183ca
      bb7dd5b1
  4. 15 Oct, 2010 1 commit
    • Yaowu Xu's avatar
      change to make use of more trellis quantization · 2e53e9e5
      Yaowu Xu authored
      when a subsequent frame is encoded as an alt reference frame, it is
      unlikely that any mb in current frame will be used as reference for
      future frames, so we can enable quantization optimization even when
      the RD constant is slightly rate-biased. The change has an overall
      benefit between 0.1% to 0.2% bit savings on the test sets based on
      vpxssim scores.
      
      Change-Id: I9aa7bc5cd573ea84e3ee655d2834c18c4460ceea
      2e53e9e5
  5. 11 Oct, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Remove INTRARDOPT #define and intra_rd_opt option. · dd08db93
      Timothy B. Terriberry authored
      This is just eliminating some cruft.
      Although a number of variables are declared only when INTRARDOPT
       is defined, they are used elsewhere without that protection, and
       no longer just for intra RDO.
      The intra_rd_opt flag was hard-coded to 1 and never checked.
      
      Change-Id: I83a81554ecee8053e7b4ccd8aa04e18fa60f8e4f
      dd08db93
  6. 28 Sep, 2010 1 commit
  7. 09 Sep, 2010 1 commit
  8. 11 Aug, 2010 1 commit
  9. 23 Jul, 2010 2 commits
    • Paul Wilkins's avatar
      Rate control bug with long key frame interval. · 9404c7db
      Paul Wilkins authored
      In two pass encodes, the calculation of the number of bits
      allocated to a KF group had the potential to overflow for high data
      rates if the interval is very long.
      
      We observed the problem in one test clip where there was one
      section where there was an 8000 frame gap between key frames.
      
      Change-Id: Ic48eb86271775d7573b4afd166b567b64f25b787
      9404c7db
    • Timothy B. Terriberry's avatar
      Make the quantizer exact. · e04e2935
      Timothy B. Terriberry authored
      This replaces the approximate division-by-multiplication in the
       quantizer with an exact one that costs just one add and one
       shift extra.
      The asm versions have not been updated in this patch, and thus
       have been disabled, since the new method requires different
       multipliers which are not compatible with the old method.
      
      Change-Id: I53ac887af0f969d906e464c88b1f4be69c6b1206
      e04e2935
  10. 18 Jun, 2010 1 commit
    • John Koleszar's avatar
      cosmetics: trim trailing whitespace · 94c52e4d
      John Koleszar authored
      When the license headers were updated, they accidentally contained
      trailing whitespace, so unfortunately we have to touch all the files
      again.
      
      Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
      94c52e4d
  11. 12 Jun, 2010 1 commit
    • John Koleszar's avatar
      Make this/next iiratio unsigned. · cd475da8
      John Koleszar authored
      This patch addresses issue #79, which is a regression since commit
      28de670c "Fix RD bug." If the coded error value is zero, the iiratio
      calculation effectively multiplies by 1000000 by the
      DOUBLE_DIVIDE_CHECK macro. This can result in a value larger than
      INT_MAX, giving a negative ratio. Since the error values are
      conceptually unsigned (though they're stored in a double) this patch
      makes the iiratio values unsigned, which allows the clamping to work
      as expected.
      cd475da8
  12. 04 Jun, 2010 1 commit
  13. 25 May, 2010 1 commit
    • John Koleszar's avatar
      install includes in DIST_DIR/include/vpx, move vpx_codec/ to vpx/ · b7492341
      John Koleszar authored
      This renames the vpx_codec/ directory to vpx/, to allow applications
      to more consistently reference these includes with the vpx/ prefix.
      This allows the includes to be installed in /usr/local/include/vpx
      rather than polluting the system includes directory with an
      excessive number of includes.
      
      Change-Id: I7b0652a20543d93f38f421c60b0bbccde4d61b4f
      b7492341
  14. 18 May, 2010 1 commit