Method and system for high bit depth and high dynamic range image compression

By applying color transformation and DCT transformation in the computing device and processing images using an HDR-compatible quantization matrix, the HDR image quality and bit depth problems are solved, and efficient image compression and decompression effects are achieved.

CN119137942APending Publication Date: 2024-12-13GOOGLE LLC
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202280095656.9
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2022-03-15
Publication Date
2024-12-13

AI Technical Summary

Technical Problem

The prior art is difficult to effectively process high dynamic range (HDR) images, especially in terms of bit depth and color banding, resulting in image quality degradation and error accumulation.

Method used

By receiving images in the frame buffer of the computing device and applying linear transformations, including color transformation and discrete cosine transformation (DCT), and quantizing the frequency components, the error is reduced, and a compressed image of high-bit depth is generated. Inverse quantization and inverse transformation are used to generate high-quality decompressed images using a quantization matrix compatible with high dynamic range image format.

Benefits of technology

Improve image quality, reduce color banding, expand bit depth support, enhance image processor compression and decompression capabilities, suitable for traditional and HDR image formats.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119137942A_ABST
    Figure CN119137942A_ABST
Patent Text Reader

Abstract

An example method includes receiving, in a frame buffer of a computing device, an image captured by an image capture device of the computing device. The image includes a first number of bits. The method includes applying a linear transformation to the received image based on a first number of bits. The linear transformation includes (i) a color transformation, and (ii) a discrete cosine transform (DCT) to generate a spectrum including one or more frequency components. The method includes quantizing respective amplitudes of one or more frequency components. The number of quantization steps to be applied is configured to reduce errors in the one or more frequency components. The method includes generating, by the image processor and based on the quantization, a compressed image including the second number of bits. The second number of bits is greater than a compressed bit capacity associated with the image processor.
Need to check novelty before this filing date? Find Prior Art

Description

Background Art

[0001] Many modern computing devices, including mobile phones, personal computers, and tablet computers, include image capture devices, such as still cameras and / or video cameras. Image capture devices can capture images, such as images including people, animals, landscapes, and / or objects. Images can be encoded, stored, and / or sent in an encoded format. Images can be received in an encoded format over a network, decoded, and displayed by a display panel of a computing device. Summary of the invention

[0002] In one aspect, a computing device may be configured to store high bit depth and high dynamic range images.

[0003] In a first aspect, a computer-implemented method is provided. The method includes receiving an image captured by an image capture device of a computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The method includes applying a linear transform to the received image based on the first bit number, wherein the linear transform includes: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a frequency spectrum including one or more frequency components. The method includes quantizing the respective amplitudes of the one or more frequency components, wherein the number of quantization steps to be applied is configured to reduce errors in the one or more frequency components. The method includes generating, by an image processor and based on the quantization, a compressed image including a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.

[0004] In a second aspect, a system is provided. The system may include one or more processors. The system may also include a data storage device, wherein the data storage device has computer executable instructions stored thereon, and the computer executable instructions, when executed by the one or more processors, cause the system to perform operations. The operations may include receiving an image captured by an image capture device of a computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The operations may also include applying a linear transform to the received image based on the first bit number, wherein the linear transform includes: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a spectrum including one or more frequency components. The operations may also include quantizing the corresponding amplitudes of the one or more frequency components, wherein the number of quantization steps to be applied is configured to reduce errors in the one or more frequency components. The operations may additionally include generating, by the image processor and based on the quantization, a compressed image including a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.

[0005] In a third aspect, a device is provided. The device includes one or more processors operable to perform operations. The operations may include receiving an image captured by an image capture device of a computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The operations may also include applying a linear transform to the received image based on the first bit number, wherein the linear transform includes: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a spectrum including one or more frequency components. The operations may also include quantizing the corresponding amplitudes of the one or more frequency components, wherein the number of quantization steps to be applied is configured to reduce errors in the one or more frequency components. The operations may additionally include generating, by an image processor and based on the quantization, a compressed image including a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.

[0006] In a fourth aspect, an article of manufacture is provided. The article of manufacture may include a non-transitory computer-readable medium having program instructions stored thereon, the program instructions causing the computing device to perform operations when executed by one or more processors of the computing device. The operations may include receiving an image captured by an image capture device of the computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The operations may also include applying a linear transform to the received image based on the first bit number, wherein the linear transform includes: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a spectrum including one or more frequency components. The operations may also include quantizing the corresponding amplitudes of the one or more frequency components, wherein the number of quantization steps to be applied is configured to reduce errors in the one or more frequency components. The operations may additionally include generating, by an image processor and based on the quantization, a compressed image including a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.

[0007] In a fifth aspect, a computer-implemented method is provided. The method may include receiving an image captured by an image capture device of a computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The method may also include inverse quantizing the corresponding amplitudes of one or more frequency components, wherein the inverse quantization is based on an inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein the number of inverse quantization steps to be applied is configured to reduce errors in the one or more frequency components. The method may also include applying an inverse linear transform to the received image based on the first bit number, wherein the inverse linear transform includes: (i) an inverse color transform, and (ii) an inverse discrete cosine transform (DCT). The method may also include generating, by an image processor and based on the application of the inverse linear transform, a decompressed image including a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor. The method may additionally include providing the decompressed image via a display panel of the computing device.

[0008] In a sixth aspect, a system is provided. The system may include one or more processors. The system may also include a data storage device, wherein the data storage device has computer executable instructions stored thereon, and the computer executable instructions, when executed by the one or more processors, cause the system to perform operations. The operations may include receiving an image captured by an image capture device of a computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The operations may also include inverse quantizing the corresponding amplitudes of one or more frequency components, wherein the inverse quantization is based on an inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein the number of inverse quantization steps to be applied is configured to reduce errors in the one or more frequency components. The operations may also include applying an inverse linear transform to the received image based on the first bit number, wherein the inverse linear transform includes: (i) an inverse color transform, and (ii) an inverse discrete cosine transform (DCT). The operations may also include generating, by an image processor and based on the application of the inverse linear transform, a decompressed image including a second bit number, wherein the second bit number is greater than the compressed bit capacity associated with the image processor. The operations may additionally include providing the decompressed image via a display panel of the computing device.

[0009] In a seventh aspect, a device is provided. The device includes one or more processors operable to perform operations. The operations may include receiving an image captured by an image capture device of a computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The operations may also include inverse quantizing the corresponding amplitudes of one or more frequency components, wherein the inverse quantization is based on an inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein the number of inverse quantization steps to be applied is configured to reduce errors in the one or more frequency components. The operations may also include applying an inverse linear transform to the received image based on the first bit number, wherein the inverse linear transform includes: (i) an inverse color transform, and (ii) an inverse discrete cosine transform (DCT). The operations may also include generating, by an image processor and based on the application of the inverse linear transform, a decompressed image including a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor. The operations may additionally include providing the decompressed image via a display panel of the computing device.

