一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于发信号通知和识别存取单元边界的技术的制作方法

2022-02-22 07:11:08 来源:中国专利 TAG:
用于发信号通知和识别存取单元边界的技术的制作方法

本申请要求2020年2月24日提交的美国临时专利申请第62/980,659号和2020年9月21日提交的美国专利申请第17/026,781号的优先权,这些专利申请的全部内容并入本文。

技术领域

所公开的主题涉及用于在IP网络上传送视频的网络协议,更具体地,涉及存取单元(帧)的边界信息的信令,该信令用于支持视频负载格式的帧的单独访问。

背景技术

参考图1,网络连接系统可以包括一个或多个端点(101、102、103)。端点使用诸如语音、视频和/或其它媒体的实时媒体,在诸如因特网的IP网络(104)上彼此通信。该系统可以进一步包括一个或多个媒体感知网络元件(105),例如,所述一个或多个媒体感知网络元件(105)被配置为在将由一端点发送的媒体转发到另一端点之前操作该媒体。

在某些这种系统设计中,一个或多个端点和/或移动自组织网络仿真器(Mobile Ad-hoc Network Emulator,MANE)可以包括实时传输协议(Real-time Transport Protocol,RTP)打包器,该RTP打包器在网络上将RTP包发送到位于例如另一端点或另一MANE中的RTP接收器。在一些情况下,发送端点可以包括功能上耦合到视频编码器的视频摄像机,该视频摄像机又可以耦合到打包器,从而使得由视频摄像机捕获的视频可以使用RTP包在网络(104)上从例如端点(101)的发送端点传输到例如端点102)的接收端点。

在一些情况下,发送端点可以不包括视频编码器。作为替代,可以从存储在与端点(101)耦合的硬盘驱动器等(106)上的文件中获得视频。

在因特网和其它IP网络上用于视频的某些实时通信技术,可以依赖于RFC 3550中规定的实时传输协议(RTP)。在一些情况下,RTP包可以在IP上的用户数据报协议(UDP)上从一个端点或MANE传输到另一端点或MANE。参考图2,示出了如RFC3550中规定的RTP头结构。这里,每个RTP包可以从RTP包头开始。图2图示了RFC3550中规定的RTP头的格式。

如图2所示,版本(V)字段(201)可以说明RTP的版本并且可以等于2。填充(P)字段(202)可以指定数据包是否在末端处包含一个或多个附加填充的八位字节。扩展(X)字段(203)可以指示固定头之后是否正好跟随一个头扩展。CSRC计数(CC)字段(204)可以包含固定头之后的CSRC标识符的数量。标记(M)字段(205)可以允许标记重要事件,诸如包流(packet stream)中的AU边界。负载类型(PT)字段可以指示负载类型(206)-使用中的媒体的类型,媒体诸如是根据ITU-T建议H.264,使用RTP负载格式RFC 6184以某组RFC3984参数编码的视频。PT可以在许多情况下由呼叫控制协议选择。对于每个发送的RTP包,RTP序列号(207)可以增加一,直到绕回为止。RTP时间戳(208)可以指示包的第一样本已经被采样的时刻(捕获时间),并且普遍可以用作呈现时间。用于至少一些视频编解码器的时间戳可以是90kHz,而对于许多音频编解码器,时间戳可以等于采样速率,诸如8kHz、44.1kHz或48kHz。以下介绍同步源(synchronization source,SSRC)(209)和贡献源(contributing source,CSRC)(210)。

RTP可以遵循应用层成帧的通用方法,因此对某些负载的适配,例如根据某些视频编解码标准指定的已编码视频格式,可以由称为RTP负载格式的主RTP规范之外的辅助规范指定。某些RTP负载格式可以重新使用如网络抽象头的比特作为这些RTP负载格式的负载头,网络抽象头存在于某些视频编解码标准诸如H.264或H.265中。在这种RTP负载格式和视频编解码标准中,网络抽象层单元(Network Abstraction Layer Unit,NAL单元或NALU)可以是有限大小的码流,覆盖一个已编码图片或已编码图片的明确定义的部分,诸如,例如切片、图块、块组(group of block,GOB)等等。

