CN117241030A - 视频数据流的生成方法、解码方法及相关装置 - Google Patents
视频数据流的生成方法、解码方法及相关装置 Download PDFInfo
- Publication number
- CN117241030A CN117241030A CN202311278818.5A CN202311278818A CN117241030A CN 117241030 A CN117241030 A CN 117241030A CN 202311278818 A CN202311278818 A CN 202311278818A CN 117241030 A CN117241030 A CN 117241030A
- Authority
- CN
- China
- Prior art keywords
- block
- motion vector
- image frame
- nth
- macroblock
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 75
- 239000013598 vector Substances 0.000 claims abstract description 234
- 238000012545 processing Methods 0.000 claims abstract description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 3
- 238000007906 compression Methods 0.000 abstract description 9
- 230000006835 compression Effects 0.000 abstract description 8
- 238000006073 displacement reaction Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本说明书中实施方式提供了一种视频数据流的生成方法,应用于编码器,以对摄像头采集到的图像帧进行编码,所述图像帧被划分至少一个区块,所述方法包括:生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量;在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;针对所述第n个宏块的运动矢量差值进行编码处理,得到所述第n个宏块的数据流。通过本说明书的实施方式能够提高视频压缩率。
Description
技术领域
本说明书中实施方式涉及视频编解码技术领域,特别是涉及一种视频数据流的生成方法、解码方法及相关装置。
背景技术
现有技术中的视频编码过程,通常是基于帧的编码方法,将视频分成多个帧并进行压缩编码。一个图像帧被划分为n个宏块,针对宏块作为基本单元进行编码处理。在视频的图像帧中存在运动物体的情况下,可以利用运动矢量预测技术。具体的,通过分析相邻图像帧之间的差异,根据参考帧预测当前帧中的物体运动信息。即,通过运动矢量差值反映当前帧和参考帧之间的相似性,根据运动矢量差值的大小推测运动物体可能的位置,其中,运动矢量(Motion Vector,MV)表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。运动矢量差值可以表示当前帧的MV与参考帧的MV之间的差异。在现有技术中,在物体静止或几乎静止的情况下,可以采用零矢量表示当前帧中的编码块与参考帧中的对应块位置不变,从而减少编码复杂度和数据量。
然而,在实际的视频图像帧中,经常存在物体运动程度较为剧烈的情况。此时,现有技术中仍使用零矢量进行运动矢量预测,则会增加编码产生的比特数,导致视频压缩效率低。因此,现有技术中存在视频画面运动场景下运动矢量压缩效率低的技术问题。
发明内容
有鉴于此,本说明书中多个实施方式提供一种视频数据流的生成方法、解码方法及相关装置,以提高视频压缩率。
本说明书的一个实施方式提供一种视频数据流的生成方法,应用于编码器,以对摄像头采集到的图像帧进行编码,所述图像帧被划分至少一个区块,所述方法包括:生成图像的帧第n个宏块,相对于指定参考图像帧的运动矢量;在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;针对所述第n个宏块的运动矢量差值进行编码处理,得到所述第n个宏块的数据流。
本说明书的一个实施方式提供一种视频数据流的解码方法,应用于解码器,以对接收到的视频数据流进行解码,所述方法包括:针对所述视频数据流进行解码得到第n个宏块对应的运动矢量差值;其中,所述运动矢量差值是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的;其中,所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;获取所述第n个宏块所属的区块的区块运动矢量;根据n个宏块的运动矢量差值、区块运动矢量和所述指定参考图像帧,重建图像帧。
本说明书的一个实施方式提供一种编码器,包括:运动矢量生成单元,生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量;区块运动矢量预测单元,在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;计算单元,根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;编码单元,针对所述第n个宏块的运动矢量差值进行编码处理,得到所述第n个宏块的数据流。
本说明书的一个实施方式提供一种解码器,包括:解码单元,针对所述视频数据流进行解码得到第n个宏块对应的运动矢量差值;其中,所述运动矢量差值是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的;其中,所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;获取单元,获取所述第n个宏块所属的区块的区块运动矢量;重建单元,根据n个宏块的运动矢量差值、区块运动矢量和所述指定参考图像帧,重建图像帧。
本说明书的一个实施方式提供一种电子设备,所述电子设备包括处理器及存储器,所述存储器中存储有计算机程序指令,当所述计算机程序指令被所述处理器执行时实现如上述任一所述的方法。
本说明书提供的多个实施方式,通过生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量;所述运动矢量对应的运动信息传输到解码器中。如果在摄像头拍摄视频的过程中发生了画面抖动的情况,使得连续帧之间的像素差异较大,可能导致所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败。在这种情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;最后,针对所述第n个宏块的运动矢量差值进行编码。这样可以有效地降低表示运动信息的比特数。相比直接传输运动矢量,传输运动矢量差值可以节省码字。如此,提高视频压缩率。
附图说明
为了更清楚地说明本说明书实施方式的技术方案,下面将对实施方式描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本说明书的一个实施方式提供的一种视频数据流的生成方法的流程示意图。
图2为本说明书的一个实施方式提供的一种视频数据流的解码方法的流程示意图。
图3为本说明书的一个实施方式提供的一种编码器示意图。
图4为本说明书的一个实施方式提供的一种解码器示意图。
图5为本说明书的一个实施方式提供的一种电子设备的示意图。
具体实施方式
下面将结合本说明书中的附图,对本说明书提供的实施方式中的技术方案进行清楚、完整地描述,显然,所描述的实施方式仅仅是一部分实施方式,而不是全部的实施方式。基于本说明书提供的实施方式,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
相关技术中的视频编码技术,通常是用MV表示当前编码块与其参考图像中的最佳匹配块之间的相对位移。使用相邻已编码宏块的MV预测当前宏块的MV,然后对MV与MV的预测值之间的差值进行编码。其中,运动矢量差值可以表示当前帧的MV与参考帧的MV之间的差异。
然而,相关技术中的视频编码方法对于视频中有整体运动的场景,例如画面抖动,画面中的物体运动信息时常存在不一致的情况,可能导致当前宏块的运动信息与相邻宏块的运动信息可能存在较大差异。此时,再用零矢量预测当前宏块的MV,则会增加编码产生的比特数,产生较多的码字,很难通过当前宏块相邻的宏块的运动信息来预测当前宏块的运动,难以获得较优的匹配结果。
因此,在视频画面运动场景下进行编码可能会产生较多码字。因而,相关技术中存在视频画面运动场景下运动矢量压缩效率低的技术问题。
因此,有必要提供一种视频数据流的生成方法,通过生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量;所述运动矢量对应的运动信息传输到解码器中。如果在摄像头拍摄视频的过程中发生了画面抖动的情况,使得连续帧之间的像素差异较大,可能导致所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败。在这种情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;最后,针对所述第n个宏块的运动矢量差值进行编码。这样可以有效地降低表示运动信息的比特数。相比直接传输运动矢量,传输运动矢量差值可以节省码字。如此,提高视频压缩率。
本说明书的一个实施方式提供一种视频数据流的生成方法,所述视频数据流的生成方法可以应用于编码器。所述编码器是一种将摄像头生成的图像帧转换为特定码流格式的设备或软件。所述编码器可以对摄像头采集到的图像帧进行编码。所述图像帧被划分至少一个区块,所述区块中可以包括多个宏块。所述宏块是所述图像帧在编码器中进行编码的基本单元。所述宏块可以表示图像帧的部分信息。本说明书中所称第n个宏块可以理解为针对待编码图像帧划分的多个宏块中的任意一个宏块,且n为正整数。
请参阅图1。所述视频数据流的生成方法可以包括以下步骤。
步骤S110:生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量。
在本实施方式中,所述指定参考图像帧可以是在视频编码过程中用来进行运动矢量预测的可供参考的图像帧。所述指定参考的图像帧可以有多个。在一些实施方式中,在编码器中完成图像帧到码流的压缩过程的同时,也会同步在编码器中完成图像重建,形成重建帧。具体的,编码器基于指定参考图像帧和当前帧,生成新一帧的码流和重建帧,所述重建帧又可以作为后续编码的参考。具体的,例如,在第40帧进行编码时,指定参考图像帧可以是第39,36,32,30帧的重建帧。
在本实施方式中,所述运动矢量可以用于表示一个图像帧到另一个图像帧的运动信息。具体的,例如,假设有一段连续的图像帧,其中包含一个运动的汽车。编码时,编码器会将当前帧与之前的指定参考图像帧进行比较,找到两者之间的差异,并使用运动矢量来表示这种差异。
步骤S120:在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息。
在本实施方式中,所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况可以包括:在摄像头拍摄视频的过程中发生了画面抖动的情况,由于相邻图像帧之间的运动信息差异较大,导致图像帧中的目标对象运动轨迹发生偏差,无法通过当前宏块对应的目标的历史运动预测当前宏块的运动。在本实施方式中,所述图像帧可以包括一个或多个区块。所述区块中可以包括多个宏块。所述区块运动矢量可以描述当前区块的运动信息。具体的,例如,在整个视频的运动场景中,包含人物的局部运动。通过区块运动矢量可以更加准确的反应人物的局部运动信息。在一些实施方式中,在某些运动的视频画面中,局部的运动矢量呈现出差异,图像帧被划分为多个区块后,用多个区块运动矢量来描述局部的运动信息。具体的,例如,将图像帧平均分成多个区块,每一个区块都有单独的区块运动矢量,用于描述当前区块的运动信息。再例如,考虑到有些视频画面左侧整体右移,右侧整体左移,在这种情况下,利用区块局部描述运动信息,可以使得区块内部有较好的一致性。
步骤S130:根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值。
在本实施方式中,所述运动矢量差值可以是所述第n个宏块的运动矢量和所述区块运动矢量的差值。在码流中传输运动矢量差值可以节省码字。具体的,在编码时,编码运动矢量差值相比编码全部的运动矢量可以减少编码数据量。具体的,例如,在对于图像帧进行编码和解码时,采用相同算法规范可以推导出相同的预测运动矢量。在这样的情况下,在码流中传输运动矢量差值可以达到与传输运动矢量相同的效果。运动矢量差值幅度相对运动矢量而言更小,所以传输运动矢量差值可以节省码字。
步骤S140:针对所述第n个宏块的运动矢量差值进行编码处理,得到所述第n个宏块的数据流。
在本实施方式中,所述针对运动矢量差值编码处理可以是对当前宏块相对于指定参考图像帧的预测宏块进行编码处理。具体的,例如,考虑一个运动物体从左到右移动的场景,第一个图像帧中的宏块C位于运动物体的初始位置,作为指定参考图像帧。而第二个图像帧中的宏块D位于运动物体移动后的位置,作为当前帧。若编码运动矢量差值,则编码器需要通过运动矢量生成宏块C的预测宏块C’,再通过C’生成重建宏块D’和数据流。所述数据流包括所述当前宏块和所述预测宏块的残差和所述运动矢量差值编码后形成的码流。
在一些实施方式中,所述视频数据流的生成方法还可以包括:将所述摄像头采集到的整个图像帧作为一个区块,计算图像帧整体的全局运动矢量,作为区块运动矢量;其中,所述全局运动矢量用于表征所述整个图像帧相对于所述指定参考图像帧的运动信息。
在一些情况下,利用全局运动矢量预测当前帧的运动信息,相比直接将运动矢量信息编码,可以更好地捕捉到整体的图像运动特征,提高视频编码的效率。
在本实施方式中,所述全局运动矢量可以是将当前帧与指定参考图像帧进行比较,得出的位移结果。所述全局运动矢量用于表征整个图像帧相对于指定参考图像帧的运动信息。具体的,例如,摄像头在水平方向上做了一个匀速平移,导致整个图像帧都发生了水平位移。在这种情况下,可以使用一个全局运动矢量来表示整个视频帧相对于指定参考图像帧的平移位移,以实现更准确的运动信息预测。再例如,对于一个整体向右移动的图像帧,第N帧图像帧P1,第N+1帧的图像帧P2,如果图像帧P1整体向右移动3个像素,生成的图像帧P1’与图像帧P2基本重合。此时可以用一个全局运动矢量(3,0)对运动信息进行整体描述。
在一些实施方式中,所述视频数据流的生成方法还可以包括:将所述摄像头采集到的图像帧划分多个区块;计算每个区块的区块运动矢量。
在一些情况下,相对复杂的场景下,全局运动矢量可能描述的不够准确。全局运动矢量只需要传输一个矢量,码字消耗低,但是获得的匹配准确度不高,此时,区块运动矢量通过传输更多的矢量,划分区块,提高了匹配准确度。
在本实施方式中,所述每个区块的区块运动矢量的计算方式可以包括全局运动搜索匹配算法、相位相关法。具体的,例如,使用区块匹配算法对每一图像帧中的区块进行匹配,以此预测区块之间的运动矢量。
在一些实施方式中,所述视频数据流的生成方法还可以包括:获取所述第n个宏块的坐标;其中,所述坐标用于指示第n个宏块的位置;确定所述第n个宏块所属区块的区块编号;获取所述区块编号对应区块的区块运动矢量。
在一些情况下,每个区块对应有一个区块编号,每个坐标对应有区块编号。以获取区块编号对应区块的区块运动矢量。以便于准确地在指定参考图像帧中进行运动搜索。
在本实施方式中,获取所述第n个宏块的坐标可以指示第n个宏块的位置。在获取第n个宏块的位置后,可以对应该宏块所属区块的区块编号。每一个区块编号对应一个区块。找到区块的位置后,通过当前区块相对于指定参考图像帧中的位置,获取当前区块相对应的区块运动矢量。
在一些实施方式中,所述视频数据流的生成方法还可以包括:区块被设置有缺省矢量标识位,所述缺省矢量标识位具有表示被允许使用区块运动矢量的第一取值,和不允许使用区块运动矢量的第二取值。所述视频数据流的生成方法还可以包括:在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败,且区块的缺省矢量标识位处于第一取值的情况下,才获取所述第n个宏块所属于的区块对应的区块运动矢量。
在一些情况下,通过设置缺省矢量标识位可以减小图像帧之间运动信息的复杂度,提高预测运动信息的效率。
在本实施方式中,所述缺省矢量标识位可以是一种描述信息的标志。所述缺省矢量标识位用于指示宏块的运动矢量是否采用缺省值。
在本实施方式中,所述第一取值和第二取值不相同。具体的,例如,所述第一取值可以是1,所述第二取值可以是0。在一些实施方式中,图像帧进行编码时,对于每一个指定参考图像帧添加描述标志。所述标志可以表示当前帧在后续编码的过程中,是否获取宏块所属于的区块对应的区块运动矢量的一个参考。具体的,例如,在图像帧编码时,对于每一个指定参考图像帧添加描述标志,若标志为1则表示可以获取区块运动矢量;若标志为0则表示不可以获取区块运动矢量。以此,提高预测运动信息效率。
请参阅图2。本说明书的一个实施方式提供一种视频数据流的解码方法,应用于解码器,以对接收到的视频数据流进行解码,所述方法包括以下步骤。
步骤S210:针对所述视频数据流进行解码得到第n个宏块对应的运动矢量差值;其中,所述运动矢量差值是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的;其中,所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息。
步骤S220:获取所述第n个宏块所属的区块的区块运动矢量。
步骤S230:根据第n个宏块的运动矢量差值、区块运动矢量和所述指定参考图像帧,重建图像帧。
在本实施方式中,所述视频数据流的解码方法可以是针对经过编码器编码后形成的视频数据流进行解码。解码器解码后会得到第n个宏块对应的运动矢量差值。
在本实施方式中,所述重建图像帧可以是依据第n个宏块的运动矢量差值、区块运动矢量和所述指定参考图像帧。具体的,可以参照本说明书其他实施方式对照解释,在此不再赘述。
在一些实施方式中,所述视频数据流的解码方法还可以包括:从视频数据流中解码得出区块对应的缺省矢量标识位,缺省矢量标识位具有表示被允许使用区块运动矢量的第一取值,和不允许使用区块运动矢量的第二取值。所述方法还包括:在缺省矢量标识位处于第一取值的情况下,所述运动矢量差值才是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的。
在本实施方式中所述的视频数据流的解码方法,可以参照上述视频数据流的编码方法对照解释,在此不再赘述。
请参阅图3。本说明书的一个实施方式还提供一种编码器,可以包括:运动矢量生成单元11,生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量;区块运动矢量预测单元12,在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;计算单元13,根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;编码单元14,针对所述第n个宏块的运动矢量差值进行编码处理,得到所述第n个宏块的数据流。
关于编码器实现的具体功能和效果,可以参照本说明书其他实施方式对照解释,在此不再赘述。所述编码器中的各个模块可全部或部分通过软件、硬件及其组合来实现。所述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图4。本说明书的一个实施方式还提供一种解码器,可以包括:解码单元21,针对所述视频数据流进行解码得到第n个宏块对应的运动矢量差值;其中,所述运动矢量差值是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的;其中,所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;获取单元22,获取所述第n个宏块所属的区块的区块运动矢量;重建单元23,根据n个宏块的运动矢量差值、区块运动矢量和所述指定参考图像帧,重建图像帧。
关于解码器实现的具体功能和效果,可以参照本说明书其他实施方式对照解释,在此不再赘述。所述解码器中的各个模块可全部或部分通过软件、硬件及其组合来实现。所述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
请参阅图5。本说明书实施方式还提供一种电子设备,包括处理器和存储器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述任一实施方式中的方法。
所述电子设备可以包括被系统总线连接的处理器、非易失性存储介质、内存储器、通信接口、显示装置和输入装置。所述非易失性存储介质可以存储有操作系统和相关的计算机程序。
本说明书实施方式还提供一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时,使得该计算机执行上述任一实施方式中的方法。
可以理解,本文中的具体的例子只是为了帮助本领域技术人员更好地理解本说明书实施方式,而非限制本申请的范围。
可以理解,在本说明书中的各种实施方式中,各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本说明书实施方式的实施过程构成任何限定。
可以理解,本说明书中描述的各种实施方式,既可以单独实施,也可以组合实施,本说明书实施方式对此并不限定。
除非另有说明,本说明书实施方式所使用的所有技术和科学术语与本说明书的技术领域的技术人员通常理解的含义相同。本说明书中所使用的术语只是为了描述具体的实施方式的目的,不是旨在限制本说明书的范围。本说明书所使用的术语“和/或”包括一个或多个相关的所列项的任意的和所有的组合。在本说明书实施方式和所附权利要求书中所使用的单数形式的“一种”、“上述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
可以理解,本说明书实施方式的处理器可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法实施方式的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现成可编程门阵列(Field Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本说明书实施方式中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施方式所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
可以理解,本说明书实施方式中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasablePROM,EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。易失性存储器可以是随机存取存储器(RAM)。应注意,本文描述的系统和方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
本领域普通技术人员可以意识到,结合本文中所公开的实施方式描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本说明书的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本说明书所提供的几个实施方式中,应所述理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施方式方案的目的。
另外,在本说明书各个实施方式中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本说明书的技术方案本质上或者说对现有技术做出贡献的部分或者所述技术方案的部分可以以软件产品的形式体现出来,所述计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本说明书各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM)、随机存取存储器(RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本说明书的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
Claims (10)
1.一种视频数据流的生成方法,其特征在于,应用于编码器,以对摄像头采集到的图像帧进行编码,所述图像帧被划分至少一个区块,所述方法包括:
生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量;
在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;
根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;
针对所述第n个宏块的运动矢量差值进行编码处理,得到所述第n个宏块的数据流。
2.根据权利要求1所述的方法,其特征在于,在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量的步骤,所述方法还包括:
将所述摄像头采集到的整个图像帧作为一个区块,计算图像帧整体的全局运动矢量,作为区块运动矢量;其中,所述全局运动矢量用于表征所述整个图像帧相对于所述指定参考图像帧的运动信息。
3.根据权利要求1所述的方法,其特征在于,所述区块中包括多个宏块,在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量的步骤,所述方法还包括:
将所述摄像头采集到的图像帧划分多个区块;
计算每个区块的区块运动矢量。
4.根据权利要求3所述的方法,其特征在于,所述宏块对应的区块通过坐标对所述图像帧进行划分,每个区块对应有一个区块编号;每个坐标对应有区块编号;所述方法包括:
获取所述第n个宏块的坐标;其中,所述坐标用于指示第n个宏块的位置;
确定所述第n个宏块所属区块的区块编号;
获取所述区块编号对应区块的区块运动矢量。
5.根据权利要求1所述的方法,其特征在于,区块被设置有缺省矢量标识位,缺省矢量标识位具有表示被允许使用区块运动矢量的第一取值,和不允许使用区块运动矢量的第二取值;所述方法还包括:
在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败,且区块的缺省矢量标识位处于第一取值的情况下,才获取所述第n个宏块所属于的区块对应的区块运动矢量。
6.一种视频数据流的解码方法,其特征在于,应用于解码器,以对接收到的视频数据流进行解码,所述方法包括:
针对所述视频数据流进行解码得到第n个宏块对应的运动矢量差值;其中,所述运动矢量差值是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的;其中,所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;
获取所述第n个宏块所属的区块的区块运动矢量;
根据第n个宏块的运动矢量差值、区块运动矢量和所述指定参考图像帧,重建图像帧。
7.根据权利要求6所述的方法,其特征在于,从视频数据流中解码得出区块对应的缺省矢量标识位,缺省矢量标识位具有表示被允许使用区块运动矢量的第一取值,和不允许使用区块运动矢量的第二取值;所述方法还包括:
在缺省矢量标识位处于第一取值的情况下,所述运动矢量差值才是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的。
8.一种编码器,其特征在于,包括:
运动矢量生成单元,生成图像帧的第n个宏块相对于指定参考图像帧的运动矢量;
区块运动矢量预测单元,在针对所述第n个宏块相对于所述指定参考图像帧的预测运动矢量生成失败的情况下,获取所述第n个宏块所属于的区块对应的区块运动矢量;所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;
计算单元,根据所述第n个宏块的运动矢量和所述区块运动矢量,计算得出所述第n个宏块的运动矢量差值;
编码单元,针对所述第n个宏块的运动矢量差值进行编码处理,得到所述第n个宏块的数据流。
9.一种解码器,其特征在于,包括:
解码单元,针对所述视频数据流进行解码得到第n个宏块对应的运动矢量差值;其中,所述运动矢量差值是生成所述数据流的编码器根据所述第n个宏块的运动矢量和所述第n个宏块所属的区块的区块运动矢量生成的;其中,所述区块运动矢量用于表征所述区块相对于所述指定参考图像帧的运动信息;
获取单元,获取所述第n个宏块所属的区块的区块运动矢量;
重建单元,根据n个宏块的运动矢量差值、区块运动矢量和所述指定参考图像帧,重建图像帧。
10.一种电子设备,包括:处理器和存储器,所述存储器存储有计算机程序指令,其特征在于,当所述计算机程序指令被所述处理器执行时实现如权利要求1至7任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311278818.5A CN117241030A (zh) | 2023-09-28 | 2023-09-28 | 视频数据流的生成方法、解码方法及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311278818.5A CN117241030A (zh) | 2023-09-28 | 2023-09-28 | 视频数据流的生成方法、解码方法及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117241030A true CN117241030A (zh) | 2023-12-15 |
Family
ID=89084124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311278818.5A Pending CN117241030A (zh) | 2023-09-28 | 2023-09-28 | 视频数据流的生成方法、解码方法及相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117241030A (zh) |
-
2023
- 2023-09-28 CN CN202311278818.5A patent/CN117241030A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11895306B2 (en) | Component-dependent sub-block dividing | |
US11743487B2 (en) | Method, device, and computer program for optimizing transmission of motion vector related information when transmitting a video stream from an encoder to a decoder | |
US10484705B2 (en) | Video prediction encoding device, video prediction encoding method, video prediction encoding program, video prediction decoding device, video prediction decoding method, and video prediction decoding program | |
EP2805499B1 (en) | Video decoder, video encoder, video decoding method, and video encoding method | |
KR101366242B1 (ko) | 움직임 모델 파라메터의 부호화, 복호화 방법 및 움직임모델 파라메터를 이용한 영상의 부호화, 복호화 방법 및장치 | |
JP4373702B2 (ja) | 動画像符号化装置、動画像復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化プログラム及び動画像復号化プログラム | |
US9497481B2 (en) | Motion vector predictive encoding method, motion vector predictive decoding method, moving picture encoding apparatus, moving picture decoding apparatus, and programs thereof | |
US9380314B2 (en) | Pixel retrieval for frame reconstruction | |
US11778226B2 (en) | Storage of motion information for affine mode | |
JP3031152B2 (ja) | 動き予測プロセッサ及び動き予測装置 | |
US20210227207A1 (en) | Generation and usage of combined affine merge candidate | |
EP2536147A1 (en) | Predictive coding method for motion vector, predictive decoding method for motion vector, video coding device, video decoding device, and programs therefor | |
CN111669600B (zh) | 视频编码方法、装置、编码器及存储装置 | |
KR20140026397A (ko) | 이미지 블록을 복원하고 코딩하는 방법 | |
CN117241030A (zh) | 视频数据流的生成方法、解码方法及相关装置 | |
JP2007110409A (ja) | 画像処理装置及び画像処理方法をコンピュータに実行させるためのプログラム | |
JP7248013B2 (ja) | 復号方法、復号装置、符号化装置及びプログラム | |
JP2006324888A (ja) | 動画像符号化装置 | |
JP4239894B2 (ja) | 画像符号化装置及び画像復号化装置 | |
JP2006311603A (ja) | 動画像符号化方法と装置及び動画像復号化方法と装置 | |
CN115443650A (zh) | 用于帧间预测的角度加权预测 |
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 |