Skip to content
Snippets Groups Projects
  1. Dec 04, 2017
    • Jingning Han's avatar
      Add the speed feature structure for codec dev · b49c6aea
      Jingning Han authored
      This commit re-structures the speed feature setup for the codec
      development purpose. Instead of progressively reducing encoder
      complexity at the expense of incremental coding loss, we allow a
      separate set of speed features, each corresponds to a certain
      category of coding units:
      
      1 << 0: transform coding
      1 << 1: inter prediction
      1 << 2: intra prediction
      1 << 3: block partition
      1 << 4: loop filters
      1 << 5: rd early skip
      
      [6 - 7] are left open for next adjustment.
      
      It is constructed to facilitate the codec development purpose.
      When working on a coding functions, one could choose to turn on
      one or more less related coding units to speed up the evaluation
      process. For example, to test a transform related experiment, one
      could set
      --dev-sf=2, 6, or 22
      which corresponds to turning on:
      2 - inter prediction speed features,
      6 - both inter / intra speed features,
      22 - inter / intra, and loop filter features.
      
      The goal is to allow faster experimental verification during the
      development process. With the experiment in a stable state, we
      can evaluate its performance in speed 0 at higher confidence level.
      
      Change-Id: Ib46c7dea2d2a60204c399dc01f10262c976adf0d
      b49c6aea
    • Imdad Sardharwalla's avatar
      Added monochrome option to the decoder. · 730c8054
      Imdad Sardharwalla authored
      When this is set (use --monochrome), all decoded frames
      will be given constant chroma planes.
      
      If the rawvideo option is used in conjunction with the
      monochrome option (i.e. --monochrome --rawvideo), the
      written output will only consist of the Y (luma) plane.
      
      Change-Id: I967817f1c3ebb1162fa9771b51cf6431120b835c
      730c8054
  2. Dec 02, 2017
    • Tom Finegan's avatar
      OBU type/metadata disambiguation. · 3e632744
      Tom Finegan authored
      - OBU_TD => OBU_TEMPORAL_DELIMITER
      - METADATA_TYPE => OBU_METADATA_TYPE
      - Prefix OBU_METADATA_TYPE enum vals with "OBU_".
      
      BUG=aomedia:1046
      
      Change-Id: I0c63d36b77905520e427e6b77fbf4cbedabc7e51
      3e632744
    • Tom Finegan's avatar
      Make OBU types part of the public API. · 95d900a2
      Tom Finegan authored
      And do so unconditionally: It's harmless to allow the
      types to be defined without CONFIG_OBU enabled.
      
      BUG=aomedia:1046
      
      Change-Id: I5b9a3a68e4e70b07137e381f05345d2ea609a09a
      95d900a2
  3. Nov 27, 2017
    • Yaowu Xu's avatar
      Fix a ISO C90 warning · e65e12f5
      Yaowu Xu authored
      2147483648 by itself can not be represented by a 32 bit "int".
      
      Change-Id: I738573fed9f53c00b04693306acb9ad43a6485a9
      e65e12f5
  4. Nov 25, 2017
  5. Nov 10, 2017
    • Rupert Swarbrick's avatar
      Plumb in a "monochrome" flag · e0b15997
      Rupert Swarbrick authored
      This bit appears in the sequence header. At the moment, it does
      nothing, but it will mean that we don't encode (or read) chroma
      planes.
      
      This patch adds the flag to the sequence header, and also adds an
      encoder option (--monochrome) which enables it. At the moment, this
      doesn't do anything except cause the bit to be set correctly in the
      header.
      
      Change-Id: If5598412c1c75101553d7f8f9098f9ed1163514e
      e0b15997
    • Steinar Midtskogen's avatar
      Add command-line -enable-cdef option · e44c6224
      Steinar Midtskogen authored
      Change-Id: Ic061eeab1563c249fd9d3738025aac40bc3ee542
      e44c6224
  6. Nov 06, 2017
    • Yunqing Wang's avatar
      Update the encoder flags for reference frames using and updating · 9a50fec3
      Yunqing Wang authored
      Updated the encoder flags for externally setting reference frames using
      and updating to include latest changes in AV1.
      
      1. For what reference frames to use, always initilize
      cpi->ref_frame_flags with AOM_REFFRAME_ALL at the beginning of encoding
      a frame. The internal ref_frame_flags starts from external flags. Added
      AOM_EFLAG_NO_REF_LAST2 and AOM_EFLAG_NO_REF_LAST3 for LAST2 and LAST3.
      
      2. For what reference frames to update, added ext_refresh_bwd_ref_frame
      and ext_refresh_alt2_ref_frame for BWD and ALT2. Also, removed
      AOM_EFLAG_FORCE_GF and AOM_EFLAG_FORCE_ARF since these are never
      actually used. They can be added back if needed later.
      
      Change-Id: I1e4429290f09bfcd1b26f2babc0cf556fc6fbc6c
      9a50fec3
  7. Oct 26, 2017
  8. Oct 16, 2017
  9. Oct 12, 2017
  10. Oct 07, 2017
    • Urvang Joshi's avatar
      FRAME_SUPERRES: Rework to use scale factor of 8/D · de71d142
      Urvang Joshi authored
      Earlier, the superres scale was in the form of:
      N/16, where N ranged from 8 to 16.
      
      We change this to the form:
      8/D, where D ranges from 8 to 16.
      
      This helps on the decoder side, by making it possible to work on 8x8
      blocks at a time.
      
      Change-Id: I6c72d4b3e8d1c830e61d4bb8d7f6337a100c3064
      de71d142
  11. Oct 04, 2017
    • Dominic Symes's avatar
      Fix for issue 844 · c27f5424
      Dominic Symes authored
      Change the foreach_rtile_in_tile() function to call av1_tile_set_row/col
      to calculate tile borders, rather than calculate tile borders itself.
      This will then allow variable sized tiles.
      
      Also remove some unused set tile width/height defines from aomcx.h
      
      BUG=aomedia:844
      
      Change-Id: I356c90cb4189b904ca1d6e57939582b2e92f3162
      c27f5424
    • Dominic Symes's avatar
      MAX_TILE: Allow list of tile widths/heights · 26ad0b22
      Dominic Symes authored
      The aomenc API is modified to allow --tile_width and --tile_height to take a list of sizes.
      For example, --tile_width=2,3 will give tiles of widths 2,3,2,3,... until the image width
      is exhausted. --tile_width=2 will still work to gives tiles of width 2.
      
      Change-Id: I2afa14d404557aa8b7341b20f7477590e03e0bdb
      26ad0b22
  12. Sep 29, 2017
    • Yaowu Xu's avatar
      Fix a TODO on max number of segments · c5bf1e06
      Yaowu Xu authored
      Change-Id: Ic1893cb9e6535e828035d11f90e8d1426d808269
      c5bf1e06
    • Ryan Overbeck's avatar
      Add the lightfield encoder and decoder examples · a5fefa76
      Ryan Overbeck authored
      1. Configure with --enable-experimental --enable-ext-tile and run "make"
      to build.
      2. Run "make test" to download lightfield test data: vase10x10.yuv.
      3. Run lightfield encoder to encode whole lightfield:
        examples/lightfield_encoder 1024 1024 vase10x10.yuv vase10x10.webm 10 10 5
      4. Run lightfield decoder to decode a single tile:
        examples/lightfield_decoder vase10x10.webm vase_tile.yuv 10 10 3 4 5 10 5
      
      Note: Enabled use of AOME_USE_REFERENCE(previously deprecated) for this
      example.
      
      Change-Id: I657ab6e99ba1e2d1bf99ec25a3c4686fc80bc9bb
      a5fefa76
  13. Sep 27, 2017
    • Dominic Symes's avatar
      MAX_TILE experiment: add explicit tiles · f58f111f
      Dominic Symes authored
      This patch is designed to complete the CONFIG_MAX_TILE experiment.
      It adds the following features:
      - Explicit tiles of same width can be signalled with command line --tile_width
      - Explicit tiles of same hieght can be signalled with command line --tile_height
      - max_tile now works with the depenedent horizontal tiles experiment
      - additional checking added to ensure maximum number of rows/columns <= 64
      - one fix to the tile group code for when the number of tiles is not a power of two
      
      Change-Id: I749a68fdb3dcdd8d1ced2b3558f3817e4b832c06
      f58f111f
  14. Sep 26, 2017
  15. Sep 25, 2017
  16. Sep 16, 2017
    • Deb Mukherjee's avatar
      Add a q index based frame superres mode · 7166f22a
      Deb Mukherjee authored
      Refactors and adds superres-mode 3 and associated
      paramters --superres-qthresh and --superres-kf-qthresh
      that are used to trigger superres mode when the qindex
      for any frame exceeds the thresholds provided for non-key
      and key-frames respenctively. The superres scale factor
      numerator is progressively reduced from 16 starting from
      that q threshold following a fixed slope.
      
      Change-Id: If1c782993667a6fbaaa01bbde77c4924008c0d28
      7166f22a
  17. Aug 18, 2017
    • Tom Finegan's avatar
      Make CONFIG_COLORSPACE_HEADERS public API changes unconditional. · 01d43e1f
      Tom Finegan authored
      Avoid changing the public API based on an experiment flag:
      
      - Remove aom_config.h include from aom_image.h.
      - Unconditionally include the existing API additions.
      - Add some missing doc comments (silences Doxygen warnings).
      - Return an error when using ctrl flags that require
        CONFIG_COLORSPACE_HEADERS when it's not enabled.
      - Move colorspace_headers to the correct section of configure.
      - Move CONFIG_COLORSPACE_HEADERS to the correct section of
        aom_config_defaults.cmake.
      - clang-format style check appeasement
      
      Change-Id: I7b5d72c6f9f1a5561409d7813ba59180d98d8805
      01d43e1f
  18. Aug 17, 2017
    • Yushin Cho's avatar
      Add --enable-dist-8x8, rename existing '--tune' as '--tune-metric' · d808bfcf
      Yushin Cho authored
      Added 'cdef-dist' and 'daala-dist' options to --tune-metric'.
      (Actual bodies of the options will be added in later separate commits)
      
      Also, if --tune=cdef-dist or --tune=daala-dist,
      enable-dist-8x8 is automatically turned on.
      
      This commit is a part of prep-work to remove DIST_8X8, CDEF_DIST,
      and DAALA_DIST experimental flags.
      
      Change-Id: I0790b9537dfaf166cb59741997ae27da10697a33
      d808bfcf
  19. Aug 12, 2017
  20. Aug 04, 2017
  21. Aug 03, 2017
  22. Jul 14, 2017
    • Sebastien Alaiwan's avatar
      Unify the many definitions of NELEMENTS · ed9e0d0b
      Sebastien Alaiwan authored
      Change-Id: Ie52ce24ca9eca272dfacfb17483ec7b7f2c126d4
      ed9e0d0b
    • Yunqing Wang's avatar
      Make EXT_TILE compatible with TILE_GROUPS · eeb08a9b
      Yunqing Wang authored
      Added a 1-bit flag 'large_scale_tile'. If it is 0 that is the default value,
      use normal tile coding in TILE_GROUPS. If it is 1, use large-scale tile
      coding in EXT_TILE.
      
      At large_scale_tile=1 case, if single-tile-decoding is required, then the
      loopfilter is disabled.
      
      Related API and unit tests were modified.
      
      Change-Id: I3ba12dc3d80ccf1ab21543ab3b16c02282c34e3b
      eeb08a9b
  23. Jun 16, 2017
  24. Jun 15, 2017
    • Sebastien Alaiwan's avatar
      Fix unit tests with --disable-lowbitdepth · 8b7a4e16
      Sebastien Alaiwan authored
      This moves up to the main the decision of which coding path to use,
      aligning the decoder's logic on the encoder's logic.
      
      Change-Id: I61c709ca1160aefb156d0be25cab8bb1c20ff92a
      8b7a4e16
    • Deb Mukherjee's avatar
      Unify and clean up resize arguments · 29e40a65
      Deb Mukherjee authored
      Unifies the command line arguments for resize and superes.
      Removes resize arguments that are currently unused.
      
      Change-Id: I1362dffceb8257cee539f92679d1e8d79df08e66
      29e40a65
    • Fergus Simpson's avatar
      frame_superres: Add aomenc argument · c4e78942
      Fergus Simpson authored
      Adds "superres-mode" and "superres-numerator" arguments to configure
      superres scaling.
      
      There are only two modes right now: SUPERRES_FIXED and SUPERRES_DYNAMIC.
      0 sets the fixed mode and 1 sets the dynamic mode.
      
      For the fixed mode superres will scale to the provided numerator where
      possible. The cumulative scale change over resizing and superres is
      limited to 1/2, so it may have to back off.
      
      For the dynamic mode, the provided numerator will be used as the initial
      numerator. Asides from that it's just random for now.
      
      Change-Id: Ibae01c77abba2599fbf51096459d09ddca458d4f
      c4e78942
  25. Jun 14, 2017
  26. May 16, 2017
  27. May 09, 2017
  28. May 04, 2017
    • Ralph Giles's avatar
      Remove the aom_codec_stream_info_t size field. · afe71d9d
      Ralph Giles authored
      The aom_codec_stream_info struct had an `sz` field. It looks like
      this was intended to implement polymorphism, where individual
      codecs under the aom API could extend the struct with additional
      members while maintaining common fields like frame size.
      
      However, no codec-specific initializer was ever provided,
      requiring callers to manually set this field to the expected
      value. The extension mechanism isn't used by the av1 codec,
      and also wasn't used by the vp8 or vp9 codecs in the libvpx
      implementation.
      
      Since it's not used, this commit removes the layer of indirection,
      removing the confusing initialization burden and using
      aom_codec_stream_info_t directly within the av1 decoder.
      
      Change-Id: I4372a286b1d03518345c83b01c2f51db6cefe211
      afe71d9d
  29. Apr 26, 2017
    • Yunqing Wang's avatar
      Add the motion vector unit test · ff4fa068
      Yunqing Wang authored
      This unit test was ported from VP9. To prevent the motion vector out of
      range bug, added a motion vector unit test. In the 4k video encoding,
      always forced to use extreme motion vectors and also encouraged to use
      INTER modes. In the decoding, checked if the motion vector was valid,
      and also checked the encoder/decoder mismatch.
      
      Change-Id: I1c72ea7c32a3cec9c67f1bbdc168e60507e57516
      ff4fa068
  30. Apr 24, 2017
    • Fangwen Fu's avatar
      Extend delta q with segments · 6160df29
      Fangwen Fu authored
      This is the first patch for ext_delta_q experiment.
      * Allow delta q to work with segment features
      
      Change-Id: I9455ebb3b5b23b41daa4afa1149672a20d3a3f2c
      6160df29
  31. Apr 20, 2017
    • Yunqing Wang's avatar
      ext_tile: add 2 tile encoding modes · d8cd55f4
      Yunqing Wang authored
      Added 2 tile encoding modes:
      TILE_NORMAL mode supports the large-scale tile coding up to 1024 x 1024
      tiles;
      TILE_VR mode supports the large-scale tile coding and also the decoding
      of a single tile.
      
      TILE_NORMAL mode allows the non-vr content to be encoded in multiple tiles
      without using the coding tool that are designed for vr applications.
      
      Change-Id: Id804806a1bbcb916b7f5dc7e2c5509d88f3defcb
      d8cd55f4
Loading