CN106303693A - 一种视频数据解码的方法及装置 - Google Patents

一种视频数据解码的方法及装置 Download PDF

Info

Publication number
CN106303693A
CN106303693A CN201510272464.2A CN201510272464A CN106303693A CN 106303693 A CN106303693 A CN 106303693A CN 201510272464 A CN201510272464 A CN 201510272464A CN 106303693 A CN106303693 A CN 106303693A
Authority
CN
China
Prior art keywords
frame
packet
video sequence
intracoded
sub
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.)
Granted
Application number
CN201510272464.2A
Other languages
English (en)
Other versions
CN106303693B (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 Visionvera International Information Technology Co Ltd
Original Assignee
Beijing Visionvera International Information Technology Co Ltd
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 Visionvera International Information Technology Co Ltd filed Critical Beijing Visionvera International Information Technology Co Ltd
Priority to CN201510272464.2A priority Critical patent/CN106303693B/zh
Publication of CN106303693A publication Critical patent/CN106303693A/zh
Application granted granted Critical
Publication of CN106303693B publication Critical patent/CN106303693B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/25Management operations performed by the server for facilitating the content distribution or administrating data related to end-users or client devices, e.g. end-user or client device authentication, learning user preferences for recommending movies
    • H04N21/266Channel or content management, e.g. generation and management of keys and entitlement messages in a conditional access system, merging a VOD unicast channel into a multicast channel
    • H04N21/2662Controlling the complexity of the video stream, e.g. by scaling the resolution or bitrate of the video stream based on the client capabilities

Abstract

本发明实施例提供了一种视频数据解码的方法及装置,应用于视联网中,其中所述方法包括:接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧;判断所述帧内编码帧是否丢包;若是,则丢弃所述视频序列;若否,则对所述帧内编码帧进行解码。本发明实施例可以保证视频序列的完整性,避免视频播放时出现花屏或马赛克的现象。

Description

一种视频数据解码的方法及装置
技术领域
本发明涉及视联网技术领域,特别是涉及一种视频数据解码的方法,以及,一种视频数据解码的装置。
背景技术
随着即时通信的普及和网络带宽的提升,越来越多的网络用户利用摄像头进行视频聊天,但由于网络带宽及传输质量的不稳定,造成了即时通信中视频聊天的质量难以保证,其中由于乱序和丢包造成的视频出现花屏和马赛克现象是目前视频通信质量的瓶颈之一。
在现有技术中,接收端在接收到视频数据包后,将数据包进行排序,以解决数据包出现乱序的问题,但仍然没有解决丢包的问题,如果视频出现了丢包仍然会导致花屏或马赛克的现象。
例如,发送端根据H.264编码技术编码后的视频序列为IPPPPP IPPP,若在视频数据传输过程中第二个I帧出现丢包,在这种情况下,接收端接收到的视频序列为IPPPPP PPP,传送至解码器进行解码的序列也是IPPPPPPPP,此时,由于失去了I帧参考帧,使得后面的P帧只能从第一个I帧作为参考,从而造成马赛克或花屏现象。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种视频数据解码的方法和相应的一种视频数据解码的装置。
为了解决上述问题,本发明实施例公开了一种视频数据解码的方法,所述方法应用于视联网中,所述方法包括:
接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧;
判断所述帧内编码帧是否丢包;
若是,则丢弃所述视频序列;
若否,则对所述帧内编码帧进行解码。
优选地,所述视频序列还包括参照所述帧内编码帧进行编码的一个或多个帧间预测帧;所述方法还包括:
在判定所述帧内编码帧没有丢包时,分别判断所述帧间预测帧是否丢包;
若是,则丢弃对应的帧间预测帧;
若否,则对所述帧间预测帧进行解码。
优选地,所述丢弃所述视频序列的步骤包括:
丢弃所述帧内编码帧以及与所述帧内编码帧对应的帧间预测帧。
优选地,在所述判断所述帧内编码帧是否丢包的步骤之前,还包括:
若所述视频序列为乱序序列,则将所述视频序列进行排序。
优选地,所述帧内编码帧包括多个第一数据包,所述每个第一数据包包括如下信息:所述帧内编码帧所包含的第一数据包总数、所述第一数据包的编号;
所述判断所述帧内编码帧是否丢包的步骤包括:
子步骤S11,从所述视频序列中编号最小的第一数据包开始,依次判断所述第一数据包是否为帧内编码帧首包,若是,则执行子步骤S12;若否,则执行子步骤S13;
子步骤S12,清空当前缓存队列,并将所述第一数据包存储在所述缓存队列的首位;
子步骤S13,将所述第一数据包存储在当前缓存队列中与所述第一数据包的编号对应的位置;
子步骤S14,重复执行所述子步骤S11-子步骤S13,直到所述视频序列中所有第一数据包判断完毕,继续执行子步骤S15;
子步骤S15,在所述缓存队列中,判断所述第一数据包的数量是否与所述帧内编码帧所包含的第一数据包总数相等,若是,则执行子步骤S16,若否,则执行子步骤S17;
子步骤S16,判定所述帧内编码帧没有丢包;
子步骤S17,判定所述帧内编码帧丢包。
优选地,所述对所述帧内编码帧进行解码的步骤包括:
从所述缓存队列中读取所述帧内编码帧所包含的多个第一数据包;
将所述多个第一数据包发送至解码器,促使所述解码器进行解码;
删除所述缓存队列中所述多个第一数据包。
优选地,所述帧间预测帧包括多个第二数据包,所述每个第二数据包包括如下信息:所述帧间预测帧所包含的第二数据包总数、所述第二数据包的编号;
所述在判定所述帧内编码帧没有丢包时,分别判断所述帧间预测帧是否丢包的步骤包括:
依次将所述第二数据包存储在当前缓存队列中与所述第二数据包的编号对应的位置;
在判定所述帧内编码帧没有丢包时,针对每一个帧间预测帧,分别判断在所述缓存队列中其对应的多个第二数据包的数量是否与所述帧间预测帧所包含的第二数据包总数相等;
若是,则判定所述帧间预测帧没有丢包;
若否,则判定所述帧间预测帧丢包。
优选地,所述对所述帧间预测帧进行解码的步骤包括:
从所述缓存队列中读取所述帧间预测帧所包含的多个第二数据包;
将所述多个第二数据包发送至解码器,促使所述解码器进行解码;
删除所述缓存队列中所述多个第二数据包。
优选地,所述方法还包括:
当在所述缓存队列中删除所述多个第一数据包和/或多个第二数据包时,将所述缓存队列中剩下的其他数据包的位置前移。
本发明实施例还公开了一种视频数据解码的装置,所述装置应用于视联网中,所述装置包括:
视频接收模块,用于接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧;
第一判断模块,用于判断所述帧内编码帧是否丢包;
第一丢弃模块,用于在判定所述帧内编码帧丢包时,丢弃所述视频序列;
第一解码模块,用于在判定所述帧内编码帧没有丢包时,对所述帧内编码帧进行解码。
本发明实施例包括以下优点:
在本发明实施例中,当接收到节点服务器发送的包含帧内编码帧的视频序列时,判断该帧内编码帧是否出现丢包,如果是,则丢弃该视频序列,否则,对该帧内编码帧进行解码播放。通过本发明实施例,可以保证视频序列的完整性,避免视频播放时出现花屏或马赛克的现象。
其次,在本发明实施例中,由于判断数据包为I帧首包后会对缓存队列进行清空,以此隔离了与该I帧不相关的其他数据包,保证了I帧与其帧间预测帧的完整性,避免了花屏或马赛克的出现。
另外,本发明实施例对当前帧间预测帧判定没有丢包时,立即将该帧间预测帧发送给解码器解码,继而开始下一帧间预测帧的判断,以这种边判断解码边解码的方式进行多个帧间预测帧的判断,可以有效的提高了解码的实时性。
进一步的,在本发明实施例中,对于每个数据包,只是进行一次的I帧首包的判断,判断次数少,算法复杂度较低,计算效率高。
附图说明
图1是本发明的一种视联网的组网示意图;
图2是本发明的一种节点服务器的硬件结构示意图;
图3是本发明的一种接入交换机的硬件结构示意图;
图4是本发明的一种以太网协转网关的硬件结构示意图;
图5是本发明的一种视频数据解码的方法实施例一的步骤流程图;
图6是本发明的一种视频数据解码的方法实施例二的步骤流程图;
图7是本发明的一种视频数据解码的装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
视联网的组网如下所述:
视联网是一种集中控制的网络结构,该网络可以是树型网、星型网、环状网等等类型,但在此基础上网络中需要有集中控制节点来控制整个网络。
如图1所示,视联网分为接入网和城域网两部分。
接入网部分的设备主要可以分为3类:节点服务器,接入交换机,终端(包括各种机顶盒、编码板、存储器等)。节点服务器与接入交换机相连,接入交换机可以与多个终端相连,并可以连接以太网。
其中,节点服务器是接入网中起集中控制功能的节点,可控制接入交换机和终端。节点服务器可直接与接入交换机相连,也可以直接与终端相连。
类似的,城域网部分的设备也可以分为3类:城域服务器,节点交换机,节点服务器。城域服务器与节点交换机相连,节点交换机可以与多个节点服务器相连。
其中,节点服务器即为接入网部分的节点服务器,即节点服务器既属于接入网部分,又属于城域网部分。
城域服务器是城域网中起集中控制功能的节点,可控制节点交换机和节点服务器。城域服务器可直接连接节点交换机,也可直接连接节点服务器。
由此可见,整个视联网络是一种分层集中控制的网络结构,而节点服务器和城域服务器下控制的网络可以是树型、星型、环状等各种结构。
形象地称,接入网部分可以组成统一视频平台(虚线圈中部分),多个统一视频平台可以组成视联网;每个统一视频平台可以通过城域以及广域视联网互联互通。
视联网设备分类
1.1本发明实施例的视联网中的设备主要可以分为3类:服务器,交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。视联网整体上可以分为城域网(或者国家网、全球网等)和接入网。
1.2其中接入网部分的设备主要可以分为3类:节点服务器,接入交换机(包括以太网网关),终端(包括各种机顶盒,编码板,存储器等)。
各接入网设备的具体硬件结构为:
节点服务器:
如图2所示,主要包括网络接口模块201、交换引擎模块202、CPU模块203、磁盘阵列模块204;
其中,网络接口模块201,CPU模块203、磁盘阵列模块204进来的包均进入交换引擎模块202;交换引擎模块202对进来的包进行查地址表205的操作,从而获得包的导向信息;并根据包的导向信息把该包存入对应的包缓存器206的队列;如果包缓存器206的队列接近满,则丢弃;交换引擎模块202轮询所有包缓存器队列,如果满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。磁盘阵列模块204主要实现对硬盘的控制,包括对硬盘的初始化、读写等操作;CPU模块203主要负责与接入交换机、终端(图中未示出)之间的协议处理,对地址表205(包括下行协议包地址表、上行协议包地址表、数据包地址表)的配置,以及,对磁盘阵列模块204的配置。
接入交换机:
如图3所示,主要包括网络接口模块(下行网络接口模块301、上行网络接口模块302)、交换引擎模块303和CPU模块304;
其中,下行网络接口模块301进来的包(上行数据)进入包检测模块305;包检测模块305检测包的目地地址(DA)、源地址(SA)、数据包类型及包长度是否符合要求,如果符合,则分配相应的流标识符(stream-id),并进入交换引擎模块303,否则丢弃;上行网络接口模块302进来的包(下行数据)进入交换引擎模块303;CPU模块204进来的数据包进入交换引擎模块303;交换引擎模块303对进来的包进行查地址表306的操作,从而获得包的导向信息;如果进入交换引擎模块303的包是下行网络接口往上行网络接口去的,则结合流标识符(stream-id)把该包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃;如果进入交换引擎模块303的包不是下行网络接口往上行网络接口去的,则根据包的导向信息,把该数据包存入对应的包缓存器307的队列;如果该包缓存器307的队列接近满,则丢弃。
交换引擎模块303轮询所有包缓存器队列,在本发明实施例中分两种情形:
如果该队列是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零;3)获得码率控制模块产生的令牌;
如果该队列不是下行网络接口往上行网络接口去的,则满足以下条件进行转发:1)该端口发送缓存未满;2)该队列包计数器大于零。
码率控制模块208是由CPU模块204来配置的,在可编程的间隔内对所有下行网络接口往上行网络接口去的包缓存器队列产生令牌,用以控制上行转发的码率。
CPU模块304主要负责与节点服务器之间的协议处理,对地址表306的配置,以及,对码率控制模块308的配置。
以太网协转网关:
如图4所示,主要包括网络接口模块(下行网络接口模块401、上行网络接口模块402)、交换引擎模块403、CPU模块404、包检测模块405、码率控制模块408、地址表406、包缓存器407和MAC添加模块409、MAC删除模块410。
其中,下行网络接口模块401进来的数据包进入包检测模块405;包检测模块405检测数据包的以太网MAC DA、以太网MAC SA、以太网length or frame type、视联网目地地址DA、视联网源地址SA、视联网数据包类型及包长度是否符合要求,如果符合则分配相应的流标识符(stream-id);然后,由MAC删除模块410减去MAC DA、MAC SA、length or frame type(2byte),并进入相应的接收缓存,否则丢弃;
下行网络接口模块401检测该端口的发送缓存,如果有包则根据包的视联网目地地址DA获知对应的终端的以太网MAC DA,添加终端的以太网MAC DA、以太网协转网关的MAC SA、以太网length or frametype,并发送。
以太网协转网关中其他模块的功能与接入交换机类似。
终端:
主要包括网络接口模块、业务处理模块和CPU模块;例如,机顶盒主要包括网络接口模块、视音频编解码引擎模块、CPU模块;编码板主要包括网络接口模块、视音频编码引擎模块、CPU模块;存储器主要包括网络接口模块、CPU模块和磁盘阵列模块。
1.3城域网部分的设备主要可以分为2类:节点服务器,节点交换机,城域服务器。其中,节点交换机主要包括网络接口模块、交换引擎模块和CPU模块;城域服务器主要包括网络接口模块、交换引擎模块和CPU模块构成。
2.终端的入网过程:
首先每台允许入网的终端都必须在节点服务器中注册,没有注册的终端无法入网。所述终端入网的过程涉及以下步骤:
S1、节点服务器向每个端口发送查询包,终端收到查询包后发送应答包,该应答包中包含终端的注册信息;
S2、节点服务器收到终端发出的应答包后就知道哪个端口下接了哪种终端(机顶盒,编码板还是存储器),然后在节点服务器内部的注册信息表里找到该终端的信息,向该终端发送入网命令(告诉终端的接入网地址),终端收到入网命令后就入网了,同时向节点服务器发送入网命令应答;
S3、节点服务器收到终端发出的入网命令应答就知道本终端已经入网了,以后定时向这个端口发送状态查询包,检查终端是否正常工作。如果终端正常工作,收到状态查询包后会发送状态查询应答给节点服务器。当节点服务器一段时间之内没有收到状态查询应答,就认为本终端已经被移出网络,不再发送状态查询包,继续向本端口发送查询包。
为使本领域技术人员更好地理解视联网,以下提供几种应用视联网进行服务通信的示例:
3.1可视通信交互流程
开始可视通信:
主叫机顶盒发出申请命令,命令中有被叫机顶盒的号码。
节点服务器收到机顶盒的申请命令后先去查询被叫机顶盒是否入网,未入网则告知主叫机顶盒申请失败。
若是被叫机顶盒已入网则查询被叫机顶盒是否空闲,若是不空闲告知主叫机顶盒申请失败。
若是被叫机顶盒已入网并且处于空闲状态,节点服务器发送呼叫菜单给被叫机顶盒,等待被叫机顶盒应答。被叫机顶盒可以选择接受或者拒接,应答发送给节点服务器。
节点服务器收到被叫机顶盒的应答。如果是拒接,告知主叫机顶盒申请失败。
如果是接受,节点服务器发送编解码命令给双方机顶盒。可视通信要求,双方机顶盒要同时编解码。数据是单播数据,编码地址是对方地址,解码地址是自己的地址
节点服务器将被叫机顶盒和主叫机顶盒之间的的所有交换机的针对这2路单播数据的通路打开。
停止可视通信
被叫机顶盒和主叫机顶盒都可以提出停止申请。节点服务器收到机顶盒的停止命令后将被叫机顶盒和主叫机顶盒之间的的所有交换机的针对这2路单播数据的通路关闭。然后给被叫机顶盒和主叫机顶盒分别发送停止编解码的命令,发送上一页菜单,让机顶盒返回到菜单。
3.2、视频聊天,网上教室,市民热线:
参与方终端进入聊天室后,根据HLP键显示OSD内容,可申请视频上传,向主持送花。
主持方用户代理服务器,记录用户申请,并向直播终端发送OSD提示。
直播方终端,可能显示多条视频上传申请OSD,遥控器选择一路上传,并自动关闭上一路。
用户代理服务器,在关闭视频上传时,向计费流水帐发送特别计费包。
用户代理服务器,记录该用户送花值,通知直播方,并向计费流水帐发送特别计费包。
用户进入聊天室,送花,参与音频,开通视频对话所付费用,自动安比例存入个人邮箱。
视频聊天:主持人在家(现场)播出影像可达全网,主持人可看到观众申请,听到许多观众声音,但只能选择地看到1路观众影像。
观众通过节目表得知聊天室拨号加入,可向主持人鲜花(额外收费),可申请通话或视频。
3.3、会议(多路现场直播捆绑):(组播业务)
会议发起方终端或相连的MPC,编辑和维护会议操作表,实现多路进程捆绑。
1)大会发言:
发起方终端直接控制指定参与方的终端,并关闭参与方的遥控操作,强制被动参会。
强制实现发起方发言,参与收看。
发起方终端可在参与方不知情的前提下,收看任一参与方,或者指定其发言。
大会发言:适合上级领导报告,工程事件指挥,企业总部与远程分支间的例行调度会议。
2)课堂教学:
任意参与方终端,可向发起方终端提出发言申请,获得发起方批准后,即可发言。
课堂教学:实现会议聊天室,与直播聊天室的差别是直播观众永远看支持人,会议聊天观众看发言方,或者通过多屏终端同时看支持人和发言方。
3)圆桌讨论:
任意参与方终端,按单个ENTER键,即可打断别人而争抢发言(至少10秒不被打断)。
圆桌讨论:实现会议聊天室,与直播聊天室的差别是直播观众永远看支持人,会议聊天观众看发言方,或者通过多屏终端同时看支持人和发言方。
4)多屏会议:
用户代理服务器,可插入VOD。
必须使用PBOX终端,可同时显示发起方(主席)、发言方、本地会场、VOD或PC屏幕。
可选择大会发言,课堂教学,圆桌讨论等会议模式。
5)电视墙:
可同时显示发起方(主席)、发言方、多分路会场、VOD或PC屏幕。
可选择大会发言,课堂教学,圆桌讨论等会议模式。
3.4、电视电话:(单播业务)
6)普通可视电话:
用户代理服务器,维护电话号码簿,支持普通拨号和强制拨号。
用户终端进入通话后,根据HLP键显示OSD菜单,可将通信内容存入邮箱,可选择或调整对方摄像头角度。
7)被叫方付费可视电话(Video 800):
此类号码以800开头,用户免费,其他与普通可视电话相同。
被叫方付费可视电话:适用于广告、客户服务、公益服务等。
8)视讯服务电话(Video 900):
此类号码以900开头,主叫方为普通用户终端,服务费中除了通信费外,还包含较高的内容费(按秒计),其他与普通可视电话相同。
被叫方为内容提供商(内容包括实时通讯、VOD、电视杂志)。
9)家庭监控:
用户代理服务器,单向通信,只要视频发送资源不冲突,可与其他服务同时进行。
用户终端拨号进入监控后,根据HLP键显示OSD菜单,可将监控内容存入邮箱,可选择多路摄像头或调整对方摄像头角度。
被监控终端,可设定监控权限(指定一组可监控号码,开放所有号码,或禁止所有号码)。
家庭监控:适用于家庭、小商店、银行分理所等。
基于视联网的上述特性,提出了本发明实施例的核心构思之一,在视联网中将纠错排序算法与H264编码的特性结合起来,视频接收终端在接收到视频序列以后,首先按照纠错算法对视频序列进行按序排序,让后基于H264编码的特性判断视频序列中的帧内编码帧是否出现丢包,若出现丢包,则丢弃整个视频序列,否则,将该帧内编码帧进行解码播放,随后判断参考帧内编码帧的每个帧间预测帧是否出现丢包,若是,则丢弃该帧间预测帧,否则,将该帧间预测帧进行解码播放,以此避免视频出现花屏或马赛克的现象。
参照图5,示出了本发明的一种视频数据解码的方法实施例一的步骤流程图,该方法可以应用于视联网中,本发明实施例具体可以包括如下步骤:
步骤501,接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧;
步骤502,判断所述帧内编码帧是否丢包,若是,则执行步骤503;若否,则执行步骤504;
步骤503,丢弃所述视频序列;
步骤504,对所述帧内编码帧进行解码。
在本发明实施例中,当接收到节点服务器发送的包含帧内编码帧的视频序列时,判断该帧内编码帧是否出现丢包,如果是,则丢弃该视频序列,否则,对该帧内编码帧进行解码播放。例如,视频序列为IPPPPP,若判定I帧没有丢包,则将I帧解码播放;若判定I帧出现丢包,则丢弃该视频序列IPPPPP。通过本发明实施例,可以保证视频序列的完整性,避免视频播放时出现花屏或马赛克的现象。
参照图6,示出了本发明的一种视频数据解码的方法实施例二的步骤流程图,该方法可以应用于视联网中,本发明实施例具体可以包括如下步骤:
步骤601,接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧以及参照所述帧内编码帧进行编码的一个或多个帧间预测帧;
本发明实施例可以应用于上述视联网中会议、视频聊天、可视通信交互等场景,节点服务器的作用是从视频发送终端中接收视频序列,并将该视频序列发送至视频接收终端中。其中,视频发送终端是指对视频数据进行编码,并将编码后的视频数据以视频序列的形式发送至节点服务器的终端,视频接收终端是指从节点服务器中接收视频序列的终端。
在具体实现中,视频发送终端可以采用H.264(即H264)编码技术对视频数据进行编码,H264编码格式是一种压缩编码格式,它被广泛的使用在高精度视频的录制、压缩和发布。H264编码格式能够在更低带宽下提供优质视频。在H264协议里定义了帧内编码帧以及帧间预测帧两种格式,其中,帧内编码帧也称为I帧,是经过完整编码的帧;帧间预测帧进一步可以分为单向帧间预测帧P帧以及双向帧间预测帧B帧,P帧为参考之前的I帧生成的只包含差异部分编码的帧,B帧为参考前后的帧编码的帧。在实际中,I帧、B帧、P帧等可以通过帧号进行区别。
由于每个视频帧(帧内编码帧和/或帧间预测帧)的帧大小是不固定的,因此,视频发送终端在发送视频帧时可以将视频帧拆分成多个数据包进行发送,并对每个数据包进行编号。每个数据包的头部信息都承载相关的信息,如当前视频帧号、视频帧拆分的数据包总数、当前视频分包编号、校验码,等等。
具体的,视频发送终端将帧内编码帧拆分成多个第一数据包,每个第一数据包包括如下信息:帧内编码帧所包含的第一数据包总数、该第一数据包的编号,为帧内编码帧的第几个数据包等,例如,视频发送终端将I帧拆分成I1、I2、I3三个第一数据包,则I1数据包头包括的信息可以为:I帧拆分的数据包总数为3,当前第一数据包编号为1,为当前帧的第一个数据包。在实际中,数据包的编号可以直接表示该数据包为当前视频帧的第几个分包,例如,I1的编号为1,表示I1为I帧的第一个数据包。
与上述帧内编码帧类似,视频发送终端将帧间预测帧拆分成多个第二数据包,该第二数据包可以包括如下信息:该帧间预测帧所包含的第二数据包总数、该第二数据包的编号,该第二数据包为帧间预测帧的第几个数据包,等等。例如,视频发送终端将P帧拆分成P4、P5、P6三个第二数据包,则P4数据包头包括的信息可以为:P帧拆分的数据包总数为3,当前第一数据包编号为4,P4为P帧的第一个分包。
在实际中,第二数据包的编号与第一数据包的编号为连续的编号,计算该第二数据包为帧间预测帧的第几个分包时,可以将该第二数据包的编号减去帧内编码帧的总数获得,例如,上例中的P4,由于I帧有三个分包,则P4为P帧的第(4-3=1)个分包。当然,第二数据包的编号跟第一数据包的编号也可以不连续,例如,第二数据包的编号也是从“1”开始,本发明实施例对此无需加以限制。
本发明实施例中的视频序列是指,帧内编码帧和/或与所述帧内编码帧对应的帧间预测帧所组成的数据包序列,也即,视频序列包括一个I帧,和/或,一个或多个参考I帧的P帧或B帧所组成的数据包序列。例如,“IPPPPP”为一个视频序列;“IPPPPP IPPP”则为两个视频序列,分别为:“IPPPPP”及“IPPP”。
步骤602,若所述视频序列为乱序序列,则将所述视频序列进行排序;
在具体实现中,由于网络的不稳定,视频接收终端接收到的视频序列可能是无序或者乱序的数据包(包括多个第一数据包和/或多个第二数据包),此时视频接收终端可以将该无序或乱序的数据包进行重新排序。
为了便于观察以及便于数据的处理,视频接收终端可以根据每个数据包的编号将多个数据包以增序的形式进行排序,使得数据包以增大模式输出。例如,视频接收终端依次接收到的视频序列为:I1,I3,I2,P4,P6,P5;排序后的视频序列为:I1,I2,I3,P4,P5,P6。
步骤603,判断所述帧内编码帧是否丢包;若是,则执行步骤604,若否,则执行步骤605;
视频接收终端对视频序列进行重新排序后,进一步对该视频序列按照H264的编码特性进行组帧,以判断该视频序列是否出现丢包现象。
由于I帧是完整编码的帧,P帧或B帧是参照I帧编码的帧,因此在解码时,I帧只需要本帧数据就可以完成解码,P帧需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面;B帧需要通过前后画面的与本帧数据的叠加取得最终的画面。因此,本发明实施例首先判断基础帧I帧是否出现丢包。
在本发明的一种优选实施例中,步骤603进一步可以包括如下子步骤:
子步骤S11,从所述视频序列中编号最小的第一数据包开始,依次判断所述第一数据包是否为帧内编码帧首包,若是,则执行子步骤S12;若否,则执行子步骤S13;
具体而言,若以增序的形式进行视频序列中数据包的排序,则排序在视频序列中的编号最小的数据包为视频序列中的第一个数据包,由于I帧为基础帧,其数据包通常排列在视频序列的前面,因此,视频序列的第一个数据包为第一数据包中的一个。
在本发明实施例中,依次判断视频序列中的每个数据包是否为I帧首包,在具体实现中,由于数据包的包头信息包括该数据包属于哪个帧的第几个数据包等信息,因此可以根据每个数据包的包头所携带的信息来判断该数据包是否为I帧首包。
子步骤S12,清空当前缓存队列,并将所述第一数据包存储在所述缓存队列的首位;
若判断视频序列中的某一数据包为I帧首包,则可以清空预先设置的缓存队列,并将该I帧首包放置在缓存队列的第一个位置中,以保证缓存队列都是从I帧首包开始的,从而保证了后续关于I帧及其帧间预测帧的连续性和完整性判断。
子步骤S13,将所述第一数据包存储在当前缓存队列中与所述第一数据包的编号对应的位置;
若判断视频序列中的某一数据包不为I帧首包,则将该数据包插入缓存队列中与该数据包的编号对应的位置。
子步骤S14,重复执行所述子步骤S11-子步骤S13,直到所述视频序列中所有第一数据包判断完毕,继续执行子步骤S15;
对缓存队列中每个数据包都执行子步骤S11-子步骤S13的操作,直到视频序列中每个第一数据包都判断完毕。
例如,对于上述视频序列I1,I2,I3,P4,P5,P6,执行如下判断过程:
(1)对I1进行判断,判断I1为I帧首包,则清空缓存队列,将I1放置在缓存队列的第一位置中,得到的队列为:I1;
(2)对I2进行判断,判定I2不是I帧首包,则将I2插入缓存队列I1的后一位置中,得到的队列为I1,I2;
(3)对I3进行判断,判定I3不是I帧首包,则将I3插入缓存队列I2的后一位置中,得到的队列为I1,I2,I3。
子步骤S15,在所述缓存队列中,判断所述第一数据包的数量是否与所述帧内编码帧所包含的第一数据包总数相等,若是,则执行子步骤S16,若否,则执行子步骤S17;
子步骤S16,判定所述帧内编码帧没有丢包;
子步骤S17,判定所述帧内编码帧丢包。
当视频序列中的所有第一数据包都判断完毕后,此时判断缓存队列中的第一数据包的数量是否与第一数据包包头中示出的I帧所包含的第一数据包总数相等,如果相等,说明该I帧并没有丢包;否则,说明该I帧出现了丢包。
在实际中,可以查看缓存队列中是否存在连续数据来辅助判断是否出现丢包,例如,在上述子步骤S14中得到的缓存队列I1,I2,I3中,存在连续数据I1,I2,I3,共有三个数据包,而数据包包头表示的I帧的分包总数为3个,分别为I1、I2、I3,则可以得出该I帧并没有出现丢包的结论。又如,若缓存队列I1,I2,I3中,存在连续数据I1,I2,I3,共有三个数据包,而每个数据包包头表示的I帧的分包总数为4个,分别为I1、I2、I3、I4,则可以得出该I帧出现丢包(I4出现丢包)的结论。
步骤604,丢弃所述视频序列,流程结束;
如果I帧出现丢包,则丢弃整个视频序列,以防止花屏或马赛克的现象出现,例如,IPPP这个视频序列中,如果I帧出现丢包,则将整个IPPP序列丢弃。
步骤605,对所述帧内编码帧进行解码,并执行步骤606;
如果I帧没有出现丢包,则可以将该I帧解码播放。在本发明的一种优选实施例中,步骤605可以包括如下子步骤:
子步骤S21,从所述缓存队列中读取所述帧内编码帧所包含的多个第一数据包;
子步骤S22,将所述多个第一数据包发送至解码器,促使所述解码器进行解码;
子步骤S23,删除所述缓存队列中所述多个第一数据包。
具体来说,如果I帧没有出现丢包,即I帧完整的接收,则可以将缓存队列中该I帧的所有第一数据包发送至解码器进行解码。为了节省缓存队列的存储空间,在将I帧的所有第一数据包发送至解码器后,可以将缓存队列中的该I帧的所有数据包删除,以归还该多个第一数据包所占的存储空间,此时,缓存队列中剩下的其他数据包的位置可以前移。
为了提高数据校验的准确性以及保证数据的连续性,在将I帧数据发送至解码器后,可以记录该I帧的最后一个第一数据包的编号,以确保下一次进行丢包判断以及发送至解码器的数据包的编号是该编号之后的连续编号。例如,将I1,I2,I3发送至解码器后,记录最后一个编号为“3”,则下一次进行丢包判断以及发送至解码器的编号从“4”开始。
步骤606,分别判断所述帧间预测帧是否丢包,若是,则执行步骤607;若否,则执行步骤608;
在判定I帧没有出现丢包,并将I帧的数据发送至解码器以后,本发明实施例进一步判断参考I帧的每个帧间预测帧是否出现丢包。
在本发明的一种优选实施例中,步骤606可以包括如下子步骤:
子步骤S31,依次将所述第二数据包存储在当前缓存队列中与所述第二数据包的编号对应的位置;
在对每个第二数据包进行判断时,由于可以肯定其不是I帧首包,因此参照上述子步骤S13的逻辑,直接将其插入缓存队列与该编号对应的位置中。
例如,对于上述视频序列I1,I2,I3,P4,P5,P6,在判定I帧没有丢包的情况下,还可以执行如下判断过程:
(4)由于上述记录的是编号“3”,则从编号“4”开始判断,对P4进行判断,由于将I1-I3发送至解码器后,I1-I3在解码器中的数据会删除,判定P4不是I帧首包,则将P4前移到缓存队列首位,得到的队列为:P4;
(5)对P5进行判断,判定P5不是I帧首包,则将P5插入缓存队列P4的后一位置中,得到的队列为:P4,P5;
(6)对P6进行判断,判定P6不是I帧首包,则将P6插入缓存队列P5的后一位置中,得到的队列为:P4,P5,P6。
子步骤S32,在判定所述帧内编码帧没有丢包时,针对每一个帧间预测帧,分别判断在所述缓存队列中其对应的多个第二数据包的数量是否与所述帧间预测帧所包含的第二数据包总数相等,若是,则执行子步骤S33,若否,则执行子步骤S34。
子步骤S33,判定所述帧间预测帧没有丢包;
子步骤S34,判定所述帧间预测帧丢包。
当视频序列中的第一个帧间预测帧的所有第二数据包都判断完毕后,此时判断缓存队列中的第二数据包的数量是否与第二数据包包头中示出的帧间预测帧所包含的第二数据包总数相等,如果相等,说明该帧间预测帧并没有丢包;否则,说明该帧间预测帧出现了丢包。在实际中,可以查看缓存队列中是否存在连续数据来辅助判断是否出现丢包,例如,存在连续数据P4、P5、P6共有三个第二数据包,而第二数据包包头表示的帧间预测帧的分包总数为3个,分别为P4、P5、P6,此时则可以得出该帧间预测帧并没有出现丢包的结论。
步骤607,丢弃对应的帧间预测帧;
如果当前帧间预测帧出现丢包,则丢弃该帧间预测帧,并进行下一帧间预测帧的判断,例如,IPPP这个视频序列中,如果I帧没有丢包,第一个P帧丢包了,则丢弃该第一个P帧,并开始第二个P帧的判断。
步骤608,对所述帧间预测帧进行解码。
在本发明的一种优选实施例中,步骤608可以包括如下子步骤:
子步骤S41,从所述缓存队列中读取所述帧间预测帧所包含的多个第二数据包;
子步骤S42,将所述多个第二数据包发送至解码器,促使所述解码器进行解码;
子步骤S43,删除所述缓存队列中所述多个第二数据包。
具体来说,如果当前帧间预测帧没有出现丢包,则可以将该帧间预测帧的所有第二数据包发送至解码器进行解码,并开始下一帧间预测帧的判断。
为了节省缓存队列的存储空间,在将当前帧间预测帧的所有第二数据包发送至解码器后,可以将缓存队列中的该帧间预测帧的所有第二数据包删除,以归还该多个第二数据包所占的存储空间,此时,缓存队列中剩下的数据包的位置可以前移。
为了提高数据校验的准确性和保证数据的连续性,在将当前帧间预测帧的数据包发送至解码器后,可以记录最后一个第二数据包的编号,以确保下一次进行丢包判断以及发送至解码器的数据包的编号是该编号之后的连续编号。
为了使本领域技术人员更好的理解本发明实施例,以下以一个具体实例加以说明:
1)接收节点服务器发送的两个视频序列:IPPPPP IPPP;
2)判断第一个视频序列“IPPPPP”中的I帧是否出现丢包,过程可以表示如下:分别对组成该I帧的多个第一数据包判断是否为I帧首包,若是,则清空缓存队列,将清空缓存队列,并将该I帧首包放置在缓存队列的首位;否则,将该第一数据包放置在缓存队列与该数据包编号对应的位置中;进一步判断缓存队列中是否存在连续编号的第一数据包,若存在,则判断该连续编号的第一数据包的数量是否为I帧的分包总数,编号是否为I帧的分包的编号,如果两者都是肯定的,则判定该帧没有丢包。
3)如果I帧没有丢包,则将该I帧发送至解码器,由解码器进行解码显示,继续执行步骤5);
4)如果I帧出现丢包,则将视频序列“IPPPPP”丢弃,继续执行步骤7);
5)判断视频序列“IPPPPP”中第一个P帧是否出现丢包,判断过程与上述步骤2)中I帧的判断过程类似,此处不再赘述;
6)若第一个P帧出现丢包,则丢弃该P帧;否则,则将该P帧发送至解码器进行解码,并进一步判断第二个P帧是否出现丢包。重复上述步骤5)和步骤6),直到视频序列“IPPPPP”中所有的P帧判断完毕,继续执行步骤7);
7)判断第二个视频序列“IPPP”中的I帧是否出现丢包,判断过程与上述步骤2)中I帧的判断过程类似,此处不再赘述;
8)如果I帧没有丢包,则将该I帧发送至解码器,由解码器进行解码显示,继续执行步骤10);
9)如果I帧出现丢包,则将视频序列“IPPP”丢弃,结束流程;
10)判断视频序列“IPPP”中第一个P帧是否出现丢包,判断过程与上述步骤2)中I帧的判断过程类似,此处不再赘述;
11)若第一个P帧出现丢包,则丢弃该P帧;否则,则将该P帧发送至解码器进行解码,并进一步判断第二个P帧是否出现丢包。重复上述步骤10)和步骤11),直到视频序列“IPPP”中所有的P帧判断完毕,结束流程。
在本实例中,如果“IPPPPP”中出现丢包,则其对应的数据包留在缓存队列中,当下一I帧的I帧首包到来时,清空缓存队列,相当于丢弃该丢包的数据包,这样该数据包就不会送到解码器进行解码,因此不会出现花屏或马赛克现象。
本发明实施例对当前帧间预测帧判定没有丢包时,立即将该帧间预测帧发送给解码器解码,继而开始下一帧间预测帧的判断,以这种边判断解码边解码的方式进行多个帧间预测帧的判断,可以有效的提高了解码的实时性。
另外,在本发明实施例中,对于每个数据包,只是进行一次的I帧首包的判断,判断次数少,算法复杂度较低,计算效率高。
在本发明实施例中,由于判断数据包为I帧首包后会对缓存队列进行清空,以此隔离了与该I帧不相关的其他数据包,保证了I帧与其帧间预测帧的完整性,避免了花屏或马赛克的出现。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
参照图7,示出了本发明的一种视频数据解码的装置实施例的结构框图,该装置可以应用于视联网中,可以包括如下模块:
视频接收模块701,用于接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧;
第一判断模块702,用于判断所述帧内编码帧是否丢包;
第一丢弃模块703,用于在判定所述帧内编码帧丢包时,丢弃所述视频序列;
第一解码模块704,用于在判定所述帧内编码帧没有丢包时,对所述帧内编码帧进行解码。
在本发明的一种优选实施例中,所述视频序列还包括参照所述帧内编码帧进行编码的一个或多个帧间预测帧;所述装置还包括:
第二判断模块,用于在判定所述帧内编码帧没有丢包时,分别判断所述帧间预测帧是否丢包;
第二丢弃模块,用于在判定所述帧间预测帧丢包时,丢弃对应的帧间预测帧;
第二解码模块,用于在判定所述帧间预测帧没有丢包时,对所述帧间预测帧进行解码。
在本发明的一种优选实施例中,所述第一丢弃模块包括:
丢弃子模块,用于丢弃所述帧内编码帧以及与所述帧内编码帧对应的帧间预测帧。
在本发明的一种优选实施例中,所述装置还包括:
排序模块,用于在所述视频序列为乱序序列时,将所述视频序列进行排序。
在本发明的一种优选实施例中,所述帧内编码帧包括多个第一数据包,所述每个第一数据包包括如下信息:所述帧内编码帧所包含的第一数据包总数、所述第一数据包的编号;
所述第一判断模块702包括:
首包判断子模块,用于从所述视频序列中编号最小的第一数据包开始,依次判断所述第一数据包是否为帧内编码帧首包;
队列清空子模块,用于在判定所述第一数据包为帧内编码帧首包时,清空当前缓存队列,并将所述第一数据包存储在所述缓存队列的首位;
数据插入子模块,用于在判定所述第一数据包不为帧内编码帧首包时,将所述第一数据包存储在当前缓存队列中与所述第一数据包的编号对应的位置;
第一组帧判断子模块,用于在所述缓存队列中,判断所述第一数据包的数量是否与所述帧内编码帧所包含的第一数据包总数相等;
第一判定子模块,用于在判定所述第一数据包的数量与所述帧内编码帧所包含的第一数据包总数相等时,判定所述帧内编码帧没有丢包;
第二判定子模块,用于在判定所述第一数据包的数量与所述帧内编码帧所包含的第一数据包总数不相等时,判定所述帧内编码帧丢包。
在本发明的一种优选实施例中,所述第一解码模块704包括:
第一读取子模块,用于从所述缓存队列中读取所述帧内编码帧所包含的多个第一数据包;
第一数据发送子模块,用于将所述多个第一数据包发送至解码器,促使所述解码器进行解码;
第一数据删除子模块,用于删除所述缓存队列中所述多个第一数据包。
在本发明的一种优选实施例中,所述帧间预测帧包括多个第二数据包,所述每个第二数据包包括如下信息:所述帧间预测帧所包含的第二数据包总数、所述第二数据包的编号;
所述第二判断模块包括:
数据存储子模块,用于依次将所述第二数据包存储在当前缓存队列中与所述第二数据包的编号对应的位置;
第二组帧判断子模块,用于在判定所述帧内编码帧没有丢包时,针对每一个帧间预测帧,分别判断在所述缓存队列中其对应的多个第二数据包的数量是否与所述帧间预测帧所包含的第二数据包总数相等;
第三判定子模块,用于在判定所述缓存队列中所述帧间预测帧对应的多个第二数据包的数量与所述帧间预测帧所包含的第二数据包总数相等时,判定所述帧间预测帧没有丢包;
第四判定子模块,用于在判定所述缓存队列中所述帧间预测帧对应的多个第二数据包的数量与所述帧间预测帧所包含的第二数据包总数不相等时,判定所述帧间预测帧丢包。
在本发明的一种优选实施例中,所述第二解码模块包括:
第二读取子模块,用于从所述缓存队列中读取所述帧间预测帧所包含的多个第二数据包;
第二数据发送子模块,用于将所述多个第二数据包发送至解码器,促使所述解码器进行解码;
第二数据删除子模块,用于删除所述缓存队列中所述多个第二数据包。
在本发明的一种优选实施例中,所述装置还包括:
数据前移模块,用于在所述缓存队列中删除所述多个第一数据包和/或多个第二数据包时,将所述缓存队列中剩下的其他数据包的位置前移。
对于装置实施例而言,由于其与上述的方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种视频数据解码的方法及装置进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种视频数据解码的方法,其特征在于,所述方法应用于视联网中,所述方法包括:
接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧;
判断所述帧内编码帧是否丢包;
若是,则丢弃所述视频序列;
若否,则对所述帧内编码帧进行解码。
2.根据权利要求1所述的方法,其特征在于,所述视频序列还包括参照所述帧内编码帧进行编码的一个或多个帧间预测帧;所述方法还包括:
在判定所述帧内编码帧没有丢包时,分别判断所述帧间预测帧是否丢包;
若是,则丢弃对应的帧间预测帧;
若否,则对所述帧间预测帧进行解码。
3.根据权利要求2所述的方法,其特征在于,所述丢弃所述视频序列的步骤包括:
丢弃所述帧内编码帧以及与所述帧内编码帧对应的帧间预测帧。
4.根据权利要求2或3所述的方法,其特征在于,在所述判断所述帧内编码帧是否丢包的步骤之前,还包括:
若所述视频序列为乱序序列,则将所述视频序列进行排序。
5.根据权利要求4所述的方法,其特征在于,所述帧内编码帧包括多个第一数据包,所述每个第一数据包包括如下信息:所述帧内编码帧所包含的第一数据包总数、所述第一数据包的编号;
所述判断所述帧内编码帧是否丢包的步骤包括:
子步骤S11,从所述视频序列中编号最小的第一数据包开始,依次判断所述第一数据包是否为帧内编码帧首包,若是,则执行子步骤S12;若否,则执行子步骤S13;
子步骤S12,清空当前缓存队列,并将所述第一数据包存储在所述缓存队列的首位;
子步骤S13,将所述第一数据包存储在当前缓存队列中与所述第一数据包的编号对应的位置;
子步骤S14,重复执行所述子步骤S11-子步骤S13,直到所述视频序列中所有第一数据包判断完毕,继续执行子步骤S15;
子步骤S15,在所述缓存队列中,判断所述第一数据包的数量是否与所述帧内编码帧所包含的第一数据包总数相等,若是,则执行子步骤S16,若否,则执行子步骤S17;
子步骤S16,判定所述帧内编码帧没有丢包;
子步骤S17,判定所述帧内编码帧丢包。
6.根据权利要求5所述的方法,其特征在于,所述对所述帧内编码帧进行解码的步骤包括:
从所述缓存队列中读取所述帧内编码帧所包含的多个第一数据包;
将所述多个第一数据包发送至解码器,促使所述解码器进行解码;
删除所述缓存队列中所述多个第一数据包。
7.根据权利要求2或3所述的方法,其特征在于,所述帧间预测帧包括多个第二数据包,所述每个第二数据包包括如下信息:所述帧间预测帧所包含的第二数据包总数、所述第二数据包的编号;
所述在判定所述帧内编码帧没有丢包时,分别判断所述帧间预测帧是否丢包的步骤包括:
依次将所述第二数据包存储在当前缓存队列中与所述第二数据包的编号对应的位置;
在判定所述帧内编码帧没有丢包时,针对每一个帧间预测帧,分别判断在所述缓存队列中其对应的多个第二数据包的数量是否与所述帧间预测帧所包含的第二数据包总数相等;
若是,则判定所述帧间预测帧没有丢包;
若否,则判定所述帧间预测帧丢包。
8.根据权利要求7所述的方法,其特征在于,所述对所述帧间预测帧进行解码的步骤包括:
从所述缓存队列中读取所述帧间预测帧所包含的多个第二数据包;
将所述多个第二数据包发送至解码器,促使所述解码器进行解码;
删除所述缓存队列中所述多个第二数据包。
9.根据权利要求6或8所述的方法,其特征在于,还包括:
当在所述缓存队列中删除所述多个第一数据包和/或多个第二数据包时,将所述缓存队列中剩下的其他数据包的位置前移。
10.一种视频数据解码的装置,其特征在于,所述装置应用于视联网中,所述装置包括:
视频接收模块,用于接收节点服务器发送的视频序列,所述视频序列包括帧内编码帧;
第一判断模块,用于判断所述帧内编码帧是否丢包;
第一丢弃模块,用于在判定所述帧内编码帧丢包时,丢弃所述视频序列;
第一解码模块,用于在判定所述帧内编码帧没有丢包时,对所述帧内编码帧进行解码。
CN201510272464.2A 2015-05-25 2015-05-25 一种视频数据解码的方法及装置 Active CN106303693B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510272464.2A CN106303693B (zh) 2015-05-25 2015-05-25 一种视频数据解码的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510272464.2A CN106303693B (zh) 2015-05-25 2015-05-25 一种视频数据解码的方法及装置

