WO2007104522A1 - Method and apparatus for linewise image compression - Google Patents

Method and apparatus for linewise image compression Download PDF

Info

Publication number
WO2007104522A1
WO2007104522A1 PCT/EP2007/002158 EP2007002158W WO2007104522A1 WO 2007104522 A1 WO2007104522 A1 WO 2007104522A1 EP 2007002158 W EP2007002158 W EP 2007002158W WO 2007104522 A1 WO2007104522 A1 WO 2007104522A1
Authority
WO
WIPO (PCT)
Prior art keywords
segment
coding
segments
pixel
line
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/EP2007/002158
Other languages
French (fr)
Inventor
Peter Rieder
Chih-Ta Star Sung
Yin-Chun Blue Lan
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
TDK Micronas GmbH
Original Assignee
TDK Micronas 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 TDK Micronas GmbH filed Critical TDK Micronas GmbH
Publication of WO2007104522A1 publication Critical patent/WO2007104522A1/en
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

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/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/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/103Selection of coding mode or of prediction mode
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/146Data rate or code amount at the encoder output
    • H04N19/149Data rate or code amount at the encoder output by estimating the code amount by means of a model, e.g. mathematical model or statistical model
    • 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/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • 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/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Definitions

  • the invention relates to a method and an apparatus for linewise image compression.
  • Images of video sequences comprise a number of pixels arranged in lines, with each of these pixels being assigned at least one pixel values. In order to reduce memory space and/or memory bandwidth required for storing such images compression of the pixel data is desired.
  • An apparatus for compressing image data of an image having lines of pixels comprises: means for subdividing the lines into segments, with each of the segments comprising a number of pixels, with each pixel being assigned at least one pixel value; means for assigning a bit budget to each segment; means for compressing the segments for obtaining compressed segments using one of at least two coding methods, with the coding method being selected such that a bit number of the compressed segment is equal to or lower than the bit budget; means for selecting the bit budget of a segment of one line dependent on a coding quality obtained for an adjacent segment in an adjacent line.
  • Figure 1 illustrates two methods for linewise image compression, wherein a first method applies a fixed compression rate, while a second method applies a variable compression rate.
  • Figure 6 shows a table including examples of variable length codes.
  • Figure 7 illustrates a method for calculating variable length codes.
  • Figure 8 shows an example for adapting bit budgets assigned to line segments.
  • Figure 1 B illustrates a compressing method using a variable compression rate.
  • the ratio between the number of bits of the compressed sequences and the number of bits of the segments varies with this method, with this ratio corresponding to the compression rate.
  • a compression rate varying on a segment by segment basis may be achieved using variable length coding (VLC).
  • the pixel value of a last pixel of a previous (left neighbor) segment is used as a reference value for calculating a first difference.
  • the pixel values P are represented by binary words.
  • the bit length of these binary words is assumed to be 8 bit. It goes without saying that the invention is not restricted to bit lengths of 8 bit, but any other bit lengths - even higher bit lengths as, for example 10 bit - may be used either.
  • bit lengths of 8 bit the pixel values P range between 0 and 255. Consequently, the differences D range between -255 and 255, i.e.
  • D n For a correct reconstruction of D n , if it is encoded using only 8 bit, it is required that P n-1 is known.
  • the mapping scheme according to Eqns. 4a to 4c maps differences in the range of -P n- i ⁇ D n ⁇ P n- i to target values between 0 and 2-P n -i. while differences D n larger than P n .i are shifted using P n- i as a shifting parameter.
  • the target values D' n obtained by mapping the differences D n to all positive values, may be encoded using variable length coding (VLC).
  • VLC variable length coding
  • the code word C includes a number of first bits (zeros in the example), with this number corresponding to Q, a marker of a second bit (one in the example), and the binary equivalent of the remainder R.
  • the bit length of the remainder R is x, with 2 X'1 ⁇ M ⁇ 2 X or x-1 ⁇ log 2 M ⁇ x.
  • divisor M is updated with each new target value D' to be encoded.
  • M n- i be the divisor for coding target value D'n-1
  • a divisor M n for coding a next target value D' n may then be obtained by calculating a weighted sum of D' n- i and M n - for example the mean value (D' n- 1 and M n )/2 - and rounding to the next 2 X , with x being an integer > 0, being equal to or smaller than the weighted sum.
  • M n may be expressed as :
  • M n (Mn-i + D n ) /2 - [(M n-1 + D n ) /2]mod2 x (7)
  • FIG. 7 is flowchart illustrating VLC coding process as discussed above.
  • P in Figure 7 denotes a stream of pixel values.
  • a decision is made as to whether the incoming pixel values relate to a current segment or to a new segment. Under the assumption, that a fixed number of pixels is assigned to each segment, this decision may be realized using a counter that counts the incoming pixel values, whereas every time the counter reaches a given threshold, that represents the number of pixels per segment, the counter is reset and the beginning of a new segment is assumed.
  • every new segment divisor M is set to an initial value in step 102.
  • step 102 the difference between pixel values of adjacent pixels are current, and these differences are mapped to positive target values in step 103. Based on these differences and based on divisor M, which may be the initial divisor or an updated divisor a current divisor is calculated in step 105. Such divisor is then used in step 104 for VLC coding the difference obtained in step 103.
  • C in Figure 7 denotes a data stream of coded data words, with each data word representing a difference between two adjacent pixels.
  • E n is the prediction value.
  • E n according to fixed prediction scheme may be dependent on pixel values of several adjacent pixels.
  • E n may in particular be dependent on a number of left neighbor pixels, which allows the iterative reconstruction of differences and pixel values as discussed above:
  • En f(Pn-1, Pn-2, Pn-3,...) (9a), where f(.) denotes a weighting function.
  • f(.) denotes a weighting function.
  • Such function may either be dependent on the pixel value P n itself, i.e.
  • one or more least significantly bits may truncated from the binary words representing the pixel values.
  • the pixel values may be directly encoded by simply truncating one or more least significant bits. It goes without saying that truncating LSBs from the pixel values results to losses (lossy encoding).
  • bit budget For achieving a given compression factor a bit budget is assigned to each segment, whereas the bit budget denotes the overall number of bits the sequence of code words for the particular segment may have. Coding that meets the given bit budget may be performed lossless or non-lossless, which is dependent on the complexity of the image content represented by the pixels of one segment,.
  • test encoding is performed for each segment. Test encoding comprises encoding a given segment using different coding methods, whereas each difference or target value of one segment is encoded using the same method, and counting the overall number of bits of a code sequence obtained by the particular coding method. Finally the segment is encoded using the coding method that meets the given bit budget best.
  • “Meeting the bit budget best” in this regard means, that the best coding method is used the bit number of which is equal or lower than the bit budget. If lossless coding is possible, the lossless method is used that requires the lowest number of bits. If only lossy coding is possible, the best lossy method is used the bit number of which is equal to or lower than the bit budget. "Best coding method” in this regards means the coding method resulting to the lowest losses, i.e. the least number of truncated bits, as compared to the other methods, while “worst coding method” in this regards means the coding method resulting to the highest losses.
  • bit budget of segments adjacent to worst blocks in a next line is then increased as compared to the bit budget of the corresponding worst block, while the bit budget of segments adjacent to best blocks in a next line is then decreased as compared to the corresponding best block.
  • An example for this method is depicted in Figure 8, where the bit budget and the compression quality for segments of three adjacent lines 1 , 2, 3 is depicted, where it is assumed that five coding methods with four different coding qualities Q1...Q5 are available.
  • the segments of the first line 1 are compressed using a given same bit budget for each segment, which results to different coding qualities. According to the example a best coding quality is obtained for two blocks, and a worst coding quality is obtained for two blocks.
  • the bit budget of segments adjacent to the worst blocks in a second line 2 is then increased, while the bit budget of segments adjacent to the best blocks in the second line 2 is then decreased.
  • a best coding quality is obtained for three blocks in the second line, where in the example this best quality is worse than the best quality than the best coding quality obtained for the first line.
  • a worst coding quality is obtained for three blocks in the second line.
  • the bit budget for three segments adjacent to the three worst blocks in the third line is then increased, while the bit budget for the three best blocks is decreased.
  • the best coding has quality ranking Q5 and the worst coding has quality ranking Q1
  • the best and worst coding of the third line have rankings Q2 and Q3, i.e. the coding qualities have been made similar due to adapting the bit budget.
  • the bit budget is increased or decreased in same steps, e.g. 16 bit per segment.
  • the number of segments for which the bit budget is increased from line to line is equal to the number of segments for which the bit budget decreased. This helps keeping the overall bit budget for one line equal from line to line.
  • the bit budget for segments of a first line 1 of an image to be compressed is fixed and equal for the segments 1 ⁇ of the first line, while the bit budget of segments 2 k , 3 k of further lines 2, 3,... is dependent on the complexity of the image structure in a previous line, for example dependent on the complexity of an image structure in the adjacent line.
  • pixel values of first pixels of first segments in each line are coded directly, instead of coding a difference.
  • the positions of so-called "bad pixels" in one segment of a block are identified using differences calculated for adjacent pixels of a previous segment. These bad pixels will then be treated like the first pixels in the first segments of each line, i.e. their pixel values are coded directly.
  • the position of bad pixels may be located by comparing the difference between two adjacent pixel values with further differences within the same segment. If this difference is significantly higher than the other differences or the mean value of the other differences, presence of a bad pixel is assumed. Under the assumption that the pixels of adjacent segments of one block are correlated, the position of a bad pixel in one segment corresponds to the position of a bad pixel in the adjacent segment.
  • a luminance value (Y) and a first (U) or a second (V) chrominance value are assigned to each pixel.
  • YUV422 format a bit stream to be compressed for each segment is Y 1 U 1 Y 2 V 1 Y 3 U 2 ...
  • YR denote luminance pixel values
  • U k denote chrominance pixel values.
  • a segment may comprise 16 pixels, which results to 32 pixel values to be coded (compressed).
  • luminance difference DY which is the difference of luminance values Y of two adjacent pixels
  • first chrominance difference DU which is the difference of first chrominance values U of two pixels
  • second chrominance difference DV which is the difference of second chrominance values V of two pixels.
  • test encoding using a number of different coding methods is performed prior to finally encoding an segment using one of these methods.
  • at least four different coding methods may be applied. These different methods ,for example may include one method of directly encoding pixel values by truncating LSBs and may include three methods of VLC encoding differences of pixel values, where the pixel values may be truncated or non.truncated pixel values.
  • the direct coding method may, for example, include truncating 4 LSBs, while the difference coding methods may include truncation lengths of 0, 2 or 4 LSBs, where truncation length denotes the number of bits being truncated from the pixel values prior to calculating the differences.
  • the coding method with 0 LSB truncation is lossless.
  • the differences are lossy due to truncation of LSBs from the pixel values prior to calculating the differences.
  • the direct method in this example has the worst quality, while the difference method with 0 LSB truncation has the best quality.
  • the quality of the difference methods decreases with the number of truncated LSBs increasing. It goes without saying that additional direct or difference encoding method, having higher or lower truncation lengths may be considered for test encoding and finally encoding the segments.
  • the method according to the invention may be used for temporarily storing images during de-interlacing or motion compensated interpolation methods. In de-interlacing as well as in motion compensated de- interlacing information from a number of images of a image sequence are required for image processing. In order to reduce memory space and in order to reduce the memory bandwidth required for storing the images in a memory device the images may be compressed prior to storing.
  • the compressed segments are written into a memory buffer. Since the bit budget assigned to the individual segments may vary, the bit rate of a bit stream written into the memory buffer may either vary. According to a further embodiment of the invention the bit rate, and therefore the bit budget assigned to segments of one line may also vary dependent on the current load of the memory buffer. This helps avoiding the buffer to run empty and avoiding the buffer to overflow.
  • a method for compressing groups of pixels comprising: calculating the difference between neighboring pixels segment by segment and store it into a temporary buffer; marking the degree of complexity of each segment of one of the neighboring line of pixels; and coding the differential values of adjacent pixels segment by segment by assigning bit rate according to the complexity of one of the neighboring lines.
  • a method of compressing groups of pixels comprising calculating the difference between neighboring pixels segment by segment; recording pixels with longer than original pixel length by using one bit for each color component and not compressing these pixels in the same position of the next line pixels; and compressing the differential values of the rest of adjacent pixels segment by segment by assigning bit number according to the complexity of one of the neighboring lines.
  • a method of compressing groups of pixels and controlling output bit number of the compressed pixels for avoiding buffer overflow and underflow comprising applying a compression engine to reduce data rate of a group of pixels; deploying an anti-peak image buffer with a predetermined width and depth for temporarily storing the compressed pixel information with input from the compression engine and another node of output to other device; deploying an output bit rate counter to estimate the output bit number and the output flow rate of the output buffer; and adjusting the compression rate segment by segment according to the information recorded in the bit rate buffer counter.
  • the image compression according to the invention may be used for compressing image data before storing the image data into a frame buffer which significantly reduces requirement of the density, bandwidth and power consumption of storage device.
  • the image compression compresses the on-chip image line buffer of display device controller which lines are used for scaling and de-interlacing.
  • the image compression includes method and apparatus of compressing the image data by a procedure of separating the MSB bits and LSB bits of the DPCM coded pixels difference between adjacent pixels.
  • the input pixels are tested to determine whether the MSB and LSB bits are compressed separately to gain higher compression rate.
  • the input pixels are tested to determine which VLC coding mode reaches the lowest bit rate and assigns the VLC coder to select that mode.
  • the image compression detects the variance of MSB bits of the DPCM code and determines whether the MSB and LSB bits to be compressed separately or not and which mode (8/0, 7/1 , 6/2, 5/3 and 4/4).
  • the distribution of recovering the truncated bits will not start from NOT the same position hence avoid accumulation of error over time.
  • the block size of pixels are tradeoffs among compression rate, image quality, latency of accessing and ease of design.
  • the bit rate of Y (Luma) and U ⁇ / (Chroma) are put together as a compression unit in allocating the bit rate distribution and truncation.
  • a counter is applied to calculate and trace the compression rate of each line of a frame of pixels to ensure the fixed compression rate. When the accumulated compression rate of a certain of lines reached a value behind a preset target, higher compression rate will be applied to the next line or a couple of lines to gradually pull back the compression rate.
  • the video bit stream decoding analyzes the complexity and quality of the decompressed block pixels and decides which compression mode to be applied to reduce the data rate.
  • the differential values of adjacent pixels will be adjusted to be all positive which reduces the bit requirement from 9 bits down to 8 bits.
  • each color component (Y, U and V) is compressed and decompressed separately with the final data rate combined together to fit a predetermined bit rate.
  • each color component (Y, U and V) within a line has one bit as the mark "bad pixel: high complexity” and to represent action of "No compression".
  • the marker bits of the upper line will be down loaded to a smaller buffer segment-by-segment as a reference in compression and decompression.
  • the adjusted differential value, D n of adjacent pixels will be coded by divding the D n by a predicted divider to achieve a result of Quotient (Q) and a Remainder (R).
  • the divider is predicted without inserting bits into represent which reduces the bit rate.
  • a predetermined number of dividers are applied and tested to determine which reaches the lowest data rate which will be selected as the divider for coding the predicted differential values of pixels.
  • a code (Ex. "00000000" is inserted to represent that the Remainder of its following 8 bits is the same value of the predicted D n to be coded which limited the max. length of code to be 16 bits.
  • multiple calculation engines are implemented to pipelining predict the mode of VLC coding and continuously compressing the adjusted differential values of neighboring pixels.
  • the initial divider number is calculated by a statistical number of previous samples.
  • the divider of the next pixel and the Quotient and Remainder of the current pixels are calculated in the same cycle time.
  • one single segment pixel buffer is implemented to receive input pixels and providing pixels to the compression engine pipelining without stopping and waiting.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

Disclosed is a method and an apparatus for linewise image compression. The method comprises: subdividing the lines into segments, with each of the segments comprising a number of pixels, with each pixel being assigned at least one pixel value; assigning a bit budget to each segment; compressing the segments for obtaining compressed segments using one of at least two coding methods having different coding qualities, with the coding method being selected such that a bit number of the compressed segment is equal to or lower than the bit budget; wherein the bit budget of a segment of one line is selected dependent on a coding quality obtained for an adjacent segment in an adjacent line.

Description

METHOD AND APPARATUS FOR LINEWISE IMAGE COMPRESSION
The invention relates to a method and an apparatus for linewise image compression.
BACKGROUND OF THE INVENTION
Images of video sequences comprise a number of pixels arranged in lines, with each of these pixels being assigned at least one pixel values. In order to reduce memory space and/or memory bandwidth required for storing such images compression of the pixel data is desired.
SUMMARY OF THE INVENTION
A method for compressing an image having lines of pixels according to one example of the invention comprises: subdividing the lines into segments, with each of the segments comprising a number of pixels; assigning a bit budget to each segment; compressing the segments for obtaining compressed segments using one of at least two coding methods, with the coding method being selected such that a bit number of the compressed segment is equal to or lower than the bit budget; wherein the bit budget of a segment of one line is selected dependent on a coding quality obtained for an adjacent segment in an adjacent line.
An apparatus for compressing image data of an image having lines of pixels according to an example of the invention comprises: means for subdividing the lines into segments, with each of the segments comprising a number of pixels, with each pixel being assigned at least one pixel value; means for assigning a bit budget to each segment; means for compressing the segments for obtaining compressed segments using one of at least two coding methods, with the coding method being selected such that a bit number of the compressed segment is equal to or lower than the bit budget; means for selecting the bit budget of a segment of one line dependent on a coding quality obtained for an adjacent segment in an adjacent line. BRIEF DESCRIPTION OF THE DRAWINGS
Examples of the present invention will be explained in the following with reference to the enclosed drawings. Figure 1 illustrates two methods for linewise image compression, wherein a first method applies a fixed compression rate, while a second method applies a variable compression rate.
Figure 2 illustrates subdividing lines of an image into segments. Figure 3 illustrates the distribution of differences between adjacent pixels in a segment according to an example of the invention. Figure 4 illustrates mapping differences between pixel values to positive values. Figure 5 illustrates generating a variable length code.
Figure 6 shows a table including examples of variable length codes. Figure 7 illustrates a method for calculating variable length codes. Figure 8 shows an example for adapting bit budgets assigned to line segments.
DETAILED DESCRIPTION OF THE DRAWINGS
Figure 1A illustrates a first method for linewise image compression. According to this method a line 1 of an image is subdivided in a number of segments 11 t 12, ... ,1n. wherein each segments includes a number of adjacent pixels 11 i, 112. A pixel value is assigned to each pixel. The pixel values may either be luminance values (Y) or chrominance values (U, V). The pixel values are represented by binary words, for example, binary words having a bit length of 8 bit. Applying a fixed compression rate the binary words representing the pixel values may be compressed, thereby obtaining compressed bit sequences C11, CI2 CIn with the overall number of bits of these sequences being shorter than the overall number of bits of one segment. Compression may, for example, be achieved by truncating a number of least significant bits from the binary words representing the pixel values.
Figure 1 B illustrates a compressing method using a variable compression rate. The ratio between the number of bits of the compressed sequences and the number of bits of the segments varies with this method, with this ratio corresponding to the compression rate. A compression rate varying on a segment by segment basis may be achieved using variable length coding (VLC).
An example of a line compression method according to the invention will be explained in the following with reference to Figure 2. In this method every line of an image comprising a number of lines 1 , 2, 3,... is subdivided into segments 1R, 2K, 3K,... Each of these segments comprises a number of pixels, with at least one pixel value being assigned to each of these pixels. In the method segments of one line are compressed, whereas Information obtained on the complexity of image structures represented by pixel data of line are used for compressing segments of adjacent/neighboring lines, which will be explained in the following.
Instead of directly compressing the pixel values differences between the same type of pixel values of adjacent pixels are calculated and the differences are compressed. This makes use of the fact, that adjacent pixels of one line are often correlated, which results in small differences, which may be compressed/encoded using short codes or code words. Let Pn-i and Pn be pixel values of two adjacent pixels of one segment, then a difference Dn to be coded is calculated as follows:
Figure imgf000005_0001
For illustration purposes it may be assumed that the pixel having pixel value Pn-i is a neighbor to the left of pixel having pixel value Pn. Encoding differences of pixel values, which in the following is denoted as differential encoding or DPCM encoding (DPCM = Differential Pulse Coded Modulation) is, of course, not possible for a first pixel of a first segment of one line. Such first pixel of the first segment in each line is encoded directly. A stream of pixel values to be decoded for the first segment therefore is: Po Di D2 D2 D3...., where Po denotes the pixel value of a first pixel of the segment, and Di, D2,... denote differences. For first pixels of further segments of one line, the pixel value of a last pixel of a previous (left neighbor) segment is used as a reference value for calculating a first difference. A stream of pixel values to be decoded for further segments therefore is: Do D1 D2 D2 D3 where D0 denotes a first difference calculated by D0 = Po - Pz, where Po denotes the pixel value of a first pixel of a current segment, and Pz denotes the last pixel of a previous segment.
The pixel values P are represented by binary words. For illustration purposes the bit length of these binary words is assumed to be 8 bit. It goes without saying that the invention is not restricted to bit lengths of 8 bit, but any other bit lengths - even higher bit lengths as, for example 10 bit - may be used either. For bit lengths of 8 bit the pixel values P range between 0 and 255. Consequently, the differences D range between -255 and 255, i.e.
-255 ≤ Pn-Pn-1 < 255 where 0 < Pn-1 < 255 and 0 < Pn < 255 (2) In general 9 bit would be required for coding such difference, and thereby allowing lossless decoding. However, assuming that one of the pixel values of the difference, namely Pn-i, is known, then the range for the difference Dn to be decoded can be narrowed to
-Pn-1 ≤ Pn-Pn-1 < 255 - Pn-1 where 0 < Pn< 255 (3),
which implies that the difference Dn may be encoded using only 8 bit.
For a correct reconstruction of Dn, if it is encoded using only 8 bit, it is required that Pn-1 is known. For a first difference D-I=P1-P0 of a segment pixel value Po is coded directly, and is therefore available for decoding purposes. Knowing P0 and the 8 bit data word representing the difference D-i, the difference D1 may be reconstructed. Using said reconstructed difference Di pixel value Pi may be reconstructed, which may then be used for reconstructing a next difference D2=P2-Pi, etc. Starting from a first pixel value of segment differences being represented by 8 bit data words, and using these differences, further pixel values may be reconstructed by applying an iterative process.
According to an example of the invention the differences Dn prior to coding are mapped to values of a given interval including 28=256 different values. It is obvious, that more than one difference Dn has to be mapped to the same value of the mapping interval if there are 29 different difference Dn and only 28 different values for representing those differences Dn. However, by applying a mapping scheme that uses one of the pixel values, for example Pn-i, as a mapping parameter, the correct difference can be reconstructed from the mapped value using pixel value Pn-1.
Mapping a difference Dn to a value within the interval of 256 different values may be performed by simply shifting the difference Dn to a positive value using pixel value Pn-I as a shifting parameter. Another approach for mapping the differences will be explained in the following:
Usually the pixel values of adjacent pixels in an image are correlated to each other. The differences between the pixel values of adjacent pixels, in a first approach, therefore are normally distributed, as depicted in Fig. 3. For effectively applying a variable length coding (VLC) to the differences Dn it is therefore desired to map small differences Dn to small values and to map larger differences Dn to larger values. A possible mapping scheme for mapping a difference D to a target value D1, with 0 ≤ D1 < 255, using pixel value Pn-i as a mapping parameter is, for Pn-i ≤ 128:
Dn 1 = Pn-i + Dn for I Dn I > Pn-i (4a)
Dn 1 = 2 I Dn I -1 for I Dn I < Pn-i and Dn > 0 (4b) Dn' = 2 - | Dn | for I Dn I < Pn-i and Dn < 0 (4b)
Dn 1 = 0 for Dn = 0 (4c)
The mapping scheme according to Eqns. 4a to 4c maps differences in the range of -Pn-i ≤ Dn < Pn-i to target values between 0 and 2-Pn-i. while differences Dn larger than Pn.i are shifted using Pn-i as a shifting parameter. Fig. 4A for Pn^ = 3 shows the distribution of possible differences (assuming that the differences are normally distributed) while FIG 4B shows the possible distribution of the target values D'n obtained by mapping the differences. In the example D=1 is mapped to D'=1 , D=-1 is mapped to D'=2, ... , D=-3 is mapped to D'=5 and D=3 is mapped to D'=6.
For Pn-I > 128 the same mapping scheme applies except for the mapping according to Eqn. 4a being replaced by
D1 = -Pn., + Dn for I Dn I > Pn-1 (5a).
The target values D'n, obtained by mapping the differences Dn to all positive values, may be encoded using variable length coding (VLC). For assigning code words C to each of the target values D' these target values D1 in a first step are expressed as
D1 = M Q + R (6),
where M denotes a divisor, Q denotes the integer result obtained by dividing D through divisor m, and R denotes the remainder of the division operation. For each target value D1 in a second step integer Q and remainder R are mapped to a code word C as shown in Fig. 5. The code word C includes a number of first bits (zeros in the example), with this number corresponding to Q, a marker of a second bit (one in the example), and the binary equivalent of the remainder R. The bit length of the remainder R is x, with 2X'1 < M < 2X or x-1 < log2M < x.
Fig. 6 shows a table including several examples of codes obtained for different D values and differentM values, where M is 23=8, 24=16 or 2°=1 in the example. Assuming that differences between the differences to be coded are small, and further assuming that M fits the differences to be coded well, short codes can be obtained.
According to an example of the VLC process divisor M is updated with each new target value D' to be encoded. Let Mn-i be the divisor for coding target value D'n-1, a divisor Mn for coding a next target value D'n may then be obtained by calculating a weighted sum of D'n-i and Mn - for example the mean value (D'n- 1 and Mn)/2 - and rounding to the next 2X, with x being an integer > 0, being equal to or smaller than the weighted sum. Mn may be expressed as :
Mn = (Mn-i + Dn) /2 - [(Mn-1 + Dn) /2]mod2x (7)
At the beginning of encoding pixels of a segment an initial value for divisor is selected. Such initial value may be a fixed value or may be adopted from coding the last difference of an adjacent segment. Figure 7 is flowchart illustrating VLC coding process as discussed above. P in Figure 7 denotes a stream of pixel values. In a first step 101 a decision is made as to whether the incoming pixel values relate to a current segment or to a new segment. Under the assumption, that a fixed number of pixels is assigned to each segment, this decision may be realized using a counter that counts the incoming pixel values, whereas every time the counter reaches a given threshold, that represents the number of pixels per segment, the counter is reset and the beginning of a new segment is assumed. With every new segment divisor M is set to an initial value in step 102.
In step 102 the difference between pixel values of adjacent pixels are current, and these differences are mapped to positive target values in step 103. Based on these differences and based on divisor M, which may be the initial divisor or an updated divisor a current divisor is calculated in step 105. Such divisor is then used in step 104 for VLC coding the difference obtained in step 103. C in Figure 7 denotes a data stream of coded data words, with each data word representing a difference between two adjacent pixels.
In this connection it should be mentioned, that instead of coding differences between pixel values of adjacent pixels differences between a pixel value of a pixel and a prediction value of such pixel may be coded. The difference Dn would then read
Pn = Pn - En (8),
where En is the prediction value. En according to fixed prediction scheme may be dependent on pixel values of several adjacent pixels. En may in particular be dependent on a number of left neighbor pixels, which allows the iterative reconstruction of differences and pixel values as discussed above:
En = f(Pn-1, Pn-2, Pn-3,...) (9a), where f(.) denotes a weighting function. Such function may either be dependent on the pixel value Pn itself, i.e.
Eπ = f(Pn-1, Pn-2, Pn-3,...) (9b).
Prior to calculating the differences and therefore prior to applying a VLC method to the differences D or to the target values D1 (in case the differences are mapped to target values) one or more least significantly bits (LSB) may truncated from the binary words representing the pixel values.
Instead of applying a VLC method to differences between truncated or un-truncated pixel values the pixel values may be directly encoded by simply truncating one or more least significant bits. It goes without saying that truncating LSBs from the pixel values results to losses (lossy encoding).
An overall number Bc of bits for one segment of e.g. 32 pixels should be lower than the overall number Bp of bits of the binary words representing the pixel values in order to achieve a compression factor higher than 1 , with the compression factor F being
F = Bp/Bc (10).
For achieving a given compression factor a bit budget is assigned to each segment, whereas the bit budget denotes the overall number of bits the sequence of code words for the particular segment may have. Coding that meets the given bit budget may be performed lossless or non-lossless, which is dependent on the complexity of the image content represented by the pixels of one segment,. For finding a coding method that meets the bit budget test encoding is performed for each segment. Test encoding comprises encoding a given segment using different coding methods, whereas each difference or target value of one segment is encoded using the same method, and counting the overall number of bits of a code sequence obtained by the particular coding method. Finally the segment is encoded using the coding method that meets the given bit budget best.
"Meeting the bit budget best" in this regard means, that the best coding method is used the bit number of which is equal or lower than the bit budget. If lossless coding is possible, the lossless method is used that requires the lowest number of bits. If only lossy coding is possible, the best lossy method is used the bit number of which is equal to or lower than the bit budget. "Best coding method" in this regards means the coding method resulting to the lowest losses, i.e. the least number of truncated bits, as compared to the other methods, while "worst coding method" in this regards means the coding method resulting to the highest losses.
The different coding methods available for coding the segments may be ranked according to their losses, while "best coding method" in the following denotes the method resulting to the lowest losses, while "worst coding method" in the following denotes the method resulting to the highest losses.
It is a goal to achieve similar compression qualities for the segments of one line. According to an embodiment of the invention the "worst segments" in one line are detected for which the worst coding method of the line is selected, and "best segments" in the same line are detected for which the best coding method is selected. "Worst coding method of the line" in this regard denotes the worst coding method of one line as compared to the other coding methods in this line, while "best coding method of the line" in this regard denotes the best coding method of one line as compared to the other coding methods in this line.
The bit budget of segments adjacent to worst blocks in a next line is then increased as compared to the bit budget of the corresponding worst block, while the bit budget of segments adjacent to best blocks in a next line is then decreased as compared to the corresponding best block. An example for this method is depicted in Figure 8, where the bit budget and the compression quality for segments of three adjacent lines 1 , 2, 3 is depicted, where it is assumed that five coding methods with four different coding qualities Q1...Q5 are available.
The segments of the first line 1 are compressed using a given same bit budget for each segment, which results to different coding qualities. According to the example a best coding quality is obtained for two blocks, and a worst coding quality is obtained for two blocks. The bit budget of segments adjacent to the worst blocks in a second line 2 is then increased, while the bit budget of segments adjacent to the best blocks in the second line 2 is then decreased.
In the example a best coding quality is obtained for three blocks in the second line, where in the example this best quality is worse than the best quality than the best coding quality obtained for the first line. A worst coding quality is obtained for three blocks in the second line. The bit budget for three segments adjacent to the three worst blocks in the third line is then increased, while the bit budget for the three best blocks is decreased. While for the first line the best coding has quality ranking Q5 and the worst coding has quality ranking Q1 the best and worst coding of the third line have rankings Q2 and Q3, i.e. the coding qualities have been made similar due to adapting the bit budget.
According to an embodiment, the bit budget is increased or decreased in same steps, e.g. 16 bit per segment. According to a further segment the number of segments for which the bit budget is increased from line to line is equal to the number of segments for which the bit budget decreased. This helps keeping the overall bit budget for one line equal from line to line.
Since the complexity of image structures represented by different segments of one line may vary, the coding methods applied to these segments may vary either, whereas some segments may be coded lossless, while other segments may be coded lossy. According to an embodiment of the invention the bit budget for segments of a first line 1 of an image to be compressed is fixed and equal for the segments 1κ of the first line, while the bit budget of segments 2k, 3k of further lines 2, 3,... is dependent on the complexity of the image structure in a previous line, for example dependent on the complexity of an image structure in the adjacent line.
As already mentioned, pixel values of first pixels of first segments in each line are coded directly, instead of coding a difference. According to an example of the invention the positions of so-called "bad pixels" in one segment of a block are identified using differences calculated for adjacent pixels of a previous segment. These bad pixels will then be treated like the first pixels in the first segments of each line, i.e. their pixel values are coded directly. The position of bad pixels may be located by comparing the difference between two adjacent pixel values with further differences within the same segment. If this difference is significantly higher than the other differences or the mean value of the other differences, presence of a bad pixel is assumed. Under the assumption that the pixels of adjacent segments of one block are correlated, the position of a bad pixel in one segment corresponds to the position of a bad pixel in the adjacent segment.
For the above discussion it had been assumed that one pixel value is assigned to each pixel of a segment. In fact two pixel values, a luminance value (Y) and a first (U) or a second (V) chrominance value are assigned to each pixel. For the YUV422 format a bit stream to be compressed for each segment is Y1U1 Y2V1 Y3U2 ... , whereas YR denote luminance pixel values and Uk, Vk denote chrominance pixel values. A segment may comprise 16 pixels, which results to 32 pixel values to be coded (compressed).
Assuming a YUV format, three types of differences are calculated: luminance difference DY, which is the difference of luminance values Y of two adjacent pixels, a first chrominance difference DU which is the difference of first chrominance values U of two pixels, and a second chrominance difference DV, which is the difference of second chrominance values V of two pixels. These differences are calculated as follows:
DYn = Yn - Yn-i (11a) DUn = Un - Un-1 (11 b)
DVn = Vn - Vn-1 (11c)
The method steps for a linewise compression of pixel values as discussed above are applied to the three differences independently.
Consequently, there are three first pixel values Yo, U0, Vo at the beginning of a first segment in each line, that are coded directly.
Within one segment the same coding method is applied to pixel values of one type, while pixel values of different types, i.e. luminance values on one hand side and chrominance values on the other hand side, may be coded differently.
As already explained, test encoding using a number of different coding methods is performed prior to finally encoding an segment using one of these methods. According to an example at least four different coding methods may be applied. These different methods ,for example may include one method of directly encoding pixel values by truncating LSBs and may include three methods of VLC encoding differences of pixel values, where the pixel values may be truncated or non.truncated pixel values. The direct coding method may, for example, include truncating 4 LSBs, while the difference coding methods may include truncation lengths of 0, 2 or 4 LSBs, where truncation length denotes the number of bits being truncated from the pixel values prior to calculating the differences. The coding method with 0 LSB truncation is lossless. For the other difference coding methods coding the differences is lossless, but the differences are lossy due to truncation of LSBs from the pixel values prior to calculating the differences. The direct method in this example has the worst quality, while the difference method with 0 LSB truncation has the best quality. The quality of the difference methods decreases with the number of truncated LSBs increasing. It goes without saying that additional direct or difference encoding method, having higher or lower truncation lengths may be considered for test encoding and finally encoding the segments. The method according to the invention, for example, may be used for temporarily storing images during de-interlacing or motion compensated interpolation methods. In de-interlacing as well as in motion compensated de- interlacing information from a number of images of a image sequence are required for image processing. In order to reduce memory space and in order to reduce the memory bandwidth required for storing the images in a memory device the images may be compressed prior to storing.
For storing the compressed images the compressed segments are written into a memory buffer. Since the bit budget assigned to the individual segments may vary, the bit rate of a bit stream written into the memory buffer may either vary. According to a further embodiment of the invention the bit rate, and therefore the bit budget assigned to segments of one line may also vary dependent on the current load of the memory buffer. This helps avoiding the buffer to run empty and avoiding the buffer to overflow.
Summarizing the above, embodiments of the invention relate to:
A display processing method for manipulating at least one received raw image to be displayed on a display device, comprising: a method of scaling image for future display in a scheduled time slot; a method of de-interlacing of re-aligning pixels of the current image by referring to neighboring picture; an image encoder for compressing the 1st raw image to generate an associated compressed image to be stored in at least one buffer coupled to the display control device; and at least one manipulation for generating an output image adapted to be displayed on the display device according to a decompressed image from the frame codec device by decompressing the compressed image.
A method for compressing groups of pixels, comprising: calculating the difference between neighboring pixels segment by segment and store it into a temporary buffer; marking the degree of complexity of each segment of one of the neighboring line of pixels; and coding the differential values of adjacent pixels segment by segment by assigning bit rate according to the complexity of one of the neighboring lines.
A method of compressing groups of pixels, comprising calculating the difference between neighboring pixels segment by segment; recording pixels with longer than original pixel length by using one bit for each color component and not compressing these pixels in the same position of the next line pixels; and compressing the differential values of the rest of adjacent pixels segment by segment by assigning bit number according to the complexity of one of the neighboring lines. A method of compressing groups of pixels and controlling output bit number of the compressed pixels for avoiding buffer overflow and underflow, comprising applying a compression engine to reduce data rate of a group of pixels; deploying an anti-peak image buffer with a predetermined width and depth for temporarily storing the compressed pixel information with input from the compression engine and another node of output to other device; deploying an output bit rate counter to estimate the output bit number and the output flow rate of the output buffer; and adjusting the compression rate segment by segment according to the information recorded in the bit rate buffer counter.
The image compression according to the invention may be used for compressing image data before storing the image data into a frame buffer which significantly reduces requirement of the density, bandwidth and power consumption of storage device.
The present invention further applies to the following concept of taking advantage of the correlation between neighboring lines of pixels which have higher similarity and less differential value to achieve low bit rate of storing the frame of pixels:
- Marking the pixels with large variance in a upper line and no compression in the current line with corresponding location, compressing others pixels referring to upper line complexity and assign bit rate of each segment accordingly;
- Prediction and selection of the mode of separating MSB bits and LSB bits and no separation for achieving a shortest code for a VLC coding;
Coding the predicted differential value by a predicted divider without adding extra code and minimized code length of the Quotient and Remainder; - Applying a buffer control mechanism to avoid the output buffer from overflow or underflow; The image compression compresses the on-chip image line buffer of display device controller which lines are used for scaling and de-interlacing.
The image compression includes method and apparatus of compressing the image data by a procedure of separating the MSB bits and LSB bits of the DPCM coded pixels difference between adjacent pixels.
According to an embodiment of the image buffer compression, the input pixels are tested to determine whether the MSB and LSB bits are compressed separately to gain higher compression rate.
According to an embodiment of the image buffer compression, the input pixels are tested to determine which VLC coding mode reaches the lowest bit rate and assigns the VLC coder to select that mode.
The image compression detects the variance of MSB bits of the DPCM code and determines whether the MSB and LSB bits to be compressed separately or not and which mode (8/0, 7/1 , 6/2, 5/3 and 4/4).
According to an embodiment of the image compression, the distribution of recovering the truncated bits will not start from NOT the same position hence avoid accumulation of error over time.
According to an embodiment of the image compression, the block size of pixels are tradeoffs among compression rate, image quality, latency of accessing and ease of design.
According to an embodiment of the image compression, under the requirement of a fixed compression rate, the bit rate of Y (Luma) and UΛ/ (Chroma) are put together as a compression unit in allocating the bit rate distribution and truncation. According to an embodiment, a counter is applied to calculate and trace the compression rate of each line of a frame of pixels to ensure the fixed compression rate. When the accumulated compression rate of a certain of lines reached a value behind a preset target, higher compression rate will be applied to the next line or a couple of lines to gradually pull back the compression rate.
The video bit stream decoding analyzes the complexity and quality of the decompressed block pixels and decides which compression mode to be applied to reduce the data rate.
According to one embodiment the differential values of adjacent pixels will be adjusted to be all positive which reduces the bit requirement from 9 bits down to 8 bits.
According to another embodiment each color component (Y, U and V) is compressed and decompressed separately with the final data rate combined together to fit a predetermined bit rate.
According to another embodiment, each color component (Y, U and V) within a line has one bit as the mark "bad pixel: high complexity" and to represent action of "No compression".
According to another embodiment, each line pixels are compressed with variable length of bits segment to segment.
According to another embodiment the marker bits of the upper line will be down loaded to a smaller buffer segment-by-segment as a reference in compression and decompression.
According to another embodiment, a fixed clock cycle time will be assigned for continuously encoding and decoding a whole line of pixels. According to another embodiment one encoder/decoder is assigned to encode and decode the Y component and another encoder/decoders will encode and decode U and V components in different cycle time.
According to another embodiment the adjusted differential value, Dn of adjacent pixels will be coded by divding the Dn by a predicted divider to achieve a result of Quotient (Q) and a Remainder (R).
According to another embodiment the Quotient and Remainder are separated by inserting one "1" and the value of Q and R turn out to be number of "Os" (Example 17 = 3 X 5 + 2, Q=3, R=2, the code will be "000100")
According to another embodiment the divider is predicted without inserting bits into represent which reduces the bit rate.
According to an embodiment of the present invention, a predetermined number of dividers are applied and tested to determine which reaches the lowest data rate which will be selected as the divider for coding the predicted differential values of pixels.
According to one embodiment a code (Ex. "00000000" is inserted to represent that the Remainder of its following 8 bits is the same value of the predicted Dn to be coded which limited the max. length of code to be 16 bits.
According to another embodiment multiple calculation engines are implemented to pipelining predict the mode of VLC coding and continuously compressing the adjusted differential values of neighboring pixels.
According to an embodiment of efficient lossless data stream coding, the initial divider number is calculated by a statistical number of previous samples.
According to an embodiment the divider of the next pixel and the Quotient and Remainder of the current pixels are calculated in the same cycle time. According to another embodiment one single segment pixel buffer is implemented to receive input pixels and providing pixels to the compression engine pipelining without stopping and waiting.

Claims

1. A method for compressing image data of an image having lines of pixels, comprising: subdividing the lines into segments, with each of the segments comprising a number of pixels, with each pixel being assigned at least one pixel value, assigning a bit budget to each segment, compressing the segments for obtaining compressed segments using one of at least two coding methods having different coding qualities, with the coding method being selected such that a bit number of the compressed segment is equal to or lower than the bit budget, wherein the bit budget of a segment of one line is selected dependent on a coding quality obtained for an adjacent segment in an adjacent line.
2. The method of claim 1 , wherein the method further comprises: detecting the worst segments in one line being compressed with a worst coding quality as compared to further segments of the line, and detecting best segments in one line being compressed with a best coding quality as compared to further segments of the line, in an adjacent line increasing the bit budget for at least some segments being adjacent to worst blocks as compared to the bit budget of the worst blocks, and decreasing the bit budget for at least some segments being adjacent to best blocks as compared to the bit budget of the worst blocks.
3. The method of claim 2, wherein the number of segments for which the bit budget is increased from line to line equals the number of blocks for which the bit budget is decreased.
4. The method of one of the preceding claims, wherein a fixed bit budget is assigned to each block of a first line of a given image.
5. The method according to one of the preceding wherein the at least two coding methods include at least one variable length coding method.
6. The method according to claim 5, wherein the at least one variable length coding method for a given pixel comprises: calculating the difference between the given pixel and a prediction value; dividing the difference by a divisor (M) to obtain an integer (Q) and a remainder (R); mapping the integer and the remainder to a code.
7. The method according to claim 6, wherein the prediction value is the pixel value of an adjacent pixel.
8. The method according to claim 6 or 7, wherein the divisor (M) is updated on a bit by bit basis within each segment, starting from an initial value.
9. The method according to claim 8, wherein an updated divisor (M) is dependent on a current divisor and a current pixel value.
10. The method according to one of claims 5 to 9, wherein prior to the difference at least one least significant bit is truncated from binary words representing the pixel value and the prediction value.
11. The method according to one of claims 5 to 10, wherein prior to variable length encoding the differences are mapped to target values representing the differences.
12. The method according to one of the preceding claims, wherein the at least one coding method includes at least one fixed length coding method.
13. The method according to claim 12, wherein the at least one fixed length coding method includes truncating a given number of least significant bits from a binary word representing a pixel value and using the truncated binary word as a code word representing the pixel value.
14. The method according to any of the preceding claims, wherein bad pixels are selected, with the pixel values of bad pixels being coded directly.
15. The method of claim 14, wherein selecting a bad pixel in a given segment comprises the steps of: evaluating the difference between a pixel value of a given pixel and a prediction value in a segment adjacent to the given segment, comparing the difference to other differences between pixel values and prediction values of other pixels in the adjacent segment, marking a pixel in the given segment having the same position as the given pixel in the adjacent segment to be a bad pixel dependent on the comparison result.
16. The method according to one of the preceding claims, comprising: prior to coding pixel values or differences of a given segment performing a test encoding using the at least two coding methods, in order to select the coding method, which, given the bit budget for the segment, results to the best coding quality, applying the selected coding method for coding pixel values of the block.
17. An apparatus for compressing image data of an image having lines of pixels, comprising: means for subdividing the lines into segments, with each of the segments comprising a number of pixels, with each pixel being assigned at least one pixel value, means for assigning a bit budget to each segment, means for compressing the segments for obtaining compressed segments using one of at least two coding methods, with the coding method being selected such that a bit number of the compressed segment is equal to or lower than the bit budget, means for selecting the bit budget of a segment of one line dependent on a coding quality obtained for an adjacent segment in an adjacent line.
PCT/EP2007/002158 2006-03-10 2007-03-12 Method and apparatus for linewise image compression Ceased WO2007104522A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP06004986 2006-03-10
EP06004986.3 2006-03-10

Publications (1)

Publication Number Publication Date
WO2007104522A1 true WO2007104522A1 (en) 2007-09-20

Family

ID=38042503

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2007/002158 Ceased WO2007104522A1 (en) 2006-03-10 2007-03-12 Method and apparatus for linewise image compression

Country Status (1)

Country Link
WO (1) WO2007104522A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014135120A1 (en) * 2013-03-08 2014-09-12 Mediatek Inc. Image encoding method and apparatus with rate control by selecting target bit budget from pre-defined candidate bit budgets and related image decoding method and apparatus
CN118134751A (en) * 2024-04-30 2024-06-04 合肥埃科光电科技股份有限公司 Working distance correction method, multi-image acquisition device splicing method, system and equipment
CN118314224A (en) * 2024-06-07 2024-07-09 徐州稻源龙芯电子科技有限公司 High-compression-rate high-efficiency low-distortion quantization compression and decompression method
CN118573861A (en) * 2024-08-02 2024-08-30 珠海市芯迈特科技有限公司 Image compression method, computer device, and computer-readable storage medium

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0124926A1 (en) * 1983-04-11 1984-11-14 Koninklijke Philips Electronics N.V. Device for the line-wise compression of binary data of a picture field scanning device for a document suitable for such compression
US6088392A (en) * 1997-05-30 2000-07-11 Lucent Technologies Inc. Bit rate coder for differential quantization
US20040091160A1 (en) * 2002-11-13 2004-05-13 Hook Timothy Van Compression and decompression of data using plane equations
US6778291B1 (en) * 2000-06-12 2004-08-17 Hewlett-Packard Development Company, L.P. Fast page analyzer for proper selection of compression engine for rendered data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0124926A1 (en) * 1983-04-11 1984-11-14 Koninklijke Philips Electronics N.V. Device for the line-wise compression of binary data of a picture field scanning device for a document suitable for such compression
US6088392A (en) * 1997-05-30 2000-07-11 Lucent Technologies Inc. Bit rate coder for differential quantization
US6778291B1 (en) * 2000-06-12 2004-08-17 Hewlett-Packard Development Company, L.P. Fast page analyzer for proper selection of compression engine for rendered data
US20040091160A1 (en) * 2002-11-13 2004-05-13 Hook Timothy Van Compression and decompression of data using plane equations

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014135120A1 (en) * 2013-03-08 2014-09-12 Mediatek Inc. Image encoding method and apparatus with rate control by selecting target bit budget from pre-defined candidate bit budgets and related image decoding method and apparatus
CN104272737A (en) * 2013-03-08 2015-01-07 联发科技股份有限公司 Image coding method and device for rate control by selecting target bit budget from multiple predefined candidate bit budgets and related image decoding method and device
US9398302B2 (en) 2013-03-08 2016-07-19 Mediatek Inc. Image encoding method and apparatus with rate control by selecting target bit budget from pre-defined candidate bit budgets and related image decoding method and apparatus
CN104272737B (en) * 2013-03-08 2017-10-10 联发科技股份有限公司 Image encoding method and apparatus, and related image decoding method and apparatus
CN118134751A (en) * 2024-04-30 2024-06-04 合肥埃科光电科技股份有限公司 Working distance correction method, multi-image acquisition device splicing method, system and equipment
CN118314224A (en) * 2024-06-07 2024-07-09 徐州稻源龙芯电子科技有限公司 High-compression-rate high-efficiency low-distortion quantization compression and decompression method
CN118573861A (en) * 2024-08-02 2024-08-30 珠海市芯迈特科技有限公司 Image compression method, computer device, and computer-readable storage medium

Similar Documents

Publication Publication Date Title
US6639945B2 (en) Method and apparatus for implementing motion detection in video compression
US7016547B1 (en) Adaptive entropy encoding/decoding for screen capture content
EP2232876B1 (en) Pixel block processing
US8873871B2 (en) Image processing apparatus and method
EP2128822B1 (en) Index-based pixel block processing
JP4491349B2 (en) Intra-coding method and apparatus for video data
CN103581678B (en) To improve the method and system of decoder capabilities by using multiple decoder channels
CN110012292B (en) Method and apparatus for compressing video data
KR20030005319A (en) Device and method for compressing a signal
KR20040077921A (en) Compression of palettized color images with variable length color codes
CN101653004A (en) Decoder for selectively decoding predetermined data units from an encoded bitstream
CN102857767B (en) Compression of high bit-depth images
US20090041112A1 (en) Method and apparatus of compressing image data
CN110896483A (en) Method for compressing and decompressing image data
EP4607803A2 (en) Features of range asymmetric number system encoding and decoding
US6584226B1 (en) Method and apparatus for implementing motion estimation in video compression
JPWO2008065822A1 (en) Encoding apparatus and encoding method
JP3087835B2 (en) Image encoding method and apparatus and image decoding method and apparatus
US8711944B2 (en) Representations of compressed video
JPH09200758A (en) Image encoder
JP4440308B2 (en) Rate control method and system in image compression
WO2007104522A1 (en) Method and apparatus for linewise image compression
KR20070037248A (en) Image encoding apparatus and method, image decoding apparatus and method, and display driving circuit and method using the same
US7953285B2 (en) Method and circuit of high performance variable length coding and decoding for image compression
WO2009093947A1 (en) Pixel block processing

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: 07711910

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: 07711910

Country of ref document: EP

Kind code of ref document: A1