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
      8160a26f
    • 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
      26110225
    • 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
      2e430cba
  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
      8c1f071f
    • 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
      c3db2d8b
  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:
      MSE_ClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKeyDecryptOnly/EncryptedMediaTest.Playback_VP9Video_WebM/0
      MSE_ExternalClearKeyDecryptOnly_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      SRC_ExternalClearKey/EncryptedMediaTest.Playback_VP9Video_WebM/0
      SRC_ExternalClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      SRC_ClearKey_Prefixed/EncryptedMediaTest.Playback_VP9Video_WebM/0
      
      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
      9be46e45
  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
      c99a8fd7
    • 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
      1eb6e683
    • Tim Kopp's avatar
      Added CFLAG for outputting vp9 denoised signal · c9c4e13d
      Tim Kopp authored
      Change-Id: Iab9b4e11cad927f3282e486c203564e1a658f377
      c9c4e13d
    • Tim Kopp's avatar
      Fixes in VP9 alloc, free, and COPY_FRAME case · b56f3af7
      Tim Kopp authored
      Change-Id: I1216f17e2206ef521fe219b6d72d8e41d1ba1147
      b56f3af7
    • Tim Kopp's avatar
      Improved vp9 denoiser running avg update. · 0fec8f97
      Tim Kopp authored
      Change-Id: Ie0aa41fb7957755544321897b3bb2dd92f392027
      0fec8f97
    • Tim Kopp's avatar
      Implemented COPY_BLOCK case for vp9 denoiser · ff388071
      Tim Kopp authored
      Change-Id: Ie89ad1e3aebbd474e1a0db69c1961b4d1ddcd33e
      ff388071
  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
      2614e56c
    • Tim Kopp's avatar
      Update running avg for VP9 denoiser · a4b7a713
      Tim Kopp authored
      Change-Id: I9577d648542064052795bf5770428fbd5c276b7b
      a4b7a713
    • Tim Kopp's avatar
      Implemented vp9_denoiser_{alloc,free}() · 2a720673
      Tim Kopp authored
      Change-Id: I79eba79f7c52eec19ef2356278597e06620d5e27
      2a720673
    • 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
      3b9c19aa
    • 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
      -6.
      
      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
      55834d42
    • 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
      improved:
      
      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
      7c45dc98
    • Adrian Grange's avatar
      Improve vp9_rb_bytes_read · dbd1184a
      Adrian Grange authored
      Change-Id: I69eba120eb3d8ec43b5552451c8a9bd009390795
      dbd1184a
  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
      cdc954fd
  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
      6b0bc34b
    • Dmitry Kovalev's avatar
      Moving RD-opt related code from vp9_encoder.h to vp9_rdopt.h. · 3f8508eb
      Dmitry Kovalev authored
      Change-Id: I8fab776c8801e19d3f5027ed55a6aa69eee951de
      3f8508eb
    • Dmitry Kovalev's avatar
      Replacing RC_MODE with vpx_rc_mode. · bcfbd2f9
      Dmitry Kovalev authored
      Both enums are identical.
      Change-Id: I06653f9c90a2d3a2dd5c741e75b17ee7d066a56f
      bcfbd2f9
    • 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
      crbug.com/376802.
      
      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
      applied.
      
      A test vector is added accordingly.
      
      Change-Id: I41c988e776bbdd1033312a668e03a3dbcf44ca99
      1ba18717
    • 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
      af8d4054
    • 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
      e4c5f7e2
    • 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()
      https://android-review.googlesource.com/97731
      but only for new versions. Original workaround:
      https://gerrit.chromium.org/gerrit/15744
      
      Change-Id: I130566837d5bfc9e54187ebe9807350d1a7dab2a
      79afb5eb
  10. 12 Jun, 2014 3 commits