共享硬件进行影像放大或缩小的方法及装置的制作方法

文档序号:2526372阅读:285来源:国知局
专利名称:共享硬件进行影像放大或缩小的方法及装置的制作方法
技术领域
本发明是关于影像处理的方法,尤其是关于共享硬件进行影像放大或縮小 的方法。
背景技术
随着多媒体的发展,人们对影像处理的需求遽增。而影像处理包含多种面
向,其中之一就是将输入影像做縮小(scaling down)或放大(scaling up)的动作(简 称影像縮放),而执行该功能的硬件则为一縮放器(scaler)。
对于影像縮放的应用,例如网络地图的影像縮放,常要求兼顾速度及精 确度,因此,如何进行影像縮放且尽可能达到实时而不失真的要求,则为一重 要课题。
然而,进行影像縮放的方法之一,举例而言,是将影像中的所有像素数据 完整储存于高容量的内存中,再配合高速处理器做运算。此举固然可取得最佳 化的影像,然而将大幅增加成本,并不符合业界实际需求。此外,业界对于所 述影像縮放的作法各有不同,甚至有将影像縮小与放大交由不同的硬件来执行 的作法,常使得硬件架构变得相当复杂而无效率。

发明内容
基于上述目的,本发明提供一种影像处理方法,可共享硬件进行影像放大 (scaling up)或縮小(scaling down),且其使用极少量的内存即可达到影像放大的 功能。该影像具有对应于一具有多个列及多个行的二维数组的多个像素。本发 明的方法包括提供一个列缓冲器,具有至少2N个储存位置、提供一第一变量 及一第二变量,用以配合该列缓冲器进行影像放大或縮小。其中,当进行影像 縮小时,执行一縮小程序,该縮小程序包括将对应该二维数组的一第k列的多 个像素依序储存于该列缓冲器的第1至第N个储存位置中、将对应该二维数组的一第k+l列第j行的像素储存于该第一变量中、将对应该二维数组的一第k+l 列第j+l行的像素储存于该第二变量中、使用一第一算法依照分别暂存于该列 缓冲器第j行、第j+l行、该第一变量以及该第二变量中的这些像素计算出一 第一新像素、输出该第一新像素、将上述储存于该第一变量中的该像素移位至 该行缓冲器中的第j个储存位置、将上述储存于该第二变量中的该像素移位至 该第一变量中、将对应该二维数组的一第k+l列第j+2行的一像素储存于该第
二变量中、使用该第一算法依照分别暂存于该列缓冲器第j+l行、第j+2行、
该第一变量以及该第二变量中的这些像素计算出一第二新像素,并输出该第二 新像素。再者,当进行影像放大时,执行一放大程序,该放大程序包括将对应
该二维数组的一第k列的多个像素依序储存于该列缓冲器的第1至第N个储存 位置中、将对应该二维数组的一第k+l列第j行的像素储存于该第一变量中、 将对应该二维数组的一第k+l列第j+l行的像素储存于该第二变量中、使用一 第二算法依照分别暂存于该列缓冲器第j行、第j+l行、该第一变量以及该第 二变量中的这些像素计算出一第一新列像素群,并输出该第一新列像素群、将 上述储存于该第一变量中的该像素移位至该行缓冲器中的第N+j个储存位置、 将上述储存于该第二变量中的该像素移位至该第一变量中、将对应该二维数组 的一第k+l列第j+2行的一像素储存于该第二变量中、使用该第二算法依照分 别暂存于该列缓冲器第j+l行、第j+2行、该第一变量以及该第二变量中的这 些像素计算出一第二新列像素群,并输出该第二新列像素群。其中当执行该放 大程序中的当将上述储存于该第一变量中的该像素移位至该行缓冲器中的第 N+j个储存位置的步骤时,更包括当j:N时,则使用该第二算法依照分别暂存 于该列缓冲器第j行、第j+l行、第N+j行、第N+j+l行的这些像素计算出至 少一第三新列像素群,并输出至少该第三新列像素群。
本发明又提供一种影像处理装置,可共享硬件进行影像放大或縮小,该影 像具有同上述的多个像素。本发明的装置包括一个列缓冲器,具有至少2N个 储存位置、 一第一变量、 一第二变量以及一縮放器。该縮放器用以配合该列缓 冲器及该第一、第二变量进行影像放大或縮小。该縮放器执行上述该縮小程序 以将影像縮小,且可执行上述该放大程序以将影像放大。


