You were not far off. The patent "Reducing the search space space for real time texture compression" (Patent 1) is the complement of the patent "Machine learning applied to textures compression or upscaling.' (Patent 2).
More specifically, Patent 1 states:
- For example, the compressed textures 14 may be compressed using any one of a plurality of compression algorithms or schemes that are incompatible with the GPU, but which provide a substantially greater compression ratio as compared to a GPU-compatible compression algorithm/scheme (e.g., block compression). For example, hardware compatible compressed texture formats may be 0.5 or 1 bytes per texel, while machine learning can go as low as half of 0.5 or 1 bytes per texel. The compressed textures 14 may be compressed using machine learning image compression, JPEG, wavelet, general purpose lossless compression, and/or other forms of compression that result in a relatively high compression ratio. As noted, however, the compressed textures 14 may not be directly usable by the GPU. As such, the resulting hardware incompatible image generated by compressed textures 14 may be block compressed prior to usage by the GPU.
- [0027]
Application 10 may also include a metadata file 16 with one or more hints 20 (e.g., up to n hints, where n is an integer) as to which mode, shape and/or end points to choose for the textures 26 when block compressing the texture 26 for application 10 at runtime. For example, the hints 20 may indicate that while there may be 8 different modes for an identified region of a texture 26, this identified region of a texture 26 only uses modes 1 and 2. In addition or alternatively, for example, the hints 20 may indicate which shapes are common shapes for the identified region of a texture 26. The hints 20 may also provide information regarding a subset of the search space defined by a subset of one or more of the mode, the shape, or the endpoints to choose for compressing the decompressed textures into hardware compatible compressed textures that includes less than all of the potential combinations that make up the search space. For example, the subset may include one or more of the mode, the shape, or the endpoints, or one or more of a combination of the mode, the shape, or the endpoints. As such, the hints 20 may be used to reduce the search space when determining how to efficiently compress the textures 26 at runtime.
Hence, Patent 1 describes a process whereby the
offline compression engine (which may involve a machine learning model) will compress the textures of the application into a GPU incompatible format along with a metadata file that will provide hints to accelerate its conversion into block compressed GPU compatible texture by constraining the search space in determining which modes, shapes and endpoints will provide the best quality of GPU compatible blocks. Hence Patent 1 provides a neat explanation on how we end up with highly compressed non-gpu compatible textures on disk in the first place.
Following hot on the heels of Patent 1, Patent 2 then describes how those GPU-incompatible textures can now be converted into regular block compressed textures at
runtime. Quoting Patent 2:
- For example, the trained machine learning model 18 may decompress the identified textures 17 into block compressed textures usable by the GPU by predicting the components of a blocked compressed texture (e.g., the modes, shapes, endpoints, and/or indices) for the identified textures 17 and/or a region of the texture 17. The predicted block compressed textures may select various modes, shapes, and/or endpoints to use during the block compression for the identified textures 17 and/or a region of the texture 17.
- [0042]
The machine learning networks may evaluate the image and visual quality of the predicted blocked compressed textures generated during the training process by comparing the predicted block compressed textures to the original source textures 17 used as input for the training. The machine learning networks may try to improve the predicted block compressed textures (e.g., modifying the selected modes, shapes, and/or endpoints) until there is a minimal difference between the predicted block compressed textures and the original source textures 17. When a minimal difference occurs between the predicted block compressed textures and the original source textures 17, it may be difficult to distinguish the predicted block compressed textures and the original source textures 17.
- [0043]
The selected modes, shapes and/or endpoints used when predicting the blocked compressed textures may be saved as metadata 19. Metadata 19 may provide guidance as to which modes, shapes, and/or end points may produce the best quality blocks. As such, metadata 19 may be used by the trained machine learning model 18 to create hardware compatible compressed textures 22 that closely resemble the original raw images of application 10. For example, metadata 19 may be used by the trained machine learning model 18 to assist in selecting correct endpoints, modes, and/or shapes of a block compressed texture when decompressing the hardware incompatible compressed textures 16 directly into block compressed number (BCN) textures.
We now have a more or less complete picture of the texture management pipeline. During runtime conversion of gpu-incompatible texture, the machine learning model will search the space state of modes, shapes and endpoints to find the combination with the best match resulting in minimal loss of detail. The metadata actually helps in constraining the search space for this best fit and ensures that there is minimal loss of details provided that the learning model has been properly trained offline with relevant training data (existing textures of the application).
The question is....is this actually BCPACK? My hunch is that BCPACK has nothing to do with this scheme and is just an analogue of crunch.