首页> 中国专利> 抗误码视频编码重组方法、装置、设备、系统和介质

抗误码视频编码重组方法、装置、设备、系统和介质

摘要

本申请提供的一种抗误码视频编码重组方法、装置、设备、系统和介质。通过从视频源获取至少一图像组的HEVC编码的视频码流;解析视频码流以分离出多个编码单元,并检索各编码单元的预测模式及其内部各预测单元的运动矢量信息,以得到编码单元之间的依赖关系图;遍历依赖关系图并根据用户预设规则将其有序划分为若干个区域,据以对各编码单元进行分组;以各分组为单位封装成网络数据包并通过网络进行传输。本申请可减少网络传输丢包时的错误扩散,从而减少受影响的视频图像的范围大小。同时,解码端可以使用适当的方法逆向操作将每个编码单元恢复其原始位置,使其能够正确地由符合互联网视频编码标准的视频解码器解码。

著录项

  • 公开/公告号CN112822492A

    专利类型发明专利

  • 公开/公告日2021-05-18

    原文格式PDF

  • 申请/专利权人 北京大学;

    申请/专利号CN202011622272.7

  • 申请日2020-12-30

  • 分类号H04N19/124(20140101);H04N19/13(20140101);H04N19/513(20140101);H04N19/61(20140101);H04N19/625(20140101);

  • 代理机构11479 北京汉之知识产权代理事务所(普通合伙);

  • 代理人高园园

  • 地址 100871 北京市海淀区颐和园路5号

  • 入库时间 2023-06-19 11:02:01

说明书

技术领域

本申请涉及数字视频编码技术领域,特别是涉及一种抗误码视频编码重组方法、装置、设备、系统和介质。

背景技术

HEVC编码算法中大量地考虑了视频各部分画面之间的关联,因此编码后得到的分片之间也具有较强的依赖性。其中,在编码中具有依赖性的一系列连续的视频帧构成一个图像组(Group of Pictures,GOP)。每个视频帧由一个或多个分片构成,每个分片中包含若干个编码单元。解码算法在解码某个编码单元时,要求其前置编码单元均已正确取得并解码,即要求其所属分片必须正确取得,才能顺利还原出相应位置的视频画面,否则视频解码算法将自动使用一些替代信息对于缺失信息进行填补,导致最终还原得到的视频画面与原始视频画面不一致,有缺损部分。

在网络传输,尤其是无线网络中,网络传输的容量是不稳定的,同时网络传输存在一定的误码率,不可避免地会带来一些编码单元的信息错误或丢失。由于数据丢失的最小单位为包,而一个包中包含了多个编码单元的信息,不同的装包方式使得在正确传输的包比例相同时,可解码的编码单元的比例产生巨大的差距。

现有的视频编解码系统一般按顺序传输视频码流,这样做使得最终的数据包所承载的编码单元顺序是固定的,没有考虑依赖关系,会导致大量正确到达的包由于其他误码包中的前置编码单元无法正确解码而被丢弃,大幅降低了网络有数据丢失的情况下视频画面的质量。

发明内容

鉴于以上所述现有技术的缺点,本申请的目的在于提供一种抗误码视频编码重组方法、装置、设备、系统和介质,用于解决上述至少一个问题。

为实现上述目的及其他相关目的,本申请提供一种抗误码视频编码重组方法,应用于编码端,所述方法包括:所述方法包括:从视频源获取至少一图像组的HEVC编码的视频码流;解析视频码流以分离出多个编码单元,并检索各编码单元的预测模式及其内部各预测单元的运动矢量信息,以得到编码单元之间的依赖关系图;遍历依赖关系图并根据用户预设规则将依赖关系图有序划分为若干个区域,据以对各编码单元进行分组;以各分组为单位封装成网络数据包并通过网络进行传输。

于本申请的一实施例中,所述运动矢量信息包括帧间预测模式的运动矢量信息:所述依赖关系图采用有向无环图表示。

