当前位置: 首页 > 专利查询>清华大学专利>正文

一种多子流协同的视频流媒体并行解码方法技术

技术编号:16283790 阅读:54 留言:0更新日期:2017-09-23 03:17
一种多子流协同的视频流媒体并行解码方法,是一种视频流媒体领域中的创新型解码方案;其目的在于在当前移动设备有限的硬件资源和计算能力上实现高分辨率视频流的快速解码。其主要思路为:将原始的高分辨率视频流拆分为多个低分辨率视频子流,客户端开启多条连接负责读取不同的视频子流并利用多线程技术同时解码这些视频子流,客户端再将每个子流解码出来的视频子帧整合、复原为原始的完整帧并显示;本发明专利技术充分利用手机CPU的多核架构,在无需改变编/解码器内部实现(逻辑/算法)的情况下,实现了能够快速在各种平台、设备上部署的高效并行视频流媒体解码方案。

Multi stream cooperative video stream media parallel decoding method

A multi stream collaborative video streaming parallel decoding method, is a kind of innovative video stream decoding scheme in the field of media; its purpose is to realize the fast decoding of high resolution video stream on the hardware resources and computing power in the current mobile equipment co.. The main idea is as follows: the original high resolution video stream into multiple low resolution video stream, the client opens a plurality of connection is responsible for reading different video streams and the use of multi threading technology and decode the video sub stream, then the client video sub frame integration, each sub stream is decoded to complete frame recovery the original and display; the invention makes full use of multi-core mobile phone CPU, without changing the internal implementation of encoder / decoder (logic / algorithm) under the condition of achieving efficient parallel video streaming media decoding scheme can be rapidly deployed on various platforms, equipment.

