1. 14 Apr, 2017 8 commits
  2. 13 Apr, 2017 13 commits
    • Angie Chiang's avatar
      Add breaking rule in the while loop of read_golomb · f1880e1c
      Angie Chiang authored
      The while loop may become infinite loop due to bitstream error.
      Therefore, we add a breaking rule to avoid that.
      
      Change-Id: I5bcda7dea846e280b59abc97c42baf334bca2603
      f1880e1c
    • Angie Chiang's avatar
      Use max_block_wide/high in av1_write_coeffs_mb · 8d6bc80b
      Angie Chiang authored
      This fix the invalid tx_type error happened when mb_to_right_edge
      is negative
      
      The invalid tx_type error will cause bitstream error and then
      let the decoder hang in the while loop of read_golomb()
      
      Change-Id: Ide6c3497cdd5b69b20b4b093241ed89ccc1b0f00
      8d6bc80b
    • Yue Chen's avatar
      Reduce the bandwidth requirement of sub8x8 chroma obmc · 85c7e906
      Yue Chen authored
      HW does not support < 4x4 prediction. To limit the bandwidth
      requirement, for small blocks, only blend with neighbors from one
      side. If block-size of current plane is 4x4 or 8x4, the above
      neighbor will be skipped. If it is 4x8, the left neighbor (dir = 1)
      will be skipped.
      This change will keep the bandwidth requirement of OBMC not more
      than what is required by normal compound inter modes.
      
      Loss of gain (PSNR-Y/PSNR-Cb/PSNR-Cr/CIEDE2000)
      AWCY HL: 0.05/0.09/0.14/0.04
      AWCY LL: 0.06/0.07/0.10/0.12
      
      Change-Id: I3854afc69c3014da99bde4b19bb726e4c077d59e
      85c7e906
    • Zoe Liu's avatar
      Add compound-singleref (compound mode using single ref) · 5b55c882
      Zoe Liu authored
      This new coding tool is targeted to add new inter compound modes using
      single reference frame - initially NEAREST_NEARMV for single reference
      prediction.
      
      Change-Id: I415d40dc285a46a79680b4da0c3f2e2f3784b688
      5b55c882
    • Tom Finegan's avatar
      Add mips32 support to the cmake build. · d148c963
      Tom Finegan authored
      Requires use of new cmake toolchain file:
      $ cmake path/to/aom -DCMAKE_TOOLCHAIN_FILE=path/to/aom/build/cmake/toolchains/mips32-linux-gcc.cmake
      
      DSPR2 and MSA are supported via addition of -DENABLE_DSPR2=1 and
      -DENABLE_MSA=1 respectively. Note that the latter requires the addition
      of -DMIPS_CPU=p5600.
      
      BUG=https://bugs.chromium.org/p/aomedia/issues/detail?id=76
      
      Change-Id: Idf7d7f2daecf18cc45b834166eaf34ee9f414d49
      d148c963
    • Debargha Mukherjee's avatar
      Adds option to use 1/32 subpel precision for gm/wm · 16056f5b
      Debargha Mukherjee authored
      Adds filters for 1/32 subpel precision for warping.
      To use 1/32 subpel precision make WARPEDPIXEL_PREC_BITS 5.
      By default, WARPEDPIXEL_PREC_BITS is set as 6 in common/mv.h,
      which uses 1/64 subpel precision.
      
      If 1/32 precision is used, BDRATE drops:
      on lowres:
      -1.101 (vs. -1.186% with 1/64) w/warped-motion
      -1.587 (vs. -1.650% with 1/64) w/global-motion
      
      on cam_lowres:
      -2.638 (vs. -2.707% with 1/64) w/warped-motion
      -3.396 (vs. -3.453% with 1/64) w/global-motion
      
      Change-Id: I82fbfddaad9bd9be658fe382401d212833c7ceef
      16056f5b
    • Yi Luo's avatar
      Add EOB threshold calculation for ADAPT_SCAN · cfe0fede
      Yi Luo authored
      Change-Id: I0c58fb5ee2a77ae15f6243b1c645dbe601171e67
      cfe0fede
    • Jingning Han's avatar
      Align frame_context to 16 bytes in TileData · 9f07be16
      Jingning Han authored
      BUG=aomedia:432
      
      Change-Id: Ide94ffbf5ed0f25ac64892f02364b67cefa5fd15
      9f07be16
    • Steinar Midtskogen's avatar
      Avoid invalid parameter combinations in CLPF test · 43edb7b1
      Steinar Midtskogen authored
      Change-Id: I1aaa06846ad409dd83ab50a0fb34c8a7e77e45e7
      43edb7b1
    • Steinar Midtskogen's avatar
      CDEF: Optionally filter 8x8 skip blocks · 7b069a57
      Steinar Midtskogen authored
      Optionaly filter 8x8 skip blocks, but still leave superblocks that are
      completely skipped unchanged.  Use one bit in the dering level to
      signal replacing the signal for dering damping.
      
      This works better with cb4x4 that now is enabled by default.
      
      Low latency, used-cpu=4 change:
         PSNR|PSNR Cb|PSNR Cr|PSNR HVS|   SSIM|MS SSIM|CIEDE 2000
      -0.6260|-0.3263|-0.3797| -0.3574|-0.7072|-0.4828|   -0.6584
      
      Change-Id: I42c4290b52a50779770884fbabb020fdb1034ff7
      7b069a57
    • Steinar Midtskogen's avatar
      Add s8 -> s16 unpack instrinsics · 1b2b739b
      Steinar Midtskogen authored
      Change-Id: Iec22c6442c55a5908d858766ff6dfb8bff69835d
      1b2b739b
    • Jean-Marc Valin's avatar
      Can't skip deringing on threshold=0 because chroma needs direction · 87c24a1d
      Jean-Marc Valin authored
      Change-Id: I7481fe139e1c9454c73948de3d8b8fefaf37e79a
      87c24a1d
    • Sarah Parker's avatar
      Disable neighbor warping for gm + obmc · a036d86f
      Sarah Parker authored
      Adds an option to disable warp when obmc is used with a
      global motion neighbor.
      
      Change in BDRATE on cam_lowres
      gm + obmc enabled: 0.035%
      gm + obmc + wm enabled: -0.005%
      
      Change-Id: I1d6de75c7ead325cec31ed3748b5532f3658d8a7
      a036d86f
  3. 12 Apr, 2017 14 commits
    • Zoe Liu's avatar
      A temporary fix on the RAM issue for upsampled referencing · c670e82f
      Zoe Liu authored
      When ext-refs is on, the encoding of HD videos, e.g. 1080p sequences
      will cause the failure to allocate up-sampled frame buffers. This CL
      temporarily turn off the use of upsampled references when ext-refs is
      on for any video resolution larger than 720 in either dimension. A
      more effective scheme for up-sampled referencing should be later
      considered.
      
      With the fix, the AWCY performance gains of ext-refs, vs baseline are:
      
      PSNR Y
      Average -2.55%
      1080p   -2.81%
      360p    -2.38%
      720p    -3.10%
      
      Change-Id: Ica5e75d82190cd68e64c536503e3559f1cfdbdd1
      c670e82f
    • Sebastien Alaiwan's avatar
      Homogenize configuration option name. · 71e87847
      Sebastien Alaiwan authored
      Rename '--enable-aom-highbitdepth' to '--enable-highbitdepth'
      
      Change-Id: I1de13c3508c30c552532993419d8ace326142ab6
      71e87847
    • Jingning Han's avatar
      Properly release the memory space in encode_frame_to_data_rate() · f6214b96
      Jingning Han authored
      Explicitly release the locally allocated memory space in
      encode_frame_to_data_rate(). This resolves an memory space leak
      issue.
      
      BUG=aomedia:431
      
      Change-Id: I46f4b38b46ed951d42c622e88ce00afc566e7eae
      f6214b96
    • hui su's avatar
      rdopt.c,cosmetics: fix comments for av1_dist_block() · d2f12ba5
      hui su authored
      Change-Id: I7a75947cdc4fcfe5b84ea702fa44ee51d7e406de
      d2f12ba5
    • Timothy B. Terriberry's avatar
      Add ec_smallmul experiment. · b1c5760e
      Timothy B. Terriberry authored
      This reduces the multiplier width of daala_ec from 16x15->31 to
      8x15->23, which reduces hardware latency by an estimated 20% (and
      area for this module by an estimated 40%).
      
      These are the smallest logical changes required to achieve this,
      but the approach will be optimized significantly in subsequent
      commits.
      
      When enabled:
      
      ec_smallmul1c_base@2017-03-08T00:49:01.830Z ->
       ec_smallmul1c@2017-03-08T00:49:45.091Z
      
        PSNR | PSNR Cb | PSNR Cr | PSNR HVS |   SSIM | MS SSIM | CIEDE 2000
      0.0203 |  0.0203 |  0.0204 |   0.0203 | 0.0203 |  0.0203 |     0.0202
      
      Change-Id: Idbbd3743e9189146cb519d5b984bdabd69e3f4c0
      b1c5760e
    • Jingning Han's avatar
      Fix high bit-depth transform unit test failure · 7e32a4cc
      Jingning Han authored
      BUG=aomedia:430
      
      Change-Id: I1e6fc42163b94f221d3010f00bb5e085707687c8
      7e32a4cc
    • Jingning Han's avatar
      Fix cross tile buffer access in encoder process · 65113f38
      Jingning Han authored
      BUG=aomedia:429
      
      Change-Id: I9aef9ae0df86f7574342fc8e7424869d9b2fa1d2
      65113f38
    • Angie Chiang's avatar
      Avoid redundant tx_type search · 00491e0d
      Angie Chiang authored
      allow_txk_type doesn't contains all the logic of using pre
      assigned tx_type or doing the tx_type search.
      Here we use get_tx_type to avoid redundant tx_type search.
      
      Change-Id: I09b6bcc60fbe15f0d78689b22d834f95b62bd99a
      00491e0d
    • Angie Chiang's avatar
      Calculate coeff cost in av1_search_txk_type · 65a39bb4
      Angie Chiang authored
      Change-Id: Ie388218b2202ee2f63b90c67a059cbfe54fd4a4e
      65a39bb4
    • Timothy B. Terriberry's avatar
      pvq: Remove support for disabling nodesync. · 44bb6d06
      Timothy B. Terriberry authored
      This was broken by commit 1238137c.
      
      When calling the generic coder with a max, it truncates the CDF, but
      then tries to encode/decode with the Q15 entropy coder functions
      with built-in adaptation. That causes assertion failures, because the
      total probability isn't 32768.
      
      We could fix it by re-scaling the CDF, and then doing adaptation
      assuming there was no max, but that requires several special-case
      code paths.
      
      Instead, since non-robust streams were the only thing that still
      required calling the generic coder with a max, and since the gain
      from them is very small (and they require doing more DSP just to be
      able to parse the stream), we simply remove the option and force
      the use of robust streams all the time.
      
      With robust streams enabled, encoder output should not change, and
      all streams should remain decodable without decoder changes.
      
      Thanks to Nathan Egge for reporting the problem.
      
      Change-Id: I6c81481abb796688bf703d68f164d208e6a69f20
      44bb6d06
    • Yaowu Xu's avatar
      Avoid out of bound read · 281def73
      Yaowu Xu authored
      Change-Id: I1620ee72fa212c958cb061706c440ba407c805c0
      281def73
    • Yaowu Xu's avatar
      Avoid out of bound read · c8ab0bcd
      Yaowu Xu authored
      BLOCK_Z_TOKEN is defined "255", this commit change the order of operations
      to avoid read  av1_extra_bits[255]. av1_extra_bits is defined with size of
      12.
      
      Change-Id: I59c35136bb064391139579bce591d1963e722611
      c8ab0bcd
    • Jingning Han's avatar
      Fix out-of-bound access in filter intra · 4330e1bd
      Jingning Han authored
      BUG=aomedia:427
      
      Change-Id: Ic7b0f6850d7685f4aff0e51154f8777c9ef72c17
      4330e1bd
    • hui su's avatar
      Fix a bug for high-bit-depth in av1_dist_block() · b1cc1f9d
      hui su authored
      BUG=aomedia:426
      
      Change-Id: I246b0de3bd25863853643bdb238899bf8e5847be
      b1cc1f9d
  4. 11 Apr, 2017 5 commits
    • Angie Chiang's avatar
      Fix invalid tx_type returned by get_tx_type · 18ad894a
      Angie Chiang authored
      1) Check if tx_type is valid in get_tx_type
      
      2) Remove scan_order from rdcost_block_args
      When lv_map is on, scan_order depends on tx_type but tx_type is
      not decided before entering block_rd_txfm yet. Therefore
      assigning a scan_order into rdcost_block_args and then passing it
      into block_rd_txfm will cause error.
      
      3) Pass correct index into intra_mode_to_tx_type_context in
      get_tx_type
      
      This CL doesn't affect baseline/supertx's stats.
      
      Change-Id: I59eb12aaf1edd9110ce7a92ce61f81bf89cd5920
      18ad894a
    • Angie Chiang's avatar
      Modify choose_tx_size_type_from_rd for lv_map exp · f1cb075d
      Angie Chiang authored
      The tx_type becomes dummy when lv_map is on. The tx_type search
      will be performed in av1_search_txk_type() and the results will be
      stored in txk_type[]
      
      In choose_tx_size_type_from_rd, we use best_txk_type[] to record
      the best search result within different tx_size.
      
      Change-Id: I67c489d261aecaa0092e0cc562670588c6c55941
      f1cb075d
    • Angie Chiang's avatar
      Call av1_search_txk_type in block_rd_txfm · e50f3eca
      Angie Chiang authored
      This is part of tx kernel selection feature.
      
      Change-Id: I822e5a46d39c1fd525c911fc2a06e1be041d8ec8
      e50f3eca
    • Urvang Joshi's avatar
      Simplify has_top_right() and has_bottom_left(). · ca7ec4b0
      Urvang Joshi authored
      - More meaningful variable names
      - Comments to make code more readable.
      - Variables declared near use etc.
      
      Change-Id: I1a87d52a73aeefbaee4b9190861155dfcf05985c
      ca7ec4b0
    • Jingning Han's avatar
      Reset x->skip flag in the ref-mv search loop · 52617b26
      Jingning Han authored
      Resolve the unit test failure on
      AV1/LosslessTestLarge.TestLossLessEncoding/0
      
      Change-Id: Ica884da0d0e5bd808c9f02f5de0a29cab950e7be
      52617b26