1. 14 Aug, 2012 - 1 commit
  2. 24 Jul, 2012 - 1 commit
  3. 23 Jul, 2012 - 1 commit
  4. 17 Jul, 2012 - 1 commit
  5. 29 Jun, 2012 - 1 commit
    • Hui Su's avatar
      Add lossless compression mode. · e44ee38a
      Hui Su authored
      This commit adds lossless compression capability to the experimental
      branch. The lossless experiment can be enabled using --enable-lossless
      in configure. When the experiment is enabled, the encoder will use
      lossless compression mode by command line option --lossless, and the
      decoder automatically recognizes a losslessly encoded clip and decodes
      accordingly.
      
      To achieve the lossless coding, this commit has changed the following:
          1. To encode at lossless mode, encoder forces the use of unit
      quantizer, i.e, Q 0, where effective quantization is 1. Encoder also
      disables the usage of 8x8 transform and allows only 4x4 transform;
          2. At Q 0, the first order 4x4  DCT/IDCT have been switched over
      to a pair of forward and inverse Walsh-Hadamard Transform
      (http://goo.gl/EIsfy),  with proper scaling applied to match the range
      of the original 4x4 DCT/IDCT pair;
          3. At Q 0, the second order remains to use the previous
      walsh-hadamard transform pair. However, to maintain the reversibility
      in second order transform at Q 0, scaling down is applied to first
      order DC coefficients prior to forward transform, and scaling up is
      applied to the second order output prior to quantization. Symmetric
      upscaling and downscaling are added around inverse second order
      transform;
          4. At lossless mode, encoder also disables a number of minor
      features to ensure no loss is introduced, these features includes:
              a. Trellis quantization optimization
              b. Loop filtering
              c. Aggressive zero-binning, rounding and zero-bin boosting
              d. Mode based zero-bin boosting
      
      Lossless coding test was performed on all clips within the derf set,
      to verify that the commit has achieved lossless compression for all
      clips. The average compression ratio is around 2.57 to 1.
      (http://goo.gl/dEShs)
      
      Change-Id: Ia3aba7dd09df40dd590f93b9aba134defbc64e34
      e44ee38a
  6. 01 May, 2012 - 1 commit
  7. 11 Apr, 2012 - 1 commit
    • Adrian Grange's avatar
      Superblock encoding order · 9daf3154
      Adrian Grange authored
      This is the first patch to add superblock (32x32) coding
      order capabilities. It does not yet do any mode selection
      at the SB level, that will follow in a further patch.
      
      This patch encodes rows of SBs rather than
      MBs, each SB contains 2x2 MBs.
      
      Two intra prediction modes have been disabled since they
      require reconstructed data for the above-right MB which
      may not have been encoded yet (e.g. for the bottom right
      MB in each SB).
      
      Results on the one test clip I have tried (720p GIPS clip)
      suggest that it is somewhere around 0.2dB worse than the
      baseline version, so there may be bugs.
      
      It has been tested with no experiments enabled and with
      the following 3 experiments enabled:
        --enable-enhanced_interp
        --enable-high_precision_mv
        --enable-sixteenth_subpel_uv
      in each case the decode buffer matches the recon buffer
      (using "cmp" to compare the dumped/decoded frames).
      Note: Testing these experiments individually created
      errors.
      
      Some problems were found with other experiments but it
      is unclear what state these experiments are in:
        --enable-comp_intra_pred
        --enable-newentropy
        --enable-uvintra
      
      This code has not been extensively tested yet, so there
      is every likelihood that further bugs remain. I also
      intend to do some code cleanup & refactoring in tandem
      with the next patch that adds the 32x32 modes.
      
      Change-Id: I1eba7f740a70b3510df58db53464535ef881b4d9
      9daf3154
  8. 15 Mar, 2012 - 4 commits
    • Yaowu Xu's avatar
      Added encode/decode recon buffer match test to vpxenc · f85084a9
      Yaowu Xu authored
      The commit added a new command line option --test-decode to vpxenc.
      The option enables encoder to decode compressed frames and test recon
      buffers from the decode against those from encode for mismatch.
      
      There are a few limitations on this option currently, one of them
      being the match test is not done on a number of lagged frames at
      the end of an encoding.
      
      Change-Id: I80c29b46dcdcea9f48107a506b235743068862fe
      f85084a9
    • Yaowu Xu's avatar
      Added option to skip first n frame to vpxenc · 44f5f33b
      Yaowu Xu authored
      this commit added a command line option to skip first n frames from
      input file to facilitate debugging and testing.
      
      Change-Id: I4ffc5f85fa7e193ea4bdee08cb236717de8beef1
      44f5f33b
    • 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:
      * T...
      6035da54
    • Yaowu Xu's avatar
      Added encode/decode recon buffer match test to vpxenc · f798f9e4
      Yaowu Xu authored
      The commit added a new command line option --test-decode to vpxenc.
      The option enables encoder to decode compressed frames and test recon
      buffers from the decode against those from encode for mismatch.
      
      There are a few limitations on this option currently, one of them
      being the match test is not done on a number of lagged frames at
      the end of an encoding.
      
      Change-Id: I80c29b46dcdcea9f48107a506b235743068862fe
      f798f9e4
  9. 14 Mar, 2012 - 1 commit
    • Yaowu Xu's avatar
      Added option to skip first n frame to vpxenc · 03d5d693
      Yaowu Xu authored
      this commit added a command line option to skip first n frames from
      input file to facilitate debugging and testing.
      
      Change-Id: I4ffc5f85fa7e193ea4bdee08cb236717de8beef1
      03d5d693
  10. 08 Mar, 2012 - 1 commit
    • Yaowu Xu's avatar
      Changed MAX_PSNR to be consistent with internal stats · 8cf28d34
      Yaowu Xu authored
      The maximum psnr has a marginal impact on the overall output in high
      quality encodings, the change will make sure the psnr output to be
      consistent with encoder internal stats.
      
      Change-Id: I35cf2f85008ec127a7d91c9eb69fa7811798ae32
      8cf28d34
  11. 22 Sep, 2011 - 1 commit
  12. 02 Aug, 2011 - 1 commit
  13. 28 Jul, 2011 - 1 commit
    • John Koleszar's avatar
      Convert rc_max_intra_bitrate_pct to control · 1654ae9a
      John Koleszar authored
      Since this is the only ABI incompatible change since the last release,
      convert it to use the control interface instead. The member of the
      configuration struct is replaced with the VP8E_SET_MAX_INTRA_BITRATE_PCT
      control.
      
      More significant API changes were expected to be forthcoming when this
      control was first introduced, and while they continue to be expected,
      it's not worth breaking compatibility for only this change.
      
      Change-Id: I799d8dbe24c8bc9c241e0b7743b2b64f81327d59
      1654ae9a
  14. 27 Jul, 2011 - 1 commit
  15. 26 Jul, 2011 - 1 commit
  16. 18 Jul, 2011 - 1 commit
    • Tero Rintaluoma's avatar
      Fixed rate histogram calculation · fd41cb84
      Tero Rintaluoma authored
      Using small values for --buf-sz= in command line causes
      floating point exception due to division by zero.
      
      Change-Id: Ibfe2d44db922993a78ebc9a4a1087d9625de48ae
      fd41cb84
  17. 12 Jul, 2011 - 1 commit
  18. 29 Jun, 2011 - 2 commits
    • Johann's avatar
      guard against space/time distortion · bb0ca87a
      Johann authored
      and divide by 0 errors
      
      Change-Id: I8af5ca3d0913cb6f278fff754f8772bcb62e674a
      bb0ca87a
    • John Koleszar's avatar
      vpxenc: prevent wraparound in the --rate-hist ringbuffer · 05239f0c
      John Koleszar authored
      For clips that are near 60fps and have a lot of alt refs, it's possible
      that the ring buffer holding the previous frames sizes/pts could wrap
      around, leading to a division by zero.
      
      In addition to checking for this condition in the ring buffer loop,
      the buffer size is made dependent on the actual frame rate in use,
      rather than defaulting to 60, which should improve accuracy at frame
      rates >= ~60.
      
      Change-Id: If5a04d6e847316dc5f7504f25c01164cf9332be8
      05239f0c
  19. 28 Jun, 2011 - 1 commit
    • James Zern's avatar
      vpxenc: free resources · db6ee543
      James Zern authored
      Free buffers allocated for y4m input and webm cue list.
      
      Change-Id: I02051baae3b45f692cf5c7f520ea9a2d80c7b470
      db6ee543
  20. 23 Jun, 2011 - 2 commits
    • John Koleszar's avatar
      vpxenc: add rate histogram display · c96f8e23
      John Koleszar authored
      Add the --rate-hist=n option, which displays a histogram with n
      buckets for the rate over the --buf-sz window.
      
      Change-Id: I2807b5a1525c7972e9ba40839b37e92b23ceffaf
      c96f8e23
    • John Koleszar's avatar
      vpxenc: add quantizer histogram display · 3fde9964
      John Koleszar authored
      Add the --q-hist=n option, which displays a histogram with n buckets for
      the quantizer selected on each frame.
      
      Change-Id: I59b020c26b0acae0b938685081d9932bd98df5c9
      3fde9964
  21. 27 Apr, 2011 - 1 commit
  22. 25 Apr, 2011 - 2 commits
  23. 15 Apr, 2011 - 1 commit
    • Johann's avatar
      remove executable bit · f64f425a
      Johann authored
      source files are not executable
      
      Change-Id: Id2c7294695a22217468426423979f68f02d82340
      f64f425a
  24. 30 Mar, 2011 - 1 commit
    • John Koleszar's avatar
      vpxenc: die on realloc failures · 26b6a3b0
      John Koleszar authored
      Identified as a possible cause of issue #308, the code was silently
      ignoring realloc failures, which would lead to corruption, memory
      leaks, and likely a crash. The best we can do in this case is die
      gracefully.
      
      Change-Id: Ie5f6a853d367015be5b9712bd742778f3baeefd9
      26b6a3b0
  25. 21 Mar, 2011 - 1 commit
    • John Koleszar's avatar
      Allow specifying --end-usage by enum name · 500fec2d
      John Koleszar authored
      Map an enum to the --end-usage values, so you can specify
      --end-usage=cq instead of --end-usage=2. The numerical values still
      work for historical scripts, etc, but this is more user friendly.
      
      Change-Id: I445ecd9638f801f5924a71eabf449bee293cdd34
      500fec2d
  26. 07 Mar, 2011 - 1 commit
    • Ralph Giles's avatar
      Fix format-string warning · fe9a604b
      Ralph Giles authored
      Cast size_t to (unsigned long) and print it with the %lu format
      string, which is more portable than C99's explict %zu for size_t.
      
      This truncates on Windows x64 but otherwise works on 32 and 64 bit
      platforms. In practice the stats file is unlikely to be so large.
      
      Change-Id: I0432b3acf85fc6ba4ad50640942e1ca4614b21cb
      fe9a604b
  27. 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
  28. 07 Jan, 2011 - 1 commit
    • Paul Wilkins's avatar
      CQ Mode · e0846c9c
      Paul Wilkins authored
      The merge includes hooks to for CQ mode and other code
      changes merged from the test branch.
      
      CQ mode attempts to maintain a more stable quantizer within a clip
      whilst also trying to adhere to a guidline maximum bitrate.
      
      The existing target data rate parameter is used to specify the
      guideline maximum bitrate.
      
      A new parameter allows the user to specify a target CQ level.
      
      For normal (non kf/gf/arf) frames, the quantizer will not drop BELOW the
      user specified value (0-63). However, in some cases the encoder may
      choose to impose a target CQ that is above that specified by the user,
      if it estimates that consistent use of the target value is not compatible
      with guideline maximum bitrate.
      
      Change-Id: I2221f9eecae8cc3c431d36caf83503941b25e4c1
      e0846c9c
  29. 23 Dec, 2010 - 1 commit
    • James Berry's avatar
      vpxenc stats_close() memleak fix · 74e8446e
      James Berry authored
      stats_close() was not freeing memory for
      single pass runs.  It now takes in arg_passes
      to determine when it should free memory.
      
      Change-Id: I6623b7e30b76f9bf2e16008490f9b20484d03f31
      74e8446e
  30. 17 Dec, 2010 - 1 commit
    • John Koleszar's avatar
      Add psnr/ssim tuning option · b0da9b39
      John Koleszar authored
      Add a new encoder control, VP8E_SET_TUNING, to allow the application
      to inform the encoder that the material will benefit from certain
      tuning. Expose this control as the --tune option to vpxenc. The args
      helper is expanded to support enumerated arguments by name or value.
      
      Two tunings are provided by this patch, PSNR (default) and SSIM.
      Activity masking is made dependent on setting --tune=ssim, as the
      current implementation hurts speed (10%) and PSNR (2.7% avg,
      10% peak) too much for it to be a default yet.
      
      Change-Id: I110d969381c4805347ff5a0ffaf1a14ca1965257
      b0da9b39
  31. 13 Dec, 2010 - 1 commit
    • James Berry's avatar
      fixed vpxenc bug where ivf files would be read incorrectly · 136bd245
      James Berry authored
      read_frame would incorrectly insert detect->buf into img
      for ivf files.  detect->position now set to 4 if input file is
      detected to be ivf in file_is_ivf to keep this from occuring.
      
      Change-Id: I5e235dd3033985bc62707a35c13af5984620208e
      136bd245
  32. 25 Nov, 2010 - 1 commit
    • Pascal Massimino's avatar
      allow dimensions as low as 1 pixel · fd9f9dc0
      Pascal Massimino authored
      remove warning comment in vpxenc.c: in case of 1x1 picture,
      detect_bytes will be equal to '3' and we'll fall back to
      RAW_TYPE.
      fix read_frame() by tracking the pre-read buffer length
      in the struct detect
      
      Change-Id: If1ed86ee5260dcdbc8f9d10da6cbb84a4cc2f151
      fd9f9dc0
  33. 16 Nov, 2010 - 1 commit
  34. 12 Nov, 2010 - 1 commit