视频分块编码方法、编码传输方法、系统和设备与流程

文档序号:29403707发布日期:2022-03-26 10:06阅读:160来源:国知局
视频分块编码方法、编码传输方法、系统和设备与流程

1.本发明属于视频传输处理技术领域,尤其涉及一种视频分块编码方法、编码传输方法、实现所述编码传输方法的计算机设备、系统以及存储介质。


背景技术:

2.随着图像传感器分辨率的不断提高,单个图像传感器能产生的像素越来越多,目前已经出现高达1亿像素以上的视频传感器,如果原始的视频数据不经压缩,其数据量是非常大的,因此往往需要进行编码压缩,常用的视频编码算法包括mpeg-2,h.264,h.265等,它们能根据压缩质量的不同,提供几十倍至几百倍的压缩比。
3.由于视频编码器设计复杂度较高,数据吞吐量极大,因此常见的商用编码器往往不会处理过高分辨率的图像,目前常见的商用视频编码器一般能对4k大小(3840x2160)的视频进行实时编码。而对于更高分辨率的视频,则需要更为专用的编码器,这意味着更高的价格和使用门槛。
4.另一方面,由于目前常用的视频编码算法在编码和解码端具有不对称性,从而导致解码器的处理能力往往数倍于编码器,或者对同等分辨率的视频处理能力下,其价格远低于编码器。
5.如何在已有的常规商用视频解码器的基础上实现高分辨率视频图像的快速传输以及正常解码播放,同时不增加硬件成本,成为本领域亟待解决的技术问题。


技术实现要素:

