CN112822514B - 基于依赖关系的视频流分组传输方法、系统、终端及介质 - Google Patents
基于依赖关系的视频流分组传输方法、系统、终端及介质 Download PDFInfo
- Publication number
- CN112822514B CN112822514B CN202011622428.1A CN202011622428A CN112822514B CN 112822514 B CN112822514 B CN 112822514B CN 202011622428 A CN202011622428 A CN 202011622428A CN 112822514 B CN112822514 B CN 112822514B
- Authority
- CN
- China
- Prior art keywords
- dependency
- objects
- processed
- storage area
- temporary storage
- 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.)
- Active
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 92
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012856 packing Methods 0.000 claims abstract description 11
- 239000012634 fragment Substances 0.000 claims description 34
- 230000015654 memory Effects 0.000 claims description 19
- 238000004806 packaging method and process Methods 0.000 claims description 18
- 238000003314 affinity selection Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 9
- 230000008859 change Effects 0.000 abstract description 5
- 238000009792 diffusion process Methods 0.000 abstract description 4
- 238000012545 processing Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 239000000470 constituent Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000013467 fragmentation Methods 0.000 description 2
- 238000006062 fragmentation reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005538 encapsulation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
-
- 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
-
- 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/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/96—Tree coding, e.g. quad-tree coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/80—Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
- H04N21/83—Generation or processing of protective or descriptive data associated with content; Content structuring
- H04N21/845—Structuring of content, e.g. decomposing content into time segments
- H04N21/8456—Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明的基于依赖关系的视频流分组传输方法、系统、终端及介质,通过获取的各数据单元之间的依赖关系信息,将依赖关系紧密的数据单元安排在同一个分组中传输,减少网络传输丢包时的错误扩散,进而减少网络质量不佳时受影响的视频图像的范围大小;由于该方案仅需改变视频码流分组传输时的装包方式,不需要添加冗余,与传统的基于冗余的抗误码方法相比可以节省网络传输容量,并解决现有技术的问题。
Description
技术领域
本申请涉及数据传输技术领域,尤其涉及基于依赖关系的视频流分组传输方法、系统、终端及介质。
背景技术
近年来,移动互联网中的视频内容越来越多。由于原始视频画面数据量极大,必须经过视频压缩编码才能在计算机存储介质上存储或在网络中传输,接收端经过相应的解码操作还原出原始的视频画面。
现有的视频编码算法中大量地考虑了视频各部分画面之间的关联,因此编码后得到的数据块之间也具有较强的依赖性。其中,在编码中具有依赖性的一系列连续的视频画面构成一个图像组(Group of Pictures,GOP)。解码算法在解码某个数据块时,要求其前置数据块均已正确取得并解码,才能顺利还原出相应位置的视频画面,否则视频解码算法将自动使用一些替代信息对于缺失信息进行填补,导致最终还原得到的视频画面与原始视频画面不一致,有缺损部分。
在网络传输,尤其是无线网络中,由于网络传输的容量是不稳定的,同时网络传输存在一定的误码率,不可避免地会带来一些数据块的信息错误或丢失。由于数据丢失的最小单位为包,而一个包中包含了多个数据块的信息,不同的装包方式使得在正确传输的包比例相同时,可解码的数据块的比例产生巨大的差距。
按照顺序发送数据包使得最终的数据包所承载的数据块顺序是固定的,如果没有考虑依赖关系,会导致大量正确到达的包由于其他误码包中的前置数据块无法正确解码而被丢弃,进而大幅降低了网络有数据丢失的情况下视频画面的质量。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供基于依赖关系的视频流分组传输方法、系统、终端及介质,解决现有技术中在视频解码体系中由于视频分片的跨数据包依赖性,导致网络传输中数据包损坏和丢失情况的出现,进而对视频质量造成损害的问题。
为实现上述目标及其他相关目标,本申请提供一种基于依赖关系的视频流分组传输方法,包括:获取具有一或多个数据单元的目标视频码流以及各数据单元之间的依赖关系信息;基于所述依赖关系信息,将各数据单元分组并依次将各分组进行打包,以进行网络传输。
于本申请的一或多个实施例中,所述基于所述依赖关系信息,将各数据单元分组并依次将各分组进行打包,以进行网络传输的方式包括:基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输。
于本申请的一或多个实施例中,所述基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输的方式:基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中,并对各分组进行打包,以进行网络传输。
于本申请的一或多个实施例中,基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中,并对各分组进行打包,以进行网络传输的方式包括:步骤一:基于预设的起始规则,将获取的各数据单元作为未处理对象并将未处理对象中的一个或多个放入创建的暂存区,以作为待处理对象;步骤二:基于预设的优选选取规则,从暂存区将一或多个所述待处理对象放入创建的一分组中,并标记为已处理对象;步骤三:基于所述依赖紧密度判断规则,并根据所述依赖关系信息选择一或多个与所述已处理对象具有紧密关系的所述未处理对象作为待处理对象放入所述暂存区,以从暂存区将一或多个所述待处理对象放入创建的分组中,并标记为已处理对象;步骤四:判断所述暂存区是否还有待处理对象;若是,重复步骤二以及步骤三,直至所述暂存区为空;若否,进行步骤五;步骤五:判断所述目标视频码流中是否还存在未处理对象;若是,重复步骤一至步骤四,直至所述目标视频码流中的各数据单元均为已处理对象;若否,进行步骤六;步骤六:将各分组依次打包成数据包,以进行网络传输。
于本申请的一或多个实施例中,所述分组的创建方式包括:初始创建方式以及非初始创建方式;所述初始创建方式包括:在各数据单元进行分组之前,创建一初始分组;所述非初始创建方式包括:在从暂存区将一或多个所述待处理对象放入当前分组时,若所述当前分组的大小超过分组限制大小,则创建一新的分组,以将从暂存区将一或多个所述待处理对象放入新的分组中以作为当前分组;其中,所述当前分组包括:初始分组或最近一次创建的非初始分组。
于本申请的一或多个实施例中,所述数据单元包括:数据块或具有多个数据块的分片。
为实现上述目标及其他相关目标,本申请提供一种基于依赖关系的视频流分组传输系统,包括:获取模块,用于获取具有一或多个数据单元的目标视频码流以及各数据单元之间的依赖关系信息;分组传输模块,连接所述获取模块,用于基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输。
于本申请的一或多个实施例中,所述处理模块包括:所述基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输的方式包括:步骤一:基于预设的起始规则,将获取的各数据单元作为未处理对象并将未处理对象中的一个或多个放入创建的暂存区,以作为待处理对象;步骤二:基于预设的优选选取规则,从暂存区将一或多个所述待处理对象放入创建的一分组中,并标记为已处理对象;步骤三:基于所述依赖紧密度判断规则,并根据所述依赖关系信息选择一或多个与所述已处理对象具有紧密关系的所述未处理对象作为待处理对象放入所述暂存区,以从暂存区将一或多个所述待处理对象放入创建的分组中,并标记为已处理对象;步骤四:判断所述暂存区是否还有待处理对象;若是,重复步骤二以及步骤三,直至所述暂存区为空;若否,进行步骤五;步骤五:判断所述目标视频码流中是否还存在未处理对象;若是,重复步骤一至步骤四,直至所述目标视频码流中的各数据单元均为已处理对象;若否,进行步骤六;步骤六:将各分组依次打包成数据包,以进行网络传输。
为实现上述目标及其他相关目标,本申请提供一种基于依赖关系的视频流分组传输终端,包括:一或多个存储器及一或多个处理器;所述一或多个存储器,用于存储计算机程序;所述一或多个处理器,连接所述存储器,用于运行所述计算机程序以执行所述的基于依赖关系的视频流分组传输方法。
为实现上述目标及其他相关目标,本申请提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被一个或多个处理器运行时执行所述的基于依赖关系的视频流分组传输方法。
如上所述,本申请的基于依赖关系的视频流分组传输方法、系统、终端及介质,通过获取的各数据单元之间的依赖关系信息,将依赖关系紧密的数据单元安排在同一个分组中传输,减少网络传输丢包时的错误扩散,进而减少网络质量不佳时受影响的视频图像的范围大小;由于该方案仅需改变视频码流分组传输时的装包方式,不需要添加冗余,与传统的基于冗余的抗误码方法相比可以节省网络传输容量,并解决现有技术的问题。
附图说明
图1显示为本申请实施例中基于依赖关系的视频流分组传输方法的流程示意图。
图2显示为本申请实施例中基于依赖关系的视频流分组传输方法的流程示意图。
图3显示为本申请实施例中以计算机A向计算机B传输一段HEVC编码的视频码流的流程示意图。
图4显示为本申请实施例中基于依赖关系的视频流分组传输系统的结构示意图。
图5显示为本申请实施例中基于依赖关系的视频流分组传输终端的结构示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用系统,本说明书中的各项细节也可以基于不同观点与应用系统,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面以附图为参考,针对本申请的实施例进行详细说明,以便本申请所属技术领域的技术人员能够容易地实施。本申请可以以多种不同形态体现,并不限定于此处说明的实施例。
为了明确说明本申请,省略与说明无关的部件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。
在通篇说明书中,当说某部件与另一部件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。
当说某部件在另一部件“之上”时,这可以是直接在另一部件之上,但也可以在其之间伴随着其它部件。当对照地说某部件“直接”在另一部件“之上”时,其之间不伴随其它部件。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一接口及第二接口等描述。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A、B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
此处使用的专业术语只用于言及特定实施例,并非意在限定本申请。此处使用的单数形态,只要语句未明确表示出与之相反的意义,那么还包括复数形态。在说明书中使用的“包括”的意义是把特定特性、区域、整数、步骤、作业、要素及/或成份具体化,并非排除其它特性、区域、整数、步骤、作业、要素及/或成份的存在或附加。
表示“下”、“上”等相对空间的术语可以为了更容易地说明在附图中图示的一部件相对于另一部件的关系而使用。这种术语是指,不仅是在附图中所指的意义,还包括使用中的装置的其它意义或作业。例如,如果翻转附图中的装置,曾说明为在其它部件“下”的某部件则说明为在其它部件“上”。因此,所谓“下”的示例性术语,全部包括上与下方。装置可以旋转90°或其它角度,代表相对空间的术语也据此来解释。
虽然未不同地定义,但包括此处使用的技术术语及科学术语,所有术语均具有与本申请所属技术领域的技术人员一般理解的意义相同的意义。普通使用的字典中定义的术语追加解释为具有与相关技术文献和当前提示的内容相符的意义,只要未进行定义,不得过度解释为理想的或非常公式性的意义。
鉴于现有技术的缺失,通过获取的各数据单元之间的依赖关系信息,将依赖关系紧密的数据单元安排在同一个分组中传输,减少网络传输丢包时的错误扩散,进而减少网络质量不佳时受影响的视频图像的范围大小;由于该方案仅需改变视频码流分组传输时的装包方式,不需要添加冗余,与传统的基于冗余的抗误码方法相比可以节省网络传输容量,并解决现有技术的问题。
近年来,移动互联网中的视频内容越来越多。由于原始视频画面数据量极大,必须经过视频压缩编码才能在计算机存储介质上存储或在网络中传输,接收端经过相应的解码操作还原出原始的视频画面。现有的视频编码和传输方法一般包含以下步骤:
将待编码的视频画面划分成特定大小的像素块,例如4x4,8x8,16x16,32x32或其它大小;对得到的像素块,使用某种符合互联网视频编码标准的编码算法编码得到相应的编码数据块;其中,数据块在不同的编码算法中有不同的定义和称呼,例如H.264中称为宏块(Macroblock),HEVC中称为编码树单元(CTU)和编码单元(CU);对上一步得到的编码数据块,依照各帧之间的时间顺序和一帧内部的扫描顺序,组装成分片(Slice);对于上一步得到的分片进行进一步的封装,使其便于通过网络传输或者存储至计算机存储介质中;在常用的两种视频编码H.264和HEVC中,该步骤称为网络抽象层(Network Abstraction Layer,NAL),进一步封装后得到的数据单元称为网络抽象层单元(NAL Unit,NALU),除了封装有单个视频分片的NALU以外,还有一些NALU用于封装必要的元数据,包括视频参数集(VPS)、序列参数集(SPS)以及图像参数集(PPS)等。
本发明适用于一种视频编解码与传输系统框架,在该框架中,编码端首先使用基于预测编码的视频编码方法编码视频画面产生相应的视频码流,同时给出该码流中的编码数据块之间的依赖关系信息,然后可以使用本发明的方案对视频码流进行分组传输,解码端接收到相应的数据以后可以将其还原成原始码流并解码得到视频画面。
下面以附图为参考,针对本发明的实施例进行详细说明,以便本发明所述技术领域的技术人员能够容易地实施。本发明可以以多种不同形态体现,并不限于此处说明的实施例。
如图1所示,展示本发明实施例中的基于依赖关系的视频流分组传输方法的流程示意图。
所述方法包括:
S11:获取具有一或多个数据单元的目标视频码流以及各数据单元之间的依赖关系信息。
可选的,从编码端获取基于视频画面产生相应的编码的目标视频码流,同时给出该码流中的各数据单元之间的依赖关系信息。
可选的,所述依赖关系信息以依赖关系图形式表示;优选的,所述依赖关系图是通过检索编码器日志或者直接解析视频码流中各个分片内部包含的所有数据块的预测模式和运动矢量信息来构建的,一般采用有向无环图表示。
可选的,所述数据单元包括:数据块或具有多个数据块的分片;具体的,在数据单元为数据块的情况下,所述数据块之间可能依赖关系;在数据单元为分片的情况下,分片中一个块可能依赖某个分片中的一个块,某个分片中的多个相邻的块,或某几个相邻分片中的多个相邻的块,这使得它们所属的分片之间也具有相应的依赖关系。一个分片中包含若干个作为最小编码单位的数据块,这些数据块属于同一帧且在帧内位置连续。
可选的,所述依赖关系信息包括:对应各数据单元的所有依赖项。具体的,所述依赖项为除当前数据单元以外的与当前数据单元具有依赖关系的其他数据单元。
可选的,获取具有一或多个数据单元的目标视频码流以及各数据单元之间的依赖关系信息,并将各数据单元标记为“未处理”,以作为未处理对象进行接下来的分组流程。
步骤S12:基于所述依赖关系信息,将各数据单元分组并依次将各分组进行打包,以进行网络传输。
可选的,所述基于所述依赖关系信息,将各数据单元分组并依次将各分组进行打包,以进行网络传输的方式包括:基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输。
可选的,所述基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输的方式:基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中,并对各分组进行打包,以进行网络传输。
具体的,基于依赖紧密度选择规则,依次将各数据单元放入创建的暂存区中;再基于依赖紧密度选择规则以及依赖关系信息,从暂存区中将具有依赖紧密度的数据单元移动至相同分组中;并对各分组进行打包,以进行网络传输。需要注意的是,所述分组创建为一或多个;可以根据数据单元的数量以及大小创建一定数量的分组,也可以根据具有依赖关系的数据单元数量创建相应数量的分组,在本申请中不作限定。
可选的,如图2所示,基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中,并对各分组进行打包,以进行网络传输的方式包括:
步骤一:依次遍历各所述数据单元,基于预设的起始规则,将作为未处理对象的各数据单元中的一个或多个放入创建的暂存区,以作为待处理对象;其中,所述暂存区在进行该步骤之前为空,该步骤目的时基于所述起始规则选择需首先处理的待处理对象;例如,所述起始规则为在未处理对象中选取没有依赖项或者依赖项均已处理的数据单元加入暂存区。
步骤二:基于预设的优选选取规则,从暂存区将一或多个所述待处理对象放入创建的一分组中,并标记为已处理对象;具体的,基于预设的优选选取规则,从暂存区取出一或多个所述待处理对象作为当前单元放入创建的一分组中,并将其标记为已处理对象;例如,所述优选选取规则为选取最先加入暂存区的数据单元,则从暂存区取出最先加入的所述待处理对象作为当前单元放入创建的一分组中。需要注意的是,所述分组为初次构建的分组或为非初次构建的分组,在此不作赘述。该步骤的目的是选取优先加入分组的待处理对象。
步骤三:基于所述依赖紧密度判断规则,并根据所述依赖关系信息选择一或多个与所述已处理对象具有紧密关系的所述未处理对象作为待处理对象放入所述暂存区,以从暂存区将一或多个所述待处理对象放入创建的分组中,并标记为已处理对象,该步骤的目的是选择与已处理对象(包括当前单元)依赖关系紧密的未处理对象作为后续即将处理的对象并置入暂存区,以实现将具有依赖关系的数据单元放到一个分组内;具体的,通过所述依赖关系信息检查是否还有与已处理对象具有依赖关系的其它未处理对象,并根据依赖紧密度判断规则,将与已处理对象依赖关系紧密的一个或多个未处理数据单元置入暂存区中,以从暂存区将一或多个所述待处理对象放入包含与其具有依赖关系的已处理对象所在的分组中,并标记为已处理对象;优选的,通过依赖关系图检查是否还有与当前单元具有依赖关系的其它未处理的数据块,并根据用户指定的依赖紧密度判断规则,将与当前单元依赖关系紧密的一个或多个未处理数据单元置入暂存区中,以从暂存区将一或多个所述待处理对象放入当前单元所在的分组中,并将其标记为已处理对象。举例来说,所述依赖紧密度判断规则为结合由依赖关系中各已处理对象的依赖项,利用位于各已处理对象分组的数量来衡量依赖关系紧密程度,并选取该衡量结果最大的一个块或并列最大的多个块置入暂存区。
步骤四:判断所述暂存区是否还有待处理对象;若是,重复步骤二以及步骤三,直至所述暂存区为空;若否,进行步骤五;
步骤五:判断所述目标视频码流中是否还存在未处理对象;若是,重复步骤一至步骤四,直至所述目标视频码流中的各数据单元均为已处理对象;若否,进行步骤六;
步骤六:将各分组依次打包成数据包,以进行网络传输。具体的,按照各分组情况将相应的分组打包为数据包,通过网络协议传输到目标设备上。
可选的,所述分组的创建方式包括:初始创建方式以及非初始创建方式;所述初始创建方式包括:在各数据单元进行分组之前,创建一初始分组;所述非初始创建方式包括:在从暂存区将一或多个所述待处理对象放入当前分组时,若所述当前分组的大小超过分组限制大小,则创建一新的分组,以将从暂存区将一或多个所述待处理对象放入新的分组中以作为当前分组;其中,所述当前分组包括:初始分组。
优选的,所述初始分组与所述暂存区同时创建;具体的,在对各数据单元进行分组之前,创建一初始为空的暂存区;同时创建一个空的分组,设为初始分组。
可选的,若当前分组加入当前块后大小超过网络传输允许的最大数据包大小,则创建一个新的分组并将其设为当前分组。举例来说,若当前分组加入当前分片所对应的NALU(以后大小超过1472字节,则创建一个新的分组并将其设置为当前分组。
为了更好的描述所述基于依赖关系的视频流分组传输方法,提供一具体实施例;
实施例1:以计算机A向计算机B传输一段HEVC编码的视频码流的实施环境下,应用所述基于依赖关系的视频流分组传输方法的具体实施例;图3展示为在该实施环境下的视频流分组传输方法流程示意图。
待传输的视频码流为一个修改过的HM HEVC视频编码器编码一段测试视频产生的HEVC视频码流,由一系列NALU构成;其中,每个NALU封装有一个分片(Slice)或视频元数据(其中包含视频元数据的NALU仅出现在开头)。分片为采用细粒度的分片方式,每个分片(Slice)包含的编码树单元(CTU)较少,大小不超过255字节(可用1字节的无符号整数表示其大小)同时,在编码时导出分片之间的依赖关系并构建相应的依赖关系图。视频码流和依赖关系图已经暂存至磁盘文件中,且按照图像组分别存储,且各个图像组之间没有依赖关系。
计算机A上运行发送端程序,向计算机B传输视频码流。该程序依次传输各个待传输的图像组。每次处理和传输一个图像组,包括以下步骤:
计算机A上运行发送端程序,向计算机B传输视频码流。该程序依次传输各个待传输的图像组。每次处理和传输一个图像组,包括以下步骤:
第1步:从磁盘文件中读取待传输的一个图像组的视频码流和依赖关系图,其中,封装了视频元数据的NALU不加修改直接传输,各个视频分片标记为“未处理”;
第2步:创建暂存区和第一个分组,初始状态下两者均为空;
第3步:依次检查码流中的各个分片,选择第一个未处理且不依赖其它的未处理分片的分片(对应于方法中的“起始规则”),将其置入暂存区;
第4步:选择暂存区中最先进入的分片(对应于方法中的“优先选取规则”),将其移出暂存区,并设为当前分片;
第5步:检查当前分组,若当前分组加入当前分片所对应的NALU(需包括下一步中提到的元数据的大小)以后大小超过1472字节(通常的互联网环境中UDP数据包的最大大小),则创建一个新的分组并将其设置为当前分组;
第6步:将当前分片所对应的NALU上附加元数据,如下表所示,然后将其加入当前分组,当前分片标记为“已处理”;
第7步:通过依赖关系图,检查与当前分片由依赖关系的其它分片,并选取其中自身未处理且其已处理依赖项中已加入当前分组数量最多(可并列)的一个或多个分片(对应于方法中的“依赖紧密度判断规则”),将其置入暂存区;
第8步:若暂存区中还有分片,重复4~7步,直至暂存区为空;
第9步:若视频码流中还有未处理分片,重复3~8步,直至所有分片均已处理;
第10步:按照分组情况将相应的分组打包为UDP数据包,通过IP网络使用UDP协议传输到计算机B。
计算机B运行接收端程序,接收数据包并从中还原视频码流,存储到磁盘文件中,以后可以使用视频播放器观看。
与上述实施例原理相似的是,本发明提供一种基于依赖关系的视频流分组传输系统。
以下结合附图提供具体实施例:
如图4展示本发明实施例中的一种基于依赖关系的视频流分组传输系统的结构示意图。
所述系统包括:
获取模块41,用于获取具有一或多个数据单元的目标视频码流以及各数据单元之间的依赖关系信息
分组传输模块42,连接所述获取模块41,用于基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输。
可选的,所述获取模块41用于从编码端获取基于视频画面产生相应的编码的目标视频码流,同时给出该码流中的各数据单元之间的依赖关系信息。
可选的,所述获取模块41用于获取具有一或多个数据单元的目标视频码流以及各数据单元之间的依赖关系信息,并将各数据单元标记为“未处理”,以作为未处理对象进行接下来的分组流程。
可选的,所述分组传输模块42用于基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中,并对各分组进行打包,以进行网络传输。
可选的,所述分组传输模块42基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输的方式包括:
步骤一:基于预设的起始规则,将获取的各数据单元作为未处理对象并将未处理对象中的一个或多个放入创建的暂存区,以作为待处理对象;
步骤二:基于预设的优选选取规则,从暂存区将一或多个所述待处理对象放入创建的一分组中,并标记为已处理对象;
步骤三:基于所述依赖紧密度判断规则,并根据所述依赖关系信息选择一或多个与所述已处理对象具有紧密关系的所述未处理对象作为待处理对象放入所述暂存区,以从暂存区将一或多个所述待处理对象放入创建的分组中,并标记为已处理对象;
步骤四:判断所述暂存区是否还有待处理对象;若是,重复步骤二以及步骤三,直至所述暂存区为空;若否,进行步骤五;
步骤五:判断所述目标视频码流中是否还存在未处理对象;若是,重复步骤一至步骤四,直至所述目标视频码流中的各数据单元均为已处理对象;若否,进行步骤六;
步骤六:将各分组依次打包成数据包,以进行网络传输。
可选的,所述分组的创建方式包括:初始创建方式以及非初始创建方式;所述初始创建方式包括:在各数据单元进行分组之前,创建一初始分组;所述非初始创建方式包括:在从暂存区将一或多个所述待处理对象放入当前分组时,若所述当前分组的大小超过分组限制大小,则创建一新的分组,以将从暂存区将一或多个所述待处理对象放入新的分组中以作为当前分组;其中,所述当前分组包括:初始分组。优选的,所述初始分组与所述暂存区同时创建;具体的,在对各数据单元进行分组之前,创建一初始为空的暂存区;同时创建一个空的分组,设为初始分组。
可选的,若当前分组加入当前块后大小超过网络传输允许的最大数据包大小,则创建一个新的分组并将其设为当前分组。
需说明的是,应理解图4系统实施例中的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现;此外这些模块全部或部分可以集成在一起,也可以独立实现。
例如,以上这些模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(Central Processing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
因此,由于该基于依赖关系的视频流分组传输系统的实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
在一或多个实施例中,所述基于依赖关系的视频流分组传输系统可以应用在不同场景中的不同终端中实现。
如图5展示本发明实施例中的基于依赖关系的视频流分组传输终端50的结构示意图。
所述基于基于依赖关系的视频流分组传输终端50包括:存储器51及处理器52所述存储器51用于存储计算机程序;所述处理器52运行计算机程序实现如图1所述的基于基于依赖关系的视频流分组传输方法。
可选的,所述存储器51的数量均可以是一或多个,所述处理器52的数量均可以是一或多个,而图5中均以一个为例。
可选的,所述基于基于依赖关系的视频流分组传输终端50中的处理器52会按照如图1所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器51中,并由处理器52来运行存储在第一存储器51中的应用程序,从而实现如图3所述基于基于依赖关系的视频流分组传输方法中的各种功能。
可选的,所述存储器51,可能包括但不限于高速随机存取存储器、非易失性存储器。例如一个或多个磁盘存储设备、闪存设备或其他非易失性固态存储设备;所述处理器52,可能包括但不限于中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital SignalProcessing,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可选的,所述处理器52可以是通用处理器,包括中央处理器(Central ProcessingUnit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
本发明还提供计算机可读存储介质,存储有计算机程序,所述计算机程序运行时实现如图1所示的基于基于依赖关系的视频流分组传输方法。所述计算机可读存储介质可包括,但不限于,软盘、光盘、CD-ROM(只读光盘存储器)、磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储机器可执行指令的其他类型的介质/机器可读介质。所述计算机可读存储介质可以是未接入计算机设备的产品,也可以是已接入计算机设备使用的部件。
综上所述,本申请的基于依赖关系的视频流分组传输方法、系统、终端及介质,通过获取的各数据单元之间的依赖关系信息,将依赖关系紧密的数据单元安排在同一个分组中传输,减少网络传输丢包时的错误扩散,进而减少网络质量不佳时受影响的视频图像的范围大小;由于该方案仅需改变视频码流分组传输时的装包方式,不需要添加冗余,与传统的基于冗余的抗误码方法相比可以节省网络传输容量,并解决现有技术的问题。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。
Claims (8)
1.一种基于依赖关系的视频流分组传输方法,其特征在于,包括:
获取具有一或多个数据单元的目标视频码流以及各数据单元之间的以依赖关系图形式表示的依赖关系信息;其中,所述依赖关系图由检索编码器日志或者直接解析视频码流中各个分片内部包含的所有数据块的帧内与帧间预测模式和运动矢量信息构建;
基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将标记为未处理对象的各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中并标记为已处理对象,并对各分组进行打包,以进行网络传输;
其中,所述依赖紧密度选择规则包括:通过所述依赖关系信息,检查与各已处理对象有依赖关系的依赖项,并分别选取对应各已处理对象的未处理且其对应的已处理的依赖项中已加入对应的已处理对象所在分组数量最多的一个或多个未处理对象,将其置入暂存区。
2.根据权利要求1中所述的基于依赖关系的视频流分组传输方法,其特征在于,基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中,并对各分组进行打包,以进行网络传输的方式包括:
步骤一:基于预设的起始规则,将获取的各数据单元作为未处理对象并将未处理对象中的一个或多个放入创建的暂存区,以作为待处理对象;
步骤二:基于预设的优选选取规则,从暂存区将一或多个所述待处理对象放入创建的一分组中,并标记为已处理对象;
步骤三:基于所述依赖紧密度判断规则,并根据所述依赖关系信息选择一或多个与所述已处理对象具有紧密关系的所述未处理对象作为待处理对象放入所述暂存区,以从暂存区将一或多个所述待处理对象放入创建的分组中,并标记为已处理对象;
步骤四:判断所述暂存区是否还有待处理对象;若是,重复步骤二以及步骤三,直至所述暂存区为空;若否,进行步骤五;
步骤五:判断所述目标视频码流中是否还存在未处理对象;若是,重复步骤一至步骤四,直至所述目标视频码流中的各数据单元均为已处理对象;若否,进行步骤六;
步骤六:将各分组依次打包成数据包,以进行网络传输。
3.根据权利要求1或2所述的基于依赖关系的视频流分组传输方法,其特征在于,所述分组的创建方式包括:初始创建方式以及非初始创建方式;
所述初始创建方式包括:在各数据单元进行分组之前,创建一初始分组;
所述非初始创建方式包括:在从暂存区将一或多个待处理对象放入当前分组时,若所述当前分组的大小超过分组限制大小,则创建一新的分组,以将从暂存区将一或多个所述待处理对象放入新的分组中以作为当前分组;其中,所述当前分组包括:初始分组或最近一次创建的非初始分组。
4.根据权利要求1中所述的基于依赖关系的视频流分组传输方法,其特征在于,所述数据单元包括:数据块或具有多个数据块的分片。
5.一种基于依赖关系的视频流分组传输系统,其特征在于,包括:
获取模块,用于获取具有一或多个数据单元的目标视频码流以及各数据单元之间的以依赖关系图形式表示的依赖关系信息;其中,所述依赖关系图由检索编码器日志或者直接解析视频码流中各个分片内部包含的所有数据块的帧内与帧间预测模式和运动矢量信息构建;
分组传输模块,连接所述获取模块,用于基于所述依赖关系信息以及预设的依赖紧密度选择规则,首先依次将标记为未处理对象的各数据单元放入创建的暂存区,再从暂存区中将具有依赖紧密度的数据单元移动至相同分组中并标记为已处理对象,并对各分组进行打包,以进行网络传输;
其中,所述依赖紧密度选择规则包括:通过所述依赖关系信息,检查与各已处理对象有依赖关系的依赖项,并分别选取对应各已处理对象的未处理且其对应的已处理的依赖项中已加入对应的已处理对象所在分组数量最多的一个或多个未处理对象,将其置入暂存区。
6.根据权利要求5中所述的基于依赖关系的视频流分组传输系统,其特征在于,所述基于所述依赖关系信息以及预设的依赖紧密度选择规则,依次将各数据单元放入创建的暂存区以及一或多个分组,并依次将各分组进行打包,以进行网络传输的方式包括:
步骤一:基于预设的起始规则,将获取的各数据单元作为未处理对象并将未处理对象中的一个或多个放入创建的暂存区,以作为待处理对象;
步骤二:基于预设的优选选取规则,从暂存区将一或多个所述待处理对象放入创建的一分组中,并标记为已处理对象;
步骤三:基于所述依赖紧密度判断规则,并根据所述依赖关系信息选择一或多个与所述已处理对象具有紧密关系的所述未处理对象作为待处理对象放入所述暂存区,以从暂存区将一或多个所述待处理对象放入创建的分组中,并标记为已处理对象;
步骤四:判断所述暂存区是否还有待处理对象;若是,重复步骤二以及步骤三,直至所述暂存区为空;若否,进行步骤五;
步骤五:判断所述目标视频码流中是否还存在未处理对象;若是,重复步骤一至步骤四,直至所述目标视频码流中的各数据单元均为已处理对象;若否,进行步骤六;
步骤六:将各分组依次打包成数据包,以进行网络传输。
7.一种基于依赖关系的视频流分组传输终端,其特征在于,包括:一或多个存储器及一或多个处理器;
所述一或多个存储器,用于存储计算机程序;
所述一或多个处理器,连接所述存储器,用于运行所述计算机程序以执行如权利要求1至4中任一项所述的方法。
8.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被一个或多个处理器运行时执行如权利要求1至4中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622428.1A CN112822514B (zh) | 2020-12-30 | 2020-12-30 | 基于依赖关系的视频流分组传输方法、系统、终端及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011622428.1A CN112822514B (zh) | 2020-12-30 | 2020-12-30 | 基于依赖关系的视频流分组传输方法、系统、终端及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112822514A CN112822514A (zh) | 2021-05-18 |
CN112822514B true CN112822514B (zh) | 2022-06-28 |
Family
ID=75854839
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011622428.1A Active CN112822514B (zh) | 2020-12-30 | 2020-12-30 | 基于依赖关系的视频流分组传输方法、系统、终端及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112822514B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009577A2 (en) * | 2001-07-18 | 2003-01-30 | Polycom Israel Ltd. | A system and method for improving the quality of video communication over a packet-based network |
CN104703027A (zh) * | 2015-03-17 | 2015-06-10 | 华为技术有限公司 | 视频帧的解码方法和装置 |
WO2017054630A1 (zh) * | 2015-09-29 | 2017-04-06 | 华为技术有限公司 | 图像预测的方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6680976B1 (en) * | 1997-07-28 | 2004-01-20 | The Board Of Trustees Of The University Of Illinois | Robust, reliable compression and packetization scheme for transmitting video |
BRPI0921720A2 (pt) * | 2008-10-30 | 2016-01-05 | Nokia Corp | método e aparelho para entralaçamento de bloco de dados |
CN108282655B (zh) * | 2012-09-26 | 2021-09-10 | 威勒斯媒体国际有限公司 | 图像编码和/或解码装置及方法 |
US10034026B2 (en) * | 2016-04-22 | 2018-07-24 | Akila Subramaniam | Device for and method of enabling the processing of a video stream |
CN108769684B (zh) * | 2018-06-06 | 2022-03-22 | 郑州云海信息技术有限公司 | 基于WebP图像压缩算法的图像处理方法以及装置 |
US11373406B2 (en) * | 2019-06-28 | 2022-06-28 | Intel Corporation | Transmission, caching, and searching of video streams based on frame dependencies and content |
CN110908697B (zh) * | 2019-11-28 | 2023-06-16 | 米哈游科技(上海)有限公司 | 一种资源打包方法、装置、服务器及存储介质 |
CN111949312B (zh) * | 2020-08-14 | 2024-02-09 | 曙光信息产业(北京)有限公司 | 数据模块的打包方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-30 CN CN202011622428.1A patent/CN112822514B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003009577A2 (en) * | 2001-07-18 | 2003-01-30 | Polycom Israel Ltd. | A system and method for improving the quality of video communication over a packet-based network |
CN104703027A (zh) * | 2015-03-17 | 2015-06-10 | 华为技术有限公司 | 视频帧的解码方法和装置 |
WO2017054630A1 (zh) * | 2015-09-29 | 2017-04-06 | 华为技术有限公司 | 图像预测的方法及装置 |
Non-Patent Citations (2)
Title |
---|
Inter-dependent rate-distortion modeling for video coding and its application to rate control;Yuan Li 等;《IEEE》;20140908;全文 * |
无线传输视频适配技术研究;冯妮娜;《中国博士学位论文全文数据库》;20130331;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112822514A (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11252422B2 (en) | Network device and error handling | |
US11012489B2 (en) | Picture file processing method, picture file processing device, and storage medium | |
CN109547786B (zh) | 视频编码、以及视频解码的方法、装置 | |
TW202114421A (zh) | 視訊寫碼之存取單元中之適應參數集合 | |
RU2576590C2 (ru) | Вывод позиции в порядке сканирования последнего значимого коэффициента преобразования при кодировании видеосигнала | |
US9774927B2 (en) | Multi-layer video stream decoding | |
US20200413042A1 (en) | Multi-Layer Video Stream Encoding and Decoding | |
CN112822549B (zh) | 基于分片重组的视频流解码方法、系统、终端及介质 | |
CN112822516B (zh) | 基于数据块重组的图像组传输方法、装置、设备和系统 | |
US20110222603A1 (en) | Method and System Making It Possible to Protect A Compressed Video Stream Against Errors Arising During a Transmission | |
TW202112135A (zh) | 用於視訊寫碼之色度內預測單元 | |
WO2019137171A1 (zh) | 视频码流的解码、生成方法及装置、存储介质、电子装置 | |
US20190356911A1 (en) | Region-based processing of predicted pixels | |
CN112088531A (zh) | 视频编码和解码中改进的片地址信令 | |
CN112822488B (zh) | 基于块重组的视频编解码系统、方法、装置、终端及介质 | |
CN112822514B (zh) | 基于依赖关系的视频流分组传输方法、系统、终端及介质 | |
CN111935500A (zh) | 视频解码方法、装置及电子设备 | |
CN112788336B (zh) | 数据元素的排序还原方法、系统、终端及标记方法 | |
CN114173153A (zh) | 视频处理方法、装置和电子设备 | |
CN112788344B (zh) | 基于编码单元重组的视频解码方法、装置、系统、介质及终端 | |
CN116325741A (zh) | 点云编码方法、点云解码方法及相关装置 | |
WO2020214899A1 (en) | Supplemental enhancement information message for embedded image | |
CN112804562B (zh) | 基于片重组的视频编码方法、装置、终端及介质 | |
CN111212288A (zh) | 视频数据的编解码方法、装置、计算机设备和存储介质 | |
WO2023240662A1 (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |