CN1652605B - 视频编解码器、数据处理系统以及用于上述系统的方法 - Google Patents

视频编解码器、数据处理系统以及用于上述系统的方法 Download PDF

Info

Publication number
CN1652605B
CN1652605B CN2004100757395A CN200410075739A CN1652605B CN 1652605 B CN1652605 B CN 1652605B CN 2004100757395 A CN2004100757395 A CN 2004100757395A CN 200410075739 A CN200410075739 A CN 200410075739A CN 1652605 B CN1652605 B CN 1652605B
Authority
CN
China
Prior art keywords
task
memory
data
data processing
brightness
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
CN2004100757395A
Other languages
English (en)
Other versions
CN1652605A (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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics 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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1652605A publication Critical patent/CN1652605A/zh
Application granted granted Critical
Publication of CN1652605B publication Critical patent/CN1652605B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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/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/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/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/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/436Methods 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
    • 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

Abstract

本发明的示例性实施例提供了一种数据处理系统,该数据处理系统可以包括:任务调度器,用于允许启动在流水线上可操作的多个独立数据处理单元和/或控制要通过任务区分的流水线操作;以及存储器库,用于存储来自数据处理单元的数据。数据处理单元可以响应于从任务调度器所提供的任务开始信号来执行任务。数据处理单元可以完成如任务调度器所指令的任务,向调度器传送任务结束信号并且转换到备用状态。

Description

视频编解码器、数据处理系统以及用于上述系统的方法
技术领域
本发明涉及一种视频编解码器、数据处理系统以及用于上述系统的方法。
背景技术
运动图像专家组(MPEG)定义了一种用于压缩和恢复运动图像的标准。MPEG技术可以利用时间和空间冗余的参数来压缩运动图像。时间冗余可由于图像在连续帧上出现在时间上重叠而产生。特定冗余可以根据单一帧中重叠的图像图案来确定。
如图1所示,传统的视频编解码器(编码器和/或解码器)可以由用于存储输入图像数据的帧存储器11、13和15、离散余弦变换器(DCT)17、反DCT(IDCT)23、量化器(Q)19、反量化器(IQ)21、可变长度编码器(VLC)29、运动估计器(ME)25、以及运动补偿器(MC)27构成。
帧存储器11可以存储为当前帧的输入图像数据。帧存储器13可以存储在当前帧之前重建的图像数据,其可以是重建帧或先前帧。帧存储器15可以存储进行运动补偿的图像数据,它可以被称为运动补偿帧。
在帧间编码模式中,可以在具有16×16像素的宏块(MB)中执行运动补偿。运动估计器27可以通过在存储在帧存储器13中的重建帧中定位与当前宏块充分相似的运动矢量来获得运动矢量,其中所述当前宏块可以从帧存储器11中读取。
运动补偿器25可以从运动估计器27提供的运动矢量以及帧存储器13提供的先前帧中获得已运动补偿的帧。在由帧存储器15所提供的运动补偿帧和由帧存储器11所提供的当前帧之间的变化所造成的图像差别数据可以在8×8的单元块中由DCT 17进行处理,并且通过量化器19被量化。量化后的图像差别数据可以通过IDCT 21和反量化器23来恢复,并且在生成重建帧和/或运动补偿图像数据的过程中被使用。
VLC 29可以执行量化图像差别数据和/或运动矢量的熵编码操作。
内编码模式不能处理运动补偿,且从帧存储器11所提供的当前帧可以通过DCT处理和/或量化来进行处理并且可以进行可变长度编码操作。
传统的视频编解码器可以与多个数据处理单元,例如DCT、IDCT、量化器、反量化器、VLC、运动估计器以及运动补偿器所共享的公共总线结构相关联。处理单元之间的共享数据可变得越来越困难,并且对外部的存储器的带宽需求可增加。数据处理单元的操作可受到在公共总线上操作的数据量的限制。
发明内容
本发明的示例性实施例提供了视频编解码器(即编码器和/或解码器)、数据处理系统、以及用于上述器件或系统的方法,它们可以减少存储器和/或带宽需求。
本发明的示例性实施例可以改进数据处理系统的性能。根据本发明的示例性实施例来对数据处理单元的实现、维护和/或修改可以通过任务开始和/或结束信号来与任务相关地或独立地控制数据处理单元的流水线操作(pipelining operation)。
在本发明的示例性实施例中,数据处理单元可以共享内部数据存储器,并可以减少外部存储器需求,例如带宽需求。
本发明的示例性实施例可以降低数据处理系统中的功率损耗。
在本发明的示例性实施例中,数据处理系统可以由多个数据处理单元以及一个任务调度器构成,其中所述任务调度器可以通过与多个操作相关联的任务来控制在流水线操作中可操作的数据处理单元。
在本发明的示例性实施例中,任务调度器可以将任务开始信号施加到数据处理单元并且可以从数据处理单元接收任务结束信号。数据处理单元可以响应于任务开始信号来执行任务并且可以向任务调度器施加任务结束信号从而通知任务的结束。
在本发明的示例性实施例中,数据处理系统可以进一步包括:可用于建立数据处理单元的功能的控制寄存器以及可用于存储在数据处理单元的操作中所使用的数据的内部存储器库。数据处理单元可以包括:离散余弦变换量化器、运动估计器以及运动补偿器,其可以编码例如MPEG运动图像,其中所述离散余弦变换量化器可包括:离散余弦变换器、反离散余弦变换器、量化器和反量化器。
在本发明的示例性实施例中,内部存储器库可以包括:运动补偿亮度和/或色度数据存储器,可用于存储由运动补偿器进行运动补偿的亮度和/或色度数据;参考宏块亮度和/或色度数据存储器,可用于存储从帧存储器所检索到(retrieve)的当前输入帧的亮度和/或色度数据;以及搜索域数据存储器,可用于存储可从重建帧获得的亮度数据,所述重建帧可以在当前输入帧之前从帧存储器中检索获得。
在本发明的示例性实施例中,搜索域数据存储器可以向运动估计器和/或运动补偿器提供先前帧的亮度和/或色度数据。运动补偿亮度和/或色度数据存储器可以向离散余弦变换器和反离散余弦变换器提供运动补偿的亮度和/或色度数据。参考宏块亮度和/或色度数据存储器可以向运动估计器提供当前帧的亮度数据,以及向离散余弦变换器提供当前帧的亮度和/或色度数据。
在本发明的示例性实施例中,可以在任务开始信号和任务结束信号之间的期间内为数据处理单元提供系统时钟。
在本发明的示例性实施例中,当数据处理系统可以通过控制寄存器在内编码模式下进行操作时,运动估计器和/或运动补偿器不可以接收系统时钟,当数据处理系统在帧间解码模式下进行操作时,运动估计器不可以接收系统时钟,以及当数据处理系统在内解码模式下进行操作时,存储器库、运动估计器和/或运动补偿器不可以接收系统时钟。
在本发明的另一个示例性实施例中,可以包括数据处理单元,其可以编码MPEG运动图像,所述数据处理单元可以包括离散余弦变换量化器,该离散余弦变换量化器包括离散余弦变换器、反离散余弦变换器、量化器、以及反量化器。视频编解码器可以进一步包括:运动估计器、运动补偿器、可用来存储由数据处理单元共享的数据的内部存储器库、可以通过与多个操作相关联的任务来控制可在流水线操作(pipelining operation))中可操作的数据处理单元的任务调度器、以及可以建立数据处理单元的功能的控制寄存器。
在本发明的示例性实施例中,任务调度器可以生成用于指令数据处理单元的任务开始信号。数据处理单元可以转换到操作状态并且响应于从任务调度器所提供的任务开始信号来执行任务。当由任务开始信号指令的任务可以结束时,数据处理单元可以向任务调度器提供任务结束信号。任务结束信号可以将任务的结束通知给任务调度器。数据处理单元可以转换到备用状态(standby state)以等待将要从任务调度器所提供的下一个任务指令。任务调度器可以生成下一个任务开始信号并且可以响应于从数据处理单元可提供的任务结束信号来执行任务的功能。
在本发明的示例性实施例中,运动估计器可以估计运动和/或传送运动矢量。运动补偿器可以执行亮度和/或色度数据的运动补偿。离散余弦变换量化器可以执行亮度和/或色度数据的DCTQ操作,并且可以写重建帧。存储器库的帧存储控制器可以控制将先前帧的亮度数据、以及当前帧的亮度和/或色度数据从帧存储器写入到存储器库的数据存储器中的写入。亮度和/或色度数据可以通过可变长度编码器和/或解码器进行可变长度编码和/或解码操作的处理。
在本发明的示例性实施例中,存储器库可以包括:运动补偿亮度和/或色度数据存储器,可用于存储由运动补偿器进行运动补偿的亮度和/或色度数据;参考宏块亮度和/或色度数据存储器,可用于存储从帧存储器检索到的当前输入帧的亮度和/或色度数据;搜索域数据存储器,可用于存储在从帧存储器检索到的当前输入帧之前从重建帧中所获得的亮度数据;内部数据存储控制器,可用于响应于可从数据处理单元提供的内部数据存储控制信号,来向数据处理单元提供数据;帧存储控制器,可用于访问帧存储器并且将数据存储到参考宏块数据存储器和/或搜索域数据存储器中;以及任务控制器,可用于将任务开始信号从任务调度器传送到帧存储器,并且当可完成任务时,向任务调度器传送任务结束信号。
在本发明的示例性实施例中,运动估计器可以包括:运动估计引擎,可用于利用从搜索域数据存储器和/或参考宏块亮度存储器检索到的亮度宏块来评估运动矢量;运动矢量传送控制器,可用于向运动补偿器和/或可变长度编码器传送运动矢量;运动估计任务控制器,可用于从任务调度器接收任务开始信号,并且可以向任务调度器传送任务结束信号;以及运动估计内部数据存储读取控制器,可用于生成内部数据存储控制信号从而从搜索域存储器和/或参考宏块亮度存储器中检索(retrieve)亮度数据。
在本发明的示例性实施例中,运动补偿器可以包括:运动矢量分析器,可用于分析运动矢量,该运动矢量可以由编码模式中的运动估计器和/或解码模式中的可变长度解码器来提供;运动补偿引擎,可用于根据已分析的运动矢量来利用亮度和/或色度数据执行运动补偿;运动补偿任务控制器,可用于从任务调度器接收任务开始信号并且可以向任务调度器传送任务结束信号;运动补偿内部数据存储读/写控制器,可用于生成用来从搜索域数据存储器检索数据的内部数据存储控制信号和/或生成用来将运动补偿后的亮度和/或色度数据写入到运动补偿数据存储器中的内部数据存储控制信号;以及帧存储读取控制器,可用于生成用来从帧存储器中检索色度数据的帧存储器读取控制信号。
在本发明的示例性实施例中,离散余弦变换量化器可以包括:DCTQ任务控制器,可用于从任务调度器接收任务开始信号并且可以将任务结束信号传送到任务调度器;DCTQ内部数据存储读取控制器,可用于生成内部数据存储控制信号以便从参考宏块数据存储器中检索得到亮度和/或色度数据和/或从运动补偿数据存储器中检索得到运动补偿后的亮度和/或色度数据;以及DCTQ帧存储写入控制器,可用于在帧存储器中存储重建帧。
在本发明的另一个示例性实施例中,视频编解码器可以包括数据处理单元,该数据处理单元可以包括离散余弦变换量化器。离散余弦变换量化器可以包括离散余弦变换器、反离散余弦变换器、量化器、以及反量化器,该离散余弦变换量化器能够编码MPEG运动图像。视频编解码器可以进一步包括运动估计器、运动补偿器、以及内部存储器库,其中该内部存储器库可以存储由数据处理单元所共享的数据。运动估计器和运动补偿器可以共享搜索域数据存储器,离散余弦变换器和反离散余弦变换器可以共享运动补偿数据存储器,以及运动估计器和离散余弦变换器可以共享参考宏块数据存储器。
在本发明的示例性实施例中,视频编解码器可以还包括:任务调度器,可用于通过与多个操作相关联的任务来控制可在流水线操作中操作的数据处理单元。任务调度器可以向数据处理单元施加任务开始信号,并且可以从数据处理单元接收任务结束信号。数据处理单元可以响应于任务开始信号来执行任务并且可以向任务调度器施加任务结束信号来指示任务的结束。
在本发明的另一个示例性实施例中,一种处理数据的方法包括:响应于可从任务调度器提供的任务开始信号来由数据处理单元执行任务;当可完成任务时,由数据处理单元生成可用来指示任务结束的任务结束信号;在数据处理单元中建立备用状态以等待下一个任务开始信号;以及由任务调度器响应于任务结束信号来转换任务。
附图说明
附图被包括来提供了对本发明的示例性实施例做进一步的理解。附图说明了本发明的示例性实施例并且用于以实例的方式来解释本发明的原理。在附图中:
图1是说明传统的视频编解码器的功能性结构的一个例子的方框图;
图2是说明根据本发明的视频编解码器的示例性实施例的方框图,其可包括存储器库;
图3是说明根据本发明的视频编解码器的示例性实施例的方框图,其可包括存储器库和任务调度器;
图4是说明在图3中所示的视频编解码器的示例性实施例中的编码模式下的流水线操作的例子的示意图;
图5说明了搜索域存储器的组合的例子,该搜索域存储器可以被包括在图2和3中所示的存储器库中;
图6A和6B说明了参考宏块亮度和色度存储器的组合的例子,该参考宏块亮度和色度存储器可以被包含在图2和3中所示的存储器库中;
图7A和7B说明了运动补偿亮度和色度存储器的组合的例子,该运动补偿亮度和色度存储器可以被包括在图2和3中所示的存储器库中;
图8是说明在本发明的示例性实施例中的内部存储器和数据处理单元之间通过接口网络的相互关系特征的例子的方框图;
图9是示意性地说明图2和3中所示的运动估计器(ME)的示例性实施例的方框图;
图10是示意性地说明图2和3中所示的运动补偿器(MC)的示例性实施例的方框图;
图11是示意性地说明图2和3中所示的离散余弦变换量化器(DCTQ)的示例性实施例的方框图;
图12是示意性地说明图2和3中所示的存储器库的示例性实施例的方框图;
图13说明了信号的互连特征的例子,该信号可以在任务调度器和数据处理单元之间相互交换;
图14A和14B说明了流水线操作的特征的例子,其可以被包括在帧间编码模式和/或内编码模式中;
图15A和15B说明了流水线操作的特征的例子,其可以被包括在帧间解码模式和/或内解码模式中;
图16A至16D是说明分别在图14A、14B、15A和15B中所示的模式下流水线操作中的任务流的实例的处理过程图的例子;
图17至20是分别在帧间编码模式、内编码模式、帧间解码模式和/或内解码模式下任务调度器的实例的转换框图的例子;
图21至24显示了生成分别用于存储器库、运动估计器、运动补偿器和/或离散余弦变换量化器的任务控制信号的算法方案的例子;
图25是存储器库的示例性实施例的转换图的例子;
图26是运动估计器的示例性实施例的转换图的例子;
图27是运动补偿器的示例性实施例的转换图的例子;
图28是离散余弦变换量化器的示例性实施例的转换框图的例子;以及
图29是说明当数据处理单元可以操作时,可以提供系统时钟的动态时钟选通方法的时序图的例子。
具体实施方式
下面将参照随后的附图来更详细地描述本发明的示例性实施例。但是,本发明的示例性实施例可以以不同的形式来实现,并且不应该被看作是将其限制为这里所述的示例性实施例。而其意义在于提供这些示例性实施例从而使本公开是全面和完整的,并且可以全面传达本发明的范围给本领域技术人员。整个说明书中相同的标号表示相同的单元。
图2说明了根据本发明的示例性实施例的作为数据处理装置的视频编解码器的功能性结构的例子,其可以减少存储器带宽需求。视频编解码器200可以包括数据处理单元201、221和231,其可以独立地执行数据处理操作,以及微处理器270,其可以控制处理单元的操作。数据处理单元201、221和231可以分别是DCTQ、运动估计器(ME)、和/或运动补偿器(MC)。DCTQ 201可以由DCT 203、量化器(Q)205、反量化器(IQ)207、以及IDCT 209构成。编码控制器215可以管理帧间模式、内模式、和/或量化索引的操作。
视频编解码器200可以包括存储器库241,其可以降低存储带宽需求。存储器库241可以由搜索域存储器(或先前帧存储器)243、运动补偿存储器245、和/或参考宏块存储器(或当前帧存储器)247构成,其可以是视频编解码器200的内部存储器。内部存储器243、245和/或247可以提供可由数据处理单元201、221和231所共享的数据。运动估计器221和运动补偿器231可以共享搜索域存储器243,和/或DCT 203和IDCT 209可以共享运动补偿存储器245。运动估计器231和DCT 203可以共享参考宏块存储器247。
内部存储器库241可以响应于由数据处理单元所提供的控制信号(内部存储控制信号),来将数据提供到数据处理单元。
帧存储器281和/或291可以存储可当前处理的输入图像数据(当前帧),和/或在当前输入图像数据之前的重建图像数据(重建帧或先前帧)。帧存储器281和191可以是突发访问(burst-accessible)的同步DRAM。存储在帧存储器281和291中的亮度和/或色度数据可以被写入到内部存储器243和247当中。
DCTQ 201可以包括用于暂时存储重建帧的重建存储器(重建-存储器)211,和/或用于存储量化系数的量化系数存储器(COEF存储器)213。
视频编解码器200可以在微控制器290的控制下充当编码器和/或解码器,二者之一或者二者可以是帧间模式中或者内部模式中。
视频编解码器200可以执行内编码和/或帧间编码。内编码操作可以减少当前输入帧的空间冗余,其可以改进DCT的性能和/或改进当前帧的量化。帧间编码操作可以减少帧之间(例如连续帧)的时间冗余,这样可以改善运动估计、运动补偿、在当前帧和/或运动补偿帧(即预测帧)之间的图像差别数据的DCT,和/或改进量化。
视频编解码器200可以执行数据处理单元的另一帧间模式。运动估计器221可以校准输入当前帧和先前(即重建帧)之间的以16×16像素宏块为单元的亮度分量(Y)的运动。宏块可以与当前帧的宏块充分相似(例如,匹配),该宏块可以由先前帧的搜索域中的参考宏块存储器247来提供,先前帧可以由搜索域存储器243来提供,并且可以估计在两个宏块之间的位移(例如,运动矢量;MV)。可以在运动补偿和/或可变长度编码处理中使用已估计的运动矢量MV。搜索域可以由与先前帧的当前宏块相对应的一个宏块以及八个宏块构成。搜索域可以由48×48个像素(即九个宏块)构成。
运动补偿器231可以生成亮度和/或色度数据块(即预测数据),其可以包括与先前帧的亮度(Y)和/或色度(Cb/Cr)块之间的运动位移,其可以由搜索域存储器243和帧存储器291来提供,并且可与运动估计器221所获得的已估计出的运动矢量MV相一致。运动补偿的亮度和/或色度数据块可以被存储在运动补偿存储器245中。
DCTQ 201可以通过利用DCT 203和量化器205,利用已运动补偿的数据块(例如,预测数据)来执行编码操作,并且可以通过利用反量化器207和IDCT209来执行解码操作。DCTQ 201可以使用DCT203和/或量化器205,对图像差别数据执行DCT操作和/或量化操作,所述图像差别数据是通过从可由参考宏块存储器247所提供的当前帧的亮度和/或色度数据块中减去可由运动补偿存储器245提供的已运动补偿的亮度和/或色度数据块(预测数据)获得的,且可以将量化系数存储到量化系数存储器213中。已量化的图像差别数据可以通过反量化器207和/或IDCT 209转换成已反量化和/或IDC转换的数据,并且可被加入到已运动补偿的亮度和/色度数据当中从而形成重建帧,该重建帧可以(例如暂时地)被存储在重建帧存储器211当中。DCTQ 201可以处理以8×8像素为单元的数据。可存储在重建帧存储器211中的重建帧可以被发送到外部帧存储器291并且可以执行运动补偿。
DCTQ 201可以对运动矢量MV执行可变长度编码操作,其可以由运动估计器221和/或可存储在量化系数存储器213中的量化系数来校准。可变长度编码操作可以由具有VLC的硬件和/或具有合适程序的软件来执行。运动矢量和/或量化系数可以被写入到外部帧存储器291中。VLC可以访问量化系数存储器213并且利用存储在其中的量化系数(或系数组)。VLC可以访问运动估计器221并且利用其中所保持的运动矢量。VLC可以包括来自于运动估计器221和/或量化系数存储器213的运动矢量MV和/或量化系数。VLC和/或DCTQ201可以共享量化系数存储器213。VLC可以生成准备/占用信号,该信号用于将激活状态通知给DCTQ 201。量化系数可以被存储在存储器213和DCTQ 201中,可以生成用来通知向存储器213中写入量化系数的操作完成的信号,该信号可以允许VLC访问存储器213并且可以执行VLC操作,该VLC操作可以包括量化系数。
视频编解码器200可以减少空间冗余,并且当前帧可以由参考宏块存储器247来提供,该当前帧可以由DCT 203转换成已DC转换的数据,并可以由量化器205来量化。量化系数COEF可以由量化产生,并且可以被存储在量化系数存储器213中,该存储器可以是内部存储器。量化系数COEF可以由软件或被VLC进行熵编码。
视频编解码器200可以充当解码器使用而可不执行运动估计。帧间解码模式可以包括运动补偿,解码熵编码的图像差别数据的量化系数,并且利用运动矢量来恢复一帧。运动补偿器231可以执行亮度和/或色度数据的运动补偿,其可以包括对已熵解码的运动矢量的参考。DCTQ 201可以对亮度和/或色度数据的已熵解码的量化系数执行反量化和/或IDCT操作,并且可以通过将反量化和/或IDC-转换的量化系数加入到已运动补偿的亮度和/或色度数据中来恢复一帧。
内解码模式不需要执行如在帧间解码模式中已经需要执行的运动补偿,但是可以包括熵解码和/或帧解码的操作。
运动估计器221和运动补偿器231可以共享搜索域存储器243,以及DCT203和IDCT 209可以共享运动补偿存储器245。运动估计器231和DCT 203可以共享参考宏块存储器247,并因此能够减少存储器带宽需求。
图3是说明根据本发明的作为数据处理系统的视频编解码器300的另一个示例性实施例的方框图。视频编解码器300可以由微控制器390、DCTQ 301、运动估计器321、运动补偿器331、数据处理单元以及存储器库341构成,其中微控制器390可以包括任务调度器361和控制寄存器371,数据处理单元可以包括可变长度编码器和解码器(VLCD)351。DCTQ 301可以包括DCT 303、量化器305、反量化器307和IDCT 309。
VLCD 351可以执行熵编码和/或解码操作。熵编码和/或熵解码操作也可以由具有适当算法的软件来执行。
控制寄存器371可以建立视频编解码器300的功能结构,例如帧开始、内编码、帧间编码、编码、解码等。
存储器库341可以包括搜索域存储器343、运动补偿存储器345、和/或参考宏块存储器347。数据处理单元301、321和331可以通过接口网络349的方式来共享公共数据。运动估计器321和/或运动补偿器331可以共享搜索域存储器343。DCT 303和IDCT 309可以共享运动补偿存储器345。运动估计器331和DCT 303可以共享参考宏块存储器347。
任务调度器361可以控制数据处理单元的流水线操作。任务调度器361可以输出命令(或控制信号),即任务开始信号,其可以指令DCTQ 301、运动估计器321、运动补偿器331、和/或存储器库来执行任务。数据处理单元301、321和331以及存储器库341,从任务调度器361接收任务开始信号,并且也可执行相应的任务。数据处理单元301、321和331以及存储器库341可以向任务调度器361发送任务结束信号并且保持在备用状态,以等待另一个任务开始信号的到来。任务调度器361可以从数据处理单元301、321、331和/或存储器库341接收任务结束信号,并且可生成另一个任务开始信号以指令数据处理单元301、321、331和/或存储器库341来执行另一个任务(例如,下一个任务)。
VLCD 351可以对运动矢量执行VLCD操作,该运动矢量可以是由运动估计器221和/或存储在图2的量化系数存储器213中的量化系数COEF提供的。运动矢量可以被提供给图2所示的外部帧存储器291(例如,运动矢量可以从运动估计器中被存储到外部帧存储器中),并且可以伴有量化系数(即也可以从量化系数存储器中存储到外部帧存储器中的量化系数)。
VLCD 351可以生成准备/占用信号来将激活状态通知给DCTQ 301。DCTQ301可以将量化系数COEF写到量化系数存储器中,并且可以生成用来通知操作已完成的信号,其中该操作可以启动VLCD 351。
任务调度器361可以独立地在数据处理单元上执行任务。运动估计器321可以执行估计亮度数据块的运动的任务,和/或在外部帧存储器中写入运动矢量的任务。运动补偿器331可以独立地对在亮度和/或色度数据块上执行任务,例如,分别对亮度和/或色度数据块的运动进行补偿的任务。DCTQ 301可以独立地在亮度和/或色度数据块上执行任务,例如,分别对亮度和/或色度数据块执行DCTQ任务(DCT、量化、反量化、IDCT),和/或存储重建帧的任务。VLCD 351可以在运动补偿器331和DCTQ 301的控制下,执行对亮度分量进行熵编码和/或解码的任务,色度分量的量化系数的熵编码和/或解码的任务,以及运动矢量的VLCD的任务。
存储器库341可以将先前帧的亮度分量从图2的帧存储器281和/或291中存储到搜索域存储器343中,并且可以将当前帧的亮度和/或色度分量存储到运动补偿存储器345中。
存储在内部存储器343、345和/或347中的数据可以被DCTQ 301、运动估计器321和/或运动补偿器331所访问。
可由数据处理单元操作的任务可以由任务调度器361来控制。图4说明了图3中所示的视频编解码器300的示例性实施例的编码模式下的流水线操作的例子。
当前和/或先前帧的亮度分量可以响应于任务调度器361的任务开始信号被从帧存储器迁移到参考宏块亮度存储器和/或运动补偿存储器中。运动估计器321可以开始运动估计从而生成相应的运动矢量,并且运动补偿器331可以参考最终产生的运动矢量来对亮度和/或色度分量执行运动补偿。VLCD351不需要对亮度分量执行运动补偿,并且运动矢量可以被写到外部帧存储器中。DCTQ 301可以对色度分量执行DCTQ任务以及存储其重建帧的任务。DCTQ 301可以完成亮度分量的DCTQ任务并且可以利用其量化系数来执行熵编码操作。
在图5、6A、6B、7A和7B中说明了存储器库341的结构配置的示例,其可以更为有效地利用数据处理单元执行任务的流水线操作和/或减少外部存储器带宽需求。运动补偿的搜索域可以被设置在[-16,16]的范围内,即在其中可以包括具有脉冲长度(burst length)为4、8或16的单一访问模式的系统条件下搜索域可以是48×48像素。存储器库341可以包括搜索域存储器、参考宏块存储器和/或运动补偿存储器。
图5说明了搜索域存储器的组成的一个例子,其可以存储亮度分量,该亮度分量可以由用于运动估计和/或补偿所重建的先前帧来提供。图6A和6B说明了参考宏块亮度和/或色度存储器的组成的例子,其可以存储亮度和/或色度分量,该亮度和/或色度分量可以由用于运动估计和DCTQ的当前帧输入来提供。图7A和7B说明了运动补偿亮度和/或色度存储器的组成的例子,其可以存储用于DCTQ编码/解码和/或帧重建的已运动补偿的亮度和/或色度分量。
参照图5,搜索域存储器343可以存储图2所示的外部帧存储器291中的具有脉冲长度为8和/或16访问的先前帧的亮度分量。搜索域存储器343可以存储48×(16×10)像素和/或搜索域[-16,16]可能需要48×48像素的数据。流水线操作可以利用帧存储器的8和/或16的突发长度来执行。图5显示了可以存储48×(16×10)像素数据的搜索域存储器343的结构的例子。
外部帧存储器291可以利用为8的突发长度来存取,并且48×16的两个亮度块可以被存储在搜索域存储器343的块PY0和PY1中。帧存储器291可以利用脉冲长度为16来存取,以及48×16的两个亮度块可以被存储在搜索域存储器343的块PY0和PY1中。可以通过存取具有突发长度为16的帧存储器来将四个48×16的亮度块存储在搜索域存储器343的块PY2~PY5中。四个48×16的亮度块可以通过存取具有突发长度为16的帧存储器而被存储在搜索域存储器343的块PY6~PY9中。四个48×16的亮度块可以被存储在搜索域存储器343的块PY6~PY9中,和/或四个48×16的亮度块可以被存储在搜索域存储器343的块PY0~PY3中。这些处理可以重复进行直到在全部或者基本全部的先前帧的水平宏块上可以完成突发脉冲存取操作为止。可以计算在水平方向上剩余的宏块数目,并且为剩余的宏块执行突发脉冲存取(burstaccess)。垂直和水平像素的尺寸,例如,48像素和16×10像素,可以相应于搜索域的范围而变化。
参考图6A和6B,参考宏块存储器347可以包括可用来存储亮度分量的参考宏块亮度存储器347a,和/或可用来存储色度分量的参考宏块色度存储器347b。参考宏块亮度存储器347a可以以突发脉冲长度16存取帧存储器291并且可将亮度分量存储于其中。参考宏块色度存储器347b可以以突发脉冲长度8存取帧存储器291,并且可将色度分量存储于其中。
亮度分量数据可以以突发脉冲长度16以四个宏块为单元(每个的尺寸为16×16像素)被存取,并且可以被存储在参考宏块亮度存储器347a的块CY0~CY3中。四个亮度宏块块可以被存储在参考宏块亮度存储器347a的块CY4~CY7中。亮度数据可以被访问并且被存储在亮度块CY4~CY7中,并且先前已经存储在亮度块CY0~CY3中的数据可以被处理。四个16×16像素的亮度宏块可以被存储在参考宏块亮度存储器347a的块CY4~CY7中,而另外的四个(例如接下来的四个)亮度宏块块可以被存储在参考宏块亮度存储器347a的块CY0~CY3中。可以处理一个存储块组(例如CY0~CY3),而另一个存储块组(例如,CY4~CY7)可以接收用于下一个处理阶段的亮度数据,并且可以增强流水线操作的性能。重复进行处理直到在全部或者基本全部先前帧的水平宏块完成突发脉冲存取操作为止。可以对应于水平方向上剩余的宏块数目进行突发脉冲存取。
可以以Cb和Cr的顺序,以脉冲长度8以四个宏块为单元(8×8像素)来存取色度分量数据,并且该色度分量数据可以被存储到参考宏块色度存储器347b的块CCb0~CCb3以及CCr0~CCr3中。可以以Cb和Cr的顺序,以脉冲长度8以四个宏块为单元(每个尺寸为8×8像素)来存取下一个色度分量数据,并且该下一个色度分量数据可以被存储到参考宏块色度存储器347b的块CCb4~CCb7以及CCr4~CCr7中。已经存储在色度块CCb4~CCb7和/或CCr4~CCr7中的数据可以被处理(例如,完全处理),以及在色度块CCb0~CCb3和/或CCr0~CCr3中的色度数据可以被访问和存储。可以处理一个色度块组(例如CCb0~CCb3和CCr0~CCr3),其它的色度块组(例如CCb4~CCb7和CCr4~CCr7)可以接收用于下一处理阶段的色度数据,其可以增强流水线操作的性能。可以重复进行处理直到在全部或者基本全部先前帧的水平宏块上完成突发脉冲存取操作为止。
参考图7A和7B,运动补偿存储器345可以存储运动补偿的亮度和/或色度数据块。DCTQ 301、DCT 303、IDCT 309可以存取运动补偿存储器345。运动补偿存储器345可以由运动补偿亮度存储器345a,以及运动补偿色度存储器345b构成,其中运动补偿亮度存储器345a可以存储进行了运动补偿的相同的亮度分量数据,运动补偿色度存储器345b可以存储进行了运动补偿的相同的或基本相同的色度分量数据。
运动补偿亮度存储器345a可以存储至少两个亮度宏块(每个宏块可为16×16),并且运动补偿色度存储器345b可以存储至少两个色度宏块(每个宏块可为8×8)。运动补偿亮度存储器345a可以由至少两个亮度宏块,MY0和MY1构成,MY0和MY1可以是16×16。运动补偿色度存储器345b可以由至少色度宏块MCb0、MCb1、MCr0和MCr1构成,它们可以为8×8。
图8是说明根据本发明的示例性实施例的内部存储器的存储器库341和/或数据处理单元之间通过接口网络349的相互关系特征的例子的方框图。DCT303和IDCT 309可以访问相同的,或者基本相同的运动补偿宏块,和/或可以共享运动补偿存储器345。运动估计器321和运动补偿器331可以共享搜索域存储器343。运动估计器321和DCT 303可以共享参考宏块存储器347的亮度块CY0~CY7。
亮度分量数据可以以例如三个48×16的块被存储在搜索域存储器343中,并且可以被传送到运动估计器321和/或运动补偿器331。存储在参考宏块亮度存储器347中的亮度分量宏块对,CY0/CY2、CY1/CY3、CY4/CY6、和CY5/CY7可以通过多路复用器(MUX)349a和349b被提供给运动估计器321和/或DCT 303。存储在参考宏块色度存储器347中的色度分量宏块组,CCb0/CCr0/CCb2/CCr2、CCb1/CCr1/CCb3/CCr3、和/或CCb4/CCr4/CCb6/CCr6、CCb5/CCr5/CCb7/CCr7可以通过多路复用器349c被提供给DCT 303。
可变长度编码操作可以由软件执行并且不需要使用VLC。运动矢量和/或量化系数(COEF)可以被存储在外部帧存储器中以用于VLC操作。VLC可以在VLC操作中被使用,并且不需要传送运动矢量和/或量化系数。
图9是说明运动估计器(ME)的一个示例性实施例的方框图。图10是说明运动补偿器(MC)的示例性实施例的方框图,图11是说明DCTQ的示例性实施例的方框图。图12是说明存储器库的示例性实施例的方框图。
参考图9,运动估计器321可以由运动估计引擎401、任务控制器403、内部存储读取控制器405、以及运动矢量传送控制器407构成。
任务控制器403可以从任务调度器361接收并执行任务命令(即任务控制信号,例如运动估计开始信号ME和/或运动矢量写开始信号MVw),并且可以向任务调度器361传送可以通知任务的完成的任务结束信号(例如,运动估计结束信号MEe和/或运动矢量写结束信号MVwe)。运动矢量MV可以在运动矢量传送控制器407的控制下,响应于运动矢量写开始信号MVw被写入到外部帧存储器中。运动矢量不需要被存储在外部帧存储器中,以用于VLC操作,并且VLC能够通过直接或者非直接地访问运动估计器(运动补偿器也可以访问运动估计器并且可以使用运动矢量)来使用运动矢量。运动矢量不需要写入开始信号MVw并且运动矢量不需要写结束信号MVwe。运动矢量可以通过写入开始信号MVw来允许运动矢量并且可以生成写结束信号MVwe来通知任务调度器361关于运动矢量的写入的完成。
内部存储读取控制器405可以生成内部存储控制信号,该内部存储控制信号用于从存储器库341的搜索域存储器343和/或参考宏块存储器347中检索亮度数据PY和/或色度数据CY。运动估计引擎401可以通过响应于运动估计开始信号ME来利用搜索域存储器343的亮度数据PY和/或参考宏块存储器347的亮度数据CY估计运动,来生成运动矢量MV。运动矢量传送控制器407可以存储(例如暂时地)运动矢量MV,可以向运动补偿器331(和/或VLC)提供运动矢量MV,和/或可以将运动矢量MV写入到外部帧存储器中,以用于运动矢量的VLC操作。
可以完成估计运动和/或写入运动矢量的操作并且任务控制器403可以向任务调度器361发送运动估计结束信号MEe和/或运动矢量写结束信号MVwe。
参考图10,运动补偿器331可以由运动补偿引擎501、任务控制器503、内部存储读/写控制器505、运动矢量分析电路507以及帧存储读取控制器509构成。
任务控制器503可以从任务调度器361接收并执行任务命令(即,任务控制信号,例如,亮度运动补偿开始信号MCs[Y]和/或色度运动补偿开始信号MCs[C]),并且可以向任务调度器361传送用于通知任务的结束的任务结束信号(即,亮度运动补偿结束信号MCe[Y]和/或色度运动补偿结束信号MCe[C])。内部存储读/写控制器505可以生成内部存储控制信号,其可以从搜索域存储器343和/或运动补偿存储器345中的写入运动补偿亮度数据MY和/或运动补偿色度数据MCb/MCr中检索亮度数据PY。帧存储读取控制器509可以管理对外部帧存储器(例如图2所示的291)的存取,以用于色度分量的运动补偿。运动补偿引擎501根据分析得到的运动矢量,响应于可由任务调度器361提供的亮度和/或色度运动补偿开始信号MCs[Y]和/或MCs[C]来对亮度和/或色度分量执行运动补偿。可以完成由运动补偿引擎501进行的运动补偿,并且任务控制器503可以向任务调度器361发送亮度和/或色度运动补偿结束信号MCe[Y]和/或MCe[C]。
参照图11,DCTQ 301可以由DCT 303、量化器(Q)305、反量化器(IQ)307、IDCT 309、任务控制器603、内部存储读取控制器605、以及帧存储写控制器609构成。
任务调度器603可以接收任务命令,例如亮度DCTQ开始信号DCTQs[Y]、色度DCTQ开始信号DCTQs[C]、亮度COEF熵编码开始信号COEFw[Y]、色度COEF熵编码开始信号COEFw[C]、亮度反量化/反DCT开始信号IQIDCTs[Y]、色度反量化/反DCT开始信号IQIDCTs[C]、和/或重建帧存储开始信号RECONw,并且可以向任务调度器361施加任务结束信号,例如亮度DCTQ结束信号DCTQe[Y]、色度DCTQ结束信号DCTQe[C]、亮度COEF熵编码结束信号COEFwe[Y]、色度COEF熵编码结束信号COEFwe[C]、亮度反量化/反DCT结束信号IQIDCTe[Y]、色度反量化/反DCT结束信号IQIDCTe[C]、和/或重建帧存储结束信号RECONe。
亮度和/或色度COEF熵编码开始信号、COEFw[Y]和/或COEFw[C],可以被提供用来向外部帧存储器291中写入量化系数,并且可以指令VLC操作的执行。
VLC353可以直接或者间接地访问DCTQ 301并且可以响应于亮度和/或色度COEF熵编码开始信号COEFw[Y]和/或COEFw[C]来执行VLC操作。DCTQ不需要执行向外部帧存储器的写入操作。
内部存储读取控制器605可以生成内部存储控制信号,该信号用于从参考宏块亮度存储器中读取亮度数据CY,从参考宏块色度存储器中读取色度数据CCb/CCr,从运动补偿亮度存储器中读取亮度数据MY,和/或从运动补偿色度存储器中读取色度数据MCb/MCr。帧存储写控制器609可以管理外部帧存储器291中的重建帧的存储。
参考图12,存储器库341可以由用于存储当前帧的亮度和/或色度分量(和/或数据)的参考宏块存储器347、用于存储先前帧的亮度分量的搜索域存储器343、用于存储运动补偿的亮度和/或色度分量的运动补偿存储器345、任务控制器703、内部存储读/写控制器705、帧存储读取控制器709、以及接口网络349构成。
任务控制器703可以接收任务命令(任务控制信号,例如,搜索域亮度写开始信号PYw、参考宏块亮度写开始信号CYw、和/或参考宏块色度写开始信号CCBRw),并且可以在外部帧存储器中存储数据,例如通过帧存储读取控制器709将数据存储到参考宏块亮度和/或色度存储器和/或搜索域存储器343中。任务控制器703可以发送任务结束信号,例如任务控制信号,例如搜索域亮度写结束信号PYwe、参考宏块亮度写结束信号CYwe、和/或参考宏块色度写结束信号CCBRwe。
内部存储读/写控制器705可以从数据处理单元接收内部存储控制信号并且可以通过接口网络349为数据处理单元提供搜索域亮度数据PY、参考宏块亮度数据CY、参考宏块色度数据CCb/CCr、运动补偿亮度数据MY、和/或运动补偿色度数据MCb/MCr。
图13说明具有任务开始和结束信号的任务调度器和数据处理单元之间的连接特征的例子。任务调度器361可以响应于从控制寄存器371所施加的帧开始信号Fs来开始操作,其中该帧开始信号Fs可以指示帧的开始。控制寄存器371可以将模式设置信号(例如,区分编码和解码操作模式的编码信号EN以及区分帧间和内模式的帧间模式信号I T)提供给可以建立视频编解码器的功能的任务调度器361。编码信号EN可以是“1”或“0”,且编码操作模式是可传导的(conductible)。帧间模式信号IT可以是“1”或“0”,并且帧间模式IT是可传导的。视频编码操作模式可以利用帧和/或条单元来执行。利用条单元的编码操作可以通过多个宏块来执行并且控制寄存器371可以生成可用于通知对下一条的操作的操作开始信号Ops。信号MEMmbx、MEmbx、MCmbx和/或DCTQmbx可以表示当前在存储器库341、运动估计器321、运动补偿器331和/或DCTQ 301中处理的宏块的水平位置。信号MEMmbx可以按照4递增,并且宏块可以以4为单元被存储在内部存储器中。无论何时传送运动矢量的操作,信号MEmbx、MCmbx、和/或DCTQmbx都可以按1递增,对色度分量的运动补偿,和/或对色度分量的DCTQ任务可以结束。
视频编解码器可以与VGA分辨率相关联,并且6比特可以表示宏块的水平位置。水平宏块可以被分成4个宏块,并且最后的宏块可以是0、1、2和3中的一个。信号HORZe可以表示剩余宏块的数目。可以生成信号HORZe,并且与剩余宏块相对应的宏块可以被存储在存储器库的存储器中。在可以表示水平位置的多个比特中的最后两个比特可以表示剩余宏块的数目。
图13中所示的其它信号可以是任务开始信号和任务结束信号,其中任务开始信号可以将任务开始通知给至少一个数据处理单元(321、331、301)和/或存储器库341,任务结束信号可以将任务结束通知给至少一个数据处理单元(321、331、301)和/或存储器库341。
任务调度器361可以生成PYw,并且PYw可以通知存储器库341搜索域亮度数据PY0~PY9的写开始。存储器库341可以生成PYwe,并且PYwe可以通知任务调度器361搜索域亮度数据PY0~PY9的写结束。任务调度器361可以生成CYw,并且CYw通知存储器库341参考宏块亮度数据CY0~CY7的写开始。存储器库341可以生成CYwe,并且CYwe可以通知任务调度器361参考宏块亮度数据CY0~CY9的写结束。任务调度器361可以生成CCBRw,并且CCBRw可以通知存储器库341参考宏块色度数据CCb0~CCb7和/或CCr0~CCr7的写开始。存储器库341可以生成CCBRwe,并且CCBRwe可以通知任务调度器361参考宏块色度数据CCb0~CCb7和/或CCr0~CCr7的写结束。
任务调度器361可以生成MEs,并且MEs可以在运动估计器321中开始运动估计操作。运动估计器321可以生成MEe,并且MEe可以通知任务调度器361运动估计操作的结束。任务调度器361可以生成MVw,并且MVw可以允许运动估计器321在外部帧存储器291中写入运动矢量MV,该运动矢量MV可以通过运动估计操作来获得。运动估计器321可以生成MVwe,并且MVwe可以通知任务调度器361运动矢量MV的写结束。
任务调度器361可以生成MCs[Y],并且MCs[Y]可以允许运动补偿器331来开始亮度数据的运动补偿操作。任务调度器361可以生成MCs[C],并且MCs[C]可以允许运动补偿器331来开始色度数据的运动补偿操作。运动补偿器331可以生成MCe[Y]和/或MCe[C],并且MCe[Y]和MCe[C]可以通知任务调度器361对亮度和/或色度数据的运动补偿操作的写结束。
任务调度器361可以生成DCTQs[Y]和/或DCTQs[C],并且DCTQs[Y]和/或DCTQs[C]可以允许启动DCTQ 301来执行DCTQ操作,该DCTQ操作可以包括与亮度和/或色度数据相对应的DCT、量化、反量化、和/或IDCT。从DCTQ301中可以生成DCTQe[Y]和/或DCTQe[C],并且DCTQe[Y]和/或DCTQe[C]可以通知任务调度器361关于DCTQ操作的结束。任务调度器361可以生成COEFw[Y]和/或COEFw[C],并且COEFw[Y]和/或COEFw[C]可以允许启动DCTQ301来执行对与亮度和/或色度数据相对应的量化系数的熵编码操作。DCTQ301可以生成COEFwe[Y]和/或COEFwe[C],并且COEFwe[Y]和/或COEFwe[C]可以通知任务调度器361分别对亮度和/或色度数据的量化系数的熵编码操作的结束。
可以利用VLC并且信号COEFw[Y]和/或COEFw[C]可以允许启动VLC来执行对可存储在图2所示的量化系数存储器213中的、与亮度和/或色度数据相对应的量化系数进行的VLC操作。DCTQ 301可以生成信号COEFwe[Y]和/或COEFwe[C],并且COEFwe[Y]和/或COEFwe[C]可以通知任务调度器361与亮度和/或色度数据相对应的VLC操作的结束。RECONw可以允许启动DCTQ 301来存储重建的帧数据。可以利用重建的帧数据来完成存储操作,并且DCTQ 301可以生成信号RECONwe,并且可以通知任务调度器361任务的结束。
任务调度器361可以生成信号COEFr[Y]和/或COEFr[C],其可以指令DCTQ 301从外部帧存储器(或VLC)读取(或检索)关于亮度和/或色度数据的量化系数。DCTQ 301可以生成信号COEFre[Y]和/或COEFre[C],信号COEFre[Y]和/或COEFre[C]可以通知任务调度器361与亮度数据和/或色度数据相对应的读取操作的结束。任务调度器361也可以生成IQIDCTs[Y]和/或IQIDCTs[C],并且任务调度器361可以指令DCTQ 301执行对亮度和/或色度数据的IQ/IDCT操作。DCTQ 301可以生成信号IQIDCTe[Y]和/或IQIDCTe[C],该IQIDCTe[Y]和/或IQIDCTe[C]可以通知任务调度器361与亮度和/或色度数据相对应的IQ/IDCT操作的结束。
图14A和14B说明了在帧间编码模式和内编码模式下流水线操作的特征的例子,而图15A和15B说明了在帧间解码模式和内解码模式下流水线操作的特征的例子。
参考图14A,用于运动估计的亮度数据可以从外部帧存储器(例如,281)中传送到搜索域存储器(例如,图2中的243)和/或参考宏块存储器(例如,247)。从外部帧存储器到存储器库(例如,图2中的241)的数据存储处理可以以搜索域存储器、参考宏块亮度存储器、和/或参考宏块色度存储器的顺序重复进行。在T0期间,48×16的6个亮度块可以被存储在搜索域存储器(243或343)中的块PY0~PY6中。可以通过至少两次访问帧存储器291来完成期间T0。帧存储器291可以以突发脉冲长度8来被存取,并且可以在存储块PY0和/或PY1中存储亮度数据。帧存储器291可以以突发脉冲长度16来被存取,并且可以在存储块PY2~PY5中存储亮度数据。
在T1期间,图2中的帧存储器281可以以突发脉冲长度16存取,并且可以在参考宏块亮度存储器的块CY0~CY3中存储至少4个16×16的亮度数据。
存储操作可以利用参考宏块亮度存储器的至少4个亮度宏块完成,并且运动估计器(231或331)可以对以16×16的宏块存储在参考宏块亮度存储器中的至少4个亮度块CY0~CY3执行运动估计。如图14A所示,在T2,运动估计器可以执行搜索域亮度数据PY0~PY2的运动估计,和/或参考宏块亮度块CY0可以由T0和T1预备。在T2,帧存储器281可以存取脉冲长度8并且可以在块CCb0~CCb3和/或CCr0~CCr3中存储至少4个8×8的色度数据。运动估计可以在t2结束,并且MEMmbx可以从例如0转换到4。
在T2期间,可以通过运动估计为亮度宏块CY0生成一个运动矢量,该运动矢量可以被传送到外部帧存储器291,运动补偿器(231或者331)可以在T3期间执行对亮度宏块的运动补偿。运动补偿的亮度宏块可以存储在运动补偿亮度存储器中。运动矢量的传送操作可以结束并且MEmbx可以从例如0增加到1。帧存储器281可以在T2期间以脉冲长度8存取,色度数据CCb0~CCb3和/或CCr0~CCr3可以存储在参考宏块色度存储器中,并且帧存储器281可以存取脉冲长度16,该脉冲可以开始在搜索域存储器中存储至少4个亮度块PY6-PY9,每个块是48×16像素,并且其可以在T8期间执行对亮度宏块CY4(图14A中的第三个)的运动估计操作。在T9期间,帧存储器281可以以脉冲长度16存取,该脉冲可以开始在参考宏块存储器(图5)中存储至少4个亮度块CY4~CY7,每个块是16×16像素。
对亮度块的运动补偿和/或运动矢量的传送可以被完成,并且DCTQ(201或者301)可以在T4期间,以8×8的块为单元,执行区别亮度块CY0~PY0的DCTQ处理(DCT,QIQ,以及IDCT)。任务T4也可以补偿色度块的运动变化,并且可以开始对亮度宏块CY1的运动估计操作。对亮度数据的运动补偿可以完成并且MCmbx可以从例如0增加到1。
对区别亮度块CY0~PY0的DCTQ处理可以执行并且DCTQ可以在T5-T61期间内执行对亮度数据COEF Y0的VLC处理。在T4期间对亮度块的运动补偿可以完成,并且可以在T5期间执行对亮度数据的DCTQ处理。在T5和T6期间可以完成亮度宏块的运动估计,并且可以执行对亮度宏块的估计,而且可以将估计结果存储在运动补偿亮度存储器中。
在T5期间对亮度块的DCTQ处理可以完成,并且任务T6可以写入一个重建帧。T6可以结束,并且DCTQmbx可以从例如0增加到1。
在T6期间对亮度数据COEF Y0的VLC操作可以完成,并且任务T81可以执行对亮度数据的VLC处理。运动估计器(221和/或321),DCTQ(201或者301),和/或运动补偿器(231或者331)可以执行对色度数据的运动补偿操作,对区别亮度数据CY1~PY1的DCTQ操作,和/或对亮度数据CY2的运动补偿操作。
搜索域数据,参考宏块的亮度数据,和/或色度数据可以在T0和T3~T8期间(T3,T4,T4,T6,T8,T9,T6,T8),T1和T9,和/或T2和T9期间存储在外部帧存储器291中。运动补偿的操作可以在T2,T4-T5,T8和/或T9期间执行,并且可以在T3和T6执行运动矢量的传送。运动补偿的亮度数据,运动补偿的色度数据,DCTQ的亮度数据,DCTQ的色度数据,和/或重建帧可以在T3和T6,任务T4和T8,任务T4和T8,任务T5和T9,和/或任务T6期间存储。
对亮度数据的VLC操作可以在T5、T6、和T9-T6期间执行,并且可以在T8执行对色度的VLC操作。
内编码模式不需要与对搜索域数据,运动估计器和/或运动补偿器的存取相关联,并且T0和T3可以与帧间编码模式相同,或者基本相同。
参考图15A,与帧间解码模式相比,帧间解码模式不需要执行运动估计和/或不需要实施参考宏块。运动估计器在帧间解码模式不需要具有传导性,这样搜索域数据可以在T0和/或T3~T6(T3、T4、T5、T6、T7、T8、T9、T6、T7、T8、T9和T6)期间被存取。运动补偿的亮度数据,运动补偿的色度数据,DCTQ的亮度数据,DCTQ的色度数据,和/或重建帧可以在T3和T6,T4和T7-T8,T4和T8,T5和T9,和/或T6期间存储。
参考图15B,内解码模式可以与帧间解码模式相同或者基本相同,并且不需要包括运动补偿操作。
图16A-16D是表明图14A,14B,15A和15B中所示的流水线操作的任务流程的处理框图。图16A,16B,16C和/或16D分别与帧间编码模式,内编码模式,帧间解码模式和/或内解码模式相对应。
在水平方向上对所有宏块的操作可以在T8和/或T6期间内完成(例如MX=MXLAST;MX可以表示目前正被处理的宏块的水平位置,MXLAST可以表示最后的水平宏块的位置),并且可以返回到初始任务。一帧的操作可以终止(MBEND),并且可以执行空闲任务(IDLE)。
图17-20是帧间编码模式、内编码模式、帧间解码模式和/或内解码模式下的任务调度器的转换实例的图,每个都与图14A-15B所示的流水线序列或者顺序相对应。
在图17-20中,maxlast(即前述的MXLAST)可以表示水平方向上的最后宏块的位置,其可以具有值M-1(M可以是水平方向上的宏块的数目)。mx可以表示一个宏块的水平位置,其可以是可传导的,并且可以表示与dctq_mbx(即DCTQmbx)相同或者基本相同的位置。my可以表示一个宏块的垂直位置,并且可以在0-N-1的范围内建立(N可以是垂直方向上的宏块数目)。op_unit可以表示宏块的总数目,即M×N,并且op_cnt可以表示目前可以处理的宏块的数目。
参考图17,任务调度器可以响应于控制寄存器的帧开始信号frame_start(即Fs)开始至少一帧的操作,并且可以通过存储器库,运动估计器,运动补偿器和/或DCTQ提供的任务结束信号转换任务(例如状态转换)。任务状态可以通过控制寄存器的一个帧开始信号frame_start从空闲状态IDLE转换到T0。存储器库可以生成搜索域宏块亮度数据写结束信号py_write_end(即PYwe),并且任务调度器可以改变到T1。存储器库可以生成参考宏块亮度数据写结束信号cy_write_end(即CYwe),并且状态可以转换到T2。可以生成参考宏块色度数据写结束信号ccbr_write_end(即CCBRwe)和/或运动补偿结束信号me_end(即MEe)并且状态可以转换到T3。向外部帧存储器写入一个运动矢量的操作(mv_write_end;即MVwe)和/或对亮度数据的停止运动补偿(mc_y_end;即MCe[Y])可以完成,并且状态可以转换到T4。对色度数据的运动补偿(mc_cbcr_end;即MCe[C])和/或对亮度数据的DCTQ任务(dctq_y_end;即DCTQe[Y])可以完成,并且状态可以前进到T5。可以启动从T5到T6的转换的信号可以是运动补偿结束信号me_end(即MEe)和/或色度数据DCTQ结束信号dctq_chcr_end(即DCTQe[Y])。水平方向上的最后的宏块(me_mbx=M-1)可以在运动估计,运动补偿,和/或DCTQ的操作中(例如依次进行)进行。对最后的宏块的运动估计可以结束,运动矢量可以被传送,并且水平方向上的最后的宏块可以变成me_mbx=M。当对色度数据进行DCTQ操作可以结束时,不需要生成运动估计结束信号(dctq_chcr_end),并且状态不从T5转换到T6。为了通过信号me_end的dctq_chcr_end信号满足最后宏块从T5转换到T6的要求,逻辑等式me_mbx==M可以与me_end逻辑求和(me_end||me_mbx==M)。
启动状态从T6到T5转换的信号可以是运动矢量传送结束信号mv_write_end(即MVwe),亮度矢量补偿结束信号mc_y_end(即MCe[Y]),重建帧写结束信号recon_write_end(即RECONwe),和/或色度VLC结束信号coef_y_write_end(COEFwe[Y])(参见图14A)。当用于水平方向上的最后宏块的VLC信号可以被激活时,不需要生成运动矢量传送结束信号和/或亮度运动补偿结束信号,最后宏块可以使用逻辑等式mv_write_end||me_mbx==M,mc_y_end||mc_mbx=M。
在T8,水平方向上的宏块处理不需要在整个帧的处理完成以前完成,并且状态可以从例如T8→T9→T6→T8进行转换。如果当前宏块的水平位置可以等于M(即水平方向上的宏块数目)(mx==M),当前宏块的垂直位置可以等于垂直方向上的宏块数目(my==N),和/或如果可以完成亮度量化系数的VLC操作(coef_cbcr_write_end;即COEFwe[C]),即当对于一帧的处理总体上结束时,直到目前可以处理的宏块的数目等于全部宏块(op_unit=op_cut)的数目,状态可以从T8前进到空闲状态IDLE,等待对一个新的帧的处理。可以被处理的宏块的数目可以小于全部宏块的数目(op_unit!=op_unit;即对一帧的处理总体上可以没有结束);如果已经完成了对亮度量化系数的VLC操作(coef_cbcr_write_end;即COEFwe[C]),和/或最后的水平宏块已经处理(mx==M),状态可以前进到T0,并且可以对下一水平行上的一个宏块执行操作。
由于对水平行上宏块的不完全处理(op_uint!=unit&&mx!=M),对整个宏块的处理可以没有结束,并且状态可以从T8转换到T9。对色度数据(mc_cbcr_end;即MCe[Y])的运动补偿操作,对亮度数据(dctq_y_end;即DCTQe[Y])的DCTQ操作,和/或对色度数据的量化系数(coef_cbcr_write_end;即COEFwe[C])VLC操作可以在图14A的T8完成,并且状态可以到T9。在从T81转换到T9的期间,用于亮度宏块PY的写结束信号py_write_end(即PYwe)以及信号mc_cbcr_end,dctq_y_end,和/或coef_cbcr_write_end)也可以被执行。
对色度数据(mc_cbcr_end)的运动补偿可以在T8完成,并且状态可以被设置为mx[1:0]=1(mx的最低两比特是‘01’)。对色度数据(mc_cbcr_end)的运动补偿可以在第二个T8完成,并且状态可以被设置为mx[1:0]=1(mx的最低两比特是‘10’)。从T8到T9的转换可以加入逻辑等式(((py_write_end)&&mx[1:0]==2′b10)||mx[1:0]!=2′107||mem_mbx==M)。
如图14A所示,对色度数据(dctq_cbcr_end;即DCTQe[Y])的运动估计(me_end;即MEe)和/或DCTQ操作可以被完成,并且T9可以转换到T6。在从T9到T6的转换中,可以完成对参考宏块亮度数据的写操作(cy_write_end),以及me_end和/或dctq_cbce_end)。在T93到T6的转换中,可以完成对参考宏块色度数据的写操作(ccbccr_write_end;即CCBRwe)。T9可以结束,并且状态可以导致mx[1:0]=3。当逻辑条件(me_end||me_mbx&&dctq_cbcr_end&&((((cy_write_end&&mx[1:0]==2′b10)||mx[1:0]!=2′b10&&((ccbccr_write_end&&mx[1:0]==2′b11||mx[1:0]!=2′b11||mem_mbx==M)满足时,可以完成从T9到T6的转换。
T8可以前进到一个备用状态WAIT并且可以以条为单元对宏块进行辅助处理。以T2所建立的条为单元进行的处理可以完成(op_unit=op_cnt),但是整个帧不能被全部处理(mx!=M||my!=N)并且T8可以前进到备用状态WAIT。在从T8到T9的转换中,逻辑条件可以是(((py_write_end)?&&?mx[1:0]==2b10||mx[1:0]!=210||mem_mbx==M||mx==M),其可以确保全部或者基本全部从T8到备用状态WAIT的转换。全部或者基本全部从T8到备用状态WAIT的转换可以通过满足逻辑条件op_unit==op_cnt&&(mx!=M||my!=N)&&((mc_cbcr_end&&dctq_y_end)||mx==M)&&coef_cbcr_write_end&&(((py_write_end)&&mx[1:0]==2′b10)||mx[1:0]!=2′b10||mem_mbx==M||mx==M)来完成。
在备用状态WAIT,控制寄存器可以生成操作开始信号op_start(即OPs;或者称为条处理开始信号),和/或对水平方向(或行)上的所有宏块的处理可以结束(mx==M),并且状态可以前进到T0。对水平方向上的全部或者基本全部宏块的处理可以没有被完成(mx!=M),控制寄存器可以启动条处理开始信号op_start,并且状态可以从被用状态WAIT转换到T9。
参照图18,14A和16B,状态可以通过控制寄存器的信号frame_start(即Fs)从空闲状态IDLE转换到T1。T1可以响应于信号cy_write_end(即CVwe)前进到T2。T2可以响应于信号ccbccr_write_end(即CCBRwe)前进到T4。T4可以响应于信号dctq_y_end(即DCTQe[Y])前进到T5。T5可以响应于信号dctq_cbcr_end(即DCTQe[C])转换到T6。当在完成了对亮度数据的运动补偿(mc_y_end||mc_mbx==M),对亮度数据的量化系数的VLC操作(coef_y_write_end),和/或重建帧的存储(recon_write_end)以后,当根据对参考宏块色度数据的写操作,满足条件(((ccbccr_write_end&&mx[1:0]==2′b11)||mx[1:0]!=2b′11||mem_mbx==M)时,状态可以从T6转换到T8。转换到空闲状态IDLE和/或任务T1的操作特征可以与图17所示的相同或者基本相同。内编码模式可以不执行运动补偿,在从T8转换到备用状态WAIT期间,使用信号cy_write_end(即CYwe)代替信号py_write_end(即PYwe),不需要执行对色度数据的运动补偿结束信号mc_cbcr_end(即MCe[C])。T8可以结束,并且状态可以满足条件mx[1:0]=3,这样图17所示的帧间编码模式的mx[1:0]==2′b10可以改变为mx[1:0]==2′b11。
图19说明了帧间解码模式下任务调度器的状态转换的特征的例子。参照图19,15A和16C,状态可以响应于控制寄存器的信号frame_start(即Fs)从空闲状态IDLE转换到T0。当完成对亮度数据的写操作时,T0可以响应于信号py_write_end(即PYwe)前进到T3。T3可以响应于信号mc_y_end(即MCe[Y];在对亮度数据的运动补偿之后)和/或信号coef_y_read_end(即COEFre[Y];在从外部存储器或者VLC读取了亮度量化系数之后)前进到T4。T4可以响应于信号mc_cbcr_end(即MCe[C];在对色度数据进行了运动补偿之后),信号coef_cbcr_read_end(即COEFre[C];在从外部存储器或者VLC读取了色度量化系数之后),和/或信号iqidct_y_end(即IQIDCTe[Y];在完成亮度数据的IQIDCT操作之后)前进到T5。T5可以响应于信号iqidct_cbcr_end(即IQIDCTe[C];在完成了对色度数据的IQIDCT操作之后)转换到T6。
在T6,可以在完成整个帧的处理之前没有完成水平方向上的处理宏块,并且状态可以从T6→T7→T8→T9→T6进行转换。如果:当前宏块的垂直位置等于垂直方向上的宏块数目(my==N),和/或重建帧可以完全存储(recon_write_end;即RECONwe),即对于一帧的处理总体上已经结束,状态可以从T6转换到空闲状态IDLE,并且可以等待对于一个新的帧的处理,已经被处理的宏块的数目等于整个宏块的数目(op_unit=op_cnt),当前宏块的水平位置等于M(即水平方向上的宏块的数目)(mx==M)。如果:水平方向上的最后的宏块可以被处理(mx==M),和/或重建帧可以被存储(recon_write_end;即RECONwe),即当水平方向(或者行)上的全部或者基本全部宏块可以被完全处理时,已经被处理的宏块的数目可以小于整个宏块的数目(op_unit!=op_cnt,即对于一帧的处理总体上还没有结束)。
如果对亮度数据的运动补偿已经结束(mc_y_end),和/或一个重建帧已经被存储(recon_write_end),对于整个宏块的处理可以没有结束,并且对水平行上的宏块的处理不完全(op_unit!=unit&&mx!=M)。状态可以从T6转换到T7。可以从外部存储器读取亮度量化系数,并且T7可以到T8。在完成对色度数据的运动补偿(mc_cbcr_end;MCe[C]),从外部存储器读取色度量化系数(coef_cbcr_read_end;即COEFre[C]),和/或完成对亮度数据的IQIDCT操作以后(iqidct_y_end;IQIDCTe[T]),T8可以转换到T9。
对于从T9到T6的所有或者基本所有转换,对色度数据的IQIDCT操作可以完成(iqidct_cbcr_end;即IQIDCTe[C])。亮度数据的结束操作(py_write_end)需要从T9转换到T6。第二个T9可以结束,并且可以变成mx[1:0]=3(最低的两比特是‘11’),这样就可以根据条件iqidct_cbcr_end&&(((py_write_end&&mx[1:0]==2′b11||mx[1:0]!=2′b11||mem_mbx==M)获得从T9到T6的转换。
T6可以进入备用状态WAIT,并且可以以条为单元辅助处理宏块。在T6已经建立的以条为单元的处理可以被完成(op_unit=op_cnt),并且整个帧可以没有被完成处理(mx!=M||my!=N)。如果条单元结束写入重建帧(recon_write_end),和/或如果条单元可以结束相对于水平方向上的最后宏块,对亮度数据的运动补偿(mc_y_end||mx==M),T6可以转换到备用状态WAIT。
在备用状态WAIT,控制寄存器可以生成操作开始信号op_start(即OPs),并且对水平方向(或者行)上的所有宏块的处理可以结束(mx==M),状态可以进入到T0。对水平方向上的所有宏块的处理可以没有结束(mx!=M),并且可以由控制寄存器启动条处理开始信号op_start,状态可以从备用状态WAIT转换到T7。
参考图20,15B和16D,状态可以通过控制寄存器的信号frame_start(即Fs)从空闲状态IDLE转换到T3。T3可以响应于信号coef_y_read_end(即COEFre[Y])前进到T4。T4可以响应于信号coef_cbcr_read_end(即COEFre[C])和信号iqidct_y_end(即,IQIDCTe[Y])前进到T5。T5可以响应于信号iqidct_cbcr_end(即IQIDCTe[C])前进到T6。
内解码模式可以不执行运动补偿,从T6到备用状态WAIT和/或T7的转换可以与图19所示的帧间解码模式完全或者基本相同,但是可以不包括亮度运动补偿结束信号mc_y_end(即MCe[Y])。从T6到空闲状态IDLE和/或T3的转换可以与图19所示的帧间解码模式完全或者基本相同。从备用状态WAIT到T3和/或T7的转换处理也可以与图19所示的帧间解码模式完全或者基本相同。
图21、22、23和24说明了生成用于存储器库、运动估计器、运动补偿器和/或DCTQ的任务控制信号的过程的例子。
在图21中,可以提供一个信号horizontal_end(即HORZe)来在水平方向上剩余的宏块数目例如小于3时通知。一个宏块的水平位置可以由6比特表示,例如以VGA分辨率。水平宏块可以被分成至少4个单元,并且剩余宏块的数目可以是0,1,2或者4。例如,mem_mbx(即MEMmbx)的最高4比特可以与mxlast的最高4比特完全或者基本相同(即当水平行上剩余的宏块数目在0-3的范围内时),可以生成信号horizontal_end(HORZe)。mx可以是值‘111100’、‘111101’、‘111110’、和‘111111’中的一个。可以生成信号horizontal_end并且在数据存储器中存储剩余的宏块。如果水平方向(或者行)上的全部或者基本全部宏块已经被完成处理(mx==M)和/或条单元处理已经结束,可以禁止信号horizontal_end执行对下一水平行和/或下一帧的第一水平行的存储器的访问。
在帧间编码模式,当mx的最低两比特是‘11’时,T6可以生成信号py_write(即PYw),并且可以执行对先前帧的亮度块PY的存储器写操作。在帧间编码模式,当mx的最低两比特是‘11’时,T9可以生成信号ccbccr_write(即CCBRw),并且可以执行对当前帧的色度块CCb和/或CCr的存储器写操作。当mx的最低两比特是‘10’时,T9可以生成信号cy_write(即CYw),并且可以执行对当前帧的亮度块CY的存储器写操作。
不需要运动估计操作,也可以不生成(或者禁止)信号py_write(即PYw),同时可以启动用于指示对当前帧的亮度块CY和/或色度块CCb和/或CCr的存储器写操作的信号,cy_write(即CYw)和/或ccbccr_write(即CCBRw)。在T9,当mx的最低两比特是‘11’时,可以生成ccbccr_write,并且可以启动对当前帧的色度块CCb和/或CCr的存储器写操作,而当mx的最低两比特是‘10’时,可以生成信号py_write,并且可以启动对先前帧的亮度块的存储器写操作。
在帧间解码模式和T6可以生成信号py_write(PYw),并且当mx的最低两比特是‘11’时,该信号可以启动对先前帧的亮度块的存储器写操作。
参考图22,在帧间模式,任务调度器361可以生成开始信号me_start(MEs)和/或mv_start(MVs)来启动运动估计器321的运动估计和/或运动矢量的任务传送。
参考图23,任务调度器361可以生成开始信号mc_start(MCs)和/或mc_cbcr_start(MVs)来启动运动补偿器331对亮度和/或色度数据的运动补偿。
参考图24,任务调度器361可以在帧间/内编码模式下向DCTQ301施加信号dctq_y_s tart(DCTQs[Y]),dctq_cbcr_start(DCTQs[C]),coef_y_write(COEFw[Y]),recon_write(RECONw),和/或coef_cbcr_write(COEFw[C])。在帧间/内解码模式,信号coef_y_read(COEFr[Y]),coef_cbcr_read(COEFr[C]),iqidct_y_start(IQIDCTs[Y]),iqidct_cbcr_start(IQIDCTs[Y]),和/或recon_write(RECONw)可以从任务调度器361提供给DCTQ301。
图25说明了存储器库341中的状态转换特征的例子。存储器库可以被分成搜索域数据存储器PY、参考宏块亮度数据存储器CY、参考宏块色度数据存储器,其可以从外部帧存储器接收和存储相应的数据。存储器库可以操作来自于任务调度器361的任务控制信号,并且可以通知任务调度器361信号的操作结束。存储器库可以通过任务开始信号py_write(PYw),cy_write(CYw),和/或ccbccr_write(CCBRw)访问帧存储器并且可以当对帧存储器的访问结束时,生成相应于任务开始信号的任务结束信号py_write_end(PYwe),cy_write_end(CYwe),和/或ccbccr_write_end(CCBRwe),并且可以进入备用状态。
存储器库可以遵照来自于任务调度器的任务开始信号执行任务。在空闲状态IDLE的编码模式下,搜索域数据存储器PY,数据可以首先按脉冲长度8存取,并且可以响应于信号py_write(PYw)按脉冲长度16存取(~horizontal_end),上述py_write(PYw)信号可以指示对搜索-域数据的存储器写操作。而按脉冲长度16存取,水平方向上剩余的宏块可以小于或者等于3(horizontal_end&&mxlast[1:0]==2′b11),宏块可以根据插入区域以脉冲长度16存取。水平方向上剩余的宏块的数目可以是0(mxlast[1:0]==2′b00),并且数据可以根据插入区域以脉冲长度4存取。水平方向上的剩余宏块可以是2或者1(mxlast[1:0]==2′b01||2′b10),并且可以以脉冲长度8来存取数据,例如,最初根据插入区域以脉冲长度4存取。
当在备用状态WAIT从任务调度器接收到信号cy_write(CYw)时,来自于外部帧存储器的亮度数据可以存储在参考宏块亮度数据存储器中。可以以16的脉冲长度(~horizontal-end)来存取参考宏块亮度数据。水平宏块的数目可以小于,或者等于3,同时以16的脉冲长度存取,而且可以启动信号horizontal_end(HORZe)。水平方向上剩余的宏块可以是3(horizontal_end&&mxlast[1:0]==2′b11),并且可以根据插入区域以16的脉冲长度存取数据。水平方向上剩余的宏块数目可以是0(mxlast[1:0]==2′b00),并且可以根据插入区域以4的脉冲长度存取数据。水平方向上剩余的宏块数目可以是1或者2(mxlast[1:0]==2′b01||2′b10),并且可以根据插入区域以8的脉冲长度(例如最初)并以4的脉冲长度存取数据。
当在备用状态WAIT,任务调度器生成信号ccbccr_write(CCBRw)时,来自于外部帧存储器的色度数据可以存储在参考宏块色度数据存储器中。可以以8的脉冲长度(~horizontal_end)存取参考宏块色度数据。水平宏块的数目可以小于,或者等于3,同时以8的脉冲长度进行存取,并且可以启动信号horizontal_end(HORZe)。水平方向上剩余的宏块可以是3(horizontal_end&&mxlast[1:0]==2′b11),并且可以根据插入区域以8的脉冲长度存取数据。水平方向上剩余的宏块数目可以是0(mxlast[1:0]==2′b00),并且可以根据插入区域以2的脉冲长度(例如单独模式)存取数据。水平方向上剩余的宏块可以是1或者2(mxlast[1:0]==2′b01||2′b10),并且可以根据插入区域以4的脉冲长度(例如起初)和以2的脉冲长度存取数据。
参考图26,可以响应于从空闲状态IDLE下的任务调度器361接收的运动估计开始信号me_start(MEs)将运动估计器321设置为运动估计操作状态(ME_op),并且可以通过生成运动估计结束信号me_end(MEe)进入到备用状态WAIT。运动估计器可以响应于运动矢量写开始信号mv_write(MVw)从备用状态WAIT转换到运动矢量写状态(MV_write),其中运动矢量可以被写入到外部存储器。在完成运动矢量写操作以后,运动估计器可以生成运动矢量写结束信号mv_write_end(MVwe),并且可以进入到空闲状态IDLE。
参考图27,运动补偿器331可以分别对亮度和/或色度数据执行分离的运动补偿操作,这可以使流水线处理更为有效。对亮度数据的运动补偿可以响应于信号mc_y_start(MCs[Y])执行,其开始于空闲状态IDLE,并且可以生成信号mc_y_end(MCe[Y]),从而进入备用状态WAIT。运动补偿器331可以响应于信号mc_cbcr_start(MCs[C])从备用状态WAIT转换到对色度数据的运动补偿状态(MC_Cb/Cr_op),并且可以响应于信号mc_cbcr_end(MCe[C])进入到空闲状态IDLE。
参考图28,DCTQ301可以在空闲状态IDLE操作,执行对亮度数据的DCTQ操作的状态(DCTQ_Y),在外部存储器中存储亮度数据的量化系数的状态(COEF_Y_Write),执行对色度数据的DCTQ操作的状态(DCTQ_Cb/Cr),在外部存储器中存储用于色度数据的量化系数的状态(COEF_Cb/Cr_Write),存储一个重建帧的状态(RECON_Write),从外部存储器中读取用于亮度数据的量化系数的状态(COEF_Y_Read),从外部存储器中读取用于色度数据的量化系数的状态(COEF_Cb/Cr_Read),执行亮度数据的IQIDCT操作的状(IQIDCT_Y)态,执行色度数据的IQIDCT操作的状态(IQIDCT_Cb/Cr),和/或备用状态WAIT。在状态之间,可以插入备用状态WAIT,并且可以响应于每个状态的任务结束信号,例如编码模式下的dctq_y_end(DCTQe[Y]),coef_y_write_end(COEFwe[Y]),recon_write_end(RECONwe),和/或dctq_cbcr_end(DCTq[C]),coef_y_read_end(COEFwe[C]);和/或解码模式下的coef_y_read_end(COEFre[Y]),iqidct_y_end(IQIDCTe[Y]),coef_cbcr_read_end(COEFre[C]),iqidct_cbcr_end(IQIDCTe[Y]),和/或recon_write_end(RECONwe),在状态之间进行转换。这些状态可以响应于任务开始信号:编码模式下的dctq_y_start(DCTQs[Y]),coef_y_write(COEFw[Y]),dctq_cbcr_start(DCTQs[C]),recon_write(RECONw),和/或coef_cbcr_start(COEFs[C]);解码模式下的coef_y_read(COEFr[Y]),iqidct_y_start(IQIDCTs[Y]),coef_cbcr_read(COEFr[C]),iqidct_cbcr_start(IQIDCTs[C]),和/或recon_write(RECONw),从备用状态WAIT启动。
编码(或者编码)模式可以响应于信号dctq_y_start(DCTQs[Y]),解码模式可以响应于信号coef_y_read(COEFr[Y])从空闲状态IDLE开始。在解码模式,可以结束对亮度数据的编码操作,对于水平宏块的所有处理可以被完成,并且状态可以转换到空闲状态IDLE,等待用于指示对下一个水平行的宏块进行处理的信号dctq_y_start(DCTQs[Y])的到来。在解码模式,在完成重建帧的存储以后,DCTQ可以转换到空闲状态IDLE。
当信号dctq_y_end(DCTQe[Y])被启动时,可以通过亮度数据的量化系数执行VLC操作。可以生成信号dctq_cbcr_end(DCTQe[C]),并且可以利用色度数据的量化系数执行VLC操作。状态DCTQ_Y可以完成并且可以直接或者间接的通过VLC353,对亮度数据的DCTQ任务的结果(即亮度数据的量化系数)进行VLC操作。状态DCTQ_Cb/Cr可以完成,并且可以直接或者间接的通过VLC353利用亮度数据的DCTQ任务的结果(即色度数据的量化系数)进行VLC操作。
本发明的示例实施利可以利用至少两种方式来降低视频编解码器的功率消耗:功率管理和/或动态时钟选通方法,功率管理可以不为帧间和/或内编码冷模式中不操作的数据处理单元提供系统时钟,动态时钟选通方法可以在实际的执行期间内提供系统时钟,由于数据处理单元可以根据任务执行流水线操作,和/或可以具有不同的执行时间。由于数据处理单元的功能处理可以在任务调度器生成的开始信号和/或通知处理结束的结束信号之间进行,因此系统时钟可以在图29所示的处理期间t1-tn内被提供数据处理单元。
开始信号可以在时间t0激活,并且在时间t1的系统时钟的下降沿启动时钟启动激活信号。在时间tn-1可以激活结束信号,并且可以在时间tn的系统时钟的下降沿禁用时钟启动激活信号。在周期t1-tn的期间内可以选通系统时钟(即当数据处理单元可以执行它们的操作时)。
尽管在随附的附图中已经描述了本发明的示例性实施例,但并不局限于此。很明显对于本领的技术人员来说,在不背离本发明的精神和范围的情况下可以做出各种替代,改变和变形。
尽管已经描述了存储器库的示例性实施例包括搜索域存储器,运动补偿存储器和参考宏块存储器,应当理解本领域的技术人员可以利用和/或执行任何适于执行类似或者基本类似操作的任何尺寸的任何存储器。
尽管这里已经描述了数据处理单元和存储器库的示例性实施例,但是应当理解任何数据处理单元都可以单独的或者组合的共享存储器库中的任何单独的或者组合的内部存储器。
尽管已经描述了帧存储器的示例性实施例是受脉冲影响的同步DRAMS,但是应当理解本领域的技术人员可以使用任何适于执行类似或者基本类似的功能的存储器。
尽管已经描述了包含在本发明的示例性实施例中的各个成分(例如数据处理单元)可以独立操作,但是应当理解本发明的示例性实施例中的任何成分或者替代成分都可以按照本领域的技术人员的期望独立的或者从属的执行。
尽管已经描述了本发明的示例性实施例包括4个宏块,但是应当理解可以按照本领域技术人员的期望使用任何数目的宏块。也应当理解,这些宏块可以是本领域技术人员所期望的任何合适尺寸。
尽管已经描述了本发明的示例性实施例利用状态‘1’和/或‘0’,但是应当理解可以使用本领域技术人员所期望的任何合适的状态。
尽管已经描述了本发明的示例性实施例利用特定的存储器尺寸,结构和/或配置,但是应当理解可以使用本领域技术人员所期望的任何合适的尺寸,结构和/或配置。
尽管本发明的示例性实施例直接涉及视频编码器和/或解码器,但是应当理解本发明的示例性实施例可以应用于本领域的技术人员所期望的音频信息。
本发明的示例性实施例对于简化视频编解码器的全部操作是有利的,任务调度器可以为视频编解码器提供任务开始信号从而启动诸如运动估计器,运动补偿器,和/或DCTQ的数据处理单元的任务,并且在完成任务以后,数据处理单元可以通知任务调度器任务已经结束。
数据处理单元可以共享存储器库存储它们的公共数据,其可以改进数据处理单元的尺寸和/或降低外部存储器的带宽需求。
由于系统时钟可以在数据处理单元是可传导或者基本可传导时的期间内提供,并且不需要为在每个模式中不操作的数据处理单元提供系统时钟,本发明的示例性实施例可以降低功率消耗。
这个美国非临时专利申请要求在35.U.S.C.§119下的于2003年12月30日提交的韩国专利申请第2003-100578号的优先权,这里引用其全部内容作为参考。

Claims (25)

1.一种用于视频编解码器的数据处理系统,包括:
多个数据处理单元;
任务调度器,用于通过与多个操作相关联的任务来控制数据处理单元进行流水线操作;
控制寄存器,用于建立数据处理单元的功能;以及
存储器库,用于存储在数据处理单元的操作中使用的数据;
其中,数据处理单元由离散余弦变换量化器、运动估计器、以及运动补偿器构成,其中,离散余弦变换量化器包括:离散余弦变换器、反离散余弦变换器、量化器、反量化器,以用于编码MPEG运动图像;
其中,存储器库包括:
运动补偿存储器,用于存储由运动补偿器进行运动补偿的亮度和色度数据;
参考宏块存储器,用于存储从帧存储器中检索到的当前输入帧的亮度和色度数据;以及
搜索域存储器,用于存储从在从帧存储器中检索到的当前输入帧之前的重建帧中获得的亮度数据;其中
存储器库响应于从任务调度器提供的帧存储控制信号,执行用来将来自于外部帧存储器的数据存储到数据存储器中的任务,并且响应于从数据处理单元提供的数据存储控制信号,将存储在数据存储器中的数据提供到数据处理单元,
并且其中,运动估计器和运动补偿器共享搜索域存储器,离散余弦变换器和反离散余弦变换器共享运动补偿存储器,而运动估计器和离散余弦变换器共享参考宏块存储器。
2.根据权利要求1所述的数据处理系统,其中,任务调度器向数据处理单元施加任务开始信号并且从数据处理单元接收任务结束信号;并且其中数据处理单元响应于任务开始信号来执行任务以及向任务调度器施加任务结束信号来指示任务的结束。
3.根据权利要求1所述的数据处理系统,其中,运动估计器估计运动并且传送运动矢量;
运动补偿器补偿亮度和色度数据的运动;以及
离散余弦变换量化器利用亮度和色度数据进行DCTQ操作,并且写重建帧;其中
由可变长度编码器和解码器利用可变长度编码和解码操作来处理亮度和色度数据。
4.根据权利要求2所述的数据处理系统,其中,在任务开始信号和任务结束信号之间的周期期间内为数据处理单元提供系统时钟。
5.根据权利要求1所述的数据处理系统,其中,在任务开始信号和任务结束信号之间的周期期间内为数据处理单元提供系统时钟。
6.根据权利要求1所述的数据处理系统,其中,当数据处理系统通过控制寄存器在内编码模式下正进行操作时,运动估计器和运动补偿器与系统时钟相隔离;当数据处理系统在帧间解码模式下正进行操作时,运动估计器与系统时钟相隔离;以及当数据处理系统在内解码模式下正进行操作时,运动补偿器与系统时钟相隔离。
7.一种视频编解码器,包括:
数据处理单元,包括离散余弦变换量化器、运动估计器以及运动补偿器,其中,所述离散余弦变换量化器包括离散余弦变换器、反离散余弦变换器、量化器以及反量化器,用于编码MPEG运动图像;
存储器库,用于存储由数据处理单元所共享的公共数据;
任务调度器,用于通过与多个操作相关联的任务来控制在流水线操作中可操作的数据处理单元;以及
控制寄存器,用于建立数据处理单元的功能,
其中,存储器库包括:
运动补偿存储器,用于存储由运动补偿器进行运动补偿的亮度和色度数据;
参考宏块存储器,用于存储从帧存储器检索到的当前输入帧的亮度和色度数据;
搜索域存储器,用于存储从在从帧存储器中检索到的当前输入帧之前的重建帧中提取的亮度数据;
内部数据存储控制器,用于响应于从数据处理单元提供的内部数据存储控制信号来将数据提供给数据处理单元;
帧存储控制器,用于访问帧存储器并且控制向参考宏块存储器和搜索域存储器中存储数据;以及
任务控制器,用于从任务调度器向帧存储器传送任务开始信号,并且当完成任务时,向任务调度器传送任务结束信号,
并且其中,运动估计器和运动补偿器共享搜索域存储器,离散余弦变换器和反离散余弦变换器共享运动补偿存储器,而运动估计器和离散余弦变换器共享参考宏块存储器。
8.根据权利要求7所述的视频编解码器,其中,任务调度器生成任务开始信号,以指令数据处理单元和存储器库执行任务,由此数据处理单元和存储器库向任务调度器提供任务结束信号并且进入备用状态以等待下一个任务指令。
9.根据权利要求7所述的视频编解码器,其中,运动估计器包括:
运动估计引擎,用于利用从搜索域存储器和参考宏块存储器检索到的亮度宏块来估计运动矢量;
运动矢量传送控制器,用于向运动补偿器和可变长度编码器传送运动矢量;
运动估计任务控制器,用于从任务调度器接收任务开始信号并且向任务调度器传送任务结束信号;以及
运动估计内部数据存储读取控制器,用于生成内部数据存储控制信号,以便从搜索域存储器和参考宏块存储器中检索亮度数据。
10.根据权利要求7所述的视频编解码器,其中,运动补偿器包括:
运动矢量分析器,用于分析在编码模式下从运动估计器提供的、而在解码模式下从可变长度解码器提供的运动矢量;
运动补偿引擎,用于参考分析后的运动矢量,利用亮度和色度数据执行运动补偿;
运动补偿任务控制器,用于从任务调度器接收任务开始信号并且向任务调度器传送任务结束信号;
运动补偿内部数据存储读/写控制器,用于生成内部数据存储控制信号,以从搜索域存储器检索数据,以及内部数据存储控制信号,用于将已运动补偿的亮度和色度数据写入到运动补偿存储器;以及
帧存储读取控制器,用于生成帧存储读取控制信号以便从帧存储器中检索色度数据。
11.根据权利要求9所述的视频编解码器,其中,运动补偿器包括:
运动矢量分析器,用于分析在编码模式下从运动估计器提供的、而在解码模式下从可变长度解码器提供的运动矢量;
运动补偿引擎,用于参考分析后的运动矢量,利用亮度和色度数据执行运动补偿;
运动补偿任务控制器,用于从任务调度器接收任务开始信号并且向任务调度器传送任务结束信号;
运动补偿内部数据存储读/写控制器,用于生成内部数据存储控制信号,以便从搜索域存储器中检索数据,以及内部数据存储控制信号,用于将已运动补偿的亮度和色度数据写入到运动补偿存储器;以及
帧存储读取控制器,用于生成帧存储读取控制信号以便从帧存储器中检索色度数据。
12.根据权利要求7所述的视频编解码器,其中,离散余弦变换量化器包括:
DCTQ任务控制器,用于从任务调度器接收任务开始信号并且向任务调度器传送任务结束信号;
DCTQ内部数据存储读取控制器,用于生成内部数据存储控制信号,以便从参考宏块存储器中检索亮度和色度数据以及从运动补偿存储器中检索已运动补偿的亮度和色度数据;以及
DCTQ帧存储写控制器,用于将重建帧存入到帧存储器中。
13.根据权利要求9所述的视频编解码器,其中,离散余弦变换量化器包括:
DCTQ任务控制器,用于从任务调度器接收任务开始信号以及向任务调度器传送任务结束信号;
DCTQ内部数据存储读取控制器,用于生成内部数据存储控制信号,以便从参考宏块存储器中检索亮度和色度数据以及从运动补偿存储器中检索已运动补偿的亮度和色度数据;以及
DCTQ帧存储写控制器,用于将重建帧存入到帧存储器中。
14.根据权利要求10所述的视频编解码器,其中,离散余弦变换量化器包括:
DCTQ任务控制器,用于从任务调度器接收任务开始信号以及向任务调度器传送任务结束信号;
DCTQ内部数据存储读取控制器,用于生成内部数据存储控制信号,以便从参考宏块色度数据存储器中检索色度数据以及从运动补偿存储器中检索已运动补偿的亮度和色度数据;以及
DCTQ帧存储写控制器,用于将重建帧存入到帧存储器中。
15.根据权利要求7所述的视频编解码器,其中,在任务开始信号和任务结束信号之间的周期期间内为数据处理单元提供系统时钟。
16.根据权利要求7所述的视频编解码器,其中,数据处理单元进一步包括可变长度编码器和解码器。
17.根据权利要求7所述的视频编解码器,其中,当数据处理系统通过控制寄存器在内编码模式下正进行操作时,运动估计器和运动补偿器与系统时钟相隔离;当数据处理系统在帧间解码模式下正进行操作时,运动估计器与系统时钟相隔离;当数据处理系统在内解码模式下正进行操作时,运动补偿器与系统时钟相隔离。
18.根据权利要求10所述的视频编解码器,其中,运动估计器执行估计运动和传送运动矢量的任务;
运动补偿器执行用于补偿亮度和色度数据的运动的任务;以及
存储器库的帧存储控制器控制用于将先前帧的亮度数据、以及当前帧的亮度和色度数据从帧存储器写入到存储器库的数据存储器中的任务;
其中,由可变长度编码器和解码器利用可变长度编码和解码处理操作来对亮度和色度数据进行处理。
19.一种视频编解码器,包括:
数据处理单元,包括离散余弦变换量化器、运动估计器以及运动补偿器,其中,所述离散余弦变换量化器包括离散余弦变换器、反离散余弦变换器、量化器、以及反量化器,用于编码MPEG运动图像;以及
存储器库,用于存储由数据处理单元所共享的公共数据;
其中,存储器库包括:
运动补偿存储器,用于存储由运动补偿器所进行运动补偿的亮度和色度数据;
参考宏块存储器,用于存储从帧存储器检索到的当前输入帧的亮度和色度数据;以及
搜索域存储器,用于存储从在从帧存储器中检索到的当前输入帧之前的重建帧中提取的亮度数据;
其中运动估计器和运动补偿器共享搜索域存储器;离散余弦变换器和反离散余弦变换器共享运动补偿存储器;以及运动估计器和离散余弦变换器共享参考宏块存储器,
并且其中,运动估计器和运动补偿器共享搜索域存储器,离散余弦变换器和反离散余弦变换器共享运动补偿存储器,而运动估计器和离散余弦变换器共享参考宏块存储器。
20.根据权利要求19所述的视频编解码器,进一步包括:任务调度器,用于利用与多个操作相关联的任务来控制数据处理单元在流水线操作中是可操作的;
其中任务调度器向数据处理单元施加任务开始信号并且从数据处理单元接收任务结束信号;并且其中数据处理单元响应于任务开始信号来执行自己的任务以及向任务调度器施加任务结束信号来通知任务的结束。
21.一种在具有数据处理单元的视频编解码器中处理数据的方法,其中,所述数据处理单元包括离散余弦变换量化器、运动估计器、运动补偿器以及可变长度编码器/解码器,其中,所述离散余弦变换量化器包括离散余弦变换器、反离散余弦变换器、量化器以及反量化器,用于编码MPEG运动图像,该方法包括:
响应于从任务调度器所提供的任务开始信号来由数据处理单元执行任务,当任务完成时,由数据处理单元生成用来通知任务结束的任务结束信号,并且然后在数据处理单元中建立备用状态,以便等待下一个任务开始信号;以及
由任务调度器响应于任务结束信号来转换任务,
其中,当数据处理系统通过控制寄存器在内编码模式下正进行操作时,运动估计器和运动补偿器与系统时钟相隔离;当数据处理系统在帧间解码模式下正进行操作时,运动估计器与系统时钟相隔离;当数据处理系统在内解码模式下正进行操作时,运动补偿器与系统时钟相隔离,
并且其中,运动估计器和运动补偿器共享搜索域存储器,离散余弦变换器和反离散余弦变换器共享运动补偿存储器,而运动估计器和离散余弦变换器共享参考宏块存储器。
22.根据权利要求21所述的方法,其中,在任务开始信号和任务结束信号之间的周期期间内为数据处理单元提供系统时钟。
23.一种数据处理系统,包括:
用于编码的多个数据处理单元,包括运动估计器、运动补偿器以及离散余弦变换量化器中的至少一个;
接口网络;以及
存储器库,包括至少一个适于存储由数据处理单元所共享的公共数据的存储器;其中
多个数据处理单元中的至少两个通过接口网络共享至少一个存储器,
其中,存储器库进一步包括至少一个运动补偿存储器、至少一个参考宏块存储器以及至少一个搜索域存储器中的至少一类,
并且其中,运动估计器和运动补偿器共享搜索域存储器,离散余弦变换器和反离散余弦变换器共享运动补偿存储器,而运动估计器和离散余弦变换器共享参考宏块存储器。
24.根据权利要求23所述的数据处理系统,其中,多个数据处理单元通过包含在接口网络中的至少一个多路复用器来共享所述至少一个存储器。
25.一种用于执行权利要求21的所述方法的视频编解码器。
CN2004100757395A 2003-12-30 2004-12-30 视频编解码器、数据处理系统以及用于上述系统的方法 Expired - Fee Related CN1652605B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
KR20030100578A KR101160640B1 (ko) 2003-12-30 2003-12-30 데이터 처리 시스템 및 데이터 처리 방법
KR100578/03 2003-12-30
KR100578/2003 2003-12-30

Publications (2)

Publication Number Publication Date
CN1652605A CN1652605A (zh) 2005-08-10
CN1652605B true CN1652605B (zh) 2010-04-28

Family

ID=34709277

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2004100757395A Expired - Fee Related CN1652605B (zh) 2003-12-30 2004-12-30 视频编解码器、数据处理系统以及用于上述系统的方法

Country Status (4)

Country Link
US (1) US7986734B2 (zh)
JP (1) JP2005198289A (zh)
KR (1) KR101160640B1 (zh)
CN (1) CN1652605B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7747096B2 (en) * 2005-07-15 2010-06-29 Samsung Electronics Co., Ltd. Method, medium, and system encoding/decoding image data
US8761259B2 (en) * 2005-09-22 2014-06-24 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
JP4610523B2 (ja) * 2006-06-13 2011-01-12 Okiセミコンダクタ株式会社 動画処理装置
KR20080008137A (ko) * 2006-07-19 2008-01-23 삼성전자주식회사 영상 복원 장치 및 방법
ATE484150T1 (de) * 2006-08-21 2010-10-15 Nxp Bv Verarbeitung von bildsignalen mit bewegungskompensation
US8121196B2 (en) * 2006-11-02 2012-02-21 Corel Corporation Method and apparatus for multi-threaded video decoding
KR100821922B1 (ko) * 2006-11-28 2008-04-15 전자부품연구원 미디어 디코딩용 국부 메모리 관리 장치
US8199796B2 (en) * 2006-12-22 2012-06-12 Newport Media, Inc. Physical layer aware video encoding for mobile TV applications
KR100900058B1 (ko) * 2007-04-09 2009-06-01 아주대학교산학협력단 다양한 멀티미디어 코덱에 사용되는 움직임 추정 연산 방법및 그 연산회로
JP4991453B2 (ja) * 2007-08-30 2012-08-01 キヤノン株式会社 符号化処理装置、符号化処理システム及び符号化処理装置の制御方法
US8103855B2 (en) * 2007-09-22 2012-01-24 Navosha Corporation Linking functional blocks for sequential operation by DONE and GO components of respective blocks pointing to same memory location to store completion indicator read as start indicator
KR100994983B1 (ko) 2008-11-11 2010-11-18 한국전자통신연구원 고속 움직임 탐색 장치 및 그 방법
CN101710994B (zh) * 2009-12-17 2012-12-26 无锡中星微电子有限公司 一种用于视频解码的方法和系统
CN108337507A (zh) * 2017-01-19 2018-07-27 晨星半导体股份有限公司 用于高效率视频编码装置的排程方法
CN113015003B (zh) * 2021-03-08 2022-11-25 展讯通信(上海)有限公司 视频帧缓存方法和设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1108865A (zh) * 1993-03-31 1995-09-20 索尼公司 自适应视频信号运算处理装置
US5463422A (en) * 1993-10-13 1995-10-31 Auravision Corporation Data processing technique for limiting the bandwidth of data to be stored in a buffer
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
CN1190518A (zh) * 1995-07-06 1998-08-12 西门子公司 用于解码与编码已压缩视频数据流的具有降低了存储器要求的方法
CN1272931A (zh) * 1998-06-25 2000-11-08 松下电器产业株式会社 图像处理装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100262453B1 (ko) * 1996-08-19 2000-08-01 윤종용 비디오데이터처리방법및장치
KR19980081499A (ko) 1997-04-17 1998-11-25 모리시다요이치 메모리 내장 데이터 처리장치 및 처리시스템
JP3007612B2 (ja) 1997-09-01 2000-02-07 松下電器産業株式会社 マイクロコントローラ、データ処理システム及びタスクスイッチの制御方法
US6243735B1 (en) 1997-09-01 2001-06-05 Matsushita Electric Industrial Co., Ltd. Microcontroller, data processing system and task switching control method
JPH118853A (ja) 1998-06-19 1999-01-12 Mega Chips:Kk 画像圧縮伸張装置
WO2000033199A1 (fr) * 1998-12-03 2000-06-08 Hitachi, Ltd. Circuit de traitement de signal
EP1243141B1 (en) * 1999-12-14 2011-10-19 Scientific-Atlanta, LLC System and method for adaptive decoding of a video signal with coordinated resource allocation
KR100418437B1 (ko) 2001-12-24 2004-02-14 (주)씨앤에스 테크놀로지 멀티미디어 신호처리를 위한 영상복원 프로세서
KR100450844B1 (ko) * 2002-02-21 2004-10-01 (주)씨앤에스 테크놀로지 비디오 코덱 프로세서의 아키텍쳐

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1108865A (zh) * 1993-03-31 1995-09-20 索尼公司 自适应视频信号运算处理装置
US5463422A (en) * 1993-10-13 1995-10-31 Auravision Corporation Data processing technique for limiting the bandwidth of data to be stored in a buffer
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
CN1190518A (zh) * 1995-07-06 1998-08-12 西门子公司 用于解码与编码已压缩视频数据流的具有降低了存储器要求的方法
CN1272931A (zh) * 1998-06-25 2000-11-08 松下电器产业株式会社 图像处理装置

Also Published As

Publication number Publication date
US7986734B2 (en) 2011-07-26
KR101160640B1 (ko) 2012-06-28
JP2005198289A (ja) 2005-07-21
CN1652605A (zh) 2005-08-10
US20050149690A1 (en) 2005-07-07
KR20050068770A (ko) 2005-07-05

Similar Documents

Publication Publication Date Title
CN1652605B (zh) 视频编解码器、数据处理系统以及用于上述系统的方法
CN100562114C (zh) 视频解码方法与解码装置
CN107241598B (zh) 一种针对多路h.264视频会议的GPU解码方法
US20080063080A1 (en) Hierarchical Motion Estimation Using Original Frame for Sub-Sampled Reference
CN101330617B (zh) 基于模式映射的多标准帧内预测器的硬件实现方法及装置
CN103188495A (zh) 译码视频数据的方法
DE112014004432T5 (de) Parallele Hardware- und Software-Blockverarbeitungspipelines
JPH05268590A (ja) 動画像符号化復号化回路
CN103686173B (zh) 变换与反变换电路
US20240037700A1 (en) Apparatus and method for efficient motion estimation
KR100564010B1 (ko) 화상 처리 장치
CN101443808B (zh) 用于图像和视频处理的存储器组织方案和控制器结构
US9300975B2 (en) Concurrent access shared buffer in a video encoder
CN110213592B (zh) 适用于hevc标准中运动估计的电路及其工作方法
CN100370835C (zh) 用于视频数据压缩的系统和方法
CN101902643B (zh) 并行阵列式帧内预测解码器vlsi结构设计方法
JP2950367B2 (ja) 逆離散余弦変換器におけるデータ出力順序変換方法及び回路
KR20080034094A (ko) 화상 부호화 장치 및 화상 부호화 방법
CN102984522A (zh) 一种亮度变换域帧内预测编解码方法和系统
TWI603616B (zh) 晶片內/晶片外記憶體管理
CN102238385A (zh) 编码器和/或解码器中垂直和/或水平高速缓存设备和方法
JP4830691B2 (ja) 映像信号処理方法及び装置、並びに映像信号復号方法
US8284836B2 (en) Motion compensation method and apparatus to perform parallel processing on macroblocks in a video decoding system
CN101018327A (zh) 离散余弦变换集成模块及其运算组合方法
US20090006665A1 (en) Modified Memory Architecture for CODECS With Multiple CPUs

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

Granted publication date: 20100428

Termination date: 20151230

EXPY Termination of patent right or utility model