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

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

Info

Publication number
CN111147860B
CN111147860B CN201911341190.2A CN201911341190A CN111147860B CN 111147860 B CN111147860 B CN 111147860B CN 201911341190 A CN201911341190 A CN 201911341190A CN 111147860 B CN111147860 B CN 111147860B
Authority
CN
China
Prior art keywords
decoder
channel
list
video data
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
CN201911341190.2A
Other languages
English (en)
Other versions
CN111147860A (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.)
Visionvera Information Technology Co Ltd
Original Assignee
Visionvera 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 Visionvera Information Technology Co Ltd filed Critical Visionvera Information Technology Co Ltd
Priority to CN201911341190.2A priority Critical patent/CN111147860B/zh
Publication of CN111147860A publication Critical patent/CN111147860A/zh
Application granted granted Critical
Publication of CN111147860B publication Critical patent/CN111147860B/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/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/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
    • H04N19/423Methods 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 characterised by memory arrangements
    • 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
    • H04N19/436Methods 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 using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/53Multi-resolution motion estimation; Hierarchical motion estimation

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明实施例提供了一种视频数据的解码方法及装置,该方法包括:接收目标视频数据;获取所述目标视频数据的视频分辨率;在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器;利用所述第一解码器对所述目标视频数据进行解码。因此,本发明的实施例,预先创建解码器集群,从而可以在每次视频流切换时,直接从解码器集群中获取解码能力与视频分辨率匹配的解码器进行解码即可,不需要频繁的销毁和创建解码器,进而可以在一定程度上节省计算机资源。

Description