[0010] In an eighth aspect, an article of manufacture is provided. The article of manufacture may include a non-transitory computer-readable medium having program instructions stored thereon, the program instructions causing the computing device to perform operations when executed by one or more processors of a computing device. The operations may include receiving an image captured by an image capture device of the computing device in a frame buffer of the computing device, wherein the image includes a first bit number. The operations may also include inverse quantizing the corresponding amplitudes of one or more frequency components, wherein the inverse quantization is based on an inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein the number of inverse quantization steps to be applied is configured to reduce errors in the one or more frequency components. The operations may also include applying an inverse linear transform to the received image based on the first bit number, wherein the inverse linear transform includes: (i) an inverse color transform, and (ii) an inverse discrete cosine transform (DCT). The operations may also include generating, by an image processor and based on the application of the inverse linear transform, a decompressed image including a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor. The operations may additionally include providing the decompressed image via a display panel of the computing device.

[0011] Other aspects, embodiments and embodiments will become apparent to those of ordinary skill in the art by reading the following detailed description, with appropriate reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0012] Figure 1 A computing device according to an example embodiment is shown.

[0013] Figure 2An example image encoder according to an example embodiment is shown.

[0014] Figure 3 An example image decoder according to an example embodiment is shown.

[0015] Figure 4 An image compression method according to an example embodiment is shown.

[0016] Figure 5 An image decompression method according to an example embodiment is shown. DETAILED DESCRIPTION

[0017] Example methods, devices, and systems are described herein. It should be understood that the words "example" and "exemplary" are used herein to mean "serving as an example, instance, or illustration." Any embodiment or feature described herein as "example" or "exemplary" is not necessarily to be construed as being preferred or advantageous over other embodiments or features. Other embodiments may be utilized, and other changes may be made, without departing from the scope of the subject matter presented herein.

[0018] Accordingly, the example embodiments described herein are not intended to be limiting.Aspects of the present disclosure as generally described herein and as illustrated in the accompanying drawings may be arranged, substituted, combined, divided and designed in a wide variety of different configurations, all of which are contemplated herein.

[0019] In addition, unless the context suggests otherwise, the features shown in each of the figures can be used in combination with each other. Therefore, the drawings should generally be viewed as constituent aspects of one or more overall embodiments, but it should be understood that not all of the features shown are necessary for each embodiment.

[0020] I. Overview

[0021] As image capture devices, such as cameras, become more common, they can be used as standalone hardware devices or integrated into various other types of devices. For example, still and video cameras are now often included in wireless communication devices (e.g., mobile phones), tablet computers, laptop computers, video game interfaces, home automation devices, and even automobiles and other types of vehicles.

[0022] Captured digital images can be represented as one-dimensional, two-dimensional or multi-dimensional pixel arrays. Each pixel can be represented by one or more values, and the one or more values ​​can encode the color and / or brightness of the corresponding pixel. For example, a possible encoding uses the YCbCr color model. In this color model, the Y channel can represent the brightness of the pixel, and the Cb and Cr channels can represent the blue chromaticity and red chromaticity of the pixel respectively. For example, each of these channels can take a value from 0 to 255 (that is, the range of tones that a single 8-bit byte can provide). Therefore, if the pixel is black or close to black, the brightness of the pixel can be represented by a value of 0 or close to zero, and if the pixel is white or close to white, it is represented by a value of 255 or close to 255.

[0023] The YCbCr color model is only one possible color model, and embodiments herein may employ other color models, such as a red-green-blue (RGB) color model or a cyan-magenta-yellow-black (CMYK). In addition, pixels in an image may be represented in a variety of file formats, including raw (uncompressed) formats, or compressed formats such as Joint Photographic Experts Group (JPEG), Portable Network Graphics (PNG), Graphics Interchange Format (GIF), etc.

[0024] Some pixel encodings (including YCbCr color model) use 8 bits to represent the brightness of each pixel. Doing so is called LDR imaging. Therefore, only 256 levels of brightness may be supported. However, real-world scenes usually show a wider dynamic brightness range than can be reasonably represented by LDR imaging. For example, a scene in front of a window in a dark room where an individual stands may include both extremely bright areas and extremely dark areas. However, using LDR imaging to encode the image of such a scene may cause loss of details in bright areas and / or dark areas. High dynamic range (HDR) imaging has been proposed as a way to compensate for the defects of LDR imaging.

[0025] The present application relates to an imaging system that extends the capabilities of the legacy Joint Photographic Experts Group (JPEG) format to store images captured by a camera with a given bit depth at a bit depth higher than 8 bits. Although the legacy JPEG is an existing standard for storing digital images, it has some disadvantages. For example, the legacy JPEG does not support compressing images with higher bit depths (9 to 16 bits) to a bit depth higher than 8 bits (such as 12 bits), and is not designed for high dynamic range (HDR) imaging.

[0026] The imaging system described herein may provide a system for encoding an image in a JPEG format and a system for decoding an image in a JPEG format. An HDR display for an image may extend the range of user experiences when viewing an image. Although some HDR imaging and display systems (e.g., such as an HDR10+ system or Systems) can display and capture HDR content, but example embodiments of the imaging systems described herein can achieve higher bit depths by leveraging aspects of the quantization step performed as part of the JPEG standard on traditional imaging and display systems.

[0027] Some image formats, such as JPEG XT, can capture HDR content by applying a series of partial backward extensions to the old JPEG standard. In addition, for example, JPEG XT uses a new inefficient encoding in which old image decoders cannot benefit from the information added in the extended format. There are also other image capture formats that are not backward compatible with the old JPEG standard, such as JPEG XL, AV1 Image File Format (AVIF) with a maximum bit depth of 12, Better Portable Graphics (BPG), High Efficiency Image Format (HEIF) with a maximum bit depth of 10, etc.

[0028] Some of the techniques described herein address the Mach banding problem associated with 8-bit dynamics of HDR images. For example, when using 8-bit dynamics, the points at which banding levels occur may be farther apart from each other, and the banding of adjacent steps may become more noticeable to the image viewer. In some embodiments, an 8-bit JPEG with very high quality, low noise images may exhibit color banding. Color banding may be perceptible in low dynamic range images, and may be exacerbated when using high dynamic range. Using more bits per component (e.g., such as 10 bits or more) may reduce or eliminate color banding.

