Patent ID: 7664173

Claim:
An encoding method comprising (a) setting up a cache of N lines, wherein each cache line is capable of storing a transform, a corresponding inverse transform, a profile for which a similarity of a block can be measured against an implied basis of said transform, one or more indicators for invalid, valid, active, pending, locked, and unlocked, and a cache line number indicating which of said N cache lines it is; (b) initializing said N cache lines by setting each N cache line indicator to invalid; (c) loading one of said N cache lines with a baseline transform, a corresponding inverse baseline transform, and indictors to valid and locked, and its cache line number; (d) inputting a block of data to be encoded; (e) for each of said N cache lines with an indicator of valid; (e1) computing a corresponding similarity profile based on said Nth cache Line's transform and; (e2) placing said computed similarity profile into said Nth cache's profile; (f) for each of said N cache lines with an indicator of valid finding which profile is most similar to said data block to be encoded; and (g) if said most similar profile is from said baseline transform then; (g1) encoding said block of data using said baseline transform; (g2) outputting said encoded block of data; and (g3) outputting said baseline cache line number; (h) if said most similar profile is not from said baseline transform then; (h1) encoding said block of data using said most similar profile transform; and (h2) outputting said encoded block of data; and (h3) outputting said most similar profile's corresponding cache line number.