WO2004036501A2 - Parameter selection in data compression and decompression - Google Patents

Parameter selection in data compression and decompression Download PDF

Info

Publication number
WO2004036501A2
WO2004036501A2 PCT/US2003/024152 US0324152W WO2004036501A2 WO 2004036501 A2 WO2004036501 A2 WO 2004036501A2 US 0324152 W US0324152 W US 0324152W WO 2004036501 A2 WO2004036501 A2 WO 2004036501A2
Authority
WO
WIPO (PCT)
Prior art keywords
block
data
sub
value
selecting
Prior art date
Application number
PCT/US2003/024152
Other languages
French (fr)
Other versions
WO2004036501A3 (en
WO2004036501A8 (en
Inventor
Senthil Govindaswamy
Jeffrey A. Levin
Judith Larocca
Original Assignee
Qualcomm, Incorporated
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to JP2004545227A priority Critical patent/JP4819361B2/en
Application filed by Qualcomm, Incorporated filed Critical Qualcomm, Incorporated
Priority to EP03796288.3A priority patent/EP1525562B1/en
Priority to CA002493757A priority patent/CA2493757A1/en
Priority to MXPA05001144A priority patent/MXPA05001144A/en
Priority to KR1020057001822A priority patent/KR101228391B1/en
Priority to AU2003298536A priority patent/AU2003298536B2/en
Priority to ES03796288.3T priority patent/ES2598403T3/en
Priority to CNB038180693A priority patent/CN1320504C/en
Priority to DK03796288.3T priority patent/DK1525562T3/en
Publication of WO2004036501A2 publication Critical patent/WO2004036501A2/en
Publication of WO2004036501A3 publication Critical patent/WO2004036501A3/en
Publication of WO2004036501A8 publication Critical patent/WO2004036501A8/en
Priority to HK05111115A priority patent/HK1079317A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/005Statistical coding, e.g. Huffman, run length coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/182Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a pixel
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Definitions

  • the invention generally relates to data compression, and more particularly to decompression of data compressed using adaptive discrete cosine transform process.
  • Compression is a key factor of multimedia.
  • An effective digital compression can reduce the cost as well as increase the quality of video displayed over any digital communication channel.
  • One application for compression techniques is the motion picture industry.
  • the motion picture industry has depended on the duplication, distribution, and projection of celluloid film for delivering prograrnming material to geographically diverse theaters around the country and the world.
  • the methods and mechanisms for the distribution of film material have remained relatively unchanged for decades.
  • the current film duplication and distribution process involves generating a master film copy from an exceptional quality camera negative, producing a distribution negative from the master film copy, and producing distribution prints from the distribution negative.
  • the distribution prints (known as "positives") are then distributed by physical means to various theaters and displayed using a film projector.
  • DCT discrete cosine transform
  • ABSDCT adaptive block size discrete cosine transform
  • each data block is fixed and the same quantization parameter may be used for quantization and inverse quantization of each data block.
  • data blocks may be divided into different combinations of sub-blocks for the discrete cosine transform. Accordingly, depending on how a data block is divided, different quantization parameters are used for quantization of each data block. Similarly, depending on how a data block is divided, different quantization parameters are used for inverse quantization of each data block. Therefore, in order to perform inverse quantization during decompression, the appropriate quantization parameters need to be known for each data block being processed.
  • Embodiments disclosed herein address the above stated needs by providing a method for security in a data processing system. More particularly, embodiments allow selection of the appropriate quantization parameter during decompression of data compressed using the adaptive block size discrete cosine transform technique. The selection is based on the pixel position of data and the block size assignment.
  • an apparatus and method comprise means for variable length decoding compressed information to generate a variable length decoded data block(s).
  • the apparatus and method also comprise means for inverse quantizing the variable length decoded data block using a quantization parameter selected based on block size assignment information and address of data within the data block.
  • the apparatus and method may further comprise means for inverse adaptive block size discrete cosine transforming the inverse quantized data block to recover original data.
  • the quantization parameter may be selected by the means for inverse quantizing the variable length decoded data block.
  • the apparatus and method may further comprise means for selecting the quantization parameter.
  • the apparatus and method may further comprise a means for decoding the address of data into Y and X indices based on a Y and X index system.
  • instructions are loaded on a machine readable medium, wherein a first set of instructions is variable length decode compressed information to generate a variable length decoded data block(s). A second set of instructions is to select a quantization parameter based on block size assignment information and address of data within the data block. A third set of instructions is to inverse quantize the variable length decoded data block using the selected quantization parameter.
  • an apparatus comprises means for displaying decompressed image information, and means for playing decompressed audio information.
  • the apparatus also comprises a means for decoding compressed information, wherein the means for decoding comprises image decompressing means and an audio decompressing means.
  • the image decompressing means is configured to decompress compressed image information into the decompressed image information based on block size assignment information and address of data within a data block.
  • the audio decompressing means is configured to decompress compressed audio information into the decompressed audio information.
  • an apparatus and method comprise means for decoding an address of a data block into Y and X indices based on a Y and X index system.
  • the apparatus and method also comprise means for receiving block size assignment information.
  • the apparatus and method further comprises means for selecting an appropriate quantization parameter based on the block size assignment information and the Y and X indices.
  • the data block may be a 16x16 data block, wherein the block size assignment information comprises a first bit indicating whether the 16x16 data block is divided into 8x8 sub-blocks; second bits if the first bit indicates that the 16x16 is divided into 8x8 sub-blocks, each second bit indicating whether a corresponding 8x8 sub-block is divided into 4x4 sub-blocks; and third bits if at least one second bit indicates that the corresponding 8x8 sub-block is divided into 4x4 sub-blocks, each third bit indicating whether a corresponding 4x4 sub-block is divided into 2x2 sub-blocks.
  • the block size assignment information comprises a first bit indicating whether the 16x16 data block is divided into 8x8 sub-blocks; second bits if the first bit indicates that the 16x16 is divided into 8x8 sub-blocks, each second bit indicating whether a corresponding 8x8 sub-block is divided into 4x4 sub-blocks; and third bits if at least one second bit indicates that the corresponding 8
  • Figure 2 shows one embodiment of an encoder
  • Figures 3A to 3D illustrate one embodiment of block and sub-block divisions for a
  • FIG. 4A and 4B illustrate one embodiment of block size assignment data
  • Figures 5A to 5D show examples of the block size assignment data
  • Figures 6A to 6C illustrate one embodiment of the Y-X index system to represent positions of image pixels;
  • Figure 7 shows one embodiment of an image compressor;
  • Figure 8 shows one embodiment of a decoder
  • Figure 9 shows one embodiment of an image decompressor
  • Figures 10A and 10B illustrate one embodiment of the block size assignment data ordering
  • Figures 11A and 11B illustrate one embodiment of block selection based on Y and X indices
  • Figures 12 and 13 show different embodiments of a parameter selection module
  • Figures 14 to 16 show different embodiments of a method for selecting the appropriate parameter.
  • the apparatus and method allows selection of the appropriate quantization parameters during decompression based on pixel positions in a data block.
  • the appropriate Q_step value is selected for inverse quantization of the different combinations of sub-blocks.
  • the appropriate FWM table is also selected for inverse quantization.
  • Digital cinema system.
  • digital cinema refers to the electronic distribution and display of high quality film programming which has been converted to a digital electronic representation for storage, transmission, and display purposes.
  • a digital cinema system would overcome many of the limitations of the current film distribution process.
  • a digital system would not be subject to the quality degradation over time experienced by celluloid film.
  • a digital system may eliminate the theft and illegal duplication of films by allowing implementation of security measures within the digital system itself.
  • distribution of film information using a digital electronic format actually increases the potential for rapid, low- cost duplication without quality degradation.
  • Digital cinema may include the electronic generation, compression, encryption, and storage of audio/visual progranrming, such as motion pictures in theater systems, theaters, theater complexes, and/or presentation systems.
  • the invention is applicable to the presentation of image and audio information in a variety of locations such as a theatre or theatre complex, outdoor amphitheaters, drive-in complexes, civic auditoriums, schools and specialty restaurants.
  • locations such as a theatre or theatre complex, outdoor amphitheaters, drive-in complexes, civic auditoriums, schools and specialty restaurants.
  • the invention will be described with reference to a theatre or theatre complex. However, those skilled in the art will readily understand that the invention may be applied to other types of locations, systems and fields.
  • the term "program” refers to one or more films for display in cinemas, televisions, and/or other presentation systems and/or locations.
  • film refers to various moving picture including, but not limited to, a full or portion of motion picture, a video clip, a commercial, a drama or a combination thereof.
  • Image portion of films may consist of single frames (i.e., still images), a sequence of single frame still images, or motion image sequences of short or long duration.
  • storage medium represents one or more devices for storing data, including buffers, read only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, digital versatile disk (DVD), removable hard drive (RHD) and/or other machine readable mediums for storing information.
  • machine readable medium includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other devices capable of storing, containing or carrying codes and/or data.
  • encryption refers to various means of processing digital data streams of various sources using any of a number of cryptographic techniques to scramble, cover, or directly encrypt digital streams using sequences generated using secret digital values ("keys") in such a way that it is very difficult to recover the original data sequence without knowledge of the secret key values.
  • FIG. 1 One embodiment of a digital cinema system 100 is illustrated in Figure 1.
  • the digital cinema system 100 comprises two main systems: at least one central facility or hub 102 and at least one presentation or theater subsystem 104.
  • the hub 102 and the theater subsystem 104 may be implemented by a design similar to that of pending US Patent Application Serial Nos. 09/564,174 and 09/563,880, both filed on May 3, 2000 and assigned to the same assignee as the present invention, both incorporated herein by reference.
  • the hub 102 includes a source generator 110 to receive and convert program material into a digital version of the program.
  • the digital information is compressed using a preselected format or process by an encoder 120, and stored on a storage medium by a hub storage module 130.
  • the program material includes one or both image information and audio information.
  • the digital information may include one or both digital image information and audio information.
  • a network manager 140 monitors and sends control information to the source generator 110, the encoder 120, and the hub storage module 130.
  • the digital information may also be encrypted by the encoder 120.
  • the hub 102 may optionally include a conditional access manager 150 to provide specific electronic keying information such that only specific locations, for example theatres, are authorized to show specific programs and/or at specific times.
  • the source generator 110 and the encoder 120 are parts of the hub 102 as shown in Figure 1, either or both the source generator 110 and the encoder 120 can be located in separate facilities such as a film or television production studio. Also, some data may not require conversion by the source generator 110. For example, digital information may be provided to the encoder 120 through a digital camera or other digital information generation device.
  • the theatre subsystem 104 may include a theatre manager 160 that controls one or more auditorium modules 170.
  • Each auditorium module 170 comprises a decoder 175, a projector 177 and a sound system 179.
  • compressed digital information is received from the hub 102, decoded by the decoder 175, decrypted (if necessary) and played by the auditorium modules 170 through the projector 177 and sound system 179.
  • the compressed information may be received through a storage medium or may be transmitted in real-time, as desired. Also, the compressed information may be prepared as a selected sequence, size and data rate prior to being decoded.
  • the data stream input to the encoder 120 is composed of image frames.
  • An image frame can generally be divided into slices, a slice can be divided into data blocks, and a data block can be divided into pixels which are the smallest units of an image.
  • Each image frame includes an integer number of slices and each image slice typically represents the image information for a set of 16 consecutive scan lines. In such case, each data block corresponds to a block of 16x16 pixels across the image of the frame.
  • a frame may be separated into even and odd slices, thereby forming an even half frame and an odd an half frame.
  • half frames are the fundamental packets of compressed data information that are processed by a decoder.
  • an image pixel can be commonly represented in the Red, Green and Blue (RGB) color component system.
  • RGB Red, Green and Blue
  • the YCbCr color space is typically used in video compression to represent image pixels.
  • the YCbCr color space is a linear transformation of the RGB components, where Y is the chrominance component, and Cb and Cr are the color components. If a frame is separated into even/odd frames, an image frame would be made up of three even half frames and three odd half frames corresponding to the components Y, Cb and Cr.
  • a slice can represent a set of consecutive scan lines other than
  • 16 consecutive scan lines 16 consecutive scan lines.
  • a different color space with the same or different number of color components may be used to represent an image pixel.
  • a block size of 16x16 pixels and the YCbCr color space are used for purposes of explanation.
  • Figure 2 shows one embodiment of an encoder 200 comprising an image compressor
  • the encoder 200 receives digital information
  • the digital image and audio information may be stored in frame buffers (not shown) before further processing.
  • the image compressor 210 compresses the digital image information using any number of compression techniques. In one embodiment, the image compressor 210 compresses the digital image information using the ABSDCT technique described in U.S. Patent Nos. 5,021,891, 5,107,345, and 5,452,104.
  • each of the luminance and chrominance components is passed to a block interleaver (not shown).
  • a 16x16 block is presented to the block interleaver, which orders the image samples within the 16x16 blocks to produce blocks and composite sub-blocks of data for DCT analysis.
  • One 16x16 DCT is applied to a first ordering
  • four 8x8 DCTs are applied to a second ordering
  • 16 4x4 DCTs are applied to a third ordering
  • 64 2x2 DCTs are applied to a fourth ordering.
  • the DCT operation reduces the spatial redundancy inherent in the image source. After the DCT is performed, most of the image signal energy tends to be concentrated in a few DCT coefficients.
  • the transformed coefficients are analyzed to determine the number of bits required to encode the block or sub-block. Then, the block or the combination of sub-blocks that requires the least number of bits to encode is chosen to represent the image segment. For example, two 8x8 sub-blocks, six 4x4 sub-blocks, and eight 2x2 sub-blocks may be chosen to represent the image segment. The chosen block or combination of sub-blocks is then properly arranged in order.
  • the image compressor 210 comprises an ABSDCT module 212 that analyzes the transformed coefficients and selects the block or the combination of sub-blocks to represent the image segment.
  • the ABSDCT module 212 also generates block size assignment information that represents the block size assignment within an n x n block.
  • the ABSDCT module 212 For the 16x16 data block, the ABSDCT module 212 generates data known as PQR information that represents the block size assignment within the 16x16 block.
  • the PQR information is a variable bit width data that describes to what extent a 16x16 block is subdivided.
  • the R-bit of the PQR field represents whether the 16x16 block is subdivided into four 8x8 blocks.
  • the R bit is '0', the block remains whole. In this case no further PQR information is needed and the PQR field is only 1 bit long. If the R bit is T', then the 16x16 block is subdivided into four 8x8 blocks as shown in Figure 4B, and at least four additional bits will exist in the PQR field.
  • Each bit of Q denotes a subdivision of an 8x8 block into four 4x4 blocks.
  • the length of PQR data can be 1 to 21 bits long, depending on the block size assignment within the 16x16 block. If every 8x8 block is subdivided into 2x2 blocks, then the PQR information will be 21 bits in length.
  • the image compressor 210 may further comprise an index module 214 that determines an index system to represent the positions of image pixels in an n x n block. Some embodiments may provide a plurality of index systems, one of which is selected by the index module 214 depending upon the compression technique. In such case, the encoder 120 and decoder 175 stores the plurality of index systems and the index module 214 would transmit a signal to indicate the selected index system. In other embodiments, one fixed index system may be used to represent the image pixel locations.
  • Figure 6A shows one embodiment of a Y-X index system that represents positions of image pixels in a 16x16 block with four orderings as described above.
  • each Y, X set of the four bit Y and X indices determines a quadrant of a corresponding block or sub-block within the 16x16 block.
  • Figure 6C shows an image pixel position with the corresponding Y, X indices.
  • the Y 3 and X 3 bits determine the 8x8 block quadrant
  • the Y 2 and X 2 bits determine the 4x4 block quadrant
  • the Yi and bits determine the 2x2 quadrant
  • the Y 0 and Xo bits determine the image pixel location within the 2x2 sub-block.
  • Figure 7 shows one embodiment of an image compressor 300 comprising an ABSDCT module 710, a quantization module 720 and a variable length coding (VLC) module 730.
  • the ABSDCT module 710 converts the digital image information from spatial to frequency domain using the ABSDCT technique and generates DCT coefficients with corresponding block size assignment information, such as the PQR information for the 16x16 data block.
  • the quantization module 720 quantizes the DCT coefficients and the VLC 730 compresses the quantized DCT coefficients using a variable length coding technique.
  • the image compressor 300 may further comprise an index module 740 that generates signals that indicate the index system used during the compression.
  • the quantization module 720 quantizes the DCT coefficients using quantization steps
  • the Q-step may be used as a programmable quantization level and may be maintained by software stored in a storage medium (not shown).
  • Q_step values for each color component (Y, Cb, Cr) and a different set of Q_step values for each block or sub-block size (16x16, 8x8, 4x4, and 2x2).
  • the DCT coefficients can be quantized using weighting functions such as frequency weight masks (FWMs) optimized for the human eye. If used in combination with ABSDCT, there would be a different FWM table for each block or sub-block size (16x16, 8x8, 4x4, and 2x2). There would also be at least three different sets of FWM tables, one for each component Y, Cb and Cr.
  • FWMs frequency weight masks
  • the quantization is implemented by two multipliers.
  • the DCT coefficient may be multiplied by the Q_step based on the block or sub-block size and position.
  • the result is then multiplied by a frequency weight at a corresponding pixel position from a FWM table based on the block size assignment.
  • the NLC 730 may include a
  • Huffman engine for Huffman coding the non-zero AC coefficient values along with the run length of zeros.
  • a Huffman code represents the number of zeros preceding a non-zero AC coefficient and the size (minimum number bits required for representation) of that non-zero AC coefficient.
  • the DCT coefficients are run-length coded to generate the different pairs of run lengths of zeros and corresponding size of the subsequent non-zero AC coefficient.
  • zigzag scanning or other scanning patterns can be used to increase the runs of zeros.
  • Tables are then used to assign codes to the different run-length coded pairs based on the probabilities with which the codes occur. Short codes are assigned to pairs that appear more frequently and longer codes are assigned to pairs that appear less frequently.
  • the Huffman code is appended with the actual value of the AC coefficient and transmitted.
  • each image packet that is transmitted may comprise the fixed length DC value field, the variable-length PQR field, and a variable number of AC value fields.
  • the DC value field contains the unsigned DC offset for the pixel block.
  • the PQR field contains PQR information describing if and how the 16x16 pixel block has been subdivided into smaller blocks. This field can be 1, 5, 9, 13, 17 or 21 bits in length.
  • the AC value field contains Huffman coded zero-run-length and size of the AC coefficient values.
  • the audio portion of the digital information is generally passed to the audio compressor 230 for compression.
  • the audio compressor 230 may also compress the digital audio image information using any number of compression techniques.
  • the compressed digital information is then received and processed by the back-end processor 250.
  • the compressed image and audio information may be encrypted using any one of a number of known encryption techniques.
  • the compressed information may be multiplexed along with synchronization information and packetized.
  • the synchronization information allows the image and audio streamed information to be played back in a time aligned manner at the theater subsystem 104.
  • the image and audio information may also be treated separately, rather than multiplexed, and separately packetized.
  • the processed image and audio information may be sent to the hub storage medium 130 for storage on a storage medium.
  • the program information may be retrieved and transferred to the auditorium module 170 through the theater manager 160.
  • Each auditorium module 170 may process and display a different program from other auditorium modules 170 in the same theater subsystem 104, or one or more auditorium modules 170 may simultaneously process and display the same program.
  • the compressed information is decrypted, if necessary and decompressed by the decoder 175 using a decompression algorithm that is inverse to the compression algorithm used at the encoder 120.
  • the decompression process may include variable length decoding, inverse quantization, inverse ABSDCT, and deinterleaving to combine the DCT blocks.
  • the decompressed image information is thereafter converted to a standard video format for display (which may be either an analog or digital format) and may be displayed.
  • the audio information is also decompressed and provided for playback with the image information.
  • Figure 8 shows one embodiment of a decoder 800.
  • the decoder 800 processes the compressed/encrypted information to be visually projected by the projector 177 onto a screen or surface and audibly presented using the sound system 179.
  • the decoder 800 may comprise a front-end (FE) processor 810, an image decompressor 810 and an audio decompressor 820.
  • the decoder 800 may be implemented on one or more circuit card assemblies and the circuit card assemblies may be installed in a self-contained enclosure that mounts on, within or adjacent to the projector 177.
  • the FE processor 810 identifies and separates the individual control, image, and audio packets that arrive from the theater manager 160. Control packets may be sent to the theater manager 160 while the image and audio packets are sent to the image and audio decompressors 820 and 830, respectively.
  • the control packets may include information indicating the selected index system. Read and write operations tend to occur in bursts. Therefore, large buffers may be used to stream data smoothly from the decoder 175 directly to the projector 179.
  • a cryptographic smart card may be implemented for transfer and storage of unit-specific cryptographic keying information.
  • the image decompressor 820 performs decryption if necessary, decompresses the compressed image packets and reassembles the original image for presentation on the screen.
  • the output of this operation generally provides standard analog RGB signals to the digital cinema projector 177.
  • the decryption and decompression can be performed in real-time, allowing for real-time playback of the programming material.
  • the processing elements used for decompression may be implemented in dedicated specialized hardware configured for this function such as an ASIC and/or one or more circuit card assemblies.
  • the decompression processing elements may be implemented as standard elements and/or generalized hardware including a variety of digital signal processors, programmable electronic devices and/or computers that operate under the control of special function software and/or firmware programming.
  • Multiple ASICs may be implemented to process the image information in parallel to support high image data rates.
  • the compressed image data streams undergo an image decompression symmetric to the image compression used in the encoder 120.
  • Figure 9 shows one embodiment of an image decompression 900 that is symmetric to the image compression 700 shown in Figure 7.
  • the image decompressor 900 may include a variable length decoding (VLD) module 910 to decompress the compressed image information, an inverse quantization module 920 to inverse quantize the decompressed image information and an inverse ABSDCT module 930 to convert the inverse quantized image information from frequency to spatial domain to enable display of the image.
  • VLD variable length decoding
  • the image decompressor 900 may further comprise an address decoder 940 to decode the pixel locations based on the index system and a parameter selecting module 950 to select the appropriate quantization parameters.
  • the VLD module 910 variable length decodes the compressed image information to generate variable length decoded data blocks.
  • the inverse quantization module 920 performs inverse quantization. Since the quantization at the image compressor 700 is based on block size assignment information, the inverse quantization at the image decompressor 900 is also based on block size assignment. In particular, the block size assignment and address of the data within the n x n block is used to determine the appropriate Q-step. Moreover, if the quantization at the image compressor 700 was performed using weighting functions, the block size assignment information and data address is used to determine the appropriate FWM table.
  • Figure 9 shows the address module 940 and parameter selection module 950 as implemented separately from the quantization module 930, either one or both the address module 940 and the parameter selection module 950 may be implemented as a part of the quantization module 930. Alternatively, the address module 940 and the parameter selecting module 950 may be combined and implemented separately from the quantization module 930. Also, either one or both the address module 940 and the parameter selection module 950 may be implemented by software, firmware or a combination of software, firmware and hardware.
  • the inverse quantization may be implemented by two multipliers.
  • the data position and block size assignment information are first used to select the inverse Q_step value.
  • a first multiplier multiplies the data by the Q_step value.
  • the data position and the block size assignment information are also used to select the appropriate FWM table and lookup of the second inverse quantization multiplier.
  • a second multiplier then multiplies the result of the first multiplication by the FWM value.
  • the address decoder 940 decodes the address of the data based on the Y-X index system as described with reference to Figures 6A to 6C. Accordingly, the selection of the quantization parameter(s) is (are) based on the Y-X index system and block size assignment information. For example, for the 16x16 block data, the Y and X indices are used to determine a variable PQR value based on the data location and the variable PQR value is used to select the appropriate Q-step and FWM table.
  • Figures 10 A and 10B show one embodiment of the ordering of PQR bits Q0 to Q3 and P0 to P3 based on the data location decoded by the address decoder 940
  • Figures 11A and 11B show one embodiment of the 8x8 and 4x4 block selection based on the Y and X indices.
  • the address decoder 940 determines the Y-X indices for each of the pixel position of the 16x16 block data.
  • the parameter selecting module 950 receives the Y-X indices from the address decoder and also receives the PQR information for the 16x16 block. Using the Y-X indices and the PQR information, the parameter selecting module 950 determines the PQR value and selects the appropriate Q-step and FWM table.
  • the quantization module 930 can then quantize the decompressed image data using the selected Q- step and frequency weight values.
  • Figure 12 shows one embodiment of a parameter selection module 1200 comprising multiplexers (MUXs) 1210 ⁇ 1260 and an array 1270.
  • Figure 13 shows another embodiment of a parameter selection module 1300 comprising multiplexers (MUXs) 1310 ⁇ 1330 and an array 1370.
  • the array 1270 and array 1370 each comprises fields that represent Q0 to Q3 bits and P0 to P3 bits for each Q0 to Q3 bits.
  • the values of the arrays 1270 and 1370 are initially set to a default value, for example zero. Once the PQR information is received, the parameter selection modules 1200 and 1300 store the PQR information in the corresponding fields.
  • the first value or R value of the variable PQR value is the R bit from the PQR information.
  • the MUX 1210 and MUX 1310 respectively, select a second value or Q value of the variable PQR value based on the Y 3 and X 3 indices.
  • the MUXs 1220 to 1250 each select a P bit based on the Y 2 and X 2 indices.
  • the third value or P value of the variable PQR value is then selected by MUX 1260 based on the Y 3 and X 3 indices.
  • parameter selection module 1300 a set of P bits corresponding to one of P0, PI, P2 or P3 are selected by MUX 1320 based on Y 3 and X 3 indices. The third value or P value is then selected by MUX 1330 based on the Y 2 and X 2 indices.
  • Figure 14 shows one embodiment of a method 1400 for selecting the appropriate quantization parameter for a data bit of a 16x16 block of data.
  • Method 1400 comprises . determining a variable PQR value based on the Y-X indices (1410) and selecting the quantization parameter based on the variable PQR value (1450).
  • the R value is selected directly from the first bit or R bit of the PQR information (1412).
  • the P value is then selected based on both Y 3 , X 3 and Y 2 , X 2 indices (1416).
  • MUXs 1220 to 1250 each selects a value from a P field based on
  • a set of P values are selected by the MUX 1320 based on Y 3 and X 3 indices.
  • FIG. 15 shows another embodiment of a method 1500 for selecting the appropriate quantization parameter for a 16x16 block of data.
  • the quantization parameter may be the Q_step or both the Q_step and the FWM table as described above.
  • the quantization parameter may be the Q_step or both the Q_step and the FWM table as described above.
  • Figure 16 shows another embodiment of a method 1600 for selecting the appropriate quantization parameter for a 16x16 block data.
  • the quantization parameter may be the Q_step or both the Q_step and the FWM table.
  • a storage medium is used to store the FWM table and/or Q_step values as determined for quadrants or sub-blocks.
  • the storage medium is checked to determine if a parameter selection has been stored for the corresponding pixel position.
  • the storage medium may be a lookup table.
  • the appropriate quantization parameters can be selected based on pixel positions of data and block size assignment. Accordingly, the image decompressor 900 variable length decodes and inverse quantizes the compressed data using the appropriate quantization parameters. After inverse quantization, an inverse ABSDCT is performed to recover the original image information. [00075]
  • the decompressed image data goes through digital to analog conversion, and the analog signals are output to projector 177.
  • a digital interface may be used to convey the decompressed digital image data to the projector 177 obviating the need for the digital-to- analog process.
  • the audio decompressor 830 performs decryption, if necessary, and reassembles the original audio for presentation on a theater's speakers or audio sound module 179.
  • the output of this operation can provide standard line level audio signals to the sound module 179.
  • audio decompression is performed with an algorithm symmetric to that used at the central hub 102 for audio compression.
  • audio and data tracks may be time synchronized to the image programs or may be presented asynchronously without direct time synchronization.
  • the invention may be implemented by hardware, software, firmware, or any combination thereof.
  • the elements of the invention are the program code or code segments to perform the necessary tasks.
  • a code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements.
  • a code segment may be coupled to another code segment or a hardware circuit by passing and or receiving information, data, arguments, parameters, or memory contents.
  • Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
  • the program code or code segments may be stored in a machine readable medium, such as a processor readable medium or a computer program product, or transmitted by a computer data signal embodied in a carrier wave or a signal modulated by a carrier over a transmission medium or communication link.
  • the machine readable medium or processor readable medium may include any medium that can store or transfer information in a form readable and executable by a machine (e.g. a processor, a computer, etc.).
  • Examples of the machine/processor-readable medium include an electronic circuit, a semiconductor memory device, a read only memory (ROM), a flash memory, an erasable programmable ROM (EPROM), a floppy diskette, a compact disk CD-ROM, and optical disk, a hard disk, a fiber optic medium, a radio frequency (RF) link.
  • the computer data signal may include various signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic, RF links, etc.
  • the code segments may be downloaded via networks such as the Internet, an Intranet, etc.
  • the playback module 173 and the decoder 175 may be integrated into a single playback-decoder module.
  • the encoding may include other processes such as differential quad-tree transformation. In such case, the decoding would include inverse differential quad-tree transformation.
  • a bit value of 1 rather than 0 may be used to indicate that a block is subdivided in the PQR information.
  • the bit values of X and Y indices may be inversed.
  • the invention has been described with reference to an n x n data block, the invention is applicable to an n x m block where n ⁇ m.
  • the invention is applicable for the selection of parameters other than quantization parameters if the parameter depends on data block size where there are different data block sizes.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Apparatus and method for selecting an appropriate parameter at decompression are disclosed. In particular, when adaptive block size discrete cosine transform compression is used to compress data, different combinations of sub-blocks can be generated. To decompress the different combinations of sub-blocks, the appropriate parameter is selected based on block size assignment information and the address of data in the data block.

Description

PARAMETER SELECTION IN DATA COMPRESSION AND DECOMPRESSION
BACKGROUND OF THE INVENTION
I. Field of Invention
[0001] The invention generally relates to data compression, and more particularly to decompression of data compressed using adaptive discrete cosine transform process.
[0002] Description of the Related Art
[0003] Compression is a key factor of multimedia. An effective digital compression can reduce the cost as well as increase the quality of video displayed over any digital communication channel. One application for compression techniques is the motion picture industry.
[0004] For several decades, the motion picture industry has depended on the duplication, distribution, and projection of celluloid film for delivering prograrnming material to geographically diverse theaters around the country and the world. To a large extent, the methods and mechanisms for the distribution of film material have remained relatively unchanged for decades. Generally, the current film duplication and distribution process involves generating a master film copy from an exceptional quality camera negative, producing a distribution negative from the master film copy, and producing distribution prints from the distribution negative. Depending on the size of the release or number of copies desired for distributing the film, there may be more intermediate steps or multiple copies produced at each stage. The distribution prints (known as "positives") are then distributed by physical means to various theaters and displayed using a film projector.
[0005] Although the distribution process above works, there are inherent limitations. Due to the use of celluloid material for the film and the bandwidth limitations of the film media, there are restrictions on the ability to provide high fidelity multi-channel audio programming. Then, there is the high expense of making a large number of film duplicates, which can cost several hundreds of dollars for each copy of each feature length film. There is also the expense, complexity, and delay associated with physically distributing large canisters of celluloid film to a large and growing number of theater locations. [0006] Accordingly, new and emerging technologies are being developed to provide alternative approaches to the ongoing film distribution problems. One such method is the use of satellite transmission. However, in order to transmit a high quality audio/video (AN) signal in "realtime," the data rate requirement (in bits per second) is on the order of 1.5 billion bits per second. This high data rate requires the capacity equivalent of an entire satellite to transmit even a single program, which is prohibitively expensive. Therefore, satellite transmissions are not yet commercially viable for the distribution of high quality AN material.
[0007] Advances in digital technology have also led to a distribution concept whereby programming material is electronically stored in a digitized format. The digitized images may be distributed on various magnetic media or compact optical discs, or transmitted over wired, fiber optic, wireless, or satellite communication systems. These storage mediums typically have storage capacities ranging from about 4.5 gigabytes (GB) to about 18 GB. However, an average two hour movie having an average image compressed bit rate of about 40 Mbps for the image track and about eight Mbps for audio and control information, requires approximately 45 GB of storage space. Thus, even if a high storage capacity DVD-ROM disk is implemented, a two-hour movie requires use of multiple DVD-ROM disks for adequate capacity.
[0008] To reduce the data rate requirement for the storage of high quality electronic images, compression algorithms are being developed. One digital dynamic image compression technique capable of offering significant compression while preserving the quality of image signals utilizes adaptively sized blocks and sub-blocks of encoded discrete cosine transform (DCT) coefficient data. This technique will hereinafter be referred to as the adaptive block size discrete cosine transform (ABSDCT) method. The adaptive block sizes are chosen to exploit redundancy that exists for information within a frame of image data. The technique is disclosed in U.S. Pat. No. 5,021,891, entitled "Adaptive Block Size Image Compression Method And System," assigned to the assignee of the present invention and incorporated herein by reference. DCT techniques are also disclosed in U.S. Pat. No. 5,107,345, entitled "Adaptive Block Size Image Compression Method And System," assigned to the assignee of the present invention and incorporated herein by reference. Further, the use of the ABSDCT technique in combination with a Discrete Quadtree Transform technique is discussed in U.S. Pat No. 5,452,104, entitled "Adaptive Block Size Image Compression Method And System," also assigned to the assignee of the present invention and incorporated by reference herein. The systems disclosed in these patents utilize intraframe encoding, wherein each frame of an image sequence is encoded without regard to the content of any other frame. [0009] Generally, compression of data streams comprises quantization after discrete cosine transform. Moreover, different quantization parameters are often used for different data block sizes. Similarly, decompression of compressed data streams comprises inverse quantization and different quantization parameters are used for different data block sizes.
[00010] In a typical discrete cosine transform, the size of each data block is fixed and the same quantization parameter may be used for quantization and inverse quantization of each data block. However, if ABSDCT is implemented, data blocks may be divided into different combinations of sub-blocks for the discrete cosine transform. Accordingly, depending on how a data block is divided, different quantization parameters are used for quantization of each data block. Similarly, depending on how a data block is divided, different quantization parameters are used for inverse quantization of each data block. Therefore, in order to perform inverse quantization during decompression, the appropriate quantization parameters need to be known for each data block being processed.
SUMMARY OF THE INVENTION
[00011] Embodiments disclosed herein address the above stated needs by providing a method for security in a data processing system. More particularly, embodiments allow selection of the appropriate quantization parameter during decompression of data compressed using the adaptive block size discrete cosine transform technique. The selection is based on the pixel position of data and the block size assignment.
[00012] In one embodiment, an apparatus and method comprise means for variable length decoding compressed information to generate a variable length decoded data block(s). The apparatus and method also comprise means for inverse quantizing the variable length decoded data block using a quantization parameter selected based on block size assignment information and address of data within the data block. The apparatus and method may further comprise means for inverse adaptive block size discrete cosine transforming the inverse quantized data block to recover original data. Here, the quantization parameter may be selected by the means for inverse quantizing the variable length decoded data block. Alternatively, the apparatus and method may further comprise means for selecting the quantization parameter. Moreover, the apparatus and method may further comprise a means for decoding the address of data into Y and X indices based on a Y and X index system.
[00013] In another embodiment, instructions are loaded on a machine readable medium, wherein a first set of instructions is variable length decode compressed information to generate a variable length decoded data block(s). A second set of instructions is to select a quantization parameter based on block size assignment information and address of data within the data block. A third set of instructions is to inverse quantize the variable length decoded data block using the selected quantization parameter.
[00014] In still another embodiment, an apparatus comprises means for displaying decompressed image information, and means for playing decompressed audio information. The apparatus also comprises a means for decoding compressed information, wherein the means for decoding comprises image decompressing means and an audio decompressing means. The image decompressing means is configured to decompress compressed image information into the decompressed image information based on block size assignment information and address of data within a data block. The audio decompressing means is configured to decompress compressed audio information into the decompressed audio information.
[00015] In a further embodiment, an apparatus and method comprise means for decoding an address of a data block into Y and X indices based on a Y and X index system. The apparatus and method also comprise means for receiving block size assignment information. The apparatus and method further comprises means for selecting an appropriate quantization parameter based on the block size assignment information and the Y and X indices. Here, the data block may be a 16x16 data block, wherein the block size assignment information comprises a first bit indicating whether the 16x16 data block is divided into 8x8 sub-blocks; second bits if the first bit indicates that the 16x16 is divided into 8x8 sub-blocks, each second bit indicating whether a corresponding 8x8 sub-block is divided into 4x4 sub-blocks; and third bits if at least one second bit indicates that the corresponding 8x8 sub-block is divided into 4x4 sub-blocks, each third bit indicating whether a corresponding 4x4 sub-block is divided into 2x2 sub-blocks.
BRIEF DESCRIPTION OF THE DRAWINGS
[00016] The invention will be described in detail with reference to the following drawings in which like reference numerals refer to like elements, wherein: [00017] Figure 1 shows one embodiment of a digital cinema system;
[00018] Figure 2 shows one embodiment of an encoder;
[00019] Figures 3A to 3D illustrate one embodiment of block and sub-block divisions for a
16x16 block image; [00020] Figures 4A and 4B illustrate one embodiment of block size assignment data;
[00021] Figures 5A to 5D show examples of the block size assignment data;
[00022] Figures 6A to 6C illustrate one embodiment of the Y-X index system to represent positions of image pixels; [00023] Figure 7 shows one embodiment of an image compressor;
[00024] Figure 8 shows one embodiment of a decoder;
[00025] Figure 9 shows one embodiment of an image decompressor;
[00026] Figures 10A and 10B illustrate one embodiment of the block size assignment data ordering; [00027] Figures 11A and 11B illustrate one embodiment of block selection based on Y and X indices; [00028] Figures 12 and 13 show different embodiments of a parameter selection module; and
[00029] Figures 14 to 16 show different embodiments of a method for selecting the appropriate parameter.
DESCRIPTION OF THE INVENTION
[00030] Generally, the apparatus and method allows selection of the appropriate quantization parameters during decompression based on pixel positions in a data block. In particular, when the adaptive block size discrete cosine transform (ABSDCT) compression is implemented, the appropriate Q_step value is selected for inverse quantization of the different combinations of sub-blocks. Also, if frequency weighting is used, the appropriate FWM table is also selected for inverse quantization.
[00031] Technologies such as the ABSDCT compression technique offer the possibility of a
"digital cinema" system. Generally defined, digital cinema refers to the electronic distribution and display of high quality film programming which has been converted to a digital electronic representation for storage, transmission, and display purposes. A digital cinema system would overcome many of the limitations of the current film distribution process. A digital system would not be subject to the quality degradation over time experienced by celluloid film. Further, a digital system may eliminate the theft and illegal duplication of films by allowing implementation of security measures within the digital system itself. Moreover, distribution of film information using a digital electronic format actually increases the potential for rapid, low- cost duplication without quality degradation. [00032] Digital cinema may include the electronic generation, compression, encryption, and storage of audio/visual progranrming, such as motion pictures in theater systems, theaters, theater complexes, and/or presentation systems. Accordingly, the invention is applicable to the presentation of image and audio information in a variety of locations such as a theatre or theatre complex, outdoor amphitheaters, drive-in complexes, civic auditoriums, schools and specialty restaurants. For purposes of the explanation, the invention will be described with reference to a theatre or theatre complex. However, those skilled in the art will readily understand that the invention may be applied to other types of locations, systems and fields.
[00033] Also, as disclosed herein, the term "program" refers to one or more films for display in cinemas, televisions, and/or other presentation systems and/or locations. The term "film" refers to various moving picture including, but not limited to, a full or portion of motion picture, a video clip, a commercial, a drama or a combination thereof. Image portion of films may consist of single frames (i.e., still images), a sequence of single frame still images, or motion image sequences of short or long duration. The term "storage medium" represents one or more devices for storing data, including buffers, read only memory (ROM), random access memory (RAM), magnetic disk storage mediums, optical storage mediums, flash memory devices, digital versatile disk (DVD), removable hard drive (RHD) and/or other machine readable mediums for storing information. The term "machine readable medium" includes, but is not limited to portable or fixed storage devices, optical storage devices, wireless channels and various other devices capable of storing, containing or carrying codes and/or data. The term "encryption" refers to various means of processing digital data streams of various sources using any of a number of cryptographic techniques to scramble, cover, or directly encrypt digital streams using sequences generated using secret digital values ("keys") in such a way that it is very difficult to recover the original data sequence without knowledge of the secret key values.
[00034] One embodiment of a digital cinema system 100 is illustrated in Figure 1. The digital cinema system 100 comprises two main systems: at least one central facility or hub 102 and at least one presentation or theater subsystem 104. The hub 102 and the theater subsystem 104 may be implemented by a design similar to that of pending US Patent Application Serial Nos. 09/564,174 and 09/563,880, both filed on May 3, 2000 and assigned to the same assignee as the present invention, both incorporated herein by reference.
[00035] Generally, the hub 102 includes a source generator 110 to receive and convert program material into a digital version of the program. The digital information is compressed using a preselected format or process by an encoder 120, and stored on a storage medium by a hub storage module 130. Here, the program material includes one or both image information and audio information. Accordingly, the digital information may include one or both digital image information and audio information. A network manager 140 monitors and sends control information to the source generator 110, the encoder 120, and the hub storage module 130. The digital information may also be encrypted by the encoder 120. In such case, the hub 102 may optionally include a conditional access manager 150 to provide specific electronic keying information such that only specific locations, for example theatres, are authorized to show specific programs and/or at specific times.
[00036] It is to be noted that, although the source generator 110 and the encoder 120 are parts of the hub 102 as shown in Figure 1, either or both the source generator 110 and the encoder 120 can be located in separate facilities such as a film or television production studio. Also, some data may not require conversion by the source generator 110. For example, digital information may be provided to the encoder 120 through a digital camera or other digital information generation device.
[00037] The theatre subsystem 104 may include a theatre manager 160 that controls one or more auditorium modules 170. Each auditorium module 170 comprises a decoder 175, a projector 177 and a sound system 179. Under the control of the theatre manager 160, compressed digital information is received from the hub 102, decoded by the decoder 175, decrypted (if necessary) and played by the auditorium modules 170 through the projector 177 and sound system 179. The compressed information may be received through a storage medium or may be transmitted in real-time, as desired. Also, the compressed information may be prepared as a selected sequence, size and data rate prior to being decoded.
[00038] Typically, the data stream input to the encoder 120 is composed of image frames. An image frame can generally be divided into slices, a slice can be divided into data blocks, and a data block can be divided into pixels which are the smallest units of an image. Each image frame includes an integer number of slices and each image slice typically represents the image information for a set of 16 consecutive scan lines. In such case, each data block corresponds to a block of 16x16 pixels across the image of the frame. Also, a frame may be separated into even and odd slices, thereby forming an even half frame and an odd an half frame. In one embodiment, half frames are the fundamental packets of compressed data information that are processed by a decoder. Moreover, an image pixel can be commonly represented in the Red, Green and Blue (RGB) color component system. However, because the human eye is more sensitive to changes in luminance and less sensitive to changes in chrominance, the YCbCr color space is typically used in video compression to represent image pixels. The YCbCr color space is a linear transformation of the RGB components, where Y is the chrominance component, and Cb and Cr are the color components. If a frame is separated into even/odd frames, an image frame would be made up of three even half frames and three odd half frames corresponding to the components Y, Cb and Cr.
[00039] In the description above, a slice can represent a set of consecutive scan lines other than
16 consecutive scan lines. Also, a different color space with the same or different number of color components may be used to represent an image pixel. However, a block size of 16x16 pixels and the YCbCr color space are used for purposes of explanation.
[00040] Figure 2 shows one embodiment of an encoder 200 comprising an image compressor
210, an audio compressor 230 and a back-end processor 250. When the encoder 200 receives digital information, the digital image and audio information may be stored in frame buffers (not shown) before further processing. The image compressor 210 compresses the digital image information using any number of compression techniques. In one embodiment, the image compressor 210 compresses the digital image information using the ABSDCT technique described in U.S. Patent Nos. 5,021,891, 5,107,345, and 5,452,104.
[00041] Generally, each of the luminance and chrominance components is passed to a block interleaver (not shown). In one embodiment, as shown in Figures 3A to 3D, a 16x16 block is presented to the block interleaver, which orders the image samples within the 16x16 blocks to produce blocks and composite sub-blocks of data for DCT analysis. One 16x16 DCT is applied to a first ordering, four 8x8 DCTs are applied to a second ordering, 16 4x4 DCTs are applied to a third ordering, and 64 2x2 DCTs are applied to a fourth ordering. The DCT operation reduces the spatial redundancy inherent in the image source. After the DCT is performed, most of the image signal energy tends to be concentrated in a few DCT coefficients.
[00042] For the 16x16 block and each sub-block, the transformed coefficients are analyzed to determine the number of bits required to encode the block or sub-block. Then, the block or the combination of sub-blocks that requires the least number of bits to encode is chosen to represent the image segment. For example, two 8x8 sub-blocks, six 4x4 sub-blocks, and eight 2x2 sub-blocks may be chosen to represent the image segment. The chosen block or combination of sub-blocks is then properly arranged in order.
[00043] In one embodiment, the image compressor 210 comprises an ABSDCT module 212 that analyzes the transformed coefficients and selects the block or the combination of sub-blocks to represent the image segment. The ABSDCT module 212 also generates block size assignment information that represents the block size assignment within an n x n block. For the 16x16 data block, the ABSDCT module 212 generates data known as PQR information that represents the block size assignment within the 16x16 block. The PQR information is a variable bit width data that describes to what extent a 16x16 block is subdivided. The R-bit of the PQR field represents whether the 16x16 block is subdivided into four 8x8 blocks. As shown in Figure 4A, if the R bit is '0', the block remains whole. In this case no further PQR information is needed and the PQR field is only 1 bit long. If the R bit is T', then the 16x16 block is subdivided into four 8x8 blocks as shown in Figure 4B, and at least four additional bits will exist in the PQR field.
[00044] The additional four bits are referred to as 'Q' information. Each bit of Q denotes a subdivision of an 8x8 block into four 4x4 blocks. For each bit of Q that is set, four more bits of 'P' are present to indicate if any of the 4x4 blocks are subdivided into 2x2. Accordingly, the length of PQR data can be 1 to 21 bits long, depending on the block size assignment within the 16x16 block. If every 8x8 block is subdivided into 2x2 blocks, then the PQR information will be 21 bits in length. Figure 5A-D shows some examples of the 16x16 blocks with corresponding PQR data. In Figure 5 A, PQR = 0 indicates that the 16x16 block is not subdivided. In Figure 5B, PQR = 0000 0100 1 indicates that the 16x16 block is subdivided into four 8x8 blocks and one of the 8x8 block is subdivided into four 4x4 blocks. In Figure 5C, PQR = 0110 0000 0101 1 indicates that the 16x16 block is subdivided into four 8x8 blocks, one of which is subdivided into four 4x4 blocks and two of 4x4 blocks are divided into four 2x2 blocks. In Figure 5D, PQR = 0000 1 indicates that the 16x16 block is subdivided into four 8x8 blocks.
[00045] The image compressor 210 may further comprise an index module 214 that determines an index system to represent the positions of image pixels in an n x n block. Some embodiments may provide a plurality of index systems, one of which is selected by the index module 214 depending upon the compression technique. In such case, the encoder 120 and decoder 175 stores the plurality of index systems and the index module 214 would transmit a signal to indicate the selected index system. In other embodiments, one fixed index system may be used to represent the image pixel locations.
[00046] Figure 6A shows one embodiment of a Y-X index system that represents positions of image pixels in a 16x16 block with four orderings as described above. As shown in Figure 6B, each Y, X set of the four bit Y and X indices determines a quadrant of a corresponding block or sub-block within the 16x16 block. For example, Figure 6C shows an image pixel position with the corresponding Y, X indices. Here, the Y3 and X3 bits determine the 8x8 block quadrant, the Y2 and X2 bits determine the 4x4 block quadrant, the Yi and
Figure imgf000012_0001
bits determine the 2x2 quadrant, and the Y0 and Xo bits determine the image pixel location within the 2x2 sub-block.
[00047] Figure 7 shows one embodiment of an image compressor 300 comprising an ABSDCT module 710, a quantization module 720 and a variable length coding (VLC) module 730. The ABSDCT module 710 converts the digital image information from spatial to frequency domain using the ABSDCT technique and generates DCT coefficients with corresponding block size assignment information, such as the PQR information for the 16x16 data block. The quantization module 720 quantizes the DCT coefficients and the VLC 730 compresses the quantized DCT coefficients using a variable length coding technique. The image compressor 300 may further comprise an index module 740 that generates signals that indicate the index system used during the compression.
[00048] The quantization module 720 quantizes the DCT coefficients using quantization steps
(Q_step) based on the block size assignment and position as determined by the index system. The Q-step may be used as a programmable quantization level and may be maintained by software stored in a storage medium (not shown). In one embodiment, there are different Q_step values for each color component (Y, Cb, Cr) and a different set of Q_step values for each block or sub-block size (16x16, 8x8, 4x4, and 2x2). Furthermore, in one embodiment, the DCT coefficients can be quantized using weighting functions such as frequency weight masks (FWMs) optimized for the human eye. If used in combination with ABSDCT, there would be a different FWM table for each block or sub-block size (16x16, 8x8, 4x4, and 2x2). There would also be at least three different sets of FWM tables, one for each component Y, Cb and Cr.
[00049] In one embodiment, the quantization is implemented by two multipliers. The DCT coefficient may be multiplied by the Q_step based on the block or sub-block size and position. The result is then multiplied by a frequency weight at a corresponding pixel position from a FWM table based on the block size assignment.
[00050] In variable length coding the quantized DCT coefficients, the NLC 730 may include a
Huffman engine for Huffman coding the non-zero AC coefficient values along with the run length of zeros. Namely, a Huffman code represents the number of zeros preceding a non-zero AC coefficient and the size (minimum number bits required for representation) of that non-zero AC coefficient. Accordingly, the DCT coefficients are run-length coded to generate the different pairs of run lengths of zeros and corresponding size of the subsequent non-zero AC coefficient. Here, zigzag scanning or other scanning patterns can be used to increase the runs of zeros. Tables are then used to assign codes to the different run-length coded pairs based on the probabilities with which the codes occur. Short codes are assigned to pairs that appear more frequently and longer codes are assigned to pairs that appear less frequently. The Huffman code is appended with the actual value of the AC coefficient and transmitted.
[00051] Therefore, in one embodiment, each image packet that is transmitted may comprise the fixed length DC value field, the variable-length PQR field, and a variable number of AC value fields. The DC value field contains the unsigned DC offset for the pixel block. The PQR field contains PQR information describing if and how the 16x16 pixel block has been subdivided into smaller blocks. This field can be 1, 5, 9, 13, 17 or 21 bits in length. After the PQR, the AC value field contains Huffman coded zero-run-length and size of the AC coefficient values.
[00052] Referring back to Figure 2, the audio portion of the digital information is generally passed to the audio compressor 230 for compression. The audio compressor 230 may also compress the digital audio image information using any number of compression techniques. The compressed digital information is then received and processed by the back-end processor 250. For example, the compressed image and audio information may be encrypted using any one of a number of known encryption techniques. The compressed information may be multiplexed along with synchronization information and packetized. Here, the synchronization information allows the image and audio streamed information to be played back in a time aligned manner at the theater subsystem 104. In another embodiment, the image and audio information may also be treated separately, rather than multiplexed, and separately packetized. The processed image and audio information may be sent to the hub storage medium 130 for storage on a storage medium.
[00053] When a program is to be viewed, the program information may be retrieved and transferred to the auditorium module 170 through the theater manager 160. Each auditorium module 170 may process and display a different program from other auditorium modules 170 in the same theater subsystem 104, or one or more auditorium modules 170 may simultaneously process and display the same program.
[00054] At the auditorium 170, the compressed information is decrypted, if necessary and decompressed by the decoder 175 using a decompression algorithm that is inverse to the compression algorithm used at the encoder 120. For example, the decompression process may include variable length decoding, inverse quantization, inverse ABSDCT, and deinterleaving to combine the DCT blocks. The decompressed image information is thereafter converted to a standard video format for display (which may be either an analog or digital format) and may be displayed. The audio information is also decompressed and provided for playback with the image information.
[00055] Figure 8 shows one embodiment of a decoder 800. Generally, the decoder 800 processes the compressed/encrypted information to be visually projected by the projector 177 onto a screen or surface and audibly presented using the sound system 179. The decoder 800 may comprise a front-end (FE) processor 810, an image decompressor 810 and an audio decompressor 820. The decoder 800 may be implemented on one or more circuit card assemblies and the circuit card assemblies may be installed in a self-contained enclosure that mounts on, within or adjacent to the projector 177.
[00056] In operation, the FE processor 810 identifies and separates the individual control, image, and audio packets that arrive from the theater manager 160. Control packets may be sent to the theater manager 160 while the image and audio packets are sent to the image and audio decompressors 820 and 830, respectively. Here, if a plurality of index systems is implemented for compression of the image data, the control packets may include information indicating the selected index system. Read and write operations tend to occur in bursts. Therefore, large buffers may be used to stream data smoothly from the decoder 175 directly to the projector 179. In some embodiments, a cryptographic smart card may be implemented for transfer and storage of unit-specific cryptographic keying information.
[00057] The image decompressor 820 performs decryption if necessary, decompresses the compressed image packets and reassembles the original image for presentation on the screen. The output of this operation generally provides standard analog RGB signals to the digital cinema projector 177. The decryption and decompression can be performed in real-time, allowing for real-time playback of the programming material.
[00058] The processing elements used for decompression may be implemented in dedicated specialized hardware configured for this function such as an ASIC and/or one or more circuit card assemblies. Alternatively, the decompression processing elements may be implemented as standard elements and/or generalized hardware including a variety of digital signal processors, programmable electronic devices and/or computers that operate under the control of special function software and/or firmware programming. Multiple ASICs may be implemented to process the image information in parallel to support high image data rates. [00059] At the image decompressor 820, the compressed image data streams undergo an image decompression symmetric to the image compression used in the encoder 120. For example, Figure 9 shows one embodiment of an image decompression 900 that is symmetric to the image compression 700 shown in Figure 7. The image decompressor 900 may include a variable length decoding (VLD) module 910 to decompress the compressed image information, an inverse quantization module 920 to inverse quantize the decompressed image information and an inverse ABSDCT module 930 to convert the inverse quantized image information from frequency to spatial domain to enable display of the image. The image decompressor 900 may further comprise an address decoder 940 to decode the pixel locations based on the index system and a parameter selecting module 950 to select the appropriate quantization parameters.
[00060] The VLD module 910 variable length decodes the compressed image information to generate variable length decoded data blocks. The inverse quantization module 920 performs inverse quantization. Since the quantization at the image compressor 700 is based on block size assignment information, the inverse quantization at the image decompressor 900 is also based on block size assignment. In particular, the block size assignment and address of the data within the n x n block is used to determine the appropriate Q-step. Moreover, if the quantization at the image compressor 700 was performed using weighting functions, the block size assignment information and data address is used to determine the appropriate FWM table.
[00061] Although Figure 9 shows the address module 940 and parameter selection module 950 as implemented separately from the quantization module 930, either one or both the address module 940 and the parameter selection module 950 may be implemented as a part of the quantization module 930. Alternatively, the address module 940 and the parameter selecting module 950 may be combined and implemented separately from the quantization module 930. Also, either one or both the address module 940 and the parameter selection module 950 may be implemented by software, firmware or a combination of software, firmware and hardware.
[00062] Furthermore, the inverse quantization may be implemented by two multipliers. The data position and block size assignment information are first used to select the inverse Q_step value. A first multiplier multiplies the data by the Q_step value. At the same time, the data position and the block size assignment information are also used to select the appropriate FWM table and lookup of the second inverse quantization multiplier. A second multiplier then multiplies the result of the first multiplication by the FWM value.
[00063] In one embodiment, the address decoder 940 decodes the address of the data based on the Y-X index system as described with reference to Figures 6A to 6C. Accordingly, the selection of the quantization parameter(s) is (are) based on the Y-X index system and block size assignment information. For example, for the 16x16 block data, the Y and X indices are used to determine a variable PQR value based on the data location and the variable PQR value is used to select the appropriate Q-step and FWM table. Figures 10 A and 10B show one embodiment of the ordering of PQR bits Q0 to Q3 and P0 to P3 based on the data location decoded by the address decoder 940, and Figures 11A and 11B show one embodiment of the 8x8 and 4x4 block selection based on the Y and X indices.
[00064] As shown, Q0 corresponds to (Y3, X3) = (0, 0), Ql corresponds to (Y3, X3) = (0, 1), Q2 corresponds to (Y3, X3) = (1, 0) and Q3 corresponds to (Y3, X3) = (1, 1). PO-0, PO-1, PO-2 and PO-3 correspond to (Y2, X2) = (0, 0), (0, 1), (1, 0) and (1, 1) respectively for (Y3, X3) = (0, 0). Similarly, Pl-0, Pl-1, Pl-2 and Pl-3 correspond to (Y2, X2) = (0, 0), (0, 1), (1, 0) and (1, 1) respectively for (Y3, X3) = (0, 1); P2-0, P2-1, P2-2 and P2-3 correspond to (Y2, X2) = (0, 0), (0, 1), (1, 0) and (1, 1) respectively for (Y3, X3) = (1, 0); and P3-0, P3-1, P3-2 and P3-3 correspond to (Y2, X2) = (0, 0), (0, 1), (1, 0) and (1, 1) respectively for (Y3, X3) = (1, 1).
[00065] Based on the Y-X index system, the address decoder 940 determines the Y-X indices for each of the pixel position of the 16x16 block data. The parameter selecting module 950 receives the Y-X indices from the address decoder and also receives the PQR information for the 16x16 block. Using the Y-X indices and the PQR information, the parameter selecting module 950 determines the PQR value and selects the appropriate Q-step and FWM table. The quantization module 930 can then quantize the decompressed image data using the selected Q- step and frequency weight values.
[00066] Figure 12 shows one embodiment of a parameter selection module 1200 comprising multiplexers (MUXs) 1210 ~ 1260 and an array 1270. Figure 13 shows another embodiment of a parameter selection module 1300 comprising multiplexers (MUXs) 1310 ~ 1330 and an array 1370. In the parameter selection module 1200 and 1300, the array 1270 and array 1370, each comprises fields that represent Q0 to Q3 bits and P0 to P3 bits for each Q0 to Q3 bits. In one embodiment, the values of the arrays 1270 and 1370 are initially set to a default value, for example zero. Once the PQR information is received, the parameter selection modules 1200 and 1300 store the PQR information in the corresponding fields. Also, the first value or R value of the variable PQR value is the R bit from the PQR information. Moreover, the MUX 1210 and MUX 1310, respectively, select a second value or Q value of the variable PQR value based on the Y3 and X3 indices. [00067] In parameter selection module 1200, the MUXs 1220 to 1250 each select a P bit based on the Y2 and X2 indices. The third value or P value of the variable PQR value is then selected by MUX 1260 based on the Y3 and X3 indices. Alternatively, in parameter selection module 1300, a set of P bits corresponding to one of P0, PI, P2 or P3 are selected by MUX 1320 based on Y3 and X3 indices. The third value or P value is then selected by MUX 1330 based on the Y2 and X2 indices.
[00068] Figure 14 shows one embodiment of a method 1400 for selecting the appropriate quantization parameter for a data bit of a 16x16 block of data. Method 1400 comprises . determining a variable PQR value based on the Y-X indices (1410) and selecting the quantization parameter based on the variable PQR value (1450). The R value is selected directly from the first bit or R bit of the PQR information (1412). The Q value is selected by MUX 1210 based on Y3 and X3 indices (1414). For example, if (Y3, X3) = (0, 1), the value from the Ql field is selected. The P value is then selected based on both Y3, X3 and Y2, X2 indices (1416).
[00069] In one embodiment, MUXs 1220 to 1250 each selects a value from a P field based on
Y2 and X2 indices. For example, if (Y2, X2) = (1, 1), MUXs 1220 to 1250 would each select the value from PO-3, Pl-3, P2-3 and P3-3 fields, respectively. The P value is then selected by MUX 1260 from one of the MUXx 1220 to 1250 based on the Y3 and X3 indices. For example, for (Y3, X3) = (0, 1), Pl-3 from MUX 1230 is selected. In a second embodiment, a set of P values are selected by the MUX 1320 based on Y3 and X3 indices. For example, if (Y3, X3) = (0, 1), P values corresponding to PI are selected and the values from Pl-0, Pl-1, Pl-2 and Pl-3 fields would be output. The P value is then selected by MUX 1330 from one of the P fields based on the Y2 and X2 indices. For example, for (Y2, X2) = (1, 1), the value from Pl-3 field is selected.
[00070] Thereafter, the selection of the appropriate FWM table and Q-step can be implemented as follows. If PQR = 000, a 16x16 parameter is selected (1452 and 1454). If PQR = 001, an 8x8 parameter is selected (1456 and 1458). If PQR = 011, a 4x4 parameter is selected (1460 and 1462). Otherwise, a 2x2 parameter is selected (1464).
[00071] Figure 15 shows another embodiment of a method 1500 for selecting the appropriate quantization parameter for a 16x16 block of data. Here the quantization parameter may be the Q_step or both the Q_step and the FWM table as described above. For each pixel data of the 16x16 block, a determination is made whether or not the R = 0 (1510). If the value of R = 0, then 16x16 FWM table and Q_step are selected (1520). If the value of R ≠ 0, the Q bit corresponding to Y3 and X3 is obtained (block 1530) and a determination is made whether the obtained value of Q = 0 (1540). If the value of Q = 0, then 8x8 FWM table and Q_step are selected (1550). If the value of Q ≠ 0, the P bit corresponding to Y2 and X2 for the quadrant corresponding to Y3 and X3 is obtained (1560) and a determination is made whether the obtained value of P = 0 (1570). If the value of P = 0, then 4x4 FWM table and Q_step are selected (1580). Otherwise, the 2x2 FWM table and Q_step are selected (1590).
[00072] Alternatively, Figure 16 shows another embodiment of a method 1600 for selecting the appropriate quantization parameter for a 16x16 block data. As in method 1500, the quantization parameter may be the Q_step or both the Q_step and the FWM table. Also, in this embodiment, a storage medium is used to store the FWM table and/or Q_step values as determined for quadrants or sub-blocks. First, a determination is made whether the data is the first pixel data of the image block (block 1610). If the data is the first pixel data, a determination is made whether R = 0 (block 1615). If R = 0, then 16x16 FWM table and Q_step are selected and stored in the storage medium for use in the remaining data of the 16x16 block (block 1620). If the data is not the first pixel data or if R ≠ 0, a determination is made whether the parameter is known for the pixel position of the data (block 1625). If known, the known parameter is selected (block 1630). Here, the storage medium is checked to determine if a parameter selection has been stored for the corresponding pixel position. In one embodiment, the storage medium may be a lookup table.
[00073] If the parameter is not known, the 8x8 quadrant or sub-block in which the pixel position of the data is located is determined using the Y3 and X3 indices (block 1635). If the corresponding Q = 0, 8x8 FWM table and Q_step are selected, and stored for the remaining data in the corresponding 8x8 quadrant (blocks 1640 and 1645). If Q ≠ 0, the 4x4 quadrant or sub-block in which the pixel position of the data is located is determined using the Y2, X2 and Y3, X3 indices (block 1650). If the corresponding P = 0, 4x4 FWM table and Q_step are selected and stored for the remaining data in the corresponding 4x4 quadrant (blocks 1655 and 1660). If P ≠ 0, 2x2 FWM table and Q_step are selected and stored for the data in the corresponding 2x2 quadrants or sub-blocks of the 4x4 quadrant (block 1665).
[00074] Therefore, the appropriate quantization parameters can be selected based on pixel positions of data and block size assignment. Accordingly, the image decompressor 900 variable length decodes and inverse quantizes the compressed data using the appropriate quantization parameters. After inverse quantization, an inverse ABSDCT is performed to recover the original image information. [00075] The decompressed image data goes through digital to analog conversion, and the analog signals are output to projector 177. Alternatively, a digital interface may be used to convey the decompressed digital image data to the projector 177 obviating the need for the digital-to- analog process. The audio decompressor 830 performs decryption, if necessary, and reassembles the original audio for presentation on a theater's speakers or audio sound module 179. The output of this operation can provide standard line level audio signals to the sound module 179. Similar to the image decompressor 820, audio decompression is performed with an algorithm symmetric to that used at the central hub 102 for audio compression. As discussed earlier, audio and data tracks may be time synchronized to the image programs or may be presented asynchronously without direct time synchronization.
[00076] It should be noted that the foregoing embodiments are merely exemplary and are not to be construed as limiting the invention. For example, the invention may be implemented by hardware, software, firmware, or any combination thereof. When implemented in software or firmware, the elements of the invention are the program code or code segments to perform the necessary tasks. A code segment may represent a procedure, a function, a subprogram, a program, a routine, a subroutine, a module, a software package, a class, or any combination of instructions, data structures, or program statements. A code segment may be coupled to another code segment or a hardware circuit by passing and or receiving information, data, arguments, parameters, or memory contents. Information, arguments, parameters, data, etc. may be passed, forwarded, or transmitted via any suitable means including memory sharing, message passing, token passing, network transmission, etc.
[00077] The program code or code segments may be stored in a machine readable medium, such as a processor readable medium or a computer program product, or transmitted by a computer data signal embodied in a carrier wave or a signal modulated by a carrier over a transmission medium or communication link. The machine readable medium or processor readable medium may include any medium that can store or transfer information in a form readable and executable by a machine (e.g. a processor, a computer, etc.). Examples of the machine/processor-readable medium include an electronic circuit, a semiconductor memory device, a read only memory (ROM), a flash memory, an erasable programmable ROM (EPROM), a floppy diskette, a compact disk CD-ROM, and optical disk, a hard disk, a fiber optic medium, a radio frequency (RF) link. The computer data signal may include various signal that can propagate over a transmission medium such as electronic network channels, optical fibers, air, electromagnetic, RF links, etc. The code segments may be downloaded via networks such as the Internet, an Intranet, etc.
[00078] In addition, the playback module 173 and the decoder 175 may be integrated into a single playback-decoder module. The encoding may include other processes such as differential quad-tree transformation. In such case, the decoding would include inverse differential quad-tree transformation. Also, a bit value of 1 rather than 0 may be used to indicate that a block is subdivided in the PQR information. Similarly, the bit values of X and Y indices may be inversed. Furthermore, although the invention has been described with reference to an n x n data block, the invention is applicable to an n x m block where n ≠ m. Moreover, the invention is applicable for the selection of parameters other than quantization parameters if the parameter depends on data block size where there are different data block sizes.
[00079] Therefore, the description of the invention is intended to be illustrative, and not to limit the scope of the claims. As such, the present teachings can be readily applied to other types of apparatus and many alternatives, modifications, and variations will be apparent to those skilled in the art.
What is claimed is:

Claims

1. Apparatus comprising: a variable length decoder configured to variable length decode compressed information and to generate a variable length decoded data block; and an inverse quantization module coupled to the variable length decoder, the inverse quantization module configured to inverse quantize the variable length decoded data block using a quantization parameter selected based on block size assignment information and address of data within the data block.
2. The apparatus of claim 1, wherein the inverse quantization module is configured to select the quantization parameter.
3. The apparatus of claim 2, wherein the inverse quantization module comprises a parameter selection module configured to select the quantization parameter.
4. The apparatus of claim 3, wherein the inverse quantization module further comprises an address decoder coupled to the parameter selection module, the address decoder configured to decode the address of the data within the data block, and wherein the quantization parameter is selected based on the block size assignment information and the decoded address of the data.
5. The apparatus as in any one of the preceding claims, further comprising a parameter selection module coupled to the inverse quantization module, the parameter selection module configured to select the quantization parameter.
6. The apparatus as in any one of the preceding claims, further comprising an address decoder coupled to the variable length decoder, the address decoder configured to decode the address of the data within the data block, and wherein the quantization parameter is selected based on the block size assignment information and the decoded address of the data.
7. The apparatus as in any one of the preceding claims, further comprising an inverse adaptive block size discrete cosine transform module coupled to the inverse quantization module, the inverse adaptive block size discrete cosine transform module configured to recover original data from the inverse quantized data block.
8. The apparatus as in any one of the preceding claims, wherein the quantization parameter comprises either one or both a Q_step and a frequency weight mask table.
9. The apparatus of claim 8, wherein the inverse quantization module comprises: a first multiplier configured to multiply the variable length decoded data by the selected Q_step and generating a first multiplication value; and a second multiplier coupled to the first multiplier, the second multiplier configured to multiply the first multiplication value by a value from the selected frequency weight mask table.
10. A method comprising: variable length decoding compressed information to generate a variable length decoded data block; selecting a quantization parameter based on block size assignment information and address of data within the data block; and inverse quantizing the variable length decoded data block using the selected quantization parameter.
11. The method of claim 10, further comprising decoding the address of the data within the data block and selecting the quantization parameter based on the block size assignment information and the decoded address of the data.
12. The method of claim 11, wherein decoding the address of the data comprises decoding the address of the data into Y and X indices based on a Y and X index system.
13. The method as in claim 10 or any one of claims 11-12 as dependent thereon, further comprising inverse adaptive block size discrete cosine transforming the inverse quantized data block to recover original data.
14. , Apparatus comprising: means for variable length decoding compressed information to generate a variable length decoded data block; means for selecting a quantization parameter based on block size assignment information and address of data within the data block; and means for inverse quantizing the variable length decoded data block using the selected quantization parameter.
15. The apparatus of claim 14, further comprising means for decoding the address of the data within the data block, and wherein the means for selecting the quantization parameter selects the quantization parameter based on the block size assignment information and the decoded address of the data.
16. The apparatus of claim 15, wherein the means for decoding decodes the data into Y and X indices based on a Y and X index system.
17. The apparatus as in claim 14 or any one of claims 15-16 as dependent thereon, further comprising means for inverse adaptive block size discrete cosine transforming the inverse quantized data block to recover original data.
18. The apparatus as in claim 14 or any one of claims 15-17, wherein the means for selecting the quantization parameter selects either or both a Q_step and a frequency weight mask table.
19. The apparatus of claim 18, wherein the means for inverse quantizing the variable length decode data block comprises: first multiplication means for multiplying the variable length decoded data by the selected Q_step and generating a first multiplication value; and second multiplication means for multiplying the first multiplication value by a value from the selected frequency weight mask table.
20. An instruction loaded on a machine readable medium comprising: first set of instructions to variable length decode compressed information to generate a variable length decoded data block; second set of instructions to select a quantization parameter based on block size assignment information and address of data within the data block; and third set of instructions to inverse quantize the variable length decoded data block using the selected quantization parameter.
21. The instruction of claim 20, further comprising fourth set of instructions to decode the address of the data within the data block, and wherein the second set of instructions selects the quantization parameter based on the block size assignment information and the decoded address of the data.
22. The instruction of claim 21, wherein the fourth set of instructions comprises instructions to decode the address into Y and X indices based on a Y and X index system.
23. Apparatus comprising: a projector configured to display decompressed image information; a sound system configured to play decompressed audio information; and a decoder coupled to at least the projector, the decoder comprising: an image decompressor coupled to the projector, the image decompressor configured to decompress compressed image information into the decompressed image information based on block size assignment information and address of data within a data block; and an audio decompressor coupled to the sound system, the audio decompressor configured to decompress compressed audio information into the decompressed audio information.
24. The apparatus of claim 23, wherein the image decompressor comprises: a variable length decoder configured to variable length decode the compressed information and to generate a variable length decoded data block; an inverse quantization module coupled to the variable length decoder, the inverse quantization module configured to inverse quantize the variable length decoded data block using a quantization parameter selected based on the block size assignment information and the address of data within the data block. an inverse adaptive block size discrete cosine transform module coupled to the inverse quantization module, the inverse adaptive block size discrete cosine transform module configured to inverse discrete cosine transform the inverse quantized data into the decompressed image information.
25. The apparatus of claim 24, wherein the inverse quantization module is configured to select the quantization parameter.
26. The apparatus of claim 24 or claim 25 as dependent thereon, further comprising a parameter selection module coupled to the inverse quantization module, the parameter selection module configured to select the quantization parameter.
27. The apparatus of claim 24 or any one of claims 25-26 as dependent thereon, further comprising an address decoder coupled to the variable length decoder, the address decoder configured to decode the address of the data within the data block, and wherein, the quantization parameter is selected based on the block size assignment information and the decoded address of the data.
28. The apparatus of claim 27, wherein the address decoder decodes the address of the data into Y and X indices based on a Y and X index system.
29. Apparatus comprising: means for displaying decompressed image information; means for playing decompressed audio information; means for decompressing compressed image information into the decompressed image information based on block size assignment information and address of data within a data block; and means for decompressing compressed audio information into the decompressed audio information.
30. The apparatus of claim 29, wherein the means for decompressing compressed image information comprises: means for variable length decoding the compressed information to generate variable length decoded data block; means for selecting a quantization parameter based on the block size assignment information and the address of data within the data block; means for inverse quantizing the variable length decoded data block using the selected quantization parameter; and means for inverse discrete cosine transforming the inverse quantized data into the decompressed image information.
31. The apparatus of claim 30, wherein the means for decompressing the compressed image information further comprises means for decoding the address of the data within the data block, and wherein the means for selecting the quantization parameter selects the quantization parameter based on the block size assignment information and the decoded address of the data.
32. The apparatus of claim 31, wherein the means for decoding decodes the address of the data into Y and X indices based on a Y and X index system.
33. A method comprising: decoding an address of a data block into Y and X indices based on a Y and X index system; receiving block size assignment information; and selecting an appropriate quantization parameter based on the block size assignment information and the Y and X indices.
34. The method of claim 33, wherein the data block is a 16x16 data block and wherein the block size assignment information comprises: a first bit indicating whether the 16x16 data block is divided into 8x8 sub-blocks; second bits if the first bit indicates that the 16x16 is divided into 8x8 sub-blocks, each second bit indicating whether a corresponding 8x8 sub-block is divided into 4x4 sub-blocks; and third bits if at least one second bit indicates that the coπesponding 8x8 sub-block is divided into 4x4 sub-blocks; each third bit indicating whether a coπesponding 4x4 sub-block is divided into 2x2 sub-blocks.
35. The method of claim 34, wherein selecting the appropriate quantization parameter comprises: determining a variable value based on the block size assignment information and Y and X indices; and selecting the quantization parameter based on the determined variable value.
36. The method of claim 35, wherein determining the variable value comprises: determining a first value of the variable value as the first bit of the block size assignment information; selecting one of the second bits of the block size assignment information as a second value of the variable value based on the Y and X indices, if the block size assignment information comprises second bits, and otherwise selecting a default value as the second value of the variable value; and selecting one of the third bits of the block size assignment information as a third value of the variable value based on the Y and X indices, if the block size assignment information comprises third bits, and otherwise selecting a default value as the third value of the variable value.
37. The method of claim 34, wherein selecting the appropriate quantization parameter comprises: determining whether the first bit is a certain bit value; selecting a 16x16 parameter if the first bit is a certain bit value, and otherwise determining the 8x8 sub-block in which the data is located based on the Y and X indices; determining whether the second bit coπesponding to the 8x8 sub-block is a certain bit value; selecting an 8x8 parameter if the second bit is a certain bit value, and otherwise determining the 4x4 sub-block in which the data is located based on the Y and X indices; determining whether the third bit corresponding to the 4x4 sub-block is a certain bit value; and selecting a 4x4 parameter if the third block is a certain bit value, and otherwise selecting a 2x2 parameter for the 2x2 sub-blocks of the 4x4 sub-block.
38. The method of claim 34, wherein selecting the appropriate quantization parameter comprises: determining whether the first bit is a certain bit value; selecting and storing a 16x16 parameter for the 16 16 block if the first bit is a certain bit value, and otherwise determining whether the quantization parameter is known for the data location within the data block; determining the 8x8 sub-block in which the data is located based on the Y and X indices, if the quantization parameter is not known for the data location; determining whether the second bit coπesponding to the 8x8 sub-block is a certain bit value; selecting and storing an 8x8 parameter for the 8x8 sub-block if the second bit is a certain bit value, and otherwise determining the 4x4 sub-block in which the data is located based on the Y and X indices; determining whether the third bit coπesponding to the 4x4 sub-block is a certain bit value; and selecting and storing a 4x4 parameter for the 4x4 sub-block if the third block is a certain bit value, and otherwise selecting and storing a 2x2 parameter for the 2x2 sub-blocks of the 4x4 sub-block.
39. Apparatus comprising: means for decoding address of data block into Y and X indices based on a Y and X index system; means for receiving block size assignment information; and means for selecting an appropriate quantization parameter based on the block size assignment information and the Y and X indices.
40. The apparatus of claim 39, wherein the data block is a 16x16 data block and wherein the block size assignment information comprises: a first bit indicating whether the 16x16 data block is divided into 8x8 sub-blocks; second bits if the first bit indicates that the 16x16 is divided into 8x8 sub-blocks, each second bit indicating whether a corresponding 8x8 sub-block is divided into 4x4 sub-blocks; and third bits if at least one second bit indicates that the corresponding 8x8 sub-block is divided into 4x4 sub-blocks; each third bit indicating whether a coπesponding 4x4 sub-block is divided into 2x2 sub-blocks.
41. The apparatus of claim 40, wherein the means for selecting the appropriate quantization parameter comprises: means for determining a variable value based on the block size assignment information and the Y and X indices; and means for selecting the quantization parameter based on the determined variable value.
42. The apparatus of claim 41, wherein the means for determining the variable value comprises: determining a first value of the variable value as the first bit of the block size assignment information; means for selecting one of the second bits of the block size assignment information as a second value of the variable value based on the Y and X indices, if the block size assignment information comprises second bits, and otherwise selecting a default value as the second value of the variable value; and means for selecting one of the third bits of the block size assignment information as a third value of the variable value based on the Y and X indices, if the block size assignment information comprises third bits, and otherwise selecting a default value as the third value of the variable value.
43. The apparatus of claim 40, wherein the means for selecting the appropriate quantization parameter comprises: means for determining whether the first bit is a certain bit value; means for selecting a 16x16 parameter if the first bit is a certain bit value, and otherwise determining the 8x8 sub-block in which the data is located based on the Y and X indices; means for determining whether the second bit coπesponding to the 8x8 sub-block is a certain bit value; means for selecting an 8x8 parameter if the second bit is a certain bit value, and otherwise determining the 4x4 sub-block in which the data is located based on the Y and X indices; means for determining whether the third bit corresponding to the 4x4 sub-block is a certain bit value; and means for selecting a 4x4 parameter if the third block is a certain bit value, and otherwise selecting a 2x2 parameter for the 2x2 sub-blocks of the 4x4 sub-block.
44. The apparatus of claim 40, wherein selecting the appropriate quantization parameter comprises: means for determining whether the first bit is a certain bit value; means for selecting and storing a 16x16 parameter for the 16x16 block if the first bit is a certain bit value, and otherwise determining whether the quantization parameter is known for the data location within the data block; means for determining the 8x8 sub-block in which the data is located based on the Y and X indices, if the quantization parameter is not known for the data location; means for determining whether the second bit coπesponding to the 8x8 sub-block is a certain bit value; means for selecting and storing an 8x8 parameter for the 8x8 sub-block if the second bit is a certain bit value, and otherwise determining the 4x4 sub-block in which the data is located based on the Y and X indices; means for determining whether the third bit corresponding to the 4x4 sub-block is a certain bit value; and means for selecting and storing a 4x4 parameter for the 4x4 sub-block if the third block is a certain bit value, and otherwise selecting and storing a 2x2 parameter for the 2x2 sub- blocks of the 4x4 sub-block.
PCT/US2003/024152 2002-07-30 2003-07-30 Parameter selection in data compression and decompression WO2004036501A2 (en)

Priority Applications (10)

Application Number Priority Date Filing Date Title
AU2003298536A AU2003298536B2 (en) 2002-07-30 2003-07-30 Parameter selection in data compression and decompression
EP03796288.3A EP1525562B1 (en) 2002-07-30 2003-07-30 Parameter selection in data compression and decompression
CA002493757A CA2493757A1 (en) 2002-07-30 2003-07-30 Parameter selection in data compression and decompression
MXPA05001144A MXPA05001144A (en) 2002-07-30 2003-07-30 Parameter selection in data compression and decompression.
KR1020057001822A KR101228391B1 (en) 2002-07-30 2003-07-30 Parameter selection in data compression and decompression
JP2004545227A JP4819361B2 (en) 2002-07-30 2003-07-30 Parameter selection for data compression and decompression
ES03796288.3T ES2598403T3 (en) 2002-07-30 2003-07-30 Selection of parameters in data compression and decompression
CNB038180693A CN1320504C (en) 2002-07-30 2003-07-30 Parameter selection in data compression and decompression
DK03796288.3T DK1525562T3 (en) 2002-07-30 2003-07-30 PARAMETER SELECTION IN DATA COMPRESSION AND DECOMPRESSION
HK05111115A HK1079317A1 (en) 2002-07-30 2005-12-06 Parameter selection in data compression and decompression

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US39983802P 2002-07-30 2002-07-30
US60/399,838 2002-07-30
US10/630,511 2003-07-29
US10/630,511 US6975773B1 (en) 2002-07-30 2003-07-29 Parameter selection in data compression and decompression

Publications (3)

Publication Number Publication Date
WO2004036501A2 true WO2004036501A2 (en) 2004-04-29
WO2004036501A3 WO2004036501A3 (en) 2004-07-08
WO2004036501A8 WO2004036501A8 (en) 2004-08-19

Family

ID=32853150

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2003/024152 WO2004036501A2 (en) 2002-07-30 2003-07-30 Parameter selection in data compression and decompression

Country Status (15)

Country Link
US (3) US6975773B1 (en)
EP (1) EP1525562B1 (en)
JP (1) JP4819361B2 (en)
KR (2) KR20100113645A (en)
CN (1) CN1320504C (en)
AU (1) AU2003298536B2 (en)
CA (1) CA2493757A1 (en)
DK (1) DK1525562T3 (en)
ES (1) ES2598403T3 (en)
HK (1) HK1079317A1 (en)
HU (1) HUE028871T2 (en)
MX (1) MXPA05001144A (en)
PT (1) PT1525562T (en)
TW (1) TWI314302B (en)
WO (1) WO2004036501A2 (en)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006107584A2 (en) * 2005-04-05 2006-10-12 Regal Cinemedia Corporation Multi-channel audio switch
US7639700B1 (en) 2003-01-29 2009-12-29 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
US7783781B1 (en) 2005-08-05 2010-08-24 F5 Networks, Inc. Adaptive compression
US7882084B1 (en) 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US8159940B1 (en) 2004-11-11 2012-04-17 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
CN102521848A (en) * 2005-03-04 2012-06-27 Arm挪威股份有限公司 Method and apparatus for encoding data
US8275909B1 (en) 2005-12-07 2012-09-25 F5 Networks, Inc. Adaptive compression
US8279923B2 (en) 2007-02-09 2012-10-02 Panasonic Corporation Video coding method and video coding apparatus
US8417833B1 (en) 2006-11-29 2013-04-09 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
US9485512B2 (en) 2009-02-23 2016-11-01 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
EP3334160A4 (en) * 2015-11-06 2018-06-13 Huawei Technologies Co., Ltd. Method and apparatus for de-quantization of transform coefficients, and decoding device
US10754653B2 (en) 2011-05-03 2020-08-25 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
US11064199B2 (en) 2004-05-07 2021-07-13 Dolby Laboratories Licensing Corporation Method and system for generating a transform size syntax element for video decoding

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6975773B1 (en) * 2002-07-30 2005-12-13 Qualcomm, Incorporated Parameter selection in data compression and decompression
KR100799904B1 (en) * 2005-11-16 2008-01-31 엠텍비젼 주식회사 Inverse quantizer, method for inverse quantizing and recorded medium recorded the program performing it
US8711925B2 (en) * 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
US9418450B2 (en) 2006-08-31 2016-08-16 Ati Technologies Ulc Texture compression techniques
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US10897625B2 (en) * 2009-11-20 2021-01-19 Texas Instruments Incorporated Block artifact suppression in video coding
US8879632B2 (en) * 2010-02-18 2014-11-04 Qualcomm Incorporated Fixed point implementation for geometric motion partitioning
KR20150013776A (en) * 2010-04-09 2015-02-05 미쓰비시덴키 가부시키가이샤 Video encoding device and video decoding device
CN106067983B (en) 2010-04-13 2019-07-12 Ge视频压缩有限责任公司 The method of decoding data stream, the method and decoder for generating data flow
BR122020008249B1 (en) 2010-04-13 2021-02-17 Ge Video Compression, Llc inheritance in a multitree subdivision arrangement sample
CN106231337B (en) 2010-04-13 2020-06-19 Ge视频压缩有限责任公司 Decoder, decoding method, encoder, and encoding method
EP3703369B1 (en) 2010-04-13 2024-07-24 GE Video Compression, LLC Sample region merging
KR101918904B1 (en) * 2010-06-04 2019-02-08 소니 주식회사 Image processing device and method
JP5551274B2 (en) * 2010-12-14 2014-07-16 シャープ株式会社 Image filter device
US20120183047A1 (en) * 2011-01-18 2012-07-19 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform with inverse transform clipping
US20120183045A1 (en) * 2011-01-18 2012-07-19 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform including clipping
US20120183048A1 (en) * 2011-01-18 2012-07-19 Louis Joseph Kerofsky Video decoder with reduced dynamic range transform with multiple clipping
AU2016219700B2 (en) * 2011-01-18 2018-06-28 Dolby International Ab Video decoder with reduced dynamic range transform with inverse transform shifting memory
US9807395B2 (en) * 2011-01-18 2017-10-31 Dolby International Ab Video decoder with reduced dynamic range transform with inverse transform shifting memory
TWI661711B (en) * 2011-11-08 2019-06-01 三星電子股份有限公司 Video decoding method, video encoding method, apparatus and non-transitory computer-readable storage medium
CN103458460B (en) 2012-05-31 2017-04-12 国际商业机器公司 Method and device for compressing and decompressing signal data
KR101367777B1 (en) * 2012-08-22 2014-03-06 주식회사 핀그램 Adaptive predictive image compression system and method thereof
US8751832B2 (en) * 2013-09-27 2014-06-10 James A Cashin Secure system and method for audio processing
US9584701B2 (en) * 2014-01-06 2017-02-28 Panamorph, Inc. Image processing system and method
US11350015B2 (en) 2014-01-06 2022-05-31 Panamorph, Inc. Image processing system and method
CN109036441B (en) * 2014-03-24 2023-06-06 杜比国际公司 Method and apparatus for applying dynamic range compression to high order ambisonics signals
CN111052742A (en) * 2017-09-30 2020-04-21 深圳市大疆创新科技有限公司 Image processing

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107345A (en) * 1990-02-27 1992-04-21 Qualcomm Incorporated Adaptive block size image compression method and system
US5452104A (en) * 1990-02-27 1995-09-19 Qualcomm Incorporated Adaptive block size image compression method and system
WO2001035673A1 (en) * 1999-11-08 2001-05-17 Qualcomm Incorporated Variance based adaptive block size dct image compression
WO2001041443A1 (en) * 1999-12-02 2001-06-07 Qualcomm Incorporated Apparatus and method for decoding digital image and audio signals
WO2001056298A1 (en) * 2000-01-28 2001-08-02 Qualcomm Incorporated Quality based image compression

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6143875A (en) * 1984-08-08 1986-03-03 Nippon Telegr & Teleph Corp <Ntt> Basic cell type total search vector quantizing encoder
US5241395A (en) * 1989-08-07 1993-08-31 Bell Communications Research, Inc. Adaptive transform coding using variable block size
US5021891A (en) 1990-02-27 1991-06-04 Qualcomm, Inc. Adaptive block size image compression method and system
JP3093233B2 (en) * 1990-03-16 2000-10-03 キヤノン株式会社 Image encoding apparatus and method
JPH0583566A (en) * 1991-09-24 1993-04-02 N T T Data Tsushin Kk Image encoder
US5764807A (en) * 1995-09-14 1998-06-09 Primacomp, Inc. Data compression using set partitioning in hierarchical trees
US6233017B1 (en) * 1996-09-16 2001-05-15 Microsoft Corporation Multimedia compression system with adaptive block sizes
JPH1118087A (en) * 1997-06-20 1999-01-22 Olympus Optical Co Ltd Device and method for converting image data
US20020056081A1 (en) * 1999-12-02 2002-05-09 Qualcomm Incorporated Apparatus and method for decoding digital image and audio signals
US20030053637A1 (en) * 2001-09-14 2003-03-20 Michael Rodemer Audio distributor
US6975773B1 (en) * 2002-07-30 2005-12-13 Qualcomm, Incorporated Parameter selection in data compression and decompression

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5107345A (en) * 1990-02-27 1992-04-21 Qualcomm Incorporated Adaptive block size image compression method and system
US5452104A (en) * 1990-02-27 1995-09-19 Qualcomm Incorporated Adaptive block size image compression method and system
WO2001035673A1 (en) * 1999-11-08 2001-05-17 Qualcomm Incorporated Variance based adaptive block size dct image compression
WO2001041443A1 (en) * 1999-12-02 2001-06-07 Qualcomm Incorporated Apparatus and method for decoding digital image and audio signals
WO2001056298A1 (en) * 2000-01-28 2001-08-02 Qualcomm Incorporated Quality based image compression

Cited By (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7639700B1 (en) 2003-01-29 2009-12-29 F5 Networks, Inc. Architecture for efficient utilization and optimum performance of a network
US11064199B2 (en) 2004-05-07 2021-07-13 Dolby Laboratories Licensing Corporation Method and system for generating a transform size syntax element for video decoding
US8203949B1 (en) 2004-11-11 2012-06-19 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
US8804512B1 (en) 2004-11-11 2014-08-12 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
US8432799B1 (en) 2004-11-11 2013-04-30 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
US8159940B1 (en) 2004-11-11 2012-04-17 F5 Networks, Inc. Obtaining high availability using TCP proxy devices
CN102521848A (en) * 2005-03-04 2012-06-27 Arm挪威股份有限公司 Method and apparatus for encoding data
WO2006107584A2 (en) * 2005-04-05 2006-10-12 Regal Cinemedia Corporation Multi-channel audio switch
WO2006107584A3 (en) * 2005-04-05 2007-10-04 Regal Cinemedia Corp Multi-channel audio switch
US8516156B1 (en) 2005-08-05 2013-08-20 F5 Networks, Inc. Adaptive compression
US7783781B1 (en) 2005-08-05 2010-08-24 F5 Networks, Inc. Adaptive compression
US8275909B1 (en) 2005-12-07 2012-09-25 F5 Networks, Inc. Adaptive compression
US8499100B1 (en) 2005-12-07 2013-07-30 F5 Networks, Inc. Adaptive compression
US7882084B1 (en) 2005-12-30 2011-02-01 F5 Networks, Inc. Compression of data transmitted over a network
US9002806B1 (en) 2005-12-30 2015-04-07 F5 Networks, Inc. Compression of data transmitted over a network
US8417833B1 (en) 2006-11-29 2013-04-09 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
US9210239B1 (en) 2006-11-29 2015-12-08 F5 Networks, Inc. Metacodec for optimizing network data compression based on comparison of write and read rates
US8279923B2 (en) 2007-02-09 2012-10-02 Panasonic Corporation Video coding method and video coding apparatus
US9838721B2 (en) 2009-02-23 2017-12-05 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US9838719B2 (en) 2009-02-23 2017-12-05 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US9838720B2 (en) 2009-02-23 2017-12-05 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US9838722B2 (en) 2009-02-23 2017-12-05 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US9888259B2 (en) 2009-02-23 2018-02-06 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US10462494B2 (en) 2009-02-23 2019-10-29 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US9485512B2 (en) 2009-02-23 2016-11-01 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US11076175B2 (en) 2009-02-23 2021-07-27 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US11659210B2 (en) 2009-02-23 2023-05-23 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US12096043B2 (en) 2009-02-23 2024-09-17 Korea Advanced Institute Of Science And Technology Video encoding method for encoding division block, video decoding method for decoding division block, and recording medium for implementing the same
US10754653B2 (en) 2011-05-03 2020-08-25 Qualcomm Incorporated Methods and apparatus for storage and translation of entropy encoded software embedded within a memory hierarchy
EP3334160A4 (en) * 2015-11-06 2018-06-13 Huawei Technologies Co., Ltd. Method and apparatus for de-quantization of transform coefficients, and decoding device
US10630983B2 (en) 2015-11-06 2020-04-21 Huawei Technologies Co., Ltd. Transform coefficient dequantization method and apparatus, and decoding device

Also Published As

Publication number Publication date
ES2598403T3 (en) 2017-01-27
US6975773B1 (en) 2005-12-13
EP1525562A2 (en) 2005-04-27
US20060034532A1 (en) 2006-02-16
CN1672177A (en) 2005-09-21
JP2006516072A (en) 2006-06-15
KR101228391B1 (en) 2013-01-31
PT1525562T (en) 2016-11-08
AU2003298536A1 (en) 2004-05-04
HUE028871T2 (en) 2017-01-30
TW200426712A (en) 2004-12-01
AU2003298536B2 (en) 2009-12-10
CA2493757A1 (en) 2004-04-29
TWI314302B (en) 2009-09-01
CN1320504C (en) 2007-06-06
KR20100113645A (en) 2010-10-21
DK1525562T3 (en) 2016-09-19
US7593582B2 (en) 2009-09-22
MXPA05001144A (en) 2005-05-16
WO2004036501A3 (en) 2004-07-08
US20070248274A1 (en) 2007-10-25
JP4819361B2 (en) 2011-11-24
KR20050024513A (en) 2005-03-10
EP1525562B1 (en) 2016-08-17
HK1079317A1 (en) 2006-03-31
US7388993B2 (en) 2008-06-17
WO2004036501A8 (en) 2004-08-19

Similar Documents

Publication Publication Date Title
US7593582B2 (en) Systems and methods using parameter selection in data compression and decompression
KR101150576B1 (en) digital image encoding
EP1493276B1 (en) Apparatus and method for detecting error in a digital image
TW200401567A (en) Apparatus and method for detecting error in a digital image

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
CFP Corrected version of a pamphlet front page
CR1 Correction of entry in section i

Free format text: IN PCT GAZETTE 18/2004 UNDER (30) REPLACE "NOT FURNISHED, 29 JULY 2003 (29.07.2003), US" BY "10/630,511, 29 JULY 2003 (29.07.2003), US"

REEP Request for entry into the european phase

Ref document number: 2003796288

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2003796288

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2493757

Country of ref document: CA

WWE Wipo information: entry into national phase

Ref document number: 20038180693

Country of ref document: CN

Ref document number: PA/a/2005/001144

Country of ref document: MX

Ref document number: 90/CHENP/2005

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2003298536

Country of ref document: AU

Ref document number: 2004545227

Country of ref document: JP

Ref document number: 1020057001822

Country of ref document: KR

WWP Wipo information: published in national office

Ref document number: 1020057001822

Country of ref document: KR

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
WWP Wipo information: published in national office

Ref document number: 2003796288

Country of ref document: EP

DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)