1. 07 Feb, 2012 1 commit
    • John Koleszar's avatar
      Align internal mfqe framebuffer dimensions · 417b8529
      John Koleszar authored
      MFQE postproc crashed with stream dimensions not a multiple of 16.
      The buffer was memset unconditionally, so if the buffer allocation
      fails we end up trying to write to NULL.
      
      This patch traps an allocation failure with vpx_internal_error(),
      and aligns the buffer dimensions to what vp8_yv12_alloc_frame_buffer()
      expects.
      
      Change-Id: I3915d597cd66886a24f4ef39752751ebe6425066
      417b8529
  2. 06 Feb, 2012 3 commits
  3. 03 Feb, 2012 1 commit
    • Yunqing Wang's avatar
      Allow to skip highest-resolution encoding in multi-resolution encoder · fa1a9290
      Yunqing Wang authored
      Sometimes, a user doesn't have enough bandwidth to send high-resolution
      (i.e. HD) video even though the camera catches HD video. This change
      allowed users to skip highest-resolution encoding by setting that level's
      target bit rate to 0.
      
      To test it, modify the following line in vp8_multi_resolution_encoder.c.
          unsigned int  target_bitrate[NUM_ENCODERS]={1400, 500, 100};
      To skip the highest-resolution level, change it to
          unsigned int  target_bitrate[NUM_ENCODERS]={0, 500, 100};
      To skip the first and second highest resolution levels, change it to
          unsigned int  target_bitrate[NUM_ENCODERS]={0, 0, 100};
      
      This change also fixed a small problem in mapping, which slightly helped
      quality and performance.
      
      Change-Id: I977bae9a9fbfba85c8be4bd5af01539f2b84bc81
      fa1a9290
  4. 02 Feb, 2012 3 commits
  5. 31 Jan, 2012 2 commits
  6. 30 Jan, 2012 14 commits
    • John Koleszar's avatar
      RTCD: remove unimplemented vp8_short_walsh4x4_mmx · 57d459ba
      John Koleszar authored
      This function does not exist.
      
      Change-Id: I84b72fb17d572d5cccee92220467b84c15842d4d
      57d459ba
    • John Koleszar's avatar
      RTCD: finalize removal of old RTCD system · 8aae2460
      John Koleszar authored
      This is the final commit in the series converting to the new RTCD
      system. It removes the encoder csystemdependent files and the remaining
      global function pointers that didn't conform to the old RTCD system.
      
      Change-Id: I9649706f1bb89f0cbf431ab0e3e7552d37be4d8e
      8aae2460
    • John Koleszar's avatar
      RTCD: add arnr functions · 109b69a7
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system. It removes the last of the VP8_ENCODER_RTCD struct references.
      
      Change-Id: I2a44f52d7cccf5177e1ca98a028ead570d045395
      109b69a7
    • John Koleszar's avatar
      RTCD: add motion search functions · 0b0bc8d0
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: Ia5828b7ecc80db55b21916704aa3d54cbb98f625
      0b0bc8d0
    • John Koleszar's avatar
      RTCD: add block subtraction functions · be8af188
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: Id8a287fdd4bd050ea4452e1582ad85520f3081be
      be8af188
    • John Koleszar's avatar
      RTCD: add quantizer functions · 61311e61
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: Iba9df4c03a508e51c37201c621be43523fae87d9
      61311e61
    • John Koleszar's avatar
      RTCD: add FDCT functions · 510e0ab4
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: I3f9c07db65eb206f6363d21bdb80e871570da767
      510e0ab4
    • John Koleszar's avatar
      RTCD: add variance functions · 83a91e78
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: Ie5c1aa480637e98dc3918fb562ff45c37a66c538
      83a91e78
    • John Koleszar's avatar
      RTCD: add subpixel functions · f103dcef
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: I6c519ab61e4f4e0ebcc796f2df061f945c48cefe
      f103dcef
    • John Koleszar's avatar
      RTCD: add postproc functions · 2a8f57f5
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: If54eb5cb5d1b0cac6c4c0633a9e99c93ca860ba2
      2a8f57f5
    • John Koleszar's avatar
      RTCD: add recon functions · fdb61a45
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: I9bfcf9bef65c3d4ba0fb9a3e1532bad1463a10d6
      fdb61a45
    • John Koleszar's avatar
      RTCD: add remaining IDCT functions · ab77b4e8
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: I03c4dbf30dfd3558b0e256ff9d3ff4c012aadc80
      ab77b4e8
    • John Koleszar's avatar
      RTCD: add loopfilter functions · 55f74c59
      John Koleszar authored
      This commit continues the process of converting to the new RTCD
      system.
      
      Change-Id: Ic8a4047d72ff3a54ec98977dd90e70c13213db71
      55f74c59
    • John Koleszar's avatar
      New RTCD implementation · a910049a
      John Koleszar authored
      This is a proof of concept RTCD implementation to replace the current
      system of nested includes, prototypes, INVOKE macros, etc. Currently
      only the decoder specific functions are implemented in the new system.
      Additional functions will be added in subsequent commits.
      
      Overview:
        RTCD "functions" are implemented as either a global function pointer
        or a macro (when only one eligible specialization available).
        Functions which have RTCD specializations are listed using a simple
        DSL identifying the function's base name, its prototype, and the
        architecture extensions that specializations are available for.
      
      Advantages over the old system:
        - No INVOKE macros. A call to an RTCD function looks like an ordinary
          function call.
        - No need to pass vtables around.
        - If there is only one eligible function to call, the function is
          called directly, rather than indirecting through a function pointer.
        - Supports the notion of "required" extensions, so in combination with
          the above, on x86_64 if the best function available is sse2 or lower
          it will be called directly, since all x86_64 platforms implement
          sse2.
        - Elides all references to functions which will never be called, which
          could reduce binary size. For example if sse2 is required and there
          are both mmx and sse2 implementations of a certain function, the
          code will have no link time references to the mmx code.
        - Significantly easier to add a new function, just one file to edit.
      
      Disadvantages:
        - Requires global writable data (though this is not a new requirement)
        - 1 new generated source file.
      
      Change-Id: Iae6edab65315f79c168485c96872641c5aa09d55
      a910049a
  7. 27 Jan, 2012 7 commits
  8. 26 Jan, 2012 3 commits
    • John Koleszar's avatar
      Merge changes I17e1a348,Iad710941 · 319f7c4d
      John Koleszar authored
      * changes:
        Correct clamping in use of vp8_find_near_mvs()
        Revert "Multithreaded encoder, late sync loopfilter"
      319f7c4d
    • John Koleszar's avatar
      Correct clamping in use of vp8_find_near_mvs() · 83cef816
      John Koleszar authored
      Commit e06c242b introduced a change to call vp8_find_near_mvs() only
      once instead of once per reference frame by observing that the only
      effect that the frame had was on the bias applied to the motion
      vector. By keeping track of the sign_bias value, the mv to use could
      be flip-flopped by multiplying its components by -1.
      
      This behavior was subtley wrong in the case when clamping was applied
      to the motion vectors found by vp8_find_near_mvs(). A motion vector
      could be in-bounds with one sign bias, but out of bounds after
      inverting the sign, or vice versa. The clamping must match that done
      by the decoder.
      
      This change modifies vp8_find_near_mvs() to remove the clamping from
      that function. The vp8_pick_inter_mode() and vp8_rd_pick_inter_mode()
      functions instead track the correctly clamped values for both bias
      values, switching between them by simple assignment. The common
      clamping and inversion code is in vp8_find_near_mvs_bias()
      
      Change-Id: I17e1a348d1643497eca0be232e2fbe2acf8478e1
      83cef816
    • Attila Nagy's avatar
      Rename save_neon_reg.asm as save_reg_neon.asm · 294aa377
      Attila Nagy authored
      Easier to filter out all NEON asm.
      
      Change-Id: I0022dae8321a9608e864b09d4181414c5fff4610
      294aa377
  9. 24 Jan, 2012 1 commit
    • John Koleszar's avatar
      Revert "Multithreaded encoder, late sync loopfilter" · 630d3b95
      John Koleszar authored
      This commit is incomplete, as it does not synchronize the loop filter
      before returning a handle to the reconstructed frame in
      vpx_codec_get_preview_frame(), which can cause (false?) failures
      when running the test_reconstruct_buffer test.
      
      This may be related to a bug that does cause visible artifacts, which
      is also under investigation.
      
      This reverts commit 380d64ec.
      
      Change-Id: Iad710941e7731d44fc2bde63bc63d6763cc4629e
      630d3b95
  10. 23 Jan, 2012 2 commits
  11. 20 Jan, 2012 3 commits