1. 02 Jun, 2011 1 commit
    • Scott LaVarnway's avatar
      Removed B_MODE_INFO · 773768ae
      Scott LaVarnway authored
      Declared the bmi in BLOCKD as a union instead of B_MODE_INFO.
      Then removed B_MODE_INFO completely.
      
      Change-Id: Ieb7469899e265892c66f7aeac87b7f2bf38e7a67
      773768ae
  2. 26 May, 2011 1 commit
  3. 24 May, 2011 4 commits
    • Scott LaVarnway's avatar
      Use int_mv instead of MV in vp8_mv_cont · a39321f3
      Scott LaVarnway authored
      Less operations.
      
      Change-Id: Ibb9cd5ae66b8c7c681c9a654d551c8729c31c3ae
      a39321f3
    • Scott LaVarnway's avatar
      Removed unused variable warnings · cfab2cae
      Scott LaVarnway authored
      Change-Id: I6e5e921f03dc15a72da89a457848d519647677a3
      cfab2cae
    • Scott LaVarnway's avatar
      MODE_INFO size reduction · e11f21af
      Scott LaVarnway authored
      Declared the bmi in MODE_INFO as a union instead of B_MODE_INFO.
      This reduced the memory footprint by 518,400 bytes for 1080
      resolutions.  The decoder performance improved by ~4% for the
      clip used and the encoder showed very small improvements. (0.5%)
      This reduction was first mentioned to me by John K. and in a
      later discussion by Yaowu.
      This is WIP.
      
      Change-Id: I8e175fdbc46d28c35277302a04bee4540efc8d29
      e11f21af
    • Henrik Lundin's avatar
      Fixing bug in VP8_SET_REFERENCE decoder control command · a126cd17
      Henrik Lundin authored
      In vp8dx_set_reference, the new reference image is written to an
      unused reference frame buffer.
      
      Change-Id: I9e4f2cef5a011094bb7ce7b2719cbfe096a773e8
      a126cd17
  4. 19 May, 2011 1 commit
    • Stefan Holmer's avatar
      Adding error-concealment to the decoder. · d04f8523
      Stefan Holmer authored
      The error-concealer is plugged in after any motion vectors have been
      decoded. It tries to estimate any missing motion vectors from the
      motion vectors of the previous frame. Intra blocks with missing
      residual are replaced with inter blocks with estimated motion vectors.
      
      This feature was developed in a separate sandbox
      (sandbox/holmer/error-concealment).
      
      Change-Id: I5c8917b031078d79dbafd90f6006680e84a23412
      d04f8523
  5. 12 May, 2011 1 commit
    • Scott LaVarnway's avatar
      Using int_mv instead of MV · 6b25501b
      Scott LaVarnway authored
      The compiler produces better assembly when using int_mv
      for assignments.  The compiler shifts and ors the two 16bit
      values when assigning MV.
      
      Change-Id: I52ce4bc2bfbfaf3f1151204b2f21e1e0654f960f
      6b25501b
  6. 09 May, 2011 1 commit
  7. 28 Apr, 2011 1 commit
  8. 27 Apr, 2011 3 commits
    • Ronald S. Bultje's avatar
      SSE2/SSSE3 optimizations for build_predictors_mbuv{,_s}(). · 1083fe49
      Ronald S. Bultje authored
      decoding
      
      before
      10.425
      10.432
      10.423
      =10.426
      
      after:
      10.405
      10.416
      10.398
      =10.406, 0.2% faster
      
      encoding
      
      before
      14.252
      14.331
      14.250
      14.223
      14.241
      14.220
      14.221
      =14.248
      
      after
      14.095
      14.090
      14.085
      14.095
      14.064
      14.081
      14.089
      =14.086, 1.1% faster
      
      Change-Id: I483d3d8f0deda8ad434cea76e16028380722aee2
      1083fe49
    • John Koleszar's avatar
      Speed up VP8DX_BOOL_DECODER_FILL · 5e1fd413
      John Koleszar authored
      The end-of-buffer check is hoisted out of the inner loop. Gives
      about 0.5% improvement on x86_64.
      
      Change-Id: I8e3ed08af7d33468c5c749af36c2dfa19677f971
      5e1fd413
    • John Koleszar's avatar
      Update VP8DX_BOOL_DECODER_FILL to better detect EOS · 9594370e
      John Koleszar authored
      Allow more reliable detection of truncated bitstreams by being more
      precise with the count of "virtual" bits in the value buffer.
      Specifically, the VP8_LOTS_OF_BITS value is accumulated into count,
      rather than being assigned, which was losing the prior value,
      increasing the required tolerance when testing for the error condition.
      
      Change-Id: Ib5172eaa57323b939c439fff8a8ab5fa38da9b69
      9594370e
  9. 26 Apr, 2011 1 commit
    • Scott LaVarnway's avatar
      Test vector mismatch fix · 7a2b9c50
      Scott LaVarnway authored
      Fixed test vector mismatch that was introduced
      in the "Removed dc_diff from MB_MODE_INFO"
      (Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931)
      
      Change-Id: I98fa509b418e757b5cdc4baa71202f4168dc14ec
      7a2b9c50
  10. 25 Apr, 2011 1 commit
    • Johann's avatar
      remove simpler_lpf · 01527e74
      Johann authored
      the decision to run the regular or simple loopfilter is made outside the
      function and managed with pointers
      
      stop tracking the option in two places. use filter_type exclusively
      
      Change-Id: I39d7b5d1352885efc632c0a94aaf56b72cc2fe15
      01527e74
  11. 21 Apr, 2011 2 commits
    • Scott LaVarnway's avatar
      Removed unnecessary frame type checks · 6f6cd3ab
      Scott LaVarnway authored
      ref_frame is set to INTRA_FRAME for keyframes.  The B_PRED
      mode is only used in intra frames.
      
      Change-Id: I9bac8bec7c736300d47994f3cb570329edf11ec0
      6f6cd3ab
    • Scott LaVarnway's avatar
      Removed dc_diff from MB_MODE_INFO · 3698c1f6
      Scott LaVarnway authored
      The dc_diff flag is used to skip loopfiltering.  Instead
      of setting this flag in the decoder/encoder, we now check
      for this condition in the loopfilter.
      
      Change-Id: Ie2b9cdf9e0f4e8b932bbd36e0878c05bffd28931
      3698c1f6
  12. 20 Apr, 2011 1 commit
  13. 18 Apr, 2011 1 commit
  14. 15 Apr, 2011 1 commit
    • Johann's avatar
      remove executable bit · f64f425a
      Johann authored
      source files are not executable
      
      Change-Id: Id2c7294695a22217468426423979f68f02d82340
      f64f425a
  15. 04 Apr, 2011 1 commit
  16. 31 Mar, 2011 1 commit
    • Attila Nagy's avatar
      Runtime detection of available processor cores. · 297b2765
      Attila Nagy authored
      Detect the number of available cores and limit the thread allocation
      accordingly. On decoder side limit the number of threads to the max
      number of token partition.
      
      Core detetction works on Windows and
      Posix platforms, which define _SC_NPROCESSORS_ONLN or _SC_NPROC_ONLN.
      
      Change-Id: I76cbe37c18d3b8035e508b7a1795577674efc078
      297b2765
  17. 18 Mar, 2011 1 commit
    • John Koleszar's avatar
      Increase static linkage, remove unused functions · 429dc676
      John Koleszar authored
      A large number of functions were defined with external linkage, even
      though they were only used from within one file. This patch changes
      their linkage to static and removes the vp8_ prefix from their names,
      which should make it more obvious to the reader that the function is
      contained within the current translation unit. Functions that were
      not referenced were removed.
      
      These symbols were identified by:
      
        $ nm -A libvpx.a | sort -k3 | uniq -c -f2 | grep ' [A-Z] ' \
          | sort | grep '^ *1 '
      
      Change-Id: I59609f58ab65312012c047036ae1e0634f795779
      429dc676
  18. 16 Mar, 2011 1 commit
    • John Koleszar's avatar
      apple: include proper mach primatives · de50520a
      John Koleszar authored
      Fixes implicit declaration warning for 'mach_task_self'. This change
      is an update to Change I9991dedd1ccfddc092eca86705ecbc3b764b799d,
      which fixed this issue for the decoder but not the encoder.
      
      Change-Id: I9df033e81f9520c4f975b7a7cf6c643d12e87c96
      de50520a
  19. 11 Mar, 2011 1 commit
  20. 08 Mar, 2011 1 commit
    • Ralph Giles's avatar
      Fix an unused variable warning. · 56efffdc
      Ralph Giles authored
      Move the update of the loopfilter info to the same block where it
      is used. GCC 4.5 is not able trace the initialization of the local
      filter_info across the other calls between the two conditionals on
      pbi->common and issues an uninitialized variable warning.
      
      Change-Id: Ie4487b3714a096b3fb21608f6b0c74e745e3c6fc
      56efffdc
  21. 18 Feb, 2011 2 commits
  22. 15 Feb, 2011 1 commit
  23. 11 Feb, 2011 1 commit
    • Johann's avatar
      remove assembly detokenizer · bb6bcbcc
      Johann authored
      hasn't been kept up to date. remove it to avoid confusion.
      
      Change-Id: I52ffde19b59fec5c7a381299ca2e85cb38330be7
      bb6bcbcc
  24. 10 Feb, 2011 1 commit
    • John Koleszar's avatar
      Fix relative include paths · 02321de0
      John Koleszar authored
      Allow compiling without adding vp8/{common,encoder,decoder} to the
      include paths.
      
      Change-Id: Ifeb5dac351cdfadcd659736f5158b315a0030b6c
      02321de0
  25. 09 Feb, 2011 1 commit
  26. 08 Feb, 2011 1 commit
    • Johann's avatar
      clarify *_offsets.asm differences · 40dcae9c
      Johann authored
      it's difficult to mux the *_offsets.c files because of header conflicts.
      make three instead, name them consistently and partititon the contents
      to allow building them as required.
      
      Change-Id: I8f9768c09279f934f44b6c5b0ec363f7943bb796
      40dcae9c
  27. 07 Feb, 2011 1 commit
    • Johann's avatar
      move one of the offset files · 3273c7b6
      Johann authored
      common/arm/vpx_asm_offsets moves up a level. prepare for muxing with
      encoder/arm/vpx_vp8_enc_asm_offsets
      
      Change-Id: I89a04a5235447e66571995c9d9b4b6edcb038e24
      3273c7b6
  28. 04 Feb, 2011 1 commit
    • Johann's avatar
      remove unused dboolhuff code · bb9c95ea
      Johann authored
      we were holding on to this "just in case." purge it instead
      
      Change-Id: I77a367b36d0821d731019f2566ecfffdae1d4b8a
      bb9c95ea
  29. 03 Feb, 2011 1 commit
  30. 28 Jan, 2011 1 commit
    • Tero Rintaluoma's avatar
      Adds "armvX-none-rvct" targets · 11a222f5
      Tero Rintaluoma authored
      Adds following targets to configure script to support RVCT compilation
      without operating system support (for Profiler or bare metal images).
       - armv5te-none-rvct
       - armv6-none-rvct
       - armv7-none-rvct
      
      To strip OS specific parts from the code "os_support"-config was added
      to script and CONFIG_OS_SUPPORT flag is used in the code to exclude OS
      specific parts such as OS specific includes and function calls for
      timers and threads etc. This was done to enable RVCT compilation for
      profiling purposes or running the image on bare metal target with
      Lauterbach.
      
      Removed separate AREA directives for READONLY data in armv6 and neon
      assembly files to fix the RVCT compilation. Otherwise
      "ldr <reg>, =label" syntax would have been needed to prevent linker
      errors. This syntax is not supported by older gnu assemblers.
      
      Change-Id: I14f4c68529e8c27397502fbc3010a54e505ddb43
      11a222f5
  31. 19 Jan, 2011 1 commit
    • Henrik Lundin's avatar
      Implement error tracking in the decoder · 67fb3a51
      Henrik Lundin authored
      A new vpx_codec_control called VP8D_GET_FRAME_CORRUPTED. The output
      from the function is non-zero if the last decoded frame contains
      corruption due to packet losses.
      
      The decoder is also modified to accept encoded frames of zero length.
      A zero length frame indicates to the decoder that one or more frames
      have been completely lost. This will mark the last decoded reference
      buffer as corrupted. The data pointer can be NULL if the length is
      zero.
      
      Change-Id: Ic5902c785a281c6e05329deea958554b7a6c75ce
      67fb3a51
  32. 11 Jan, 2011 1 commit
    • Henrik Lundin's avatar
      Remove unused local variables · 48c28fc4
      Henrik Lundin authored
      Removing unused local variables causing compiler warnings in
      Visual Studio.
      
      Change-Id: I0e2096303be1fdbc01428a6e57cca9796bb32c8a
      48c28fc4
  33. 06 Jan, 2011 1 commit
    • John Koleszar's avatar
      fix last frame buffer copy logic regression · 1942eeb8
      John Koleszar authored
      Commit 0ce39012 introduced a change in the frame buffer copy logic where
      the NEW frame could be copied to the ARF or GF buffer through the
      copy_buffer_to_{arf,gf}==1 flags, if the LAST frame was not being
      refreshed. This is not correct. The intent of the
      copy_buffer_to_{arf,gf}==1 flag is to copy the LAST buffer. To copy the
      NEW buffer, the refresh_{alt_ref,golden}_frame flag should be used.
      
      The original buffer copy logic is fairly convoluted. For example:
      
          if (cm->refresh_last_frame)
          {
              vp8_swap_yv12_buffer(&cm->last_frame, &cm->new_frame);
      
              cm->frame_to_show = &cm->last_frame;
          }
          else
          {
              cm->frame_to_show = &cm->new_frame;
          }
          ...
          if (cm->copy_buffer_to_arf)
          {
              if (cm->copy_buffer_to_arf == 1)
              {
                  if (cm->refresh_last_frame)
                      vp8_yv12_copy_frame_ptr(&cm->new_frame, &cm->alt_ref_frame);
                  else
                      vp8_yv12_copy_frame_ptr(&cm->last_frame, &cm->alt_ref_frame);
              }
              else if (cm->copy_buffer_to_arf == 2)
                  vp8_yv12_copy_frame_ptr(&cm->golden_frame, &cm->alt_ref_frame);
          }
      
      Effectively, if refresh_last_frame, then new and last are swapped, so
      when "new" is copied to ARF, it's equivalent to copying LAST to ARF. If
      not refresh_last_frame, then LAST is copied to ARF. So LAST is copied to
      ARF in both cases.
      
      Commit 0ce39012 removed the first buffer swap but kept the
      refresh_last_frame?new:last behavior, changing the sense since the first
      swap wasn't done to the more readable refresh_last_frame?last:new, but
      this logic is not correct when !refresh_last_frame.
      
      This commit restores the correct behavior from v0.9.1 and prior. This
      case is missing from the test vector set.
      
      Change-Id: I8369fc13a37ae882e31a8a104da808a08bc8428f
      1942eeb8