为让本发明的上述目的、特征和优点能更明显易懂,以下结合附图对本发 明的具体实施方式
作详细说明,其中
图1为现有技术中的影像处理器的架构图。
图2为依照本发明进行影像縮放的方法流程图。
图3a为依照本发明縮小程序的方法流程图。
图3b为进行本发明縮小程序前的像素与的后新像素的示意图。
图3c为进行本发明步骤S402中列缓冲器的储存数据示意图。
图3d为进行本发明步骤S404中列缓冲器的储存数据示意图。
图3e为进行本发明步骤S406中列缓冲器的储存数据示意图。
图4 a为依照本发明放大程序的方法流程图。
图4b为进行本发明放大程序前的像素与的后新像素的示意图。
图4c为进行本发明步骤S402中列缓冲器的储存数据示意图。
图4d为进行本发明步骤S404中列缓冲器的储存数据示意图。
图4e为进行本发明步骤S406中列缓冲器的储存数据示意图。
图4f为进行本发明步骤S418中列缓冲器的储存数据示意图。
主要组件符号说明
100 影像处理系统
101~影像源
102~列缓冲器
103-影像处理器
104~第一变量
105 显示装置
106 第二变量
108~縮放器
S202 S210 步骤
S302 S316 步骤
S402 S418步骤
D , DN D2N 储存位置
具体实施例方式
为了让本发明的目的、特征、及优点能更明显易懂,下文特举较佳实施例, 并配合所附图做详细的说明。本发明说明书提供不同的实施例来说明本发明不 同实施方式的技术特征。
图1为依照本发明的影像处理系统100的架构图。图中影像源101提供一 影像,该影像具有对应于一具有多个列与多个行(在本实施例中,举例而言,具
有M列N行)的二维数组的多个像素,而这些像素的格式可归类为YUV像素 格式及RGB格式等,以表达视频影像中的色彩浓度与信息。影像处理器103 接收来自影像源101的数据而对该影像进行各种影像处理功能,然而依据本发 明,本文仅就影像处理功能中的影像縮放功能做说明。影像处理器103中包括 一縮放器108,在本发明中可对该影像进行放大(scaling up)或縮小(scaling down) 的功能,有别于现有技术,其可共享硬件包括一个列缓冲器102、 一第一变量 104及一第二变量106等,如图1中所示。经该影像处理器103处理该影像后 产生一新影像,该新影像具有对应于一具有多个列及多个行(不限定是M列N 行)的二维数组的多个新像素,可输出至一显示装置105。
为了达成上述在进行影像放大或縮小时可共享硬件的目的,本发明又提供 一方法,如图2所示。该方法于步骤S202中提供一个列缓冲器102、步骤S204 中提供一第一变量104及一第二变量106,并于步骤S206中判断是进行影像放 大或是影像縮小。本方法又包括当进行影像縮小时,执行一縮小程序S208,以 及当进行影像放大时,执行一放大程序S210。
图3a表示图2中该縮小程序S208的方法流程图。图3b表示具有多个像 素的一影像示意图,在本实施例中,欲由该縮小程序S208所产生的新像素b,、 b2亦标示于图上以方便说明。当进行该縮小程序S208时,举例而言,可以双 线性内插法(bilinear)进行计算,例如,从图中像素<、akj+1、 ak+1j和ak+1j+1得一 第一新像素b,、从图中像素akjw、 akj+2、 ak"j+,和ak"j+2取得一第二新像素b2, 以此类推,集合所有的新像素可得到一縮小的新影像。当于步骤S302中,将 对应该二维数组的一第k列的多个像素a、、 ak2、 ak3、…、akj、 akj+1、 akj+2、… a、依序储存于该列缓冲器的多个储存位置D2、 D3、…Dj、 Dj+1、 Dj+2、…Dx中,如图3c所示(图中这些储存位置仅标示有N个,然而其数量不在此限)。 步骤S304中,将对应该二维数组的一第k+l列第j行的像素a"'j储存于该第 一变量104中,如图3d所示。并于步骤S306中,将对应该二维数组的一第k+l 列第j+l行的像素3"、+|储存于该第二变量106中。然而,值得注意的是,在 一般情况下,影像处理可从第1行第1列的一像素开始,但为了做更广义的说 明,本实施例则从第k行第j列开始,是以图3d中这些储存位置D,、 D2、 D3 至Dj.,已经和先前图3c中所这些储存位置储存的这些像素有所不同,原因容后 再述。步骤S308中,该縮放器108使用一第一算法,举例而言即前述的该双 线性内插法,依照分别暂存于Dj、 Dj+1、该第一变量104以及该第二变量106 中的这些像素akj 、 akj+l 、 ak+1j和ak+1j+1计算出一第一新像素b,(表示于图3b 中),并输出该第一新像素b,。接下来,于步骤S310中,将上述储存于该第一 变量104中的该像素ak+'j移位至该行缓冲器102中的第j个储存位置Dj,于步 骤S312中,将上述储存于该第二变量106中的该像素ak+'j+,移位至该第一变量 104中,并于步骤S314中,将对应该二维数组的一第k+l列第j+2行的一像素 a"'j+2储存于该第二变量106中,上述步骤S310、 S314、 S316可参考图3e所 示,至此,可说明图3d所这些储存位置D,、 D2、 D3到Dj.,所储存的这些像素 何以与图3c不同。之后,步骤S316与步骤S308相似,该縮放器108使用该 第一算法,同步骤S308的该双线性内插法,依照分别暂存于Dw、 Dw、该第 一变量104以及该第二变量106中的这些像素4+1 、 akj+2 、 ak+1j+1 、 ak+1j+2# 算出一第二新像素b2(表示于图3b中),并输出该第二新像素b2。从本实施例乃 从第k列第j行的该像素akj开始,虽仅列举计算两新像素bi 、 1)2的方法,然 而熟悉本技艺的人员当可依照本发明推广至所有像素(akj, lSk^M,l^jSN〉, 而产生一相对原影像縮小的新影像。
图4a表示图2中该放大程序210的方法流程图。图4b表示具有多个像素 的一影像示意图。当进行该放大程序S210时,举例而言,可以双线性内插法 (bilinear)进行计算,例如,从图中像素akj 、 akj+1 、 ak+1」和ak+1j+1得一第一新 列像素群B"又包括新像素bu、 b,2)及一第三新列像素群B3(又包括新像素b31、 b32),又从图中像素akj+1 、 akj+2 、 ak+1j+1和ak+1j+2取得一第二新像素B2(又包 括新像素b2l、 b22),及一第四新列像素群B4(又包括新像素b41、 b42),以此类推,集合所有像素以及新像素可得到一放大的新影像。当于步骤S402中,将对应 该二维数组的一第k列的多个像素a、、 ak2、 ak3、…、akj、 akj+1、 akj+2、…a、 依序储存于该列缓冲器的多个储存位置D,、 D2、 D3、…Dj、 Dj+1、 Dj+2、…Dn 中,如图4c所示,而Dn至D^亦有像素儲存,原因可由下述实施例中推知。 步骤S404中,将对应该二维数组的一第k+1列第j行的像素^"j储存于该第 一变量104中,如图4d所示。并于步骤S406中,将对应该二维数组的一第k+1 列第j+1行的像素ak+'j+,储存于该第二变量106中。然而,值得注意的是,在 一般情况下,影像处理可从第1行第1列的一像素开始,但为了做更广义的说 明,本实施例以从第k行第j列开始。步骤S408中,该縮放器108使用一第二 算法,举例而言,同前述的该双线性内插法,依照分别暂存于Dj、 D」+1、该第 一变量104以及该第二变量106中的这些像素akj 、 akj+1 、 ak+1j和ak+1j+1计算 出一第一新列像素群B,(又包括新像素bu、 bI2,表示于图4b中),并输出该第 一新像素B,。接下来,于步骤S410中,将上述储存于该第一变量104中的该 像素ak+'j移位至该行缓冲器102中的第N+j个储存位置DN+j,于步骤S412中, 将上述储存于该第二变量106中的该像素^+、+1移位至该第一变量104中,并 于步骤S414中,将对应该二维数组的一第k+l列第j+2行的一像素a"'j+2储存 于该第二变量106中,上述步骤S410、 S414、 S416可参考图4e。之后,步骤 S416与步骤S408相似,该縮放器108使用该第二算法,同步骤S408的该双线 性内插法,依照分别暂存于D;+I、 D;+2、该第一变量104以及该第二变量106 中的这些像素akj+1 、 akj+2 、 ak+1j+1 、 ak+1j+2计算出一第二新行像素B2(又包括 新像素b2,、 b22,表示于图4b中),并输出该第二新列像素群B2。在此必须进 一步说明,当进行影像放大时,使用内插法可由邻近的四个像素(如图4b中的 akj+1 、akj+2 、ak+1j+1 、 ^+1」+2)而产生本实施例中的四个新像素(如图4b中的b 、 b12、 b31、 b32),进而集合所有像素及新像素而达成影像放大的目的。然而,熟 悉本技艺人士可轻易了解,依照显示装置的影像扫描原理,新像素中位于同一 列者(如图4b中的bn、 b12、 b21、 b22)必需对该显示装置整列输出后,次列中的 新像素(如图4b中的b31、 b32、 b4l、 b42)才得以输出。故本发明在执行该放大程
序中储存次列像素的方式(如步骤S410)与縮小程序中的方式(如步骤S410)有所 不同。是以,如图4a中,当执行该放大程序中步骤S410的"当将上述储存于该第一变量中的该像素移位至该行缓冲器中的第N+j个储存位置"时,更包括
当j=N时,依照步骤S418,使用该第二算法依照分别暂存于该列缓冲器102 第J行、第j+l行、第N+j行、第N+j+l行的这些像素(akj 、akj+l、 ak+1』及ak+1j+1) 计算并输出至少一第三新列像素群B3(又包括新像素b31、 b32,表示于图4b中)。 值得注意的是,其它多个与该第三新列像素群处于同列的所有新像素(一第四新 列像素群B4中的新像素b4l、 b42即属于此)亦可以上述相似的方式一并计算并 输出,如图4f所示。从本实施例乃从第k列第j行的该像素akj开始,虽仅列 举计算两新列像素群B, 、 B2 、 B3及B4的方法,然而熟悉本技艺人士当可 依照本发明推广至所有像素{&、, lSk^M, 1SJ芸N),而产生一相对原影像放 大的新影像。
虽然本发明已以较佳实施例揭示如上,然其并非用以限定本发明,任何本 领域技术人员,在不脱离本发明的精神和范围内,当可作些许的修改和完善, 因此本发明的保护范围当以权利要求书所界定的为准。
权利要求
1.一种影像处理方法,可共享硬件进行影像放大或缩小;该影像具有对应于一具有多个列(M列)及多个行(N行)的二维数组的多个像素({akj,1≤k≤M,1≤j≤N}),该方法包括提供一个列缓冲器,具有至少2N个储存位置;提供一第一变量及一第二变量,用以配合该列缓冲器进行影像放大或缩小;以及当进行影像缩小时,执行一缩小程序,该缩小程序包括将对应该二维数组的一第k列的多个像素({akj,j=1,2,3,...N})依序储存于该列缓冲器的第1至第N个储存位置中;将对应该二维数组的一第k+1列第j行的像素(ak+1j)储存于该第一变量中;将对应该二维数组的一第k+1列第j+1行的像素(ak+1j+1)储存于该第二变量中;使用一第一算法依照分别暂存于该列缓冲器第j行、第j+1行、该第一变量以及该第二变量中的这些像素(akj、akj+1、ak+1j和ak+1j+1)计算出一第一新像素(bkj),并输出该第一新像素;将上述储存于该第一变量中的该像素移位至该行缓冲器中的第j个储存位置;将上述储存于该第二变量中的该像素移位至该第一变量中;将对应该二维数组的一第k+1列第j+2行的一像素(ak+1j+2)储存于该第二变量中;以及使用一第一算法依照分别暂存于该列缓冲器第j+1行、第j+2行、该第一变量以及该第二变量中的这些像素(akj+1、akj+2、ak+1j+1、ak+1j+2)计算出一第二新像素,并输出该第二新像素。
2. 如权利要求l所述的影像处理方法,其特征在于,当进行影像放大时,执行一放大程序,该放大程序包括将对应该二维数组的一第k列的多个像素((akj,』=1,2,3,..^})依序储存于 该列缓冲器的第1至第N个储存位置中;将对应该二维数组的一第k+l列第j行的像素(ak"j)储存于该第一变量中;将对应该二维数组的一第k+l列第j+l行的像素(^+1」+1)储存于该第二变使用一第二算法依照分别暂存于该列缓冲器第j行、第j+l行、该第一变量以及该第二变量中的这些像素(akj 、 akj+1 、 ak+1j和^+1」+1)计算出一第一新 列像素群,并输出该第一新列像素群;将上述储存于该第一变量中的该像素移位至该行缓冲器中的第N+j个储 存位置;将上述储存于该第二变量中的该像素移位至该第一变量中; 将对应该二维数组的一第k+l列第j+2行的像素(&"、+2)储存于该第二变 量中;以及使用该第二算法依照分别暂存于该列缓冲器第j+l行、第j+2行、该第一 变量以及该第二变量中的这些像素(aV, 、 akj+2 、 ak+1j+1 、 ^+、+2)计算出一第 二新列像素群,并输出该第二新列像素群。
3. 如权利要求2所述的影像处理方法,其特征在于,当执行该放大程序 中的当将上述储^于该第一变量中的该像素移位至该行缓冲器中的第N+j个 储存位置的步骤时,更包括当j:N时,则使用该第二算法依照分别暂存于该 列缓冲器第j行、第j+l行、第N+j行、第N+j+l行的这些像素(4 、akj+1、 ak+1j 及ak"j+,)计算出至少一第三新列像素群,并输出至少该第三新列像素群。
4. 如权利要求2所述的影像处理方法,其特征在于,该第一算法及第二 算法皆可使用双线性内插法。
5. 如权利要求1所述的影像处理方法,其特征在于,这些像素的格式为 YUV像素格式。
6. 如权利要求l所述的影像处理方法,其特征在于,这些像素的格式为 RGB像素格式。
7. —种影像处理装置,可共享硬件进行影像放大或縮小,可共享硬件进 行影像放大或縮小;该影像具有对应于一具有多个列(M列)及多个行(N行)的二维数组的多个像素((akj, 1^k^M, l^j^N}),该装置包括一个列缓冲器,具有至少2N个储存位置;一第一变量及一第二变量;以及一縮放器,用以配合该列缓冲器及该第一、第二变量进行影像放大或縮小; 其中,该縮放器执行一縮小程序以进行影像縮小,该縮小程序包括将对应该二维数组的一第k列的多个像素((akj,j-l,2,3,…N))依序储存于该 列缓冲器的第1至第N个储存位置中;将对应该二维数组的一第k+l列第j行的像素(ak+'」)储存于该第一变量中;将对应该二维数组的一第k+l列第j+l行的像教ak+'」+,)储存于该第二变量中;使用一第一算法依照分别暂存于该列缓冲器第j行、第j+l行、该第一变 量以及该第二变量中的这些像素(akj 、akj+1 、ak+1j和&^+1)计算出一第一新像素(1^), 并输出该第一新像素;将上述储存于该第一变量中的该像素移位至该行缓冲器中的第j个储存位置;将上述储存于该第二变量中的该像素移位至该第一变量中; 将对应该二维数组的一第k+l列第j+2行的像素(ak"j+2)储存于该第二变量中;以及使用一第一算法依照分别暂存于该列缓冲器第j+l行、第j+2行、该第一 变量以及该第二变量中的这些像素(4+1 、 ak」+2 、 ak+1j+1 、 ak+、+2)计算出一第二新像 素,并输出该第二新像素。
8.如权利要求7所述的影像处理装置,其特征在于,该縮放器执行一放 大程序以进行影像放大,该放大程序包括将对应该二维数组的一第k列的多个像素(^kj, j爿,2,3,…N))依序储存于该列缓 冲器的第1至第N个储存位置中;将对应该二维数组的一第k+l列第j行的像素(ak+'j)储存于该第一变量中; 将对应该二维数组的一第k+l列第j+l行的像素(ak+'j+,)储存于该第二变量中;使用一第二算法依照分别暂存于该列缓冲器第j行、第j+l行、该第一变量以及该第二变量中的这些像素(akj 、 akj+I 、 ak+1j和ak"jw)计算出一第一新列像素群, 并输出该第一新列像素群;将上述储存于该第一变量中的该像素移位至该行缓冲器中的第N+j个储存位置;将上述储存于该第二变量中的该像素移位至该第一变量中;将对应该二维数组的一第k+l列第j+2行的一像素(^+、+2)储存于该第二变量中;以及使用该第二算法依照分别暂存于该列缓冲器第j+l行、第j+2行、该第一变量 以及该第二变量中的这些像素(4+1 、 akj+2 、 ak+1」+1 、 ak+'j+2)计算出一第二新像素群, 并输出该第二新像素群。
9. 如权利要求8所述的影像处理装置,其特征在于,当该縮放器执行该 放大程序中的当将上述储存于该第一变量中的该像素移位至该行缓冲器中的 第N+j个储存位置的步骤时,更包括当j:N时,则使用该第二算法依照分别 暂存于该列缓冲器第j行、第j+l行、第N+j行、第N+j+l行的这些像素(4 、 aki+l、a"'j及ak"j+,)计算出一第三新列像素群,并输出该第三新列像素群。
10. 如权利要求8所述的影像处理装置,其特征在于,该第一算法及 该第二算法皆可使用双线性内插法。
11. 如权利要求7所述的影像处理装置,其特征在于,这些像素的格 式为YUV像素格式。
12. 如权利要求7所述的影像处理装置,其特征在于,这些像素的格 式为RGB像素格式。
全文摘要
本发明提供一种影像处理方法和装置,可共享硬件进行影像放大或缩小。本发明的装置包括一个列缓冲器、一第一变量、一第二变量和一缩放器。该缩放器用以配合该列缓冲器及该第一、第二变量进行影像放大或缩小。该缩放器执行一缩小程序以进行影像缩小,或执行一放大程序以进行影像放大。
文档编号G09G5/02GK101599260SQ20081003842
公开日2009年12月9日 申请日期2008年6月2日 优先权日2008年6月2日
发明者陈永纬 申请人:慧国(上海)软件科技有限公司;慧荣科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1