CN112788336B - 数据元素的排序还原方法、系统、终端及标记方法 - Google Patents

数据元素的排序还原方法、系统、终端及标记方法 Download PDF

Info

Publication number
CN112788336B
CN112788336B CN202011625344.3A CN202011625344A CN112788336B CN 112788336 B CN112788336 B CN 112788336B CN 202011625344 A CN202011625344 A CN 202011625344A CN 112788336 B CN112788336 B CN 112788336B
Authority
CN
China
Prior art keywords
data
restoring
image group
video
code stream
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
CN202011625344.3A
Other languages
English (en)
Other versions
CN112788336A (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.)
Beijing Institute Of Big Data Research
Original Assignee
Beijing Institute Of Big Data Research
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 Beijing Institute Of Big Data Research filed Critical Beijing Institute Of Big Data Research
Priority to CN202011625344.3A priority Critical patent/CN112788336B/zh
Publication of CN112788336A publication Critical patent/CN112788336A/zh
Application granted granted Critical
Publication of CN112788336B publication Critical patent/CN112788336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/176Methods 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 block, e.g. a macroblock
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

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显示为本申请实施例中数据元素的排序还原终端的结构示意图。
图6显示为本申请实施例中数据元素的标记方法的流程示意图。
具体实施方式
以下通过特定的具体实例说明本申请的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本申请的其他优点与功效。本申请还可以通过另外不同的具体实施方式加以实施或应用系统,本说明书中的各项细节也可以基于不同观点与应用系统,在没有背离本申请的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
下面以附图为参考,针对本申请的实施例进行详细说明,以便本申请所属技术领域的技术人员能够容易地实施。本申请可以以多种不同形态体现,并不限定于此处说明的实施例。
为了明确说明本申请,省略与说明无关的部件,对于通篇说明书中相同或类似的构成要素,赋予了相同的参照符号。
在通篇说明书中,当说某部件与另一部件“连接”时,这不仅包括“直接连接”的情形,也包括在其中间把其它元件置于其间而“间接连接”的情形。另外,当说某种部件“包括”某种构成要素时,只要没有特别相反的记载,则并非将其它构成要素排除在外,而是意味着可以还包括其它构成要素。
当说某部件在另一部件“之上”时,这可以是直接在另一部件之上,但也可以在其之间伴随着其它部件。当对照地说某部件“直接”在另一部件“之上”时,其之间不伴随其它部件。
虽然在一些实例中术语第一、第二等在本文中用来描述各种元件,但是这些元件不应当被这些术语限制。这些术语仅用来将一个元件与另一个元件进行区分。例如,第一接口及第二接口等描述。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。此处使用的术语“或”和“和/或”被解释为包括性的,或意味着任一个或任何组合。因此,“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所示,展示本发明实施例中的数据元素的排序还原方法的流程示意图。
所述方法包括:
对所属目标视频码流中同一图像组的由一或多个经过标记的数据元素重组而成的一或多个数据包中的各数据元素进行排序还原,以对所述目标视频码流进行解码。
在本实施例中,各数据包标记有各数据包所属图像组的信息;具体的,在所述目标视频码流中包括:由一系列连续的视频帧构成的一或多个图像组;在数据包起始位置添加包内各块所属的图像组的序号;需要注意的是,该序号的格式不作特殊限制,只要能被解码端进行排序还原的标记识别即可;举例来说。可以采用定长编码或变长编码。
可选的,在视频码流的编码和传输过程中,在发送端对码流中各个数据元素附加标记,标记应当具有可区分性并且指示其在码流中的位置;所述数据元素的标记方式包括:基于所述数据元素的元素类型,对各数据元素按其对应的元素类型所对应的标记规则标记各数据元素所在所述目标视频码流中的位置信息。具体的,检查原始视频码流中的各个数据元素的元素类型,对各个数据元素按其元素类型所对应的标记规则标记各数据元素所在所述目标视频码流中的位置信息。
可选的,所述元素类型包括:数据块和/或视频元数据。需要注意的是,这里提到的数据块不仅限于单一数据块,还可以为以数据块为单位构成的分片。依照各帧之间的时间顺序和一帧内部的扫描顺序,将一或多个数据块组装成分片(Slice)。
可选的,所述数据块所对应的标记规则包括:添加所述数据块在其所在的图像组内的帧序号以及帧内序号;和/或,所述视频元数据所对应的标记规则包括:添加所属该视频元数据独有的区分标记;其中,所述区分标记包括:用于区分所述视频元数据以及其他数据元素类型的元素类型区分信息以及用于表示所述视频元数据在其所在的图像组内的位置信息。
具体的,若检查待标记的数据元素的元素类型为数据块,则按数据块类型所对应的标记规则对所述数据进行标记;所述数据块所对应的标记规则包括:在所述数据块中的原始数据添加在其所在的图像组内的帧序号以及帧内序号;需要注意的是,序号的格式不作特殊限制,只要能被解码端采用的排序还原方法识别即可。举例来说,序号数值可以采用定长编码(例如:2字节整数)或者变长编码(例如:Exp-Golomb编码)。
若检查待标记的数据元素的元素类型为视频元数据,则按视频元数据类型所对应的标记规则对所述数据进行标记;所述视频元数据所对应的标记规则包括:添加所属该视频元数据独有的区分标记;其中,所述区分标记包括:用于区分所述视频元数据以及其他数据元素类型的元素类型区分信息以及用于表示所述视频元数据在其所在的图像组内的位置信息。
需要注意的是,所述视频元数据标记的格式不作特殊限制,只要解码端能够正确区分且能够将其还原至码流正确位置即可;举例来说,对于固定出现在特定帧之前的视频元数据,可以使用与编码数据块同样的序号格式,但将其中的帧内块序号改为整数-1;对于固定出现在视频码流开头的元数据,可以不加标记单独组包传输,如图2所示。
可选的,在进行排序还原前依次对从网络接收到的每个视频数据包,根据当前数据包的标记的当前数据包所属图像组的信息,首先判断该数据包是否属于当前图像组;
若不属于当前图像组且为新的图像组,则说明所属当前图像组的数据包都已经接收完毕,将缓冲区已有的数据包数据取出,并且将该数据包单独加入缓冲区等待下一轮处理;对于取出的数据包,提取所属所述当前图像组的各数据包中的经过标记的各数据元素,基于各数据元素标记的元素类型所对应的排序规则对各数据元素进行排序还原。
若不属于当前图像组且为之前接收过的图像组的数据包,说明是滞留在网络中没有按时送达的无效数据包,直接丢弃。
若属于当前图像组,则将其置入缓冲区等待处理,直至接收到来自新的图像组的数据包,则说明所属当前图像组的数据包都已经接收完毕,将缓冲区已有的数据包数据取出,提取所属所述当前图像组的各数据包中的经过标记的各数据元素,基于各数据元素标记的元素类型所对应的排序规则对各数据元素进行排序还原。
需要注意的是,这里的判断该数据包是否属于当前图像组的方式是通过当前数据包上的标记信息,例如序号,与当前图像组的序号进行对比来判断。
可选的,所述元素类型包括:数据块和/或视频元数据;其中,所述数据块所对应的排序规则包括:分别将所述数据块标记的其所在的图像组内的帧序号以及帧内序号作为关键元素进行排序,并还原为原始的视频码流格式;和/或,所述视频元数据所对应的排序规则包括:根据所述视频元数据的区分标记按编码标准归位,并还原为原始的视频码流格式。
具体的,若数据元素的元素类型为数据块,则按数据块类型所对应的排序规则进行排序;所述数据块所对应的排序规则包括:以所述数据块标记的帧序号为第一关键字,帧内块序号为第二关键字分别对各数据块元素进行升序排序;
若数据元素的元素类型为视频元数据,则按视频元数据类型所对应的排序规则进行排序;所述视频元数据所对应的排序规则包括:根据所述视频元数据的区分标记按编码标准归位,并还原为原始的视频码流格式。
在以上的数据元素进行排序后,再依次去除各数据元素的标记,还原原始格式的视频码流,并将其送入解码端的后续模块进行处理;举例来说,提交给视频解码器解码或存储至磁盘文件。
为了更好的描述所述数据元素的排序还原方法,提供一具体实施例;
实施例1:在计算机A向计算机B传输一段HEVC编码的视频码流的实施环境下的实施例,如图3所示。
待传输的目标视频码流为一个修改过的HM HEVC视频编码器编码一段测试视频产生的HEVC视频码流,由一系列NALU构成,每个NALU封装有一个分片(Slice)或视频元数据(其中包含视频元数据的NALU仅出现在开头)。该视频编码器被设置为采用细粒度的分片方式,每个分片(Slice)包含的编码树单元(CTU)较少,大小不超过255字节;视频长度不超过65535个图像组,图像组大小不超过63帧,每帧的分片数量不超过1023;进行该设置后,后续的处理中直接将分片当作数据块考虑;同时,在编码时导出分片之间的依赖关系并构建相应的依赖关系图。视频码流和依赖关系图已经暂存至磁盘文件中,且按照图像组分别存储,各个图像组之间没有依赖关系。
计算机A上运行发送端程序,向计算机B传输视频码流。
该程序首先处理位于视频码流开头的包含视频元数据的NALU,将其保持原样(使用原始的NALU起始标记0x000001或0x00000001)单独组成网络数据包,并通过网络传输。
然后,该程序依次传输各个待传输的图像组(仅有封装了分片数据的NALU)。每次处理和传输一个图像组,步骤如下:
对于码流中的各个封装了分片数据的NALU(属于数据块类型),进行如下处理:去除位于其开头的NALU起始标记,依次添加图像组内帧序号、帧内分片序号和NALU长度的信息,标记后的NALU格式如表1所示。
表1标记后的NALU格式
Figure BDA0002874709650000081
对于附加了标记信息的码流,根据依赖关系图进行重组,规则是:以包含关键帧(I帧)数据的分片为起点,对依赖关系图进行深度优先遍历,按照遍历顺序划分区域,将遍历时相邻访问的分片划入同一区域内;按照依赖关系图的划分结果对分片进行分组,组装成待传输的数据包,要求每个数据包大小不超过1470字节;
对于每个待传输的数据包,开头附加当前图像组的序号(所有序号均从1开始编号),格式为2字节,大端序;然后通过IP网络使用UDP协议传输到计算机B。
计算机B运行接收端程序,接收数据包并从中还原视频码流,存储到磁盘文件中,以后可以使用视频播放器观看。包括以下步骤:
从IP网络接收发送端传输的UDP数据包;
检查数据包起始的2字节内容,如果为0x0000,说明数据包内容为包含视频元数据的NALU,无需后续步骤,直接存储;否则起始2字节表示数据包内容所属的图像组序号:若落后于正在处理的图像组,直接丢弃,不进行后续的步骤;若属于同一个图像组,则将其置入缓冲区,暂不进行后续的步骤;如果属于更新的图像组,则取出缓冲区中所有属于当前图像组的数据包进入后续步骤处理,并将新的数据包置入缓冲区;
对于从缓冲区中取出的数据包,提取其中的所有NALU(均为包含分片数据的NALU),然后以帧序号为第一关键字,帧内分片序号为第二关键字升序排序还原原始顺序,再去除附加的标记,添加原始的NALU起始标记(每帧第一个分片为0x00000001,其它为0x000001),还原成原始的视频码流格式,存储至磁盘文件。
与上述实施例原理相似的是,本发明提供一种数据元素的排序还原系统。
以下结合附图提供具体实施例:
如图4展示本发明实施例中的一种数据元素的排序还原系统的结构示意图。
所述系统包括:
标记模块41,用于基于所述数据元素的元素类型,对各数据元素按其对应的元素类型所对应的标记规则标记各数据元素所在所述目标视频码流中的位置信息;
排序还原模块42,连接所述标记模块41,用于对所属目标视频码流中同一图像组的由一或多个经过标记的数据元素重组而成的一或多个标记有所述图像组信息的数据包中的各数据元素进行排序还原,以对所述目标视频码流进行解码;
其中,
对各数据元素排序还原的方式包括:当判断所属当前图像组的各数据包为接收完毕时,则提取所属所述当前图像组的各数据包中的经过标记的各数据元素,基于各数据元素标记的元素类型所对应的排序规则对各数据元素进行排序还原。
可选的,当所述元素类型包括:数据块和/或视频元数据时;所述标记模块31采用的所述数据块所对应的标记规则包括:添加所述数据块在其所在的图像组内的帧序号以及帧内序号;和/或,所述标记模块41采用所述视频元数据所对应的标记规则包括:添加所属该视频元数据独有的区分标记;其中,所述区分标记包括:用于区分所述视频元数据以及其他数据元素类型的元素类型区分信息以及用于表示所述视频元数据在其所在的图像组内的位置信息。所述排序还原模块42采用的所述数据块所对应的排序规则包括:分别将所述数据块标记的其所在的图像组内的帧序号以及帧内序号作为关键元素进行排序,并还原为原始的视频码流格式;和/或,所述排序还原模块42采用的所述视频元数据所对应的排序规则包括:根据所述视频元数据的区分标记按编码标准归位,并还原为原始的视频码流格式。
可选的,在进行排序还原前依次对从网络接收到的每个视频数据包,根据当前数据包的标记的当前数据包所属图像组的信息,首先判断该数据包是否属于当前图像组;
若不属于当前图像组且为新的图像组,则说明所属当前图像组的数据包都已经接收完毕,将缓冲区已有的数据包数据取出,并且将该数据包单独加入缓冲区等待下一轮处理;对于取出的数据包,所述排序还原模块42提取所属所述当前图像组的各数据包中的经过标记的各数据元素,基于各数据元素标记的元素类型所对应的排序规则对各数据元素进行排序还原。
若不属于当前图像组且为之前接收过的图像组的数据包,说明是滞留在网络中没有按时送达的无效数据包,直接丢弃。
若属于当前图像组,则将其置入缓冲区等待处理,直至接收到来自新的图像组的数据包,则说明所属当前图像组的数据包都已经接收完毕,将缓冲区已有的数据包数据取出,所述排序还原模块42提取所属所述当前图像组的各数据包中的经过标记的各数据元素,基于各数据元素标记的元素类型所对应的排序规则对各数据元素进行排序还原。
需说明的是,应理解图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中的应用程序,从而实现如图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(电可擦除可编程只读存储器)、磁卡或光卡、闪存、或适于存储机器可执行指令的其他类型的介质/机器可读介质。所述计算机可读存储介质可以是未接入计算机设备的产品,也可以是已接入计算机设备使用的部件。
如图6展示本发明实施例中的一种数据元素的标记方法的流程示意图。应用的数据元素的元素类型包括:数据块和/或视频元数据;所述方法包括:
所述方法包括:
基于所述数据元素的元素类型,对各数据元素按其对应的元素类型所对应的标记规则标记各数据元素所在所述目标视频码流中的位置信息;其中,所述数据块所对应的标记规则包括:添加所述数据块在其所在的图像组内的帧序号以及帧内序号;和/或,所述视频元数据所对应的标记规则包括:添加所属该视频元数据独有的区分标记,其中,所述区分标记包括:用于区分所述视频元数据以及其他数据元素类型的元素类型区分信息以及用于表示所述视频元数据在其所在的图像组内的位置信息。
由于该数据元素的标记方法的原理已在前述实施例中进行了叙述,因此此处不作重复赘述。
综上所述,本申请的数据元素的排序还原及标记方法、系统、终端及介质,通过接收到的视频数据包中数据元素附带的顺序标记对其进行排序,将其还原为原始顺序,使得最终得到的视频码流可以被现有的视频解码器解码。从而减少码流中数据块的跨数据包依赖性和错误扩散,减少网络传输中数据包损坏和丢失对视频质量的损害,使得解码工作更加简便和准确,解决现有技术的问题。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何熟悉此技术的人士皆可在不违背本申请的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本申请所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本申请的权利要求所涵盖。

Claims (4)

1.一种数据元素的排序还原方法,其特征在于,包括:
对所属目标视频码流中同一图像组的由一或多个经过标记的数据元素重组而成的一或多个数据包中的各数据元素进行排序还原,以对所述目标视频码流进行解码;
其中,各数据包标记有各数据包所属图像组的信息;
所述数据元素的标记方式包括:基于所述数据元素的元素类型,对各数据元素按其对应的元素类型所对应的标记规则标记各数据元素所在所述目标视频码流中的位置信息;
其中,所述元素类型包括:数据块和视频元数据;
所述数据块所对应的标记规则包括:添加所述数据块在其所在的图像组内的帧序号以及帧内序号;所述视频元数据所对应的标记规则包括:添加所属该视频元数据独有的区分标记;其中,所述区分标记包括:用于区分所述视频元数据以及其他数据元素类型的元素类型区分信息以及用于表示所述视频元数据在其所在的图像组内的位置信息;
所述对所属目标视频码流中同一图像组的由一或多个经过标记的数据元素重组而成的一或多个数据包中的各数据元素进行排序还原的方式包括:当判断所属当前图像组的各数据包为接收完毕时,则提取所属所述当前图像组的各数据包中的经过标记的各数据元素,基于各数据元素标记的元素类型所对应的排序规则对各数据元素进行排序还原;其中,所述数据块所对应的排序规则包括:分别将所述数据块标记的其所在的图像组内的帧序号以及帧内序号作为关键元素进行排序,并还原为原始的视频码流格式;所述视频元数据所对应的排序规则包括:根据所述视频元数据的区分标记按编码标准归位,并还原为原始的视频码流格式。
2.一种数据元素的排序还原系统,其特征在于,包括:
标记模块,用于基于所述数据元素的元素类型,对各数据元素按其对应的元素类型所对应的标记规则标记各数据元素所在目标视频码流中的位置信息;
排序还原模块,连接所述标记模块,用于对所属目标视频码流中同一图像组的由一或多个经过标记的数据元素重组而成的一或多个标记有所述图像组信息的数据包中的各数据元素进行排序还原,以对所述目标视频码流进行解码;
其中,
对各数据元素排序还原的方式包括:当判断所属当前图像组的各数据包为接收完毕时,则提取所属所述当前图像组的各数据包中的经过标记的各数据元素,基于各数据元素标记的元素类型所对应的排序规则对各数据元素进行排序还原;
其中,所述元素类型包括:数据块和视频元数据;所述标记模块采用的所述数据块所对应的标记规则包括:添加所述数据块在其所在的图像组内的帧序号以及帧内序号;所述标记模块采用所述视频元数据所对应的标记规则包括:添加所属该视频元数据独有的区分标记;其中,所述区分标记包括:用于区分所述视频元数据以及其他数据元素类型的元素类型区分信息以及用于表示所述视频元数据在其所在的图像组内的位置信息;所述排序还原模块采用的所述数据块所对应的排序规则包括:分别将所述数据块标记的其所在的图像组内的帧序号以及帧内序号作为关键元素进行排序,并还原为原始的视频码流格式;所述排序还原模块采用的所述视频元数据所对应的排序规则包括:根据所述视频元数据的区分标记按编码标准归位,并还原为原始的视频码流格式。
3.一种数据元素的排序还原终端,其特征在于,包括:一或多个存储器及一或多个处理器;
所述一或多个存储器,用于存储计算机程序;
所述一或多个处理器,连接所述存储器,用于运行所述计算机程序以执行如权利要求1所述的方法。
4.一种计算机可读存储介质,其特征在于,存储有计算机程序,所述计算机程序被一个或多个处理器运行时执行如权利要求1所述的方法。
CN202011625344.3A 2020-12-30 2020-12-30 数据元素的排序还原方法、系统、终端及标记方法 Active CN112788336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011625344.3A CN112788336B (zh) 2020-12-30 2020-12-30 数据元素的排序还原方法、系统、终端及标记方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011625344.3A CN112788336B (zh) 2020-12-30 2020-12-30 数据元素的排序还原方法、系统、终端及标记方法

Publications (2)

Publication Number Publication Date
CN112788336A CN112788336A (zh) 2021-05-11
CN112788336B true CN112788336B (zh) 2023-04-14

Family

ID=75753272

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011625344.3A Active CN112788336B (zh) 2020-12-30 2020-12-30 数据元素的排序还原方法、系统、终端及标记方法

Country Status (1)

Country Link
CN (1) CN112788336B (zh)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999005602A1 (en) * 1997-07-28 1999-02-04 Zhigang Chen A robust, reliable compression and packetization scheme for transmitting video
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
CN102209241A (zh) * 2011-05-25 2011-10-05 杭州华三通信技术有限公司 一种基于多子图的视频编解码方法及其装置
CN105900436A (zh) * 2014-01-17 2016-08-24 索尼公司 通信设备、通信数据生成方法、以及通信数据处理方法
CN107852500A (zh) * 2015-08-24 2018-03-27 华为技术有限公司 运动矢量场编码方法和解码方法、编码和解码装置
CN110996099A (zh) * 2019-11-15 2020-04-10 网宿科技股份有限公司 一种视频编码方法、系统及设备

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102497216B1 (ko) * 2017-05-10 2023-02-07 삼성전자 주식회사 슬라이스 기반의 압축을 수행하는 영상 처리 장치 및 영상 처리 방법

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1999005602A1 (en) * 1997-07-28 1999-02-04 Zhigang Chen A robust, reliable compression and packetization scheme for transmitting video
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
CN102209241A (zh) * 2011-05-25 2011-10-05 杭州华三通信技术有限公司 一种基于多子图的视频编解码方法及其装置
CN105900436A (zh) * 2014-01-17 2016-08-24 索尼公司 通信设备、通信数据生成方法、以及通信数据处理方法
CN107852500A (zh) * 2015-08-24 2018-03-27 华为技术有限公司 运动矢量场编码方法和解码方法、编码和解码装置
CN110996099A (zh) * 2019-11-15 2020-04-10 网宿科技股份有限公司 一种视频编码方法、系统及设备

Also Published As

Publication number Publication date
CN112788336A (zh) 2021-05-11

Similar Documents

Publication Publication Date Title
US11252422B2 (en) Network device and error handling
US20200413042A1 (en) Multi-Layer Video Stream Encoding and Decoding
US9774927B2 (en) Multi-layer video stream decoding
US11677957B2 (en) Methods providing encoding and/or decoding of video using a syntax indicator and picture header
TW201742467A (zh) 視訊資料串流概念技術
CN112822549B (zh) 基于分片重组的视频流解码方法、系统、终端及介质
JP2023109977A5 (zh)
DK2936817T3 (en) Encoding and decoding of multilayer video stream
US20190356911A1 (en) Region-based processing of predicted pixels
CN112088531A (zh) 视频编码和解码中改进的片地址信令
CN112822516B (zh) 基于数据块重组的图像组传输方法、装置、设备和系统
CN112788336B (zh) 数据元素的排序还原方法、系统、终端及标记方法
US20230319280A1 (en) Automatic generation of h.264 parameter sets to recover video file fragments
CN114827609B (zh) 视频图像编码和解码方法、设备及介质
US20070150786A1 (en) Method for coding, method for decoding, device for coding and device for decoding video data
CN112822514B (zh) 基于依赖关系的视频流分组传输方法、系统、终端及介质
CN112822492B (zh) 抗误码视频编码重组方法、装置、设备、系统和介质
CN101296166A (zh) 基于索引的多媒体数据的测量方法
US8462855B2 (en) Method and apparatus for stream parsing and picture location
CN112788344B (zh) 基于编码单元重组的视频解码方法、装置、系统、介质及终端
WO2020258056A1 (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