1. 28 Nov, 2012 1 commit
  2. 15 Nov, 2012 2 commits
    • John Koleszar's avatar
      support building vp8 and vp9 into a single lib · a9c7597a
      John Koleszar authored
      Change-Id: Ib8f8a66c9fd31e508cdc9caa662192f38433aa3d
      a9c7597a
    • John Koleszar's avatar
      make: flatten object file directories · b72373de
      John Koleszar authored
      Rather than building an object file directory heirarchy matching the
      source tree's layout, rename the object files so that the object
      file name contains the path in the source file tree. The intent here
      is to allow two files in different parts of the source tree to have
      the same name and still not collide when put into an ar archive.
      
      Change-Id: Id627737dc95ffc65b738501215f34a995148c5a2
      b72373de
  3. 01 Nov, 2012 1 commit
  4. 26 Jul, 2012 1 commit
  5. 23 Jul, 2012 1 commit
  6. 03 May, 2012 1 commit
  7. 02 Apr, 2012 1 commit
    • Johann's avatar
      Allow disabling disabled codecs · c459d37c
      Johann authored
      When using 'make dist' after --disable-vp8[encoder|decoder] it would
      fail to recognize the option. This would only occur when also specifying
      --enable-install-docs and --enable-install-srcs but not
      --enable-codec-srcs
      
      Including vpx/ fixes builds with --enable-codec-srcs
      
      vpx_timer.h is also required for vpxenc.c
      
      Change-Id: Ie3e28b2f7ec7ee6d5961d3843f9eab869f79c35b
      c459d37c
  8. 15 Mar, 2012 1 commit
    • Yaowu Xu's avatar
      WebM Experimental Codec Branch Snapshot · 6035da54
      Yaowu Xu authored
      This is a code snapshot of experimental work currently ongoing for a
      next-generation codec.
      
      The codebase has been cut down considerably from the libvpx baseline.
      For example, we are currently only supporting VBR 2-pass rate control
      and have removed most of the code relating to coding speed, threading,
      error resilience, partitions and various other features.  This is in
      part to make the codebase easier to work on and experiment with, but
      also because we want to have an open discussion about how the bitstream
      will be structured and partitioned and not have that conversation
      constrained by past work.
      
      Our basic working pattern has been to initially encapsulate experiments
      using configure options linked to #IF CONFIG_XXX statements in the
      code. Once experiments have matured and we are reasonably happy that
      they give benefit and can be merged without breaking other experiments,
      we remove the conditional compile statements and merge them in.
      
      Current changes include:
      * Temporal coding experiment for segments (though still only 4 max, it
        will likely be increased).
      * Segment feature experiment - to allow various bits of information to
        be coded at the segment level. Features tested so far include mode
        and reference frame information, limiting end of block offset and
        transform size, alongside Q and loop filter parameters, but this set
        is very fluid.
      * Support for 8x8 transform - 8x8 dct with 2nd order 2x2 haar is used
        in MBs using 16x16 prediction modes within inter frames.
      * Compound prediction (combination of signals from existing predictors
        to create a new predictor).
      * 8 tap interpolation filters and 1/8th pel motion vectors.
      * Loop filter modifications.
      * Various entropy modifications and changes to how entropy contexts and
        updates are handled.
      * Extended quantizer range matched to transform precision improvements.
      
      There are also ongoing further experiments that we hope to merge in the
      near future: For example, coding of motion and other aspects of the
      prediction signal to better support larger image formats, use of larger
      block sizes (e.g. 32x32 and up) and lossless non-transform based coding
      options (especially for key frames). It is our hope that we will be
      able to make regular updates and we will warmly welcome community
      contributions.
      
      Please be warned that, at this stage, the codebase is currently slower
      than VP8 stable branch as most new code has not been optimized, and
      even the 'C' has been deliberately written to be simple and obvious,
      not fast.
      
      The following graphs have the initial test results, numbers in the
      tables measure the compression improvement in terms of percentage. The
      build has  the following optional experiments configured:
      --enable-experimental --enable-enhanced_interp --enable-uvintra
      --enable-high_precision_mv --enable-sixteenth_subpel_uv
      
      CIF Size clips:
      http://getwebm.org/tmp/cif/
      HD size clips:
      http://getwebm.org/tmp/hd/
      (stable_20120309 represents encoding results of WebM master branch
      build as of commit#7a159071)
      
      They were encoded using the following encode parameters:
      --good --cpu-used=0 -t 0 --lag-in-frames=25 --min-q=0 --max-q=63
      --end-usage=0 --auto-alt-ref=1 -p 2 --pass=2 --kf-max-dist=9999
      --kf-min-dist=0 --drop-frame=0 --static-thresh=0 --bias-pct=50
      --minsection-pct=0 --maxsection-pct=800 --sharpness=0
      --arnr-maxframes=7 --arnr-strength=3(for HD,6 for CIF)
      --arnr-type=3
      
      Change-Id: I5c62ed09cfff5815a2bb34e7820d6a810c23183c
      6035da54
  9. 15 Feb, 2012 1 commit
  10. 08 Feb, 2012 1 commit
  11. 22 Dec, 2011 1 commit
    • John Koleszar's avatar
      Add missing includes for multi-res · 09080d4e
      John Koleszar authored
      Makes the distribution tree (built with 'make dist') buildable with
      --enable-install-srcs --enable-multi-res-encoding
      
      Change-Id: If2ea7632f7b26615196e9abcfaa34618cc50112a
      09080d4e
  12. 05 Dec, 2011 1 commit
    • Yunqing Wang's avatar
      Multiple-resolution encoder · aa7335e6
      Yunqing Wang authored
      The example encoder down-samples the input video frames a number of
      times with a down-sampling factor, and then encodes and outputs
      bitstreams with different resolutions.
      
      Support arbitrary down-sampling factor, and down-sampling factor
      can be different for each encoding level.
      
      For example, the encoder can be tested as follows.
      1. Configure with multi-resolution encoding enabled:
      ../libvpx/configure --target=x86-linux-gcc --disable-codecs
      --enable-vp8 --enable-runtime_cpu_detect --enable-debug
      --disable-install-docs --enable-error-concealment
      --enable-multi-res-encoding
      2. Run make
      3. Encode:
      If input video is 1280x720, run:
      ./vp8_multi_resolution_encoder 1280 720 input.yuv 1.ivf 2.ivf 3.ivf 1
      (output: 1.ivf(1280x720); 2.ivf(640x360); 3.ivf(320x180).
      The last parameter is set to 1/0 to show/not show PSNR.)
      4. Decode:
      ./simple_decoder 1.ivf 1.yuv
      ./simple_decoder 2.ivf 2.yuv
      ./simple_decoder 3.ivf 3.yuv
      5. View video:
      mplayer 1.yuv -demuxer rawvideo -rawvideo w=1280:h=720 -loop 0 -fps 30
      mplayer 2.yuv -demuxer rawvideo -rawvideo w=640:h=360 -loop 0 -fps 30
      mplayer 3.yuv -demuxer rawvideo -rawvideo w=320:h=180 -loop 0 -fps 30
      
      The encoding parameters can be modified in vp8_multi_resolution_encoder.c,
      for example, target bitrate, frame rate...
      
      Modified API. John helped a lot with that. Thanks!
      
      Change-Id: I03be9a51167eddf94399f92d269599fb3f3d54f5
      aa7335e6
  13. 11 Oct, 2011 1 commit
    • Adrian Grange's avatar
      Added rate-targeted temporal scalability · 217591fd
      Adrian Grange authored
      Added the ability to create rate-targeted, temporally
      scalable, VP8 compatible bitstreams.
      
      The application vp8_scalable_patterns.c demonstrates how
      to use this capability. Users can create output bitstreams
      containing upto 5 temporally separable streams encoded
      as a single VP8 bitstream.
      (previously abandoned as:
      I92d1483e887adb274d07ce9e567e4d0314881b0a)
      
      Change-Id: I156250a3fe930be57c069d508c41b6a7a4ea8d6a
      217591fd
  14. 22 Sep, 2011 1 commit
  15. 25 Jul, 2011 1 commit
  16. 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
  17. 02 May, 2011 1 commit
    • Ronald S. Bultje's avatar
      build: change LDFLAGS/CFLAGS ordering. · bbf890fe
      Ronald S. Bultje authored
      Always use CFLAGS/LDFLAGS that point to headers and libvpx.a inside our
      build tree before ones from the environment, which could reference
      headers or libs outside the build tree.
      
      This fixes issue 307.
      
      Change-Id: I34d176b8c21098f6da5ea71f0147d3c49283cc45
      bbf890fe
  18. 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
  19. 02 Nov, 2010 1 commit
    • John Koleszar's avatar
      fix pipe support on windows · c377bf0e
      John Koleszar authored
      STDIO streams are opened in text mode by default on Windows. This patch
      changes the stdin/stdout streams to be in binary mode if they are being
      used for I/O from the vpxenc or vpxdec tools.
      
      Fixes issue #216. Thanks to mw AT hesotech.de for the fix.
      
      Change-Id: I34525b3ce2a4a031d5a48d36df4667589372225b
      c377bf0e
  20. 27 Oct, 2010 1 commit
  21. 26 Oct, 2010 3 commits
    • John Koleszar's avatar
      rename ivf{enc,dec} to vpx{enc,dec} · ea68ee04
      John Koleszar authored
      The new WebM output support should be preferred to IVF, but we can't
      change the default behavior of the ivf* tools. There are a few other
      default behaviors for these tools that are counterintuitive for
      historical reasons, and changing the binary name provides the
      opportunity to clean those up as well. This patch takes the first
      step by renaming the binaries.
      
      Change-Id: I647008ae37cc352dd27ec1da7ed13489e0609b24
      ea68ee04
    • John Koleszar's avatar
      ivfenc: webm output support · dc66630c
      John Koleszar authored
      This patch adds the --webm option, to allow the creation of WebM streams
      without having to remux ivf into webm.
      
      Change-Id: Ief93c114a6913c55a04cf51bce38f594372d0ad0
      dc66630c
    • John Koleszar's avatar
      ivfdec: webm reader support · ad252daf
      John Koleszar authored
      This patch enables ivfdec to decode WebM files. WebM demuxing is
      provided by the Matthew Gregan's Nestegg library.
      
      This patch also makes minor changes to the timebase->framerate
      handling when doing Y4M output. For WebM files, the framerate is
      guessed by looking at the first second of video. For IVF files,
      the timebase=1/(2*fps) hack is still in place, but is only used
      if the timebase denominator is less than 1000. This is in anticipation
      of change I8d25b5b, which introduces the distinction between
      framerate and timebase to ivfenc. In the case of high resolution
      timebases, like 100ns, we would have to guess the framerate
      like we do for WebM, but since WebM support in ivfenc will
      deprecate IVF output, we just assume 30fps rather than writing the
      lookahead code.
      
      Change-Id: I1dd8600f13bf6071533d2816f005da9ede4f60a2
      ad252daf
  22. 09 Sep, 2010 1 commit
  23. 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
  24. 04 Jun, 2010 1 commit
  25. 03 Jun, 2010 1 commit
  26. 25 May, 2010 2 commits
    • 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
    • John Koleszar's avatar
      make: make install target behave as expected · ee8bcb1a
      John Koleszar authored
      Split the 'make install' target into two: install and dist. dist
      retains the old make install behavior of building a "distribution"
      release, with source files, build system, etc. install does what
      one one expects -- installs into a tree in the filesystem, /usr/local
      by default.
      
      Change-Id: I0805681ac10f853ef94cdc3aa70981c6bea81b45
      ee8bcb1a
  27. 18 May, 2010 1 commit