【技术实现步骤摘要】
一种多子流协同的视频流媒体并行解码方法
本专利技术属于视频流媒体
,特别涉及一种多子流协同的视频流媒体并行解码方法。
技术介绍
随着用户体验需求的持续增长和终端显示技术的不断进步,越来越多的视频服务提供商开始提供高分辨率、高清晰度的视频流媒体服务。与此同时,随着虚拟现实、全景视频产业的快速发展,4K、8K等超高分辨率视频也已开始出现和普及。借助目前主流的视频压缩技术(如H.264,H.265),高码率的视频流能够在现有的网络上实现有效的分发和传输。视频压缩技术有效节省了网络的带宽开销,但是也在终端设备上引入了额外的计算开销。终端设备需要对接收到的视频流进行逐帧解码才能将其显示并播放。终端上过高的解码延迟将导致视频无法按照原有的帧率进行播放,直接影响用户的观看体验。由于解码延迟正相关于视频的分辨率,如何保证高分辨率(4K、8K)视频流的快速解码就成为一个重要的问题。特别地,当用户使用移动设备(智能手机等)作为终端时,上述问题将更加严峻。这是因为当前移动设备上有限的硬件(CPU/GPU)能力难以完成高分辨率视频流的快速解码。除此之外,移动设备上功耗受限的特性也使得CPU和GPU无法长时间工作在较高频率,进一步削弱了其解码能力。因此,我们希望在软件层面设计出一种全新的视频流媒体解码方案,使得移动设备在无需耗尽本身计算资源的情况下实现高分辨率视频流的快速解码。
技术实现思路
为了克服上述现有技术的缺点,解决如何在移动设备(智能手机)上实现高分辨率视频流的快速解码等问题,本专利技术的目的在于提供一种多子流协同的视频流媒体并行解码方法,为了实现上述目的,本专利技术采用的技术方案是:一种多子流协同的视频流媒体并行解码方法,将高分辨率的视频流拆分成多个低分辨率的子视频流,充分利用手机CPU的多核架构实现快速的并行视频流媒体解码,在流媒体场景下按照以下步骤实现:步骤(1),服务器端将原视频流的每一帧切分为N个子帧,得到N个子序列帧(由于手机趋近于使用4核的CPU架构,下面取N=4),每个子帧都包含一个时间戳信息用来标识其在原视频流中的位置,由同一帧切分出来的不同子帧应具有相同的时间戳信息;步骤(2),利用视频压缩技术,服务器端将N个子序列帧转码为N个独立的子视频流,每个子视频流对应一个唯一的URL;步骤(3),客户端播放器同时开启N个解码线程,分别从服务器上读取N个子视频流,并对每个子视频流进行逐帧解码;步骤(4),播放器的N个解码线程按顺序将已解码好的子帧分别加到N个不同的子帧队列中;步骤(5),播放器开启一个显示线程,该线程每次从N个不同的子帧队列中按顺序获取一帧已解码的子帧,当N个子帧都已经出列并且具备相同的时间戳信息,显示线程将它们组合成完整的一帧,并显示出来。所述步骤(1)中,服务器端将原视频流的高分辨率视频帧按等份水平切分为N个子帧,每个子帧的分辨率为原来的则原来组成一个视频流的一系列帧就转变成了N个子序列帧。所述N等于手机CPU架构的核心数,每个核负责一个独立子视频流的解码。与现有技术相比,本专利技术可以直接在当前移动设备(智能手机)有限的硬件(CPU/GPU)能力上实现高分辨率视频流的快速解码。本专利技术在无需改变任何编/解码器内部实现(逻辑/算法)的情况下,充分利用当前手机CPU的多核架构实现了高效的并行解码。相对于其他方案,本专利技术可以非常容易地部署、实施在各种播放器和编/解码器之上,有利于促进高码率视频流服务的发展和普及。附图说明图1是本专利技术子帧切分示意图。具体实施方式下面结合附图和实施例详细说明本专利技术的实施方式。本专利技术利用手机CPU的多核架构设计了一种基于多子流协同的并行视频流媒体解码方案。首先,在流媒体服务器上将原有的高分辨率视频帧按等份水平切分为N个子帧(如图1所示),每个子帧的分辨率为原来的并包含一个时间戳信息用来标识其在原视频流中的位置。经过这样的处理后,原来组成一个视频流的一系列帧就转变成了N个子序列帧。服务器利用主流的视频压缩技术(H.264或H.265)将这N个子序列帧压缩成个N个独立的子视频流(分别对应不同的资源定位符)。相应地,客户端播放器将利用现在手机CPU中普遍的多核架构来并行读取和解码这N个独立的子视频流了。因此为了达到最优的并行解码效果,N的取值将取决于终端手机CPU核的数量。一般情况下,每个核负责一个独立子视频流的解码能达到最好的解码效果。由于目前主流的手机都趋近于使用4核的CPU架构,因此N通常取值为4。为了支持同时并行解码4个子视频流,客户端播放器需要同时开启4个解码线程分别从不同的子视频流中读取、解码子序列帧。考虑到不同解码线程的读取、解码速度无法确保完全一致,直接显示解码后的子帧将出现子帧错位的情况(即某一时刻组成画面的四个子帧在原视频流中并不属于同一时刻)。为了解决上述问题,每个解码线程都需要维护一个队列并按顺序缓存已解码的子帧。除此之外,播放器还将开启一个显示线程用于整合、拼接子帧并将其完整无误地显示到屏幕上。该显示线程将分别从4个解码线程维护的队列中按顺序获取解码好的子帧。在确认当前4个子帧都具备相同的时间戳信息后,再将它们组合、拼接成为完整的一帧,并显示到屏幕上。具体地,本专利技术基于多子流协同的并行视频流媒体解码方法包含以下几个主要步骤:步骤(1)假设一个高清视频流的原始帧序列为frame_seq={f1,f2,f3,f4,...,fn}。服务器端首先按照图一所示将该序列的每一帧fk进行水平切分,得到m个子帧{fk1,fk2,...,fkm}。由于当前手机趋近于使用4核的CPU架构,以下取m=4,则有:frame_seq=frame_seq_1∪frame_seq_2∪frame_seq_3∪frame_seq_4={f11,...,fn1}∪{f12,...,fn2}∪{f13,...,fn3}∪{f14,...,fn4}步骤(2)原视频流的每一帧fk在编码时都将对应到唯一的一个时间戳信息,也就是存在映射关系:tk→fk。fk切分后的子帧{fk1,fk2,fk3,fk4}均对应原来的时间戳tk。步骤(3)服务器按照tk→fkm的映射,分别将子帧序列frame_seq_k编码压缩为独立的子视频流sub_stream_k。每个子视频流对应一个唯一的URL(资源定位符)。步骤(4)客户端根据4个子流的URL,开启四个独立的线程从服务器获取对应的视频流。同时客户端将维护4个解码队列{frame_queue_1,frame_queue_2,frame_queue_3,frame_queue_4},分别用于缓存、同步四个子流已解码的视频子帧。步骤(5)考虑到每个子帧的解码速度无法确保一致,每个子流将分别独立地进行逐帧解码。解码好的视频子帧将按顺序加入到各自的解码队列中。步骤(6)客户端同时开启一个播放线程,该线程负责从解码队列frame_queue_k中出列已解码的视频子帧并将它们组合显示为完整的一帧。为了确保不会出现子帧错位情况,只有当出列的四个子帧都对应同一时间戳tk时才组合显示。若存在子帧丢失情况,则应对其他同一时刻的子帧做相应的丢帧处理。因此,本专利技术是一种视频流媒体领域中的创新型解码方案。其目的在于在当前移动设备有限的硬件资源和计算能力上实现高分辨率视频流的快速本文档来自技高网...
一种多子流协同的视频流媒体并行解码方法

