1. 29 Nov, 2017 1 commit
    • James Zern's avatar
      vpx{enc,dec}: add --help · c5f5f4ed
      James Zern authored
      only output short usage to stderr on error, with --help use stdout
      
      Change-Id: I7089f3bca829817e14b14c766f4f3eaee6f54e5c
      c5f5f4ed
  2. 13 Nov, 2017 1 commit
    • paulwilkins's avatar
      New content type to improve grain retention. · a73cee28
      paulwilkins authored
      For new VP9 only content type adjust  the rate distortion and ARF
      filter based on the relative spatial variance of the source and
      reconstruction.
      
      In regards to the RD loop the method favors modes where the
      reconstruction variance is similar to the source variance. However it
      is currently only applied to regions where the source variance is quite
      low.
      
      For very low variance blocks it applies a further bias against intra
      coding and large prediction block sizes (the later in particular limit
      the usefulness of the loop filter).
      
      The final part of this change is to lower the strength of the ARF
      filter for blocks where the source has very low spatial variance, to
      encourage some low amplitude texture or noise to pass through
      the filter.
      
      This change improves the retention of film grain and fine noise /
      texture in spatially flat regions, but as expected causes a significant
      drop in PSNR on many clips. This is to be expected because similar
      but misaligned noise or texture will give a lower PSNR than a flat
      noise free reconstruction. However, it is worth noting that most clips
      show a strong gain in FAST SSIM.
      
      The features are enabled on the vpxenc command line by setting
      --tune-content=film.
      
      VPX_ENCODER_ABI_VERSION bumped for this change and cvbr.
      
      Change-Id: I26a4e4edfa3dc5cacead82fa701fe7a9118ccd0a
      a73cee28
  3. 08 Nov, 2017 1 commit
    • paulwilkins's avatar
      CVBR command line option. · 93e83fd7
      paulwilkins authored
      Added command line control of Corpus VBR.
      
      The new corpus vbr mode is a variant of standard
      VBR (end-usage=0) where the complexity distribution
      mid point is passed in rather than calculated for a specific
      clip or chunk.
      
      The new variant is enabled by setting a new command line
      parameter --corpus-complexity to a zero value. Omitting
      this parameter or setting it to 0 will cause the codec to use
      standard vbr mode.
      
      The correct value for a given corpus needs to be derived
      experimentally using a training set such that the average
      rate for the corpus is close to the target value.
      
      For example our using our low res test set with upper and lower
      vbr limits of 50%-150% and a corpus complexity value of 650
      gives a similar average data rate across the set to using standard
      vbr. However, with the corpus mode easier clips will be allocated
      fewer bits and harder clips more bits rather than having the same
      rate target for all.
      
      Change-Id: I03f0fc8c6fb0ee32dc03720fea6a3f1949118589
      93e83fd7
  4. 14 Sep, 2017 1 commit
    • Hui Su's avatar
      VP9 level targeting: add a new AUTO mode · c3a6943c
      Hui Su authored
      In the new AUTO mode, restrict the minimum alt-ref interval and max column
      tiles adaptively based on picture size, while not applying any rate control
      constraints.
      
      This mode aims to produce encodings that fit into levels corresponding to
      the source picture size, with minimum compression quality lost. However, the
      bitstream is not guaranteed to be level compatible, e.g., the average bitrate
      may exceed level limit.
      
      BUG=b/64451920
      
      Change-Id: I02080b169cbbef4ab2e08c0df4697ce894aad83c
      c3a6943c
  5. 01 Sep, 2017 1 commit
  6. 27 Feb, 2017 1 commit
    • Vignesh Venkatasubramanian's avatar
      vp9: Rename new_mt to row_mt · 58816014
      Vignesh Venkatasubramanian authored
      new_mt is a very generic name that will get obsolete soon enough.
      Since this is exposed as a codec control, renaming it to row_mt to
      signify row level paralellism. Also renaming the ETHREAD_BIT_MATCH
      codec control to ROW_MT_BIT_EXACT.
      
      Change-Id: Ic7872d78bb3b12fb4cf92ba028ec8e08eb3a9558
      58816014
  7. 24 Jan, 2017 1 commit
  8. 22 Dec, 2016 1 commit
  9. 19 Oct, 2016 1 commit
    • Marco's avatar
      vp8: Add control for gf boost for 1 pass cbr. · ff38b8df
      Marco authored
      Control already exists for vp9, adding it to vp8.
      Usage is only when error_resilient is off.
      Added a datarate unittest for non-zero boost.
      
      Change-Id: I4296055ebe2f4f048e8210f344531f6486ac9e35
      ff38b8df
  10. 15 Sep, 2016 1 commit
  11. 13 Sep, 2016 1 commit
    • Johann's avatar
      webmenc: remove unused 'fps' parameter · bce23ab3
      Johann authored
      Cleans -Wextra/-Wunused-parameter warning:
      warning: unused parameter ‘fps’
      
      Change-Id: Ia5f9338f11ae8d0708a87c6d4e7d7e924fc3b19b
      bce23ab3
  12. 24 Aug, 2016 1 commit
    • Yury Gitman's avatar
      Add --alt-ref-aq=<int> option · d7c20079
      Yury Gitman authored
      In the future this option will activate adaptive quantization special
      for altref frames. Encoder will  create the adaptive quantization map
      on the basis of lookahead buffers similarity which is the estimate of
      the future motion compensation performance.
      
      Change-Id: Ia0088b3babb0f9a4899c79d8d819947ba5a03df2
      d7c20079
  13. 19 Jul, 2016 1 commit
  14. 18 Jul, 2016 1 commit
    • Marco's avatar
      vp9: Allow usage of lookahead for real-time, 1 pass vbr. · 05fe0f20
      Marco authored
      Allow usage of lookahead for VBR in real-time mode, for 1 pass vbr.
      
      Current usage is for fast checking of future scene cuts/changes,
      and adjusting rate control (gf interval and active_worst/target size).
      
      Added unittests (datarate) for 1 pass vbr mode, with non-zero lag.
      
      Added an experimental option to limit QP based on lookahead.
      
      Overall positive gain in metrics on ytlive set:
      avgPNSR/SSIM up on average ~1-3%; several clips up by 5, 7%.
      
      Change-Id: I960d57dfc89de121c4824b9a9bf88d2814e74b56
      05fe0f20
  15. 18 Jun, 2016 1 commit
    • James Zern's avatar
      remove vp10 · 67edc5e8
      James Zern authored
      development has moved to the nextgenv2 branch and a snapshot from here
      was used to seed aomedia
      
      BUG=b/29457125
      
      Change-Id: Iedaca11ec7870fb3a4e50b2c9ea0c2b056a0d3c0
      67edc5e8
  16. 10 May, 2016 1 commit
    • hui su's avatar
      Add VP9 encoder API for level specification. · be3f0698
      hui su authored
      Add control API VP9E_SET_TARGET_LEVEL that allows the encoder to
      control the output bitstream level and/or keep level related
      statistics.
      
      Usage:
                     255         do not care about level (default)
                     0           keep level related stats only
                     10          target for level 1
                     11          target for level 1.1
                     .
                     .
                     .
                     62          target for level 6.2
      
      Usage for vpxenc:
      
      --target-level=0/255/10/11...
      
      Change-Id: I31d1aeca19358b893e7577b4e63748c8e614034a
      be3f0698
  17. 25 Apr, 2016 1 commit
  18. 22 Mar, 2016 1 commit
    • Yunqing Wang's avatar
      Prevent encoder crash caused by row tile dependencies · dc5f7712
      Yunqing Wang authored
      In multi-thread case, the encoder may crash if using encoder option
      tile-rows > 0. To prevent that, force tile-rows=0 in this situation.
      This is a workaround for WebM issue 1095:
      https://bugs.chromium.org/p/webm/issues/detail?id=1095
      
      The further fix can be done by adding synchronizations after a tile
      row is encoded. But this will hurt multi-threaded encoder performance.
      So, it is recommended to use tile-rows=0 while encoding with threads
      > 1.
      
      Change-Id: I656cbcc200f8d0410d09530e7981ad8f32fe7bc9
      dc5f7712
  19. 25 Feb, 2016 1 commit
  20. 12 Feb, 2016 1 commit
  21. 03 Feb, 2016 1 commit
  22. 18 Jan, 2016 1 commit
    • Ronald S. Bultje's avatar
      Use input framerate as timebase if none was explicitly specified. · 9134e9f8
      Ronald S. Bultje authored
      After patch:
      $ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30
      $ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null -
      [..]
      [Parsed_psnr_0 @ 0x7f8913c21e40] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271
      
      Before patch:
      $ vpxenc tennis_sif.y4m --end-usage=q -q 20 -o x.ivf --ivf --codec=vp9 --limit=30
      $ ffmpeg -i x.ivf -i tennis_sif.y4m -lavfi psnr -f null -
      [..]
      [Parsed_psnr_0 @ 0x7fbdaac22780] PSNR y:27.427366 u:41.505376 v:36.853477 average:28.990890 min:22.219454 max:52.509271
      $ ffmpeg -i x.ivf -f rawvideo x.yuv
      $ ffmpeg -f rawvideo -vcodec rawvideo -video_size 352x240 -framerate 29.97 -i x.yuv -i tennis_sif.y4m -lavfi psnr -f null -
      [..]
      [Parsed_psnr_0 @ 0x7fadf9e013a0] PSNR y:43.270594 u:46.300362 v:47.011172 average:44.097994 min:43.460704 max:52.509271
      
      Change-Id: Ifac2d6c2ff8379b2d318fe5cfe4be0bf1bc9f27f
      9134e9f8
  23. 14 Jan, 2016 1 commit
    • Debargha Mukherjee's avatar
      Adding an aq mode for 360 videos · 02345be9
      Debargha Mukherjee authored
      Different quality levels are used for different regions in
      the frame depending on how far they are vertically from the
      center. Specifically, three segments are used based on the
      mi_row index with respect number to the number of mi_rows in
      the frame.
      
      Change-Id: Ifc8b777bc58ea8521dffc4640360c67d99f8d381
      02345be9
  24. 16 Dec, 2015 1 commit
  25. 29 Oct, 2015 1 commit
  26. 29 Sep, 2015 1 commit
  27. 21 Aug, 2015 1 commit
    • James Zern's avatar
      vpxenc: fix DECODER ifdef · bb551934
      James Zern authored
      CONFIG_VP10_ENCODER -> CONFIG_VP10_DECODER
      
      Change-Id: I6f1a798835acc4ef66bd2c5d6ffb02247c74b1d6
      bb551934
  28. 17 Aug, 2015 2 commits
  29. 14 Aug, 2015 1 commit
    • Yaowu Xu's avatar
      Remove vp10's build dependency on vp9 · 72889a2a
      Yaowu Xu authored
      CONFIG_VP9_HIGHBITDEPTH is currently used by both vp9 and vp10, but in
      many place outside vp9/vp10, the macro was used in conjunction of
      CONFIG_VP9. This created a dependency on vp9 for vp10 to build. This
      commit removes the dependency by use CONFIG_VP9_HIGHBITDEPTH only in
      these places.
      
      Change-Id: I8cc007fc9cf132394c6498ce6759e606b64a6ad0
      72889a2a
  30. 12 Aug, 2015 3 commits
    • Yaowu Xu's avatar
      Add vpxenc help info · 2b18c9a0
      Yaowu Xu authored
      1. information on --test-decode
      2. vp10 specific parameters, currently shared with vp9
      
      Change-Id: Ida4b691052441e68b9352746988027e5a2a26f48
      2b18c9a0
    • Jingning Han's avatar
      Fix high bit depth in vp10 codebase · 8af092db
      Jingning Han authored
      Change-Id: Iacbfac29898ac7954eb6375e83873dbb7390fd47
      8af092db
    • Jingning Han's avatar
      Fork VP9 and VP10 codebase · 3ee6db6c
      Jingning Han authored
      This commit folks the VP9 and VP10 codebase and makes libvpx
      support VP8, VP9, and VP10.
      
      Change-Id: I81782e0b809acb3c9844bee8c8ec8f4d5e8fa356
      3ee6db6c
  31. 06 Jul, 2015 1 commit
    • Debargha Mukherjee's avatar
      Expose params min-gf-interval/max-gf-interval · 98526433
      Debargha Mukherjee authored
      Adds two new vp9 parameters --min-gf-interval and --max-gf-interval
      to enable testing based on frequency of alt-ref frames.
      
      Also adds a unit-test to test enforcement of min-gf-interval.
      
      For both these parameters the default value is 0, which indicates
      they are picked by the encoder, based on resolution and framerate
      considerations. If they are greater than zero, the specified
      parameter is honored.
      
      (Additional note by paulwilkins)
      Note that there is a slight oddity in that key frames are also GFs and
      considered part of  GF only group. However they are treated as not
      being part of an arf group because for arf groups the previous GF is
      assumed to be the terminal or overlay frame for the previous group.
      
      (end note)
      
      Change-Id: Ibf0c30b72074b3f71918ab278ccccc02a95a70a0
      98526433
  32. 05 Jun, 2015 2 commits
  33. 04 Jun, 2015 1 commit
  34. 12 May, 2015 2 commits
  35. 13 Mar, 2015 1 commit
    • Yaowu Xu's avatar
      Provide information on codec controls · 268f1066
      Yaowu Xu authored
      The commit updates the comments in vp8cx.h to make it clear which
      codec support each of codec control functions.
      
      Change-Id: Ibf876e289d4325bbb61ce19311da60d384624c2f
      268f1066