CN116166830A - Data processing system, electronic component, electronic device and data processing method - Google Patents
Data processing system, electronic component, electronic device and data processing method Download PDFInfo
- Publication number
- CN116166830A CN116166830A CN202310429555.7A CN202310429555A CN116166830A CN 116166830 A CN116166830 A CN 116166830A CN 202310429555 A CN202310429555 A CN 202310429555A CN 116166830 A CN116166830 A CN 116166830A
- Authority
- CN
- China
- Prior art keywords
- data
- current data
- unit
- processing
- length
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/50—Information retrieval; Database structures therefor; File system structures therefor of still image data
- G06F16/51—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/60—Memory management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本公开提供一种数据处理系统、电子组件、电子设备及数据处理方法,旨在降低解码后的数据对系统带宽的压力。本公开中,数据处理系统包括缓存模块,缓存模块用于判断解码器输出的当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度;当前数据对应的目标数据是指:已经被解码器输出的、且与当前数据属于同一个处理单位的数据;缓存模块还用于在总长度等于单位处理长度的情况下,将当前数据和当前数据对应的目标数据作为一个处理单位输入至压缩模块进行压缩,从而有效压缩解码后的数据的大小,降低解码后的数据对系统带宽的压力;此外,缓存模块还用于在总长度不等于单位处理长度的情况下,存储当前数据。
The present disclosure provides a data processing system, an electronic component, an electronic device and a data processing method, aiming at reducing the pressure of decoded data on system bandwidth. In the present disclosure, the data processing system includes a cache module, and the cache module is used to judge whether the total length of the current data output by the decoder and the target data corresponding to the current data is equal to the unit processing length of the compression module; the target data corresponding to the current data refers to: Data that has been output by the decoder and belongs to the same processing unit as the current data; the cache module is also used to input the current data and the target data corresponding to the current data as a processing unit when the total length is equal to the unit processing length To the compression module for compression, thereby effectively compressing the size of the decoded data and reducing the pressure of the decoded data on the system bandwidth; in addition, the cache module is also used to store the current data when the total length is not equal to the unit processing length.
Description
技术领域technical field
本公开涉及芯片技术领域,尤其涉及一种数据处理系统、电子组件、电子设备及数据处理方法。The present disclosure relates to the field of chip technology, and in particular to a data processing system, electronic components, electronic equipment and a data processing method.
背景技术Background technique
随着显示格式从1080P到4K再到8K,解码后的图像数据对系统带宽造成了很大的压力。以视频播放场景为例,SoC芯片中的视频解码器decoder对图像数据进行解码后,通过总线将解码后的数据存储至GDDR(graphics double data rate)存储器,SoC芯片中的显示控制器DC(display controller)通过总线从GDDR存储器中读取数据并显示。在上述视频播放过程中,解码后的数据量很大,对系统带宽造成了很大的压力。As the display format changes from 1080P to 4K to 8K, the decoded image data puts a lot of pressure on the system bandwidth. Taking the video playback scene as an example, the video decoder decoder in the SoC chip decodes the image data, and stores the decoded data to the GDDR (graphics double data rate) memory through the bus, and the display controller DC (display controller) reads data from the GDDR memory through the bus and displays it. During the above-mentioned video playback process, the decoded data volume is very large, which puts a lot of pressure on the system bandwidth.
发明内容Contents of the invention
本公开的目的是提供一种数据处理系统、电子组件、电子设备及数据处理方法,旨在降低解码后的数据对系统带宽的压力。The purpose of the present disclosure is to provide a data processing system, an electronic component, an electronic device and a data processing method, aiming at reducing the pressure of decoded data on the system bandwidth.
根据本公开的一个方面,提供一种数据处理系统,数据处理系统包括缓存模块:According to one aspect of the present disclosure, a data processing system is provided, and the data processing system includes a cache module:
缓存模块用于判断解码器输出的当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度;当前数据对应的目标数据是指:已经被解码器输出的、且与当前数据属于同一个处理单位的数据;The cache module is used to judge whether the total length of the current data output by the decoder and the target data corresponding to the current data is equal to the unit processing length of the compression module; data belonging to the same processing unit;
缓存模块还用于在总长度等于单位处理长度的情况下,将当前数据和当前数据对应的目标数据作为一个处理单位输入至压缩模块进行压缩;The cache module is also used to input the current data and the target data corresponding to the current data as a processing unit to the compression module for compression when the total length is equal to the unit processing length;
缓存模块还用于在总长度不等于单位处理长度的情况下,存储当前数据。The cache module is also used to store current data when the total length is not equal to the unit processing length.
本公开一种可行的实现方式中,缓存模块还用于根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据。In a feasible implementation manner of the present disclosure, the cache module is further configured to determine the target data corresponding to the current data according to the address of the current data and the address of the data output by the decoder.
本公开一种可行的实现方式中,缓存模块在根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据时,具体用于:In a feasible implementation of the present disclosure, when the cache module determines the target data corresponding to the current data according to the address of the current data and the address of the data output by the decoder, it is specifically used for:
将当前数据的地址与每个处理单位各自的地址区间进行比较;每个处理单位的地址区间是根据该处理单位的最小首地址和单位处理长度确定的,处理单位的最小首地址是指该处理单位内每个数据的首地址中最小的首地址;Compare the address of the current data with the address range of each processing unit; the address range of each processing unit is determined according to the minimum head address of the processing unit and the processing length of the unit, and the minimum head address of the processing unit refers to the processing unit The smallest first address among the first addresses of each data in the unit;
在当前数据的地址位于一个处理单位的地址区间的情况下,将属于该处理单位的每个数据确定为当前数据对应的目标数据。When the address of the current data is located in the address range of a processing unit, each data belonging to the processing unit is determined as the target data corresponding to the current data.
本公开一种可行的实现方式中,缓存模块包括多个第一缓存单元,每个第一缓存单元用于存储已经被解码器输出的、且属于同一个处理单位的数据;In a feasible implementation manner of the present disclosure, the cache module includes a plurality of first cache units, and each first cache unit is used to store data that has been output by the decoder and belongs to the same processing unit;
缓存模块还用于在当前数据不存在对应的目标数据的情况下,为当前数据分配一个空的第一缓存单元,并记录当前数据对应的处理单位状态信息;The cache module is also used to allocate an empty first cache unit for the current data when there is no corresponding target data for the current data, and record the processing unit state information corresponding to the current data;
处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,为当前数据分配的第一缓存单元的标识。The processing unit state information includes at least one of the following information: the address of the current data, the length of the current data, and the identifier of the first cache unit allocated for the current data.
本公开一种可行的实现方式中,缓存模块还用于在当前数据不存在对应的目标数据,且多个第一缓存单元中不存在空的第一缓存单元的情况下,将当前数据存储至缓存模块外的存储器,并记录当前数据对应的处理单位状态信息;In a feasible implementation of the present disclosure, the cache module is further configured to store the current data in the Cache the memory outside the module, and record the status information of the processing unit corresponding to the current data;
处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,当前数据在所述存储器中的地址。The processing unit status information includes at least one of the following information: the address of the current data, the length of the current data, and the address of the current data in the memory.
本公开一种可行的实现方式中,缓存模块在总长度不等于单位处理长度的情况下,存储当前数据时,具体用于:In a feasible implementation of the present disclosure, when the cache module stores the current data when the total length is not equal to the unit processing length, it is specifically used for:
在总长度不等于单位处理长度的情况下,根据当前数据对应的处理单位状态信息,将当前数据存储至相应的第一缓存单元,或者存储至存储器;When the total length is not equal to the unit processing length, according to the processing unit state information corresponding to the current data, the current data is stored in the corresponding first cache unit, or stored in the memory;
更新当前数据对应的处理单位状态信息。Update the processing unit status information corresponding to the current data.
本公开一种可行的实现方式中,缓存模块还包括状态缓存单元,状态缓存单元用于存储处理单位状态信息。In a feasible implementation manner of the present disclosure, the cache module further includes a state cache unit, and the state cache unit is used to store the state information of the processing unit.
本公开一种可行的实现方式中,缓存模块还包括第二缓存单元;In a feasible implementation manner of the present disclosure, the cache module further includes a second cache unit;
缓存模块还用于在总长度等于单位处理长度,且当前数据对应的目标数据存储在存储器中的情况下,将当前数据存储至第二缓存单元,并从存储器读取当前数据对应的目标数据至第二缓存单元。The cache module is also used to store the current data in the second cache unit when the total length is equal to the unit processing length and the target data corresponding to the current data is stored in the memory, and read the target data corresponding to the current data from the memory to Second cache unit.
本公开一种可行的实现方式中,缓存模块在判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度之前,还用于:判断当前数据是否是一行图像数据中的最后一部分;In a feasible implementation of the present disclosure, before judging whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module, the cache module is also used to: judge whether the current data is a line of image data the last part;
缓存模块还用于在当前数据是一行图像数据中的最后一部分的情况下,计算当前数据和当前数据对应的目标数据的总长度,在该总长度小于单位处理长度的情况下,对当前数据进行补充,使得补充后的当前数据和目标数据的总长度等于单位处理长度,再将补充后的当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩。The cache module is also used to calculate the total length of the current data and the target data corresponding to the current data when the current data is the last part of a line of image data, and when the total length is less than the unit processing length, process the current data Supplementing, so that the total length of the supplemented current data and target data is equal to the unit processing length, and then inputting the supplemented current data and target data as a processing unit to the compression module for compression.
本公开一种可行的实现方式中,缓存模块在判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度时,具体用于:In a feasible implementation of the present disclosure, when the cache module judges whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module, it is specifically used for:
在当前数据不是一行图像数据中的最后一部分的情况下,判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度。When the current data is not the last part of a line of image data, it is judged whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module.
本公开一种可行的实现方式中,缓存模块在判断当前数据是否是一行图像数据中的最后一部分之前,还用于:判断当前数据的长度是否等于单位处理长度;In a feasible implementation of the present disclosure, before judging whether the current data is the last part of a row of image data, the cache module is further used to: judge whether the length of the current data is equal to the unit processing length;
缓存模块在判断当前数据是否是一行图像数据中的最后一部分时,具体用于:在当前数据的长度小于单位处理长度的情况下,判断当前数据是否是一行图像数据中的最后一部分;When the cache module judges whether the current data is the last part of a row of image data, it is specifically used for: judging whether the current data is the last part of a row of image data when the length of the current data is less than the unit processing length;
缓存模块还用于在当前数据的长度等于单位处理长度的情况下,将当前数据作为一个处理单位输入至压缩模块进行压缩。The cache module is also used for inputting the current data as a processing unit to the compression module for compression when the length of the current data is equal to the unit processing length.
本公开一种可行的实现方式中,数据处理系统还包括解码器和压缩模块;In a feasible implementation of the present disclosure, the data processing system further includes a decoder and a compression module;
解码器用于解码图像数据,并输出解码后的数据;The decoder is used to decode the image data and output the decoded data;
压缩模块用于对缓存模块输入的数据进行压缩。The compression module is used to compress the data input by the cache module.
本公开一种可行的实现方式中,解码器在解码图像数据时,具体用于:In a feasible implementation of the present disclosure, when decoding image data, the decoder is specifically used for:
在图像数据是按图块分割的图像数据的情况下,按照图块顺序对图像数据进行解码。In the case where the image data is image data divided by tiles, the image data is decoded in tile order.
根据本公开的另一方面,还提供一种电子组件,该电子组件包括上述任一实施例中所述的数据处理系统。在一些使用场景下,该电子装置的产品形式体现为SoC芯片、显卡或者CPU主板。According to another aspect of the present disclosure, an electronic component is further provided, and the electronic component includes the data processing system described in any one of the above embodiments. In some usage scenarios, the product form of the electronic device is embodied as a SoC chip, a graphics card or a CPU motherboard.
根据本公开的另一方面,还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机等。According to another aspect of the present disclosure, there is also provided an electronic device, which includes the above-mentioned electronic component. In some usage scenarios, the product form of the electronic device is a portable electronic device, such as a smartphone, tablet computer, VR device, etc.; in some usage scenarios, the product form of the electronic device is a personal computer, a game console, etc.
根据本公开的另一方面,还提供一种数据处理方法,该方法包括:According to another aspect of the present disclosure, there is also provided a data processing method, the method comprising:
判断解码器输出的当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度;当前数据对应的目标数据是指:已经被解码器输出的、且与当前数据属于同一个处理单位的数据;Determine whether the total length of the current data output by the decoder and the target data corresponding to the current data is equal to the unit processing length of the compression module; the target data corresponding to the current data refers to: it has been output by the decoder and belongs to the same process as the current data unit data;
在总长度等于单位处理长度的情况下,将当前数据和当前数据对应的目标数据作为一个处理单位输入至压缩模块进行压缩;When the total length is equal to the unit processing length, the current data and the target data corresponding to the current data are input to the compression module as a processing unit for compression;
在总长度不等于单位处理长度的情况下,存储当前数据。In the case where the total length is not equal to the unit processing length, the current data is stored.
本公开一种可行的实现方式中,该方法还包括:In a feasible implementation of the present disclosure, the method further includes:
根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据。According to the address of the current data and the address of the data output by the decoder, the target data corresponding to the current data is determined.
本公开一种可行的实现方式中,根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据,包括:In a feasible implementation of the present disclosure, the target data corresponding to the current data is determined according to the address of the current data and the address of the data output by the decoder, including:
将当前数据的地址与每个处理单位各自的地址区间进行比较;每个处理单位的地址区间是根据该处理单位的最小首地址和单位处理长度确定的,处理单位的最小首地址是指该处理单位内每个数据的首地址中最小的首地址;Compare the address of the current data with the address range of each processing unit; the address range of each processing unit is determined according to the minimum head address of the processing unit and the processing length of the unit, and the minimum head address of the processing unit refers to the processing unit The smallest first address among the first addresses of each data in the unit;
在当前数据的地址位于一个处理单位的地址区间的情况下,将属于该处理单位的每个数据确定为当前数据对应的目标数据。When the address of the current data is located in the address range of a processing unit, each data belonging to the processing unit is determined as the target data corresponding to the current data.
本公开一种可行的实现方式中,该方法还包括:In a feasible implementation of the present disclosure, the method further includes:
在当前数据不存在对应的目标数据的情况下,从多个第一缓存单元中为当前数据分配一个空的第一缓存单元,并将当前数据存储至空的第一缓存单元;每个第一缓存单元用于存储已经被解码器输出的、且属于同一个处理单位的数据;In the case that the current data does not have corresponding target data, allocate an empty first cache unit for the current data from a plurality of first cache units, and store the current data in the empty first cache unit; each first The cache unit is used to store data that has been output by the decoder and belongs to the same processing unit;
记录当前数据对应的处理单位状态信息;处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,为当前数据分配的第一缓存单元的标识。Record the processing unit status information corresponding to the current data; the processing unit status information includes at least one of the following information: the address of the current data, the length of the current data, and the identifier of the first cache unit allocated for the current data.
本公开一种可行的实现方式中,该方法还包括:In a feasible implementation of the present disclosure, the method further includes:
在当前数据不存在对应的目标数据,且多个第一缓存单元中不存在空的第一缓存单元的情况下,将当前数据存储至外部的存储器,并记录当前数据对应的处理单位状态信息;When the current data does not have corresponding target data, and there is no empty first cache unit in the plurality of first cache units, store the current data in an external memory, and record the processing unit state information corresponding to the current data;
处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,当前数据在存储器中的地址。The processing unit status information includes at least one of the following information: the address of the current data, the length of the current data, and the address of the current data in the memory.
本公开一种可行的实现方式中,在总长度不等于单位处理长度的情况下,存储当前数据,包括:In a feasible implementation of the present disclosure, when the total length is not equal to the unit processing length, storing the current data includes:
在总长度不等于单位处理长度的情况下,根据当前数据对应的处理单位状态信息,将当前数据存储至相应的第一缓存单元,或者存储至存储器;When the total length is not equal to the unit processing length, according to the processing unit state information corresponding to the current data, the current data is stored in the corresponding first cache unit, or stored in the memory;
更新当前数据对应的处理单位状态信息。Update the processing unit status information corresponding to the current data.
本公开一种可行的实现方式中,该方法还包括:In a feasible implementation of the present disclosure, the method further includes:
在总长度等于单位处理长度,且当前数据对应的目标数据存储在存储器中的情况下,将当前数据存储至第二缓存单元,并从存储器读取当前数据对应的目标数据至第二缓存单元。When the total length is equal to the unit processing length and the target data corresponding to the current data is stored in the memory, the current data is stored in the second cache unit, and the target data corresponding to the current data is read from the memory to the second cache unit.
本公开一种可行的实现方式中,在判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度之前,该方法还包括:判断当前数据是否是一行图像数据中的最后一部分;In a feasible implementation of the present disclosure, before judging whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module, the method further includes: judging whether the current data is the last row of image data a part;
该方法还包括:在当前数据是一行图像数据中的最后一部分的情况下,计算当前数据和当前数据对应的目标数据的总长度,在该总长度小于单位处理长度的情况下,对当前数据进行补充,使得补充后的当前数据和目标数据的总长度等于单位处理长度,再将补充后的当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩。The method also includes: in the case that the current data is the last part of a line of image data, calculating the total length of the current data and the target data corresponding to the current data, and in the case that the total length is less than the unit processing length, performing processing on the current data Supplementing, so that the total length of the supplemented current data and target data is equal to the unit processing length, and then inputting the supplemented current data and target data as a processing unit to the compression module for compression.
本公开一种可行的实现方式中,判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度,包括:In a feasible implementation of the present disclosure, judging whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module includes:
在当前数据不是一行图像数据中的最后一部分的情况下,判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度。When the current data is not the last part of a line of image data, it is judged whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module.
本公开一种可行的实现方式中,在判断当前数据是否是一行图像数据中的最后一部分之前,该方法还包括:判断当前数据的长度是否等于单位处理长度;In a feasible implementation of the present disclosure, before judging whether the current data is the last part of a line of image data, the method further includes: judging whether the length of the current data is equal to the unit processing length;
判断当前数据是否是一行图像数据中的最后一部分,包括:在当前数据的长度小于单位处理长度的情况下,判断当前数据是否是一行图像数据中的最后一部分;Judging whether the current data is the last part of a row of image data includes: judging whether the current data is the last part of a row of image data when the length of the current data is less than the unit processing length;
该方法还包括:在当前数据的长度等于单位处理长度的情况下,将当前数据作为一个处理单位输入至压缩模块进行压缩。The method further includes: when the length of the current data is equal to the unit processing length, inputting the current data as a processing unit to the compression module for compression.
附图说明Description of drawings
图1是本公开一实施例提供的数据处理系统的结构示意图;FIG. 1 is a schematic structural diagram of a data processing system provided by an embodiment of the present disclosure;
图2是本公开一实施例提出的缓存模块的结构示意图;FIG. 2 is a schematic structural diagram of a cache module proposed by an embodiment of the present disclosure;
图3是本公开一实施例提出的图像解码过程示意图;FIG. 3 is a schematic diagram of an image decoding process proposed by an embodiment of the present disclosure;
图4是本公开一实施例提出的数据处理流程示意图;FIG. 4 is a schematic diagram of a data processing flow proposed by an embodiment of the present disclosure;
图5是本公开一实施例提出的数据处理流程示意图;FIG. 5 is a schematic diagram of a data processing flow proposed by an embodiment of the present disclosure;
图6是本公开一实施例提出的数据处理流程示意图;FIG. 6 is a schematic diagram of a data processing flow proposed by an embodiment of the present disclosure;
图7是本公开一实施例提出的数据处理方法的流程示意图。FIG. 7 is a schematic flowchart of a data processing method proposed by an embodiment of the present disclosure.
具体实施方式Detailed ways
在介绍本公开实施例之前,应当说明的是:Before introducing the embodiments of the present disclosure, it should be noted that:
本公开部分实施例被描述为处理流程,虽然流程的各个操作步骤可能被冠以顺序的步骤编号,但是其中的操作步骤可以被并行地、并发地或者同时实施。Some embodiments of the present disclosure are described as a processing flow. Although each operation step of the flow may be labeled with a sequential step number, the operation steps therein may be implemented in parallel, concurrently or simultaneously.
本公开实施例中可能使用了术语“第一”、“第二”等等来描述各个特征,但是这些特征不应当受这些术语限制。使用这些术语仅仅是为了将一个特征与另一个特征进行区分。The embodiments of the present disclosure may use the terms "first", "second" and so on to describe various features, but these features should not be limited by these terms. These terms are used only to distinguish one feature from another.
本公开实施例中可能使用了术语“和/或”,“和/或”包括其中一个或更多所列出的相关联特征的任意和所有组合。The term "and/or" may be used in the embodiments of the present disclosure, and "and/or" includes any and all combinations of one or more listed associated features.
应当理解的是,当描述两个部件的连接关系或通信关系时,除非明确指明两个部件之间直接连接或直接通信,否则,两个部件的连接或通信可以理解为直接连接或通信,也可以理解为通过中间部件间接连接或通信。It should be understood that when describing the connection relationship or communication relationship between two components, unless it is clearly indicated that the two components are directly connected or communicated directly, otherwise, the connection or communication of the two components can be understood as a direct connection or communication, and also It can be understood as indirect connection or communication through intermediate components.
为了使本公开实施例中的技术方案及优点更加清楚明白,以下结合附图对本公开的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本公开的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。In order to make the technical solutions and advantages of the embodiments of the present disclosure clearer, the exemplary embodiments of the present disclosure will be further described in detail below in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present disclosure, and Not an exhaustive list of all embodiments. It should be noted that, in the case of no conflict, the embodiments in the present disclosure and the features in the embodiments can be combined with each other.
随着显示格式从1080P到4K再到8K,解码后的图像数据对系统带宽造成了很大的压力。为了降低解码后的数据对系统带宽的压力,本公开的发明人想到在解码器的输出端连接压缩模块,利用压缩模块对解码器输出的数据进行压缩,从而有效压缩解码后的数据的大小,降低解码后的数据对系统带宽的压力。但是在具体实现时,发明人发现解码器与压缩模块之间存在不适配的情况,发明人通过分析后进一步发现这种不适配的原因主要是:As the display format changes from 1080P to 4K to 8K, the decoded image data puts a lot of pressure on the system bandwidth. In order to reduce the pressure of the decoded data on the system bandwidth, the inventors of the present disclosure thought of connecting a compression module at the output end of the decoder, and using the compression module to compress the data output by the decoder, thereby effectively compressing the size of the decoded data, Reduce the pressure of decoded data on system bandwidth. However, in the actual implementation, the inventor found that there is a mismatch between the decoder and the compression module. After analysis, the inventor further found that the reason for this mismatch is mainly:
一方面,压缩模块是按照固定的单位处理长度对数据进行压缩处理的。比如固定的单位处理长度为256bytes,则每次输入给压缩模块的数据长度必须等于256bytes,否则压缩模块不能正确实施压缩。另一方面,解码器在解码图像数据时,通常也是按照固定长度(比如256bytes)向外输出数据,在此情况下,由于解码器输出的数据长度与压缩模块的单位处理长度相等,因此解码器和压缩模块之间是匹配的。但是当图像数据的编码格式是H.265编码格式或VP9编码格式时,H.265编码格式和VP9编码格式具有按任意图块(tile)分割图像的功能,在此情况下,解码器会按照图块顺序对图像数据进行解码,每当解码至图块边界时,输出的数据通常小于256bytes,这就导致解码器和压缩模块之间不再适配。On the one hand, the compression module compresses the data according to a fixed unit processing length. For example, if the fixed unit processing length is 256 bytes, the data length input to the compression module must be equal to 256 bytes each time, otherwise the compression module cannot perform compression correctly. On the other hand, when the decoder decodes image data, it usually outputs data according to a fixed length (such as 256bytes). In this case, since the data length output by the decoder is equal to the unit processing length of the compression module, the decoder There is a match between the compression module. However, when the encoding format of the image data is the H.265 encoding format or VP9 encoding format, the H.265 encoding format and VP9 encoding format have the function of dividing the image by any tile. In this case, the decoder will follow The image data is decoded sequentially in tiles, and the output data is usually less than 256bytes when decoding to a tile boundary, which causes no adaptation between the decoder and the compression module.
基于上述情况,本公开发明人通过以下实施例提供一种数据处理系统、电子组件、电子设备及数据处理方法,旨在降低解码后的数据对系统带宽的压力,并进一步克服解码器和压缩模块之间不适配的问题。Based on the above situation, the inventors of the present disclosure provide a data processing system, electronic components, electronic equipment and data processing method through the following embodiments, aiming at reducing the pressure of the decoded data on the system bandwidth, and further overcoming the problem of decoders and compression modules The problem of incompatibility between.
参考图1,图1是本公开一实施例提供的数据处理系统的结构示意图。如图1所示,该数据处理系统包括缓存模块,缓存模块用于判断解码器输出的当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度。其中,当前数据对应的目标数据是指:已经被解码器输出的、且与当前数据属于同一个处理单位的数据。Referring to FIG. 1 , FIG. 1 is a schematic structural diagram of a data processing system provided by an embodiment of the present disclosure. As shown in FIG. 1 , the data processing system includes a cache module for judging whether the total length of the current data output by the decoder and the target data corresponding to the current data is equal to the unit processing length of the compression module. Wherein, the target data corresponding to the current data refers to data that has been output by the decoder and belongs to the same processing unit as the current data.
缓存模块还用于在总长度等于单位处理长度的情况下,将当前数据和当前数据对应的目标数据作为一个处理单位输入至压缩模块进行压缩。The cache module is also used for inputting the current data and the target data corresponding to the current data as a processing unit to the compression module for compression when the total length is equal to the unit processing length.
缓存模块还用于在总长度不等于单位处理长度的情况下,存储当前数据。The cache module is also used to store current data when the total length is not equal to the unit processing length.
本公开中,在解码器和压缩模块之间设置缓存模块,当缓存模块获得解码器输出的当前数据后,计算当前数据和当前数据对应的目标数据的总长度,并判断该总长度是否等于压缩模块的单位处理长度。如果相等,则说明当前数据及其对应的目标数据能被压缩模块处理,因此可以将当前数据及其对应的目标数据作为一个处理单位输入至压缩模块进行压缩处理。如果不相等,则说明当前数据及其对应的目标数据还不能被压缩模块处理,因此可以暂时存储当前数据,等待凑够单位处理长度后,再输入至压缩模块进行压缩处理。In this disclosure, a cache module is set between the decoder and the compression module. After the cache module obtains the current data output by the decoder, it calculates the total length of the current data and the target data corresponding to the current data, and judges whether the total length is equal to the compression The unit processing length of the module. If they are equal, it means that the current data and its corresponding target data can be processed by the compression module, so the current data and its corresponding target data can be input to the compression module as a processing unit for compression processing. If they are not equal, it means that the current data and its corresponding target data cannot be processed by the compression module, so the current data can be stored temporarily, and then input to the compression module for compression processing after the unit processing length is enough.
为便于理解,示例性地,假设压缩模块的单位处理长度等于256bytes。又假设解码器输出的当前数据的长度为64bytes,而当前数据对应的目标数据包括两份,两份目标数据的长度均为96bytes,因此当前数据与其对应的目标数据的总长度等于64+96+96=256bytes,与压缩模块的单位处理长度相等,进而将当前数据及其对应的目标数据作为一个处理单位输入至压缩模块进行压缩处理。For ease of understanding, as an example, it is assumed that the unit processing length of the compression module is equal to 256 bytes. It is also assumed that the length of the current data output by the decoder is 64 bytes, and the target data corresponding to the current data includes two copies, and the length of the two target data is both 96 bytes, so the total length of the current data and the corresponding target data is equal to 64+96+ 96=256bytes, which is equal to the unit processing length of the compression module, and then the current data and its corresponding target data are input to the compression module as a processing unit for compression processing.
或者假设解码器输出的当前数据的长度为96bytes,而当前数据对应的目标数据仅一份,该份目标数据的长度为96bytes,因此当前数据与其对应的目标数据的总长度等于192bytes,小于压缩模块的单位处理长度,因此暂时存储当前数据。等到解码器输出与当前数据属于同一个处理单位且能凑够256bytes的数据后,再将该处理单位输入至压缩模块进行压缩处理。Or assume that the length of the current data output by the decoder is 96 bytes, and the target data corresponding to the current data is only one copy, and the length of the target data is 96 bytes, so the total length of the current data and the corresponding target data is equal to 192 bytes, which is smaller than the compression module The unit handles the length, thus temporarily storing the current data. Wait until the decoder outputs the same processing unit as the current data and can make up 256 bytes of data, and then input the processing unit to the compression module for compression processing.
本公开中,通过在解码器和压缩模块之间设置缓存模块,缓存模块在当前数据和当前数据对应的目标数据的总长度不等于压缩模块的单位处理长度的情况下,存储当前数据,在当前数据和当前数据对应的目标数据的总长度等于压缩模块的单位处理长度的情况下,将当前数据和当前数据对应的目标数据作为一个处理单位输入至压缩模块进行压缩,压缩模块输出压缩后的数据,从而能有效降低解码后的数据对系统带宽的压力,也能克服解码器和压缩模块之间不适配的问题。In this disclosure, by setting a cache module between the decoder and the compression module, the cache module stores the current data when the total length of the current data and the target data corresponding to the current data is not equal to the unit processing length of the compression module. When the total length of the data and the target data corresponding to the current data is equal to the unit processing length of the compression module, the current data and the target data corresponding to the current data are input to the compression module as a processing unit for compression, and the compression module outputs the compressed data , so that the pressure of the decoded data on the system bandwidth can be effectively reduced, and the problem of incompatibility between the decoder and the compression module can also be overcome.
在本公开的一些具体实施方式中,缓存模块还用于根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据。In some specific implementations of the present disclosure, the cache module is further configured to determine the target data corresponding to the current data according to the address of the current data and the address of the data output by the decoder.
本公开中,缓存模块根据当前数据的地址和已经被解码器输出的数据的地址,确定出当前数据对应的目标数据后,才判断当前数据及其对应的目标数据的总长度是否等于压缩模块的单位处理长度。In this disclosure, after the cache module determines the target data corresponding to the current data according to the address of the current data and the address of the data output by the decoder, it judges whether the total length of the current data and its corresponding target data is equal to that of the compression module. Unit processing length.
缓存模块在确定当前数据对应的目标数据时,一种比较简单高效的确定方式是:将当前数据的地址与每个处理单位各自的地址区间进行比较;每个处理单位的地址区间是根据该处理单位的最小首地址和单位处理长度确定的,处理单位的最小首地址是指该处理单位内每个数据的首地址中最小的首地址;在当前数据的地址位于一个处理单位的地址区间的情况下,将属于该处理单位的每个数据确定为当前数据对应的目标数据。When the cache module determines the target data corresponding to the current data, a relatively simple and efficient way to determine is: compare the address of the current data with the respective address range of each processing unit; the address range of each processing unit is based on the processing Determined by the minimum initial address of the unit and the processing length of the unit, the minimum initial address of the processing unit refers to the smallest initial address among the initial addresses of each data in the processing unit; when the address of the current data is located in the address range of a processing unit Next, each data belonging to the processing unit is determined as the target data corresponding to the current data.
其中,缓存模块可以预先计算每个处理单位的地址区间,比如在解码器输出一个处理单位的第一份数据时,缓存模块就可以根据该第一份数据的首地址和单位处理长度确定出该处理单位的地址区间。具体确定方式可以是:将第一份数据的首地址作为地址区间的下限,将第一份数据的首地址加上单位处理长度后对应的地址,作为地址区间的上限。其中,处理单位的第一份数据就是该处理单位中首地址最小的一段数据,换言之,也就是连续256bytes数据(假设单位处理长度等于256bytes)中地址最小的一段数据。Among them, the cache module can pre-calculate the address range of each processing unit. For example, when the decoder outputs the first piece of data of a processing unit, the cache module can determine the address interval of the first piece of data according to the first address of the first piece of data and the unit processing length. The address range of the processing unit. The specific determination method may be: use the first address of the first data as the lower limit of the address range, and use the address corresponding to the first address of the first data plus the unit processing length as the upper limit of the address range. Among them, the first piece of data of the processing unit is the piece of data with the smallest first address in the processing unit, in other words, it is the piece of data with the smallest address among the continuous 256bytes data (assuming that the unit processing length is equal to 256bytes).
缓存模块在确定当前数据对应的目标数据时,将当前数据的地址(可以是首地址或结束地址)与各个处理单位的地址区间进行比较,如果当前数据的地址位于某个处理单位的地址区间内,则该处理单位中的每个数据就是当前数据对应的目标数据,换言之,当前数据也属于该处理单位。比如当前数据的地址恰好位于处理单位b的地址区间[b1,b1+256]内,则当前数据属于处理单位b,处理单位b中的数据是当前数据对应的目标数据。When the cache module determines the target data corresponding to the current data, it compares the address of the current data (which can be the first address or the end address) with the address range of each processing unit. If the address of the current data is within the address range of a certain processing unit , each data in the processing unit is the target data corresponding to the current data, in other words, the current data also belongs to the processing unit. For example, the address of the current data is exactly within the address range [b1,b1+256] of the processing unit b, then the current data belongs to the processing unit b, and the data in the processing unit b is the target data corresponding to the current data.
此外,如果当前数据的地址没有位于任何一个处理单位的地址区间内,则说明当前数据不存在对应的目标数据。换言之,说明当前数据是一个处理单位中的第一份数据,进而可以根据当前数据的首地址和单位处理长度确定出该处理单位的地址区间。In addition, if the address of the current data is not located within the address range of any processing unit, it means that the current data does not have corresponding target data. In other words, it shows that the current data is the first piece of data in a processing unit, and then the address range of the processing unit can be determined according to the first address of the current data and the unit processing length.
本公开中,在确定当前数据对应的目标数据时,通过将当前数据与每个处理单位的地址区间进行比较,就可以确定当前数据对应的目标数据,确定方式简单且高效,有利于降低SoC芯片的复杂度。In the present disclosure, when determining the target data corresponding to the current data, by comparing the current data with the address range of each processing unit, the target data corresponding to the current data can be determined. The determination method is simple and efficient, and it is beneficial to reduce the SoC chip of complexity.
此外,缓存模块在确定当前数据对应的目标数据时,另一种确定方式是:根据处理单位内首地址最大的一份数据的首地址和长度,计算该份数据的结束地址,并判断该结束地址与当前数据的首地址是否相等,如果两者相等,则将属于该处理单位的每个数据确定为当前数据对应的目标数据。In addition, when the cache module determines the target data corresponding to the current data, another determination method is: according to the first address and length of the data with the largest first address in the processing unit, calculate the end address of the data, and judge the end address. Whether the address is equal to the first address of the current data, and if they are equal, each data belonging to the processing unit is determined as the target data corresponding to the current data.
为便于理解,示例性地,假设处理单位a中包括数据x和数据y,其中数据x的首地址最大,则根据数据x的首地址和数据x的长度,计算出数据x的结束地址,并将数据x的结束地址与当前数据的首地址进行比较,如果两者相等,则将处理单位a中包括的数据x和数据y确定为当前数据对应的目标数据,同时也说明当前数据属于处理单位a。For ease of understanding, for example, assuming that processing unit a includes data x and data y, where the first address of data x is the largest, the end address of data x is calculated according to the first address of data x and the length of data x, and Compare the end address of data x with the first address of the current data, if they are equal, determine the data x and data y included in the processing unit a as the target data corresponding to the current data, and also indicate that the current data belongs to the processing unit a.
在本公开的一些具体实施方式中,如图2所示,图2是本公开一实施例提出的缓存模块的结构示意图,缓存模块包括多个第一缓存单元,每个第一缓存单元用于存储已经被解码器输出的、且属于同一个处理单位的数据。In some specific implementations of the present disclosure, as shown in FIG. 2, FIG. 2 is a schematic structural diagram of a cache module proposed by an embodiment of the present disclosure. The cache module includes a plurality of first cache units, and each first cache unit is used for Data that has been output by the decoder and belongs to the same processing unit is stored.
缓存模块还用于在当前数据不存在对应的目标数据的情况下,为当前数据分配一个空的第一缓存单元,并记录当前数据对应的处理单位状态信息。其中,处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,为当前数据分配的第一缓存单元的标识。The cache module is further configured to allocate an empty first cache unit for the current data and record the status information of the processing unit corresponding to the current data when there is no corresponding target data for the current data. Wherein, the processing unit state information includes at least one of the following information: the address of the current data, the length of the current data, and the identifier of the first cache unit allocated for the current data.
本公开中,如果当前数据不存在对应的目标数据,也就是在已经被解码器输出的数据中,没有与当前数据属于同一个处理单位的数据,从而说明当前数据是一个处理单位中的第一份数据。In this disclosure, if the current data does not have corresponding target data, that is, among the data output by the decoder, there is no data belonging to the same processing unit as the current data, which means that the current data is the first in a processing unit. copies of data.
如果当前数据是一个处理单位中的第一份数据,则缓存模块会为当前数据分配一个空的第一缓存单元,该第一缓存单元用于缓存当前数据,以及用于缓存解码器后续输出的与当前数据属于同一个处理单位的数据。此外,缓存单元还会记录当前数据对应的处理单位状态信息,该处理单位状态信息可以包括当前数据的首地址、当前数据的长度、为当前数据分配的第一缓存单元的标识,其中,第一缓存单元的标识具体可以是第一缓存单元的索引信息index。If the current data is the first piece of data in a processing unit, the cache module will allocate an empty first cache unit for the current data, which is used to cache the current data and the subsequent output of the decoder Data belonging to the same processing unit as the current data. In addition, the cache unit will also record the processing unit status information corresponding to the current data. The processing unit status information may include the first address of the current data, the length of the current data, and the identifier of the first cache unit allocated for the current data, wherein the first The identifier of the cache unit may specifically be index information index of the first cache unit.
在一些具体实施方式中,处理单位状态信息还可以包括该处理单位对应的地址区间,地址区间的计算方式可参考上述实施例,为简化说明,此处不再赘述。缓存模块后续在接收到解码器输出的新的数据时,可以根据每个处理单位状态信息中的地址区间,确定新数据所属的处理单位和对应的目标数据。In some specific implementation manners, the status information of the processing unit may also include an address range corresponding to the processing unit. For the calculation method of the address range, reference may be made to the above-mentioned embodiments. To simplify the description, details are not repeated here. When the cache module subsequently receives the new data output by the decoder, it can determine the processing unit to which the new data belongs and the corresponding target data according to the address interval in the state information of each processing unit.
在一些具体实施方式中,处理单位状态信息还可以包括存储指示信息,存储指示信息用于表征该处理单位的数据是否存储在缓存模块内。In some specific implementation manners, the processing unit status information may further include storage indication information, and the storage indication information is used to indicate whether the data of the processing unit is stored in the cache module.
需要说明的是,本公开中第一缓存单元为空,可以有以下几种情况:1)第一缓存单元中没有存储任何数据;2)第一缓存单元中存储的数据已经全部输入至压缩模块。换言之,如果一个第一缓存单元中没有存储任何数据,则该第一缓存单元是空的。如果一个第一缓存单元中存储的数据已经全部输入至压缩模块,则也认为该第一缓存单元是空的。It should be noted that the first cache unit in this disclosure is empty, and there may be the following situations: 1) no data is stored in the first cache unit; 2) all data stored in the first cache unit has been input to the compression module . In other words, if no data is stored in a first cache unit, the first cache unit is empty. If all the data stored in a first cache unit has been input to the compression module, the first cache unit is also considered to be empty.
图2中示例性地示出了6个第一缓存单元,每个第一缓存单元至少包括:数据段和有效性指示段。其中,每个第一缓存单元的数据段用于存储解码器输出的数据,这些数据属于同一个处理单位,且还未被输入给压缩模块。每个第一缓存单元的数据段的长度(即存储容量)大于等于单位处理长度。为了降低成本和/或减少对芯片面积的占用,每个第一缓存单元的数据段的长度可以配置为等于单位处理长度,比如256bytes。每个第一缓存单元的有效性指示段用于存储有效性标识,有效性标识用于表示该第一缓存单元是否为空,也就是表示该第一缓存单元是否可被分配。如图2所示,当第一缓存单元的有效性标识为1时,表示该第一缓存单元非空,该第一缓存单元已经被占用,从而不能被分配;当第一缓存单元的有效性标识为0时,表示该第一缓存单元为空,该第一缓存单元未被占用,从而可以被分配。FIG. 2 exemplarily shows six first cache units, and each first cache unit at least includes: a data segment and a validity indication segment. Wherein, the data segment of each first buffer unit is used to store data output by the decoder, and these data belong to the same processing unit and have not been input to the compression module. The length (ie storage capacity) of the data segment of each first cache unit is greater than or equal to the unit processing length. In order to reduce the cost and/or reduce the occupation of the chip area, the length of the data segment of each first cache unit may be configured to be equal to the unit processing length, such as 256 bytes. The validity indication segment of each first cache unit is used to store a validity identifier, and the validity identifier is used to indicate whether the first cache unit is empty, that is, indicates whether the first cache unit can be allocated. As shown in Figure 2, when the validity flag of the first cache unit is 1, it means that the first cache unit is not empty, and the first cache unit has been occupied, so it cannot be allocated; when the validity of the first cache unit When the flag is 0, it means that the first cache unit is empty, the first cache unit is not occupied, and thus can be allocated.
图2中,其中第一缓存单元A、第一缓存单元B及第一缓存单元C均非空,第一缓存单元A、第一缓存单元B及第一缓存单元C已经分别存储了处理单位a、处理单位b及处理单位c的部分数据。而第一缓存单元D、第一缓存单元E及第一缓存单元F均为空。如果解码器输出的当前数据是一个处理单位中的第一份数据,则解码器可以从第一缓存单元D、第一缓存单元E及第一缓存单元F中为当前数据分配一个第一缓存单元,并将当前数据存储至分配的第一缓存单元的数据段,并将第一缓存单元的有效性标识更新为1。In Fig. 2, wherein the first cache unit A, the first cache unit B and the first cache unit C are not empty, the first cache unit A, the first cache unit B and the first cache unit C have respectively stored the processing unit a , partial data of processing unit b and processing unit c. And the first cache unit D, the first cache unit E and the first cache unit F are all empty. If the current data output by the decoder is the first piece of data in a processing unit, the decoder can allocate a first cache unit for the current data from the first cache unit D, the first cache unit E, and the first cache unit F , and store the current data in the allocated data segment of the first cache unit, and update the validity flag of the first cache unit to 1.
在本公开的一些具体实施方式中,如图2所示,缓存模块还可以包括状态缓存单元,状态缓存单元用于存储处理单位状态信息。在一些实现方式中,状态缓存单元的数量为多个,每个状态缓存单元用于存储一个处理单位的处理单位状态信息。在一些实现方式中,状态缓存单元的数量为一个,该状态缓存单元用于存储每个处理单位的处理单位状态信息。在一些实现方式中,状态缓存单元的数量为几个,每个状态缓存单元用于存储一部分处理单位的处理单位状态信息。In some specific implementation manners of the present disclosure, as shown in FIG. 2 , the cache module may further include a state cache unit, which is used to store the state information of the processing unit. In some implementation manners, there are multiple state buffer units, and each state buffer unit is used to store processing unit state information of a processing unit. In some implementation manners, there is one state buffer unit, and the state buffer unit is used to store the processing unit state information of each processing unit. In some implementation manners, the number of state buffer units is several, and each state buffer unit is used to store processing unit state information of a part of processing units.
在本公开的一些具体实施方式中,考虑到H.265编码格式和VP9编码格式可以按任意图块(tile)分割图像,分割图像时采用的tile高度决定了需要的第一缓存单元的数量,比如在采用高度较高的tile对图像进行分割时,需要的第一缓存单元越多。为便于理解,如图3所示,图像a和图像b均被tile分割,图像a中的tile高度为4个像素,图像b中的tile高度为8个像素。In some specific implementations of the present disclosure, considering that the H.265 encoding format and the VP9 encoding format can divide an image by any tile (tile), the tile height used when dividing an image determines the number of first buffer units required, For example, when a tile with a higher height is used to segment an image, more first cache units are required. For ease of understanding, as shown in Figure 3, both image a and image b are divided by tiles, the tile height in image a is 4 pixels, and the tile height in image b is 8 pixels.
解码器在对图像a进行解码时,按照tile1至tile12的顺序依次解码每个tile中的数据,当一个tile中的数据被全部解码后,再继续解码下一个tile中的数据。解码器在解码每个tile时,按照从上至下的顺序依次解码该tile中的每行像素的数据,并且在解码每一行像素的数据时,按照从左向右的顺序读取数据进行解码。When decoding the image a, the decoder decodes the data in each tile sequentially in the order of tile1 to tile12, and continues to decode the data in the next tile after all the data in one tile is decoded. When decoding each tile, the decoder decodes the data of each row of pixels in the tile in order from top to bottom, and when decoding the data of each row of pixels, reads the data in order from left to right for decoding .
如图3所示,解码器在对图像a进行解码时,按照以下顺序进行解码:As shown in Figure 3, when the decoder decodes image a, it decodes in the following order:
1)对第一行的区域1的数据进行解码;区域1的数据量等于预设的单位数据量,解码器对单位数据量进行解码后得到的数据长度等于前述单位处理长度(以下以单位处理长度等于256bytes为例),因此区域1被解码后的数据的长度等于256bytes,该数据可以直接被输入至压缩模块进行压缩,而不需要被缓存;1) Decode the data in
2)对第一行的区域2的数据进行解码;区域2的最右侧是tile1的边界,区域2的数据量小于单位数据量,区域2被解码后的数据的长度小于256bytes,区域2被解码后的数据会被分配一个空的第一缓存单元(例如第一缓存单元a);2) Decode the data of area 2 in the first row; the rightmost side of area 2 is the boundary of tile1, the data volume of area 2 is less than the unit data volume, the length of the decoded data in area 2 is less than 256 bytes, area 2 is The decoded data will be allocated an empty first cache unit (for example, the first cache unit a);
3)对第二行的区域3的数据进行解码;区域3被解码后的数据的长度等于256bytes,该数据不需要被缓存;3) Decode the data in area 3 of the second line; the length of the decoded data in area 3 is equal to 256 bytes, and the data does not need to be cached;
4)对第二行的区域4的数据进行解码,区域4被解码后的数据的长度小于256bytes,区域4被解码后的数据会被分配一个空的第一缓存单元(例如第一缓存单元b);4) Decode the data in
5)对第三行的区域5的数据进行解码;区域5被解码后的数据的长度等于256bytes,该数据不需要被缓存;5) Decode the data in area 5 of the third row; the length of the decoded data in area 5 is equal to 256 bytes, and the data does not need to be cached;
6)对第三行的区域6的数据进行解码,区域6被解码后的数据的长度小于单位处理长度,区域6被解码后的数据会被分配一个空的第一缓存单元(例如第一缓存单元c);6) Decode the data in
7)对第四行的区域7的数据进行解码;区域7被解码后的数据的长度等于256bytes,该数据不需要被缓存;7) Decode the data in area 7 of the fourth line; the length of the decoded data in area 7 is equal to 256 bytes, and the data does not need to be cached;
8)对第四行的区域8的数据进行解码,区域8被解码后的数据的长度小于单位处理长度,区域8被解码后的数据会被分配一个空的第一缓存单元(例如第一缓存单元d);8) Decode the data in area 8 of the fourth row. The length of the decoded data in area 8 is less than the unit processing length, and the decoded data in area 8 will be allocated an empty first buffer unit (for example, the first buffer unit d);
9)对第一行的区域9的数据进行解码;区域9的数据量与区域2的数据量的总和等于预设的单位数据量,区域9被解码后的数据与第一缓存单元a中存储的数据属于同一个处理单位,并且两者的总长度等于256bytes,因此两者作为一个处理单位被输入至压缩模块进行压缩,然后将第一缓存单元a的有效性标识更新为0,表示第一缓存单元a此时为空;9) Decode the data in area 9 of the first row; the sum of the data volume in area 9 and the data volume in area 2 is equal to the preset unit data volume, and the decoded data in area 9 is stored in the first cache unit a The data belong to the same processing unit, and the total length of the two is equal to 256bytes, so the two are input as a processing unit to the compression module for compression, and then the validity flag of the first cache unit a is updated to 0, indicating that the first Cache unit a is empty at this time;
10)对第一行的区域10的数据进行解码;区域10被解码后的数据的长度等于256bytes,该数据不需要被缓存;10) Decode the data in area 10 of the first row; the length of the decoded data in area 10 is equal to 256 bytes, and the data does not need to be cached;
11)对第一行的区域11的数据进行解码;区域11被解码后的数据的长度小于256bytes,区域11被解码后的数据被存储至新的第一缓存单元a;11) Decode the data in area 11 of the first row; the length of the decoded data in area 11 is less than 256 bytes, and the decoded data in area 11 is stored in the new first cache unit a;
12)对第二行的区域12的数据进行解码;区域12的数据量与区域4的数据量的总和等于预设的单位数据量,区域12被解码后的数据与第一缓存单元b中存储的数据属于同一个处理单位,并且两者的总长度等于256bytes,因此两者作为一个处理单位被输入至压缩模块进行压缩,然后将第一缓存单元b的有效性标识更新为0,表示第一缓存单元b此时为空。12) Decode the data in area 12 of the second row; the sum of the data volume in area 12 and the data volume in
依次类推,解码器完成对图像a的解码。可见,解码器在对图像a进行解码时,为了实现解码器与压缩模块的适配,至少需要第一缓存单元a、第一缓存单元b、第一缓存单元c、第一缓存单元d等4个第一缓存单元。按照相同的方式,解码器在对图像b进行解码时,为了实现解码器与压缩模块的适配,至少需要8个第一缓存单元。可见,分割图像时采用的tile高度决定了需要的第一缓存单元的数量。By analogy, the decoder completes the decoding of image a. It can be seen that when the decoder decodes the image a, in order to realize the adaptation between the decoder and the compression module, at least the first cache unit a, the first cache unit b, the first cache unit c, the first cache unit d, etc. 4 a first cache unit. In the same way, when the decoder decodes the image b, in order to realize the adaptation between the decoder and the compression module, at least 8 first buffer units are needed. It can be seen that the tile height used when dividing an image determines the number of required first cache units.
此外,还需要补充说明的是,每个处理单元由多少份数据构成,主要取决于tile的宽度,tile的宽度越小,每个处理单位包括的数据份数越多。比如图3的图像a中,区域2解码后的数据和区域9解码后的数据构成了一个处理单位,换言之,该处理单位仅由两份数据构成。而如果将图像a中的tile的宽度缩小,使得一个预设的单位数据量被截断2次或更多次,则处理单位就会由3份或者更多份数据构成。In addition, it needs to be added that the number of copies of data that each processing unit consists of mainly depends on the width of the tile. The smaller the width of the tile, the more copies of data each processing unit includes. For example, in image a in FIG. 3 , the decoded data in area 2 and the decoded data in area 9 constitute a processing unit, in other words, the processing unit consists of only two pieces of data. However, if the width of the tile in the image a is reduced so that a preset unit of data is truncated twice or more, the processing unit will consist of three or more pieces of data.
如前所述,由于分割图像时采用的tile高度决定了需要的第一缓存单元的数量,而在H.265编码格式和VP9编码格式下,tile的尺寸是任意的,因此在tile的高度很高的情况下,所需的第一缓存单元的数量较大。而为了控制芯片成本和/或降低第一缓存单元对芯片面积的占用,通常只会设置有限数量个第一缓存单元。所以当tile的高度很高时,会出现第一缓存单元不够用的情况。As mentioned above, since the tile height used when dividing an image determines the number of first buffer units required, and in the H.265 encoding format and VP9 encoding format, the size of the tile is arbitrary, so the height of the tile is very small. When the value is high, the required number of first cache units is large. In order to control the cost of the chip and/or reduce the occupation of the chip area by the first cache unit, usually only a limited number of first cache units are provided. Therefore, when the height of the tile is very high, the first cache unit may not be enough.
为了应对第一缓存单元不够用的情况,本公开中,缓存模块还用于在当前数据不存在对应的目标数据,且多个第一缓存单元中不存在空的第一缓存单元的情况下,将当前数据存储至缓存模块外的存储器,并记录当前数据对应的处理单位状态信息。其中,处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,当前数据在所述存储器中的地址。In order to deal with the situation that the first cache unit is not enough, in the present disclosure, the cache module is also used to: when there is no corresponding target data in the current data, and there is no empty first cache unit among the multiple first cache units, The current data is stored in a memory outside the cache module, and the status information of the processing unit corresponding to the current data is recorded. Wherein, the processing unit state information includes at least one of the following information: the address of the current data, the length of the current data, and the address of the current data in the memory.
本公开中,如果当前数据是一个处理单位中的第一份数据,则缓存模块会从多个第一缓存单元中寻找空的第一缓存单元,如果寻找到空的第一缓存单元,则缓存模块将寻找到的空的第一缓存单元分配给当前数据。如果全部第一缓存单元均已被占用(也就是不存在空的第一缓存单元),则缓存模块将当前数据存储至缓存模块外的存储器(比如GDDR)。此外,缓存单元还会记录当前数据对应的处理单位状态信息,该处理单位状态信息可以包括当前数据的首地址、当前数据的长度、当前数据在GDDR中的地址,该处理单位状态信息可以存储在图2所示的状态缓存单元中。In this disclosure, if the current data is the first piece of data in a processing unit, the caching module will search for an empty first caching unit from multiple first caching units, and if an empty first caching unit is found, cache The module allocates the found empty first cache unit to the current data. If all the first cache units are occupied (that is, there is no empty first cache unit), the cache module stores the current data in a memory outside the cache module (such as GDDR). In addition, the cache unit will also record the processing unit status information corresponding to the current data. The processing unit status information may include the first address of the current data, the length of the current data, and the address of the current data in GDDR. The processing unit status information may be stored in In the state cache unit shown in Figure 2.
在一些具体实施方式中,处理单位状态信息还可以包括该处理单位对应的地址区间,地址区间的计算方式可参考上述实施例,为简化说明,此处不再赘述。缓存模块后续在接收到解码器输出的新的数据时,可以根据每个处理单位状态信息中的地址区间,确定新数据所属的处理单位和对应的目标数据。In some specific implementation manners, the status information of the processing unit may also include an address range corresponding to the processing unit. For the calculation method of the address range, reference may be made to the above-mentioned embodiments. To simplify the description, details are not repeated here. When the cache module subsequently receives the new data output by the decoder, it can determine the processing unit to which the new data belongs and the corresponding target data according to the address interval in the state information of each processing unit.
在一些具体实施方式中,处理单位状态信息还可以包括存储指示信息,存储指示信息用于表征该处理单位的数据是否存储在缓存模块内。In some specific implementation manners, the processing unit status information may further include storage indication information, and the storage indication information is used to indicate whether the data of the processing unit is stored in the cache module.
如前所述,缓存模块还用于在当前数据和当前数据对应的目标数据的总长度不等于单位处理长度的情况下,存储当前数据。在本公开的一些具体实施方式中,缓存模块在总长度不等于单位处理长度的情况下,存储当前数据时,具体用于:在总长度不等于单位处理长度的情况下,根据当前数据对应的处理单位状态信息,将当前数据存储至相应的第一缓存单元,或者存储至存储器;更新当前数据对应的处理单位状态信息。As mentioned above, the cache module is also used to store the current data when the total length of the current data and the target data corresponding to the current data is not equal to the unit processing length. In some specific implementations of the present disclosure, when the cache module stores the current data when the total length is not equal to the unit processing length, it is specifically used to: when the total length is not equal to the unit processing length, according to the corresponding The processing unit state information is to store the current data in the corresponding first cache unit, or store it in the memory; and update the processing unit state information corresponding to the current data.
具体实现时,在当前数据和当前数据对应的目标数据的总长度不等于单位处理长度的情况下,缓存模块通过查询当前数据对应的处理单位状态信息,根据该处理单位状态信息中的存储指示信息,确定该处理单位的数据具体是存储在缓存模块内,还是存储在缓存模块外的GDDR。如果该处理单位的数据存储在缓存模块内,则进一步根据该处理单位状态信息中的第一缓存单元标识,将当前数据存储至相应的第一缓存单元。如果该处理单位的数据存储在缓存模块外的GDDR,则进一步根据该处理单位状态信息中的存储器地址信息,将当前数据存储至GDDR的相应位置。In specific implementation, when the total length of the current data and the target data corresponding to the current data is not equal to the unit processing length, the cache module queries the processing unit status information corresponding to the current data, according to the storage indication information in the processing unit status information to determine whether the data of the processing unit is stored in the cache module or in the GDDR outside the cache module. If the data of the processing unit is stored in the cache module, the current data is further stored in the corresponding first cache unit according to the first cache unit identifier in the status information of the processing unit. If the data of the processing unit is stored in the GDDR outside the cache module, the current data is further stored in the corresponding location of the GDDR according to the memory address information in the status information of the processing unit.
在本公开的一些具体实施方式中,如图2所示,缓存模块还可以包括第二缓存单元。缓存模块还用于在总长度等于单位处理长度,且当前数据对应的目标数据存储在存储器中的情况下,将当前数据存储至第二缓存单元,并从存储器读取当前数据对应的目标数据至第二缓存单元。In some specific implementation manners of the present disclosure, as shown in FIG. 2 , the cache module may further include a second cache unit. The cache module is also used to store the current data in the second cache unit when the total length is equal to the unit processing length and the target data corresponding to the current data is stored in the memory, and read the target data corresponding to the current data from the memory to Second cache unit.
本公开中,如果解码器输出的当前数据与其对应的目标数据的总长度等于单位处理长度,则可以将当前数据及其对应的目标数据作为一个处理单位输出给压缩模块。如果此时当前数据对应的目标数据存储在缓存模块内的一个第一缓存单元中,则缓存模块可以先将当前数据存储至该第一缓存单元,然后将该第一缓存单元的数据段中的全部数据作为一个处理单位输入至压缩模块进行压缩。而如果此时当前数据对应的目标数据存储在缓存模块外的GDDR中,则缓存模块可以先将当前数据存储至第二缓存单元,并从存储器中将当前数据对应的目标数据读取至第二缓存单元,对当前数据及其目标数据进行拼接后,将拼接后的数据作为一个处理单位输入至压缩模块进行压缩。In the present disclosure, if the total length of the current data output by the decoder and the corresponding target data is equal to the unit processing length, the current data and the corresponding target data may be output to the compression module as a processing unit. If the target data corresponding to the current data is stored in a first cache unit in the cache module at this time, the cache module can first store the current data in the first cache unit, and then store the data in the data segment of the first cache unit All data is input to the compression module as a processing unit for compression. And if the target data corresponding to the current data is stored in the GDDR outside the cache module at this time, the cache module can first store the current data to the second cache unit, and read the target data corresponding to the current data from the memory to the second cache unit. The cache unit, after splicing the current data and its target data, inputs the spliced data as a processing unit to the compression module for compression.
本公开中,对于存储在存储器(例如GDDR)中的各个处理单位的数据,通过共用第二缓存单元,可以有效降低芯片成本,并减少缓存模块对芯片面积的占用。In the present disclosure, for the data of each processing unit stored in the memory (such as GDDR), by sharing the second cache unit, the cost of the chip can be effectively reduced, and the chip area occupied by the cache module can be reduced.
在本公开的一些具体实施方式中,缓存模块在判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度之前,还用于:判断当前数据是否是一行图像数据中的最后一部分。In some specific implementations of the present disclosure, before judging whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module, the cache module is further used to: judge whether the current data is a row of image data the last part.
其中,一行图像数据是指:图像中一行像素对应的数据。而一行图像数据中的最后一部分是指:一行像素中的最后一段像素对应的数据。本公开中,如果一段像素是连续的,且包含一行像素的最末端像素,则该段像素就是一行像素中的最后一段像素。比如一行像素包括像素1至像素2560,其中像素2560是最末端像素。如果某段像素包括像素N(1≤N≤2560)至像素2560,其中像素N至像素2560是连续的,则该段像素就是这一行像素中的最后一段像素。Wherein, a row of image data refers to data corresponding to a row of pixels in the image. The last part of a row of image data refers to data corresponding to the last segment of pixels in a row of pixels. In the present disclosure, if a segment of pixels is continuous and includes the last pixel of a row of pixels, the segment of pixels is the last segment of pixels in a row of pixels. For example, a row of pixels includes
本公开中,可以根据一行图像数据的地址信息和当前数据的地址,判断当前数据是否是该行图像数据的最后一部分。In the present disclosure, it may be determined whether the current data is the last part of the row of image data according to the address information of a row of image data and the address of the current data.
在一些具体实施方式中,可以通过读取分辨率寄存器中存储的当前图像的分辨率信息,确定一行图像包括的像素个数,通过读取图像格式寄存器中存储的当前图像的图像格式信息,确定每个像素的数据量,再根据一行图像的像素个数和每个像素的数据量,确定一行图像的结束地址。如果当前数据的结束地址与某一行图像的结束地址相等,则确定当前数据是一行数据的最后一部分。需要说明的是,该具体实施方式仅是本公开多种可能的实施方式中的一种,本公开对于如何判断当前数据是否是该行图像数据的最后一部分,不做限定。In some specific implementation manners, the number of pixels included in a row of images can be determined by reading the resolution information of the current image stored in the resolution register, and determined by reading the image format information of the current image stored in the image format register. The data amount of each pixel, and then determine the end address of a row of images according to the number of pixels of a row of images and the amount of data of each pixel. If the end address of the current data is equal to the end address of a certain line of image, it is determined that the current data is the last part of one line of data. It should be noted that this specific implementation is only one of many possible implementations of the present disclosure, and the present disclosure does not limit how to determine whether the current data is the last part of the row of image data.
缓存模块还用于在当前数据是一行图像数据中的最后一部分的情况下,计算当前数据和当前数据对应的目标数据的总长度,在该总长度小于单位处理长度的情况下,对当前数据进行补充,使得补充后的当前数据和目标数据的总长度等于单位处理长度,再将补充后的当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩。The cache module is also used to calculate the total length of the current data and the target data corresponding to the current data when the current data is the last part of a line of image data, and when the total length is less than the unit processing length, process the current data Supplementing, so that the total length of the supplemented current data and target data is equal to the unit processing length, and then inputting the supplemented current data and target data as a processing unit to the compression module for compression.
本公开中,缓存单元在获得解码器输出的当前数据后,可以判断当前数据是否是一行图像数据中的最后一部分,若是,则进一步确定当前数据对应的目标数据,并计算当前数据及其目标数据的总长度,如果总长度小于单位处理长度,则计算单位长度与总长度的长度差,根据该长度差对当前数据进行补零,比如长度差为5bytes,则在当前数据的尾部补充长度为5bytes的0,从而使得补0后的当前数据及其目标数据的总长度等于单位处理长度,再将补0后的当前数据及其目标数据作为一个处理单位输入至压缩模块进行压缩。In this disclosure, after obtaining the current data output by the decoder, the cache unit can judge whether the current data is the last part of a line of image data, and if so, further determine the target data corresponding to the current data, and calculate the current data and its target data If the total length is less than the unit processing length, calculate the length difference between the unit length and the total length, and fill the current data with zeros according to the length difference. For example, if the length difference is 5 bytes, then add 5 bytes at the end of the
此外,如果当前数据不是一行图像数据中的最后一部分,缓存模块才如前所述,判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度,如果等于,则将当前数据和当前数据对应的目标数据作为一个处理单位输入至压缩模块进行压缩,如果不等于,则缓存模块存储当前数据。In addition, if the current data is not the last part of a line of image data, the cache module, as mentioned above, judges whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module. The data and the target data corresponding to the current data are input as a processing unit to the compression module for compression. If they are not equal, the cache module stores the current data.
在本公开的一些具体实施方式中,缓存模块在判断当前数据是否是一行图像数据中的最后一部分之前,还用于:判断当前数据的长度是否等于单位处理长度。如果当前数据的长度小于单位处理长度,缓存模块才如前所述,判断当前数据是否是一行图像数据中的最后一部分。如果当前数据的长度等于单位处理长度,则缓存模块将当前数据作为一个处理单位输入至压缩模块进行压缩。In some specific implementations of the present disclosure, before judging whether the current data is the last part of a line of image data, the cache module is further configured to: judge whether the length of the current data is equal to the unit processing length. If the length of the current data is less than the unit processing length, the cache module judges whether the current data is the last part of a line of image data as described above. If the length of the current data is equal to the unit processing length, the cache module inputs the current data as a processing unit to the compression module for compression.
此外,如图1所示,数据处理系统还可以包括解码器和压缩模块。其中,解码器用于解码图像数据,并输出解码后的数据。压缩模块用于对缓存模块输入的数据进行压缩。在一些具体实施方式中,解码器在解码图像数据时,如果图像数据是按图块分割的图像数据,则解码器按照图块顺序对图像数据进行解码。In addition, as shown in FIG. 1, the data processing system may further include a decoder and a compression module. Wherein, the decoder is used to decode the image data and output the decoded data. The compression module is used to compress the data input by the cache module. In some specific implementation manners, when the decoder decodes the image data, if the image data is image data divided by blocks, the decoder decodes the image data according to the order of the blocks.
参考图4至图6,图4至图6是本公开一实施例提出的数据处理流程示意图。如图4至图6所示,该数据处理流程包括以下步骤:Referring to FIG. 4 to FIG. 6 , FIG. 4 to FIG. 6 are schematic diagrams of a data processing flow proposed by an embodiment of the present disclosure. As shown in Figures 4 to 6, the data processing flow includes the following steps:
S1:图形处理器GPU内的处理器通过读取视频文件(或者图像文件)的头文件header,确定当前帧图像是一个被tile分割的图像,然后处理器通过AHB总线对寄存器进行配置。S1: Graphics processor The processor in the GPU reads the header file header of the video file (or image file) to determine that the current frame image is an image divided by tiles, and then the processor configures the registers through the AHB bus.
其中,处理器配置的寄存器包括基地址寄存器、分辨率寄存器及图像格式寄存器。基地址寄存器用于存储压缩数据的地址,分辨率寄存器用于存储当前帧图像的分辨率,图像格式寄存器用于存储当前帧图像的图像格式(例如YUV格式)。Wherein, the registers configured by the processor include a base address register, a resolution register and an image format register. The base address register is used to store the address of compressed data, the resolution register is used to store the resolution of the current frame image, and the image format register is used to store the image format of the current frame image (such as YUV format).
S2:处理器置位使能寄存器,从而启动视频解码器。S2: The processor sets the enable register to start the video decoder.
S3:视频解码器按照tile顺序,依次对图像数据的各部分进行解码,从而依次输出各部分的解码后的数据。S3: The video decoder sequentially decodes each part of the image data according to the order of the tiles, so as to sequentially output the decoded data of each part.
其中,视频解码器可以基于AXI协议,以突发burst的形式向缓存模块输出解码后的数据。Wherein, the video decoder may output the decoded data to the cache module in the form of a burst based on the AXI protocol.
S4:缓存模块获得视频解码器输出的当前数据,判断当前数据的长度是否等于256bytes(本示例中将压缩模块的单位处理长度设定为256bytes);若是,则执行S5;若否,则执行S6。S4: The cache module obtains the current data output by the video decoder, and judges whether the length of the current data is equal to 256 bytes (in this example, the unit processing length of the compression module is set to 256 bytes); if yes, execute S5; if not, execute S6 .
S5:将当前数据输入至压缩模块进行压缩。S5: Input the current data to the compression module for compression.
S6:判断当前数据是否是一行图像数据中的最后一部分;若是,则执行S7;若否则执行S10。S6: Determine whether the current data is the last part of a row of image data; if yes, execute S7; otherwise, execute S10.
S7:根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据。S7: Determine the target data corresponding to the current data according to the address of the current data and the address of the data output by the decoder.
其中,当前数据对应的目标数据是指:已经被解码器输出的、且与所述当前数据属于同一个处理单位的数据。Wherein, the target data corresponding to the current data refers to data that has been output by the decoder and belongs to the same processing unit as the current data.
在确定当前数据对应的目标数据时,可以将当前数据的地址与每个处理单位对应的地址区间进行比较;如果当前数据的地址位于某个处理单位对应的地址区间内,则该处理单位中的数据为当前数据对应的目标数据;如果当前数据的地址没有位于任何一个处理单位对应的地址区间内,则当前数据不存在对应的目标数据,从而说明当前数据是一个处理单位的第一份数据,进而还可以根据当前数据的首地址确定该处理单位对应的地址区间。When determining the target data corresponding to the current data, the address of the current data can be compared with the address range corresponding to each processing unit; if the address of the current data is within the address range corresponding to a certain processing unit, the The data is the target data corresponding to the current data; if the address of the current data is not in the address range corresponding to any processing unit, then the current data does not have corresponding target data, which means that the current data is the first data of a processing unit, Furthermore, the address interval corresponding to the processing unit may also be determined according to the first address of the current data.
S8:如果没有确定出目标数据(也就是当前数据不存在对应的目标数据),则在当前数据的末尾补0,直至当前数据的长度等于256bytes,然后将补0后的当前数据输入至压缩模块进行压缩。S8: If the target data is not determined (that is, there is no corresponding target data in the current data), add 0 at the end of the current data until the length of the current data is equal to 256 bytes, and then input the current data after filling in 0 to the compression module to compress.
S9:如果确定出目标数据,则计算当前数据与目标数据的总长度,在总长度等于256bytes的情况下,将当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩;在总长度小于256bytes的情况下,在当前数据的末尾补0,直至补0后的当前数据与目标数据的总长度等于256bytes,然后将补0后的当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩。S9: If the target data is determined, calculate the total length of the current data and the target data, and when the total length is equal to 256 bytes, input the current data and the target data as a processing unit to the compression module for compression; if the total length is less than 256 bytes In the case of 0, add 0 at the end of the current data until the total length of the current data and target data after 0 is equal to 256 bytes, and then input the current data and target data as a processing unit to the compression module for compression.
S10:根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据。S10: Determine the target data corresponding to the current data according to the address of the current data and the address of the data output by the decoder.
其中,当前数据对应的目标数据是指:已经被解码器输出的、且与所述当前数据属于同一个处理单位的数据。Wherein, the target data corresponding to the current data refers to data that has been output by the decoder and belongs to the same processing unit as the current data.
在确定当前数据对应的目标数据时,可以将当前数据的地址与每个处理单位对应的地址区间进行比较;如果当前数据的地址位于某个处理单位对应的地址区间内,则该处理单位中的数据为当前数据对应的目标数据,同时说明当前数据属于该处理单位;如果当前数据的地址没有位于任何一个处理单位对应的地址区间内,则当前数据不存在对应的目标数据,从而说明当前数据是一个处理单位的第一份数据,进而还可以根据当前数据的首地址确定该处理单位对应的地址区间。When determining the target data corresponding to the current data, the address of the current data can be compared with the address range corresponding to each processing unit; if the address of the current data is within the address range corresponding to a certain processing unit, the The data is the target data corresponding to the current data, and at the same time, it indicates that the current data belongs to the processing unit; if the address of the current data is not in the address range corresponding to any processing unit, then the current data does not have corresponding target data, thus indicating that the current data is The first piece of data of a processing unit, and furthermore, the address range corresponding to the processing unit can be determined according to the first address of the current data.
S11:如果没有确定出目标数据(也就是当前数据不存在对应的目标数据),则判断多个第一缓存单元中是否存在空的第一缓存单元;若是,执行步骤S12;若否,执行步骤S13。S11: If the target data is not determined (that is, the current data does not have corresponding target data), then judge whether there is an empty first cache unit among the first cache units; if yes, execute step S12; if not, execute step S13.
其中,每个第一缓存单元位于缓存模块内。Wherein, each first cache unit is located in the cache module.
S12:为当前数据分配一个空的第一缓存单元,并将当前数据存储至第一缓存单元的最小地址处。S12: Allocate an empty first cache unit for the current data, and store the current data at the minimum address of the first cache unit.
此外,还可以记录当前数据对应的处理单位状态信,并将相应第一缓存单元的有效性标识更新为1,表示该第一缓存单元当前为非空。其中,当前数据对应的处理单位状态信息可以包括以下信息:当前数据的首地址,当前数据的长度,存储指示信息(存储指示信息用于表征该处理单位的数据是否存储在缓存模块内),为当前数据分配的第一缓存单元的标识,处理单位对应的地址区间。In addition, the processing unit status information corresponding to the current data may also be recorded, and the validity flag of the corresponding first cache unit is updated to 1, indicating that the first cache unit is currently not empty. Among them, the processing unit status information corresponding to the current data may include the following information: the first address of the current data, the length of the current data, storage indication information (the storage indication information is used to indicate whether the data of the processing unit is stored in the cache module), as The identifier of the first cache unit allocated for the current data, and the address range corresponding to the processing unit.
S13:将当前数据存储至缓存模块外的GDDR存储器,并记录当前数据对应的处理单位状态信息。S13: Store the current data in the GDDR memory outside the cache module, and record the status information of the processing unit corresponding to the current data.
其中,当前数据对应的处理单位状态信息可以包括以下信息:当前数据的首地址,当前数据的长度,存储指示信息(存储指示信息用于表征该处理单位的数据是否存储在缓存模块内),当前数据在GDDR存储器中的地址,处理单位对应的地址区间。Among them, the processing unit status information corresponding to the current data may include the following information: the first address of the current data, the length of the current data, storage indication information (the storage indication information is used to indicate whether the data of the processing unit is stored in the cache module), the current The address of the data in the GDDR memory, the address range corresponding to the processing unit.
S14:如果确定出目标数据,则判断当前数据和目标数据的总长度是否等于256bytes;若是,执行步骤S15;若否,执行步骤S18。S14: If the target data is determined, judge whether the total length of the current data and the target data is equal to 256 bytes; if yes, execute step S15; if not, execute step S18.
S15:根据当前数据所属的处理单位的处理单位状态信息,判断该处理单位的数据是否存储在缓存模块内;若是,执行步骤S16;若否,执行步骤S17。S15: According to the processing unit status information of the processing unit to which the current data belongs, determine whether the data of the processing unit is stored in the cache module; if yes, execute step S16; if not, execute step S17.
本实施例中,通过执行上述步骤S10,已经确定出当前数据所属的处理单位,在S15中,可以查询该处理单位对应的处理单位状态信息中的存储指示信息,从而确定该处理单位的数据是否存储在缓存模块内。In this embodiment, by executing the above step S10, the processing unit to which the current data belongs has been determined. In S15, the storage indication information in the processing unit status information corresponding to the processing unit can be queried, so as to determine whether the data of the processing unit stored in the cache module.
S16:根据处理单位状态信息中的第一缓存单元标识,从相应的第一缓存单元中读出当前数据对应的目标数据,并将当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩。S16: According to the first cache unit identifier in the processing unit status information, read the target data corresponding to the current data from the corresponding first cache unit, and input the current data and the target data as a processing unit to the compression module for compression.
然后,将相应第一缓存单元的有效性标识更新为0,表示该第一缓存单元已经为空。Then, update the validity flag of the corresponding first cache unit to 0, indicating that the first cache unit is empty.
S17:将当前数据存储至第二缓存单元,并根据处理单位状态信息中的GDDR存储器地址信息,从GDDR存储器的相应地址处,将当前数据对应的目标数据读回至第二缓存单元,然后将第二缓存单元中的当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩。S17: Store the current data in the second cache unit, and read back the target data corresponding to the current data to the second cache unit from the corresponding address of the GDDR memory according to the GDDR memory address information in the processing unit status information, and then The current data and target data in the second cache unit are input to the compression module as a processing unit for compression.
其中,第二缓存单元位于缓存模块内。在从GDDR存储器读回当前数据对应的目标数据时,首先获取当前数据在第二缓存单元中的存储位置信息,并获取用于传输当前数据的burst所对应的ID,然后对该ID进行移位,并将存储位置信息放在ID的低位,从而生成一个具有唯一性的RID;然后缓存模块在基于AXI协议从GDDR存储器读取目标数据时,会向GDDR存储器发送RID,GDDR存储器返回目标数据时会携带该RID;缓存模块根据目标数据携带的RID的低位,确定出需要拼接的数据(即当前数据)在第二缓存单元中的位置,从而将当前数据与读回的目标数据进行拼接,最后将拼接后的数据作为一个处理单位输入至压缩模块进行压缩。Wherein, the second cache unit is located in the cache module. When reading back the target data corresponding to the current data from the GDDR memory, first obtain the storage location information of the current data in the second cache unit, and obtain the ID corresponding to the burst used to transmit the current data, and then shift the ID , and put the storage location information in the low bit of the ID to generate a unique RID; then when the cache module reads the target data from the GDDR memory based on the AXI protocol, it will send the RID to the GDDR memory, and when the GDDR memory returns the target data The RID will be carried; the cache module determines the position of the data to be spliced (that is, the current data) in the second cache unit according to the low bit of the RID carried by the target data, so as to splice the current data with the read-back target data, and finally Input the spliced data as a processing unit to the compression module for compression.
S18:根据当前数据所属的处理单位的处理单位状态信息,判断该处理单位的数据是否存储在缓存模块内;若是,执行步骤S19;若否,执行步骤S20。S18: According to the processing unit status information of the processing unit to which the current data belongs, determine whether the data of the processing unit is stored in the cache module; if yes, perform step S19; if not, perform step S20.
本实施例中,通过执行上述步骤S10,已经确定出当前数据所属的处理单位,在S18中,可以查询该处理单位对应的处理单位状态信息中的存储指示信息,从而确定该处理单位的数据是否存储在缓存模块内。In this embodiment, by executing the above step S10, the processing unit to which the current data belongs has been determined. In S18, the storage indication information in the processing unit status information corresponding to the processing unit can be queried, so as to determine whether the data of the processing unit stored in the cache module.
S19:根据处理单位状态信息中的第一缓存单元标识,将当前数据存储至相应的第一缓存单元,并更新相应的处理单位状态信息。S19: According to the first cache unit identifier in the processing unit state information, store the current data in the corresponding first cache unit, and update the corresponding processing unit state information.
其中,在更新相应的处理单位状态信息时,可以将当前数据的首地址和长度等信息补充至处理单位状态信息中。Wherein, when updating the corresponding processing unit status information, information such as the first address and length of the current data may be added to the processing unit status information.
此外,在将当前数据存储至第一缓存单元后,如果当前数据和第一缓存单元中已经存储的数据是连续的,还可以对两者进行拼接,然后更新处理单位状态信息中的数据长度。In addition, after the current data is stored in the first cache unit, if the current data and the data already stored in the first cache unit are continuous, the two can also be spliced, and then the data length in the processing unit status information can be updated.
S20:根据处理单位状态信息中的GDDR存储器地址信息,将当前数据存储至GDDR存储器的相应位置,并更新相应的处理单位状态信息。S20: According to the GDDR memory address information in the processing unit state information, store the current data in the corresponding location of the GDDR memory, and update the corresponding processing unit state information.
其中,在更新相应的处理单位状态信息时,可以将当前数据的首地址和长度等信息补充至处理单位状态信息中。Wherein, when updating the corresponding processing unit status information, information such as the first address and length of the current data may be added to the processing unit status information.
此外,在将当前数据存储至GDDR存储器后,如果当前数据和GDDR存储器中已经存储的数据是连续的,还可以对两者进行拼接,然后更新处理单位状态信息中的数据长度。In addition, after the current data is stored in the GDDR memory, if the current data and the data already stored in the GDDR memory are continuous, the two can also be spliced, and then the data length in the processing unit status information can be updated.
本公开实施例还提供一种电子组件,该电子组件包括上述任一实施例中所述的数据处理系统。在一些使用场景下,该电子组件的产品形式体现为SoC芯片、显卡或者CPU主板。An embodiment of the present disclosure further provides an electronic component, where the electronic component includes the data processing system described in any one of the foregoing embodiments. In some usage scenarios, the product form of the electronic component is embodied as a SoC chip, a graphics card or a CPU motherboard.
本公开实施例还提供一种电子设备,该电子设备包括上述的电子组件。在一些使用场景下,该电子设备的产品形式是便携式电子设备,例如智能手机、平板电脑、VR设备等;在一些使用场景下,该电子设备的产品形式是个人电脑、游戏主机、工作站、服务器等。An embodiment of the present disclosure also provides an electronic device, which includes the above-mentioned electronic component. In some usage scenarios, the product form of the electronic device is a portable electronic device, such as a smartphone, tablet computer, VR device, etc.; in some usage scenarios, the product form of the electronic device is a personal computer, a game console, a workstation, a server wait.
参考图7,本公开实施例还提供一种数据处理方法,该数据处理方法和前述数据处理系统属于同一发明构思,因此为了避免重复,以下仅对该数据处理方法做简要说明,相关具体实施方式,可参考前述对数据处理系统的介绍。如图7所示,该数据处理方法包括以下步骤:Referring to FIG. 7 , an embodiment of the present disclosure also provides a data processing method, which belongs to the same inventive concept as the aforementioned data processing system, so in order to avoid repetition, the following only briefly describes the data processing method, and related specific implementation methods , you can refer to the aforementioned introduction to the data processing system. As shown in Figure 7, the data processing method includes the following steps:
S710:判断解码器输出的当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度;当前数据对应的目标数据是指:已经被解码器输出的、且与当前数据属于同一个处理单位的数据。S710: Determine whether the total length of the current data output by the decoder and the target data corresponding to the current data is equal to the unit processing length of the compression module; the target data corresponding to the current data refers to: it has been output by the decoder and belongs to the same A processing unit of data.
S720:在总长度等于单位处理长度的情况下,将当前数据和当前数据对应的目标数据作为一个处理单位输入至压缩模块进行压缩。S720: When the total length is equal to the unit processing length, input the current data and the target data corresponding to the current data as a processing unit to the compression module for compression.
S730:在总长度不等于单位处理长度的情况下,存储当前数据。S730: When the total length is not equal to the unit processing length, store the current data.
在本公开的一些具体实施方式中,该方法还包括:根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据。In some specific implementation manners of the present disclosure, the method further includes: determining the target data corresponding to the current data according to the address of the current data and the address of the data output by the decoder.
在本公开的一些具体实施方式中,根据当前数据的地址和已经被解码器输出的数据的地址,确定当前数据对应的目标数据,包括:将当前数据的地址与每个处理单位各自的地址区间进行比较;每个处理单位的地址区间是根据该处理单位的最小首地址和单位处理长度确定的,处理单位的最小首地址是指该处理单位内每个数据的首地址中最小的首地址;在当前数据的地址位于一个处理单位的地址区间的情况下,将属于该处理单位的每个数据确定为当前数据对应的目标数据。In some specific implementations of the present disclosure, according to the address of the current data and the address of the data output by the decoder, determining the target data corresponding to the current data includes: combining the address of the current data with the respective address range of each processing unit Compare; the address range of each processing unit is determined according to the minimum first address of the processing unit and the unit processing length, the minimum first address of the processing unit refers to the smallest first address among the first addresses of each data in the processing unit; When the address of the current data is located in the address range of a processing unit, each data belonging to the processing unit is determined as the target data corresponding to the current data.
在本公开的一些具体实施方式中,该方法还包括:在当前数据不存在对应的目标数据的情况下,从多个第一缓存单元中为当前数据分配一个空的第一缓存单元,并将当前数据存储至空的第一缓存单元;每个第一缓存单元用于存储已经被解码器输出的、且属于同一个处理单位的数据;记录当前数据对应的处理单位状态信息;处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,为当前数据分配的第一缓存单元的标识。In some specific implementation manners of the present disclosure, the method further includes: in the case that the current data does not have corresponding target data, allocating an empty first cache unit for the current data from the plurality of first cache units, and The current data is stored in the empty first cache unit; each first cache unit is used to store data that has been output by the decoder and belongs to the same processing unit; record the processing unit status information corresponding to the current data; processing unit status information It includes at least one of the following information: the address of the current data, the length of the current data, and the identifier of the first cache unit allocated for the current data.
在本公开的一些具体实施方式中,该方法还包括:在当前数据不存在对应的目标数据,且多个第一缓存单元中不存在空的第一缓存单元的情况下,将当前数据存储至外部的存储器,并记录当前数据对应的处理单位状态信息;处理单位状态信息包括以下多种信息中的至少之一:当前数据的地址,当前数据的长度,当前数据在存储器中的地址。In some specific implementation manners of the present disclosure, the method further includes: when the current data does not have corresponding target data, and there is no empty first cache unit in the plurality of first cache units, storing the current data in An external memory, and record the processing unit state information corresponding to the current data; the processing unit state information includes at least one of the following information: the address of the current data, the length of the current data, and the address of the current data in the memory.
在本公开的一些具体实施方式中,在总长度不等于单位处理长度的情况下,存储当前数据,包括:在总长度不等于单位处理长度的情况下,根据当前数据对应的处理单位状态信息,将当前数据存储至相应的第一缓存单元,或者存储至存储器;更新当前数据对应的处理单位状态信息。In some specific implementations of the present disclosure, when the total length is not equal to the unit processing length, storing the current data includes: when the total length is not equal to the unit processing length, according to the processing unit status information corresponding to the current data, storing the current data in the corresponding first cache unit, or storing in the memory; updating the state information of the processing unit corresponding to the current data.
在本公开的一些具体实施方式中,该方法还包括:在总长度等于单位处理长度,且当前数据对应的目标数据存储在存储器中的情况下,将当前数据存储至第二缓存单元,并从存储器读取当前数据对应的目标数据至第二缓存单元。In some specific implementations of the present disclosure, the method further includes: when the total length is equal to the unit processing length, and the target data corresponding to the current data is stored in the memory, storing the current data in the second cache unit, and from The memory reads target data corresponding to the current data to the second cache unit.
在本公开的一些具体实施方式中,在判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度之前,该方法还包括:判断当前数据是否是一行图像数据中的最后一部分。In some specific implementations of the present disclosure, before judging whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module, the method further includes: judging whether the current data is the last row of image data part.
该方法还包括:在当前数据是一行图像数据中的最后一部分的情况下,计算当前数据和当前数据对应的目标数据的总长度,在该总长度小于单位处理长度的情况下,对当前数据进行补充,使得补充后的当前数据和目标数据的总长度等于单位处理长度,再将补充后的当前数据和目标数据作为一个处理单位输入至压缩模块进行压缩。The method also includes: in the case that the current data is the last part of a line of image data, calculating the total length of the current data and the target data corresponding to the current data, and in the case that the total length is less than the unit processing length, performing processing on the current data Supplementing, so that the total length of the supplemented current data and target data is equal to the unit processing length, and then inputting the supplemented current data and target data as a processing unit to the compression module for compression.
在本公开的一些具体实施方式中,判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度,包括:在当前数据不是一行图像数据中的最后一部分的情况下,判断当前数据和当前数据对应的目标数据的总长度是否等于压缩模块的单位处理长度。In some specific implementation manners of the present disclosure, judging whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module includes: when the current data is not the last part of a line of image data, judging Whether the total length of the current data and the target data corresponding to the current data is equal to the unit processing length of the compression module.
在本公开的一些具体实施方式中,在判断当前数据是否是一行图像数据中的最后一部分之前,该方法还包括:判断当前数据的长度是否等于单位处理长度;判断当前数据是否是一行图像数据中的最后一部分,包括:在当前数据的长度小于单位处理长度的情况下,判断当前数据是否是一行图像数据中的最后一部分。In some specific implementations of the present disclosure, before judging whether the current data is the last part of a row of image data, the method further includes: judging whether the length of the current data is equal to the unit processing length; judging whether the current data is the last part of a row of image data The last part of includes: judging whether the current data is the last part of a line of image data when the length of the current data is less than the unit processing length.
该方法还包括:在当前数据的长度等于单位处理长度的情况下,将当前数据作为一个处理单位输入至压缩模块进行压缩。The method also includes: when the length of the current data is equal to the unit processing length, inputting the current data as a processing unit to the compression module for compression.
尽管已描述了本公开的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本公开范围的所有变更和修改。While preferred embodiments of the present disclosure have been described, additional changes and modifications can be made to these embodiments by those skilled in the art once the basic inventive concept is appreciated. Therefore, it is intended that the appended claims be construed to cover the preferred embodiment and all changes and modifications which fall within the scope of the present disclosure.
显然,本领域的技术人员可以对本公开进行各种改动和变型而不脱离本公开的精神和范围。这样,倘若本公开的这些修改和变型属于本公开权利要求及其等同技术的范围之内,则本公开也意图包含这些改动和变型在内。It is obvious that those skilled in the art can make various changes and modifications to the present disclosure without departing from the spirit and scope of the present disclosure. Thus, if these modifications and variations of the present disclosure fall within the scope of the claims of the present disclosure and equivalent technologies thereof, the present disclosure also intends to include these modifications and variations.
Claims (25)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310429555.7A CN116166830B (en) | 2023-04-21 | 2023-04-21 | Data processing system, electronic component, electronic device and data processing method |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202310429555.7A CN116166830B (en) | 2023-04-21 | 2023-04-21 | Data processing system, electronic component, electronic device and data processing method |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN116166830A true CN116166830A (en) | 2023-05-26 |
| CN116166830B CN116166830B (en) | 2023-08-11 |
Family
ID=86418538
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202310429555.7A Active CN116166830B (en) | 2023-04-21 | 2023-04-21 | Data processing system, electronic component, electronic device and data processing method |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN116166830B (en) |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0871334A2 (en) * | 1997-04-07 | 1998-10-14 | Matsushita Electric Industrial Co., Ltd. | Multimedia information processing apparatus |
| JP2010276722A (en) * | 2009-05-26 | 2010-12-09 | Yamaha Corp | Image processing device |
| CN103139222A (en) * | 2013-03-19 | 2013-06-05 | 成都卫士通信息产业股份有限公司 | Internet protocol security (IPSEC) tunnel data transmission method and device thereof |
| CN105204781A (en) * | 2015-09-28 | 2015-12-30 | 华为技术有限公司 | Compression method, device and equipment |
| CN106162192A (en) * | 2016-07-06 | 2016-11-23 | 华为技术有限公司 | Process the method and apparatus of video data |
| CN112422489A (en) * | 2020-03-11 | 2021-02-26 | 深圳华锐金融技术股份有限公司 | Service data transmission method, device, computer equipment and storage medium |
| CN114077554A (en) * | 2022-01-20 | 2022-02-22 | 广州匠芯创科技有限公司 | Data decoding method, system, device and medium |
| US20220171724A1 (en) * | 2020-11-30 | 2022-06-02 | Kioxia Corporation | Memory system and information processing system |
-
2023
- 2023-04-21 CN CN202310429555.7A patent/CN116166830B/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0871334A2 (en) * | 1997-04-07 | 1998-10-14 | Matsushita Electric Industrial Co., Ltd. | Multimedia information processing apparatus |
| JP2010276722A (en) * | 2009-05-26 | 2010-12-09 | Yamaha Corp | Image processing device |
| CN103139222A (en) * | 2013-03-19 | 2013-06-05 | 成都卫士通信息产业股份有限公司 | Internet protocol security (IPSEC) tunnel data transmission method and device thereof |
| CN105204781A (en) * | 2015-09-28 | 2015-12-30 | 华为技术有限公司 | Compression method, device and equipment |
| CN106162192A (en) * | 2016-07-06 | 2016-11-23 | 华为技术有限公司 | Process the method and apparatus of video data |
| CN112422489A (en) * | 2020-03-11 | 2021-02-26 | 深圳华锐金融技术股份有限公司 | Service data transmission method, device, computer equipment and storage medium |
| US20220171724A1 (en) * | 2020-11-30 | 2022-06-02 | Kioxia Corporation | Memory system and information processing system |
| CN114077554A (en) * | 2022-01-20 | 2022-02-22 | 广州匠芯创科技有限公司 | Data decoding method, system, device and medium |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116166830B (en) | 2023-08-11 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN103609117B (en) | Method and device for encoding and decoding images | |
| JP4991816B2 (en) | Image processing device | |
| US20140176587A1 (en) | Electronic system and method for selectively allowing access to a shared memory | |
| CN101802872A (en) | Depth buffer compression | |
| WO2021237510A1 (en) | Data decompression method and system, and processor and computer storage medium | |
| CN108632624A (en) | Image processing method, device, terminal device and readable storage medium storing program for executing | |
| CN114428595B (en) | Image processing method, device, computer equipment and storage medium | |
| CN103888777A (en) | Video image compression/decompression device | |
| US12143609B2 (en) | Video data transmission method, video data decoding method, and related apparatuses | |
| CN102368329A (en) | Texture image transparency channel processing system in graphic system, apparatus thereof and method thereof | |
| CN115297094A (en) | Video transmission control method, device, equipment and computer readable storage medium | |
| JP2009129448A (en) | Data processing apparatus, data processing method, and data processing system | |
| US10249269B2 (en) | System on chip devices and operating methods thereof | |
| CN114245129A (en) | Image processing method, image processing device, computer equipment and storage medium | |
| CN111953990A (en) | Coding method and device | |
| CN116166830B (en) | Data processing system, electronic component, electronic device and data processing method | |
| KR101615466B1 (en) | Capturing multiple video channels for video analytics and encoding | |
| US20070288691A1 (en) | Data processing with data transfer between memories | |
| CN114554126B (en) | Baseboard management control chip, video data transmission method and server | |
| CN108668169A (en) | Image information processing method and device, storage medium | |
| WO2021237513A1 (en) | Data compression storage system and method, processor, and computer storage medium | |
| US7861007B2 (en) | Method and apparatus for multimedia display in a mobile device | |
| CN110232657A (en) | A kind of image-scaling method, device, equipment and medium | |
| KR100663380B1 (en) | Image pickup device and video signal generation method | |
| WO2021031154A1 (en) | Method and device for loading feature map of neural network |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant | ||
| PE01 | Entry into force of the registration of the contract for pledge of patent right | ||
| PE01 | Entry into force of the registration of the contract for pledge of patent right |
Denomination of invention: Data processing systems, electronic components, electronic devices, and data processing methods Granted publication date: 20230811 Pledgee: Ji Aiqin Pledgor: Xiangdixian Computing Technology (Chongqing) Co.,Ltd.|Beijing xiangdixian Computing Technology Co.,Ltd. Registration number: Y2024980043989 |