[0029] Therefore, there is a need for an imaging system that enables legacy encoders and decoders to process HDR images with higher bit depths. For example, an 8-bit captured image can be encoded as a 12-bit image. In addition, for example, the prior art enables 14-bit images to be compressed to 8 bits. However, as described herein, a 14-bit image can be retained as a source image and encoded as a 12-bit image while retaining at least some of the information included in the 14-bit format. In addition, for example, the decoded image can be in an 8-bit format, a 10-bit format, a 12-bit format, etc.

[0030] In addition, for example, an image can be decoded and displayed in an HDR format. For example, an 8-bit image can be decoded and displayed in a 12-bit format. In the examples described herein, one or more quantization steps of the JPEG standard can be removed. In addition, for example, the frame buffer and intermediate image results can be modeled based on higher bit depth values, and in some instances, modeled by utilizing floating points. Modifications to color space conversion can also be implemented, for example, based on an International Color Consortium (ICC) profile. Beneficially, when an ICC profile for HDR uses a lookup table (LUT), the values ​​in the LUT can be interpolated to reduce quantization errors.

[0031] II. Example Device

[0032] Figure 1 A computing device 100 is shown according to an example embodiment. Computing device 100 includes a user interface module 105, a display panel 110, an image capture component 115, an image encoder 120, an image decoder 125, a frame buffer 130, a DCT transform circuitry 135, a color transform circuitry 140, a network interface 145, and a controller 150. In some examples, computing device 100 may take the form of a desktop device, a server device, or a mobile device.

[0033] The user interface module 105 is operable to send data to and / or receive data from an external user input / output device. For example, the user interface module 105 can be configured to send data to and / or receive data from a user input device such as a touch screen, a computer mouse, a keyboard, a keypad, a touch pad, a trackball, a joystick, a voice recognition module, and / or other similar devices. The user interface module 801 can also be configured to provide output to a user display device such as a display panel 110. In some examples, the user interface module 105 can be used to provide a graphical user interface (GUI) for utilizing the computing device 100.

[0034] The display panel 110 may be configured to provide output signals to a user by way of one or more screens (including touch screens), cathode ray tubes (CRTs), liquid crystal displays (LCDs), light emitting diodes (LEDs), organic LEDs (OLEDs), displays using digital light processing (DLP) technology, printers, light bulbs, and / or other similar technologies (now known or later developed). The display panel 110 may also be configured to generate audible outputs such as with speakers, speaker jacks, audio output ports, audio output devices, headphones, and / or other similar devices. The display panel 110 may also be configured with one or more tactile components that may generate tactile outputs such as vibrations and / or other outputs that may be detected by touch and / or physical contact with the computing device 100.

[0035] In an example embodiment, the display panel 110 is configured as a color display that utilizes multiple color channels to generate an image. For example, the display panel 110 may utilize red, green, and blue (RGB) color channels, or cyan, magenta, yellow, and black (CMYK) color channels, among other possibilities. In some embodiments, the display panel 110 is configured to adjust the gamma characteristics of each of the color channels of the display panel 110. Additionally, for example, the display panel 110 may be configured to adjust the color characteristics of each of the color channels of the display panel 110.

[0036] In some embodiments, the display panel 110 may include a plurality of pixels arranged in a pixel array defining a plurality of rows and columns. For example, if the display panel 110 has a resolution of 1024×600, each column of the array may include 600 pixels, and each row of the array may include 1024 groups of pixels, where each group includes red, blue, and green pixels, so there are a total of 3072 pixels per row. In an example embodiment, the color of a particular pixel may depend on a color filter disposed above the pixel.

[0037] In an example embodiment, the display panel 110 may receive image data from the controller 150 and correspondingly send a signal to its pixel array to display the image data. For example, the display panel 110 may provide such image data as a display, such as an image, a background, a wallpaper, a user interface, one or more virtual objects, a scroll, a video, a home screen, a lock screen, a menu, an application, a game, etc. In order to send the image data to the display panel 110, the controller 150 may first convert the digital image into numerical data that can be interpreted by the display panel 110. For example, the digital image may contain various image pixels corresponding to the corresponding pixels of the display panel 110. Each pixel of the digital image may have a numerical value representing the brightness (luminance) (e.g., brightness or darkness) of the digital image at a specific spot (spot). These numerical values ​​may be referred to as "gray levels". The number of gray levels may depend on the number of bits used to represent the numerical value. For example, if 8 bits are used to represent the numerical value, the display panel 110 may provide 256 gray levels, wherein the numerical value 0 corresponds to full black and the numerical value 255 corresponds to full white. As a more specific example, the controller 150 may provide a digital image stream containing 24 bits to the display panel 110 , where 8 bits correspond to grayscale for each of the red, green, and blue color channels of a pixel group.

[0038] The image capture component 115 may include one or more image capture devices, such as cameras and / or video cameras, that are configured to capture light and record the captured light in one or more images; that is, the image capture component 115 may generate images of the captured light. The one or more images may be one or more still images and / or one or more images utilized in video imagery. The image capture component 115 may capture light and / or electromagnetic radiation emitted as visible light, infrared radiation, ultraviolet light, and / or as one or more other frequencies of light.

[0039] Image encoder 120 may include circuitry for performing image compression to convert an image into a compressed format, such as JPEG. For example, one or more blocks of pixels may be compressed using a compression algorithm, such as a lossy image compression algorithm, such as quantized DCT encoding. Image encoder 120 may include circuitry for sending the compressed image to another device via a network interface, such as network interface 145. In some embodiments, image encoder 120 may include a JPEG encoder, such as a non-color managed JPEG encoder, a color managed JPEG encoder, and / or an HDR encoder.

[0040] Image decoder 125 may include circuitry for performing image decompression to convert an image from a compressed format (such as JPEG) to an uncompressed format (such as a bitmap). For example, one or more blocks of pixels may be decompressed using a decompression algorithm (such as, for example, baseline decoding). Image decoder 125 may include circuitry for receiving a decompressed image from another device via a network interface (such as, for example, network interface 145). In some embodiments, image decoder 125 may include a JPEG decoder, such as a non-color managed JPEG decoder, a color managed JPEG decoder, and an HDR decoder.

[0041] Frame buffer 130 may be a part of a memory that can drive the display of an image or video. In some embodiments, frame buffer 130 may be a part of a memory that can drive the encoding of an image or video. For example, frame buffer 130 may include data related to pixels in an image or video frame. In some embodiments, data may include color values ​​of pixels in the image. In some embodiments, frame buffer 130 may include a circuit system for converting an in-memory bitmap of an image into a format that can be displayed by display panel 110. In some embodiments, frame buffer 130 may include a circuit system for converting an original image in a memory into a bitmap of an image for storage or transmission. Typically, the amount of memory in frame buffer 130 may depend on factors such as color depth, resolution, etc. of an image or video.

