Patent Publication Number: US-11044474-B2

Title: Image compression method and image processing system

Description:
CROSS REFERENCE TO RELATED APPLICATIONS 
     This Application claims priority of China Patent Application No. 201910119836.6, filed on Feb. 18, 2019, the entirety of which is/are incorporated by reference herein. 
     This Application claims priority of China Patent Application No. 201910119830.9, filed on Feb. 18, 2019, the entirety of which is/are incorporated by reference herein. 
     BACKGROUND OF THE INVENTION 
     Field of the Invention 
     The present invention relates to an image compression method and an image processing system. 
     Description of the Related Art 
     Since panel driving chips have the characteristics of low cost and low power consumption, in order to reduce the cost of frame buffers, input images are usually compressed to save the storage space for the input images. Current tile-based compression technology can be divided into two types: The first one is based on a tile having a fixed large size (as shown in  FIG. 1A , one region  110  corresponds to one tile, the image  100   a  is divided into eight tiles, and a partial updated region  150  is located in the first to third tiles), and its features include high correlation between primitives, a large compression ratio, and better image quality at the same compression ratio. However, this compression technique is less flexible for partial updating, especially if the partial updated region covers multiple tiles or has a narrow width. The second type is based on a tile having a fixed small size (as shown in  FIG. 1B , one region  120  corresponds to one tile, that is, the image  100   a  is divided into 192 tiles. Compared to the tile  110  of  FIG. 1A , the size of the tile  120  is significantly smaller than the size of the tile  110 ), and its features include better flexibility and preferable support for partial updating. However, this compression technique has poor correlation between primitives and a less compression ratio, and obvious image distortion can be seen visually. Therefore, how to provide a better compression ratio and maintain a certain degree of flexibility in the cases where only an input image corresponding to a partial updated region is provided on the input terminal is a problem to be solved at present. 
     BRIEF SUMMARY OF THE INVENTION 
     An exemplary embodiment of an image compression method is provided. The image compression method comprises the following steps: of receiving, by a tile division generator, an input image; by the tile division generator, determining whether the input image corresponds to a partial updated region and whether the partial updated region coincides with one tile or a combination of tiles of a current frame and generating a determination result; and by the tile division generator, determining whether to re-perform tile division and compressing and encoding one portion of the current frame according to the determination result. 
     An exemplary embodiment of an image processing system is provided. The image processing system comprises a tile division generator, an encoder, a frame buffer and a decoder. The tile division generator receives an input image, determines whether the input image corresponds to a partial updated region and whether the partial updated region coincides with one tile or a combination of tiles of a current frame, generates a determination result, and determines whether to re-perform tile division according to the determination result. 
     According to an embodiment, in response to the input image corresponding to the partial updated region and the partial updated region coinciding with the tile or the combination of tiles of the current frame, the encoder further compresses and encodes the input image corresponding to the partial updated region to generate image data corresponding to the partial updated region and stores the image data corresponding to the partial updated region into the frame buffer. 
     According to another embodiment, the tile division generator further obtains location information corresponding to a non-updated region according to location information corresponding to the partial updated region to output a partial updating signal to the decoder, the decoder further accesses image information corresponding to the non-updated region from the frame buffer according to the partial updating signal and stores the image information corresponding to the non-updated region into the frame buffer, and the decoder outputs a next frame according to the image data corresponding to the partial updated region and the image information corresponding to the non-updated region. 
     According to another embodiment, in response to the input image corresponding to the partial updated region and the partial updated region not coinciding with the tile or the combination of tiles of the current frame, the tile division generator re-performs the tile division according to size of the partial updated region, so that the tile coincides with the partial updated region. The tile division generator obtains location information corresponding to a non-updated region according to location information corresponding to the partial updated region to output a partial updating signal to the decoder. The decoder accesses image information corresponding to the non-updated region from the frame buffer according to the partial updating signal. The encoder compresses and encodes the input image corresponding to the partial updated region and the image information corresponding to the non-updated region to generate image data corresponding to a next frame and further stores the image data corresponding to the next frame into the frame buffer. 
     According to another embodiment, in response to the input image corresponding to a complete image, the tile division generator further sets size of the tile to be the same as size of the complete image, and the encoder compresses and encodes the complete image to obtain image data corresponding to a next frame and further stores the image data corresponding to a next frame into the frame buffer 
     A detailed description is given in the following embodiments with reference to the accompanying drawings. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The invention can be more fully understood by reading the subsequent detailed description and examples with references made to the accompanying drawings, wherein: 
         FIGS. 1A and 1B  are schematic diagrams showing conventional tile division; 
         FIG. 2  is a block diagram showing an image processing system according to an embodiment of the present invention; 
         FIGS. 3A-3C  are schematic diagrams showing tile division according to an embodiment of the present invention; 
         FIGS. 4A and 4B  are flowcharts showing an image compression method according to an embodiment of the present invention; 
         FIG. 5  is a block diagram showing an image processing system according to another embodiment of the present invention; 
         FIG. 6  is schematic diagram showing tile division according to another embodiment of the present invention; and 
         FIG. 7  is a flow chart showing an image compression method according to another embodiment of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     The following description is of the best-contemplated mode of carrying out the invention. This description is made for the purpose of illustrating the general principles of the invention and should not be taken in a limiting sense. The scope of the invention is best determined by reference to the appended claims. 
     It is to be understood that the terms “comprising” and “including”, used in this specification, are used to indicate the presence of particular technical features, numerical values, method steps, operation processing, elements and/or components. However, it is not excluded that more technical features, numerical values, method steps, operation processing, elements, components, or any combination of the above may be added. 
       FIG. 2  is a block diagram showing an image processing system according to an embodiment of the present invention. As shown in  FIG. 2 , an image processing system  100  comprises at least a tile division generator  110 , an encoder  120 , a frame buffer  130 , and a decoder  140 . The tile division generator  110  is configured to receive an input image from the operating system (OS) and, according to the type of the input image, determine whether it needs to access partial image information (such as pixel values, etc.) corresponding from the frame buffer  130  to generate image information corresponding to the next frame. The types of the images output by the operating system include a complete image corresponding to the entire frame or an image corresponding only to a partial updated region. In response to the input image being an image corresponding to a partial updated region, the operating system further outputs location information corresponding to the partial updated region. The encoder  120  is configured to compress and encode the image information output by the tile division generator  110  and store it into the frame buffer  130 . The decoder  140  is configured to access image data corresponding to the next frame from the frame buffer  130  and decode the image data for a displayer (not shown) to display an image corresponding to the next frame. In addition, in response to the input image being the image corresponding to the partial updated region, the decoder  140  further receives the location information corresponding to the partial updated region from the tile division generator  110 , obtains location information corresponding to a non-updated region according to the received location information to decode image information corresponding to the non-updated region, and transmits the decoded image information back to the tile division generator  110 . It should be noted that the image processing system  100  may further comprise other components, and the configuration of the components may vary from system to system and may be presented in various different manners, which is not limited to the example of  FIG. 2 . In addition, the tile division generator  110  can be implemented by a logic circuit. 
     According to an embodiment of the invention, in response to the input image received by the tile division generator  110  being a complete image, the tile division generator  110  sets the size of the tile to be the same as the size of the complete image and outputs the input image to the encoder  120 . Then, the encoder  120  compresses and encodes the input image to generate image data corresponding to the input image and stores it into the frame buffer  130 . Finally, when the image corresponding to the next frame is displayed, the decoder  140  can decode the image data stored in the frame buffer  130  to obtain image information corresponding to the next frame. 
     According to another embodiment of the present invention, in response to the input image, which is received by the tile division generator, corresponding to a partial updated region and the partial updated region coinciding with the divided tile or the combination of the divided tiles of the current frame, the tile division generator  110  transmits location information corresponding to the partial updates region to the decoder  140 , so that the decoder  140  can calculate location information corresponding to the non-updated region according to the location information corresponding to the partial updates region to access image data corresponding to the non-updated region from the frame buffer  130  and decode it. Then, the decoder  140  transmits the image information which is obtained after the decoding and corresponds to the non-updated region back to the tile division generator  110 , so that the tile division generator  110  can combine the image information corresponding to the non-updated region and the image information of the input image to form image information corresponding to the next frame and store it into the frame buffer  130 . Wherein, since the image information corresponding to the partial updated region is different from the image information of the previous frame, the encoder  120  re-compresses and re-encodes the input image. In addition, since the image information corresponding to the non-updated region is the same as the image information of the previous frame, that is, the correlation between the primitives during encoding does not change, the encoder  120  does not need to re-encode the non-updated region, thereby increasing the efficiency of image compression. 
     According to another embodiment of the present invention, in response to the input image corresponding to the partial updated region and the partial updated region not coinciding with the divided tile or the combination of the divided tiles of the current frame, the tile division generator  110  re-perform the tile division according to the size and location of the partial updated region. For example, as shown in  FIG. 3A , in the image corresponding to the current frame, the tile division generator  110  has divided the entire image  300  into a plurality of strips  310   a - 310   n  with the same height (as shown in  FIG. 3A ) and performed the compression and encoding for each strip. However, since the height of the new partial updated region is smaller than the height of the strips  310   a - 310   n , the tile partition division generator  110  further divides the strip where the partial updated region is located and re-performs the compression and encoding for the strip where the partial updated region is located. 
     For example, in response to the partial updated region being located in the strip  310   a  and having a height less than the height of the strip  310   a , the tile division generator  110  further divides the strip  310   a  into a plurality of sub-strips  320   a - 320   n  with the same height (as shown in  FIG. 3B , in this embodiment, the strip  310   a  is divided into three sub-strips  320   a - 320   c ). The tile division generator  110  then determines whether the height of the divided sub-strips  320   a - 320   n  is the same as the height of the partial updated region and whether the partial updated region coincides with at least one of the divided sub-strips  320   a - 320   n . In the embodiment, if the height of the partial updated region is exactly the same as the height of each of the sub-strips  320   a - 320   c  and the partial updated region coincides with the sub-strip  320   b , the tile division generator  110  determines whether the width of the partial updated region is the same as the width of the sub-strip  320   b . For example, as shown in  FIG. 3C , the partial updated region is at the location  330   b , but the width of the partial updated region is still smaller than the width of the sub-strip  320   b , so the tile division generator  110  divides the sub-strip  320   b  into three tiles  330   a - 330   c  based on the location of the partial updated region. Finally, after the tile division generator  110  completes the division of the tiles, the encoder  120  compresses and re-encodes image information corresponding to the non-updated region and the image information of the partial updated region corresponding to the input image and stores the image data which is obtained after the re-encoding into the frame buffer  130 . Wherein, the image information corresponding to the non-updated region is the image information of the corresponding location in the current frame which is previously read from the frame buffer  130  by the decoder  140 . 
     It is worth noting that when the tile division generator  110  performs the division of the tiles on strips or sub-strips based on the width of the partial updated region, the tile size corresponding to the partial updates region may be different from the size of other tiles. In other words, when the tile division generator  110  performs vertical division, it is not necessary to perform the tile division by the same size of tiles. In addition, after the tile division generator  110  completes the division of the tiles, the tile division generator  110  further stores location information corresponding to each tile in a tile information recording table which is provided for the tile division generator  110  to determine whether it needs to re-perform the tile division based on the position of the next input image. 
       FIGS. 4A and 4B  are flowcharts showing an image compression method according to an embodiment of the present invention. In S 401 , the tile division generator  110  receives an input image and location information corresponding to the input image. In S 402 , the tile division generator  110  determines whether the input image is a complete image. In response to the input image being a complete image, the method proceeds to step S 403 , and the tile division generator  110  sets the size of the tile to be the same as the size of the complete image. The tile division generator  110  compresses and encodes the tile through the encoder  120  to obtain image data corresponding to the next frame (step S 404 ) and stores the obtained image data into the frame buffer  130  (step S 405 ). 
     On the contrary, in response to the input image corresponding to a partial updated region, the method proceeds to step S 406 . In step S 406 , the tile division generator  110  determines whether the partial updated region corresponding to the input image coincide with at least one or the combination of the tiles according to the size and the locations of the tiles recorded in a tile information recording table. Wherein, in response to the partial updated region coinciding with at least one or the combination of the tiles, the method proceeds to step S 407 . In step S 407 , the tile division generator  110  transmits the location corresponding to the partial updated region to the decoder  140 , so that the decoder  140  calculates a location corresponding to a non-updated region according to the location corresponding to the partial updates region to access image data corresponding to the non-updated region from the frame buffer  130 . In step S 408 , the encoder  120  compresses and encodes the image information corresponding to the input image to obtain image data corresponding to the partial updated region. In step S 409 , the encoder  120  stores the image data corresponding to the partial updated region and the image data corresponding to the non-updated region into the frame buffer  130 . 
     However, in response to the partial updated region coinciding with at least one or the combination of the tiles, the method proceeds to step S 410 . In step S 410 , the tile division generator  110  re-performs the tile division based on the size of the partial update region, so that the tile coincides with the partial updated region. In step S 411 , for the non-updated region, the tile division generator  110  further calculates the location of the non-updated region according to the location of the partial updated region, so as to access the image data corresponding to the non-updated region from the frame buffer  130  through the decoder  140 . In step S 412 , the encoder  120  re-compresses and re-encodes the input image and the image information corresponding to the non-updated region to obtain image data corresponding to the partial updated region and image data corresponding to the non-updated region. Finally, in step S 413 , the encoder  120  stores the image data corresponding to the partial updated region and the image data corresponding to the non-updated region into the frame buffer  130  for the decoder  140  to perform decoding and output decoded image data to the displayer. 
       FIG. 5  is a block diagram showing an image processing system according to another embodiment of the present invention. As shown in  FIG. 5 , an image processing system  500  at least comprises an encoder  510 , a frame buffer  520 , and a decoder  530 . The encoder  510  at least comprises a multiplexer  511  and an encoding core  512 . The multiplexer  511  is configured to receive image information corresponding to a partial updated region and location information corresponding to the partial updated region and output the image information to the encoding core  512  according to the location of the partial updated region, so that the encoding core  512  can compress and encode the image information. The frame buffer  520  is used to store image data corresponding to one frame. The decoder  530  at least comprises a main decoding core  531  and a cooperative decoding core  532 . The main decoding core  531  is configured to access image data corresponding to the next frame from the frame buffer  520 , decode the image data, and output the image information, which is obtained after the decoding to a displayer (not shown). The cooperative decoding core  532  is configured to decode the tiles involved in the partial updated region and transmit the image information, which is obtained after the decoding, back to the multiplexer  511 . The multiplexer  511  may further comprise a buffer for temporarily storing the image information received from the cooperative decoding core  532 . 
     According to an embodiment of the invention, in response to the multiplexer  511  receiving an input image from an operating system (wherein the input image corresponds to a partial updated region), the cooperative decoding core  532  accesses image data of the tile corresponding to the partial updated region from the frame buffer according to location information of the input image (which is provided by the operating system), decodes it, and transmits image information, which is obtained after the decoding, back to the multiplexer  511 . Then, the encoding core  512  re-compresses and re-encodes the tile according to a location corresponding to the partial updated region and the image information corresponding to the tile transmitted by the cooperative decoding core  532  to refresh the image data which is original stored in the frame buffer  520 . For example, as shown in  FIG. 6 , the region  622  is a partial updated region, the region  621  is a non-updated region, and the area  620  is a tile corresponding to the partial updated region. According to the method of the present invention, in response to the multiplexer  511  receiving image information and location information corresponding to the region  622 , the cooperative decoding core  532  accesses image data corresponding to the tile  620  from the frame buffer  520  according to location information received from the operating system, decodes it, and transmits image information (that is, the pixels included in the tile  620 ), which is obtained after the decoding and corresponds to the tile  620 , back to the multiplexer  511 . After receiving the image information corresponding to the tile  620 , the multiplexer  511 , according to the position of the partial updated region, outputs the image information corresponding to the block  620  and the image information corresponding to the partial updated region to the encoding core  512  sequentially, so that the encoding core  512  can re-perform the compression and encoding on the pixels in the tile sequentially to generate image data corresponding to the next frame. 
     It should be noted that, in this embodiment, although the size of the partial updated region is smaller than the size of the tile, the encoder  510  does not change the size of the tile but re-performs the encoding on the tile corresponding to the partial updated region. 
       FIG. 7  is a flow chart showing an image compression method according to another embodiment of the present invention. In step S 701 , the multiplexer  511  receives an input image corresponding to the partial update area from the operating system. In step S 702 , the multiplexer  511  determines a tile corresponding to the input image and enables the cooperative decoding core  532  to access image data corresponding to the tile from the frame buffer  520  according to the tile corresponding to the input image. The cooperative decoding core  532  decodes the image data and transmits the decoded image data to the multiplexer  511  (step S 703 ). In step S 704 , the multiplexer  511  outputs the pixels to the encoding core  512  sequentially according to location information corresponding to the partial updated region, so that the encoding core  512  can re-compress and re-encode image information corresponding to the input image and image information corresponding to a non-updated region in the tile. Finally, in step S 705 , the encoding core  512  stores image data corresponding to the tile and image data corresponding to the non-updated region into the frame buffer  520  for the primary decoding core  531  to access and perform the decoding before the next frame is displayed. 
     It is to be noted that although the above method has been described on the basis of a series of steps or a flow chart of blocks, the present invention is not limited to the order of the steps. Some steps may be performed in a sequence different from the sequence of the remaining steps or the remaining steps can be performed simultaneously. In addition, those skilled in the art will understand that the steps shown in the flow chart are not exclusive. The flow chart may comprise other steps, or one or more steps of the flow chart may be deleted without departing from the scope of the invention. 
     In summary, according to the image processing system and the image compression method of the present invention, the present invention can flexibly support partial updated regions with various sizes while maximally retaining correlation between primitive values. In the cases where the compression ratio reaches ½ or even ⅓, the subjective vision is guaranteed to be not degraded. Moreover, when a partial updated region does not coincide with any existing tile, the tile division can be adaptively re-performed to achieve the best quality for the compressed decoded images. In addition, the hardware module involved in the present invention is simple in design, uses less gate circuits, and has low power consumption. Thus, the hardware module is suitable for various types of panel driving chips. 
     While the invention has been described by way of example and in terms of the preferred embodiments, it should be understood that the invention is not limited to the disclosed embodiments. On the contrary, it is intended to cover various modifications and similar arrangements (as would be apparent to those skilled in the art). Therefore, the scope of the appended claims should be accorded the broadest interpretation so as to encompass all such modifications and similar arrangements.