于本申请的一实施例中,所述预测模式决定了相应预测单元的解码依赖范围;其中,帧内预测模式依赖于当前区域相邻的同一图像帧分片内已编码的编码单元,帧间预测模式依赖于参考帧中运动矢量指向区域内的编码单元;所述编码单元的依赖范围则是相应预测单元的依赖范围之和。

于本申请的一实施例中,所述遍历依赖关系图并根据用户预设规则将依赖关系图有序划分为若干个区域,包括:每个区域内部的编码单元装包后的大小之和不超过网络数据包的最大允许范围;所述划分用以分离编码单元之间的依赖关系;其中,依赖关系紧密的编码单元划入同一区域,反之则划入不同区域。

于本申请的一实施例中,所述用户预设规则包括:以不依赖其他编码单元的编码单元为起点,对依赖关系图进行深度优先遍历;按照遍历顺序划分区域,将遍历时相邻访问的编码单元划入同一区域内。

于本申请的一实施例中,在分组后对各组内的各编码单元前添加的元数据,以供重组时排序为原始视频码流的格式;所述元数据包括:帧序号和单元序号。

为实现上述目的及其他相关目的,本申请提供一种抗误码视频编码重组装置,应用于编码端,所述装置包括:获取模块,用于从视频源获取至少一图像组的HEVC编码的视频码流;解析模块,用于解析视频码流以分离出多个编码单元,并检索各编码单元的预测模式及其内部各预测单元的运动矢量信息,以得到编码单元之间的依赖关系图;分组模块,用于遍历依赖关系图并根据用户预设规则将依赖关系图有序划分为若干个区域,据以对各编码单元进行分组;传输模块,用于以各分组为单位封装成网络数据包并通过网络进行传输。

为实现上述目的及其他相关目的,本申请提供一种编码端设备,所述设备包括:存储器、处理器、及通信器;所述存储器用于存储计算机程序;所述处理器运行计算机程序实现如上所述的方法;所述通信器用于与解码端设备通信连接。

为实现上述目的及其他相关目的,本申请提供一种抗误码视频编码重组系统,所述系统包括:如上所述的编码端设备、及解码端设备;所述解码端设备用于接收编码端设备发送的数据包,基于元数据对各编码单元进行排序并还原为原始视频码流的格式,以供解码并播放。

为实现上述目的及其他相关目的,本申请提供一种计算机可读存储介质,其上存储有计算机指令,所述计算机指令被运行时执行如上所述的方法。

综上所述,本申请的一种抗误码视频编码重组方法、装置、设备、系统和介质。本申请针对HEVC视频码流中的编码单元(CU)结构,从码流中提取所有编码单元并分析其依赖关系,再依照该依赖关系和用户指定的规则调整其顺序和组包方式,减少网络传输丢包时的错误扩散,从而减少受影响的视频图像的范围大小。同时,解码端可以使用适当的方法逆向操作将每个编码单元恢复其原始位置,使其能够正确地由符合互联网视频编码标准的视频解码器解码。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1显示为本申请中抗误码视频编码重组方法的流程示意图。

图2显示为本申请中HEVC中编码单元的划分及顺序的示意图。

图3显示为本申请中帧内编码和帧间编码的依赖区域的示意图。

图4显示为本申请中依赖区域的三种形式的场景示意图。

图5显示为本申请中一种依赖关系的有向无环示意图。

图6显示为本申请中应用于编码端及对应解码端的流程的场景示意图。

图7显示为本申请中抗误码视频编码重组装置的模块示意图。

图8显示为本申请中编码端设备的结构示意图。

图9显示为本申请中抗误码视频编码重组系统的结构示意图。

具体实施方式

以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施例中的特征可以相互组合。

需要说明的是,以下实施例中所提供的图示仅以示意方式说明本申请的基本构想,虽然图式中仅显示与本申请中有关的组件而非按照实际实施时的组件数目、形状及尺寸绘制,但其实际实施时各组件的型态、数量及比例可为一种随意的改变,且其组件布局型态也可能更为复杂。