[0042] DCT transform circuitry 135 may include circuitry for performing a discrete cosine transform (DCT) to compress an image, and / or circuitry for performing an inverse DCT to decompress an image. In general, the term "DCT" as used herein may be any transform applied in signal processing and, in particular, in the processing of digital images.

[0043] Color transform circuitry 140 may include circuitry for performing color transforms and / or the inverse of color transforms. For example, each pixel of an image may be associated with a vector of three values ​​(e.g., corresponding to red, green, and blue (RGB) components). Typically, each input image and output image is associated with a vector color of color components. Color components may also be described as linear transforms of RGB, such as, for example, YUV (Y stands for brightness, and U, V stand for chrominance), CMY (standing for cyan, magenta, and yellow), etc.

[0044] The network interface 150 may include one or more wireless interfaces and / or wired interfaces that may be configured to communicate via a network. The wireless interface may include one or more wireless transmitters, receivers, and / or transceivers, such as Bluetooth. TM Transceiver, Transceiver, Wi-Fi TM Transceiver, WiMAX TM The wired interface may include one or more wired transmitters, receivers, and / or transceivers, such as an Ethernet transceiver, a Universal Serial Bus (USB) transceiver, or a similar transceiver that is configurable to communicate via a twisted pair, a coaxial cable, a fiber optic link, or a similar physical connection to a wired network.

[0045] In some embodiments, the network interface 150 can be configured to provide reliable, protected and / or authenticated communications. For each communication described herein, information for facilitating reliable communications (e.g., guaranteed message delivery) can be provided, possibly as part of a message header and / or message trailer (e.g., packet / message ordering information, encapsulation header and / or encapsulation trailer, size / time information, and transmission verification information (such as a cyclic redundancy check (CRC) and / or parity check value)). One or more cryptographic protocols and / or algorithms can be used to protect communications (e.g., encode or encrypt communications) and / or decrypt / decode communications, such as, but not limited to, the Data Encryption Standard (DES), the Advanced Encryption Standard (AES), the Rivest-Shamir-Adelman (RSA) algorithm, the Diffie-Hellman algorithm, a secure socket protocol (such as a secure socket layer (SSL) or a transport layer security (TLS)), and / or a digital signature algorithm (DSA). Other cryptographic protocols and / or algorithms may be used to protect communications (and then decrypt / decode communications) as well or in addition to those listed herein.

[0046] The controller 150 may include one or more processors 152 and a memory 154. The processor 152 may include one or more general-purpose processors and / or one or more special-purpose processors (e.g., a display driver integrated circuit (DDIC), a digital signal processor (DSP), a tensor processing unit (TPU), a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), etc.). The processor 152 may be configured to execute computer-readable instructions contained in the memory 154 and / or other instructions as described herein.

[0047] Memory 154 may include one or more non-transitory computer-readable storage media that may be read and / or accessed by processor 152. The one or more non-transitory computer-readable storage media may include volatile and / or non-volatile storage components that may be fully or partially integrated with at least one of processors 152, such as optical, magnetic, organic, or other memory or disk storage devices. In some examples, memory 154 may be implemented using a single physical device (e.g., one optical, magnetic, organic, or other memory or disk storage unit), while in other examples, memory 154 may be implemented using two or more physical devices. In some embodiments, memory 154 may include frame buffer 130.

[0048] In an example embodiment, the processor 152 is configured to execute instructions stored in the memory 154 to perform operations.

[0049] The operation may include receiving an image captured by an image capture device (e.g., image capture component 115) of a computing device (e.g., computing device 100) in a frame buffer (e.g., frame buffer 130) of the computing device (e.g., computing device 100). The image may include a first digit, for example, 8, 10, 12, 14, 16, etc. In some embodiments, an 8-bit frame in JPEG format may be segmented and decoded into an 8-bit frame buffer. However, if the decoding is to a 16-bit frame buffer, certain aspects of the encoding stage may be revealed. For example, during the encoding stage, the encoding step may affect the coefficients. For example, when large units are mapped to the same value and a pixel is quantized to a value of 120, then the large unit is likely to be added 4 bits and is based on a value that will be 64×120. The next value after 120 will be 121, and it will correspond to the value 64×121. Therefore, during encoding, an 8×8 block will be reduced to 12 bits. Thus, the last four bits of the 12 bits will always be zero in flat regions, and an 8-bit quantization will be mapped into a 12-bit signal. This would indicate that the encoding is not being performed efficiently, and in the process, any benefit of a greater bit depth will be lost. In some embodiments, the frame buffer may be associated with an image processing application (e.g., such as a web browsing application).

[0050] For example, the base images encoded in the JPEG1 format are described as 8-bit images in their corresponding specifications. However, the DC coefficient (which has zero frequency in both dimensions) is encoded with 12 bits. The AC coefficients (the remaining 63 coefficients with non-zero frequencies) are 11 bits and the sign. Therefore, if each coefficient is rounded with a certain error, the total error obtained may be 64*0.5, i.e. 32, which corresponds to 5 bits of lost precision. This results in a total worst-case precision of 12-5, i.e. 7 bits, or 11-5, i.e. 6 bits for AC. In practice, more bits can be recovered during compression. For example, about 10 or 10.5 bits can be recovered.

[0051] Typically, a frame buffer (e.g., frame buffer 130) can be stored in two different ways. In some embodiments, pixel colors can be interlaced. For example, the pixel colors can be in the following configuration: red pixels, then green pixels, then blue pixels, and the red, green, and blue patterns are repeated in scan line order until the image ends. Such a configuration can first cover the first row of the image, then the second row, and so on, until the last row. In some embodiments, the frame buffer can be stored in a way that the planes are separated. For example, red pixels, green pixels, and blue pixels can be continuous and completely cover the image. The selection of a specific storage type for a frame buffer can be based on how a central processing unit (CPU) (e.g., such as processor 152) can process an image. In some embodiments, the frame buffer can have a size greater than 8 bits. In some embodiments, the frame buffer can be an 8-bit or 9-bit frame buffer.

[0052] In some embodiments, the frame buffer can be a 32-bit floating point image buffer. Such an implementation can result in higher speeds for encoding and decoding. Typically, the resulting speed can exceed the speed of modern formats such as JPEG XL or AVIF. In some embodiments, this can allow HDR to be more practically deployed on legacy hardware and / or on CPU-constrained back-end devices. A frame buffer with a 32-bit floating point image buffer can be associated with an 8-bit data type, such as an unsigned integer 8-bit. In some embodiments, there may be 16 bits or floating points, such as floating point values. In the case of floating point values, the discretization step may become meaningless. In addition, for example, in the case of 16 bits, the error can be limited to a very small epsilon neighborhood.

