CN1767644A - 用于视频编码的非整数像素共享 - Google Patents

用于视频编码的非整数像素共享 Download PDF

Info

Publication number
CN1767644A
CN1767644A CNA2005100720770A CN200510072077A CN1767644A CN 1767644 A CN1767644 A CN 1767644A CN A2005100720770 A CNA2005100720770 A CN A2005100720770A CN 200510072077 A CN200510072077 A CN 200510072077A CN 1767644 A CN1767644 A CN 1767644A
Authority
CN
China
Prior art keywords
integer pixel
video
pixel value
motion
filter
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.)
Pending
Application number
CNA2005100720770A
Other languages
English (en)
Inventor
S·莫洛伊
L·F·黄
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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN1767644A publication Critical patent/CN1767644A/zh
Pending 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了视频编码技术和实现这些技术的视频编码设备。在一个实施例中,本公开内容描述了包含运动估算器的一个视频编码设备,运动估算器产生运动估算的非整数像素值,该运动估算器包括可接收至少3个整数像素值的输入的一个滤波器。该视频编码设备还包括一个存储器,它存储运动估算器产生的非整数像素值,以及一个运动补偿器,它利用存储的非整数像素值用于运动补偿。

Description

用于视频编码的非整数像素共享
技术领域
本文公开的内容涉及数字视频处理,更具体地涉及视频序列的编码。
背景技术
数字视频能力可以被结合到范围广泛的设备中,这些设备包括数字电视、数字直播系统、无线通信设备、个人数字助理(PDA)、膝上型计算机、台式计算机、数码相机、数字记录设备、蜂窝式或卫星无线电话,等等。数字视频设备在创建、修改、传输、存储、记录和播放全运动视频序列方面与传统的模拟视频系统相比提供了显著的改进。
已建立了许多不同的视频编码标准用于数字视频序列的编码。例如,运动图像专家组标准(MPEG)已开发了包括MPEG-1、MPEG-2和MPEG-4的许多标准。其它标准包括国际电联(ITU)H.263标准,由Cupertino California的苹果计算机公司研发的QuickTimeTM技术,由华盛顿的雷德蒙(Redmond)的微软公司研发的WindowTM视频,英特尔公司研发的IndeoTM,华盛顿西雅图的RealNetworks公司的RealVideoTM,以及SuperMac公司研发的CinepakTM。新标准不断出现和演进,包括ITUH.264标准和大量专属标准。
许多视频编码标准通过以压缩方式对数据进行编码,允许来改善视频序列的传输速率。压缩可降低需要被传输的数据总量,以有效地传输视频帧。例如,多数视频编码标准利用设计的图形与视频压缩技术方便视频与图像在更窄的带宽上的传输,这是与没有压缩时占用的带宽相比较。
例如,MPEG标准以及ITU H.263和ITU H.264标准支持视频编码技术,这些技术利用了连续视频帧之间的相似性,这被称为时间或帧间相关,以提供帧间压缩。该帧间压缩技术通过把视频帧的基于像素的表示转变为运动表示利用跨越这些帧的数据冗余。另外,一些视频编码技术可利用被称为空间或帧内相关的帧内的相似性进一步压缩视频帧。
为支持压缩,数字视频设备典型地包括压缩数字视频序列的编码器,和对数字视频序列解压缩的解码器。在许多情况下,编码器和解码器形成一个集成的编码器/解码器(CODEC),它在帧内部的像素块上操作,这些帧定义了视频图像的序列。例如,在MPEG-4标准中,编码器典型地把要传输的一个视频帧分成“宏块”,宏块包含16×16像素阵列。ITU H.264标准支持16×16视频块、16×8视频块、8×16视频块、8×8视频块、8×4视频块、4×8视频块、和4×4视频块。
对于视频帧中的每个视频块来说,编码器寻找一个或多个直接在前的视频帧(或在后的帧)的类似大小的视频块,以识别最相似的视频块,这被称为“最佳预测”。对当前视频块与其它帧的视频块相比较的过程通常被称为运动估算。一旦一个视频块的“最佳预测”被识别,编码器可以对当前视频块与该最佳预测之间的差值进行编码。对当前视频块与该最佳预测之间的差值进行编码的过程包括被称为运动补偿的过程。运动补偿包括创建差值块的过程,差值块表示要被编码的当前视频块与最佳预测之间的差值。运动补偿通常指的是利用运动矢量取得最佳预测块,然后从一个输入块减去最佳预测的以产生一个差值块的行为。
在运动补偿已创建差值块之后,一系列另外的编码步骤被典型地执行,以对该差值块进行编码。这些另外的编码步骤可取决于使用的编码标准。在MPEG4兼容的编码器中,例如,这些另外的编码步骤可包括8×8离散余弦变换,然后是标量量化(scalar quantization),然后是光栅-Z字形(raster-to-zigzag)重排,然后是行程编码,然后是霍夫曼编码。
被编码的差值块可以与一个运动矢量一起被传输,运动矢量指出来自前面帧的哪个视频块用于编码。解码器接收该运动矢量和该编码的差值块,对收到的信息进行解码,以重建该视频序列。
在许多标准中,在运动估算和运动补偿过程中也产生半像素值。例如,在MPEG4中,产生半像素值作为两个相邻像素之间的平均像素值。该半像素在候选视频块中使用,可以形成运动估算过程中识别出的最佳预测的一部分。相对简单的2-抽头(tap)滤波器可用于产生半像素值,因为它们在运动估算和运动补偿过程中是需要的。非整数像素值的产生可提高帧内相关的分辨率,但通常使编码与解码过程复杂化。
发明内容
本公开内容描述了视频编码技术和实现这些技术的视频编码设备。描述的视频编码技术可用于范围广泛的各种编码标准,这些标准允许在运动估算和运动补偿中使用非整数像素值。具体地,在运动估算和运动补偿中利用了半像素和四分之一像素值的如ITU H.264标准的视频编码标准可具体地从本文描述的技术受益。更普遍地,在给定的维度中,在如垂直或水平方向中的非整数像素值的产生中指定3-抽头或更多抽头的滤波器的任何标准,可以从本文描述的技术受益。这些技术对于便携式设备是特别有用的,其中处理开销可极大地影响设备的大小和电池的消耗。
在一个实施例中,本公开内容描述了包含运动估算器的一个视频编码设备,运动估算器产生运动估算的非整数像素值,该运动估算器包括接收至少3个整数像素值的输入的一个滤波器。该设备还包括一个存储器,它存储运动估算器产生的非整数像素值,以及一个运动补偿器,它利用存储的非整数像素值用于运动补偿。例如,为与ITU H.264标准兼容,该运动估算器可利用6-抽头滤波器产生半像素值,并存储这些半像素值,以同时在运动估算和运动补偿中应用。该运动估算器也可利用2-抽头滤波器产生四分之一像素值,并在运动估算中利用该四分之一像素值,而不为运动补偿存储四分之一像素值。在该情况下,该运动补偿器利用运动估算器产生的存储的半像素值,但利用另一个2-抽头滤波器重新产生四分之一像素值。在一些情况下,分离的滤波器可对水平和垂直插值两者实现,但任何大型滤波器(3-抽头或更多抽头的)的输出可重新用于运动估算和运动补偿。在其它情况下,同样大型的滤波器可同时用于水平和垂直的插值。但在这些情况下,编码设备的时钟速度可需要被增加。
本文描述的这些和其它技术可在硬件、软件、固件或其组合的数字视频设备中应用。如果是在软件中实现,这些技术是针对包括程序代码的计算机可读介质,当程序代码被执行时,可运行在此描述的一个或多个编码技术。各种实施例的另外的细节是在附图和下文的描述中被阐述。其它特点、目标和优点从本文的描述、附图和权利要求中将变得明显。
附图说明
图1是一个框图,表示一个示例性的系统,其中源数字视频设备传输视频数据的编码序列到接收数字视频设备。
图2是包括视频编码器的设备的一个示例性框图。
图3是包括视频编码器的设备的另一个示例性框图。
图4是对应于4像素×4像素视频块的一个位置周围形成的一个示例性搜索空间的图。
图5是包括多列半像素值的一个示例性搜索空间的图。
图6是包括多行和多列半像素值的一个示例性搜索空间的图。
图7是一个搜索空间和能从该搜索空间产生以支持解码的各种像素的图表。
图8是表示视频编码技术的一个流程图。
具体实施方式
图1是一个框图,表示一个示例性的系统10,其中源设备12通过通信链路15发送视频数据的一个编码序列到接收设备14。源设备12和接收设备14都是数字视频设备。具体地,源设备12以一个视频标准,如ITUH.264视频编码标准对视频数据进行编码,这样的标准允许在运动估算和运动补偿中有非整数像素值。系统10实施这些技术,其中非整数像素值为运动估算和运动补偿两者而产生、存储和使用。这消除了在运动估算器和运动补偿器中对大型滤波器的需要,以产生相同的非整数像素值。本文描述的技术使用任何公布的或专属标准都特别有用,这些标准在给定的维度,如垂直或水平插值的非整数像素值的产生中指定3-抽头滤波器或更多抽头滤波器。但是,根据本公开,较小滤波器(2-抽头滤波器)产生的任何非整数像素值当在有需要时可产生,不必要为以后的使用而存储这些值。
通信链路15可包括无线链路、物理传输线路、光纤、如局域网、广域网或诸如因特网的全球网的分组交换网络、公用交换电话网(PSTN),或任何其它能够传输数据的通信链路。因而,通信链路15代表任何合适的通信介质,或不同网络和链路的可能的组合,以从源设备12向接收设备14传输视频数据。
源设备12可以是能够编码和传输视频数据的任何数字视频设备。源设备12可包括存储数字视频序列的视频存储器16,对该序列进行编码的视频编码器18和通过通信链路15向接收设备14传输编码序列的发送器20。视频编码器18可包括,例如各种硬件、软件或固件,或如本文所述的,执行可编程软件模块以控制视频编码技术的一个或多个数字信号处理器(DSP)。可提供有关的存储器和逻辑电路来支持DSP控制视频编码技术。如将要描述的,视频编码器18可以被配置以产生非整数像素值,可使用产生的非整数像素值,用于运动估算和运动补偿两者。
源设备12还可包括一个视频捕捉设备23,如摄像机,以捕捉视频序列,和在存储器16中存储捕捉的序列。具体地,视频捕捉设备23可包括电荷耦合器件(CCD)、电荷注入器件、光电二极管阵列、互补金属氧化物半导体(CMOS)器件,或任何能够捕捉视频图像或数字视频序列的其它光敏设备。
如进一步的示例,视频捕捉设备23可以是一个视频转换器,其把来自如电视、卡式录像机、摄像机、或另一视频设备的模拟视频数据转换为数字视频数据。在一些实施例中,源设备12可被配置为通过通信链路15传输实时的视频序列。在该情况下,接收设备14可接收实时的视频序列和把该视频序列显示给用户。可替代地,源设备12可捕捉和编码视频序列,视频序列可作为视频数据文件,即以非实时的方式发送给接收设备14。这样,源设备12和接收设备14可支持这些应用,如视频剪辑回放、视频邮件、或如在移动无线网络上的视频会议。设备12和14可包括没有在图1中特别示出的各种其它元件。
接收设备14可采用的接收和解码视频数据的任何数字视频设备的形式。例如,接收设备14可包括一个接收器22,例如通过中间链路、路由器、其它网络设备等等来从发送器20接收编码的数字视频序列。接收设备14还可包括对该序列进行解码的一个视频解码器24,以及把该序列显示给用户的一个显示设备26。但在一些实施例中,接收设备14可以不包括集成显示设备14。在这样的情况下,接收设备14可以作为接收器,对接收的视频数据进行解码,以驱动单独的显示设备,如一台电视或监视器。
源设备12和接收设备14的示例性设备可包括位于计算机网络上的服务器、工作站或其它台式计算设备,以及如膝上型计算机或个人数字助理(PDA)的移动计算设备。其它示例包括如数字电视的数字电视广播卫星和接收设备、数码相机、数码摄像机或其它数字记录设备、诸如具有视频能力的移动电话的数字视频电话、具有视频能力的直接双向通信设备、其它无线视频设备,等等。
在一些情况下,源设备12和接收设备14各自包括一个编码器/解码器(CODEC)(未示出),以对数字视频数据进行编码和解码。尤其是,源设备12和接收设备14都包括发送器、接收器、以及存储器和显示器。下文中列出的许多编码技术是在包括编码器的数字视频设备的背景中被描述的。但应理解的是,该编码器可形成CODEC的一部分。在这一情况下,CODEC可在硬件、软件、固件、DSP、微处理器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、单独的硬件部件或其各种组合中执行。另外,本文描述的编码技术允许各种数字滤波器或硬件部件既应用于编码又应用于解码操作。
源设备12内的视频编码器18对一系列视频帧内的像素块进行操作,以对视频数据进行编码。例如,视频编码器18可执行运动估算和运动补偿技术,其中被传输的一个视频帧被分成多个像素块(被称为视频块)。为了进行说明,这些视频块可包括任何大小的块,并可在给定的视频序列中变化。作为一个例子,ITU H.264标准支持16×16视频块、16×8视频块、8×16视频块、8×8视频块、8×4视频块、4×8视频块、和4×4视频块。较小的视频块可在编码中提供更好的分辨率,对于包括更高层细节的视频帧的定位是特别有用的。而且,如下文所述,视频编码器18可被设计为以管线化方式操作于4×4视频块,如有需要,从4×4视频块重建较大的视频块。
视频块中的每个像素可由一个n-位值,如8位来表示,这定义了该像素的可视特征,如颜色和亮度以色度和亮度值来表示。但是因为人类的视觉对亮度的变化比对色度的变化更敏感,因此经常只在亮度部分进行运动估算。因此,为了进行运动估算,全部的n-位值可对一个给定的像素的亮度进行量化。但本文的原理不限于该像素的格式,可扩展到使用更简单的较少位的像素格式或更复杂的较多位的像素格式。
对于视频帧中的每个视频块,源设备12的视频编码器18通过搜索存储在存储器16中的视频块来执行运动估算,这些视频块是已被传输的一个或多个在前的视频帧(或在后的视频帧),以识别一个相似的视频块。在从在前或在后的视频帧中确定一个“最佳预测”后,视频编码器18执行运动补偿,以创建指示出当前要被编码的视频块与最佳预测之间的差值的一个差值块。运动补偿通常指的是利用运动矢量取得最佳预测,以及随后从一个输入块中减去最佳预测以产生一个差值块的行为。
在运动补偿过程已创建差值块之后,一系列另外的编码步骤典型地被执行,以对差值块编码。这些另外的编码步骤取决于使用的编码标准。例如,在MPEG4兼容的编码器中,另外的编码步骤可包括一个8×8离散余弦变换,然后是标量量化,然后是光栅-Z字形(raster-to-zigzag)重排序,然后是行程编码,然后是霍夫曼编码。
一旦被编码,被编码的差值块可与运动矢量一起被传输,运动矢量从用于编码的在前的帧(或在后的帧)识别视频块。以该方式,代替将每个帧编码作为一个独立图像,视频编码器18对相邻帧之间的差值进行编码。这样的技术显著地降低了精确地表示一个视频序列的每个帧所需的数据量。
尽管可以使用运动矢量的其它格式,不过运动矢量可相对于被编码的视频块的左上角定义一个像素位置。在任何情况下,通过利用运动矢量对视频块编码,可极大地降低视频数据流的传输所用的带宽。
在一些情况下,视频编码器18除了帧间编码之外,还支持帧内编码。帧内编码利用了帧内部的相似性,这称为空间或帧内相关,以进一步压缩视频帧。帧内压缩典型地基于压缩静止图像的纹理编码,如离散余弦变换(DCT)编码。帧内压缩常常结合帧间压缩来使用,但也可在一些实施中被用作一个替代。
接收设备14的接收器22可接收编码的视频数据,其形式是运动矢量和表示被编码的视频块与运动估算中使用的最佳预测之间的编码差值的编码差值块。解码器24执行视频解码,来产生通过显示设备26显示给用户的视频序列。接收设备14的解码器24也可实现为一个编码器/解码器(CODEC)。在这一情况下,源设备12和接收设备14都能够对数字视频序列进行解码、传输、接收和解码。
根据本公开内容,在视频编码过程中从3个或更多输入像素值以给定的维度(水平或垂直)产生的非整数像素值可被存储在视频编码器18的本地内存上,然后用于运动估算和运动补偿两者。存储的非整数像素值可单独地被缓冲,或分配给任何特定的存储器位置,只要在有需要时非整数像素值可被定位和识别。相反,从两个输入像素值以给定的维度产生的非整数像素值不需要对任何大量时间存储,但如有需要时可为运动估算或运动补偿进行一般计算。
图2是设备12A的一个示例性的框图,设备12A包括视频编码器18A。图2中的设备12A可对应于图1中的设备12。如图2所示,设备12A包括对视频序列进行编码的一个视频编码器18A,和在编码之前与之后存储视频序列的一个视频存储器16A。设备12A还可包括发送被编码的序列到另一设备的发送器20A,以及可能的一视频捕捉设备23A,如摄像机,以捕捉视频序列和在存储器16A中存储捕捉的序列。设备12A的各种元件通过通信总线35A可进行通信上的连接。各种其它的元件,如帧内编码器件、各种滤波器或其它元件也可包括在设备12A中,但为了简化,这些器件没有被具体地示出。
视频存储器16A典型地包括一个相对大的存储空间。例如,视频存储器16A可包括动态随机存取存储器(DRAM)或FLASH存储器。在其它例子中,视频存储器16A可包括非易失性存储器或任何其它数据存储设备。
视频编码器18A包括一个本地内存25A,其可包括相对视频存储器16A更小、更快的内存空间。以示例的方式,本地内存25A可包括同步随机存取存储器(SRAM)。本地内存25A还可包括与视频编码器18A的其它部件集成在一起的“片上(on-chip)”存储器,以在处理器高强度的编码处理过程中提供非常快速的数据存取。在给定的视频帧的编码过程中,被编码的当前视频块可以从视频存储器16A加载到本地内存25A。定位最佳预测所用的搜索空间也可从视频存储器16A加载到本地内存25A。该搜索空间可包括一个或多个在前视频帧(或在后帧)的像素的子集。选择的子集可被预先识别作为最佳预测识别的一个相似位置,其与被编码的当前视频块非常匹配。
在许多视频标准中,分数像素或非整数像素在编码过程中也被考虑。例如,在MPEG-4中,计算半像素值作为两个相邻像素之间的平均值。在MPEG-4兼容编码器中,如有需要,使用具有两个输入和一个输出的较简单的数字滤波器可在给定的维度上容易地产生两个相邻像素之间的平均值,它通常被称为2-抽头数字滤波器。
通过示例的方式,在简单的MPEG2或MPEG4情况下,如果插值是同时水平地和垂直地进行的,则在每个维度上可应用2-抽头数字滤波器。可替代地,在二维上的插值可以当作单个的4-抽头平均滤波器来完成。当滤波器在给定维度上指定超过2个输入时,或用于二维插值而超过5个输入时,本文所述的技术将非常有用。
数字滤波器的抽头权重由编码标准来指定。为支持MPEG-4标准,运动估算器26A和运动补偿器28A可包括相似的2-抽头数字滤波器,其利用下载到本地内存25A的搜索空间的整数像素值,在任何时间为水平和垂直维度产生半像素值。
但是,对于一些更新的标准,产生非整数像素更为复杂。例如,许多更新的标准指定基于超过这两个像素的加权和在给定的维度上产生半像素值。作为一个具体例子,ITU H.264标准规定同时在水平和垂直维度上计算半像素值作为6个像素之间的加权平均值。对于分数的水平像素,半像素值的左边上的3个像素与半像素值的右侧的3个像素类似地被加权。对于分数的垂直像素,在半像素值的顶部的3个像素与半像素值的底部3个像素相似地被加权。在这两种情况下,一般需要具有6个输入和一个输出的滤波器(6-抽头数字滤波器)来产生半像素值。
另外,ITU H.264标准还规定1/4像素值的产生,其计算作为一个整数像素与一个相邻半像素的平均值。因而,1/4像素值的产生典型地包括使用6-抽头滤波器,来产生半像素值,然后使用2-抽头滤波器来产生1/4像素值。许多专属标准也利用其它的加权平均规则用于非整数像素的产生,这对非整数像素值的产生增加了很大的复杂性。
根据本公开内容,在给定维度上从3个或更多输入像素值产生的非整数像素值可以作为部分的搜索空间存储在本地内存25A中。存储的非整数像素值可被单独缓存,或分配给任何特定的存储位置,只要当需要时非整数像素值可被定位和识别。相反,从两个输入像素值产生的非整数像素值不需要被存储大量时间,而可以在需要时进行通常的计算。
本公开内容认识到在大量时间存储任何非整数像素值所需要的本地内存25A中的另外的存储空间与对输入进行滤波和产生非整数像素值需要的硬件或处理能力之间的权衡。2-抽头滤波器在一个维度上执行起来非常简单,因此,在需要时,2-抽头滤波器可用于视频编码器的许多位置,以产生来自两个输入的非整数像素值。然而,在一个维度具有超过3个输入的滤波器,特别是用于兼容ITU H.264标准的6-抽头滤波器更为复杂。当需要这些较大的滤波器时,执行接收3个或更多输入的单一滤波器,然后在本地内存25A中存储或缓冲大型滤波器的输出,以在有需要时在编码处理中重新使用是更有优势的。
例如,视频编码器18A包括一个运动估算器26A和一个运动补偿器28A,它们在视频编码处理中分别进行运动估算和运动补偿。如图2所示,运动估算器26A与运动补偿器28A都各包括一个或多个非整数像素计算单元32A和36A。非整数像素计算单元32A与36A可包括一个或多个数字滤波器。但是,尽管2-抽头滤波器在非整数像素计算单元32A和36A中都可被复制,但任何N抽头滤波器(其中N代表一个大于或等于3的整数)可只在单元32A与36A之一中被执行。具有3个以上输入的滤波器的输出可存储在本地内存25A中,以在以后的编码处理中利用和重新使用。
在一些情况下,分离的滤波器可被实现用于水平和垂直插值两者,但任何大型滤波器(3-抽头或更多)的输出可被重新用于运动估算和运动补偿。在其它情况下,同样的大型滤波器可同时用于水平和垂直插值,大型滤波器的输出可被存储,用于运动估算和运动补偿两者。但其它条件下,时钟速度可需要被增加,因为单个的滤波器同时用于水平和垂直的插值,这可能增加功率消耗。
本地内存25A加载有要被编码的当前视频块和搜索空间,这包括部分或全部的在帧间编码中使用的一个或多个不同的视频帧。运动估算器26A把当前视频块与搜索空间中的各种视频块进行比较,以识别一个最佳预测。但在一些情况下,用于编码的一个适当匹配可被更快地识别,而不用特别地校验每个可能的候选者,在该情况下,虽然对有效的视频编码已足够,但适当匹配可能实际上不是“最佳”预测。
运动估算器26A支持利用非整数像素值的编码方案。尤其是,非整数像素计算单元32A可产生非整数像素值,其把搜索空间扩大到分数的或非整数像素值。水平非整数像素值和垂直非整数像素值都可被产生。从两个输入产生的任何非整数像素值可被使用,然后被丢弃,或在本地内存25A中重写,因为当需要时,这些从两个输入产生的非整数像素值可容易地重新产生。然而,从3个或更多的输入产生的任何非整数像素值可在本地内存25A中被使用和维持,以在编码处理中随后使用,因为从3个或更多输入产生的这些非整数像素值的产生和重新产生是更加复杂的。
视频块匹配单元34A执行要被编码的当前视频块与内存25A的搜索空间中的候选视频块之间的比较,候选视频块包括任何包括由非整数像素计算单元32A产生的非整数像素值的候选视频块。例如,视频块匹配单元34A可包括差分处理器,或一个软件例程,其执行差值计算,以识别最佳预测(或简单的一个适当预测)。
作为示例,视频块匹配单元34A可执行SAD技术(绝对误差和技术)、SSD技术(平方差和技术)、或如所希望的其它比较技术。SAD技术包括执行要被编码的当前视频块的像素值和与当前视频块相比的候选视频块的像素值之间的绝对差值计算的任务。这些绝对差值计算的结果被相加,即累加,以定义一个差值,指示当前视频块与候选视频块间的差值。对于一个8×8像素图像块,可以计算出64个差值并相加,对于16×16的像素宏块,可计算256个差值并相加。所有计算的全部总和可定义候选视频块的差值。
较低的差值一般表示一个候选视频块在与产生更高差值,即增加的失真的其它候选视频块相比是一个更好的匹配,并因而是,更好的候选者。在一些情况下,当累加的差值超过一个定义的阈值时,或当一个足够的匹配在早期被识别时,可以终止这些计算,即使还没有考虑其它候选的视频块。
SSD技术还包括进行要被编码的当前视频块的像素值与候选视频块的像素值之间的差值计算的任务。但在SSD技术中,差值计算的结果被平方,然后把平方值相加,即累加,以定义一个差值,指示当前视频块与当前宏块比较的候选视频块之间的差值。可替代地,视频块匹配单元34A可利用其它比较技术,如均方误差(MSE)、归一化互相关函数(NCCF),或其它合适的比较算法。
最后,视频块匹配单元34A可识别一个“最佳预测”,这是与要被编码的视频块最匹配的候选视频块。但可以理解的是,在许多情况下,在该最佳预测之前可以定位一个充分的匹配,在这样的情况下,该足够的匹配可用于编码。在下文描述中,参考了由视频块匹配单元34A所识别的“最佳预测”,但可以理解的是,本公开内容不限于该方面,任何足够的匹配可被利用并可能快于最佳预测被识别。
在一些实施例中,视频块匹配单元34A可以以管线化方式执行。例如,视频块匹配单元34A可包括一个处理管线,其同时处理一个以上的视频块。另外,在一些情况下,处理管线可被设计为在4像素×4像素上视频块上操作,即使要被编码的视频块的大小大于4像素×4像素视频块。在该情况下,相邻组的4像素×4像素候选视频块的差值计算可被相加,以表示一个更大的视频块的差值计算,如包括两个4像素×4像素候选块的一个4像素×8像素视频块,包括两个4像素×4像素候选块的一个8像素×4像素视频块,包括四个4像素×4像素候选块的一个8像素×8像素视频块,包括八个4像素×4像素候选块的一个8像素×16像素视频块,包括八个4像素×4像素候选块的一个16像素×8像素视频块,包括十六个4像素×4像素候选块的一个16像素×16像素视频块,等等。
在任何情况下,一旦一个视频块的最佳预测被视频块匹配单元34A所识别,运动补偿器28A就创建一个差值块,表示当前视频块与最佳预测之间的差值。视频块编码器39A可进一步对该差值块编码,来压缩该差值块,并且传送该编码的差值块以沿运动矢量传输到另一台设备,该运动矢量指出来自搜索空间的哪一个候选视频块被用于编码。因为具体的部件将随着被支持的特定标准而变化,为了描述的简化,在运动补偿后用于执行编码的另外部件被概括为差值块编码器39A。换言之,差值块编码器39A可对上述产生的差值块执行一个或多个传统的编码技术。
运动补偿器28A包括产生最佳预测的任何非整数像素的非整数像素计算单元36A。但如已列出的,运动补偿器28A的非整数像素计算单元36A只包括一个给定维度的2-抽头数字滤波器,一般不包括较大的数字滤波器,因为运动估算器26A的非整数像素计算单元32A的任何较大的数字滤波器的输出存储在本地内存25A中,以同时用于运动估算和运动补偿。因此,可以避免在运动补偿器28A中实现给定维度上的要求有3个或更多输入的数字滤波器的需求。
差值块计算单元38A产生一个差值块,其通常表示当前视频块与最佳预测之间的差值。该差值块还可被称为“预测矩阵”或“残差(residual)”。该差值块通常是代表最佳预测与当前视频块的像素值之间的差值的一个数值矩阵。即:
差值块=最佳预测的像素值-当前视频块的像素值
视频块编码器39对该差值块编码,以压缩该差值块,然后编码的视频块传送到发送器20A,以传输给另一设备。在一些情况下,编码的视频块可临时存储在视频存储器16A中,其中这些编码的视频块被累加,然后作为视频帧流通过发送器20A发送。在任何情况下,编码的视频块可采用编码的差值块和运动矢量的形式。差值块代表最佳预测与当前视频块的像素值之间的差值。运动矢量识别最佳预测的位置,无论是在帧内还是在该帧产生的分数像素内。在不同的视频标准中,有不同的方式来识别将运动矢量应用到的那个帧。例如,在H.264标准中,使用一个参考图像指数,在MPEG4或MPEG2中,该信息在宏块报头信息中携带。
图3是设备12B的另一个示例性框图,它包括一个视频编码器18B。图3中的设备12B可对应于图1中的设备12,与图2中的设备12A相似。图3中的设备12B代表一个比图2中显示的设备12A更具体的一个实施例。例如,设备12B可兼容ITU H.264视频编码标准。
如图3所示,设备12B包括对视频序列编码的一个视频编码器18B和在编码之前和之后存储视频序列的视频存储器16B。设备12B还可包括将编码的序列传输到另一设备的发送器20B和可能的视频捕捉设备23B,如摄像机,以捕捉视频序列和在存储器16B中存储捕捉的序列。设备12B的各种元件通过通信总线35B可实现通信上的连接。各种其它元件,如帧内编码器元件、各种滤波器或其它元件也可包含在设备12B中,但为了叙述的简化没有具体示出。
视频存储器16B典型地包括一个向对较大的存储空间。例如,视频存储器16B可包括DRAM、FLASH存储器,可能还有非易失的存储器或任何其它数据存储设备。
视频编码器18B包括一个本地内存25B,内存25B可包括比视频存储器16B更小、更快的内存空间。以示例的方式,本地内存25B可包括同步随机存取存储器(SRAM)。本地内存25B还可包括与视频编码器18B的其它部件集成在一起的“片上”存储器,以在处理器高强度编码处理过程中提供快速的数据存取。在给定视频帧的编码过程中,被编码的当前视频块可以从视频存储器16B加载到本地内存25B。
运动估算器26B把当前视频块与搜索空间中的各种视频块比较,以识别一个最佳预测。运动估算器26B支持利用半像素值和1/4像素值的ITU H.264编码方案。具体地,非整数像素计算单元32B可包括半像素插值的6-抽头滤波器31,和1/4像素插值的2-抽头滤波器33。水平的半像素与1/4像素值以及垂直的半像素和1/4像素值都可以被产生。
根据ITU H.264视频编码标准,6-抽头滤波器31产生半像素值作为6个连续像素的加权平均值。1/4像素值由2-抽头滤波器33产生,作为一个整数像素值与一个相邻的半像素值的平均值。换言之,滤波器的抽头权重可以由ITU H.264视频编码标准规定,尽管本公开内容不限于这一方面。
在一些情况下,分离的6-抽头滤波器在同时用于水平与垂直插值的运动估算器26B中实现,两个6-抽头滤波器的输出可用于运动估算和运动补偿。在其它情况下,同样的6-抽头滤波器可同时用于水平与垂直的插值。但在后一情况下,需要增加时钟速度,这将增加功率消耗。因此,可能更希望运用两个6-抽头数字滤波器,以在运动估算中进行分开的水平与垂直插值,然后,重新利用两个6-抽头数字滤波器的输出,以在运动补偿中进行水平与垂直插值。不管运动估算器26B是实现两个6-抽头滤波器水平和垂直的半像素插值,还是使用单个的6-抽头滤波器同时用于水平与垂直的半像素插值,在运动估算器26B与运动补偿器28B的每一个中可执行单个的2-抽头数字滤波器用于1/4像素插值。但是,也可包含另外的2-抽头滤波器,以加快处理速度。
无论如何,根据本公开内容,6-抽头滤波器31的半像素输出同时可用于运动估算和运动补偿。换言之,6-抽头滤波器31的半像素输出用于运动估算,然后存储在内存25B中,以用于在运动补偿中的后续使用。相反,2-抽头滤波器33的1/4像素输出只用于运动估算,然后被丢弃,或在内存25B中重写。
视频块匹配单元34B执行要被编码的当前视频块与内存25B的搜索空间中的候选视频块之间的比较,候选视频块包括任何包括由非整数像素计算单元32B产生的1/4或半像素值的候选视频块。例如,视频块匹配单元34B可包括差分处理器,或一个软件例程,其执行差值计算,以识别最佳预测(或只是一个充分预测)。作为示例,视频块匹配单元34A可执行SAD技术、SSD技术、或其它比较技术,如均方误差(MSE)、归一化互相关函数(NCCF),或其它合适的比较算法。
最后,视频块匹配单元34B可识别一个“最佳预测”,其是与要被编码的视频块最匹配的候选视频块。在一些实施例中,视频块匹配单元34B可以以管线化方式被执行。例如,视频块匹配单元34B可包括同时处理一个以上的视频块的处理管线。另外,在一些情况下,处理管线可被设计为在4像素乘以4像素上操作,即使要被编码的视频块大小大于4像素乘以4像素视频块。在该管线化实施例中,一旦像素被认为是在管线中,分配给1/4像素存储的内存可被重写,这可降低所需内存的量。当然,如本文所概述的,半像素值可被存储,以便以后使用。
一旦一个视频块的一个最佳预测被视频匹配单元34B所识别,运动补偿器28B可创建一个差值块,表示当前视频块与最佳预测之间的差值。运动补偿器28B然后可传送差值块到差值块编码器39B,编码器39B执行由ITU H.264编码标准支持的各种另外的编码。差值块编码器39B通过总线35B传送该编码的差值块到发送器20B,以沿着运动矢量传输到另一设备,该运动矢量指出哪个视频块用于该编码。
运动补偿器28B包括非整数像素计算单元36B,以产生最佳预测的任何非整数像素,它们没有存储在本地内存25B中。运动补偿器:28B的非整数像素计算单元36B只包括产生1/4像素值的一个2-抽头数字滤波器37,一般不包括产生半像素值的6-抽头数字滤波器,因为运动估算器26B的6-抽头数字滤波器31的半像素输出存储在本地内存25B中,以用于运动估计和运动补偿两者。因此,可避免在运动补偿器28B中使用6-抽头数字滤波器的需要。同样,2-抽头数字滤波器可非常容易地实现,而不需要大的芯片电路面积。相反,6-抽头数字滤波器更加复杂。因此,在给定视频块的编码处理过程中在大量时间缓存6-抽头数字滤波器31的半像素输出所需的另外的存储空间是值得的,因为这消除了对附加的6-抽头数字滤波器的需要。
差值块计算单元38B产生一个差值块,它通常代表当前视频块与最佳预测之间的差值。同样,差值块典型地如下计算:
差值块=最佳预测的像素值-当前视频块的像素值
运动补偿器28B发送差值块到差值块编码器39B,编码器39B对该差值块进行编码和压缩,并发送编码的差值块到发送器20B,以传输给另一设备。传输的信息可采取编码差值块和运动矢量的形式。差值块代表最佳预测与当前视频块的像素值之间的差值。运动矢量识别最佳预测的位置,无论它是在帧内,还是在从该帧产生的分数像素内。
图4是对应于4像素乘以4像素的视频块的一个位置的周围形成的一个示例性搜索空间40的图。具体地,搜索空间40可包括一个在前或在后视频帧的像素。要被编码的当前视频块可包括当前帧的一个4像素×4像素的视频块,它对应于搜索空间40的最中心像素42的位置。
图5是包括多列半像素值的一个示例性搜索空间50的图。标有“Bxx”的像素值对应于水平半像素值,如本文所述,可由6-抽头数字滤波器产生。例如,像素B00可包括像素A00-A05(图4)的加权平均值。滤波器的抽头权重可定义给定不同整数像素的加权,并可由被支持的标准来指定。标有“Bxx”的水平半像素值可存储在本地内存中,如本文所述,并重新用于运动估算和运动补偿两者。在不同的应用中,实际的存储方案可以有变化。在一个例子中,在本地内存中维持一个水平的缓冲器,以特别地用于存储水平半像素值,即那些标有“Bxx”的。
图6是包括多行和多列的半像素值的一个示例性搜索空间60的另一个图示。如本文所述,标有“Cxx”的像素值对应于垂直的半像素值,并可由运动估算器的6-抽头数字滤波器来产生。例如,像素C00可包括像素A02-A52(图5)的加权平均值,像素C01可包括像素B00-B05(图5)的加权平均值。如本文所述,标有“Cxx”的垂直半像素值可存储在本地内存中,并重新用于运动估算和运动补偿两者。但是,在不同的实施中,存储方案可有变化。在一个例子中,在本地内存中维持一个垂直缓冲器,以特别地用于存储垂直的半像素值,即那些标有“Cxx”的。
另外一个缓冲器可为1/4像素值分配,但该缓冲器在体积上更加受限制。1/4像素值可存储在1/4像素缓冲器中,但在被考虑之后,用其它的1/4像素值重写。本公开内容认识到从芯片应用的角度看,与另外的存储空间相比,2-抽头数字滤波器成本较低,否则,需要另外的存储空间以为给定视频块的全部编码处理而存储每个产生的1/4像素值。
另外,相同的硬件可同时用于编码和解码。解码方案的强度不大,如有需要时,一般要求产生像素值。根据本公开内容,在运动估算器和运动补偿器中使用的同样的数字滤波器还可用于解码,以产生任何非整数像素值。
图7是搜索空间70的一个图示,搜索空间70可用于对4像素×4像素的视频块进行解码。在该情况下,如果任何水平或垂直的像素值需要基于搜索空间70而被产生,则可使用运动估算器的6-抽头数字滤波器。一组像素72定义所有的水平像素值,当6-抽头数字滤波器用于兼容ITUH.264标准时,水平像素值可从搜索空间70产生。如图所示,像素B00包括像素A00-A05的加权和,像素B31包括像素A31-A36的加权和。对应于整数像素的加权和的垂直半像素值可以以类似方式产生,但为使本文简化而没有特别地示出。
同样,另外的垂直半像素值可从一组像素72产生,以定义另一组像素74。例如,像素C03可包括像素B03-B53的加权和。如需要,任何1/4像素值可以使用具有整数像素值和相邻半像素值的输入的2-抽头数字滤波器类似地产生。例如,在像素A02与A03之间更靠近像素A02的1/4像素值将是A02与B00的平均值。同理,在像素A02与A03之间更靠近像素A03的1/4像素值将是B00与A03的平均值。
重要的是,用于编码的相同硬件,即6-抽头数字滤波器和各种2-抽头数字滤波器,可用于产生基于搜索空间70解码所需的任何输出,作为输入。因此,本文所述的编码技术是与解码方案完全一致的,其中同样的硬件可同时用于编码和解码。
图8是一个示意视频编码技术的流程图。为了进行说明,将从图3中的设备12B的角度描述图8。视频编码技术可包括图8中所示的所有步骤,或所示步骤的一个子集。如图8所示,视频编码器18B从视频存储器16B加载搜索区的整数像素到本地内存25B中(81)。然后,视频块匹配单元34B可以为整数视频块,即只有整数像素值的视频块,立即开始进行运动估算差值计算(82)。同时,6-抽头数字滤波器31基于各种子集的整数像素的加权和而产生半像素值(83)。重要的是,视频编码器18B存储产生的半像素值,不仅用于运动估算,而且也用于后面的运动补偿(84)。
在这一点上,视频块匹配单元34B可对半整数视频块,即包括半整数像素值的任何视频块的运动估算差分计算(85)。2-抽头数字滤波器33产生1/4像素值,例如,作为整数像素值和相邻半像素值的平均值(86)。1/4像素值可用于运动估算,但不需要被存储,以便任何后续使用。视频块匹配单元34B可对1/4整数视频块,即包括1/4整数像素值的任何视频块的运动估算差分计算(87)。
一旦每个候选视频块,包括半像素块和1/4像素块,已经与要被编码的当前视频块进行了比较,运动估算器26B就识别一个最佳预测(88)。然而,如上文所述,该公开内容还考虑了一个适当匹配的使用,它不必须是“最佳”匹配,而是用于有效视频编码和压缩的合适匹配。然后执行运动补偿。
在运动补偿过程中,运动补偿器28B使用由6-抽头滤波器31产生并存储在本地内存25B的半像素值(89)。然而,2-抽头滤波器37产生运动补偿所需的任何四分之一像素值(90)。在该情形下,2-抽头滤波器37可重新产生至少一些先前由2-抽头数字滤波器33产生的四分之一像素值。差值块计算单元38A产生一个差值块,例如,表示要被编码的当前视频块与最佳预测视频块之间的差值(91)。然后,差值块可被编码,并随运动矢量一起被传送,该运动矢量识别用于视频编码的候选视频块的位置。
许多不同实施例已经被描述。通过达到本地内存空间与用于执行非整数像素计算的硬件之间的一个有效平衡,这些技术能够改进视频编码。以这些和其它可能的方式,这些技术可根据诸如ITU H.264的标准或使用非整数像素值的任何其它视频编码标准,包括任何广泛的多种专属标准,来改进视频编码。具体地,当在特定维度上的非整数像素值的产生中视频编码标准要求使用3-抽头滤波器或更大的滤波器时,这些技术尤其有用。换言之,当视频编码标准要求使用3-抽头滤波器或更大的滤波器用于一维插值时,这些技术尤其有用。如果在2维插值上一个标准可利用5-抽头滤波器或更大的滤波器来实现,则这些技术也可能是有用的。被支持的给定标准可规定各种滤波器的抽头权重。
这些技术可在硬件、软件、固件或任何其组合中来实现。如果以软件来实现,这些技术可针对包括程序代码的计算机可读介质,当在一个对视频序列进行编码的设备中执行时,执行上文提到的一个或多个方法。在该情形下,计算机可读介质可包括诸如同步动态随机存取存储器(SDRAM)的随机存取存储器(RAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦写可编程只读存储器(EEPROM)、闪存,等等。
程序代码可以以计算机可读指令的形式存储在存储器上。在该情形下,诸如DSP的处理器可执行存储在存储器中的指令,用于执行这里所描述的一个或多个技术。在一些情形下,这些技术可由DSP来执行,DSP调用各种硬件组件,如运动估算器,以加速编码过程。在其它情形下,视频编码器可作为微处理器、一个或多个专用集成电路(ASIC)、一个或多个现场可编程门阵列(FPGA)、或一些其它硬件-软件组合来实现。这些和其它实施例都将包含在所附权利要求的范围内。

Claims (35)

1、一种视频编码设备包括:
产生用于运动估算的非整数像素值的运动估算器,该运动估算器包括接收至少3个整数像素值的输入的用于一维插值的一个滤波器;
存储由所述运动估算器产生的所述非整数像素值的存储器;以及
使用存储的所述非整数像素值用于运动补偿的运动补偿器。
2、如权利要求1所述的设备,其中所述非整数像素值包括半像素值,和其中:
所述运动估算器使用所述半像素值为所述运动估算产生四分之一像素值,而不需要为所述运动补偿存储所述四分之一像素值;以及
所述运动补偿器使用所述半像素值为所述运动补偿重新产生所述四分之一像素值。
3、如权利要求2所述的设备,其中:
所述运动估算器包括一个为运动估算和运动补偿产生所述半像素值的6-抽头滤波器,和一个为运动估算产生所述四分之一像素值的2-抽头滤波器;以及
所述运动补偿器包括另一个2-抽头滤波器,以便为运动补偿重新产生所述四分之一像素值。
4、如权利要求2所述的设备,其中:
所述运动估算器包括两个6-抽头滤波器,其为运动估算和运动补偿产生所述半像素值,用于水平和垂直插值,和一个2-抽头滤波器,其为运动估算产生所述四分之一像素值,用于水平和垂直插值;以及
所述运动补偿器包括另一个2-抽头滤波器,它为运动补偿重新产生所述四分之一像素值,用于水平和垂直插值。
5、如权利要求4所述的设备,其中所述设备与ITU H.264视频编码标准兼容,所述6-抽头和2-抽头滤波器的抽头权重由所述ITUH.264视频编码标准规定。
6、如权利要求1所述的设备,其中所述运动估算器包括一个第二滤波器,它基于所述存储非整数像素值为运动估算产生另外的非整数像素值。
7、如权利要求6所述的设备,其中所述运动估算器为运动估算产生所述另外的非整数像素值,而不需要为运动补偿存储所述另外的非整数像素值,所述运动补偿器包括一个第三滤波器,为运动补偿重新产生所述另外的非整数像素值。
8、如权利要求1所述的设备,其中所述设备在4像素乘以4像素视频块上执行所述运动估算和运动补偿。
9、如权利要求8所述的设备,其中所述设备以管线化方式执行所述运动估算和运动补偿,为大于所述4像素×4像素子视频块的视频块产生运动矢量和差分矩阵。
10、如权利要求1所述的设备,其中所述设备包括数字电视、无线通信设备、个人数字助理、膝上型计算机、台式计算机、数码相机、数字记录设备、具有视频性能的蜂窝式无线电话和具有视频性能的卫星无线电话中的至少一个。
11、如权利要求1所述的设备,其中所述存储器包括一个本地片上存储器,所述设备进一步包括通过总线电耦合到所述本地片上存储器的片外视频存储器。
12、如权利要求1所述的设备,进一步包括一个发送器,它发送被所述运动估算器和所述运动补偿器编码的视频帧。
13、如权利要求12所述的设备,进一步包括一个实时捕捉视频帧的视频捕捉设备,所述运动估算器和所述运动补偿器被配置以实时地对所述视频帧编码,并且所述发送器被配置以实时地发送所述编码的视频帧。
14、如权利要求1所述的设备,其中所述非整数像素值的产生包括一个水平或垂直像素插值。
15、一个视频编码设备包括:
接收至少三个整数像素值的输入的第一滤波器,以为运动估算和运动补偿产生非整数像素值;
接收所述非整数像素值的输入的第二滤波器,以为所述运动估算产生另外的非整数像素值;以及
接收所述非整数像素值的输入的第三滤波器,以为所述运动补偿产生另外的非整数像素值。
16、如权利要求15所述的设备,其中:
所述第一滤波器包括一个6-抽头滤波器,它接收六个整数像素值的输入,以为所述运动估算和所述运动补偿产生所述非整数像素值;
所述第二滤波器包括一个2-抽头滤波器,它接收两个所述非整数像素值的输入,以为所述运动估算产生所述另外的非整数像素值;以及
所述第三滤波器包括一个2-抽头滤波器,它接收两个所述非整数像素值的输入,以为所述运动补偿产生所述另外的非整数像素值。
17、如权利要求15所述的设备,其中所述设备与ITU H.264视频编码标准兼容,所述6-抽头和2-抽头滤波器的抽头权重由所述ITUH.264视频编码标准规定。
18、如权利要求15所述的设备,其中所述滤波器产生用于水平插值的所述非整数像素值。
19、如权利要求18所述的设备,进一步包括:
包括一个6-抽头滤波器的另一个第一滤波器,它接收六个整数像素值的输入,以为所述运动估算和所述运动补偿产生非整数像素值,用于垂直插值;
包括一个2-抽头滤波器的另一个第二滤波器,它接收两个所述非整数像素值的输入,以为所述运动估算产生所述另外的非整数像素值,用于垂直插值;以及
包括一个2-抽头滤波器的另一个第三滤波器,它接收两个所述非整数像素值的输入,以为所述运动补偿产生所述另外的非整数像素值,用于垂直插值。
20、一种视频编码的方法包括:
使用接收用于水平或垂直插值的至少三个整数像素值的输入的一个滤波器,为运动估算产生非整数像素值;
使用用于运动估算的所述非整数像素值;
存储所述非整数像素值;以及
使用用于运动补偿的所述存储的非整数像素值。
21、如权利要求20所述的方法,其中所述非整数像素值包括半像素值,该方法进一步包括:
为所述运动估算产生四分之一像素值,而不需要存储用于运动补偿的所述四分之一像素值;以及
为所述运动补偿重新产生所述四分之一像素值。
22、如权利要求21所述的方法,其中:
产生所述半像素值包括应用一个6-抽头滤波器;以及
产生所述四分之一像素值包括应用一个2-抽头滤波器。
23、如权利要求22所述的方法,其中所述方法与ITU H.264视频编码标准兼容,所述6-抽头和2-抽头滤波器的抽头权重由所述ITUH.264视频编码标准规定。
24、如权利要求20所述的方法,进一步包括基于所述存储的非整数像素值为运动估算产生另外的非整数像素值。
25、如权利要求24所述的方法,进一步包括为运动估算产生所述另外的非整数像素值,而不需要存储用于运动补偿的所述另外的非整数像素值,和为运动补偿重新产生所述另外的非整数像素值。
26、如权利要求20所述的方法,进一步包括在4像素×4像素视频块上执行所述运动估算和所述运动补偿。
27、如权利要求26所述的方法,进一步包括以管线化方式执行所述运动估算和所述运动补偿,以便为比所述4像素×4像素子视频块大的视频块产生运动矢量和差分矩阵。
28、一个计算机可读介质包括指令,其执行:
使用接收用于水平或垂直插值的至少三个整数像素值的输入的一个滤波器,产生非整数像素值;
使用用于运动估算的所述非整数像素值;
存储所述非整数像素值;以及
使用用于运动补偿的所述存储的非整数像素值。
29、如权利要求28所述的计算机可读介质,其中所述非整数像素值包括半像素值,所述计算机可读介质进一步包括指令,其执行:
为所述运动估算产生四分之一像素值,而不需要存储用于运动补偿的所述四分之一像素值;和
为所述运动补偿重新产生所述四分之一像素值。
30、如权利要求29所述的计算机可读介质,其中所述指令执行:
通过应用一个6-抽头滤波器产生所述半像素值;和
通过应用一个2-抽头滤波器产生所述四分之一像素值。
31、如权利要求28所述的计算机可读介质,进一步包括在4像素×4像素视频块上执行所述运动估算和所述运动补偿的指令。
32、如权利要求31所述的计算机可读介质,进一步包括以管线化方式执行所述运动估算和所述运动补偿的指令,以便为比所述4像素×4像素子视频块大的视频块产生运动矢量和差分矩阵。
33、一种装置包括:
使用用于垂直或水平插值的至少三个整数像素值的输入为运动估算产生非整数像素值的工具;
在运动估算中使用所述非整数像素值的工具;
存储所述非整数像素值的工具;以及
使用用于运动补偿的所述存储的非整数像素值的工具。
34、如权利要求33所述的装置,进一步包括:
使用六个整数像素值的输入为所述运动估算产生所述非整数像素值的工具;
使用两个存储的非整数像素值的输入为所述运动估算产生另外的非整数像素值的工具;以及
使用两个存储的非整数像素值的输入为所述运动补偿产生所述另外的非整数像素值的工具。
35、一种视频编码设备包括:
一个运动估算器,它产生用于运动估算的非整数像素值,该运动估算器包括接收至少5个整数像素值的输入的用于两维插值的一个滤波器;
一个存储器,它存储所述运动估算器产生的所述非整数像素值;以及
一个运动补偿器,它使用所述存储的所述非整数像素值用于运动补偿。
CNA2005100720770A 2004-10-27 2005-05-26 用于视频编码的非整数像素共享 Pending CN1767644A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US10/975,731 2004-10-27
US10/975,731 US20060088104A1 (en) 2004-10-27 2004-10-27 Non-integer pixel sharing for video encoding

Publications (1)

Publication Number Publication Date
CN1767644A true CN1767644A (zh) 2006-05-03

Family

ID=35840669

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005100720770A Pending CN1767644A (zh) 2004-10-27 2005-05-26 用于视频编码的非整数像素共享

Country Status (5)

Country Link
US (1) US20060088104A1 (zh)
EP (1) EP1653744A1 (zh)
JP (1) JP2006129436A (zh)
KR (1) KR100964515B1 (zh)
CN (1) CN1767644A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911701B (zh) * 2008-02-13 2013-03-27 高通股份有限公司 用于图像配准和视频编码的共享的块比较架构

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050111545A1 (en) 2003-11-25 2005-05-26 Ram Prabhakar Dynamic packet size control for MPEG-4 data partition mode
US20060088104A1 (en) 2004-10-27 2006-04-27 Stephen Molloy Non-integer pixel sharing for video encoding
US20060133507A1 (en) * 2004-12-06 2006-06-22 Matsushita Electric Industrial Co., Ltd. Picture information decoding method and picture information encoding method
US7859574B1 (en) * 2005-07-19 2010-12-28 Maxim Integrated Products, Inc. Integrated camera image signal processor and video encoder
MX2008001286A (es) * 2005-07-28 2008-03-25 Thomson Licensing Metodo y aparato para la optimizacion del proceso de movimiento de video con el uso de una cache jerarquica.
US8265151B1 (en) 2005-12-14 2012-09-11 Ambarella Taiwan Ltd. Mode decision using approximate 1/2 pel interpolation
US8705630B2 (en) * 2006-02-10 2014-04-22 Nvidia Corporation Adapting one type of encoder to another type of encoder
US8208553B2 (en) * 2006-05-04 2012-06-26 Altera Corporation Methods and apparatus for quarter-pel refinement in a SIMD array processor
TWI326433B (en) * 2006-09-19 2010-06-21 Ind Tech Res Inst Method for saving interpolation data
US9014280B2 (en) 2006-10-13 2015-04-21 Qualcomm Incorporated Video coding with adaptive filtering for motion compensated prediction
KR100926752B1 (ko) 2007-12-17 2009-11-16 한국전자통신연구원 동영상 부호화를 위한 미세 움직임 추정 방법 및 장치
DE102011119177A1 (de) * 2011-11-23 2013-05-23 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Verfahren zum Erstellen eines ersten Parametersatzes
KR20130082304A (ko) * 2012-01-11 2013-07-19 한국전자통신연구원 고해상도용 상세단위 움직임 추정 장치
KR102301232B1 (ko) 2017-05-31 2021-09-10 삼성전자주식회사 다채널 특징맵 영상을 처리하는 방법 및 장치
KR102309918B1 (ko) * 2017-11-29 2021-10-08 한국전자기술연구원 비디오 부호화기에서 보간 필터를 이용한 고속 움직임 예측을 수행하기 위한 장치 및 이를 위한 방법
CN112215782B (zh) * 2020-10-29 2022-10-14 中国科学院长春光学精密机械与物理研究所 一种卷帘快门成像装置图像校正方法及装置

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5461423A (en) * 1992-05-29 1995-10-24 Sony Corporation Apparatus for generating a motion vector with half-pixel precision for use in compressing a digital motion picture signal
US5453799A (en) * 1993-11-05 1995-09-26 Comsat Corporation Unified motion estimation architecture
US5596369A (en) * 1995-01-24 1997-01-21 Lsi Logic Corporation Statistically derived method and system for decoding MPEG motion compensation and transform coded video data
KR100226684B1 (ko) * 1996-03-22 1999-10-15 전주범 반화소 움직임 추정장치
US6707853B1 (en) * 2000-01-10 2004-03-16 Intel Corporation Interface for performing motion compensation
US6950469B2 (en) * 2001-09-17 2005-09-27 Nokia Corporation Method for sub-pixel value interpolation
US7630566B2 (en) * 2001-09-25 2009-12-08 Broadcom Corporation Method and apparatus for improved estimation and compensation in digital video compression and decompression
US20030169818A1 (en) * 2002-03-06 2003-09-11 Pere Obrador Video transcoder based joint video and still image pipeline with still burst mode
US8284844B2 (en) * 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
JP4120301B2 (ja) * 2002-04-25 2008-07-16 ソニー株式会社 画像処理装置およびその方法
EP1530829B1 (en) * 2002-07-09 2018-08-22 Nokia Technologies Oy Method and apparatus for selecting interpolation filter type in video coding
US7408988B2 (en) * 2002-12-20 2008-08-05 Lsi Corporation Motion estimation engine with parallel interpolation and search hardware
US20060088104A1 (en) 2004-10-27 2006-04-27 Stephen Molloy Non-integer pixel sharing for video encoding

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101911701B (zh) * 2008-02-13 2013-03-27 高通股份有限公司 用于图像配准和视频编码的共享的块比较架构

Also Published As

Publication number Publication date
JP2006129436A (ja) 2006-05-18
KR100964515B1 (ko) 2010-06-21
KR20060046205A (ko) 2006-05-17
US20060088104A1 (en) 2006-04-27
EP1653744A1 (en) 2006-05-03

Similar Documents

Publication Publication Date Title
CN1767644A (zh) 用于视频编码的非整数像素共享
JP6660074B2 (ja) 映像復号化方法及び装置
JP5415599B2 (ja) レート制御されたビデオ符号化のための適応フレーム・スキップ技術
CN102017615B (zh) 视频单元内的边界伪影校正
TWI516095B (zh) 利用轉換操作之影音編碼及解碼方法
KR100937275B1 (ko) 인트라-예측 비디오 인코딩을 위한 모드 선택 기술
CN1290342C (zh) 可执行区块比对移动补偿与全域移动补偿的装置与方法
RU2482616C2 (ru) Видеокодирование коэффициентов фильтра на основе горизонтальной и вертикальной симметрии
US20100098155A1 (en) Parallel CABAC Decoding Using Entropy Slices
CN101755464B (zh) 基于行的视频码率控制和压缩
CN1663278A (zh) 视频编码和解码技术
US9386324B2 (en) Image encoding/decoding apparatus and method using multi-dimensional integer transform
CN1875637A (zh) 最小化用于相互编码的参考画面数目的方法和装置
US20190230379A1 (en) Method and device for intra-prediction
JP2013515448A (ja) キャッシュヒットを向上させるための復号器内での時間的及び空間的ビデオブロックの再順序付け
WO2021238540A1 (zh) 图像编码方法、图像解码方法及相关装置
JP2015136173A (ja) 映像復号化装置
JP5560009B2 (ja) 動画像符号化装置
JP7086208B2 (ja) 双方向イントラ予測のシグナリング
WO2021244197A1 (zh) 图像编码方法、图像解码方法及相关装置
KR20150081240A (ko) 무손실 비디오 부호화/복호화 방법 및 장치
CN1722832A (zh) 用于视频编码的有效速率控制技术
KR20200071717A (ko) 인트라 예측을 이용한 비디오 부호화/복호화 방법 및 장치
CN1747552A (zh) 基于帧内编码的图像色度预测方法
KR101629999B1 (ko) 무손실 비디오 부호화/복호화 방법 및 장치

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 1091632

Country of ref document: HK

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Open date: 20060503

REG Reference to a national code

Ref country code: HK

Ref legal event code: WD

Ref document number: 1091632

Country of ref document: HK