Publications (2)

Publication Number Publication Date
CN106303693A true CN106303693A (zh) 2017-01-04
CN106303693B CN106303693B (zh) 2019-02-05

Family

ID=57634569

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510272464.2A Active CN106303693B (zh) 2015-05-25 2015-05-25 一种视频数据解码的方法及装置

Country Status (1)

Country Link
CN (1) CN106303693B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107454466A (zh) * 2017-08-11 2017-12-08 中广热点云科技有限公司 一种视频数据处理方法
CN107666433A (zh) * 2017-09-13 2018-02-06 上海展扬通信技术有限公司 一种基于智能终端的语音中继方法及语音中继系统
CN108632679A (zh) * 2017-09-07 2018-10-09 北京视联动力国际信息技术有限公司 一种多媒体数据传输的方法和一种视联网终端
CN108881775A (zh) * 2018-05-30 2018-11-23 维沃移动通信有限公司 一种视频通信方法和移动终端
CN108965221A (zh) * 2017-12-05 2018-12-07 北京视联动力国际信息技术有限公司 一种数据处理方法及视联网会议服务器
CN109246486A (zh) * 2018-10-16 2019-01-18 视联动力信息技术股份有限公司 一种组帧方法和装置
CN109996127A (zh) * 2019-03-20 2019-07-09 视联动力信息技术股份有限公司 基于视联网的数据传输方法和装置
CN110519598A (zh) * 2019-08-23 2019-11-29 香港乐蜜有限公司 视频解码方法、装置及设备
CN110611666A (zh) * 2019-08-30 2019-12-24 视联动力信息技术股份有限公司 一种视联网信息的处理方法及装置
CN110769380A (zh) * 2019-10-31 2020-02-07 联想(北京)有限公司 视频分发方法及装置
CN111601178A (zh) * 2020-05-26 2020-08-28 维沃移动通信有限公司 视频数据处理方法、装置和电子设备
CN112235616A (zh) * 2020-10-16 2021-01-15 杭州觅睿科技有限公司 一种视频传输方法、装置、设备及介质
CN113099272A (zh) * 2021-04-12 2021-07-09 上海商汤智能科技有限公司 视频处理方法及装置、电子设备和存储介质
CN114205662A (zh) * 2021-12-13 2022-03-18 北京蔚领时代科技有限公司 iOS端的低延迟视频渲染方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101692711A (zh) * 2009-09-08 2010-04-07 中兴通讯股份有限公司 视频编解码方法、系统及一种视频监控系统
JP4952636B2 (ja) * 2008-03-31 2012-06-13 サクサ株式会社 映像通信装置および映像通信方法
CN102547239A (zh) * 2011-12-29 2012-07-04 浙江工业大学 基于Android移动终端的视频监控系统
CN102870416A (zh) * 2011-02-25 2013-01-09 松下电器产业株式会社 运动图像编码装置以及运动图像解码装置
CN103124380A (zh) * 2012-11-16 2013-05-29 佳都新太科技股份有限公司 一种基于h264的实时流媒体丢包处理方案

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4952636B2 (ja) * 2008-03-31 2012-06-13 サクサ株式会社 映像通信装置および映像通信方法
CN101692711A (zh) * 2009-09-08 2010-04-07 中兴通讯股份有限公司 视频编解码方法、系统及一种视频监控系统
CN102870416A (zh) * 2011-02-25 2013-01-09 松下电器产业株式会社 运动图像编码装置以及运动图像解码装置
CN102547239A (zh) * 2011-12-29 2012-07-04 浙江工业大学 基于Android移动终端的视频监控系统
CN103124380A (zh) * 2012-11-16 2013-05-29 佳都新太科技股份有限公司 一种基于h264的实时流媒体丢包处理方案

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107454466B (zh) * 2017-08-11 2019-07-05 中广热点云科技有限公司 一种视频数据处理方法
CN107454466A (zh) * 2017-08-11 2017-12-08 中广热点云科技有限公司 一种视频数据处理方法
CN108632679A (zh) * 2017-09-07 2018-10-09 北京视联动力国际信息技术有限公司 一种多媒体数据传输的方法和一种视联网终端
CN107666433A (zh) * 2017-09-13 2018-02-06 上海展扬通信技术有限公司 一种基于智能终端的语音中继方法及语音中继系统
CN108965221A (zh) * 2017-12-05 2018-12-07 北京视联动力国际信息技术有限公司 一种数据处理方法及视联网会议服务器
CN108881775A (zh) * 2018-05-30 2018-11-23 维沃移动通信有限公司 一种视频通信方法和移动终端
CN109246486B (zh) * 2018-10-16 2021-01-22 视联动力信息技术股份有限公司 一种组帧方法和装置
CN109246486A (zh) * 2018-10-16 2019-01-18 视联动力信息技术股份有限公司 一种组帧方法和装置
CN109996127A (zh) * 2019-03-20 2019-07-09 视联动力信息技术股份有限公司 基于视联网的数据传输方法和装置
CN110519598A (zh) * 2019-08-23 2019-11-29 香港乐蜜有限公司 视频解码方法、装置及设备
CN110611666A (zh) * 2019-08-30 2019-12-24 视联动力信息技术股份有限公司 一种视联网信息的处理方法及装置
CN110611666B (zh) * 2019-08-30 2021-03-05 视联动力信息技术股份有限公司 一种视联网信息的处理方法及装置
CN110769380A (zh) * 2019-10-31 2020-02-07 联想(北京)有限公司 视频分发方法及装置
CN111601178A (zh) * 2020-05-26 2020-08-28 维沃移动通信有限公司 视频数据处理方法、装置和电子设备
CN112235616A (zh) * 2020-10-16 2021-01-15 杭州觅睿科技有限公司 一种视频传输方法、装置、设备及介质
CN112235616B (zh) * 2020-10-16 2021-07-13 杭州觅睿科技股份有限公司 一种视频传输方法、装置、设备及介质
CN113099272A (zh) * 2021-04-12 2021-07-09 上海商汤智能科技有限公司 视频处理方法及装置、电子设备和存储介质
CN114205662A (zh) * 2021-12-13 2022-03-18 北京蔚领时代科技有限公司 iOS端的低延迟视频渲染方法及装置
CN114205662B (zh) * 2021-12-13 2024-02-20 北京蔚领时代科技有限公司 iOS端的低延迟视频渲染方法及装置