在通篇说明书中,当说某部分与另一部分“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部分“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素,排除在外,而是意味着可以还包括其它构成要素。

其中提到的第一、第二及第三等术语是为了说明多样的部分、成分、区域、层及/或段而使用的,但并非限定于此。这些术语只用于把某部分、成分、区域、层或段区别于其它部分、成分、区域、层或段。因此,以下叙述的第一部分、成分、区域、层或段在不超出本申请范围的范围内,可以言及到第二部分、成分、区域、层或段。

再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。

近年来,移动互联网中的视频内容越来越多。由于原始视频画面数据量极大,必须经过视频压缩编码才能在计算机存储介质上存储或在网络中传输,解码端经过相应的解码操作还原出原始的视频画面。

现有的视频编码和传输方法一般包含以下步骤:

1.将待编码的视频画面划分成特定大小的像素块,例如4x4,8x8,16x16,32x32或其它大小;

2.对上一步得到的像素块,使用某种符合互联网视频编码标准的编码算法编码得到相应的编码单元;其中,编码单元在不同的编码算法中有不同的定义和称呼,在HEVC视频编码中称为编码树单元(CTU)和编码单元(CU);视频编码算法一般包含下列步骤:

a)帧内预测编码和帧间预测编码;

b)离散余弦变换;

c)量化;

d)熵编码;

3.对上一步得到的编码单元,依照各帧之间的时间顺序和一帧内部的扫描顺序,组装成分片(Slice);

4.对于上一步得到的分片进行进一步的封装,使其便于通过网络传输或者存储至计算机存储介质中;在HEVC中,该步骤称为网络抽象层(Network Abstraction Layer,NAL),进一步封装后得到的数据单元称为网络抽象层单元(NAL Unit,NALU)。

在网络传输,尤其是无线网络中,网络传输的容量是不稳定的,同时网络传输存在一定的误码率,不可避免地会带来一些编码单元的信息错误或丢失。由于数据丢失的最小单位为包,而一个包中包含了多个编码单元的信息,不同的装包方式使得在正确传输的包比例相同时,可解码的编码单元的比例产生巨大的差距。

现有的视频编解码系统一般按顺序传输视频码流,这样做使得最终的数据包所承载的编码单元顺序是固定的,没有考虑依赖关系,会导致大量正确到达的包由于其他误码包中的前置编码单元无法正确解码而被丢弃,大幅降低了网络有数据丢失的情况下视频画面的质量。

鉴于上述现有技术存在的问题,本申请提供的一种抗误码视频编码重组方法、装置、设备、系统和介质,本申请针对HEVC视频码流中的编码单元(CU)结构,从码流中提取所有编码单元并分析其依赖关系,再依照该依赖关系和用户指定的规则调整其顺序和组包方式,减少网络传输丢包时的错误扩散,从而减少受影响的视频图像的范围大小。同时,解码端可以使用适当的方法逆向操作将每个编码单元恢复其原始位置,使其能够正确地由符合互联网视频编码标准的视频解码器解码。

如图1所示,展示为本申请于一实施例中的抗误码视频编码重组方法的流程示意图。所述方法主要应用于编码端。如图所示,所述方法包括:

步骤S101:从视频源获取至少一图像组的HEVC编码的视频码流。

优选地,所述视频源包括:符合互联网视频编码标准的视频编码器实时输出的视频码流,或预先生成并存储于计算机存储介质中的视频码流,或第三方通过网络提供的由上述方法产生的视频码流等。

优选地,一所述图像组大小可设为24帧,编码得到的视频码流首先置入缓冲区中,待缓冲区中码流构成一个图像组再进入下一步处理。

需说明的是,HEVC是一种新兴的互联网标准视频编码,该视频编码中具有多种分块结构,其中最大的分块结构称为编码树单元(CTU),CTU的大小可由编码器的配置指定且在码流中保持不变,如大小可为64x64,32x32或16x16;CTU进一步划分形成编码单元(CU),划分方式为零次、一次或多次四等分。

