1. 27 Jan, 2012 1 commit
  2. 19 Dec, 2011 1 commit
    • Paul Wilkins's avatar
      Further QIndex realted Fixes: · fb807776
      Paul Wilkins authored
      Added code to support 256 index steps instead of 128 but disabled for now.
      Replace hard wired table vp8cx_base_skip_false_prob[128]
      Observed Qindex problem with setting minimum loop filter value.
      (Experiment code using real Q in place but for now just returning 0. This has a big
      beneficial effect on some clips, particularly waterfall which shows 5% ssim gain)
      
      Change-Id: I2f7117de8adc1797164c106aa13effc900a1467e
      fb807776
  3. 24 Oct, 2011 1 commit
    • Paul Wilkins's avatar
      Further segment feature extensions. · 01ce04bc
      Paul Wilkins authored
      This quite large check in includes the following:
      
      Merge in some code from Ronald (mbgraph.c) that scans a Gf/arf group.
      This is used as a basis for a simple segmentation for the normal frames
      in a gf/arf group. This code also uses satd functions from Yaowu.
      
      Adds functionality for coding the latest possible position of an EOB for
      blocks in the segment. (Currently 0-15 only, hence just for 4x4 dct).
      Where the EOB position is 0 this acts like "skip" and the normal coding
      of skip at the per mb level is disabled.
      
      Added functions (seg_common.c) for setting and reading segment feature
      elements. These may want to be optimized away at some point but while the
      mecahnism is in a state of flux they provide a single location for making
      changes and keep things a bit cleaner.
      
      This is still proof of concept code. Currently the tested feature set:-
      
      Quantizer,
      Loop Filter level,
      Reference frame,
      Prediction Mode,
      EOB end stop.
      
      TBD:-
      
      Add functions for setting and reading the feature data with range
      and validity checking.
      
      Handling of signed and unsigned feature data. At the moment all is assumed
      to be signed and a sign bit is coded but many cannot be negative.
      
      Correct handling of EOB feature with intra coded blocks.
      
      Testing/trapping of legal/illegal ref frame and mode combinations.
      
      Transform size switch plus merge and test with 8c8 DCT work
      
      Merge and test with Sumans Segmenation coding optimizations
      
      Change-Id: Iee12e83661c7abbd1e0ce6810915eb4ec35e2d8e
      01ce04bc
  4. 15 Sep, 2011 1 commit
    • Paul Wilkins's avatar
      Segment Feature Signaling · ceb51742
      Paul Wilkins authored
      Plumbing for tuning new segment features on and off.
      
      Change-Id: If86cd6f103296b73030e8af7cf85c5b9bbffdbaf
      ceb51742
  5. 13 Sep, 2011 3 commits
    • Paul Wilkins's avatar
      Reverse coding order for segment features: · 1741cc7a
      Paul Wilkins authored
      Code all the features for one segment (grouped together)
      then all for the next etc. etc. rather than grouping the
      data by feature.
      
      Change-Id: I2a65193b3a70aca78f92e855e35d8969d857b6dd
      1741cc7a
    • Paul Wilkins's avatar
      Change to segment_feature_data[][] structure. · 1c24442a
      Paul Wilkins authored
      This data structure is  now [Segment ID][Features]
      rather than [Features][Segment_ID]
      
      I propose as a separate modification to make the experimental
      bit stream reflect this such that all the features for a segment
      are coded together.
      
      Change-Id: I581e4e3ca2033bdbdef3d9300977a8202f55b4fb
      1c24442a
    • Paul Wilkins's avatar
      Segment Features: · dfbc61f3
      Paul Wilkins authored
      Some basic plumbing added for a range of segment level features.
      MB_LVL_* changed to SEG_LVL_* to better reflect meaning.
      
      Change-Id: Iac96da36990aa0e40afc0d86e990df337fd0c50b
      dfbc61f3
  6. 29 Jul, 2011 1 commit
  7. 22 Jul, 2011 1 commit
    • Johann's avatar
      fix sharpness bug and clean up · a04ed0e8
      Johann authored
      sharpness was not recalculated in vp8cx_pick_filter_level_fast
      
      remove last_filter_type. all values are calculated, don't need to update
      the lfi data when it changes.
      
      always use cm->sharpness_level. the extra indirection was annoying.
      
      don't track last frame_type or sharpness_level manually. frame type
      only matters for motion search and sharpness_level is taken care of in
      frame_init
      
      move function declarations to their proper header
      
      Change-Id: I7ef037bd4bf8cf5e37d2d36bd03b5e22a2ad91db
      a04ed0e8
  8. 29 Jun, 2011 1 commit
    • Johann's avatar
      remove incorrect initialization · fe53107f
      Johann authored
      Values were set, then reset. Only set them once.
      
      Change-Id: Iaf43c8467129f2f261f04fa9188b603aa46216b5
      fe53107f
  9. 19 May, 2011 2 commits
    • John Koleszar's avatar
      cleanup: collect twopass variables · 63cb1a7c
      John Koleszar authored
      This patch collects the twopass specific memebers of VP8_COMP into a
      dedicated struct. This is a first step towards isolating the two pass
      rate control and aids readability by decorating these variables with
      the 'twopass.' namespace. This makes it clear to the reader in what
      contexts the variable will be valid, and is a hint that a section of
      code might be a good candidate to move to firstpass.c in later
      refactoring. There likely will be other rate control modes that need
      their own specific data as well.
      
      This notation is probably overly verbose in firstpass.c, so an
      alternative would be to access this struct through a pointer like
      'rc->' instead of 'cpi->firstpass.' in that file. Feel free to make
      a review comment to that effect if you prefer.
      
      Change-Id: I0ab8254647cb4b493a77c16b5d236d0d4a94ca4d
      63cb1a7c
    • John Koleszar's avatar
      Remove unused members of VP8_COMP · 04849772
      John Koleszar authored
      Various members that were either completely unreferenced or written
      and not read.
      
      Change-Id: Ie41ebac0ff0364a76f287586e4fe09a68907806e
      04849772
  10. 10 Feb, 2011 1 commit
    • John Koleszar's avatar
      Fix relative include paths · 02321de0
      John Koleszar authored
      Allow compiling without adding vp8/{common,encoder,decoder} to the
      include paths.
      
      Change-Id: Ifeb5dac351cdfadcd659736f5158b315a0030b6c
      02321de0
  11. 01 Feb, 2011 1 commit
  12. 25 Oct, 2010 1 commit
    • Timothy B. Terriberry's avatar
      Add runtime CPU detection support for ARM. · b71962fd
      Timothy B. Terriberry authored
      The primary goal is to allow a binary to be built which supports
       NEON, but can fall back to non-NEON routines, since some Android
       devices do not have NEON, even if they are otherwise ARMv7 (e.g.,
       Tegra).
      The configure-generated flags HAVE_ARMV7, etc., are used to decide
       which versions of each function to build, and when
       CONFIG_RUNTIME_CPU_DETECT is enabled, the correct version is chosen
       at run time.
      In order for this to work, the CFLAGS must be set to something
       appropriate (e.g., without -mfpu=neon for ARMv7, and with
       appropriate -march and -mcpu for even earlier configurations), or
       the native C code will not be able to run.
      The ASFLAGS must remain set for the most advanced instruction set
       required at build time, since the ARM assembler will refuse to emit
       them otherwise.
      I have not attempted to make any changes to configure to do this
       automatically.
      Doing so will probably require the addition of new configure options.
      
      Many of the hooks for RTCD on ARM were already there, but a lot of
       the code had bit-rotted, and a good deal of the ARM-specific code
       is not integrated into the RTCD structs at all.
      I did not try to resolve the latter, merely to add the minimal amount
       of protection around them to allow RTCD to work.
      Those functions that were called based on an ifdef at the calling
       site were expanded to check the RTCD flags at that site, but they
       should be added to an RTCD struct somewhere in the future.
      The functions invoked with global function pointers still are, but
       these should be moved into an RTCD struct for thread safety (I
       believe every platform currently supported has atomic pointer
       stores, but this is not guaranteed).
      
      The encoder's boolhuff functions did not even have _c and armv7
       suffixes, and the correct version was resolved at link time.
      The token packing functions did have appropriate suffixes, but the
       version was selected with a define, with no associated RTCD struct.
      However, for both of these, the only armv7 instruction they actually
       used was rbit, and this was completely superfluous, so I reworked
       them to avoid it.
      The only non-ARMv4 instruction remaining in them is clz, which is
       ARMv5 (not even ARMv5TE is required).
      Considering that there are no ARM-specific configs which are not at
       least ARMv5TE, I did not try to detect these at runtime, and simply
       enable them for ARMv5 and above.
      
      Finally, the NEON register saving code was completely non-reentrant,
       since it saved the registers to a global, static variable.
      I moved the storage for this onto the stack.
      A single binary built with this code was tested on an ARM11 (ARMv6)
       and a Cortex A8 (ARMv7 w/NEON), for both the encoder and decoder,
       and produced identical output, while using the correct accelerated
       functions on each.
      I did not test on any earlier processors.
      
      Change-Id: I45cbd63a614f4554c3b325c45d46c0806f009eaa
      b71962fd
  13. 09 Sep, 2010 1 commit
  14. 18 Jun, 2010 1 commit
    • John Koleszar's avatar
      cosmetics: trim trailing whitespace · 94c52e4d
      John Koleszar authored
      When the license headers were updated, they accidentally contained
      trailing whitespace, so unfortunately we have to touch all the files
      again.
      
      Change-Id: I236c05fade06589e417179c0444cb39b09e4200d
      94c52e4d
  15. 04 Jun, 2010 1 commit
  16. 18 May, 2010 1 commit