一种视频数据的解码方法及装置
技术领域
本发明涉及视联网技术领域,特别是涉及一种视频数据的解码方法及装置。
背景技术
在现有的视联网业务中,终端需要接收多路视频流并解码输出,且需要实现多路视频流实时切换。如,会议轮询机制,会议主席需要按照一定的时间间隔轮流收看多个参会方的画面。亦或终端轮询监控,终端同样需要按照一定的时间间隔轮流收看多个监控的画面。无论上述中的会议轮询参会方还是终端轮询监控,实质都是多路视频数据的切换。其中,按照一定的时间间隔,终端轮流接收一路或多路视频流并将一路或多路数据输出到终端显示器或电视墙,且每次接收到的视频数据的分辨率可能不同,则每路视频数据都需要创建相应解码能力的解码器实现解码。
由此可知,现有技术在多路视频流频繁切换的场景中,每次接收到新的视频流则解析包头信息,根据解析出来视频帧的分辨率创建相应解码能力的解码器用于解码该路视频数据。每次视频流切换,则需要先销毁原先创建的解码器再根据新的包头信息创建新的解码器。若当前同时解码输出多路视频流,如轮询16路监控到电视墙时,则需要同时解码16路视频数据且视频流会按照一定的间隔切换,则需要同时管理16个解码器且高频率的创建销毁。其中,高频率的创建销毁解码器不便于管理,若管理不当释放不及时可能出现内存泄漏,浪费计算机资源。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种视频数据的解码方法及装置。
为了解决上述问题,本发明实施例公开了一种视频数据的解码方法,所述方法包括:
接收目标视频数据;
获取所述目标视频数据的视频分辨率;
在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器;
利用所述第一解码器对所述目标视频数据进行解码。
本发明的实施例还公开了一种视频数据的解码装置,包括:
接收模块,用于接收目标视频数据;
解码模块,所述解码模块包括校验单元和输入单元;
所述校验单元用于接收所述接收模块发送的所述目标视频数据,并获取所述目标视频数据的视频分辨率,在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器,将所述目标视频数据发送到所述输入单元;
所述输入单元用于将所述目标视频数据发送到所述第一解码器,由所述第一解码器对所述目标视频数据进行解码。
本发明实施例还公开了一种计算设备,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算设备上述任一项所述的视频数据的解码的方法。
本发明实施例还公开了一种计算机可读存储介质,其存储的计算机程序使得处理器执行上述所述的视频数据的解码的方法。
本发明实施例包括以下优点:
本发明实施例的视频数据的解码方法,能够在接收到目标视频数据后,获取目标视频数据的视频分辨率,然后在预先创建的解码器集群中,确定解码能力与视频分辨率相匹配的第一解码器,从而利用第一解码器对目标视频数据进行解码,由此可见,本发明的实施例中,预先创建解码器集群,从而可以在每次视频流切换时,直接从解码器集群中获取解码能力与视频分辨率匹配的解码器进行解码即可,不需要频繁的销毁和创建解码器,进而可以在一定程度上节省计算机资源。
附图说明
图1是本发明实施例提供的一种视频数据的解码方法的流程图;
图2是本发明实施例中通道更新示意图;
图3是本发明实施例中备用解码器列表的最大解码能力在720P与4k之间的切换的示意图;
图4是本发明实施例中输入通道、解码器、输出通道之间的绑定关系示意图;
图5是基于图4为输入通道4、1080P解码器和输出通道4建立绑定关系的示意图;
图6是本发明实施例提供的一种视频数据的解码装置的结构框图;
图7是本发明实施例中注册单元所实现的流程示意图;
图8是本发明实施例中校验单元所实现的流程示意图;
图9是本发明实施例中输入单元所实现的流程示意图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
为了更加便于理解本发明实施例的视频数据的解码方法及装置,首先对如下概念进行解释说明:
视频帧:视频由一幅幅的图片组成,视频播放的过程是将一幅一幅的图片连续显示到屏幕上,达到每秒切换24张图片后,人眼就无法识别图片与图片之间的间隔,认为是连续的动画,这就是视频播放的原理,每张图片就是一帧数据。其中,每秒切换24张图片我们就称为每秒24帧。
分辨率:视频由连续帧数据组成,每帧数据由若干长乘宽的像素点组成,点成线,线成面。即每帧图片都是有若干行的像素点拼接在一起组成。描述帧数据宽高性能的参数即为视频的分辨率,分辨率越高视频越精细,显示图像越清晰。常用视频分辨率如下:CIF(352*288)、D1(720*576)、720P(1280*720)、1080p(1920*1080)、4k(3840*2160)等。
视频原始数据:视频帧数据为视频原始数据,原始视频文件的数据量是巨大的。如1秒30帧的1080P、每像素使用3色表示且每颜色16bit的高清图像,每秒的数据量为30*1920*1080*3*16=2985984000bit=356M,即1秒会生成356兆的原始视频数据。
编码:原始视频数据的数据量巨大,因而在实际的应用中,视频数据都需要通过网络发送。直接发送数据量巨大的原始数据是不适用的。因此,在实际的应用中,发送视频数据之前会先将原始数据进行压缩,之后通过网络发送压缩后的数据。其中,压缩原始数据的过程,即为编码。
解码:解码与编码过程相反,在视联网业务中,需要接收并显示经由网络发送来的视频数据到显示器。其中,接收到的网络中的视频数据为压缩后的数据。若要显示该数据,需要先将压缩后的视频数据解压为原始数据,只有原始数据才能刷新到显示器进行显示。将压缩后的视频数据解压为原始数据的过程称为解码。
解码能力:将不同分辨率的压缩数据解压为视频原始数据,需要的性能不同,这个解码的性能即为解码能力。视频数据的分辨率越高则数据量越大,需要的解码能力也越强。如4k分辨率需要的解码能力大于1080p分辨率的解码能力。
解码器:解码器为软件层次的概念,其中,解码一路视频数据则需要创建相应能力的解码器。创建相应的解码器后才可解码压缩后的视频数据为原始数据,并发送到显示器输出。解码器属于软件层次的概念,解码器创建后会占用内存资源,因此若不再接收该路的视频流则需要销毁相应的解码器释放内存资源。
输出窗口:输出窗口为软件层次的概念。在实际的视频业务中,若将一个显示器分为4*4的16分屏的小窗口,分别每一个小窗口可用于显示一路视频流,则这些分屏后的小窗口即为输出窗口。
数据包:指令包或视频包均可称为数据包。
本发明的实施例,预先为各个视频数据的输入通道绑定对应的解码器,从而可以在每次视频流切换时,直接利用与通道绑定的解码器进行解码即可,不需要频繁的销毁和创建解码器,进而可以在一定程度上节省计算机资源。
其中,本发明实施例的视频数据的解码方法及装置可应用于视联网,其中,视联网是网络发展的重要里程碑,是一个实时网络,能够实现高清视频实时传输,将众多互联网应用推向高清视频化,高清面对面。
视联网采用实时高清视频交换技术,可以在一个网络平台上将所需的服务,如高清视频会议、视频监控、智能化监控分析、应急指挥、数字广播电视、延时电视、网络教学、现场直播、VOD点播、电视邮件、个性录制(PVR)、内网(自办)频道、智能化视频播控、信息发布等数十种视频、语音、图片、文字、通讯、数据等服务全部整合在一个系统平台,通过电视或电脑实现高清品质视频播放。
依据本发明实施例的一个方面,提供了一种视频数据的解码方法,如图1所示,该方法包括:
步骤101:接收目标视频数据。
其中,在视频业务中视频数据均以视频包的格式由服务器经由网络下发到终端。因而,本发明实施例的视频数据的解码方法可应用于终端。其中,该终端可以为机顶盒(SetTopBox,STB),通常称作机顶盒或机上盒,是一个连接电视机与外部信号源的设备,它可以将压缩的数字信号转成电视内容,并在电视机上显示出来。
步骤102:获取所述目标视频数据的视频分辨率。
目标视频数据的视频包均为包头加数据组成。包头一般包括视频通道信息及视频帧信息,视频通道信息标识当前视频数据为第几路视频数据,如当前同时接收4路视频流则视频通道信息分别对应通道编号为0-3。视频帧信息标识当前数据包的帧编号以及帧信息,如视频由连续的视频帧组成,帧编号即为标识当前帧为该路视频流中第n帧数据,一路视频流中的连续帧依据时间先后顺序从0单向递增;帧信息标识当前帧的视频分辨率。在软件层次通过解析包头信息可获取到视频帧的相关信息。视频包中的数据即原始视频数据经编码后形成的压缩数据。
步骤103:在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器。
本发明的实施例中,预先建立多个解码器构成解码器集群。因而,在接收到一路视频数据时,可以在在解码器集群中获取解码能力与接收到的视频数据得的视频分辨率匹配的解码器,从而可以利用该解码器进行解码。
步骤104:利用所述第一解码器对所述目标视频数据进行解码。
由上述可知,本发明实施例的视频数据的解码方法,能够在接收到目标视频数据后,获取目标视频数据的视频分辨率,然后在预先创建的解码器集群中,确定解码能力与视频分辨率相匹配的第一解码器,从而利用第一解码器对目标视频数据进行解码,由此可见,本发明的实施例中,预先创建解码器集群,从而可以在每次视频流切换时,直接从解码器集群中获取解码能力与视频分辨率匹配的解码器进行解码即可,不需要频繁的销毁和创建解码器,进而可以在一定程度上节省计算机资源。
可选地,所述解码器集群中包括有效解码器列表和备用解码器列表;
所述在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器,包括:
确定所述目标视频数据的目标输入通道;
检测所述目标输入通道是否与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力是否与所述视频分辨率相匹配;
若所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率相匹配,则确定绑定的解码器为所述第一解码器;
若所述目标输入通道未与所述有效解码器列表中的解码器绑定,或者所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率不相匹配,则在所述备用解码器列表中选定所述第一解码器。
其中,视频数据的分辨率包括多种,当接收到的目标视频数据的视频分辨率与该目标视频数据所属输入通道当前绑定的解码器的解码能力相匹配,则可以直接利用当前与该目标视频数据所属输入通道绑定的解码器进行解码。
然而,也可能存在接收到的目标视频数据的分辨率与该目标视频数据所属输入通道当前绑定的解码器的解码能力不匹配,或者,该目标视频数据所属输入通道并未绑定解码器,则在目标视频数据的视频分辨率,与目标视频数据所属输入通道当前绑定的解码器的解码能力不匹配的情况下,或者,该目标视频数据所属输入通道并未绑定解码器的情况下,可以从备用解码器列表中获取解码能力与目标视频数据的视频分辨率匹配的解码器,进行解码。
由此可知,在本发明的实施例中,在目标视频数据的视频分辨率,与目标视频数据所属输入通道当前绑定的解码器的解码能力相匹配的情况下,直接利用当前绑定的解码器进行解码即可;在目标视频数据的视频分辨率,与目标视频数据所属输入通道当前绑定的解码器的解码能力不匹配的情况下,也只是从备用解码器列表中重新获取一个匹配的解码器,而不需要每次视频流切换时,都要销毁每个通道对应的解码器,然后重新建立,进一步节省了计算机资源。
并且,通过预先建立包括现有技术中常用的视频分辨率相匹配的解码器的备用解码器列表,从而在接收到的目标视频数据的视频分辨率与其所属输入通道当前绑定的解码器的解码能力不匹配,或者其所属输入通道并未绑定解码器的情况下,可以直接从备用解码器列表中调用相匹配的解码器,避免了重新建立解码器带来的解码延迟。
可选的,在所述目标输入通道与所述有效解码器列表中的第二解码器绑定且所述第二解码器的解码能力与所述视频分辨率不匹配时,
所述在备用解码器列表中选定所述第一解码器之前,还包括:
将所述目标输入通道与所述第二解码器之间的绑定关系解除,并销毁所述有效解码器列表中的所述第二解码器;
所述在备用解码器列表中选定所述第一解码器之后,还包括:
将在所述备用解码器列表中选定的所述第一解码器移动到所述有效解码器列表,建立所述第一解码器与所述目标输入通道的绑定关系,并按照所述第一解码器的解码能力创建新的解码器作为备用解码器。
可选的,在所述目标输入通道未与所述有效解码器列表中的解码器绑定时,所述在备用解码器列表中选定所述第一解码器后,还包括:
将在所述备用解码器列表中选定的所述第一解码器移动到所述有效解码器列表,建立所述第一解码器与所述目标输入通道的绑定关系,并按照所述第一解码器的解码能力创建新的解码器作为备用解码器。
进一步地,一个输入通道还对应有一个输出通道,且输出通道与其对应的输入通道绑定的解码器绑定,即输入通道和与其对应的输出通道与同一解码器绑定,则在解除第二解码器与目标输入通道的绑定关系后,还需要解除第二解码器与目标输出通道的绑定关系;在建立第一解码器与目标输入通道的绑定关系后,还需要建立第一解码器与目标输出通道的绑定关系。其中,目标输出通道为与目标输入通道对应的输出通道。
例如图4所示,输入通道0-4中的输入通道0与解码器0绑定,解码器0与输出通道0绑定;输入通道1与解码器1绑定,解码器1与输出通道1绑定;输入通道2与解码器2绑定,解码器2与输出通道2绑定;输入通道3与解码器3绑定,解码器3与输出通道3绑定。那么,将图4中所示的输入通道0相绑定的解码器更新为解码器4,则首先需要解除解码器0与输入通道0和输出通道0之间的绑定关系,然后分别重新建立解码器4与输入通道0之间的绑定关系,以及解码器4与输出通道0之间的绑定关系。
因此,在目标输入通道当前相绑定的第二解码器的解码能力与目标视频数据的分辨率不匹配的情况下,需要先解除第二解码器与目标输入通道之间的绑定关系,以及第二解码器与目标输出通道之间的绑定关系,然后重新建立第一解码器与目标输入通道之间的绑定关系,以及第一解码器与目标输出通道之间的绑定关系;在目标输入通道当前并未绑定解码器时,可以直接建立第一解码器与目标输入通道之间的绑定关系,以及第一解码器与目标输出通道之间的绑定关系即可。
此外,由上述可知,与输入通道存在绑定关系的解码器保存在有效解码器列表中,即有效解码器列表中保存当前正在使用的解码器。可选的,该有效解码器列表中的解码器可依次递归编码,其中,列表中的解码器能力可无特定顺序。
另外,当将与输入通道存在绑定关系的解码器保存在有效解码器列表中时,在对目标输入通道相绑定的解码器进行更新时,可以在从备用解码器列表中获取与所述目标视频数据的视频分辨率匹配的第一解码器之后,将所述第一解码器从所述备用解码器列表中移动至所述有效解码器列表中,并在所述备用解码器列表中重新建立所述第一解码器。
此外,当将与输入通道存在绑定关系的解码器保存在有效解码器列表中时,在解除所述目标输入通道与所述第二解码器之间的绑定关系,以及目标输出通道与所述第二解码器之间的绑定关系之后,可以销毁所述有效解码器列表中的所述第二解码器。
由此可知,本发明的实施例中,在更改与目标输入通道相绑定的第二解码器为第一解码器时,需要将有效解码器列表中的第二解码器销毁,然后将第一解码器从备用解码器列表中转移到有效解码器列表,并在备用解码器列表中重新建立一个第一解码器,以填补空缺,从而便于后续再次从备用解码器列表中请求第一解码器。
在为当前未绑定解码器的目标输入通道绑定第一解码器时,可以直接将第一解码器从备用解码器列表中转移到有效解码器列表,并在备用解码器列表中重新建立一个第一解码器,以填补空缺,从而便于后续再次从备用解码器列表中请求第一解码器。例如图5所示,从将备用解码器列表中的1080P的解码器移动到有效解码器列表中,并将输入通道4和输出通道4分别与1080P的解码器相绑定后,在备用解码器列表中创建一个新的1080P的解码器。
可选的,所述第一解码器与目标输出通道绑定;
利用所述第一解码器对所述目标视频数据进行解码之后,还包括:
将解码后的所述目标视频数据,通过所述目标输出通道输出到显示设备进行显示。
其中,本发明实施例中,输入通道与输出通道一一对应,因而,每一个输入通道会利用与其存在绑定关系的解码器对接收到的视频数据进行解码,然后通过与该解码器绑定的输出通道传输到显示设备进行显示。其中的显示设备例如可以是显示器电视墙等。
可选的,接收到的一路视频数据对应一个输入通道,一个输入通道对应有一个输出通道;所述接收目标视频数据之前,还包括:
接收通道控制指令;
根据所述通道控制指令调整输入通道和输出通道的数量。
其中,该通道控制指令可以是用户通过控制平台发送的指令,因此,用户可通过任何联网设备调整输入通道的数量和输出通道的数量。其中,由于输入通道与输出通道一一对应,因而输入通道的数量与输出通道的数量相同。如实现电视墙的4分屏或16分屏模式输出,则分别对应设置通道数为4和16。
可选的,所述解码器集群中包括有效解码器列表,输出通道与其对应的输入通道与所述有效解码器列表中的同一解码器存在绑定关系;输入通道和与其对应的输出通道对应同一编码;
所述根据所述通道控制指令调整输入通道和输出通道的数量,包括:
若所述通道控制指令指示减少第一数量的输入通道以及所述第一数量的输出通道,则将所述编码按照从小到大或者从大到小的顺序进行排序,并判断排位前所述第一数量的编码对应的第一输入通道和第一输出通道是否绑定有解码器;
若所述第一输入通道和所述第一输出通道分别与第三解码器绑定,则分别解除所述第一输入通道、所述第一输出通道与所述第三解码器之间的绑定关系,并删除所述第一输入通道和所述第一输出通道;
若所述第一输入通道和所述第一输出通道未绑定解码器,则删除所述第一输入通道和所述第一输出通道;
若所述通道控制指令指示增加第二数量的输入通道以及所述第二数量的输出通道,则创建所述第二数量的输入通道和所述第二数量的输出通道,并从当前已有编码中的最大编码开始,按照递增的方式为创建的所述第二数量的输入通道和所述第二数量的输出通道进行编码。
由此可知,通道控制指令包括增加通道和减少通道两种类型,且支持一次增加或减少多个输入通道。若为增加n路通道,则先创建n路通道并按照单向递增为每路通道编码,使每路输入通道有唯一对应编号后加入到输入通道列表中。新创建的输入通道由于没有与对应的解码器绑定,所以没有解码能力。若为减少n路通道,则将解码列表中最后n路通道释放,并判断该通道是否绑定解码器,若绑定解码器则先解解码器与输入通道和输出通道之间的绑定关系,其中,通道更新示例图示如图2所示。
可选的,创建解码器集群的过程包括:
接收第一能力控制指令;
根据所述第一能力控制指令指示的最大解码能力,创建解码能力小于和等于所述第一能力控制指令指示的最大解码能力的解码器,并保存在备用解码器列表中。
由此可知,备用解码器列表中包括解码能力小于和等于第一能力控制指令指示的最大解码能力的解码器。即备用解码器列表中的最大解码能力为第一能力时,该备用解码器列表中包括有小于和等于第一能力的所有解码器。
其中,备用解码器列表主要用于保存预先创建的多个解码器。备用解码器列表中可以根据解码能力递增顺序依次编码保存多个解码器,如最大解码能力为100P的备用解码器列表可如表1所示,根据解码性能递增分别为CIF、D1、720P、1080P,且分别对应编号0-3。
表1 备用解码器列表
编号 解码能力
0 CIF
1 D1
2 720P
3 1080P
可选的,所述根据所述第一能力控制指令指示的最大解码能力,创建解码能力小于和等于所述第一能力控制指令指示的最大解码能力的解码器,并保存在备用解码器列表中之后,所述视频数据的解码方法还包括:
接收第二能力控制指令;
当所述第二能力控制指令中指示的最大解码能力较所述第一能力控制指令指示的最大解码能力有变化时,根据所述第二能力控制指令调整所述备用解码器列表的最大解码能力。
其中,上述第一能力控制指令和第二能力控制指令可以是用户通过控制平台发送的指令,因此,用户可通过任何联网设备调整输入备用解码器的最大解码能力。如用户可控制当前备用解码器列表最大支持720P或4k的解码能力,即如图3所示,备用解码器列表的最大解码能力可以在720P与4k之间进行切换,从而根据不同的解码能力,创建不同范围的备用解码器列表,这样可避免创建过多无用的解码器造成能力浪费。
可选的,根据所述第二能力控制指令调整所述备用解码器列表的最大解码能力,包括:
若所述第二能力控制指令指示的最大解码能力小于所述第一能力控制指令指示的最大解码能力,则销毁所述备用解码器列表中超出所述第二能力控制指令指示的最大解码能力的解码器;
若所述第二能力控制指令指示的最大解码能力大于所述第一能力控制指令指示的最大解码能力,则在所述备用解码器列表中创建大于所述第一能力控制指令指示的最大解码能力,且小于所述第二能力控制指令指示的最大解码能力的解码器,以及等于所述第二能力控制指令指示的最大解码能力的解码器。
其中,所述备用解码器列表中的解码器可以根据解码能力递增顺序依次编码保存。
由此可知,本发明的实施例,可以根据实际需求调整备用解码器列表中的解码器的种类,以便于可以应用到更多的解码场景。
综上所述,本发明的实施例中,预先建立解码器集群,从而可以在每次视频流切换时,在与通道绑定的解码器的解码能力与接收到的视频数据的视频分辨率匹配时,可以直接利用与通道绑定的解码器进行解码即可,不需要频繁的销毁和创建解码器,进而可以在一定程度上节省计算机资源。并且,在接收到的目标视频数据的视频分辨率,与目标视频数据所属输入通道当前绑定的解码器不匹配的情况下,或者目标视频数据所属输入通道当前未绑定解码器的情况下,也只是从备用解码器列表中重新获取一个匹配的解码器,而不需要每次视频流切换时,都要销毁每个通道对应的解码器,然后重新建立,进一步节省了计算机资源;此外,还可根据用户的实际需求调整备用解码器列表中包括的解码器的种类,以及输入通道和输出通道的数量,从而可以适用于更多的解码场景。
依据本发明实施例的一个方面,提供了一种视频数据的解码装置,该视频数据的解码装置可应用于终端。其中,该终端可以为机顶盒(SetTopBox,STB),通常称作机顶盒或机上盒,是一个连接电视机与外部信号源的设备,它可以将压缩的数字信号转成电视内容,并在电视机上显示出来。
如图6所示,接收模块,用于接收目标视频数据;
解码模块,所述解码模块包括校验单元和输入单元;
所述校验单元用于接收所述接收模块发送的所述目标视频数据,并获取所述目标视频数据的视频分辨率,在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器,将所述目标视频数据发送到所述输入单元;其中,校验单元从预先创建的解码器集群中确定出所述第一解码器后,在将目标视频数据发送给输入单元时,会指示输入单元将目标视频数据发送给所述第一解码器;
所述输入单元用于将所述目标视频数据发送到所述第一解码器,由所述第一解码器对所述目标视频数据进行解码。
由上述可知,接收模块主要用于接收服务器下发的视频数据,并将视频数据转发解码模块,由解码模块的校验单元解析接收到的视频数据的数据包的包头中的视频帧信息,从而根据解析出来视频分辨率,从解码器集群中获取解码能力与视频分辨率匹配的第一解码器,并利用第一解码器进行解码。
由此可知,本发明实施例的视频数据的解码装置,能够在接收到目标视频数据后,获取目标视频数据的视频分辨率,然后在预先创建的解码器集群中,确定解码能力与视频分辨率相匹配的第一解码器,从而利用第一解码器对目标视频数据进行解码,由此可见,本发明的实施例中,预先创建解码器集群,从而可以在每次视频流切换时,直接从解码器集群中获取解码能力与视频分辨率匹配的解码器进行解码即可,不需要频繁的销毁和创建解码器,进而可以在一定程度上节省计算机资源。
可选的,所述解码器集群中包括有效解码器列表和备用解码器列表;所述解码模块还包括管理单元;
所述校验单元在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器的过程中,所述校验单元具体用于:
确定所述目标视频数据的目标输入通道;
检测所述目标输入通道是否与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力是否与所述视频分辨率相匹配;
若所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率相匹配,则确定绑定的解码器为所述第一解码器;
若所述目标输入通道未与所述有效解码器列表中的解码器绑定,或者所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率不相匹配,则向所述输入单元发送解码能力更新指令,其中,所述输入单元接收到所述解码能力更新指令后,指示所述管理单元在所述备用解码器列表中选定所述第一解码器。
即本发明的实施例中,若目标输入通道当前的解码能力与视频帧信息(即视频分辨率)匹配,则可以直接利用目标输入通道当前绑定的解码器进行解码;若目标输入通道当前的解码能力与视频帧信息(即视频分辨率)不匹配,或者目标输入通道当前不存在相绑定的解码器,则可以通过校验单元、输入单元和管理单元之间的交互,来更改与目标输入通道相绑定的解码器,从而使得更改后的与目标输入通道相绑定的解码器可以与视频帧信息相匹配。例如收到的视频数据的数据包检测到对应为0通道的视频帧且分辨率为720P,若检测到0通道解码能力为1080P,则需更新通道0的解码能力到720P。
由此可知,在目标视频数据的视频分辨率,与目标视频数据所属输入通道当前绑定的解码器的解码能力不匹配的情况下,或者,该目标视频数据所属输入通道并未绑定解码器的情况下,可以从预先建立的备用解码器列表中获取与目标视频数据的视频分辨率匹配的解码器,进行解码。因此,在本发明的实施例中,在目标视频数据的视频分辨率,与目标视频数据所属输入通道当前绑定的解码器的解码能力不匹配的情况下,也只是从备用解码器列表中重新获取一个匹配的解码器,而不需要每次视频流切换时,都要销毁每个通道对应的解码器,然后重新建立,进一步节省了计算机资源。
并且,通过预先建立包括现有技术中常用的视频分辨率相匹配的解码器的备用解码器列表,从而在接收到的目标视频数据的视频分辨率与其所属输入通道当前绑定的解码器的解码能力不匹配,或者其所属输入通道并未绑定解码器的情况下,可以直接从备用解码器列表中调用相匹配的解码器,避免了重新建立解码器带来的解码延迟。
可选的,所述输入单元指示所述管理单元在所述备用解码器列表中选定所述第一解码器的过程中,所述输入单元具体用于:向所述管理单元发送解码器获取指令,其中,所述管理单元接收到所述解码器获取指令后,从所述备用解码器列表中选定所述第一解码器。
可选的,在所述目标输入通道与所述有效解码器列表中的第二解码器绑定且所述第二解码器的解码能力与所述视频分辨率不匹配时,所述输入单元指示所述管理单元在所述备用解码器列表中选定所述第一解码器之前,还用于:向所述管理单元发送解码器释放指令,其中,所述管理单元接收到所述解码器释放指令后,将所述目标输入通道与所述第二解码器之间的绑定关系解除,并销毁所述有效解码器列表中的所述第二解码器;
所述输入单元指示所述管理单元在所述备用解码器列表中选定所述第一解码器之后,所述管理单元还用于:将在所述备用解码器列表中选定的所述第一解码器移动到所述有效解码器列表,建立所述第一解码器与所述目标输入通道的绑定关系,并按照所述第一解码器的解码能力创建新的解码器作为备用解码器。
可选的,在所述目标输入通道未与所述有效解码器列表中的解码器绑定时,所述输入单元指示所述管理单元在所述备用解码器列表中选定所述第一解码器之后,所述管理单元还用于:将在所述备用解码器列表中选定的所述第一解码器移动到所述有效解码器列表,建立所述第一解码器与所述目标输入通道的绑定关系,并按照所述第一解码器的解码能力创建新的解码器作为备用解码器。
进一步地,一个输入通道还对应有一个输出通道,且输出通道与其对应的输入通道绑定的解码器绑定,即输入通道和与其对应的输出通道与同一解码器绑定,则在解除第二解码器与目标输入通道的绑定关系后,还需要解除第二解码器与目标输出通道的绑定关系;在建立第一解码器与目标输入通道的绑定关系后,还需要建立第一解码器与目标输出通道的绑定关系。其中,目标输出通道为与目标输入通道对应的输出通道。
例如图4所示,输入通道0-4中的输入通道0与解码器0相绑定,解码器0与输出通道0相绑定;输入通道1与解码器1相绑定,解码器1与输出通道1相绑定;输入通道2与解码器2相绑定,解码器2与输出通道2相绑定;输入通道3与解码器3相绑定,解码器3与输出通道3相绑定。
因此,在校验单元判断得出目标输入通道当前相绑定的第二解码器与目标视频数据的分辨率不匹配时,可以由校验单元向输入单元发送解码能力更新指令,然后由输入单元先向管理单元发送解码器释放指令,待管理单元解除第二解码器与目标输入通道和目标输出通道之间的绑定关系后,输入单元再向管理单元发送解码器获取指令,使得管理单元重新建立第一解码器与目标输入通道之间的绑定关系,以及第一解码器与目标输出通道之间的绑定关系。
即在目标输入通道当前的解码能力与接收到的视频数据的视频分辨率不匹配时,可以通过校验单元、输入单元和管理单元之间的交互,更改目标输入通道当前的解码能力。例如将图4中所示的输入通道0相绑定的解码器更新为解码器4,则首先需要解除解码器0与输入通道0和输出通道0之间的绑定关系,然后分别重新建立解码器4与输入通道0之间的绑定关系,以及解码器4与输出通道0之间的绑定关系。
另外,在校验单元判断得出目标输入通道当前并未存在与其相绑定的解码器时,可以由校验单元向输入单元发送解码能力更新指令,然后由输入单元只向管理单元发送解码器获取指令,由管理单元重新建立第一解码器与目标输入通道之间的绑定关系,以及第一解码器与目标输出通道之间的绑定关系即可。
由上述可知,与输入通道存在绑定关系的解码器保存在有效解码器列表中,即有效解码器列表中保存当前正在使用的解码器。可选的,该有效解码器列表中的解码器可依次递归编码,其中,列表中的解码器能力可无特定顺序。
另外,当将与输入通道存在绑定关系的解码器保存在有效解码器中时,在对目标输入通道相绑定的解码器进行更新时,可以在管理单元从备用解码器列表中获取与所述目标视频数据的视频分辨率匹配的第一解码器之后,将所述第一解码器从所述备用解码器列表中移动至所述有效解码器列表中,并在所述备用解码器列表中重新建立所述第一解码器。
此外,当将与输入通道存在绑定关系的解码器保存在有效解码器列表中时,在管理单元解除所述目标输入通道与所述第二解码器之间的绑定关系,以及目标输出通道与所述第二解码器之间的绑定关系之后,可以销毁所述有效解码器列表中的所述第二解码器。
由此可知,本发明的实施例中,在更改与目标输入通道相绑定的第二解码器为第一解码器时,需要将有效解码器列表中的第二解码器销毁,然后将第一解码器从备用解码器列表中转移到有效解码器列表,并在备用解码器列表中重新建立一个第一解码器,以填补空缺,从而便于后续再次从备用解码器列表中请求第一解码器。
在为当前未绑定解码器的目标输入通道绑定第一解码器时,可以直接将第一解码器从备用解码器列表中转移到有效解码器列表,并在备用解码器列表中重新建立一个第一解码器,以填补空缺,从而便于后续再次从备用解码器列表中请求第一解码器。
可选的,所述第一解码器与目标输出通道绑定;所述解码模块还包括输出单元;
所述输出单元用于接收解码后的所述目标视频数据,并通过所述目标输出通道输出到显示设备进行显示。
其中,输入通道与输出通道一一对应,因而,每一个输入通道会利用与其存在绑定关系的解码器对接收到的视频数据进行解码,然后通过与该解码器绑定的输出通道传输到显示设备进行显示。其中的显示设备例如可以是显示器电视墙等。
可选的,接收到的一路视频数据对应一个输入通道,一个输入通道对应有一个输出通道;
所述视频数据的解码装置还包括:控制模块,用于接收通道控制指令;
所述解码模块还包括:注册单元和管理单元,所述注册单元用于接收所述控制模块发送的所述通道控制指令,并转发给所述管理单元,所述管理单元用于根据所述通道控制指令调整输入通道和输出通道的数量。
其中,控制模块主要用于与用户交互,用户可通过任何联网设备控制通道数量。即用户通过控制平台发送的通道控制指令均会发送到控制模块,同样控制模块收到通道控制指令后解析指令内容之后转发解码模块的注册单元,由注册单元指示管理单元进行输入通道数量和输出通道数量的调整。其中,由于输入通道与输出通道一一对应,因而输入通道的数量与输出通道的数量相同。如实现电视墙的4分屏或16分屏模式输出,则分别对应设置通道数为4和16。
可选的,所述解码器集群中包括有效解码器列表,输出通道与其对应的输入通道与所述有效解码器列表中的同一解码器存在绑定关系;输入通道和与其对应的输出通道对应同一编码;所述解码模块还包括输出单元;
所述管理单元根据所述通道控制指令调整输入通道和输出通道的数量,时,具体用于:
若所述通道控制指令指示减少第一数量的输入通道以及所述第一数量的输出通道,则将所述编码按照从小到大或者从大到小的顺序进行排序,并判断排位前所述第一数量的编码对应的第一输入通道和第一输出通道是否绑定有解码器;
若所述第一输入通道与第三解码器绑定,则解除所述第一输入通道与所述第三解码器的绑定关系以及所述第一输出通道与所述第三解码器的绑定关系,并分别向所述输入单元和所述输出单元发送第一通道更新指令;若所述第一输入通道和所述第一输出通道未绑定解码器,则分别向所述输入单元和所述输出单元发送第一通道更新指令;其中,所述输入单元接收到所述第一通道更新指令后,删除所述第一输入通道,所述输出单元接收到所述第一通道更新指令后,删除所述第一输出通道;
若所述通道控制指令指示增加第二数量的输入通道以及所述第二数量的输出通道,则向所述输入单元和所述输出单元分别发送第二通道更新指令;
其中,所述输入单元接收到所述第二通道更新指令后,创建所述第二数量的输入通道,并从当前已有编码中的最大编码开始,按照递增的方式为创建的所述第二数量的输入通道进行编码;
所述输出单元接收到所述第二通道更新指令后,创建所述第二数量的输出通道,并从当前已有编码中的最大编码开始,按照递增的方式为创建的所述第二数量的输出通道进行编码。
由此可知,管理单元接收到通道控制指令后,需要分别与输入单元和输出单元进行交互,来调整输入通道的数量和输出通道的数量。其中,通道控制指令包括增加通道和减少通道两种类型,且支持一次增加或减少多个输入通道。
若为减少n路通道,需要将输入通道列表中最后n路通道释放,将输出通道列表中最后n路通道释放,则管理单元判断这n路输入通道和输出通道是否绑定解码器,若绑定解码器则管理单元先解除解码器与输入通道和输出通道之间的绑定关系,然后向输入单元发送第一通道更新指令,使得输入单元将输入通道列表中最后n路通道释放,向输出单元发送第一通道更新指令,使得输出单元将输出通道列表中最后n路通道释放。其中,通道更新示例图示图2所示。
若为增加n路通道,则管理单元向输入单元发送第二通道更新指令,使得输入单元先创建n路通道,并按照单向递增为每路输入通道编码,使每路输入通道有唯一对应编号后加入到输入通道列表中,同理,管理单元向输出单元发送第二通道更新指令,指示输出单元先创建n路输出通道,并按照单向递增为每路输出通道编码,使每路输出通道有唯一对应编号后加入到输出通道列表中;其中,新创建的输入通道由于没有与对应的解码器绑定,所以没有解码能力。
可选的,所述视频数据的解码装置还包括:控制模块,用于接收第一能力控制指令;
所述解码模块还包括:注册单元和管理单元,所述注册单元用于接收所述控制模块发送的所述第一能力控制指令,并转发给所述管理单元,所述管理单元还用于根据所述第一能力控制指令指示的最大解码能力,创建解码能力小于和等于所述第一能力控制指令指示的最大解码能力的解码器,并保存在备用解码器列表中。
其中,备用解码器列表主要用于保存预先创建的多个解码器。备用解码器列表中可以根据解码能力递增顺序依次编码保存多个解码器。
另外,控制模块主要用于与用户交互,用户可通过任何联网设备控制备用解码器列表的最大解码能力。用户通过控制平台发送的指令均会发送到控制模块,同样控制模块收到用户指令后解析指令内容之后转发给解码模块的注册单元,由注册单元指示管理单元调整备用解码器列表的最大解码能力。
例如用户可控制当前备用解码器列表最大支持720P或4k的解码能力,即如图3所示,备用解码器列表的最大解码能力可以在720P与4k之间进行切换,从而根据不同的解码能力,创建不同范围的备用解码器列表,这样可避免创建过多无用的解码器造成能力浪费。
可选的,所述控制模块还用于:接收第二能力控制指令;
所述注册单元还用于接收所述控制模块发送的所述第二能力控制指令,并转发给所述管理单元,所述管理单元还用于:当所述第二能力控制指令中指示的最大解码能力较所述第一能力控制指令指示的最大解码能力有变化时,根据所述第二能力控制指令调整所述备用解码器列表的最大解码能力。
可选的,所述管理单元在根据所述第二能力控制指令调整所述备用解码器列表的最大解码能力时,具体用于:
若所述第二能力控制指令指示的最大解码能力小于所述第一能力控制指令指示的最大解码能力,则销毁所述备用解码器列表中超出所述第二能力控制指令指示的最大解码能力的解码器;
若所述第二能力控制指令指示的最大解码能力大于所述第一能力控制指令指示的最大解码能力,则在所述备用解码器列表中创建大于所述第一能力控制指令指示的最大解码能力,且小于所述第二能力控制指令指示的最大解码能力的解码器,以及等于所述第二能力控制指令指示的最大解码能力的解码器。
其中,所述备用解码器列表中的解码器可以根据解码能力递增顺序依次编码保存。
由此可知,本发明的实施例,可以根据实际需求调整备用解码器列表中的解码器的种类,以便于可以应用到更多的解码场景。
综上所述,对于图6所示的本发明实施例的视频数据的解码装置所包括的各个模块及单元所实现的功能总结如下:
接收模块主要用于接收服务器下发的视频数据,并将视频数据转发给解码模块。
控制模块主要用于与用户交互,用户可通过任何联网设备控制解码能力。用户通过控制平台发送的指令均会发送到控制模块,同样控制模块收到用户指令后解析指令内容之后转发解码模块。
解码模块主要分为注册单元、校验单元、输入单元、输出单元、管理单元。
其中,注册单元主要接收控制模块下发的用户指令,用户指令包括解码能力控制及解码通道数控制,即用户指令可分为能力控制指令和通道控制指令。
若为能力控制指令,则注册单元发送能力控制指令到管理单元调整当前解码集群的最大解码能力。如用户可控制当前解码集群最大支持4k或1080P的解码能力。根据不同的解码能力,管理模块创建不同范围的解码器列表,这样可避免创建过多无用的解码器造成性能浪费。
若为通道控制指令,则分别发送通道更新指令到输入单元和输出单元。通过通道控制指令可控制输入输出单元的通道数,且输入通道数和输出通道数一一对应,其中注册单元的流程图如图7所示。
校验单元主要解析接收到的视频包的包头中的通道信息及视频帧信息。根据解析出来的通道信息中的通道号与输入单元的通道号对应,获取当前输入通道号对应的解码能力。检测当前解码能力与视频帧信息(即分辨率)是否匹配,若匹配则将视频数据发送到输入单元。若不匹配则发送解码能力更新指令到输入单元,待更新完成后发送视频数据到输入单元。其中,校验单元流程如下图8所示。
输入单元的主要功能为维护输入通道列表,该列表中成员分别对应一路输入通道,且每一通道都有唯一标识符与之对应。其中,输入单元具体实现功能包括输入通道的创建和销毁、更新相应通道对应的解码能力以及接收校验单元转发的视频数据。基于上述输入单元接收到的数据包主要有注册单元发送的通道更新指令、校验单元发送的解码能力更新指令及校验单元转发的视频数据。其中,输入单元实现流程如图9所示。
其中,通道更新指令包括增加通道和减少通道两种类型,且支持一次增加或减少多个输入通道。若为增加n路通道,则输入单元先创建n路通道并按照单向递增为每路通道编码,使每路输入通道有唯一对应编号后加入到输入通道列表中。新创建的输入通道由于没有与对应的解码器绑定,所以没有解码能力。若为减少n路通道,则将解码列表中最后n路通道释放,并判断该通道是否绑定解码器,若绑定解码器则管理单元释放与之绑定的解码器。
解码能力更新指令主要用于设置输入通道对应的解码能力,输入单元收到解码能力更新指令后,首先检测当前通道是否绑定解码器,若已绑定则先发送解码器释放指令到管理单元,再发送解码器获取指令获取新的解码器与输入通道绑定。
输入单元若收到视频数据则将视频数据发送对应通道,对应通道将收到的视频数据发送对应绑定解码器,由解码器解码后发送到输出单元输出。
输出单元与输入单元功能相对应,输出单元维护输出通道列表与输入通道列表一一对应。
管理单元为解码模块的核心单元,主要实现解码器的创建销毁、维护有效解码器列表及备用解码器列表、实现解码器与输入输出通道的绑定。管理单元所实现的功能主要基于注册单元发送的能力控制指令以及输入单元发送的解码器获取指令和解码器释放指令实现。
其中,管理单元收到解码器释放指令后,先解绑定解码器与输入通道和解码器与输出通道,再销毁解码器;管理单元收到解码器获取指令后,首先从备用解码器列表中获取相应性能解码器,将该解码器加入有效解码器列表中。再将对应输入通道输出通道与该解码器绑定。最后更新备用解码器列表,重新创建相应的解码器添加到备用解码器列表中。
基于本发明实施例的上述视频数据流的解码方法及装置,具体应用示例举例如下:
示例一:实现电视墙4分屏显示监控且监控视频数据最大分辨率为1080P。首先用户控制平台发送能力控制指令到控制模块,控制模块转发能力控制指令到注册单元。注册单元发送能力控制指令到管理单元,管理单元收到该指令后创建最大性能为1080P的备用解码器列表。
之后用户发送通道控制指令到控制模块,同样控制模块发送通道更新指令到输入输出单元,输入输出单元分别创建四路通道加入输入通道列表和输出通道列表。
之后,接收单元假设先接收到通道0的视频数据且转发到校验单元,校验单元检测到该视频数据分辨率为1080P,而当前输入通道0无解码能力,则向输入单元发送解码能力更新指令,输入单元向管理单元发送解码器获取指令。管理单元收到该指令后,从备用列表获取1080P的解码器,且与输入通道0和输出通道0绑定。之后创建新的1080P解码器加入到备用列表中。此时校验单元再次检测到输入通道0的解码能力与当前视频数据分辨率匹配,则发送该视频数据到输入通道0.到此,第一路视频数据开始显示。其余三路视频逻辑与第一路相同。
示例二:用户在监控列表中加入分辨率为4K的监控设备。则用户控制平台先发送能力控制指令到控制模块,控制模块转发能力控制指令到解码模块的注册单元。注册单元发送能力控制指令到管理单元,管理单元收到该指令后,检测到当前最大支持性能为1080P,则创建4k解码器并将此解码器添加到备用解码器列表中。至此,当前解码集群就可支持解码4k的视频数据。
示例三:电视墙由4分屏切换到9分屏。则用户控制平台发送通道控制指令到控制模块,同样控制模块发送通道控制指令到注册单元。注册单元收到该指令后,分别发送通道更新指令到输入单元和输出单元。输入单元和输出单元收到该指令后,分别创建5路通道加入输入通道列表和输出通道列表。此时,该解码集群可以接收9路视频数据,最后5路视频数据的显示逻辑同示例一。
示例四:基于示例三,通道0切换要显示的监控,若当前显示视频流分辨率为1080P,新切换监控视频数据为720P。则接收模块接收到新视频数据后,发送校验单元,校验单元检测到当前通道0的解码能力(1080P)与视频数据分辨率(720P)不匹配。则向输入单元发送解码能力更新指令,输入单元检测到当前通道0已绑定解码器。则先向管理单元发送解码器释放指令,释放当前解码器。管理模块解绑定当前解码器与输入通道0和输出通道0,并销毁当前解码器。释放完成后,输入单元再次发送解码器获取指令到管理单元,获取720P的解码器。此时,校验单元检验到通道0的解码能力和新接收视频数据分辨率匹配,则发送新接收视频数据到输入单元。至此,视频流切换实现,通道0开始显示切换后的监控视频。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种视频数据的解码方法及装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (12)

