CN1703094A - 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 - Google Patents
1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 Download PDFInfo
- Publication number
- CN1703094A CN1703094A CNA200510074679XA CN200510074679A CN1703094A CN 1703094 A CN1703094 A CN 1703094A CN A200510074679X A CNA200510074679X A CN A200510074679XA CN 200510074679 A CN200510074679 A CN 200510074679A CN 1703094 A CN1703094 A CN 1703094A
- Authority
- CN
- China
- Prior art keywords
- picture element
- element interpolation
- interpolation
- data
- result
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 230000004044 response Effects 0.000 claims abstract description 20
- 238000013500 data storage Methods 0.000 claims description 18
- 210000000352 storage cell Anatomy 0.000 claims description 18
- 230000002093 peripheral effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 12
- 230000008569 process Effects 0.000 description 11
- 230000014509 gene expression Effects 0.000 description 10
- 238000007906 compression Methods 0.000 description 6
- 230000006835 compression Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 101100191136 Arabidopsis thaliana PCMP-A2 gene Proteins 0.000 description 4
- 101100422768 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) SUL2 gene Proteins 0.000 description 4
- 101100048260 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) UBX2 gene Proteins 0.000 description 4
- 230000009471 action Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 4
- 238000013139 quantization Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000003550 marker Substances 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 230000008030 elimination Effects 0.000 description 1
- 238000003379 elimination reaction Methods 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/59—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial sub-sampling or interpolation, e.g. alteration of picture size or resolution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
- G06T3/4007—Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
- H04N19/43—Hardware specially adapted for motion estimation or compensation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
- H04N19/436—Methods 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 using parallelised computational arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
- H04N19/523—Motion estimation or motion compensation with sub-pixel accuracy
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Image Processing (AREA)
- Television Systems (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一种图象插值装置包括1/2像素插值单元,其对输入数据进行1/2像素插值,以提供1/2像素插值结果。数据选择单元选择一部分1/2像素插值结果,以提供所选择部分的1/2像素插值结果。1/4像素插值单元根据运动矢量对所选择部分的1/2像素插值结果进行1/4像素插值。1/2像素插值单元可进行与运动矢量无关的操作。1/4像素插值单元根据运动矢量产生数据选择信号,且数据选择单元响应数据选择信号。也公开了有关方法。
Description
技术领域
本发明涉及图象压缩和恢复,特别是涉及用于压缩和恢复图象的图象插值装置和方法。
背景技术
随着数字信号处理技术、存储介质和传输方法的发展,传统话音业务已演变成多媒体业务。从而,研究了用于存储和传输大量数据的多种压缩技术。尤其是,已制定了用于编码和存储数字运动图象信息的技术标准规范。例如,国际电信联盟(ITU)制定了有线和无线通信网络环境中运动图象业务的H.261和H.263标准规范,国际标准化组织(ISO)制定了MPEG-1、MPEG-2和MPEG-4运动图象标准规范。由于无线通信的快速普及,期望提供能够改善不同通信环境下的运动图象压缩率的技术规范。
最近,ITU和ISO已制定了H.264运动图象压缩标准,其在处理不同网络环境时可提供更大的灵活性以及更高效的编码运动图象。可是,按照该H.264,编码器和解码器要比传统压缩方法中的编码器和解码器更复杂。尤其是,该编码器要确定比传统标准更多的参数和编码模式,且由于去块效应滤波器及1/4像素单位的运动补偿,该解码器要进行比传统标准更多的计算。
通常,按照该H.264,为了进行运动补偿,要作1/4像素插值以将图象放大4倍。之后进行运动估计。为了进行上述操作,要使用1/4像素精度,从而增加了处理复杂性。同样,按照H.264,通常不处理固定大小的宏块,而是处理多种子宏块。在作1/4像素插值时需要考虑这种可变块大小特性。
发明内容
根据本发明实施例的图象插值装置包括数据存储单元,其存储待插值的宏块数据和插值时使用的外围宏块数据。1/2像素插值单元接收数据存储单元中的一行数据,并在其中进行1/2像素插值。数据选择单元根据数据选择信号从1/2像素插值单元输出的多个1/2像素插值结果中选择一部分。1/4像素插值单元根据解码图象的运动矢量产生数据选择信号,并根据数据选择单元选择的1/2像素插值结果进行1/4像素插值。根据运动矢量有选择地进行1/4像素插值。
在某些实施例中,1/2像素插值单元包括输入缓存器,其根据时钟信号接收数据行,并按顺序移动之前所接收数据行,以存储多行数据。第一算子接收输入缓存器中的一行数据,以对该行数据中包含的多个像素值进行第一方向的1/2像素插值。在第一算子进行1/2像素插值的同时,第二算子接收输入缓存器中的一行数据,以对该行数据中包含的多个像素进行第二方向的1/2像素插值。第三算子接收第二算子的1/2像素插值结果,以进行第一方向的1/2像素插值。最后,输出缓存器存储输入缓存器输出的数据行以及第一到第三算子得出的1/2像素插值结果。
根据其他实施例,第一到第三算子将该行数据中包含的多个像素值排列成偏移一个像素,以对相同行中存在的多个像素并行进行1/2像素插值。根据其他实施例,当数据存储单元的大小为(M+5)*(N+5)时,输入缓存器包括(M+5)个行寄存器,用于按像素存储数据存储单元输入的、由(N+5)个像素组成的数据行,且将属于各行的多个数据项存储在各自的行寄存器中。此外,根据某些实施例,第二算子分别对输入缓存器中(M+5)个行寄存器中存储的数据并行进行1/2像素插值。
根据本发明其他实施例的图象插值装置包括1/2像素插值单元,其对输入数据进行1/2像素插值,以提供1/2像素插值结果。数据选择单元选择一部分1/2像素插值结果,以提供所选择部分的1/2像素插值结果。1/4像素插值单元根据运动矢量对所选择部分的1/2像素插值结果进行1/4像素插值。
在某些实施例中,1/2像素插值单元对与运动矢量无关的输入数据进行1/2像素插值。在其他实施例中,1/4像素插值单元还根据运动矢量产生数据选择信号,且数据选择单元根据数据选择信号选择一部分1/2像素插值结果。此外,在某些实施例中,提供6行1/2像素插值结果,并从6行1/2像素插值结果中选择两行进行1/4像素插值。
也应理解尽管上面描述的本发明实施例针对图象插值装置,也提供根据本发明不同实施例的类似图象插值方法。此外,尽管上面描述的本发明实施例针对H.264标准,本发明实施例也可使用其他标准或与标准无关。最后,应理解这里使用的术语“1/2像素”和“1/4像素”通常表示小于像素级的不同相对分辨率操作,而不限于特定的1/4像素和1/2像素操作。
附图说明
图1是根据本发明示例性实施例的图象解码器方框图;
图2是根据本发明示例性实施例的图象编码器方框图;
图3到图5说明根据本发明示例性实施例的插值操作;
图6是根据本发明示例性实施例的插值电路方框图;
图7说明图6的插值电路所进行的插值操作;
图8说明根据本发明示例性实施例的图6所示1/2像素插值单元详细结构;
图9和10说明根据本发明示例性实施例,第一算子所进行的1/2像素插值操作;
图11说明根据本发明示例性实施例,第二算子所进行的1/2像素插值操作;
图12说明根据本发明示例性实施例,第三算子所进行的1/4像素插值操作。
具体实施方式
现在将参照本发明示例性实施例中所示附图更完整地描述本发明。然而,本发明可体现为许多不同形式,不应认为仅限于这里提供的实施例。相反,提供这些实施例是为了使其更完整和全面,并将本发明内容完全传达给本领域的技术人员。本文中的相同标号指同一个部分。
应理解当称一个部分与另一个部分“响应”、“连接”或“耦接”时,其可与其他部分直接响应、连接或耦接,或可有介入部分存在。相比之下,当称一个部分与另一个部分“直接响应”、“直接连接”或“直接耦接”时,就没有介入部分存在。如这里的用法,术语“和/或”包括所列相关项的一项或多项的所有组合,且可简记为“/”。
应理解尽管这里用术语第一、第二等来描述不同部分,但这些部分不应受这些术语的限制。这些术语仅用来区分一部分与另一部分。例如,第一算子可作为第二算子,且类似地第二算子可作为第一算子,而不会偏离本发明内容。
这里使用术语仅为了描述特定实施例,而不是为了对本发明加以限制。如这里的用法,用单数形式的“一个”和“这个”也包括复数形式,除非文中明确指明之外。还应理解这里使用的术语“包括”或“包含”指存在所述特性、区域、整数、步骤、操作、部分和/或成分,但是不排除其中存在或添加一个或多个其他特性、区域、整数、步骤、操作、部分、成分和/或组。
除非另有定义,这里使用的所有术语(包括技术和科学术语)与本领域的技术人员通常所理解的意思一样。还应理解诸如常用字典中定义的那些术语的意思应解释为与相关技术及本发明中的意思一致,而不应解释为理想化或过分正式意义上的,除非在该处理有明确定义。
下面将参照根据本发明实施例的方法、系统和/或计算机程序产品的方框图和流程图描述本发明。应理解至少可用计算机程序指令部分实现方框图或流程图、以及方框图或流程图中部分的组合。可将这些计算机程序指令提供给一个或多个企业、应用、个人、大众和/或嵌入式计算机系统,以便通过计算机系统执行的指令创建装置、模块、设备或方法,以实现方框图中块的功能/动作。根据本发明实施例的计算机程序包括其中嵌入了计算机可读程序代码的计算机可使用的存储介质。其他实施例中也可使用通用计算机系统和/或专用硬件的组合。
计算机系统指令也可存储在计算机系统的内存中,指示计算机系统以一特殊方式运行,以便内存中存储的指令生产出的产品中包括实现块中的功能/动作的计算机可读程序代码。也可将计算机程序指令加载到计算机系统中,使计算机系统执行一系列操作步骤,以产生计算机实现过程,从而处理器上执行的指令提供实现块中指定功能/行为的步骤。因此,方框图和/或流程图中给出的块提供对方法、计算机程序产品和/或系统(结构上和/或方法加功能上)的支持。
也应注意到在另外一些实施过程中,流程图中所指出的功能/动作可不按流程图中所指出的顺序出现。例如,根据所涉及的功能/动作,相继前后两个块实际上可同时执行,或有时可按相反顺序执行。最后,一个或多个块的功能可分割开来和/或与其他块的功能组合起来。
根据本发明的不同实施例,图象插值(image interpolation)装置/方法允许不立刻进行其包含大量的计算的1/4像素插值(quarter perinterpolation)。相反,1/2像素插值(half per interpolation)过程和1/4像素插值过程可相互分开,并一步步进行。可根据运动矢量有选择地进行1/4像素插值,且可将寄存器中存储的数据以行为单位向下移动进行1/2像素插值过程。
图1是根据本发明不同实施例的MPEG解码器200的方框图。图2是根据本发明不同实施例的MPEG编码器300的方框图。在某些实施例中,可根据H.264标准构建图1和2所示解码器200和编码器300。根据H.264标准,解码器200和编码器300中通常包括以标号100表示的块。因此,为避免冗余并简化解释,将详细描述MPEG解码器200的电路结构。
参照图1,MPEG解码器200包括熵解码单元10,其接收网络抽象层(NAL)的压缩比特流以进行熵解码;重排单元20,其将数据按组重新排序;反量化单元30,其将重排单元20输出的数据进行反量化;离散余弦反变换(IDCT)单元40,其对反量化数据作离散余弦反变换;帧内/帧间数据预测单元50,其进行帧内/帧间数据预测以补偿帧内/帧间数据;以及循环去块效应(in-loop de-blocking)滤波器90,其消除反量化过程生成的误差。帧内/帧间数据预测单元50包括帧间数据预测单元60,其进行帧间数据预测;以及运动补偿单元70,其进行帧内数据预测。运动补偿单元70包括插值电路500,其对图象进行插值以更精确地进行运动补偿。
由于图1和2所示解码器200和编码器300遵循H.264标准,插值电路500进行1/4像素插值。根据本发明的某些实施例,插值电路500不立刻进行1/4像素插值,而是将1/2像素插值过程和1/4像素插值过程分开,以一步步进行1/2像素插值过程和1/4像素插值过程,正如下文将要描述的那样。尤其是,在某些实施例中,插值电路500所进行的1/4像素插值过程是根据熵解码单元10(或图2中类似的熵编码单元12)提供的运动矢量(X_Frac,Y_Frac)有选择性地进行的。由于插值电路500所进行的插值过程可通过将寄存器中存储的数据以行为单位向下移动来获得,可快速进行这些1/2像素计算。同样,由于某些实施例中包含的不同大小的所有子宏块所采用的寄存器数量减少,插值电路500的整个结构可变得简单。在描述根据本发明某些实施例的插值电路500的详细实施例之前,先描述根据本发明某些实施例的有关解码图象的插值操作和插值结果。
图3到5表示根据本发明不同实施例的插值操作。图4说明图3所示的插值块(即参考部分)。
参照图3和4,用正方形标记的部分表示整数像素,即解码像素。用圆圈标记的部分表示1/2像素插值结果。用三角形标记的部分表示1/4像素插值结果。
正如附图中所示,为获得根据本发明某些实施例的1/2像素插值结果,在行或列方向上使用了6个整数像素。为获得1/4像素插值结果,使用了2个1/2像素插值结果。因此,为获得图5所示相应图象轮廓中有关像素的插值结果,参考部分还包括行和列每个方向上的另外5个数据项(指用斜线标记的部分)。因此,根据本发明的不同实施例,一个4×4宏块要使用9×9数据(即9=4+5),一个16×16宏块要使用21×21数据(即21=16+5)。
因此,根据本发明某些实施例,将数据存储单元520的大小设置为21×21。在一些实施H.264的实施例中,这种数据存储单元520结构使该数据存储单元可用于所有场合中,因为H.264以16×16、16×8、8×8、8×16、8×8、8×4、4×8、和4×4块为单位作运动补偿。在图5中,参考部分的坐标用左上端坐标值(如xlntL,ylntL)表示。
再参照图4描述根据本发明某些实施例的插值块的结构。大写字母“G、H、M和N”表示整数像素,即解码所获得的像素,用圆圈标记的“b、h和j”表示用1/2像素插值获得的像素(下文称为1/2像素)。用三角形标记的像素表示用1/4像素插值获得的像素(下文称为1/4像素)。
下面将根据本发明某些实施例描述通过插值步骤构成图4所示插值块的各个像素间的差别。
表1
第一步 | 第二步 | 第三步 |
bh | Jacdnegpr | fikq |
有关表1所示像素的插值分为总共3步操作。由于除“j”之外的1/2像素用给定整数像素值进行插值,它们属于第一步中首先获得的。第二步使用第一步的操作结果获得。第三步使用第二步的操作结果获得。
将由表1获得的插值结果分为1/2像素(b、h和j)和1/4像素(a、c、d、n、e、g、p、r、f、i、k和q)。将根据本发明某些实施例的插值电路500设计成使获得1/2像素的功能与获得1/4像素的功能分隔开。
图6是根据本发明不同实施例表示诸如插值电路500之类插值电路的方框图。图7表示图6所示插值电路500所进行的插值操作。
参照图6和7,根据本发明不同实施例的插值电路500包括数据存储单元520、1/2像素插值单元540、数据选择单元560、以及1/4像素插值单元580。在某些实施例中,数据存储部分520由一个21×21缓存器组成,其比一个16×16宏块在行和列每个方向上大5,以便存储对宏块进行1/2像素插值和1/4像素插值所使用的数据项。
1/2像素插值单元540每个时钟周期从数据存储单元520(指图7中的5200)接收一行数据项(即21个整数像素值),并进行1/2像素插值以输出总共6行数据G、b、h、j、b′和G′(指图7中的5400)。这里,将每行中的16或21个像素数据项存储在一个分配的行寄存器中。
在图4中,从插值块结构可注意到诸如“b、h和j”的1/2像素插值像素是根据一个整数像素产生的。因此,在图6和7中,由于一个输入包括21个整数像素,以“G、b、h、j、b′和G′”表示的1/2像素插值单元540的输出由16或21个像素组成。
数据选择单元560根据1/4像素插值单元580输出的选择信号SEL1和SEL2,从1/2像素插值单元540提供的6行行数据(G、b、h、j、b′、G′)中选择2行行数据输出(指图7中的5600)。
将1/2像素插值单元540输出的数据项(G、b、h、j、b′和G′)存储在6个行寄存器中。这里,以″G″表示的行数据中的21个像素表示每个时钟周期从数据存储单元520接收的一行数据(即解码的21个整数像素),且以″G表示的行数据中的21个像素表示经一个时钟周期之后将数据″G″移动所得。以″b″表示的行数据中的16个像素表示对应于图4所示″b″处像素的1/2像素插值结果,且以″b表示的行数据中的16个像素表示经一个时钟周期之后将数据″b″移动所得。以″h″表示的行数据中的21个像素表示对应于图4所示″h″处像素的1/2像素插值结果。以″j″表示的行数据中的16个像素表示对应于图4所示″j″处像素的1/2像素插值结果。
1/4像素插值单元580产生选择信号SEL1和SEL2,以根据熵解码单元10提供的运动矢量(X_Frac,Y_Frac)从6行行数据中选择2行数据,并将选择信号SEL1和SEL2传送到数据选择单元560。1/4像素插值单元580将通过数据存储单元560接收的数据加以平均来进行1/4像素插值(指图7中的5800)。在某些实施例中,1/4像素插值单元580按每个像素对从数据选择单元560输入的各个数据项并行进行1/4像素插值,以输出由总共16个像素组成的1/4像素插值结果。当运动矢量X_Frac、Y_Frac表示1/2像素插值结果时,不进行这种1/4像素插值操作,但1/2像素插值结果按实际值输出。
图8表示根据本发明不同实施例的1/2像素插值单元,如图6所示1/2像素插值单元540。
参照图8,根据本发明不同实施例的1/2像素插值单元540包括输入缓存器541,其每个时钟周期从数据存储单元520接收一行行数据(即21个整数像素)并存储所接收的行数据;第一算子(operator)543,当将6行行数据输入到输入缓存器541时,其从输入缓存器541接收一行行数据以插值16个″b″像素;第二算子545,在第一算子543插值″b″像素的同时,其插值21个″h″像素;第三算子547,其根据第二算子545执行的插值结果插值16个″j″像素;以及输出缓存器549,其将1/2像素插值单元540的输出数据(G、b、h、j、b′和G′)分别存储在6个行寄存器中。
在某些实施例中,输入缓存器541包括21个行寄存器。输入缓存器541中包含的各个行寄存器在一个时钟周期之后分别从数据存储单元520接收一个行数据项(即21个整数像素值),并将之前存储的数据向下(指箭头方向)移动一行。在将数据输入到输入缓存器541中的所有行寄存器之后,1/2像素插值单元540在每个时钟周期同时完成输入和数据的1/2像素插值,而没有延迟。
具体而言,在将6个行数据项输入到输入缓存器541之后(下文称为第一时钟计时),将输入缓存器541的第三行中存储的21个像素值C1、C2、...和C21(对应″G″)存储在输出缓存器549的第一个行寄存器5491中。同时,第一和第二算子543和545对像素″b″和″h″进行插值。将第一和第二算子543和545所获得的插值结果分别存储在第二个和第三个行寄存器5492和5493中。
之后,在下一个时钟周期(下文称为第二时钟计时),第三算子547根据第二算子545输出的21个操作结果对像素″j″进行插值。将插值所获得的16个像素值存储在输出缓存器549的第四个行寄存器5494中。另一方面,将第二时钟计时期间输入缓存器541中存储的数据向下移动一行,并将输入缓存器541的第三行中存储的21个新像素值C1、C2、...和C21存储在输出缓存器549的第一个行寄存器5491中。同时,第一算子543对像素″b″进行插值。在第二个时钟计时期间将第一个时钟计时期间第一个和第二个行寄存器5491和5492中存储的21个″G″数据项和16个″b″数据项分别移动到输出缓存器549的第五个和第六个行寄存器5495和5496中。
这样,除初始的5个时钟延迟之外,1/2像素插值单元540在每个时钟周期期间对一行行数据项进行一系列1/2像素插值操作。将插值获得的结果存储在输出缓存器549所包含的行寄存器5491到5496中。
图9和10表示根据本发明不同实施例的第一算子543所进行的1/2像素插值操作。图11表示根据本发明不同实施例的第二算子545所进行的1/2像素插值操作。图12表示根据本发明不同实施例的第三算子547所进行的1/4像素插值操作。
首先,参照图9,第一算子543在第一个时钟计时期间从输入缓存器541接收21个整数像素值C1、C2、...和C21,并使用按偏移一个像素排列的6个整数像素值(如C1、C2、...和C6)进行总共16次1/2像素插值。此时,并行进行16次1/2像素插值操作,且将16次1/2像素插值结果H_pel1-H_pel16存储在输出缓存器549的第二个行寄存器5492中。这里,每个输入或输出数据项对应行寄存器的一个像素数据。
第一算子543包括16个1/2像素插值算子,以同时进行16次1/2像素插值操作。下面将描述16个1/2像素插值算子中的一个1/2像素插值算子3431。
参照图10,当用等式表示1/2像素插值算子3431所进行的1/2像素插值操作时,1/2像素插值结果OUT2如下:
【等式1】
OUT2=Clip[{C1-5*C2+20*C3+20*C4-5*C5+C6}+16]/32]
其中6个输入数据项为C1、C2、C3、C4、C5和C6。
在某些实施例中,1/2像素插值算子3431包括权重为1、-5、2-、20、-5和1的6抽头有限冲击响应(FIR)滤波器。等式1中的Clip函数表示将不大于0的操作结果限制为0,并将不小于255的操作结果限制为255。
之后,参照图11,第二算子545同时对输入缓存器541中包含的21个行寄存器的每一个进行1/2像素插值,而不考虑输入数据的排列关系。因此,第二算子545包括21个1/2像素插值算子,以同时进行21次1/2像素插值。下面将描述21个1/2像素插值算子中的一个1/2像素插值算子3451。
参照图8和11,当用等式表示1/2像素插值算子3451所进行的1/2像素插值操作时,1/2像素插值结果OUT2′如下:
【等式2】
OUT2′=Clip[{A1-5*B2+20*C1+20*D1-5*E1+F1}+16]/32]
其中6个输入数据项为A1、B2、C1、D1、E5和F6。
在某些实施例中,1/2像素插值算子3451包括与图10所示1/2像素插值算子3431一样的权重为1、-5、2-、20、-5和1的6抽头有限冲击响应(FIR)滤波器。等式2中的Clip函数也表示将不大于0的操作结果限制为0,并将不小于255的操作结果限制为255。
在第二算子545获得21个″h″像素值之后,第三算子547在第二个时钟计时期间从第二算子545接收21个″h″像素值以获得16个″j″像素。此时进行的插值与图9所示相同,且同时对各个像素进行1/2像素插值。
下面将参照图6和12描述数据选择单元560的结构与操作以及1/4像素插值单元580。
在图6的实施例中,数据选择单元560包括2个多路转换器,其接收1/2像素插值单元540输出的6行数据(G、b、h、j、b′和G′)并输出2行行数据。1/4像素插值单元580产生各个多路转换器的选择信号SEL1和SEL2。1/4像素插值单元580接收熵解码单元10提供的运动矢量X_Frac、Y_Frac,并选择与1/4像素插值所处位置相应的1/2像素值。如果熵解码单元10提供的运动矢量X_Frac、Y_Frac表示1/2像素值,1/4像素插值单元580不进行其他1/4像素插值,但从1/2像素插值单元540输出的1/2像素插值结果作为实际的1/4像素插值结果。当熵解码单元10提供的运动矢量X_Frac、Y_Frac表示1/4像素值时,1/4像素插值单元580使用1/2像素插值单元540输出的2个行数据项进行1/4像素插值,以输出16个像素数据。
之后,参照图12,1/4像素插值单元580接收1/2像素插值单元540输出的2个行数据项以输出16个1/4像素值。1/4像素插值单元580包括16个1/4像素插值算子。通过16个1/4像素插值算子对各个像素并行进行1/4像素插值。将参照图12描述16个1/4像素插值算子中的一个1/4像素插值算子5811的结构。
参照图12,当1/4像素插值算子5811的输入数据项为D11和D22且1/4像素插值结果为OUT4时,使用下列等式:
【等式3】
OUT4=Clip{(D11+D22+1)/2}.
分割块的行线采用上述算式计算。这大约为1/2像素插值结果的平均值。
1/4像素插值单元580输出的数据为16个像素值,且输出数据中的有效像素数随解码宏块的单位而变化(如4像素、8像素和16像素)。根据本发明的某些实施例,一电路具有16个像素的大小,以便能接受对上述各种宏块的所有操作结果。可根据熵解码器10产生的模式信号(未显示)选择应用于插值电路500的块大小。
下面将描述对一宏块插值所用时间。当宏块由4×4像素组成时,处理一个宏块所花费的时间为总共352个时钟周期。当宏块由8×8像素组成时,处理一个宏块所花费的时间为总共152个时钟周期。当宏块由16×16像素组成时,处理一个宏块所花费的时间为总共70个时钟周期。因此,根据本发明某些实施例的插值电路/方法可在676个周期内完成高清晰(HD)图象的插值操作。因此,根据本发明某些实施例的插值电路/方法适合于处理高质量图象,如HD图象。
如上所述,根据本发明某些实施例的插值电路/方法500不进行包含大量计算的1/4像素插值,而是将1/2像素插值与1/4像素插值分开,以分步进行1/2像素插值和1/4像素插值。可根据运动矢量有选择地进行1/4像素插值,且可将寄存器中存储的数据以行为单位向下移动进行1/2像素插值。因此,可更快地进行计算。由于在寄存器移位的同时,可同时进行与插值有关的不同操作,因此操作时间减少。由于插值中包含的寄存器数量减少或最少,寄存器支持可变大小的子宏块,且像素在一个方向上移动,因此有可能简化这些插值电路/方法的结构。在这种情况下,由于H.264的可变块大小特征,复杂性会或多或少增加。然而,可将1/2像素插值应用于所有块大小。
如上所述,根据本发明的不同实施例,采用潜在小大小和潜在简单电路结构,有可能进行高速1/4像素插值,其支持运动图象压缩标准,如H.264/JVT/MPEG4 Part 10/其他标准,和/或与标准无关。
在附图及说明书中,已公开了本发明的实施例,且尽管采用特定术语,它们仍具有一般的描述意义,而不是为了加以限制,将在所附权利要求中阐明本发明的范围。
Claims (20)
1.一种图象插值装置,包括:
一数据存储单元,其存储待插值的宏块数据和插值时使用的外围宏块数据;
一1/2像素插值单元,其接收相应于数据存储单元的一行的数据,并在其中进行1/2像素插值;
一数据选择单元,其响应于数据选择信号选择从1/2像素插值单元输出的多个1/2像素插值结果中的一部分;以及
一1/4像素插值单元,其响应于解码图象的运动矢量产生数据选择信号,并响应于数据选择单元选择的1/2像素插值结果进行1/4像素插值;
其中根据运动矢量有选择地进行1/4像素插值。
2.根据权利要求1所述的图象插值装置,其中当宏块大小为M×N时,数据存储单元中存储的数据大小为(M+5)×(N+5)。
3.根据权利要求1所述的图象插值装置,其中该1/2像素插值单元包括:
一输入缓存器,其响应于时钟信号接收行数据,并顺序移动之前所接收的行数据,以存储多个行数据项;
一第一算子,其接收输入缓存器中的一行数据项,以对该行数据中的多个像素值并行进行第一方向的1/2像素插值;
一第二算子,在第一算子进行1/2像素插值的同时,其接收输入缓存器中的一行数据项,以对该行数据中的多个像素并行进行第二方向的1/2像素插值;
一第三算子,其接收第二算子的1/2像素插值结果,以进行第一方向的1/2像素插值;以及
一输出缓存器,其存储输入缓存器输出的行数据和第一到第三算子执行的1/2像素插值结果。
4.根据权利要求3所述的图象插值装置,其中第一到第三算子将该行数据中的多个像素值偏移一个像素,以对相同行中存在的多个像素并行进行1/2像素插值。
5.根据权利要求3所述的图象插值装置,
其中当数据存储单元的大小为(M+5)×(N+5)时,输入缓存器包括(M+5)个行寄存器,用于按像素存储从数据存储单元接收的大小为(N+5)的行数据;以及
其中将属于不同行的多个数据项存储在每个行寄存器中。
6.根据权利要求5所述的图象插值装置,其中第二算子对输入缓存器的各个(M+5)个行寄存器中存储的数据并行进行1/2像素插值。
7.根据权利要求3所述的图象插值装置,其中第一到第三算子分别进行Clip[{C1-5*C2+20*C3+20*C4-5*C5+C6}+16]/32]的1/2像素插值操作,其中输入数据为C1、C2、C3、C4、C5和C6。
8.根据权利要求7所述的图象插值装置,其中第一到第三算子为每个具有权重1、-5、2-、20、-5和1的6抽头有限冲击响应(FIR)滤波器。
9.根据权利要求3所述的图象插值装置,其中输出缓存器包括:
第一个行寄存器,其存储从输入缓存器输入的行数据;
第二个行寄存器,其存储第一算子获得的1/2像素插值结果;
第三个行寄存器,其存储第二算子获得的1/2像素插值结果;
第四个行寄存器,其存储第三算子获得的1/2像素插值结果;
第五个行寄存器,其存储上一时钟周期从输入缓存器输入的行数据;以及
第六个行寄存器,其存储上一时钟周期第一算子获得的1/2像素插值结果。
10.根据权利要求9所述的图象插值装置,其中数据选择单元响应于数据选择信号输出在第一到第六个行寄存器之中的2个行寄存器中存储的数据。
11.根据权利要求10所述的图象插值装置,其中当输入数据项为D11和D22时,1/4像素插值单元进行Clip{(D11+D22+1)/2}的1/4像素插值操作。
12.一种图象插值装置,包括:
一1/2像素插值单元,其对输入数据进行1/2像素插值,以提供1/2像素插值结果;
一数据选择单元,其选择1/2像素插值结果的一部分,以提供所选择部分1/2像素插值结果;以及
一1/4像素插值单元,其响应于运动矢量对所选择的部分1/2像素插值结果进行1/4像素插值。
13.根据权利要求12所述的图象插值装置,其中1/2像素插值单元对与运动矢量无关的输入数据进行1/2像素插值。
14.根据权利要求12所述的图象插值装置,其中1/4像素插值单元还响应于运动矢量产生数据选择信号,且其中数据选择单元响应于数据选择信号选择部分1/2像素插值结果。
15.根据权利要求13所述的图象插值装置,其中1/4像素插值单元还响应于运动矢量产生数据选择信号,且其中数据选择单元响应于数据选择信号选择部分1/2像素插值结果。
16.根据权利要求15所述的图象插值装置,
其中1/2像素插值单元对输入数据进行1/2像素插值,以提供6行1/2像素插值结果;
其中数据选择单元从6行1/2像素插值结果中选择2行;以及
其中1/4像素插值单元对所选择的6行1/2像素插值结果中的2行进行1/4像素插值;
17.一种图象插值方法,包括:
对输入数据进行1/2像素插值,以提供1/2像素插值结果;
选择一部分1/2像素插值结果,以提供所选择部分的1/2像素插值结果;以及
响应于运动矢量对所选择部分的1/2像素插值结果进行1/4像素插值。
18.根据权利要求17所述的图象插值方法,其中进行1/2像素插值包括对与运动矢量无关的输入数据进行1/2像素插值。
19.根据权利要求18所述的图象插值方法,还包括响应于运动矢量产生数据选择信号,且其中响应于数据选择信号选择一部分1/2像素插值结果。
20.根据权利要求19所述的图象插值装置,
其中进行1/2像素插值包括对输入数据进行1/2像素插值,以提供6行1/2像素插值结果;
其中选择一部分1/2像素插值结果包括选择6行1/2像素插值结果中的2行;以及
其中进行1/4像素插值包括对所选择的6行1/2像素插值结果中的2行进行1/4像素插值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020040038328A KR100605105B1 (ko) | 2004-05-28 | 2004-05-28 | 영상 보간 장치 |
KR38328/04 | 2004-05-28 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1703094A true CN1703094A (zh) | 2005-11-30 |
CN1703094B CN1703094B (zh) | 2010-09-29 |
Family
ID=34941485
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200510074679XA Expired - Fee Related CN1703094B (zh) | 2004-05-28 | 2005-05-30 | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US7929612B2 (zh) |
EP (1) | EP1605704A3 (zh) |
KR (1) | KR100605105B1 (zh) |
CN (1) | CN1703094B (zh) |
TW (1) | TWI277910B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100493192C (zh) * | 2006-12-01 | 2009-05-27 | 清华大学 | 一种h.264解码器的运动补偿插值方法 |
CN105915915A (zh) * | 2010-10-06 | 2016-08-31 | Sk电信有限公司 | 使用高精度滤波器编码/解码视频的方法和设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007053554A (ja) * | 2005-08-17 | 2007-03-01 | Sony Corp | 符号化装置、符号化方法、復号装置、復号方法およびプログラム |
KR100804451B1 (ko) * | 2006-09-25 | 2008-02-20 | 광운대학교 산학협력단 | 영상처리의 1/4 픽셀 보간 방법 및 그의 프로세서 |
US9077971B2 (en) | 2008-04-10 | 2015-07-07 | Qualcomm Incorporated | Interpolation-like filtering of integer-pixel positions in video coding |
US9967590B2 (en) | 2008-04-10 | 2018-05-08 | Qualcomm Incorporated | Rate-distortion defined interpolation for video coding based on fixed filter or adaptive filter |
US8705622B2 (en) | 2008-04-10 | 2014-04-22 | Qualcomm Incorporated | Interpolation filter support for sub-pixel resolution in video coding |
US8855446B2 (en) * | 2012-04-19 | 2014-10-07 | Qualcomm Incorporated | Accelerated video compression multi-tap filter and bilinear interpolator |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6965644B2 (en) * | 1992-02-19 | 2005-11-15 | 8×8, Inc. | Programmable architecture and methods for motion estimation |
US5398079A (en) | 1993-01-27 | 1995-03-14 | General Instrument Corporation | Half-pixel interpolation for a motion compensated digital video system |
JPH0837662A (ja) * | 1994-07-22 | 1996-02-06 | Hitachi Ltd | 画像符号化復号化装置 |
US5638128A (en) | 1994-11-08 | 1997-06-10 | General Instrument Corporation Of Delaware | Pixel interpolation filters for video decompression processor |
KR100192270B1 (ko) * | 1996-02-03 | 1999-06-15 | 구자홍 | 에이치디티브이 비데오 디코더 회로 |
US5818532A (en) * | 1996-05-03 | 1998-10-06 | Lsi Logic Corporation | Micro architecture of video core for MPEG-2 decoder |
KR100602148B1 (ko) * | 1997-12-30 | 2006-11-30 | 엘지전자 주식회사 | 1/4픽셀 움직임 벡터를 이용한 동영상 압축방법 |
EP1119975B1 (en) * | 1998-10-13 | 2003-04-23 | STMicroelectronics Asia Pacific Pte Ltd. | Motion vector detection with local motion estimator |
US6295089B1 (en) * | 1999-03-30 | 2001-09-25 | Sony Corporation | Unsampled hd MPEG video and half-pel motion compensation |
US6950469B2 (en) * | 2001-09-17 | 2005-09-27 | Nokia Corporation | Method for sub-pixel value interpolation |
US7620109B2 (en) | 2002-04-10 | 2009-11-17 | Microsoft Corporation | Sub-pixel interpolation in motion estimation and compensation |
JP2003348595A (ja) | 2002-05-28 | 2003-12-05 | Sony Corp | 画像処理装置および方法、記録媒体、並びにプログラム |
KR100472476B1 (ko) * | 2002-08-31 | 2005-03-10 | 삼성전자주식회사 | 움직임 보상을 위한 보간 방법 및 그 장치 |
CN1207920C (zh) * | 2003-09-05 | 2005-06-22 | 中国科学院计算技术研究所 | 一种分样本插值滤波方法 |
-
2004
- 2004-05-28 KR KR1020040038328A patent/KR100605105B1/ko not_active IP Right Cessation
-
2005
- 2005-05-11 TW TW094115172A patent/TWI277910B/zh not_active IP Right Cessation
- 2005-05-24 US US11/136,214 patent/US7929612B2/en not_active Expired - Fee Related
- 2005-05-27 EP EP05253276A patent/EP1605704A3/en not_active Withdrawn
- 2005-05-30 CN CN200510074679XA patent/CN1703094B/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100493192C (zh) * | 2006-12-01 | 2009-05-27 | 清华大学 | 一种h.264解码器的运动补偿插值方法 |
CN105915915A (zh) * | 2010-10-06 | 2016-08-31 | Sk电信有限公司 | 使用高精度滤波器编码/解码视频的方法和设备 |
CN105915915B (zh) * | 2010-10-06 | 2019-09-10 | Sk电信有限公司 | 一种视频解码设备 |
Also Published As
Publication number | Publication date |
---|---|
TW200539060A (en) | 2005-12-01 |
EP1605704A3 (en) | 2010-11-17 |
KR20050112891A (ko) | 2005-12-01 |
US7929612B2 (en) | 2011-04-19 |
CN1703094B (zh) | 2010-09-29 |
US20050265458A1 (en) | 2005-12-01 |
TWI277910B (en) | 2007-04-01 |
KR100605105B1 (ko) | 2006-07-26 |
EP1605704A2 (en) | 2005-12-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1703094A (zh) | 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法 | |
TWI536811B (zh) | 影像處理方法與系統、解碼方法、編碼器與解碼器 | |
CN1290342C (zh) | 可执行区块比对移动补偿与全域移动补偿的装置与方法 | |
CN1794814A (zh) | 流水线化解块滤波器 | |
CN105681807A (zh) | 一种基于h264协议的分像素运动矢量计算方法和装置 | |
CN103227919B (zh) | 一种基于多核处理器Tilera的SVC编码方法 | |
CN106170093B (zh) | 一种帧内预测性能提升编码方法 | |
CN101729893B (zh) | 基于软硬件协同处理的mpeg多格式兼容解码方法及其装置 | |
CN101188761A (zh) | Avs标准中基于并行处理来优化dct快速算法的方法 | |
CN1325220A (zh) | 运动向量编码方法 | |
CN102932643B (zh) | 一种适用于hevc标准的扩展可变块运动估计电路 | |
WO2023000695A1 (zh) | 视频编码参考块的压缩方法、编码方法和装置 | |
CN101146222A (zh) | 视频系统的运动估计内核 | |
CN1589028A (zh) | 基于像素流水的帧内预测装置及预测方法 | |
CN102801982B (zh) | 一种应用于视频压缩且基于块积分的快速运动估计方法 | |
CN101841722B (zh) | 滤波边界强度的检测装置的检测方法 | |
CN101426139B (zh) | 图像压缩装置 | |
CN100568920C (zh) | 串行输入并行输出的视频图像亮度插值的方法和装置 | |
CN105100799A (zh) | 一种减少hevc编码器中帧内编码时延的方法 | |
CN101256668A (zh) | 一种计算均衡的多核进行视频滤波的方法 | |
Jiang et al. | Highly paralleled low-cost embedded HEVC video encoder on TI KeyStone multicore DSP | |
CN1520187A (zh) | 用于视频数据压缩的系统和方法 | |
Joshi et al. | VLSI architecture of high speed SAD for high efficiency video coding (HEVC) encoder | |
Igarashi et al. | Highly parallel transformation and quantization for HEVC encoder on GPUs | |
CN104602026B (zh) | 一种适用于hevc标准下编码器中全复用的重建环路结构 |
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: 20100929 Termination date: 20130530 |