[0053] Typically, a floating point image buffer can be implemented when the CPU is configured to process floating point (e.g., such as on a desktop computer.) However, on a mobile device, the CPU is less likely to be configured to process floating point, and in such cases, the same calculations can be performed with 16-bit integers.

[0054] The operation may also include applying a linear transform to the received image based on the first digit, wherein the linear transform includes: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a spectrum including one or more frequency components. For example, the controller 150 may cause the color transform circuit system 140 to perform the color transform. In addition, for example, the controller 150 may cause the DCT transform circuit system 135 to perform a discrete cosine transform (DCT). The color transform may be a transform of an 8-bit image to an 8-bit or 16-bit image.

[0055] In some embodiments, applying the DCT in the JPEG format causes the 64-dimensional space to be transformed in a specific way so that in the presence of independent errors in the correction vector points, one or more random variables can be added to the final signal together with the associated weights. Typically, during compression, the maximum allowed error can be half of a unit step (e.g., integral quantization). Therefore, for 64 unit steps, the maximum allowed error is 32, and this can be mapped to 5 bits. However, in practice, the maximum error is usually not reached. For example, all errors will need to have the same sign, and such an occurrence is the same as 2 63 In some embodiments, the DCT transform may be applied first and then the color transform. In some embodiments, the color transform may be applied before the DCT transform.

[0056] In some embodiments, the chroma plane may include a u plane and a v plane, and the operation may include performing subsampling of the chroma plane by subsampling only the u plane. In some embodiments, subsampling of the chroma plane may be performed between the application of the DCT transform and the color transform. Typically, image processing may involve subsampling of the u channel and the v channel, such as YUV 420 subsampling. In some embodiments, image processing may involve higher saturation and higher dynamic range. For example, for a bit depth greater than 8 bits, the u plane may be subsampled without subsampling the v plane. This may result in less vivid colors. However, such changes are less perceptible in the u channel. For example, changes in yellow and blue managed by the u channel are less perceptible than changes in red and green managed by the v channel.

[0057] The operation may also include quantizing the corresponding amplitudes of one or more frequency components. In some embodiments, quantization may include selecting a quantization matrix that is compatible with HDR, particularly for low frequency values. For portions of the image with gentler gradients, selecting a quantization step of 1 achieves 12-bit dynamics. In some embodiments, the quantization matrix may be compatible with one or more low frequency values ​​of HDR. In some embodiments, the quantization matrix may include an 8×8 DCT coefficient array. In addition to transforming as many components as possible into 0s that can be encoded with higher efficiency, the quantization matrix may be designed to provide higher resolution for more perceptible frequency components than for less perceptible components (e.g., lower frequencies relative to higher frequencies).

[0058] As described herein, the number of quantization steps to be applied can be configured to reduce errors in one or more frequency components. In some embodiments, perceptible color banding in the image can also be reduced. The elements in the quantization matrix can control the compression ratio, with larger values ​​producing higher compression. A typical quantization matrix (for 50% quality, as specified in the original JPEG standard) is as follows:

[0059]

[0060] In some embodiments, the entries in the first row and first column of the quantization matrix are integer values ​​D in the range from 1 to 7.

[0061]

[0062] The top left entry of the matrix is ​​the DC coefficient (also called the constant component) and defines the basic tone of the entire 8×8 block. The remaining 63 coefficients are AC coefficients (also called alternating current components). The advantage of DCT is the tendency to concentrate most of the signal in one corner of the result. In some embodiments, subsequent quantization steps can exacerbate this effect while reducing the overall size of the DCT coefficients, resulting in a signal that is more easily and efficiently compressed in the entropy stage. For example, for zero, JPEG can utilize run length encoding (RLE). RLE is a form of lossless data compression for sequences that include multiple occurrences of a value. For example, the value "0" can appear multiple times. Therefore, the sequence can be encoded to store the value once, thereby achieving a more efficient compression process.

[0063] In some embodiments, the value in the top left entry may be 1. Increasing the value to 2 may result in the loss of one of the bits. Typically, in high dynamic range images, it may be preferable to keep the top left entry smaller so that bits can be reserved for additional precision. In some embodiments, the quantization matrix may be modified as:

[0064]

[0065] Among them A 1 , A 2 , A 3 The value of may be in the range from 1 to 7. For example, the quantization matrix may be based on D=A 1 =A 2 =A 3 =1 is determined as follows:

[0066]

[0067] Typically, accuracy may not affect noisy areas; however, in parts of the image with slow gradients, accuracy may be very important. For example, when there are slow gradients in the signal, many components may be mapped to zero. In these parts of the slow gradient, the original coefficients are set to zero. Therefore, during quantization, no more errors may be added than when the components of these parts are treated as random variables. In parts where the gradient is flat, 12 bits of accuracy can be achieved. In parts where the gradient is smaller (for example, the gradient has a small slope), 10 bits of accuracy can be achieved. In some embodiments, a large number of coefficients can be allocated to active parts of the image. However, when the image block is highly active, changes in image characteristics are generally not easily discernible by the human eye. In contrast, in simpler or low-activity parts of the image (such as parts with slow movement), changes in image characteristics are generally discernible by the human eye.

[0068] For example, problems such as color banding may become perceptible. Typically, color banding may be caused by an additional discretization step performed during quantization. For example, in a depicted image that includes flat areas (e.g., the sky), color banding may cause new edges to appear within the flat areas. As another example, color banding may involve red-green banding in dark areas (e.g., due to psychovisual reasons). Typically, color banding is likely to occur when the color conversion involves a small number of colors (e.g., 8-bit color).

[0069] Sometimes a color profile (such as an ICC profile) can be defined by using an 8-bit lookup table that includes 256 values. Since the technology described herein is based on a bit depth greater than 8, 256 values ​​may not be enough. Therefore, as described herein, such a lookup table may need to be interpolated in high bit depth use. In some embodiments, the interpolation method can be a linear interpolation method, a quadratic interpolation method, or another method that generates additional continuous values ​​(e.g., more than 256 values ​​provided by the ICC profile) between the values ​​in the lookup table. As described herein, this additional discretization step can be removed. In addition, for example, more bits (e.g., 10.5 bits) can be used for the frame buffer. Therefore, an 8-bit JPEG is compressed with additional information related to the image. This also solves the color banding problem.

[0070] The operations may additionally include generating, by the image processor and based on the quantization, a compressed image including a second number of bits N, wherein the second number of bits is greater than a bit capacity for compression associated with the image processor. In some embodiments, the first number of bits M=8, and the second number of bits N=12. Careful calculation and data modeling may enable compression with additional information, thus relaxing the limitations of the original design of JPEG encoding. Because these techniques may be applied to all images, existing and new JPEG images may be updated to HDR processing.