1.一种视频数据的解码方法,其特征在于,所述方法包括:
接收目标视频数据;
获取所述目标视频数据的视频分辨率;
在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器;
利用所述第一解码器对所述目标视频数据进行解码;
所述解码器集群中包括有效解码器列表和备用解码器列表;
所述在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器,包括:
确定所述目标视频数据的目标输入通道;
检测所述目标输入通道是否与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力是否与所述视频分辨率相匹配;
若所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率相匹配,则确定绑定的解码器为所述第一解码器;
若所述目标输入通道未与所述有效解码器列表中的解码器绑定,或者所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率不相匹配,则在所述备用解码器列表中选定所述第一解码器。
2.根据权利要求1所述的视频数据的解码方法,其特征在于,在所述目标输入通道与所述有效解码器列表中的第二解码器绑定且所述第二解码器的解码能力与所述视频分辨率不匹配时,
所述在备用解码器列表中选定所述第一解码器之前,还包括:
将所述目标输入通道与所述第二解码器之间的绑定关系解除,并销毁所述有效解码器列表中的所述第二解码器;
所述在备用解码器列表中选定所述第一解码器之后,还包括:
将在所述备用解码器列表中选定的所述第一解码器移动到所述有效解码器列表,建立所述第一解码器与所述目标输入通道的绑定关系,并按照所述第一解码器的解码能力创建新的解码器作为备用解码器。
3.根据权利要求1所述的视频数据的解码方法,其特征在于,在所述目标输入通道未与所述有效解码器列表中的解码器绑定时,所述在备用解码器列表中选定所述第一解码器后,还包括:
将在所述备用解码器列表中选定的所述第一解码器移动到所述有效解码器列表,建立所述第一解码器与所述目标输入通道的绑定关系,并按照所述第一解码器的解码能力创建新的解码器作为备用解码器。
4.根据权利要求1所述的视频数据的解码方法,其特征在于,创建解码器集群的过程包括:
接收第一能力控制指令;
根据所述第一能力控制指令指示的最大解码能力,创建解码能力小于和等于所述第一能力控制指令指示的最大解码能力的解码器,并保存在备用解码器列表中。
5.根据权利要求4所述的视频数据的解码方法,其特征在于,所述根据所述第一能力控制指令指示的最大解码能力,创建解码能力小于和等于所述第一能力控制指令指示的最大解码能力的解码器,并保存在备用解码器列表中之后,所述视频数据的解码方法还包括:
接收第二能力控制指令;
当所述第二能力控制指令中指示的最大解码能力较所述第一能力控制指令指示的最大解码能力有变化时,根据所述第二能力控制指令调整所述备用解码器列表的最大解码能力。
6.根据权利要求5所述的视频数据的解码方法,其特征在于,根据所述第二能力控制指令调整所述备用解码器列表的最大解码能力,包括:
若所述第二能力控制指令指示的最大解码能力小于所述第一能力控制指令指示的最大解码能力,则销毁所述备用解码器列表中超出所述第二能力控制指令指示的最大解码能力的解码器;
若所述第二能力控制指令指示的最大解码能力大于所述第一能力控制指令指示的最大解码能力,则在所述备用解码器列表中创建大于所述第一能力控制指令指示的最大解码能力,且小于所述第二能力控制指令指示的最大解码能力的解码器,以及等于所述第二能力控制指令指示的最大解码能力的解码器。
7.根据权利要求1所述的视频数据的解码方法,其特征在于,所述第一解码器与目标输出通道绑定;
利用所述第一解码器对所述目标视频数据进行解码之后,还包括:
将解码后的所述目标视频数据,通过所述目标输出通道输出到显示设备进行显示。
8.根据权利要求1所述的视频数据的解码方法,其特征在于,接收到的一路视频数据对应一个输入通道,一个输入通道对应有一个输出通道;所述接收目标视频数据之前,还包括:
接收通道控制指令;
根据所述通道控制指令调整输入通道和输出通道的数量。
9.根据权利要求8所述的视频数据的解码方法,其特征在于,所述解码器集群中包括有效解码器列表,输出通道与其对应的输入通道与所述有效解码器列表中的同一解码器存在绑定关系;输入通道和与其对应的输出通道对应同一编码;
所述根据所述通道控制指令调整输入通道和输出通道的数量,包括:
若所述通道控制指令指示减少第一数量的输入通道以及所述第一数量的输出通道,则将所述编码按照从小到大或者从大到小的顺序进行排序,并判断排位前所述第一数量的编码对应的第一输入通道和第一输出通道是否绑定有解码器;
若所述第一输入通道和所述第一输出通道分别与第三解码器绑定,则分别解除所述第一输入通道、所述第一输出通道与所述第三解码器之间的绑定关系,并删除所述第一输入通道和所述第一输出通道;
若所述第一输入通道和所述第一输出通道未绑定解码器,则删除所述第一输入通道和所述第一输出通道;
若所述通道控制指令指示增加第二数量的输入通道以及所述第二数量的输出通道,则创建所述第二数量的输入通道和所述第二数量的输出通道,并从当前已有编码中的最大编码开始,按照递增的方式为创建的所述第二数量的输入通道和所述第二数量的输出通道进行编码。
10.一种视频数据的解码装置,其特征在于,包括:
接收模块,用于接收目标视频数据;
解码模块,所述解码模块包括校验单元和输入单元;
所述校验单元用于接收所述接收模块发送的所述目标视频数据,并获取所述目标视频数据的视频分辨率,在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器,将所述目标视频数据发送到所述输入单元;
所述输入单元用于将所述目标视频数据发送到所述第一解码器,由所述第一解码器对所述目标视频数据进行解码;
所述解码器集群中包括有效解码器列表和备用解码器列表;所述解码模块还包括管理单元;
所述校验单元在预先创建的解码器集群中,确定解码能力与所述视频分辨率相匹配的第一解码器的过程中,所述校验单元具体用于:
确定所述目标视频数据的目标输入通道;
检测所述目标输入通道是否与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力是否与所述视频分辨率相匹配;
若所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率相匹配,则确定绑定的解码器为所述第一解码器;
若所述目标输入通道未与所述有效解码器列表中的解码器绑定,或者所述目标输入通道与所述有效解码器列表中的解码器绑定且绑定的解码器的解码能力与所述视频分辨率不相匹配,则向所述输入单元发送解码能力更新指令,其中,所述输入单元接收到所述解码能力更新指令后,指示所述管理单元在所述备用解码器列表中选定所述第一解码器。
11.一种计算设备,其特征在于,包括:
一个或多个处理器;和
其上存储有指令的一个或多个机器可读介质,当由所述一个或多个处理器执行时,使得所述计算设备执行如权利要求1至9任意一项所述的视频数据的解码方法。
12.一种计算机可读存储介质,其特征在于,其存储的计算机程序使得处理器执行如权利要求1至9任意一项所述的视频数据的解码方法。
CN201911341190.2A 2019-12-23 2019-12-23 一种视频数据的解码方法及装置 Active CN111147860B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911341190.2A CN111147860B (zh) 2019-12-23 2019-12-23 一种视频数据的解码方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911341190.2A CN111147860B (zh) 2019-12-23 2019-12-23 一种视频数据的解码方法及装置

