IP Library Granted Patent US 12694570
Granted Patent B2
US 12694570 · App. 17/720,252 · Granted Jul 28, 2026

Dividing an ASTC texture to a set of sub-images

Inventor: Seppo A. Pietarinen (Helsinki, FI)
Assignee: Jeppesen ForeFlight, Inc.
G06T9/00G06F16/1744G06T1/0007G06T2200/24G06T2210/32
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12694570
App. No.
17/720,252
Granted
Jul 28, 2026
Kind
B2
Abstract

A method including encoding a digital image file into an adaptable scalable texture compression (ASTC) file comprising a single file. The method also includes dividing, logically, the ASTC file into a sub-image comprising a sub-portion of the ASTC file. The method also includes copying the sub-image to a computer memory. The method also includes associating an ASTC header with the sub-image in the computer memory. The method also includes storing a combination of the ASTC header and the sub-image in the computer memory as a new ASTC file.

Claims (61)

1 . A method comprising:

encoding a digital image file corresponding to a digital image into an adaptable scalable texture compression (ASTC) file comprising a single file of compressed digital image data corresponding to the digital image;

dividing, logically, the ASTC file to generate a plurality of sub-images of the digital image, each sub-image of the plurality of sub-images corresponding to a different sub-portion of compressed digital image data of the ASTC file, wherein each sub-portion of compressed digital image data includes at least a plurality of blocks, wherein each block has a same block size comprising a same number of bits;

for each sub-image of the plurality of sub-images,

determining whether a compressed digital image data size of the sub-image is a multiple of a block size for the ASTC file;

based on the sub-image having the compressed digital image data size that is the multiple of the block size, bitwise copying the sub-portion of compressed digital image data corresponding to the sub-image from the ASTC file to a corresponding single continuous portion of a computer memory; and

based on the sub-image having the compressed digital image data size that is not the multiple of the block size, generating a larger and offset ASTC file for the sub-image from the ASTC file, wherein the larger and offset ASTC file has a compressed digital image data size that is the multiple of the block size and includes the plurality of blocks, and wherein the compressed digital image data size of the larger and offset ASTC file is based on a location of the sub-image relative to the digital image, and bitwise copying the plurality of blocks of the larger and offset ASTC file to a single continuous portion of the computer memory;

associating an ASTC header with the sub-portion of compressed digital image data corresponding to the sub-image in the computer memory; and

storing the associated ASTC header before the single continuous portion of the computer memory and storing the sub-portion of compressed digital image data corresponding to the sub-image including at least the plurality of blocks in the single continuous portion of the computer memory as a new ASTC file.

2 . The method of claim 1 , wherein the digital image file is selected from the group consisting of: a bitmap image (BMP) file, a joint photographic experts group (JPEG) file, a portable network graphics (PNG) file, a tagged image file format (TIFF), a graphics interchange format (GIF) file, a digital negative format (DNG) file, an exchangeable image file format (Exif) file, a WebP file, and a high efficiency image file format (HEIF) file.

3 . The method of claim 1 , further comprising:

receiving a request to render a sub-section of the digital image file;

identifying the new ASTC file as corresponding to the sub-section of the digital image file; and

rendering the new ASTC file on a graphical user interface (GUI).

4 . The method of claim 3 , further comprising:

rendering the ASTC file of the digital image on the GUI, wherein the new ASTC file is rendered on the GUI as an overlay on the digital image.

5 . The method of claim 3 , wherein identifying and rendering are performed exclusively on a graphics processing unit (GPU) of a computer generating the GUI.

6 . The method of claim 3 , wherein the larger and offset ASTC file is offset from the ASTC file horizontally by Wb-Xi % Wb pixels, where Wb is a block width and Xi is a sub-image x location and vertically by Hb-Yi % Hb pixels, where Hb is a block height and Yi is a sub-image y location.

7 . The method of claim 3 , wherein the ASTC header defines dimensions of the sub-image, a file size, and an identifier.

8 . The method of claim 1 , wherein the larger and offset ASTC file is offset from the ASTC file horizontally by Wb-Xi % Wb pixels, where Wb is a block width and Xi is a sub-image x location and vertically by Hb-Yi % Hb pixels, where Hb is a block height and Yi is a sub-image y location.

9 . The method of claim 1 , wherein the ASTC header defines dimensions of the sub-image, a file size, and an identifier.

10 . A method comprising:

encoding a digital image file corresponding to a digital image into an adaptable scalable texture compression (ASTC) file comprising a single file of compressed digital image data corresponding to the digital image;

dividing, logically, the ASTC file to generate a plurality of sub-images of the digital image, each sub-image of the plurality of sub-images corresponding to a different sub-portion of compressed digital image data of the ASTC file, wherein each sub-portion of compressed digital image data includes at least a plurality of blocks, wherein each block has a same block size comprising a same number of bits;

for each sub-image of the plurality of sub-images,

determining whether a compressed digital image data size of the sub-image is a multiple of a block size for the ASTC file;

based on the sub-image having the compressed digital image data size that is the multiple of the block size, bitwise copying the sub-portion of compressed digital image data corresponding to the sub-image from the ASTC file to a corresponding single continuous portion of a computer memory; and