步骤S102:解析视频码流以分离出多个编码单元,并检索各编码单元的预测模式及其内部各预测单元的运动矢量信息,以得到编码单元之间的依赖关系图。

具体地,对上述获取到的视频码流进行解析,以分离出其中各图像帧上对应的各个编码单元;并检索各个编码单元的预测模式及其内部各个预测单元的帧间预测的运动矢量信息,由此确定编码单元之间的依赖关系或依赖信息,以构建依赖关系图。优选依赖关系图使用有向无环图表示。

在视频流中,需要存在少量帧只利用本帧信息即可解码的关键帧,称之为I帧;其他帧都是非关键帧,称之为P帧。P帧的解码依赖于前面若干I帧或不超过前面第一个I帧的P帧,要求前置所有依赖帧的正确解码。其中,I帧为帧内编码帧,其尽可能去除图像空间冗余信息来压缩传输数据量的帧内编码图像;P帧为前向预测编码帧,其通过充分将低于图像序列中前面已编码帧的时间冗余信息来压缩传输数据量的编码图像,也叫预测帧。

于本实施例中,本申请针对I帧编码主要采用帧内预测编码模式,针对P帧编码主要采用帧间预测编码模式。简单来说,帧内预测编码和帧间预测编码,主要利用一帧画面内部或相邻帧之间的相似性,通过只编码差异信息,从而减小数据量。

需要说明的是,由于视频流中相邻若干帧的关联性极高,帧间预测技术在压缩中起到至关重要的作用。在该技术中,每一帧图像将被划分为若干编码单元(CU),对于每一个编码单元(CU),在其相邻的若干帧图像(称其为参考帧)中寻找到最相近的区域,以该区域的位置信息以及两者的差异信息作为该编码单元(CU)的编码,可以极大程度上减少编码数据量。

优选地,所述编码单元(CU)通常执行视频编码时会将获取到的视频画面划分为特定大小的像素块,例如4x4、8x8、16x16、32x32或其它大小。这个像素块便是编码单元(CU),在H.264中称为宏块(Macroblock),HEVC中称为编码树单元(CTU)和编码单元(CU)。

优选地,编码单元(CU)大小可以不相同,如最小可划分到8x8;同一帧内的各个编码单元(CU)按照“Z”字型扫描顺序依次编码,如图2所示,按照从左至右,从上至下的顺序,依次扫描1-13进行编码。基于编码单元(CU)使用符合互联网视频编码标准的编码算法进行编码以得到编码单元(CU)的编码信息。

优选地,依据在该图像帧前的所有参考帧中找到的与当前图像帧上各编码单元分别对应的相近区域编码单元提取依赖信息或依赖关系,以得到对应各编码单元的用于编码单元重组的依赖信息。所述依赖信息可用于数块的重组。具体地,所述依赖信息包括:帧间预测的参考帧编号、运动矢量、及每一编码单元依赖的前置编码单元。

简单来说,编码单元(CU)决定了相应区域的图像使用何种预测模式进行编码,如帧间相应区域采用帧间预测编码,帧内相应区域采用帧内预测编码;进一步地,编码单元(CU)可分为1~4个预测单元(PU),每个预测单元(PU)可使用不同的预测参数,其中帧内预测会在35种子模式中选择其一,帧间预测则会选定1~2个参考帧(对应于P帧和B帧)以及相应的运动矢量。

HEVC标准提供35个帧内预测模式,包括一个DC模式,一个Planar模式,以及33个Angular模式。在HEVC的test model HM10.0中,对于帧内预测的模式选择可以总结为:35个预测模式首先根据STAD的方式,利用Hadamard变换,选择RD-cost最小的3个(对于64*64,32*32,16*16的PU),或者8个(对于8*8,4*4的PU)。同时计算当前PU的MPM(Most ProbableMode),连同MPM,经过减少的预测模式,在经过Full R-D cost的方式进行选择,得到最优的预测模式。