码流可以在其开始处包括例如长度为8或16比特的相对短的数据结构,该数据结构包含与所包括的码流的类型相关的最小信息,并且在一些情况下,该数据结构包含分层信息。

至少一些视频编解码标准认可存取单元(Access Unit,AU)的概念。在单层情况下,存取单元可以由单个已编码图片组成。在其它情况下,特别是那些涉及分层编解码和多视图编解码的情况下,AU可以包括共享某些定时信息的多个已编码图片。多个已编码图片例如具有相同的呈现时间。

RTP头可以包括所谓的“标记”比特(M比特)(205)。根据约定,在识别AU的概念的基本上所有RTP负载格式中,对于携带AU的最后码流的RTP包,M比特被指定为等于一,否则可以被设置为零。当接收器接收到设置了M比特的RTP包时,接收器通常知道该RTP包是AU的最后的包,并且可以相应地处理该RTP包。这种处理的一些细节可以在RTP规范中找到。

再次简要参考图1,假设发送端点(101)从存储设备/硬盘驱动器(106)获得其要发送的视频码流,这种文件可能不包括关于存取单元边界的容易存取的元信息,例如因为码流可以例如以通常称为“附录B码流”的格式存储。在这种情况下,可能不存在可用的从编码器到RTP打包器的应用程序员接口(Application Programmer’s Interface,API)信息,该信息发信号通知该码流的码流是AU的最终码流。反而,RTP打包器可能必须识别包括AU的末端的码流,而该码流没有通常可由编码器获得的辅助信息。



技术实现要素:

本申请公开了以视频RTP负载格式,发信号通知和识别存取单元边界的技术。

附图说明

通过以下详细描述和附图,所公开主题的进一步特征、性质和各种优点将更加明显,其中:

图1是使用RTP的媒体传输系统的示意图。

图2是RTP报头的示意图。

图3是具有比特边界实施例的VVC的NAL单元报头的示意图。

图4是存取单元边界检测的简化框图的示意图。

图5是根据实施例的计算机系统的示意图。

要解决的问题

实时传输协议(RTP)可以在利用流媒体的通信系统中使用。用于承载视频数据的RTP负载格式最近受到关注,该视频数据符合编码标准ITU-T建议[H.266],和ISO/IEC国际标准[ISO23090-3],这两种标准也称为通用视频编解码(Versatile Video Coding,VVC),并且由联合视频专家组(Joint Video Experts Team,JVET)开发。RTP负载格式允许对每个RTP包负载中的一个或多个网络抽象层(Network Abstraction Layer,NAL)单元进行打包,以及将单个NAL单元分割成多个RTP包。VVC视频编解码可以作为一个长码流存储在文件中,在起始码之外没有成帧信息。如果没有解析这个码流的基本上所有细节,RTP打包器不能按照RTP和RTP负载规范的要求正确地设置M比特。

具体实施方式

在实施例中,当标记比特被设置为等于1时,它可以指示当前包是当前RTP流中的存取单元(AU)的最后的包。当标记比特被设置为等于0时,它可以指示当前包不是存取单元的最后的包。这种标记比特的使用与基本上所有当前指定的,视频RTP负载格式中的标记比特的普遍用法一致。