based on the sub-image having the compressed digital image data size that is not the multiple of the block size, generating a larger and offset ASTC file for the sub-image from the ASTC file, wherein the larger and offset ASTC file has a compressed digital image data size that is the multiple of the block size and includes the plurality of blocks, and wherein the compressed digital image data size of the larger and offset ASTC file is based on a location of the sub-image relative to the digital image, and bitwise copying the plurality of blocks of the larger and offset ASTC file to a single continuous portion of the computer memory;

associating an ASTC header with the sub-portion of compressed digital image data corresponding to the sub-image in the computer memory;

storing the associated ASTC header before the single continuous portion of the computer memory and storing the sub-portion of compressed digital image data corresponding to the sub-image including at least the plurality of blocks in the single continuous portion of the computer memory as a new ASTC file;

receiving a command to render a sub-section of the digital image displayed on a graphical user interface (GUI);

determining, from among a plurality of ASTC files stored in memory corresponding to the plurality of sub-images of the digital image, a first ASTC file corresponding to a first sub-image that includes the sub-section of the digital image; and

rendering the first sub-image on the GUI using the first ASTC file.

11 . The method of claim 10 , further comprising:

rendering the digital image on the GUI; and

rendering the first sub-image on the GUI as an overlay on the digital image.

12 . The method of claim 10 , wherein determining and rendering are performed exclusively on a graphics processing unit (GPU) of a computer generating the GUI.

13 . The method of claim 10 , wherein the digital image is formatted as the digital image file selected from the group consisting of: a bitmap image (BMP) file, a joint photographic experts group (JPEG) file, a portable network graphics (PNG) file, a tagged image file format (TIFF), a graphics interchange format (GIF) file, a digital negative format (DNG) file, an exchangeable image file format (Exif) file, a WebP file, and a high efficiency image file format (HEIF) file.

14 . The method of claim 11 , wherein the digital image is sub-divided after receiving the command to render the sub-section.

15 . A computing system comprising:

a display device;

one or more processing units;

computer memory;

a non-transitory computer readable storage medium in communication with the one or more processing units, wherein the non-transitory computer readable storage medium stores computer readable program code, which when executed, causes the one or more processing units to:

encode a digital image file corresponding to a digital image into an adaptable scalable texture compression (ASTC) file comprising a single file of compressed digital image data corresponding to the digital image;

divide, logically, the ASTC file to generate a plurality of sub-images of the digital image, each sub-image of the plurality of sub-images corresponding to a different sub-portion of compressed digital image data of the ASTC file, wherein each sub-portion of compressed digital image data includes at least a plurality of blocks, wherein each block has a same block size comprising a same number of bits;

for each sub-image of the plurality of sub-images,

determine whether a compressed digital image data size of the sub-image is a multiple of a block size for the ASTC file;

based on the sub-image having the compressed digital image data size that is the multiple of the block size, bitwise copy the sub-portion of compressed digital image data corresponding to the sub-image from the ASTC file to a corresponding single continuous portion of the computer memory; and

based on the sub-image having the compressed digital image data size that is not the multiple of the block size, generate a larger and offset ASTC file for the sub-image from the ASTC file, wherein the larger and offset ASTC file has a compressed digital image data size that is the multiple of the block size and includes the plurality of blocks, and wherein the compressed digital image data size of the larger and offset ASTC file is based on a location of the sub-image relative to the digital image, and bitwise copy the plurality of blocks of the larger and offset ASTC file to a single continuous portion of the computer memory;

associate an ASTC header with the sub-portion of compressed digital image data corresponding to the sub-image in the computer memory;

store the associated ASTC header before the single continuous portion of the computer memory and storing the sub-portion of compressed digital image data corresponding to the sub-image including at least the plurality of blocks in the single continuous portion of the computer memory as a new ASTC file;

receive a command to render a sub-section of the digital image displayed on a graphical user interface (GUI);

determine, from among a plurality of ASTC files stored in memory corresponding to the plurality of sub-images of the digital image, a first ASTC file corresponding to a first sub-image that includes the sub-section of the digital image; and

render the first sub-image on the GUI using the first ASTC file.

16 . The computing system of claim 15 , wherein the one or more processing units comprises one or more graphics processing units (GPUs), and wherein the computer readable program code for determining and the computer readable program code for rendering are executed on the one or more GPUs.

17 . The computing system of claim 15 , wherein the digital image is formatted as the digital image file selected from the group consisting of: a bitmap image (BMP) file, a joint photographic experts group (JPEG) file, a portable network graphics (PNG) file, a tagged image file format (TIFF), a graphics interchange format (GIF) file, a digital negative format (DNG) file, an exchangeable image file format (Exif) file, a WebP file, and a high efficiency image file format (HEIF) file.

18 . The computing system of claim 15 , wherein the computer readable program code is further executable to cause the one or more processing units to:

render the ASTC file of the digital image on the GUI, wherein the first ASTC file of the first sub-image is rendered on the GUI as an overlay on the digital image.

19 . The computing system of claim 15 , wherein the larger and offset ASTC file is offset from the ASTC file horizontally by Wb-Xi % Wb pixels, where Wb is a block width and Xi is a sub-image x location and vertically by Hb-Yi % Hb pixels, where Hb is a block height and Yi is a sub-image y location.

20 . The computing system of claim 15 , wherein the ASTC header defines dimensions of the sub-image, a file size, and an identifier.