于本申请一实施例中,预测模式决定了相应预测单元(PU)的解码依赖范围;其中,帧内预测依赖于当前区域相邻的同一图像帧内片内已编码的编码单元(CU),这里一图像帧有多个分片(Slice)的情况,帧内预测依赖范围限制在分片内。帧间预测依赖参考帧中运动矢量指向区域内的编码单元(CU);编码单元(CU)的依赖范围则是相应预测单元(PU)的依赖范围之和。

举例来说,如图3所示,包含图像帧中分片Slice 1的图像帧为I帧,其对应帧内预测模式,当前区域P(即预测单元)所依赖的范围为:图中表示依赖区域的虚线框所经过的同一图像帧内各相邻的已编码的编码单元(图中包含5个编码单元);图像帧分片Slice 2与分片Slice3属于不同分片的图像帧,图像帧分片Slice 3的图像帧为P帧,对应帧间预测模式,图像帧分片Slice 2的图像帧作为参考帧,如图像帧分片Slice3上的当前区域P所依赖的范围为:根据运动矢量指向图像帧分片Slice 2上的表示依赖区域的虚线框所经过的编码单元(图中包含4个编码单元)。

优选地,通常依赖区域有三种可能形式,如图4所示,例如,第一种形式中的预测区域P(即如上所述的当前区域)的依赖范围涉及s1-s4共4个编码单元;第二种形式中的预测区域P的依赖范围涉及s1-s2共2个编码单元;第三种形式中的预测区域P的依赖范围仅涉及s3这1个编码单元。

于本申请中,所述依赖关系图采用有向无环图表示。如图5所示,展示为于本实施中一种依赖关系的有向无欢示意图。如图所示,以不依赖其他编码单元的编码单元(CU)为起点或首行,即此类编码单元为位于I帧的图像帧中,其于P帧图像帧的各编码单元(CU)则分别与I帧图像帧的各编码单元(CU)具有依赖关系或与其他P帧图像帧的各编码单元(CU)具有依赖关系。

需要说明的是,通过帧间预测编码会找到帧间差异信息,但是很少记录帧间的依赖关系。正是由于没有考虑帧与帧之间编码单元的依赖关系,才导致按照帧的时间顺序依次打包发送的现有传输体系中,任何一个数据包的丢失都几乎独立的造成后续大量编码单元无法解码,极大降低了可解码块的比例。

而本申请提出的依赖信息具体可包括:帧间预测的参考帧编号、运动矢量、以及通过收集到的信息检索每一编码单元依赖的前置编码单元。优选地,通过编码单元间的依赖关系,可以改变传统数据包中需包含同一图像帧的各编码单元的编码,使得不同图像帧的关联编码单元重组一数据包中,并且根据依赖关系还可在解码端按照原图像中的位置进行顺序编码,可有效降低包与包之间解码的依赖度,不会因若干数据包的丢失而造成后续大量编码单元无法解码的问题。

步骤S103:遍历依赖关系图并根据用户预设规则将依赖关系图有序划分为若干个区域,据以对各编码单元进行分组。

优选地,对上述依赖关系图进行遍历并根据用户提供的规则将其有序划分为若干个区域。其中,要求每个区域内部的编码单元装包后的大小之和必须不超过网络数据包的最大允许范围,且该划分应尽量分离编码单元之间的依赖关系,即尽量将依赖关系紧密的编码单元划入同一区域,反之则划入不同区域。

优选地,具体划分规则可以由用户指定,例如一种较为简单的规则:以不依赖其他编码单元的编码单元为起点,对依赖关系图进行深度优先遍历,按照遍历顺序划分区域,将遍历时相邻访问的编码单元划入同一区域内。

于本申请中,对之前获取的视频码流中的编码单元进行分组,即之前划入同一区域的编码单元,在这一步中也分入同一组;之前先分出的编码单元,在这一步中也优先处理。

于本申请一实施例中,在分组后对各组内的各编码单元前添加的元数据,以供重组时排序为原始视频码流的格式;所述元数据包括:帧序号和单元序号。如下表1所示。

