CN1269076C - 像素运算装置 - Google Patents

像素运算装置 Download PDF

Info

Publication number
CN1269076C
CN1269076C CNB018017355A CN01801735A CN1269076C CN 1269076 C CN1269076 C CN 1269076C CN B018017355 A CNB018017355 A CN B018017355A CN 01801735 A CN01801735 A CN 01801735A CN 1269076 C CN1269076 C CN 1269076C
Authority
CN
China
Prior art keywords
pixel
data
parts
pixel data
processing
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.)
Expired - Fee Related
Application number
CNB018017355A
Other languages
English (en)
Other versions
CN1383529A (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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Publication of CN1383529A publication Critical patent/CN1383529A/zh
Application granted granted Critical
Publication of CN1269076C publication Critical patent/CN1269076C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T5/00Image enhancement or restoration
    • G06T5/20Image enhancement or restoration using local operators

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Image Processing (AREA)

Abstract

本发明是用以执行滤波处理的像素运算装置,设有16个像素处理部分1~16及用以供给16个像素数据与滤波器系数的输入缓冲器群22;各像素处理部分,在用输入缓冲器群22供给的像素数据与滤波器系数进行运算后,从邻接的像素处理部分取得像素数据,用所取得的像素数据运算并将运算结果累积。通过重复进行这样的取得与累积操作,进行按重复次数而定的抽头数的滤波处理。

Description

像素运算装置
技术领域
本发明涉及像素运算装置,其中包括用以改变图像尺寸的滤波电路。
技术背景
近年,随着数字视频设备技术的显著发展,执行动画的缩小处理/放大处理、尺寸改变等操作的所谓媒体处理器已经进入了实用化阶段。
图像尺寸改变中,经常要用到FIR(finite impulse response:有限脉冲响应)滤波器。
图1为传统技术中的FIR滤波处理电路的框图。该图所示的是抽头数为7、系数对称的FIR滤波器。
图1中,由数据输入端1001按时序输入的数据,以延迟器1002、1003、1004、1005、1006、1007为序来转移。在滤波器系数对称的场合,即跟数据输入端的输入与各延迟器的输出(称为抽头)对应的系数相对于中央抽头(延迟器1004的输出)对称的场合,不用滤波器系数同各抽头的数据作乘法运算,而是在同系数抽头的数据之间作加法运算后再用系数去乘。
例如,数据输入部分1001的输入数据和延迟器1007的输出数据,在加法器1008上作加法运算,再在乘法器1008上将加法运算的结果跟系数h0相乘。延迟器1002的输出与延迟器1006的输出,在加法器1009上作加法运算,再在乘法器1009上将加算结果跟系数h1相乘。
乘法器1011~乘法器1014的各输出数据通过加法器1015相加。加法器1015的输出数据作为滤波处理结果在输出端1016以时序输出。系数h0~h3依据图像的缩小率确定。例如,如缩小率为1/2时,通过将时序的输出数据抽值至1/2,就可获得缩小的图像。
并且,之所以对称地选用滤波器系数,是因为通过获得线性相位(相位特性相对频率成直线关系)可使图像的视觉效果较为理想。
但是,在上述的传统方法中,对图像数据作滤波处理时,由于构成图像的像素数据在电路的结构上是以从头开始按序输入的,而用1个时钟脉冲可输入的为1个图像数据,要提高处理速度就必须提高工作频率。问题是,高的工作频率会提高成本并增加耗电。
并且,采用传统方法,由于每组抽头数的电路互不相同所以无自由度可言,而每组抽头数设置另外的电路又会使成本大大增加。
本发明的第一目的在于提供这样一种像素运算装置,其抽头数可设成可变,并可不提高频率地执行高速的滤波处理。
本发明的第二目的在于提供这样一种像素运算装置,该装置不仅可进行滤波处理,还可用来作MC(运动补偿)处理,从而可实现电路规模的小型化。
第三个目的在于提供这样一种像素运算装置,该装置不仅可进行滤波处理,还可用来作ME(运动预测)处理,可实现电路规模的小型化。
第四个目的在于提供这样一种像素运算装置,该装置不仅可进行滤波处理,还可用来在数字视频设备上作OSD(On Screen Display:在屏显示)处理,可实现电路规模的小型化。
发明的公开
达成上述第一个目的像素运算装置是执行滤波处理的像素运算装置,该装置设有N个像素处理部件、供给N个像素数据及滤波器系数的供给手段,以及使N个像素处理部件并行地动作的控制手段。
各像素处理部件,用由供给部件供给的像素数据与滤波器系数运算后,相对于各像素处理部件从邻接像素处理部件取得像素数据,再用所取得的像素数据进行运算并将运算结果累积。所述控制部件,对N个像素处理部件执行控制,使它们重复进行从邻接像素处理部件取得像素数据并用所取得的像素数据运算与累积的动作。
这里,所述N个像素处理部件由右移N个像素数据的第一移位器和左移N个像素数据的第二移位器构成。每个像素处理部件用从邻接的两个像素处理部件移出的两个像素数据进行运算。
根据这种结构,可将抽头数设为可变,并可不提高频率地执行高速的滤波处理。
达成上述第二目的像素运算装置,其作为像素数据的差分图像的像素数据与参照帧的像素数据均由供给装置供给。
这种结构不仅可用于滤波处理也可用于MC(运动补偿)处理,不需要单独设置滤波装置与MC电路,从而可实现电路规模的小型化。
附图的简单说明
图1是显示传统技术中执行FIR滤波处理的电路实例的框图。
图2是显示设有像素运算装置的媒体处理器的结构的框图。
图3是显示像素运算装置(POUA、POUB)结构的框图。
图4是显示像素并行处理部分左半部结构的框图。
图5是显示像素并行处理部分右半部结构的框图。
图6(a)是说明输入缓冲器群22详细结构的框图。
图6(b)是说明输入缓冲器群22内选择部分详细结构的框图。
图7是说明输出缓冲器群23详细结构的框图。
图8所示是在像素运算装置上进行滤波处理时像素数据的初始输入值。
图9是对于像素处理部分1的像素数据初始输入值的说明图。
图10是在像素处理部分1上进行滤波处理的运算过程。图11是在像素处理部分1上进行滤波处理的运算内容的说明图。
图12表示在像素运算装置上进行MC(运动补偿)处理(P图像)时的输入输出像素数据。
图13是关于MC处理中解码对象帧与参照帧的说明图。
图14表示在像素运算装置上进行MC处理(B图像)时的输入输出像素数据。
图15表示在像素运算装置上进行OSD(在屏显示)处理时的输入输出像素数据。
图16是关于在像素运算装置上进行OSD(在屏显示)处理的说明图。
图17表示在像素运算装置上进行ME(运动预测)处理时的输入输出像素数据。
图18是关于在像素运算装置上进行ME(运动预测)的说明图。
图19是表现媒体处理器中垂直滤波处理时数据流动的模式框图。
图20是垂直1/2缩小的说明图。
图21是传统技术中垂直1/2缩小的说明图。
图22是垂直1/4缩小的说明图。
图23是传统技术中垂直1/4缩小的说明图。
图24是表现媒体处理器中垂直滤波处理时的数据流动的另一模式框图。
图25是关于解码处理与垂直滤波处理之间同步关系的说明图。
图26是垂直1/2缩小的说明图。
图27是垂直1/4缩小的说明图。
图28是像素并行处理部分左半部的第一改型实施例的示图。
图29是像素并行处理部分右半部的第一改型实施例的示图。
图30是像素并行处理部分左半部的第二改型实施例的示图。
图31是像素并行处理部分右半部的第二改型实施例的示图。
图32是像素并行处理部分左半部的第三改型实施例的示图。
图33是像素并行处理部分右半部的第三改型实施例的示图。
图34是像素处理装置的改型实施例的示图。
本发明的最佳实施例
本发明像素运算装置,具有主要用以可选择地执行下列处理的结构:(a)用于图像放大/缩小的滤波处理;(b)运动补偿(MovingCompensation,以下称MC)处理;(c)OSD(On Screen Display:在屏显示)处理;以及(d)运动预测(Moving Estimation,以下称ME)处理。就(a)滤波处理而言,在像素运算装置中,不固定抽头数,使之成为可变,并行地处理在水平方向或垂直方向连续的多个像素(例如16个像素)。再有,垂直方向的滤波处理与压缩动画数据的扩展处理同步进行。
以下,就本发明的实施例中的像素运算装置按下列顺序进行说明。
1媒体处理器的结构
1.1像素运算装置的结构
1.2像素并行处理部分的结构
2.1滤波处理
2.2 MC(运动补偿)处理
2.3 OSD(在屏显示)处理
2.4 ME(运动预测)处理
3.1垂直滤波处理(其一)
3.1.1 1/2缩小
3.1.2 1/4缩小
3.2垂直滤波处理(其二)
3.2.1 1/2缩小
3.2.2 1/4缩小
4改型实施例
<1媒体处理器的结构>
以下说明内装媒体处理器的本实施例的像素运算装置的情况,媒体处理器用于执行压缩声音动画数据的扩展处理、声音动画数据的压缩处理等媒体处理。媒体处理器可实际安装在用以接收例如数字化电视广播的机顶盒、电视接收机、DVD录放机等部件上。
图2是表现设有像素运算装置的媒体处理器结构的框图。该图所示的媒体处理器200设有:双端口存储器100、流部件(streamunit)201、输入输出缓冲器(以下简称为I/O缓冲器)202、调定处理器203、位流FIFO 204、可变长度解码器部分(VLD)205、变换引擎(Transfer Engine,以下称TE)206、像素运算装置A(以下称POUA)207、像素运算装置B(以下称POUB)208、POUC 209、音频部件210、输入输出处理器(以下称IOP)211、视频缓冲存储器212、视频部件213、主部件214、RE 215及滤波器部分216。
双端口存储器100设有:对外部存储器220的输入输出端口(以下称外部端口)、对媒体处理器200内部的输入输出端口(以下称内部端口)及高速缓冲存储器;该双端口存储器从内部端口接收来自媒体处理器200内各构成部件中那些在外部存储器220上读写数据的构成部件(以下称主设备)的存取请求,并根据所接收的存取请求访问外部存储器220。这时,双端口存储器100将外部存储器220中的一部分数据,高速缓冲存储在内部的高速缓冲存储器中。并且,外部存储器220采用SDRAM或RDRAM等存储器,用以暂时存储压缩动画数据、压缩声音数据、解码后的声音数据以及解码后的动画数据等。
流部件201输入来自外部的流数据(即所谓MPEG流),将输入的流数据分离为视频单元流和音频单元流,并将它们分别写入I/O缓冲器202。
I/O缓冲器202是将视频单元流、音频单元流及音频数据(经扩展的音频数据)暂时保存的缓冲存储器。视频单元流、音频单元流分别从流部件201存储到I/O缓冲器202中,再通过IOP 211的控制经由双端口存储器100存入外部存储器220。音频数据通过IOP 211的控制从外部存储器220经由双端口存储器100存储到I/O缓冲器202中。
调定处理器(setup processor)203执行音频单元流解码(扩展)和视频单元流的宏块的标题分析。音频单元流和视频单元流,通过IOP 211的控制从外部存储器220经由双端口存储器100转移到位流FIFO 204。调定处理器203从位流FIFO 204读取音频单元流并解码,再将解码后的音频数据存入调定存储器(setup memory)217。调定存储器217内的音频数据通过IOP 211经由双端口存储器100转移到外部存储器220。并且,调定处理器203从位流FIFO 204读取视频单元流并作宏块标题分析,然后将分析结果通知VLD 205。
位流FIFO 204是FIFO存储器,它将视频单元流供给可变长度解码器部分205,并将音频单元流供给调定处理器203。视频单元流和音频单元流,通过IOP 211的控制从外部存储器220经由双端口存储器100转移到位流FIFO 204。
VLD 205,对位流FIFO 204提供的视频单元流中所包含的可变长代码进行解码。该解码结果即为宏块单位的DCT系数群。
TE 206,对于VLD 205的解码结果以宏块单位进行IQ(反量子化)处理与IDCT(反DCT)处理。上述处理的结果即为宏块。一个宏块由4个辉度块(Y1~Y4)与2个色差块(Cb、Cr)构成。一个块等于8×8个像素。但是,对于P图像与B图像,一个块以8×8个差分值的形式从TE 206输出。TE 206的解码结果经由双端口存储器100存入外部存储器220。
POUA 207主要有选择地执行(a)滤波处理、(b)MC处理、(c)OSD处理、(d)运动预测(moving estimation)等处理。
在(a)滤波处理中,POUA 207将存储在外部存储器220中的视频数据(帧数据)所包含的16个像素数据进行并行滤波,再通过对滤波后的16个像素进行抽值或插值实现图像的缩小与放大。缩小后的数据通过POUC 209的控制经由双端口存储器100存入外部存储器220。
在(b)MC处理中,POUA 207通过TE 206将存在外部存储器220中的关于P图像与B图像的IQ与IDCT处理结果(即图像数据的差分值)和参照帧中的像素数据进行16个并行的加法运算。16组的差分值与像素数据,根据通过调定处理器203中的宏块标题分析获得的运动矢量,由POUC 209输入到POUA 207。
在(c)OSD处理中,POUA 207,经由双端口存储器100输入存储在外部存储器220等中的OSD图像(静态画面),将其写在外部存储器220内的显示用帧数据上。此处的OSD图像,就是可由用户遥控器操作控制来显示的菜单画面、时间显示、频道号码显示等。
(d)ME处理是这样的处理:相对于未经压缩的帧数据内的编码对象的宏块,搜索参照帧中相关性高的矩形区域,根据编码对象的宏块探索用以指示相关性最高矩形区域的运动矢量。POUA 207执行差分计算,16个并行地计算出作为编码对象的宏块的像素与探索区域内的矩形区域的像素之间的差分。
POUB 208具有与POUA 207相同的结构,它动态地分担上述(a)~(d)的处理。
POUC 209控制对POUA 207与POUB 208进行的像素数据群的供给,并控制将处理结果向外部存储器220转移。
音频部件210将I/O缓冲器202中所存的音频数据输出。
IOP 211,对媒体处理器200内的数据输入输出(数据转移)执行控制。数据转移有如下几种。第一种是,存储于I/O缓冲器202中的流数据经由双端口存储器100转移到外部存储器220内的流缓冲区。第二种是,存储于外部存储器220中的视频单元流与音频单元流经由双端口存储器100转移到位流FIFO 204中。第三种是,存储于外部存储设备2中的音频数据经由双端口存储器100转移到I/O缓冲器202中。
视频部件213从外部存储器220的视频数据(图像帧)读取2、3行份额的像素数据,存入视频缓冲存储器212,然后将该2、3行份额的像素数据变换成图像信号,输出给外部连接的电视接收机等显示装置。
主部件(HOST)214接收来自外部主微机的指令,根据指令对MPEG解码、MPEG编码、OSD处理、缩小/放大处理等的开始与结束实施控制。
着色引擎(RE)215作为主设备,执行计算机绘图的着色处理。当在外部连接专用LSI 218时,该设备在中间执行数据的输入与输出。
滤波器216执行静止画面数据的扩大缩小处理,并在外部连接专用LSI 218时,在中间执行数据的输入与输出。
以上,以媒体处理器从流部件201输入流数据并进行解码(扩展)的情况为中心作了说明,当对未经压缩的视频数据与音频数据进行编码(压缩)时,则形成反向流动。这种场合,POUA 207(或者POUB 208)执行ME处理,TE 206执行DCT处理及Q(量子化)处理,VLD 205执行可变长编码。
<1.1像素运算装置的结构>
图3是显示像素运算装置(POUA、POUB)结构的框图。
由于POUA 207与POUB 208的结构相同,这里仅对POUA 207进行说明。
如图3所示,POUA 207包括:像素并行处理部分21、输入缓冲器群22、输出缓冲器群23、命令存储器24、命令解码器25、指示电路26以及DDA电路27。
像素并行处理部分21设有:像素转移部分17、像素处理部分1~像素处理部分16(共16个)以及像素转移部分18。像素并行处理部分21以输入缓冲器群22输入的多个像素为对象,进行上述的(a)滤波处理、(b)MC处理、(c)OSD处理、(d)ME处理,然后将结果输出至输出缓冲器群23。(a)~(d)的各项处理,对宏块单位即16个像素反复进行16次(16行一份),然后结束。各种处理的启动均由POUC 209控制。并且,像素转移部分17在滤波处理中将16个像素中更靠左侧(或上侧)的多个像素(这里为8个)保持,每个时钟脉冲将它们右移。像素转移部分18在滤波处理中将16个像素中更靠右侧(或下侧)的多个像素(这里为8个)保持,每个时钟脉冲将它们左移出。
输入缓冲器群22通过POUC 209的控制,保持由双端口存储器100转移的、成为处理对象的多个像素,并进而在滤波处理中保持滤波器系数。
输出缓冲器群23,任意地改变像素并行处理部分21的处理结果(对应16个像素的16个处理结果)的排列并加以暂时保持。在滤波处理时,通过改变像素的排列并加以保持,进行像素的抽值(缩小时)或插值(放大时)。
命令存储器24中存有:滤波处理用的微程序(滤波μP)、MC处理用的微程序(MCμP)、OSD处理用的微程序(OSDμP)以及ME处理用的微程序(MEμP)。除此以外,命令存储器24中也存有:宏块的格式变换用微程序和用以变换像素数值表现的微程序等。此处,所谓宏块的格式,就是由MPEG标准确定的“4:2:0”、“4:2:2”、“4:4:4”等Y、Cb、Cr块的像素抽样率的比率。在像素的数值表现中,有以像素可取值0~255表现的场合(一般的MPEG数据等)和以-128~127来表现的场合。
命令解码器25,从命令存储器24中将微程序中的微代码逐次读取、解码,然后根据解码结果来控制POUA 207内的各部分。
指示电路26,从POUC 209接收关于应将命令存储器24的哪个微程序启动的指示(开始地址等),然后启动所指示的微程序。
DDA电路27在滤波处理中,执行对保持在输入缓冲器群22中的滤波器系数群的选择控制。
<1.2像素并行处理部分的结构>
图4、图5是显示像素并行处理部分左半部、右半部详细结构的框图。
图4中的像素转移部分17由以下部分构成:8个输入端口A1701~H1708、保持像素数据并延迟1个时钟脉冲的8个延迟器A1701~延迟器H1709、在输入端口的像素数据与左侧延迟器输出中择一的7个选择部分A1717~G1723。像素转移部分17具有这样的功能:将从输入缓冲器群22并行输入的8个像素保持在8个延迟器中,并充当右移位器将保持在8个延迟器中的像素跟时钟脉冲同步地右移。
图5中的像素转移部分18与像素转移部分17相比,只是在向左转移这点上不同,其他方面的结构均无差别,因此说明从略。
图4、图5中的16个像素处理部分1~像素处理部分16的结构全部相同,现以像素处理部分2为代表进行说明。
像素处理部分2由如下各部分构成:输入端口A201~C203,选择部分A204、B205,延迟器A206~D209,加法器A120、乘法器A211、加法器B212,以及输出端口D213。
选择部分A204在从输入端口A201输入的像素数据和从左侧像素转移部分17输出的像素数据之中选择其一。
选择部分A204与延迟器A206的功能是,将从右侧像素处理部分3输入的像素数据移位输出至左侧的像素处理部分1。
选择部分B205在从输入端口B202输入的像素数据和从右侧的外部存储器220移位输出的像素数据之中选择其一。
选择部分B205与延迟器B207具有这样的功能,将从左侧的像素处理部分1输入的像素数据移位输出至右侧的像素处理部分3。
延迟器A206与延迟器B207,分别保持由选择部分A204与选择部分B205所选择的像素数据。
延迟器B207保持来自输入端口C203的像素数据。
加法器A120将延迟器A206与延迟器B207输出的像素数据相加。
乘法器A211将加法器A120加法运算的结果与来自延迟器C208的像素数据相乘。乘法器A211在滤波处理中用于像素数据与滤波器系数之间的乘法运算。
加法器B212将乘法器A211的乘法运算结果与延迟器D209的数据相加。
延迟器D109累积加法器B212的加法运算结果。
像素处理部分2,通过有选择地组合上述各构成部件并使之动作来实施上述的(a)滤波处理、(b)MC处理、(c)OSD处理以及(d)ME处理。有选择地组合上述各构成部件的动作,可通过命令存储器24与命令解码器25的微程序控制来进行。
图6(a)是说明输入缓冲器群22详细结构的框图。
如图6所示,输入缓冲器群22由如下各部分构成:将像素数据提供给像素转移部分17的8个锁存器(latch)221,将像素数据提供给像素处理部分1~16的16个锁存器部分222,以及将像素数据提供给像素转移部分18的8个锁存器223。这些部分通过POUC 209的控制,从外部存储器220经由双端口存储器100将像素数据群转移。
各锁存器部分222包括:将像素数据提供给像素处理部分的输入端口A、B的2个锁存器,以及将像素数据或滤波器系数提供给像素处理部分的输入端口C的选择部分224。
图6(b)是说明选择部分224的详细结构的框图。
如该图所示,选择部分224包括8个锁存器224a~224h和从8个锁存器中选择任一数据的选择器224i。
锁存器224a~224h用于滤波处理中保持滤波器系数a0~a7(或a0/2、a1~a7)。这些滤波器系数通过POUC 209从外部存储器220经由双端口存储器100转移至锁存器224a~224h。
选择器224i经DDA电路27控制,与时钟脉冲同步地按自锁存器224a至224h的顺序进行选择。如此,不是采用微代码直接控制的方式向像素处理部分提供滤波器系数,而是通过DDA电路27这种硬件进行控制,因此可实现高速化。
图7是说明输出缓冲器群23结构的框图。
如该图所示,输出缓冲器群23包括16个选择器24a~24p和16个锁存器23a~23p。
选择器24a~24p,均输入像素处理部分1~16的16个处理结果并从中选择其一。这种选择控制由命令解码器25执行。
锁存器23a~23p分别保持选择器24a~24p的选择结果。
例如,将滤波处理的结果缩小为1/2时,像素处理部分1~16对于16个像素的16个处理结果中,像素处理部分1、3、5...15的处理结果由8个选择器24a~24h选择并由锁存器23a~23h保存;进而,像素处理部分1~16对于后续的16个像素的16个处理结果中,像素处理部分2、4、6...16的处理结果由8个选择器24i~24p选择并由锁存器23i~23p保存。这样进行像素的抽值,将作了1/2缩小处理的16个像素数据保持在输出缓冲器群23中,再通过POUC 209的控制经由双端口存储器100转移至外部存储器220。
<2.1滤波处理>
下面详细说明像素运算装置中的滤波处理。
POUC 209执行如下动作:确定成为滤波处理对象的宏块,相对于POUA 207或POUB 208将32个像素数据以及滤波器系数a0/2、a1~a7作为初始值转移至输入缓冲器群22,进而在通知抽头数的同时向指示电路26指示滤波处理的开始。
图8是在像素运算装置(POUA 207)上进行滤波处理时像素数据的初始输入值。该图中的输入端口栏给出图4、图5中所示的各输入端口。输入像素栏给出由输入缓冲器群22提供给各输入端口的像素数据。输出端口栏给出图4、图5中所示的输出端口D(加法器B的输出端);输出像素栏给出其输出值。
在将像素数据供给输入端口的输入缓冲器群22中,如图9所示,水平方向上连续32个像素数据X1~X32,由POUC 209转移并保持。这里的滤波处理的对象为X9~X24共16个像素数据。如图8所示,作为初始值,像素数据X9~X24被送至像素处理部分1~16的输入端口A与B,在输入缓冲器群22中选择的滤波器系数a0/2被送至输入端口C。
再有,将来自输入缓冲器群22的初始输入值供给像素并行处理部分21之后,通过其数量按滤波处理所要求的抽头数而定的时钟脉冲输入,进行滤波处理。
图10是以像素处理部分1为代表,显示16个像素处理部分运算过程的说明图。图中记载了每个输入时钟脉冲数,像素处理部分1内的延迟器A~D保持的内容和加法器B的输出值。图11示出了每次像素处理部分1的时钟脉冲输入时,输出端口D(加法器B的输出端)的输出值。
像素处理部分1,通过最初的时钟脉冲输入(CLK1),在延迟器A与B中保持像素数据X9并在延迟器D中保持滤波器系数a0/2作为初始输入值,并将延迟器D清零。这时,选择部分A与B均选择输入端口。其结果,加法器A输出(X9+X9),乘法器A输出(X9+X9)*a0/2,加法器B输出(X9*a0/2+0(即a0*X9)(参照图11)。
第二次时钟脉冲输入(CLK2)后,选择部分A与B不仅选择输入端口A、B,还选择来自邻接像素处理部分或像素转移部分的移位输出。
通过第二次时钟脉冲输入(CLK2),在延迟器A~D中保持像素数据X10、X8、滤波器系数a1、a0*X9。结果,加法器B输出a0*X9+a1(X10+X8)(参照图11)。这样,第二次时钟脉冲输入,滤波器系数a1(延迟器C)跟来自相邻两侧的移位输出的像素数据之和(加法器A)在乘法器A上相乘。加法器B将该乘法运算的结果跟延迟器D中的累积值相加。
第三次时钟脉冲输入(CLK3)时,像素处理部分1通过跟第二次时钟脉冲输入一样的动作,从加法器B输出a0*X9+a1(X10+X8)+a2(X11+X7)。
第四~第九次时钟脉冲输入(CLK4~CLK9)时也通过相同的动作,加法器B分别输出图11所示的输出值。
如此,第九时钟脉冲时的像素处理部分1的滤波处理结果(输出数据)为:a0*X9+a1(X10+X8)+a2(X11+X7)+a3(X12+X6)+a4(X13+X5)+a5(X14+X4)+a6(X15+X3)+a7(X16+X2)+a8(X17+X1)。
图10、图11中显示了直至CLK9的处理过程,但是,通过命令解码器25按POUC 209通知的抽头数进行控制,输入时钟脉冲数将被终止。也就是,各像素处理部分,当抽头数为3时,以CLK2终止滤波处理;抽头数为5时以CLK3终止滤波处理;抽头数为7时以CLK4终止滤波处理。换言之,抽头数(2n-1)的滤波处理,以n次时钟脉冲输入结束。
命令解码器25以16行为一份重复16像素的并行处理,由此结束4个像素块的滤波处理。这时,16个滤波处理结果,通过在输出缓冲器群23上的抽值处理或插值处理,被缩小或放大。每保持16个像素,输出缓冲器群23的缩小或放大后的像素群,就通过POUC 209的控制经由双端口存储器100转移至外部存储器220一次。并且,命令解码器25,在第16行结束时,给POUC 209发出已结束的通知。对于下一宏块而言,以跟上述相同的方式,POUC 209指示POUA 207提供初始输入值与滤波器系数并开始滤波处理。
再有,像素处理部分2在第9个时钟脉冲时的滤波处理结果如下式所示:
a0*X10+a1(X11+X9)+a2(X12+X8)+a3(X13+X7)+a4(X14+X6)+a5(X15+X5)+a6(X16+X4)+a7(X17+X3)+a8(X18+X2)。
像素处理部分3在第9个时钟脉冲时的滤波处理结果如下式所示::
a0*X11+a1(X12+X10)+a2(X13+X9)+a3(X14+X8)+a4(X15+X7)+a5(X16+X6)+a6(X17+X5)+a7(X18+X4)+a8(X19+X3)。
像素处理部分4~16的滤波处理结果基本相同,只是像素位置不同而已,因此从略。
这样,像素并行处理部分21,对16个输入像素进行并行的滤波处理,而且通过输入时钟脉冲数的控制,抽头数可任意地加以确定。
再有,虽然图8中像素处理部分1的输入端口A、B、C的输入像素设为(X9、X9、a0/2),也可设为(X9、0、a0)或(0、X9、a0)。也可以将像素处理部分2~16设置为只是对象像素不同,而其余均相同。
<2.2MC(运动补偿)处理>
下面详细说明解码对象帧为P图像时的MC处理。
POUC 209给指示电路26发出开始MC处理的指示,同时指定成为MC处理对象的解码处理中帧内的宏块(差分值)和参照帧上运动矢量所指的矩形区域,并相对于POUA 207或POUB 208将16个差分值D1~D16及矩形区域内的16个像素数据P1~P16设定在输入缓冲器群22内。
图12表示在像素运算装置上进行MC处理(P图像)时的输入输出像素数据。该图中的输入端口栏给出图4与图5所示的像素转移部分17、像素处理部分1~16及像素转移部分18的输入端口。输入像素栏给出被输入输入端口的像素数据。MC处理中,由于不使用像素转移部分17与18,输入像素不论是什么都可以(don’t care)。输出端口栏给出图4与图5所示的输出端口D(加法器B的输出端),而其输出值由输出像素栏给出。
图13是关于MC处理中给像素处理部分1~16的输入像素的说明图。如该图所示,D1~D16是解码对象帧宏块(MB)中的16个差分值。P1~P16是参照帧中运动矢量所指的矩形区域中的16个像素数据。
MC处理中,像素处理部分1~16内的选择部分A、B分别常时地选择输入端口A、B。由此,来自输入端口A的像素数据与来自输入端口B的差分值,经由选择部分A、B输入并保持在延迟器A、B中,进而在加法器A中作加法运算。该加法运算的结果在乘法器上乘以1倍,在加法器B上加0,然后从输出端口D输出。也就是,来自输入端口A的像素数据与来自输入端口B的差分值只单纯进行加法运算,然后从输出端口D输出。
而且,16个加法运算结果被保存于输出缓冲器群23,通过POUC209经由双端口存储器100写回外部存储器220内的解码对象帧。
通过对解码对象帧的16像素单位反复进行以上处理,进行MC处理。再有,在各像素处理部分上单纯作加法运算,每个时钟脉冲可获得16个像素的加法运算结果。
以下说明解码对象帧为B图像时的MC处理。
图14表示在像素运算装置上进行MC处理(B图像)时的输入输出像素数据。该图中的输入端口栏、输入像素栏、输出端口栏及输出像素栏,均与图12的相同。与图12不同之处是,输入像素栏以第一时钟脉冲(CLK1)与第二时钟脉冲(CLK2)分两次输入。
P1~P16与B1~B16是在两个不同的参照帧上分别为运动矢量所指的矩形区域中的16个像素数据。
MC处理中,像素处理部分1~16内的选择部分A、B分别常时地选择输入端口A、B。在第一时钟脉冲(CLK1)时,来自输入端口A、B的P1、B1经由选择部分A、B被保持在延迟器A、B中,同时将来自输入端口C的常数1/2保持在延迟器C中。由此,可从乘法器A处取得(P1+B1)/2。第二时钟脉冲(CLK2)时,乘法运算结果(P1+B1)/2被保持在延迟器D中,由于与此同时来自输入端口A、B、C的(1、0、D1)被保持在延迟器A、B、C中,来自乘法器A的D1与来自延迟器D的(P1+B1)/2通过加法器B相加。该运算结果(P1+B1)/2+D1从输出端口输出。
而且,16个加法运算结果,被保存在输出缓冲器群23中,并通过POUC 209经由双端口存储器100被写回外部存储器220内的解码对象帧。
通过对解码对象帧的16像素单位重复以上的处理,进行对于B图像的MC处理。
<2.3 OSD(在屏显示)处理)
POUC 209给指示电路26发出开始OSD处理的指示,同时从外部存储器220所保存的OSD图像依次读取16个像素数据X1~X16,并设定在输入缓冲器群22中。
图15表示在像素运算装置上进行OSD(在屏显示)处理时的输入输出像素数据。
该图中不使用像素转移部分17与18。来自输入缓冲器群22的像素数据X1~X16被输入像素处理部分1~16的输入端口A,在输入端口B与输入端口C中分别输入0与1。图16显示了OSD图像中16个像素依次被写入输入缓冲器群22的情形。
像素处理部分1~16内的各选择部分A、B,在OSD处理中常时地选择输入端口。例如,在像素处理部分1,输入端口A的像素数据X1与输入端口B的“0”分别被延迟器A与B保持,进而通过加法器A相加(X1+0=X1)。加法运算的结果在乘法器A上跟输入端口C输入的“1”相乘,再在加法器B上跟“0”相加。结果,输入端口A的像素数据X1还是原样从加法器B输出。同样地,来自像素处理部分2~16的输入端口A的像素数据X2~X16还是原样地从加法器B输出。
加法器B输出的像素数据X1~X16被保存在输出缓冲器群23中,进而通过POUC 209经由双端口存储器100写在外部存储器220内的显示用帧数据上。
如图16所示,通过OSD图像整体地重复上述处理,将外部存储器220内的OSD图像写上/复制于显示用帧数据之上。这是OSD处理中最简单的处理,POUA 207或POUB 208只是以16像素单位中继OSD图像。
再有,作为OSD处理的另一种方式,也可将(1)OSD图像与显示用帧数据加以混合。混合率为0.5时,可由输入缓冲器群22给像素处理部分1~16的各输入端口A提供OSD图像的像素数据,给各输入端口B提供显示用帧数据的像素数据。
并且,混合率为α∶(1-α)的场合,输入缓冲器群22可以在第一时钟脉冲时给各像素处理部分的输入端口A、B、C提供“OSD图像的像素数据、0、α”,在第二时钟脉冲时提供“0、显示用帧数据的像素数据、1-α”。
并且可以这样,在将OSD图像缩小显示的场合,对来自输入缓冲器群22的OSD图像执行上述滤波处理,在来自输出缓冲器群23的显示用帧数据内适合缩小显示的位置写上/复制OSD图像。
而且,也可以先通过滤波处理缩小OSD图像后,再进行上述混合。
<2.4 ME(运动预测)处理>
图17表示在像素运算装置上进行ME(运动预测)处理时的输入输出像素数据。该图输入像素栏中,X1~X16是编码对象帧中宏块的16个像素,R1~R16是参照帧中16×16像素的矩形区域中的16个像素。图18是这些像素之间关系的说明图。该图的参照帧中的运动矢量(MV)探索范围,指的是在编码对象宏块所在位置的周边区域(例如,水平与垂直位置上的+16像素~-16像素)探索运动矢量的对象范围。在该MV探索范围中,如果是以像素为单位探索,16像素×16像素的矩形区域就在16×16大小的位置上;如果是以1/2像素为单位探索,上述矩形区域就在32×32大小的位置上。图13中只示出了MV探索范围内左上的矩形区域。
ME处理,先在MV探索范围内的每个矩形区域与编码对象宏块之间求各像素之间的差分的总和,再将总和最小的矩形区域(也就是相关性最高的矩形区域)跟编码对象宏块的相对位置的位移确定为运动矢量。于是,得到编码对象块跟相关性最高的矩形区域的差分。
通过POUC 209的控制,编码对象的像素数据X1~X16和一个矩形区域的像素数据R1~R16被转移至输入缓冲器群22。对于该矩形区域内的像素数据R1~R16,每个时钟脉冲转移矩形区域内1行的份额。因此,就一个矩形区域而言,要转移16个行一份的R1~R16。
根据图17,图4所示的(例如)像素处理部分1,以第一时钟脉冲在加法器A上进行输入端口A的像素数据X1与输入端口B的像素数据R1的减法运算及绝对值化,再无变化地通过乘法器A(即乘1倍)。加法器B将乘法器的输出与延迟器D保持的数据相加并输出。加法器B在第一时钟脉冲将第1行的|X1-R1|输出。
第二时钟脉冲,由于延迟器保持了第1行的|X1-R1|,加法器B将来自乘法器A的第2行的|X1-R1|跟延迟器D保持的第1行的|X1-R1|相加。
第3时钟脉冲时,由于在延迟器累积了第1与第2行的|X1-R1|,加法器B将来自乘法器A的第3行的|X1-R1|跟延迟器D保持的第1行的|X1-R1|相加。
重复上述操作,在第16时钟脉冲时,加法器B将1~16行|X1-R1|的累积值(∑|X1-R1|)输出。
就像素处理部分2~16而言,它们也输出各自的累积值(∑|X1-R1|)~(∑|X16-R16|)。
这16个累积值在第17个时钟脉冲时被保持在输出缓冲器群23中,由POUC 209取出;算出16个累积值的合计值,然后将其保存在外部存储器220内的工作区中。
如上操作完成了一矩形区域与编码对象宏块之间像素数据的差分的总和计算。
其后,以同样的方式计算MV探索范围内其他矩形区域的差分总和。一经算出MV探索范围内的全部矩形区域(或必要的矩形区域)的差分总和,便可断定其中具最小值的矩形区域为相关性最高的矩形区域,于是就可生成运动矢量。
还有,上述ME处理中,虽然可采用其他方法进行来自像素处理部分的16个累积值的合计,但也可以在像素处理部分1~16上算出16个累积值的合计值。这时,一个矩形区域的16个累积值被原封不动地从输出缓冲器群23取出,保存在外部存储器220的工作区中;在该工作区中保存关于16个以上的矩形区域的累积值群时,也可以通过让像素处理部分1~16各自分担一个矩形区域,将16个累积值依次累积来求差分的总和。
并且,上述ME处理中以像素为单位计算差分,也可用半值单位进行计算。这时,在半行与整行之中,对于整行而言,如上述的以一个时钟脉冲算出|X1-R1|,而对于半行而言,例如需要用两个时钟脉冲中的一个算出半值的像素值(R1+R1’)/2,再在下一个时钟脉冲算出差分|X1-(R1+R1’)/2|。或者用5个时钟脉冲中的4个算出半值的像素值((R1+R1’+R2+R2’)/4),再在下一时钟脉冲算出差分。
<3.1垂直滤波处理(其一)>
图19是媒体处理器的模式框图,显示了图2所示的媒体处理器中垂直滤波处理时的数据流动。
该图中,解码器部分301,跟图2中对视频单元流进行解码(扩展)的VLD 205、TE 206以及POUA 207(MC处理)相当,对视频单元流进行解码(扩展)。
帧存储器302跟外部存储器220相当,用来保持解码结果即视频数据(帧数据)。
垂直滤波器303跟POUB 208相当,通过垂直方向的滤波处理来执行垂直方向的缩小。
缓冲存储器304跟外部存储器220相当,用来保持经缩小的视频数据(显示用的帧数据)。
图像输出部分305,跟视频缓冲存储器212和视频部件213相当,将显示帧数据变换成图像信号输出。
再有,POUA 207分担MC处理,POUB 208分担垂直滤波处理。并且,由水平滤波处理实现的水平方向缩小,对于帧存储器302的解码帧数据而言,设为由POUA 207与POUB 208中的一个来执行。
<3.1.1 1/2缩小>
图20表现图19中1/2缩小处理时帧存储器302、缓冲存储器304的数据供给状态的时间变化。
图20中,图701~703的纵轴分别为以场的垂直同步信号的周期V为单位的时间轴。该图中示出了5个周期,图701~703的时间轴是一致的。图701的横轴表示帧存储器302的数据量。图702的横轴表示缓冲存储器304的数据量。图703表示图像输出部分305输出中的帧(场)。
图701中的实线704表示从解码器部分301至帧存储器302的帧数据的供给量。虚线705表示从帧存储器302至垂直滤波部分303的帧数据的供给量。
图702中的虚线706表示从垂直滤波部分303至缓冲存储器304的第一场缩小图像的供给量。点划线707表示从垂直滤波部分303至缓冲存储器304的第二场缩小图像的供给量。
并且,图702中的实线708表示从缓冲存储器304至图像输出部分315的第一场缩小图像数据的供给状态。1/2缩小时,为了让缩小图像的显示位置能占据帧的上一半位置至下一半位置,该图的实线709对应显示位置的同步是不同的。同样地,实线709表示从缓冲存储器304至图像输出部分305的第二场缩小图像数据的供给状态。
图701显示了这样的控制:从解码器部分301至帧存储器302的n帧的帧数据的供给,在从n-1帧的第二场的帧存储器302至垂直滤波部分303的供给开始后随即开始;从帧存储器302至垂直滤波部分303的n帧的帧数据的供给,在n帧的第一场的帧存储器302至垂直滤波部分303的供给完成后随即结束。
图702显示了这样的控制:从垂直滤波部分303至缓冲存储器304的n帧第一场的帧数据的供给,在n-1帧第二场的显示中完成,n帧第二场帧数据的供给,在n帧第一场的显示中完成。
通过这样的控制,在解码器部分301至帧存储器302之间,如能在2V的期间转移1帧的帧数据就足够。从帧存储器302至垂直滤波部分303之间,如能在1V期间转移1/2帧的帧数据就足够。如果解码器部分301具有在2V期间生成1帧的帧数据的运算能力,垂直滤波部分303具有在1V期间滤波处理1/2帧的帧数据的滤波处理的运算能力,就能充分满足需要。从垂直滤波部分303至缓冲存储器304之间,如能在1V期间转移1/4帧的帧数据就足够。从缓冲存储器304至图像输出部分305之间,如能在1V期间转移1/4帧的帧数据就足够。帧存储器302如能具有保持1帧的帧数据的容量,缓冲存储器304如能保持1/2帧的帧数据的容量,就能充分满足需要。
接着,为了和图20对比,在图21中显示了不设缓冲存储器304时的数据供给状态的时间变化。
不进行缩小处理时,如实线506所示,向帧存储器302供给n帧的数字图像数据,在虚线507表示的对垂直滤波部分303的n-1帧第二场的供给开始后随即开始,在虚线508表示的对垂直滤波部分303的n帧第一场的供给完成前结束。因此,就在图5的图线上所示的2V期间,以固定的速度供给1帧的数字图像数据。
并且,如虚线508所示,从帧存储器302向垂直滤波部分303供给n帧第一场数字图像数据,在实线511表示的对帧存储器302的n帧的数字图像数据的供给结束后随即完成,接着开始第二场的处理。因此,就在图21图线所示的1V的期间,以固定的速度将1场的数字图像数据从帧存储器302供给垂直滤波部分303。
不过,在1/2缩小处理的场合,使向帧存储器302的n帧的数字图像数据的供给开始成为可能的定时,随n-1帧第二场的显示位置的不同而不同。依据n-1帧第二场的显示位置,从帧存储器302向垂直滤波部分303供给数字图像数据,在虚线509至510之间的某一位置开始,使向帧存储器302供给n帧数字图像数据的开始成为可能的定时,时间上最迟在虚线510所示的显示位置处。这时,1/2缩小图像,在图像输出部分501的下半部输出。并且,向帧存储器302供给n帧数字图像数据,必须在虚线511所示的向垂直滤波部分303供给n帧第一场的完成前结束。为此,在图21的图线上所示的1V期间,必须以固定的速度供给数字图像数据,与不缩小时相比必须具有2倍的供给能力。
并且,从n帧第一场的帧存储器302到垂直滤波部分303的数字图像数据供给,如虚线511所示,在实线512所示的向帧存储器302供给n帧数字图像数据结束后即告完成,接着开始第二场的处理。因此,在图5的图线所示的1/2V期间,必须以固定的速度供给1场的数字图像数据,跟不缩小时相比必须要有2倍的供给能力。由于其性能要跟所供给的数字图像数据相称,垂直滤波部分303也必须具有2倍于不缩小场合的运算能力。
并且,为了跟图20形成对比,图23显示了未设置缓冲存储器304时进行1/4缩小处理场合的数据供给状态的时间变化。
进行1/4缩小处理时的图线如图23所示。依据与上述相同的理由,向帧存储器302的数字图像数据供给能力,从帧存储器302向垂直滤波部分303的供给能力,以及垂直滤波部分的运算能力,均应分别为不进行缩小处理时的4倍。如此,在不设置缓冲存储器304的场合,如果提高缩小率,对峰值性能的要求也随之提高了。
<3.1.2 1/4缩小>
图22是在图19所示的媒体处理器上1/4缩小场合的各部分数据供给状态及其时间变化的示图。
图22中,图的横轴与纵轴跟图20的相同。
图上的实线804表示,从解码器部分301到帧存储器302的帧数据供给状态。图上的虚线805表示,从帧存储器302到垂直滤波部分303的帧数据的供给状态。图上的虚线806表示,从垂直滤波部分303到缓冲存储器304的第一场缩小图像数据的供给状态。图上的虚线807表示,从垂直滤波部分303到缓冲存储器304第二场缩小图像数据的供给状态。图上的实线808表示,从缓冲存储器304到图像输出部分305的第一场缩小图像数据的供给状态。图上的实线809表示,从缓冲存储器304到图像输出部分305的第二场缩小图像数据的供给状态。
如图22所示,在解码器部分301至帧存储器302之间,如果在2V期间有1帧的帧数据的转移能力就足够。在帧存储器302至垂直滤波部分303之间,如果在1V期间有1/2帧的帧数据的转移能力就足够。如果解码器部分301具有在2V期间生成1帧的帧数据的运算能力,就能充分满足需要。如果垂直滤波部分303具有如下的能力就能充分满足需要:在1V期间滤波处理1/2帧的帧数据的运算能力,在从垂直滤波部分303至缓冲存储器304之间在1V的期间转移1/8帧的帧数据的能力,以及在从缓冲存储器304至图像输出部分305之间在1V期间转移1/8帧的帧数据的能力。能保持1帧的帧数据的帧存储器302和能保持1/4帧的帧数据的缓冲存储器304均是必要的。
这些必要的性能中,即使最短的也具有1V期间的平均能力,即使缩小率加大,也无需在短暂的期间具有大的峰值性能。并且,最需要处理能力的是不进行缩小的场合。在该场合,在从解码器部分301至帧存储器302之间,在2V期间具有1帧的帧数据转移能力就足够。从帧存储器302至垂直滤波部分303之间,具有在1V期间1/2帧的帧数据的转移能力就足够。解码器部分301具有在2V期间生成1帧的帧数据的运算能力就足够。从垂直滤波部分303至缓冲存储器304之间,具有在1V期间转移1/2帧的帧数据就足够。从缓冲存储器304至图像输出部分305之间,具有在1V期间转移1/2帧的帧数据的能力就足够。最好帧存储器302可保持1帧的帧数据,且缓冲存储器304可保持1帧的帧数据。具有这样的能力,就能执行所有的垂直缩小处理。基于上述能力,就能减缩电路的规模,降低工作时钟频率。
<3.2垂直滤波处理(其二)>
图24是表示在媒体处理器中进行垂直滤波处理时数据流动的模式框图。
图24所示部分包括:解码器部分401、缓冲存储器402、垂直滤波部分403、缓冲存储器404、图像输出部分405及控制部分406。该图中的解码器部分401、垂直滤波部分403、缓冲存储器404、图像输出部分405等,跟图19中的同名构成部件相同。因此,下面仅就其相异之处进行说明,相同点的说明省略。
缓冲存储器402跟帧存储器302的不同点在于:其存储量可以少于1帧。
垂直滤波部分403跟垂直滤波部分303的不同之处在于:每当垂直方向的64行(处理前帧中的4个宏块行)的滤波处理结束,将其要点(滤波器状态)通知控制部分406。再有,通知的单位可以为2~3个宏块行。
解码器部分401跟解码器部分301的不同之处在于:每当以64行为单位的解码结束,将其要点(解码器状态)通知控制部分406。还有,通知的单位可以为16行。
控制部分406,跟图2中的IOP 211相当,基于分别来自解码器部分401与垂直滤波部分403的通知监视它们的动作状态,并对解码器部分401与垂直滤波部分403实施控制,使垂直滤波处理不超越解码处理,且解码处理也不超越垂直滤波处理。换言之,控制部分406实施下述的两个控制。其一是,为了使解码器401不将成为滤波处理对象的宏块行的像素数据群写入缓冲存储器402,防止垂直滤波部分403以前一帧(或场)的宏块行的像素数据群为对象进行滤波处理。其二是,对于是垂直滤波部分403的滤波处理对象而未加处理的宏块行,防止解器码部分401将下一帧的像素数据群写上。
图25是关于控制部分406中控制内容的说明图。
该图的横轴为时间轴,用以记录控制部分406、VSYNC(垂直同步信号)、解器码部分401、垂直滤波部分403及图像输出部分405各自的动作。
如图25所示,解码器部分401每次完成64行的解码就将其要点通知控制部分406,垂直滤波部分403每次完成64行的滤波处理就将其要点通知控制部分406。控制部分406,根据这些通知,保持并更新完成解码的行号Nd与完成滤波处理的行号Nf,并对解码器部分401与垂直滤波部分403实施控制,使Nd(当前帧)>Nf(当前帧)、Nd(下一帧)<Nf(当前帧)得到满足。具体而言,当Nd与Nf接近时(其差在阈值以下时),控制部分406使解码器部分401与垂直滤波部分403中的一个暂时停止。还有,Nd与Nf为宏块行编号也可以。
并且,在Nd与Nf接近时,通过控制部分406的控制,解码器部分401与垂直滤波部分403中的一个因控制部分406而暂时停止;也可采用控制部分406以外的部件,来判定Nd与Nf是否接近并进行控制让解码器部分401或垂直滤波部分403暂时停止。
例如可以采用这样的结构:让垂直滤波部分403将上述滤波状态通知解码器部分401,解码器部分401根据滤波状态的通知和内部的解码状态来判定Nd与Nf是否接近,再按照判定结果使解码动作暂时停止或使滤波部分403暂时停止。
或者,也可采用相反的结构:让解码器部分401将上述解码状态通知垂直滤波部分403,垂直滤波部分403根据解码状态的通知和内部的滤波状态来判定Nd与Nf是否接近,再按照判定结果使滤波处理暂时停止或使解码器部分401暂时停止。
<3.2.1 1/2缩小>
图26显示图24中进行1/2缩小处理时各部分的供给数据量。
图901的横轴表示缓冲存储器402上的帧数据量,纵轴表示时间。图902的横轴表示缓冲存储器404上的帧数据量,纵轴表示时间。图903是将图像输出部分405的状态按时序排列而形成的,时间轴跟图901与902的纵轴相合。
图上的实线904表示从解器码部分401至缓冲存储器402的帧数据的供给状态。图上的虚线905表示从缓冲存储器402至垂直滤波部分403的帧数据的供给状态。图上的虚线906表示从垂直滤波部分403至缓冲存储器404的第一场缩小图像的供给状态。图上的虚线907表示从垂直滤波部分403至缓冲存储器404的第二场缩小图像数据的供给状态。图上的实线908表示从缓冲存储器404至图像输出部分405的第一场缩小图像数据的供给状态。图上的实线909表示从缓冲存储器404至图像输出部分405的第二场缩小图像数据的供给状态。
图901显示了如下的控制:从解器码部分401至缓冲存储器402的n帧的帧数据的供给开始后,随即开始从缓冲存储器402至垂直滤波部分403的n帧的帧数据的供给;解码器部分401至缓冲存储器402的n帧的帧数据供给结束后,随即结束从缓冲存储器402至垂直滤波部分403的n帧的帧数据供给。图902显示了如下的控制:从垂直滤波部分403至缓冲存储器404的n帧的帧数据的供给在n-1帧显示中完成。
根据对装置实施的上述控制,以下各项须分别具备:从解码器部分401到缓冲存储器402,在2V期间转移1帧帧数据的能力;从缓冲存储器402到垂直滤波部分403,在2V期间转移1帧帧数据的能力:解码器部分401在2V期间生成1帧帧数据的运算能力;垂直滤波部分403在2V期间滤波处理1帧帧数据的运算能力;从垂直滤波部分403到缓冲存储器404,在2V期间转移1/2帧的帧数据的能力;从缓冲存储器404到图像输出部分405,在1V期间转移1/4帧帧数据的能力;可保持数行的帧数据的缓冲存储器402;以及可保持1帧帧数据的缓冲存储器404。
<3.2.2 1/4缩小>
图27是关于图24中执行1/4缩小时各部分的数据供给量的示图。
图1001的横轴表示缓冲存储器402上的帧数据量,纵轴表示时间。图1002的横轴表示缓冲存储器404上的帧数据量,纵轴表示时间。图1003是将图像输出部分405的状态按时间顺序排列形成的,其时间轴跟图1001与1002的纵轴一致。
图上的实线1004,表示从解码器部分401至缓冲存储器402的帧数据的供给状态。图上的虚线1005,表示从缓冲存储器402至垂直滤波部分403的帧数据的供给状态。图上的虚线1006,表示从垂直滤波部分403至缓冲存储器404的第一场缩小图像数据的供给状态。图上的虚线1007,表示从垂直滤波部分403至缓冲存储器404的第二场缩小图像数据的供给状态。图上的实线1008,表示从缓冲存储器404至图像输出部分405的第一场缩小图像数据的供给状态。图上的实线1009,表示从缓冲存储器404至图像输出部分405的第二场缩小图像数据的供给状态。
根据对装置实施的上述控制,所述装置具备如下各项就可充分满足需要:从解码器部分401至缓冲存储器402之间在2V期间转移1帧帧数据的能力;从缓冲存储器402至垂直滤波部分403之间,在2V期间转移1帧帧数据的能力;解码器部分401在2V期间生成1帧帧数据的运算能力;垂直滤波部分403在2V期间滤波处理1帧帧数据的运算能力;从垂直滤波部分403至缓冲存储器404之间,在2V期间转移1/4帧帧数据的能力;以及从缓冲存储器404至图像输出部分405之间,在1V期间转移1/8帧的帧数据的能力。如缓冲存储器402能保持数行的帧数据,而且缓冲存储器404能保持1/2帧的帧数据,就可充分满足需要。
上述各项必须具备的性能中,即使最短的也是1V期间的平均能力,所以不存在缩小率在短时间内要求大的峰值性能的情况。并且,最需要处理能力的是没有缩小处理的场合,该场合所要求的是:从解码器部分401至缓冲存储器402之间,在2V期间转移1帧帧数据的能力;从缓冲存储器402至垂直滤波部分403之间,在2V期间转移1帧帧数据的能力;解码器部分401在2V期间生成1帧帧数据的运算能力;垂直滤波部分403在2V期间滤波处理1帧帧数据的运算能力;从垂直滤波部分403至缓冲存储器404之间,在2V期间转移1帧帧数据的能力;从缓冲存储器404至图像输出部分405之间,在1V期间转移1/2帧帧数据的能力;可保持数行的帧数据的缓冲存储器402;以及可保持2帧帧数据的缓冲存储器404。只要具备如上能力就能执行所有的垂直缩小处理。由此,可以缩减电路规模,并降低工作时钟频率。
<4.改型实施例>
图28、29是像素并行处理部分的左半部与右半部的第一改型实施例的示图。以下只就这两个图中与图3、4不同的方面进行说明;其相同的部分均加注相同的编号,说明从略。
图28、29中,以像素处理部分1a~16a取代图3、4中的像素处理部分1~16,以像素转移部分17a、18b取代图3、4中的像素转移部分17、18。像素处理部分1a~16a均具有相同的结构,这里以像素处理部分1a为代表加以说明。
像素处理部分1a,以选择部分A104a与选择部分B105a取代像素处理部分1中的选择部分A104与选择部分B105。
与选择部分104相比,选择部分A104a的不同点在于由2个输入改为3个输入。也就是,选择部分A104a增加了两个来自相邻的像素转移部分(或像素处理部分)的延迟器(延迟器B)的像素数据输入。
同样地,选择部分B105a增加了两个来自相邻的像素转移部分(或像素处理部分)的延迟器(延迟器B)的像素数据输入。
并且,像素转移部分17a以选择部分B1703a~选择部分G1708a取代选择部分B1703~选择部分G1708。选择部分B1703a~选择部分G1708a各为3个输入而不是2个输入。所增加的输入是两个来自左侧延迟器的像素数据输入。
并且,像素转移部分18a以选择部分B1803a~选择部分G1808a取代选择部分B1803~选择部分G1808。选择部分B1803a~选择部分G1808a各为3个输入而不是2个输入。所增加的输入是两个来自右侧延迟器的像素数据输入。
通过这种结构,就可用处理对象的像素并依次使用与该像素左右的两个相邻像素进行滤波处理。
例如,在像素处理部分1a上可进行如下式所示的运算:
a0 X9+a1(X11+X7)+a2(X13+X5)+a3(X15+X3)。
图30、31是像素并行处理部分的左半部与右半部的第二改型实施例的示图。
图30、31中,以像素处理部分1b与像素处理部分16b取代图3、4中的像素处理部分1与像素处理部分16。
像素处理部分1b,以选择部分B105b取代像素处理部分1中的选择部分B105。选择部分B105b跟选择部分B105的不同点在于,有来自延迟器B107的反馈输入。
像素处理部分16b,以选择部分A1604b取代像素处理部分16中的选择部分A1604。选择部分A1604b跟选择部分A1605的不同点在于,有来自延迟器A1606的反馈输入。
通过这种结构,像素处理部分1b可进行(例如)下面的运算:
a3*X6+a2*X7+a1*X8+a0*X9+a1*X10+a2*X11+a3*X12。
此时,像素处理部分2的输出如下:
a3*X20+a2*X21+a1*X22+a0*X23+a1*X24+a2*X24+a3*X24。
此时,像素处理部分16b的输出如下:
a3*X21+a2*X22+a1*X23+a0*X24+a1*X24+a2*X24+a3*X24。
如此,图30、31中,将数据列左端的像素数据转移至左侧像素处理部分1b时,选择部分B105b选择来自像素处理部分1b内的延迟器B的反馈输入。将数据列右端的像素数据转移至右侧像素处理部分16b时,选择部分A1604b选择来自延迟器A1606的反馈输入。
图32、33是像素并行处理部分的左半部与右半部的第二改型实施例的示图。
图32、33中,以像素处理部分1c~16c取代图3、4中的像素处理部分1~16,以像素转移部分17c、18c取代像素转移部分17、18。由于像素处理部分1c~16c均为相同结构,下面以像素处理部分1a为代表进行说明。
像素处理部分1c,以选择部分A104c与选择部分B105c取代像素处理部分1中的选择部分A104与选择部分B105。
选择部分A104c跟选择部分A104的不同点在于,其输入由2个改为3个。也就是,选择部分A104c增加了两个来自相邻像素转移部分(或像素处理部分)的延迟器(延迟器B)的像素数据输入。
选择部分B105c增加了两个来自相邻像素转移部分(或像素处理部分)的延迟器(延迟器B)的像素数据输入和一个来自延迟器B107的反馈输入。
像素转移部分17c、18c,跟图28、图29所示的像素转移部分17a、18a相同,有3个输入而不是2个输入。
通过该结构,像素处理部分1c执行(例如)下面的运算:
a3*X9+a2*X9+a1*X9+a0*X9+a1*X11+a2*X13+a3*X15。
此时,像素处理部分2c的输出如下:
a3*X10+a2*X10+a1*X10+a0*X10+a1*X12+a2*X14+a3*X16。
此时,像素处理部分15c的输出如下:
a3*X17+a2*X19+a1*X21+a0*X23+a1*X23+a2*X23+a3*X23。
此时,像素处理部分16c的输出如下:
a3*X18+a2*X20+a1*X22+a0*X24+a1*X24+a2*X24+a3*X24。
图34是POUA 207的改型实施例的示图。
该图的POUA 207与图2相比,增加了上抽样电路22a与下抽样电路23a。以下集中说明跟图2的相异点,相同之处说明从略。
上抽样电路22a,在垂直方向扩展从输入缓冲器群22输入的像素数据群。例如,为了将自输入缓冲器群22输入的像素数据群在垂直方向扩展2倍而进行像素数据的插值,对于来自输入缓冲器群22的像素数据群的一次输入,将同样的像素数据群两次输出至像素并行处理部分21。
下抽样电路23a,在垂直方向缩小从像素并行处理部分21输入的像素数据群。例如,为了将自像素并行处理部分21输入的像素数据群在垂直方向缩小至1/2倍而进行像素数据的抽值。也就是,对于来自像素并行处理部分21的像素数据群的输入的两次输入,将其中的一次丢弃,一次输出。
根据这种结构,由于在像素并行处理部分21的输入侧为垂直方向的2倍、而在输出侧为垂直方向的1/2倍,可将外部存储器220上每1帧数据量在垂直方向上设为1/2,其结果,可使由POUC 209至POUA 207的数据转移量成为1/2。由此,可以消除集中访问双端口存储器100的内部端口时的总线瓶颈问题。
工业上的应用可能
本发明的像素运算装置,由于对多个像素并行地进行用以恢复尺寸等的滤波处理,可在执行动画的缩小处理/放大处理、恢复尺寸等的媒体处理器等数字视频设备上得到应用。

Claims (5)

1.一种执行滤波处理的像素运算装置,其特征在于设有:
N个像素处理部件,
N个供给像素数据及滤波器系数的供给部件,
N个像素选择部件,以及
使N个像素处理部件并行动作的控制部件;
每个像素处理部件,用由供给部件供给的像素数据与滤波器系数运算后,对各像素处理部件,以像素选择部件选择并取得邻接的像素处理部件和隔一个的像素处理部件的像素数据,再用所取得像素数据运算并将运算结果累积;
所述控制部件,对N个像素处理部件实施控制,使它们反复进行从邻接像素处理部件取得像素数据并用所取得的像素数据运算与累积的动作。
2.一种执行滤波处理的像素运算装置,其特征在于设有:
将N个像素数据右移的第一移位器和将N个像素数据左移的第二移位器,并用从邻接的两个像素处理部件移出的两个像素数据进行运算的N个像素处理部件,
N个供给像素数据及滤波器系数的供给部件,以及
使N个像素处理部件并行动作的控制部件;
每个像素处理部件,用由供给部件供给的像素数据与滤波器系数运算后,从与各像素处理部件邻接的像素处理部件取得像素数据,再用所取得像素数据运算并将运算结果累积;
所述控制部件,对N个像素处理部件实施控制,使它们反复进行从邻接像素处理部件取得像素数据并用所取得的像素数据运算与累积的动作。
3.一种像素处理装置,其特征在于设有:
对应连续N个像素的N个像素处理部分;
将N个像素数据在垂直方向上更新的N个放大部件;
将N个放大了的像素数据供给N个像素处理部分的第一供给部件;
将滤波器系数供给N个像素处理部分的第二供给部件;以及
指定滤波处理抽头数的部件;
每个像素处理部分设有:
从其他像素处理部分取得像素数据的取得部件;
对像素数据和第二供给部件供给的滤波器系数进行运算的运算部件;
将运算部件的运算结果累积的累积部件;
将由累积部件累积的结果,在垂直方向上缩小的缩小部件;以及
控制部件,该部件在让运算部件用第一供给部件供给的像素数据与第二供给部件供给的滤波器系数进行运算后,以依据指定抽头数的次数实施利用取得部件的取得操作、利用取得的像素数据与滤波器系数进行的运算操作以及利用累积部件的累积操作。
4.一种像素处理装置,其特征在于,设有:
对应连续的像素数据的多个像素处理部分;
将所述多个像素的像素数据供给多个像素处理部分的第一供给部件;以及
将滤波器系数供给各像素处理部分的第二供给部件;
每个像素处理部分包括:
从其他像素处理部分取得像素数据的取得部件;
对像素数据和第二供给部件所供给的滤波器系数进行运算的运算部件;
将运算部件的运算结果累积的累积部件;以及
控制部件,该控制部件用以在令取得部件、运算部件与累积部件执行滤波处理的控制和令运算部件在来自第一供给部件的解码对象帧的多个像素数据及与之对应的差分像素数据被供给时执行运动补偿处理的控制之间进行转换。
5.一种像素处理电路,其特征在于设有,
对应于多个像素数据的多个像素处理部件;以及
将多个像素数据处理供给像素运算电路的供给部件;
所述像素处理部件各自包括:
从来自供给部件的像素数据和第一像素处理部件输出的像素数据中选择像素数据的像素选择器;
保持所选择的像素数据并输入至第二像素处理部件的保持电路;以及
对所保持的像素数据进行运算的运算电路。
CNB018017355A 2000-04-21 2001-04-23 像素运算装置 Expired - Fee Related CN1269076C (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2000120753 2000-04-21
JP120754/00 2000-04-21
JP120753/00 2000-04-21
JP2000120754 2000-04-21

Publications (2)

Publication Number Publication Date
CN1383529A CN1383529A (zh) 2002-12-04
CN1269076C true CN1269076C (zh) 2006-08-09

Family

ID=26590535

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB018017355A Expired - Fee Related CN1269076C (zh) 2000-04-21 2001-04-23 像素运算装置

Country Status (5)

Country Link
US (1) US6809777B2 (zh)
EP (1) EP1278157A1 (zh)
KR (1) KR100794098B1 (zh)
CN (1) CN1269076C (zh)
WO (1) WO2001082227A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315934B2 (en) * 2002-03-06 2008-01-01 Matsushita Electric Industrial Co., Ltd. Data processor and program for processing a data matrix
US7882164B1 (en) * 2004-09-24 2011-02-01 University Of Southern California Image convolution engine optimized for use in programmable gate arrays
JP2011035655A (ja) * 2009-07-31 2011-02-17 Sanyo Electric Co Ltd フレームレート変換装置、およびそれを搭載した表示装置
US10410575B2 (en) * 2017-07-19 2019-09-10 Apple Inc. Adjustable underrun outputs

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998029832A1 (fr) 1996-12-25 1998-07-09 Sony Corporation Processeur d'images, processeur de donnees et procedes correspondants
US4802111A (en) * 1986-03-10 1989-01-31 Zoran Corporation Cascadable digital filter processor employing moving coefficients
US5227863A (en) * 1989-11-14 1993-07-13 Intelligent Resources Integrated Systems, Inc. Programmable digital video processing system
JPH0548388A (ja) 1991-08-20 1993-02-26 Rohm Co Ltd デイジタルフイルタ
US5315700A (en) * 1992-02-18 1994-05-24 Neopath, Inc. Method and apparatus for rapidly processing data sequences
US5600582A (en) * 1994-04-05 1997-02-04 Texas Instruments Incorporated Programmable horizontal line filter implemented with synchronous vector processor
JP2944439B2 (ja) * 1994-12-27 1999-09-06 シャープ株式会社 手書き文字入力装置および方法
US5528301A (en) * 1995-03-31 1996-06-18 Panasonic Technologies, Inc. Universal video format sample size converter
US5587742A (en) * 1995-08-25 1996-12-24 Panasonic Technologies, Inc. Flexible parallel processing architecture for video resizing
CA2246536C (en) 1996-12-25 2007-08-21 Sony Corporation Image processor, data processor, and their methods
US6681059B1 (en) * 1998-07-28 2004-01-20 Dvdo, Inc. Method and apparatus for efficient video scaling
US6154761A (en) * 1999-02-12 2000-11-28 Sony Corporation Classified adaptive multiple processing system

Also Published As

Publication number Publication date
US6809777B2 (en) 2004-10-26
KR100794098B1 (ko) 2008-01-10
KR20020025899A (ko) 2002-04-04
US20020106136A1 (en) 2002-08-08
WO2001082227A1 (en) 2001-11-01
EP1278157A1 (en) 2003-01-22
CN1383529A (zh) 2002-12-04

Similar Documents

Publication Publication Date Title
CN1193338C (zh) 视频信号变换装置以及视频信号变换方法
CN1138420C (zh) 图象处理器、图象数据处理器和可变长度代码解码器
CN1149496C (zh) 自适应视频信号运算处理装置
CN1195374C (zh) 图像信号处理装置
CN101079965A (zh) 拍摄图像的失真校正方法和装置、拍摄方法和拍摄装置
CN1220390C (zh) 图像处理设备和图像处理方法
CN1640148A (zh) 动态图像编码方法及动态图像解码方法
CN1585490A (zh) 信号处理装置及使用它的电子设备
CN1926882A (zh) 运动补偿装置
CN101053253A (zh) 记录装置及方法、再生装置及方法以及程序
CN1922630A (zh) 图象处理装置、图象处理系统、图象处理方法、图象处理程序及集成电路装置
CN101039421A (zh) 在编解码中的实现量化的方法和装置
CN1123230C (zh) 图象解码方法
CN1812548A (zh) 记录器及其方法,播放器及其方法,程序和记录介质
CN1149952A (zh) 解码视频图像的装置和方法
CN1765124A (zh) 图像处理装置、图像处理方法以及程序
CN1744720A (zh) 可变长度解码装置
CN1728834A (zh) 转换运动图像数据以及再现运动图像数据的方法和设备
CN1835548A (zh) 解码装置、解码方法及其程序产品
CN1726529A (zh) 用于处理图像信号的设备和方法、用于执行该方法的程序、以及用于记录该程序的计算机可读介质
CN1799064A (zh) 图像处理装置
CN1509575A (zh) 图像编码方法及图像译码方法
CN1178490C (zh) 数据处理方法、数据处理装置
CN1269076C (zh) 像素运算装置
CN1160947C (zh) 视频显示器

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
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20060809

Termination date: 20100423