参考图3,在相同或另一实施例中,VVC NAL单元头可以由两个字节(16比特)组成。这里,5个比特表示NAL单元类型(304)。因此,可以存在多达32种类型的NAL单元。视频编解码层(VCL)NAL单元可以具有数值范围在0和12之间的类型,并且非VCL NAL单元可以具有范围在13和31之间的类型。为了防止起始码仿真,需要将forbidden_zero_bit(F比特,301)设置为零。需要将nuh-reserved-bit(Z比特,302)设置为零,并保留供ITU和ISO/IEC将来扩展。nuh-layer-id(层标识,LayerID,303)可以用于识别NAL单元所属的层,诸如空间可缩放层或质量可缩放层。nal-unit-type(类型,Type,304)字段可以指定基于VVC规范的NAL类型和语义。最后的nuh-temporal-id-plus1(时间标识,TID,305)字段可以是TemporalId加1的值,因为TID值为0可能是非法的。这是为了确保一个NAL必须至少是用于代码仿真的一个比特。

在相同或另一实施例中,NAL单元的内容可能无法判断该NAL单元是否是AU的解码顺序中的最后NAL单元,至少在没有解析潜在地许多其它NAL单元的情况下无法判断。因此,在没有附加信息的情况下,打包器不能孤立地从视频码流中轻易获得该信息。在例如实时编码上下文中,RTP发送器的实现可以通过例如API从视频编码器或其它一个或多个系统元件获得该信息。然而,也可能存在没有这种API可用的情况,包括一个上面提到的在流传输之前附录B码流被存储在硬驱动器上的情况。当不能从编码器或其它系统元件明确地获得该信息时,则在解码时,可能需要发送器的实现解释NAL单元头(并且可能还有NAL单元的负载数据),以便确定该NAL单元是否是存取单元的最后NAL单元。下面描述用于获得这种信息的这种技术和其它新技术。

图4中示出了用于发信号通知和识别存取单元边界的技术。参考图4,在相同或另一实施例中,如果一个NAL单元是码流的最后NAL单元,则该NAL单元可以被确定为AU的最后NAL单元。

继续参考图4,示出了用于确定NAL单元是否是AU的最后NAL单元的实施例。这里,当解码队列(402)中存在两个NAL单元(nalX单元和nalY单元)时,该方法可以开始(401)。这里,目标是决定nalX是否是AU的最后码流,或者nalY是否是下一个AU的开始。如果nalX单元是该码流的最后NAL单元(~d03),则可以得出结论(407)nalX是当前AU的最后NAL单元。然而,如果不是这种情况,则可以进行以下方法。

具体地,如果nalX的类型是AUD_NUT(404),且NAL单元类型值为20,则确定nalX是当前AU的最后NAL单元。如果nalX不是AUD_NUT NAL类型,并且nalY具有图片头类型单元,并且nalX和nalY之间的所有NAL单元都是参数集NAL类型或SEI NAL类型,则确定nalX是当前AU的最后NAL单元,否则确定nalX不是最后NAL单元(406)。

如果以下两个条件都为真,则还可以将NAL单元naluX确定为AU的最后NAL单元:1)解码顺序中的下一个VCL NAL单元naluY在其NAL单元头等于1或者nal_unit_type(304)等于19之后具有第一字节的高阶比特,以及2)naluX和naluY之间的所有NAL单元在存在时,具有在13到17(包括端值)的范围内的nal_unit_type(304)、等于20的nal_unit_type(304)、等于23的nal_unit_type(304)或等于26的nal_unit_type(304)。

在相同或不同的实施例中,如果以下两个条件都为真,则还可以将NAL单元naluX确定为存取单元的最后NAL单元:1)解码顺序中的下一个VCL NAL单元naluY具有在切片段头中等于1的picture_header_in_slice_header_flag或者nal_unit_type被设置为等于PH_NUT,以及2)naluX和naluY之间的所有NAL单元在存在时,具有被设置为等于DCI_NUT、VPS_NUT、SPS_NUT、PPS_NUT、PREFIX_APS_NUT、AUD_NUT、PREFIX_SEI_NUT的nal_unit_type集。

在相同或另一实施例中,当解码顺序中的下一VCL NAL单元naluY具有等于AUD_NUT的nal_unit_type时,NAL单元naluX也可以被确定为存取单元的最后NAL单元。