6.为解决上述技术问题,本发明提出一种视频分块编码方法、编码传输方法、实现所述编码传输方法的计算机设备、系统以及存储介质。
7.在本发明的第一个方面,提出一种视频分块编码的方法,所述方法包括如下步骤:s100:获取视频画面;s200:根据视频画面尺寸,确定视频画面分割方式;s300:获取编码器的实时处理能力;s400:根据编码器的实时处理能力,确定视频画面分割数目;s500:基于确定的视频画面分割方式和视频画面分割数目对视频画面进行分割,得到多个分块画面数据;s600:将每个分块画面数据分配至对应的编码器执行压缩编码。
8.作为进一步的改进,为了配合后续的解码播放过程,所述步骤s500还包括:为每个分块画面数据生成时间戳信息和位置戳信息;将所述时间戳信息和位置戳信息插入到所述每个分块画面数据中。
9.此时,在所述步骤s600之后,所述方法还包括:s700:将执行所述压缩编码后的每个分块画面数据传输至传输到客户端用于视频直播。
10.基于前述的编码压缩所使用的时间戳和位置戳,执行解码播放的所述步骤s700具体包括:s701:客户端接收画面分块描述信息构建出视频画布 ;s702:客户端将收到的每个分块画面数据进行解码,解码后的分块画面数据包含该分块画面数据的时间戳信息和位置戳信息;s703:将时间戳信息相同的分块画面数据,基于所述位置戳信息放置到所述视频画布的对应位置;s704:在客户端的可视化界面上显示由多个分块画面数据拼接得到的视频画面。
11.上述步骤s701中,所述画面分块描述信息包括视频画面分割方式和视频画面分割数目。
12.作为再一个改进,所述步骤s400具体包括:根据编码器的实时处理能力,确定当前空闲的编码器的数量以及每个空闲编码器的实时处理能力;基于所述空闲的编码器的数量和每个空闲编码器的实时处理能力,确定视频画面分割数目。
13.第一个方面所述的方法是从整体上以单帧画面数据为基础,介绍本发明针对每一个单帧画面数据的编码压缩传输以及解码播放基础。
14.实际应用中,视频数据由多帧组成,每一帧画面数据均需要按需进行传输,对此,在本发明的第二个方面,提出一种视频分块编码传输的方法,所述方法包括如下步骤:ss1:获取当前视频画面的尺寸和当前编码器的实时处理能力;ss2:确定当前视频画面的画面分割方式和视频画面分割数目;ss3:基于确定的视频画面分割方式和视频画面分割数目对当前视频画面进行分割,得到多个当前分块画面数据;ss4:将每个当前分块画面数据分配至对应的编码器执行压缩编码;ss5:将执行所述压缩编码后的每个当前分块画面数据传输至传输到客户端;ss6:获取下一个视频画面,将下一个视频画面作为当前视频画面,返回步骤ss1。
15.作为进一步的改进,所述步骤ss3还包括:针对每一个当前分块画面数据进行边缘扩展。
16.在本发明的第三个方面,为实现第一个方面或者第二个方面所述的方法,提出一种视频分块编码传输系统,所述系统包括:视频帧获取模块,所述视频帧获取模块用于获取亿级像素视频的每一帧画面;视频尺寸获取模块,所述视频尺寸获取模块用于获取所述每一帧画面的尺寸;编码器能力探测模块,所述编码器能力探测模块用于探测每个编码器的实时处理能力;画面帧分割模块,所述画面帧分割模块基于每一帧画面的尺寸和每个编码器的实时处理能力,确定每一帧画面的分割方式和分割数据,并基于所述分割方式和分割数据对每一帧画面进行分割,得到多个分块画面数据;编码压缩模块,所述编码压缩模块将每个分块画面数据分发至对应的至少一个编码器执行编码压缩处理;
分块传输模块,所述分块传输模块将执行编码压缩处理之后的每个分块画面数据传输至客户端。
17.本发明的上述技术方案可以通过计算机设备或者系统,基于计算机程序指令自动化实现。
18.具体的,在本发明的第四个方面,提供一种视频分块编码传输设备,所述设备包括处理器和存储器,所述存储器上存储有计算机可执行程序指令,通过所述处理器执行所述可执行程序指令,用于实现前述第一个方面或者第二个方面所述的方法。
19.进一步的,在本发明的第五个方面,本发明可以实现为一种计算机介质,计算机介质上存储有计算机程序指令,通过执行所述程序指令,前述第一个方面或者第二个方面所述的方法。
20.同样的,在本发明的第六个方面,本发明还可以表现为一种计算机程序产品,所述程序产品承载于计算机存储介质,通过处理器执行所述程序,从而实现前述第一个方面或者第二个方面所述的方法。
21.可以看到,本发明通过提出一种对原始画面先分块后编码的方法,实现了采用多个较低成本的视频编码器对高分辨率视频内容的压缩编码。此外在客户端配合专用的软件或硬件解码器,可以实现对采用本文描述的编码方法编码后的高分辨率视频进行解码、重组和呈现。因此,本发明的技术方案还可以概括为是一种高分辨率视频图像的分块编码传输和解码播放的方法和设备。
22.本发明的进一步优点将结合说明书附图在具体实施例部分进一步详细体现。
附图说明
23.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
24.图1是本发明一个实施例的一种高分辨率视频图像的分块编码传输和解码播放的方法的完整流程示意图;图2(a)-图2(c)是图1所述方法中确定视频画面分割方式的示意图;图3(a)-图3(b)是针对图2(a)网格化分块方式的四个边缘均向外扩展的方式示意图;图3(c)-图3(f)是针对图2(b)、图2(c)网格化分块方式的边缘扩展的方式示意图;图4是实现图1所述方法的优选实施例示意图;图5是本发明一个实施例的高分辨率视频图像的分块编码传输和解码播放的方法的循环执行的优选实施例示意图;图6是执行图1-图5所述方法的步骤的服务器、客户端的系统原理图;图7是执行图1-图5所述方法的步骤的设备的模块架构原理图。
具体实施方式
25.下面,结合附图以及具体实施方式,对发明做出进一步的描述。
26.参照图1,图1是本发明一个实施例的一种高分辨率视频图像的分块编码传输和解码播放的方法的完整流程示意图。
27.图1所述方法包括步骤s100-s700;其中,步骤s100-s600完成了视频分块、压缩编码的过程,步骤s700则完成了客户端解码播放。
28.因此,事实上,图1所述步骤s100-s600可实现为一种视频分块编码的方法,步骤s100-s700则完成体现了一种视频分块编码传输的方法。
29.具体的, 各个步骤实现如下:s100:获取视频画面;s200:根据视频画面尺寸,确定视频画面分割方式;s300:获取编码器的实时处理能力;s400:根据编码器的实时处理能力,确定视频画面分割数目;s500:基于确定的视频画面分割方式和视频画面分割数目对视频画面进行分割,得到多个分块画面数据;s600:将每个分块画面数据分配至对应的编码器执行压缩编码;s700:将执行所述压缩编码后的每个分块画面数据传输至传输到客户端用于视频直播。
30.接下来,本步骤介绍涉及本发明改进点的相关子步骤的具体实现方式。
31.参见图2(a)-图2(c)示出了图1所述方法中确定视频画面的多种分割方式的示意图,即步骤s200的具体实现方式。
32.在实际分各种,可根据画面大小和宽高比的不同,可以采用不同的画面分割方式,包括水平分割,垂直分割或者网格化分割。
33.例如对于常见的16:9或4:3的画面,可以采用网格化分割,如图2(a)所示。
34.对于水平尺寸远大于垂直尺寸的画面,可以采用水平分割,如图2(b)所示。
35.对于垂直尺寸远大于水平尺寸的画面,可以采用垂直分割方式,如图2(c)所示。
36.可以理解,这里的“远大于”,是指其中一个尺寸为另一个尺寸的n倍,n》5。
37.确定分割方式之后,还需要确定分割数据,即将当前画面分割成多少个子网格。
38.对此,执行步骤s300-s400,即获取编码器的实时处理能力后,根据编码器的实时处理能力,确定视频画面分割数目。
39.具体的,所述步骤s400具体包括:根据编码器的实时处理能力,确定当前空闲的编码器的数量以及每个空闲编码器的实时处理能力;基于所述空闲的编码器的数量和每个空闲编码器的实时处理能力,确定视频画面分割数目。
40.以图2(a)所述的网格化分割为例,已知现有的商用编码器可以实时编码4k分辨率,每秒25帧的视频。也就是说其实时编码能力为3840x2160x25=207360000像素/秒。
41.我们可以把该视频网格化为5x8的网格,每个网格尺寸为480x432。
42.对于每秒1000帧的摄像机来说,每个网格产生的数据量为480x432x1000=207360000像素/秒,不超过编码器的实时处理能力。对于帧率更高的摄像机,可以采用小的网格分割方式或者采用更高处理能力的编码器实现这一方法。
43.处理设备内部包含不少于网格数量的编码器,这些编码器各自对一个网格的视频数据进行编码压缩。以上述例子来计算,每个网格编码后的数据量约为2mb/s,所有网格产生的数据量约为80mb/s,现有很多商用存储设备的i/o速度完全可以满足这一要求。
44.因此,可执行步骤s500,即基于确定的视频画面分割方式和视频画面分割数目对视频画面进行分割,得到多个分块画面数据。
45.作为进一步的改进,参见图3(a)-图3(f),在得到每个分块画面数据之后,所述方法还包括:针对每一个分块画面数据进行边缘扩展。
46.具体的,在以上分割的基础上进行进一步处理,从每个分块的边缘处向外多取n个(n≥0)像素,得到一个比原分块更大的分块。网格四个边向外多取的像素数量可以是相同的,也可以是不完全相同的。
47.例如原分块的大小是200x200像素,那么四个边各向外多取8个像素后,得到的新分块大小是216x216像素。
48.经过扩展后,各个分块与其相邻分块之间会存在一些重叠区域。如图3(a)所示,暗色网格是原始图像分割后的样子,单线框则表示经过扩展后新的分块所占据的区域。
49.从图3(a)可见,对于位于图像边缘的分割块,在进行边缘外扩之后,分块中会包含一些原来图像中所不包含的区域,这些新增区域如图3(b)中的边缘框线部分所示,我们称这些区域为图像边缘扩展区域。这些区域的像素取值可以根据需求自定义取值,例如取固定值,或者与其扩展方向上最邻近的原始图像像素值相同。
50.图3(a)-图3(b)是针对前述图2(a)所述网格化分块方式的四个边缘均向外扩展的方式,称为标准扩展方式。
51.针对图2(b)、图2(c)所述的水平分割或者垂直分割方式,也可以采取类似的边缘扩展,具体介绍如下:对图2(a)水平分割方法,除了采用标准扩展方式外,还可以采用图3(c)方式,即仅在水平方向进行扩展,从而降低数据处理量。对于原始图像两边的边缘分块,也仅需分别向左右两边扩展相应的边缘,如图3(d)所示。
52.对图2(b)垂直分割方法,考虑到其特殊性,也可以采用图3(e)方式,即仅在垂直方向进行扩展,从而降低数据处理量。对于两边的边缘分块,也仅需分别向上下两边扩展相应的边缘,如图3(f)所示。
53.在确定分割方式和边缘扩展方式之后,即可得到图像分块信息描述。
54.具体而言,图像分块信息中必须包含足够的信息,从而确保根据这些信息可以将分块后的视频画面重新组合起来,举例如下:设原始图像分辨率为7680x4320,首先分割为10x10个块,每个块的大小为768x432,然后将每个块分别向四周扩展8个像素,则得到100个784x448大小的分块,整个图像由于边缘扩展,大小变为7696x4336。我们记录图像分块信息如下:{
ꢀꢀꢀꢀ
"splitmode": "grid",
ꢀꢀꢀꢀ
// 网格化切分
ꢀꢀꢀꢀ
"originwidth": 7680,
ꢀꢀꢀꢀ
// 原始图像宽度
ꢀꢀꢀꢀ
"originheight": 4320,
ꢀꢀꢀ
// 原始图像高度
ꢀꢀꢀꢀ
"blockwidth": 768,
ꢀꢀꢀꢀꢀꢀ
// 分块宽度
ꢀꢀꢀꢀ
"blockheight": 432,
ꢀꢀꢀꢀꢀ
// 分块高度
ꢀꢀꢀꢀ
"leftpadsize": 8,
ꢀꢀꢀꢀꢀꢀꢀ
// 各分块向左外延宽度数
ꢀꢀꢀꢀ
"rightpadsize": 8,
ꢀꢀꢀꢀꢀꢀ
//各分块向右外延宽度数
ꢀꢀꢀꢀ
"uppadsize": 8,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//各分块向上外延宽度数
ꢀꢀꢀꢀ
"downpadsize": 8
ꢀꢀꢀꢀꢀꢀꢀꢀ
//各分块向下外延宽度数}基于以上描述,我们可以很容易得到图像的分块方式和各个分块的大小。
55.以上仅对网格化分块方式进行了举例,对于水平或垂直分块方式,我们可以写出类似的分块描述信息。
56.为了后续视频解码播放能够正常,所述步骤s500还包括:为每个分块画面数据生成时间戳信息和位置戳信息;将所述时间戳信息和位置戳信息插入到所述每个分块画面数据中。
57.在对各个视频分块进行编码时,要在编码输出的视频数据中包含该分块在整个画面中的位置戳信息,以及每一帧画面的时间戳信息。这些信息将用于后面的视频重组。
58.位置戳信息可以以各种方式保存,只要跟前述描述的图像分块信息能对应起来即可。例如对于网格化分块方式,我们可以以坐标形式保存各个分块的信息,例如坐标(0,0)表示图像左上角的分块。
59.时间戳信息则要求处于同一个画面的各个分块的子画面具有相同的时间戳信息。时间戳的精度必须足够区分不同时刻的画面。例如以毫秒、微秒或纳秒为单位,或者以视频传输系统中常用的1/90000秒为单位等。
60.对分块好的视频帧数据进行压缩编码,编码算法可以采用常用的各种算法,例如h.264,h.265,mpeg-2等,采用何种视频编码算法不在本发明的讨论范围之内,本发明对此也不做约束。
61.接下来, 执行步骤s700:将执行所述压缩编码后的每个分块画面数据传输至传输到客户端用于视频直播。
62.具体的,是将视频分块信息和各个分块视频编码后的数据直接传输到客户端,可以用于视频直播。
63.在传输过程中要首先将图像的分块描述信息传输过去,然后再将各个视频分块的视频帧流传输过去,分块视频流中要包含自己在整体画面中的位置信息和每一帧的时间戳信息。
64.传输信道和传输协议可以采用多种方式,例如mpeg2-ts,rtp,websocket等,本发明不对此进行约束。
65.将分块信息和编码后的视频流保存到电脑文件中,文件可以是自定义的格式,也可以基于现有的一些标准,例如mp4格式。同样需要在文件中保存图像的分块信息,各个视频分块的位置信息和各帧的时间戳信息。
66.客户端可以读取电子文件,解析这些信息后将画面重组并播放出来。
67.具体的,步骤700执行5视频解码和重组具体包括:s701:客户端接收画面分块描述信息构建出视频画布 ;s702:客户端将收到的每个分块画面数据进行解码,解码后的分块画面数据包含
该分块画面数据的时间戳信息和位置戳信息;s703:将时间戳信息相同的分块画面数据,基于所述位置戳信息放置到所述视频画布的对应位置;s704:在客户端的可视化界面上显示由多个分块画面数据拼接得到的视频画面。
68.上述过程可以概括为:客户端首先接收到画面分块描述信息,可以据此构建出一个视频画布。
69.然后客户端将收到的各个视频分块的视频流进行解码,解码后的视频画面包含了各自的位置信息、帧时间戳和画面数据。
70.客户端找到时间戳相同的画面数据,然后根据位置信息将它们放到视频画布的不同位置,同时将各个分块边缘外延的多余部分裁剪掉。
71.客户端将最终画面呈现到屏幕上。
72.基于上述改进,图4给出优选的实施例流程如下:执行步骤s100-s400之后,图4所述方法继续执行:基于确定的视频画面分割方式和视频画面分割数目对视频画面进行分割,得到多个分块画面数据;为每个分块画面数据生成时间戳信息和位置戳信息;将所述时间戳信息和位置戳信息插入到所述每个分块画面数据中;将每个分块画面数据分配至对应的编码器执行压缩编码;客户端接收画面分块描述信息构建出视频画布;客户端将收到的每个分块画面数据进行解码;将时间戳信息相同的分块画面数据,基于所述位置戳信息放置到所述视频画布的对应位置;在客户端的可视化界面上显示由多个分块画面数据拼接得到的视频帧画面。
73.图1或图4的方法是从整体上以单帧画面数据为基础,介绍本发明针对每一个单帧画面数据的编码压缩传输以及解码播放基础。
74.实际应用中,视频数据由多帧组成,每一帧画面数据均需要按需进行传输,对此,图5是本发明一个实施例的高分辨率视频图像的分块编码传输和解码播放的方法的循环执行的优选实施例示意图。
75.所述方法包括如下步骤:ss1:获取当前视频画面的尺寸和当前编码器的实时处理能力;根据编码器的实时处理能力,可确定当前空闲的编码器的数量以及每个空闲编码器的实时处理能力,从而确定每个可用的编码器的数量以及处理能力;ss2:确定当前视频画面的画面分割方式和视频画面分割数目;ss3:基于确定的视频画面分割方式和视频画面分割数目对当前视频画面进行分割,得到多个当前分块画面数据;ss4:将每个当前分块画面数据分配至对应的编码器执行压缩编码;ss5:将执行所述压缩编码后的每个当前分块画面数据传输至传输到客户端;ss6:获取下一个视频画面,将下一个视频画面作为当前视频画面,返回步骤ss1。
76.需要指出的是,图5所述实施例在图1或者图4的基础上有进一步的改进,即图1或
图4中,仅根据视频画面尺寸即可确定视频画面分割方式,仅根据编码器的实时处理能力即可确定视频画面分割数目;而在图5中,由于是循环执行的过程,因此,不再仅仅由视频画面尺寸确定视频画面分割方式或者仅仅由编码器的实时处理能力确定视频画面分割数目,而是在每一步中针对每一帧,获取当前视频画面的尺寸和当前编码器的实时处理能力的两个因素,同时确定当前视频画面的画面分割方式和视频画面分割数目。
77.可以理解的是,每次切分网格都是针对每一帧当前画面进行,网格规格(视频画面分割方式和视频画面分割数目)是动态变化的,因为当前已有的每个视频编码器的实时处理能力都在变化,之前空闲的视频编码器,可能在下一帧时处于忙碌,而之前忙碌的视频编码器,可能在下一帧时处于空闲。
78.此外,前述图1或图4提出的分割方式、边缘扩展等手段,同样适用于图5实施例的相应步骤,即所述步骤ss3还包括:针对每一个当前分块画面数据进行边缘扩展。
79.所述步骤ss2中所述视频画面分割方式包括水平分割、垂直分割、网格化分割;当然,由于是动态变化,步骤ss2中所述视频画面分割方式包括水平分割、垂直分割、网格化分割之一或者其任意组合。
80.图6是执行图1-图5所述方法的步骤的服务器、客户端的系统原理图;图6中,视频源是指未经编码压缩的原始视频画面,该视频画面来自高清亿级像素摄像机,后续的处理步骤说明如下:1.画面分块本步骤分为两步:画面分割和边缘扩展。
81.1.1画面分割根据画面大小和宽高比的不同,可以采用不同的画面分割方式,包括水平分割,垂直分割或者网格化分割,具体可参见图2(a)-图2(c)。
82.1.2 边缘扩展我们在以上分割的基础上进行进一步处理,从每个分块的边缘处向外多取n个(n≥0)像素,得到一个比原分块更大的分块。网格四个边向外多取的像素数量可以是相同的,也可以是不完全相同的。
83.例如原分块的大小是200x200像素,那么四个边各向外多取8个像素后,得到的新分块大小是216x216像素。
84.对于位于图像边缘的分割块,在进行边缘外扩之后,分块中会包含一些原来图像中所不包含的区域,我们称这些区域为图像边缘扩展区域。这些区域的像素取值可以根据需求自定义取值,例如取固定值,或者与其扩展方向上最邻近的原始图像像素值相同。
85.其他方式不再赘述,参见图3(a)-图3(f)。
86.1.3图像分块信息描述图像分块信息中必须包含足够的信息,从而确保根据这些信息可以将分块后的视频画面重新组合起来,举例如下:设原始图像分辨率为7680x4320,首先分割为10x10个块,每个块的大小为768x432,然后将每个块分别向四周扩展8个像素,则得到100个784x448大小的分块,整个图
像由于边缘扩展,大小变为7696x4336。我们记录图像分块信息如下:{
ꢀꢀꢀꢀ
"splitmode": "grid",
ꢀꢀꢀꢀ
// 网格化切分
ꢀꢀꢀꢀ
"originwidth": 7680,
ꢀꢀꢀꢀ
// 原始图像宽度
ꢀꢀꢀꢀ
"originheight": 4320,
ꢀꢀꢀ
// 原始图像高度
ꢀꢀꢀꢀ
"blockwidth": 768,
ꢀꢀꢀꢀꢀꢀ
// 分块宽度
ꢀꢀꢀꢀ
"blockheight": 432,
ꢀꢀꢀꢀꢀ
// 分块高度
ꢀꢀꢀꢀ
"leftpadsize": 8,
ꢀꢀꢀꢀꢀꢀꢀ
// 各分块向左外延宽度数
ꢀꢀꢀꢀ
"rightpadsize": 8,
ꢀꢀꢀꢀꢀꢀ
//各分块向右外延宽度数
ꢀꢀꢀꢀ
"uppadsize": 8,
ꢀꢀꢀꢀꢀꢀꢀꢀꢀ
//各分块向上外延宽度数
ꢀꢀꢀꢀ
"downpadsize": 8
ꢀꢀꢀꢀꢀꢀꢀꢀ
//各分块向下外延宽度数}基于以上描述,我们可以很容易得到图像的分块方式和各个分块的大小。
87.以上仅对网格化分块方式进行了举例,对于水平或垂直分块方式,我们可以写出类似的分块描述信息。
88.2.分块视频编码对前一步骤中分块好的视频数据进行压缩编码,编码算法可以采用常用的各种算法,例如h.264,h.265,mpeg-2等,采用何种视频编码算法不在本发明的讨论范围之内,本发明对此也不做约束。
89.在对各个视频分块进行编码时,要在编码输出的视频数据中包含该分块在整个画面中的位置信息,以及每一帧画面的时间戳信息。这些信息将用于后面的视频重组。
90.位置信息可以以各种方式保存,只要跟1.3部分描述的图像分块信息能对应起来即可。例如对于网格化分块方式,我们可以以坐标形式保存各个分块的信息,例如坐标(0,0)表示图像左上角的分块。
91.时间戳信息则要求处于同一个画面的各个分块的子画面具有相同的时间戳信息。时间戳的精度必须足够区分不同时刻的画面。例如以毫秒、微秒或纳秒为单位,或者以视频传输系统中常用的1/90000秒为单位等。
92.3.视频传输这种方式是将视频分块信息和各个分块视频编码后的数据直接传输到客户端,可以用于视频直播。
93.在传输过程中要首先将图像的分块描述信息传输过去,然后再将各个视频分块的视频流传输过去,分块视频流中要包含自己在整体画面中的位置信息和每一帧的时间戳信息。
94.传输信道和传输协议可以采用多种方式,例如mpeg2-ts,rtp,websocket等,本发明不对此进行约束。
95.4.数据存储和读取我们也可以将分块信息和编码后的视频流保存到电脑文件中,文件可以是自定义的格式,也可以基于现有的一些标准,例如mp4格式。同样需要在文件中保存图像的分块信息,各个视频分块的位置信息和各帧的时间戳信息。
96.客户端可以读取电子文件,解析这些信息后将画面重组并播放出来。
97.5.视频解码和重组客户端首先接收到画面分块描述信息,可以据此构建出一个视频画布。
98.然后客户端将收到的各个视频分块的视频流进行解码,解码后的视频画面包含了各自的位置信息、帧时间戳和画面数据。
99.客户端找到时间戳相同的画面数据,然后根据位置信息将它们放到视频画布的不同位置,同时将各个分块边缘外延的多余部分裁剪掉。
100.客户端将最终画面呈现到屏幕上。
101.基于图6的架构,参见图7,是执行图1-图5所述方法的步骤的设备的模块架构原理图。
102.图7中,示出一种视频分块编码传输系统,所述系统包括:视频帧获取模块,所述视频帧获取模块用于获取亿级像素视频的每一帧画面;视频尺寸获取模块,所述视频尺寸获取模块用于获取所述每一帧画面的尺寸;编码器能力探测模块,所述编码器能力探测模块用于探测每个编码器的实时处理能力;画面帧分割模块,所述画面帧分割模块基于每一帧画面的尺寸和每个编码器的实时处理能力,确定每一帧画面的分割方式和分割数据,并基于所述分割方式和分割数据对每一帧画面进行分割,得到多个分块画面数据;编码压缩模块,所述编码压缩模块将每个分块画面数据分发至对应的至少一个编码器执行编码压缩处理;分块传输模块,所述分块传输模块将执行编码压缩处理之后的每个分块画面数据传输至客户端。
103.本发明的上述技术方案可以通过计算机设备,基于计算机程序指令自动化实现。同样的,本发明还可以表现为一种计算机程序产品,所述程序产品承载于计算机存储介质,通过处理器执行所述程序,从而实现上述技术方案。
104.因此更多的实施例包括一种计算机设备,所述计算机设备包括存储器和处理器,所述存储器存储有计算机可执行程序,所述处理器被配置为执行上述方法的各个步骤。
105.本发明通过提出一种对原始画面先分块后编码的方法,实现了采用多个较低成本的视频编码器对高分辨率视频内容的压缩编码。此外在客户端配合专用的软件或硬件解码器,可以实现对采用本文描述的编码方法编码后的高分辨率视频进行解码、重组和呈现。因此,本发明的方法还可以概括为是一种高分辨率视频图像的分块编码传输和解码播放的方法和设备。
106.需要注意的是,本发明可以解决多个技术问题或者达到相应的技术效果,但是并不要求本发明的每一个实施例均解决所有技术问题或者达到所有的技术效果,单独解决某一个或者某几个技术问题、获得一个或多个改进效果的某个实施例同样构成单独的技术方案。
107.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何
修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。
108.本发明未特别明确的部分模块结构,以现有技术记载的内容为准。本发明在前述背景技术部分提及的现有技术可作为本发明的一部分,用于理解部分技术特征或者参数的含义。本发明的保护范围以权利要求实际记载的内容为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1