CN1157063C - 通过存储和检索运动矢量对视频信号进行编码和解码的方法和装置 - Google Patents

通过存储和检索运动矢量对视频信号进行编码和解码的方法和装置 Download PDF

Info

Publication number
CN1157063C
CN1157063C CNB991104374A CN99110437A CN1157063C CN 1157063 C CN1157063 C CN 1157063C CN B991104374 A CNB991104374 A CN B991104374A CN 99110437 A CN99110437 A CN 99110437A CN 1157063 C CN1157063 C CN 1157063C
Authority
CN
China
Prior art keywords
motion vector
macro block
video
piece
storage
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 - Lifetime
Application number
CNB991104374A
Other languages
English (en)
Other versions
CN1248861A (zh
Inventor
��ά��J������˹
戴维·J·霍金斯
��A���¹�˹��
布鲁斯·A·奥古斯丁
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.)
BRIGHT HOLDINGS LLC
Original Assignee
Motorola 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 Motorola Inc filed Critical Motorola Inc
Publication of CN1248861A publication Critical patent/CN1248861A/zh
Application granted granted Critical
Publication of CN1157063C publication Critical patent/CN1157063C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime 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/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/583Motion compensation with overlapping blocks
    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F27FURNACES; KILNS; OVENS; RETORTS
    • F27DDETAILS OR ACCESSORIES OF FURNACES, KILNS, OVENS, OR RETORTS, IN SO FAR AS THEY ARE OF KINDS OCCURRING IN MORE THAN ONE KIND OF FURNACE
    • F27D9/00Cooling of furnaces or of charges therein
    • CCHEMISTRY; METALLURGY
    • C21METALLURGY OF IRON
    • C21CPROCESSING OF PIG-IRON, e.g. REFINING, MANUFACTURE OF WROUGHT-IRON OR STEEL; TREATMENT IN MOLTEN STATE OF FERROUS ALLOYS
    • C21C1/00Refining of pig-iron; Cast iron
    • 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
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods 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)
  • Chemical & Material Sciences (AREA)
  • Materials Engineering (AREA)
  • Metallurgy (AREA)
  • Organic Chemistry (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

一个能对符合压缩标准,如H.263标准的视频信号进行编码解码并能高效地存储和检索与信号有关的运动矢量的系统(10)。编码器(16)和解码器(22)各使用一个运动矢量存储和检索电路(38,72),该电路在各自的SRAM数组(52,52’)中寻址。通过除去当前计算不需要的运动矢量,只存储最少量的运动矢量来实现视频信号的先行预测模式。避免存储预先确定的宏块的上运动矢量来节省内存。

Description

通过存储和检索运动矢量对视频 信号进行编码和解码的方法和装置
技术领域
本发明一般涉及视频通信,具体地说,涉及视频图像的压缩和解压缩。
背景技术
由于现有电话网络固有的带宽限制,大多数商业用和家庭用的可视电话和电视会议设备要求很高的压缩比率。为了满足这种要求,开发了H.263低比特率视颜通信国际标准。该标准很快就被视频工业采用。H.263国际标准的优点包括一种称为先行预测模式(APM)的可选技术的实现。通过消除运动估计带来的非自然信号(artifact),APM明显地改善了视频图象。APM的缺点是用硬件实现很困难而且效率低。因此,先行预测模式的首次实现是仅由软件来实现的。
压缩视频的一种H.263技术是采用运动估计。运动估计通过将运动矢量而不是真正的象素送给解码器来处理视频。解码器接收运动矢量并通过访问运动矢量所指向的数据块由上一个解码的帧生成当前帧。H.263APM模式中,传送一个运动矢量相当于传送一个8×8的象素块。APM选择要求代表每个8×8块的运动矢量与那些代表四周块的矢量平均。这样可以减少由运动估计处理导致的分块非自然信号。不幸的是,出于几种原因从周围的宏块平均运动矢量需要大量的内存和硬件。首先,从周围的块来取得运动矢量需要在内存中存储大量的运动矢量。要取得当前块的运动矢量需要存储整整一行的运动矢量,这很耗费内存。第二,H.263标准定义要求APM模式为两个独立功能存储和检索运动矢量:重叠块运动补偿(OBMC)和预测值计算。这些功能不能轻易地结合起来是因为OBMC功能滞后预测器功能一个宏块的解码时间,这就要求这些功能在不同的时间帧里操作。第三,OBMC和预测值计算各要求四种独立的地址方式。因此要求有八种独立的寻址方式。但是,没有一种寻址方式是线性顺序,也没有一种寻址方式是容易编址的任何其它方式。
由于上述的问题,很难设计出可以高效地实现由H.263标准定义的APM模式的硬件用软件来实现APM模式的优越性在于可以获得实现这个功能所要求的大量的内存和系统资源。但是,用软件实现运行速度慢,比起硬件实现降低了帧速率和图像质量。
发明内容
本发明提供了一种用于对视频信号进行编码和解码的存储和检索运动矢量的装置,该装置的特征在于:有一组存储元素的内存,该组存储元素的第一个元素存储一个视频帧的一个宏块的第一个运动矢量,该宏块是表示一个视频帧的一组宏块中的一个,存储元素组的第二个元素存储宏块的第二个运动矢量,所存储的第一运动矢量和第二运动矢量都是同一个宏块的,第一个运动矢量和第二个运动矢量由运动矢量预测值计算和用于消除视频非自然信号的重叠块运动补偿所共享;和与内存相连接地址生成电路,该地址生成电路控制运动矢量存储位置;其中,内存和地址生成电路都是由集成电路形式的硬件元件来实现。
附图说明
图1以方框图的形式示出了使用本发明的一个视频通信系统。
图2以方框图的形式说明了根据本发明的视频编码器。
图3以方框图的形式说明了根据本发明的图2的运动矢量存储和取得的电路图。
图4以透视图的形式说明了一个公用中间格式大小帧的一行的宏块的布局。
图5说明了符合H.263标准的预测值计算用的运动矢量检索模式。
图6说明符合H.263标准的OBMC功能用的运动矢量检索模式。
图7说明图3SRAM数组的内存分配。
图8以方框图形式说明了根据本发明的在图1所示的系统中使用的视频解码器的框图。
图9以框图的形式说明图8所示的解码功能的运动矢量存储和检索的电路图。
具体实施方式
图1所示为依照本发明的视频编码解码器装置的框图。本发明克服了上述的问题,从而允许用硅来高效地实现APM。视频A-D转换器和解码器12有一个用于接收模拟视频信号的输入端,用于产生4:2:2视频格式的信号的输出端。4:2:2信号连接到视频预处理器的一个输入端,用预处理器产生4:2:0视频格式的信号。视频预处理器14的一个输出端连接到视频编码器16的一个输入端。视频编码器16将在图2中进一步详细说明。视频编码器16给输入/输出(I/O)接口电路18提供一个压缩视频位流。I/O接口18通过控制、地址、数据总线与信号处理器18相连。I/O接口18的功能是为压缩视频位流和信号处理器20中所使用的特定类型的信号处理器提供接口。I/O接口18还与视频解码器22的一个输入端相连,为其提供压缩的视频位流。视频解码器22的一个输出端与后处理器24的一个输入端相连。视频解码器22的输出是4:2:0视频格式。后处理器24的一个输出端以4:2:2的视频格式连到视频D-A转换器和编码器26。视频D-A转换器和编码器26产生一个模拟视频信号的输出。图中还有直接内存访问(DMA)/动态随机访问内存(DRAM)接口电路28。DMA/DRAM接口电路28通过内部总线32分别连接到视频预处理器14,视频编码器16,视频解码器22和后处理器24。DMA/DRAM接口电路28通过控制、地址和数据总线与DRAM30相连接。视频编码解码器10的功能是接收一个模拟视频信号,通过视频A-D转换器和解码器12和视频预处理器14将其转换为两种不同的视频格式,提供一个4:2:0信号给视频编码器,该视频编码器将信号压缩为压缩的视频位流。压缩的视频位流送到信号处理器20进行处理,信号预处理器20就象一个主机将压缩的视频位流提供给发送频道。根据所使用频道的类型,信号处理器可能把压缩视频信号转换为模拟格式或保持其数据格式。I/O接口18也提供压缩视频位流给视频解码器22,该压缩视频位流是通过信号处理器20从频道接收到的。视频解码器22将视频位流解压缩为4:2:0视频格式交由后处理器24使用。后处理器24将4:2:0视频格式转换为视频D/A转换器26使用的4:2:2格式。视频D/A转换器提供一个可由传统的电视或视频监视器接收的模拟输出。视频编码解码器10的构成如图所示是很传统的。换句话说,用现有的集成电路产品可以实现视频A-D转换器和解码器12,视频预处理器14,后处理器24和视频D-A转换器和编码器26。但是,应用不同视频编码器16和视频解码器22的实现和效率也将不同。本发明涉及视频编码器16和视频解码器22的特殊实现方法。
图2是图1的视频编码器16的详细框图。视频编码器16一般包括一个运动估计器电路36,该电路有一个接收4:2:0视频格式信号的输入端。运动估计器36提供很多运动矢量给运动矢量存储和检索模块38。模块38的一个输出端与运动补偿和位移帧差电路42的一个输入端相连接。运动补偿和位移帧差(displaced frame difference)电路42的一个输出端连接到离散余弦变换和反离散余弦变换(IDT/DCT)电路44或模块的一个输入端。一般来说,IDT/DCT电路44基于压缩/解压缩算法(例如小波(wavelet)或离散余弦变换)来实施变换。离散余弦变换和反DCT电路44的一个输出端连接到位流解码器46的一个输入端,位流解码器46产生压缩的视频输出位流。比率控制电路(rate control circuit)48通过图1中也示出的内部总线32,分别连接到运动估计器36、运动补偿和位移帧差电路42和离散余弦变换和反DCT电路44。
在工作中,视频编码器16的作用是根据上一个象素帧的信息对当前帧进行运动估计。运动估计器36产生多个运动矢量。运动矢量表示在前面帧和当前帧之间的8×8象素块的位移。运动矢量存储和检索模块38接收运动矢量。正如将在图3中详细说明的那样,模块38的功能是检索和存储用于视频标准如H.263国际标准中的先行预测模式所要求的运动矢量。一旦模块38检索和存储了这样的运动矢量。模块38将在它的输出端产生两种运动矢量给运动补偿或位移帧差电路42。第一种运动矢量用于重叠块运动补偿。第二种运动矢量用于重建前一帧和运动补偿。运动补偿和位移帧差电路42接收这两种运动矢量并完成两个功能:位移帧差和运动补偿。运动补偿功能使用上述的两种运动矢量重复远程解码器的解码。运动补偿功能通过总线32为运动估计器36提供一个重建参考帧。这个帧也将被引用为前一帧或重建帧,是将要被远程解码器解码的帧的精确复制。当视频编码器编码下一帧时,它将被运动估计器36用于运动估计的参考帧。位移帧差功能从原始(参考)帧中减去运动估计帧并提供其差给离散余弦变换和反DCT电路44。离散余弦变换和反DCT电路44基于压缩函数进行有损变换(lossy transform)。DCT/IDCT 44的输出和来自运动估计器36的运动矢量提供给位流编码器46。位流编码器46将数据排列为H.263标准所要求的格式,并产生压缩视频位流输出到频道。除了通过频道被送出,DCT/IDCT电路44的压缩的输出通过该DCT/IDCT电路44的反变换功能得以解压缩。解压缩后的输出,通过总线32,送入到同一个运动补偿和位移差电路42。这个信息将由位移帧差功能用于撤消(undo)它的上一次减法并重新产生一个运动估计器36的参考帧,该帧正是在频道另一端的远程解码器将要解码的那一帧。
图3所示为依照本发明的图2的运动矢量存储和检索模块38。运动矢量寄存器50的输出提供当前的运动矢量给SRAM运动矢量数组52,该数组一般是指一组存储运动矢量的存储元素。基本地址计数器54用于产生一个基址,与地址产生器56相连接。地址产生器56的第二个输入端用于接收来自查找表58的偏移值。查找表58的第一个输入端用于接收块号。块号是在大多数视频标准中定义的宏块中的4个可能的块之一。查找表58的第二个输入端用于OBMC/预测模式信号,该信号用于实现H.263国际标准所必需的OBMC或预测值计算模式。查找表58的第三个输入端用于选择需要的运动矢量(左,上,右上,右,下),这将在图5和图6中进一步说明。运动矢量的选择一般是由一个两位的状态机(未图示)来产生。状态机在4种可能的选择(左,上,右上,右,下)之间进行循环并在开始一个新宏块的编码时复位回到开始。模加法器57的第一个输入端从查找表58接收一个偏移值,第三个输入端从基址计数器54接收一个基址,它的输出端产生一个地址,连接到SRAM运动矢量数组52上。SRAM数组52的输出端提供选中的运动矢量给多路复用器电路60。多路复用器60的第一个输出端与预测值计算器电路62的一个输入端相连接。多路复用器60的功能是响应OBMC/预测模式控制信号,该信号也用于从查找表58中选择正确的偏移量。多路复用器60的第二个输出端与运动补偿单元42的一个输入端相连接。运动补偿单元42的输出端提供信号给图2中所示的DCT/IDCT电路44。在说明运动矢量存储和检索模块38之前,先来参看一下图4到图6。
图4是在一个共用中间格式(CIF)类型的视频帧中的一行的宏块的布局。宏块布局中有多行宏块。为了便于说明,只详细列出一行宏块。每一行有22个宏块,分别标识为C0到C21。在图中,宏块C0按时间代表当前宏块,宏块C0的紧上方是宏块C22,在时间域里,宏块C22是过去的第22个宏块。为了尽可能地节省硬件和内存,必须共享和结合OBMC和预测器功能使用的内存。OBMC功能必须比预测器功能滞后一个宏块的时间。这个因素致使OBMC功能在宏块C-1执行(存储和检索运动矢量),而预测器功能则在宏块C0执行。必须将OBMC功能滞后在宏块C1是因为OBMC要求检查当前OBMC功能执行的宏块右边的运动矢量(这将在图6中进一步说明)。如果OBMC功能在宏块C0上执行,那么“右边”的运动矢量将从宏块C+1中检索,而该宏块C+1是未来的一个宏块,现在还不能使用。在图5和图6中将进一步说明,必须从OBMC和预测器功能的上边的宏块中检索运动矢量。且需要注意的是,“上边”的运动矢量对OBMC功能来说是22个宏块前处理的,而对预测器功能来说是23个宏块前处理的。因此,保存24个(C0到C23)宏块是必要的。
在图5和图6中将用到以下术语:大方块是指一个16×16象素的宏块,可划分为4个8×8的象素块。每个8×8象素块都有自己的运动矢量。4个8×8的象素块,在本技术领域通常称为“块”被编号为块1,2,3和4。块1是宏块的左上角,块2是右上角,块3是左下角,块4是右下角。处理一个宏块是指对该宏块进行编码或解码。图5和图6中的术语C-1是指处理过的上一个宏块。依此类推,宏块C21是指过去处理的第21个宏块。“C0”是指当前正在处理的宏块。在图5中需要注意是在宏块中需要为块1检索的运动矢量是左、上、右上。左运动矢量来自宏块C-1的块2。上运动矢量来自宏块C-22的块3。右上运动矢量来自宏块C-21的块3。当前处理宏块的块2的检索模式如下:左运动矢量是当前被处理的宏块(C0)中的块1。上运动矢量是宏块C-22中的块4。右上运动矢量是宏块C-21中的块3。当前处理的宏块中的块3的检索模式也与块1,块2,块3,块4不同。当前宏块中的块3的检索模式如下:左运动矢量是宏块C-1中的块4。上运动矢量是当前处理的宏块(C0)的块1。右上运动矢量是当前处理的宏块(C0)中的块2。对当前处理的宏块的块4来说,左运动矢量是当前宏块C0中的块3。上运动矢量是当前宏块C0中的块1。右上运动矢量是当前宏块C0中的块2。需要重申的是,宏块1,2,3,4的检索模式互不相同。这些模式定义在H.263标准中。
本发明为OBMC功能支持运动矢量的检索。这个功能也是对宏块的每一个块都有各自的检索模式。OBMC功能要求为宏块中的每一个块检索左,上,右,下的运动矢量。需要重申的是,向右检索运动矢量比较困难,因为当前宏块右边的运动矢量还未被处理。为了检索右运动矢量,必须将OBMC功能在时间上滞后一个宏块。因此OBMC功能将在宏块C-1执行,比预测器功能滞后一个宏块。OBMC功能的检索模式如下:对块1来说,左运动矢量是宏块C-2的块2。上运动矢量是宏块C-23的块3。右运动矢量是宏块C-1的块2下运动矢量是宏块C-1的块3。对当前OBMC正在处理的宏块中的块2来说,左运动矢量是宏块C-1中的块1,上运动矢量是宏块中的块4。右运动矢量是宏块C0中的块1,下运动矢量是宏块C-1的块4。对OBMC功能的块3来说,左运动矢量是宏块C-2的块4。上运动矢量是宏块C-1的块1。右运动矢量是宏块C-1的块4。下运动矢量是宏块C-1的块3。对OBMC宏块C-1的块4来说,左运动矢量是宏块C-1的块3。上运动矢量是宏块C-1的块2。右运动矢量是宏块C0的块3,下运动矢量为宏块C-1的块4。
参考前面的图3,运动矢量存储和检索模块38的功能如下。OBMC和预测模式的八种寻址方式的偏移量,如图5和图6所示,是由查找表58提供的。查找表58的输入包括在宏块中的编号(1,2,3,4),所需的运动矢量(左、右、等)及为运动矢量检索选择正确偏移的功能模式(OBMC/预测)。
要实现的第一种模式是预测模式。为了实现预测模式,请参看图5。图5示出了依照H.263国际标准定义的4个宏块组织。每个宏块内有四个表示8×8块的运动矢量。对于预测模式。H.263国际标准要求宏块内的每一块检索左、上、右上的运动矢量。宏块内不同的块的检索左,上,右上运动矢量的检索模式不同。为了实现检索模式,计数器54为地址生成器56提供一个0到53的数字。地址生成器56对计数器的输出乘以2以获得一个基址。在实现中必须乘以2是因为每个数中存储两个运动矢量。查找表58根据块号模式和运动矢量选择生成一个偏移值。模加法器57将查找表58提供的偏移值和计数器54提供的基址相加。其和是一个地址,在与SRAM数组52通讯时作为一个指针。该地址用于依照H.263标准的检索模式检索左、上、右上运动矢量。在SRAM数组52中编址的左、上、右上运动矢量可通过多路复用器60(Mux)由SRAM数组52选择性地输出。选中的运动矢量提供给预测值计算器62。预测值计算器62的功能是计算选中的上、右上和左运动矢量的中值。计算所得的中值,即所谓的“预测值”提供给位流编码器46。在位流编码器46中,预测值从运动估计器36提供的运动矢量中抽取出来。其结果,在本技术领域称为“差”,被送往频道。预测值计算器62的实现方法广为本技术领域人员所知。
在OBMC模式下,查找表58根据H.263标准OBMC的运动矢量检索模式(图6)提供一个偏移值。地址生成器56的功能与前面有关预测值计算的说明类似,将一个地址提供给SRAM数组52,然后SRAM数组52提供选中的运动矢量给多路复用器60。多路复用器60提供的OBMC运动矢量通过多路复用器60提供给运动补偿单元42。运动补偿单元用OBMC运动矢量为运动估计器作成重建帧。
需要理解的是注意到不必存储宏块C-2以前的宏块的上运动矢量即块1和2,因而可以大大地节省内存。请参照图6的块1(OBMC功能)来理解这一点。从图6可以看到最后一次使用上(T-X)运动矢量是在为宏块C-1的块1检索左运动矢量的时候。因此,宏块C-2之后只需要下半部分(B-X)运动矢量。这是因为为了获得“上”运动矢量只需要当前正在处理的宏块上面的宏块的下运动矢量。
图7所示为一种SRAM数组52内存分配一个例子。在图示中,有27个半个宏块,每半个宏块包括宏块的上半部分或下半部分的运动矢量。在内存布局中,有24个宏块的下半部分和3个宏块的上半部分。宏块的上半部分存储宏块的块1和块2。宏块的下半部分存储宏块的块3和块4。具体说来,分配给下运动矢量48个地址位置,分配给上运动矢量6个地址位置。这种分配反映了这样的事实,下半部分矢量需要存储23个宏块时间,上半部分矢量只需存储3个宏块时间。图7中所用的术语如下:B0是指当前正在被处理的宏块,是存储当前正在被解码的宏块的下运动矢量(块3和块4)的地方。B-1存储上一个被处理的宏块的下运动矢量。同样地,T0存储当前宏块的上运动矢量(块1和块2),T-1存储上一个被处理的宏块的上运动矢量。需要特别注意的是这是一种移动的/相对寻址方式而不是绝对寻址。B0和B-1宏块不是象在绝对地址方式中那样编码在绝对地址0和绝对地址1上。还应注意基地址总是指向B0(当前正在处理的宏块的下运动矢量)的左运动矢量。这与在图3中将基地址计数器54中的值乘以2所得的基地址是完全相同的。需要特别注意的是,随着计数器的增加,当要开始处理一个新的宏块时,上运动矢量T0将成为上运动矢量T-1.新的上运动矢量T0将覆盖下运动矢量B-23。同样地,新的下运动矢量B0将覆盖旧的上运动矢量T-2。这样,下运动矢量总是覆盖上运动矢量,上运动矢量总是覆盖下运动矢量。还需注意沿两条不同的时间线为上和下运动矢量分配内存。
下面为上述的概念提供一个例子。例子说明如果计数器的当前值为5,那么SRAM数组52中的基地址10就是存储当前宏块的下运动矢量的地址。当前宏块的上运动矢量将总是被存储在比计数器多6的地址。在本例中即为地址16。通过仔细观察图7的内存分配图我们可以找到原因。因为当前计数总是指向B0,T0的相对地址空间通过模加6返回T0来得到。当处理下一个宏块而计数器增长为6时,每个宏块都“长了”一个宏块的时间。基地址10将存储上一个宏块的下运动矢量,而基地址12存储新的宏块的下运动矢量。需要特别注意的是基地址12原来存储的是宏块C-2(宏块C-2包含上运动矢量T-2和下运动矢量B-2)的上半部分矢量。T-2运动矢量只需存储三个宏块的时间,此时计数器增为6,B0的下运动矢量B0写到它的位置上。
例子:
                       计数器值5=基地址10
基地址0……4    6     8     10     12     14     16    18……
52              B-2   B-1   B0     T-2    T-1    T0    B-23
                       计数器值6=基地址12
基地址0……4    6     8     10     12     14     16    18……
52              B-3   B-2   B-1    B0     T-2    T-1   T0
总而言之,整个运动矢量存储和检索模块38的操作可以用下面的例子来说明:如果基地计数器54的值为6,那么它指向的实际地址为12因为每个基地址存储两个运动矢量。因此,实际地址12存储B0的左运动矢量。假设查找表58的输入如下:块号=1,OBMC/预测模式=OBMC。那么,块1的左,上,右和下OBMC运动矢量的检索如下:
MV选择       位置     LUT输出      基地址       最终地址
左            T-2       +3            12            15
上            B-23      +8            12            20
右            T-1       +5            12            17
下            B-1       -2            12            10
在上例中,从图6中可以看到块1的OBMC左运动矢量是宏块C-2的右上块,其内存位置为T-2。根据图7或上例可以计算偏移值。在本例中,通过模加3可以看到T-2的右运动矢量。同样地,从图6中可以看到右运动矢量位于内存段T-1的右边,上运动矢量位于内存段B-23的左边,下运动矢量位于内存段B-1的左边。
既然在已经说明了本发明编码操作的装置和方法,我们将说明在解码操作中使用本发明。图1的解码器部分包括视频D-A转换器和编码器26,后处理器24和视频解码器22。
图8是视频解码器22的详图。视频位流作为输入传送给位流解码器70。位流解码器70的第一个输出端连接到用于解码的运动矢量存储和检索模块72的一个输入端。位流解码器70的第二个输出端连接到图2所示的离散余弦变换和反DCT 44的一个输入端。用于解码的运动矢量存储和检索模块72的一个输出端连接到图2所示的运动补偿电路42。运动补偿电路42的一个输出端连接到组合电路加法器76的第一个输入端。离散余弦变换和反DCT 44的一个输出端连接到加法器76的第二个输入端。加法器76的一个输出端提供4:2:0视频格式的信号。后处理器24的一个输出端连接到视频D/A和编码器26的一个输入端上。后处理器24提供4:2:2视频格式的信号。视频D/A和编码器26提供与图1所示信号相同的视频模拟信号。
在操作中,一个数字视频信号被输入位流解码器70,该解码器从视频位流中分离出运动矢量差和象素数据。运动矢量差被提供给解码用的运动矢量存储和检索模块电路72,该电路将在图9中进一步说明。电路72的输出运动矢量送给运动补偿电路42。在实施完运动补偿之后,得到的象素由加法器76顺序地与离散余弦变换和反DCT电路44的输出相加。位流解码器70提供的象素数据由离散余弦变换和反DCT 44处理以进行基于解压缩的变换。离散余弦变换和反DCT电路44的一个输出端作为加法器76的第二个输入端。加法器76提供4:2:0视频格式的信号给后处理器24,该后处理器在从数字到模拟变换之前进行后处理。为得到视频模拟输出信号,进行D/A变换。
图9所示为依照本发明图8中的解码用运动矢量存储和检索模块电路72。除了为了说明硬件的实现在复制的相同的电路图上加了一个撇号外,图9和图3中相同的元素使用相同的参考编号。也就是说,如果编号相同的元素没有撇号,例如运动补偿单元42,那么该元素由图3和图9分时共享。图3和图9非常相似,主要的不同点在于增加了一个加法器电路80,该电路的第一个输入端用于接收运动矢量寄存器50’的一个输出,第二个输入端用于接收预测值计算器62’的一个输出。加法器电路80的一个输出端提供一个完整的运动矢量(预测值与差的和)用于在运动矢量的SRAM数组52,中存储。解码用运动矢量存储和检索模块电路72的操作与前面讲述的图2中的运动矢量存储和检索模块38的操作类似。因此,不再重复说明对解码用运动矢量存储和检索模块电路72的操作。需要注意的一个类似功能的例外是运动矢量差寄存器50’在解码模式下存储一个运动矢量不同于图3中的寄存器50存储的是一个完整的运动矢量。此外,如图3中运动矢量必须存储于SRAM运动矢量数组52’中。为了得到将在SRAM数组52’中存储的运动矢量,来自预测值计算器62’的预测值必须与来自运动矢量寄存器50’的运动矢量差相加。这些运动矢量的存储形成了对应于第二个宏块的第二组运动矢量。
至此很明显本发明提供了一个可以高效地检索和存储运动矢量的改善了的视频运动系统和方法。在内存中存储运动矢量的方法包括接收四个运动矢量的步骤。其中每个运动矢量对应于代表一个视频信号一部分的第一个宏块。第一个和第二个运动矢量对应于第一个宏块的上半部分,第三个和第四个运动矢量对应于该宏块的下半部分。第一个和第二个运动矢量存储在内存的第一部分,第三和第四个运动矢量存储在内存的第二部分。本发明大大地减少了实现SRAM运动矢量数组52和52’所要求的内存量。例如,假设每个运动矢量2个字节,视频编码解码器的解码器部分的存储需要192字节内存。192的算出方法如下:
[(24宏块)(4运动矢量/宏块)(2字节/运动矢量)]=192
尽管看来192字节内存是所需的最小的内存大小,本发明大大地节省了内存。尤其是,本发明避免存储图4所示的宏块C-2之前不需要存储的那些宏块的上半部分的运动矢量。也就是说,宏块C-3,C-4,C-5到C-23的上半部分的两个块都未被存储。这种节省空间的方法要求的内存大小如下:
[(24宏块的下运动矢量)(2运动矢量/宏块)]=48个下运动矢量。
(3宏块的上运动矢量)(2运动矢量/宏块)=6个上运动矢量。
总字节数=[(48+6)运动矢量][2字节每运动矢量]=108字节。
因为预测器和OBMC功能必须在视频编码解码器的编码器和解码器两侧进行,所以总节省量为2(108)对2(192)。在本具体例子中,正如上面计算的那样,使用本发明节省内存的大小为对216字节对384字节(大约节省44%)。如果本发明与HDTV的MPEG-4一起使用,节省的内存量将会更大,因为有更高的水平分解率。需要注意的是使用本文所讲述的内存分配方法丢弃宏块C-2之前的块1和块2并不要求复杂的寻址方法。本发明允许H.263标准的OBMC和预测器功能无需增加寻址硬件即可共享内存。通过减少所需硬件,硅面积,成本和电能消耗也能得以减少,从而使视频编码解码器的硬件实现可与软件实现相竞争甚至优于软件实现。
熟悉本技术领域中的人将会认识到可以在不超出本发明的范围内进行修改和变化。例如,可以用各种不同类型的电子内存来实现所谓的术语“术存”。本发明的方法可由各种逻辑门配置来实现。因此,本发明可在包含所有这些在所附的权利要求书范围内的变化和修改。

Claims (3)

1.一种用于对视频信号进行编码和解码的存储和检索运动矢量的装置,该装置的特征在于:
有一组存储元素的内存,该组存储元素的第一个元素存储一个视频帧的一个宏块的第一个运动矢量,该宏块是表示一个视频帧的一组宏块中的一个,存储元素组的第二个元素存储宏块的第二个运动矢量,所存储的第一运动矢量和第二运动矢量都是同一个宏块的,第一个运动矢量和第二个运动矢量由运动矢量预测值计算和用于消除视频非自然信号的重叠块运动补偿所共享;和
与内存相连接的地址生成电路,该地址生成电路控制运动矢量存储位置;
其中,内存和地址生成电路都是由集成电路形式的硬件元件来实现。
2.如权利要求1的装置,其特征还在于包括一个响应内存的预测值计算器。
3.如权利要求1的装置,其中第一个运动矢量指向宏块的上半部分,第二个运动矢量指向宏块的下半部分,内存存储一组运动矢量,第一组运动矢量对应于至少一个宏块的上半部分,第二组运动矢量对应于至少一个宏块的下半部分,第一组运动矢量在内存中所占的存储元素少于第二组运动矢量。
CNB991104374A 1998-07-13 1999-07-12 通过存储和检索运动矢量对视频信号进行编码和解码的方法和装置 Expired - Lifetime CN1157063C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/114,568 US6519287B1 (en) 1998-07-13 1998-07-13 Method and apparatus for encoding and decoding video signals by using storage and retrieval of motion vectors
US09/114568 1998-07-13

Publications (2)

Publication Number Publication Date
CN1248861A CN1248861A (zh) 2000-03-29
CN1157063C true CN1157063C (zh) 2004-07-07

Family

ID=22356060

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB991104374A Expired - Lifetime CN1157063C (zh) 1998-07-13 1999-07-12 通过存储和检索运动矢量对视频信号进行编码和解码的方法和装置

Country Status (5)

Country Link
US (1) US6519287B1 (zh)
JP (1) JP4545250B2 (zh)
KR (1) KR100661256B1 (zh)
CN (1) CN1157063C (zh)
TW (1) TW423258B (zh)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100680452B1 (ko) * 2000-02-22 2007-02-08 주식회사 팬택앤큐리텔 움직임 벡터 메모리의 갱신방법 및 장치
US7003035B2 (en) 2002-01-25 2006-02-21 Microsoft Corporation Video coding methods and apparatuses
EP1418762A1 (en) * 2002-05-22 2004-05-12 Matsushita Electric Industrial Co., Ltd. Moving image encoding method, moving image decoding method, and data recording medium
US20040001546A1 (en) 2002-06-03 2004-01-01 Alexandros Tourapis Spatiotemporal prediction for bidirectionally predictive (B) pictures and motion vector prediction for multi-picture reference motion compensation
JP2004023458A (ja) * 2002-06-17 2004-01-22 Toshiba Corp 動画像符号化/復号化方法及び装置
US7154952B2 (en) 2002-07-19 2006-12-26 Microsoft Corporation Timestamp-independent motion vector prediction for predictive (P) and bidirectionally predictive (B) pictures
US7403660B2 (en) * 2003-04-30 2008-07-22 Nokia Corporation Encoding picture arrangement parameter in picture bitstream
KR100605746B1 (ko) * 2003-06-16 2006-07-31 삼성전자주식회사 블럭 기반의 움직임 보상 장치 및 방법
US20050013498A1 (en) * 2003-07-18 2005-01-20 Microsoft Corporation Coding of motion vector information
US7499495B2 (en) * 2003-07-18 2009-03-03 Microsoft Corporation Extended range motion vectors
US7609763B2 (en) * 2003-07-18 2009-10-27 Microsoft Corporation Advanced bi-directional predictive coding of video frames
TWI226803B (en) * 2003-07-30 2005-01-11 Mediatek Inc Method for using memory to store motion vectors of decoded macroblocks
US7599438B2 (en) * 2003-09-07 2009-10-06 Microsoft Corporation Motion vector block pattern coding and decoding
US7616692B2 (en) * 2003-09-07 2009-11-10 Microsoft Corporation Hybrid motion vector prediction for interlaced forward-predicted fields
US7567617B2 (en) * 2003-09-07 2009-07-28 Microsoft Corporation Predicting motion vectors for fields of forward-predicted interlaced video frames
US7724827B2 (en) * 2003-09-07 2010-05-25 Microsoft Corporation Multi-layer run level encoding and decoding
US7623574B2 (en) * 2003-09-07 2009-11-24 Microsoft Corporation Selecting between dominant and non-dominant motion vector predictor polarities
US8064520B2 (en) * 2003-09-07 2011-11-22 Microsoft Corporation Advanced bi-directional predictive coding of interlaced video
US7620106B2 (en) * 2003-09-07 2009-11-17 Microsoft Corporation Joint coding and decoding of a reference field selection and differential motion vector information
US7346111B2 (en) * 2003-12-10 2008-03-18 Lsi Logic Corporation Co-located motion vector storage
US20050135481A1 (en) * 2003-12-17 2005-06-23 Sung Chih-Ta S. Motion estimation with scalable searching range
US20050232355A1 (en) * 2004-04-15 2005-10-20 Srinivas Cheedela Video decoder for supporting both single and four motion vector macroblocks
TWI268715B (en) * 2004-08-16 2006-12-11 Nippon Telegraph & Telephone Picture encoding method, picture decoding method, picture encoding apparatus, and picture decoding apparatus
KR101104828B1 (ko) 2004-12-09 2012-01-16 삼성전자주식회사 움직임 벡터 연산 장치 및 그 방법
CN100397903C (zh) * 2004-12-21 2008-06-25 北京中星微电子有限公司 视频编解码过程中宏块数据读取的方法
US7769274B2 (en) * 2005-05-06 2010-08-03 Mediatek, Inc. Video processing and optical recording using a shared memory
JP4519723B2 (ja) * 2005-06-27 2010-08-04 富士通セミコンダクター株式会社 動きベクトルを利用する動画像データの符号化または復号化装置
US20070086524A1 (en) * 2005-10-13 2007-04-19 Chen Chen Method for transform-domain rounding in a decoder and video decoder thereof
US8787465B2 (en) * 2006-03-31 2014-07-22 Intel Corporation Method for neighboring block data management of advanced video decoder
JP4712643B2 (ja) * 2006-08-17 2011-06-29 富士通セミコンダクター株式会社 フレーム間予測処理装置、フレーム間予測方法、画像符号化装置及び画像復号装置
JP4763549B2 (ja) * 2006-08-18 2011-08-31 富士通セミコンダクター株式会社 フレーム間予測処理装置、画像符号化装置、及び画像復号化装置
CN100463524C (zh) * 2006-10-20 2009-02-18 西安交通大学 一种用于运动估计的vlsi装置及运动估计的方法
US8254455B2 (en) * 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US8228991B2 (en) * 2007-09-20 2012-07-24 Harmonic Inc. System and method for adaptive video compression motion compensation
CN101394559B (zh) * 2007-09-21 2010-10-27 扬智科技股份有限公司 动态图像处理方法、译码方法及其装置
US8494058B2 (en) 2008-06-23 2013-07-23 Mediatek Inc. Video/image processing apparatus with motion estimation sharing, and related method and machine readable medium
US8284839B2 (en) * 2008-06-23 2012-10-09 Mediatek Inc. Joint system for frame rate conversion and video compression
CN101616321B (zh) * 2008-06-26 2014-09-24 晨星软件研发(深圳)有限公司 影像处理电路及方法
US8660176B2 (en) * 2008-09-26 2014-02-25 Qualcomm Incorporated Resolving geometric relationships among video data units
US8724697B2 (en) * 2008-09-26 2014-05-13 Qualcomm Incorporated Locating motion vectors for video data units
US8634457B2 (en) * 2008-09-26 2014-01-21 Qualcomm Incorporated Determining availability of video data units
US8335256B2 (en) * 2008-11-14 2012-12-18 General Instrument Corporation Motion compensation in video coding
US8189666B2 (en) 2009-02-02 2012-05-29 Microsoft Corporation Local picture identifier and computation of co-located information
US20110299605A1 (en) * 2010-06-04 2011-12-08 Apple Inc. Method and apparatus for video resolution adaptation
KR101824241B1 (ko) * 2011-01-11 2018-03-14 에스케이 텔레콤주식회사 인트라 부가정보 부호화/복호화 장치 및 방법
US9282338B2 (en) 2011-06-20 2016-03-08 Qualcomm Incorporated Unified merge mode and adaptive motion vector prediction mode candidates selection
US8644620B1 (en) 2011-06-21 2014-02-04 Google Inc. Processing of matching regions in a stream of screen images
USRE48920E1 (en) * 2014-02-21 2022-02-01 Lattice Semiconductor Corporation Adaptive processing of video streams with reduced color resolution
WO2015134198A1 (en) * 2014-02-21 2015-09-11 Silicon Image, Inc. Adaptive processing of video streams with reduced color resolution
EP3099072A1 (en) * 2015-05-28 2016-11-30 Parabola Research Limited Method, system and device for image and video coding
US20180011709A1 (en) * 2016-07-08 2018-01-11 Texas Instruments Incorporated Stream reference register with double vector and dual single vector operating modes
WO2019000443A1 (zh) * 2017-06-30 2019-01-03 华为技术有限公司 一种帧间预测的方法及装置
WO2020089823A1 (en) * 2018-10-31 2020-05-07 Beijing Bytedance Network Technology Co., Ltd. Overlapped block motion compensation with adaptive sub-block size

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3002019B2 (ja) * 1991-07-04 2000-01-24 富士通株式会社 セル廃棄補償機能を有する画像符号化伝送方式
JPH0620050A (ja) * 1992-07-03 1994-01-28 Matsushita Electric Ind Co Ltd 動画像信号の復号化装置と推定動きベクトル算出方法
KR0122741B1 (ko) * 1992-09-23 1997-11-17 배순훈 병렬 구조를 갖는 기억 장치
US5805223A (en) * 1994-05-25 1998-09-08 Canon Kk Image encoding apparatus having an intrapicture encoding mode and interpicture encoding mode
EP0710028A3 (en) * 1994-10-28 2000-01-19 Kabushiki Kaisha Toshiba Image decoding apparatus
KR0151199B1 (ko) * 1994-11-19 1998-10-15 구자홍 디지탈 영상의 암호화 방법
JPH09121358A (ja) * 1995-10-25 1997-05-06 Matsushita Electric Ind Co Ltd 画像符号化及び復号化装置と方法
JP3235453B2 (ja) * 1996-01-22 2001-12-04 松下電器産業株式会社 画像符号化装置
KR100420471B1 (ko) * 1996-07-08 2004-07-05 주식회사 팬택앤큐리텔 대상물영상의부호화방법및부호화장치
US5978509A (en) * 1996-10-23 1999-11-02 Texas Instruments Incorporated Low power video decoder system with block-based motion compensation
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
US5973755A (en) * 1997-04-04 1999-10-26 Microsoft Corporation Video encoder and decoder using bilinear motion compensation and lapped orthogonal transforms

Also Published As

Publication number Publication date
JP4545250B2 (ja) 2010-09-15
JP2000050284A (ja) 2000-02-18
CN1248861A (zh) 2000-03-29
KR20000011637A (ko) 2000-02-25
US6519287B1 (en) 2003-02-11
KR100661256B1 (ko) 2006-12-27
TW423258B (en) 2001-02-21

Similar Documents

Publication Publication Date Title
CN1157063C (zh) 通过存储和检索运动矢量对视频信号进行编码和解码的方法和装置
CN102316320B (zh) 处理视频图像的方法
US6198772B1 (en) Motion estimation processor for a digital video encoder
US6473461B1 (en) Half-pixel motion estimation in motion video signal encoding
US5883823A (en) System and method of a fast inverse discrete cosine transform and video compression/decompression systems employing the same
US5995080A (en) Method and apparatus for interleaving and de-interleaving YUV pixel data
US5576765A (en) Video decoder
CN101448162B (zh) 处理视频图像的方法
AU657510B2 (en) Improved image encoding/decoding method and apparatus
US6233279B1 (en) Image processing method, image processing apparatus, and data storage media
JP2746749B2 (ja) インターレースされたビデオシーケンスのフィールドを符号化するシステムと符号化方法及び復号するシステムと復号方法
CN101208954B (zh) 具有可变压缩比和用于存储及检索参考帧数据的缓冲器的视频解码器以及视频解码方法
US5532747A (en) Method for effectuating half-pixel motion compensation in decoding an image signal
US5835148A (en) Apparatus for parallel decoding of digital video signals
JPH06511361A (ja) アダプティブ・ブロックサイズイメージ圧縮方法およびシステム
JP2013153450A (ja) バタフライプロセッサを使用して離散コサイン変換をエンコードしそして計算するための装置及び方法
AU748947B2 (en) Method and apparatus for inverse quantization of MPEG-4 video
Yng et al. A low complexity and lossless frame memory compression for display devices
US20060280245A1 (en) MPEG video storage address generation apparatuses and methods for uniformly fetching and storing video data
JP2002523929A (ja) 画像処理中に2次元変換を実行するための回路及び方法
CN101389031A (zh) 一种对变换系数的处理方法及装置
JPH0787491A (ja) 量子化装置、逆量子化装置及び画像処理装置並びに量子化方法、逆量子化方法及び画像処理方法
JP2000023169A (ja) 復号装置
Ackland Video compression and VLSI
Uramoto et al. An MPEG2 video decoder LSI with hierarchical control mechanism

Legal Events

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

Owner name: FREEDOM SEMICONDUCTORS CO.

Free format text: FORMER OWNER: MOTOROLA, INC.

Effective date: 20040820

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

Effective date of registration: 20040820

Address after: Texas in the United States

Patentee after: FreeScale Semiconductor

Address before: Illinois Instrunment

Patentee before: Motorola, Inc.

ASS Succession or assignment of patent right

Owner name: LIANG HOLDING CO., LTD.

Free format text: FORMER OWNER: FREEDOM SEMICONDUCTOR CORP.

Effective date: 20120523

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

Effective date of registration: 20120523

Address after: Delaware

Patentee after: Bright Holdings LLC

Address before: Texas, USA

Patentee before: FreeScale Semiconductor

CX01 Expiry of patent term

Granted publication date: 20040707

CX01 Expiry of patent term