表1添加源数据后的数据结构

其中,添加的整数值均使用Exp-Golomb编码,与HEVC标准相同。

步骤S104:以各分组为单位封装成网络数据包并通过网络进行传输。

优选地,上述各个分组组装成UDP网络数据包并通过网络传输,优选传输对应的解码端。之后的视频码流重复上述S101~S104操作。

如图6所示,展示为申请于一实施例中的本方法于编码端以及相应的解码端的场景示意图。如图所示,在发送端的主要流程为:

首先,获取外部设备录制的为标准的HEVC视频码流的视频画面;图像组大小设为24帧,编码得到的视频码流首先置入缓冲区中,以图像组为单位交付给后续单元进行处理。

然后,依赖信息提取程序,读取并解析上述视频码流的各个编码单元的预测模式及其内部各个预测单元的帧内预测模式或帧间预测的运动矢量信息,构建编码单元之间的依赖关系图;

接下来,获取上述视频码流和依赖关系图,然后以不依赖其他编码单元的编码单元为起点,对依赖关系图进行深度优先遍历,按照遍历顺序划分区域,将遍历时相邻访问的编码单元划入同一区域内;按照依赖关系图的划分结果对编码单元进行分组,添加必要的元数据,以供重组时排序为原始视频码流的格式。

最后,以各分组为单位封装成网络数据包并通过网络进行传输。

一种对应可行的解码端则对应可进行如下操作:

首先,从IP网络接收编码端传输的UDP数据包,置入缓冲区中,待当前图像组的数据包全部接收完毕再进入下一步处理;判断标准是,接收到来自新的图像组的数据包时,则判定当前图像组已接收完毕;

然后每次处理一个图像组的数据包,根据添加的元数据的指示,将其中的编码单元排序,还原成原始顺序,同时去除添加的元数据,还原原始的视频码流格式;

最后,其内部包含HEVC视频解码器和视频播放用户界面;获取上述经过还原处理的视频码流,解码并播放。

综上所述,本申请所述方法主要在视频码流传输前对其中的编码单元进行分离和重组,具有以下优点:

1)通过改变视频码流中的编码单元的装包方式,减少编码单元的跨数据包依赖性和错误扩散,可减少网络传输中数据包损坏和丢失对视频质量的损害;在相同的丢包率的情况下:客观上,多数情况下解码端还原出的视频画面的平均峰值信噪比(Peak Signal-to-Noise Ratio,PSNR)数值更高;主观上,视频画面中的缺损区域面积更小,且大体上由大面积条带状缺损转化为零散小块缺损;

2)由于该方法仅通过编码单元的重新排序起到抗误码作用,仅添加少量元数据,不对实际的视频码流数据添加冗余,节省网络传输容量。

如图7所示,展示为本申请于一实施例中的抗误码视频编码重组装置的模块示意图。如图所示,应用于编码端,所述装置700包括:

获取模块701,用于从视频源获取至少一图像组的HEVC编码的视频码流;

解析模块702,用于解析视频码流以分离出多个编码单元,并检索各编码单元的预测模式及其内部各预测单元的运动矢量信息,以得到编码单元之间的依赖关系图;

分组模块703,用于遍历依赖关系图并根据用户预设规则将依赖关系图有序划分为若干个区域,据以对各编码单元进行分组;

传输模块704,用于以各分组为单位封装成网络数据包并通过网络进行传输。

需要说明的是,上述系统各模块/单元之间的信息交互、执行过程等内容,由于与本申请如图1应用于解码端的所述方法实施例基于同一构思,其带来的技术效果与本申请应用于解码端的方法实施例相同,具体内容可参见本申请前述所示的方法实施例中的叙述,此处不再赘述。

需要说明的是,应理解以上述装置的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现。

