CN101513067B - 用于处理视频数据的设备 - Google Patents

用于处理视频数据的设备 Download PDF

Info

Publication number
CN101513067B
CN101513067B CN200680055930.0A CN200680055930A CN101513067B CN 101513067 B CN101513067 B CN 101513067B CN 200680055930 A CN200680055930 A CN 200680055930A CN 101513067 B CN101513067 B CN 101513067B
Authority
CN
China
Prior art keywords
data
instruction
module
video
unit
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
CN200680055930.0A
Other languages
English (en)
Other versions
CN101513067A (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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing SAS
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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Publication of CN101513067A publication Critical patent/CN101513067A/zh
Application granted granted Critical
Publication of CN101513067B publication Critical patent/CN101513067B/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
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/438Interfacing the downstream path of the transmission network originating from a server, e.g. retrieving encoded video stream packets from an IP network
    • H04N21/4382Demodulation or channel decoding, e.g. QPSK demodulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N9/00Details of colour television systems
    • H04N9/79Processing of colour television signals in connection with recording
    • H04N9/80Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • H04N9/804Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback involving pulse code modulation of the colour picture signal components

Landscapes

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

Abstract

视频解码包括非常相似的用于不同标准的处理步骤。该处理可以在分离的模块中独立平行地工作。已知的多标准视频解码器遭受了由于集中组织处理而产生的瓶颈。用于解码视频数据的改良设备包括通用元件:RISC处理器,其包括指令提供单元(51,52,53,54)、排队单元(55)和ALU(59),以及专用视频处理模块,其中在RISC处理器中嵌入视频处理模块,使得它们像通用RISC处理器元件一样,同样通过指令总线(IB)接收指令,并且将(IRB)数据提供给排队单元(55)。专用视频处理模块包括运动补偿单元(510)、用于执行IDCT和反量化的装置(512)、熵解码单元(513)以及过滤单元(515)。

Description

用于处理视频数据的设备
技术领域
本发明涉及用于处理视频数据的设备和方法。特别地,在解码视频数据的情况下可以执行该处理。
背景技术
对于现今的视频标准,例如,MPEG2、AVS、VC-1以及H264,解码过程主要包括四个阶段:熵或比特流解码、反变换和反量化(inverse transform and inverse quantization)、运动补偿、以及去块效应滤波(de-blocking filter)(除MPEG2之外)。为了支持高分辨率的HD视频,需要高性能解码处理。所有当前的视频标准使用宏块(MBs),特别是作为亮度处理单元的16×16像素的MBs。MB可以被分为16个4×4像素子块。对应的颜色或色度数据单元(Cb和Cr)是可以被分为16个2×2像素块的8×8像素块。
期望具有可以处理所有当前标准的解码器芯片。传统方法是向一个芯片输入单独的解码核心。然而,该芯片的门数将是高的:尽管用于不同标准的功能块相似,但是处理细节不同。因此,通常平行执行用于不同标准的功能块。此外,存在可编程结构,在其中通过软件程序执行实际的视频处理,或者在其中通过分离处理核心控制用于视频处理的功能块。通常在共享数据总线上,这需要大量的功能块和处理核心之间的控制信息。
通常,一个接一个地处理MBs,即,在前一个MB完成后,新的MB处理开始,并且每个处理块每次处理一个MB。这在图1中描述。用于MB的熵解码E包括解码非残余(non-residual)10a以及解码残余语法元素(residual syntax element)10b。然后,10c执行反变换和反量化ITIQ。在下一步运动补偿MC中,10d计算预测数据以及10e再生图像数据。单个块同时工作,但是全部在相同的MB上。当每块从前一块已经具有足够的输入数据时,其开始工作。每个MB处理的持续时间是从解码第一MB级语法到为最后的子块获得再生数据的循环次数c10。对于下一MB执行相同步骤11a-11e,其中,在再生当前MB的最后一步10e完成之后执行解码的第一步11a。
发明内容
为了减少多标准视频解码芯片的门数,期望可以支持几种视频标准的解码的同一体系结构。此外,已知的视频处理系统遭遇了由于连同共享数据总线、共享存储器以及集中控制单元的集中组织处理阶段缩减了处理性能而产生的瓶颈。本发明提供通用的、模块化的以及分散的处理流,其能够进行根据多个编码标准的视频数据的高性能处理。此外,单个功能块可以用于多个编码格式和标准。
每个不同的视频标准具有它特定的特性。为了支持所有的视频标准,本发明提出的体系结构使用硬件和固件(即,在正常操作期间不被修改并且适于与特定硬件相互作用的软件)的组合以满足不同应用的要求。固件执行不同的视频标准算法,而硬件提供适合于执行的模块化的平台。那意味着可以增加一些固件编码以支持特定的视频标准,并且可以移除一些固件编码以不支持特定的视频标准。因此,可以使随后的解码器适应新的标准。硬件和固件之间的接口为指令集。
根据本发明的一方面,硬件体系结构包括常规RISC处理器和嵌入RISC处理器结构的可再编程视频处理功能块的元件。那意味着,例如,视频处理功能块为块间通信使用相同的信道作为常规RISC处理块,例如,运算逻辑单元(ALU)、取指令单元、排队单元等。原则上,视频解码功能块是专用RISC处理器内的子单元。RISC是处理器设计原理,其使用花费大约与对应的复杂指令集计算机(CISC)上的更复杂的指令集相同的时间执行的精简指令集。
在本发明的一个实施例中,该体系结构的单个功能块可以再编程以遵照新的格式和标准。
根据本发明的一方面,适于所有当前的视频标准的多标准解码器使用用于亮度的4×4像素块和用于色度(Cb和Cr)的2×2像素块作为最小处理单元。尽管在一些视频标准中没有使用这个尺寸的块,但是同样可以支持用于那些包括MPEG2的视频标准的最小处理单元。
根据本发明的一方面,以分散方式控制功能块。
根据本发明的一方面,用于解码视频数据的设备至少包括:用于提供解码指令的装置、用于接收解码指令和接收结果数据以及用于提供指令总线上的指令的排队单元、运算逻辑单元(ALU)和通过指令总线接收指令以及向排队单元提供数据的数据缓存单元、运动补偿单元、用于执行反变换(即,反DCT)和反量化的ITIQ单元、熵解码单元、以及过滤单元,其中,运动补偿单元、ITIQ单元、熵解码单元和过滤单元通过指令总线接收指令,并且向排队单元提供数据。
在所附权利要求、下列描述和附图中公开了本发明的有利实施例。
附图说明
参照在下面示出的附图描述本发明的典型实施例,
图1常规视频数据处理流;
图2流水线(pipelined)视频数据处理流;
图3指令执行的流水线;
图4图像内宏块的位置;
图5嵌入RISC处理器中的包括视频处理模块的体系结构;以及
图6运动补偿模块的详图。
具体实施方式
本发明使用专用体系结构和对应的指令集。指令集可以分为两部分,即,类似于常规RISC(精简指令集计算机)指令的宏指令,以及专用于视频解码的专用指令。宏指令主要用于控制解码过程,以及专用指令主要用于在解码过程期间处理计算。典型地,指令为32位宽。
在SDRAMs中存储指令和将被处理的视频数据。根据本发明的体系结构使用用于指令处理的流水线。如图3所示,任意指令执行可以被分为下列5个阶段:
取指令(fetch):从SDRAM取指令;
解码:将指令格式翻译为内部格式;
发布指令(issue):向功能模块发布指令;
执行:执行用于功能模块的指令;
返回:返回执行结果。
例如,在一个阶段c1中,以取第一指令i1开始。然后在下一阶段c2中,将它翻译为内部格式,同时取下一指令i2。在这个阶段中,在流水线中存储取得的第一指令i1。在下一阶段c3中,当前两个指令i1、i2在流水线中时,新指令i3开始。
图2示出根据本发明一方面的一般的流水线视频数据处理流。为了更快的存取,向像素缓冲区拷贝当前处理的像素数据。在熵解码阶段E中,通过首先解码非残余数据20a然后解码残余数据20b(其需要已解码的非残余数据)来处理输入数据。当解码数据被输出残余数据解码过程20b时,它们相继传(通过排队单元,这里未示出)至下一步20c反变换和反量化ITIQ。在该实例中,熵解码阶段E在它已经处理它的数据20b之后以及在它开始处理新数据21a之前等待一定时间,以防止由于诸如运动补偿MC的较慢的单元而产生缓冲区溢出。
至少专用视频功能模块可以保持平行处理两个或更多的MBs。如果仅支持平行的两个MBs,那么相关模块中用于存储MVs和残余数据的缓冲区存储用于这两个MBs的MVs和残余数据。如果在模块内可得到额外的缓冲区空间,那么可以支持三个或更多的MBs的同时处理。
在下面,描述根据本发明的硬件体系结构。对应于图3的流水线阶段,该体系结构可以包括5个部分:指令获取部分、指令解码部分、指令发布部分、指令执行部分以及结果返回部分。在图5中示出该体系结构。
指令获取部分包括指令缓存接口模块51、指令缓存模块52以及包括程序计数器PC的实际取指令模块53。指令解码部分包括解码模块54,以及指令发布部分包括排队模块55。指令执行部分包括数据缓存模块57、数据缓存接口模块58、ALU模块59、运动补偿模块510、运动补偿接口模块511、反变换/反量化(ITIQ)模块512、熵解码模块513、熵解码接口模块514、去块效应过滤模块515、过滤接口模块516和结果仲裁模块56。在执行下一处理步骤之前,结果仲裁模块56发送中间结果,即,来自执行部分的其它块的结果,至排队阶段(queue stage)55。
输入数据来自SDRAM经由“访问SDRAM总线”,以及最后结果被返回至使用相同总线的相同的SDRAM。为了返回数据,同样可以是独立总线。结果返回部分包括访问总线仲裁模块517。
在下面,描述提及的功能模块。
指令缓存模块52主要负责在这个体系结构中提供指令。由于该模块在内部SRAM中存储指令,所以通过该模块比直接通过外部SDRAM可以更快存取指令。通过取指令模块53内的程序计数器PC确定下一指令。如果存取发生,即,如果在指令缓存52的SRAM中缓存确定的指令,那么指令缓存模块52发回指令数据。如果存取未发生,这意味着在指令缓存的SRAM中不存在期望的指令,于是向指令缓存接口模块51发布用于从SDRAM获得对应指令的命令。在从指令缓存接口模块51获得指令后,将指令数据提供给指令缓存模块52。
取指令模块53负责根据程序执行的过程确定PC值。将PC值发送至指令缓存模块52。如果遇到跳转指令或分支指令,那么取指令模块53中的PC值因此改变;否则,通过定义的增量,它将被自动增加。
解码模块54解码指令,即,它将外部格式转换为内部指令格式。外部格式取决于固件,而通过将接收指令的功能模块使用内部格式。
在通过解码模块54被解码为内部格式后,指令被发送至排队模块55,在其中,这些指令原则上以FIFO的方式(先进先出)存储在操作队列(operation queue)550中等待被发布至功能模块。排队模块55还包括通用寄存器551和专用寄存器552。当对应的功能模块对于处在队列中第一位的指令空闲时,并且所有用于该指令的相关的源寄存器的值已准备好,于是随着从通用寄存器551和专用寄存器552读取数据,指令被放在发布指令总线IB上。然而,发布指令总线IB上的一些指令可能不需要提供更多的数据。通用寄存器551在例如32位宽的通用数据总线GDB上提供数据,以及专用数据寄存器在例如128位宽的专用数据总线SDB上提供数据。同时,每个功能模块监控公共的发布指令总线IB,并且接收指向它的指令。指令可以是常规RISC处理器指令,并且在常规RISC处理器中时可以被寻址,例如,通过指令内的地址部分。在各个功能模块中执行之后,结果经由中间结果总线IRB被发回至排队模块55,并且排队模块更新它的目的寄存器。
因此,排队模块55在某种程度上可以作为该体系结构的控制中心。尽管处理比在常规视频解码系统中更分散,但是排队模块控制指令流。
有利地,控制解码处理的RISC处理器元件,例如,排队模块,直接包含在解码处理中,使得对于向功能模块的新数据和指令的分派仅需要模块间的少量通信。
数据缓存模块57包括SRAM以能够比直接通过外部SDRAM更快地存取图像数据。该模块主要负责执行数据加载和存储操作。当它从发布指令总线IB获取用于访问数据缓存的指令时,它根据指令的数据计算访问地址。对于每个数据存取,它首先检查数据是否存在于它的SRAM中。如果存储操作的存取发生,那么更新数据缓存模块57的SRAM中的数据。如果加载操作的存取发生,那么读取数据并且发送至中间结果总线IRB。
如果存取未发生,这意味着期望的数据不存在于数据缓存模块57的SRAM中,则向数据缓存接口模块58发布用于获得对应数据的命令,其向SDRAM发送请求信号以获得必需的数据。在数据缓存接口模块58从SDRAM获得数据后,更新数据至数据缓存SRAM,并且发送至中间结果总线IRB。
熵解码模块513是解码过程的起点,其从编码比特流获得全部用于再生图像的元素。根据利用的视频标准,包括例如微分运动矢量(mvd)、参考指数、残余数据等,它从比特流解码语法元素。该模块根据mvb执行含运动矢量计算的各种计算,根据pred_mode_flag和intra_luma_pred_mode计算帧内模式(intra-mode),并且计算用于解码语法元素的邻近信息。
熵模块可以根据地址从外部SDRAM自动读取将被解码的比特流,程序员可以将该地址嵌入指令内。熵模块513连同熵接口模块514一起工作以从SDRAM获得比特流。如果熵模块因为当前没有比特流数据处理而空闲,那么它可以向熵接口模块514发送要求数据的请求。熵接口模块向熵模块513发回请求数据,或者如果它没有数据提供,那么它可以向SDRAM发送要求数据的请求。
运动补偿(MC)模块510包括两部分或子模块(在图5中未示出):用于帧内预测的帧内MC和用于帧间预测的帧间MC。对于帧内预测,熵模块从以前压缩的比特流解码的预测模式和残余数据被发送至帧内MC子模块。帧内MC子模块被指令调用,计算当前4×4块的预测,增加预测和残余数据,并且因此为块得到运动补偿(再生)数据。
帧间MC子模块执行帧间运动补偿。当解码时,这部分需要基于子模块(用于亮度的4×4块,用于Cb和Cr色度的2×2块)的运动矢量和参考指数(refidx)查找到适当的整数样本。于是,部分预测样本源自内插。
MC接口模块511为帧间MC子模块中的帧间预测提供参考数据。如果当前请求的用于帧间MC子模块的参考数据在MC接口模块511的缓冲区中不可得到,那么MC接口模块511向SDRAM发送请求以获得那些数据。在请求的数据返回至MC接口模块后,将其存储在缓冲区中并且发送至MC模块510。
反变换和反量化(ITIQ)模块512负责残余数据的4×4像素子块上的逆扫描(reverse scanning)、反变换和反量化操作。它经由中间结果总线IRB返回它的结果至排队模块55。通过各个指令提供由ITIQ模块请求的数据。
过滤模块515应用于用于减少块失真的每个解码宏模块(MB)。过滤器使块边缘变平滑,从而改善解码帧的外观。过滤模块515可以处理MB(不是mbaff)或MB对(mbaff)的过滤处理。它通过指令接收用于过滤的当前MB的请求数据,例如MVs、“非零”信息、帧或域标志、像素数据等。对于mbaff模式的情况,它从过滤接口模块516读取其它MB的那些数据。
过滤接口模块516用于存储和提供邻近的MVs和邻近4×4子块的像素数据,并且用于向SDRAM存储循环过滤和最终处理的数据。如果直接向SDRAM存储邻近的信息和和过滤的数据,处理将非常慢。因此,向过滤接口模块516内的缓冲区存储这些数据,然后例如当缓冲区满时,利用突发写入功能向SDRAM中存储。因此,SDRAM的效率被显著提高。原则上也可以使用从SDRAM到接口模块的突发写入操作。
几个功能模块返回需要进一步处理并且发回排队模块的中间结果。在该实例中,这些模块是运算逻辑单元(ALU)59、数据缓存57、熵模块513、ITIQ 512、以及MC块510。由于排队模块每次只能接收一个结果,所以结果总线仲裁模块56每次选择一个结果,并且经由中间结果总线IRB传送至排队模块55。结果总线仲裁模块可以具有内部缓冲区以在等待中间结果总线IRB时存储从功能模块接收的结果。
存在需要访问外部SDRAM的几个模块,例如,指令缓存接口51、数据缓存接口58、MC接口511、熵接口514以及过滤接口516。不能同时满足从所有这些模块到SDRAM的请求。因此,访问总线仲裁模块517每次根据用于不同接口模块的预定优先级选择请求起作用的一个总线。
在下面,描述根据前述阶段的解码过程。首先,取指令模块53根据取指令模块中的程序计数器从指令缓存模块52取指令。其次,经由指令解码模块54发送指令至指令排队模块55。第三,根据各个需求操作,向相关功能模块发布指令排队模块55中的指令。在第四阶段中,功能模块根据指令执行它的处理。第五,经由中间结果总线IRB返回操作结果至指令排队模块55中的寄存器文件551、552。当执行指令时,如果请求数据丢失,功能模块可以发送请求信号至它们各个相关的接口模块。
视频解码特定功能模块,例如熵解码器513、ITIQ 512、运动补偿510以及去块效应过滤器515,可以依靠特定应用而配置为执行解码各个编码格式所需要的实际操作。该配置可以基于固件或软件。例如,运动补偿块可以执行用于根据MPEG-4视频标准解码的特定操作,以及根据AVC标准的其它操作。
无论哪一种视频标准支持这种体系结构,解码过程都通过一直使用相同的定义指令集的程序控制。此外,由程序、输入比特流、输出解码结果以及在程序执行期间产生的临时数据共享SRAM存储空间。在解码前,通过相关硬件向SDRAM自动输入比特流的某些部分。在SDRAM中逐渐自动地连续存储比特流的新的部分。在解码过程期间,解码器逐渐使用比特流。同时,向SDRAM存储由解码体系结构计算的作为图像数据的再生数据。然而,处理的不同阶段使用SDEAM的各自的区域。
当用于显示或其它目的需要SDRAM中的再生数据时,通过硬件电路自动输出那些数据。如果那些数据用于解码更多的图像,它们保持在SDRAM中。否则,SDRAM中的相关空间被新的图像数据盖写。
在解码过程中,熵模块513和熵接口模块514根据熵接口模块514中的对应地址从确定的SDRAM空间自动读取比特流。通过硬件增加地址,其中,在达到SDRAM中的比特流地址空间的最大地址之后,地址将在最小地址继续。去块效应过滤模块515和过滤接口模块516根据由程序提供的对应地址自动向确定的SDRAM空间存储解码结果。
在这种体系结构中,通过固件控制的解码过程可以被分为三步:
第一步是解码图像或条带级的参数:如果图像或条带级的参数(例如,QP、加权预测参数、图像尺寸、条带类型等)用于解码其它语法元素,那么它们将存储在所谓的全局寄存器中。全局寄存器与功能模块连接,并且控制指令执行。
第二步是解码MB级上的语法元素:一个接一个地解码这些元素。像图像或条带级参数,如果它们将控制其它功能模块,那么向全局寄存器存储这些元素(例如,宏块类型、帧或域标志)。这个体系结构允许熵模块、ITIQ模块、MC模块以及过滤模块在不同的MBs上平行工作。
第三步是在后解码:在解码所有的宏块元素后,固件计算整个图像中下一个MB的位置。对于图像的最后的MB,固件将做DBP缓冲管理,然后继续解码下一个图像。
对于包括MPEG2、H.264、AVS和VC-1的所有当前的视频标准,基本处理单元是MB。假设图像尺寸是M×N,如图4中示出的定义整个图像中的MB的位置。
每个功能模块内的执行是相似的。以MC模块510为例,比照图5,该执行可以被分为下列步骤。
第一,在排队模块55中从解码模块接收的、并且如果必要在操作队列550中排队的指令(以内部格式,即,解码的)被发送至运动补偿模块510。指令带来一些数据,例如运动矢量和/或残余数据。这些数据可以在内部缓冲区MCBUF中存储。
第二,在获得指令和相关数据后,MC模块510开始执行指令。在执行期间,如果请求数据在MC模块510的内部缓冲区MCBUF内是可得到的(例如从前一个MB),那么将立即使用那些数据。如果参考数据丢失,MC模块发送请求信号至MC接口模块511。如果MC接口模块511在它的内部缓冲区中找到那些数据,于是它返回这些数据至MC模块510。否则,MC接口模块511发送请求至连接至外部SDRAM的访问总线仲裁模块517。访问总线仲裁器517从所有的接口模块获得请求,并且选择一个以访问SDRAM以及获得数据。
第三,如果请求数据从SDRAM返回,那么它们在MC接口模块511中存储,并且返回至MC模块510。
第四,在它的计算之后,发送运动补偿结果至结果仲裁模块56,结果仲裁模块从功能模块得到所有的结果,并且在其它之后选择一个用于返回至排队模块55。
第五,执行之后的结果数据被写回至排队模块55中的寄存器551、552,并且更新排队模块55的寄存器551、552中的值。
对于那些不具有相关接口模块的模块,例如ALU 59或ITIQ512,该执行仅具有3个步骤,即上述描述的第一、第四和第五步骤。
本发明的优点是减少了处理块的空闲时间。这导致了提高的效能,即以类似的性能减少了能量消耗,或以类似的能量消耗增加了性能。
本发明防止了由于已知的多标准视频解码器的集中组织处理而产生的瓶颈。用于解码视频数据的改良设备包括RISC处理器的通用元件,包括指令提供单元、排队单元和ALU、以及特殊视频处理模块,其中,视频处理模块嵌入RISC处理器中,使得它们也可以通过指令总线接收指令,并且象通用RISC处理器元件一样向排队单元提供数据。特殊视频处理模块包括MC单元、用于执行IDCT和反向量的装置、熵解码单元和过滤单元。
本发明对于视频解码产品,特别是对于以模块方式执行的HD分辨率解码器,同时在硬件或软件上,例如用于H.264、VC-1、MPEG-2、AVC等的多标准解码器,是有利的。

Claims (10)

1.用于解码视频数据的设备,包括:
-用于提供解码指令的装置(51、52、53、54);
-排队单元(55),用于接收所述解码指令和接收结果数据(IRB),并且用于将指令提供至指令总线(IB)上;
-运算逻辑单元(59)和数据缓存单元(57),通过所述指令总线(IB)接收指令,并且向所述排队单元(55)提供(IRB)数据;
-运动补偿单元(510);
-反变换和反量化(ITIQ)装置(512),用于执行反变换和反量化;
-熵解码单元(513);以及
-过滤单元(515),为去块效应滤波器,所述去块效应滤波器具有用于过滤单个宏块的第一模式和用于过滤宏块对的第二模式,
其中,所述运动补偿单元(510)、所述反变换和反量化装置(512)、所述熵解码单元(513)和所述过滤单元(515)通过所述指令总线(IB)接收指令,并且向所述排队单元(55)提供(IRB)数据。
2.根据权利要求1所述的设备,其中,所述运动补偿单元(510)、所述反变换和反量化装置(512)、所述熵解码单元(513)和所述过滤单元(515)可以同时处理两个或更多个宏块的数据。
3.根据权利要求1或2所述的设备,其中,所述运动补偿单元(510)、所述反变换和反量化装置(512)、所述熵解码单元(513)和所述过滤单元(515)中的每一个都可以同时处理不同尺寸的视频数据块。
4.根据权利要求1或2所述的设备,其中,所述排队单元(55)包括用于指令的操作队列(550)和至少两个数据队列(551、552),其中,所述两个数据队列(551、552)具有不同的宽度。
5.根据权利要求1或2所述的设备,其中,所述运动补偿单元(510)、所述反变换和反量化装置(512)、所述熵解码单元(513)和所述过滤单元(515)中的每一个都具有用于检测其具有空闲处理能力的装置,并基于所述检测向所述排队单元(55)请求新指令。
6.根据权利要求1或2所述的设备,进一步包括:结果仲裁模块(56),用于向所述排队单元(55)提供所述结果数据(IRB),其中,所述结果仲裁模块从所述数据缓存单元(57)、所述运算逻辑单元(59)、所述运动补偿单元(510)、所述反变换和反量化装置(512)、所述熵解码单元(513)和所述过滤单元(515)接收数据,并且其中,所述结果仲裁模块包括用于每次选择一个所述结果的装置。
7.根据权利要求1或2所述的设备,其中,被解码的最小处理单元为用于亮度的4×4像素块和用于色度的2×2像素块。
8.根据权利要求1或2所述的设备,进一步包括:过滤接口模块(516),其中,对于所述第二模式,从所述过滤接口模块(516)读取第二宏块的宏块数据。
9.根据权利要求1或2所述的设备,进一步包括:总线仲裁模块(517),用于连接至外部存储器,所述总线仲裁模块(517)具有用于根据预定优先级从不同接口模块选择多个总线请求之一的装置。
10.根据权利要求1或2所述的设备,其中,所述熵解码单元(513)、所述反变换和反量化装置(512)、所述运动补偿单元(510)和所述过滤单元(515)可以为固件,配置为执行它们各自的适于不同视频编码格式的操作。
CN200680055930.0A 2006-09-25 2006-09-25 用于处理视频数据的设备 Expired - Fee Related CN101513067B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2006/002518 WO2008037113A1 (en) 2006-09-25 2006-09-25 Apparatus and method for processing video data

Publications (2)

Publication Number Publication Date
CN101513067A CN101513067A (zh) 2009-08-19
CN101513067B true CN101513067B (zh) 2012-02-01

Family

ID=39229695

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200680055930.0A Expired - Fee Related CN101513067B (zh) 2006-09-25 2006-09-25 用于处理视频数据的设备

Country Status (2)

Country Link
CN (1) CN101513067B (zh)
WO (1) WO2008037113A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8548041B2 (en) 2008-09-25 2013-10-01 Mediatek Inc. Adaptive filter
CN103379330A (zh) * 2012-04-26 2013-10-30 展讯通信(上海)有限公司 码流数据的解码预处理方法及解码方法,处理器,解码器
US9762919B2 (en) 2014-08-28 2017-09-12 Apple Inc. Chroma cache architecture in block processing pipelines
US10205957B2 (en) * 2015-01-30 2019-02-12 Mediatek Inc. Multi-standard video decoder with novel bin decoding
CN114339044A (zh) * 2021-12-29 2022-04-12 天津天地伟业智能安全防范科技有限公司 一种基于消息队列的高吞吐量的抓拍方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003179923A (ja) * 2001-12-12 2003-06-27 Nec Corp 動画像圧縮符号化信号の復号システム及び復号方法,復号用プログラム
EP1351512A2 (en) * 2002-04-01 2003-10-08 Broadcom Corporation Video decoding system supporting multiple standards
EP1475972A2 (en) * 2003-05-08 2004-11-10 Matsushita Electric Industrial Co., Ltd. Apparatus and method for moving picture decoding device with parallel processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003179923A (ja) * 2001-12-12 2003-06-27 Nec Corp 動画像圧縮符号化信号の復号システム及び復号方法,復号用プログラム
EP1351512A2 (en) * 2002-04-01 2003-10-08 Broadcom Corporation Video decoding system supporting multiple standards
EP1475972A2 (en) * 2003-05-08 2004-11-10 Matsushita Electric Industrial Co., Ltd. Apparatus and method for moving picture decoding device with parallel processing

Also Published As

Publication number Publication date
WO2008037113A1 (en) 2008-04-03
CN101513067A (zh) 2009-08-19

Similar Documents

Publication Publication Date Title
US11871000B2 (en) Method and system for selectively breaking prediction in video coding
US10757445B2 (en) Techniques for resource conservation during performance of intra block copy prediction searches
US8743972B2 (en) Coding adaptive deblocking filter and method for use therewith
US20070253491A1 (en) Image data processing apparatus, image data processing method, program for image data processing method, and recording medium recording program for image data processing method
KR102333204B1 (ko) 개선된 인트라 색차 엔코딩 및 디코딩을 위한 방법 및 장치
KR101895296B1 (ko) 동영상 처리 방법 및 장치
US9350992B2 (en) Explicit way for signaling a collocated picture for high efficiency video coding
CN1812576B (zh) 同时执行视频数据水平和垂直滤波的解块滤波器及其方法
US20120134425A1 (en) Method and System for Adaptive Interpolation in Digital Video Coding
KR101158345B1 (ko) 디블록킹 필터링을 수행하는 방법 및 시스템
US8542744B2 (en) Methods and apparatus for providing a scalable deblocking filtering assist function within an array processor
KR101834237B1 (ko) 동영상 처리 방법 및 장치
CN101513067B (zh) 用于处理视频数据的设备
KR20020077883A (ko) 스케일러블 엠피이지2 비디오 시스템
US7307550B2 (en) Decoding method, decoding device, and program for the same
JP2006270851A (ja) 画像符号化装置及び画像復号装置
CN100438630C (zh) 基于数据缓存的多流水线阶段信息共享方法
US8249373B2 (en) Image data decoding apparatus and method for decoding image data

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: 20120201

Termination date: 20150925

EXPY Termination of patent right or utility model