1. 19 Apr, 2012 1 commit
    • Attila Nagy's avatar
      Makes all mode token tables const · 441cac8e
      Attila Nagy authored
      Mode token tabels precalculated in entropymode.c.
      Removes vp8_initialize_common()as all common global data
      is precalculated const now.
      
      Change-Id: I9b2ccc883e4f618069e1bc180dad3a823394eb73
      441cac8e
  2. 17 Apr, 2012 2 commits
    • Attila Nagy's avatar
      Makes all global data in tokenize.c const · b35a0db0
      Attila Nagy authored
      Removes all runtime initialization of global data in tokenize.c.
      DCT token and cost tabels are pre-generated.
      
      Second patch in a series to make sure code is reentrant.
      
      Change-Id: Iab48b5fe290129823947b669413101f22a1bcac0
      b35a0db0
    • Attila Nagy's avatar
      Makes all global data in entropy.c const · a91b42f0
      Attila Nagy authored
      Removes all runtime initialization of global data in entropy.c.
      Precalculated values are used for initializing all entropy related
      tabels.
      
      First patch in a series to make sure code is reentrant.
      
      Change-Id: I9aac91a2a26f96d73c6470d772a343df63bfe633
      a91b42f0
  3. 12 Apr, 2012 1 commit
    • Scott LaVarnway's avatar
      loopfilter improvements · e0a80519
      Scott LaVarnway authored
      Local variable offsets are now consistent for the functions,
      removed unused parameters, reworked the assembly to eliminate
      stalls/instructions.
      
      Change-Id: Iaa37668f8a9bb8754df435f6a51c3a08d547f879
      e0a80519
  4. 10 Apr, 2012 1 commit
    • Deb Mukherjee's avatar
      Fixes to disable MFQE when there is motion. · 6b33ca39
      Deb Mukherjee authored
      This patch includes:
      1. fixes to disable block based termporal mixing when motion
      is detected (because this version of mfqe only handles zero motion).
      2. The criterion used for determining whether to mix or
      not are changed to use squared differences rather than
      absolute differences.
      3. Additional checks on color mismatch and excessive block
      flatness added. If the block as decoded has very low activity
      it is unlikely to yield benefits for mixing.
      
      Change-Id: I07331e5ab5ba64844c56e84b1a4b7de823eac6cb
      6b33ca39
  5. 03 Apr, 2012 1 commit
    • John Koleszar's avatar
      MFQE: apply threshold to subblocks and chroma. · 8106df8f
      John Koleszar authored
      In cases where you have a flat background occluded by a moving object
      of similar luminosity in the foreground, it was likely that the
      foreground blocks would persist for a few frames after the background
      is uncovered. This is particularly noticable when the object has a
      different color than the background, so add the chroma planes in as an
      additional check.
      
      In addition, for block sizes of 8 and 16, the luma threshold is
      applied on four subblocks independently, which helps when only part of
      the background in the block has been uncovered.
      
      This fixes issue #392, which includes a test clip to reproduce the
      issue.
      
      BUG=392
      
      Change-Id: I2bd7b2b0e25e912dcac342e5ad6e8914f5afd302
      8106df8f
  6. 02 Apr, 2012 1 commit
    • Johann's avatar
      Move variance and SAD RTCD definitions · 21ac3c8f
      Johann authored
      When the functions were moved from encoder/ to common/ the RTCD file was
      not updated.
      
      Change-Id: I1c98715ed51adf1a95aa2492949d8552aec88d1f
      21ac3c8f
  7. 29 Mar, 2012 3 commits
    • John Koleszar's avatar
      remove unused BOOL_CODER::value · 3f834946
      John Koleszar authored
      Change-Id: Ic7782707afed38c3ec7e996a4a11dc2d55226691
      3f834946
    • Scott LaVarnway's avatar
      MB_MODE_INFO size reduction · 31322c5f
      Scott LaVarnway authored
      Reduced the size of the struct by 8 bytes, which would be
      a memory savings of 64800 bytes for 1080 resolutions.  Had
      an extra byte, so created an is_4x4 for B_PRED or SPLITMV
      modes.  This simplified the mode checks in
      vp8_reset_mb_tokens_context and vp8_decode_mb_tokens.
      
      Change-Id: Ibec27784139abdc34d4d01f73c09f43e9e10e0f5
      31322c5f
    • Scott LaVarnway's avatar
      Updated vp8_build_intra_predictors_mby_s(sse2/ssse3) · a3377256
      Scott LaVarnway authored
      to work with the latest code.
      
      Patch Set 2: aligned the above_row buffers to fix crash
      
      Change-Id: I7a6992a20ed079ccd302f8c26215cf3057f8b70c
      a3377256
  8. 26 Mar, 2012 2 commits
  9. 23 Mar, 2012 2 commits
  10. 22 Mar, 2012 1 commit
    • Deb Mukherjee's avatar
      Miscellaneous changes in mfqe and postproc modules · 66ba79f5
      Deb Mukherjee authored
      Adds logic to disable mfqe for the first frame after a configuration
      change such as change in resolution. Also adds some missing
      if CONFIG_POSTPROC macro checks.
      
      Change-Id: If29053dad50b676bd29189ab7f9fe250eb5d30b3
      66ba79f5
  11. 21 Mar, 2012 3 commits
  12. 16 Mar, 2012 1 commit
    • Yunqing Wang's avatar
      Add motion search skipping in first pass · 6a819ce4
      Yunqing Wang authored
      This change added a motion search skipping mechanism similar
      to what we did in second pass. For a macroblock that is very
      similar to the macroblock at same location on last frame,
      we can set its mv to be zero, and skip motion search. This
      improves first-pass performance for slide shows and video
      conferencing clips with a slight PSNR loss.
      
      Change-Id: Ic73f9ef5604270ddd6d433170091d20361dfe229
      6a819ce4
  13. 14 Mar, 2012 1 commit
    • John Koleszar's avatar
      fix potential use of uninitialized rate_y · 20cd3e6b
      John Koleszar authored
      This issue likely doesn't appear in the unmodified encoder, but
      sufficient hacking on the mode selection loop can expose it.
      
      Change-Id: I8a35831e8f08b549806d0c2c6900d42af883f78f
      20cd3e6b
  14. 13 Mar, 2012 1 commit
  15. 12 Mar, 2012 1 commit
  16. 08 Mar, 2012 1 commit
    • Scott LaVarnway's avatar
      threading.c refactoring · 9ed87471
      Scott LaVarnway authored
      Added recon above/left to MACROBLOCKD
      Reworked decode_macroblock
      
      Change-Id: I9c26870af75797134f410acbd02942065b3495c1
      9ed87471
  17. 06 Mar, 2012 3 commits
    • Johann's avatar
      RFC: Reorganize MFQE loops · fd903902
      Johann authored
      Break MFQE code into it's own file.
      
      It is currently only valid for 16x16 and 8x8 Y blocks. It also filters
      4x4 U/V blocks.
      
      Refactor filtering and add associated assembly. Limited test cases show
      --mfqe introduces a penalty of ~20% with HD content. The assembly
      reduces the penalty to ~15%
      
      Change-Id: I4b8de6b5cdff5413037de5b6c42f437033ee55bf
      fd903902
    • Jim Bankoski's avatar
      vp8e - RDLambda fix · 154b4b41
      Jim Bankoski authored
      Last commit went the wrong way.
      
      Change-Id: I5e47ee6c25b0893dfa84318229b93c57dfeec24e
      154b4b41
    • Johann's avatar
      Move SAD and variance functions to common · e50f96a4
      Johann authored
      The MFQE function of the postprocessor depends on these
      
      Change-Id: I256a37c6de079fe92ce744b1f11e16526d06b50a
      e50f96a4
  18. 05 Mar, 2012 1 commit
    • Jim Bankoski's avatar
      vp8e - fix coefficient costing · 88869909
      Jim Bankoski authored
      Coefficient costing failed to take account of the first branch
      being skipped ( 0 vs eob) if the previous token is 0.
      
      Fixed rd to account for slightly increased token cost & cleaned up
      warning message
      
      Change-Id: I56140635d9f48a28dded5a816964e973a53975ef
      88869909
  19. 01 Mar, 2012 2 commits
  20. 29 Feb, 2012 3 commits
    • Attila Nagy's avatar
      Packing bitstream on-the-fly with delayed context updates · 52cf4dca
      Attila Nagy authored
      Produce the token partitions on-the-fly, while processing each MB.
      Context is updated at the beginning of each frame based on the
      previoud frame's counters. Optimally encoder outputs partitions in
      separate buffers. For frame based output, partitions are concatenated
      internally.
      
      Limitations:
          - enabled just in combination with realtime-only mode
          - number of encoding threads has to be equal or less than the
          number of token partitions. For this reason, by default the encoder
          will do 8 token partitions.
          - vpxenc supports partition output (-P) just in combination with
          IVF output format (--ivf)
      
      Performance:
          - Realtime encoder can be up to 13% faster (ARM) depending on the number
          of threads and bitrate settings. Constant gain over the 5-16 speed
          range.
          - Token buffer reduced from one frame to 8 MBs
      
      Quality:
          - quality is affected by the delayed context updates. This again
          dependents on input material, speed and bitrate settings. For VC
          style input the loss seen is up to 0.2dB. If error-resilient=2
          mode is used than the effect of this change is negligible.
      
      Example:
      ./configure --enable-realtime-only --enable-onthefly-bitpacking
      ./vpxenc --rt --end-usage=1 --fps=30000/1000 -w 640 -h 480
      --target-bitrate=1000 --token-parts=3 --static-thresh=2000
      --ivf -P -t 4 -o strm.ivf tanya_640x480.yuv
      
      Change-Id: I127295cb85b835fc287e1c0201a67e378d025d76
      52cf4dca
    • Jim Bankoski's avatar
      vp8e - attempt to lessen blockiness · b8fa2839
      Jim Bankoski authored
      applies a penalty to intra blocks in order to cut down on blockiness in
      easy sections.
      
      Change-Id: Ia9e5df16328b0bf01bf0f2e6e61abcb687316c12
      b8fa2839
    • Scott LaVarnway's avatar
      Decoder loops refactoring · 2578b767
      Scott LaVarnway authored
      Eliminated some mb branches along with other code cleanups.
      This is part of an ongoing effort to remove cut/paste
      code in the decoder.
      
      Change-Id: Ifabb0f67cafa6922b5a0e89a0d03a9b34e9e5752
      2578b767
  21. 28 Feb, 2012 3 commits
    • Scott LaVarnway's avatar
      Eliminated reconintra_mt.c · bcba86e2
      Scott LaVarnway authored
      Reworked the code to use vp8_build_intra_predictors_mby_s,
      vp8_intra_prediction_down_copy, and vp8_intra4x4_predict_d_c
      functions instead.  vp8_intra4x4_predict_d_c is a decoder-only
      version of vp8_intra4x4_predict.  Future commits will fix this
      code duplication.
      
      Change-Id: Ifb4507103b7c83f8b94a872345191c49240154f5
      bcba86e2
    • Scott LaVarnway's avatar
      Removed duplicate code in threading.c · 9a4052a4
      Scott LaVarnway authored
      Change-Id: Id7e44950ceda67b280e410e541510106ef02f1da
      9a4052a4
    • Yunqing Wang's avatar
      Only do uv intra-mode evaluation when intra mode is checked · 019384f2
      Yunqing Wang authored
      When we encode slide-show clips, for the majority of the time,
      only ZEROMV mode is checked, and all other modes are skipped.
      This change delayed uv intra-mode evaluation until intra mode is
      actually checked. This gave big performance gain for slide-show
      video encoding (2nd pass gain: 18% to 28%). But, this change
      doesn't help other types of videos.
      
      Also, zbin_mode_boost is adjusted in mode-checking loop, which
      causes bitstream mismatch before/after this change when --best
      or --good with --cpu-used=0 are used.
      
      Change-Id: I582b3e69fd384039994360e870e6e059c36a64cc
      019384f2
  22. 27 Feb, 2012 2 commits
    • James Berry's avatar
      bugfix: use oxcf width/height for reinit check · e2c6b05f
      James Berry authored
      use oxcf instead of common in check to Reinit the
      lookahead buffer if the frame size changes
      prior behavior would cause assertion fail/crash
      
      first observed in:
      support changing resolution with vpx_codec_enc_config_set
      
      Change-Id: Ib669916ca9b4f206d4cc3caab5107e49d39a36aa
      e2c6b05f
    • Yunqing Wang's avatar
      Fix skippable evaluation in mode decision · 84be08b0
      Yunqing Wang authored
      Yaowu fixed the skippable evaluation by correcting 2nd order
      block's eob.
      
      Change-Id: Id47930cbc74a90a046c0c0e324efb03477639ee0
      84be08b0
  23. 22 Feb, 2012 1 commit
    • Marco Paniconi's avatar
      Remove the frame rate factor for key frame size. · 507ee87e
      Marco Paniconi authored
      When temporal layers is used (i.e., number_of_layers > 1),
      we don't use the frame rate boost for setting the key
      frame target size. The factor was forcing the target size to be
      always at its minimum (2* per_frame_bandwidth) for low frame rates
      (i.e., base layer frame rate).
      
      Generally we should modify or remove this frame rate factor;
      for now we turn if off for number_of_layers > 1.
      
      Change-Id: Ia5acf406c9b2f634d30ac2473adc7b9bf2e7e6c6
      507ee87e
  24. 21 Feb, 2012 2 commits