1. 07 Jan, 2014 1 commit
  2. 25 Nov, 2013 2 commits
    • Tom Finegan's avatar
      vpxenc: Move config check code into its own source files. · 249366b1
      Tom Finegan authored
      - Add command line args that allow display of warnings without prompting
        for user input.
      - Extend warning code to make it somewhat scalable.
      
      Change-Id: I2bad8f9315f6eed120c2e1bbe0a2a5ede15fbf35
      249366b1
    • Paul Wilkins's avatar
      In frame Q adjustment experiment. · 644bd87e
      Paul Wilkins authored
      The idea here is to allow "in frame" adjustment of the final Q
      value used to encode each SB64, using segmentation.
      
      There is also adjustment of the rd mult in regions of overspend.
      
      Activated using aq_mode=2
      
      Change-Id: I2f140cd898c9f877c32cd6d2e667f5e11ada4b1c
      644bd87e
  3. 22 Nov, 2013 1 commit
  4. 21 Nov, 2013 2 commits
  5. 15 Nov, 2013 2 commits
  6. 12 Nov, 2013 1 commit
  7. 11 Nov, 2013 1 commit
  8. 08 Nov, 2013 1 commit
  9. 06 Nov, 2013 1 commit
    • Tom Finegan's avatar
      Move WebM writing support out of vpxenc.c. · 03848f5c
      Tom Finegan authored
      This is mainly a clean up patchset. It moves the WebM writing support
      out of vpxenc and into its own source file. Changes to tools_common and
      vpxdec result from relocation of shared bits of code.
      
      Change-Id: Iee55d3285f56e0a548f791094fb14c5ac5346a26
      03848f5c
  10. 16 Oct, 2013 1 commit
  11. 07 Oct, 2013 1 commit
  12. 24 Sep, 2013 1 commit
  13. 19 Sep, 2013 1 commit
  14. 18 Sep, 2013 1 commit
  15. 06 Sep, 2013 1 commit
    • Deb Mukherjee's avatar
      Support a constant quality mode in VP9 · e378a89b
      Deb Mukherjee authored
      Adds a new end-usage option for constant quality encoding in vpx. This
      first version implemented for VP9, encodes all regular inter frames
      using the quality specified in the --cq-level= option, while encoding
      all key frames and golden/altref frames at a quality better than that.
      
      The current performance on derfraw300 is +0.910% up from bitrate control,
      but achieved without multiple recode loops per frame.
      
      The decision for qp for each altref/golden/key frame will be improved
      in subsequent patches based on better use of stats from the first pass.
      Further, the qp for regular inter frames may also be varied around the
      provided cq-level.
      
      Change-Id: I6c4a2a68563679d60e0616ebcb11698578615fb3
      e378a89b
  16. 21 Aug, 2013 1 commit
    • Deb Mukherjee's avatar
      Make "good" quality 2-pass vpxenc encoding default · 0d8723f8
      Deb Mukherjee authored
      Currently, the best quality mode in VP9 is not very well developed,
      and unnecessarily makes the encode too slow. Hence the command line
      default is changed to "good" quality. Also, the number of passes
      default is changed to 2 passes as well, since 1-pass encoding is
      not very efficient in VP9.
      
      Besides, a number of VP9 defaults are set to the currently
      recommended settings. With these changes, vpxenc
      run with --codec=vp9 --kf-max-dist=9999 --cpu-used=0 should
      work about the same as our borg results.
      Note when the --cpu-used=0 option is dropped there will be a slight
      difference in the output, because of a difference in the cpu-used
      value for the first pass. Specifically, the default when unspecified
      is to use cpu_used=1 for the first pass and cpu_used=0 for the
      second pass. But when specified, both passes will use the cpu-used
      value specified.
      
      Note that this also changes the default for VP8 as being "good"
      but other options stay unchanged.
      
      Change-Id: Ib23c1a05ae2f36ee076c0e34403efbda518c5066
      0d8723f8
  17. 15 Aug, 2013 1 commit
    • James Zern's avatar
      vpxenc: open output file after setting pass # · 8cb09719
      James Zern authored
      write_ivf_file_header would incorrectly skip writing the file header in
      the 2nd pass, causing the initial frame header to be overwritten on
      close potential causing an overly large frame header to be read and a
      crash.
      
      most likely broken since:
      9e50ed7f vpxenc: initial implementation of multistream support
      
      fixes issue #585
      
      Change-Id: I7e863e295dd6344c33b3e9c07f9f0394ec496e7b
      8cb09719
  18. 25 Jun, 2013 1 commit
  19. 17 Jun, 2013 1 commit
  20. 13 Jun, 2013 1 commit
    • John Koleszar's avatar
      Add vp9 test vectors unit test · 119c9812
      John Koleszar authored
      These files can stand in until we get proper syntax vectors. They
      should provide some additional assurance against inadvertant
      bitstream changes.
      
      Change-Id: I12f6c9a5f054e30df40a7ff1f33145abf7e1d59d
      119c9812
  21. 11 Jun, 2013 1 commit
    • John Koleszar's avatar
      Fix mismatch check output · cc0eeda6
      John Koleszar authored
      Fixes a condition where the address of the mismatching pixels was not
      being found/printed.
      
      Change-Id: Ifac5cd3471bc2437448128591eea7c7b87e2d8fe
      cc0eeda6
  22. 10 May, 2013 1 commit
  23. 06 May, 2013 1 commit
    • John Koleszar's avatar
      Y4M input support for 4:2:2, 4:4:4, 4:4:4:4 · 8dd8287e
      John Koleszar authored
      Adds a new experiment CONFIG_NON420 that allows other chroma subsamplings
      to be passed to the codec. This commit allows the data to be passed from
      a y4m input file through vpxenc to the codec, where they're currently
      rejected. Later commits will finish support for this inside the codec.
      
      Change-Id: Ib3aac604d8cad9e24cef395fa1067f16ba7e8e43
      8dd8287e
  24. 08 Apr, 2013 1 commit
    • Jingning Han's avatar
      Clamp inferred motion vectors only · 12bf0796
      Jingning Han authored
      Clamp only the motion vectors inferred from neighboring reference
      macroblocks. The motion vectors obtained through motion search in
      NEWMV mode are constrained during the search process, which allows
      a relatively larger referencing region than the inferred mvs.
      Hence further clamping the best mv provided by the motion search may
      affect the efficacy of NEWMV mode.
      
      Synchronized the decoding process. The decoded mvs in NEWMV modes
      should be guaranteed to fit in the effective range. Put a mv range
      clamping function there for security purpose.
      
      This improves the coding performance of high motion sequences, e.g.,
      derf set:
      foreman 0.233%
      husky   0.175%
      icd     0.135%
      mother_daughter 0.337%
      pamphlet        0.561%
      
      stdhd set:
      blue_sky 0.408%
      city     0.455%
      also saw sunflower goes down by -0.469%.
      
      Change-Id: I3fcbba669e56dab779857a8126a91b926e899cb5
      12bf0796
  25. 27 Mar, 2013 1 commit
  26. 26 Mar, 2013 1 commit
    • Deb Mukherjee's avatar
      Implicit weighted prediction experiment · 23144d23
      Deb Mukherjee authored
      Adds an experiment to use a weighted prediction of two INTER
      predictors, where the weight is one of (1/4, 3/4), (3/8, 5/8),
      (1/2, 1/2), (5/8, 3/8) or (3/4, 1/4), and is chosen implicitly
      based on consistency of the predictors to the already
      reconstructed pixels to the top and left of the current macroblock
      or superblock.
      
      Currently the weighting is not applied to SPLITMV modes, which
      default to the usual (1/2, 1/2) weighting. However the code is in
      place controlled by a macro. The same weighting is used for Y and
      UV components, where the weight is derived from analyzing the Y
      component only.
      
      Results (over compound inter-intra experiment)
      derf: +0.18%
      yt: +0.34%
      hd: +0.49%
      stdhd: +0.23%
      
      The experiment suggests bigger benefit for explicitly signaled weights.
      
      Change-Id: I5438539ff4485c5752874cd1eb078ff14bf5235a
      23144d23
  27. 22 Mar, 2013 1 commit
    • Dmitry Kovalev's avatar
      Fixing fourcc for VP8 and VP9. · 8015a9ae
      Dmitry Kovalev authored
      Changing 0x00 ('') fourcc byte to 0x30 ('0'). For VP8 from
      0x00385056 to 0x30385056, for VP9 from 0x00395056 to 0x30395056.
      
      Change-Id: I26b1b603c20dd41f7aeabf8cd7893dfd5b1c8b59
      8015a9ae
  28. 14 Mar, 2013 1 commit
    • John Koleszar's avatar
      Add VP9_GET_REFERENCE control · b3c350a1
      John Koleszar authored
      This is like VP8_COPY_REFERENCE, but returns a pointer to the reference
      frame rather than a copy of it. This is useful when the application
      doesn't know what the size of the reference is, as is the case when
      scaling is in effect.
      
      Change-Id: I63667109f65510364d0e397ebe56217140772085
      b3c350a1
  29. 11 Mar, 2013 1 commit
  30. 05 Mar, 2013 1 commit
  31. 04 Mar, 2013 4 commits
    • John Koleszar's avatar
      Fix rollover and pass 1 time estimate · 406ec6b6
      John Koleszar authored
      Fixes a rollover of the cx_time variable for encodes that take
      over ~4200 seconds. Also enable the time estimate in first pass.
      
      Change-Id: Ib5a98ee71bccd79a804d709cec7260651d0b7141
      406ec6b6
    • John Koleszar's avatar
      vpxenc: support scaling prior to encoding · 7dfec960
      John Koleszar authored
      Scales the input of the encoder using libyuv's "box filter". Each stream
      may have a different width and height specified. If the width (or
      height) parameter is missing (or is explicitly set to 0) then the value
      will be calculated based on the specified height (or width) and the
      input file's dimensions, preserving its aspect ratio. Leaving the height
      unspecified behaves similarly.
      
      Change-Id: I700ef89ce54fb87588420a71c39c0e3e73b1a40e
      7dfec960
    • Ronald S. Bultje's avatar
      Don't exit on decode errors in vpxenc. · 2d13e7b3
      Ronald S. Bultje authored
      Allows the user to specify whether decode errors should be fatal or not.
      Also makes mismatches optionally fatal.
      
      Change-Id: I58cff4a82f3d42f5653b91cf348a7f669377e632
      2d13e7b3
    • John Koleszar's avatar
      Add estimated completion time to vpxenc · 60d8c505
      John Koleszar authored
      Make the progress line more useful by providing per-frame updates of
      processing frame rate and estimated time remaining.
      
      Fixes issue #534.
      
      Change-Id: Ic91551878ff4b2f5db1cedaafb588add220cfa52
      60d8c505
  32. 27 Feb, 2013 2 commits
    • John Koleszar's avatar
      Fix rollover and pass 1 time estimate · ebf8b9fc
      John Koleszar authored
      Fixes a rollover of the cx_time variable for encodes that take
      over ~4200 seconds. Also enable the time estimate in first pass.
      
      Change-Id: Ib5a98ee71bccd79a804d709cec7260651d0b7141
      ebf8b9fc
    • John Koleszar's avatar
      vpxenc: support scaling prior to encoding · 34882b9b
      John Koleszar authored
      Scales the input of the encoder using libyuv's "box filter". Each stream
      may have a different width and height specified. If the width (or
      height) parameter is missing (or is explicitly set to 0) then the value
      will be calculated based on the specified height (or width) and the
      input file's dimensions, preserving its aspect ratio. Leaving the height
      unspecified behaves similarly.
      
      Change-Id: Ic7026810b13be030826be80dc6f7fc4aaf0c35d0
      34882b9b
  33. 22 Feb, 2013 1 commit
    • Jingning Han's avatar
      Forward butterfly hybrid transform · babbd5d1
      Jingning Han authored
      This patch includes 4x4, 8x8, and 16x16 forward butterfly ADST/DCT
      hybrid transform. The kernel of 4x4 ADST is sin((2k+1)*(n+1)/(2N+1)).
      The kernel of 8x8/16x16 ADST is of the form sin((2k+1)*(2n+1)/4N).
      
      Change-Id: I8f1ab3843ce32eb287ab766f92e0611e1c5cb4c1
      babbd5d1