[0071] Typically, quantization errors accumulate, and when the inverse DCT is applied during decoding, the quantization errors are added together. In some embodiments, the average value of the quantization errors may be zero; however, the average value of the absolute value of the quantization errors may accumulate, for example, as an accumulation of uniform random variables resulting in a Gaussian distribution. In some embodiments, the value of σ (sigma) may gradually increase as more errors are added. In such cases, the quantization error used to quantize high frequencies may be close to zero and may therefore be discretized to zero.

[0072] In general, reducing the number of intermediate quantization steps can improve image quality, and thus an 8-bit JPEG can be rendered with fewer bits of error. In the JPEG formalization, a certain number of errors occur when encoding, and a certain number of errors occur when decoding. Therefore, by reducing the number of intermediate quantization steps, fewer errors occur when decoding, thereby increasing the image accuracy of the existing signal. In some embodiments, quantization to 8 bits with a quantization error of half a bit can result in an observable change in image quality by performing modeling more accurately. In addition, for example, more bits become available for JPEG XL. For example, where a JPEG image is losslessly stored as a JPEG XL and then decoded into pixels based on the techniques described herein, the resulting image may appear to be of higher quality.

[0073] In some embodiments, the generation of the compressed image may include performing one of non-color managed compression, color managed compression, or HDR compression.

[0074] As described, processor 152 is configured to execute instructions stored in memory 154 to perform operations.

[0075] The operations may include receiving, in a frame buffer of the computing device, an image captured by an image capture device of the computing device, wherein the image includes a first bit number. In some embodiments, the first bit number M=8. In some embodiments, the image may have been captured by a camera at a high bit depth, and M=14. In some embodiments, the compressed image may have been generated based on the techniques described herein, and M=12.

[0076] The operations may also include dequantizing the corresponding amplitudes of the one or more frequency components, wherein the dequantization is based on an inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein the number of dequantization steps to be applied is configured to reduce errors in the one or more frequency components. For example, the quantization matrix may be provided as in Equations 2 to 4. In some embodiments, the dequantization may be based on a quantization matrix compatible with one or more low frequency values ​​of HDR.

[0077] The operations may also include applying an inverse linear transform to the received image based on the first digit, wherein the inverse linear transform includes: (i) an inverse color transform, and (ii) an inverse discrete cosine transform (DCT).

[0078] The operations may also include generating, by the image processor and based on application of the inverse linear transform, a decompressed image comprising a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.

[0079] The operations may additionally include providing the decompressed image via a display panel of the computing device. In some embodiments, the decoder of the computing device may be configured to perform non-color managed decompression, and the operations may further include interpreting the JPEG formatted image as a YUV image. The operations may further include applying a color space conversion that is hard-coded for stock JPEG images. For example, the display device may be an old JPEG decoder without any color management. Such a decoder may interpret the image as a YUV image and may apply a basic color space conversion that may be hard-coded for stock JPEG images.

[0080] In some embodiments, a decoder of a computing device may be configured to perform HDR decompression, and the operation may also include detecting one or more of: (i) a hybrid log-gamma (HLG) color curve, or (ii) metadata indicating the maximum luminosity of an image. For example, a decoder may be configured with an HLG color curve. Thus, there may be additional metadata specifying the maximum intensity or intensity range in an image. For example, the metadata may indicate that an image has a maximum intensity of 1000 nits or 2700 nits. In some embodiments, the image may have been stored in a manner such that a small number of high-brightness brightness values ​​may use values ​​of high nits values. Thus, the same HDR image may be viewed with a new device and interpreted as an HDR image with color management but with a low dynamic range.

[0081] In some embodiments, the decoder of the computing device may be configured to perform color management decompression. For example, the decoder may perform color management and may be configured to read an ICC profile that may be inside a JPEG image and may interpret the image based on the ICC profile. In some embodiments, the ICC profile may limit the preview of the image while the image is loading. In some embodiments, the image may be displayed as a top nail, and the top nail may not be color managed, and therefore incorrect colors may appear. However, when the top thumbnail of the image is selected, the displayed image may be color managed and the colors may be displayed correctly.

[0082] HDR imaging is an extension of ICC profile management. In some embodiments, HDR imaging can be achieved through a perceptual quantizer (PQ), which can generally refer to a new 'gamma' or transfer function for HDR. PQ can use the human eye as the basis of its perception of the relationship of signal to light. Therefore, PQ can be highly effective from very low light levels to very high light levels, and can be used to encode HDR images. In some embodiments, HDR imaging can be achieved through HLG.

[0083] In some embodiments, an ICC profile may include a lookup table (LUT) for color management. Unless the LUTs are continuous, they may introduce new sources of quantization. In an 8-bit JPEG, the lookup table may be configured to allow for 256 possible values ​​to look up from. However, for bit depths greater than 8, the values ​​in the lookup table may be interpolated. For example, piecewise linear or cubic interpolation may be applied.

[0084] In some embodiments, the display panel 110 may include a circuit system configured to apply a brightness profile and a color profile. For example, the memory may store one or more lookup tables as described herein. The values ​​in each lookup table may be determined based on the transmission sensitivity of the display panel 110 within an input grayscale range.

[0085] In some embodiments, the display panel 110 may include multiple color channels. The default gamma value may include corresponding register values ​​for the multiple color channels. In such embodiments, the multiple color channels may include red, green, and blue (RGB) color channels.

[0086] In some embodiments, the operation may further include applying tone mapping to the decompressed image prior to providing the decompressed image. For example, tone mapping may be applied to an HDR image to be displayed in a medium with a limited dynamic range. In some embodiments, global and / or local tone mapping may be applied to the decompressed image prior to display. Tone mapping is a set of processes that includes mapping pixel values ​​according to a predetermined function. Thus, for example, some camera devices map pixel values ​​from a linear space (where an increase or decrease of k units in the pixel value represents a proportional increase or decrease in brightness) to a non-linear space. Tone mapping may be performed automatically for artistic purposes, such as brightening mid-range pixel values. In any event, in order to reverse tone map the selected pixel back to a linear space, the inverse of the tone mapping function may be applied to the corresponding pixel value.

[0087] III. Example Image Encoding and Decoding

[0088] Figure 2An example image encoder according to an example embodiment is shown. For example, an image 205 may be received. Image 205 may be an image captured by an image capture device of a computing device and include a first bit number (e.g., an M-bit image). In some embodiments, the camera may be part of a computing device (e.g., a mobile device). Frame buffer 210 may store image 205 for processing. In some embodiments, frame buffer 210 may be configured to have a capacity for a bit depth greater than M (e.g., M=8 and frame buffer 210 has a capacity of 12 bits). In some embodiments, frame buffer 210 may be configured to have a capacity for a bit depth less than M (e.g., M=14 and frame buffer 210 has a capacity of 12 bits). In some embodiments, frame buffer 210 may be configured to have a capacity for processing floating points.

