1. 24 Jun, 2014 3 commits
    • Paul Wilkins's avatar
      Fix some bugs in multi-arf · 8160a26f
      Paul Wilkins authored
      Fix some bugs relating to the use of buffers
      in the overlay frames.
      Fix bug where a mid sequence overlay was
      propagating large partition and transform sizes into
      the subsequent frame because of :-
        sf->last_partitioning_redo_frequency  > 1 and
        sf->tx_size_search_method == USE_LARGESTALL
      Change-Id: Ibf9ef39a5a5150f8cbdd2c9275abb0316c67873a
    • Paul Wilkins's avatar
      Clean out old CONFIG_MULTIPLE_ARF code. · 26110225
      Paul Wilkins authored
      Remove the old experimental multi arf code that was under
      the flag CONFIG_MULTIPLE_ARF.
      Change-Id: Ib24865abc11691d6ac8cb0434ada1da674368a61
    • Paul Wilkins's avatar
      Experiment for mid group second arf. · 2e430cba
      Paul Wilkins authored
      This patch implements a mechanism for inserting a second
      arf at the mid position of arf groups.
      It is currently disabled by default using the flag multi_arf_enabled.
      Results are currently down somewhat in initial testing if
      multi-arf is enabled. Most of the loss is attributable to the
      fact that code to preserve the previous golden frame
      (in the arf buffer) in cases where we are coding an overlay
      frame, is currently disabled in the multi-arf case.
      Change-Id: I1d777318ca09f147db2e8c86d7315fe86168c865
  2. 23 Jun, 2014 2 commits
    • Adrian Grange's avatar
      Allocate buffers based on correct chroma format · 8c1f071f
      Adrian Grange authored
      The encoder currently allocates frame buffers before
      it establishes what the chroma sub-sampling factor is,
      always allocating based on the 4:4:4 format.
      This patch detects the chroma format as early as
      possible allowing the encoder to allocate buffers of
      the correct size.
      Future patches will change the encoder to allocate
      frame buffers on demand to further reduce the memory
      profile of the encoder and rationalize the buffer
      management in the encoder and decoder.
      Change-Id: Ifd41dd96e67d0011719ba40fada0bae74f3a0d57
    • Jim Bankoski's avatar
      error check vp9 superframe parsing · c3db2d8b
      Jim Bankoski authored
      This patch insures that the last byte of a chunk that contains a
      valid superframe marker byte,  actually has a proper superframe index.
      If not it returns an error.
      As part of doing that the file : vp90-2-15-fuzz-flicker.webm now fails
      to decode properly and moves to the invalid file test from the test
      vector suite.
      Change-Id: I5f1da7eb37282ec0c6394df5c73251a2df9c1744
  3. 21 Jun, 2014 1 commit
    • Jim Bankoski's avatar
      Revert 3 patches from Hangyu to get Chrome to build: · 9be46e45
      Jim Bankoski authored
      Avoids failures:
      Patches are
      This reverts commit 9bc04085
      This reverts commit 6f5aba06
      This reverts commit 9bc04085
      I1f250441	Revert "Refactor the vp9_get_frame code for frame parallel."
      Ibfdddce5	Revert "Delay decreasing reference count in frame-parallel decoding."
      I00ce6771	Revert "Introduce FrameWorker for decoding."
      Need better testing in libvpx for these commits
      Change-Id: Ifa1f279b0cabf4b47c051ec26018f9301c1e130e
  4. 20 Jun, 2014 9 commits
  5. 19 Jun, 2014 6 commits
    • Jingning Han's avatar
      Allow key frame more flexibility in mode search · c99a8fd7
      Jingning Han authored
      This commit allows the key frame to search through more prediction
      modes and more flexible block sizes. No speed change observed. The
      coding performance for rtc set is improved by 1.7% for speed -5 and
      3.0% for speed -6.
      Change-Id: Ifd1bc28558017851b210b4004f2d80838938bcc5
    • hkuang's avatar
      Add superframe support for frame parallel decoding. · 1eb6e683
      hkuang authored
      A superframe is a bunch of frames that bundled as one frame. It is mostly
      used to combine one or more non-displayable frames and one displayable frame.
      For frame parallel decoding, libvpx decoder will only support decoding one
      normal frame or a super frame with superframe index.
      If an application pass a superframe without superframe index or a chunk
      of displayable frames without superframe index to libvpx decoder, libvpx
      will not decode it in frame parallel mode. But libvpx decoder still could
      decode it in serial mode.
      Change-Id: I04c9f2c828373d64e880a8c7bcade5307015ce35
    • Tim Kopp's avatar
      Added CFLAG for outputting vp9 denoised signal · c9c4e13d
      Tim Kopp authored
      Change-Id: Iab9b4e11cad927f3282e486c203564e1a658f377
    • Tim Kopp's avatar
      Fixes in VP9 alloc, free, and COPY_FRAME case · b56f3af7
      Tim Kopp authored
      Change-Id: I1216f17e2206ef521fe219b6d72d8e41d1ba1147
    • Tim Kopp's avatar
      Improved vp9 denoiser running avg update. · 0fec8f97
      Tim Kopp authored
      Change-Id: Ie0aa41fb7957755544321897b3bb2dd92f392027
    • Tim Kopp's avatar
      Implemented COPY_BLOCK case for vp9 denoiser · ff388071
      Tim Kopp authored
      Change-Id: Ie89ad1e3aebbd474e1a0db69c1961b4d1ddcd33e
  6. 18 Jun, 2014 7 commits
    • Tim Kopp's avatar
      Changed buf_2ds in vp9 denoiser to YV12 buffers · 2614e56c
      Tim Kopp authored
      Changed alloc, free, and running average code as necessary.
      Change-Id: Ifc4d9ccca462164214019963b3768a457791b9c1
    • Tim Kopp's avatar
      Update running avg for VP9 denoiser · a4b7a713
      Tim Kopp authored
      Change-Id: I9577d648542064052795bf5770428fbd5c276b7b
    • Tim Kopp's avatar
      Implemented vp9_denoiser_{alloc,free}() · 2a720673
      Tim Kopp authored
      Change-Id: I79eba79f7c52eec19ef2356278597e06620d5e27
    • Jingning Han's avatar
      Remove unused vp9_init_quant_tables function · 3b9c19aa
      Jingning Han authored
      This function is not effectively used, hence removed.
      Change-Id: I2e8e48fa07c7518931690f3b04bae920cb360e49
    • Yunqing Wang's avatar
      Modify non-rd intra mode checking · 55834d42
      Yunqing Wang authored
      Speed 6 uses small tx size, namely 8x8. max_intra_bsize needs to
      be modified accordingly to ensure valid intra mode checking.
      Borg test on RTC set showed an overall PSNR gain of 0.335% in speed
      This also changes speed -5 encoding by allowing DC_PRED checking
      for block32x32. Borg test on RTC set showed a slight PSNR gain of
      0.145%, and no noticeable speed change.
      Change-Id: I1502978d8fbe265b3bb235db0f9c35ba0703cd45
    • Jingning Han's avatar
      Separate rate-distortion modeling for DC and AC coefficients · 7c45dc98
      Jingning Han authored
      This is the first step to rework the rate-distortion modeling used
      in rtc coding mode. The overall goal is to make the modeling
      customized for the statistics encountered in the rtc coding.
      This commit makes encoder to perform rate-distortion modeling for
      DC and AC coefficients separately. No speed changes observed.
      The coding performance for pedestrian_area_1080p is largely
      speed -5, from 79558 b/f, 37.871 dB -> 79598 b/f, 38.600 dB
      speed -6, from 79515 b/f, 37.822 dB -> 79544 b/f, 38.130 dB
      Overall performance for rtc set at speed -6 is improved by 0.67%.
      Change-Id: I9153444567e5f75ccdcaac043c2365992c005c0c
    • Adrian Grange's avatar
      Improve vp9_rb_bytes_read · dbd1184a
      Adrian Grange authored
      Change-Id: I69eba120eb3d8ec43b5552451c8a9bd009390795
  7. 16 Jun, 2014 1 commit
    • Pengchong Jin's avatar
      skip the un-necessary motion search in the first pass · cdc954fd
      Pengchong Jin authored
      This patch allows the VP9 encoder to skip the un-necessary
      motion search in the first pass. It computes the motion error
      of 0,0 motion using the last source frame as the reference,
      and skips the further motion search if this error is small.
      Borg test shows overall the patch gives PSNR gain (derf -0.001%,
      yt 0.341%, hd 0.282%). Individual clips may have PSNR gain or
      loss. The best PSNR performance is 7.347% and the worst is -0.662%.
      The first pass encoding speedup for slideshow clips is over 30%.
      Change-Id: I4cac4dbd911f277ee858e161f3ca652c771344fe
  8. 15 Jun, 2014 1 commit
  9. 13 Jun, 2014 7 commits
    • Jingning Han's avatar
      Fix C versions of DC calculation functions · 6b0bc34b
      Jingning Han authored
      This commit fixes the scaling factors used in the C versions of the
      DC calculation functions.
      Change-Id: Iab41108c2bb93c2f2e78667214f3a772a2b707b5
    • Dmitry Kovalev's avatar
      Moving RD-opt related code from vp9_encoder.h to vp9_rdopt.h. · 3f8508eb
      Dmitry Kovalev authored
      Change-Id: I8fab776c8801e19d3f5027ed55a6aa69eee951de
    • Dmitry Kovalev's avatar
      Replacing RC_MODE with vpx_rc_mode. · bcfbd2f9
      Dmitry Kovalev authored
      Both enums are identical.
      Change-Id: I06653f9c90a2d3a2dd5c741e75b17ee7d066a56f
    • Jingning Han's avatar
      Fix out of boundary memory read in fuzz test on vpxdec · 1ba18717
      Jingning Han authored
      This commit fixes frame header decoding for superframe index, to
      prevent out of boundary memory read triggered by fuzz test
      vector. It resolves a chromium security violation issue
      The issue was introduced in the change:
      Add VPXD_SET_DECRYPTOR support to the VP9 decoder.
      cl-id I88f86c8ff9af34e0b6531028b691921b54c2fc48
      where the buffer was read before validation check on index offset
      A test vector is added accordingly.
      Change-Id: I41c988e776bbdd1033312a668e03a3dbcf44ca99
    • Paul Wilkins's avatar
      Revert "skip un-neccessary motion search in the first pass" · af8d4054
      Paul Wilkins authored
      This patch appears to have introduced non-determinism and/or
      mismatch from debug vs release.
      This reverts commit 5daef90e.
      Change-Id: I80081e55cfeaaa821b510b58a4e6e6328003c7da
    • hkuang's avatar
      Delay decreasing reference count in frame-parallel decoding. · e4c5f7e2
      hkuang authored
      The current decoding scheme will decrease the reference count
      of the output frame when finish decoding. Then the application
      could copy the frame from the decoder buffer to application buffer.
      In frame-parallel decoding, a decoded frame will not be outputted
      until several frames later which depends on thread numbers. So
      the decoded frame's reference count should be decreased only
      after application finish copying the frame out. But due to the
      limitation of vpx_codec_get_frame, decoder could not know when
      application finish decoding. So use a index last_show_frame to
      release the last output frame's reference count.
      Change-Id: I403ee0d01148ac1182e5a2d87cf7dcc302b51e63
    • Johann's avatar
      Use lrand48 on Android · 79afb5eb
      Johann authored
      When building x86 assembly use lrand48 instead of the
      undocumented inlined _rand function.
      Android now supports rand()
      but only for new versions. Original workaround:
      Change-Id: I130566837d5bfc9e54187ebe9807350d1a7dab2a
  10. 12 Jun, 2014 3 commits