This application pertains to the field of coding data, and more particularly, to the field of coding images, video and/or audio data using motion compensated transforms and/or replicated matching pursuits.
Digital video and audio services such as transmitting digital images, video and/or audio information over wireless transmission networks, digital satellite services, streaming video and/or audio over the internet, delivering video content to personal digital assistants or cellular phones, etc., are increasing in popularity. Therefore data compression and decompression techniques that balance fidelity with levels of compression to allow efficient transmission and storage of digital content may be becoming more prevalent.
The claimed subject matter will be understood more fully from the detailed description given below and from the accompanying drawings of embodiments which should not be taken to limit the claimed subject matter to the specific embodiments described, but are for explanation and understanding only.
a is a diagram depicting an example decomposition of an image in a horizontal direction.
b is a diagram depicting an image that has been decomposed in a horizontal direction and is undergoing decomposition in a vertical direction.
c is a diagram depicting an image that has been decomposed into four frequency bands.
d is a diagram depicting an image that has been decomposed into four frequency bands where one of the bands has been decomposed into four additional bands.
a is a diagram depicting an image that has been decomposed into four frequency bands.
b is a diagram depicting the image of
It will be appreciated that for simplicity and/or clarity of illustration, elements illustrated in the figures have not necessarily been drawn to scale. For example, the dimensions of some of the elements may be exaggerated relative to other elements for clarity. Further, if considered appropriate, reference numerals have been repeated among the figures to indicate corresponding and/or analogous elements.
In the following detailed description, numerous specific details are set forth to provide a thorough understanding of claimed subject matter. However, it will be understood by those skilled in the art that claimed subject matter may be practiced without these specific details. In other instances, well-known methods, procedures, components and/or circuits have not been described in detail.
“Matching pursuits” processes may be used to compress digital images. A matching pursuits process may include finding a full inner product between a signal to be coded and each member of a dictionary of basis functions. At the position of the maximum inner product the dictionary entry giving the maximum inner product may describe the signal locally, and may be referred to as an “Atom.” The amplitude is quantized, and the position, quantized amplitude, sign, and dictionary number form a code describing the Atom. For one embodiment, the quantization may be performed using a precision limited quantization method. Other embodiments may use other quantization techniques.
The Atom is subtracted from the signal giving a residual. The signal may then be completely described by the Atom plus the residual. The process may be repeated with new Atoms successively found and subtracted from the residual. At any stage, the signal may be described completely, or at least in part, by the codes of the Atoms found and the remaining residual. Furthermore, the coding process may be halted when a predetermined threshold is reached. The threshold may be, but are not limited to, percentage compression, number of Atoms, bit rate, and/or other threshold, and/or combinations thereof.
Matching pursuits may decompose any signal ƒ into a linear expansion of waveforms that may belong to a redundant dictionary D=φ{γ} of basis functions, such that
where Rm ƒ is the mth order residual vector after approximating ƒ by m ‘Atoms’ and
αn=φγ
is the maximum inner product at stage n of the dictionary with the nth order residual.
For some embodiments, the dictionary of basis functions may comprise two-dimensional bases. Other embodiments may use dictionaries comprising one-dimensional bases which may be applied separately to form two-dimensional bases. A dictionary of n basis functions in one dimension may provide a dictionary of n2 basis functions in two dimensions, although the scope of the claimed subject matter is not limited in this respect.
For compression, the matching pursuits process may be terminated at some stage and the codes of a determined number of Atoms are stored and/or transmitted by a further coding process. For one embodiment, the further coding process may be a lossless coding process. Other embodiments may use other coding techniques, including some non-lossless processes.
An image may be represented as a two-dimensional array of coefficients, each coefficient representing intensity levels at a point. Many images have relatively smooth intensity variations, with the finer details being represented as sharper edges in between the smoother variations. The smoother variations in intensity may be termed as lower frequency components and the sharper variations as high frequency components. The lower frequency components (smoother variations) may comprise the gross information for an image, at least in part, and the higher frequency components may include information to add detail to the gross information. One technique for separating the low frequency components from the high frequency components may include a Discrete Wavelet Transform (DWT). Wavelet transforms may be used to decompose images. One type of DWT may be a three-dimensional DWT with motion compensation. This transform may refer to predetermined motion vectors in order to produced transformed information. The other transformed information may be in a form that matching pursuits may be applied to, to achieve a higher compression ratio and better fidelity than either of the transforms separately.
Wavelet decomposition may include the application of Finite Impulse Response (FIR) filters to separate image data into sub sampled frequency bands. The application of the FIR filters may occur in an iterative fashion, for example as described below in connection with
The extension of the 2D wavelet transform into the temporal direction to form a 3D spatio-temporal transform for video may be accomplished. Applying a temporal transform over n scales separately, along with the 2D spatial one may result in a temporal decomposition into groups of 2n planes, one or more of which may correspond to a particular combination of lower and higher pass temporal filterings. These temporal planes may be somewhat analogous to the sub-bands of the 2D transform.
At block 220, a replicated matching pursuits process begins. For this example embodiment, the matching pursuits process comprises blocks 220 through 250. At block 220, an appropriate parent Atom is determined. The appropriate parent Atom may be determined by finding the full inner product between the transformed image data and each member of a dictionary of basis functions. At the position of maximum inner product the corresponding dictionary entry may describe the wavelet transformed image data locally. The dictionary entry forms part of the Atom. An Atom may comprise a position value, the quantized amplitude, sign, and a dictionary entry value. Once the parent atom is determined, similar related Atoms, called child Atoms, may be determined. These child Atoms may be determined from temporal planes that may include similar information and/or similarly transformed data.
At block 240, the parent and child Atoms may be quantized. The child Atoms may be estimated to be the same, or nearly the same, amplitude as the parent, may be determined, and/or may be set to null if the amplitude is relatively small when compared to the parent, and/or combinations thereof. Quantization for the Atoms may be accomplished via precision limited quantization (PLQ) or other quantization technique.
At block 245, the Atoms determined at block 220 and 230 and quantized at block 240 is removed from the wavelet transformed image data, producing a residual. The wavelet-transformed image may be described by the Atoms and the residual.
At block 250, a determination is made as to whether a desired threshold has been met. The desired threshold may include, but not limited to, a certain number of Atoms, bit rate, compression ratio, image quality, and/or other threshold among many other considerations and/or limitations. If the desired threshold has not been reached, processing returns to block 220 where another Atom is determined from the residual.
The process of selecting an appropriate Atom may include finding the full inner product between the residual of the wavelet transformed image after the removal of the prior Atom, and the members of the dictionary of basis functions. In another embodiment, rather than recalculating all of the inner products, the inner products from a region of the residual surrounding the previous Atom position may be calculated.
Blocks 220 through 250 may be repeated until the desired threshold has been reached. Once the desired threshold has been reached, the Atoms are coded at block 260. The Atoms may be coded by any of a wide range of encoding techniques. The example embodiment of
a through 3d is a diagram depicting an example wavelet decomposition of an image 300. As depicted in
c shows the results of the horizontal and vertical analyses. Image 300 is divided into four sub bands. LL sub band 322 includes data that has been low pass filtered in both the horizontal and vertical directions. HL sub band 324 includes data that has been high pass filtered in the horizontal direction and low pass filtered in the vertical direction. LH sub band 326 includes data that has been low pass filtered in the horizontal direction and high pass filtered in the vertical direction. HH sub band 328 includes data that has been high pass filtered in both the horizontal and vertical directions. LL sub band 322 may include gross image information, and bands HL 324, LH 326, and HH 328 may include high frequency information providing additional image detail.
For wavelet transformation, benefits may be obtained by repeating the decomposition process one or more times. For example, LL band 322 may be further decomposed to produce another level of sub bands LL2, HL2, LH2, and HH2, as depicted in
a through 3d depict an example embodiment of a two band (lower and higher) wavelet transformation process. Other embodiments are possible using more than two bands.
Another possible embodiment for wavelet transformation may be referred to as wavelet packets.
In an embodiment, the first plane from the left has been transformed LLt 502 and the fifth plane has been transformed LLt2 504, the 9th Lt3 506, and the 13th LLt4 508. These planes may have been transformed by a low filter twice. Therefore, as the planes have been transformed similarly both spatially and temporally, similar information may be found in similar locations of the periodic planes. Once a parent atom is found in one of the planes, a child atom may likely be found in a similarly temporally transformed plane. In the embodiment shown in
In an embodiment the entire group of 16 temporal planes may be searched for the best single 2D Atom. Each Atom found may be called a parent Atom, and the three associated Atoms are called child Atoms. In an embodiment, run length may coding may code the occurrence of replicated atoms. There may be many other ways of selecting and coding the replicated atoms. One aspect is the realization that in a group of temporal planes (GOTP), after a 3D motion compensated wavelet transform, or another transform, there are corresponding planes in which it can be expected to find similar atoms, thereby giving a gain in compression by providing an improved image approximation at reduced computational and/or other cost.
In such an embodiment shown in
Planes of DWT coefficients 710 are received at a replicated matching pursuits block 712. Replicated matching pursuits transform block 712 may perform a replicated matching pursuits transform, plane by plane, on planes of DWT coefficients 710. A 2D Atom from the GOTP with the largest inner product may be selected as the parent Atom. It may be represented by, the dictionary entry, amplitude, sign, and location within a particular plane, and other coordinates and values. Other similar planes are then searched, in a similar area, for similar child Atoms.
The child Atom estimation may not be optimal as there may be another dictionary entry that would better describe the child Atom. However, if the amplitude of the child Atom is large enough, it may be selected for replication, otherwise the child Atom may be coded as null.
The descriptions of the parent Atoms 714 are sent to the parent Atoms list 718. Similarly the descriptions of the child Atoms 716 are sent to the child Atoms list 720. The GOTP may be updated by subtracting the parent and children Atoms. The process is repeated until a predetermined threshold is met. The predetermined threshold may be a bit rate, compression ratio, maximum number of Atom, and/or other threshold, and/or combinations thereof.
The transform may be similar to one or more of the example embodiments discussed above in connection with
The Parent Atoms list 718 and the child Atoms list 720 may then be coded by precision limited quantization blocks 722 and 724 respectively. The 2D Parent atoms may be quantized by Precision Limited Coding (PLQ) at PL=2, which may give the best PSNR at given bit rate in MERGE coding of 2D Atoms. As a result of experimentation, the accuracy of the child Atoms may be sacrificed to reduce the bit cost of coding them, so they are quantized at PL=1, meaning that their amplitude is specified only by the FSB. Because the parent may have the largest amplitude over the whole GOTP, its child atoms may only have smaller amplitudes and are coded as the difference in FSB from the Parent, ΔFSB, which is restricted in range and defined as:
In the embodiment described, the embedded MERGE coder block 726 may be used to code the parent Atoms. They are collected into groups by FSB, R and Basis Dictionary number. For each group the positions of the atoms in the wavelet coefficient space are signaled by run length coding (RLC) block 728 using a particular scanning order of the coefficients in each plane, over the GOTP plane by plane. By arranging the groups in descending order of Atom magnitude and descending order of expected occurrence of particular bases, an embedded code may be achieved which may account for the variable rates of occurrence of bases efficiently. It has been found that, in one embodiment this may work best where the number of MERGE groups is not such a large number so that the bit rate cost of the symbols that distinguish the groups is not prohibitive. Positive and negative signs S are equally probable, so S may be sent as one bit of side information to reduce the number of groups.
Information about the child Atoms for a group of parents may be coded at the end of a MERGE scan. Each atom in the MERGE group is a parent, and the status of the child Atoms may be signaled in the order that the parent Atoms were sent. The parent list 718 is scanned three times, for each possible child position in the GOTP, with the coder and decoder both aware of the possible planes according to the GOTP position of the parent, as shown below.
The signs S and ΔFSB of child Atoms are formed into a code giving the run length of similar atoms as shown below and sent by a variable length code (VLC) static code. It has been found experimentally that the atom replication scheme may be optimized if ΔFSB is restricted to values 0, 1 and 2 plus the Null condition.
Although one embodiment of a method for coding the replicated Atoms has been described, there may be many other methods of the replicated Atoms, without straying from the concepts disclosed herein.
The various blocks and units of coding system 700 may be implemented using software, firmware, and/or hardware, or any combination of software, firmware, and hardware. Further, although
Build Atoms block 812 receives coded Atom parameters 803 and provides decoded Atom parameters to a build wavelet transform coefficients block 814. Block 814 uses the Atom parameter information and dictionary 822 to reconstruct a series of wavelet transform coefficients.
The coefficients may be then delivered to an inverse motion compensated 3D wavelet transform block 816. The coefficient data and motion vectors 807 may be utilized to create a current reconstruction 813, by inverse motion compensated 3D wavelet transform block 816.
The various blocks and units of decoding system 800 may be implemented using software, firmware, and/or hardware, or any combination of software, firmware, and hardware. Further, although
Some portions of the detailed description are presented in terms of processes, programs and/or symbolic representations of operations on data bits and/or binary digital signals within a computer memory, for example. These processes descriptions and/or representations may include techniques used in the data processing arts to convey the arrangement of a computer system and/or other information handling system to operate according to such programs, processes, and/or symbolic representations of operations.
A process may be generally considered to be a self-consistent sequence of acts and/or operations leading to a desired result. These include physical manipulations of physical quantities. Usually, though not necessarily, these quantities take the form of electrical and/or magnetic signals capable of being stored, transferred, combined, compared, and/or otherwise manipulated. It may be convenient at times, principally for reasons of common usage, to refer to these signals as bits, values, elements, symbols, characters, terms, numbers and/or the like. However, these and/or similar terms may be associated with the appropriate physical quantities, and are merely convenient labels applied to these quantities.
Unless specifically stated otherwise, as apparent from the following discussions, throughout the specification discussion utilizing terms such as processing, computing, calculating, determining, and/or the like, refer to the action and/or processes of a computing platform such as computer and/or computing system, and/or similar electronic computing device, that manipulate and/or transform data represented as physical, such as electronic, quantities within the registers and/or memories of the computer and/or computing system and/or similar electronic and/or computing device into other data similarly represented as physical quantities within the memories, registers and/or other such information storage, transmission and/or display devices of the computing system and/or other information handling system.
Embodiments claimed may include one or more apparatuses for performing the operations herein. Such an apparatus may be specially constructed for the desired purposes, or it may comprise a general purpose computing device selectively activated and/or reconfigured by a program stored in the device. Such a program may be stored on a storage medium, such as, but not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), electrically programmable read-only memories (EPROMs), electrically erasable and/or programmable read only memories (EEPROMs), flash memory, magnetic and/or optical cards, and/or any other type of media suitable for storing electronic instructions, and/or capable of being coupled to a system bus for a computing device, computing platform, and/or other information handling system.
The processes and/or displays presented herein are not necessarily limited to any particular computing device and/or other apparatus. Various general purpose systems may be used with programs in accordance with the teachings herein, or a more specialized apparatus may be constructed to perform the desired method. The desired structure for a variety of these systems will appear from the description below. In addition, embodiments are not described with reference to any particular programming language. It will be appreciated that a variety of programming languages may be used to implement the teachings described herein.
In the description and/or claims, the terms coupled and/or connected, along with their derivatives, may be used. In particular embodiments, connected may be used to indicate that two or more elements are in direct physical and/or electrical contact with each other. Coupled may mean that two or more elements are in direct physical and/or electrical contact. However, coupled may also mean that two or more elements may not be in direct contact with each other, but yet may still cooperate and/or interact with each other. Furthermore the term “and/or” may mean “and”, it may mean “or”, it may mean “exclusive-or”, it may mean “one”, it may mean “some, but not all”, and/or it may mean “both.”
Reference in the specification to “an embodiment,” “one embodiment,” “some embodiments,” or “other embodiments” means that a particular feature, structure, or characteristic described in connection with the embodiments is included in at least some embodiments, but not necessarily all embodiments. The various appearances of “an embodiment,” “one embodiment,” or “some embodiments” are not necessarily all referring to the same embodiments.
In the foregoing specification claimed subject matter has been described with reference to specific example embodiments thereof. It will, however, be evident that various modifications and/or changes may be made thereto without departing from the broader spirit and/or scope of the subject matter as set forth in the appended claims. The specification and/or drawings are, accordingly, to be regarded in an illustrative rather than in a restrictive sense.
Number | Name | Date | Kind |
---|---|---|---|
5315670 | Shapiro | May 1994 | A |
5321776 | Shapiro | Jun 1994 | A |
5412741 | Shapiro | May 1995 | A |
5495292 | Zhang et al. | Feb 1996 | A |
5585852 | Agarwal | Dec 1996 | A |
5699121 | Zakhor et al. | Dec 1997 | A |
5768437 | Monro et al. | Jun 1998 | A |
6078619 | Monro et al. | Jun 2000 | A |
6148106 | Impagliazzo | Nov 2000 | A |
6532265 | Van der Auwera et al. | Mar 2003 | B1 |
6556719 | Monro | Apr 2003 | B1 |
6587507 | Chui et al. | Jul 2003 | B1 |
6614847 | Das et al. | Sep 2003 | B1 |
6633688 | Nixon et al. | Oct 2003 | B1 |
6741739 | Vincent | May 2004 | B1 |
6757437 | Keith et al. | Jun 2004 | B1 |
6782132 | Fogg | Aug 2004 | B1 |
6795504 | Xu et al. | Sep 2004 | B1 |
6982742 | Adair et al. | Jan 2006 | B2 |
6990145 | Monro et al. | Jan 2006 | B2 |
6990246 | Ferguson | Jan 2006 | B1 |
7003039 | Zakhor et al. | Feb 2006 | B2 |
7006567 | Frossard et al. | Feb 2006 | B2 |
7242812 | Hwang et al. | Jul 2007 | B2 |
7336811 | Takeo | Feb 2008 | B2 |
7436884 | Chen et al. | Oct 2008 | B2 |
7447631 | Truman et al. | Nov 2008 | B2 |
7548656 | Nakajima et al. | Jun 2009 | B2 |
20030103523 | Frossard et al. | Jun 2003 | A1 |
20040028135 | Monro | Feb 2004 | A1 |
20040126018 | Monro | Jul 2004 | A1 |
20040165737 | Monro | Aug 2004 | A1 |
20050084014 | Wang et al. | Apr 2005 | A1 |
20060013312 | Han | Jan 2006 | A1 |
20060146937 | Ye et al. | Jul 2006 | A1 |
20060203906 | Divorra Escoda et al. | Sep 2006 | A1 |
20060209963 | Valente | Sep 2006 | A1 |
20070052558 | Monro | Mar 2007 | A1 |
20070053434 | Monro | Mar 2007 | A1 |
20070053597 | Monro | Mar 2007 | A1 |
20070053603 | Monro | Mar 2007 | A1 |
20070065034 | Monro | Mar 2007 | A1 |
20070081593 | Jeong et al. | Apr 2007 | A1 |
Number | Date | Country |
---|---|---|
WO9811730 | Mar 1998 | WO |
WO9908449 | Feb 1999 | WO |
WO0115456 | Mar 2001 | WO |
WO0163935 | Aug 2001 | WO |
WO0213538 | Feb 2002 | WO |
WO2005027049 | Mar 2005 | WO |
WO 2005119581 | Dec 2005 | WO |
WO 2007030702 | Mar 2007 | WO |
WO 2007030784 | Mar 2007 | WO |
WO 2007030785 | Mar 2007 | WO |
WO 2007030788 | Mar 2007 | WO |
Number | Date | Country | |
---|---|---|---|
20070053434 A1 | Mar 2007 | US |