CN114071154A - 一种数据解码方法、装置、电子设备及可读存储介质 - Google Patents
一种数据解码方法、装置、电子设备及可读存储介质 Download PDFInfo
- Publication number
- CN114071154A CN114071154A CN202111326932.1A CN202111326932A CN114071154A CN 114071154 A CN114071154 A CN 114071154A CN 202111326932 A CN202111326932 A CN 202111326932A CN 114071154 A CN114071154 A CN 114071154A
- Authority
- CN
- China
- Prior art keywords
- data
- decoded
- decoding
- soft
- dividing
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 55
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008569 process Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000005236 sound signal Effects 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000011218 segmentation Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 125000004122 cyclic group Chemical group 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本申请公开了一种数据解码方法、装置、电子设备及计算机可读存储介质,该方法包括:获取待解码数据,并将所述待解码数据划分为第一数据和第二数据;对所述第一数据进行软解码,得到第一解码数据;将所述第二数据发送至硬件解码器,以便所述硬件解码器对所述第二数据进行解码得到第二解码数据;利用所述第一解码数据和所述第二解码数据构成解码数据;利用处理器的软解码能力对硬件解码器的解码能力进行进一步补充,利用软解和硬解并行的解码方式进行解码,可以进一步提高数据解码速度,减少数据解码所需的时长。
Description
技术领域
本申请涉及编解码技术领域,特别涉及一种数据解码方法、数据解码装置、电子设备及计算机可读存储介质。
背景技术
对于图像数据等编码数据来说,在读取其中内容时需要进行解码,例如便携式网络图片(Portable Network Graphics,PNG),其是目前最流行的图片格式,运用于各个常见领域。PNG图片采取完全无损的LZ77派生算法对图片进行压缩。不损失数据,这就意味着,在图片内容更丰富的情况下,PNG图片所需要的空间更大,从而在图片解码的过程中,需要的时间更长。为了提高数据解码速度,当前通常会设置专门用于解码的硬件解码器,但是数据解码的速度仍然较慢,所需的时间较长。
发明内容
有鉴于此,本申请的目的在于提供一种数据解码方法、数据解码装置、电子设备及计算机可读存储介质,提高数据解码速度,减少数据解码所需的时长。
为解决上述技术问题,本申请提供了一种数据解码方法,包括:
获取待解码数据,并将所述待解码数据划分为第一数据和第二数据;
对所述第一数据进行软解码,得到第一解码数据;
将所述第二数据发送至硬件解码器,以便所述硬件解码器对所述第二数据进行解码得到第二解码数据;
利用所述第一解码数据和所述第二解码数据构成解码数据。
可选地,所述获取待解码数据,并将所述待解码数据划分为第一数据和第二数据,包括:
获取所述待解码数据,并判断所述待解码数据是否大于预设数据量阈值;
若大于所述预设数据量阈值,则将所述待解码数据划分为所述第一数据和所述第二数据。
可选地,所述将所述待解码数据划分为第一数据和第二数据,包括:
识别所述待解码数据中的头数据块、若干个文件数据块和尾数据块;
按照头尾顺序,按照预设比例在所述若干个文件数据块之间确定分割点;
在所述分割点处插入目标尾数据块,并在所述目标尾数据块后插入目标头数据块;
将所述头数据块、所述目标尾数据块以及所述头数据块至所述目标尾数据块之间的数据块确定为所述第一数据,并将所述目标头数据块、所述尾数据块以及从所述目标头数据块至所述尾数据块之间的数据块确定为所述第二数据;
其中,所述目标头数据块中的头信息与所述第二数据相匹配。
可选地,还包括:
确定所述硬件解码器对应的硬解能力;
确定在预设条件下的软解能力;
根据所述硬解能力和所述软解能力确定所述预设比例。
可选地,还包括:
若检测到满足负载平衡条件,则根据软解码情况,将所述待解码数据中的未处理部分重新划分为第三数据和第四数据;
将所述第三数据作为新第一数据进行软解码,并将所述第四数据作为新第二数据发送至硬件解码器。
可选地,所述根据软解码情况,将所述待解码数据中未经解码的部分重新划分为第三数据和第四数据,包括:
若所述软解码情况为软解能力不足,则将所述未处理部分中所述第一数据对应的第一未处理部分划分为所述第三数据和所述第四数据,并将所述未处理部分中所述第二数据对应的第二未处理部分确定为所述第四数据;
若所述软解码情况为软解能力过剩,则将所述未处理部分中所述第一数据对应的第一未处理部分确定为所述第三数据,并将所述未处理部分中所述第二数据对应的第二未处理部分划分为所述第三数据和所述第四数据。
可选地,所述利用所述第一解码数据和所述第二解码数据构成解码数据,包括:
基于所述第一数据在所述待解码数据中的位置,将所述第一解码数据写入内存空间的第一位置;
若检测到所有的所述第二解码数据,均基于所述第二数据在所述待解码数据中的位置,写入到所述内存空间的第二位置,则确定所述解码数据构成完毕。
本申请还提供了一种数据解码装置,包括:
划分模块,用于获取待解码数据,并将所述待解码数据划分为第一数据和第二数据;
软解模块,用于对所述第一数据进行软解码,得到第一解码数据;
硬解模块,用于将所述第二数据发送至硬件解码器,以便所述硬件解码器对所述第二数据进行解码得到第二解码数据;
构成模块,用于利用所述第一解码数据和所述第二解码数据构成解码数据。
本申请还提供了一种电子设备,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现上述的数据解码方法。
本申请还提供了一种计算机可读存储介质,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现上述的数据解码方法。
本申请提供的数据解码方法,获取待解码数据,并将所述待解码数据划分为第一数据和第二数据;对所述第一数据进行软解码,得到第一解码数据;将所述第二数据发送至硬件解码器,以便所述硬件解码器对所述第二数据进行解码得到第二解码数据;利用所述第一解码数据和所述第二解码数据构成解码数据。
可见,该方法在进行数据解码时,为了提高数据解码速度,采用了软解和硬解结合的解码方式。具体的,处理器在获取到待解码数据后,将其划分两个部分,即第一数据和第二数据,第一数据由处理器进行软件解码,即软解码,得到第一解码数据;第二部分发送至硬件解码器进行硬解码,得到第二解码数据。在解码完毕后将第一解码数据和第二解码数据相组合,即可得到完整的解码数据。利用处理器的软解码能力对硬件解码器的解码能力进行进一步补充,利用软解和硬解并行的解码方式进行解码,可以进一步提高数据解码速度,减少数据解码所需的时长。
此外,本申请还提供了一种数据解码装置、电子设备及计算机可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的一种数据解码方法流程图;
图2为本申请实施例提供的一种数据拆分流程图;
图3为本申请实施例提供的一种具体的分割点确定流程图;
图4为本申请实施例提供的一种负载平衡流程图;
图5为本申请实施例提供的一种具体的数据解码方法流程图;
图6为本申请实施例提供的一种数据解码装置的结构示意图;
图7为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例提供的一种数据解码方法流程图。该方法包括:
S101:获取待解码数据,并将待解码数据划分为第一数据和第二数据。
待解码数据,是指需要被进行软件解码或硬件解码的数据,其具体形式不做限定,例如可以为PNG图像数据。待解码数据的具体获取方式不做限定,例如可以从指定的存储位置获取,或者可以通过网络通信信号获取。为了提高对待解码数据的解码速度,本申请同时利用CPU的软解功能和硬件解码器的硬解功能对待解码数据进行解码。因此CPU在获取到待解码数据后,需要将其划分为两个部分,即第一数据和第二数据,分别用于进行软解码和硬解码。本实施例并不限定划分的具体方式,在一种可行的实施方式中,例如PNG图像数据等具有数据头-中间数据-尾数据格式的待解码数据,可以通过插入新的数据头和尾数据的方式将待解码数据划分为两个独立的更小的数据块,完成第一数据和第二数据的生成。具体的,可以包括如下步骤:
步骤11:识别待解码数据中的头数据块、若干个文件数据块和尾数据块。
步骤12:按照头尾顺序,按照预设比例在若干个文件数据块之间确定分割点。
步骤13:在分割点处插入目标尾数据块,并在目标尾数据块后插入目标头数据块。
步骤14:将头数据块、目标尾数据块以及头数据块至目标尾数据块之间的数据块确定为第一数据,并将目标头数据块、尾数据块以及从目标头数据块至尾数据块之间的数据块确定为第二数据。
其中,目标头数据块中的头信息与第二数据相匹配。以PNG数据为例,整个待解码数据的结构如表1所示:
表1 PNG关键数据块
其中,IHDR为文件头数据块,或称为头数据块,IDAT为图像数据块,或称为文件数据块,IEND为图像结束数据,或称为尾数据块。其中,IDAT数据块的结构如表2所示:
表2 IDAT数据块的组成
IHDR数据块的结构如表3所示:
表3 PNG头文件信息
由此可见,待解码数据中的头数据块中记载有整个待处理数据的相关信息,因此在通过插入新的目标头数据块进行待解码数据的划分时,新插入的目标头数据块中的头信息(即上述表3中的信息)需要与第二数据的具体情况相匹配。
在进行第一数据和第二数据的划分时,首先识别其中的头数据块(即IHDR)、若干个文件数据块(即IDAT)以及对应的尾数据块(即IEND)。由于文件数据块中的数据与图像的显示相关,因此在划分时,通常采用连续划分的方式,即只对文件数据块划分一次。在本实施方式中,具体按照从头到尾的顺序,从第一个文件数据块开始,按照预设比例选取分割点。预设比例是指待解码数据中被软解处理的比例和被硬解处理的比例,其具体大小不做限定。可以理解的是,在进行分割点选择时,是以文件数据块为单位进行的,因此最终选择的分割点可能并不是严格按照预设比例选取的位置,例如可以为按照预设比例选取的文件数据块的数据块结尾位置或数据块开始位置。在确定分割点后,首先插入目标尾数据块。通常情况下,尾数据块的内容是固定的,用于起到标识数据结束的作用。例如对于PNG图像来说,其尾数据块的内容为00 00 00 00 49 45 4E 44 AE 42 60 82 12的字符。在cherub目标尾数据块后,在其后再插入目标头数据块。通过插入新的尾数据块和头数据块,可以将一个待解码数据划分为两个独立的新数据,即第一数据和第二数据。
请参考图2,图2为本申请实施例提供的一种数据拆分流程图。若待解码数据为文件数据块大小为10M的PNG数据,通过上述方式,则可以将其拆分为大小为2M的第一数据和大小为8M的第二数据。划分结果对外表现为,一张图像被拆分为两张图像。请参考图3,图3为本申请实施例提供的一种具体的分割点确定流程图。每个IDAT数据块中包括数据块长度、数据块类型码(对于PNG数据来说,其具体为49 44 41 54)、被压缩的数据以及用于校验的CRC(Cyclic Redundancy Check,循环冗余校验)校验码。在进行划分时,可以从第一个IDAT数据块开始,按照头尾顺序依次选择IDAT数据块,并累加各个选中的IDAT数据块的数据块长度,当检测到数据块长度的累加值与整个需要分割的数据相比的比例与预设比例相匹配,则将被累加的数据块与未被累加的数据块之间的位置确定为分割点。
需要说明的是,预设比例的具体大小不做限定,可以根据需要进行制定,例如可以指定为20%。在另一种实施方式中,为了尽可能的减少解码所需的时长,可以根据软解能力和硬解能力对预设比例进行设置,以便尽可能地为CPU和硬件解码器平均分配负载。具体的,可以执行如下步骤:
步骤21:确定硬件解码器对应的硬解能力。
步骤22:确定在预设条件下的软解能力。
步骤23:根据硬解能力和软解能力确定预设比例。
由于CPU并不能够利用全部计算资源进行数据解码,其还需要使用部分计算资源进行其他业务。因此在确定CPU的软解能力时,需要确定CPU在预设条件的软解能力,预设条件,是指CPU进行数据解码时采用的计算资源限制条件,例如可以为CPU采用50%的计算资源进行数据解码这一条件。通过设置预设条件,确定到的软解能力更加符合实际解码时的情况,使得预设比例的设置更加准确。硬解能力和软解能力的具体形式不做限定,例如可以为单位时间内可以处理的待解码数据量。在确定软解能力和硬解能力后,可以根据二者的大小比例确定预设比例,例如当P硬解=4P软解时,则可以将预设比例确定为20%。
在另一种实施方式中,可以理解的是,对待解码数据的拆解同样需要消耗一定时间,在原本利用硬件解码器进行解码所需的时间较短的情况下,采用划分后同时利用软解和硬解的方式进行解码所需的时间可能更长。因此,在划分第一数据和第二数据时,可以执行如下步骤:
步骤31:获取待解码数据,并判断待解码数据是否大于预设数据量阈值。
步骤32:若大于预设数据量阈值,则将待解码数据划分为第一数据和第二数据。
预设数据量阈值,是指用于判断是否需要采用硬解和软解想配合的解码方式进行解码的阈值。若待解码数据的数据量不大于预设数据量阈值,则说明待解码数据较小,采用硬件解码器单独进行解码所需的时间较短,因此可以采用现有方式进行解码。若大于预设数据量阈值,则说明待解码数据较大,采用软解和硬解配合的解码方式所需的时间较短,因此可以将其划分为第一数据和第二数据。需要说明的是,预设数据量阈值可以存在多个,每个预设数据量阈值分别与CPU的负载情况相对应,因为CPU的负载情况同样会影响待解码数据划分所需的时长。
S102:对第一数据进行软解码,得到第一解码数据。
在第一数据和第二数据划分完毕后,CPU负责对第一数据进行软解码,解码后得到第一解码数据。可以理解的是,以PNG数据为例,在进行软解码时,CPU依次对各个IDAT数据块中被压缩的数据进行解码。因此第一解码数据包括所有第一数据解码后得到的数据。
S103:将第二数据发送至硬件解码器,以便硬件解码器对第二数据进行解码得到第二解码数据。
相应的,硬件解码器负责对第二数据进行解码。通常情况下,数据的划分在CPU能够访问的存储位置进行,而硬件解码器通常不具有主动读取数据的能力,因此在划分得到第二数据后,需要由CPU将第二数据发送至硬件解码器,以便其对第二数据进行解码得到第二解码数据。需要说明的是,S102步骤和S103步骤应当并行执行。
进一步的,在一种可行的实施方式中,在对第一数据以及第二数据的解码过程中,由于初始划分不准确,或者CPU计算资源分配变化等原因,可能导致CPU或硬件解码器中一方的负载过重或过轻,进而造成解码时间被延长或解码能力未被充分利用的问题。为了解决上述问题,在解码过程中,还可以根据解码情况对CPU和硬件解码器的负载进行均衡,尽可能充分的利用解码能力,减少解码时长。具体的,还可以执行如下步骤:
步骤41:若检测到满足负载平衡条件,则根据软解码情况,将待解码数据中的未处理部分重新划分为第三数据和第四数据。
步骤42:将第三数据作为新第一数据进行软解码,并将第四数据作为新第二数据发送至硬件解码器。
负载平衡条件,是指需要重新划分分配给CPU和硬件解码器的负载的条件,其具体内容不做限定,例如CPU用于进行软解的计算资源发生变化导致软解所需时长发生变化,或者是发生变化的时长的变化幅度超过预设幅度。由于硬件解码器的解码能力通常固定不变,因此负载平衡条件的满足通常由软解码情况的变化引起。因此若检测到满足负载平衡条件,则根据软解码情况,将待解码数据中的未处理部分重新进行划分,得到第三数据和第四数据。其中,未处理部分包括第一数据中的未处理部分和/或第二数据中的未处理部分。在划分完毕后,将第三数据确定为新的第一数据,对其进行软解码,并将第四数据确定为新的第二数据进行硬解码。
具体的,软解码情况反映了CPU在软解过程中发生的变化,其具体可能为CPU提供了更多的计算资源进行软解,或者提供了更少的计算资源进行软解。因此,重新划分第三数据和第四数据的过程可以包括如下步骤:
步骤51:若软解码情况为软解能力不足,则将未处理部分中第一数据对应的第一未处理部分划分为第三数据和第四数据,并将未处理部分中第二数据对应的第二未处理部分确定为第四数据。
步骤52:若软解码情况为软解能力过剩,则将未处理部分中第一数据对应的第一未处理部分确定为第三数据,并将未处理部分中第二数据对应的第二未处理部分划分为第三数据和第四数据。
若软解码情况为软解能力不足,则说明CPU无法按照预先计划按时完成所有第一数据的解码。因此,将未处理部分中第一数据对应的第一未处理部分划分为第三数据和第四数据,即将原本由CPU负责的部分负载重新划分给硬件解码器进行处理,将未处理部分中第二数据对应的第二未处理部分确定为第四数据。
若软解码情况为软解能力过剩,则说明CPU提供了超过计划的计算资源进行解码。在这种情况下,将未处理部分中第二数据对应的第二未处理部分划分为第三数据和第四数据,即将原本由硬件解码器负责的部分负载重新划分给CPU进行处理,将未处理部分中第一数据对应的第一未处理部分确定为第三数据。
请参考图4,图4为本申请实施例提供的一种负载平衡流程图。可以看到,原本划分的第一数据为1M,第二数据为9M。在解码过程中,发现CPU提供了比预计更多的计算资源进行软解,其软解能力出现了过剩。在这种情况下,由于硬件解码器按照头尾顺序对第二数据进行解码,因此可以从原本的9M中的尾部选取未被处理的第二未处理部分,并从中划分出1M大小作为第三数据,将剩余的第二未处理部分确定为第四数据。
S104:利用第一解码数据和第二解码数据构成解码数据。
在得到第一解码数据和第二解码数据后,可以利用其构成待解码数据对应的完成的解码数据。可以理解的是,通过将待解码数据划分为两个部分并分别进行软解和硬解,可以在单位时间内解码更多的数据,使得数据解码的速度更快。
在一种实施方式中,硬解和软解可能无法同时完成,而只有得到所有的第一解码数据和第二解码数据,才能够利用其构成完整的解码数据。因此构成解码数据的过程可以包括如下步骤:
步骤61:基于第一数据在待解码数据中的位置,将第一解码数据写入内存空间的第一位置。
步骤62:若检测到所有的第二解码数据,均基于第二数据在待解码数据中的位置,写入到内存空间的第二位置,则确定解码数据构成完毕。
通常情况下,硬件解码器能够对内存空间直接写入,因此无需CPU获取第二解码数据。在得到第一解码数据和第二解码数据后,由于第一解码数据和第二解码数据的写入位置关系到解码后得到完整的解码数据是否正确,因此在写入是,需要基于被解码的第一数据或第二数据在待解码数据中的位置将解码后得到的数据写入内存空间。CPU监控第二解码数据的写入情况,在检测到所有的第二解码数据均写入到内存空间后,可以确定全部解码完毕,进而确定解码数据构成完毕。
请参考图5,图5为本申请实施例提供的一种具体的数据解码方法流程图,其具体用于对图片文件进行解码。在读取或通过网络获取到图片文件后,判断其类型是否为需要解码的类型,若不是,则按照常规方式对其进行处理。若需要解码,则获取该图像的大小、类型,用于后续确定解码方式。根据当前CPU的负载情况,以及硬件解码器的硬解能力(即解码模块能力),判断当前的图片的大小是否需要采用软解与硬解同时进行的处理。若不需要,则采用常规方式对其进行处理。若需要,则由CPU进行图片文件的分解分包,将第二数据发送给硬件解码器,同时记录软解和硬解的数据包分发情况,以便进行平衡监控,若检测到一方输出快,满足负载平衡条件,则再次计算当前数据量并重新进行分发,以便保证软解和硬解的均衡,尽量使得二者同时完成。在解码完成后,整合两个解码模式下输出的数据内容,将其发送给终端或其他解码数据需求方。
应用本申请实施例提供的数据解码方法,在进行数据解码时,为了提高数据解码速度,采用了软解和硬解结合的解码方式。具体的,处理器在获取到待解码数据后,将其划分两个部分,即第一数据和第二数据,第一数据由处理器进行软件解码,即软解码,得到第一解码数据;第二部分发送至硬件解码器进行硬解码,得到第二解码数据。在解码完毕后将第一解码数据和第二解码数据相组合,即可得到完整的解码数据。利用处理器的软解码能力对硬件解码器的解码能力进行进一步补充,利用软解和硬解并行的解码方式进行解码,可以进一步提高数据解码速度,减少数据解码所需的时长。
下面对本申请实施例提供的数据解码装置进行介绍,下文描述的数据解码装置与上文描述的数据解码方法可相互对应参照。
请参考图6,图6为本申请实施例提供的一种数据解码装置的结构示意图,包括:
划分模块110,用于获取待解码数据,并将待解码数据划分为第一数据和第二数据;
软解模块120,用于对第一数据进行软解码,得到第一解码数据;
硬解模块130,用于将第二数据发送至硬件解码器,以便硬件解码器对第二数据进行解码得到第二解码数据;
构成模块140,用于利用第一解码数据和第二解码数据构成解码数据。
可选地,划分模块110,包括:
大小判断单元,用于获取待解码数据,并判断待解码数据是否大于预设数据量阈值;
划分单元,用于若大于预设数据量阈值,则将待解码数据划分为第一数据和第二数据。
可选地划分模块110,包括:
数据块识别单元,用于识别待解码数据中的头数据块、若干个文件数据块和尾数据块;
分割点确定单元,用于按照头尾顺序,按照预设比例在若干个文件数据块之间确定分割点;
数据块插入单元,用于在分割点处插入目标尾数据块,并在目标尾数据块后插入目标头数据块;
拆分确定单元,用于将头数据块、目标尾数据块以及头数据块至目标尾数据块之间的数据块确定为第一数据,并将目标头数据块、尾数据块以及从目标头数据块至尾数据块之间的数据块确定为第二数据;
其中,目标头数据块中的头信息与第二数据相匹配。
可选地,还包括:
硬解能力确定模块,用于确定硬件解码器对应的硬解能力;
软解能力确定模块,用于确定在预设条件下的软解能力;
比例确定模块,用于根据硬解能力和软解能力确定预设比例。
可选地,还包括:
重新划分模块,用于若检测到满足负载平衡条件,则根据软解码情况,将待解码数据中的未处理部分重新划分为第三数据和第四数据;
解码处理模块,用于将第三数据作为新第一数据进行软解码,并将第四数据作为新第二数据发送至硬件解码器。
可选地,重新划分模块,包括:
第一划分单元,用于若软解码情况为软解能力不足,则将未处理部分中第一数据对应的第一未处理部分划分为第三数据和第四数据,并将未处理部分中第二数据对应的第二未处理部分确定为第四数据;
第二划分单元,用于若软解码情况为软解能力过剩,则将未处理部分中第一数据对应的第一未处理部分确定为第三数据,并将未处理部分中第二数据对应的第二未处理部分划分为第三数据和第四数据。
可选地,构成模块140,包括:
写入单元,用于基于第一数据在待解码数据中的位置,将第一解码数据写入内存空间的第一位置;
构成确定单元,用于若检测到所有的第二解码数据,均基于第二数据在待解码数据中的位置,写入到内存空间的第二位置,则确定解码数据构成完毕。
下面对本申请实施例提供的电子设备进行介绍,下文描述的电子设备与上文描述的数据解码方法可相互对应参照。
请参考图7,图7为本申请实施例提供的一种电子设备的结构示意图。其中电子设备100可以包括处理器101和存储器102,还可以进一步包括多媒体组件103、信息输入/信息输出(I/O)接口104以及通信组件105中的一种或多种。
其中,处理器101用于控制电子设备100的整体操作,以完成上述的数据解码方法中的全部或部分步骤;存储器102用于存储各种类型的数据以支持在电子设备100的操作,这些数据例如可以包括用于在该电子设备100上操作的任何应用程序或方法的指令,以及应用程序相关的数据。该存储器102可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(Static Random Access Memory,SRAM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、只读存储器(Read-OnlyMemory,ROM)、磁存储器、快闪存储器、磁盘或光盘中的一种或多种。
多媒体组件103可以包括屏幕和音频组件。其中屏幕例如可以是触摸屏,音频组件用于输出和/或输入音频信号。例如,音频组件可以包括一个麦克风,麦克风用于接收外部音频信号。所接收的音频信号可以被进一步存储在存储器102或通过通信组件105发送。音频组件还包括至少一个扬声器,用于输出音频信号。I/O接口104为处理器101和其他接口模块之间提供接口,上述其他接口模块可以是键盘,鼠标,按钮等。这些按钮可以是虚拟按钮或者实体按钮。通信组件105用于电子设备100与其他设备之间进行有线或无线通信。无线通信,例如Wi-Fi,蓝牙,近场通信(Near Field Communication,简称NFC),2G、3G或4G,或它们中的一种或几种的组合,因此相应的该通信组件105可以包括:Wi-Fi部件,蓝牙部件,NFC部件。
电子设备100可以被一个或多个应用专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、数字信号处理器(Digital Signal Processor,简称DSP)、数字信号处理设备(Digital Signal Processing Device,简称DSPD)、可编程逻辑器件(Programmable Logic Device,简称PLD)、现场可编程门阵列(Field ProgrammableGate Array,简称FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述实施例给出的数据解码方法。
下面对本申请实施例提供的计算机可读存储介质进行介绍,下文描述的计算机可读存储介质与上文描述的数据解码方法可相互对应参照。
本申请还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述的数据解码方法的步骤。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本领域技术人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应该认为超出本申请的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系属于仅仅用来将一个实体或者操作与另一个实体或者操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语包括、包含或者其他任何变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (10)
1.一种数据解码方法,其特征在于,包括:
获取待解码数据,并将所述待解码数据划分为第一数据和第二数据;
对所述第一数据进行软解码,得到第一解码数据;
将所述第二数据发送至硬件解码器,以便所述硬件解码器对所述第二数据进行解码得到第二解码数据;
利用所述第一解码数据和所述第二解码数据构成解码数据。
2.根据权利要求1所述的数据解码方法,其特征在于,所述获取待解码数据,并将所述待解码数据划分为第一数据和第二数据,包括:
获取所述待解码数据,并判断所述待解码数据是否大于预设数据量阈值;
若大于所述预设数据量阈值,则将所述待解码数据划分为所述第一数据和所述第二数据。
3.根据权利要求1所述的数据解码方法,其特征在于,所述将所述待解码数据划分为第一数据和第二数据,包括:
识别所述待解码数据中的头数据块、若干个文件数据块和尾数据块;
按照头尾顺序,按照预设比例在所述若干个文件数据块之间确定分割点;
在所述分割点处插入目标尾数据块,并在所述目标尾数据块后插入目标头数据块;
将所述头数据块、所述目标尾数据块以及所述头数据块至所述目标尾数据块之间的数据块确定为所述第一数据,并将所述目标头数据块、所述尾数据块以及从所述目标头数据块至所述尾数据块之间的数据块确定为所述第二数据;
其中,所述目标头数据块中的头信息与所述第二数据相匹配。
4.根据权利要求3所述的数据解码方法,其特征在于,还包括:
确定所述硬件解码器对应的硬解能力;
确定在预设条件下的软解能力;
根据所述硬解能力和所述软解能力确定所述预设比例。
5.根据权利要求1所述的数据解码方法,其特征在于,还包括:
若检测到满足负载平衡条件,则根据软解码情况,将所述待解码数据中的未处理部分重新划分为第三数据和第四数据;
将所述第三数据作为新第一数据进行软解码,并将所述第四数据作为新第二数据发送至硬件解码器。
6.根据权利要求5所述的数据解码方法,其特征在于,所述根据软解码情况,将所述待解码数据中未经解码的部分重新划分为第三数据和第四数据,包括:
若所述软解码情况为软解能力不足,则将所述未处理部分中所述第一数据对应的第一未处理部分划分为所述第三数据和所述第四数据,并将所述未处理部分中所述第二数据对应的第二未处理部分确定为所述第四数据;
若所述软解码情况为软解能力过剩,则将所述未处理部分中所述第一数据对应的第一未处理部分确定为所述第三数据,并将所述未处理部分中所述第二数据对应的第二未处理部分划分为所述第三数据和所述第四数据。
7.根据权利要求1所述的数据解码方法,其特征在于,所述利用所述第一解码数据和所述第二解码数据构成解码数据,包括:
基于所述第一数据在所述待解码数据中的位置,将所述第一解码数据写入内存空间的第一位置;
若检测到所有的所述第二解码数据,均基于所述第二数据在所述待解码数据中的位置,写入到所述内存空间的第二位置,则确定所述解码数据构成完毕。
8.一种数据解码装置,其特征在于,包括:
划分模块,用于获取待解码数据,并将所述待解码数据划分为第一数据和第二数据;
软解模块,用于对所述第一数据进行软解码,得到第一解码数据;
硬解模块,用于将所述第二数据发送至硬件解码器,以便所述硬件解码器对所述第二数据进行解码得到第二解码数据;
构成模块,用于利用所述第一解码数据和所述第二解码数据构成解码数据。
9.一种电子设备,其特征在于,包括存储器和处理器,其中:
所述存储器,用于保存计算机程序;
所述处理器,用于执行所述计算机程序,以实现如权利要求1至7任一项所述的数据解码方法。
10.一种计算机可读存储介质,其特征在于,用于保存计算机程序,其中,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的数据解码方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111326932.1A CN114071154A (zh) | 2021-11-10 | 2021-11-10 | 一种数据解码方法、装置、电子设备及可读存储介质 |
PCT/CN2022/130860 WO2023083213A1 (zh) | 2021-11-10 | 2022-11-09 | 一种数据解码方法、装置、电子设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111326932.1A CN114071154A (zh) | 2021-11-10 | 2021-11-10 | 一种数据解码方法、装置、电子设备及可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114071154A true CN114071154A (zh) | 2022-02-18 |
Family
ID=80274526
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111326932.1A Pending CN114071154A (zh) | 2021-11-10 | 2021-11-10 | 一种数据解码方法、装置、电子设备及可读存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114071154A (zh) |
WO (1) | WO2023083213A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023083213A1 (zh) * | 2021-11-10 | 2023-05-19 | 湖南国科微电子股份有限公司 | 一种数据解码方法、装置、电子设备及可读存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000216815A (ja) * | 1999-01-21 | 2000-08-04 | Toshiba Corp | マルチリンク通信装置 |
CN105635740A (zh) * | 2014-10-27 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 对图像进行解码的方法及装置 |
CN106782578A (zh) * | 2016-12-06 | 2017-05-31 | 努比亚技术有限公司 | 一种分布式解码控制器、分布式解码方法及音频终端 |
US20170310342A1 (en) * | 2016-04-25 | 2017-10-26 | SK Hynix Inc. | Early selection decoding and automatic tuning |
CN107592118A (zh) * | 2016-07-08 | 2018-01-16 | 华为技术有限公司 | 可变长编码文件的解码方法以及装置 |
CN108282164A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 一种数据编码及解码方法和装置 |
CN111147926A (zh) * | 2018-11-02 | 2020-05-12 | 杭州海康威视数字技术股份有限公司 | 一种数据转码方法及装置 |
CN111836101A (zh) * | 2019-04-19 | 2020-10-27 | 深圳市茁壮网络股份有限公司 | 一种视频播放方法及装置 |
CN112119593A (zh) * | 2019-07-25 | 2020-12-22 | 深圳市大疆创新科技有限公司 | 一种数据的处理方法、系统、编码器及解码器 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114071154A (zh) * | 2021-11-10 | 2022-02-18 | 湖南国科微电子股份有限公司 | 一种数据解码方法、装置、电子设备及可读存储介质 |
CN114422799B (zh) * | 2022-01-24 | 2024-04-19 | 北京百度网讯科技有限公司 | 视频文件的解码方法、装置、电子设备、程序产品 |
-
2021
- 2021-11-10 CN CN202111326932.1A patent/CN114071154A/zh active Pending
-
2022
- 2022-11-09 WO PCT/CN2022/130860 patent/WO2023083213A1/zh unknown
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000216815A (ja) * | 1999-01-21 | 2000-08-04 | Toshiba Corp | マルチリンク通信装置 |
CN105635740A (zh) * | 2014-10-27 | 2016-06-01 | 阿里巴巴集团控股有限公司 | 对图像进行解码的方法及装置 |
US20170310342A1 (en) * | 2016-04-25 | 2017-10-26 | SK Hynix Inc. | Early selection decoding and automatic tuning |
CN107592118A (zh) * | 2016-07-08 | 2018-01-16 | 华为技术有限公司 | 可变长编码文件的解码方法以及装置 |
CN106782578A (zh) * | 2016-12-06 | 2017-05-31 | 努比亚技术有限公司 | 一种分布式解码控制器、分布式解码方法及音频终端 |
CN108282164A (zh) * | 2017-01-05 | 2018-07-13 | 腾讯科技(深圳)有限公司 | 一种数据编码及解码方法和装置 |
CN111147926A (zh) * | 2018-11-02 | 2020-05-12 | 杭州海康威视数字技术股份有限公司 | 一种数据转码方法及装置 |
CN111836101A (zh) * | 2019-04-19 | 2020-10-27 | 深圳市茁壮网络股份有限公司 | 一种视频播放方法及装置 |
CN112119593A (zh) * | 2019-07-25 | 2020-12-22 | 深圳市大疆创新科技有限公司 | 一种数据的处理方法、系统、编码器及解码器 |
WO2021012278A1 (zh) * | 2019-07-25 | 2021-01-28 | 深圳市大疆创新科技有限公司 | 一种数据的处理方法、系统、编码器及解码器 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023083213A1 (zh) * | 2021-11-10 | 2023-05-19 | 湖南国科微电子股份有限公司 | 一种数据解码方法、装置、电子设备及可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2023083213A1 (zh) | 2023-05-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111262876B (zh) | 基于区块链的数据处理方法、装置、设备以及存储介质 | |
JP2008065834A (ja) | フュージョンメモリ装置及び方法 | |
US20170180746A1 (en) | Video transcoding method and electronic apparatus | |
CN107295352B (zh) | 一种视频压缩方法、装置、设备及存储介质 | |
CN111669577A (zh) | 一种硬件解码检测方法、装置、电子设备及存储介质 | |
CN110740313A (zh) | 硬件编码能力检测方法及装置 | |
CN112165331A (zh) | 数据压缩方法及其装置、数据解压方法及其装置、存储介质及电子设备 | |
CN112532998B (zh) | 抽取视频帧的方法、装置、设备和可读存储介质 | |
CN116560581A (zh) | 一种虚拟机磁盘文件迁移方法、系统、存储介质及设备 | |
CN113226501A (zh) | 应用程序的流媒体影像提供装置及方法 | |
CN114071154A (zh) | 一种数据解码方法、装置、电子设备及可读存储介质 | |
CN110599581B (zh) | 图像模型数据处理方法、装置以及电子设备 | |
US9053526B2 (en) | Method and apparatus for encoding cloud display screen by using application programming interface information | |
CN109597566B (zh) | 一种数据读取、存储方法及装置 | |
CN106293542B (zh) | 一种文件解压缩的方法及装置 | |
US8515189B2 (en) | Image compression method with fixed compression ratio, image decompression method, and electronic device thereof | |
CN113521729B (zh) | 云游戏延迟检测方法、服务器、客户端、系统及介质 | |
CN110858920A (zh) | 视频解码方法、移动终端、服务器、系统及存储介质 | |
CN110677728B (zh) | 播放视频的方法、装置、设备及存储介质 | |
CN105469433B (zh) | 一种图片压缩方法及其设备 | |
CN114079823A (zh) | 基于Flutter的视频渲染方法、装置、设备及介质 | |
CN113641643A (zh) | 文件写入方法及装置 | |
CN113747159A (zh) | 一种生成可变帧率视频媒体文件的方法、装置及相关组件 | |
CN108335706B (zh) | 一种多媒体文件的无缝播放方法、终端设备及存储介质 | |
CN111405293A (zh) | 一种视频传输方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220218 |