Also Published As

Publication number Publication date
CN106303693B (zh) 2019-02-05

Similar Documents

Publication Publication Date Title
CN106303693A (zh) 一种视频数据解码的方法及装置
CN108965776B (zh) 一种通信方法以及通信系统
US8391278B2 (en) Method of providing a service over a hybrid network and system thereof
CN108965780B (zh) 一种监控画面的显示方法和系统
CN108881797B (zh) 一种视联网的数据处理方法和装置
JP2005534207A5 (zh)
CN110324580B (zh) 一种基于视联网的监控视频播放方法及装置
CN110049271B (zh) 一种视联网会议信息展示方法及装置
CN109756789B (zh) 一种音视频数据包的丢包处理方法和系统
CN109462761A (zh) 一种视频解码方法及装置
CN109246486B (zh) 一种组帧方法和装置
CN110049273B (zh) 一种基于视联网的会议录制方法和中转服务器
CN110113631A (zh) 一种视频流共享方法和系统
CN110062191A (zh) 一种基于视联网的多方组会方法和服务器
CN110475094A (zh) 视频会议处理方法、装置及可读存储介质
CN105122791A (zh) 用于优化大规模视频会议的方法和设备
CN113194278A (zh) 一种会议控制方法、装置及计算机可读存储介质
CN109963108B (zh) 一种一对多对讲的方法和装置
CN108881788A (zh) 一种基于视联网的数据处理方法和装置
CN110049268A (zh) 一种可视电话连接方法及装置
CN110661992A (zh) 数据处理方法和装置
CN105191295B (zh) 用于在视频会议中管理媒体流的方法和设备
CN110049275A (zh) 视频会议中的信息处理方法、装置及存储介质
CN110018861A (zh) 一种应用程序的消息提示方法和装置
CN108881793A (zh) 一种视联网的数据处理方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB02 Change of applicant information

Address after: 100000 Dongcheng District, Beijing, Qinglong Hutong 1, 1103 house of Ge Hua building.

Applicant after: Video Link Power Information Technology Co., Ltd.

Address before: 100000 Beijing Dongcheng District gogoa building A1103-1113

Applicant before: BEIJING VISIONVERA INTERNATIONAL INFORMATION TECHNOLOGY CO., LTD.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant