CN101465954B - 一种对图像进行缩放的方法和装置 - Google Patents

一种对图像进行缩放的方法和装置 Download PDF

Info

Publication number
CN101465954B
CN101465954B CN2009100762752A CN200910076275A CN101465954B CN 101465954 B CN101465954 B CN 101465954B CN 2009100762752 A CN2009100762752 A CN 2009100762752A CN 200910076275 A CN200910076275 A CN 200910076275A CN 101465954 B CN101465954 B CN 101465954B
Authority
CN
China
Prior art keywords
convergent
divergent
value
row
coefficient
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.)
Active
Application number
CN2009100762752A
Other languages
English (en)
Other versions
CN101465954A (zh
Inventor
晋兆虎
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Zhejiang Uniview Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN2009100762752A priority Critical patent/CN101465954B/zh
Publication of CN101465954A publication Critical patent/CN101465954A/zh
Application granted granted Critical
Publication of CN101465954B publication Critical patent/CN101465954B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Image Processing (AREA)

Abstract

本发明公开了一种对图像进行缩放的方法和装置。该方法包括:加载预先生成的缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值;接收原始分辨率和满足当前缩放要求的缩放倍数比;根据缩放倍数比查找缩放系数表,确定缩放倍数比对应的步进长度以及系数值;利用确定出的步进长度控制每次参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与确定出的系数值进行乘累加,得到缩放处理后的行或列,直至根据原始分辨率确定出当前的图像缩放处理完成。

Description

一种对图像进行缩放的方法和装置
技术领域
本发明涉及数字图像技术,特别是涉及一种对图像进行缩放的方法和装置。
背景技术
在视频应用中,由于图像源多种多样,同时显示这些图像源的终端也多种多样,因此,从图像源输出的图像的分辨率与终端接收并显示的图像的分辨率则往往存在很大差别。另外,用户对终端上显示的图像的分辨率也存在着不同的要求。这样,在诸如视频网关、多画面合成器、终端适配器之类的图像处理系统中经常需要将图像的分辨率进行缩小或者放大处理,比如,从图像源输出的图像的分辨率比终端接收并显示的图像的分辨率小,那么,在诸如视频网关、多画面合成器、终端适配器之类的图像处理系统中则需要将图像源发来的图像进行放大处理,并将放大处理后的图像输出至终端,使得终端能够正确清晰地显示图像。
在目前,对图像进行缩放处理常见的有两种方式,一种是软件方式,另一种是硬件方式。对于软件方式,是由运行在通用计算机平台上的图像处理软件提供各种各样的缩放算法并执行完整的图像缩放处理,如目前比较常见的基于图像边缘的缩放技术。但是由于基于软件的缩放算法实现上较为复杂,需要耗费较长的时间,因此,对于速度处理要求高,分辨率和帧率都比较高的实时视频处理场合则无法适用。
对于硬件方式,其最大的特点是可以充分利用硬件算法单元的并行处理能力,采用多级流水实现很宽的处理带宽,速度非常快,因此,对实时视频处理场合是非常有用的,解决了软件实现方式的缺点。
但是目前,利用硬件方式实现图像缩放处理时,具有如下缺点:
1、目前,是在硬件芯片如ASIC芯片中把缩放的算法固定,硬件芯片只能提供唯一的缩放倍数的处理,比如,硬件芯片只能进行3倍放大处理,无法进行其他倍数的放大处理,因此,无法满足多样的缩放需求。
2、缩放功能不对称。缩放功能不对称主要是由于现有芯片对缩小和放大采用了不同的架构和算法,由于没有将二者统一处理,所以要么只提供图像缩小的功能,要么只提供图像放大的功能,大大降低了业务实现的灵活性。
发明内容
有鉴于此,本发明的主要目的在于提供一种对图像进行缩放的方法和装置,以便于能够基于硬件同时提供缩小和放大功能,并能够完成不同倍数的缩放处理。
为了达到上述目的,本发明的技术方案是这样实现的:
一种对图像进行缩放的方法,该方法包括:
A、加载预先生成的缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值;
B、接收原始分辨率和满足当前缩放要求的缩放倍数比;
C、根据缩放倍数比查找缩放系数表,确定缩放倍数比对应的步进长度以及系数值;
D、利用确定出的步进长度控制每次参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与确定出的系数值进行乘累加,得到缩放处理后的行或列,直至根据原始分辨率确定出当前的图像缩放处理完成,
其中,所述步骤D包括:
A1、当所述原始分辨率为垂直分辨率,所述当前缩放要求为在垂直方向上缩小时,确定缩放系数表中对应所述缩放倍数比的非零系数的个数,将步进长度指针指向第一行原始像素;B1、从步进长度指针指向的行开始取出与所述缩放倍数比相同行数的原始像素中的每一列原始像素,对于取出的每一列原始像素,使用该列中所述非零系数个数的原始像素的像素值与对应所述缩放倍数比的各个非零系数进行乘累加,得到每一列原始像素缩小处理后的像素值,然后根据步进长度更新步进长度指针所指向的原始像素的行,重复执行步骤B1,直至根据原始分辨率确定出完成垂直方向上的缩小处理;
和/或,
A2、当所述原始分辨率为水平分辨率,所述当前缩放要求为在水平方向上缩小时,确定缩放系数表中对应所述缩放倍数比的非零系数,将步进长度指针指向第一列原始像素;B2、从步进长度指针指向的列开始依次取出与所述缩放倍数比相同列数的原始像素中的每一行原始像素,对于取出的每一行原始像素,使用其中各个原始像素与对应所述缩放倍数比的各个非零系数进行乘累加,得到该行原始像素缩小处理后的像素值;根据步进长度更新步进长度指针所指向的原始像素的列,重复执行步骤B2,直至根据原始分辨率确定出完成水平方向上的缩小处理;
和/或,
100、当所述原始分辨率为垂直分辨率,所述当前缩放要求为在垂直方向上放大时,将步进长度指针指向第一行原始像素;101、在步进长度指针指向的行与其下一行之间插入所述缩放倍数比减1行像素,其中,步进长度指针指向的行中的每一个像素和插入的每一行像素的像素值的计算过程为:将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出上下原始像素行中对应位置处的各原始像素所处相位上的非0系数,,将抽取出的各相位上的非0系数分别与抽取出的各相位上原始像素的像素值进行乘累加;将步进长度指针指向下一个原始像素行,重复执行步骤101,直至根据原始分辨率确定出完成垂直方向上的放大处理;
和/或,
200、当所述原始分辨率为水平分辨率,所述当前缩放要求为在水平方向上放大时,将步进长度指针指向第一列原始像素;201、在步进长度指针指向的列与其下一列之间插入所述缩放倍数比减1列像素,其中,步进长度指针指向的列中的每一个像素和插入的每一列像素的像素值的计算过程为:将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右原始像素列中对应位置处的各原始像素所处相位上的非0系数,,将抽取出的各相位上的非0系数分别与抽取出的各相位上原始像素的像素值进行乘累加;将步进长度指针指向下一个原始像素列,重复执行步骤201,直至根据原始分辨率确定出完成水平方向上的放大处理。
在步骤C中,所述确定缩放倍数比对应的步进长度的步骤包括:
当前缩放要求为缩小时,确定步进长度等于接收的缩放倍数比;
和/或,
当前缩放要求为放大时,确定步进长度等于所述缩放倍数比的倒数。
在当前缩放为小数倍缩放时,在步骤B接收的缩放倍数比中包括:缩放前的比例值、缩放后的比例值以及第一倍数值,该第一倍数值为缩放前的比例值与缩放后的比例值两者中的较大者除以较小者后得到的小数倍数值中的整数部分;
所述步骤C包括:利用所述第一倍数值以及该第一倍数值加1后得到的第二倍数值分别查找缩放系数表,确定与该两个倍数值分别对应的步进长度以及系数值;
所述步骤D包括:利用第一倍数值对应的步进长度控制参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与对应第一倍数值的各个系数值进行乘累加,并间插进行利用第二倍数值对应的步进长度控制参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与对应第二倍数值的各个系数值进行乘累加,以得到缩放处理后的行或列,直至根据原始分辨率确定出当前的图像缩放处理完成。
该方法进一步包括:计算对应第二倍数值的b类像素的个数=缩放前的比例值与缩放后的比例值中的较大者-(缩放的整数部分倍数值*缩放前的比例值与缩放后的比例值中的较小者),对应第一倍数值的a类像素的个数=缩放前的比例值-b类像素的个数;
在步骤D中,所述间插的方法包括:根据所述原始分辨率,将一行/列中每缩放前的比例值个像素进行步骤300至301的处理,
300、先根据第一倍数值对应的步进长度以及系数值对当前待处理的像素进行缩放处理,再根据第二倍数值对应的步进长度以及系数值对当前待处理的像素进行缩放处理,返回步骤300,直至执行步骤300的次数等于所述a和b中的较小者;
301、确定所述a和b中的较大者对应的倍数值,利用该倍数值对应的步进长度以及系数值对于剩余的当前待处理的像素进行缩放处理。
一种对图像进行缩放的装置,该装置包括:
缩放参数解析单元,接收并解析原始分辨率和满足当前缩放要求的缩放倍数比,将该原始分辨率输出至步进控制单元,将该缩放倍数比分别输出至滤波系数生成单元和步进控制单元;
滤波系数生成单元,加载预先生成的缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值,根据缩放倍数比查找缩放系数表,确定缩放倍数比对应的系数值,并将确定的系数值输出至滤波执行单元;
步进控制单元,根据接收到的缩放倍数比确定步进长度,利用接收的原始分辨率和确定出的步进长度控制每次步进到滤波执行单元中的原始像素的行或列;
滤波执行单元,将步进的行或列中的原始像素的像素值与接收到的系数值进行乘累加,得到并输出缩放处理后的行或列,
其中,当该装置完成水平方向的缩放处理时:
所述步进控制单元,用于根据接收到的步进长度,首先将步进长度指针指向第一列原始像素,后续则根据步进长度更新步进长度指针所指向的原始像素的列;以及从步进长度指针指向的列开始依次取出与所述缩放倍数比相同列数的原始像素中的每一行原始像素,依次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,用于确定缩放系数表中对应所述缩放倍数比的非零系数,将该各个非零系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与每次接收到的各个原始像素的像素值进行乘累加,并输出各次乘累加运算后得到的像素列;
和/或,
所述步进控制单元,从第一列原始像素开始,将步进长度指针依次指向下一个原始像素列;以及将步进长度指针指向的每一列中的原始像素分各次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,对于步进长度指针指向的像素列中的每一个像素以及需要插入到步进长度指针指向的像素列与其下一列之间的所述缩放倍数比减1列中的每一个像素,将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右两侧各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与该系数值对应相位上的各个原始像素的像素值进行乘累加,得到当前待计算的像素的像素值,并输出最终形成的每一列像素值,
当该装置完成垂直方向的缩放处理时:
所述步进控制单元,用于根据接收到的步进长度,首先将步进长度指针指向第一行原始像素,后续则根据步进长度更新步进长度指针所指向的原始像素的行;以及从步进长度指针指向的行开始依次取出与所述缩放倍数比相同行数的原始像素中的每一列原始像素,依次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,用于确定缩放系数表中对应所述缩放倍数比的非零系数,将该各个非零系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与每次接收到的各个原始像素的像素值进行乘累加,并输出各次乘累加运算后得到的像素行;
和/或,
所述步进控制单元,从第一行原始像素开始,将步进长度指针依次指向下一个原始像素行;以及将步进长度指针指向的每一行中的原始像素分各次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,对于步进长度指针指向的像素行中的每一个像素以及需要插入到步进长度指针指向的像素行与其下一行之间的所述缩放倍数比减1行中的每一个像素,将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右两侧各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与该系数值对应相位上的各个原始像素的像素值进行乘累加,得到当前待计算像素的像素值,并输出最终形成的每一行像素值。
所述步进控制单元在当前缩放要求为缩小时,确定步进长度等于接收的缩放倍数比,在当前缩放要求为放大时,确定步进长度等于所述缩放倍数比的倒数。
所述缩放参数解析单元,在解析出满足当前缩放要求的缩放倍数比中包括缩放前的比例值、缩放后的比例值以及第一倍数值时,该第一倍数值为缩放前的比例值与缩放后的比例值两者中的较大者除以较小者后得到的小数倍数值中的整数部分,将第一倍数值加1得到第二倍数值,并进一步将该第二倍数值输出至所述滤波系数生成单元和所述步进控制单元;
所述滤波系数生成单元,根据第一倍数值和第二倍数值分别查找缩放系数表,确定与该两个倍数值分别对应系数值,并分别输出至所述滤波执行单元;
所述步进控制单元,确定接收到的第一倍数值和第二倍数值分别对应的步进长度,利用第一倍数值对应的步进长度和第二倍数值对应的步进长度间插控制步进到滤波执行单元中的原始像素的行或列;
所述滤波执行单元,将步进的行或列中的原始像素的像素值与对应第一倍数值的各个系数值进行乘累加,并间插进行将步进的行或列中的原始像素的像素值与对应第二倍数值的各个系数值进行乘累加,以得到并输出缩放处理后的行或列。
该图像处理装置为可编程逻辑器件。
由此可见,在本发明中,动态加载缩放系数表,而缩放系数表根据硬件的处理特点设置了多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值,并且,本发明还基于步进长度控制每次参与缩放的原始像素的行或列,这样,后续根据该缩放系数表来进行图像的缩放处理时,则可以保证硬件能够同时提供缩小和放大功能,并能够完成不同倍数的缩放处理,满足了业务的灵活性要求,大大增强了硬件实现图像缩放的实用性。
进一步地,在本发明中,能够将小数倍数的缩放处理转化为多个整数倍数的缩放处理的组合,因此,解决了目前的硬件实现方式中无法进行小数倍缩放的问题。
进一步地,在本发明中,在将小数倍数的缩放处理转化为多个整数倍数的缩放处理的组合时,采取了精确的间插缩放处理,因此能够保证在对图像进行缩放时获得更高的图像精度。
进一步地,在本发明中,缩放系数表能够根据实际业务需求进行实时地动态更新,使得硬件在实现图像缩放时,能够灵活地采用各种图像缩放的滤波算法得到的系数值,从而方便硬件升级。
进一步地,在本发明中,提供了针对缩小和放大处理确定步进长度的方法和步进控制方法,从而能够将缩小和放大处理统一在一个硬件装置上实现。
进一步地,在本发明装置中,执行图像缩放的具体处理的滤波执行单元与加载有缩放系数表的滤波系数生成单元和完成步进控制的步进控制单元相互分离,因此,便于共享缓冲资源。
附图说明
图1是在本发明实施例中进行图像缩放的处理流程图。
图2是在本发明实施例中对图像进行垂直方向上缩小8倍处理时的示意图。
图3是在本发明实施例中对图像进行垂直方向上放大4倍处理时的示意图。
图4是在本发明实施例中在对图像进行垂直方向上放大4倍处理时原始像素第4行第1个像素对应的相位插值示意图。
图5是在本发明实施例中在对图像进行垂直方向上放大4倍处理时在原始像素第4行与第5行之间插入的第1行第1个像素对应的相位插值示意图。
图6是在本发明实施例中对图像进行缩放处理的装置的基本结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
在基于硬件实现图像的缩放处理时,为了保证硬件能够同时提供缩小和放大功能,并能够完成不同倍数的缩放处理,本发明提供了一种对图像进行缩放的方法,该方法的核心思想包括:根据硬件的实现方式特点,首先预先生成缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值;然后在实现图像缩放处理的硬件上加载该预先生成的缩放系数表,当需要在该硬件上实现图像缩放处理时,由该硬件接收原始分辨率和满足当前缩放要求的缩放倍数比;由该硬件根据缩放倍数比查找缩放系数表,确定缩放倍数比对应的步进长度以及系数值;最后,由该硬件利用确定出的步进长度控制每次参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与确定出的系数值进行乘累加,得到缩放处理后的行或列,直至根据原始分辨率确定出当前的图像缩放处理完成。
下面则结合具体的缩放倍数和例子来详细描述本发明在硬件上完成图像缩放处理的具体实现过程。
图1是在本发明实施例中进行图像缩放的处理流程图。参见图1,该流程包括以下步骤:
步骤101:预先生成缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值。
在本步骤中,根据硬件实现图像缩放处理的特点,预先生成缩放系数表,以便于在后续处理过程中硬件能够根据该缩放系数表确定各倍数的图像缩小处理采用的系数值、各倍数的图像放大处理采用的系数值,从而实现基于硬件同时提供缩小和放大功能,并能够完成不同倍数的缩放处理。
本步骤中,生成缩放系数表的一种具体实现过程可以包括:选取图像缩小处理对应的函数(记为函数1)以及图像放大处理对应的函数(记为函数2),对函数1分别进行对应各个缩小倍数的抽样处理,得到多种缩小倍数分别对应的离散的系数值,并对函数2分别进行对应各个放大倍数的各相位的抽样处理,得到多种放大倍数分别对应的从零相位开始的离散的系数值。
比如,选取图像缩小处理对应的函数1为梳状滤波器函数,选取图像放大处理对应的函数2为相邻二像素线性插值函数,这样,对于每一种缩小倍数,都采用梳状滤波器函数进行抽样处理,对于每一种放大倍数,都采用相邻二像素线性插值函数进行从零相位开始的抽样处理。此时,最终形成的缩放系数表可以为如下表1所示的形式。
Figure G2009100762752D00111
表1
上述表1中给出的系数是理论计算的数值,在实际利用硬件如FPGA实现的时候,由于硬件处理时通常需要采用整数值,因此,在实际实现时可以采用对上述系数进行整数倍放大得到。
上述采用的梳状滤波器函数和相邻二像素线性插值函数只是本实施例列举的一个例子,在实际的业务实现中,也可以采用其他的函数来作为图像缩小或放大处理对应的函数,比如,三角波函数、门限sinc函数等。
需要说明的是,上述生成缩放系数表的实现过程只是本实施例列举的一种较佳的实现方式,在实际的业务实现中,也可以有其他的生成缩放系数表的实现过程,比如,对于不同的缩小倍数,可以不采用上述实现过程中的使用同一个函数1来进行对应各个缩小倍数的抽样处理,而可以根据实际业务需求对于不同的缩小倍数采用不同的函数,比如,在缩小2倍时,使用梳状滤波器函数来进行对应该缩小2倍的抽样处理,得到该缩小2倍的离散的系数值,而在缩小3倍时,使用门限sinc函数来进行对应该缩小3倍的抽样处理,得到该缩小3倍的离散的系数值。同理,对于不同的放大倍数也可以采用不同的函数。
步骤102:预先在硬件中加载所生成的缩放系数表。
在本实施例中,所使用的硬件较佳地可以是可编程逻辑器件,如FPGA等。
另外,为了适应实际业务实现中不断变化的需求,比如,在硬件中原来加载的是上述表1所示的根据梳状滤波器函数和相邻二像素线性插值函数得到的缩放系数表,而根据客户需求的变化,对于图像缩放采用的系数值也就是缩放系数表需要使用其他函数来得到,那么,则可以根据当前的需求重新生成缩放系数表,并实时更新在硬件中加载的缩放系数表。
步骤103:当需要由硬件来实现图像缩放处理时,由该硬件接收并解析图像的原始分辨率和满足当前缩放要求的缩放倍数比。
通常,对图像的缩放处理都涉及水平方向的缩放处理和垂直方向的缩放处理,本实施例提供的图像缩放方法可以只用于处理水平方向的缩放处理,也可以只用于处理垂直方向的缩放处理,当然,较佳地,可以同时用于水平方向和垂直方向的缩放处理。
当需要完成水平方向的缩放处理时,在本步骤中,接收并解析出的图像的原始分辨率包括水平分辨率,满足当前缩放要求的缩放倍数比包括水平方向的缩放倍数比,比如,硬件接收并解析出原始的水平分辨率为640,水平方向的缩放倍数比为2,也就是说,将水平分辨率640的图像在水平方向上放大2倍到1280。同理,当需要完成垂直方向的缩放处理时,在本步骤中,接收并解析出的图像的原始分辨率包括垂直分辨率,满足当前缩放要求的缩放倍数比包括垂直方向的缩放倍数比。
需要说明的是,在现有技术中,当采用硬件方式来进行图像缩放处理时,由于硬件实现的特点,要求对图像进行缩放的倍数必须是整数倍,而无法进行小数倍的图像缩放处理,比如,对于原始的水平分辨率720需要放大到水平分辨率1920,放大倍数约为2.67的小数倍放大处理,现有技术的方法在硬件上无法实现。为了进一步提高在硬件上实现图像缩放处理的业务灵活性,本实施例也可以进一步实现小数倍的图像缩放处理。这样,在本步骤中,如果需要进行的是小数倍的缩放处理,那么,上述的缩放倍数比则不是一个整数值,而是包括三部分数值,即缩放前的比例值、缩放后的比例值、以及缩放前的比例值与缩放后的比例值两者中的较大者除以较小者后得到的小数倍数值中的整数部分。比如,对于上述的原始的水平分辨率720需要放大到水平分辨率1920,放大倍数约为2.67的小数倍放大处理,由于720/1920=9/24,因此,在本步骤中,接收并解析出的缩放倍数比则包括:缩放前的比例值9、缩放后的比例值24、以及24除以9所得到的2.67的整数部分2。
为了能够在硬件上实现该小数倍数的处理,本实施例采用的方法是将该小数倍数的缩放处理转化为多个整数倍数缩放处理的组合,该组合为该小数倍数值中的整数部分倍数和该整数部分倍数加1后的倍数,比如对于上述2.67倍放大处理,可以将其转化为2倍放大处理和3倍放大处理的组合。而为了保证该转化能够尽量满足图像缩放的高精度要求,则需要由硬件基于接收的原始分辨率和缩放倍数比进一步解析出上述组合中多个倍数的分配方式,即,确定出原始像素中有多少个像素(记为a类像素)需要进行上述整数部分倍数的缩放处理,多少个像素(记为b类像素)需要进行上述整数部分加1后的倍数的缩放处理。比如,对于水平分辨率从720放大到1920,由于其缩放倍数比中包括9、24、2,因此,需要确定对于一行的每9个原始像素中有多少个像素需要从1个放大到2个(即有多少个a类像素),多少个像素需要从1个放大到3个(即有多少个b类像素)。
具体地,在本步骤中,计算a类像素(对应上述整数部分倍数)和b类像素(对应上述整数部分加1后得到的倍数)的个数的一种可行的实现方法可以为:b类像素的个数=缩放前的比例值与缩放后的比例值中的较大者-(缩放的整数部分倍数值*缩放前的比例值与缩放后的比例值中的较小者),a类像素的个数=缩放前的比例值-b类像素的个数。仍以上述缩放倍数比包括9、24、2为例,b类像素的个数=24-9×2=6,a类像素的个数=9-6=3,也就是说,在一行的每9个原始像素中有3个原始像素需要进行2倍放大处理,有6个原始像素需要进行3倍放大处理。
步骤104:硬件确定解析出的缩放倍数比对应的步进长度,并根据解析出的缩放倍数比查找缩放系数表,确定该缩放倍数比对应的系数值。
在本步骤中,确定步进长度是为了在后续处理中能够根据步进长度确定每次滤波即低采样的缩小处理或高采样的放大处理所需要使用的原始像素的行/列。具体地,确定步进长度的一种可行的方法为:如果当前缩放要求为缩小时,则确定步进长度等于接收的缩放倍数比;如果当前缩放要求为放大时,则确定步进长度等于缩放倍数比的倒数。
如果在上述步骤103中,解析出的缩放倍数比为一个整数倍数值,那么,在本步骤104中,直接根据该整数倍数值确定步进长度和查找缩放系数表。如果在上述步骤103中,解析出的缩放倍数比中包括小数倍数值中的整数部分倍数,并且,进一步解析出了该整数部分倍数加1后得到的倍数,那么,在本步骤104中,则根据该两个倍数值分别确定步进长度和分别查找缩放系数表。
比如,缩放倍数比为缩小8倍,那么,则可以确定步进长度等于该缩放倍数比8,从表1所示的缩放系数表中查找到对应的系数值为0.25、0.25、0.25、0.25。
再如,缩放倍数比中包括上述的9、24、2,并进一步解析出还需要进行3倍放大处理,那么,则可以确定对应于倍数值2的步进长度为1/2,从表1所示的缩放系数表中查找到该倍数值2对应的系数值为从零相位开始的1和0.5;并且,还可以确定倍数值3的步进长度为1/3,从表1所示的缩放系数表中查找到该倍数值3对应的系数值为从零相位开始的1、0.66和0.33。
步骤105:硬件利用原始分辨率、确定出的系数值和步进长度对图像进行缩放。
本步骤的基本处理过程为:根据具体的缩放要求,利用确定出的步进长度控制每次参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与确定出的系数值进行乘累加,得到缩放处理后的行或列,重复执行,直至根据原始分辨率确定出当前的图像缩放处理完成。
下面详细描述本步骤在进行水平/垂直方向上的缩小/放大处理时的较佳的具体实现方案。
方案一、在当前缩放要求为在垂直方向上缩小时,在步骤103中接收到的原始分辨率则为垂直分辨率,本步骤实现图像在垂直方向上进行缩小处理的一种具体实现方案可以包括:
A1、确定缩放系数表中对应所述缩放倍数比的非零系数的个数,将步进长度指针指向第一行原始像素;B1、从步进长度指针指向的行开始取出与所述缩放倍数比相同行数的原始像素中的每一列原始像素,对于取出的每一列原始像素,使用该列中所述非零系数个数的原始像素的像素值与对应所述缩放倍数比的各个非零系数进行乘累加,得到每一列原始像素缩小处理后的像素值,然后根据步进长度更新步进长度指针所指向的原始像素的行,重复执行步骤B1,直至根据原始分辨率确定出完成垂直方向上的缩小处理;
举例来说,比如,当前缩放要求为将图像在垂直方向上缩小8倍,即缩放倍数比为8,那么,根据上述步骤104的处理过程则可以确定步进长度等于该缩放倍数比8,从表1所示的缩放系数表中查找到对应的系数值为0.25、0.25、0.25、0.25。这样,在本步骤105中,参见图2,首先执行上述A1的过程,确定出缩放系数表中对应所述缩放倍数比8的非零系数的个数为4,并且,将步进长度指针指向图像的第1行原始像素(a11...a1m);然后,执行上述步骤B1的过程,从步进长度指针指向的第1行开始取出缩放倍数比行数即8行的原始像素(第1~8行原始像素),取出该8行原始像素后,首先对于该8行原始像素中的第一列,使用该列中4个(非零系数个数)原始像素的像素值如图2中的a11、b11、c11和d11与缩放倍数比8对应的非零系数0.25、0.25、0.25、0.25进行乘累加,即a11×0.25+b11×0.25+c11×0.25+d11×0.25,得到该8行原始像素中的第一列8个像素缩小8倍处理后得到的一个像素的像素值(图2中所示的L11),对于所取出的8行原始像素中的后续每一列,都进行与上述第一列相同的处理,最终将前8行原始像素转变为垂直方向缩小8倍处理后的第1行像素;接着,由于步进长度为8,因此,将步进长度指针步进8,即步进长度指针从第1行原始像素步进8行指向第9行原始像素,再从步进长度指针指向的第9行开始取出缩放倍数比行数即8行的原始像素(第9~16行原始像素),取出该8行原始像素后的所有处理则与上述步进长度指针指向第1行原始像素时取出8行原始像素后的所有处理相同,从而将该第9~16行原始像素转变为垂直方向缩小8倍处理后的第2行像素;重复执行,直到根据原始的垂直分辨率确定出已经对整个图像完成了垂直方向上缩小8倍的处理。
方案二、在当前缩放要求为在水平方向上缩小时,在步骤103中接收到的原始分辨率则为水平分辨率,本步骤实现图像在水平方向上进行缩小处理的一种具体实现方案可以包括:
A2、确定缩放系数表中对应所述缩放倍数比的非零系数,将步进长度指针指向第一列原始像素;B2、从步进长度指针指向的列开始依次取出与所述缩放倍数比相同列数的原始像素中的每一行原始像素,对于取出的每一行原始像素,使用该行中所述非零系数个数的原始像素的像素值与对应所述缩放倍数比的各个非零系数进行乘累加,得到每一行原始像素缩小处理后的像素值;根据步进长度更新步进长度指针所指向的原始像素的列,重复执行步骤B2,直至根据原始分辨率确定出完成水平方向上的缩小处理。
对于该方案二,可以参照上述方案一的例子来理解,只是将上述方案一的例子中的行变为列,将列变为行,其余处理相同。
方案三、在当前缩放要求为在垂直方向上放大时,在步骤103中接收到的原始分辨率则为垂直分辨率,本步骤实现图像在垂直方向上进行放大处理的一种具体实现方案可以包括:
100、将步进长度指针指向第一行原始像素;101、在步进长度指针指向的行与其下一原始像素行之间插入所述缩放倍数比减1行像素,其中,步进长度指针指向的行中的每一个像素和插入的每一行像素的像素值的计算过程为:将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出上下原始像素行中对应位置处的各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数分别与抽取出的各相位上原始像素的像素值进行乘累加;将步进长度指针指向下一个原始像素行,重复执行步骤101,直至根据原始分辨率确定出完成垂直方向上的放大处理。
举例来说,比如,当前缩放要求为将图像在垂直方向上放大4倍,即缩放倍数比为4,那么,根据上述步骤104的处理过程则可以确定步进长度等于该缩放倍数比的倒数1/4,从表1所示的缩放系数表中查找到对应的系数值为从零相位开始的1、0.75、0.5、0.25。这样,在本步骤105中,首先执行上述100的过程,将步进长度指针指向图像的第1行原始像素(a11、a12、a13...a1m);然后,执行上述步骤101的过程,在步进长度指针指向的第1行与其下一个原始像素行即第2行之间插入3行(即缩放倍数比4减1行)像素,也就是说,原来第1行至第2行的1行原始像素空间变为了4行原始像素空间,也就是说,放大了4倍,在每插入一行时根据步进长度1/4对步进长度指针进行步进,直到插完该3行后,步进长度指针则指向了第2行原始像素,接着,在步进长度指针指向的第2行与其下一个原始像素行即第3行之间插入3行(即缩放倍数比4减1行)像素,在每插入一行时根据步进长度1/4对步进长度指针进行步进,直到插完该3行后,步进长度指针则指向了第3行原始像素,以此类推,直至根据原始分辨率确定出完成垂直方向上的放大处理。
其中,在任意2个原始像素行之间插入3行像素的处理是类似的,因此,这里仅以在原始像素的第4行与第5行之间插入3行像素的处理为例,从当前步进长度指针指向的该原始像素的第4行中每一个像素开始,计算其像素值再到插入的第1行中每一个像素的像素值,以此类推,直至插入的第3行中每一个像素的像素值,每一个像素值的计算过程为:参见图3和图4,以计算指向的第4行中的第1个像素为例,将该行原始像素d11设置在零相位上,将当前缩放倍数比4对应的从零相位开始的各个相位的系数以零相位处的系数1为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值,从而最终得到涉及的系数值包括0.25、0.5、0.75、1、0.75、0.5、0.25,以零相位处的系数1为中心,抽取出上下原始像素行中对应位置处的各原始像素所处相位上的非0系数(参见图4,此时除了零相位处的系数1外没有非0系数),因此,乘累加的结果为d11×1=d11,故该位置上的像素值为d11;再以计算插入的第一行中的第1个像素的像素值L11为例,将该像素L11设置在零相位上,将当前缩放倍数比4对应的从零相位开始的各个相位的系数以零相位处的系数1为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值,从而最终得到涉及的系数值包括0.25、0.5、0.75、1、0.75、0.5、0.25,以零相位处的系数1为中心,抽取出上下原始像素行中对应位置处的各原始像素所处相位上的非0系数,参见图5,此时抽取出的是原始像素d11对应的系数值0.75和e11对应的系数值0.25,因此,乘累加的结果为插入的像素值L11=d11×0.75+e11×0.25。
方案四、在当前缩放要求为在水平方向上放大时,在步骤103中接收到的原始分辨率则为水平分辨率,本步骤实现图像在水平方向上进行放大处理的一种具体实现方案可以包括:
200、将步进长度指针指向第一列原始像素;201、在步进长度指针指向的列与其下一列之间插入所述缩放倍数比减1列像素,其中,步进长度指针指向的列中的每一个像素和插入的每一列像素的像素值的计算过程为:将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右原始像素列中对应位置处的各原始像素所处相位上的非0系数,,将抽取出的各相位上的非0系数分别与抽取出的各相位上原始像素的像素值进行乘累加;将步进长度指针指向下一个原始像素列,重复执行步骤201,直至根据原始分辨率确定出完成水平方向上的放大处理。
对于该方案四,可以参照上述方案三的例子来理解,只是将上述方案三的例子中的列变为行,将行变为列,其余处理相同。
需要说明的是,由于本实施例提供的图像缩放方法可以只用于处理水平方向的缩放处理,也可以只用于处理垂直方向的缩放处理,当然,较佳地,还可以同时用于水平方向和垂直方向的缩放处理,因此,本发明实施例提供的图像缩放的处理实际上可以包括上述的方案一至方案四中的任意一种方案,或者是任意几种方案的组合。
还需要说明的是,上述4个方案均以缩放倍数比为一个整数为例说明步骤105在各种缩放要求下的完整实现流程。如果当前缩放要求为在垂直/水平方向上进行小数倍数的缩小/放大处理时,根据在步骤104中的描述可以知道,本实施例是将该小数倍数的缩放处理转化为该小数倍数值中整数部分倍数与该整数部分倍数加1后得到的倍数的组合的间插缩放处理,因此,在上述4个方案中,是利用该整数部分倍数对应的步进长度控制参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与对应该整数部分倍数的各个系数值进行乘累加,并间插进行利用该整数部分倍数加1后得到倍数对应的步进长度控制参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与对应该整数部分倍数加1后得到倍数的各个系数值进行乘累加,以得到缩放处理后的行或列,直至根据原始分辨率确定出当前的图像缩放处理完成。
具体地,两种倍数间插缩放处理的一种可行的实现过程包括:根据原始分辨率,将一行/列中每缩放前的比例值个像素进行如下步骤300至301的处理,
300、先根据小数倍数值中整数部分倍数对应的步进长度以及系数值对当前待处理的像素进行缩放处理,再根据该整数部分倍数加1后得到倍数所对应的步进长度以及系数值对当前待处理的像素进行缩放处理,返回步骤300,直至执行步骤300的次数等于在步骤104中计算出的a和b中的较小者;
301、确定在步骤104中计算出的a和b中的较大者对应的倍数值,利用该倍数值对应的步进长度以及系数值对于剩余的当前待处理的像素进行缩放处理。
为了更加清楚地体现上述间插缩放处理的过程,以步骤104中举例的原始水平分辨率720需要放大到水平分辨率1920,放大倍数约为2.67的小数倍放大处理为例,在步骤104中,已经确定出需要将该2.67倍的放大处理转换为2倍放大处理和3倍放大处理的组合,并且,在一行的每9个原始像素中进行2倍放大处理的a类像素的个数为3,进行3倍放大处理的b类像素的个数为6,因此,在本步骤105中,是将图像的每一行原始像素间插进行2倍放大和3倍放大,具体地,结合上述方案四,首先将步进长度指针指向第一列原始像素;对于第1列(每一行的第1个)原始像素进行放大2倍的处理,具体处理的方法采用方案四中描述的在相邻两列之间插入1列像素的实现过程,然后执行一次间插,即,对于第2列(每一行的第2个)原始像素进行放大3倍的处理,具体处理的方法采用方案四中描述的在相邻两列之间插入2列像素的实现过程,对于后续的每2列原始像素按照上述第1列放大2倍且第2列放大3倍的间插处理原理进行间插放大,直至执行间插的次数等于a和b中的较小者a(3次),此时,已执行到该前9列原始像素中的第6列,对于剩余的3列则进行放大a和b中的较大者即放大3倍的处理,即在第7、8、9列的每2列原始像素间插入2列像素,具体处理的方法采用方案四中描述的在相邻两列之间插入2列像素的实现过程,至此,前9列原始像素则完成了间插2倍放大和3倍放大的处理,对于下一个9列原始像素,按照上述前9列原始像素的处理方式执行间插2倍放大和3倍放大的处理,直至根据原始分辨率720确定出完成了整个图像的缩放处理。
另外,本发明实施例还提出了一种对图像进行缩放的装置。参见图6,该装置包括:
缩放参数解析单元,接收并解析原始分辨率和满足当前缩放要求的缩放倍数比,将该原始分辨率输出至步进控制单元,将该缩放倍数比分别输出至滤波系数生成单元和步进控制单元;
滤波系数生成单元,加载预先生成的缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值,根据缩放倍数比查找缩放系数表,确定缩放倍数比对应的系数值,并将确定的系数值输出至滤波执行单元;
步进控制单元,根据接收到的缩放倍数比确定步进长度,利用接收的原始分辨率和确定出的步进长度控制每次步进到滤波执行单元中的原始像素的行或列;
滤波执行单元,将步进的行或列中的原始像素的像素值与接收到的系数值进行乘累加,得到并输出缩放处理后的行或列。。
在本发明实施例提出的装置中,步进控制单元确定步进长度的一种可行的操作为:在当前缩放要求为缩小时,确定步进长度等于接收的缩放倍数比,在当前缩放要求为放大时,确定步进长度等于所述缩放倍数比的倒数。
本实施例提供的图像缩放装置可以是只用于处理水平方向缩放处理的装置,也可以是只用于处理垂直方向缩放处理的装置,当然,较佳地,该装置可以同时用于完成水平方向和垂直方向的缩放处理。
当本实施例提供的图像缩放装置完成水平方向的缩小处理时,
所述步进控制单元,用于根据接收到的步进长度,首先将步进长度指针指向第一列原始像素,后续则根据步进长度更新步进长度指针所指向的原始像素的列;以及从步进长度指针指向的列开始依次取出与所述缩放倍数比相同列数的原始像素中的每一行原始像素,依次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,用于确定缩放系数表中对应所述缩放倍数比的非零系数,将该各个非零系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与每次接收到的各个原始像素的像素值进行乘累加,并输出各次乘累加运算后得到的像素列。
当本实施例提供的图像缩放装置完成水平方向的放大处理时,
所述步进控制单元,从第一列原始像素开始,将步进长度指针依次指向下一个原始像素列;以及将步进长度指针指向的每一列中的原始像素分各次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,对于步进长度指针指向的像素列中的每一个像素以及需要插入到步进长度指针指向的像素列与其下一列之间的所述缩放倍数比减1列中的每一个像素,将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右原始像素列中对应位置处的各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与该系数值对应相位上的各个原始像素的像素值进行乘累加,得到当前待计算的像素的像素值,并输出最终形成的每一列像素值。
当本实施例提供的图像缩放装置完成垂直方向的缩小处理时;
所述步进控制单元,用于根据接收到的步进长度,首先将步进长度指针指向第一行原始像素,后续则根据步进长度更新步进长度指针所指向的原始像素的行;以及从步进长度指针指向的行开始依次取出与所述缩放倍数比相同行数的原始像素中的每一列原始像素,依次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,用于确定缩放系数表中对应所述缩放倍数比的非零系数,将该各个非零系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与每次接收到的各个原始像素的像素值进行乘累加,并输出各次乘累加运算后得到的像素行。
当本实施例提供的图像缩放装置完成垂直方向的放大处理时,
所述步进控制单元,从第一行原始像素开始,将步进长度指针依次指向下一个原始像素行;以及将步进长度指针指向的每一行中的原始像素分各次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,对于步进长度指针指向的像素行中的每一个像素以及需要插入到步进长度指针指向的像素行与其下一行之间的所述缩放倍数比减1行中的每一个像素,将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出上下原始像素行中对应位置处的各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与该系数值对应相位上的各个原始像素的像素值进行乘累加,得到当前待计算像素的像素值,并输出最终形成的每一行像素值。
较佳地,利用本实施例提供的图像缩放处理装置能够处理小数倍的图像缩放,具体地思想是将小数倍的缩放处理转换为多个整数倍的缩放处理的组合,一种可行的实现方式包括:
所述缩放参数解析单元,在解析出满足当前缩放要求的缩放倍数比中包括缩放前的比例值、缩放后的比例值以及第一倍数值时,该第一倍数值为缩放前的比例值与缩放后的比例值两者中的较大者除以较小者后得到的小数倍数值中的整数部分,将第一倍数值加1得到第二倍数值,并进一步将该第二倍数值输出至所述滤波系数生成单元和所述步进控制单元;
所述滤波系数生成单元,根据第一倍数值和第二倍数值分别查找缩放系数表,确定与该两个倍数值分别对应系数值,并分别输出至所述滤波执行单元;
所述步进控制单元,确定接收到的第一倍数值和第二倍数值分别对应的步进长度,利用第一倍数值对应的步进长度和第二倍数值对应的步进长度间插控制步进到滤波执行单元中的原始像素的行或列;
所述滤波执行单元,将步进的行或列中的原始像素的像素值与对应第一倍数值的各个系数值进行乘累加,并间插进行将步进的行或列中的原始像素的像素值与对应第二倍数值的各个系数值进行乘累加,以得到并输出缩放处理后的行或列。
在本发明实施例中,进行图像缩放处理的装置可以为可编程逻辑器件,比如FPGA。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种对图像进行缩放的方法,其特征在于,该方法包括:
A、加载预先生成的缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值;
B、接收原始分辨率和满足当前缩放要求的缩放倍数比;
C、根据缩放倍数比查找缩放系数表,确定缩放倍数比对应的步进长度以及系数值;
D、利用确定出的步进长度控制每次参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与确定出的系数值进行乘累加,得到缩放处理后的行或列,直至根据原始分辨率确定出当前的图像缩放处理完成,
其中,所述步骤D包括:
A1、当所述原始分辨率为垂直分辨率,所述当前缩放要求为在垂直方向上缩小时,确定缩放系数表中对应所述缩放倍数比的非零系数的个数,将步进长度指针指向第一行原始像素;B1、从步进长度指针指向的行开始取出与所述缩放倍数比相同行数的原始像素中的每一列原始像素,对于取出的每一列原始像素,使用该列中所述非零系数个数的原始像素的像素值与对应所述缩放倍数比的各个非零系数进行乘累加,得到每一列原始像素缩小处理后的像素值,然后根据步进长度更新步进长度指针所指向的原始像素的行,重复执行步骤B1,直至根据原始分辨率确定出完成垂直方向上的缩小处理;
和/或,
A2、当所述原始分辨率为水平分辨率,所述当前缩放要求为在水平方向上缩小时,确定缩放系数表中对应所述缩放倍数比的非零系数,将步进长度指针指向第一列原始像素;B2、从步进长度指针指向的列开始依次取出与所述缩放倍数比相同列数的原始像素中的每一行原始像素,对于取出的每一行原始像素,使用其中各个原始像素与对应所述缩放倍数比的各个非零系数进行乘累加,得到该行原始像素缩小处理后的像素值;根据步进长度更新步进长度指针所指向的原始像素的列,重复执行步骤B2,直至根据原始分辨率确定出完成水平方向上的缩小处理;
和/或,
100、当所述原始分辨率为垂直分辨率,所述当前缩放要求为在垂直方向上放大时,将步进长度指针指向第一行原始像素;101、在步进长度指针指向的行与其下一行之间插入所述缩放倍数比减1行像素,其中,步进长度指针指向的行中的每一个像素和插入的每一行像素的像素值的计算过程为:将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出上下原始像素行中对应位置处的各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数分别与抽取出的各相位上原始像素的像素值进行乘累加;将步进长度指针指向下一个原始像素行,重复执行步骤101,直至根据原始分辨率确定出完成垂直方向上的放大处理;
和/或,
200、当所述原始分辨率为水平分辨率,所述当前缩放要求为在水平方向上放大时,将步进长度指针指向第一列原始像素;201、在步进长度指针指向的列与其下一列之间插入所述缩放倍数比减1列像素,其中,步进长度指针指向的列中的每一个像素和插入的每一列像素的像素值的计算过程为:将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右原始像素列中对应位置处的各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数分别与抽取出的各相位上原始像素的像素值进行乘累加;将步进长度指针指向下一个原始像素列,重复执行步骤201,直至根据原始分辨率确定出完成水平方向上的放大处理。
2.根据权利要求1所述的方法,其特征在于,在步骤C中,所述确定缩放倍数比对应的步进长度的步骤包括:
当前缩放要求为缩小时,确定步进长度等于接收的缩放倍数比;
和/或,
当前缩放要求为放大时,确定步进长度等于所述缩放倍数比的倒数。
3.根据权利要求1至2中任意一项所述的方法,其特征在于,在当前缩放为小数倍缩放时,在步骤B接收的缩放倍数比中包括:缩放前的比例值、缩放后的比例值以及第一倍数值,该第一倍数值为缩放前的比例值与缩放后的比例值两者中的较大者除以较小者后得到的小数倍数值中的整数部分;
所述步骤C包括:利用所述第一倍数值以及该第一倍数值加1后得到的第二倍数值分别查找缩放系数表,确定与该两个倍数值分别对应的步进长度以及系数值;
所述步骤D包括:利用第一倍数值对应的步进长度控制参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与对应第一倍数值的各个系数值进行乘累加,并间插进行利用第二倍数值对应的步进长度控制参与缩放的原始像素的行或列,将参与缩放的原始像素的行或列中的原始像素的像素值与对应第二倍数值的各个系数值进行乘累加,以得到缩放处理后的行或列,直至根据原始分辨率确定出当前的图像缩放处理完成。
4.根据权利要求3所述的方法,其特征在于,该方法进一步包括:计算对应第二倍数值的b类像素的个数=缩放前的比例值与缩放后的比例值中的较大者-(缩放的整数部分倍数值*缩放前的比例值与缩放后的比例值中的较小者),对应第一倍数值的a类像素的个数=缩放前的比例值-b类像素的个数;
在步骤D中,所述间插的方法包括:根据所述原始分辨率,将一行/列中每缩放前的比例值个像素进行步骤300至301的处理,
300、先根据第一倍数值对应的步进长度以及系数值对当前待处理的像素进行缩放处理,再根据第二倍数值对应的步进长度以及系数值对当前待处理的像素进行缩放处理,返回步骤300,直至执行步骤300的次数等于所述a和b中的较小者;
301、确定所述a和b中的较大者对应的倍数值,利用该倍数值对应的步进长度以及系数值对于剩余的当前待处理的像素进行缩放处理。
5.一种对图像进行缩放的装置,其特征在于,该装置包括:
缩放参数解析单元,接收并解析原始分辨率和满足当前缩放要求的缩放倍数比,将该原始分辨率输出至步进控制单元,将该缩放倍数比分别输出至滤波系数生成单元和步进控制单元;
滤波系数生成单元,加载预先生成的缩放系数表,该缩放系数表中包括多种缩小倍数分别对应的离散的系数值以及多种放大倍数分别对应的离散的系数值,根据缩放倍数比查找缩放系数表,确定缩放倍数比对应的系数值,并将确定的系数值输出至滤波执行单元;
步进控制单元,根据接收到的缩放倍数比确定步进长度,利用接收的原始分辨率和确定出的步进长度控制每次步进到滤波执行单元中的原始像素的行或列;
滤波执行单元,将步进的行或列中的原始像素的像素值与接收到的系数值进行乘累加,得到并输出缩放处理后的行或列,
其中,当该装置完成水平方向的缩放处理时:
所述步进控制单元,用于根据接收到的步进长度,首先将步进长度指针指向第一列原始像素,后续则根据步进长度更新步进长度指针所指向的原始像素的列;以及从步进长度指针指向的列开始依次取出与所述缩放倍数比相同列数的原始像素中的每一行原始像素,依次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,用于确定缩放系数表中对应所述缩放倍数比的非零系数,将该各个非零系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与每次接收到的各个原始像素的像素值进行乘累加,并输出各次乘累加运算后得到的像素列;
和/或,
所述步进控制单元,从第一列原始像素开始,将步进长度指针依次指向下一个原始像素列;以及将步进长度指针指向的每一列中的原始像素分各次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,对于步进长度指针指向的像素列中的每一个像素以及需要插入到步进长度指针指向的像素列与其下一列之间的所述缩放倍数比减1列中的每一个像素,将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右两侧各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与该系数值对应相位上的各个原始像素的像素值进行乘累加,得到当前待计算的像素的像素值,并输出最终形成的每一列像素值,
当该装置完成垂直方向的缩放处理时:
所述步进控制单元,用于根据接收到的步进长度,首先将步进长度指针指向第一行原始像素,后续则根据步进长度更新步进长度指针所指向的原始像素的行;以及从步进长度指针指向的行开始依次取出与所述缩放倍数比相同行数的原始像素中的每一列原始像素,依次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,用于确定缩放系数表中对应所述缩放倍数比的非零系数,将该各个非零系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与每次接收到的各个原始像素的像素值进行乘累加,并输出各次乘累加运算后得到的像素行;
和/或,
所述步进控制单元,从第一行原始像素开始,将步进长度指针依次指向下一个原始像素行;以及将步进长度指针指向的每一行中的原始像素分各次输入到所述滤波执行单元中;且,
所述滤波系数生成单元,对于步进长度指针指向的像素行中的每一个像素以及需要插入到步进长度指针指向的像素行与其下一行之间的所述缩放倍数比减1行中的每一个像素,将当前待计算的像素设置在零相位上,将所述缩放倍数比对应的从零相位开始的各个相位的系数以零相位处的系数为中心展开,并以左右对称的方式补充得到零相位左侧的各个相位的系数值;以零相位处的系数为中心,抽取出左右两侧各原始像素所处相位上的非0系数,将抽取出的各相位上的非0系数输出至所述滤波执行单元;且,
所述滤波执行单元,用于将接收到的各个系数值与该系数值对应相位上的各个原始像素的像素值进行乘累加,得到当前待计算像素的像素值,并输出最终形成的每一行像素值。
6.根据权利要求5所述的装置,其特征在于,所述步进控制单元在当前缩放要求为缩小时,确定步进长度等于接收的缩放倍数比,在当前缩放要求为放大时,确定步进长度等于所述缩放倍数比的倒数。
7.根据权利要求5所述的装置,其特征在于,所述缩放参数解析单元,在解析出满足当前缩放要求的缩放倍数比中包括缩放前的比例值、缩放后的比例值以及第一倍数值时,该第一倍数值为缩放前的比例值与缩放后的比例值两者中的较大者除以较小者后得到的小数倍数值中的整数部分,将第一倍数值加1得到第二倍数值,并进一步将该第二倍数值输出至所述滤波系数生成单元和所述步进控制单元;
所述滤波系数生成单元,根据第一倍数值和第二倍数值分别查找缩放系数表,确定与该两个倍数值分别对应系数值,并分别输出至所述滤波执行单元;
所述步进控制单元,确定接收到的第一倍数值和第二倍数值分别对应的步进长度,利用第一倍数值对应的步进长度和第二倍数值对应的步进长度间插控制步进到滤波执行单元中的原始像素的行或列;
所述滤波执行单元,将步进的行或列中的原始像素的像素值与对应第一倍数值的各个系数值进行乘累加,并间插进行将步进的行或列中的原始像素的像素值与对应第二倍数值的各个系数值进行乘累加,以得到并输出缩放处理后的行或列。
8.根据权利要求5至7中任意一项所述的装置,其特征在于,该图像处理装置为可编程逻辑器件。
CN2009100762752A 2009-01-08 2009-01-08 一种对图像进行缩放的方法和装置 Active CN101465954B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2009100762752A CN101465954B (zh) 2009-01-08 2009-01-08 一种对图像进行缩放的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2009100762752A CN101465954B (zh) 2009-01-08 2009-01-08 一种对图像进行缩放的方法和装置

Publications (2)

Publication Number Publication Date
CN101465954A CN101465954A (zh) 2009-06-24
CN101465954B true CN101465954B (zh) 2010-08-25

Family

ID=40806288

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2009100762752A Active CN101465954B (zh) 2009-01-08 2009-01-08 一种对图像进行缩放的方法和装置

Country Status (1)

Country Link
CN (1) CN101465954B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049227B (zh) * 2011-10-17 2016-04-13 山东新北洋信息技术股份有限公司 图像缩放打印控制方法及装置和打印系统
CN102750667A (zh) * 2011-11-21 2012-10-24 新奥特(北京)视频技术有限公司 一种图像快速缩放的方法和装置
KR102248789B1 (ko) * 2014-10-07 2021-05-06 삼성전자 주식회사 이미지 해상도에 따라 리소스를 공유할 수 있는 애플리케이션 프로세서와 이를 포함하는 장치들
CN107707820A (zh) * 2017-09-29 2018-02-16 中国科学院长春光学精密机械与物理研究所 基于fpga的航空相机实时电子变倍系统
CN110855880B (zh) * 2019-10-24 2021-07-20 成都品果科技有限公司 筛选图像取景区域宽高比例方法及装置
CN113052762A (zh) * 2019-12-27 2021-06-29 西安诺瓦星云科技股份有限公司 图像缩放处理方法及装置、图像缩放处理系统
CN111275615B (zh) * 2020-01-08 2023-05-26 深圳市爱协生科技股份有限公司 基于双线性插值改进的视频图像缩放方法
CN111654627B (zh) * 2020-06-09 2021-11-26 展讯通信(上海)有限公司 一种数字变焦方法、装置、设备及存储介质
CN113763250B (zh) * 2021-09-10 2023-09-01 四川创安微电子有限公司 一种自适应图像缩放处理方法及系统
CN114792352B (zh) * 2022-06-22 2022-09-20 成都玖锦科技有限公司 一种频谱图像处理方法和系统

Also Published As

Publication number Publication date
CN101465954A (zh) 2009-06-24

Similar Documents

Publication Publication Date Title
CN101465954B (zh) 一种对图像进行缩放的方法和装置
CN108229645B (zh) 卷积加速和计算处理方法、装置、电子设备及存储介质
KR100594073B1 (ko) 내장형 시스템의 디지털 영상 스케일링방법
CN103440121B (zh) 一种面向向量处理器的三角矩阵乘法向量化方法
CN104952037B (zh) 图像文件缩放方法与系统
CN110536078A (zh) 处理动态视觉传感器的数据的方法和动态视觉传感器
CN111523652A (zh) 处理器及其数据处理方法、摄像装置
CN101848319B (zh) 高精度计算的数字图像的分数阶微积分滤波器
CN102831576B (zh) 一种视频图像缩放方法及系统
JP2015511414A (ja) ビデオスケーラのリンギング低減
KR930001689A (ko) 이미지 버퍼를 이용한 전자 주밍 시스템
CN101276573B (zh) 通用图像缩放装置及通用图像缩放方法
CN111093045A (zh) 一种缩放视频序列分辨率的方法及装置
US20160284056A1 (en) Image processing apparatus and method
US20090087119A1 (en) Method and apparatus for arbitrary ratio image reduction
KR20000051198A (ko) 범용 영상 포맷 변환 장치
CN100534203C (zh) 一种获取白平衡校正参数的方法和图像处理装置
JP4409526B2 (ja) オプティカルフロープロセッサ
CN1949878A (zh) 在译码器上实施转换领域的舍入方法及其视讯译码器
KR100665485B1 (ko) 디지털 신호 처리 장치 및 디지털 신호 처리 방법
CN102333212B (zh) 一种双线性两倍上采样方法及系统
TWI799265B (zh) 超解析度裝置及方法
CN100455003C (zh) Ntsc制图像信号转换为pal制图像信号的插值算法
CN106788332A (zh) 一种多相插值滤波器及滤波方法
WO2014080649A1 (ja) 標本化レート変換装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: ZHEJIANG UNIVIEW TECHNOLOGY CO., LTD.

Free format text: FORMER OWNER: HUASAN COMMUNICATION TECHNOLOGY CO., LTD.

Effective date: 20120220

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20120220

Address after: Hangzhou City, Zhejiang province 310053 Binjiang District Dongxin Road No. 66 building two or three layer A C

Patentee after: Zhejiang Uniview Technology Co., Ltd.

Address before: 310053 Hangzhou hi tech Industrial Development Zone, Zhejiang province science and Technology Industrial Park, No. 310 and No. six road, HUAWEI, Hangzhou production base

Patentee before: Huasan Communication Technology Co., Ltd.