1. 15 Sep, 2016 1 commit
  2. 02 Sep, 2016 1 commit
  3. 01 Sep, 2016 2 commits
  4. 16 Aug, 2016 1 commit
    • Yaowu Xu's avatar
      Port commits related to clpf and qm experiments · 0818a7c8
      Yaowu Xu authored
      Manually cherry-picked following commits from AOMedia git repository:
      bb2727c2 Sort includess for "clpf.h"
      c297fd00 Add quantisation matrix range parameters.
      0527894f Add encoder option and signaling for quant matrix control.
      4106232b Turn off trellis coding for quantization matrices.
      4017fca3 Modify tests to allow quantization matrices.
      1c122c24 Add quant and dequant functions for new quant matrices.
      95a89994 Enable CLPF
      f72782bb Fix a build issue
      73bae509 Add quantisation matrices and selection functions
      33208d20 Added support for constrained low pass filter (CLPF)
      
      Change-Id: I60fc1ee1ac40e6b9d1d00affd97547ee5d5dd6be
      0818a7c8
  5. 10 Aug, 2016 1 commit
  6. 04 Aug, 2016 1 commit
  7. 28 Jul, 2016 1 commit
  8. 24 May, 2016 1 commit
    • Zoe Liu's avatar
      Fix --test-decode=warn to test mismatch · a63147ae
      Zoe Liu authored
      This patch always compares the most recent show frames between
      the encoder and the decoder to test the mismatch.
      
      Change-Id: I68a91ad0996a598231450debfd616e24992419b5
      a63147ae
  9. 11 May, 2016 1 commit
    • Yunqing Wang's avatar
      Add decoder APIs and unit tests in tile-coding experiment · 8e5e3387
      Yunqing Wang authored
      In the tile-coding experiment,
      1. In tile decoder, added 2 set control APIs:
         VP10_SET_DECODE_TILE_ROW and VP10_SET_DECODE_TILE_COL. It allowed
         users to set the range of decoding at frame level.
      2. Added a unit test while tile-coding experiment is on. It tested
         both tile encoder and decoder to make sure the encoded frame
         can be decoded as a whole frame or as independent tiles.
      
      Change-Id: I73fd0632b685047cb9376008127cde72efa3fb2b
      8e5e3387
  10. 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
  11. 02 May, 2016 1 commit
  12. 25 Apr, 2016 1 commit
  13. 07 Apr, 2016 1 commit
    • Geza Lore's avatar
      Make superblock size variable at the frame level. · 454989ff
      Geza Lore authored
      The uncompressed frame header contains a bit to signal whether the
      frame is encoded using 64x64 or 128x128 superblocks. This can vary
      between any 2 frames.
      
      vpxenc gained the --sb-size={64,128,dynamic} option, which allows the
      configuration of the superblock size used (default is dynamic). 64/128
      will force the encoder to always use the specified superblock size.
      Dynamic would enable the encoder to choose the sb size for each
      frame, but this is not implemented yet (dynamic does the same as 128
      for now).
      
      Constraints on tile sizes depend on the superblock size, the following
      is a summary of the current bitstream syntax and semantics:
      
      If both --enable-ext-tile is OFF and --enable-ext-partition is OFF:
           The tile coding in this case is the same as VP9. In particular,
           tiles have a minimum width of 256 pixels and a maximum width of
           4096 pixels. The tile width must be multiples of 64 pixels
           (except for the rightmost tile column). There can be a maximum
           of 64 tile columns and 4 tile rows.
      
      If --enable-ext-tile is OFF and --enable-ext-partition is ON:
           Same constraints as above, except that tile width must be
           multiples of 128 pixels (except for the rightmost tile column).
      
      There is no change in the bitstream syntax used for coding the tile
      configuration if --enable-ext-tile is OFF.
      
      If --enable-ext-tile is ON and --enable-ext-partition is ON:
           This is the new large scale tile coding configuration. The
           minimum/maximum tile width and height are 64/4096 pixels. Tile
           width and height must be multiples of 64 pixels. The uncompressed
           header contains two 6 bit fields that hold the tile width/heigh
           in units of 64 pixels. The maximum number of tile rows/columns
           is only limited by the maximum frame size of 65536x65536 pixels
           that can be coded in the bitstream. This yields a maximum of
           1024x1024 tile rows and columns (of 64x64 tiles in a 65536x65536
           frame).
      
      If both --enable-ext-tile is ON and --enable-ext-partition is ON:
           Same applies as above, except that in the bitstream the 2 fields
           containing the tile width/height are in units of the superblock
           size, and the superblock size itself is also coded in the bitstream.
           If the uncompressed header signals the use of 64x64 superblocks,
           then the tile width/height fields are 6 bits wide and are in units
           of 64 pixels. If the uncompressed header signals the use of 128x128
           superblocks, then the tile width/height fields are 5 bits wide and
           are in units of 128 pixels.
      
      The above is a summary of the bitstream. The user interface to vpxenc
      (and the equivalent encoder API) behaves a follows:
      
      If --enable-ext-tile is OFF:
           No change in the user interface. --tile-columns and --tile-rows
           specify the base 2 logarithm of the desired number of tile columns
           and tile rows. The actual number of tile rows and tile columns,
           and the particular tile width and tile height are computed by the
           codec ensuring all of the above constraints are respected.
      
      If --enable-ext-tile is ON, but --enable-ext-partition is OFF:
           No change in the user interface. --tile-columns and --tile-rows
           specify the WIDTH and HEIGHT of the tiles in unit of 64 pixels.
           The valid values are in the range [1, 64] (which corresponds to
           [64, 4096] pixels in increments of 64.
      
      If both --enable-ext-tile is ON and --enable-ext-partition is ON:
           If --sb-size=64 (default):
               The user interface is the same as in the previous point.
               --tile-columns and --tile-rows specify tile WIDTH and HEIGHT,
               in units of 64 pixels, in the range [1, 64] (which corresponds
               to [64, 4096] pixels in increments of 64).
           If --sb-size=128 or --sb-size=dynamic:
               --tile-columns and --tile-rows specify tile WIDTH and HEIGHT,
               in units of 128 pixels in the range [1, 32] (which corresponds
               to [128, 4096] pixels in increments of 128).
      
      Change-Id: Idc9beee1ad12ff1634e83671985d14c680f9179a
      454989ff
  14. 24 Mar, 2016 1 commit
    • Geza Lore's avatar
      Port large scale tile coding features from nextgen. · 490ba1ad
      Geza Lore authored
      If configured with --enable-ext-tile, the codec uses an alternative
      tile coding syntax in the bitstream. Changes include::
       - The maximum number of tile rows and columns is extended to 1024
         each.
       - The minimum tile width/height is 64 pixels (1 superblock).
       - A tile copy mode is added where a tile directly reuse the coded
         data of a previous tile
       - The meaning of the tile-columns and tile-rows codec parameters are
         overloaded to mean tile-width and tile-height in units of 64
         pixels.
       - All tiles should now be independent, including rows within the
         same columns, so large scale parallel, or independent decoding is
         possible.
       - vpxdec also gained the options to decode only a particular tile,
         tile row, or tile column.
      
      Changes without --enable-ext-tile:
       - All tiles should now be independent, including rows within the
         same columns, so large scale parallel, or independent decoding is
         possible.
       - vpxenc default tile configuration changed to use 1 tile column.
      
      Change-Id: I0cd08ad550967ac18622dae5e98ad23d581cb33e
      490ba1ad
  15. 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
  16. 25 Feb, 2016 1 commit
  17. 12 Feb, 2016 1 commit
  18. 03 Feb, 2016 1 commit
  19. 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
  20. 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
  21. 16 Dec, 2015 1 commit
  22. 29 Oct, 2015 1 commit
  23. 29 Sep, 2015 1 commit
  24. 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
  25. 17 Aug, 2015 2 commits
  26. 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
  27. 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
  28. 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
  29. 05 Jun, 2015 2 commits
  30. 04 Jun, 2015 1 commit
  31. 12 May, 2015 2 commits
  32. 13 Mar, 2015 2 commits
    • 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
    • Yaowu Xu's avatar
      Rename a vp9 only control with vp9e prefix · 41652906
      Yaowu Xu authored
      Also updated comments and doc to make it clear that the control is
      supported in VP9 only.
      
      Change-Id: I6f120b65135fc1185695e9e3dc29fbe0d430824b
      41652906
  33. 13 Feb, 2015 1 commit