Publications (2)

Publication Number Publication Date
CN111147860A CN111147860A (zh) 2020-05-12
CN111147860B true CN111147860B (zh) 2022-08-30

Family

ID=70519525

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911341190.2A Active CN111147860B (zh) 2019-12-23 2019-12-23 一种视频数据的解码方法及装置

Country Status (1)

Country Link
CN (1) CN111147860B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113784219A (zh) * 2020-06-09 2021-12-10 中兴通讯股份有限公司 终端设备升级方法、终端设备、控制系统及存储介质
CN111711791A (zh) * 2020-06-12 2020-09-25 西安万像电子科技有限公司 数据处理方法及装置
CN112738525B (zh) * 2020-12-11 2023-06-27 深圳万兴软件有限公司 视频处理方法、装置及计算机可读存储介质
CN115190262B (zh) * 2021-04-02 2024-07-23 海信集团控股股份有限公司 一种电子设备、视频流处理方法、设备及介质
CN115379236B (zh) * 2022-08-26 2024-04-09 重庆紫光华山智安科技有限公司 视频处理方法、装置、介质及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196211A1 (en) * 2002-04-10 2003-10-16 Peter Chan Systems, methods and apparatuses for simulated rapid tuning of digital video channels
CN101873478A (zh) * 2010-06-18 2010-10-27 杭州海康威视数字技术股份有限公司 网络监控系统控制方法及相关装置
CN107396125A (zh) * 2017-05-27 2017-11-24 联发科技(新加坡)私人有限公司 解码器资源分配方法及装置
CN108282656A (zh) * 2018-02-13 2018-07-13 山东顺国电子科技有限公司 可视化平台数据处理方法以及装置
CN110572622A (zh) * 2019-09-30 2019-12-13 威创集团股份有限公司 视频解码方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030196211A1 (en) * 2002-04-10 2003-10-16 Peter Chan Systems, methods and apparatuses for simulated rapid tuning of digital video channels
CN101873478A (zh) * 2010-06-18 2010-10-27 杭州海康威视数字技术股份有限公司 网络监控系统控制方法及相关装置
CN107396125A (zh) * 2017-05-27 2017-11-24 联发科技(新加坡)私人有限公司 解码器资源分配方法及装置
CN108282656A (zh) * 2018-02-13 2018-07-13 山东顺国电子科技有限公司 可视化平台数据处理方法以及装置
CN110572622A (zh) * 2019-09-30 2019-12-13 威创集团股份有限公司 视频解码方法及装置