[0089] The linear transformer 215 may apply a linear transformation to the image 205 to generate a spectrum including one or more frequency components. For example, the linear transformer 215 may include a color transformer 220 for applying a color transformation, and a DCT transformer 225 for applying a DCT transformation. In some embodiments, the color transformer 220 may apply a color transformation before the DCT transformer 225 applies a DCT transformation.

[0090] The quantizer 230 may apply a quantization matrix similar to those described in Equations 2 to 4. For example, the quantizer 230 may quantize the respective amplitudes of one or more frequency components, wherein the number of quantization steps to be applied is configured to reduce errors in the one or more frequency components. The image compressor 135 may generate a compressed image including a second bit number based on the quantization, such as in an N-bit format. In some embodiments, N is greater than M, such as, for example, M=8, and M=12. In some embodiments, N is less than M, such as, for example, M=14, and M=12.

[0091] Figure 3 An example image decoder according to an example embodiment is shown. An image 305 may be received, where the image 305 is a compressed image having a first digit M.

[0092] Frame buffer 310 may store image 305 for processing. In some embodiments, frame buffer 310 may be configured to have capacity for a bit depth greater than M. In some embodiments, frame buffer 310 may be configured to have capacity to process floating point.

[0093] The dequantizer 315 can dequantize the corresponding amplitude of one or more frequency components, wherein the dequantization is based on the inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein the number of dequantization steps to be applied is configured to reduce errors in the one or more frequency components. For example, the quantization matrix can be similar to those described in equations 2 to 4.

[0094] The inverse linear transformer 320 may apply the inverse of the linear transformation applied to the image 305 when encoding. For example, the inverse linear transformer 320 may include an inverse color transformer 325 for applying an inverse color transformation, and an inverse DCT transformer 330 for applying an inverse DCT transformation.

[0095] Image decompressor 335 may decompress image 305 to generate decompressed image 340 in N-bit format. In some embodiments, N is greater than M, such as, for example, M=8, and N=12. In some embodiments, N is less than M, such as, for example, M=14, and N=12.

[0096] The decompressed image 340 may be provided to a display panel 345. In some embodiments, global and / or local tone mapping may be applied to the decompressed image 340 prior to being displayed by the display panel 345.

[0097] IV. Example Compression Methods

[0098] Figure 4 An image compression method according to an example embodiment is shown. Method 400 may include various blocks or steps. The blocks or steps may be performed individually or in combination. The blocks or steps may be performed in any order and / or in series or in parallel. In addition, blocks or steps may be omitted or added to method 400.

[0099] The blocks of method 400 may be referred to as Figure 1 The method 400 may be performed by various elements of the computing device 100 shown and described. Figure 2 and Figure 3 Show and describe relationships.

[0100] Block 410 includes receiving, in a frame buffer of the computing device, an image captured by an image capture device of the computing device, wherein the image includes a first digit.

[0101] Block 420 includes applying a linear transform to the received image based on the first digit, wherein the linear transform includes: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a frequency spectrum including one or more frequency components.

[0102] Block 430 includes quantizing respective amplitudes of the one or more frequency components, wherein a number of quantization steps to be applied is configured to reduce errors in the one or more frequency components.

[0103] Block 440 includes generating, by the image processor and based on the quantization, a compressed image including a second bit number, wherein the second bit number is greater than a bit capacity of compression associated with the image processor.

[0104] In some embodiments, the frame buffer may have a size greater than M bits.

[0105] In some embodiments, the frame buffer may be a 32-bit floating point image buffer.

[0106] In some embodiments, quantization may include selecting a quantization matrix compatible with a high dynamic range (HDR) image format. In some embodiments, the quantization matrix may be compatible with one or more low frequency values ​​of the HDR image format. In some embodiments, the quantization matrix may include an 8×8 DCT coefficient array. In some embodiments, the entries in the first row and first column of the quantization matrix are integer values ​​in the range from 1 to 7.

[0107] In some embodiments, the generation of the compressed image may include performing one of non-color managed compression, color managed compression, or high dynamic range (HDR) compression.

[0108] In some embodiments, the frame buffer may be associated with a web browsing application.

[0109] In some embodiments, a color transform may be applied prior to a DCT transform.

[0110] In some embodiments, the chroma planes may include a u-plane and a v-plane, and the method may include performing subsampling of the chroma planes by subsampling only the u-plane.

[0111] V. Example Decompression Method

[0112] Figure 5 A method 500 according to an example embodiment is shown. The method 500 may include various blocks or steps. The blocks or steps may be performed individually or in combination. The blocks or steps may be performed in any order and / or in series or in parallel. In addition, blocks or steps may be omitted or added to the method 500.

[0113] The blocks of method 500 may be referred to as Figure 1 The method 500 may be performed by various elements of the computing device 100 shown and described. Figure 2 and Figure 3 Show and describe relationships.

[0114] Block 510 includes receiving, in a frame buffer of the computing device, an image captured by an image capture device of the computing device, wherein the image includes a first digit.

[0115] Block 520 includes inverse quantizing respective amplitudes of one or more frequency components, wherein the inverse quantization is based on an inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein a number of inverse quantization steps to be applied is configured to reduce errors in the one or more frequency components.

[0116] Block 530 includes applying an inverse linear transform to the received image based on the first digit, wherein the inverse linear transform includes: (i) an inverse color transform, and (ii) an inverse discrete cosine transform (DCT).

[0117] Block 540 includes generating, by the image processor and based on application of the inverse linear transform, a decompressed image comprising a second bit number, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.

[0118] Block 550 includes providing the decompressed image via a display panel of the computing device.

[0119] In some embodiments, the frame buffer may have a size greater than M bits.

[0120] In some embodiments, the frame buffer may be a 32-bit floating point image buffer.

[0121] In some embodiments, inverse quantization may be based on a quantization matrix that is compatible with one or more low frequency values ​​of HDR.

[0122] In some embodiments, the quantization matrix may include an 8x8 array of DCT coefficients.

[0123] In some embodiments, the entries in the first row and first column of the quantization matrix are integer values ​​ranging from 1 to 7.

[0124] In some embodiments, the decoder of the computing device may be configured to perform non-color managed decompression, the received image may be a Joint Photographic Experts Group (JPEG) formatted image, and the method may further include interpreting the JPEG formatted image into a YUV image. The method may further include applying a color space conversion that is hard-coded for the stock JPEG image.

[0125] In some embodiments, a decoder of a computing device may be configured to perform color managed decompression.

