1. 14 Feb, 2012 1 commit
  2. 13 Feb, 2012 1 commit
    • Jim Bankoski's avatar
      vp8 - config_featureupdates · af8f1928
      Jim Bankoski authored
      Added a bit to signify that the feature changed since
      the last time we sent it, or not so that we don't need
      to send all the databits for every feature change.
      
      added config
      
      Change-Id: I8d3064ce90d4500bf0d5c6b87c664e46138dfcac
      af8f1928
  3. 10 Feb, 2012 2 commits
  4. 02 Feb, 2012 1 commit
    • Adrian Grange's avatar
      Added encoding in Superblock Order · 5d0b5a17
      Adrian Grange authored
      As a precursor to encoding 32x32 blocks this cl adds the
      ability to encode the frame superblock (=32x32 block) at
      a time. Within a SB the 4 indiviual MBs are encoded in
      raster-order (NW,NE,SW,SE).
      
      This functionality is added as an experiment which can be
      enabled by ispecifying --enable-superblocks in the
      command line specified to configure (CONFIG_SUPERBLOCKS
      macro in the code).
      
      To make this work I had to disable the two intra
      prediction modes that use data from the top-right of the
      MB.
      
      On the tests that I have run the results produce
      almost exactly the same PSNRs & SSIMs with a very
      slightly higher average data rate (and slightly higher
      data rate than just disabling the two intra modes in
      the original code).
      
      NOTE: This will also break the multi-threaded code.
      
      This replaces the abandoned change:
      Iebebe0d1a50ce8c15c79862c537b765a2f67e162
      
      Change-Id: I1bc1a00f236abc1a373c7210d756e25f970fcad8
      5d0b5a17
  5. 31 Jan, 2012 1 commit
    • Paul Wilkins's avatar
      Added common prediction modules. · b2f64dff
      Paul Wilkins authored
      This function adds the common prediction modules,  some data structures
      and a config option but does not use them.
      
      It also corrects a bug in clearing down  the MODE_INFO border and introduces
      a new element that indicates if an entry corresponds to an "in image" macro block
      or is part of the border.
      
      Change-Id: Ib69eec0876173ebe9d1de9df9537d0b2447702e0
      b2f64dff
  6. 26 Jan, 2012 1 commit
  7. 18 Jan, 2012 1 commit
    • Yaowu Xu's avatar
      new loop filter functions for macroblock boundaries · 5e7d7d3d
      Yaowu Xu authored
      The commit adds a new set of loop filter for macroblock edge filtering.
      The new loop filter has a mask to detect so-called "flat" regions. The
      detection checks 5 pixels of each side of an edge. If the all pixels
      have value with +/-1 from the edge pixel on the same side, the region
      is treated as a "flat" region. For such case, a 7 tap filter is used
      to change 3 pixel values on each side. The 7 taps are:
                     [1, 1, 1, 2, 1, 1, 1]/8
      The furthest away pixels used as input are +/-5 away from edge. For
      non-flat region, we fall back to old filtering. It should be noted
      here that the thresholds and filter taps may require more optimization
      for best possible results.
      
      Tests on a set of hd clips showed consistent gains:
      http://www.corp.google.com/~yaowu/no_crawl/mblpf_hd.html
      (avg psnr: .83% glb psnr: .77% ssim: .82%)
      
      Tests on derf set also showed consistent gains:
      http://www.corp.google.com/~yaowu/no_crawl/mblpf_derf.html
      (avg psnr: .24% glb psnr: .22% ssim: .48%)
      
      Change-Id: I0855b1ff48e79e1175c20b81967137e18b2af352
      5e7d7d3d
  8. 07 Dec, 2011 2 commits
    • Yaowu Xu's avatar
      Removed #if CONFIG_MULCONTEXT · b70f23ca
      Yaowu Xu authored
      This commit removed the macro CONFIG_MULCONTEXT, which was used to
      indicate the experiment code for using separate context for altref
      and normal frames. This commit made the change fully merged in.
      
      Change-Id: I525f927f68e2365d37b340ef23b836a136a4f70b
      b70f23ca
    • Yaowu Xu's avatar
      Removed #if CONFIG_I8X8 · d37cd976
      Yaowu Xu authored
      This commit removed the macro CONFIG_I8X8, which was used to indicate
      the 8x8 intra prediction experiment, made the change fully merged in.
      
      Change-Id: Iafa4443781ce6e83f5591c12ba615a0e92ce0ea0
      d37cd976
  9. 06 Dec, 2011 1 commit
    • Ronald S. Bultje's avatar
      Dual 16x16 inter prediction. · 60cb39da
      Ronald S. Bultje authored
      This patch introduces the concept of dual inter16x16 prediction. A
      16x16 inter-predicted macroblock can use 2 references instead of 1,
      where both references use the same mvmode (new, near/est, zero). In the
      case of newmv, this means that two MVs are coded instead of one. The
      frame can be encoded in 3 ways: all MBs single-prediction, all MBs dual
      prediction, or per-MB single/dual prediction selection ("hybrid"), in
      which case a single bit is coded per-MB to indicate whether the MB uses
      single or dual inter prediction.
      
      In the future, we can (maybe?) get further gains by mixing this with
      Adrian's 32x32 work, per-segment dual prediction settings, or adding
      support for dual splitmv/8x8mv inter prediction.
      
      Gain (on derf-set, CQ mode) is ~2.8% (SSIM) or ~3.6% (glb PSNR). Most
      gain is at medium/high bitrates, but there's minor gains at low bitrates
      also. Output was confirmed to match between encoder and decoder.
      
      Note for optimization people: this patch introduces a 2nd version of
      16x16/8x8 sixtap/bilin functions, which does an avg instead of a
      store. They may want to look and make sure this is implemented to
      their satisfaction so we can optimize it best in the future.
      
      Change-ID: I59dc84b07cbb3ccf073ac0f756d03d294cb19281
      60cb39da
  10. 02 Dec, 2011 1 commit
    • Yaowu Xu's avatar
      changed configure script to enable new experimental options · 8a40d2f5
      Yaowu Xu authored
      Added two experimental options to the configure script:
      1. newnear:
         new scheme of doing mv encoding that include a motion vector from
         last frame in nearest and near mv search
      2. mulcontext:
         tracks entropy context separately for regular frames and alt ref
         frames.
      
      Change-Id: If6e0d5d593351707b497a26eb6a763e080f77e6f
      8a40d2f5
  11. 04 Nov, 2011 1 commit
    • Yaowu Xu's avatar
      make uv intra mode coding adaptive to Y mode · 2bbde250
      Yaowu Xu authored
      This commit tries to do UV intra mode coding adaptive to Y intra mode.
      Entropy context is defined as conditional PDF of uv intra mode given
      the Y mode. All constants are normalized with 256 to be fit in 8 bits.
      
      This provides further coding efficiency beyond the quantizer adaptive
      y intra mode coding. Consistent gains were observed on all clips and
      all bit rates for HD all key encoding tests.
      
      To test, configure with
      --enable-experimental --enable-uvintra
      
      Change-Id: I2d78d73f143127f063e19bd0bac3b68c418d756a
      2bbde250
  12. 30 Sep, 2011 1 commit
  13. 16 Sep, 2011 2 commits
    • Yaowu Xu's avatar
      add quantizer adaptive intra mb mode encoding · aac2c126
      Yaowu Xu authored
      make intra mode coding entropy distribution adaptive to baseQindex, an
      encoding test on hd clips with all key frame shows universal gain on
      all clips in both .2%(psnr) and (ssim).3%.
      
      To build and test, configure with
      --enable-experimental --enable-qimode
      
      Change-Id: Iaa69241b984d4fdd8baa6d77ee78c0140f5ac00a
      aac2c126
    • Yaowu Xu's avatar
      add 8x8 intra prediction modes · ca6b85aa
      Yaowu Xu authored
      Patch 1 to Patch 3 is an initial implementation of 8x8 intra prediction
      modes, here are with the following assumptions:
      a. 8x8 has 4 prediction modes DC, H, V and TM
      b. UV 4x4 block use the same mode as corresponding 8x8 area
      c. i8x8 modes are enabled for key frame only for now
      Patch 4:
      d. removed debug code from previous patches
      Patch 5:
      e. added stats code to collect entropy stats and further cleaned up
      Patch 6:
      f. changed mode stats code to collect finer stats of modes
      Patch 7:
      g. normalized i8x8 modes distribution to total at 256 (8bits).
      Patch 8:
      h. fixed a bug in decoder and removed debug printf output.
      Patch 9:
      i. more cleanups to address paul's comment
      Patch 10:
      j. messy rebase/merges to bring the commit up to date.
      
      Tests on HD clips encoded with all key frame showing consistent gain
      on all clips and all metrics:~0.5%(psnr) and 0.6%(ssim):
      http://www.corp.google.com/~yaowu/no_crawl/i8x8hd_allkey_fixedq.html
      
      To build and test, configure with:
      --enable-experimental --enable-i8x8
      
      Change-Id: I9813fe07ae48cab5fdb5d904bca022514ad01e7f
      ca6b85aa
  14. 25 Jul, 2011 1 commit
  15. 20 Jul, 2011 1 commit
  16. 23 Jun, 2011 1 commit
    • Yaowu Xu's avatar
      fix build issues for experimental branch · 7793b386
      Yaowu Xu authored
      experimental branch build was broken from some merge artifacts, this
      commit fixes those issues to enable the experimental branch to build.
      
      Change-Id: Ic52b2d2f1d1b80abb7ecaa4c0927bcf887ac0c2a
      7793b386
  17. 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
  18. 29 Apr, 2011 1 commit
  19. 10 Apr, 2011 1 commit
  20. 31 Mar, 2011 3 commits
    • 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
    • Ralph Giles's avatar
      Generate a vpx.pc file for pkg-config. · 607f8420
      Ralph Giles authored
      Rules are added to libs.mk to generate a vpx.pc, which is
      installed as pkgconfig/vpx.pc under the target library directory.
      This also requires the install path prefix be exported directly
      in config.mk.
      
      Some systems use a tool called pkg-config to query information
      about intalled libraries or other resources, based on database
      files provided by the packages themselves at install time.
      
      Providing such a file for libvpx simplifies integration with
      other build systems, and provides an easy avenue for developers
      to test against their own builds of the library.
      
      Change-Id: I4e32a8fbb53fc331aa95eb207c63dd70a76d18ed
      607f8420
    • Ralph Giles's avatar
      Export the version string as a makefile variable. · 53e9987b
      Ralph Giles authored
      The configure script exports the major/minor/patch version
      numbers, but didn't make the full version string available
      to Makefile recipes and rules, the way it is available to
      C code from vpx_version.h.
      
      Change-Id: Ic6a9d4c574a6ea66a50c928f4eedeb91d7668eb5
      53e9987b
  21. 22 Feb, 2011 1 commit
    • Johann's avatar
      purge wince configuration · 418f4219
      Johann authored
      this has been broken since the initial release
      
      Change-Id: If0d4deb2de9f7d0c4c05641e2bbf9cc1bf11e171
      418f4219
  22. 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
  23. 04 Feb, 2011 1 commit
    • John Koleszar's avatar
      configure: enable unused variable warnings · b601eb8c
      John Koleszar authored
      Only suppress unused function warnings, rather than supprressing all
      unused-* warnings. Unused functions can still be seen with
      --enable-extra-warnings.
      
      Change-Id: Ibca20d859dbffedd76bd082ffe0fa685c3ac198e
      b601eb8c
  24. 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
  25. 20 Jan, 2011 1 commit
    • Attila Nagy's avatar
      Update configure scripts · 41955325
      Attila Nagy authored
      Add --extra-cflags as config parameter for user defined extra CFLAGS.
      Add -g to asflags when debug enabled for arm targets.
      
      Change-Id: Ibdde7cfdda6736c1c1db45e6466bd08504a51f15
      41955325
  26. 19 Jan, 2011 1 commit
    • Yaowu Xu's avatar
      experiment extending the quantizer range · 5b42ae09
      Yaowu Xu authored
      Prior to this change, VP8 min quantizer is 4, which caps the
      highest quality around 51DB. This experimental change extends
      the min quantizer to 1, removes the cap and allows the highest
      quality to be around ~73DB, consistent with the fdct/idct round trip
      error. To test this change, at configure time use options:
      
      --enable-experimental --enable-extend_qrange
      
      The following is a brief log of changes in each of the patch sets
      
      patch set 1:
      In this commit, the quantization/dequantization constants are kept
      unchanged, instead scaling factor 4 is rolled into fdct/idct.
      Fixed Q0 encoding tests on mobile:
        Before:    9560.567kbps Overall PSNR:50.255DB VPXSSIM:98.288
        Now:   18035.774kbps Overall PSNR:73.022DB VPXSSIM:99.991
      
      patch set 2:
      regenerated dc/ac quantizer lookup tables based on the scaling
      factor rolled in the fdct/idct. Also slightly extended the range
      towards the high quantizer end.
      
      patch set 3:
      slightly tweaked the quantizer tables and generated bits_per_mb
      table based on Paul's suggestions.
      
      patch set 4:
      fix a typo in idct, re-calculated tables relating active max Q
      to active min Q
      
      patch set 5:
      added rdmult lookup table based on Q
      
      patch set 6:
      fix rdmult scale: dct coefficient has scaled up by 4
      
      patch set 7:
      make transform coefficients to be within 16bits
      
      patch set 8:
      normalize 2nd order quantizers
      
      patch set 9:
      fix mis-spellings
      
      patch set 10:
      change the configure script and macros to allow experimental code
      to be enabled at configure time with --enable-extend_qrange
      
      patch set 11:
      rebase for merge
      
      Change-Id: Ib50641ddd44aba2a52ed890222c309faa31cc59c
      5b42ae09
  27. 16 Nov, 2010 2 commits
  28. 10 Nov, 2010 2 commits
    • Fritz Koenig's avatar
      configure : Incorrect syntax in configure · 692b1085
      Fritz Koenig authored
      Check to see if postproc was enabled when enabling the
      postproc visualizer was wrong.
      
      Fix for bug introduced in Change Ia74f357d
      
      Change-Id: I4bee9ad2caee3cfe3bac6972047f6af7c54cad4e
      692b1085
    • 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
  29. 27 Oct, 2010 1 commit
    • Yunqing Wang's avatar
      Full search SAD function optimization in SSE4.1 · 71ecb5d7
      Yunqing Wang authored
      Use mpsadbw, and calculate 8 sad at once. Function list:
      vp8_sad16x16x8_sse4
      vp8_sad16x8x8_sse4
      vp8_sad8x16x8_sse4
      vp8_sad8x8x8_sse4
      vp8_sad4x4x8_sse4
      
      (test clip: tulip)
      For best quality mode, this gave encoder a 5% performance boost.
      For good quality mode with speed=1, this gave encoder a 3%
      performance boost.
      
      Change-Id: I083b5a39d39144f88dcbccbef95da6498e490134
      71ecb5d7
  30. 25 Oct, 2010 1 commit
    • Aaron Watry's avatar
      Add sparc-solaris-gcc as a build target. · 53f61ce2
      Aaron Watry authored
      Solaris 10 requires -lposix4 to build successfully on gcc. I only have a
      Sparc machine to test with on Solaris 10, but this change leaves
      OpenSolaris x86 in a usable state w/ gnu-generic.
      
      I am of the belief that this change should fix Solaris 10 on Sparc, but
      will leave other Solaris architectures as is. If someone has an x86
      Solaris 10 machine to test on, they may add x86-solaris-gcc to
      libvpx/configure and give it a go.
      
      Change-Id: I17a282028bb4d3e9fd8764159f95665160f7b62a
      53f61ce2
  31. 05 Oct, 2010 1 commit
    • Jan Kratochvil's avatar
      nasm: add configure support · 7be093ea
      Jan Kratochvil authored
      yasm has to be preferred as currently nasm produces marginally less
      efficient code (longer opcodes). Filed for nasm as:
      https://sourceforge.net/tracker/?func=detail&atid=106208&aid=3037462&group_id=6208
      
      OTOH package should be built always the same, no matter which additional
      packages are / are not present on the system. As the package should be
      built with nasm (as yasm may not be available) we should not use yasm
      even if it is possibly available.
      
      nasm >= approx. 2.09 is required for the nasm compilation as the former
      versions had a section alignment bug.
      
      Provide nasm compatibility. No binary change by this patch with yasm on
      {x86_64,i686}-fedora13-linux-gnu. Few longer opcodes with nasm on
      {x86_64,i686}-fedora13-linux-gnu have been checked as safe.
      
      Change-Id: Icb0fe39c64bbcc3bcd7972e392fd03f3273340df
      7be093ea
  32. 24 Sep, 2010 1 commit
    • John Koleszar's avatar
      configure: add --enable-small · f9b2ca5b
      John Koleszar authored
      Build with -O2 rather than -O3, to dissuade the compiler from inlining
      so much. See issue #1.
      
      Change-Id: Iacb8ddb59125d3f01c5fea846b45a1c004c9aee0
      f9b2ca5b
  33. 21 Sep, 2010 1 commit
    • Johann's avatar
      Fix typo · 0511cbff
      Johann authored
      Also, move with other ppc32 options
      
      Change-Id: I0b97413c767909c5682afc9bdd954f3d43401f6c
      0511cbff