1. 05 Dec, 2016 1 commit
  2. 01 Dec, 2016 1 commit
    • Jingning Han's avatar
      Add 2x2 block unit syntax · f1702dde
      Jingning Han authored
      Add 2x2 block size syntax to the codec system. It prepares for the
      4x4 coding block unit for 420 format. This change retains the same
      coding statistics.
      
      Change-Id: If8e9a31bd6b4b75bc994539dc4dd8021d455ba57
      f1702dde
  3. 23 Nov, 2016 1 commit
  4. 22 Nov, 2016 2 commits
  5. 29 Oct, 2016 1 commit
    • Jingning Han's avatar
      Use the actual transform block size for loop filter selection · 9fb1d69e
      Jingning Han authored
      Parse the recursive transform block partition to fetch the actual
      transform size. Use this correct transform size to select the
      corresponding loop filter kernel. This slightly improves the coding
      performance of recursive transform partition for hdres to 0.14%.
      
      Change-Id: Ibe8bc3fdd0d222a4f1fb8156c56a407bec052b9b
      9fb1d69e
  6. 26 Oct, 2016 4 commits
  7. 20 Oct, 2016 1 commit
  8. 19 Oct, 2016 1 commit
  9. 12 Oct, 2016 1 commit
    • Yaowu Xu's avatar
      port changes on lpf from libvpx/nextgenv2 · 57ad0a05
      Yaowu Xu authored
      Manually cherry-picked the following commits:
      4b5e462d Upgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2
      3ea537c0 lpf_8_test: remove unneeded function wrapper
      110d3778 remove loopfilter 'count' param TODOs
      9b44d9d0 split vpx_highbd_lpf_horizontal_16 in two
      1b519fb6 split vpx_lpf_horizontal_16 in two
      e7a23d70 vpx_highbd_lpf_horizontal_4: remove unused count param
      51718573 vpx_highbd_lpf_horizontal_8: remove unused count param
      3c1019e4 vpx_highbd_lpf_vertical_4: remove unused count param
      72a9f06a vpx_highbd_lpf_vertical_8: remove unused count param
      b1e97c6a vpx_lpf_horizontal_4: remove unused count param
       ab25e46pgrade vpx_lpf_{vertical,horizontal}_4 mmx to sse2
      bd5a5bb5 vpx_lpf_horizontal_8: remove unused count param
      109a47b3 vpx_lpf_vertical_4: remove unused count param
      37225744 vpx_lpf_vertical_8: remove unused count param
      47dee375 lpf_8_test: add missing dspr2 tests
      4fec4a8e lpf_8_test: add missing vpx_lpf_horizontal_4 tests
      c3f2c8ad lpf_8_test: add missing vpx_lpf_vertical_4 tests
      45a7b5eb lpf_8_test: simplify function wrapper generation
      
      Change-Id: I0e9212497bbf30de37b19cd2d6ea63b505abe06d
      57ad0a05
  10. 30 Sep, 2016 1 commit
  11. 28 Sep, 2016 3 commits
  12. 26 Sep, 2016 4 commits
  13. 19 Sep, 2016 1 commit
  14. 17 Sep, 2016 2 commits
    • clang-format's avatar
      apply clang-format · f9562aea
      clang-format authored and James Zern's avatar James Zern committed
      Change-Id: I863fc85c7dc1b4f4e5740ac086fe1a852c62d26e
      f9562aea
    • Debargha Mukherjee's avatar
      Enable tile-adaptive restoration · 5cd2ab95
      Debargha Mukherjee authored
      Includes a major refactoring/enhancement to support
      tile-adaptive switchable restoration. The framework can be
      readily extended to add more restoration schemes in the
      future. Also includes various cleanups and fixes.
      
      Specifically the framework allows restoration to be conducted
      on tiles such that each tile can be either left unrestored, or
      use bilateral or wiener filtering.
      
      There is a modest improvemnt in coding efficiency (0.1 - 0.2%).
      
      Further enhancements will be added subsequently to improve coding
      efficiency and complexity.
      
      Change-Id: I5ebedb04785ce1ef6f324abe209e925c2d6cbe8a
      5cd2ab95
  15. 06 Sep, 2016 1 commit
    • Yue Chen's avatar
      Make RECT_TX(>=8x8) work with VAR_TX · a1e48dcc
      Yue Chen authored
      Bitstream syntax:
      For a rectangular inter block, 'rect_tx' flag is sent to indicate if
      the biggest rect tx is used. If no, continue to decode regular
      recursive tx partition.
      
      Change-Id: I127e35cc619b65acb5e9a0717f399cdcdb73fbf0
      a1e48dcc
  16. 05 Sep, 2016 1 commit
    • Debargha Mukherjee's avatar
      Enable rectangular transforms for UV · 2f12340f
      Debargha Mukherjee authored
      Uses an array to map block sizes, y tx sizes, and subsampling
      factors to various transform sizes for UV.
      
      Results improve by 0.1-0.2%
      
      Change-Id: Icb58fd96bc7c01a72cbf1332fe2be4d55a0feedc
      2f12340f
  17. 02 Sep, 2016 1 commit
  18. 01 Sep, 2016 2 commits
  19. 23 Aug, 2016 1 commit
  20. 22 Aug, 2016 1 commit
  21. 12 Aug, 2016 1 commit
  22. 04 Aug, 2016 1 commit
    • Zoe Liu's avatar
      Code refactoring on Macros related to ref frame numbers · 1af28f02
      Zoe Liu authored
      We have renamed following Macros to avoid name confusion:
      
      REFS_PER_FRAME --> INTER_REFS_PER_FRAME
      (= ALTREF_FRAME - LAST_FRAME + 1)
      MAX_REF_FRAMES --> TOTAL_REFS_PER_FRAME
      (= ALTREF_FRAME - INTRA_FRAME + 1)
      
      INTER_REFS_PER_FRAME specifies the maximum number of reference frames
      that each Inter frame may use.
      TOTAL_REFS_PER_FRAME is equal to INTER_REFS_PER_FRAME + 1, which
      counts the INTRA_FRAME.
      
      Further, at the encoder side, since REF_FRAMES specifies the maximum
      number of the reference frames that the encoder may store, REF_FRAMES
      is usually larger than INTER_REFS_PER_FRAME. For example, in the
      ext-refs experiment, REF_FRAMES == 8, which allows the encoder to
      store maximum 8 reference frames in the buffer, but
      INTER_REFS_PER_FRAME equals to 6, which allows each Inter frame may
      use up to 6 frames out of the 8 buffered frames as its references.
      Hence, in order to explore the possibility to store more reference
      frames in future patches, we modified a couple of array sizes to
      accomodate the case that the number of buffered reference frames is
      not always equal to the number of the references that are being used
      by each Inter frame.
      
      Change-Id: I19e42ef608946cc76ebfd3e965a05f4b9b93a0b3
      1af28f02
  23. 21 Jul, 2016 1 commit
    • Debargha Mukherjee's avatar
      Rectangular transforms 4x8 & 8x4 · e5848dea
      Debargha Mukherjee authored
      Added a new expt rect-tx to be used in conjunction with ext-tx.
      [rect-tx is a temporary config flag and will eventually be
      merged into ext-tx once it works correctly with all other
      experiments].
      
      Added 4x8 and 8x4 tranforms for use initially with rectangular
      sub8x8 y blocks as part of this experiment.
      
      There is about a -0.2% BDRATE improvement on lowres, others pending.
      
      When var-tx is on rectangular transforms are currently not used.
      That will be enabled in a subsequent patch.
      
      Change-Id: Iaf3f88ede2740ffe6a0ffb1ef5fc01a16cd0283a
      e5848dea
  24. 14 Jun, 2016 1 commit
    • Geza Lore's avatar
      Select segment based loopfilter strength for supertx blocks. · 44b91a0e
      Geza Lore authored
      Segment based loopfilter strength for supertx coded blocks is now
      selected based on the minimum of all segment IDs within a supertx
      coded block (same as the quantiser settings).
      
      Change-Id: Ib056bd0d05f6a1d3b512a76deb4e2ad4db0f7dc4
      44b91a0e
  25. 28 Apr, 2016 1 commit
  26. 23 Apr, 2016 1 commit
  27. 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
  28. 01 Apr, 2016 1 commit
  29. 31 Mar, 2016 1 commit