System and method for compressing image data in a display panel
View Patent ↗A method for compressing image data in a display panel is provided. The method includes grouping a plurality of pixels of the display panel into a plurality of continuous blocks and selecting a pixel pattern for a current block from a plurality of pixel patterns. Each block includes a pixel array with M rows and N columns. The indexes are assigned to the pixel patterns. Each pixel pattern includes a pixel array of M rows and N columns, and part of pixels in the pixel array of each pixel pattern are compressed. The method further includes obtaining a similarity between a current block and a previous block, and then coding the current block through a first coding mode in response to the similarity complying with a preset similarity or coding the current block through a second coding mode in response to the similarity not complying with the preset similarity.
1 . A method for compressing image data in a display panel having a plurality of pixels, comprising:
grouping the plurality of pixels into a plurality of continuous blocks, each block comprising a pixel array with M rows and N columns, where M and N are positive integers;
transferring data of the plurality of pixels of each block from RGB space into YUV color space or YCbCr color space in response to the plurality of pixels comprising three data channels;
selecting a pixel pattern for a current block from a plurality of pixel patterns, a plurality of indexes being assigned to the plurality of pixel patterns one-by-one, each pixel pattern comprising a pixel array of M rows and N columns, and part of the pixels in the pixel array of each pixel pattern are compressed;
obtaining a similarity between a current block and a previous block; and
coding the current block through a first coding mode in response to the similarity between the current block and the previous block complying with a preset similarity;
coding the current block through a second coding mode in response to the similarity between the current block and the previous block not complying with the preset similarity, wherein
the first coding mode comprises an index of a pixel pattern assigned to the current block;
the second coding mode comprises the index of the pixel pattern assigned to the current block plus a first number of pixel data values of the block; and
a bit width of the first coding mode is shorter than a bit width of the second coding mode.
2 . The method of claim 1 , selecting a pixel pattern for the current block comprising:
selecting a first group of pixels and a second group of pixels from the current block based on each pixel pattern of the plurality of pixel patterns;
calculating a first average value of the first group of pixels and a second average value of the second group of pixels; and
assigning a pixel pattern to the current block in response to the first average value corresponding to the pixel pattern being larger than a minimum average threshold and the second average value corresponding to the pixel pattern being smaller than a maximum average threshold, wherein
the first group of pixels is located at a same positions as the pixels not being compressed from the corresponding pixel pattern; and
the second group of pixels is located at same positions as the pixels being compressed from the pixel pattern.
3 . The method of claim 2 , when the current block is assigned with more than one pixel pattern, selecting a pixel pattern from the more than one pixel pattern by:
comparing more than one first average value corresponding to the more than one pixel pattern; and
assigning the pixel pattern with a largest first average value to the current block.
4 . The method of claim 1 , selecting a pixel pattern for the current block comprising:
selecting a third group of pixels from the current block based on each pixel pattern of the plurality of pixel patterns;
calculating a sum value of the third group of pixels for each pixel pattern; and
assigning a pixel pattern corresponding to a largest sum value to the current block, wherein the third group of pixels is located at a same positions as the pixels not being compressed from the pixel pattern.
5 . The method of claim 1 , wherein
a number of the compressed pixels in the pixel array of each pixel pattern is different from the other pixel patterns; and
locations of the compressed pixels in the pixel array of each pixel pattern are different from those of the other pixel patterns.
6 . The method of claim 1 , wherein
the similarity comprises a first difference between a value of a first group of pixels in the current block and a value of a first group of pixels in the previous block;
the preset similarity is a maximum value of the first difference; and
the similarity complies with the preset similarity in response to the first difference being smaller than the maximum value of the first difference.
7 . The method of claim 1 , wherein
the similarity comprises a second difference between a value of an ith pixel in the current block and a value of an ith pixel in the previous block, where i is a positive integer and M×N≥i≥2;
the preset similarity is a maximum value of the second difference; and
the similarity complies with the preset similarity in response to the second difference being smaller than the maximum value of the second difference.
8 . The method of claim 7 , wherein
the similarity comprises a third difference obtained by accumulating at least part of the second differences from a second pixel to a (M×N)th pixel;
the preset similarity is a maximum value of the third difference; and
the similarity complies with the preset similarity in response to the second difference being smaller than the maximum value of the second difference.
9 . The method of claim 1 , further comprising:
obtaining a flatness between the current block and the previous block in response to the similarity between the current block and the previous block does not comply with the preset similarity;
coding the current block through a third coding mode in response to the flatness between the current block and the previous block complying with a preset flatness;
coding the current block through the second coding mode in response to the flatness between the current block and the previous block not complying with a preset flatness; wherein
the third coding mode comprises the index of the pixel pattern assigned to the current block plus a second number of pixel data values of the block;
the second number is smaller than the first number; and
a bit width of the third coding mode is shorter than the bit width of the second coding mode and is longer than the bit width of the first coding mode.
10 . The method of claim 9 , wherein
the flatness comprises a first ratio vector obtained by dividing the current block by an absolute value or an average value of an internal vector of the current block;
the internal vector is an M-dimensional-vector or a N-dimensional-vector comprising a first pixel of the current block;
the preset flatness comprises an average value of the first ratio vector and a peak value of the first ratio vector; and
the flatness complies with the preset flatness in response to an average value of the first ratio vector being smaller than the average value of the first ratio vector and a maximum value of the first ratio vector being smaller than the peak value of the first ratio vector.
11 . The method of claim 9 , wherein
the flatness comprises a second ratio obtained by comparing at least one of a maximum value, a minimum value, or an average value of a second to a (M×N)th pixels of the current block with a value of a first pixel of the current block;
the preset flatness is a preset scope [a, b], where a and b are positive numbers and a<1<b; and
the flatness complies with the preset flatness in response to the second ratio being within the preset scope [a, b].
12 . The method of claim 9 , further comprising:
obtaining a capacity of a buffer configured to store the compressed image; and
coding the current block through a fourth coding mode in response to the capacity of the buffer being less than a capacity threshold;
coding the current block through a second coding mode in response to the capacity of the buffer being larger than or equal to a capacity threshold, wherein the fourth coding mode comprises the index of the pixel pattern assigned to the current block plus a third number of pixel data values of the block;
the third number of contents is smaller than the first number and larger than the second number; and
a bit width of the fourth coding mode is shorter than the bit width of the second coding mode and is longer than the bit width of the third coding mode.
13 . The method of claim 12 , wherein the capacity of the buffer is updated after compression of each block based on the bit width of the coding mode of the current block.
14 . The method of claim 1 , wherein before selecting a pixel pattern for each block, further comprises downscaling the data of the M×N pixels in the current block.
15 . The method of claim 14 , wherein before selecting a pixel pattern for each block, further comprises transferring the data of the M×N pixels in the current block from a time domain into a frequency domain.
16 . The method of claim 15 , wherein before selecting a pixel pattern for each block, further comprises quantifying the data of the M×N pixels in the frequency domain.
17 . A system for display, comprising:
a display having a plurality of pixels;
a processor configured to compress data of the plurality of pixels by:
grouping the plurality of pixels into a plurality of continuous blocks, each block comprising a pixel array with M rows and N columns, where M and N are positive integers;
transferring data of the plurality of pixels of each block from RGB space into YUV color space or YCbCr color space in response to the plurality of pixels comprising three data channels;
selecting a pixel pattern for a current block from a plurality of pixel patterns, a plurality of indexes being assigned to the plurality of pixel patterns one-by-one, each pixel pattern comprising a pixel array of M rows and N columns, and part of the pixels in the pixel array of each pixel pattern are compressed;
obtaining a similarity between a current block and a previous block; and
coding the current block through a first coding mode in response to the similarity between the current block and the previous block complying with a preset similarity;
coding the current block through a second coding mode in response to the similarity between the current block and the previous block not complying with the preset similarity, wherein
the first coding mode comprises an index of a pixel pattern assigned to the current block;
the second coding mode comprises the index of the pixel pattern assigned to the current block plus a first number of pixel data values of the block; and
a bit width of the first coding mode is shorter than a bit width of the second coding mode.
18 . The system of claim 17 , wherein the processor is configured to select a pixel pattern for the current block by:
selecting a first group of pixels and a second group of pixels from the current block based on each pixel pattern of the plurality of pixel patterns;
calculating a first average value of the first group of pixels and a second average value of the second group of pixels; and
assigning a pixel pattern to the current block in response to the first average value corresponding to the pixel pattern being larger than a minimum average threshold and the second average value corresponding to the pixel pattern being smaller than a maximum average threshold, wherein
the first group of pixels is located at same positions as the pixels not being compressed from the corresponding pixel pattern; and
the second group of pixels is located at same positions as the pixels being compressed from the pixel pattern.
19 . The system of claim 17 , the processor is configured to select a pixel pattern for the current block by:
selecting a third group of pixels from the current block based on each pixel pattern of the plurality of pixel patterns;
calculating a sum value of the third group of pixels for each pixel pattern; and
assigning a pixel pattern corresponding to a largest sum value to the current block, wherein
the third group of pixels is located at same positions as the pixels not being compressed from the pixel pattern.