【技术保护点】
一种多子流协同的视频流媒体并行解码方法,将高分辨率的视频流拆分成多个低分辨率的子视频流,充分利用手机CPU的多核架构实现快速的并行视频流媒体解码,其特征在于,在流媒体场景下按照以下步骤实现:步骤(1),服务器端将原视频流的每一帧切分为N个子帧,得到N个子序列帧,每个子帧都包含一个时间戳信息用来标识其在原视频流中的位置,由同一帧切分出来的不同子帧应具有相同的时间戳信息;步骤(2),利用视频压缩技术,服务器端将N个子序列帧转码为N个独立的子视频流,每个子视频流对应一个唯一的URL;步骤(3),客户端播放器同时开启N个解码线程,分别从服务器上读取N个子视频流,并对每个子视频流进行逐帧解码;步骤(4),播放器的N个解码线程按顺序将已解码好的子帧分别加到N个不同的子帧队列中;步骤(5),播放器开启一个显示线程,该线程每次从N个不同的子帧队列中按顺序获取一帧已解码的子帧,当N个子帧都已经出列并且具备相同的时间戳信息,显示线程将它们组合成完整的一帧,并显示出来。

【技术特征摘要】
1.一种多子流协同的视频流媒体并行解码方法,将高分辨率的视频流拆分成多个低分辨率的子视频流,充分利用手机CPU的多核架构实现快速的并行视频流媒体解码,其特征在于,在流媒体场景下按照以下步骤实现:步骤(1),服务器端将原视频流的每一帧切分为N个子帧,得到N个子序列帧,每个子帧都包含一个时间戳信息用来标识其在原视频流中的位置,由同一帧切分出来的不同子帧应具有相同的时间戳信息;步骤(2),利用视频压缩技术,服务器端将N个子序列帧转码为N个独立的子视频流,每个子视频流对应一个唯一的URL;步骤(3),客户端播放器同时开启N个解码线程,分别从服务器上读取N个子视频流,并对每个子视频流进行逐帧解码;步骤(4),播放器的...

【专利技术属性】
技术研发人员:崔勇孙霖晖赖泽祺
申请(专利权)人:清华大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1