视频编码和还原方法、视频播放系统以及相关设备与流程

文档序号:13688464阅读:214来源:国知局
视频编码和还原方法、视频播放系统以及相关设备与流程

本发明涉及计算机技术领域,特别涉及一种视频编码和还原方法、视频播放系统以及服务器和播放设备等相关设备。



背景技术:

随着视频制作技术的快速发展,视频的分辨率不断提高,同时对视频进行压缩编码时消耗的计算资源也越来越多。

现有技术中,由于视频编码对时效性的要求较高,大多采用硬件设备进行视频编码,因此,每次视频分辨率的跃升需要相应的提高编码设备的处理能力,造成旧编码设备的淘汰,代价巨大。



技术实现要素:

本发明所要解决的一个技术问题是:如何利用已有的处理较低分辨率的编码设备来对更高分辨率的视频进行编码。

根据本发明的一个方面,提供的一种视频编码方法,包括:根据多个编码设备的分辨率,将待编码视频分割为相应的子视频,子视频的分辨率低于待编码视频的分辨率;将各个子视频分别输入对应的多个编码设备进行编码。

根据本发明第二个方面,提供的一种基于前述的视频编码方法的视频还原方法,包括:获取同一视频分割的各个子视频;对各个子视频进行解码;将解码后的各个子视频合成完整的视频。

根据本发明第三个方面,提供的一种用于视频编码的服务器,包括:视频分割模块,用于根据多个编码设备的分辨率,将待编码视频分割为相应的子视频,子视频的分辨率低于待编码视频的分辨率;子视频发送模块,用于将各个子视频分别输入对应的多个编码设备进行编码。

根据本发明第四个方面,提供的一种用于视频还原的播放设备,包括:子视频获取模块,用于获取同一视频分割的各个子视频;解码模块,用于对各个子视频进行解码;视频还原模块,用于将解码后的各个子视频合成完整的视频。

根据本发明第五个方面,提供的一种视频播放系统,包括:编码设备、前述实施例的服务器以及前述实施例的播放设备。

本发明根据各个编码设备的分辨率,将待编码高分辨率视频剪裁为多个低分辨率子视频,并利用多个编码设备对各个子视频进行编码,通过叠加多个低分辨率的编码设备实现了对高分辨率视频的编码,从而不需要升级置换编码设备便可以利用旧有设备适应视频分辨率的提升,节约了成本和资源。

通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1示出本发明的一个实施例的视频编码方法的流程示意图。

图2示出本发明的一个实施例的视频图像分割方式的示意图

图3示出本发明的一个实施例的视频还原方法的流程示意图。

图4示出本发明的一个应用例的视频处理方法的流程示意图。

图5示出本发明的一个应用例的视频图像分割方式的示意图。

图6示出本发明的一个应用例的视频图像还原方式的示意图。

图7示出本发明的一个实施例的用于视频编码的服务器的结构示意图。

图8示出本发明的一个实施例的用于视频还原的播放设备的结构示意图。

图9示出本发明的一个实施例的视频播放系统的结构示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

针对现有技术中,需要改进编码设备的处理能力来应对视频分辨率的提升,造成设备的不断淘汰,代价巨大的问题,提出本方案。

以下参考图1和图2描述本发明的视频编码方法。

图1为本发明视频编码方法一个实施例的流程图。如图1所示,该实施例的方法包括:

步骤s102,根据多个编码设备的分辨率,将待编码视频分割为相应的子视频。

其中,子视频的分辨率低于待编码视频的分辨率。具体的,获取待编码视频各帧的图像;根据各个编码设备的分辨率,将每帧的图像从空间上分割为多个子图像;将各帧图像中位于同一区域位置的子图像组成对应于一个编码设备的子视频。

如图2所示,例如待编码视频为4k视频(即分辨率为3840×2160,横向3840个像素点),而各个编码设备最高支持1080p的分辨率,则将待编码视频分割为分辨率小于或等于1080p的子视频,若分割为1080p的子视频,则分割为4个子视频,具体的,对待编码视频的每一帧图像进行分割,分割为4个区域,每个区域的子图像按时间顺序组成一个子视频,每个子视频每一帧图像,横向有1920个像素点。

其中,每一个子视频可以单独进行编码、传输、解码和播放,播放时只显示视频中对应的部分区域,不能形成完整的视频。为了在播放端将子视频拼接成完整的视频,每帧图像及其分割出来的子图像采用相同的帧号进行标识。例如,视频中某一帧图像的帧号为88,则分割的子图像帧号也为88,这样在拼接时,能够保证每一帧图像的还原准确性,如果其中某个子视频的某帧子图像丢失,也不会导致后续图像的拼接错误。

将待编码视频分割为多个子视频后,可以生成相应的视频配置文件,以便播放设备根据视频配置文件将各个子视频合成为完整的视频,视频配置文件包括视频标识、视频分辨率、各个子视频分辨率和各个子视频在图像的区域位置。视频合成的过程将在后续的视频还原的实施例进行描述。

步骤s104,将各个子视频分别输入对应的多个编码设备进行编码。

其中,将同一区域位置的子图像按照时间顺序组成子视频由一个编码设备进行编码,如图2所示,区域1由编码设备1进行编码,区域2由编码设备2进行编码,区域3由编码设备3进行编码,区域4由编码设备4进行编码。各个编码设备的参数配置需要保持一致,保证编码后的各个子视频具有相同时序的帧和帧数。

编码后的各个子视频被封装成常见的网路流媒体格式文件,例如mp4文件,可以存放至不同的服务器,由多个服务器为待编码视频的播放服务提供资源,相应的,在视频配置文件中添加各个子视频存放的服务器的地址。将视频进行分布式存储,当有播放请求时,可以同时从多个服务器向外发送资源,从而减少单台服务器的出口带宽。

上述实施例的方法,根据各个编码设备的分辨率,将待编码高分辨率视频剪裁为多个低分辨率子视频,并利用多个编码设备对各个子视频进行编码,通过叠加多个低分辨率的编码设备实现了对高分辨率视频的编码,从而不需要升级置换编码设备便可以利用旧有设备适应视频分辨率的提升,节约了成本和资源。

本发明还提供一种视频还原方法,在视频播放时将分割的各个子视频还原为完整的视频进行播放。下面结合图3进行描述。

图3为本发明视频还原方法一个实施例的流程图。如图3所示,该实施例的方法包括:

步骤s302,获取同一视频分割的各个子视频。

其中,如果各个子视频分别存储于不同的服务器,则需要读取视频配置文件,视频配置文件包括同一视频的各个子视频存放的服务器的地址;根据视频配置文件中各个子视频存放的服务器的地址获取同一视频分割的各个子视频。

步骤s304,对各个子视频进行解码。

当各个子视频的数据流达到播放设备后,播放设备分别对各个子视频的缓存数据进行解码,当利用多核心计算能力的播放设备时,可以由一个核心负责一个子视频的解码计算,处理速度更快,效率更高。可以通过升级播放设备的软件功能实现同时对多路子视频进行解码。

步骤s306,将解码后的各个子视频合成完整的视频。

解码后的各个子视频可以单独播放,不过子视频只具备视频的部分画面,因此需要将子视频组合成完整的视频。视频还原时也以帧为单位对每一帧图像进行还原,进而组合成完整的视频。具体的,提取同一视频的子视频的各帧子图像,首先,读取视频配置文件,视频配置文件包括视频标识、视频分辨率、各个子视频分辨率和各个子视频在图像的区域位置,然后,根据各个子视频分辨率从同一视频标识对应的视频的子视频中提取各帧子图像,具体的,将属于同一视频标识的视频的子视频,根据各个子视频分辨率对各个子视频进行解码得到子视频中各帧子图像。进一步,将帧号相同的子图像合成一帧图像,需要根据视频分辨率、各个子视频在图像的区域位置将帧号相同的子图像合成一帧图像;最后,将各帧图像按照时间顺序合成视频。

上述实施例的方法,在播放端将分割为多个子视频的视频进行还原,实现了视频的完整播放,配合前述实施例中的视频编码方法,为解决现有技术中存在的设备更新问题提供了完整的解决方案。

以下参考图4至图6描述本发明对视频进行编码并还原的完整处理过程。

图4为本发明视频处理方法一个应用例的流程图。如图4所示,该应用例的方法包括:

步骤s402,获取视频资源。

其中,例如直播或点播4k高清视频资源作为输入,如果高清视频资源内容本身经过压缩编码的处理(例如点播的节目内容),则其在输入本发明的系统进行重新编码(转码)处理时,系统需要前置一台解码设备进行解码。

步骤s404,获取视频各帧的图像。

将该4k高清视频解压成一帧一帧的4k图像(位图),此图像大小为3840×2160个像素,如图5所示。

步骤s406,根据各个编码设备的分辨率,将每帧的图像从空间上分割为多个子图像。

如图5所示,例如利用软件工具,根据各个编码设备的分辨率将4k图像划分为区域1、2、3共3个1920×1080像素大小的区域和区域4、5、6、7共4个960×540像素大小的区域,每个区域为一个子图像。

其中,每帧图像及其分割出来的子图像采用相同的帧号进行标识。例如视频有10800帧,则从开始到结束的每一帧从0编号到10799,以上每一帧画面经过区域切分后,每个区域都可组成由10800帧构成的子视频流。如图5所示,假设当前的图像帧号为88,则7个区域的子图像帧号也为88。

步骤s408,将各帧图像中位于同一区域位置的子图像组成对应于一个编码设备的子视频。

如图5所示,4k视频图像被划分为7个区域的子图像,共生成7个子视频,对应7个编码设备。

步骤s410,将各个子视频分别输入相应的编码设备进行编码。

各个编码设备同时对相应的子视频进行编码,能够提高编码的效率。

步骤s412,生成视频配置文件。

视频配置文件可以是处理过程中不断添加子视频的信息形成的。视频配置文件例如表1中所示,名为“海底世界”的4k高清视频的配置文件中记录了视频名称作为视频的标识,还包括视频分辨率、帧数、各个子视频分辨率、帧数、在图像的区域位置、子视频标识以及存储的服务器的地址等,<内容源>remoteserver</内容源>表示需要获取的内容信息来自网络服务器,也可以设置为<内容源>localfile</内容源>,表示各个子视频流来自于本地文件,则子视频的存储位置可以为某一文件的内部偏移量。<子视频标识>h5d3fee9</子视频标识>表示子视频的编号,这里用子视频内容的hash值作为标识,更简单直接的也可以用“海底世界_子视频1”标识。<存储位置>http://s3.abc.cn/store/b5d3fee9.mp4</存储位置>表示播放时获取内容的地址,如果内容在本地,可以是本地文件位置,或者某个文件的偏移量

其中,如图5所示,将4k图像左上角坐标设置为(0,0)。

表1

步骤s414,将编码后的各个子视频存放至不同的服务器。

例如,分布式存储在网络服务器或播放器的本地存储中,每个子视频流都可以单独播放,但是单独播放时只会显示画面的一个区域,如图5所示的完整的4k高清画面需要7路画面同步拼接而成。

步骤s416,接收视频播放请求,获取该视频分割的各个子视频。

播放设备首先根据播放请求获取对应视频配置文件,如表1中所示,根据视频配置文件中各个子视频存放的服务器的地址获取该视频分割的各个子视频。

步骤s418,分别对各个子视频进行解码,提取同一视频的子视频的各帧子图像。

参考表1根据子视频的分辨率对各个子视频进行解码,生成具有相应的分辨率的各帧子图像,例如,区域1的子视频的分辨率为1920×1080,则解码时生成的子图像分辨率为1920×1080.

步骤s420,根据视频配置文件将各个子视频的各帧子图像合成完整的视频图像。

根据子视频标识,查找配置文件中该子视频对应的区域位置,根据各个子视频在图像的区域位置将帧号相同的子图像合成一帧图像。其中,每一帧图像合成时需要判断子图像的帧号,将帧号相同的子图像合成一帧图像,如图6所示,将7个子视频流中帧号都为88的7个子图像,组成完整的88号4k视频帧。如果缺少某一区域,则在显示该4k高清帧图像时会有某个区域的图像显示不出(区域4由于丢失数据而显示蓝屏,其他区域正常)。将子图像进行编号,避免了某一帧子图像丢失时将下一帧的子图像拼接到当前图像中造成整个视频的混乱。

合成时完整的视频图像时,需要根据视频配置文件中的视频的分辨率进行合成,同时根据视频的帧数判断合成的视频是否完整。

步骤s422,将各帧图像按时间顺序组合成视频进行播放。

其中,播放器在播放视频时,同时向各个子视频流地址请求数据,子视频流数据缓存到播放器本地内存中,并进行子视频流的解码和按帧顺序拼装,当缓存足够的数据,例如播放10秒数据时,则开始播放。

本发明还提供一种服务器,用于对待编码的视频进行处理,下面结合图7进行描述。

图7为本发明服务器一个实施例的结构图。如图7所示,该服务器70包括:

视频分割模块702,用于根据多个编码设备的分辨率,将待编码视频分割为相应的子视频。

其中,子视频的分辨率低于待编码视频的分辨率,视频分割模块702包括图像提取单元,用于获取待编码视频各帧的图像;图像分割单元,用于根据各个编码设备的分辨率,将每帧的图像从空间上分割为多个子图像;子视频生成单元,用于将各帧图像中位于同一区域位置的子图像组成对应于一个编码设备的子视频。帧号标识单元,用于将每帧图像及其分割出来的子图像采用相同的帧号进行标识。

在一个实施例中,视频分割模块702还可以包括

子视频发送模块704,用于将各个子视频分别输入对应的多个编码设备进行编码。

如图7所示,在一个实施例中,服务器50还可以包括配置文件生成模块706,用于生成视频配置文件,以便播放设备根据视频配置文件将各个子视频合成为完整的视频,视频配置文件包括视频标识、视频分辨率、各个子视频分辨率和各个子视频在图像的区域位置。

本发明还提供一种播放设备,用于对视频进行还原和播放,下面结合图8进行描述。

图8为本发明播放设备一个实施例的结构图。如图8所示,该播放设备80包括:

子视频获取模块802,用于获取同一视频分割的各个子视频。

其中,子视频获取模块802包括:配置文件读取单元,用于读取视频配置文件,视频配置文件包括同一视频的各个子视频存放的服务器的地址;子视频获取单元,用于根据视频配置文件中各个子视频存放的服务器的地址获取同一视频分割的各个子视频。

解码模块804,用于对各个子视频进行解码。

视频还原模块806,用于将解码后的各个子视频合成完整的视频。

在一个实施例中,视频还原模块806包括,子图像提取单元,用于提取同一视频的子视频的各帧子图像;图像合成单元,用于将帧号相同的子图像合成一帧图像;视频合成单元,用于将各帧图像合成视频。进一步的,视频还原模块还包括:配置文件读取单元,用于读取视频配置文件,视频配置文件包括视频标识、视频分辨率、各个子视频分辨率和各个子视频在图像的区域位置;其中,子图像提取单元,用于根据各个子视频分辨率从同一视频标识对应的视频的子视频中提取各帧子图像;图像合成单元,用于根据视频分辨率、各个子视频在图像的区域位置将帧号相同的子图像合成一帧图像。

本发明还提供一种视频播放系统,下面结合图9进行描述。

图9为本发明视频播放系统一个实施例的结构图。如图9所示,该系统90包括:前述实施例中的服务器70和播放设备80,还包括多个编码设备902,编码设备902,用于对服务器发送的各个子视频进行编码,并将编码后的子视频发送至多个不同的服务器进行存放。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1