[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

WO2008065249A1 - Image processing method - Google Patents

Image processing method Download PDF

Info

Publication number
WO2008065249A1
WO2008065249A1 PCT/FI2007/050638 FI2007050638W WO2008065249A1 WO 2008065249 A1 WO2008065249 A1 WO 2008065249A1 FI 2007050638 W FI2007050638 W FI 2007050638W WO 2008065249 A1 WO2008065249 A1 WO 2008065249A1
Authority
WO
WIPO (PCT)
Prior art keywords
block
image
random access
bit stream
access table
Prior art date
Application number
PCT/FI2007/050638
Other languages
French (fr)
Inventor
Tapio Viitanen
Original Assignee
Liquid Air Lab Gmbh
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
Application filed by Liquid Air Lab Gmbh filed Critical Liquid Air Lab Gmbh
Publication of WO2008065249A1 publication Critical patent/WO2008065249A1/en

Links

Classifications

    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/196Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
    • H04N19/197Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters including determination of the initial value of an encoding parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/007Transform coding, e.g. discrete cosine transform
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • 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

Definitions

  • the present invention relates to method and equipment for processing images, particularly compressed images.
  • JPEG Joint Photographic Experts Group
  • JFIF JPEG File Interchange Format
  • the JPEG standard defines a lossy coding system.
  • a DCT-transformation and quantization of the image is made, where each component of a color space model of the image is separately DCT-transformed.
  • the image is divided into macro blocks, such as 16x16 pixel macro blocks. All the color components are represented as blocks, which are treated in sequence.
  • the DCT-transformed blocks are threshold and quantized in order to discard information of basis functions that have little influence on the perception of the image.
  • the zeroth order coefficient, i.e. the DC-coefficient, of each component of each block is stored as the difference to the preceding DC-coefficient using Huffman-coding.
  • the AC-coefficients are arranged sequentially, the sequence being obtained by a zigzag order from the array.
  • the AC-coefficients are zero run length coded and further encoded with Huffman-coding.
  • the JPEG file format is not suited for manipulation of images. If JPEG encoded image needs to be processed, the image is decoded and hence transformed back into a spatial domain representation. However, especially since cameras producing high-quality images are applied, memory and processing resources may be inadequate for processing of such images, or the processing may be slow.
  • EP 1037165 describes a method for manipulating digital images stored in JPEG format.
  • the bit stream of the JPEG image is prescanned in or- der to identify locations of image areas in the bit stream. Designated ones of these locations are stored in a prescan table, whereby selected areas of the image may be accessed without the need to decode the entire bit stream when a portion of the image is to be manipulated.
  • WO 2005/050567 discloses an image representation format for re- presenting a digital image comprising: image information stored as a bit stream representing sequential image blocks, each block comprising one or more components, each component comprising one or more data units and each data unit being represented as a Huffman-coded stream of coefficients of basis functions, wherein a zeroth order coefficient is represented as a differen- ce to the previous zeroth order coefficient of the corresponding component, and a block information table, which comprises: indicators to the first coefficient of a specified order of each image block in said bit stream, information indicating the number of bits in the bit stream between adjacent coefficients of said specified order of the image block, and the zeroth order coefficient of at least the first data unit of each component, said zeroth order coefficient being represented in a non-differential form.
  • an image processing method applying a pre-stored image block table has been developed in which a random access table is stored for image blocks of a compressed image.
  • the random access table comprises bit buffer state information in the beginning of a block in the bit stream and an indicator for defining a position at which reading of data from the bit stream is to be continued.
  • the bit buffer state information of a block is retrieved from the random access table in response to a need to decode at least portion of the block.
  • a desired number of coefficients following the DC coefficient is decoded on the basis of the retrieved bit buffer state information and information read from the encoded bit stream starting from the position defined on the basis of the indicator.
  • random access table is to be understood to refer broadly to an information collection of image block specific information as a list or table, for instance, where information specific for a certain bfock can be easily retrieved. Further, the block infor- mation table may be divided in a plurality of lists or tables.
  • An image block, for which random access table entries are created, may represent a portion of the image, such as a JPEG macro block, and comprise one or more colour components.
  • image block is to be understood broadly to cover various units for representing image portion information: The image block may be a sub-unit of a image portion, such as a set of coefficients representing a single color model component in a macro block.
  • a next byte position defining the position in the bit stream, at which the Huffman code continues after the bit buffer, is stored as the indicator in the random access table.
  • information is generated for the random access table on the basis of analysing a JPEG compressed image block, whereby an entry to the random access table is generated for each image block on the basis of reading Huffman coded bit stream to store said information in the random access table as decoding engine state for each image block.
  • the embodiments of the invention provide several advantages. On the basis of utilization of the random access table, it is possible to obtain appropriate portion(s) of the compressed bit stream for decoding only a part of an image, without needing to decode other portions.
  • the decoding process is fast, which is especially advantageous in devices with low processing resources, such as many hand-held devices. For instance, a portion of a preview a JPEG compressed image may be quickly decoded for viewing, instead of having to decode the entire compressed image file prior to viewing.
  • im- age processing abilities are enhanced as compared to the known approach of decoding the entire compressed image, the image is stili stored in compressed format and the additional memory requirement for storing of the random access table is low.
  • the decoding process can be faster by the present solution, since the decoder state at the beginning of a image block may be directly retrieved from the random access table, instead of first retrieving the pointer and then accessing the bit stream on the basis of the pointer.
  • FIGS. 2a and 2b illustrate method steps in accordance with an embodiment of the invention
  • Figures 3a and 3b illustrate some further embodiments of the invention
  • Figure 4 illustrates an image processing procedure according to an embodiment of the invention
  • Figure 5 illustrates an example of a random access table.
  • the application of the present invention is not limited to any particular image compression format.
  • the embodiments of the invention are applicable to a wide variety of electronic devices with image processing capabilities.
  • Laptop or desktop computers, mobile communications devices, PDA (Personal Digital Assistant) devices, and entertainment devices are examples of devices in which the present image processing related features may be applied.
  • the present electronic device may be a mobile communications device used as a terminal in a wireless communication system comprising one or more base stations; however, application of the present invention is not limited to such devices.
  • Figure 1 shows a simplified block diagram of the structure of an electronic device 100.
  • At least one control unit or a processing unit 102 controls at least some functions of the device 100 and is connected to memory 104.
  • a user interface of the device comprises an input device 106, for instance a keypad, and a display 108.
  • the user interface of the device 100 may include other parts, such as a microphone, and a loudspeaker.
  • the device 100 may also comprise any necessary hardware and software for embodying other modules and functions, such as communication module(s). Inputs from the user of the electronic device 100 are received by means of the input device 106.
  • the processing unit 102 is connected to the display 104 and configured to control different application views on the display 102.
  • the processing unit 102 receives user input commands from the input device 106.
  • the input device 106 receives user inputs for selecting available options in application specific views, such as an image editor view for viewing, editing and/or storing compressed images, and for navigating in different operating modes of the electronic device.
  • the processing unit 102 interprets the detected selections to the user input device 106, performs given software functions based thereon and, as a result of the performed software functions, defines and displays an updated view on the display 104, including displaying a processed image, for instance.
  • One embodiment is a computer program product comprising program code for performing functions associated with partially decoding compres- sed image files by utilizing a random access table enabling access to specified blocks of the image, and further using partially decoded image data for further purposes, such as for viewing the partial image, modifying the partial image, and/or storing the partial image.
  • Computer program codes executed in the processing unit 102 may be used for causing the electronic device 100 to imple- ment means for providing inventive functions relating to processing compressed image fifes, some embodiments of the inventive functions being illustrated below in association with the following figures.
  • the computer program product may be embodied on a distribution medium.
  • the distribution medium may be any means for distributing software to customers, such as a computer read- able program storage medium, a computer readable memory, a computer readable software distribution package, or a computer readable signal.
  • Hardware solutions or a combination of hardware and software solutions may also be employed to implement the inventive functions.
  • the electronic device 100 is arranged to decode portions of a compressed image by using a specific random access table (RAT) comprising image block specific information.
  • Image block specific information is stored in the RAT such that it is possible to decode only a part of the bit stream related to desired image portion, for instance a part of the image that is required for displaying.
  • RAT random access table
  • Such functiona- lity forming and/or utilizing the RAT information may be implemented in an application enabling viewing and/or editing of compressed images and provided on top of an operating system of the electronic device 100, or by an image decoder unit or process, which may be part of such application.
  • image block information table enables fast retrieval of relevant data of specific image blocks, such as JPEG 16x16 pixel macro blocks and/or 8x8 pixel Y-, U-, or V-component units.
  • image block or block is used, and in case of JPEG this term may refer to color model component (Y, U, V) units or to macro blocks formed by a plurality of color model component units.
  • the electronic device 100 is arranged to provide a bit buffer (not shown) for temporarily storing Huffman bit stream during JPEG image coding and/or decoding operations.
  • this bit buffer may be arranged by the processing unit 102 temporarily storing Huffman codes to the memory 104.
  • the electronic device 100 is configured to store, for each image block for which fast decoding is to be enabled, a first-order coeffi- cient, i.e. a DC coefficient, in non-differential format, bit buffer state at the beginning of the block, and an indicator for defining a position at which reading of data from the bit stream is to be continued.
  • This information represents the decoding engine state at the beginning of a respective image block.
  • bit buffer state generally refers to (contents of) a bit buffer at a particular de- coding instance, in the present embodiment at the beginning of an image block.
  • next byte position is used to define the position in the bit stream at which the Huffman code continues after the bit buffer.
  • Figure 5 illustrates an exemplary RAT 50 for an image.
  • the RAT 50 comprises, for each image block of the associated image, an entry comprising a DC coefficient 54a, 54b in non-differential format, bit buffer state 56a, 56b at the beginning of the block, and next byte position 58a, 58b.
  • the exemplary RAT 50 of Figure 5 is indexed including identifiers 52a, 52b for each image block. For instance, consecutive numbering may be applied. Since in one em- bodiment entries are stored in the RAT 50 for macro blocks, this information is stored of a first block or unit of each macro block, such as a first Y unit of such blocks. This RAT information is then available for use by the electronic device 100 or another image decoding device for block specific image decoding, as will be further illustrated below.
  • the electronic device 100 may, but does not need to be, equipped with image compression encoding features.
  • the electronic device 100 may be a hand-held mobile device in which it is adequate only to be able to decode JPEG images.
  • JPEG compression is performed by a series of operations: transform, quantization, zigzag scanning, differential pulse code modulation (DPCM), and entropy coding employing Run Length Encoding (RLE) and Huffman coding. Decompression is accomplished by performing inverse steps in an inverse order.
  • Figures 2a and 2b illustrate a method according to an embodiment of the invention.
  • a single device 100 may be arranged to implement features of Figure 2a and/or 2b.
  • Figure 2a illustrates creation of a random access table for a compressed image file
  • Figure 2b illustrates use of the RAT 50.
  • the method is described for creating entries for each macro block of the compressed image, as already indicated, similar steps may be applied for generating and using an RAT 50 for other image blocks, such as for each Y, U and V block or data unit of the image.
  • the buffer may be initially emptied, and the RAT creation process starts to read the compressed image data in order to obtain information required for the RAT, and defines and stores 202 the first entry for the first block.
  • a DC coefficient of the macro block represented in non-differential form, the bit buffer state at the beginning of the macro block, and the next byte value in the Huffman encoded bit stream are stored in the RAT for the macro block.
  • the RAT table generation for a compressed image is similar to decoding process, but all decoding steps are not necessary.
  • the present embodiment of storing above-mentioned information in the RAT enables that it is not necessary to decode the whole image.
  • the RAT may ⁇
  • step 204 After storing an entry to the RAT for a macro block, in step 204 it is checked if the macro block was the last in the image. If so, the process ends 208. If there are consecutive macro blocks, the process continues reading image block information from the bit stream in step 206 and returns to step 202 for storing an entry for the consecutive macro block. Thus, the process may be arranged to step over entries (AC coefficients) in the bit stream until an end of block symbol is detected. On the basis of such symbol the random access ta- ble generation process is capable of defining the beginning of consecutive image block, for which a new RAT entry is to be made.
  • the RAT 50 and the associated compressed image may be stored in a separate memory spaces. Alternatively, they may be stored in the same memory space, whereby the RAT may be stored as part of a file storing the compressed image data.
  • the RAT may be stored in a specific header, and the original Huffman encoded bit stream is not modified. It is also to be noted that the entire data stream is not necessarily Huffman-coded.
  • the steps of Figure 2a are applied for a compressed image, for instance a received JPEG image.
  • the RAT generation process may read the Huffman coded bit stream from the memory, sequentially step through the bit stream and store for each entry the necessary information in the RAT.
  • the preceding DC coefficient values are applied for calculating the values to the RAT.
  • the DC coefficients of each image block in the Huffman coded bit stream are located and the delta values of the DC coefficients are decoded, and the decoded DC coefficients in non-differential format are stored for the image block to the RAT.
  • Other information may simply be read from the Huffman coded bit stream at the beginning of each macro block, i.e.
  • the bit stream is read (206) 16 bits at a time, and these 16 bits serve as a pointer to a table describing properties of the Huffman codes. These properties may be used for decoding values from the bit stream. This decoding is used for decoding the DC values. In one embodiment, these properties are used for stepping through the bit stream with- out decoding all values in the bit stream. When the bit stream is traversed without decoding the values, sync with the Huffman codes can still be main- tained. Hence, it is possible to provide a fast process of determining the end of a block and a start of a new one.
  • the table generation is thus fast because the whole (JPEG) compressed image does not have to be decompressed in order to generate the table.
  • the starting point is a non-compressed image.
  • image compression steps in the present embodiment encoding steps to form Huffman encoded bit stream representing the original image, are first applied. Then, features illustrate above in connection with Figure 2a may be applied to generate the RAT 50 for the compressed image. The compressed image and the RAT may be then stored for further use.
  • the RAT generation is performed as part of JPEG encoding procedure.
  • the compressed image and an associated RAT may be provided for further delivery to other devices.
  • the RAT may be stored with the compressed image in a device decoding the compressed image, and this device does not need to be capable of implementing the functionality of Figure 2a.
  • the electronic device 100 may be configured to implement features of Figure 2a and/or Figure 2b.
  • step 220 of Figure 2b there is a need to use a part of a compressed image, whereby one or more image blocks needs to be decoded, instead of decoding the entire Huffman coded bit stream representing the compressed image.
  • the first image block to be decoded is thus specified. This may be done on the basis of an input from the user, for instance.
  • An identifier may be determined in step 220, and an entry corresponding is searched for and retrieved from the RAT in step 222.
  • the information for the image block to be decoded is retrieved from the RAT.
  • the RAT may be have been already earlier stored in the device, or the RAT is generated upon the need for partial decoding before step 222.
  • the image block decoding may begin at step 224 by directly applying the DC coefficient and the buffer contents from the RAT.
  • next byte position from the RAT is used to determine the position at which reading of data from the bit stream is to be continued for continuing decoding.
  • Information is then read in step 226 from the encoded bit stream starting from the position defined on the basis of the indicator, and the buffer for decoding is updated 226 on the basis of this further information.
  • the retrieved coefficient may be used for decoding as appropriate. As illustrated by link 230, steps 226 and 228 may be repeated as many times as necessary to retrieve an appropriate amount of coefficients for decoding.
  • Steps 226 and 228 represent further actions for the image block. It is to be noted that the device 100 may be arranged to retrieve a desired num- ber of (zero or more) AC coefficients from the bit stream, and the steps 226 to
  • the image block 230 are adapted accordingly.
  • at least part of the image block may be decoded by utilizing the RAT information and the bit stream.
  • Figure 2b may be repeated for each image block to be decoded. It is to be noted that Figures 2a and 2b represent only some embodi- ments for implementing the present invention. For instance, in an alternative embodiment only the DC coefficient value and the bit buffer state are retrieved from the RAT in step 222, and the next byte position is retrieved after step 224.
  • Figures 3a and 3b illustrate some embodiments of the available fur- ther decoding applications utilizing features illustrated in Figure 2b, but the present features may be applied also for other applications.
  • Figure 3a illustrates one embodiment of the further actions based on the application of the RAT.
  • a desired number of AC-coefficients of a block is Huffman decoded by using the non-differential DC value as the first DC coefficient of the image block, and by decoding following coefficients on the basis of applying features illustrated in Figure 2b.
  • all coefficients of a macro block are decoded in step 300, in which case a decoder performing the decoding operations may automatically decode all coefficients until the first DC coefficient of the next macro block.
  • step 302 the process may check, if there are remaining blocks to be decoded. If not, the decoded image block(s), such as one or more macro blocks defined on the basis of a user input, may be further used as appropriate. For instance, the image portion decoded on the basis of the present RAT information may be displayed on display 108, modified and/or stored to the memory 104.
  • the decoding process continues to step 304 and decodes a next image block, by reading (at least part of) coefficients of the next image block.
  • Huffman encoded values of a consecutive JPEG macro block are read from the bit stream and decoded in accordance with the JPEG decoding process (including defining the value for the DC coefficient of the block on the basis of a temporarily stored previous block's DC coeffient value).
  • Figure 3b illustrates another embodiment of further processing for an imaged portion decoded 320 based on the application of the RAT.
  • one or more blocks of the original compressed image are first decoded by applying the RAT and the above-illustrated features. For instance, the procedure in Figures 2b and 3a may be applied for step 320.
  • the decoded image portion may then be modified 322 as appropriate by utilizing image edition features.
  • the modified image portion which may be first compressed, may then be stored 324 to the memory 104.
  • Other available actions for the modified image include displaying and attachment of the image to a message, for instance.
  • a decoded image block is modified, and then another image block is decoded and modified.
  • some or all entries in the block information table are compressed.
  • the entries may be Huffman coded, but also other compression format may be applied.
  • FIG. 4 illustrates an image processing procedure according to an embodiment of the invention.
  • step 400 there is a need for image processing of a compressed image.
  • a user input to the input device 106 may be detected for viewing a compressed image or creating a new or a modified image based on a compressed image stored in the memory 104.
  • step 402 the image file is opened and file information read.
  • the image is loaded in step 404.
  • the desired scale and area of the image, for which further actions are needed, is defined on the basis of the initial user in- put or a further user input, for instance. If on the basis of the check in step 408 only portion of the image is selected, the method proceeds to step 410 to check if a random access table is already available for the image. If not, in step 412 a RAT 50 is created for the image. In this step the features (200 to 208) already illustrated in connection with Figure 2a may be applied. If the RAT is already available, the method may proceed to step 414 to select a decode routine by scale.
  • the scale may define the applied IDCT (Inverse Discrete Cosine Transform) function.
  • sub-routines by scale, for instance four sub-routines 1 :1 , 1 :2, 1 :4, 1 :8 (least details, fastest). This step is also entered after step 408 if the whole image is selected.
  • step 416 the applied colour space conversion function (YUV -> RGB function) is selected.
  • the macro block type may select this function, for instance a general purpose or a fast method may be selected.
  • step 418 the whole or only portion of the image may be decoded in accordance with the above selections.
  • all Y, U, and V blocks of the macro block are decoded and then selected colour transformation is applied.
  • whole image decoding conventional JPEG image decoding procedures may be applied for all compressed image data, and it is not necessary to specify these features in further detail.
  • the RAT is applied and features illustrated in Figures 2b, 3a, and/or 3b may be applied.
  • step 420 the decoded image or image portion may be used as desired, for instance viewed, modified and/or stored.
  • Figure 4 is only example of processing of an image file comprising compressed image data.
  • a thumbnail loading routine checking if the headers of the image file comprise a thumbnail. If so, the thumbnail in the header may be displayed.
  • the above-iliustrated process may be applied for producing an image of reduced scale to be used as a thumbnail.
  • above illustrated steps may be provided as separate functional blocks in the electronic device 100, which in one embodiment are implemented by executing one or more computer programs in the processing unit 102.
  • the above illustrated RAT generation process and the RAT usage process may be implemented as separate blocks, or as part of the image decompression and/or image processing/viewing functionality and fea- tures in the electronic device 100.
  • the above-illustrated features may be implemented by computer program stored in the memory 104 and im- plementing a JPEG image viewer application, when executed in the processing unit 102 of the electronic device 100, such as a mobile communications device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Computing Systems (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Ultra Sonic Daignosis Equipment (AREA)
  • Sewing Machines And Sewing (AREA)

Abstract

The present invention relates to a method for processing a compressed digital image. A random access table is stored for each image block. The random access table comprises bit buffer state information in the beginning of a block in the bit stream and an indicator for defining a position at which reading of data from the bit stream is to be continued. The bit buffer state information of a block is retrieved from the random access table in response to a need to decode at least portion of the block. A desired number of coefficients following the DC coefficient is decoded on the basis of the retrieved bit buffer state information and information read from the encoded bit stream starting from the position defined on the basis of the indicator.

Description

Image processing method
Field of the invention
The present invention relates to method and equipment for processing images, particularly compressed images.
Background of the invention
Imaging capabilities and features have rapidly become very popular particularly with incorporation of cameras in mobile phones and in other handheld devices. Since data transfer rates available for wireless connections are relatively low and such devices have a limited memory capacity and process- ing power, image compression is applied. A popular method of compressing images is the JPEG (Joint Photographic Experts Group) standard. The JPEG standard is defined in CCITT Rec. T. 81. JFIF (JPEG File Interchange Format) is a commonly applied file format for storing JPEG streams.
The JPEG standard defines a lossy coding system. When convert- ing a digital image into JPEG file format, a DCT-transformation and quantization of the image is made, where each component of a color space model of the image is separately DCT-transformed. The image is divided into macro blocks, such as 16x16 pixel macro blocks. All the color components are represented as blocks, which are treated in sequence. The DCT-transformed blocks are threshold and quantized in order to discard information of basis functions that have little influence on the perception of the image. The zeroth order coefficient, i.e. the DC-coefficient, of each component of each block is stored as the difference to the preceding DC-coefficient using Huffman-coding. The higher order coefficients, i.e. the AC-coefficients, are arranged sequentially, the sequence being obtained by a zigzag order from the array. The AC-coefficients are zero run length coded and further encoded with Huffman-coding. However, the JPEG file format is not suited for manipulation of images. If JPEG encoded image needs to be processed, the image is decoded and hence transformed back into a spatial domain representation. However, especially since cameras producing high-quality images are applied, memory and processing resources may be inadequate for processing of such images, or the processing may be slow.
EP 1037165 describes a method for manipulating digital images stored in JPEG format. The bit stream of the JPEG image is prescanned in or- der to identify locations of image areas in the bit stream. Designated ones of these locations are stored in a prescan table, whereby selected areas of the image may be accessed without the need to decode the entire bit stream when a portion of the image is to be manipulated.
WO 2005/050567 discloses an image representation format for re- presenting a digital image comprising: image information stored as a bit stream representing sequential image blocks, each block comprising one or more components, each component comprising one or more data units and each data unit being represented as a Huffman-coded stream of coefficients of basis functions, wherein a zeroth order coefficient is represented as a differen- ce to the previous zeroth order coefficient of the corresponding component, and a block information table, which comprises: indicators to the first coefficient of a specified order of each image block in said bit stream, information indicating the number of bits in the bit stream between adjacent coefficients of said specified order of the image block, and the zeroth order coefficient of at least the first data unit of each component, said zeroth order coefficient being represented in a non-differential form.
Brief description of the invention
There is now provided an enhanced solution for processing compressed images. This solution may be achieved by a method, an electronic de- vice, and a computer program product, which are characterized by what is disclosed in the independent claims. Some embodiments of the invention are set forth in the dependent claims.
According to an aspect of the invention, an image processing method applying a pre-stored image block table has been developed in which a random access table is stored for image blocks of a compressed image. The random access table comprises bit buffer state information in the beginning of a block in the bit stream and an indicator for defining a position at which reading of data from the bit stream is to be continued. The bit buffer state information of a block is retrieved from the random access table in response to a need to decode at least portion of the block. A desired number of coefficients following the DC coefficient is decoded on the basis of the retrieved bit buffer state information and information read from the encoded bit stream starting from the position defined on the basis of the indicator. The term "random access table" is to be understood to refer broadly to an information collection of image block specific information as a list or table, for instance, where information specific for a certain bfock can be easily retrieved. Further, the block infor- mation table may be divided in a plurality of lists or tables. An image block, for which random access table entries are created, may represent a portion of the image, such as a JPEG macro block, and comprise one or more colour components. However, the application of the present features is not limited to such image blocks, but the term "image block" is to be understood broadly to cover various units for representing image portion information: The image block may be a sub-unit of a image portion, such as a set of coefficients representing a single color model component in a macro block.
In one embodiment of the invention a next byte position defining the position in the bit stream, at which the Huffman code continues after the bit buffer, is stored as the indicator in the random access table. Yet in one embodiment of the invention information is generated for the random access table on the basis of analysing a JPEG compressed image block, whereby an entry to the random access table is generated for each image block on the basis of reading Huffman coded bit stream to store said information in the random access table as decoding engine state for each image block.
The embodiments of the invention provide several advantages. On the basis of utilization of the random access table, it is possible to obtain appropriate portion(s) of the compressed bit stream for decoding only a part of an image, without needing to decode other portions. The decoding process is fast, which is especially advantageous in devices with low processing resources, such as many hand-held devices. For instance, a portion of a preview a JPEG compressed image may be quickly decoded for viewing, instead of having to decode the entire compressed image file prior to viewing. Although im- age processing abilities are enhanced as compared to the known approach of decoding the entire compressed image, the image is stili stored in compressed format and the additional memory requirement for storing of the random access table is low. Further, there is no need for storing specific position information of coefficient(s) in each image block in the image bit stream or information on number of bits between the coefficients of adjacent image blocks. As compared to the method applying pointers to first order coefficients and information on number of bits between coefficients, the decoding process can be faster by the present solution, since the decoder state at the beginning of a image block may be directly retrieved from the random access table, instead of first retrieving the pointer and then accessing the bit stream on the basis of the pointer. Brief description of the drawings
In the following, the invention wilf be described in further detail by means of some embodiments and with reference to the accompanying drawings, in which Figure 1 shows an example of an electronic device;
Figures 2a and 2b illustrate method steps in accordance with an embodiment of the invention;
Figures 3a and 3b illustrate some further embodiments of the invention; Figure 4 illustrates an image processing procedure according to an embodiment of the invention; and
Figure 5 illustrates an example of a random access table.
Detailed description of embodiments
In the following an embodiment of the present invention is illustrated applying the inventive features for partial decoding of JPEG images. However, the application of the present invention is not limited to any particular image compression format. The embodiments of the invention are applicable to a wide variety of electronic devices with image processing capabilities. Laptop or desktop computers, mobile communications devices, PDA (Personal Digital Assistant) devices, and entertainment devices are examples of devices in which the present image processing related features may be applied. For instance, the present electronic device may be a mobile communications device used as a terminal in a wireless communication system comprising one or more base stations; however, application of the present invention is not limited to such devices.
Figure 1 shows a simplified block diagram of the structure of an electronic device 100. At least one control unit or a processing unit 102 controls at least some functions of the device 100 and is connected to memory 104. A user interface of the device comprises an input device 106, for instance a keypad, and a display 108. In addition, the user interface of the device 100 may include other parts, such as a microphone, and a loudspeaker. Depending on the type of the device, there may be different and a different number of user interface components. The device 100 may also comprise any necessary hardware and software for embodying other modules and functions, such as communication module(s). Inputs from the user of the electronic device 100 are received by means of the input device 106. The processing unit 102 is connected to the display 104 and configured to control different application views on the display 102. The processing unit 102 receives user input commands from the input device 106. The input device 106 receives user inputs for selecting available options in application specific views, such as an image editor view for viewing, editing and/or storing compressed images, and for navigating in different operating modes of the electronic device. The processing unit 102 interprets the detected selections to the user input device 106, performs given software functions based thereon and, as a result of the performed software functions, defines and displays an updated view on the display 104, including displaying a processed image, for instance.
One embodiment is a computer program product comprising program code for performing functions associated with partially decoding compres- sed image files by utilizing a random access table enabling access to specified blocks of the image, and further using partially decoded image data for further purposes, such as for viewing the partial image, modifying the partial image, and/or storing the partial image. Computer program codes executed in the processing unit 102 may be used for causing the electronic device 100 to imple- ment means for providing inventive functions relating to processing compressed image fifes, some embodiments of the inventive functions being illustrated below in association with the following figures. The computer program product may be embodied on a distribution medium. The distribution medium may be any means for distributing software to customers, such as a computer read- able program storage medium, a computer readable memory, a computer readable software distribution package, or a computer readable signal. Hardware solutions or a combination of hardware and software solutions may also be employed to implement the inventive functions.
According to an embodiment of the invention, the electronic device 100 is arranged to decode portions of a compressed image by using a specific random access table (RAT) comprising image block specific information. Image block specific information is stored in the RAT such that it is possible to decode only a part of the bit stream related to desired image portion, for instance a part of the image that is required for displaying. For instance, such functiona- lity forming and/or utilizing the RAT information may be implemented in an application enabling viewing and/or editing of compressed images and provided on top of an operating system of the electronic device 100, or by an image decoder unit or process, which may be part of such application. The use of these entries in the image block information table enables fast retrieval of relevant data of specific image blocks, such as JPEG 16x16 pixel macro blocks and/or 8x8 pixel Y-, U-, or V-component units. In the present context, unless otherwise stated, the term image block or block is used, and in case of JPEG this term may refer to color model component (Y, U, V) units or to macro blocks formed by a plurality of color model component units.
The electronic device 100 is arranged to provide a bit buffer (not shown) for temporarily storing Huffman bit stream during JPEG image coding and/or decoding operations. For instance, this bit buffer may be arranged by the processing unit 102 temporarily storing Huffman codes to the memory 104.
In particular, the electronic device 100 is configured to store, for each image block for which fast decoding is to be enabled, a first-order coeffi- cient, i.e. a DC coefficient, in non-differential format, bit buffer state at the beginning of the block, and an indicator for defining a position at which reading of data from the bit stream is to be continued. This information represents the decoding engine state at the beginning of a respective image block. The term "bit buffer state" generally refers to (contents of) a bit buffer at a particular de- coding instance, in the present embodiment at the beginning of an image block. In one embodiment next byte position is used to define the position in the bit stream at which the Huffman code continues after the bit buffer. Thus, by utilizing the pre-specified RAT, no decoding is required for obtaining a DC coefficient of an image block, but the value may be directly read from the ta- ble. Hence, when only a portion of the image needs to be decoded, it is not necessary to decode the Huffman-coded stream of coefficients from the beginning of the stream. By utilizing the other bit stream related information in the RAT, it is possible to decode an appropriate portion of the bit stream representing the desired image block, without requiring to decode coefficients rep- resenting other image blocks.
Figure 5 illustrates an exemplary RAT 50 for an image. The RAT 50 comprises, for each image block of the associated image, an entry comprising a DC coefficient 54a, 54b in non-differential format, bit buffer state 56a, 56b at the beginning of the block, and next byte position 58a, 58b. The exemplary RAT 50 of Figure 5 is indexed including identifiers 52a, 52b for each image block. For instance, consecutive numbering may be applied. Since in one em- bodiment entries are stored in the RAT 50 for macro blocks, this information is stored of a first block or unit of each macro block, such as a first Y unit of such blocks. This RAT information is then available for use by the electronic device 100 or another image decoding device for block specific image decoding, as will be further illustrated below.
It is to be noted that the electronic device 100 may, but does not need to be, equipped with image compression encoding features. For instance, the electronic device 100 may be a hand-held mobile device in which it is adequate only to be able to decode JPEG images. As is known for a person skilled in image processing, JPEG compression is performed by a series of operations: transform, quantization, zigzag scanning, differential pulse code modulation (DPCM), and entropy coding employing Run Length Encoding (RLE) and Huffman coding. Decompression is accomplished by performing inverse steps in an inverse order. Figures 2a and 2b illustrate a method according to an embodiment of the invention. A single device 100 may be arranged to implement features of Figure 2a and/or 2b. Figure 2a illustrates creation of a random access table for a compressed image file, whereas Figure 2b illustrates use of the RAT 50. Although in the following the method is described for creating entries for each macro block of the compressed image, as already indicated, similar steps may be applied for generating and using an RAT 50 for other image blocks, such as for each Y, U and V block or data unit of the image.
When an RAT 50 is to be created 200, the buffer may be initially emptied, and the RAT creation process starts to read the compressed image data in order to obtain information required for the RAT, and defines and stores 202 the first entry for the first block. Thus, in the present embodiment, a DC coefficient of the macro block represented in non-differential form, the bit buffer state at the beginning of the macro block, and the next byte value in the Huffman encoded bit stream are stored in the RAT for the macro block. The RAT table generation for a compressed image is similar to decoding process, but all decoding steps are not necessary. The present embodiment of storing above-mentioned information in the RAT enables that it is not necessary to decode the whole image. Alternatively, it is possible to generate the RAT in connection with image compression, whereby the RAT may be generated after the image compression steps. In the case of JPEG compression, the RAT may δ
be generated on the basis of the Huffman encoded bit stream of coefficients for the image blocks.
After storing an entry to the RAT for a macro block, in step 204 it is checked if the macro block was the last in the image. If so, the process ends 208. If there are consecutive macro blocks, the process continues reading image block information from the bit stream in step 206 and returns to step 202 for storing an entry for the consecutive macro block. Thus, the process may be arranged to step over entries (AC coefficients) in the bit stream until an end of block symbol is detected. On the basis of such symbol the random access ta- ble generation process is capable of defining the beginning of consecutive image block, for which a new RAT entry is to be made.
It is to be noted that the RAT 50 and the associated compressed image may be stored in a separate memory spaces. Alternatively, they may be stored in the same memory space, whereby the RAT may be stored as part of a file storing the compressed image data. The RAT may be stored in a specific header, and the original Huffman encoded bit stream is not modified. It is also to be noted that the entire data stream is not necessarily Huffman-coded.
In one embodiment the steps of Figure 2a are applied for a compressed image, for instance a received JPEG image. Thus, the RAT generation process may read the Huffman coded bit stream from the memory, sequentially step through the bit stream and store for each entry the necessary information in the RAT. In order to store the DC coefficients in non-differential form, the preceding DC coefficient values are applied for calculating the values to the RAT. The DC coefficients of each image block in the Huffman coded bit stream are located and the delta values of the DC coefficients are decoded, and the decoded DC coefficients in non-differential format are stored for the image block to the RAT. Other information may simply be read from the Huffman coded bit stream at the beginning of each macro block, i.e. there is no need to perform further decoding steps, and the RAT generation is fast. For generating the RAT 50, the bit stream is read (206) 16 bits at a time, and these 16 bits serve as a pointer to a table describing properties of the Huffman codes. These properties may be used for decoding values from the bit stream. This decoding is used for decoding the DC values. In one embodiment, these properties are used for stepping through the bit stream with- out decoding all values in the bit stream. When the bit stream is traversed without decoding the values, sync with the Huffman codes can still be main- tained. Hence, it is possible to provide a fast process of determining the end of a block and a start of a new one. The table generation is thus fast because the whole (JPEG) compressed image does not have to be decompressed in order to generate the table. In an alternative embodiment the starting point is a non-compressed image. In this embodiment image compression steps, in the present embodiment encoding steps to form Huffman encoded bit stream representing the original image, are first applied. Then, features illustrate above in connection with Figure 2a may be applied to generate the RAT 50 for the compressed image. The compressed image and the RAT may be then stored for further use. In one embodiment the RAT generation is performed as part of JPEG encoding procedure. The compressed image and an associated RAT may be provided for further delivery to other devices. In this embodiment the RAT may be stored with the compressed image in a device decoding the compressed image, and this device does not need to be capable of implementing the functionality of Figure 2a. Hence, the electronic device 100 may be configured to implement features of Figure 2a and/or Figure 2b.
In step 220 of Figure 2b there is a need to use a part of a compressed image, whereby one or more image blocks needs to be decoded, instead of decoding the entire Huffman coded bit stream representing the compressed image. In step 220 the first image block to be decoded is thus specified. This may be done on the basis of an input from the user, for instance. An identifier may be determined in step 220, and an entry corresponding is searched for and retrieved from the RAT in step 222. In step 222 the information for the image block to be decoded is retrieved from the RAT. It is to be noted that the RAT may be have been already earlier stored in the device, or the RAT is generated upon the need for partial decoding before step 222. Thus, the image block decoding may begin at step 224 by directly applying the DC coefficient and the buffer contents from the RAT.
The next byte position from the RAT is used to determine the position at which reading of data from the bit stream is to be continued for continuing decoding. Information is then read in step 226 from the encoded bit stream starting from the position defined on the basis of the indicator, and the buffer for decoding is updated 226 on the basis of this further information. The retrieved coefficient may be used for decoding as appropriate. As illustrated by link 230, steps 226 and 228 may be repeated as many times as necessary to retrieve an appropriate amount of coefficients for decoding.
Steps 226 and 228 represent further actions for the image block. It is to be noted that the device 100 may be arranged to retrieve a desired num- ber of (zero or more) AC coefficients from the bit stream, and the steps 226 to
230 are adapted accordingly. Thus, at least part of the image block may be decoded by utilizing the RAT information and the bit stream.
The steps of Figure 2b may be repeated for each image block to be decoded. It is to be noted that Figures 2a and 2b represent only some embodi- ments for implementing the present invention. For instance, in an alternative embodiment only the DC coefficient value and the bit buffer state are retrieved from the RAT in step 222, and the next byte position is retrieved after step 224.
Figures 3a and 3b illustrate some embodiments of the available fur- ther decoding applications utilizing features illustrated in Figure 2b, but the present features may be applied also for other applications.
Figure 3a illustrates one embodiment of the further actions based on the application of the RAT. As indicated in step 300, a desired number of AC-coefficients of a block is Huffman decoded by using the non-differential DC value as the first DC coefficient of the image block, and by decoding following coefficients on the basis of applying features illustrated in Figure 2b. In one embodiment all coefficients of a macro block are decoded in step 300, in which case a decoder performing the decoding operations may automatically decode all coefficients until the first DC coefficient of the next macro block. However, it is possible to decode only a predetermined number of coefficients in an image block.
Then, in step 302 the process may check, if there are remaining blocks to be decoded. If not, the decoded image block(s), such as one or more macro blocks defined on the basis of a user input, may be further used as appropriate. For instance, the image portion decoded on the basis of the present RAT information may be displayed on display 108, modified and/or stored to the memory 104.
If the decoded image block was not the last one, the decoding process continues to step 304 and decodes a next image block, by reading (at least part of) coefficients of the next image block. In the present embodiment Huffman encoded values of a consecutive JPEG macro block are read from the bit stream and decoded in accordance with the JPEG decoding process (including defining the value for the DC coefficient of the block on the basis of a temporarily stored previous block's DC coeffient value). Hence, for every horizontal macro block line, first the above mentioned information in the RAT is applied, and then necessary amount macro blocks may be decoded.
Figure 3b illustrates another embodiment of further processing for an imaged portion decoded 320 based on the application of the RAT. In this embodiment, one or more blocks of the original compressed image are first decoded by applying the RAT and the above-illustrated features. For instance, the procedure in Figures 2b and 3a may be applied for step 320. The decoded image portion may then be modified 322 as appropriate by utilizing image edition features. The modified image portion, which may be first compressed, may then be stored 324 to the memory 104. Other available actions for the modified image include displaying and attachment of the image to a message, for instance. In one alternative embodiment, a decoded image block is modified, and then another image block is decoded and modified.
It is to be noted that the above examples represent only some of the possible application scenarios available by utilizing the random access table related features, which may be applied also in many other image process- ing applications. Further, the process may does not have to follow the embodiment of Figures 2a and 2b. For instance, only part of the above-illustrated information may be stored to and/or retrieved from the RAT for image blocks. In one embodiment a thumbnail generation process is introduced, which may be arranged to retrieve only absolute DC coefficients from the RAT and form a thumbnail based on these DC coefficients.
According to an embodiment, some or all entries in the block information table are compressed. For instance, the entries may be Huffman coded, but also other compression format may be applied.
Figure 4 illustrates an image processing procedure according to an embodiment of the invention. In step 400 there is a need for image processing of a compressed image. For instance, a user input to the input device 106 may be detected for viewing a compressed image or creating a new or a modified image based on a compressed image stored in the memory 104.
In step 402 the image file is opened and file information read. The image is loaded in step 404. The desired scale and area of the image, for which further actions are needed, is defined on the basis of the initial user in- put or a further user input, for instance. If on the basis of the check in step 408 only portion of the image is selected, the method proceeds to step 410 to check if a random access table is already available for the image. If not, in step 412 a RAT 50 is created for the image. In this step the features (200 to 208) already illustrated in connection with Figure 2a may be applied. If the RAT is already available, the method may proceed to step 414 to select a decode routine by scale. The scale may define the applied IDCT (Inverse Discrete Cosine Transform) function. There may be a plurality of sub-routines by scale, for instance four sub-routines 1 :1 , 1 :2, 1 :4, 1 :8 (least details, fastest). This step is also entered after step 408 if the whole image is selected.
In step 416 the applied colour space conversion function (YUV -> RGB function) is selected. The macro block type may select this function, for instance a general purpose or a fast method may be selected. In step 418 the whole or only portion of the image may be decoded in accordance with the above selections. When a macro block is being decoded, all Y, U, and V blocks of the macro block are decoded and then selected colour transformation is applied. In case of whole image decoding, conventional JPEG image decoding procedures may be applied for all compressed image data, and it is not necessary to specify these features in further detail. If a portion of the ima- ge is decoded, the RAT is applied and features illustrated in Figures 2b, 3a, and/or 3b may be applied. In step 420 the decoded image or image portion may be used as desired, for instance viewed, modified and/or stored.
It is to be noted that Figure 4 is only example of processing of an image file comprising compressed image data. For instance, there may be a thumbnail loading routine checking if the headers of the image file comprise a thumbnail. If so, the thumbnail in the header may be displayed. Alternatively, the above-iliustrated process may be applied for producing an image of reduced scale to be used as a thumbnail.
It is also to be noted that above illustrated steps may be provided as separate functional blocks in the electronic device 100, which in one embodiment are implemented by executing one or more computer programs in the processing unit 102. The above illustrated RAT generation process and the RAT usage process may be implemented as separate blocks, or as part of the image decompression and/or image processing/viewing functionality and fea- tures in the electronic device 100. For instance, the above-illustrated features may be implemented by computer program stored in the memory 104 and im- plementing a JPEG image viewer application, when executed in the processing unit 102 of the electronic device 100, such as a mobile communications device.
The accompanying drawings and the description pertaining to them are only intended to illustrate the present invention. Different variations and modifications to the invention will be apparent to those skilled in the art, without departing from the scope of the invention defined in the appended cfaims. Different features may thus be omitted, modified or replaced by equivalents.

Claims

Claims
1. A method for processing a compressed digital image, the image comprising blocks and being represented by bit stream of coefficients encoded by a variable length encoding method, wherein information on DC coefficients of blocks is stored, pre-stored DC coefficient information for a block is accessed as a response to need to decode at least part of a block, and zero or more of coefficients following a DC coefficient is decoded, c h a r a c t e r i z e d by storing (202) in a random access table for each image block bit buffer state information in the beginning of a block in the bit stream and an indica- tor for defining a position at which reading of data from the bit stream is to be continued, retrieving (222) bit buffer state information of a block from the random access table in response to a need to decode at least portion of the block, and decoding (224; 228) a desired number of coefficients following the
DC coefficient on the basis of the retrieved bit buffer state information and information read from the encoded bit stream starting from the position defined on the basis of the indicator.
2. A method according to claim 1 , c h a r a c t e r i z e d by storing (202), for each block, in the random access table values of DC coefficients in non-differential form on the basis of stepping through Huffman encoded bit stream, without decoding all values of the bit stream, on the basis of a table describing properties of Huffman codes, and retrieving (222) the DC coefficient value of the block from the ran- dom access table for further processing of the block in response to the need to decode at feast portion of the block.
3. A method according to claim 2, c h a r a c t e r i z e d by comprising: retrieving (220) from the random access table the bit buffer state in- formation, the indicator, and the DC coefficient value of the block as a response to a need to decode at least portion of the block, using (224) the DC coefficient and the buffer state information for the decoding, updating (226) the buffer from bit stream starting from the position defined on the basis of the retrieved indicator, and using (228) the updated buffer contents for the decoding.
4. A method according to any preceding claim, characterized in that block specific entries comprising the buffer state information and the indicator are stored in the random access table for JPEG macro blocks.
5. A method according to any preceding claim, characterized in that a next byte position defining the position in the bit stream at which the
Huffman code continues after the bit buffer is stored as the indicator in the random access table.
6. A method according to any one of the preceding claims, characterized in that information to the random access table is generated on the basis of analysing a JPEG compressed image block, an entry is generated for each image block on the basis of reading Huffman coded bit stream to store said information in the random access table as decoding engine state for each image block.
7. A method according to any one of claims 1 to 5, characteri- zed in that information to the random access table is stored on the basis of result of encoding steps to compress image raw data into a JPEG compressed image.
8. An electronic device comprising memory (104) for storing image files and image processing means (102) to process compressed image files, the image comprising blocks and being represented by bit stream of coefficients encoded by a variable length encoding method, the method comprising storing information on DC coefficients of blocks, accessing pre-stored DC coefficient information for a block as a response to need to decode at least part of a block, and decoding zero or more of coefficients following a DC coeffi- cient, characterized in that the electronic device is arranged to store a random access table comprising for image blocks bit buffer state information in the beginning of a block in the bit stream and an indicator for defining a position at which reading of data from the bit stream is to be continued, the electronic device is arranged to retrieve (222) bit buffer state information of a block from the random access table in response to a need to decode at feast portion of the block, and the electronic device is arranged to decode (224; 228) a desired number of coefficients following the DC coefficient on the basis of the retrieved bit buffer state information and information read from the encoded bit stream starting from the position defined on the basis of the indicator.
9. An electronic device according to claim 8, characterized in that the random access table comprises, for each block, values of DC coefficients in non-differential form, and the electronic device is arranged to retrieve (222) the DC coefficient value of the block from the random access table for further processing of the block.
10. An electronic device according to claim 8 or 9, characterize d in that the electronic device is arranged to retrieve (222) from the random access table the bit buffer state information, the indicator, and the DC coefficient value of the block as a response to a need to decode at least portion of the block, the electronic device is arranged to use (224) the DC coefficient and the buffer state information for the decoding, the electronic device is arranged to update (226) the buffer from bit stream starting from the position defined on the basis of the retrieved indicator, and the electronic device is arranged to use (228) the updated buffer contents for the decoding.
11. An electronic device according to claim 8, 9, or 10, c h a r a c - t e r i z e d in that block specific entries comprising the buffer state information and the indicator are stored in the random access table for JPEG macro blocks.
12. An electronic device according to any one of claims 8 to 11, characterized in that the random access table comprises, as the indicator, a next byte position defining the position in the bit stream at which the Huffman code continues after the bit buffer.
13. An electronic device according to any one of claims 8 to 12, characterized in that the electronic device is arranged to specify information to the random access table on the basis of analysing a JPEG compressed image block, and the electronic device is arranged to create an entry to the random access table for each image block on the basis of reading Huffman coded bit stream to store said information in the random access table as decoding engine state for each image block.
14. An electronic device according to claim 13, characterized in that the electronic device is arranged to specify information to the random access table on the basis of stepping though Huffman encoded bit stream, without decoding all values of the bit stream, on the basis of a table describing properties of Huffman codes.
15. An electronic device according to any one of claims 8 to 14, characterized in that the electronic device is arranged to specify infor- mation to the random access table on the basis of result of encoding steps to compress image raw data into a JPEG compressed image.
16. A computer program product comprising computer code embodied on a computer readable medium for a computing device (100) and operable on a processor (102) of the computing device (100), characteri- z e d in that the computer code comprises computer program code for causing computing device (100) to provide the method steps as claimed in characterizing portion of any one of claims 1 to 7.
PCT/FI2007/050638 2006-11-28 2007-11-26 Image processing method WO2008065249A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FI20065754 2006-11-28
FI20065754A FI20065754L (en) 2006-11-28 2006-11-28 Image processing method

Publications (1)

Publication Number Publication Date
WO2008065249A1 true WO2008065249A1 (en) 2008-06-05

Family

ID=37482566

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FI2007/050638 WO2008065249A1 (en) 2006-11-28 2007-11-26 Image processing method

Country Status (2)

Country Link
FI (1) FI20065754L (en)
WO (1) WO2008065249A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8457427B2 (en) 2008-12-23 2013-06-04 Mobile Imaging In Sweden Ab Digital information extraction
CN112989254A (en) * 2021-04-13 2021-06-18 郑州悉知信息科技股份有限公司 Picture processing method and device
WO2022188021A1 (en) * 2021-03-09 2022-09-15 深圳市大疆创新科技有限公司 Data storage method, data reading method, apparatus, system, and storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0665512A2 (en) * 1994-02-01 1995-08-02 Canon Kabushiki Kaisha An image processing method and apparatus
WO2005050567A1 (en) * 2003-11-18 2005-06-02 Scalado Ab Method for processing a digital image and image representation format
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
EP1667457A1 (en) * 2003-09-16 2006-06-07 Fujitsu Limited Image processing display device and image processing display method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0665512A2 (en) * 1994-02-01 1995-08-02 Canon Kabushiki Kaisha An image processing method and apparatus
US6941019B1 (en) * 2000-05-10 2005-09-06 International Business Machines Corporation Reentry into compressed data
EP1667457A1 (en) * 2003-09-16 2006-06-07 Fujitsu Limited Image processing display device and image processing display method
WO2005050567A1 (en) * 2003-11-18 2005-06-02 Scalado Ab Method for processing a digital image and image representation format

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8457427B2 (en) 2008-12-23 2013-06-04 Mobile Imaging In Sweden Ab Digital information extraction
WO2022188021A1 (en) * 2021-03-09 2022-09-15 深圳市大疆创新科技有限公司 Data storage method, data reading method, apparatus, system, and storage medium
CN112989254A (en) * 2021-04-13 2021-06-18 郑州悉知信息科技股份有限公司 Picture processing method and device

Also Published As

Publication number Publication date
FI20065754A0 (en) 2006-11-28
FI20065754L (en) 2008-05-29

Similar Documents

Publication Publication Date Title
KR101089489B1 (en) Method for processing a digital image and image representation format
CN103581678B (en) To improve the method and system of decoder capabilities by using multiple decoder channels
US8326059B2 (en) Method and apparatus for progressive JPEG image decoding
CN103841424B (en) The system and method for compressed data in random access memory
JP2005277908A (en) Image processor, image processing method thereof, and portable telephone with camera
WO2008065249A1 (en) Image processing method
US20090169121A1 (en) Static image compression method and computer readable data structure and computer readable storage medium
US7469067B2 (en) Sequential decoding of progressive coded JPEGs
US8233729B2 (en) Method and apparatus for generating coded block pattern for highpass coefficients
JPH11308465A (en) Encoding method for color image, encoder therefor, decoding method for color image and decoder therefor
USRE45300E1 (en) Context-adaptive variable length coder with simultaneous storage of incoming data and generation of syntax elements
US7733249B2 (en) Method and system of compressing and decompressing data
JP4739443B2 (en) Method and apparatus for processing digital images
US8229236B2 (en) Method for progressive JPEG image decoding
Bonomini et al. Implementing an MPEG2 Video Decoder Based on TMS320C80 MVP
WO2007099327A2 (en) Data compression
KR100530654B1 (en) Method for compressing image data
JPH1130978A (en) Color image encoding method and its encoder and color image decoding method and its decoder
JPH089373A (en) Picture compression device
TWI305088B (en) Digital video decoding apparatus and method thereof
JP3586749B2 (en) Image compression apparatus, image expansion apparatus, image compression method, and image expansion method
KR20040052176A (en) Image compression encoding method and system

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 07848171

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 07848171

Country of ref document: EP

Kind code of ref document: A1