上述识别已编码视频码流中存储单元(AU)边界的技术,可以通过计算机可读指令实现为计算机软件,并且物理地存储在一个或多个计算机可读介质中。例如,图5示出了计算机系统500,其适于实现所公开主题的某些实施例。

所述计算机软件可通过任何合适的机器代码或计算机语言进行编码,通过汇编、编译、链接等机制创建包括指令的代码,所述指令可由计算机中央处理单元(CPU),图形处理单元(GPU)等直接执行或通过译码、微代码等方式执行。

指令可在各种类型的计算机或其组件上执行,包括例如个人计算机、平板计算机、服务器、智能手机、游戏设备、物联网设备等。

可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,这些机器代码或计算机语言可能受汇编、编译、链接或类似机制的约束,以创建包含可由计算机中央处理单元(CPU)直接执行或通过解释、微代码执行等方式执行的指令的代码,图形处理单元(GPU)等。

所述指令可以在各种类型的计算机或其组件上执行,包括例如个人计算机、平板电脑、服务器、智能手机、游戏设备、物联网设备等。

图5所示的用于计算机系统~~500的组件本质上是示例性的,并不用于对实现本申请实施例的计算机软件的使用范围或功能进行任何限制。也不应将组件的配置解释为与计算机系统500的示例性实施例中所示的任一组件或其组合具有任何依赖性或要求。

计算机系统500可以包括某些人机界面输入设备。这种人机界面输入设备可以通过触觉输入(如:键盘输入、滑动、数据手套移动)、音频输入(如:声音、掌声)、视觉输入(如:手势)、嗅觉输入(未示出),对一个或多个人类用户的输入做出响应。所述人机界面设备还可用于捕获某些媒体,气与人类有意识的输入不必直接相关,如音频(例如:语音、音乐、环境声音)、图像(例如:扫描图像、从静止影像相机获得的摄影图像)、视频(例如二维视频、包括立体视频的三维视频)。

人机界面输入设备可包括以下中的一个或多个(仅绘出其中一个):键盘501、鼠标502、触控板503、触摸屏510、数据手套504、操纵杆505、麦克风506、扫描仪507、照相机508。

计算机系统500还可以包括某些人机界面输出设备。这种人机界面输出设备可以通过例如触觉输出、声音、光和嗅觉/味觉来刺激一个或多个人类用户的感觉。这样的人机界面输出设备可包括触觉输出设备(例如通过触摸屏510、数据手套504或操纵杆505的触觉反馈,但也可以有不用作输入设备的触觉反馈设备)、音频输出设备(例如,扬声器509、耳机(未示出))、视觉输出设备(例如,包括阴极射线管屏幕、液晶屏幕、等离子屏幕、有机发光二极管屏的屏幕510,其中每一个都具有或没有触摸屏输入功能、每一个都具有或没有触觉反馈功能——其中一些可通过诸如立体画面输出的手段输出二维视觉输出或三维以上的输出;虚拟现实眼镜(未示出)、全息显示器和放烟箱(未示出))以及打印机(未示出)。

计算机系统500还可以包括人可访问的存储设备及其相关介质,如包括具有CD/DVD的高密度只读/可重写式光盘(CD/DVD ROM/RW)520或类似介质521的光学介质、拇指驱动器522、可移动硬盘驱动器或固体状态驱动器523,诸如磁带和软盘(未示出)的传统磁介质,诸如安全软件保护器(未示出)等的基于ROM/ASIC/PLD的专用设备,等等。

本领域技术人员还应当理解,结合所公开的主题使用的术语“计算机可读介质”不是必须包括传输介质、载波或其它瞬时信号。

