WO2023011033A1 - 图像处理方法、装置、计算机设备及存储介质 - Google Patents
图像处理方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- WO2023011033A1 WO2023011033A1 PCT/CN2022/100817 CN2022100817W WO2023011033A1 WO 2023011033 A1 WO2023011033 A1 WO 2023011033A1 CN 2022100817 W CN2022100817 W CN 2022100817W WO 2023011033 A1 WO2023011033 A1 WO 2023011033A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target
- pixels
- compressed
- data
- texture data
- Prior art date
Links
- 238000003860 storage Methods 0.000 title claims abstract description 49
- 238000003672 processing method Methods 0.000 title claims abstract description 34
- 238000012545 processing Methods 0.000 claims abstract description 150
- 238000000034 method Methods 0.000 claims abstract description 58
- 230000006835 compression Effects 0.000 claims description 76
- 238000007906 compression Methods 0.000 claims description 76
- 238000009877 rendering Methods 0.000 claims description 60
- 238000004590 computer program Methods 0.000 abstract description 5
- 238000005516 engineering process Methods 0.000 description 15
- 238000004422 calculation algorithm Methods 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 230000006870 function Effects 0.000 description 13
- 238000004364 calculation method Methods 0.000 description 5
- 238000012360 testing method Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 101100065701 Arabidopsis thaliana ETC2 gene Proteins 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003044 adaptive effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/54—Extraction of image or video features relating to texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/40—Analysis of texture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/24—Aligning, centring, orientation detection or correction of the image
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/40—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video transcoding, i.e. partial or full decoding of a coded input stream followed by re-encoding of the decoded output stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Definitions
- the present application relates to the technical field of the Internet, specifically to the technical field of image processing, and in particular to an image processing method, device, computer equipment, storage medium, and computer-readable instruction product.
- image producers in order to save the memory occupied by the image and the network resources required for image transmission, image producers usually use the source compressed texture format to compress and encode the image to obtain the source compressed texture data of the image, thus Publishes the source compressed texture data to the outside world.
- any external device obtains the source compressed texture data of the image, if it detects that the source compressed texture format is not compatible with the graphics card, the any device will usually directly decode the source compressed texture data, and The decoded texture data obtained by decoding is stored, so as to facilitate subsequent image rendering and display based on the decoded texture data.
- Such an image processing method can solve the problem of incompatibility between the data format of the source compressed texture data and the graphics card, it will cause excessive video memory usage and affect the performance of the graphics card.
- an image processing method, apparatus, computer equipment, storage medium, and computer-readable instruction product are provided.
- An image processing method performed by a computer device comprising:
- the source compressed texture format is not compatible with the graphics card, determine a target compressed texture format compatible with the graphics card, and a target compressed block size corresponding to the target compressed texture format;
- each image texture data is transcoded to obtain the target compressed texture data of the target image, and the target compressed texture data includes: each image texture data Corresponding one or more transcoded compressed texture blocks;
- the graphics card is invoked to render and display the target image according to the target compressed texture data.
- An image processing device comprising:
- An acquisition unit configured to acquire source compressed texture data of a target image, where the source compressed texture data is obtained by encoding the target image using a source compressed texture format
- a processing unit configured to determine a target compressed texture format adapted to the graphics card and a target compressed block size corresponding to the target compressed texture format if the source compressed texture format is not compatible with the graphics card;
- the processing unit is further configured to perform decoding and alignment processing on the source compressed texture data based on the target compressed block size to obtain a plurality of image texture data, and the data size of each image texture data is equal to the target compressed block size Integer multiple;
- the processing unit is further configured to use the target compressed texture format and the target compressed block size to perform transcoding processing on the texture data of each image to obtain the target compressed texture data of the target image, and the target compressed texture
- the data includes: one or more transcoded compressed texture blocks corresponding to each image texture data;
- the processing unit is further configured to call the graphics card to render and display the target image according to the target compressed texture data when the target image needs to be displayed.
- a computer device comprising a memory and a processor, the memory stores computer-readable instructions, and the processor implements the following steps when executing the computer-readable instructions:
- the source compressed texture format is not compatible with the graphics card, determine a target compressed texture format compatible with the graphics card, and a target compressed block size corresponding to the target compressed texture format;
- each image texture data is transcoded to obtain the target compressed texture data of the target image, and the target compressed texture data includes: each image texture data Corresponding one or more transcoded compressed texture blocks;
- the graphics card is invoked to render and display the target image according to the target compressed texture data.
- a computer storage medium on which computer readable instructions are stored, and when the computer readable instructions are executed by a processor, the following steps are implemented:
- the source compressed texture format is not compatible with the graphics card, determine a target compressed texture format compatible with the graphics card, and a target compressed block size corresponding to the target compressed texture format;
- each image texture data is transcoded to obtain the target compressed texture data of the target image, and the target compressed texture data includes: each image texture data Corresponding one or more transcoded compressed texture blocks;
- the graphics card is invoked to render and display the target image according to the target compressed texture data.
- a computer-readable instruction product including computer-readable instructions, characterized in that, when the computer-readable instructions are executed by a processor, the following steps are implemented:
- the source compressed texture format is not compatible with the graphics card, determine a target compressed texture format compatible with the graphics card, and a target compressed block size corresponding to the target compressed texture format;
- each image texture data is transcoded to obtain the target compressed texture data of the target image, and the target compressed texture data includes: each image texture data Corresponding one or more transcoded compressed texture blocks;
- the graphics card is invoked to render and display the target image according to the target compressed texture data.
- Fig. 1a is a schematic diagram of a pixel compression coding provided by an embodiment of the present application
- Fig. 1b is a schematic diagram of the corresponding relationship between a source compressed texture block and a transcoded compressed texture block provided by an embodiment of the present application;
- Fig. 1c is a schematic diagram of the corresponding relationship between another source compressed texture block and a transcoded compressed texture block provided by the embodiment of the present application;
- FIG. 2 is a schematic flow diagram of an image processing method provided in an embodiment of the present application.
- Fig. 3a is a schematic diagram of dividing multiple source compressed texture blocks into multiple texture block groups according to the data alignment factor provided by the embodiment of the present application;
- Fig. 3b is another schematic diagram of dividing multiple source compressed texture blocks into multiple texture block groups according to the data alignment factor provided by the embodiment of the present application;
- Fig. 3c is a schematic structural diagram of a block chain provided by an embodiment of the present application.
- Figure 3d is a schematic diagram of adding target compressed texture data to the blockchain provided by the embodiment of the present application.
- Fig. 4a is a schematic flowchart of an image processing method performed in a computer device provided by an embodiment of the present application
- Fig. 4b is a schematic diagram of obtaining target compressed texture data by a computer device provided by an embodiment of the present application through a graphics card shader;
- Fig. 4c is a schematic diagram of another computer device provided by an embodiment of the present application to obtain target compressed texture data through a graphics card shader;
- Fig. 5a is a schematic structural diagram of a cloud game server provided by an embodiment of the present application.
- Fig. 5b is a schematic flowchart of an image processing method provided by another embodiment of the present application.
- FIG. 6 is a schematic structural diagram of an image processing device provided by an embodiment of the present application.
- Fig. 7 is a schematic structural diagram of a computer device provided by an embodiment of the present application.
- the embodiment of the present application proposes an image processing scheme executed in computer equipment; Texture format) is not compatible with the graphics card in the computer device, convert the source compressed texture data into the target compressed texture data in the target compressed texture format compatible with the graphics card, so as to avoid the situation that the graphics card occupies too much, and then improve the performance of the graphics card .
- the source compressed texture format refers to: the compressed texture format adopted by the image producer in the process of producing the target image
- the target compressed texture format refers to: the compressed texture format adapted to the graphics card.
- the so-called compressed texture format refers to: a format in which pixels are compressed and stored on an image in units of compressed texture blocks (blocks for short); any compressed texture format corresponds to one or more compressed block sizes, and the compressed block size It is mainly used to indicate the range of the number of pixels compressed by each block; for example, if the compressed block size is 4 ⁇ 4, it can be used to indicate that the number of pixels compressed by each block is 4 ⁇ 4, that is, the 4 ⁇ 4 can represent each 4 rows and 4 columns of pixels are compressed once to obtain a block (indicated by B), as shown in Figure 1a. It can be seen that the source compressed texture data obtained by encoding the target image using the source compressed texture format can usually include multiple source compressed texture blocks; The meanings both mean at least two.
- the general principle of the image processing scheme is as follows: First, based on the compressed block size corresponding to the target compressed texture format (hereinafter referred to as the target compressed block size), the source compressed texture data can be decoded and aligned to obtain multiple Image texture data, the data size of each image texture data is equal to an integer multiple of the target compression block size.
- each image texture data can be transcoded into an integer number of compressed texture blocks in the target compression texture format according to the target compression block size (Subsequently referred to as transcoded texture blocks); After obtaining one or more transcoded compressed texture blocks corresponding to each image texture data, the transcoding process can be ended, and the target compressed texture data in the target compressed texture format can be obtained.
- the texture data includes: transcoded and compressed texture blocks corresponding to each image texture data.
- the compressed block size corresponding to the data format of the source compressed texture data (that is, the source compressed texture format) (hereinafter referred to as the source compressed block size), and the compressed block size corresponding to the target compressed texture format (hereinafter referred to as the target compressed block size) They may be the same or different, which is not limited.
- the size of the source compressed block may be 6 ⁇ 6, while the size of the target compressed block may be 4 ⁇ 4; for another example, both the size of the source compressed block and the size of the target compressed block may be 4 ⁇ 4, and so on.
- a source compression texture block (indicated by B1) in the source compression texture data corresponds to a transcoded compression texture block (indicated by B2) in the target compression texture data , as shown in Figure 1b. That is to say, when the size of the source compression block is the same as that of the target compression block, the number of source compression texture blocks included in the source compression texture data is the same as the number of transcoded compression texture blocks included in the target compression texture data.
- the size of the source compression block and the size of the target compression block are different, it can be a source compression texture block in the source compression texture data, which corresponds to multiple transcoding compression texture blocks in the target compression texture data.
- the target compressed block size is 4 ⁇ 4, then one source compressed texture block can correspond to four transcoded compressed texture blocks, as shown in Figure 1c; or multiple source compressed texture blocks can correspond to one transcoded compressed texture
- 4 source compression texture blocks can correspond to 1 transcoding compression texture block; it can also be that E source compression texture blocks correspond to F
- E and F are both integers greater than 1.
- 4 source compressed texture blocks can correspond to 9 transcoded compressed textures piece. That is to say, when the size of the source compression block and the size of the target compression block are different, the number of source compressed texture blocks included in the source compressed texture data is different from the number of transcoded compressed texture blocks included in the target compressed texture data.
- the computer equipment mentioned above can be a terminal or a server, which is not limited; the terminal mentioned here can include but not limited to: smart phones, tablet computers, notebook computers, desktop computers, smart watches, smart TVs, etc.; various clients (applications, APPs), such as game clients, multimedia clients, social clients, etc., can run in the terminal.
- the server mentioned here can be an independent physical server, or a server cluster or distributed system composed of multiple physical servers, and can also provide cloud services, cloud databases, cloud computing, cloud functions, cloud storage, network Services, cloud communications, middleware services, domain name services, security services, CDN (Content Delivery Network, content distribution network), and cloud servers for basic cloud computing services such as big data and artificial intelligence platforms, etc.
- the graphics card in the computer equipment is a device centered on a GPU (Graphics Processing Unit, graphics processor) and used to undertake the task of outputting and displaying images; in order to improve the efficiency of decoding and alignment processing, the The graphics card may at least include: a GPU, a rendering pipeline, a computing shader decoding pipeline (hereinafter referred to as the decoding pipeline), and a graphics card computing shader (hereinafter referred to as the graphics card shader), and the like.
- the rendering pipeline can also be called the rendering pipeline, which is a parallel processing unit that processes graphics signals inside the graphics card independently of each other, and can be used to realize the rendering and display of images.
- the decoding pipeline is a processing unit for instructing the processing flow of the graphics card shader, that is, the graphics card shader in the embodiment of the present application works according to the flow specified by the decoding pipeline.
- 3 The graphics card shader refers to the processing unit running in the graphics card, which can include M work groups.
- the so-called work group can be understood as a sub-processing in the graphics card shader that has decoding processing capabilities and transcoding processing capabilities. Unit; each working group is independent of each other, and M is an integer greater than 1.
- Graphics shaders can be connected to input graphics shader cache blocks for data input, and output graphics shader cache blocks for data output.
- the working group in the shader of the graphics card can be mainly used to perform the decoding operation and the transcoding operation of the relevant data.
- the working group in the shader of the graphics card can be mainly used to perform the decoding operation and the transcoding operation of the relevant data.
- the computer device can be located outside the blockchain network or within the blockchain network, without limitation; the so-called blockchain network is a network consisting of a peer-to-peer network (P2P network) and a blockchain.
- P2P network peer-to-peer network
- blockchain refers to a new application model of computer technology such as distributed data storage, point-to-point transmission, consensus mechanism, and encryption algorithm.
- Associated data blocks or blocks.
- the image processing scheme proposed above in the embodiment of the present application can at least have the following beneficial effects: 1 Through decoding and alignment processing, the data size of each image texture data can be equal to an integer multiple of the target compression block size; It is convenient to use the target compressed texture format and the target compressed block size to transcode each image texture data into one or more transcoded compressed texture blocks for storage, thereby effectively saving video memory usage and improving the operating performance of the graphics card. 2 It can realize that when the target image needs to be displayed, the data loaded from the storage space is the target compressed texture data.
- the data volume of the target compressed texture data is smaller, so it can also avoid the bus when loading the data
- the problem of excessive bandwidth occupation can improve the efficiency of image rendering, thereby improving the timeliness of image display.
- 3Because the data format of each transcoded compressed texture block is compatible with the graphics card, it can further effectively improve the image rendering efficiency when calling the graphics card to render and display the target image according to each transcoded compressed texture block, thereby further improving the image display timeliness.
- an embodiment of the present application proposes an image processing method, which can be executed in the above-mentioned computer device.
- the image processing method may include the following steps S201-S205:
- the target image can be any kind of image, such as a game screen in the target game, a video image of any film and television drama, a selfie image of any user, a landscape image of any scenic spot, etc.;
- the target game can be any normal game or any cloud game.
- the so-called ordinary game refers to the game that runs directly on the game client installed in the terminal device used by the player; the so-called cloud game can also be called game on demand (gaming on demand), which is a cloud computing-based
- the cloud computing here is a computing method based on the Internet; in the cloud game scenario, the game does not run on the game client of the player user, but runs on the cloud game server; the cloud game server transfers the game scenario
- the involved game screen is coded into a video stream, which is transmitted to the game client of the player user through the network for playback.
- the data format of the target image may be a texture format; the texture format mentioned here may be, for example, an RGBA format; wherein, R in RGBA represents a red channel, G represents a green channel, B represents a blue channel, and A represents Transparent channel.
- the source compressed texture data of the target image is obtained by encoding the target image using the source compressed texture format.
- the process of encoding the target image using the source compressed texture format can be understood as converting the data format of the target image from the texture format to the source
- the process of compressing the texture format; the encoded source compressed texture data may include multiple source compressed texture blocks.
- the so-called source compressed texture block refers to the compressed texture block obtained by compressing and encoding the target image using the source compressed texture format.
- the source compressed texture format may be ASTC (Adaptive Scalable Texture Compression) format, or ETC format (a compressed texture format), and so on.
- the compressed block size corresponding to the source compressed texture format can be referred to as the source compressed block size, and the source compressed block size can be A ⁇ B, where A ⁇ B means that pixels in row A and column B are compressed into one block, and both A and B are larger than Integer of 1.
- the source compressed block size can be 4 ⁇ 4, 6 ⁇ 6, 8 ⁇ 8 or 12 ⁇ 12, etc. Taking 4 ⁇ 4 as an example, the 4 ⁇ 4 may mean that pixels in 4 rows and 4 columns are compressed into one block.
- the specific implementation manner of step S201 may be: send a data acquisition request to other devices that store the source compressed texture data, to request other devices to return the source compressed texture data; then, the computing device may receive the source compressed texture data. If the source compressed texture data of the target image is pre-stored in the local space of the computer device, the computer device can load the source compressed texture data from the local space through the internal rendering pipeline to realize the acquisition of the source compressed texture data; that is, the steps A specific implementation manner of S201 may be: the rendering pipeline loads the source compressed texture data of the target image from the local space of the computer device.
- the source compressed texture format is not compatible with the graphics card, determine a target compressed texture format compatible with the graphics card, and a target compressed block size corresponding to the target compressed texture format.
- the incompatibility between the source compressed texture format and the graphics card means that the graphics card does not support image rendering and display for any data in the source compressed texture format.
- the computer device can determine the target compressed texture format compatible with the graphics card; the target compressed texture format can be any compressed texture format that is compatible with (or compatible with) the graphics card, for example Can be DXT5 (a lossy texture compression algorithm) format, etc.
- the target compressed block size refers to: the compressed block size corresponding to the target compressed texture format; the target compressed block size can be X ⁇ Y, and the X ⁇ Y means that X rows and Y columns of pixels are compressed into one block, and X and Y are larger than Integer of 1. For example, if the target compressed texture format is the DXT5 format as an example, both X and Y may be equal to 4, that is, the target compressed block size at this time may be 4 ⁇ 4.
- S203 Perform decoding and alignment processing on the source compressed texture data based on the target compressed block size to obtain a plurality of image texture data.
- each source compressed texture block in the source compressed texture data is the source compressed block size corresponding to the source compressed texture format
- the final compressed texture block size to be transcoded is the target compressed block size, only when the source compressed texture
- the graphics card shader can be directly called to decode and transcode each source compressed texture block into one or more compressed texture blocks of the target compressed block size; otherwise, the transcoding will fail. For example, if the target compressed block size is 4 ⁇ 4, then for source compressed texture blocks with a source compressed block size of 4 ⁇ 4, 8 ⁇ 8 or 12 ⁇ 12, you can directly call the graphics card shader to decode each source compressed texture block and Transcode into 1, 4 or 9 compressed texture blocks of size 4 ⁇ 4.
- the graphics card shader cannot be directly invoked to transcode the source compressed texture block into several compressed texture blocks with a target compressed block size.
- the computer device can first perform decoding and alignment processing on the source compressed texture data based on the target compression block size, so that the data size of each image texture data obtained after processing is equal to an integer multiple of the target compression block size , so as to facilitate subsequent transcoding of each image texture data into one or more compressed texture blocks of the target compressed block size in the graphics card shader.
- the image texture data refers to: uncompressed and coded texture data, that is, the data format of the image texture data is a texture format.
- the data size of the image texture data is used to indicate the number of pixels included in the image texture data; for example, if the data size of the image texture data is 128 ⁇ 128, the data size indicates that the image texture data includes 128 ⁇ 128 pixels.
- the data size of the image texture data and the target compression block size both include two digits; then, the meaning that the so-called data size is equal to an integer multiple of the target compression block size refers to: the first digit of the data size
- the bit value is an integer multiple of the first bit value of the target compressed block size (ie, the value of X)
- the second bit value of the data size is an integer multiple of the second bit value of the target compressed block size (ie, the value of Y) .
- the target compression block size be 4 ⁇ 4; if the data size is 8 ⁇ 8, then the first digit value (value 8) of the data size is twice the first digit value (value 4) of the target compression block size , and the second digit value (value 8) of the data size is also twice the second digit value (value 4) of the target compression block size, then the data size 8 ⁇ 8 is equal to an integer multiple of the target compression block size; if the data size is 8 ⁇ 10, since the first digit of the data size (value 8) is twice the first digit of the target compression block size (value 4), and the second digit of the data size (value 10) is the target compression 2.5 times the value of the second digit of the block size (value 4), the data size 8 ⁇ 10 is not equal to an integer multiple of the target compressed block size.
- the decoding alignment process may include: data decoding first and then data alignment processing; the so-called data decoding first and then data alignment processing refers to: first decoding the source compressed texture data into decoded texture data in texture format, Then align the decoded texture data into multiple image texture data.
- the specific implementation manner of step S203 may include the following steps s11-s12:
- Decoding the source compressed texture data to obtain decoded texture data of the target image includes P rows and Q columns of pixels, where P and Q are integers greater than 1.
- a target workgroup for decoding is allocated to each source compressed texture block in the source compressed texture data, and each source compressed texture block is distributed to the corresponding target workgroup; and , call each target working group in the graphics card shader in parallel, and decode the corresponding compressed texture block, so as to obtain the decoded texture data of the target image.
- each group of pixels includes pixels in rows X and columns Y, and the decoded texture data of a group of pixels constitutes corresponding image texture data.
- the computer device when it aligns pixels in P rows and Q columns into multiple groups of pixels according to the target compression block size, it can first use one unit per X row, based on the pixels in P rows that have not been aligned. Remaining row of pixels, determine the current X row of pixels to be aligned.
- the X row of pixels currently to be aligned can be selected from the remaining row of pixels in the order of selection from top to bottom; If the number of pixels in the remaining rows that have not been aligned in P rows of pixels is less than X, J rows of invalid pixels can be used to fill the remaining rows of pixels into X rows of pixels, and the filled X rows of pixels can be determined as the current The X row of pixels to be aligned, the value of J is equal to the difference between X and the row number of the remaining row of pixels.
- the computer device can select the pixels of the 1st row to the 4th row as the current 4 rows of pixels to be aligned for the first time, and can select the pixels of the 5th row to the 8th row as the current row of pixels for the second time.
- the remaining rows of pixels that have not been aligned are 3 rows, and the number of rows is less than X, one row of invalid pixels can be used to align the remaining 3 rows of pixels into 4 rows of pixels, and The 4 rows of pixels obtained by padding are used as the current 4 rows of pixels to be aligned.
- the width of the remaining row of pixels after padding can meet the number of pixels required for subsequent transcoding, so that The remaining rows of pixels can be successfully transcoded into compressed texture blocks in the target compressed texture format, avoiding the discarding of the remaining rows of pixels, which can effectively improve the accuracy of the transcoding results.
- the invalid pixel mentioned above refers to a pixel whose pixel value is a specified value, and the specified value can be set according to experience value or business requirement, for example, the specified value can be 0, 255, etc.
- the computer device can align the current X row of pixels to be aligned according to the alignment frequency of each Y column to obtain N groups of pixels; N is a positive integer, and one group
- the pixels include X rows and Y columns of pixels.
- Y-K columns of invalid pixels can be used to align K columns Pixels are padded into a group of pixels.
- X and Y are both 4, and there are 11 columns of pixels in the current 4 rows of pixels to be aligned; then the computer device can align the first to fourth columns of the current 4 rows of pixels to be aligned into a group of pixels , align the 5th column to the 8th column into a group of pixels, and then there will be 3 remaining columns of pixels. At this time, 1 column of invalid pixels can be used to fill the remaining 3 columns of pixels into a group of pixels.
- the length of the padded K columns of pixels can meet the number of pixels required for subsequent transcoding, so that the K columns of pixels can be successfully transcoded into the target compression
- the compressed texture block in the texture format avoids the discarding of K columns of pixels, which can effectively improve the accuracy of the transcoding result.
- the computer device when it aligns the pixels of P rows and Q columns into multiple groups of pixels according to the target compression block size, it may first use one unit for each Y row, based on the fact that no alignment process has been performed in the Q columns of pixels The remaining columns of pixels to determine the current Y column of pixels to be aligned.
- the current Y column of pixels to be aligned can be selected from the remaining columns of pixels in a selection order from left to right; If the number of columns of the remaining columns of pixels in the Q column that have not been aligned is less than Y, the invalid pixels of the F column can be used to fill the remaining columns of pixels into the pixels of the Y column, and the pixels of the Y column obtained from the filling are determined to be currently pending. Aligned Y columns of pixels, the value of F is equal to the difference between Y and the column number of the remaining columns of pixels.
- the computer device can align the current Y column of pixels to be aligned according to the alignment frequency of each X row to obtain L groups of pixels; L is a positive integer, and one group
- the pixels include X rows and Y columns of pixels.
- X-C rows of invalid pixels can be used to align C row Pixels are aligned into a group of pixels.
- the decoding alignment processing may include: data alignment first and then data decoding processing; the so-called data alignment first and then data decoding processing refers to: firstly, according to the data alignment factor, a plurality of data in the source compressed texture data The source compressed texture block is divided into multiple texture block groups, and then each texture block group is decoded into image texture data.
- the specific implementation of step S203 may include the following steps s21-s23:
- the data alignment factor indicates: the number of source compressed texture blocks required to decode an image texture data; for example, if the data alignment factor is 2, it indicates that decoding an image texture data requires 2 source compressed texture blocks.
- the size of the source compressed block is A ⁇ B
- the size of the target compressed block is X ⁇ Y; based on this, when the computer device executes step s21, it can obtain the least common multiple between A and X as the first least common multiple ; and the ratio between the first least common multiple and A is determined as the row alignment factor.
- the computer device can also obtain the least common multiple between B and Y as the second least common multiple; and determine the ratio between the second least common multiple and B as the column alignment factor.
- the row alignment factor and the column alignment factor can be multiplied to obtain the data alignment factor.
- the so-called least common multiple refers to: the smallest common multiple among all common multiples between two or more values; the so-called common multiple refers to: between two or more values, the common multiple .
- the multiples of the value 4 are 4, 8, 12, 16, 20, 24..., and the multiples of the value 6 are 6, 12, 18, 24, 30...; Then the common multiples of the value 4 and the value 6 are 12, 24, etc., and the least common multiple is 12.
- the computer device when the computer device executes step s21, it may directly execute the step of obtaining the least common multiple between A and X as the first least common multiple; it may also first detect whether the size of the target compressed block is the same as that of the source compressed block, If they are the same, it indicates that the data size of the decoded data obtained by decoding a source compressed texture block must be an integer multiple of the target compressed block size; if they are different, it indicates that the data size of the decoded data obtained by decoding a source compressed texture block may be An integer multiple of the target compressed block size, or possibly not.
- the computer device can determine the unit value (such as a value 1) as the data alignment factor; if the target compressed block size is not equal to the source compressed block size, then perform the calculation of A and The least common multiple between X, as the first least common multiple step.
- the unit value such as a value 1
- the target compressed block size is not equal to the source compressed block size
- the computer device can determine the unit value (such as a value 1) as the data alignment factor; if the target compressed block size is not equal to the source compressed block size, then perform the calculation of A and The least common multiple between X, as the first least common multiple step.
- multiple source compressed texture blocks are divided from the length and width directions respectively to obtain multiple texture block group.
- the computer device can sequentially select two source compressed texture blocks in the length direction and the width direction to form a texture block group, as shown in Figure 3a Show.
- the number of source compressed texture blocks in the length direction (that is, the number of columns of source compressed texture data) is not an integer multiple of the column alignment factor
- one or more columns of invalid source compressed texture blocks can be used in the length direction Perform padding processing on the source compressed texture data, so that the number of columns of the source compressed texture data after padding is equal to an integer multiple of the column alignment factor
- the number of source compressed texture blocks in the width direction (that is, the source compressed texture data number of lines) is not an integer multiple of the line alignment factor
- one or more lines of invalid source compressed texture blocks can be used to fill in the source compressed texture data in the width direction, so that the source compressed texture data after padding
- the number of rows is equal to an integer multiple of the row alignment factor.
- the so-called invalid source compressed texture block refers to a source compressed texture block obtained by compressing and encoding A ⁇ B invalid pixels (such as pixels with a pixel value of 0) using the source compressed texture format.
- the source compressed texture data includes 3 columns of source compressed texture blocks in the length direction; and 4 rows of source compressed texture data in the width direction. Texture blocks. Since the number of columns of the source compressed texture data is equal to 3, which is not an integer multiple of the column alignment factor, and the number of rows of the source compressed texture data is equal to 4, which is an integer multiple of the row alignment factor, the computer device can only be in the length direction, One column of invalid source compressed texture blocks is used to complement the source compressed texture data, so that the source compressed texture data after padding includes 4 columns of source compressed texture blocks (that is, 3 columns of original source compressed texture blocks and 1 column of invalid source compressed texture block). Then, according to the data alignment factor, divide the padded source compressed texture data into multiple texture block groups, one texture block group includes 4 source compressed texture blocks, as shown in Figure 3b.
- the computer device can assign a processing workgroup to each texture block group in the shader of the graphics card, and each processing workgroup has at least a decoding capability; secondly, assign each texture block group to the corresponding processing workgroup group; then, each processing working group can be called in parallel to decode each source compressed texture block in the corresponding texture block group to obtain multiple image texture data.
- parallel decoding can effectively improve decoding efficiency and shorten the duration of the entire image processing process.
- a processing working group in the graphics card shader may also be used to sequentially decode each texture block to obtain multiple image texture data, which is not limited.
- the target compressed texture data includes: one or more transcoded compressed texture blocks corresponding to each image texture data; the so-called transcoded compressed texture block refers to: obtained by transcoding each image texture data, and the data format is Target compressed texture format, compressed texture blocks whose size is the target compressed block size.
- the computer device obtains the image texture data by first decoding the data and then aligning the data when executing step S203, after the computer device performs the data decoding operation through the graphics card shader, it will Control the graphics card shader to output the decoded texture data, so as to perform data alignment on the decoded texture data; therefore, in this case, after the computer device obtains multiple image texture data through data alignment, the multiple image texture data can be input again to the graphics shader for transcoding processing.
- multiple transcoding workgroups for transcoding can be assigned to multiple image texture data, and one transcoding workgroup is assigned one or more image textures data; and, distribute each image texture data to the corresponding transcoding working group; then, call each transcoding working group in parallel to transcode the corresponding image texture data according to the target compressed texture format and target compressed block size Process to get the target compressed texture data of the target image.
- the computer device obtains the image texture data through data alignment first and then data decoding when performing step S203, since the computer device firstly aligns multiple sources
- the compressed texture block is divided into multiple texture block groups, and then the multiple texture block groups are input to the graphics card shader, and the processing working group in the graphics card shader performs data decoding operations on the corresponding texture block groups, and each processing work
- the group also has transcoding capability; therefore, in this case, each processing group in the graphics card shader can directly transcode the corresponding image texture data after decoding the corresponding image texture data, without outputting the decoded Multiple image texture data.
- step S204 when the computer device executes step S204, after any processing working group decodes an image texture data, it can continue to call any processing working group, and use the target compressed texture format and target compressed block size to process the corresponding image texture data Perform transcoding.
- this processing method can call the graphics card shader once to realize data decoding and transcoding processing, so as to obtain the target compressed texture format and obtain the target compressed texture data; by avoiding multiple calls of the graphics card shader, it can effectively reduce the graphics card. The performance impact of the shader, thereby improving the running performance of the graphics card shader, thereby improving the data processing effect.
- the target compressed texture data obtained through steps S201-S204 can be cached in the video memory; then when performing step S205, the computer device can call the graphics card to obtain the target compressed texture data from the video memory, and then The target compressed texture data is decoded to obtain the target texture data in the texture format, and finally the rendering pipeline in the graphics card can be called to render and display the target image according to the target texture data in the texture format.
- the padding processing can also be performed based on the foregoing The corresponding filling position, determine the invalid pixels to be filtered in the target texture data, and filter out these invalid pixels to be filtered in the target texture data, and obtain the filtered target texture data; thus call the rendering pipeline in the graphics card , render and display the target image according to the filtered target texture data.
- the target image rendered and displayed can be made more realistic and the image display effect can be improved.
- the computer device can also upload the target compressed texture data to the block chain, so as to prevent the target compressed texture data from being tampered with.
- the blockchain is composed of multiple blocks, as shown in Figure 3c; the genesis block includes a block header and a block body, and the block header stores the input information feature value, version number, timestamp and difficulty value, and the block The input information is stored in the main body; the next block of the genesis block takes the genesis block as the parent block, and the next block also includes the block header and the block body.
- the block header stores the input information characteristic value of the current block, The block header feature value, version number, time stamp and difficulty value of the parent block, and so on, so that the block data stored in each block in the blockchain is consistent with the block data stored in the parent block Association, which ensures the security of the input information in the block.
- the specific implementation method of uploading the target compressed texture data to the blockchain can be:
- the target compressed texture data can be added to the block body of the target block first, and the target texture data in the block body can be hashed to obtain the Merkle hash value.
- a random number can be generated using a random algorithm, and the calculated Merkle hash value, random number, version number, previous block hash value, current timestamp and current difficulty value are used to form the block of the target block.
- Block header as shown in Figure 3d.
- the version number refers to the version information of the relevant block protocol in the blockchain
- the hash value of the previous block refers to the characteristic value of the block header of the previous block
- the current timestamp refers to the The system time at that time
- the current difficulty value refers to the calculated difficulty value, which is a fixed value within a fixed time period and will be determined again after the fixed time period is exceeded.
- a characteristic value algorithm such as the SHA256 algorithm
- the number of times can be determined according to the difficulty value, and the number of hash operations can be proportional to the difficulty value.
- the target block can be broadcast to each consensus node in the blockchain network for consensus processing; after passing the consensus processing, the target block is added to the blockchain. It should be understood that if the computer equipment is not located in the blockchain network, the target texture data can be sent to any consensus node in the blockchain network, and any consensus node will perform the above steps to compress the target Texture data is stored in the blockchain.
- the computer device may also use cloud technology to perform cloud storage processing on the target compressed texture data.
- cloud technology refers to a hosting technology that unifies a series of resources such as hardware, software, and network in a wide area network or a local area network to realize data calculation, storage, processing, and sharing.
- Cloud technology is a general term for network technology, information technology, integration technology, management platform technology, application technology, etc. based on cloud computing business model applications. It can form a resource pool and be used on demand, which is flexible and convenient. Cloud computing technology will become an important support.
- cloud storage cloud storage
- cloud storage is a new concept extended and developed from the concept of cloud computing. It is a storage system that integrates a large number of different types of storage devices (storage devices are also called storage nodes) in the network to work together through application software or application interfaces, and jointly provide data storage and business access functions.
- the source compressed texture data can be decoded and aligned based on the target compressed block size corresponding to the target compressed texture format adapted to the graphics card to obtain multiple image texture data .
- the data size of each image texture data can be equal to an integer multiple of the target compressed block size; this can facilitate the use of the target compressed texture format and target compressed block size to transcode each image texture data into one or Multiple transcoded compressed texture blocks are stored. Since the transcoded compressed texture blocks obtained after transcoding are in compressed texture format, the amount of data is smaller than that of image texture data, thereby effectively saving video memory usage and improving the operating performance of the graphics card.
- the graphics card when the target image needs to be displayed, the graphics card is called to render and display the target image according to the target compressed texture data including each transcoded compressed texture block; this processing method makes the data loaded from the storage space the target compressed texture format.
- Compressed texture data compared with loading decoded data, because the target compressed texture data has been compressed, the data volume is smaller, so it can also avoid the problem of excessive bus bandwidth usage during data loading.
- the data format of each transcoded compressed texture block is the target compressed texture format adapted to the graphics card, it can also be used to render the display target when calling the graphics card according to the target compressed texture data including each transcoded compressed texture block. When displaying images, the image rendering efficiency is effectively improved, thereby improving the timeliness of image display.
- the embodiment of the present application is also related to the graphics card shader Added storage space for caching transcoded compressed texture blocks of the target compressed texture format in the connected output graphics shader cache block; and, added the following in the input graphics shader cache block:
- Transcoding control parameters which are mainly used to indicate: After decoding and aligning multiple image texture data, each working group in the graphics card shader will continue to transcode each image texture data into the target compressed texture format of transcoded compressed texture blocks;
- the format parameters of the target compressed texture format for example: the target compressed block size corresponding to the target compressed texture format, the alignment size of each row of data, and so on.
- the data alignment factor to be compatible with non-aligned source compressed texture data; the data alignment factor mainly indicates: the number of source compressed texture blocks required for decoding to obtain an image texture data. It should be noted that if the method of data alignment first and then data decoding is used, the input graphics card shader cache block includes the data alignment factor; if the method of data decoding first and then data alignment is used, the input graphics card shader cache block The data alignment factor may not be included in .
- FIG. 4a exemplarily shows a general flow of executing the image processing method shown in FIG. 2 in a computer device.
- the decoding pipeline in the computer device can be initialized first, and the shader decoding file (shader decoding file) can be loaded.
- a number of algorithmic instructions for decoding the data, and a transcoding algorithm for transcoding the texture format into the target compressed texture format is also added.
- the shader decoding file can be transferred to the graphics card shader of the computer device; then, any of the following processing methods can be used to obtain the target compressed texture data in the target compressed texture format:
- the first processing method is shown in Figure 4b: first, the relevant decoding parameters of the source compressed texture data and the source compressed texture data of the target image can be input to the graphics card shader in the computer device by inputting the graphics card shader cache block; Wherein, the relevant decoding parameters of the source compressed texture data can be used to indicate: the source compressed texture format adopted by the target image.
- the graphics card shader can decode the source compressed texture data into decoded texture data in texture format according to the relevant decoding parameters; specifically, the graphics card shader can allocate a source compressed texture block in the source compressed texture data for decoding The target working group, and dispatch each source compressed texture block to the corresponding target working group, and each target working group decodes the corresponding compressed texture block in parallel according to the relevant decoding parameters to obtain the decoded texture data of the target image .
- the method for any target working group to decode the corresponding compressed texture block according to the relevant decoding parameters is as follows: first obtain the algorithm instruction for decoding the source compressed texture block from the shader decoding file according to the relevant decoding parameters, and use the acquired The algorithm instruction decodes the corresponding source compressed texture block to obtain the decoded data corresponding to the corresponding source compressed texture block.
- the shader decoding file may include: a first algorithm instruction for decoding compressed texture data in the ASTC format, a second algorithm instruction for decoding compressed texture data in the ETC format, etc. If the relevant decoding parameters of the source compressed texture data of the target image are used to indicate that the source compressed texture format adopted by the target image is in the ASTC format, the first algorithm instruction can be obtained from the shader file according to the relevant decoding parameters, and the The first algorithm instruction decodes the corresponding source compressed texture block.
- the second algorithm instruction can be obtained from the shader file according to the relevant decoding parameters, and the The second algorithm instruction decodes the corresponding source compressed texture block.
- any target working group gets the decoded data, it can cache the decoded data into the output shader cache block connected to the graphics card shader; the decoded data corresponding to each source compressed texture block is cached into the output shader cache block
- the decoded texture data of the target image can be obtained, and the decoded texture data can include decoded data corresponding to each source compressed texture block.
- the computer device can align the decoded texture data into multiple image texture data according to the target compression block size; then, input the aligned multiple image texture data into the graphics card shader cache block again.
- the graphics card shader in the computer device so that the graphics card shader respectively transcodes each image texture data into one or more transcoded compressed texture blocks in the target compressed texture format.
- the graphics card shader can calculate the shader cache block offset address corresponding to any transcoded compressed texture block in the storage space, and then use any transcoded compressed texture block The block is cached to the cache location indicated by the calculated shader cache block offset address; after all the transcoded compressed texture blocks are cached in the storage space, the target compressed texture data can be obtained.
- the second processing method is shown in Figure 4c: the computer device can first calculate the data alignment factor according to the size of the target compression block and the size of the source compression block; then, the data alignment factor and the target
- the source compressed texture data of the image is input to the graphics card shader in the computer device, so that the graphics card shader decodes and transcodes the source compressed texture data according to the data alignment factor to obtain the target compressed texture data.
- the graphics card shader can first divide multiple source compressed texture blocks into multiple texture block groups according to the data alignment factor, and the number of source compressed texture blocks included in a texture block group is equal to the number indicated by the data alignment factor.
- the graphics card shader can calculate the shader cache block offset address corresponding to any transcoded compressed texture block in the storage space, and then use any transcoded compressed texture block The block is cached to the cache location indicated by the calculated shader cache block offset address; after all the transcoded compressed texture blocks are cached in the storage space, the target compressed texture data can be obtained.
- the graphics card shader can also output Involved error data, so that relevant technicians can promptly analyze the reasons for decoding failure or transcoding failure based on the error data.
- the image processing method mentioned above in the embodiment of the present application can be applied to various application scenarios that require image display, such as cloud game scenarios, common game scenarios, video playback scenarios, and so on.
- the computer device mentioned above may be a cloud game server running a cloud game.
- the cloud game server may include: a device hardware layer, a virtualization layer (Hypervisor), and one or more containers, and so on.
- the device hardware layer may include but not limited to: CPU (central processing unit), graphics card, network communication module, and local space for storage, etc.; the graphics card may include but not limited to: graphics card shader, decoding pipeline and rendering pipeline, And the graphics card shader works according to the flow specified by the decoding pipeline.
- the virtualization layer is mainly used to implement a virtual environment exactly the same as the physical host environment in the form of software; the cloud game server can deploy and run one or more containers through the virtualization layer.
- the so-called container refers to the operating system level A type of virtualization that can be used to host an operating system.
- Each container can be connected to one or more game clients, and each container can be used to run one or more cloud games; each container can transmit the game of any cloud game during the process of running any cloud game The screen is displayed on the connected game client.
- the embodiment of the present application further proposes the image processing method shown in Figure 5b; referring to Figure 5b, the image processing method may include the following steps S501-S509:
- the rendering pipeline loads the source compressed texture data of the target image from the local space of the computer device; wherein, the target image may be any game screen in the target cloud game.
- the rendering pipeline detects the transcoding capability of the decoding pipeline with respect to the target compressed texture format.
- a transcoding function can be pre-configured for the computer device.
- the transcoding function includes two states: the function-on state and the function-off state; the function-on state is used to indicate that the decoding pipeline has transcoding capability, and the function-off state is used to indicate The decode pipeline does not have transcoding capability.
- the rendering relationship detects the transcoding capability of the decoding pipeline for the target compressed texture format
- the current functional status of the transcoding function can be obtained; if the current functional status is the function enabled state, it can be determined that the decoding pipeline has transcoding capabilities Capability; if the current function state is the function off state, it can be determined that the decoding pipeline has no transcoding capability detected.
- the rendering pipeline calculates a data alignment factor according to the size of the target compressed block and the size of the source compressed block.
- the rendering pipeline distributes the data alignment factor and the source compressed texture data to the decoding pipeline.
- the graphics card shader divides the multiple source compressed texture blocks into multiple texture block groups according to the data alignment factor.
- the graphics card shader performs decoding processing on each texture block group to obtain a plurality of image texture data.
- the graphics card shader uses the target compressed texture format and the target compressed block size to transcode the texture data of each image to obtain the target compressed texture data of the target image.
- the rendering pipeline renders and displays the target image according to the target compressed texture data.
- the rendering pipeline calculates the data alignment factor according to the size of the target compression block and the size of the source compression block.
- the graphics card shader divides multiple source compression texture blocks according to the data alignment factor
- the graphics card decoding mode refers to a mode for decoding processing through a graphics card shader; then, in the process of step S502, if the rendering pipeline detects that the decoding pipeline does not have the transcoding capability, Then the rendering pipeline can further detect the mode state of the graphics card decoding mode, and the mode state includes the mode on state or the mode off state.
- the mode state is the mode-on state, the rendering pipeline distributes the source compressed texture data to the decoding pipeline; the decoding pipeline notifies the graphics card shader to decode the source compressed texture data to obtain the decoded texture data of the target image.
- the rendering pipeline can render and display the target image according to the decoded texture data.
- the mode state is the mode off state
- the rendering pipeline can call the CPU of the graphics card driver to decode the source compressed texture data, and transcode the decoded decoded texture data into the target compressed texture data; in this case, when needed
- the rendering pipeline renders and displays the target image according to the target compressed texture data.
- the embodiment of the present application takes the target image as an example of any game screen in the target cloud game
- the target image is other images (such as the game screen of a normal game)
- the image processing method shown in Fig. 5b is still applicable when there is a picture, a video image of any film and television drama, a selfie image of any user, a landscape image of any scenic spot, etc.).
- the embodiment of the present application utilizes the powerful floating-point computing and parallel computing capabilities of the graphics card (such as AMD 5100 and NVIDA T4) in the cloud game server to quickly transcode the source compressed texture data of any game screen in the target cloud game into a cloud game Target compressed texture data in the target compressed texture format supported by the graphics card in the server, so as to solve the problem of excessive video memory usage and the problem of excessive bus bandwidth usage during texture loading, thereby improving the video memory utilization of the cloud game server, and solving cloud games Due to the high video memory usage of the server, the concurrent instances of Formosight are limited, so as to improve the utilization rate of the video memory of the Formosight server and reduce operating costs.
- the graphics card such as AMD 5100 and NVIDA T4
- the embodiment of the present application respectively analyzes the image processing method mentioned in the background technology (referred to as scheme 1) and the proposed embodiment of the present application in the cloud game scene.
- the image processing method (referred to as Scheme 2) was tested and compared:
- plan 1 and plan 2 are used respectively to process the source compressed texture data in ETC2 format and ASTC format in different sizes;
- the GPU usage time of the statistical results can be found in Table 1 below:
- ETC2 plan 1 Scenario 2 ASTC format plan 1 Scenario 2 256 ⁇ 256 0ms 0ms 256 ⁇ 256 1ms 1ms 512 ⁇ 512 1ms 0ms 512 ⁇ 512 2ms 2ms 1024 ⁇ 1024 3ms 3ms 1024 ⁇ 1024 5ms 6ms 2048 ⁇ 1024 7ms 7ms 2048 ⁇ 1024 9ms 10ms
- the embodiment of this application adopts two sets of test configuration parameters for the same target cloud game, and makes statistics on the video memory usage of the target cloud game after using the existing solution 1 and the application's solution 2 respectively.
- the two sets of test configuration parameters used are: 11080 ⁇ 720, high definition (frame rate energy saving, resolution energy saving, high-definition image quality); 21080 ⁇ 720, standard definition (frame rate energy saving, resolution energy saving, image quality standard definition); Under these two sets of test configuration parameters, the statistical results involved in scheme 1 and scheme 2 can be specifically shown in the following table 2:
- the embodiment of the present application further adopts the above two sets of test configuration parameters in the 5V5 (5 users vs. 5 users) game battle scene of the target cloud game, and uses the existing solutions 1 and 5 respectively for the target cloud game.
- the video memory occupation after the scheme 2 of the present application has been counted, and the statistical results can be specifically shown in the following table 3:
- Solution 2 mentioned in this application can effectively save video memory overhead, significantly reduce the problem of video memory occupation, and improve the server’s video memory utilization while ensuring the smoothness of the game, thereby improving
- the number of concurrent games of the overall cloud game server for example, a cloud game server with a single-card video memory of 10G
- Solution 1 makes the target cloud game under high-definition image quality due to the influence of video memory, so that the number of concurrent games can only be limited to 10; but With the solution 2 proposed in this application, the number of concurrent games can be increased to 20 due to the saving of video memory overhead.
- the embodiment of the present application also discloses an image processing device, and the image processing device may be a computer program (including program code) running on a computer device.
- the image processing device may execute the method shown in FIG. 2 or FIG. 5b. Please refer to Figure 6, the image processing device can run the following units:
- An acquisition unit 601 configured to acquire source compressed texture data of a target image, where the source compressed texture data is obtained by encoding the target image using a source compressed texture format;
- a processing unit 602 configured to determine a target compressed texture format adapted to the graphics card and a target compressed block size corresponding to the target compressed texture format if the source compressed texture format is not compatible with the graphics card;
- the processing unit 602 is further configured to decode and align the source compressed texture data based on the target compressed block size to obtain a plurality of image texture data, and the data size of each image texture data is equal to the target compressed block size Integer multiples of
- the processing unit 602 is further configured to use the target compressed texture format and the target compressed block size to transcode the texture data of each image to obtain the target compressed texture data of the target image.
- the texture data includes: one or more transcoded compressed texture blocks corresponding to each image texture data;
- the processing unit 602 is further configured to call the graphics card to render and display the target image according to the target compressed texture data when the target image needs to be displayed.
- the size of the target compressed block is X ⁇ Y, and the X ⁇ Y means that X rows and Y columns of pixels are compressed into one block, and X and Y are integers greater than 1; correspondingly, the processing unit When 602 is used to decode and align the source compressed texture data based on the target compressed block size to obtain multiple image texture data, it may be specifically used for:
- the decoded texture data includes P rows and Q columns of pixels, and P and Q are integers greater than 1;
- the pixels in the P rows and Q columns are aligned into multiple groups of pixels; each group of pixels includes X rows and Y columns of pixels, and the decoded texture data of a group of pixels constitutes corresponding image texture data.
- processing unit 602 when used to align pixels in rows P and columns Q into multiple groups of pixels according to the target compression block size, it may be specifically used for:
- the X row of pixels to be aligned is currently aligned to obtain N groups of pixels;
- N is a positive integer, and a group of pixels includes X rows and Y columns of pixels;
- processing unit 602 when used to determine the current X row of pixels to be aligned based on the remaining rows of pixels in the P row of pixels that have not been aligned with each X row as a unit, it may specifically use At:
- the processing unit 602 when the processing unit 602 is configured to use the target compressed texture format and the target compressed block size to perform transcoding processing on the texture data of each image to obtain the target compressed texture data of the target image , which can be used specifically for:
- a plurality of transcoding workgroups for transcoding are assigned to the plurality of image texture data, one transcoding workgroup is assigned one or more image texture data; and, each image texture data Distributed to the corresponding transcoding working group;
- Each transcoding working group is called in parallel, and the corresponding image texture data is transcoded according to the target compressed texture format and the target compressed block size, so as to obtain the target compressed texture data of the target image.
- the source compressed texture data includes multiple source compressed texture blocks, and the size of each source compressed texture block is the source compressed block size corresponding to the source compressed texture format; correspondingly, the processing unit When 602 is used to decode and align the source compressed texture data based on the target compressed block size to obtain multiple image texture data, it may be specifically used for:
- Each texture block group is decoded separately to obtain a plurality of image texture data, and one texture block group corresponds to one image texture data.
- the size of the source compression block is A ⁇ B, and the A ⁇ B means that pixels in rows A and B columns are compressed into one block;
- the size of the target compression block is X ⁇ Y, and the X ⁇ Y means to compress pixels in X rows and Y columns into one block; wherein, A, B, X, and Y are all integers greater than 1;
- the processing unit 602 is used to compress the block size according to the target and the
- the source compression block size, when calculating the data alignment factor, can be used specifically for:
- processing unit 602 when used to calculate the data alignment factor according to the target compression block size and the source compression block size, it may also be specifically used for:
- the target compressed block size is equal to the source compressed block size, then determine a unit value as the data alignment factor
- the target compressed block is not equal to the size of the source compressed block, then perform the step of finding the least common multiple between A and X as the first least common multiple.
- processing unit 602 when the processing unit 602 is used to decode each texture block group to obtain multiple image texture data, it can be specifically used for:
- Each processing working group is invoked in parallel to decode each source compressed texture block in the corresponding texture block group to obtain a plurality of image texture data.
- each processing working group also has transcoding capability; correspondingly, the processing unit 602 is configured to use the target compressed texture format and the target compressed block size to process each image texture data When performing transcoding processing to obtain the target compressed texture data of the target image, it can be specifically used for:
- any image texture data is decoded by any processing working group, continue to call the any processing working group, and use the target compressed texture format and the target compressed block size to perform transcoding processing on the corresponding image texture data.
- the graphics card is set in a computer device, and the computer device also includes a rendering pipeline and a decoding pipeline; wherein, the graphics card shader in the graphics card works according to the flow specified by the decoding pipeline; correspondingly Yes, when the acquisition unit 601 is used to acquire the source compressed texture data of the target image, it may be specifically configured to: load the source compressed texture data of the target image from the local space of the computer device through the rendering pipeline;
- processing unit 602 can also be used for:
- the step of calculating a data alignment factor according to the target compression block size and the source compression block size is performed through the rendering pipeline;
- a decoding notification is sent to the graphics card shader to notify the graphics card shader to execute the alignment factor according to the data, The step of dividing the plurality of source compressed texture blocks into a plurality of texture block groups.
- the computer device has a graphics card decoding mode
- the graphics card decoding mode refers to a mode in which the graphics card shader performs decoding processing
- the processing unit 602 can also be used for:
- the mode state of the decoding mode of the graphics card is detected through the rendering pipeline, and the mode state includes a mode-on state or a mode-off state;
- the rendering pipeline is used to render and display the target image according to the decoded texture data.
- processing unit 602 may also be used to:
- the mode state is the mode off state
- the target image When the target image needs to be displayed, the target image is rendered and displayed through the rendering pipeline according to the target compressed texture data.
- the various units in the image processing device shown in FIG. 6 can be respectively or all combined into one or several other units to form, or some (some) units can be further disassembled. Divided into a plurality of functionally smaller units, this can achieve the same operation without affecting the realization of the technical effects of the embodiments of the present application.
- the above-mentioned units are divided based on logical functions. In practical applications, the functions of one unit may also be realized by multiple units, or the functions of multiple units may be realized by one unit. In other embodiments of the present application, the image processing-based device may also include other units. In practical applications, these functions may also be implemented with the assistance of other units, and may be implemented cooperatively by multiple units.
- a general-purpose computing device such as a computer including processing elements such as a central processing unit (CPU), a random access storage medium (RAM), and a read-only storage medium (ROM) and storage elements.
- processing elements such as a central processing unit (CPU), a random access storage medium (RAM), and a read-only storage medium (ROM) and storage elements.
- Running a computer program capable of executing the steps involved in the corresponding method as shown in FIG. 2 or FIG. 5b, to construct the image processing device as shown in FIG. image processing method.
- the computer program can be recorded in, for example, a computer-readable recording medium, loaded into the above-mentioned computing device through the computer-readable recording medium, and executed therein.
- the source compressed texture data can be decoded and aligned based on the target compressed block size corresponding to the target compressed texture format adapted to the graphics card to obtain multiple image texture data .
- the data size of each image texture data can be equal to an integer multiple of the target compressed block size; this can facilitate the use of the target compressed texture format and target compressed block size to transcode each image texture data into one or Multiple transcoded compressed texture blocks are stored. Since the transcoded compressed texture blocks obtained after transcoding are in compressed texture format, the amount of data is smaller than that of image texture data, thereby effectively saving video memory usage and improving the operating performance of the graphics card.
- the graphics card when the target image needs to be displayed, the graphics card is called to render and display the target image according to the target compressed texture data including each transcoded compressed texture block; this processing method makes the data loaded from the storage space the target compressed texture format.
- Compressed texture data compared with loading decoded data, because the target compressed texture data has been compressed, the data volume is smaller, so it can also avoid the problem of excessive bus bandwidth usage during data loading.
- the data format of each transcoded compressed texture block is the target compressed texture format adapted to the graphics card, it can also be used to render the display target when calling the graphics card according to the target compressed texture data including each transcoded compressed texture block. When displaying images, the image rendering efficiency is effectively improved, thereby improving the timeliness of image display.
- an embodiment of the present application further provides a computer device.
- the computer equipment at least includes a graphics card 701, an input interface 702, an output interface 703, and a computer storage medium 704; or connect in other ways.
- the graphics card 701 may further include a graphics processor 7011, a graphics card shader 7012, a decoding pipeline 7013, and a rendering pipeline 7014.
- the computer storage medium 704 may be stored in a memory of a computer device, the computer storage medium 704 is used for storing computer-readable instructions, and the processor 701 is used for executing the computer-readable instructions stored in the computer storage medium 704 .
- the computer device may further include a central processing unit 705 (Central Processing Unit, CPU), which is the computing core and control core of the computer device, which is suitable for implementing one or more computer-readable instructions, specifically It is suitable for loading and executing one or more computer readable instructions so as to realize corresponding method flow or corresponding function.
- CPU Central Processing Unit
- the graphics card 701 described in the embodiment of the present application can be used to perform a series of image processing, specifically including: obtaining the source compressed texture data of the target image, and the source compressed texture data is obtained by using the source compressed texture format to process the image.
- the target image is encoded; if the source compressed texture format is not compatible with the graphics card, then determine the target compressed texture format compatible with the graphics card, and the target compressed texture format corresponding to the target compression block size; based on the The target compression block size performs decoding and alignment processing on the source compressed texture data to obtain a plurality of image texture data, and the data size of each image texture data is equal to an integer multiple of the target compression block size; using the target compression texture format and the target compressed block size, perform transcoding processing on each image texture data to obtain the target compressed texture data of the target image, and the target compressed texture data includes: one or more transcodes corresponding to each image texture data code to compress the texture block; when the target image needs to be displayed, call the graphics card to render and display the target image according to the target compressed texture data, and so on.
- the embodiment of the present application also provides a computer storage medium (Memory).
- the computer storage medium is a memory device in a computer device, and is used for storing computer-readable instructions and data. It can be understood that the computer storage medium here may include a built-in storage medium in the computer device, and certainly may include an extended storage medium supported by the computer device.
- a computer storage medium provides a storage space that stores an operating system of a computer device.
- one or more computer-readable instructions adapted to be loaded and executed by the graphics card 701 are also stored in the storage space, and these computer-readable instructions may be one or more computer programs (including program codes).
- the computer storage medium here can be a high-speed RAM memory, or a non-volatile memory (non-volatile memory), such as at least one disk memory; computer storage media.
- one or more computer-readable instructions stored in the computer storage medium can be loaded and executed by the graphics card 701, so as to implement the corresponding steps of the method in the above-mentioned embodiment of the image processing method shown in FIG. 2 or FIG. 5b ;
- one or more computer-readable instructions in the computer storage medium are loaded by the graphics card 701 and perform the following steps:
- the source compressed texture format is not compatible with the graphics card, then determine a target compressed texture format adapted to the graphics card, and a target compressed block size corresponding to the target compressed texture format;
- each image texture data is transcoded to obtain the target compressed texture data of the target image, and the target compressed texture data includes: each image texture data Corresponding one or more transcoded compressed texture blocks;
- the graphics card is invoked to render and display the target image according to the target compressed texture data.
- the size of the target compressed block is X ⁇ Y, and the X ⁇ Y indicates that pixels in rows X and columns Y are compressed into one block, and X and Y are integers greater than 1; correspondingly, based on The target compressed block size performs decoding and alignment processing on the source compressed texture data, and when multiple image texture data are obtained, the one or more instructions are loaded and executed by the graphics card 701:
- the decoded texture data includes P rows and Q columns of pixels, and P and Q are integers greater than 1;
- the pixels in the P rows and Q columns are aligned into multiple groups of pixels; each group of pixels includes X rows and Y columns of pixels, and the decoded texture data of a group of pixels constitutes corresponding image texture data.
- the one or more instructions are loaded and executed by the graphics card 701:
- the X row of pixels to be aligned is currently aligned to obtain N groups of pixels;
- N is a positive integer, and a group of pixels includes X rows and Y columns of pixels;
- the one or more instructions are composed of Graphics card 701 loads and executes:
- the one or Multiple instructions are loaded and executed by the graphics card 701:
- a plurality of transcoding workgroups for transcoding are assigned to the plurality of image texture data, one transcoding workgroup is assigned one or more image texture data; and, each image texture data Distributed to the corresponding transcoding working group;
- Each transcoding working group is called in parallel, and the corresponding image texture data is transcoded according to the target compressed texture format and the target compressed block size, so as to obtain the target compressed texture data of the target image.
- the source compressed texture data includes multiple source compressed texture blocks, and the size of each source compressed texture block is the source compressed block size corresponding to the source compressed texture format; correspondingly, based on The target compressed block size performs decoding and alignment processing on the source compressed texture data, and when multiple image texture data are obtained, the one or more instructions are loaded and executed by the graphics card 701:
- Each texture block group is decoded separately to obtain a plurality of image texture data, and one texture block group corresponds to one image texture data.
- the size of the source compression block is A ⁇ B, and the A ⁇ B means that pixels in rows A and B columns are compressed into one block;
- the size of the target compression block is X ⁇ Y, and the X ⁇ Y means to compress pixels in X rows and Y columns into one block; wherein, A, B, X, and Y are all integers greater than 1; correspondingly, according to the size of the target compression block and the size of the source compression block,
- the one or more instructions are loaded and executed by the graphics card 701:
- the one or more instructions may also be loaded and executed by the graphics card 701:
- the target compressed block size is equal to the source compressed block size, then determine a unit value as the data alignment factor
- the target compressed block is not equal to the size of the source compressed block, then perform the step of finding the least common multiple between A and X as the first least common multiple.
- the one or more instructions are loaded and executed by the graphics card 701:
- Each processing working group is invoked in parallel to decode each source compressed texture block in the corresponding texture block group to obtain a plurality of image texture data.
- each processing working group also has a transcoding capability; correspondingly, when the target compressed texture format and the target compressed block size are used, each image texture data is transcoded, When the target compressed texture data of the target image is obtained, the one or more instructions are loaded and executed by the graphics card 701:
- any processing working group decodes and obtains an image texture data
- continue to call the any processing working group adopt the target compressed texture format and the target compressed block size, and perform transcoding processing on the corresponding image texture data to obtain The target compressed texture data for the target image.
- the graphics card is set in a computer device, and the computer device also includes a rendering pipeline and a decoding pipeline; wherein, the graphics card shader in the graphics card works according to the flow specified by the decoding pipeline; correspondingly
- the one or more instructions are loaded and executed by the graphics card 701: load the source compressed texture data of the target image from the local space of the computer device through the rendering pipeline ;
- the one or more instructions can also be loaded and executed by the graphics card 701:
- the step of calculating a data alignment factor according to the target compression block size and the source compression block size is performed through the rendering pipeline;
- a decoding notification is sent to the graphics card shader to notify the graphics card shader to execute the alignment factor according to the data, The step of dividing the plurality of source compressed texture blocks into a plurality of texture block groups.
- the computer device has a graphics card decoding mode
- the graphics card decoding mode refers to a mode for decoding processing through the graphics card shader; correspondingly, the one or more instructions can also be loaded by the graphics card 701 and execute:
- the mode state of the decoding mode of the graphics card is detected through the rendering pipeline, and the mode state includes a mode-on state or a mode-off state;
- the rendering pipeline is used to render and display the target image according to the decoded texture data.
- the one or more instructions may also be loaded and executed by the graphics card 701:
- the mode state is the mode off state
- the target image When the target image needs to be displayed, the target image is rendered and displayed through the rendering pipeline according to the target compressed texture data.
- the source compressed texture data can be decoded and aligned based on the target compressed block size corresponding to the target compressed texture format adapted to the graphics card to obtain multiple image texture data .
- the data size of each image texture data can be equal to an integer multiple of the target compressed block size; this can facilitate the use of the target compressed texture format and target compressed block size to transcode each image texture data into one or Multiple transcoded and compressed texture blocks are stored, which effectively saves video memory usage and improves graphics card performance.
- the graphics card is called to render and display the target image according to the target compressed texture data including each transcoded compressed texture block; this processing method makes the data loaded from the storage space the target compressed texture data, which is relatively Compared with loading decoded data, the data volume of the target compressed texture data is smaller, so the problem of excessive bus bandwidth occupation during data loading can also be avoided.
- the data format of each transcoded compressed texture block is the target compressed texture format adapted to the graphics card, it can also be used to render the display target when calling the graphics card according to the target compressed texture data including each transcoded compressed texture block. When displaying images, the image rendering efficiency is effectively improved, thereby improving the timeliness of image display.
- a computer-readable instruction product includes computer-readable instructions, and the computer-readable instructions are stored in a computer-readable storage medium.
- the processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes various optional modes of the embodiment of the image processing method shown in FIG. 2 or FIG. 5b above. method provided in .
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Image Generation (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本申请实施例公开了一种图像处理方法、装置、计算机设备、存储介质和计算机程序产品,其中方法包括:获取目标图像的源压缩纹理数据,源压缩纹理数据是采用源压缩纹理格式对目标图像进行编码得到的;若源压缩纹理格式与显卡不兼容,则确定与显卡适配的目标压缩纹理格式,以及目标压缩纹理格式对应的目标压缩块尺寸;基于目标压缩块尺寸对源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据;采用目标压缩纹理格式以及目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据;在需显示目标图像时,调用显卡根据目标压缩纹理数据,渲染显示目标图像。
Description
本申请要求于2021年08月03日提交中国专利局,申请号为202110888511.1,申请名称为“图像处理方法、装置、计算机设备及存储介质”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及互联网技术领域,具体涉及图像处理技术领域,尤其涉及一种图像处理方法、装置、计算机设备、存储介质和计算机可读指令产品。
目前,图像制作者在制作图像的过程中,为了节省图像的占用内存以及传输图像所需的网络资源,通常会采用源压缩纹理格式对图像进行压缩编码,得到该图像的源压缩纹理数据,从而向外界发布该源压缩纹理数据。相应的,外界的任一设备在获取到该图像的源压缩纹理数据后,若检测到源压缩纹理格式与显卡不兼容,则该任一设备通常会直接对该源压缩纹理数据进行解码,并存储解码得到的解码纹理数据,以便于后续根据该解码纹理数据进行图像的渲染显示。虽然,这样的图像处理方式可解决源压缩纹理数据的数据格式和显卡不兼容的问题,但是会导致显存占用过大,影响显卡的运行性能。
发明内容
根据本申请的各种实施例,提供一种图像处理方法、装置、计算机设备、存储介质和计算机可读指令产品。
一种图像处理方法,由计算机设备执行,所述方法包括:
获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;
若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;
基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;
采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;
在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
一种图像处理装置,所述装置包括:
获取单元,用于获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;
处理单元,用于若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;
所述处理单元,还用于基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;
所述处理单元,还用于采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;
所述处理单元,还用于在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机可读指令,所述处理器执行所述计算机可读指令时实现以下步骤:
获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;
若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;
基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;
采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;
在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
一种计算机存储介质,其上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现以下步骤:
获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;
若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;
基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;
采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;
在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
一种计算机可读指令产品,包括计算机可读指令,其特征在于,该计算机可读指令被处理器执行时实现以下步骤:
获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;
若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;
基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;
采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;
在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
本申请的一个或多个实施例的细节在下面的附图和描述中提出。本申请的其它特征、目的和优点将从说明书、附图以及权利要求书变得明显。
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的一种像素压缩编码的示意图;
图1b是本申请实施例提供的一种源压缩纹理块和转码压缩纹理块的对应关系示意图;
图1c是本申请实施例提供的另一种源压缩纹理块和转码压缩纹理块的对应关系示意图;
图2是本申请实施例提供的一种图像处理方法的流程示意图;
图3a是本申请实施例提供的一种按照数据对齐因子,将多个源压缩纹理块划分成多个纹理块组的示意图;
图3b是本申请实施例提供的另一种按照数据对齐因子,将多个源压缩纹理块划分成多个纹理块组的示意图;
图3c是本申请实施例提供的一种区块链的结构示意图;
图3d是本申请实施例提供的一种将目标压缩纹理数据添加至区块链的示意图;
图4a是本申请实施例提供的一种在计算机设备中执行图像处理方法的流程示意图;
图4b是本申请实施例提供的一种计算机设备通过显卡着色器得到目标压缩纹理数据的示意图;
图4c是本申请实施例提供的另一种计算机设备通过显卡着色器得到目标压缩纹理数据的示意图;
图5a是本申请实施例提供的一种云游戏服务器的结构示意图;
图5b是本申请另一实施例提供的一种图像处理方法的流程示意图;
图6是本申请实施例提供的一种图像处理装置的结构示意图;
图7是本申请实施例提供的一种计算机设备的结构示意图。
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
基于计算机视觉技术中的图像处理技术,本申请实施例提出了一种在计算机设备中执行的图像处理方案;该图像处理方案主要用于在目标图像的源压缩纹理数据的数据格式(即源压缩纹理格式)和计算机设备中的显卡不兼容时,将源压缩纹理数据转换成与显卡适配的目标压缩纹理格式的目标压缩纹理数据,从而避免显卡占用过大的情况,进而提升显卡的运行性能。其中,源压缩纹理格式则是指:图像制作者在制作目标图像的过程中所采用的压缩纹理格式,而目标压缩纹理格式则是指:与显卡适配的压缩纹理格式。所谓的压缩纹理格式是指:以压缩纹理块(简称块(block))为单位,对图像进行像素压缩存储的格式;任一压缩纹理格式均对应一个或多个压缩块尺寸,该压缩块尺寸主要用于指示每个block压缩的像素个数的范围;例如,压缩块尺寸为4×4,则可用于指示每个block压缩的像素个数为4×4,即该4×4可表示每次对4行4列个像素进行压缩以得到一个block(采用B表示),如图1a所示。由此可见,采用源压缩纹理格式对目标图像进行编码所得到的源压缩纹理数据,通常可包括多个源压缩纹理块;需说明的是,本申请实施例所提及的“多个”的含义均是指至少两个。
在具体实现中,该图像处理方案的大致原理如下:首先,可先基于目标压缩纹理格式对应的压缩块尺寸(后续简称目标压缩块尺寸),对源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于目标压缩块尺寸的整数倍。进一步的,由于每个图像纹理数据的数据尺寸是目标压缩块尺寸的整数倍,因此可按照该目标压缩块尺寸,将每个图像纹理数据转码成整数个的目标压缩纹理格式的压缩纹理块(后续称为转码纹理块);在得到每个图像纹理数据对应的一个或多个转码压缩纹理块后,便可结束转码流程,得到目标压缩纹理格式的目标压缩纹理数据,目标压缩纹理数据包括:各个图像纹理数据所对应的转码压缩纹理块。
基于上述图像处理方案的相关描述,需说明以下几点:
①源压缩纹理数据的数据格式(即源压缩纹理格式)所对应的压缩块尺寸(后续称为源压缩块尺寸),与目标压缩纹理格式对应的压缩块尺寸(后续称为目标压缩块尺寸)可相同,也可不同,对此不作限定。例如,源压缩块尺寸可以为6×6,而目标压缩块尺寸可以为4×4;又如,源压缩块尺寸和目标压缩块尺寸均可以为4×4,等等。
②当源压缩块尺寸和目标压缩块尺寸相同时,源压缩纹理数据中的一个源压缩纹理块(采用B1表示),对应一个目标压缩纹理数据中的一个转码压缩纹理块(采用B2表示),如图1b所示。也就是说,当源压缩块尺寸和目标压缩块尺寸相同时,源压缩纹理数据包括的源压缩纹理块的数量,和目标压缩纹理数据包括的转码压缩纹理块的数量相同。当源压缩块尺寸和目标压缩块尺寸不同时,可以是源压缩纹理数据中的一个源压缩纹理块,对应一个目标压缩纹理数据中的多个转码压缩纹理块,如若源压缩块尺寸为8×8,目标压缩块尺寸为4×4,则1个源压缩纹理块可对应4个转码压缩纹理块,如图1c所示;也可以是多个源压缩纹理块对应一个转码压缩纹理块,如若源压缩块尺寸为4×4,目标压缩块尺寸为8×8,则4个源压缩纹理块可对应1个转码压缩纹理块;还可以是E个源压缩纹理块对应F个转码压缩纹理块,E和F均为大于1的整数,如若源压缩块尺寸为6×6,目标压缩块尺寸为4×4,则4个源压缩纹理块可对应9个转码压缩纹理块。也就是说,当源压缩块尺寸和目标压缩块尺寸不同时,源压缩纹理数据包括的源压缩纹理块的数量,和目标压缩纹理数据包括的转码压缩纹理块的数量不同。
③上述所提及的计算机设备可以是终端或者服务器,对此不作限定;此处所提及的终端可以包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能手表、智能电视,等等;终端内可运行各式各样的客户端(application,APP),如游戏客户端、多媒体客户端、社交客户端,等等。此处所提及的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、及大数据和人工智能平台等基础云计算服务的云服务器,等等。
进一步的,计算机设备中的显卡是一种以GPU(Graphics Processing Unit,图形处理器)为中心,且用于承担输出显示图像的任务的器件;为了提升解码对齐处理效率,本申请实施例中的显卡可至少包括:GPU、渲染管线、计算着色器解码管线(后续简称解码管线),以及显卡计算着色器(后续简称为显卡着色器)等等。其中:①渲染管线又可称为渲染流水线,是显卡内部处理图形信号相互独立的并行处理单元,其可用于实现图像的渲染显示。②解码管线是一种用于指示显卡着色器的处理流程的处理单元,即本申请实施例中的显卡着色器按照解码管线规定的流程进行工作。③显卡着色器是指在显卡中运行的处理单元,其可包括M个工作组(work group),所谓的工作组可理解成是显卡着色器中具有解码处理能力和转码处理能力的子处理单元;各个工作组之间相互独立,M为大于1的整数。显卡着色器可与用于数据输入的输入显卡着色器缓存块,以及用于数据输出的输出显卡着色器缓存块相连接。 在该计算机设备中执行上述的图像处理方案时,主要可利用显卡着色器中的工作组执行相关数据的解码操作和转码操作,具体请参见下述方法实施例的相关描述。
另外,该计算机设备可以位于区块链网络外,也可以位于区块链网络内,对此不作限定;所谓的区块链网络是一种由点对点网络(P2P网络)和区块链所构成的网络,而区块链则是指一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式,其本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块(或称为区块)。当计算机设备位于区块链网络内,或者与区块链网络存在通信连接时,计算机设备可将内部数据上传至区块链网络的区块链中进行存储,以防止计算机设备的内部数据被篡改,从而提升内部数据的安全性。
经实践表明,本申请实施例上述所提出的图像处理方案可至少具有如下有益效果:①通过解码对齐处理,可使得每个图像纹理数据的数据尺寸均等于目标压缩块尺寸的整数倍;这样可便于采用目标压缩纹理格式以及目标压缩块尺寸,将每个图像纹理数据转码成一个或多个转码压缩纹理块进行存储,从而有效节省显存占用,提升显卡的运行性能。②可实现在需显示目标图像时,从存储空间中加载的数据为目标压缩纹理数据,相较于加载解码数据而言,目标压缩纹理数据的数据量更小,因此还可避免数据加载时总线带宽占用过大的问题,提升图像渲染效率,进而提升图像显示的及时性。③由于每个转码压缩纹理块的数据格式均与显卡适配,因此还可使得在调用显卡根据各个转码压缩纹理块渲染显示目标图像时,进一步有效提升图像渲染效率,从而进一步提升图像显示的及时性。
基于上述的描述,本申请实施例提出一种图像处理方法,该图像处理方法可以在上述所提及的计算机设备中执行。请参见图2,该图像处理方法可包括以下步骤S201-S205:
S201,获取目标图像的源压缩纹理数据。
其中,目标图像可以是任一种图像,如目标游戏中的游戏画面、任一影视剧的视频图像、任一用户的自拍图像、任一景点的风景图像,等等;此处所提及的目标游戏可以是任一普通游戏,或者任一云游戏。所谓的普通游戏是指:直接在玩家用户使用的终端设备内安装的游戏客户端中运行的游戏;所谓的云游戏又可称为游戏点播(gaming on demand),是一种以云计算为基础的游戏方式,此处的云计算是一种基于互联网的计算方式;在云游戏场景下,游戏并不在玩家用户的游戏客户端,而是在云游戏服务器中运行;由云游戏服务器将游戏场景所涉及的游戏画面编码为视频流,通过网络传输给玩家用户的游戏客户端进行播放。进一步的,目标图像的数据格式可以是纹理格式;此处所提及的纹理格式可以例如是RGBA格式;其中,RGBA中的R表示红色通道,G表示绿色通道,B表示蓝色通道,A表示透明通道。
目标图像的源压缩纹理数据是采用源压缩纹理格式对目标图像进行编码得到的,采用源压缩纹理格式对目标图像进行编码的过程,可理解成是将目标图像的数据格式从纹理格式转换成源压缩纹理格式的过程;编码得到的源压缩纹理数据中可包括多个源压缩纹理块,所谓源压缩纹理块是指采用源压缩纹理格式对目标图像进行压缩编码所得到的压缩纹理块。其中,源压缩纹理格式可以是ASTC(Adaptive Scalable Texture Compression)格式、或者ETC格式(一种压缩纹理格式),等等。源压缩纹理格式对应的压缩块尺寸可称为源压缩块尺寸,该源压缩块尺寸可以为A×B,A×B表示将A行B列个像素压缩成一个块,A和B均为大于1的整数。例如,当源压缩纹理格式为ASTC或者ETC时,由于ASTC和ETC对应的源压缩块尺寸可以从4×4到12×12,因此源压缩块尺寸可以为4×4、6×6、8×8或者12×12,等等。以4×4为例,该4×4可表示将4行4列个像素压缩成一个块。
在具体实现中,若计算机设备的本地空间中未预先存储该目标图像的源压缩纹理数据,则步骤S201的具体实施方式可以是:向存储有该源压缩纹理数据的其他设备发送数据获取请求,以请求其他设备返回该源压缩纹理数据;然后,计算机设备可接收该源压缩纹理数据。若计算机设备的本地空间中预先存储有该目标图像的源压缩纹理数据,则计算机设备可通过内部的渲染管线从本地空间中加载该源压缩纹理数据,以实现源压缩纹理数据的获取;即步骤S201的具体实施方式可以是:渲染管线从计算机设备的本地空间中,加载该目标图像的源压缩纹理数据。
S202,若源压缩纹理格式与显卡不兼容,则确定与显卡适配的目标压缩纹理格式,以及目标压缩纹理格式对应的目标压缩块尺寸。
其中,源压缩纹理格式与显卡不兼容的含义是指:显卡不支持对该源压缩纹理格式的任一数据进行图像渲染显示。在源压缩纹理格式与显卡不兼容的情况下,计算机设备可确定与显卡适配的目标压缩纹理格式;该目标压缩纹理格式可以是与显卡适配(或兼容)的任一压缩纹理格式,例如可以是DXT5(一种有损纹理压缩算法)格式,等等。目标压缩块尺寸是指:目标压缩纹理格式对应的压缩块尺寸;该目标压缩块尺寸可以为X×Y,该X×Y表示将X行Y列个像素压缩成一个块,X和Y为大于1的整数。例如,以目标压缩纹理格式为DXT5格式为例,X和Y均可以等于4,即此时的目标压缩块尺寸可以为4×4。
S203,基于目标压缩块尺寸对源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据。
由于源压缩纹理数据中的各个源压缩纹理块的尺寸均为源压缩纹理格式对应的源压缩块尺寸,而最终需转码得到的压缩纹理块的尺寸为目标压缩块尺寸,只有当源压缩块尺寸是目 标压缩块尺寸的整数倍时,可直接调用显卡着色器将各个源压缩纹理块解码并转码成一个或多个目标压缩块尺寸的压缩纹理块;否则,则会导致转码失败。例如,设目标压缩块尺寸为4×4,那么针对源压缩块尺寸为4×4、8×8或者12×12的源压缩纹理块,可以直接调用显卡着色器将各个源压缩纹理块解码并转码成1个、4个或9个尺寸为4×4的压缩纹理块。但针对源压缩块尺寸为6×6的源压缩纹理块,则无法直接调用显卡着色器将该源压缩纹理块转码成若干个目标压缩块尺寸的压缩纹理块。基于此,为便于后续的转码处理,计算机设备可先基于目标压缩块尺寸对源压缩纹理数据进行解码对齐处理,使得处理得到的每个图像纹理数据的数据尺寸等于目标压缩块尺寸的整数倍,从而便于后续在显卡着色器中将各个图像纹理数据转码成目标压缩块尺寸的一个或多个压缩纹理块。
其中,图像纹理数据是指:未被压缩编码的纹理数据,即图像纹理数据的数据格式为纹理格式。图像纹理数据的数据尺寸用于指示图像纹理数据所包括的像素的数量;例如,若图像纹理数据的数据尺寸为128×128,则该数据尺寸表示该图像纹理数据包括128×128个像素。由此可见,图像纹理数据的数据尺寸和目标压缩块尺寸(X×Y)均包括两位数值;那么,所谓的数据尺寸等于目标压缩块尺寸的整数倍的含义是指:数据尺寸的第一位数值是目标压缩块尺寸的第一位数值(即X的值)的整数倍,且数据尺寸的第二位数值是目标压缩块尺寸的第二位数值(即Y的取值)的整数倍。例如,设目标压缩块尺寸为4×4;若数据尺寸为8×8,则由于数据尺寸的第一位数值(数值8)是目标压缩块尺寸的第一位数值(数值4)的2倍,且数据尺寸的第二位数值(数值8)也是目标压缩块尺寸的第二位数值(数值4)的2倍,则数据尺寸8×8等于目标压缩块尺寸的整数倍;若数据尺寸为8×10,则由于数据尺寸的第一位数值(数值8)是目标压缩块尺寸的第一位数值(数值4)的2倍,且数据尺寸的第二位数值(数值10)是目标压缩块尺寸的第二位数值(数值4)的2.5倍,则数据尺寸8×10不等于目标压缩块尺寸的整数倍。
在一种具体实现中,解码对齐处理可包括:先数据解码再数据对齐的处理;所谓的先数据解码再数据对齐的处理是指:先将源压缩纹理数据解码成纹理格式的解码纹理数据,再将解码纹理数据对齐成多个图像纹理数据的处理。相应的,在此具体实现中,步骤S203的具体实施方式可以包括以下步骤s11-s12:
s11,对源压缩纹理数据进行解码处理,得到目标图像的解码纹理数据,该解码纹理数据包括P行Q列个像素,P和Q为大于1的整数。
具体的,可在显卡着色器中,为源压缩纹理数据中的每个源压缩纹理块分配一个用于解码的目标工作组,并将每个源压缩纹理块派发给对应的目标工作组;以及,并行地调用显卡 着色器中的各个目标工作组,对相应的压缩纹理块进行解码处理,以得到目标图像的解码纹理数据。
s12,按照目标压缩块尺寸,将P行Q列个像素对齐成多组像素;每组像素均包括X行Y列个像素,且一组像素的解码纹理数据组成对应的图像纹理数据。
在一种实施方式中,计算机设备在按照目标压缩块尺寸,将P行Q列个像素对齐成多组像素时,可先以每X行为一个单位,基于P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素。具体的,若P行像素中未被执行对齐处理的剩余行像素的行数大于或等于X,则可按照从上至下的选取顺序,从剩余行像素中选取当前待对齐的X行像素;若P行像素中未被执行对齐处理的剩余行像素的行数小于X,则可采用J行无效像素将剩余行像素补齐成X行像素,并将补齐得到的X行像素确定为当前待对齐的X行像素,J的取值等于X和剩余行像素的行数之间的差值。例如,P为11,X为4;那么计算机设备第一次可选取第1行-第4行像素作为当前待对齐的4行像素,第二次可选取第5行-第8行像素作为当前待对齐的4行像素,第三次由于未被执行对齐处理的剩余行像素为3行,其行数小于X,因此可采用1行无效像素将剩余3行像素对齐成4行像素,并将补齐得到的4行像素作为当前待对齐的4行像素。可见,在剩余行像素的行数小于X时,通过采用J行无效像素进行像素补齐,可使得补齐后的剩余行像素在宽度上可满足后续转码所需的像素个数,从而使得剩余行像素可被成功转码成目标压缩纹理格式的压缩纹理块,避免剩余行像素被丢弃,可有效提升转码结果的准确性。其中,上述所提及的无效像素是指:像素值为指定值的像素,该指定值可根据经验值或者业务需求设置,例如指定值可以为0,255等。
在确定出当前待对齐的X行像素后,计算机设备可按照每Y列对齐一次的对齐频率,对当前待对齐的X行像素进行对齐处理,得到N组像素;N为正整数,且一组像素包括X行Y列个像素。可选的,若在对当前待对齐的X行像素进行对齐处理后,该当前待对齐的X行像素中剩余了K列像素,1≤K<Y,则可采用Y-K列无效像素将K列像素补齐成一组像素。例如,X和Y均为4,而当前待对齐的4行像素中,总共具有11列像素;那么计算机设备可将当前待对齐的4行像素中的第1列-第4列对齐成一组像素,将第5列-第8列对齐成一组像素,然后会剩余3列像素,此时可采用1列无效像素将剩余的3列像素补齐成一组像素。可见,通过采用Y-K列无效像素进行像素补齐,可使得补齐后的K列像素在长度上可满足后续转码所需的像素个数,从而使得K列像素可被成功转码成目标压缩纹理格式的压缩纹理块,避免K列像素被丢弃,可有效提升转码结果的准确性。
另一种实施方式中,计算机设备在按照目标压缩块尺寸,将P行Q列个像素对齐成多组 像素时,也可以先以每Y行为一个单位,基于Q列像素中未被执行对齐处理的剩余列像素,确定当前待对齐的Y列像素。具体的,若Q列像素中未被执行对齐处理的剩余列像素的列数大于或等于Y,则可按照从左往右的选取顺序,从剩余列像素中选取当前待对齐的Y列像素;若Q列像素中未被执行对齐处理的剩余列像素的列数小于Y,则可采用F列无效像素将剩余列像素补齐成Y列像素,并将补齐得到的Y列像素确定当前待对齐的Y列像素,F的取值等于Y和剩余列像素的列数之间的差值。在确定出当前待对齐的Y列像素后,计算机设备可按照每X行对齐一次的对齐频率,对当前待对齐的Y列像素进行对齐处理,得到L组像素;L为正整数,且一组像素包括X行Y列个像素。可选的,若在对当前待对齐的Y列像素进行对齐处理后,该当前待对齐的Y行像素中剩余了C行像素,1≤C<X,则可采用X-C行无效像素将C行像素对齐成一组像素。
另一种具体实现中,解码对齐处理可包括:先数据对齐再数据解码的处理;所谓的先数据对齐再数据解码的处理是指:先按照数据对齐因子,将源压缩纹理数据中的多个源压缩纹理块划分成多个纹理块组,再分别将每个纹理块组解码成图像纹理数据的处理。相应的,在此具体实现中,步骤S203的具体实施方式可以包括以下步骤s21-s23:
s21,根据目标压缩块尺寸和源压缩块尺寸,计算数据对齐因子。
其中,该数据对齐因子指示:解码得到一个图像纹理数据所需的源压缩纹理块的数量;例如,数据对齐因子为2,则表明解码得到一个图像纹理数据需要2个源压缩纹理块。由前述可知,源压缩块尺寸为A×B,目标压缩块尺寸为X×Y;基于此,计算机设备在执行步骤s21时,可求取A和X之间的最小公倍数,作为第一最小公倍数;并将第一最小公倍数和A之间的比值,确定为行对齐因子。另外,计算机设备还可求取B和Y之间的最小公倍数,作为第二最小公倍数;并将第二最小公倍数和B之间的比值,确定为列对齐因子。在确定出行对齐因子和列对齐因子后,可对行对齐因子和列对齐因子进行乘法运算,得到数据对齐因子。其中,所谓的最小公倍数是指:两个或两个以上的数值之间的所有公倍数中的最小的公倍数;所谓的公倍数则是指:两个或两个以上的数值之间,共同拥有的倍数。如针对数值4和数值6这两个数值而言,数值4的倍数有4、8、12、16、20、24...,数值6的倍数有6、12、18、24、30…;那么数值4和数值6的公倍数有12、24等,最小公倍数则为12。进一步举例说明数据对齐因子的计算方式:设源压缩块尺寸为6×6,目标压缩块尺寸为4×4;那么可计算得到第一最小公倍数和第二最小公倍数均为12,进一步可计算得到行对齐因子为12÷6=2,以及列对齐因子为12÷6=2,进而可计算得到数据对齐因子为:2×2=4。
可选的,计算机设备在执行步骤s21时,可直接执行求取A和X之间的最小公倍数,作 为第一最小公倍数的步骤;也可先检测目标压缩块尺寸和源压缩块尺寸是否相同,若相同,则表明一个源压缩纹理块解码所得到的解码数据的数据尺寸必然是目标压缩块尺寸的整数倍;若不同,则表明一个源压缩纹理块解码所得到的解码数据的数据尺寸可能是目标压缩块尺寸的整数倍,也可能不是。基于此,若目标压缩块尺寸等于源压缩块尺寸,则计算机设备可将单位数值(如数值1)确定为数据对齐因子;若目标压缩块尺寸不等于源压缩块尺寸,则执行求取A和X之间的最小公倍数,作为第一最小公倍数的步骤。采用这样的处理逻辑,可实现在目标压缩块尺寸等于源压缩块尺寸时,避免执行最小公倍数等计算操作,节省处理资源。
s22,按照数据对齐因子,将多个源压缩纹理块划分成多个纹理块组,一个纹理块组所包括的源压缩纹理块的数量与数据对齐因子指示的数量相一致。
需要说明的是,在具体划分过程中,是基于数据对齐因子所涉及的列对齐因子和行对齐因子,分别从长度和宽度两个方向对多个源压缩纹理块进行划分,以得到多个纹理块组的。例如承接上述例子,设数据对齐因子为4(即2×2),则计算机设备可在长度方向和宽度方向上,各依次选取2个源压缩纹理块来构成一个纹理块组,如图3a所示。进一步的,若长度方向上的源压缩纹理块的数量(即源压缩纹理数据的列数)不是列对齐因子的整数倍,则可在长度方向上,采用一列或多列无效的源压缩纹理块对源压缩纹理数据进行补齐处理,使得补齐后的源压缩纹理数据的列数等于列对齐因子的整数倍;同理,若宽度方向上的源压缩纹理块的数量(即源压缩纹理数据的行数)不是行对齐因子的整数倍,则可在宽度方向上,采用一行或多行无效的源压缩纹理块对源压缩纹理数据进行补齐处理,使得补齐后的源压缩纹理数据的行数等于行对齐因子的整数倍。所谓的无效的源压缩纹理块是指:采用源压缩纹理格式对A×B个无效像素(如像素值为0的像素)进行压缩编码得到的源压缩纹理块。
例如,设列对齐因子和行对齐因子均为2,数据对齐因子则为4;再设源压缩纹理数据在长度方向上,包括3列源压缩纹理块;在宽度方向上,包括4行源压缩纹理块。由于源压缩纹理数据的列数等于3,其不是列对齐因子的整数倍,而源压缩纹理数据的行数等于4,其是行对齐因子的整数倍,因此计算机设备可只在长度方向上,采用1列无效的源压缩纹理块对源压缩纹理数据进行补齐处理,使得补齐后的源压缩纹理数据包括4列源压缩纹理块(即3列原始的源压缩纹理块和1列无效的源压缩纹理块)。然后,再按照数据对齐因子,将补齐后的源压缩纹理数据划分成多个纹理块组,一个纹理块组包括4个源压缩纹理块,如图3b所示。
s23,分别对各个纹理块组进行解码处理,得到多个图像纹理数据,一个纹理块组对应一个图像纹理数据。
具体的,计算机设备可在显卡着色器中,为每个纹理块组分别分配一个处理工作组,每 个处理工作组均至少具有解码能力;其次,将每个纹理块组派发给对应的处理工作组;然后,可并行地调用各个处理工作组,对相应的纹理块组中的各个源压缩纹理块进行解码处理,得到多个图像纹理数据。采用并行解码的方式,可有效提升解码效率,缩短整个图像处理流程的时长。当然应理解的是,在其他实施例中,也可采用通过显卡着色器中的一个处理工作组,依次对各个纹理块进行解码处理,得到多个图像纹理数据,对此不作限定。
S204,采用目标压缩纹理格式以及目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到目标图像的目标压缩纹理数据。
其中,目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;所谓的转码压缩纹理块是指:对每个图像纹理数据进行转码得到的,数据格式为目标压缩纹理格式,尺寸为目标压缩块尺寸的压缩纹理块。
在一种实施方式中,若计算机设备在前述执行步骤S203时,是通过先数据解码再数据对齐的处理方式来得到图像纹理数据的,则由于计算机设备通过显卡着色器执行数据解码操作后,会控制显卡着色器输出解码纹理数据,从而执行对解码纹理数据进行数据对齐的操作;因此,此情况下,计算机设备在通过数据对齐得到多个图像纹理数据后,可将多个图像纹理数据再次输入至显卡着色器以进行转码处理。基于此,计算机设备在执行步骤S204时,可在显卡着色器中,为多个图像纹理数据分配用于转码的多个转码工作组,一个转码工作组被分配一个或多个图像纹理数据;以及,将每个图像纹理数据派发给对应的转码工作组;然后,并行地调用各个转码工作组,根据目标压缩纹理格式以及目标压缩块尺寸,对相应的图像纹理数据进行转码处理,以得到目标图像的目标压缩纹理数据。
另一种实施方式中,若计算机设备在前述执行步骤S203时,是通过先数据对齐再数据解码的处理方式来得到图像纹理数据的,则由于计算机设备是先通过数据对齐的操作将多个源压缩纹理块划分成多个纹理块组,再将多个纹理块组输入至显卡着色器,由显卡着色器中的处理工作组对相应的纹理块组执行数据解码操作的,且每个处理工作组还具有转码能力;因此,此情况下,显卡着色器中的各个处理工作组在解码得到相应的图像纹理数据后,可直接对相应的图像纹理数据进行转码处理,无需输出解码得到的多个图像纹理数据。基于此,计算机设备在执行步骤S204时,可在任一处理工作组解码得到一个图像纹理数据后,继续调用任一处理工作组,采用目标压缩纹理格式以及目标压缩块尺寸,对相应的图像纹理数据进行转码处理。由此可见,这样的处理方式可调用一次显卡着色器来实现数据解码和转码处理,从而得到目标压缩纹理格式得到目标压缩纹理数据;通过避免显卡着色器的多次调用,可有效减少对显卡着色器的性能影响,从而提升显卡着色器的运行性能,进而提升数据处理效果。
S205,在需显示目标图像时,调用显卡根据目标压缩纹理数据,渲染显示目标图像。
在具体实施过程中,通过步骤S201-S204所得到的目标压缩纹理数据可被缓存至显存中;那么在执行步骤S205时,计算机设备可调用显卡从显存中获取该目标压缩纹理数据,然后对该目标压缩纹理数据进行解码处理,得到纹理格式的目标纹理数据,最后可调用显卡中的渲染管线,根据该纹理格式的目标纹理数据渲染显示目标图像。可选的,若在前述步骤S201-S204的实施过程中,执行了无效像素的补齐处理或无效压缩块的补齐处理,则在解码得到目标纹理数据后,还可基于前述执行补齐处理所对应的补齐位置,在目标纹理数据中确定待过滤的无效像素,并在该目标纹理数据中过滤掉这些待过滤的无效像素,得到过滤后的目标纹理数据;从而调用显卡中的渲染管线,根据过滤后的目标纹理数据渲染显示目标图像。通过过滤掉无效像素,可使得渲染显示的目标图像更加真实,提升图像显示效果。
可选的,计算机设备在得到目标压缩纹理数据后,还可将该目标压缩纹理数据上传至区块链,以防止目标压缩纹理数据被篡改。其中,区块链由多个区块组成,如图3c所示;创始块中包括区块头和区块主体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块主体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块主体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的区块数据均与父区块中存储的区块数据存在关联,保证了区块中输入信息的安全性。基于此,将目标压缩纹理数据上传至区块链中的具体实施方式可以是:
若计算机设备位于区块链网络内,则先可将目标压缩纹理数据添加至目标区块的区块主体中,并对区块主体中的目标纹理数据进行哈希运算,得到默克尔哈希值。其次,可采用随机算法生成一个随机数,并采用计算得到的默克尔哈希值、随机数、版本号、上一区块哈希值、当前时间戳以及当前难度值组成目标区块的区块头部,如图3d所示。其中,版本号是指区块链中相关区块协议的版本信息;上一区块哈希值是指上一区块的区块头部的特征值;当前时间戳是指组成区块头部时的系统时间;当前难度值是指计算的难度值,该难度值在固定时间段内为定值,并在超出固定时间段后再次进行确定。然后,可采用特征值算法(如SHA256算法)对区块头部所包含的内容进行一次或多次哈希运算,得到目标区块的区块头部的特征值;此处的哈希运算的次数可根据难度值确定,哈希运算的次数可以与难度值成正比。在基于上述步骤得到目标区块后,可将该目标区块广播给区块链网络中的各个共识节点进行共识处理;在通过共识处理后,将目标区块添加至区块链上。应理解的是,若计算机设备未位于区块链网络内,则可将目标纹理数据发送给区块链网络中的任一共识节点,由该任一共识节 点执行上述步骤,以将该目标压缩纹理数据存储至区块链中。
可选的,计算机设备还可采用云技术对目标压缩纹理数据进行云存储处理。其中,云技术(Cloud technology)是指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。云技术基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。相应的,云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
本申请实施例在获取到目标图像的源压缩纹理数据后,可基于与显卡适配的目标压缩纹理格式对应的目标压缩块尺寸,对源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据。通过解码对齐处理,可使得每个图像纹理数据的数据尺寸均等于目标压缩块尺寸的整数倍;这样可便于采用目标压缩纹理格式以及目标压缩块尺寸,将每个图像纹理数据转码成一个或多个转码压缩纹理块进行存储,由于转码后所得的转码压缩纹理块为压缩纹理格式,数据量小于图像纹理数据,从而有效节省显存占用,提升显卡的运行性能。并且,在需显示目标图像时,通过调用显卡根据包括各个转码压缩纹理块的目标压缩纹理数据,渲染显示目标图像;这样的处理方式使得从存储空间中加载的数据为目标压缩纹理格式的目标压缩纹理数据,相较于加载解码数据而言,由于目标压缩纹理数据经过了压缩处理,数据量更小,因此还可避免数据加载时总线带宽占用过大的问题。进一步的,由于每个转码压缩纹理块的数据格式均为与显卡适配的目标压缩纹理格式,因此还可使得在调用显卡根据包括各个转码压缩纹理块的目标压缩纹理数据,渲染显示目标图像时,有效提升图像渲染效率,从而提升图像显示的及时性。
基于上述图2所示的方法实施例的相关描述,为了便于执行上述图2所示的流程以及转码得到的各个转码压缩纹理块的缓存便利性;本申请实施例还在与显卡着色器相连接的输出显卡着色器缓存块中增加了,用于缓存目标压缩纹理格式的转码压缩纹理块的存储空间;以及,在输入显卡着色器缓存块中增加了如下内容:
a、转码控制参数,该转码控制参数主要用于指示:在解码对齐得到多个图像纹理数据后,显卡着色器中的各个工作组是否将每个图像纹理数据继续转码成目标压缩纹理格式的转码压缩纹理块;
b、目标压缩纹理格式的格式参数,例如:目标压缩纹理格式对应的目标压缩块尺寸,每行数据的对齐尺寸,等等。
c、数据对齐因子,以兼容非对齐的源压缩纹理数据;该数据对齐因子主要指示:解码得到一个图像纹理数据所需的源压缩纹理块的数量。需说明的是,若采用先数据对齐再数据解码的方式,则该输入显卡着色器缓存块中包括该数据对齐因子;若采用先数据解码再数据对齐的方式,则该输入显卡着色器缓存块中可不包括该数据对齐因子。
基于此,图4a示例性的示出了在计算机设备中执行上述图2所示的图像处理方法的大致流程。参见图4a所示,可先对计算机设备中的解码管线进行初始化,并加载着色器解码文件(shader解码文件),该着色器解码文件中不仅包括用于实现对不同压缩纹理格式下的压缩纹理数据进行解码的多条算法指令,还添加了将纹理格式转码成目标压缩纹理格式的转码算法。在成功加载着色器解码文件后,可将该着色器解码文件传输至计算机设备的显卡着色器中;然后,可采用以下任一种处理方式得到目标压缩纹理格式的目标压缩纹理数据:
第一种处理方式,参见图4b所示:首先,可通过输入显卡着色器缓存块将源压缩纹理数据的相关解码参数和目标图像的源压缩纹理数据,输入至计算机设备中的显卡着色器;其中,源压缩纹理数据的相关解码参数可用于指示:目标图像所采用的源压缩纹理格式。然后,显卡着色器可根据该相关解码参数将源压缩纹理数据解码成纹理格式的解码纹理数据;具体的,显卡着色器可为源压缩纹理数据中的各个源压缩纹理块分配一个用于解码的目标工作组,并将每个源压缩纹理块派发给对应的目标工作组,由各个目标工作组并行地根据该相关解码参数对相应的压缩纹理块进行解码处理,以得到目标图像的解码纹理数据。任一目标工作组根据该相关解码参数对相应的压缩纹理块进行解码处理的方式为:先根据相关解码参数从着色器解码文件中获取用于解码源压缩纹理块的算法指令,并采用获取到的算法指令对相应的源压缩纹理块进行解码处理,得到该相应的源压缩纹理块所对应的解码数据。
举例来说,着色器解码文件中可包括:用于实现对ASTC格式下的压缩纹理数据进行解码的第一算法指令,用于实现对ETC格式下的压缩纹理数据进行解码的第二算法指令,等等。若目标图像的源压缩纹理数据的相关解码参数用于指示:目标图像所采用的源压缩纹理格式为ASTC格式,则可根据该相关解码参数从着色器文件中获取第一算法指令,并采用该第一算法指令对相应的源压缩纹理块进行解码处理。若目标图像的源压缩纹理数据的相关解码参数用于指示:目标图像所采用的源压缩纹理格式为ETC格式,则可根据该相关解码参数从着色器文件中获取第二算法指令,并采用该第二算法指令对相应的源压缩纹理块进行解码处理。
任一目标工作组得到解码数据后,可将解码数据缓存至与显卡着色器相连接的输出着色 器缓存块中;待各个源压缩纹理块对应的解码数据均被缓存至该输出着色器缓存块中后,可得到目标图像的解码纹理数据,该解码纹理数据可包括各个源压缩纹理块对应的解码数据。在得到解码纹理数据后,计算机设备可按照目标压缩块尺寸,将解码纹理数据对齐成多个图像纹理数据;然后,再次通过输入显卡着色器缓存块将对齐得到的多个图像纹理数据,输入至计算机设备中的显卡着色器,使得显卡着色器分别将每个图像纹理数据转码成一个或多个目标压缩纹理格式的转码压缩纹理块,具体转码方式可参见上述方法实施例中的步骤S204的相关描述,在此不再赘述。进一步的,在得到任一转码压缩纹理块后,显卡着色器可在存储空间中计算该任一转码压缩纹理块对应的着色器缓存块偏移地址,然后将该任一转码压缩纹理块缓存至计算得到的着色器缓存块偏移地址所指示的缓存位置;在所有的转码压缩纹理块均被缓存至存储空间后,可得到目标压缩纹理数据。
第二种处理方式,参见图4c所示:计算机设备可先根据目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子;然后,可通过输入显卡着色器缓存块将数据对齐因子和目标图像的源压缩纹理数据,输入至计算机设备中的显卡着色器,使显卡着色器根据该数据对齐因子对源压缩纹理数据进行解码和转码处理,以得到目标压缩纹理数据。具体的,显卡着色器可先按照该数据对齐因子,将多个源压缩纹理块划分成多个纹理块组,一个纹理块组所包括的源压缩纹理块的数量与数据对齐因子指示的数量相一致;然后,在显卡着色器中为每个纹理块组分别分配一个处理工作组,并将每个纹理块组派发给对应的处理工作组,由各个处理工作组并行地将相应的纹理块组解码成图像纹理数据,再对相应的图像纹理数据进行转码处理,得到转码压缩纹理块。进一步的,在得到任一转码压缩纹理块后,显卡着色器可在存储空间中计算该任一转码压缩纹理块对应的着色器缓存块偏移地址,然后将该任一转码压缩纹理块缓存至计算得到的着色器缓存块偏移地址所指示的缓存位置;在所有的转码压缩纹理块均被缓存至存储空间后,可得到目标压缩纹理数据。
基于上述描述,需要说明的是:若显卡着色器在解码过程或转码过程中,存在解码失败或转码失败的情况,则显卡着色器还可通过输出着色器缓存块输出转码处理过程中所涉及的错误数据,以使相关技术人员及时根据该错误数据分析解码失败或转码失败的原因。
需要说明的是,本申请实施例上述所提及的图像处理方法可被运用到各种需进行图像显示的应用场景中,如云游戏场景、普通游戏场景、视频播放场景,等等。其中,在将图像处理方法运用到云游戏场景时,上述所提及的计算机设备可以是运行云游戏的云游戏服务器。参见图5a所示,云游戏服务器中可包括:设备硬件层、虚拟化层(Hypervisor)以及一个或多个容器,等等。其中,设备硬件层可包括但不限于:CPU(中央处理器)、显卡、网络通信 模块以及用于存储的本地空间等;显卡中可包括但不限于:显卡着色器、解码管线以及渲染管线,且该显卡着色器按照解码管线规定的流程进行工作。虚拟化层主要用于以软件的方式,实现一套和物理主机环境完全一样的虚拟环境;云游戏服务器可通过该虚拟化层部署并运行一个或多个容器,所谓的容器是指操作系统级虚拟化的一种类型,其可用于承载操作系统。每个容器可与一个或多个游戏客户端相连接,且每个容器可用于运行一个或多个云游戏;每个容器在运行任一云游戏的过程中,可传输任一云游戏的游戏画面至相连接的游戏客户端中进行显示。
下面以在云游戏场景中运用该图像处理方法为例,本申请实施例进一步提出了图5b所示的图像处理方法;参见图5b所示,该图像处理方法可包括以下步骤S501-S509:
S501,渲染管线从计算机设备的本地空间中,加载目标图像的源压缩纹理数据;其中,目标图像可以是目标云游戏中的任一游戏画面。
S502,渲染管线检测解码管线关于目标压缩纹理格式的转码能力。
具体的,可预先为计算机设备配置一个转码功能,该转码功能包括两个状态:功能开启状态和功能关闭状态;功能开启状态用于指示解码管线具有转码能力,功能关闭状态用于指示解码管线不具有转码能力。基于此,渲染关系在检测解码管线关于目标压缩纹理格式的转码能力时,可获取该转码功能的当前功能状态;若当前功能状态为功能开启状态,则可确定检测到解码管线具有转码能力;若当前功能状态为功能关闭状态,则可确定未检测到解码管线具有转码能力。
S503,若检测到解码管线具有转码能力,则渲染管线根据目标压缩块尺寸和源压缩块尺寸,计算数据对齐因子。
S504,在计算得到数据对齐因子后,渲染管线将数据对齐因子以及源压缩纹理数据,派发给解码管线。
S505,解码管线在成功接收到数据对齐因子以及源压缩纹理数据后,向显卡着色器发送解码通知,以通知显卡着色器执行步骤S506,并在执行步骤S506后,继续执行步骤S507-S508。
S506,显卡着色器按照数据对齐因子,将多个源压缩纹理块划分成多个纹理块组。
S507,显卡着色器分别对各个纹理块组进行解码处理,得到多个图像纹理数据。
S508,显卡着色器采用目标压缩纹理格式以及目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到目标图像的目标压缩纹理数据。
S509,在需显示目标图像时,渲染管线根据目标压缩纹理数据,渲染显示目标图像。
需要说明的是,步骤S503-S509所涉及的各个步骤的具体实施方式可参见上述图2所示 的方法实施例的相关描述,在此不再赘述。例如,渲染管线根据目标压缩块尺寸和源压缩块尺寸,计算数据对齐因子的实施方式可参见上述步骤S203的相关描述;又如,显卡着色器按照数据对齐因子,将多个源压缩纹理块划分成多个纹理块组的具体实施方式,以及分别对各个纹理块组进行解码处理,得到多个图像纹理数据的的具体实施方式,均可参见上述步骤S203的相关描述,等等。
可选的,如果计算机设备具有显卡解码模式,该显卡解码模式是指通过显卡着色器进行解码处理的模式;那么,渲染管线在步骤S502的过程中,若检测到解码管线不具有转码能力,则渲染管线可进一步检测显卡解码模式所处的模式状态,模式状态包括模式开启状态或模式关闭状态。当模式状态为模式开启状态时,渲染管线将源压缩纹理数据派发给解码管线;解码管线通知显卡着色器对源压缩纹理数据进行解码处理,得到目标图像的解码纹理数据。在此情况下,在需显示目标图像时,渲染管线可根据解码纹理数据,渲染显示目标图像。当模式状态为模式关闭状态时,渲染管线可调用显卡驱动中央处理器对源压缩纹理数据进行解码处理,并将解码得到的解码纹理数据转码成目标压缩纹理数据;在此情况下,在需显示目标图像时,渲染管线根据目标压缩纹理数据,渲染显示目标图像。
还需要说明的是,虽然本申请实施例是以目标图像为目标云游戏中的任一游戏画面为例进行说明的,但在其他实施例中,当目标图像为其他图像(如普通游戏的游戏画面、任一影视剧的视频图像、任一用户的自拍图像、任一景点的风景图像,等等)时,仍适用于图5b所示的图像处理方法。
本申请实施例利用云游服务器中的显卡(例如AMD 5100和NVIDA T4)的强大浮点运算和并行计算能力,可实现快速将目标云游戏中的任一游戏画面的源压缩纹理数据转码为云游服务器中的显卡所支持的目标压缩纹理格式的目标压缩纹理数据,从而解决显存占用过高的问题以及纹理加载时总线带宽占用过大的问题,从而提升云游戏服务器的显存利用率,以及解决云游服务器因显存占用过高造成云游并发实例受限的问题,提高云游服务器显存利用率和降低运营成本。
为了进一步证明本申请实施例所提出的图像处理方法的有益效果,本申请实施例在云游戏场景下,分别对背景技术所提及的图像处理方式(简称方案1)以及本申请实施例所提出的图像处理方法(简称方案2)进行了测试对比:
首先,分别采用方案1和方案2,对不同大小的ETC2格式的源压缩纹理数据,以及ASTC格式的源压缩纹理数据进行处理;并统计了云游戏服务器的显卡中的GPU在不同情况下所涉及的GPU占用时间,统计结果可具体请参见下述表1所示:
表1
ETC2 | 方案1 | 方案2 | ASTC格式 | 方案1 | 方案2 |
256×256 | 0ms | 0ms | 256×256 | 1ms | 1ms |
512×512 | 1ms | 0ms | 512×512 | 2ms | 2ms |
1024×1024 | 3ms | 3ms | 1024×1024 | 5ms | 6ms |
2048×1024 | 7ms | 7ms | 2048×1024 | 9ms | 10ms |
基于上述表1所示的统计结果可知,相对于方案1而言,本申请所提及的方案2在显卡着色器的并发处理下,并不会对云游戏服务器中的显卡上的GPU造成明显的性能影响。
其次,本申请实施例针对同一款目标云游戏,采用了两组测试配置参数,对该目标云游戏分别使用现有的方案1和本申请的方案2后的显存占用情况进行了统计。其中,采用的两组测试配置参数分别是:①1080×720,高清(帧率节能,分辨率节能,画质高清);②1080×720,标清(帧率节能,分辨率节能,画质标清);在这两组测试配置参数下,方案1和方案2所涉及的统计结果可具体参见下述表2所示:
表2
基于上述表2所示的统计结果可知,相对于方案1而言,本申请所提及的方案2在标清画质的情况下,可减少32.3%((501-339)/501×100%=32.3%)的显存开销;在高清画质的情况下,可减少51.8%((951-458)/951×100%=51.8%)的显存开销。
另外,本申请实施例进一步在目标云游戏的5V5(5个用户对战5个用户)的游戏对战场景中,采用了上述两组测试配置参数,对该目标云游戏分别使用现有的方案1和本申请的方案2后的显存占用情况进行了统计,统计结果可具体参见下述表3所示:
表3
基于上述表2所示的统计结果可知,在5V5的游戏对战场景中,相对于方案1而言,本申请所提及的方案2在标清画质的情况下,可减少37.1%((566-356)/566×100%=37.1%)的显存开销;在高清画质的情况下,可减少50.1%((1006-501)/1006×100%=50.1%)的显存开销。
综上可知,相较于方案1而言,本申请所提及的方案2可有效节省显存开销,明显减少显存的占用问题,在保证游戏的流畅性的同时提高服务器的显存利用率,从而提高整体云游戏服务器的游戏并发数;如单卡显存为10G的云游戏服务器为例,方案1在高清画质下使得目标云游戏因显存影响,使得游戏并发路数只能限制在10路;但采用本申请提出的方案2,则可由于显存开销的节省,使得游戏并发数可提升至20路。
基于上述图像处理方法实施例的描述,本申请实施例还公开了一种图像处理装置,所述图像处理装置可以是运行于计算机设备中的一个计算机程序(包括程序代码)。该图像处理装置可以执行图2或图5b所示的方法。请参见图6,所述图像处理装置可以运行如下单元:
获取单元601,用于获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;
处理单元602,用于若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;
所述处理单元602,还用于基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;
所述处理单元602,还用于采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;
所述处理单元602,还用于在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
在一种实施方式中,所述目标压缩块尺寸为X×Y,所述X×Y表示将X行Y列个像素压缩成一个块,X和Y为大于1的整数;相应的,处理单元602在用于基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据时,可具体用于:
对所述源压缩纹理数据进行解码处理,得到所述目标图像的解码纹理数据,所述解码纹 理数据包括P行Q列个像素,P和Q为大于1的整数;
按照所述目标压缩块尺寸,将所述P行Q列个像素对齐成多组像素;每组像素均包括X行Y列个像素,且一组像素的解码纹理数据组成对应的图像纹理数据。
另一种实施方式中,处理单元602在用于按照所述目标压缩块尺寸,将P行Q列个像素对齐成多组像素时,可具体用于:
以每X行为一个单位,基于所述P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素;
按照每Y列对齐一次的对齐频率,对所述当前待对齐的X行像素进行对齐处理,得到N组像素;N为正整数,且一组像素包括X行Y列个像素;
若在对所述当前待对齐的X行像素进行对齐处理后,所述当前待对齐的X行像素中剩余了K列像素,1≤K<Y,则采用Y-K列无效像素将所述K列像素补齐成一组像素。
另一种实施方式中,处理单元602在用于以每X行为一个单位,基于所述P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素时,可具体用于:
若所述P行像素中未被执行对齐处理的剩余行像素的行数大于或等于X,则按照从上至下的选取顺序,从所述剩余行像素中选取当前待对齐的X行像素;
若所述P行像素中未被执行对齐处理的剩余行像素的行数小于X,则采用J行无效像素将所述剩余行像素补齐成X行像素,并将补齐得到的X行像素确定为当前待对齐的X行像素,J的取值等于X和剩余行像素的行数之间的差值。
另一种实施方式中,处理单元602在用于采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据时,可具体用于:
在显卡着色器中,为所述多个图像纹理数据分配用于转码的多个转码工作组,一个转码工作组被分配一个或多个图像纹理数据;以及,将每个图像纹理数据派发给对应的转码工作组;
并行地调用各个转码工作组,根据所述目标压缩纹理格式以及所述目标压缩块尺寸,对相应的图像纹理数据进行转码处理,以得到所述目标图像的目标压缩纹理数据。
另一种实施方式中,所述源压缩纹理数据包括多个源压缩纹理块,且每个源压缩纹理块的尺寸均为所述源压缩纹理格式对应的源压缩块尺寸;相应的,处理单元602在用于基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据时,可具体用于:
根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子,所述数据对齐因子指示:解码得到一个图像纹理数据所需的源压缩纹理块的数量;
按照所述数据对齐因子,将所述多个源压缩纹理块划分成多个纹理块组,一个纹理块组所包括的源压缩纹理块的数量与与所述数据对齐因子指示的数量相一致;
分别对各个纹理块组进行解码处理,得到多个图像纹理数据,一个纹理块组对应一个图像纹理数据。
另一种实施方式中,所述源压缩块尺寸为A×B,所述A×B表示将A行B列个像素压缩成一个块;所述目标压缩块尺寸为X×Y,所述X×Y表示将X行Y列个像素压缩成一个块;其中,A、B、X和Y均为大于1的整数;相应的,处理单元602在用于根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子时,可具体用于:
求取A和X之间的最小公倍数,作为第一最小公倍数;并将所述第一最小公倍数和A之间的比值,确定为行对齐因子;
求取B和Y之间的最小公倍数,作为第二最小公倍数;并将所述第二最小公倍数和B之间的比值,确定为列对齐因子;
对所述行对齐因子和所述列对齐因子进行乘法运算,得到数据对齐因子。
另一种实施方式中,处理单元602在用于根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子时,还可具体用于:
若所述目标压缩块尺寸等于所述源压缩块尺寸,则将单位数值确定为所述数据对齐因子;
若所述目标压缩块尺寸不等于所述源压缩块尺寸,则执行求取A和X之间的最小公倍数,作为第一最小公倍数的步骤。
另一种实施方式中,处理单元602在用于分别对各个纹理块组进行解码处理,得到多个图像纹理数据时,可具体用于:
在显卡着色器中为每个纹理块组分别分配一个处理工作组,每个处理工作组均至少具有解码能力;
将每个纹理块组派发给对应的处理工作组;
并行地调用各个处理工作组,对相应的纹理块组中的各个源压缩纹理块进行解码处理,得到多个图像纹理数据。
另一种实施方式中,所述每个处理工作组还具有转码能力;相应的,处理单元602在用于采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据时,可具体用于:
在任一处理工作组解码得到一个图像纹理数据后,继续调用所述任一处理工作组,采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对相应的图像纹理数据进行转码处理。
另一种实施方式中,所述显卡设置于计算机设备中,所述计算机设备还包括渲染管线和解码管线;其中,所述显卡中的显卡着色器按照所述解码管线规定的流程进行工作;相应的,获取单元601在用于获取目标图像的源压缩纹理数据时,可具体用于:通过所述渲染管线从所述计算机设备的本地空间中,加载目标图像的源压缩纹理数据;
相应的,处理单元602还可用于:
通过所述渲染管线检测所述解码管线关于所述目标压缩纹理格式的转码能力;
若检测到所述解码管线具有所述转码能力,则通过所述渲染管线执行根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子的步骤;
在计算得到所述数据对齐因子后,通过所述渲染管线将所述数据对齐因子以及所述源压缩纹理数据,派发给所述解码管线;
通过所述解码管线在成功接收到所述数据对齐因子以及所述源压缩纹理数据后,向所述显卡着色器发送解码通知,以通知所述显卡着色器执行所述按照所述数据对齐因子,将所述多个源压缩纹理块划分成多个纹理块组的步骤。
另一种实施方式中,所述计算机设备具有显卡解码模式,所述显卡解码模式是指通过所述显卡着色器进行解码处理的模式;相应的,处理单元602还可用于:
若检测到所述解码管线不具有所述转码能力,则通过所述渲染管线检测所述显卡解码模式所处的模式状态,所述模式状态包括模式开启状态或模式关闭状态;
当所述模式状态为所述模式开启状态时,通过所述渲染管线将所述源压缩纹理数据派发给所述解码管线;
通过所述解码管线通知所述显卡着色器对所述源压缩纹理数据进行解码处理,得到所述目标图像的解码纹理数据;
在需显示所述目标图像时,通过所述渲染管线根据所述解码纹理数据,渲染显示所述目标图像。
另一种实施方式中,处理单元602还可用于:
当所述模式状态为所述模式关闭状态时,通过所述渲染管线调用显卡驱动中央处理器对所述源压缩纹理数据进行解码处理,并将解码得到的解码纹理数据转码成目标压缩纹理数据;
在需显示所述目标图像时,通过所述渲染管线根据所述目标压缩纹理数据,渲染显示所述目标图像。
根据本申请的另一个实施例,图6所示的图像处理装置中的各个单元可以分别或全部合并为一个或若干个另外的单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个单元来构成,这可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述单元是基于逻辑功能划分的,在实际应用中,一个单元的功能也可以由多个单元来实现,或者多个单元的功能由一个单元实现。在本申请的其它实施例中,基于图像处理装置也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
根据本申请的另一个实施例,可以通过在包括中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件的例如计算机的通用计算设备上运行能够执行如图2或图5b中所示的相应方法所涉及的各步骤的计算机程序(包括程序代码),来构造如图6中所示的图像处理装置设备,以及来实现本申请实施例的图像处理方法。所述计算机程序可以记载于例如计算机可读记录介质上,并通过计算机可读记录介质装载于上述计算设备中,并在其中运行。
本申请实施例在获取到目标图像的源压缩纹理数据后,可基于与显卡适配的目标压缩纹理格式对应的目标压缩块尺寸,对源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据。通过解码对齐处理,可使得每个图像纹理数据的数据尺寸均等于目标压缩块尺寸的整数倍;这样可便于采用目标压缩纹理格式以及目标压缩块尺寸,将每个图像纹理数据转码成一个或多个转码压缩纹理块进行存储,由于转码后所得的转码压缩纹理块为压缩纹理格式,数据量小于图像纹理数据,从而有效节省显存占用,提升显卡的运行性能。并且,在需显示目标图像时,通过调用显卡根据包括各个转码压缩纹理块的目标压缩纹理数据,渲染显示目标图像;这样的处理方式使得从存储空间中加载的数据为目标压缩纹理格式的目标压缩纹理数据,相较于加载解码数据而言,由于目标压缩纹理数据经过了压缩处理,数据量更小,因此还可避免数据加载时总线带宽占用过大的问题。进一步的,由于每个转码压缩纹理块的数据格式均为与显卡适配的目标压缩纹理格式,因此还可使得在调用显卡根据包括各个转码压缩纹理块的目标压缩纹理数据,渲染显示目标图像时,有效提升图像渲染效率,从而提升图像显示的及时性。
基于上述方法实施例以及装置实施例的描述,本申请实施例还提供一种计算机设备。请参见图7,该计算机设备至少包括显卡701、输入接口702、输出接口703以及计算机存储介质704;且该计算机设备内的显卡701、输入接口702、输出接口703以及计算机存储介质704可通过总线或其他方式连接。其中,显卡701中可进一步包括图形处理器7011、显卡着色器 7012、解码管线7013以及渲染管线7014。计算机存储介质704可以存储在计算机设备的存储器中,所述计算机存储介质704用于存储计算机可读指令,所述处理器701用于执行所述计算机存储介质704存储的计算机可读指令。进一步的,计算机设备还可包括中央处理器705(Central Processing Unit,CPU)),该中央处理器705是计算机设备的计算核心以及控制核心,其适于实现一条或多条计算机可读指令,具体适于加载并执行一条或多条计算机可读指令从而实现相应方法流程或相应功能。
在一个实施例中,本申请实施例所述的显卡701可用于进行一系列的图像处理,具体包括:获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像,等等。
本申请实施例还提供了一种计算机存储介质(Memory),所述计算机存储介质是计算机设备中的记忆设备,用于存放计算机可读指令和数据。可以理解的是,此处的计算机存储介质既可以包括计算机设备中的内置存储介质,当然也可以包括计算机设备所支持的扩展存储介质。计算机存储介质提供存储空间,该存储空间存储了计算机设备的操作系统。并且,在该存储空间中还存放了适于被显卡701加载并执行的一条或多条的计算机可读指令,这些计算机可读指令可以是一个或一个以上的计算机程序(包括程序代码)。需要说明的是,此处的计算机存储介质可以是高速RAM存储器,也可以是非不稳定的存储器(non-volatile memory),例如至少一个磁盘存储器;可选的,还可以是至少一个位于远离前述处理器的计算机存储介质。
在一个实施例中,可由显卡701加载并执行计算机存储介质中存放的一条或多条计算机可读指令,以实现上述有关图2或图5b所示的图像处理方法实施例中的方法的相应步骤;具体实现中,计算机存储介质中的一条或多条计算机可读指令由显卡701加载并执行如下步骤:
获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;
若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以 及所述目标压缩纹理格式对应的目标压缩块尺寸;
基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;
采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;
在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
在一种实施方式中,所述目标压缩块尺寸为X×Y,所述X×Y表示将X行Y列个像素压缩成一个块,X和Y为大于1的整数;相应的,在基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据时,所述一条或多条指令由显卡701加载并执行:
对所述源压缩纹理数据进行解码处理,得到所述目标图像的解码纹理数据,所述解码纹理数据包括P行Q列个像素,P和Q为大于1的整数;
按照所述目标压缩块尺寸,将所述P行Q列个像素对齐成多组像素;每组像素均包括X行Y列个像素,且一组像素的解码纹理数据组成对应的图像纹理数据。
另一种实施方式中,在按照所述目标压缩块尺寸,将P行Q列个像素对齐成多组像素时,所述一条或多条指令由显卡701加载并执行:
以每X行为一个单位,基于所述P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素;
按照每Y列对齐一次的对齐频率,对所述当前待对齐的X行像素进行对齐处理,得到N组像素;N为正整数,且一组像素包括X行Y列个像素;
若在对所述当前待对齐的X行像素进行对齐处理后,所述当前待对齐的X行像素中剩余了K列像素,1≤K<Y,则采用Y-K列无效像素将所述K列像素补齐成一组像素。
另一种实施方式中,在以每X行为一个单位,基于所述P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素时,所述一条或多条指令由显卡701加载并执行:
若所述P行像素中未被执行对齐处理的剩余行像素的行数大于或等于X,则按照从上至下的选取顺序,从所述剩余行像素中选取当前待对齐的X行像素;
若所述P行像素中未被执行对齐处理的剩余行像素的行数小于X,则采用J行无效像素将所述剩余行像素补齐成X行像素,并将补齐得到的X行像素确定为当前待对齐的X行像素, J的取值等于X和剩余行像素的行数之间的差值。
另一种实施方式中,在采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据时,所述一条或多条指令由显卡701加载并执行:
在显卡着色器中,为所述多个图像纹理数据分配用于转码的多个转码工作组,一个转码工作组被分配一个或多个图像纹理数据;以及,将每个图像纹理数据派发给对应的转码工作组;
并行地调用各个转码工作组,根据所述目标压缩纹理格式以及所述目标压缩块尺寸,对相应的图像纹理数据进行转码处理,以得到所述目标图像的目标压缩纹理数据。
另一种实施方式中,所述源压缩纹理数据包括多个源压缩纹理块,且每个源压缩纹理块的尺寸均为所述源压缩纹理格式对应的源压缩块尺寸;相应的,在基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据时,所述一条或多条指令由显卡701加载并执行:
根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子,所述数据对齐因子指示:解码得到一个图像纹理数据所需的源压缩纹理块的数量;
按照所述数据对齐因子,将所述多个源压缩纹理块划分成多个纹理块组,一个纹理块组所包括的源压缩纹理块的数量与所述数据对齐因子指示的数量相一致;
分别对各个纹理块组进行解码处理,得到多个图像纹理数据,一个纹理块组对应一个图像纹理数据。
另一种实施方式中,所述源压缩块尺寸为A×B,所述A×B表示将A行B列个像素压缩成一个块;所述目标压缩块尺寸为X×Y,所述X×Y表示将X行Y列个像素压缩成一个块;其中,A、B、X和Y均为大于1的整数;相应的,在根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子时,所述一条或多条指令由显卡701加载并执行:
求取A和X之间的最小公倍数,作为第一最小公倍数;并将所述第一最小公倍数和A之间的比值,确定为行对齐因子;
求取B和Y之间的最小公倍数,作为第二最小公倍数;并将所述第二最小公倍数和B之间的比值,确定为列对齐因子;
对所述行对齐因子和所述列对齐因子进行乘法运算,得到数据对齐因子。
另一种实施方式中,在根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子时,所述一条或多条指令还可由显卡701加载并执行:
若所述目标压缩块尺寸等于所述源压缩块尺寸,则将单位数值确定为所述数据对齐因子;
若所述目标压缩块尺寸不等于所述源压缩块尺寸,则执行求取A和X之间的最小公倍数,作为第一最小公倍数的步骤。
另一种实施方式中,在分别对各个纹理块组进行解码处理,得到多个图像纹理数据时,所述一条或多条指令由显卡701加载并执行:
在显卡着色器中为每个纹理块组分别分配一个处理工作组,每个处理工作组均至少具有解码能力;
将每个纹理块组派发给对应的处理工作组;
并行地调用各个处理工作组,对相应的纹理块组中的各个源压缩纹理块进行解码处理,得到多个图像纹理数据。
另一种实施方式中,所述每个处理工作组还具有转码能力;相应的,在采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据时,所述一条或多条指令由显卡701加载并执行:
在任一处理工作组解码得到一个图像纹理数据后,继续调用所述任一处理工作组,采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对相应的图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据。
另一种实施方式中,所述显卡设置于计算机设备中,所述计算机设备还包括渲染管线和解码管线;其中,所述显卡中的显卡着色器按照所述解码管线规定的流程进行工作;相应的,在获取目标图像的源压缩纹理数据时,所述一条或多条指令由显卡701加载并执行:通过所述渲染管线从所述计算机设备的本地空间中,加载目标图像的源压缩纹理数据;
相应的,所述一条或多条指令还可由显卡701加载并执行:
通过所述渲染管线检测所述解码管线关于所述目标压缩纹理格式的转码能力;
若检测到所述解码管线具有所述转码能力,则通过所述渲染管线执行根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子的步骤;
在计算得到所述数据对齐因子后,通过所述渲染管线将所述数据对齐因子以及所述源压缩纹理数据,派发给所述解码管线;
通过所述解码管线在成功接收到所述数据对齐因子以及所述源压缩纹理数据后,向所述显卡着色器发送解码通知,以通知所述显卡着色器执行所述按照所述数据对齐因子,将所述多个源压缩纹理块划分成多个纹理块组的步骤。
另一种实施方式中,所述计算机设备具有显卡解码模式,所述显卡解码模式是指通过所 述显卡着色器进行解码处理的模式;相应的,所述一条或多条指令还可由显卡701加载并执行:
若检测到所述解码管线不具有所述转码能力,则通过所述渲染管线检测所述显卡解码模式所处的模式状态,所述模式状态包括模式开启状态或模式关闭状态;
当所述模式状态为所述模式开启状态时,通过所述渲染管线将所述源压缩纹理数据派发给所述解码管线;
通过所述解码管线通知所述显卡着色器对所述源压缩纹理数据进行解码处理,得到所述目标图像的解码纹理数据;
在需显示所述目标图像时,通过所述渲染管线根据所述解码纹理数据,渲染显示所述目标图像。
另一种实施方式中,所述一条或多条指令还可由显卡701加载并执行:
当所述模式状态为所述模式关闭状态时,通过所述渲染管线调用显卡驱动中央处理器对所述源压缩纹理数据进行解码处理,并将解码得到的解码纹理数据转码成目标压缩纹理数据;
在需显示所述目标图像时,通过所述渲染管线根据所述目标压缩纹理数据,渲染显示所述目标图像。
本申请实施例在获取到目标图像的源压缩纹理数据后,可基于与显卡适配的目标压缩纹理格式对应的目标压缩块尺寸,对源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据。通过解码对齐处理,可使得每个图像纹理数据的数据尺寸均等于目标压缩块尺寸的整数倍;这样可便于采用目标压缩纹理格式以及目标压缩块尺寸,将每个图像纹理数据转码成一个或多个转码压缩纹理块进行存储,从而有效节省显存占用,提升显卡的运行性能。并且,在需显示目标图像时,通过调用显卡根据包括各个转码压缩纹理块的目标压缩纹理数据,渲染显示目标图像;这样的处理方式使得从存储空间中加载的数据为目标压缩纹理数据,相较于加载解码数据而言,目标压缩纹理数据的数据量更小,因此还可避免数据加载时总线带宽占用过大的问题。进一步的,由于每个转码压缩纹理块的数据格式均为与显卡适配的目标压缩纹理格式,因此还可使得在调用显卡根据包括各个转码压缩纹理块的目标压缩纹理数据,渲染显示目标图像时,有效提升图像渲染效率,从而提升图像显示的及时性。
需要说明的是,根据本申请的一个方面,提供了一种计算机可读指令产品,该计算机可读指令产品包括计算机可读指令,该计算机可读指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述图2或图5b所示的图像处理方法实施例方面的各种可选方式中提供的方法。
并且,应理解的是,以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (20)
- 一种图像处理方法,由计算机设备执行,其特征在于,包括:获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
- 如权利要求1所述的方法,其特征在于,所述目标压缩块尺寸为X×Y,所述X×Y表示将X行Y列个像素压缩成一个块,X和Y为大于1的整数;所述基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,包括:对所述源压缩纹理数据进行解码处理,得到所述目标图像的解码纹理数据,所述解码纹理数据包括P行Q列个像素,P和Q为大于1的整数;按照所述目标压缩块尺寸,将所述P行Q列个像素对齐成多组像素;每组像素均包括X行Y列个像素,且一组像素的解码纹理数据组成对应的图像纹理数据。
- 如权利要求2所述的方法,其特征在于,所述按照所述目标压缩块尺寸,将所述P行Q列个像素对齐成多组像素,包括:以每X行为一个单位,基于所述P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素;按照每Y列对齐一次的对齐频率,对所述当前待对齐的X行像素进行对齐处理,得到N组像素;N为正整数,且一组像素包括X行Y列个像素;若在对所述当前待对齐的X行像素进行对齐处理后,所述当前待对齐的X行像素中剩余了K列像素,1≤K<Y,则采用Y-K列无效像素将所述K列像素补齐成一组像素。
- 如权利要求3所述的方法,其特征在于,所述以每X行为一个单位,基于所述P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素,包括:若所述P行像素中未被执行对齐处理的剩余行像素的行数大于或等于X,则按照从上至下的选取顺序,从所述剩余行像素中选取当前待对齐的X行像素;若所述P行像素中未被执行对齐处理的剩余行像素的行数小于X,则采用J行无效像素将所述剩余行像素补齐成X行像素,并将补齐得到的X行像素确定为当前待对齐的X行像素,J的取值等于X和剩余行像素的行数之间的差值。
- 如权利要求2-4任一项所述的方法,其特征在于,所述采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,包括:在显卡着色器中,为所述多个图像纹理数据分配用于转码的多个转码工作组,一个转码工作组被分配一个或多个图像纹理数据;以及,将每个图像纹理数据派发给对应的转码工作组;并行地调用各个转码工作组,根据所述目标压缩纹理格式以及所述目标压缩块尺寸,对相应的图像纹理数据进行转码处理,以得到所述目标图像的目标压缩纹理数据。
- 如权利要求1所述的方法,其特征在于,所述源压缩纹理数据包括多个源压缩纹理块,且每个源压缩纹理块的尺寸均为所述源压缩纹理格式对应的源压缩块尺寸;所述基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,包括:根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子;所述数据对齐因子指示:解码得到一个图像纹理数据所需的源压缩纹理块的数量;按照所述数据对齐因子,将所述多个源压缩纹理块划分成多个纹理块组,一个纹理块组所包括的源压缩纹理块的数量与所述数据对齐因子指示的数量相一致;分别对各个纹理块组进行解码处理,得到多个图像纹理数据,一个纹理块组对应一个图像纹理数据。
- 如权利要求6所述的方法,其特征在于,所述源压缩块尺寸为A×B,所述A×B表示将A行B列个像素压缩成一个块;所述目标压缩块尺寸为X×Y,所述X×Y表示将X行Y列个像素压缩成一个块;其中,A、B、X和Y均为大于1的整数;所述根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子,包括:求取A和X之间的最小公倍数,作为第一最小公倍数;并将所述第一最小公倍数和A之 间的比值,确定为行对齐因子;求取B和Y之间的最小公倍数,作为第二最小公倍数;并将所述第二最小公倍数和B之间的比值,确定为列对齐因子;对所述行对齐因子和所述列对齐因子进行乘法运算,得到数据对齐因子。
- 如权利要求7所述的方法,其特征在于,所述根据所述目标压缩块尺寸和所述源压缩块尺寸,计算数据对齐因子,还包括:若所述目标压缩块尺寸等于所述源压缩块尺寸,则将单位数值确定为所述数据对齐因子;若所述目标压缩块尺寸不等于所述源压缩块尺寸,则执行所述求取A和X之间的最小公倍数,作为第一最小公倍数的步骤。
- 如权利要求6所述的方法,其特征在于,所述分别对各个纹理块组进行解码处理,得到多个图像纹理数据,包括:在显卡着色器中为每个纹理块组分别分配一个处理工作组,每个处理工作组均至少具有解码能力;将每个纹理块组派发给对应的处理工作组;并行地调用各个处理工作组,对相应的纹理块组中的各个源压缩纹理块进行解码处理,得到多个图像纹理数据。
- 如权利要求9所述的方法,其特征在于,所述每个处理工作组还具有转码能力;所述采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,包括:在任一处理工作组解码得到一个图像纹理数据后,继续调用所述任一处理工作组,采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对相应的图像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据。
- 如权利要求6所述的方法,其特征在于,所述显卡设置于计算机设备中,所述计算机设备还包括渲染管线和解码管线;其中,所述显卡中的显卡着色器按照所述解码管线规定的流程进行工作;所述获取目标图像的源压缩纹理数据,包括:所述渲染管线从所述计算机设备的本地空间中,加载目标图像的源压缩纹理数据;所述方法还包括:所述渲染管线检测所述解码管线关于所述目标压缩纹理格式的转码能力;若检测到所述解码管线具有所述转码能力,则所述渲染管线执行根据所述目标压缩块尺 寸和所述源压缩块尺寸,计算数据对齐因子的步骤;在计算得到所述数据对齐因子后,所述渲染管线将所述数据对齐因子以及所述源压缩纹理数据,派发给所述解码管线;所述解码管线在成功接收到所述数据对齐因子以及所述源压缩纹理数据后,向所述显卡着色器发送解码通知,以通知所述显卡着色器执行所述按照所述数据对齐因子,将所述多个源压缩纹理块划分成多个纹理块组的步骤。
- 如权利要求11所述的方法,其特征在于,所述计算机设备具有显卡解码模式,所述显卡解码模式是指通过所述显卡着色器进行解码处理的模式;所述方法还包括:若检测到所述解码管线不具有所述转码能力,则所述渲染管线检测所述显卡解码模式所处的模式状态,所述模式状态包括模式开启状态或模式关闭状态;当所述模式状态为所述模式开启状态时,所述渲染管线将所述源压缩纹理数据派发给所述解码管线;所述解码管线通知所述显卡着色器对所述源压缩纹理数据进行解码处理,得到所述目标图像的解码纹理数据;在需显示所述目标图像时,所述渲染管线根据所述解码纹理数据,渲染显示所述目标图像。
- 如权利要求12所述的方法,其特征在于,所述方法还包括:当所述模式状态为所述模式关闭状态时,所述渲染管线调用显卡驱动中央处理器对所述源压缩纹理数据进行解码处理,并将解码得到的解码纹理数据转码成目标压缩纹理数据;在需显示所述目标图像时,所述渲染管线根据所述目标压缩纹理数据,渲染显示所述目标图像。
- 一种图像处理装置,其特征在于,包括:获取单元,用于获取目标图像的源压缩纹理数据,所述源压缩纹理数据是采用源压缩纹理格式对所述目标图像进行编码得到的;处理单元,用于若所述源压缩纹理格式与显卡不兼容,则确定与所述显卡适配的目标压缩纹理格式,以及所述目标压缩纹理格式对应的目标压缩块尺寸;所述处理单元,还用于基于所述目标压缩块尺寸对所述源压缩纹理数据进行解码对齐处理,得到多个图像纹理数据,每个图像纹理数据的数据尺寸等于所述目标压缩块尺寸的整数倍;所述处理单元,还用于采用所述目标压缩纹理格式以及所述目标压缩块尺寸,对每个图 像纹理数据进行转码处理,得到所述目标图像的目标压缩纹理数据,所述目标压缩纹理数据包括:每个图像纹理数据对应的一个或多个转码压缩纹理块;所述处理单元,还用于在需显示所述目标图像时,调用所述显卡根据所述目标压缩纹理数据,渲染显示所述目标图像。
- 如权利要求14所述的装置,其特征在于,所述目标压缩块尺寸为X×Y,所述X×Y表示将X行Y列个像素压缩成一个块,X和Y为大于1的整数;所述处理单元,还用于:对所述源压缩纹理数据进行解码处理,得到所述目标图像的解码纹理数据,所述解码纹理数据包括P行Q列个像素,P和Q为大于1的整数;按照所述目标压缩块尺寸,将所述P行Q列个像素对齐成多组像素;每组像素均包括X行Y列个像素,且一组像素的解码纹理数据组成对应的图像纹理数据。
- 如权利要求15所述的装置,其特征在于,所述处理单元,还用于:以每X行为一个单位,基于所述P行像素中未被执行对齐处理的剩余行像素,确定当前待对齐的X行像素;按照每Y列对齐一次的对齐频率,对所述当前待对齐的X行像素进行对齐处理,得到N组像素;N为正整数,且一组像素包括X行Y列个像素;若在对所述当前待对齐的X行像素进行对齐处理后,所述当前待对齐的X行像素中剩余了K列像素,1≤K<Y,则采用Y-K列无效像素将所述K列像素补齐成一组像素。
- 如权利要求16所述的装置,其特征在于,所述处理单元,还用于:若所述P行像素中未被执行对齐处理的剩余行像素的行数大于或等于X,则按照从上至下的选取顺序,从所述剩余行像素中选取当前待对齐的X行像素;若所述P行像素中未被执行对齐处理的剩余行像素的行数小于X,则采用J行无效像素将所述剩余行像素补齐成X行像素,并将补齐得到的X行像素确定为当前待对齐的X行像素,J的取值等于X和剩余行像素的行数之间的差值。
- 一种计算机设备,包括存储器和处理器,所述存储器存储有计算机可读指令,其特征在于,所述处理器执行所述计算机可读指令时实现权利要求1至13中任一项所述的方法的步骤。
- 一种计算机可读存储介质,存储有计算机可读指令,其特征在于,所述计算机可读指令被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
- 一种计算机可读指令产品,包括计算机可读指令,其特征在于,该计算机可读指令被处理器执行时实现权利要求1至13中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP22851749.6A EP4375936A1 (en) | 2021-08-03 | 2022-06-23 | Image processing method and apparatus, computer device and storage medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110888511.1 | 2021-08-03 | ||
CN202110888511.1A CN113327303B (zh) | 2021-08-03 | 2021-08-03 | 图像处理方法、装置、计算机设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2023011033A1 true WO2023011033A1 (zh) | 2023-02-09 |
Family
ID=77426960
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2022/100817 WO2023011033A1 (zh) | 2021-08-03 | 2022-06-23 | 图像处理方法、装置、计算机设备及存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230245420A1 (zh) |
EP (1) | EP4375936A1 (zh) |
CN (1) | CN113327303B (zh) |
WO (1) | WO2023011033A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113327303B (zh) * | 2021-08-03 | 2021-10-29 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
CN114860440B (zh) * | 2022-04-29 | 2023-01-10 | 北京天融信网络安全技术有限公司 | Gpu显存管理方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110115806A1 (en) * | 2009-11-19 | 2011-05-19 | Rogers Douglas H | High-compression texture mapping |
CN105761296A (zh) * | 2016-01-15 | 2016-07-13 | 网易(杭州)网络有限公司 | 一种压缩纹理的拼装系统及方法、终端 |
US20190304138A1 (en) * | 2018-03-29 | 2019-10-03 | Microsoft Technology Licensing, Llc | Reducing the search space for real time texture compression |
CN111402380A (zh) * | 2020-03-12 | 2020-07-10 | 杭州趣维科技有限公司 | 一种gpu压缩纹理处理方法 |
CN113034629A (zh) * | 2021-05-17 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
CN113327303A (zh) * | 2021-08-03 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7873212B2 (en) * | 2006-01-24 | 2011-01-18 | Nokia Corporation | Compression of images for computer graphics |
US9928452B2 (en) * | 2015-06-05 | 2018-03-27 | Canon Kabushiki Kaisha | Image decoding apparatus and method therefor |
US10148972B2 (en) * | 2016-01-08 | 2018-12-04 | Futurewei Technologies, Inc. | JPEG image to compressed GPU texture transcoder |
CN112379949B (zh) * | 2021-01-14 | 2021-04-13 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、装置、设备及存储介质 |
-
2021
- 2021-08-03 CN CN202110888511.1A patent/CN113327303B/zh active Active
-
2022
- 2022-06-23 EP EP22851749.6A patent/EP4375936A1/en active Pending
- 2022-06-23 WO PCT/CN2022/100817 patent/WO2023011033A1/zh active Application Filing
-
2023
- 2023-04-07 US US18/297,304 patent/US20230245420A1/en active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110115806A1 (en) * | 2009-11-19 | 2011-05-19 | Rogers Douglas H | High-compression texture mapping |
CN105761296A (zh) * | 2016-01-15 | 2016-07-13 | 网易(杭州)网络有限公司 | 一种压缩纹理的拼装系统及方法、终端 |
US20190304138A1 (en) * | 2018-03-29 | 2019-10-03 | Microsoft Technology Licensing, Llc | Reducing the search space for real time texture compression |
CN111402380A (zh) * | 2020-03-12 | 2020-07-10 | 杭州趣维科技有限公司 | 一种gpu压缩纹理处理方法 |
CN113034629A (zh) * | 2021-05-17 | 2021-06-25 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
CN113327303A (zh) * | 2021-08-03 | 2021-08-31 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113327303A (zh) | 2021-08-31 |
CN113327303B (zh) | 2021-10-29 |
US20230245420A1 (en) | 2023-08-03 |
EP4375936A1 (en) | 2024-05-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11909984B2 (en) | Video encoding and decoding for cloud gaming | |
CN111681167B (zh) | 画质调整方法和装置、存储介质及电子设备 | |
WO2023011033A1 (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
CN111314741B (zh) | 视频超分处理方法、装置、电子设备及存储介质 | |
US8761528B2 (en) | Compression of image data | |
US9075560B2 (en) | Real-time compression with GPU/CPU | |
US10283091B2 (en) | Buffer optimization | |
US20150256485A1 (en) | Load balancing between processors | |
CN108881916A (zh) | 远程桌面的视频优化处理方法及装置 | |
WO2022257699A1 (zh) | 图像画面显示方法、装置、设备、存储介质及程序产品 | |
AU2011314228B2 (en) | Entropy coder for image compression | |
CN105917382B (zh) | 用于交互式图形流传输的方法和系统 | |
US10652591B2 (en) | System for cloud streaming service, method for same using still-image compression technique and apparatus therefor | |
US8385666B2 (en) | Classification and encoder selection based on content | |
US9235452B2 (en) | Graphics remoting using augmentation data | |
WO2022242358A1 (zh) | 图像处理方法、装置、计算机设备及存储介质 | |
WO2022257750A1 (zh) | 图像处理方法、装置、电子设备、程序及可读存储介质 | |
US10225570B2 (en) | Split framebuffer encoding | |
CN115695857B (zh) | 云应用的视频编码方法及装置 | |
CN112316433A (zh) | 游戏画面渲染方法、装置、服务器和存储介质 | |
CN112843676A (zh) | 数据处理方法、装置、终端、服务器及存储介质 | |
US20120218292A1 (en) | System and method for multistage optimized jpeg output | |
CN115292020A (zh) | 一种数据处理方法、装置、设备以及介质 | |
CN115393490A (zh) | 图像渲染方法、装置、存储介质及电子设备 | |
CN116700943A (zh) | 一种视频播放系统、方法以及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 22851749 Country of ref document: EP Kind code of ref document: A1 |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2022851749 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2022851749 Country of ref document: EP Effective date: 20240222 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |