Skip to content
Snippets Groups Projects
  1. Oct 11, 2012
  2. Jul 23, 2012
  3. Jul 17, 2012
  4. Mar 15, 2012
    • 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
  5. Feb 15, 2012
  6. May 19, 2011
    • 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
  7. May 09, 2011
  8. Apr 27, 2011
    • John Koleszar's avatar
      vpxdec: test for frame corruption · 4226f0ce
      John Koleszar authored
      This change simply exercises the VP8D_GET_FRAME_CORRUPTED control,
      outputting a warning message at the end if the bit was set for any
      frames. Should never produce any output for good input.
      
      Change-Id: Idaf6ba8f53660f47763cd563fa1485938580a37d
      4226f0ce
  9. Jan 28, 2011
    • 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
  10. Nov 23, 2010
  11. Nov 10, 2010
    • Fritz Koenig's avatar
      postproc : Re-work posproc calling to allow more flags. · 647df00f
      Fritz Koenig authored
      Debugging in postproc needs more flags to allow for specific
      block types to be turned on or off in the visualizations.
      
      Must be enabled with --enable-postproc-visualizer during
      configuration time.
      
      Change-Id: Ia74f357ddc3ad4fb8082afd3a64f62384e4fcb2d
      647df00f
  12. Nov 04, 2010
  13. Nov 02, 2010
    • 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
  14. Oct 28, 2010
    • Timothy B. Terriberry's avatar
      Eliminate more warnings. · 97b766a4
      Timothy B. Terriberry authored
      This eliminates a large set of warnings exposed by the Mozilla build
       system (Use of C++ comments in ISO C90 source, commas at the end of
       enum lists, a couple incomplete initializers, and signed/unsigned
       comparisons).
      It also eliminates many (but not all) of the warnings expose by newer
       GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite
       without checking the return values).
      There are a few spurious warnings left on my system:
      
      ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used
       uninitialized in this function
      gcc seems to be unable to figure out that the value shortcut doesn't
       change between the two if blocks that test it here.
      
      ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned
       expression >= 0 is always true
      ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned
       expression >= 0 is always true
      This is true, so far as it goes, but it's comparing against an enum,
       and the C standard does not mandate that enums be unsigned, so the
       checks can't be removed.
      
      Change-Id: Iead6cd561a2afaa3d801fd63f1d8d58953da7426
      97b766a4
    • Timothy B. Terriberry's avatar
      Eliminate more warnings. · c4d7e5e6
      Timothy B. Terriberry authored
      This eliminates a large set of warnings exposed by the Mozilla build
       system (Use of C++ comments in ISO C90 source, commas at the end of
       enum lists, a couple incomplete initializers, and signed/unsigned
       comparisons).
      It also eliminates many (but not all) of the warnings expose by newer
       GCC versions and _FORTIFY_SOURCE (e.g., calling fread and fwrite
       without checking the return values).
      There are a few spurious warnings left on my system:
      
      ../vp8/encoder/encodemb.c:274:9: warning: 'sz' may be used
       uninitialized in this function
      gcc seems to be unable to figure out that the value shortcut doesn't
       change between the two if blocks that test it here.
      
      ../vp8/encoder/onyx_if.c:5314:5: warning: comparison of unsigned
       expression >= 0 is always true
      ../vp8/encoder/onyx_if.c:5319:5: warning: comparison of unsigned
       expression >= 0 is always true
      This is true, so far as it goes, but it's comparing against an enum, and the C
       standard does not mandate that enums be unsigned, so the checks can't be
       removed.
      
      Change-Id: Iaf689ae3e3d0ddc5ade00faa474debe73b8d3395
      c4d7e5e6
  15. Oct 27, 2010
  16. Oct 26, 2010
    • John Koleszar's avatar
      vpxdec: rework default output parameters · 933d44b8
      John Koleszar authored
      This patch reworks the default behavior of the tool to output Y4M
      instead of writing individual raw frames. The relevant controls are
      now:
        --yv12, --i420  - These options change the output format to be
                          raw planar data. The output will be Y4M unless
                          one of these options is specified.
      
        --flipuv        - Swaps the chroma planes. Works with Y4M output.
      
        -o, --output    - Sets the output filename. Defaults to stdout if
                          not specified. Supports escape character
                          expansion for frame width (%w) height (%h) and
                          sequence number (%1..%9). The --prefix option
                          has been removed in favor of this escape
                          expansion.
      
      Since the output defaults to stdout if -o is not specified, an
      error will be thrown if stdout is not connected to a pipe. This
      can be overridden by specifying '-o -'.
      
      Change-Id: I94e42c57ca75721fdd57a6129e79bcdb2afe5d4d
      933d44b8
    • John Koleszar's avatar
      vpxdec: replace --quiet with --verbose · 4b578ea6
      John Koleszar authored
      Be quiet by default, to play nicer with scripts.
      
      Change-Id: I68f6c88411fd5487566f268fb73b4e55ae64410c
      4b578ea6
    • John Koleszar's avatar
      vpxdec: use the same output for --progress and --summary · 5d12e04d
      John Koleszar authored
      Update the timing information in-place for the --progress
      option.
      
      Change-Id: I8efea57050db72963c0bc5c994425e7e692d1502
      5d12e04d
    • 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
      ivfdec: support y4m output from raw input · cfe3f917
      John Koleszar authored
      The width and height needed to write the Y4M header can be found by
      probing the stream with vpx_codec_peek_stream_info(). This also
      has the consequence of supporting multiple codecs from raw files
      with automatic detections, should we add additional codecs in the
      future.
      
      Change-Id: I7522a8f4c7577b6ed9876d744c59cd86d30c6049
      cfe3f917
    • 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
  17. Oct 11, 2010
  18. Sep 09, 2010
  19. Jun 18, 2010
    • 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
  20. Jun 14, 2010
  21. Jun 04, 2010
  22. Jun 03, 2010
    • Timothy B. Terriberry's avatar
      Add support for YUV4MPEG2 output. · 7f9db419
      Timothy B. Terriberry authored
      These files can be played back directly in most major open-source media
       frameworks without the need for additional patches or parameters.
      
      Change-Id: I59f98c1658298245c688f7d107cf393445e470d5
      7f9db419
  23. May 25, 2010
    • John Koleszar's avatar
      vpx_image: add VPX_ prefix to PLANE_* · b6c71918
      John Koleszar authored
      The PLANE_{PACKED,Y,U,V,ALPHA} macros should be renamed to be within the
      VPX_ namespace.
      
      Fixes #27
      b6c71918
    • 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
  24. May 18, 2010
Loading