计算机系统500还可以包括通往一个或多个通信网络的接口。例如,网络可以是无线的、有线的、光学的。网络还可为局域网、广域网、城域网、车载网络和工业网络、实时网络、延迟容忍网络等等。网络还包括以太网、无线局域网、蜂窝网络(GSM、3G、4G、5G、LTE等)等局域网、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CANBus)等等。某些网络通常需要外部网络接口适配器,用于连接到某些通用数据端口或外围总线549(例如,计算机系统500的USB端口);其它系统通常通过连接到如下所述的系统总线集成到计算机系统500的核心(例如,以太网接口集成到PC计算机系统或蜂窝网络接口集成到智能电话计算机系统)。通过使用这些网络中的任何一个,计算机系统500可以与其它实体进行通信。所述通信可以是单向的,仅用于接收(例如,无线电视),单向的仅用于发送(例如CAN总线到某些CAN总线设备),或双向的,例如通过局域或广域数字网络到其它计算机系统。上述的每个网络和网络接口可使用某些协议和协议栈。

上述的人机界面设备、人可访问的存储设备以及网络接口可以连接到计算机系统500的核心540。

核心540可包括一个或多个中央处理单元(CPU)541、图形处理单元(GPU)542、以现场可编程门阵列(FPGA)543形式的专用可编程处理单元、用于特定任务的硬件加速器544等。这些设备以及只读存储器(ROM)545、随机存取存储器546、内部大容量存储器(例如内部非用户可存取硬盘驱动器、固态硬盘等)547等可通过系统总线548进行连接。在某些计算机系统中,可以以一个或多个物理插头的形式访问系统总线548,以便可通过额外的中央处理单元、图形处理单元等进行扩展。外围装置可直接附接到核心的系统总线548,或通过外围总线549进行连接。外围总线的体系结构包括外部控制器接口PCI、通用串行总线USB等。

CPU541、GPU542、FPGA 543和加速器544可以执行某些指令,这些指令组合起来可以构成上述计算机代码。该计算机代码可以存储在ROM 545或RAM 546中。过渡数据也可以存储在RAM 546中,而永久数据可以存储在例如内部大容量存储器547中。通过使用高速缓冲存储器可实现对任何存储器设备的快速存储和检索,高速缓冲存储器可与一个或多个CPU 541、GPU 542、大容量存储器547、ROM 545、RAM 546等紧密关联。

所述计算机可读介质上可具有计算机代码,用于执行各种计算机实现的操作。介质和计算机代码可以是为本申请的目的而特别设计和构造的,也可以是计算机软件领域的技术人员所熟知和可用的介质和代码。

作为实施例而非限制,计算机系统500,特别是核心540,可以作为处理器(包括CPU、GPU、FPGA、加速器等)提供执行包含在一个或多个有形的计算机可读介质中的软件的功能。这种计算机可读介质可以是与上述的用户可访问的大容量存储器相关联的介质,以及具有非易失性的核心540的特定存储器,例如核心内部大容量存储器547或ROM 545。实现本申请的各种实施例的软件可以存储在这种设备中并且由核心540执行。根据特定需要,计算机可读介质可包括一个或一个以上存储设备或芯片。该软件可以使得核心540特别是其中的处理器(包括CPU、GPU、FPGA等)执行本文所述的特定过程或特定过程的特定部分,包括定义存储在RAM 546中的数据结构以及根据软件定义的过程来修改这种数据结构。另外或作为替代,计算机系统可以提供逻辑硬连线或以其它方式包含在电路(例如,加速器544)中的功能,该电路可以代替软件或与软件一起运行以执行本文所述的特定过程或特定过程的特定部分。在适当的情况下,对软件的引用可以包括逻辑,反之亦然。在适当的情况下,对计算机可读介质的引用可包括存储执行软件的电路(如集成电路(IC)),包含执行逻辑的电路,或两者兼备。本申请包括任何合适的硬件和软件组合。

虽然本申请已对多个示例性实施例进行了描述,但实施例的各种变更、排列和各种等同替换均属于本申请的范围内。因此应理解,本领域技术人员能够设计多种系统和方法,所述系统和方法虽然未在本文中明确示出或描述,但其体现了本申请的原则,因此属于本申请的精神和范围之内。

再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献