一种基于Scaler的视频文件缩放方法、FPGA及视频处理装置与流程

文档序号:29820622发布日期:2022-04-27 11:01阅读:808来源:国知局
一种基于Scaler的视频文件缩放方法、FPGA及视频处理装置与流程
一种基于scaler的视频文件缩放方法、fpga及视频处理装置
技术领域
1.本发明涉及视频处理技术领域,尤其涉及一种基于scaler的视频文件缩放方法、fpga及视频处理装置。


背景技术:

2.目前在fpga中,会设置scaler(图像缩放器),当前的每个scaler最大可支持的分辨率4k和8k,而设置scaler的原因为需要完成对arm信号进行拓展显示;因此在实际的运用过程中,当fpga处理的视频可能并不是非常标准的分辨率时(如不是标准的1080p、4k等),也即视频的宽度可能更宽或者高度可能更高,此时就会使用scaler进行处理,但是使用scaler处理后,led显示屏中各个scaler对应的显示区域之间会存在缝隙,影响到led显示屏的显示效果。
3.因此,需要寻找一种新的技术方案来解决上述问题。


技术实现要素:

4.针对现有技术中的技术问题,本发明提供一种基于scaler的视频文件缩放方法、fpga及视频处理装置。
5.本发明的一种基于scaler的视频文件缩放方法,包括:
6.获取输入视频分辨率以及若干个预设的scaler的单个像素带载量;
7.根据scaler的单个像素带载量以及输入视频分辨率,对输入的视频图像数据按照预设的图像切分策略进行切分处理,得到与scaler对应的若干个第一视频子图像;
8.按照预设的像素拓展策略对若干个第一视频子图像的边进行拓展,得到对应数量的第二视频子图像;
9.按照预设的视频图像缩放策略对若干个第二视频子图像进行缩放处理,得到对应数量的第三视频子图像;
10.按照预设的图像拼合策略将若干个第三视频子图像进行拼合并输出。
11.进一步的,本发明基于scaler的视频文件缩放方法还包括:
12.获取预设的待输出视频分辨率;以及
13.计算第三视频子图像的分辨率之和,并与待输出视频分辨率进行对比;
14.若小于待输出视频分辨率,则查找第三视频子图像中缺失像素点的位置并进行补充;
15.若大于或等于待输出视频分辨率,
16.则按照预设的图像拼合策略将若干个第三视频子图像进行拼合并输出。
17.进一步的,图像拓展策略包括:
18.若某个第一视频子图像的某一边存在相邻的其他第一视频子图像,则根据视频图像数据对该第一视频子图像的边进行拓展。
19.进一步的,根据视频图像数据对第一视频子图像的边进行拓展,包括:
20.在视频图像数据中按照预设的像素拓展行数和像素拓展列数将第一视频子图像的边向外拓展对应的行数和/或列数。
21.进一步的,按照预设的视频图像缩放策略对若干个第二视频子图像进行缩放处理,包括:
22.按照预设的缩放倍数,将第二视频子图像中相邻的若干个像素点的空间划分为一个具有相位的网格,将第三视频子图像中的像素点映射到网格其中的一个位置。
23.进一步的,图像切分策略包括:
24.在水平方向上对输入的视频图像数据切分为若干个第一视频子图像;或
25.在垂直方向上对输入的视频图像数据切分为若干个第一视频子图像;或
26.在水平方向以及垂直方向上分别对输入的视频图像数据进行切分,得到若干个第一视频子图像。
27.进一步的,图像切分策略中,若干个第一视频子图像的宽度和高度相同或不同。
28.进一步的,本发明中第一视频子图像的数量小于或等于预设的scaler的数量,且第一视频子图像的像素数小于或等于对应scaler的单个像素带载量。
29.本发明的一种fpga,fpga包括参数获取模块、图像切分模块、像素拓展模块、若干个scaler模块、图像拼合模块,其中:
30.参数获取模块,与图像切分模块相连接;参数获取模块用于获取输入视频分辨率以及若干个预设的scaler模块的单个像素带载量;
31.图像切分模块,与参数获取模块、像素拓展模块相连接;图像切分模块用于根据scaler模块的单个像素带载量以及输入视频分辨率,对输入的视频图像数据按照预设的图像切分策略进行切分处理,得到与scaler模块对应的若干个第一视频子图像;
32.像素拓展模块,与图像切分模块、scaler模块相连接;像素拓展模块用于按照预设的像素拓展策略对若干个第一视频子图像的边进行拓展,得到对应数量的第二视频子图像;
33.若干个scaler模块,与像素拓展模块、图像拼合模块相连接;scaler模块用于按照预设的视频图像缩放策略对对应第二视频子图像进行缩放处理,得到对应的第三视频子图像;
34.图像拼合模块,与图像切分模块、scaler模块相连接;图像拼合模块用于按照预设的图像拼合策略将若干个第三视频子图像进行拼合并输出。
35.本发明的一种视频处理装置,包括视频图像存储器,还包括上述的fpga,其中:
36.视频图像存储器,与fpga相连接;视频图像存储器用于存储视频图像数据;
37.fpga,与视频图像存储器相连接。
38.本发明的基于scaler的视频文件缩放方法、fpga及视频处理装置,通过预设若干个scaler,并对输入的视频图像数据进行切分处理,得到与scaler对应的若干个第一视频子图像,再对若干个第一视频子图像的边进行拓展,得到对应数量的第二视频子图像,然后对若干个第二视频子图像进行缩放处理,得到对应数量的第三视频子图像,最后将若干个第三视频子图像进行拼合并输出,得到了缩放完成后的视频图像数据,解决了当前使用scaler对视频图像处理后各显示区域之间存在缝隙的问题,从而在led显示屏对缩放后的视频图像数据显示时,画面衔接良好,提升了led显示屏的显示效果;另一方面,本发明实施
例采用多个scaler对视频图像进行缩放,让输出的视频图像数据能够达到更高的像素数,显示效果更佳。
附图说明
39.为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见的,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它附图。
40.图1为本发明实施例的基于scaler的视频文件缩放方法的步骤流程图;
41.图2为本发明实施例的基于scaler的视频文件缩放方法中视频图像处理示意图;
42.图3为本发明实施例的基于scaler的视频文件缩放方法中输入像素坐标与输出像素坐标的接近程度关系图;
43.图4为本发明另一种实施例的基于scaler的视频文件缩放方法的步骤流程图;
44.图5为本发明实施例的fpga的结构组成图;
45.图6为本发明实施例的视频处理装置的结构组成图。
具体实施方式
46.下面将结合本发明中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通的技术人员在没有做出创造性劳动的前提下所获得的所有其它实施例,都属于本发明的保护范围。
47.本发明实施例的一种基于scaler的视频文件缩放方法,如图1所示,包括以下步骤:
48.步骤s10:获取输入视频分辨率以及若干个预设的scaler的单个像素带载量。
49.本发明实施例预设的scaler的单个像素带载量可为4k(即4096*2048),此处不限定预设的scaler的数量,若设定4个4k的scaler,则总像素带载数的宽度为4*4096=16384个像素,高度为4*2048=8192个像素数,此处的宽度是4个4k的scaler合并之后的宽度,高度为4个4k的scaler合并之后的高度。本发明实施例中除了输入视频分辨率这一参数之外,还有待输出视频分辨率这一参数,且本实施例的输入视频分辨率与待输出视频分辨率的取值均不能大于预设的这若干个scaler的总像素带载数,即输入或者输出的视频图像数据达到的最大宽度为16384个像素,达到的最大高度为8192个像素。
50.在4k内的分辨率可以任意设置(只要总分辨率没有超出4k)常见的分辨率(可支持的分辨率),较为常见的分辨率有:1366*768;1920*1080;1920*1200;3840*1080;3840*2160;4096*2160;4096*1716;3996*2160;8192*1080;16384*540;1920*4320;1080*8192等。
51.步骤s20:根据scaler的单个像素带载量以及输入视频分辨率,对输入的视频图像数据按照预设的图像切分策略进行切分处理,得到与scaler对应的若干个第一视频子图像。
52.对视频图像数据进行切分处理时,能够支持2切分、3切分和4切分等。本实施例对视频图像数据进行切分处理时,需要考虑scaler的单个像素带载量,以每个scaler的单个
像素带载量为4096*2048为例,则本步骤中与每个scaler对应的第一视频子图像的分辨率均不能超出4k,也即每一个scaler在使用的过程中均不超过该scaler的单个像素带载量。
53.具体的,本发明实施例的图像切分策略包括:
54.在水平方向上对输入的视频图像数据切分为若干个第一视频子图像;或在垂直方向上对输入的视频图像数据切分为若干个第一视频子图像;或在水平方向以及垂直方向上分别对输入的视频图像数据进行切分,得到若干个第一视频子图像。例如在水平方向对视频图像数据进行4切分,或者在垂直方向上对视频图像数据进行4切分,或者同时在水平方向和垂直方向进行2切分,均可得到4个第一视频子图像。
55.本发明实施例的图像切分策略中,若干个第一视频子图像的宽度和高度相同或不同,即本实施例对视频图像数据的切分既可以是等分切割,也可以是不等分切割,任意两个第一视频子图像的宽度和高度可以不同,但需满足每个第一视频子图像的像素数小于或者等于对应scaler的单个像素带载量。
56.步骤s30:按照预设的像素拓展策略对若干个第一视频子图像的边进行拓展,得到对应数量的第二视频子图像。
57.本发明实施例中的第一视频子图像的形状为方形,故最多存在四个边进行拓展,即第一视频子图像的上、下、左、右边。具体的,本发明实施例中图像拓展策略包括:若某个第一视频子图像的某一边存在相邻的其他第一视频子图像,则根据视频图像数据对该第一视频子图像的边进行拓展。拓展过程具体为:在视频图像数据中按照预设的像素拓展行数和像素拓展列数将第一视频子图像的边向外拓展对应的行数和/或列数。如图2所示,输入的视频图像数据成为源图像(source image),其宽度用iwedth表示,高度用iheigth表示。其中的选区(active region)作为本实施例的一个第一视频子图像,其宽度用iaw表示,高度用iah表示。结合该第一视频子图像所在位置,周边存在其他的第一视频子图像,所以对其上、下、左、右四个边进行拓展,拓展的宽度为图2所示的边界延伸(border exetension),本实施例拓展像素的个数与后续步骤中对图像缩放时所用抽头有关,一般拓展为4至12个像素,所拓展的像素来自视频图像数据。该第一视频子图像的四个边经过拓展之后得到对应的第二视频子图像,如图2所示的输入图像的尺寸(input section frame size)
58.步骤s40:按照预设的视频图像缩放策略对若干个第二视频子图像进行缩放处理,得到对应数量的第三视频子图像。
59.本实施例的步骤s40由预设的scaler来实现,所以本实施例的第二视频子图像与第三视频子图像的像素数应不大于scaler的单个像素带载量。
60.本发明实施例已知输入视频分辨率与待输出视频分辨率,则可以计算出缩放倍数,也可以根据预设的缩放倍数和已知的输入视频分辨率计算出待输出视频分辨率。
61.视频缩放是生产原先输入视频图像不存在的像素的过程,为了从一组固定的输入像素中计算输出像素,本步骤对第二视频子图像进行缩放处理具体包括:按照预设的缩放倍数,将第二视频子图像中相邻的若干个像素点的空间划分为一个具有相位的网格,将第三视频子图像中的像素点映射到网格其中的一个位置。既将输出像素映射到输入像素的网格中,并计算输出像素相对于输入像素的位置。该算法可通过使用一个对系数进行相应加权的滤波器来计算输出像素。例如,一个4-tap(抽头)的双边滤波器使用4个(此处输入像素的数量范围可取4至12中的任意数值)相邻的输入像素来插值一个输出像素,相邻像素之间
的空间被划分为一个可配置且称为相位的位置数,以便将输出像素映射到其中一个位置中,系数的权值由位置或相位以及它们与输出像素的接近程度决定,相位数越高,插值输出像素的精度就越高。其中,接近程度所使用的公式为:
62.dst=p
n-1
*coeff(1-v)+pn*coeff(v)+p
n+1
*coeff(1-v)+p
n+2
*coeff(2-v);
63.如图3所示,为输入像素坐标(source pixel)与输出像素坐标(destination pixel)的接近程度关系图,图3仅示意了一个方向,本发明实施例包括水平方向与垂直方向两个方向。输出像素dst的位置根据水平方向以及垂直方向下与相邻的像素p
n-1
、pn、p
n+1
、p
n+2
的位置进行计算,其中v表示输出像素dst与像素pn之间的距离。
64.如图2所示,与第一视频子图像(active region)内容对应的第三视频子图像的尺寸(output section frame size),其宽度用ofw表示,高度用ofh表示;整个输出图像(destination image)的宽度用owidth表示,高度用oheigth表示。
65.如图2所示,第一视频子图像的左上角像素点(upleft pixel)的x方向坐标值为ix_offset,y方向的坐标值为iy_offset,对应到第三视频子图像的左上角坐标为upleft pixel(ox_offset,oy_offset)。
66.计算第三视频子图像的坐标过程可通过下方过程实现:
67.首先设定源图像、输出图像的高度值和宽度值,即本发明实施例中的输入视频分辨率、待输出视频分辨率。即:
68.iwidth=1920;
69.iheigth=1080;
70.owidth=3840;
71.oheigth=2160;
72.ffwidth=12;
73.ff=1《《ffwidth=4096;
74.hsf=floor(ff*(iwidth/owidth)+0.5)
75.=2048;
76.vsf=floor(ff*(iheigth/oheigth)+0.5)
77.=2048;
78.设定输入视频分辨率为1920*1080,放大两倍得到待输出视频分辨率为3840*2160。上方ff的取值为scaler的单个像素带载量,ffwidth的取值为12,通过2的12次方得出ff的取值。hsf为水平缩放的比例系数(horizontal scaling factor),vsf为垂直缩放的比例系数(vertical scaling factor),通过iwidth、owidth、iheigth、oheigth以及ff计算得出。
79.而ix_offset与iy_offset的具体取值则通过下面方式计算得出:
80.ix_offset=floor((hip_wi+(hsf*owidth)/2))/ff)
81.=floor(2048*3840)/2/4096)=960;
82.iy_offset=floor((vip_wi+(vsf*oheight)/2))/ff)
83.=floor(2048*2160)/2/4096)=540;
84.hip_wih和vip_wi分别代表水平滤波器和垂直滤波器的初始阶段,再次取值的典型值为0。
85.步骤s50:按照预设的图像拼合策略将若干个第三视频子图像进行拼合并输出。
86.本实施例的图像拼合策略与步骤s20中的图像切分策略相关,即本步骤按照图像切分的方式对若干个第三视频子图像再进行拼合,得到缩放完成后的视频图像数据,该视频图像数据发送给led显示屏进行显示。
87.本发明实施例的基于scaler的视频文件缩放方法,通过预设若干个scaler,并对输入的视频图像数据进行切分处理,得到与scaler对应的若干个第一视频子图像,再对若干个第一视频子图像的边进行拓展,得到对应数量的第二视频子图像,然后对若干个第二视频子图像进行缩放处理,得到对应数量的第三视频子图像,最后将若干个第三视频子图像进行拼合并输出,得到了缩放完成后的视频图像数据,解决了当前使用scaler对视频图像处理后各显示区域之间存在缝隙的问题,从而在led显示屏对缩放后的视频图像数据显示时,画面衔接良好,提升了led显示屏的显示效果;另一方面,本发明实施例采用多个scaler对视频图像进行缩放,让输出的视频图像数据能够达到更高的像素数,显示效果更佳。
88.具体的,如图4所示,本发明实施例在上一实施例的基础上还包括:
89.步骤s60:获取预设的待输出视频分辨率。
90.步骤s70:计算第三视频子图像的分辨率之和,并与待输出视频分辨率进行对比。
91.若第三视频子图像的分辨率之和小于待输出视频分辨率,则执行步骤s80:查找第三视频子图像中缺失像素点的位置并进行补充。补充后第三视频子图像的分辨率之和等于待输出视频分辨率,则执行步骤s50。
92.本发明实施例在计算出第三视频子图像的分辨率之和小于待输出视频分辨率时,也可以不进行像素补充而直接执行步骤s50。
93.若第三视频子图像的分辨率之和大于等于待输出视频分辨率,则执行步骤s50:按照预设的图像拼合策略将若干个第三视频子图像进行拼合并输出。
94.本发明实施例对每个第二视频子图像进行缩放处理的比值是相等的,比如视频图像数据的像素宽度为1080,切分为三个第一视频子图像,像素宽度分别为200、200、680,如果放大2倍,则待输出视频分辨率为2160,通过本发明实施例的步骤s30至步骤s40的处理之后,正常情况下应得到像素宽度为400、400、1360的三个第三视频子图像,但在此过程中可能会发生像素丢失或者多出的情况,导致缩放比例不均衡的情况,故需要对第三视频子图像的分辨率之和与待输出视频分辨率进行对比,如果像素缺失,例如得出的第三视频子图像的分辨率之和为2159,则补充像素,如果像素多余或者第三视频子图像的分辨率之和与待输出视频分辨率相等时,再合并输出。
95.本发明实施例的一种fpga,如图5所示,fpga 10包括参数获取模块101、图像切分模块102、像素拓展模块103、若干个scaler模块104、图像拼合模块105,其中:
96.参数获取模块101,与图像切分模块102相连接;参数获取模块101用于获取输入视频分辨率以及若干个预设的scaler模块的单个像素带载量;
97.图像切分模块102,与参数获取模块101、像素拓展模块103相连接;图像切分模块102用于根据scaler模块的单个像素带载量以及输入视频分辨率,对输入的视频图像数据按照预设的图像切分策略进行切分处理,得到与scaler模块对应的若干个第一视频子图像;
98.像素拓展模块103,与图像切分模块102、scaler模块104相连接;像素拓展模块103用于按照预设的像素拓展策略对若干个第一视频子图像的边进行拓展,得到对应数量的第二视频子图像;
99.若干个scaler模块104,与像素拓展模块103、图像拼合模块105相连接;scaler模块104用于按照预设的视频图像缩放策略对对应第二视频子图像进行缩放处理,得到对应的第三视频子图像;
100.图像拼合模块105,与图像切分模块102、scaler模块104相连接;图像拼合模块105用于按照预设的图像拼合策略将若干个第三视频子图像进行拼合并输出。
101.本发明实施例的fpga 10按照前述关于基于scaler的视频文件缩放方法的相关实施例实现对应的功能,此处将不再赘述。
102.本发明实施例还包括一种视频处理装置100,如图6所示,包括视频图像存储器20,还包括如上述实施例的fpga 10,其中:
103.视频图像存储器20,与fpga 10相连接;视频图像存储器20用于存储视频图像数据;
104.fpga 10,与视频图像存储器20相连接,用于实现上一实施例中fpga 10的相关功能。
105.本实施例的视频处理装置100即可为led显示技术中的发送卡,也可以为接收卡。
106.本发明实施例的基于scaler的视频文件缩放方法、fpga及视频处理装置,通过预设若干个scaler,并对输入的视频图像数据进行切分处理,得到与scaler对应的若干个第一视频子图像,再对若干个第一视频子图像的边进行拓展,得到对应数量的第二视频子图像,然后对若干个第二视频子图像进行缩放处理,得到对应数量的第三视频子图像,最后将若干个第三视频子图像进行拼合并输出,得到了缩放完成后的视频图像数据,解决了当前使用scaler对视频图像处理后各显示区域之间存在缝隙的问题,从而在led显示屏对缩放后的视频图像数据显示时,画面衔接良好,提升了led显示屏的显示效果;另一方面,本发明实施例采用多个scaler对视频图像进行缩放,让输出的视频图像数据能够达到更高的像素数,显示效果更佳。
107.以上借助具体实施例对本发明做了进一步描述,但是应该理解的是,这里具体的描述,不应理解为对本发明的实质和范围的限定,本领域内的普通技术人员在阅读本说明书后对上述实施例做出的各种修改,都属于本发明所保护的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1