例如,分组模块703可以为单独设立的处理元件,也可以集成在上述装置的某一个芯片中实现,此外,也可以以程序代码的形式存储于上述装置的存储器中,由上述装置的某一个处理元件调用并执行以上分组模块703的功能。其它模块的实现与之类似。此外这些模块全部或部分可以集成在一起,也可以独立实现。这里所述的处理元件可以是一种集成电路,具有信号的处理能力。在实现过程中,上述方法的各步骤或以上各个模块可以通过处理器元件中的硬件的集成逻辑电路或者软件形式的指令完成。

例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。

如图8所示,展示为本申请于一实施例中的编码端设备的结构示意图。如图所示,所述编码端设备800包括:存储器801、处理器802、及通信器803;所述存储器801用于存储计算机程序;所述处理器802运行计算机程序实现如图1所述的方法;所述通信器803用于与解码端设备通信连接。

在一些实施例中,编码端设备800中的所述存储器801的数量均可以是一或多个,所述处理器802的数量均可以是一或多个,所述通信器803的数量均可以是一或多个,而图8中均以一个为例。

于本申请一实施例中,所述编码端设备800中的处理器802会按照如图1所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器801中,并由处理器802来运行存储在存储器802中的应用程序,从而实现如图1所述的方法。

所述存储器801可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。所述存储器801存储有操作系统和操作指令、可执行模块或者数据结构,或者它们的子集,或者它们的扩展集,其中,操作指令可包括各种操作指令,用于实现各种操作。操作系统可包括各种系统程序,用于实现各种基础业务以及处理基于硬件的任务。

所述处理器802可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

所述通信器803用于实现数据库访问装置与其他设备(例如客户端、读写库和只读库)之间的通信连接。所述通信器803可包含一组或多组不同通信方式的模块,例如,与CAN总线通信连接的CAN通信模块。所述通信连接可以是一个或多个有线/无线通讯方式及其组合。通信方式包括:互联网、CAN、内联网、广域网(WAN)、局域网(LAN)、无线网络、数字用户线(DSL)网络、帧中继网络、异步传输模式(ATM)网络、虚拟专用网络(VPN)和/或任何其它合适的通信网络中的任何一个或多个。例如:WIFI、蓝牙、NFC、GPRS、GSM、及以太网中任意一种及多种组合。

如图9所示,展示为本申请于一实施例中的抗误码视频编码重组系统的结构示意图。如图所示,如图8所述的编码端设备910、及解码端设备920;

所述解码端设备920;用于接收编码端设备发送的数据包,基于元数据对各编码单元进行排序并还原为原始视频码流的格式,以供解码并播放。

举例来说,一种对应可行的解码端设备920可用于:

首先,从IP网络接收编码端传输的UDP数据包,置入缓冲区中,待当前图像组的数据包全部接收完毕再进入下一步处理;判断标准是,接收到来自新的图像组的数据包时,则判定当前图像组已接收完毕;

然后每次处理一个图像组的数据包,根据添加的元数据的指示,将其中的编码单元排序,还原成原始顺序,同时去除添加的元数据,还原原始的视频码流格式;

最后,其内部包含HEVC视频解码器和视频播放用户界面;获取上述经过还原处理的视频码流,解码并播放。

于本申请的一实施例中,本申请提供一种计算机可读存储介质,其上存储有应用于编码端的计算机指令,所述计算机指令被运行时执行如图1所述的应用于编码端的方法。

在任何可能的技术细节结合层面,本申请可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本申请的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是(但不限于)电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本申请操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路配置数据或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本申请的各个方面。

综上所述,本申请提供的一种抗误码视频编码重组方法、装置、设备、系统和介质,本申请针对HEVC视频码流中的编码单元(CU)结构,从码流中提取所有编码单元并分析其依赖关系,再依照该依赖关系和用户指定的规则调整其顺序和组包方式,减少网络传输丢包时的错误扩散,从而减少受影响的视频图像的范围大小。同时,解码端可以使用适当的方法逆向操作将每个编码单元恢复其原始位置,使其能够正确地由符合互联网视频编码标准的视频解码器解码。

本申请有效克服了现有技术中的种种缺点而具高度产业利用价值。

上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中包含通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号