CN112822549B - 基于分片重组的视频流解码方法、系统、终端及介质 - Google Patents

基于分片重组的视频流解码方法、系统、终端及介质 Download PDF

Info

Publication number
CN112822549B
CN112822549B CN202011624861.9A CN202011624861A CN112822549B CN 112822549 B CN112822549 B CN 112822549B CN 202011624861 A CN202011624861 A CN 202011624861A CN 112822549 B CN112822549 B CN 112822549B
Authority
CN
China
Prior art keywords
fragments
data packet
image group
buffer area
decoding
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
Application number
CN202011624861.9A
Other languages
English (en)
Other versions
CN112822549A (zh
Inventor
刘云淮
黄永贵
苏玥琦
谷晟
冯哲
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Peking University
Original Assignee
Peking University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Peking University filed Critical Peking University
Priority to CN202011624861.9A priority Critical patent/CN112822549B/zh
Publication of CN112822549A publication Critical patent/CN112822549A/zh
Application granted granted Critical
Publication of CN112822549B publication Critical patent/CN112822549B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明的基于分片重组的视频流解码方法、系统、终端及介质,包括:接收由来自目标视频流中同一图像组的一或多个分片重组而成的数据包;其中,所述目标视频流包括:一或多个图像组;判断当前数据包中的分片所对应的图像组是否为首次接收;若不是,依次将当前数据包的分片放入缓冲区;若是,对所述缓冲区中的所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区。本发明不仅减少视频分片的跨数据包依赖性,还减少网络传输中数据包损坏和丢失对视频质量的损害,还可以直接利用现有的视频解码软件进行解码,运用该方法改进现有的视频编码和传输系统,具有较大的便利性并将解决现有技术的问题。

Description

基于分片重组的视频流解码方法、系统、终端及介质
技术领域
本申请涉及数字视频编解码和传输技术领域,尤其涉及基于分片重组的视频流解码方法、系统、终端及介质。
背景技术
近年来,移动互联网中的视频内容越来越多。由于原始视频画面数据量极大,必须经过视频压缩编码才能在计算机存储介质上存储或在网络中传输,接收端经过相应的解码操作还原出原始的视频画面。
目前的视频解码体系仅支持按照帧的时间顺序和内部空间顺序依次发送的打包传递方式,这要求编码器产生较大(包含较多数据块)的分片,并直接将其封装成数据包依次传输。
现有的视频编码算法中大量地考虑了视频各部分画面之间的关联,因此编码后得到的分片之间也具有较强的依赖性。其中,在编码中具有依赖性的一系列连续的视频帧构成一个图像组(Group of Pictures,GOP)。每个视频帧由一个或多个分片构成,每个分片中包含若干个数据块。解码算法在解码某个数据块时,要求其前置数据块均已正确取得并解码,即要求其所属分片必须正确取得,才能顺利还原出相应位置的视频画面,否则视频解码算法将自动使用一些替代信息对于缺失信息进行填补,导致最终还原得到的视频画面与原始视频画面不一致,有缺损部分。根据运动矢量所指向的区域的不同,一个块可能依赖某个分片中的一个块,某个分片中的多个相邻的块,或某几个相邻分片中的多个相邻的块;这使得它们所属的分片之间也具有相应的依赖关系。
在网络传输,尤其是无线网络中,由于网络传输的容量是不稳定的,同时网络传输存在一定的误码率,不可避免地会带来一些数据块的信息错误或丢失。由于数据丢失的最小单位为包,而一个包中包含了多个数据块的信息,不同的装包方式使得在正确传输的包比例相同时,可解码的数据块的比例产生巨大的差距。
按照顺序发送数据包使得最终的数据包所承载的数据块顺序是固定的,如果没有考虑依赖关系,会导致大量正确到达的包由于其他误码包中的前置数据块无法正确解码而被丢弃,进而大幅降低了网络有数据丢失的情况下视频画面的质量。
发明内容
鉴于以上所述现有技术的缺点,本申请的目的在于提供基于分片重组的视频流解码方法、系统、终端及介质,解决现有技术中在视频解码体系中由于视频分片的跨数据包依赖性,增加网络传输中数据包损坏和丢失情况的出现,进而对视频质量造成损害的问题。
为实现上述目标及其他相关目标,本申请提供一种基于分片重组的视频流解码方法,包括:接收由来自目标视频流中同一图像组的一或多个分片重组而成的数据包;其中,所述目标视频流包括:一或多个图像组;判断当前数据包中的分片所对应的图像组是否为首次接收;若不是,依次将当前数据包的分片放入缓冲区;若是,对所述缓冲区中的所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区。
于本申请的一或多个实施例中,所述数据包包括:标识有所在图像组的位置信息以及分隔标志的一或多个分片。
于本申请的一或多个实施例中,每个分片包括:一或多个具有分隔标志的数据块;其中,各数据块来自同一帧和/或在同一帧内连续。
于本申请的一或多个实施例中,所述依次将当前数据包的分片放入缓冲区的方式包括:按顺序扫描当前数据包中的各分片,并通过各分片在所述图像组的位置信息依次放入所述缓冲区的对应位置,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
于本申请的一或多个实施例中,所述对当前数据包所对应的图像组中的各分片进行解码的方式包括:对所述缓冲区中所对应的图像组的所有分片进行排序以及解码,并同时将所述缓冲区清空,以供下一图像组所对应的数据包中各分片的依次放入清空后的缓冲区。
于本申请的一或多个实施例中,所述对所述缓冲区中所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区的方式包括:对所述缓冲区中所属前一图像组的各分片进行排序,并基于解码算法进行解码,并同时将所述缓冲区中的分片清空;将当前数据包中的各分片依次放入清空后的缓冲区,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
为实现上述目标及其他相关目标,本申请提供一种基于分片重组的视频流解码系统,包括:接收模块,用于接收由来自目标视频流中同一图像组的一或多个分片重组而成的数据包;其中,所述目标视频流包括:一或多个图像组,所述数据包包括:标识有所在图像组的位置信息以及分隔标志的一或多个分片;判断模块,连接所述接收模块,用于判断当前数据包中的分片所对应的图像组是否为首次接收;处理模块,连接所述判断模块,用于当当前数据包中的分片所对应的图像组判断为首次接收时,依次将当前数据包的分片放入缓冲区以及当当前数据包中的分片所对应的图像组判断为非首次接收时,对所述缓冲区中的所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区。
于本申请的一或多个实施例中,所述处理模块包括:首次接收图像组单元,用于当当前数据包中的分片所对应的图像组判断为首次接收时,按顺序扫描当前数据包中的各分片,并通过各分片在所述图像组的位置信息依次放入所述缓冲区的对应位置,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对所述缓冲区中所对应的图像组的所有分片进行排序以及解码,并同时将所述缓冲区清空,以供下一图像组所对应的数据包中各分片的依次放入清空后的缓冲区;非首次接收图像组单元,用于当当前数据包中的分片所对应的图像组判断为非首次接收时,对所述缓冲区中所属前一图像组的各分片进行排序,并基于解码算法进行解码,并同时将所述缓冲区中的分片清空;将当前数据包中的各分片依次放入清空后的缓冲区,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
为实现上述目标及其他相关目标,本申请提供一种基于分片重组的视频流解码终端,包括:一或多个存储器及一或多个处理器;所述一或多个存储器,用于存储计算机程序;所述一或多个处理器,连接所述存储器,用于运行所述计算机程序以执行所述的基于分片重组的视频流解码方法。
为实现上述目标及其他相关目标,本申请提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被一个或多个处理器运行时执行所述的基于分片重组的视频流解码方法。
如上所述,本申请的基于分片重组的视频流解码方法、系统、终端及介质,在接收满足特定条件的分片重组后的视频流数据包时,以图像组为单位进行存储和解码,并通过与编码端相对应的符合互联网视频编码标准的视频解码器对视频做进一步处理。本申请的方案通过对接收的由分片重组的数据包进行以图像组为单位的解码,不仅减少视频分片的跨数据包依赖性,还减少网络传输中数据包损坏和丢失对视频质量的损害;该方案不要求对视频解码器进行任何修改,可以直接利用现有的视频解码软件进行解码,运用该方法改进现有的视频编码和传输系统,具有较大的便利性并将解决现有技术的问题。
附图说明
图1显示为本申请实施例中基于分片重组的视频流解码方法的流程示意图。
图2显示为本申请实施例中基于分片重组的视频流解码方法的流程示意图。
图3显示为本申请实施例中一种视频解码系统实施环境下的数据传输流程图。
图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:接收由来自目标视频流中同一图像组的一或多个分片重组而成的数据包。
可选的,通过网络接收一个属于目标视频流的数据包并进行储存;其中,所述数据包由同一图像组的一或多个分片重组而成。所述目标视频流包括:在所述目标视频流中的由一系列连续的视频帧构成的一或多个图像组。
将在编码端为了便于通过网络传输或者存储至计算机存储介质的所采用封装的网络抽象层的额外数据剥去,然后将剩余数据保存并传递至下一步骤。
可选的,所述目标视频流为从视频源获取编码后的一个图像组的视频码流,且具有分片结构,且最大分片大小不大于网络数据包的最大允许大小乘以一个大于0但不大于1的缩放系数,可以使得分片大小较小。
需要注意的是,所述目标视频流不仅为符合互联网视频编码标准(例如H.264或HEVC)的视频编码器实时输出的视频码流,还可以为由编码器预先生成并存储于计算机存储介质中的视频码流,或者第三方通过网络提供的由上述方法产生的视频码流。
可选的,所述数据包包括:标识有所在图像组的位置信息以及分隔标志的一或多个分片;具体的,一个数据包内可以同时包含一或多个分片,且片与片之间也应当存在明确分隔标志。同时,每一分片应当明确标识出其在整个图像组内的位置信息,包括但不限于其所在帧的帧号以及其在帧内所占的分片号。
需要注意的是,同一个数据包内的分片可以来自不同帧,但必须属于同一图像组。
可选的,每个分片包括:一或多个具有分隔标志的数据块;其中,各数据块来自同一帧和/或在同一帧内连续。数据块之间有明确的分隔标志,可以使解码端可以正确的分离这些数据块。
可选的,所述数据包中各分片的重组方式包括;读取并解析目标视频流的各个分片中的的预测模式和运动矢量信息,构建分片粒度的依赖关系图。根据该依赖关系图,然后以包含关键帧(I帧)数据的分片为起点,对依赖关系图进行深度优先遍历,按照遍历顺序划分区域,将遍历时相邻访问的分片划入同一区域内;按照依赖关系图的划分结果对分片进行分组;向相应的包含分片数据上附加元数据;将上述分组好的分片打包成数据包根据分组情况,同一个分组的装入同一包中。
S12:判断当前数据包中的分片所对应的图像组是否为首次接收。
可选的,判断当前数据包中的分片所对应的图像组是否为之前接收过并储存的数据包中分片所对应的图像组。
可选的,在接收动作为首次的情况下,即之前从未接收过属于该目标数据流的数据包时,直接将接收由来自目标视频流中同一图像组的一或多个分片重组而成的数据包判断为首次接收。
可选的,在接收动作为非首次的情况下,即之前从接收过属于该目标数据流的数据包时,将当前数据包中的分片所对应的图像组与之前接收的所属该目标视频流的图像组进行对比;
若对比一致,则说明当前数据包中的分片所对应的图像组的数据包还未接收完毕,需要继续接收,因此判断为非首次接收;
若对比不一致,则说明当前数据包中的分片所对应的图像组的数据包还已接收完毕,该图像组的分片数据需要进行解码,并为下一图像组的储存进行准备,判断为首次接收;
需要注意的是,所述数据包按图像组的排列顺序依次被接收。
S13:若不是,依次将当前数据包的分片放入缓冲区。
可选的,若判断为非首次接收,按顺序扫描当前数据包中的各分片,并通过各分片在所述图像组的位置信息依次放入所述缓冲区的对应位置,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
可选的,所述对当前数据包所对应的图像组中的各分片进行解码的方式包括:对所述缓冲区中所对应的图像组的所有分片进行排序以及解码,并同时将所述缓冲区清空,以供下一图像组所对应的数据包中各分片的依次放入清空后的缓冲区。
优选的,对当前图像组的所有分片进行排序,使其还原为标准顺序,并能被某种符合互联网视频编码标准的解码算法识别并解码,将数据流传入视频解码器进行解码,还原为视频流,同时清空缓冲区,为下一个图像组的存储做准备。
可选的,每一个新接收的数据包中的各分片将被直接放置入当前缓冲区的最末尾。
可选的,每次处理一个图像组的数据包,提取数据包中的NALU,对于包含分片数据的NALU,根据附加的元数据排序还原原始顺序,同时去除添加的元数据,还原原始的视频码流格式。
S14:若是,对所述缓冲区中的所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区。
可选的,若判断为首次接收,对所述缓冲区中所属前一图像组的各分片进行排序,并基于解码算法进行解码,并同时将所述缓冲区中的分片清空;将当前数据包中的各分片依次放入清空后的缓冲区,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
优选的,对前一图像组的所有分片进行排序,使其还原为标准顺序,并能被某种符合互联网视频编码标准的解码算法识别并解码,将数据流传入视频解码器进行解码,还原为视频流,同时清空缓冲区,为下一个图像组的存储做准备。
可选的,每一个新接收的数据包中的各分片将被直接放置入当前缓冲区的最末尾。
可选的,每次处理一个新接收的图像组的数据包,提取数据包中的NALU,对于包含分片数据的NALU,根据附加的元数据排序还原原始顺序,同时去除添加的元数据,还原原始的视频码流格式。
为了更好的描述所述基于分片重组的视频流解码方法,提供一具体实施例;
实施例1:基于分片重组的视频流解码方法,如图2所示,为基于分片重组的视频流解码方法的流程示意图。
应用于解码端,所述方法包括:
步骤一:所述解码端从IP网络接收一个属于该视频流的由编码端传进行编码重组并输出的UDP数据包,并将该UDP数据包属于网络层的额外数据剥去,然后将剩余数据传递至下一步骤。所述UDP数据包中的数据需要满足的部分规则:
(1)UDP数据包中的数据需以分片的方式进行传递。其中,一个分片中包含若干个作为最小编码单位的数据块,这些数据块属于同一帧且在帧内位置连续。数据块的数据之间有明确的分隔标志,使解码端可以正确的分离这些数据块。
(2)每个UDP数据包内可以同时包含若干个分片,但片与片之间也应当存在明确分隔标志。同时,每一片应当明确标识出其在整个图像组内的位置,包括但不限于其所在帧的帧号以及其在帧内所占的分片号。
(3)同一个UDP数据包内的分片可以来自不同帧,但必须属于同一图像组。
步骤二:判断当前分片是否来自一个新的图像组。具体的,若接收到一个新图像组的UDP数据包,说明当前图像组的所有UDP数据包已经接收完成(存在部分包未到达或损坏);若未接收到一个新图像组的UDP数据包,说明当前图像组的所有UDP数据包还没有接收完成,需要继续接收。
步骤三:若不是来自一个新的图像组,按顺序扫描当前UDP数据包中的所有的分片,通过其位置信息将其放入设计好的缓冲区。跳转至步骤一继续接收UDP数据包直到该视频图像组的UDP数据包接收完毕,则向缓冲区发送排序并解码的指令,对该图像组的所有分片进行排序和解码。
步骤四:若是来自一个新的图像组,说明当前图像组的所有UDP数据包已经接收完成(存在部分包未到达或损坏)。此时,所有数据被存储在临时缓冲区中,则向缓冲区发送排序并解码的指令,该临时缓冲区按照分片加入缓冲区的顺序顺次排列存放各个分片使其还原为标准顺序,能被某种符合互联网视频编码标准的解码算法识别并解码。将数据流传入视频解码器进行解码,还原为视频流,同时清空缓冲区,为下一个图像组的存储做准备。
实施例2:应用于一种视频解码系统的基于分片重组的视频流解码方法,如图3所示,为基于分片重组的视频流解码方法的流程示意图。
所述视频解码系统包括:运行于计算机A的编码端以及运行于计算机B的解码端;
对应于编码端,
步骤101:基于HEVC视频编码器进行编码得到视频码流;编码外部设备录制的视频画面为标准的HEVC视频码流(由一系列NALU构成);最大分片大小的缩放系数设置为0.1,由于目前互联网普遍以1500字节的MTU运行,相应的UDP数据包最大大小为1472字节,因而分片最大大小设置为147字节;图像组大小设为24帧,编码得到的视频码流首先置入缓冲区中,以图像组为单位交付给后续模块进行处理;
步骤102::读取并解析上述视频码流的各个分片中的各个编码单元(CU)的预测模式和运动矢量信息,构建分片粒度的依赖关系图。
步骤103:获取上述视频码流和依赖关系图,然后以包含关键帧(I帧)数据的分片为起点,对依赖关系图进行深度优先遍历,按照遍历顺序划分区域,将遍历时相邻访问的分片划入同一区域内;按照依赖关系图的划分结果对分片进行分组;向相应的包含分片数据的NALU上附加元数据;
步骤104:将上述分组好的分片打包成UDP数据包(即,包含分片数据的NALU根据分组情况,同一个分组的装入同一包中;其它类型的NALU单独组包),通过IP网络使用UDP协议传输;
对应于解码端,
步骤105:从IP网络接收编码端传输的UDP数据包,置入缓冲区(模块106)中,待当前图像组的数据包全部接收完毕,则向缓冲区发送排序并解码的指令;判断标准是,接收到来自新的图像组的数据包时,则判定当前图像组已接收完毕;
步骤106:将每一个到来的数据包将被直接放置入当前缓冲区的最末尾;
步骤107:每次处理一个图像组的数据包,提取数据包中的NALU,对于包含分片数据的NALU,根据附加的元数据排序还原原始顺序,同时去除添加的元数据,还原原始的视频码流格式;
步骤108:其内部包含HEVC视频解码器和视频播放用户界面;获取上述经过还原处理的视频码流,解码并播放。
与上述实施例原理相似的是,本发明提供一种基于分片重组的视频流解码系统。
以下结合附图提供具体实施例:
如图4展示本发明实施例中的一种基于分片重组的视频流解码系统的结构示意图。
所述系统应用在解码端,所述系统包括:
接收模块41,用于接收由来自目标视频流中同一图像组的一或多个分片重组而成的数据包;其中,所述目标视频流包括:一或多个图像组,所述数据包包括:标识有所在图像组的位置信息以及分隔标志的一或多个分片;
判断模块42,连接所述接收模块41,用于判断当前数据包中的分片所对应的图像组是否为首次接收;
处理模块43,连接所述判断模块42,用于当当前数据包中的分片所对应的图像组判断为首次接收时,依次将当前数据包的分片放入缓冲区以及当当前数据包中的分片所对应的图像组判断为非首次接收时,对所述缓冲区中的所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区。
可选的,所述接收模块41通过网络接收一个属于目标视频流的数据包并进行储存;其中,所述数据包由同一图像组的一或多个分片重组而成。所述目标视频流包括:在所述目标视频流中的由一系列连续的视频帧构成的一或多个图像组。将在编码端为了便于通过网络传输或者存储至计算机存储介质的所采用封装的网络抽象层的额外数据剥去,然后将剩余数据发送至所述判断模块42。
可选的,所述判断模块42用于判断当前数据包中的分片所对应的图像组是否为之前接收过并储存的数据包中分片所对应的图像组。
可选的,在接收动作为首次的情况下,即之前从未接收过属于该目标数据流的数据包时,所述判断模块42直接将接收由来自目标视频流中同一图像组的一或多个分片重组而成的数据包判断为首次接收。
可选的,在接收动作为非首次的情况下,即之前从接收过属于该目标数据流的数据包时,所述判断模块42将当前数据包中的分片所对应的图像组与之前接收的所属该目标视频流的图像组进行对比;若对比一致,则说明当前数据包中的分片所对应的图像组的数据包还未接收完毕,需要继续接收,因此所述判断模块42判断为非首次接收;若对比不一致,则说明当前数据包中的分片所对应的图像组的数据包还已接收完毕,该图像组的分片数据需要进行解码,并为下一图像组的储存进行准备,所述判断模块42判断为首次接收;需要注意的是,所述数据包按图像组的排列顺序依次被接收。
可选的,所述处理模块43包括:首次接收图像组单元431,用于当当前数据包中的分片所对应的图像组判断为首次接收时,按顺序扫描当前数据包中的各分片,并通过各分片在所述图像组的位置信息依次放入所述缓冲区的对应位置,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对所述缓冲区中所对应的图像组的所有分片进行排序以及解码,并同时将所述缓冲区清空,以供下一图像组所对应的数据包中各分片的依次放入清空后的缓冲区;
非首次接收图像组单元432,用于当当前数据包中的分片所对应的图像组判断为非首次接收时,对所述缓冲区中所属前一图像组的各分片进行排序,并基于解码算法进行解码,并同时将所述缓冲区中的分片清空;将当前数据包中的各分片依次放入清空后的缓冲区,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
需说明的是,应理解图4系统实施例中的各个模块的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且这些模块可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分模块通过处理元件调用软件的形式实现,部分模块通过硬件的形式实现;
例如各模块可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个特定集成电路(Application Specific Integrated Circuit,简称ASIC),或,一个或多个微处理器(digital signal processor,简称DSP),或,一个或者多个现场可编程门阵列(Field Programmable Gate Array,简称FPGA)等。再如,当以上某个模块通过处理元件调度程序代码的形式实现时,该处理元件可以是通用处理器,例如中央处理器(CentralProcessing Unit,简称CPU)或其它可以调用程序代码的处理器。再如,这些模块可以集成在一起,以片上系统(system-on-a-chip,简称SOC)的形式实现。
因此,由于该分片重组的视频流解码系统的实现原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
在一或多个实施例中,所述分片重组的视频流解码系统可以应用在不同场景中的不同终端中实现。
如图5展示本发明实施例中的基于分片重组的视频流解码终端50的结构示意图。
所述基于分片重组的视频流解码终端50包括:存储器51及处理器52所述存储器51用于存储计算机程序;所述处理器52运行计算机程序实现如图1所述的基于分片重组的视频流解码方法。
可选的,所述存储器51的数量均可以是一或多个,所述处理器52的数量均可以是一或多个,而图5中均以一个为例。
可选的,所述基于基于分片重组的视频流解码终端50中的处理器52会按照如图1所述的步骤,将一个或多个以应用程序的进程对应的指令加载到存储器51中,并由处理器52来运行存储在第一存储器51中的应用程序,从而实现如图1所述基于分片重组的视频流解码方法中的各种功能。
可选的,所述存储器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 (9)

1.一种基于分片重组的视频流解码方法,其特征在于,包括:
接收由来自目标视频流中同一图像组的一或多个分别标识有所在图像组的位置信息以及分隔标志的分片依据依赖关系图重组而成的数据包;其中,所述目标视频流包括:在所述目标视频流中的由一系列连续的视频帧构成的一或多个图像组;所述位置信息包括:所在图像帧的帧号以及所在帧内所占的分片号;判断当前数据包中的分片所对应的图像组是否为首次接收;
若不是,依次将当前数据包的分片放入缓冲区;
若是,对所述缓冲区中的所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区;
其中,依据依赖关系图重组而成数据包的方式包括:
读取并解析目标视频流的各个分片中的的预测模式和运动矢量信息,构建分片粒度的依赖关系图;
根据该依赖关系图,然后以包含关键帧数据的分片为起点,对依赖关系图进行深度优先遍历,按照遍历顺序划分区域,将遍历时相邻访问的分片划入同一区域内;
按照依赖关系图的划分结果对分片进行分组;
将上述分组好的分片打包成数据包根据分组情况,同一个分组的装入同一包中。
2.根据权利要求1中所述的基于分片重组的视频流解码方法,其特征在于,每个分片包括:一或多个具有分隔标志的数据块;其中,各数据块来自同一帧和/或在同一帧内连续。
3.根据权利要求1中所述的基于分片重组的视频流解码方法,其特征在于,所述依次将当前数据包的分片放入缓冲区的方式包括:
按顺序扫描当前数据包中的各分片,并通过各分片在所述图像组的位置信息依次放入所述缓冲区的对应位置,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
4.根据权利要求3中所述的基于分片重组的视频流解码方法,其特征在于,所述对当前数据包所对应的图像组中的各分片进行解码的方式包括:
对所述缓冲区中所对应的图像组的所有分片进行排序以及解码,并同时将所述缓冲区清空,以供下一图像组所对应的数据包中各分片的依次放入清空后的缓冲区。
5.根据权利要求1中所述的基于分片重组的视频流解码方法,其特征在于,所述对所述缓冲区中所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区的方式包括:
对所述缓冲区中所属前一图像组的各分片进行排序,并基于解码算法进行解码,并同时将所述缓冲区中的分片清空;
将当前数据包中的各分片依次放入清空后的缓冲区,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前所对应的图像组中的各分片进行解码。
6.一种基于分片重组的视频流解码系统,其特征在于,包括:
接收模块,用于接收由来自目标视频流中同一图像组的一或多个分片依据依赖关系图重组而成的数据包;其中,所述目标视频流包括:在所述目标视频流中的由一系列连续的视频帧构成的一或多个图像组,所述数据包包括:标识有所在图像组的位置信息以及分隔标志的一或多个分片;所述位置信息包括:所在图像帧的帧号以及所在帧内所占的分片号;
判断模块,连接所述接收模块,用于判断当前数据包中的分片所对应的图像组是否为首次接收;
处理模块,连接所述判断模块,用于当当前数据包中的分片所对应的图像组判断为首次接收时,依次将当前数据包的分片放入缓冲区以及当当前数据包中的分片所对应的图像组判断为非首次接收时,对所述缓冲区中的所属前一图像组的各分片进行排序以及解码,并将所述缓冲区清空,以供当前数据包中的各分片依次放入清空后的缓冲区;
其中,依据依赖关系图重组而成数据包的方式包括:
读取并解析目标视频流的各个分片中的的预测模式和运动矢量信息,构建分片粒度的依赖关系图;
根据该依赖关系图,然后以包含关键帧数据的分片为起点,对依赖关系图进行深度优先遍历,按照遍历顺序划分区域,将遍历时相邻访问的分片划入同一区域内;
按照依赖关系图的划分结果对分片进行分组;
将上述分组好的分片打包成数据包根据分组情况,同一个分组的装入同一包中。
7.根据权利要求6中所述的基于分片重组的视频流解码系统,其特征在于,所述处理模块包括:
首次接收图像组单元,用于当当前数据包中的分片所对应的图像组判断为首次接收时,按顺序扫描当前数据包中的各分片,并通过各分片在所述图像组的位置信息依次放入所述缓冲区的对应位置,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对所述缓冲区中所对应的图像组的所有分片进行排序以及解码,并同时将所述缓冲区清空,以供下一图像组所对应的数据包中各分片的依次放入清空后的缓冲区;
非首次接收图像组单元,用于当当前数据包中的分片所对应的图像组判断为非首次接收时,对所述缓冲区中所属前一图像组的各分片进行排序,并基于解码算法进行解码,并同时将所述缓冲区中的分片清空;将当前数据包中的各分片依次放入清空后的缓冲区,直至接收到判断为来自首次接收的图像组所对应的数据包时,以对当前缓冲区中存储的图像组中的各分片进行解码。
8.一种基于分片重组的视频流解码终端,其特征在于,包括:一或多个存储器及一或多个处理器;
所述一或多个存储器,用于存储计算机程序;
所述一或多个处理器,连接所述存储器,用于运行所述计算机程序以执行如权利要求1至5中任一项所述的方法。
9.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被一个或多个处理器运行时执行如权利要求1至5中任一项所述的方法。
CN202011624861.9A 2020-12-30 2020-12-30 基于分片重组的视频流解码方法、系统、终端及介质 Active CN112822549B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011624861.9A CN112822549B (zh) 2020-12-30 2020-12-30 基于分片重组的视频流解码方法、系统、终端及介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011624861.9A CN112822549B (zh) 2020-12-30 2020-12-30 基于分片重组的视频流解码方法、系统、终端及介质

Publications (2)

Publication Number Publication Date
CN112822549A CN112822549A (zh) 2021-05-18
CN112822549B true CN112822549B (zh) 2022-08-05

Family

ID=75854828

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011624861.9A Active CN112822549B (zh) 2020-12-30 2020-12-30 基于分片重组的视频流解码方法、系统、终端及介质

Country Status (1)

Country Link
CN (1) CN112822549B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113438520B (zh) * 2021-06-29 2023-01-03 北京奇艺世纪科技有限公司 数据处理方法、装置及系统
CN116896567B (zh) * 2023-07-27 2024-05-10 北京航星永志科技有限公司 网络层协议传输数据方法和装置

Citations (7)

* Cited by examiner, † Cited by third party
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
CN102075756A (zh) * 2011-01-27 2011-05-25 北京视博云科技有限公司 视频多帧预测编解码方法和装置
CN105052160A (zh) * 2012-11-20 2015-11-11 谷歌技术控股有限责任公司 用于向客户端设备流传输媒体内容的方法和装置
CN105900436A (zh) * 2014-01-17 2016-08-24 索尼公司 通信设备、通信数据生成方法、以及通信数据处理方法
CN106231348A (zh) * 2016-09-19 2016-12-14 浙江宇视科技有限公司 一种gop数据的回放方法、装置和系统
CN108260010A (zh) * 2018-02-05 2018-07-06 南通大学 一种基于网络编解码和协作分发的视频点播方法以及系统
CN110062296A (zh) * 2019-04-09 2019-07-26 南昌嘉研科技有限公司 一种实时流媒体播放器及其架构方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU8759198A (en) * 1997-07-28 1999-02-16 Roy H. Campbell A robust, reliable compression and packetization scheme for transmitting video
US20090067495A1 (en) * 2007-09-11 2009-03-12 The Hong Kong University Of Science And Technology Rate distortion optimization for inter mode generation for error resilient video coding
US9351011B2 (en) * 2012-11-28 2016-05-24 Intel Corporation Video pipeline with direct linkage between decoding and post processing
GB2540320B (en) * 2014-05-08 2018-11-07 Mitsubishi Electric Corp Image decoding apparatus
WO2020050884A1 (en) * 2018-09-04 2020-03-12 Google Llc Temporal prediction shifting for scalable video coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
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
CN102075756A (zh) * 2011-01-27 2011-05-25 北京视博云科技有限公司 视频多帧预测编解码方法和装置
CN105052160A (zh) * 2012-11-20 2015-11-11 谷歌技术控股有限责任公司 用于向客户端设备流传输媒体内容的方法和装置
CN105900436A (zh) * 2014-01-17 2016-08-24 索尼公司 通信设备、通信数据生成方法、以及通信数据处理方法
CN106231348A (zh) * 2016-09-19 2016-12-14 浙江宇视科技有限公司 一种gop数据的回放方法、装置和系统
CN108260010A (zh) * 2018-02-05 2018-07-06 南通大学 一种基于网络编解码和协作分发的视频点播方法以及系统
CN110062296A (zh) * 2019-04-09 2019-07-26 南昌嘉研科技有限公司 一种实时流媒体播放器及其架构方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
MIFF: Human Mobility Extractions with Cellular Signaling Data under Spatio-temporal Uncertainty;刘云淮;《Proceedings of the ACM on Interactive Mobile Wearable and Ubiquitous Technologies》;20201031;第4卷(第4期);全文 *

Also Published As

Publication number Publication date
CN112822549A (zh) 2021-05-18

Similar Documents

Publication Publication Date Title
US9774927B2 (en) Multi-layer video stream decoding
US20180091829A1 (en) Method and Apparatus for Palette Index Coding in Video and Image Compression
CN112822549B (zh) 基于分片重组的视频流解码方法、系统、终端及介质
TW202114421A (zh) 視訊寫碼之存取單元中之適應參數集合
US20200413042A1 (en) Multi-Layer Video Stream Encoding and Decoding
KR102028527B1 (ko) 영상 디코딩 방법 및 이를 이용하는 장치
EP1827022A2 (en) Device for coding, method for coding, system for decoding, method for decoding video data
US8873625B2 (en) Enhanced compression in representing non-frame-edge blocks of image frames
CN112822516B (zh) 基于数据块重组的图像组传输方法、装置、设备和系统
US20110222603A1 (en) Method and System Making It Possible to Protect A Compressed Video Stream Against Errors Arising During a Transmission
EP3111642B1 (en) Method and apparatus of single sample mode for video coding
US20190356911A1 (en) Region-based processing of predicted pixels
CN112088531A (zh) 视频编码和解码中改进的片地址信令
CN111935500B (zh) 视频解码方法、装置及电子设备
JP2023533424A (ja) 映像処理におけるタイル及びスライス区画
CN112822514B (zh) 基于依赖关系的视频流分组传输方法、系统、终端及介质
KR20240006461A (ko) 이미지 스트림의 이미지 프레임들을 인코딩하고 인코딩된이미지 프레임들을 통신 네트워크에서 전송하기 위한 방법 및 이미지 캡처 디바이스
CN112788336B (zh) 数据元素的排序还原方法、系统、终端及标记方法
CN114827612A (zh) 视频图像编码和解码方法、设备及介质
CN112822492A (zh) 抗误码视频编码重组方法、装置、设备、系统和介质
CN112788344B (zh) 基于编码单元重组的视频解码方法、装置、系统、介质及终端
GB2488829A (en) Encoding and decoding image data
CN112804562B (zh) 基于片重组的视频编码方法、装置、终端及介质
US11683509B1 (en) Prediction unit skip detection in encoder
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