[0126] In some embodiments, a decoder of the computing device may be configured to perform HDR decompression, and the method may further include detecting one or more of: (i) a hybrid log-gamma (HLG) color curve, or (ii) metadata indicating a maximum luminance of an image.

[0127] In some embodiments, the frame buffer may be associated with a web browsing application.

[0128] In some embodiments, the method may further comprise applying tone mapping to the decompressed image prior to provision of the decompressed image.

[0129] The specific arrangements shown in the accompanying drawings should not be considered restrictive. It should be understood that other embodiments may include more or less of each element shown in a given drawing. In addition, some of the elements shown may be combined or omitted. In addition, the illustrative embodiments may include elements not shown in the accompanying drawings.

[0130] The steps or boxes representing the processing of information may correspond to circuit systems that may be configured to perform the specific logical functions of the methods or techniques described herein. Alternatively or additionally, the steps or boxes representing the processing of information may correspond to a module, a fragment, or a portion of a program code (including associated data). The program code may include one or more instructions that may be executed by a processor to implement a specific logical function or action in a method or technique. The program code and / or associated data may be stored on any type of computer-readable medium (such as a storage device including a disk, a hard drive, or other storage medium).

[0131] Computer readable media can also include non-transitory computer readable media, such as computer readable media that store data in a short period of time, such as register memory, processor cache and random access memory (RAM). Computer readable media can also include non-transitory computer readable media that store program code and / or data in a longer period of time. Therefore, computer readable media can include auxiliary or persistent long-term storage devices, such as read-only memory (ROM), optical disk or disk, compact disk read-only memory (CD-ROM). Computer readable media can also be any other volatile or non-volatile storage system. Computer readable media can be regarded as, for example, computer readable storage media, or tangible storage devices.

[0132] Although various examples and embodiments have been disclosed, other examples and embodiments will be apparent to those skilled in the art. The various examples and embodiments disclosed are for purposes of illustration and are not intended to be limiting, with the true scope being indicated by the appended claims.

Claims

1. A computer-implemented image compression method, comprising: receiving, in a frame buffer of a computing device, an image captured by an image capture device of the computing device, wherein the image includes a first digit; applying a linear transform to the received image based on the first bit number, wherein the linear transform comprises: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a frequency spectrum comprising one or more frequency components; quantizing respective amplitudes of the one or more frequency components, wherein a number of quantization steps to be applied is configured to reduce errors in the one or more frequency components; and A compressed image including a second bit number is generated by an image processor and based on the quantization, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.

2. The computer-implemented method of claim 1, wherein the frame buffer has a size greater than the first number of bits.

3. The computer implemented method of claim 1, wherein the frame buffer is a 32-bit floating point image buffer.

4. The computer-implemented method of claim 1, wherein the quantizing comprises selecting a quantization matrix compatible with a high dynamic range (HDR) image format. 5 . The computer-implemented method of claim 4 , wherein the quantization matrix is ​​compatible with one or more low-frequency values ​​of the HDR image format.

6. The computer-implemented method of claim 4, wherein the quantization matrix comprises an 8x8 array of DCT coefficients. 7 . The computer-implemented method of claim 4 , wherein entries in a first row and a first column of the quantization matrix are integer values ​​in a range from 1 to 7.

8. The computer-implemented method of claim 1, wherein the generating of the compressed image comprises performing one of non-color managed compression, color managed compression, or high dynamic range (HDR) compression.

9. The computer implemented method of claim 1, wherein the frame buffer is associated with a web browsing application.

10. The computer implemented method of claim 1, wherein the color transform is applied before the DCT transform.

11. The computer-implemented method of claim 1 , wherein the chrominance planes include a u-plane and a v-plane, and the method further comprises: Subsampling the chroma planes is performed by subsampling only the u-plane.

12. A computer-implemented image decompression method comprising: receiving, in a frame buffer of a computing device, an image captured by an image capture device of the computing device, wherein the image includes a first digit; dequantizing respective amplitudes of one or more frequency components, wherein the dequantization is based on an inverse of a quantization matrix compatible with a high dynamic range (HDR) image format, and wherein a number of dequantization steps to be applied is configured to reduce errors in the one or more frequency components; applying an inverse linear transform to the received image based on the first bit number, wherein the inverse linear transform comprises: (i) an inverse color transform, and (ii) an inverse discrete cosine transform (DCT); generating, by an image processor and based on said application of said inverse linear transform, a decompressed image comprising a second bit number, wherein said second bit number is greater than a compressed bit capacity associated with said image processor; and The decompressed image is provided via a display panel of the computing device.

13. The computer implemented method of claim 12, wherein the frame buffer has a size greater than the first number of bits.

14. The computer implemented method of claim 12, wherein the frame buffer is a 32-bit floating point image buffer.

15. The computer-implemented method of claim 12, wherein the quantization matrix is ​​compatible with one or more low-frequency values ​​of the HDR image format.

16. The computer-implemented method of claim 12, wherein the quantization matrix comprises an 8x8 array of DCT coefficients. 17 . The computer-implemented method of claim 12 , wherein entries in a first row and a first column of the quantization matrix are integer values ​​in a range from 1 to 7.

18. The computer-implemented method of claim 12, wherein a decoder of the computing device is configured to perform non-color managed decompression, wherein the received image is a Joint Photographic Experts Group (JPEG) formatted image, and wherein the method further comprises: Decoding the JPEG formatted image into a YUV image; as well as Applies hardcoded color space conversion for stock JPEG images.

19. The computer-implemented method of claim 12, wherein the decoder of the computing device is configured to perform color managed decompression.

20. The computer-implemented method of claim 12, wherein a decoder of the computing device is configured to perform HDR decompression, and the method further comprises: One or more of: (i) a hybrid log-gamma (HLG) color curve, or (ii) metadata indicating a maximum luminance of the image is detected.

21. The computer implemented method of claim 12, wherein the frame buffer is associated with a web browsing application.

22. The computer-implemented method of claim 12, further comprising: Tone mapping is applied to the decompressed image prior to the providing of the decompressed image.

23. A computing device comprising: one or more processors; as well as a data storage device having computer executable instructions stored thereon, the computer executable instructions, when executed by the one or more processors, causing the computing device to perform functions, the functions comprising: receiving, in a frame buffer of a computing device, an image captured by an image capture device of the computing device, wherein the image includes a first digit; applying a linear transform to the received image based on the first bit number, wherein the linear transform comprises: (i) a color transform, and (ii) a discrete cosine transform (DCT) to generate a frequency spectrum comprising one or more frequency components; quantizing respective amplitudes of the one or more frequency components, wherein a number of quantization steps to be applied is configured to reduce errors in the one or more frequency components; and A compressed image including a second bit number is generated by an image processor and based on the quantization, wherein the second bit number is greater than a compressed bit capacity associated with the image processor.