Also Published As

Publication number Publication date
CN111147860A (zh) 2020-05-12

Similar Documents

Publication Publication Date Title
CN111147860B (zh) 一种视频数据的解码方法及装置
JP7309478B2 (ja) オーバーレイを伴うビデオを符号化するための方法およびシステム
JP4965059B2 (ja) ビデオストリームの切り替え
WO2016138844A1 (zh) 音视频文件直播方法和系统、服务器
JP2020519094A (ja) ビデオ再生方法、デバイス、およびシステム
US20050244070A1 (en) Moving picture distribution system, moving picture distribution device and method, recording medium, and program
CN107911710B (zh) 一种直播资源共享管理平台及方法
CN102948148A (zh) 组合多比特率与可伸缩视频编码
US20220329883A1 (en) Combining Video Streams in Composite Video Stream with Metadata
EP2627082A2 (en) Method for transmitting a scalable http stream for natural reproduction upon the occurrence of expression-switching during http streaming
US20140313281A1 (en) Dynamic allocation of encoders
KR20140126372A (ko) 데이터, 멀티미디어 및 비디오 전송 갱신 시스템
CN111901630A (zh) 一种数据传输方法、装置、终端设备和存储介质
JP2007325109A (ja) 配信サーバ、ネットワークカメラ、配信方法及びプログラム
CN102326403A (zh) 利用外部图片属性标记来加快频道改变时间
CN102939766B (zh) 接收器和接收器侧使用单个解码器使能信道变化的方法
US9215396B2 (en) Faster access to television channels
US20180338170A1 (en) Contiguous Streaming Of Media Stream
CN112752074A (zh) 数据传输方法、装置、终端设备和存储介质
CN113630576A (zh) 自适应视频流式传输系统和方法
CN101605243B (zh) 节目提供的方法、媒体设备和用户侧设备
CN110324667B (zh) 一种新型视频流的播放方法和系统
TWI491218B (zh) 媒體中繼視訊通信
JPH11331843A (ja) 大きな画像から無制限の選択された画像ビュ―を生成する方法および装置
KR100899666B1 (ko) 분산 다중 스트리밍 전송 장치

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