一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频处理方法及装置与流程

2023-02-19 09:47:37 来源:中国专利 TAG:


1.本说明书涉及计算机技术领域,特别涉及视频处理方法及装置。


背景技术:

2.随着互联网技术和网络技术的发展,连麦技术得到更广泛的应用,例如在线教育平台经常出现老师和学生相互连麦、直播带货场景也会出现连麦、视频会议中也同样使用到连麦技术。目前的视频连麦技术有两种比较成熟的解决方案。第一种是通过转码技术实现,称之为“转码方案”。另一种方案称之为overlay方案。但是,转码方案在对视频进行转码时,需要对视频进行有损压缩,很容易造成视频质量下降,同时需要服务端进行编码和解码,计算量消耗较大;而overlay方案是在客户端完成视频的处理,对客户端的要求较高,通用性较差,因此亟需一种有效的方案以解决上述问题。


技术实现要素:

3.有鉴于此,本说明书实施例提供了一种视频处理方法。本说明书同时涉及一种视频处理装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。
4.根据本说明书实施例的第一方面,提供了一种视频处理方法,包括:
5.确定至少两个视频流中每个视频流关联的目标参数集合;
6.对每个视频流进行解析获得每个视频流的视频帧集合,以及确定每个视频流关联的目标帧参数集合;
7.根据每个视频流的视频帧集合中包含的视频帧的帧类型确定宏块类型,并确定所述宏块类型对应的宏块处理策略;
8.基于所述目标参数集合、所述目标帧参数集合以及所述宏块处理策略对每个视频帧集合中包含的视频帧进行处理,根据处理结果生成目标视频流。
9.根据本说明书实施例的第二方面,提供了一种视频处理装置,包括:
10.确定参数模块,被配置为确定至少两个视频流中每个视频流关联的目标参数集合;
11.解析参数模块,被配置为对每个视频流进行解析获得每个视频流的视频帧集合,以及确定每个视频流关联的目标帧参数集合;
12.确定策略模块,被配置为根据每个视频流的视频帧集合中包含的视频帧的帧类型确定宏块类型,并确定所述宏块类型对应的宏块处理策略;
13.处理视频模块,被配置为基于所述目标参数集合、所述目标帧参数集合以及所述宏块处理策略对每个视频帧集合中包含的视频帧进行处理,根据处理结果生成目标视频流。
14.根据本说明书实施例的第三方面,提供了一种计算设备,包括:
15.存储器和处理器;
16.所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令时实现所述视频处理方法的步骤。
17.根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述视频处理方法的步骤。
18.本说明书提供一种视频处理方法,在确定至少两个视频流中每个视频流关联的目标参数集合后,可以对每个视频流进行解析以得到每个视频流的视频帧集合,并确定每个视频流关联的目标帧参数集合,同时基于每个视频流的视频帧集合中包含的视频帧的类型确定宏块类型,从而确定宏块类型对应的宏块处理策略,最后整合目标参数集合、目标帧参数集合以及宏块处理策略对每个视频帧集合中包含的视频帧进行处理,即可生成目标视频流,实现了无需对视频流进行转码即可生成新的视频流,不仅可以节省计算资源的消耗,还能够保证生成的目标视频流的质量,从而进一步提高了用户的观看体验。
附图说明
19.图1是本说明书一实施例提供的第一种视频处理方法的流程图;
20.图2是本说明书一实施例提供的一种拼接视频流中的画面的示意图;
21.图3是本说明书一实施例提供的第二种视频处理方法的流程图;
22.图4是本说明书一实施例提供的第三种视频处理方法的流程图;
23.图5是本说明书一实施例提供的一种视频处理装置的结构示意图;
24.图6是本说明书一实施例提供的一种计算设备的结构框图。
具体实施方式
25.在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
26.在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
27.应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
28.首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
29.视频转码:将已压缩编码的视频码流转换成另外一个视频码流,本质是一个先解码,再编码的过程。
30.视频拼接:把多个小分辨率的视频拼接成一个大分辨率的视频。
31.图像拼接:把多个小分辨率的图像拼接组成一个大分辨率的图像。
32.编码方式:目前比较成熟的编码方式有:mpeg2、mpeg4、h264、h265、vp8、vp9等,还有比较新颖的编码方式包括av1、h266等。
33.视频帧类型:包含i帧(i帧又称帧内编码帧,是一种自带全部信息的独立帧,无需参考其他图像便可独立进行解码,可以简单理解为一张静态画面。视频序列中的第一个帧始终都是i帧,因为它是关键帧)、p帧(p帧又称帧间预测编码帧,需要参考前面的i帧才能进行编码。表示的是当前帧画面与前一帧(前一帧可能是i帧也可能是p帧)的差别。解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。与i帧相比,p帧通常占用更少的数据位,但不足是,由于p帧对前面的p和i参考帧有着复杂的依耐性,因此对传输错误非常敏感)、b帧(b帧又称双向预测编码帧,也就是b帧记录的是本帧与前后帧的差别。也就是说要解码b帧,不仅要取得之前的缓存画面,还要解码之后的画面,通过前后画面的与本帧数据的叠加取得最终的画面。b帧压缩率高,但是对解码性能要求较高)。b帧需要前后参考图像,p帧只需要前向参考,而i帧无需引入其他帧作为参考。b帧编码最为复杂,p帧次之,i帧相对最简单。
34.码流解析:对视频流按照编码方式的逆过程进行处理,解析出参数的数值,但不需要通过这些参数进行构建图像yuv(是编译true-color颜色空间(color space)的种类)数据进行操作,解析操作只是解码过程中的一个步骤,计算量在整个解码过程占比非常小。
35.宏块:是视频信息的主要承载者,包含着每一个像素的亮度和色度信息,宏块大小一般为16x16,随着新的编码方式出现,宏块大小可以为32x32、64x64等。
36.解码过程:包含对码流解析和反量化、idct等过程。
37.编码过程:包含帧内预测、帧间预测、dct、量化和huffman(或cavlc、cabac等编码)形成码流过程。
38.在本说明书中,提供了一种视频处理方法,本说明书同时涉及一种视频处理装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
39.实际应用中,通过转码方案实现视频拼接时,实则是把各自的视频流发到服务器上,由服务器先把各个小视频流解码出yuv数据,然后把yuv数据拼接成一个大分辨率的yuv数据,之后把大分辨率yuv数据按照一定的编码格式重新进行编码,形成一个新的视频流,最后再把新的视频流发送给观看方,以实现对小视频流进行拼接的目的。而overlay方案是在将小视频流发到服务器后,服务器把每一个视频流透明传递到观看方,观看方对多个小视频流分别解码,然后通过overlay技术把多个小图像拼接合成一个大分辨率视频流,然后进行显示即可。
40.然而,转码方案在进行视频流拼接时,不仅会对视频进行有损压缩,还会造成视频质量的下降,主要是因为需要在服务器端进行解码和编码,计算复杂度高,带来了延迟。而低延时和较高的视频质量是作为衡量连麦技术的重要指标。因此转码方案对实时要求较高的连麦技术带来了一些不好的体验。在实时要求不高的应用场景,转码方案同样会造成视频质量下降,增加了转码服务器的成本开支。而overlay方案是在观看方完成的,由于需要完成多个小视频的解码和图像拼接,计算相对复杂,需要观看方使用性能较好的平台,在移动平台更为明显。另外连麦技术对同步要求比较高,但是在移动平台完成视频的同步处理,更加增加了计算量,造成移动平台容易发热等,给用户带来不好的体验。因此亟需一种有效的方案以解决视频拼接处理的问题。
41.本说明书提供一种视频处理方法,在获取到至少两个需要拼接到一起的视频流后,可以先确定每个视频流对应的标准参数集合,之后基于每个视频流的标准参数集合生成拼接之后的视频流的目标参数集合,实现对拼接之后的视频的参数进行初始化,之后对每个视频流进行解析以得到每个视频流的视频帧集合以及标准帧参数集合,通过每个视频流的标准帧参数集合得到拼接之后的视频流的目标帧参数集合,同时基于每个视频流的视频帧集合中包含的视频帧的类型确定宏块类型,从而确定宏块类型对应的宏块处理策略,最后整合目标参数集合、目标帧参数集合以及宏块处理策略对每个视频帧集合中包含的视频帧进行处理,即可生成目标视频流,实现了无需对视频流进行转码即可生成新的视频流,不仅可以节省计算资源的消耗,还能够保证生成的目标视频流的质量,从而进一步提高了用户的观看体验。
42.图1示出了根据本说明书一实施例提供的一种视频处理方法的流程图,具体包括以下步骤:
43.步骤s102,确定至少两个视频流中每个视频流关联的目标参数集合。
44.本实施例提供的视频处理方法可以应用于视频会议场景,实现对参加视频会议的每个人对应的视频流进行可视化拼接,以生成一个包含每个人对应的视频流的总视频流,以支持视频会议的完成。还可以应用于在线教育场景,实现老师和学生的连麦,即当有多个学生在线上课时,老师可以观看到由每个学生对应的视频流拼接成的课堂视频流,方便老师了解上课学生的相关信息。
45.实际应用中,对多个视频流进行拼接处理生成新的视频流的处理场景均可以参见本实施例提供的视频处理方法,本技术在此不作过多限定。
46.本实施例以视频会议场景为例对视频处理方法进行描述,其他场景中的视频处理方法均可参见本实施例相应的描述内容,在此不作过多赘述。
47.基于此,在确定每个视频流关联的目标参数集合的过程中,目标参数结合是决定后续拼接出的视频流的基础,而该参数集合的确定需要依赖每个视频流的参数,因此在确定目标参数集合时,为了能够保证拼接出的目标视频流可以正常播放,可以基于每个视频流的标准参数集合实现,本实施例中,具体实现方式如步骤s1022-步骤s1024:
48.步骤s1022获取所述至少两个视频流,并确定每个视频流对应的标准参数集合。
49.具体的,至少两个视频流具体是指需要进行拼接处理的视频流,且每个视频流均由所属的客户端上传,以实现服务端可以完成视频拼接处理,之后再回传给各个客户端,使得客户端可以观看到拼接后的新的视频流;相应的,标准参数集合具体是指视频流在进行编码处理时所使用的编码参数组成的集合,且该集合中包含的编码参数都是编码处理时较为重要的编码参数;如视频流是采用mpeg2的编码方式实现的编码处理,则该视频流对应的标准参数集合即为sequenceheader和sequenceextension中包含的重要编码参数组成的集合;或者视频流采用h264编码方式实现的编码处理,则该视频流对应的标准参数集合即为sps(sequenceparamaterset)和pps(pictureparamaterset)中包含的重要编码参数组成的集合;相应的,标准参数集合中包含的重要编码参数包括但不限于分辨率、帧率、采样率等,本实施例在此不作过多限定。
50.进一步的,在确定标准参数集合时,由于不同的视频流可能采用不同的编码方式实现的编码处理,在拼接处理的过程中,为了能够针对拼接后的视频流赋予较优的编码参
数,则此时需要精准的确定每个视频流对应的标准参数集合,因此在确定标准参数集合时,可以基于标识实现,本实施例中,具体实现方式如下:
51.对每个视频流进行解析,获得每个视频流对应的编码参数集标识;
52.基于每个视频流对应的编码参数集标识读取由编码配置参数组成的编码参数集合;
53.根据读取结果确定每个视频流对应的编码参数集合,作为至少两个视频流中每个视频流对应的标准参数集合。
54.具体的,编码参数集标识具体是指对视频流进行编码处理时对应的重要参数集合对应的名称;相应的,编码参数集合具体是指编码处理时所需要使用编码配置参数组成的集合。
55.基于此,在接收到各个视频流之后,可以分别对每个视频流进行解析,从而获得每个视频流所采用的编码方式对应的编码参数集标识,之后基于各个视频流对应的编码参数集标识读取各个视频流对应的编码参数集合,即可得到由编码配置参数组成的编码参数集合,之后将编码参数集合作为每个视频流对应的标准参数集合即可,用于后续进行视频拼接处理。
56.以用户甲,用户乙两人参加视频会议为例进行说明;服务器将接收到用户甲,用户乙分别对应的视频流a(对应用户甲)以及视频流b(对应用户乙),为了能够实现后续对视频流a和视频流b的拼接处理,此时将对视频流a和视频流b分别进行解析,根据解析结果确定视频流a对应的重要参数集名称为sequenceheader和sequenceextension,视频流b对应的重要参数集名称为sps(sequenceparamaterset)和pps(pictureparamaterset);之后基于重要参数集名称读取视频流a在采用mpeg2编码方式进行编码处理时的编码配置参数组成的重要参数集合,以及视频流b在采用h264编码方式进行编码处理时的编码配置参数组成的重要参数集合,并将视频流a和b分别对应的重要参数集合作为各自的标准参数集合,用于后续赋予拼接后的视频流。
57.综上,通过读取编码参数集合的方式确定各个视频流对应的标准参数集合,不仅可以节省服务器的计算资源的消耗,还能够快速的确定视频流相关的编码参数,从而能够加快后续视频流的拼接处理操作。
58.步骤s1024,根据每个视频流对应的标准参数集合生成目标参数集合。
59.具体的,在确定各个视频流对应的标准参数集合后,为了能够保证后续拼接出的目标视频流可以正常播放,此时可以结合每个视频流对应的标准参数集合生成拼接后的视频流的目标参数集合,也就是说,拼接后的视频流的相关编码参数都是来自于各个视频流。
60.而在生成拼接后的视频流对应的目标参数集合之前,为了能够保证各个视频流可以顺利拼接,还需要进行拼接处理判断,即检测各个视频流是否可以拼接为目标视频流,各个视频流之间是否存在拼接互斥的问题,本实施例中,具体实现方式如下:
61.根据每个视频流对应的标准参数集合确定每个视频流的编码方式;在每个视频流的编码方式相同的情况下,读取每个视频流的分辨率以及预设的拼接处理参数;根据拼接处理参数和每个视频流的分辨率生成拼接区域;在拼接区域满足视频拼接格式的情况下,读取每个视频流的编码参数;基于每个视频流的编码参数检测至少两个视频流是否满足互斥拼接条件。若是,执行根据每个视频流对应的标准参数集合生成目标参数集合步骤。若
否,则停止拼接处理。
62.具体的,编码方式具体是指确定每个视频流的在编码处理时所使用的编码技术;拼接处理参数具体是指拼接各个视频流时所需要遵循的参数调整,包括但不限于拼接视频流数量、拼接视频流顺序、拼接视频流方式等;相应的,拼接区域具体是指将各个视频流按照拼接处理参数调整后组成的拼接区域;视频拼接格式具体是指拼接后的视频所对应的格式要求;互斥拼接条件具体是指检测拼接各个视频流是否存在互斥编码参数的条件;其中拼接处理参数及互斥拼接条件可以根据实际应用场景设定,本实施例在此不作任何限定。
63.具体实施时,由于不同的视频流是通过不同的客户端传输给服务端的,因此服务端在对各个视频流进行拼接处理时,为了能够保证后续可以拼接出满足用户观看需求的拼接视频流,此时可以先基于编码方式进行初步拼接检测,即确定每个视频流对应的编码方式,如果各个视频流的编码方式不同,则说明各个视频流是分别采用不同的编码方式实现的,此时无法实现视频流的拼接处理,因此可以直接结束本次的拼接处理操作;如果各个视频流的编码方式均相同,则说明各个视频流都是采用相同的编码方式实现的,此时可以初步确定各个视频流可以拼接,则再次进行二次判断;即读取各个视频流的分辨率以及拼接处理操作预设的拼接处理参数,之后按照拼接处理参数和各个视频流的分辨率生成一个拼接区域,该拼接区域即为拼接后的视频流的区域,且分辨率即为拼接后视频流的分辨率;此时可以检测拼接区域是否满足视频拼接格式,若不满足,说明拼接后的区域不能够正常展示,则停止即可;若满足,则说明拼接后的区域为规范的区域,如矩形区域或正多边形区域等,则此时可以再次确定各个视频流可以拼接,则再次进行三次判断。
64.此时可以读取每个视频流的编码参数,之后基于每个视频流的编码参数检测各个视频是否满足互斥拼接条件,即检测各个视频流的编码参数中是否不存在互斥编码参数,若是,则说明各个视频流在各个维度都满足拼接处理操作,即可进行目标参数集合的确定处理,若否,则说明各个视频流在不能够进行拼接,则停止拼接处理操作即可。
65.实际应用中,拼接视频流个数具体是指限制视频流的个数,如设置为2,3或4等,即当视频流的个数满足拼接视频个数的情况下,则可以进行后续的拼接处理;拼接视频流顺序具体是指限制拼接视频流时按照什么样的顺序进行拼接的条件,如按照视频流1,2,3的顺序进行拼接,或者视频流3,2,1的顺序进行拼接;拼接视频流方式具体是指限制视频流拼接方式的条件,如将视频流拼接为“一”字形,四宫格形或九宫格形等,即当视频流的拼接方式无法满足拼接方式的情况下,则不进行拼接处理,满足在进行拼接处理。实际应用中,拼接视频流个数、拼接视频流顺序以及拼接视频流方式可以根据具体应用场景设定,本实施例在此不作任何限定。同时拼接处理参数中包含的参数可以随机组合,即可以选择一个参数作为拼接处理参数,也可以同时选择多个参数组成拼接处理参数,本实施例在此不作任何限定。
66.综上,通过在拼接处理前进行拼接处理检测,不仅可以避免后续处理浪费过多的计算资源,还能够提高拼接视频流的成功率,从而保证后续视频流的拼接处理的效率。
67.更进一步的,在确定各个视频流可以进行拼接处理的情况下,将针对拼接后的视频流赋予编码参数,而由于拼接后的视频流是结合各个视频流完成的,因此目标参数集合可以基于各个视频流的标准参数集合创建,本实施例中,具体实现方式如下:
68.根据预设的参数调整规则在每个视频流对应的标准参数集合中提取初始参数;按
照参数调整规则对初始参数进行调整获得目标参数,并基于目标参数组成目标参数集合。
69.具体的,初始参数具体是指每个视频流对应的标准参数集合中包含的编码参数,相应的,参数调整规则具体是指针对拼接后的视频流进行编码参数调整的规则,同时可以根据该规则确定初始参数的选择;目标参数即为组成目标参数集合的编码参数。
70.具体实施时,由于可以进行拼接的视频流对应的标准参数集合中包含的参数的数值可能不同,如分辨率,帧率,参考帧数等,若随机进行参数的筛选组成目标参数集合,可能会导致拼接后的视频流的质量下降,甚至无法正常播放;因此为了能够组成满足需求的目标参数集合,可以按照预设的参数调整规则提取每个视频流对应的标准参数集合中的初始参数,之后再按照该规则对初始参数进行调整,从而获得能够组成目标参数集合的目标参数,并组成拼接视频流对应的目标参数集合即可。
71.实际应用中,参数调整规则可以是对分辨率参数进行调整的规则,对参考帧数进行选择的规则,或者对帧率进行选择的规则等,由于视频流涉及到的编码参数较多,任意参数的调整和选择均可根据需求进行设定,本实施例在此不作任何限定。
72.沿用上例,在得到视频流a和视频流b分别对应的标准参数集合后,可以对各个视频流进行解析,获得视频流a对应的编码方式为mpeg2,视频流b对应的编码方式为h264,确定二者采用不同的编码方式进行的编码处理,进一步说明二者不能够拼接为新的视频流,则可以采用转码方案进行视频流的拼接处理,或者不进行拼接处理。
73.假设视频流a和视频流b都是采用h264编码方式进行的编码处理,则确定二者的编码方式相同,可以进一步读取视频流a的分辨率(xa*ya)及视频流b的分辨率(xb*yb),并确定拼接处理参数为拼接个数为2个,拼接方式为左右拼接,此时基于拼接处理参数和各个视频流的分辨率生成拼接区域;在xa=xb的情况下,此时生成的拼接区域的分辨率为{xa(xb),ya yb},确定拼接区域满足视频拼接格式,可以更进一步的读取每个视频流的编码参数。
74.基于读取到的编码参数检测检测各个视频流是否满足互斥拼接条件,即检测各个视频流是否存在不互斥的编码参数,若视频流a采用cabac编码,视频流b采用cavlc编码,则确定二者存在互斥编码参数,确定二者不能够进行拼接处理;或者视频流a的帧率为25,视频流b的帧率为5,确定二者若拼接会出现同一视频流中两个画面一个播放快一个播放慢的问题,确定二者存在互斥编码参数,确定二者不能够进行拼接处理;之后当视频流a和视频流b都不存在互斥编码参数的情况下,才能够进行后续的拼接处理操作。
75.更进一步的,在确定视频流a和视频流b可以进行拼接的情况下,此时读取视频流a对应的标准参数集合中的初始参数{分辨率(xa*ya);参考帧数目3;帧率25

},视频流b对应的标准参数集合中的初始参数{分辨率(xb*yb);参考帧数目4;帧率23

},之后按照预设的参数调整规则对各个初始参数进行调整,获得拼接后的视频流的目标参数{分辨率(xa(xb),ya yb);参考帧数目4;帧率25

},直至全部目标参数都调整完成之后,即可得到拼接后视频流对应的目标参数集合。
76.实际应用中,不同的参数具有不同的调整原则,需要根据编码方式进行针对性调整,把调整后的编码参数传递到编码器中进行初始化,以完成对拼接后的视频流的目标参数集合的改写,方便后续进行视频拼接处理,也就是说,通过调整初始参数得到目标参数,是为了针对拼接后的视频流设定编码参数,方便后续生成目标视频流使用。
77.综上,通过按位改写拼接后的视频流的目标参数集合,不仅可以保证参数调整的全面性,还能够保证拼接后的视频流的参数准确性,从而可以提高目标视频流的生成概率,向用户提供质量更高的目标视频流。
78.步骤s104,对每个视频流进行解析获得每个视频流的视频帧集合,以及确定每个视频流关联的目标帧参数集合。
79.具体的,在针对拼接后的视频流创建完成目标参数集合后,进一步的,将进行视频流的拼接处理操作,而为了能够提高拼接效率以及拼接后视频流的质量,可以逐帧进行拼接,即每一帧的处理以片为单位进行循环拼接处理,而片则以宏块行为单位进行循环处理,宏块行以宏块为单位进行处理,直至全部视频帧都完成拼接后,即可拼接出满足需求的目标视频流。
80.而在此之前,为了能够保证目标帧参数集合的准确性,以促使后续生成的目标视频流可以正常播放,可以在确定目标帧参数集合时,结合每个视频流的标准帧参数集合实现,本实施例中,具体实现方式如下所述:
81.对每个视频流进行解析获得每个视频流的视频帧集合以及标准帧参数集合;根据每个视频流的标准帧参数集合生成目标帧参数集合。
82.也就是说,需要将各个视频流转换到帧维度进行处理,即对每个视频流都进行解析,获得各个视频流对应的视频帧集合以及标准帧参数集合,以实现可以基于标准帧参数集合生成拼接后的视频流的目标帧参数集合;其中,标准帧参数集合具体是指每个视频流对应的视频帧集合中,视频帧对应的参数组成的集合;相应的,目标帧参数集合具体是指拼接后的视频流对应的视频帧集合中视频帧对应的参数组成的集合,其目标帧参数集合中包含的帧参数是基于标准帧参数集合中包含的帧参数确定的。
83.进一步的,在确定每个视频流对应的标准帧参数集合的过程中,由于标准帧参数集合是用于后续赋予拼接后视频流的目标帧参数集合的基础,因此需要对各个视频流采用相同的方式进行分帧处理,从而从相同类型的帧参数中选择能够赋予拼接后视频流的帧参数组成目标帧参数集合,本实施例中,具体实现方式如下:
84.基于预设的分帧处理策略分别对每个视频流进行分帧处理,获得每个视频流的视频帧集合;
85.分别在每个视频流的视频帧集合中确定目标视频帧,并对每个视频流对应的目标视频帧进行解析获得标准帧参数;
86.基于每个视频流对应的标准帧参数组成每个视频流的标准帧参数集合。
87.具体的,分帧处理策略具体是指对各个视频流都采用相同的分帧方式进行处理的策略,使得分帧处理后得到的各个视频流的视频帧集合中包含相同的帧数量,以方便后续逐帧拼接;相应的,目标视频帧具体是指每个视频流对应的视频帧集合中的slice header,通过slice header可以解析得到标准帧参数,标准帧参数包括但不限于参考帧参数、量化参数、运动矢量参数等,用于组成每个视频流对应的标准帧参数集合。
88.基于此,在完成拼接后的视频流的参数初始化处理后,可以按照预设的分帧处理策略同时对各个视频流进行分帧处理,以获得包含视频帧数量相同的视频帧集合;之后分别在每个视频流的视频帧集合中确定目标视频帧,并对每个视频帧集合中的目标视频帧进行分帧处理,即可得每个视频流对应的标准帧参数集合,最后将每个视频帧对应的标准帧
参数进行整合,即可得到每个视频流的标准帧参数集合,以用于后续生成拼接后的视频流的目标帧参数集合。
89.具体实施时,由于每个视频流对应的标准帧参数集合中包含的帧参数类型相同,但是取值可能并不相同,因此在针对拼接后的视频流确定目标帧参数集合时,将按照预设的帧参数选择规则进行目标帧参数的筛选,本实施例中,具体实现方式如下:
90.基于预设的帧参数选择规则在每个视频流的标准帧参数集合中选择目标帧参数,并基于目标帧参数组成目标帧参数集合。
91.具体的,预设的帧参数选择规则是指每个视频流帧参数集合中,在相同类型的多个帧参数中进行目标帧参数选择的规则;相应的,目标帧参数即为从多个相同类型的帧参数中选择出作为拼接后的视频流的帧参数。
92.实际应用中,在基于预设的帧参数选择规则选择目标帧参数时,由于不同的帧参数的选择可能会影响拼接后的视频流的质量,因此不同的帧参数将根据需求分别进行选择最高值、最低值或平均值;如参考帧参数的选择,若选择最小值或者平均值,可能会造成拼接后的视频流的质量下降,因此参考帧参数可以选择最高值的参数作为目标帧参数;或者qp值的选择,若选择中间值或最大值,可能会造成误差越来越到,因此qp值可以选择最小值作为目标帧参数。
93.基于此,针对不同的帧参数可以根据不同的选择规则进行目标帧参数的筛选,具体选择方式可以根据实际应用场景进行设定,本实施例在此不作任何限定。
94.综上,通过采用相同的分帧处理策略进行分帧处理,可以保证各个视频流对应的视频帧集合中包含相同的视频帧数量,从而方便后续进行逐帧拼接,同时按照预设的帧参数选择规则进行目标帧参数集合的创建,可以避免对拼接后的视频流的质量产生影响,从而有效的保证了用户可以观看到质量更佳的目标视频流。
95.步骤s106,根据每个视频流的视频帧集合中包含的视频帧的帧类型确定宏块类型,并确定所述宏块类型对应的宏块处理策略。
96.具体的,在上述完成目标帧参数集合以及目标参数集合的确定之后,进一步的,此时将逐帧进行拼接;在拼接过程中,考虑到拼接后的目标视频流的质量以及计算资源的消耗,可以在宏块维度进行拼接,也就是说,将对各个视频帧集合中获取相同时间节点对应的视频帧,之后对各个视频帧按照宏块粒度进行拼接,从而获得目标视频流的一帧视频,直至全部视频帧都按照上述处理方式完成之后,即可得到目标视频流。
97.而在此过程中,由于不同的帧类型会影响组成目标视频流的每一帧的创建,因此需要先基于帧类型确定每一视频帧(组成目标视频流的视频帧)的涉及到宏块的宏块类型,从而才能够基于宏块类型确定相应的宏块处理策略,对当前视频帧采用宏块处理策略进行拼接处理,以得到组成目标视频流的目标视频帧。
98.实际应用中,帧类型包括下述至少一项:前后参考帧类型、前参考帧类型、非参考帧类型;相应的,宏块类型包括下述至少一项:前后参考宏块类型、前参考宏块类型、非参考宏块类型;相应的,宏块处理策略包括下述至少一项:前后参考宏块处理策略、前参考宏块处理策略、非参考宏块处理策略。
99.基于此,在当前处理的视频帧为前后参考帧类型的情况下,说明当前处理的视频帧为b帧,则此时可以确定该视频帧涉及到的宏块类型为前后参考宏块类型,即b宏块类型;
同时将采用前后参考宏块处理策略进行后续的宏块拼接处理和视频帧拼接处理;相应的,在当前处理的视频帧为前参考帧类型的情况下,说明当前处理的视频帧为p帧,则此时可以确定该视频帧涉及到的宏块类型为前参考宏块类型,即p宏块类型;同时将采用前参考宏块处理策略进行后续的宏块拼接处理和视频帧拼接处理;相应的,在当前处理的视频帧为非参考帧类型的情况下,说明当前处理的视频帧为i帧,则此时可以确定该视频帧涉及到的宏块类型为非参考宏块类型,即i宏块类型;同时将采用非参考宏块处理策略进行后续的宏块拼接处理和视频帧拼接处理。
100.进一步的,在确定宏块类型的过程中,由于宏块的类型受当前处理的视频帧的帧类型决定,并且后续是从宏块的粒度完成的拼接处理,因此将确定每个视频帧涉及到的宏块组以及宏块类型,再按照相应的策略进行后续的拼接处理操作,本实施例中,具体实现方式如下:
101.基于每个视频流的编码方式确定宏块参数,并按照宏块参数对每个视频流的视频帧集合中包含的视频帧进行切分;
102.根据切分处理结果生成每个视频帧集合中的视频帧对应的宏块组;
103.确定每个视频帧集合中包含的视频帧的帧类型,并根据帧类型确定每个视频帧集合中的视频帧对应的宏块组的宏块类型。
104.具体的,宏块参数具体是指在编码阶段进行宏块编码的方式,相应的,宏块组具体是指每个视频帧对应的宏块组成的序列;帧类型具体是指每个视频帧对应的类型(b帧类型,p帧类型和i帧类型),根据每个视频帧的帧类型即可确定每个宏块组的宏块类型,用于方便后续按照宏块类型对每帧涉及的宏块进行拼接处理,不同的宏块类型将按照不同的拼接方式实现拼接处理操作。
105.基于此,可以先基于每个视频流的编码方式确定宏块参数,之后按照宏块参数对每个视频流的视频帧集合中包含的视频帧进行切分;以根据切分处理结果生成每个视频帧集合中的视频帧对应的宏块组;之后确定每个视频帧集合中包含的视频帧的帧类型,并根据各个视频帧集合中包含的视频帧的帧类型确定每个视频帧集合中的视频帧对应的宏块组的宏块类型,方便后续进行宏块处理策略的确定。
106.需要说明的是,在进行拼接处理时,实则是一个循环的过程,即是按照视频帧在视频帧集合中的顺序依次进行拼接的,以实现从宏块粒度完成帧粒度的拼接,再从帧粒度完成视频流的拼接,从而实现将至少两个视频流拼接为一个目标视频流。
107.实际应用中,相同时间节点对应的视频帧类型可能存在不同或相同的情况,在相同时间节点对应的各个视频流的视频帧的帧类型相同的情况下,即可直接按照宏块类型对应的宏块处理策略进行后续的拼接处理,不需要进行额外的操作。
108.而当帧类型不同的情况下,如视频流a的第2视频帧的帧类型为i帧,而视频流b的第2视频帧的帧类型为p帧,当将视频流a的第2视频帧与视频流b的第2视频帧进行拼接时,会因为帧类型不同影响拼接后视频流的第2视频帧的质量,因此本实施例采用选择权重较大的方式进行处理,即在此情况下,将拼接后的视频流的第2视频帧的帧类型设置为p帧类型,之后进行宏块维度的拼接处理,从而保证拼接后的视频流的第2视频帧的质量。相应的,在同时包含i帧,b帧和p帧的情况下,则将拼接后的视频流的当前视频帧设置为b帧类型,以实现按位改写拼接后视频流的帧类型,形成新的pictureheader码流。
109.步骤s108,基于所述目标参数集合、所述目标帧参数集合以及所述宏块处理策略对每个视频帧集合中包含的视频帧进行处理,根据处理结果生成目标视频流。
110.具体的,在上述确定宏块处理策略后,即可基于目标参数集合、目标帧参数集合以及宏块处理策略对每个视频帧集合中包含的视频帧进行处理,即实现从宏块粒度进行逐帧拼接视频帧,从而根据处理结果生成目标视频流。
111.沿用上例,对视频流a和视频流b采用相同的分帧处理策略进行分帧处理,获得视频流a对应的视频帧集合{vfa1,vfa2

vfan},以及视频流b对应的视频帧集合{vfb1,vfb2

vfbn};同时对视频流a和b中的slice,header进行解析,获得视频流a对应的标准帧参数集合{参考帧ma;量化参数na;运动矢量oa(mv,二维的矢向量)

},以及视频流b对应的标准帧参数集合{参考帧mb;量化参数nb;运动矢量ob(mv,二维的矢向量)

}。
112.更进一步的,按照预设的参数选择规则在视频流a对应的标准帧参数集合以及视频流b对应的标准帧参数集合中进行目标帧参数的筛选,获得拼接后的视频流对应的目标帧参数集合,即拼接后视频流的slice header码流。基于此,在对拼接后的视频流的参数设置完成之后,即可提取视频流a对应的视频帧集合中的视频帧vfa1与视频流b对应的视频帧集合中的视频帧vfb1进行拼接。而在拼接中实则是从宏块粒度完成的,即确定当前帧对应的宏块类型后,可以选择宏块处理策略,并结合目标帧参数集合以及目标参数集合对视频帧vfa1和视频帧vfb1各自包含的宏块进行拼接,以生成拼接后视频流的第一视频帧。拼接过程如下:
113.假设视频流a和b的分辨率是640*480,而每个宏块的大小为16*16像素,根据计算确定视频帧vfa1和vfb1中都包含40*30个宏块,分别为a1~a1200和b1~b1200。而视频流a和b是左右拼接,进一步确定待生成的视频帧第一行将对应宏块a1~a40 b1~b40,第二行是a41~a80 b41~b80,第三行
……
;此时可以先拼接第一行的全部宏块,之后拼接第二行的全部宏块,直至2400个宏块都拼接完成之后,再采用目标帧参数集合以及目标参数集合对拼接后的视频帧进行编码,即可得到拼接后视频流的第一视频帧,以此类推,直至全部视频帧都拼接完成之后,即可得到目标视频流,并发送到用户甲和用户乙的客户端进行播放即可,播放的任意一帧画面如图2中(a)所示。
114.此外,若视频流a和b是上下拼接,进一步可以确定若要将两个视频流拼接为目标视频流,只需要将视频流a的最后一行宏块与视频流b的第一行宏块进行拼接即可,而从属于视频流a的其他行对应的宏块,以及从属于视频流b的其他行对应的宏块,只需要直接拼接即可。即只需要把视频流a对应的所有宏块拼接完之后,再拼接视频流b对应的所有宏块,最后再将两个视频流拼接后的宏块上下拼接,接口得到目标视频流,并发送到用户甲和用户乙的客户端进行播放即可,播放的任意一帧画面如图2中(b)所示。
115.综上,通过采用在宏块维度进行视频帧的创建,不仅可以提高画面质量,还能够避免出现现实错误的问题,有效的保证了目标视频流的质量,同时避免进行编码和解码处理,有效的节省了计算资源。
116.进一步的,在拼接宏块、拼接宏块行以及再拼接视频帧的过程中,由于不同的帧类型影响宏块的类型,而不同的宏块类型对应不同的宏块处理策略,这就导致拼接宏块时需要按照不同的策略完成,在宏块类型为非参考宏块类型的情况下,即i类型,生成目标视频流的过程如图3所示:
117.步骤s302,确定每个视频帧集合中包含的第i视频帧对应的第j宏块和拼接宏块,并读取第j宏块的原始量化系数以及拼接宏块的拼接量化系数。
118.步骤s304,基于目标参数集合、目标帧参数集合以及拼接量化系数确定第j宏块的目标量化系数。
119.步骤s306,对原始量化系数和目标量化系数进行编码处理,根据编码处理结果更新宏块码流。
120.步骤s308,判断第j宏块是否为第i视频帧中的末端宏块;若是,执行步骤s310,若否,执行步骤s316。
121.步骤s310,判断第i视频帧是否为每个视频帧集合中的末端视频帧;若是,执行步骤s312;若否,执行步骤s314。
122.步骤s312,基于更新后的宏块码流生成目标视频帧,并基于目标视频帧生成目标视频流。
123.步骤s314,i自增1,并返回执行步骤s302。
124.步骤s316,基于第j宏块对拼接宏块进行更新,基于目标量化系数对拼接量化系数进行更新,将更新后的拼接量化系数作为更新后的拼接宏块的拼接量化系数,j自增1,并返回执行步骤s302。
125.实际应用中,在当前处理的各个视频流对应的视频帧为i类型的情况下,此时确定宏块类型为i类型,由于i类型的宏块没有其他参考帧信息,因此只需要修改单签宏块的编码的量化系数即可完成当前视频帧的拼接处理。首先可以解析第j宏块在原始视频流中的原始量化系数,第j宏块周围的拼接宏块,以及拼接宏块对应的拼接量化系数。
126.其次,基于已经生成的目标参数集合、目标帧参数集合以及拼接量化系数确定第j宏块在拼接后的视频流中的目标量化系数;再次把目标量化系数以及解析得到的原始量化系数的残差系数等宏块参数进行编码,即可得到拼接后的视频流对应的宏块码流,即当前视频帧对应的宏块码流。
127.此时可以判断第j宏块是否为当前视频帧中的末端宏块,若否,则说明当前视频帧对应的宏块码流未创建完成,则可以将第j宏块添加到拼接宏块中,并基于第j宏块对应的目标量化系数对拼接量化系数进行更新,将更新后的拼接量化系数作为所述拼接量化系数,此时j自增1,再返回执行步骤s302即可,直至末端宏块处理完成后,可以确定当前视频帧对应的宏块码流创建完成。
128.此时可以判断第i视频帧是否为视频帧集合中的末端视频帧,若否,i自增1,并返回执行步骤s302即可,若是,则说明各个视频流对应的全部视频帧都已经拼接完成,则此时可以基于每个视频帧对应的宏块码流创建目标视频帧,并将目标视频帧进行拼接,即可得到目标视频流。
129.沿用上例,在视频帧vfan和vfbn均为i帧的情况下,此时将对按照i类型处理策略进行视频帧的拼接处理,具体实现如下:首先确定第1宏块在视频流a中的量化系数,然后根据目标参数集合以及目标帧参数集合(新的slice header)中的量化系数,以及已经拼接后的其他宏块的量化系数确定第1宏块在拼接后视频流中的量化系数(在第1宏块时,其他量化系数为空集),之后把得到的量化系数以及解析得到的量化系数的残差系数(第1宏块在视频流a中的量化系数)等参数进行huffman或cavlc或cabac(不同的编码方式采取的方式
不一样)进行编码,形成当前帧对应的宏块码流,之后再对第2宏块执行上述处理,直至当前视频帧中包含的宏块都处理完成之后,即完成视频帧vfan和vfbn的拼接,即将两个视频帧中包含的全部宏块都拼接到一起,得到拼接的视频流的第一帧视频帧,以此类推,直至全部视频帧都拼接完成之后,即可将全部视频帧拼接为目标视频流,并发送到用户甲和用户乙的客户端进行播放即可,播放的任意一帧画面如图2中(a)所示。
130.在宏块类型为前参考帧类型的情况下,即p类型,生成目标视频流的过程如图4所示:
131.步骤s402,读取每个视频流的拼接处理参数,并根据每个视频流的拼接处理参数计算每个视频流的偏移参数。
132.步骤s404,确定每个视频帧集合中包含的第i视频帧对应的第j宏块和拼接宏块,并读取第j宏块的原始量化系数和拼接宏块的拼接量化系数,以及第j宏块的原始位置信息和拼接宏块的拼接位置信息。
133.步骤s406,基于目标参数集合、目标帧参数集合和偏移参数确定第j宏块的目标位置信息,以及基于目标参数集合、目标帧参数集合和拼接量化系数确定第j宏块的目标量化系数。
134.步骤s408,对原始量化系数、目标量化系数以及目标位置信息进行编码处理,根据编码处理结果更新宏块码流。
135.步骤s410,判断第j宏块是否为第i视频帧中的末端宏块;若是,执行步骤s412,若否,执行步骤s418。
136.步骤s412,判断第i视频帧是否为每个视频帧集合中的末端视频帧;若是,执行步骤s414,若否,执行步骤s416。
137.步骤s414,基于更新后的宏块码流生成目标视频帧,并基于目标视频帧生成目标视频流。
138.步骤s416,i自增1,并返回执行步骤s404。
139.步骤s418,基于第j宏块对拼接宏块进行更新,基于目标位置信息对拼接位置信息进行更新,将更新后的拼接位置信息作为更新后的拼接宏块的拼接位置信息,以及基于目标量化系数对拼接量化系数进行更新,将更新后的拼接量化系数作为更新后的拼接宏块的拼接量化系数,j自增1,并返回执行步骤s404。
140.实际应用中,在当前处理的各个视频流对应的视频帧为p类型的情况下,此时确定宏块类型为p类型,由于p类型的宏块需要前面帧的信息,如mv等相关信息。因为原来的参考视频帧的位置在拼接后的视频流中的位置发生了偏移,因此需要对mv信息进行偏移量修正,偏移量是一个坐标信息,包含x分量和y分量,偏移量即为偏移参数。此时可以解析第j宏块在原码流中的mv信息,然后结合目标参数集合以及目标帧参数集合中mv相关信息和拼接宏块的mv信息,偏移量可以得到新的mv信息,即第j宏块在拼接后的视频流中的mv信息,之后按照i类型宏块的处理方式进行量化系数的处理,即可得到新的宏块码流,完成当前视频帧对应宏块码流的创建。其中,位置信息即为mv信息。
141.需要说明的是,宏块类型为p类型的情况下,量化系数的调整和宏块码流的创建与宏块类型为i类型的处理过程相类似,相同内容均可参见上述相应的描述内容,本实施例在此不作过多赘述,二者区别仅在于p类型需要结合前面帧的信息,此时会因为参考视频帧的
偏移进行mv信息的更新。
142.此外,由于p类型宏块中包含一种特别类型的p-skip宏块,这种宏块由于结构简单,即该宏块没有量化参数等,因此也无需修改这种类型宏块的信息,直接拷贝到新的码流中即可,即如果p类型中遇到宏块为p-skip的宏块,则可以直接拷贝更新宏块码流,用于后续生成目标视频流。
143.更进一步的,在宏块类型为前后参考帧类型的情况下,即b类型,由于b类型的宏块需要前后参考帧的信息,因此不仅需要修改前向参考信息(如p类型的处理方案),也需要按照同样的处理方式修改后向参考信息,即当前视频帧的后视频帧相关的信息,具体修改的信息也为因为偏移进行mv信息更新,向后修改参考信息的方式均可参见p类型拼接处理方案,本实施例在此不作过多赘述。
144.除此之外,由于编码过程中,是对量化系数以及mv等信息通过增量编码的,因此在宏块操作时,在同一宏块行中,有时只需要完成第一个宏块的量化参数、mv等参数的修改,后面的宏块无需修改量化参数以及mv等信息的增量,因此也无需进行huffman等编码,只要按位排序甚至直接按位拷贝处理即可。
145.本说明书提供一种视频处理方法,实现了无需对视频流进行转码即可生成新的视频流,不仅可以节省计算资源的消耗,还能够保证生成的目标视频流的质量,从而进一步提高了用户的观看体验。
146.与上述方法实施例相对应,本说明书还提供了视频处理装置实施例,图5示出了本说明书一实施例提供的一种视频处理装置的结构示意图。如图5所示,该装置包括:
147.确定参数模块502,被配置为确定至少两个视频流中每个视频流关联的目标参数集合;
148.解析参数模块504,被配置为对每个视频流进行解析获得每个视频流的视频帧集合,以及确定每个视频流关联的目标帧参数集合;
149.确定策略模块506,被配置为根据每个视频流的视频帧集合中包含的视频帧的帧类型确定宏块类型,并确定所述宏块类型对应的宏块处理策略;
150.处理视频模块508,被配置为基于所述目标参数集合、所述目标帧参数集合以及所述宏块处理策略对每个视频帧集合中包含的视频帧进行处理,根据处理结果生成目标视频流。
151.一个可选的实施例中,所述确定参数模块502进一步被配置为:
152.获取所述至少两个视频流,并确定每个视频流对应的标准参数集合;根据每个视频流对应的标准参数集合生成所述目标参数集合。
153.一个可选的实施例中,所述解析参数模块504进一步被配置为:
154.对每个视频流进行解析获得每个视频流的视频帧集合以及标准帧参数集合;根据每个视频流的标准帧参数集合生成所述目标帧参数集合。
155.一个可选的实施例中,所述确定参数模块502进一步被配置为:
156.对每个视频流进行解析,获得每个视频流对应的编码参数集标识;基于每个视频流对应的编码参数集标识读取由编码配置参数组成的编码参数集合;根据读取结果确定每个视频流对应的编码参数集合,作为所述至少两个视频流中每个视频流对应的标准参数集合。
157.一个可选的实施例中,所述视频处理装置,还包括:
158.检测模块,被配置为基于每个视频流对应的标准参数集合检测所述至少两个视频流是否满足视频拼接条件;
159.若是,执行所述确定参数模块502。
160.一个可选的实施例中,所述检测模块进一步被配置为:
161.根据每个视频流对应的标准参数集合确定每个视频流的编码方式;在每个视频流的编码方式相同的情况下,读取每个视频流的分辨率以及预设的拼接处理参数;根据所述拼接处理参数和每个视频流的分辨率生成拼接区域;在所述拼接区域满足视频拼接格式的情况下,读取每个视频流的编码参数;基于每个视频流的编码参数检测所述至少两个视频流是否满足互斥拼接条件。
162.一个可选的实施例中,所述确定参数模块502进一步被配置为:
163.根据预设的参数调整规则在每个视频流对应的标准参数集合中提取初始参数;按照所述参数调整规则对所述初始参数进行调整获得目标参数,并基于所述目标参数组成所述目标参数集合。
164.一个可选的实施例中,所述解析参数模块504进一步被配置为:
165.基于预设的分帧处理策略分别对每个视频流进行分帧处理,获得每个视频流的视频帧集合;分别在每个视频流的视频帧集合中确定目标视频帧,并对每个视频流对应的目标视频帧进行解析获得标准帧参数;基于每个视频流对应的标准帧参数组成每个视频流的标准帧参数集合。
166.一个可选的实施例中,所述标准帧参数包括下述至少一项:参考帧参数、量化参数、运动矢量参数;
167.相应的,所述解析参数模块504进一步被配置为:
168.基于预设的帧参数选择规则在每个视频流的标准帧参数集合中选择目标帧参数,并基于所述目标帧参数组成所述目标帧参数集合。
169.一个可选的实施例中,所述确定策略模块506进一步被配置为:
170.基于每个视频流的编码方式确定宏块参数,并按照所述宏块参数对每个视频流的视频帧集合中包含的视频帧进行切分;根据切分处理结果生成每个视频帧集合中的视频帧对应的宏块组;确定每个视频帧集合中包含的视频帧的帧类型,并根据所述帧类型确定每个视频帧集合中的视频帧对应的宏块组的宏块类型。
171.一个可选的实施例中,所述帧类型包括下述至少一项:
172.前后参考帧类型、前参考帧类型、非参考帧类型;
173.相应的,所述宏块类型包括下述至少一项:
174.前后参考宏块类型、前参考宏块类型、非参考宏块类型;
175.相应的,所述宏块处理策略包括下述至少一项:
176.前后参考宏块处理策略、前参考宏块处理策略、非参考宏块处理策略。
177.一个可选的实施例中,在所述宏块类型为非参考宏块类型的情况下,所述处理视频模块508进一步被配置为:
178.确定每个视频帧集合中包含的第i视频帧对应的第j宏块和拼接宏块,并读取所述第j宏块的原始量化系数以及所述拼接宏块的拼接量化系数;基于所述目标参数集合、所述
目标帧参数集合以及所述拼接量化系数确定所述第j宏块的目标量化系数;对所述原始量化系数和所述目标量化系数进行编码处理,根据编码处理结果更新宏块码流;在所述第j宏块为第i视频帧中的末端宏块的情况下,判断所述第i视频帧是否为每个视频帧集合中的末端视频帧;若否,i自增1,并执行所述确定每个视频帧集合中包含的第i视频帧对应的第j宏块和拼接宏块步骤;若是,基于更新后的宏块码流生成目标视频帧,并基于所述目标视频帧生成所述目标视频流。
179.一个可选的实施例中,所述处理视频模块508进一步被配置为:
180.判断所述第j宏块是否为第i视频帧中的末端宏块;若是,执行所述判断所述第i视频帧是否为每个视频帧集合中的末端视频帧步骤;若否,基于所述第j宏块对所述拼接宏块进行更新,基于所述目标量化系数对所述拼接量化系数进行更新,将更新后的拼接量化系数作为更新后的拼接宏块的拼接量化系数,j自增1,并执行所述确定每个视频帧集合中包含的第i视频帧对应的第j宏块和拼接宏块步骤。
181.一个可选的实施例中,所述视频处理装置,还包括:
182.计算模块,被配置为读取每个视频流的拼接处理参数,并根据每个视频流的拼接处理参数计算每个视频流的偏移参数。
183.一个可选的实施例中,在所述宏块类型为前参考帧类型的情况下,所述处理视频模块508进一步被配置为:
184.确定每个视频帧集合中包含的第i视频帧对应的第j宏块和拼接宏块,并读取所述第j宏块的原始量化系数和所述拼接宏块的拼接量化系数,以及所述第j宏块的原始位置信息和所述拼接宏块的拼接位置信息;基于所述目标参数集合、所述目标帧参数集合和所述偏移参数确定第j宏块的目标位置信息,以及基于所述目标参数集合、所述目标帧参数集合和所述拼接量化系数确定所述第j宏块的目标量化系数;对所述原始量化系数、所述目标量化系数以及所述目标位置信息进行编码处理,根据编码处理结果更新宏块码流;在所述第j宏块为第i视频帧中的末端宏块的情况下,判断所述第i视频帧是否为每个视频帧集合中的末端视频帧;若否,i自增1,并执行所述确定每个视频帧集合中包含的第i视频帧对应的第j宏块和拼接宏块步骤;若是,基于更新后的宏块码流生成目标视频帧,并基于所述目标视频帧生成所述目标视频流。
185.本说明书提供一种视频处理装置,在确定至少两个视频流中每个视频流关联的目标参数集合后,可以对每个视频流进行解析以得到每个视频流的视频帧集合,并确定每个视频流关联的目标帧参数集合,同时基于每个视频流的视频帧集合中包含的视频帧的类型确定宏块类型,从而确定宏块类型对应的宏块处理策略,最后整合目标参数集合、目标帧参数集合以及宏块处理策略对每个视频帧集合中包含的视频帧进行处理,即可生成目标视频流,实现了无需对视频流进行转码即可生成新的视频流,不仅可以节省计算资源的消耗,还能够保证生成的目标视频流的质量,从而进一步提高了用户的观看体验。
186.上述为本实施例的一种视频处理装置的示意性方案。需要说明的是,该视频处理装置的技术方案与上述的视频处理方法的技术方案属于同一构思,视频处理装置的技术方案未详细描述的细节内容,均可以参见上述视频处理方法的技术方案的描述。
187.图6示出了根据本说明书一实施例提供的一种计算设备600的结构框图。该计算设备600的部件包括但不限于存储器610和处理器620。处理器620与存储器610通过总线630相
连接,数据库650用于保存数据。
188.计算设备600还包括接入设备640,接入设备640使得计算设备600能够经由一个或多个网络660通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备640可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。
189.在本说明书的一个实施例中,计算设备600的上述部件以及图6中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图6所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。
190.计算设备600可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备600还可以是移动式或静止式的服务器。
191.其中,处理器620用于执行如下计算机可执行指令:
192.确定至少两个视频流中每个视频流关联的目标参数集合;
193.对每个视频流进行解析获得每个视频流的视频帧集合,以及确定每个视频流关联的目标帧参数集合;
194.根据每个视频流的视频帧集合中包含的视频帧的帧类型确定宏块类型,并确定所述宏块类型对应的宏块处理策略;
195.基于所述目标参数集合、所述目标帧参数集合以及所述宏块处理策略对每个视频帧集合中包含的视频帧进行处理,根据处理结果生成目标视频流。
196.上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的视频处理方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述视频处理方法的技术方案的描述。
197.本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:
198.确定至少两个视频流中每个视频流关联的目标参数集合;
199.对每个视频流进行解析获得每个视频流的视频帧集合,以及确定每个视频流关联的目标帧参数集合;
200.根据每个视频流的视频帧集合中包含的视频帧的帧类型确定宏块类型,并确定所述宏块类型对应的宏块处理策略;
201.基于所述目标参数集合、所述目标帧参数集合以及所述宏块处理策略对每个视频帧集合中包含的视频帧进行处理,根据处理结果生成目标视频流。
202.上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的视频处理方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述视频处理方法的技术方案的描述。
203.上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
204.所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
205.需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。
206.在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
207.以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献