CN101116342B - 用于解码数据的设备、方法和系统 - Google Patents
用于解码数据的设备、方法和系统 Download PDFInfo
- Publication number
- CN101116342B CN101116342B CN2006800044766A CN200680004476A CN101116342B CN 101116342 B CN101116342 B CN 101116342B CN 2006800044766 A CN2006800044766 A CN 2006800044766A CN 200680004476 A CN200680004476 A CN 200680004476A CN 101116342 B CN101116342 B CN 101116342B
- Authority
- CN
- China
- Prior art keywords
- hardware accelerator
- data
- bit stream
- programmable element
- decoder
- 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
Links
- 230000006835 compression Effects 0.000 claims description 48
- 238000007906 compression Methods 0.000 claims description 48
- 238000000034 method Methods 0.000 claims description 29
- 230000015572 biosynthetic process Effects 0.000 claims description 7
- 230000003068 static effect Effects 0.000 claims 1
- 230000008569 process Effects 0.000 description 15
- 238000013500 data storage Methods 0.000 description 13
- 239000000872 buffer Substances 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 5
- 238000003860 storage Methods 0.000 description 5
- 238000012856 packing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009182 swimming Effects 0.000 description 2
- 241001269238 Data Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 230000005611 electricity Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/625—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/12—Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Discrete Mathematics (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
实施例包括一种设备,其包括解码器,用于接收基于一编码标准的压缩比特流。该解码器包括硬件加速器,用于对所述压缩比特流中的、基于包含所述编码标准在内的多个编码标准公用的操作的部分进行解码;以及可编程元件,用于对所述压缩比特流中的、基于专用于所述编码标准的操作的部分进行解码。
Description
技术领域
本申请整体涉及数据处理,更具体而言,涉及数据的解码。
背景技术
不同类型信号的编码、传输和解码可能是一种高带宽强度的过程。通常,将模拟信号转换为数字形式,并在适当的通信网络上作为比特流进行传输。在该比特流到达接收位置之后,解码操作将该数据转换回模拟信号。然而,编码和解码操作可能基于多种不同的标准(例如,运动图像专家组(MPEG)-2、MPEG-4,Windows Media(WM)-9等等)。因此,用于执行编码与解码操作的逻辑电路必须设计为能够处理这些标准中的一种或多种。
附图说明
通过参考以下用于说明本发明的各个实施例的描述和附图,将会更好地理解这些实施例。对于在此所包括的附图的编号方法使得在附图中给定参考数字的首部数字与该附图的编号相关联。例如,系统100位于图1中。然而,对于在不同附图中相同的元件采用了相同的参考数字。在附图中:
图1示出了根据本发明的一些实施例的视频解码器的框图;
图2示出了根据本发明的一些实施例的变长解码器的更为详细的框图;
图3示出了根据本发明的一些实施例,图1的变长解码器102所生成的不同分组;
图4示出了根据本发明的一些实施例的、用于解码的流程图;以及
图5示出了根据本发明的一些实施例的、用于执行解码操作的处理器结构。
具体实施方式
本发明的各个实施例是参考视频解码操作来描述的。然而,各个实施例并不局限于此。这些实施例可以用于多种不同应用(编码操作等等)中的任意一种中。
图1示出了本发明的一些实施例的视频解码器的框图。具体而言,图1示出了系统100,其包括变长解码器102、游程(run level)解码器104、离散余弦变换(DCT)逻辑电路106、运动补偿逻辑电路108、解块滤波器110、数据存储器与逻辑电路114A-114N以及存储器150。变长解码器102、游程解码器104、DCT逻辑电路106、运动补偿逻辑电路108和解块滤波器110可以用硬件、软件、固件或者其组合来体现。
数据存储器与逻辑电路114A-114N和存储器150可以包括不同类型的机器可读介质。例如,所述机器可读介质可以是易失性介质(例如,随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备等等)。所述机器可读介质可以是不同类型的RAM(例如,同步动态RAM(SDRAM)、DRAM、双倍数据速率(DDR)-SDRAM等等)。
变长解码器102被耦接以接收压缩比特流112。在一些实施例中,压缩比特流112可以是基于多种不同解码标准中任意一种而编码的编码数据。不同编码标准的示例包括运动图像专家组(MPEG)-2、MPEG-4、Windows Media(WM)-9等等。有关各种MPEG-2标准的更多的信息,请参考“国际标准化组织(ISO)/国际电工委员会(IEC)13818-2:2000 Information Technology-Generic Coding of MovingPictures and Associated Audio Information:video”。有关各种MPEG-4标准的更多的信息,请参考“ISO/IEC 14496 Coding of Audio-visualObjects-Part 2:Video”及其相关修改。以下将给出分组114以及用变长解码器102生成分组114的更为详细的描述。
如以下将要进一步描述的,变长解码器102可以基于压缩比特流112,生成序列分组、帧分组和宏块分组130。变长解码器102可以 将序列分组、帧分组以及宏块分组的首部存储在存储器150中,变长解码器102可以将宏块分组的主体存储在数据存储器与逻辑电路114A中。如所示,变长解码器102、游程解码器104、DCT逻辑电路106、运动补偿逻辑电路108和解块滤波器110耦接到存储器150。因此,游程解码器104、DCT逻辑电路106、运动补偿逻辑电路108和解块滤波器110可以对存储器150中的序列分组、帧分组和宏块分组的首部进行访问,以对宏块分组的主体进行处理。
游程解码器104被耦接以从数据存储器与逻辑电路114A接收宏块分组130的主体。游程解码器104可以根据该信息生成系数数据132。游程解码器104被耦接以将系数数据132存储到数据存储器与逻辑电路114B中。DCT逻辑电路106被耦接以从数据存储器与逻辑电路114B中接收系数数据132。DCT逻辑电路106可以基于系数数据132生成像素134。例如,DCT逻辑电路106可以生成I帧的像素或者生成P帧的残差。DCT逻辑电路106被耦接以将像素134存储到数据存储器与逻辑电路114C中。
运动补偿逻辑电路108被耦接以从数据存储器与逻辑电路114C接收像素134并且接收参考像素140。运动补偿逻辑电路108可以根据像素134和参考像素140生成像元(pel)数据136。运动补偿逻辑电路108被耦接以将像元数据136存储到数据存储器与逻辑电路114N中。解块滤波器112被耦接以从数据存储器与逻辑电路114N中接收像元数据136。解块滤波器112可以根据像元数据136生成像元数据122。
以下将更为详细的描述变长解码器102。在一些实施例中,压缩比特流112可以是根据多种编码标准中任意一种而被编码的。这些标准中的一种或多种可能至少需要专用于该标准的一些操作。变长解码器102不是必须要为每种标准有差异地执行解码操作。相反地,在解码操作中存在一些这些不同标准公用的核心操作。以下将更为详细地描述所述核心操作的示例。
在一些实施例中,变长解码器102可以包括硬件加速器和可编程元件。在一些实施例中,可编程元件可以控制硬件加速器的操作。另 外,可编程元件可以执行某种特定编码标准特有的/专用的多个操作。硬件加速器可以执行多种编码标准公用的核心操作。在一些实施例中,这些标准可以根据这些核心功能的序列而变化。
因此,变长解码器102允许这些核心功能的更为快速的执行,同时实现了在不同标准之间的可编程性。虽然包含硬件加速器与可编程元件之间的区分的该结构是参考变长解码器102进行描述的,但是在一些实施例中,该结构可以结合到系统100的其他组件中(例如,游程解码器104、DCT逻辑电路106、运动补偿逻辑电路108和解块滤波器110)。
图2示出了根据本发明的一些实施例的变长解码器的更为详细的框图。具体而言,图2示出了根据本发明的一些实施例的变长解码器102的更为详细的框图。变长解码器102包括可编程元件202和硬件加速器204。硬件加速器204包括输出缓冲器210。
硬件加速器204接收压缩比特流112。硬件加速器204被耦接以经由数据通道207将数据发送到可编程元件202和从可编程元件202接收数据。可编程元件202还被耦合以经由命令通道208发送命令至硬件加速器204,以对其进行控制。可编程元件202和硬件加速器204都可以访问输出缓冲器210。例如,可编程元件202和硬件加速器204可以将分组(包括序列分组、帧分组和宏块分组)存储到输出缓冲器210中。在一些实施例中,可编程元件202和硬件加速器204可以在生成分组时使用输出缓冲器210。例如,可编程元件202和硬件加速器204的一个或多个操作可以生成一个分组的第一部分(例如分组之一的首部),其被临时存储在输出缓冲器210中。随后,可编程元件202和硬件加速器204的一个或多个操作可以生成该分组的第二部分(例如,该分组的主体)。可编程元件202或者硬件加速器204可以基于这两个不同部分生成该分组。
可编程元件202可以经由命令通道208将控制命令发送至硬件加速器204,从而使得硬件加速器204输出这些分组,以将其存储在存储器150和数据存储器与逻辑电路114A中。在一些实施例中,可编程元件202和硬件加速器204对压缩比特流112的不同部分进行解 码。
例如,可编程元件202可以对专用于某种特定标准的比特流进行解码。硬件加速器204可以由可编程元件202进行编程,以执行各种标准公用的解码操作。换而言之,硬件加速器204可以执行多种标准公用的各种核心操作。
核心操作的示例可以涉及对比特流中的比特的解析。例如,核心操作可以包括定位比特流中的比特模式。核心操作可以包括定位比特流中的变长码。例如,核心操作可以包括定位比特流中的特定起始码。在一些实施例中,核心操作可以包括对比特流中的多个比特进行解码。核心操作可以从比特流中获得多个比特,并可以对这些比特进行解码。具体而言,核心操作可以(基于所获得的比特)对表格进行查找。然后,硬件加速器204可以将被解码的比特解释为索引、三个一组的(run,leve,last)(游程、位阶、结束)、等等。在一些实施例中,硬件加速器204可以输出来自变长解码器102的被解码比特,而不由可编程元件202进行进一步处理。或者,硬件加速器204可以将解码操作的结果返回到可编程元件202,以进行进一步处理。在一些实施例中,可编程元件202可以将打包的或者未打包的格式化数据输出到硬件加速器204。如果接收到打包数据,则硬件加速器204可以对该打包数据进行解包,以进行进一步处理。
硬件加速器204能够执行的另一种核心操作可以包括对系数块进行解码。具体而言,硬件加速器204可以解码压缩比特流112,直到整个系数块都被解码。硬件加速器204可以输出来自变长解码器102的被解码块,而不由可编程元件202进行进一步处理。或者,硬件加速器204可以将解码操作的结果返回到可编程元件202,以进行进一步处理。
硬件加速器204能够执行的另一种核心操作可以包括从压缩比特流112中获得指定数量的比特,其可以被传送给可编程元件202,以进行进一步处理(如以下所述)。硬件加速器204能够执行的另一种核心操作可以包括将来自压缩比特流112的指定数量的比特示出给可编程元件202(而并不从比特流中删除这些比特)。
现在将要描述根据本发明的实施例,在可编程元件202和硬件加速器204之间分配解码操作的更为详细的描述。压缩比特流112可以包括多个帧的比特。例如,压缩比特流112可以包括多个视频帧。一个序列包括多个帧。例如,1秒的序列可以包括30个帧。一个视频帧可以被划分为多个宏块。此外,宏块可以包括多个块。基于压缩比特流112,变长解码器102可以生成包含序列级别的数据、帧级别的数据和宏块级别的数据的分组。
因此,图3示出了根据本发明的一些实施例,由变长解码器所生成的各种分组。具体而言,图3示出了根据本发明的一些实施例,由变长解码器102所生成的各种分组。如所示,变长解码器102可以生成序列分组302、帧分组304、宏块首部306和宏块分组308。
序列分组302可以包括从压缩比特流112解码的多个序列级别的参数。序列级别的参数可以包括帧大小、用于解码的码类型等等。帧分组304可以包括从压缩比特流112解码的多个帧级别的参数。帧级别的参数可以包括帧类型、是否需要位阶变换(level shifting)、是否需要量化等等。宏块首部306包括宏块控制信息。宏块控制信息可以包括用于编码宏块数据的编码类型、在其中的块的类型与数量、哪些块在压缩比特流中、是否使用运动预测和对哪些块进行运动预测、运动预测的运动矢量等等。宏块分组308可以包括来自压缩比特流112的宏块数据。
在一些实施例中,序列参数的解码可以专用于某种特定编码标准。在一些实施例中,帧级别的参数的解码可以专用于某种特定编码标准。在一些实施例中,宏块首部306的生成可以专用于某种特定编码标准。宏块分组的解码可以至少部分地基于多种编码标准公用的核心操作(如上所述)。
在一些实施例中,可编程元件202可以对专用于某种特定解码标准的分组进行解码,而硬件加速器204可以至少部分地对多种编码标准公用的分组进行解码。因此,如所示,可编程元件202可以解码序列参数,以生成序列分组302。可编程元件202还可以解码帧级别的参数,以生成帧分组304。
因此,硬件加速器204可以被硬连线(hard-wired),以执行多种编码标准公用的核心操作。可编程元件202可以被编程,以处理某种特定标准的具体细节。因此,在可编程元件202中执行的指令可以被更新,以允许对新的或者更新过的标准的处理。然而,实施例并不局限于此。在一些实施例中,可编程元件202可以对多种编码标准公用的多个分组的多个部分进行解码。在一些实施例中,硬件加速器204可以对专用于某种特定标准的多个分组的多个部分进行解码。
现在将详细描述根据一些实施例的变长解码器102的操作。图4示出了根据本发明的一些实施例的解码流程图。流程图400示出了对给定视频序列进行处理的多个操作。这些操作可以在接收到另外的序列时重复执行。参考图2的组件描述流程图400。流程图400在方框402开始。
在方框402,变长解码器接收压缩比特流。参考图2,硬件加速器204获得压缩比特流112。流程继续到方框404。
在方框404,可编程元件基于压缩比特流,生成序列分组。参考图2,可编程元件202可以生成序列分组。在一些实施例中,可编程元件202在生成序列数据时可以使用硬件加速器204的一些核心操作。该序列数据可以专用于某个给定编码标准。因此,可编程元件202可以使得硬件加速器204定位压缩比特流112中的序列数据。然后,可编程元件202可以生成包含序列数据的一个或多个序列分组。在一些实施例中,可编程元件202可以使得硬件加速器204从压缩比特流112中获得指定数量的比特。例如,硬件加速器204可以定位在压缩比特流112中的起始码。序列数据可以是压缩比特流112中在该起始码位置之后的X个比特。因此,可编程元件202可以使得硬件加速器204定位该起始码,并且获得其后面的序列数据。流程继续到方框406。
在方框406,可编程元件基于压缩比特流,生成帧分组。与序列分组类似,帧分组也可以专用于某个特定编码标准。参考图2,可编程元件202可以生成帧分组。在一些实施例中,可编程元件202在生成帧数据(例如,表示帧数据的比特的定位与获取)时,可以使用硬 件加速器204的一些核心操作。流程继续到方框407。
在方框407,判断是否已经处理完该序列中所有的帧。可编程元件202可以进行该判断。具体而言,对于某个给定的视频编码标准,在一个序列中有给定数量的帧。因此,可编程元件202可以根据正在处理的视频编码标准类型来进行该判断。在确定还没有处理完该序列中所有的帧时,控制继续到方框406,处理另一个帧分组。
在方框408,在确定已经处理完该序列中所有的帧时,可编程元件基于压缩比特流,生成宏块分组的首部。与序列和帧数据类似,宏块控制信息也可以专用于某个给定编码标准。参考图2,可编程元件202可以生成宏块控制信息。该信息可以存储在宏块分组的首部中(如图3所示)。在一些实施例中,可编程元件202在生成宏块控制信息(例如表示宏块信息的比特的定位和获取)时,可以使用硬件加速器204的一些核心操作。流程继续到方框410。
在方框410,变长解码器基于压缩比特流,生成宏块分组,其包括由硬件加速器执行的核心操作。参考图2,硬件加速器204可以执行多个编码标准公用的多个核心操作中的任意一个。例如,硬件加速器204可以对指定数量的比特进行解码,对系数块进行解码,等等。硬件加速器204可以基于核心操作,生成宏块分组的主体。如上所述,在一些实施例中,可编程元件202在生成宏块分组的主体时可以执行一些操作。流程继续到方框409。
在方框409,判断是否已经处理完该序列中所有宏块分组。可编程元件202可以进行该判断。具体而言,对于某个给定的视频编码标准,在一个帧中有给定数量的宏块分组。因此,可编程元件202可以根据正在处理的视频编码标准类型来进行该判断。在确定还没有处理完该序列中所有的宏块时,控制继续到方框408,处理另一个宏块分组。
在方框412,在确定已经处理完该序列中所有宏块分组时,变长解码器输出序列分组、帧分组和宏块分组。参考图1,变长解码器102可以输出这些分组,以将其存储到数据存储器与逻辑电路114A中。参考图2,在一些实施例中,硬件加速器204可以包括多个内部缓冲 器(未示出)。硬件加速器204可以将这些分组存储到这些内部缓冲器中,直到从可编程元件202接收到控制命令输出这些分组。
根据用于执行现在所述的这些操作的一些实施例,在此所述的解码器结构可以工作在多种不同的环境中。具体而言,图5示出了根据本发明的实施例的一种处理器结构,其包括用于数据结构的缓冲器结构。图5示出了系统500,其包括图像处理器502,图像处理器502包括如上所述的用于数据结构的缓冲器结构。例如,图像处理器502可以包括图1的系统100的组件。
图像处理器502耦接到存储器504A-504B。在一些实施例中,存储器504A-504B是不同类型的随机存取存储器(RAM)。例如,存储器504A-504B是双倍数据速率(DDR)同步动态RAM(SDRAM)。
图像处理器502耦接到总线514,在一些实施例中,总线514可以是周边元件扩展接口(PCI)总线。系统500还包括存储器506、主机处理器508、多个输入/输出(I/O)接口510和网络接口512。主机处理器508耦接到存储器506。存储器506可以是不同类型的RAM(例如同步动态RAM(SDRAM)、DRAM、DDR-SDRAM、等等),在一些实施例中,主机处理器508可以是不同类型的通用目的处理器。I/O接口510为系统500提供到I/O设备或者周边元件的接口。I/O接口510可以包括合适的接口控制器,以控制对于系统500的任何元件的适当通信链接。一些实施例的I/O接口510为多个接口之一提供适当的仲裁和缓冲。
对于一些实施例,I/O接口510提供接口给一个或多个适当的集成驱动电路(IDE)驱动器,诸如例如用于硬盘驱动器(HDD)或者压缩光盘只读存储器(CD ROM)驱动器,以便存储数据和/或者指令,例如经由通用串行总线(USB)端口的一个或多个USB设备、音频编码器/解码器(编解码器)、以及调制解调器编解码器。一些实施例的I/O接口510还经由一个或多个端口提供接口给键盘、鼠标、一个或多个适当的设备,例如打印机。网络接口512提供接口给在多个通信网络(例如,因特网、内部网、以太网)之一上的一个或多个远程设备。
主机处理器508、I/O接口510和网络接口512都经由总线512与图像处理器502耦接。在主机处理器508中执行的指令可以为不同类型的图像处理而配置图像处理器502。例如,主机处理器508可以配置图像处理器502的不同组件,以在其中进行解码操作。这种配置可以包括输入到数据存储器与逻辑电路114(在图1中)或者从中输出的多种数据结构、是否使用模式存储器224、等等。在一些实施例中,编码视频数据可以经由网络接口512输入,以便由图像处理器502中的组件进行解码。
在描述中,描述了多个具体细节。然而,应该理解,没有这些具体细节也可以实现本发明的实施例。在其他示例中,已知的电路、结构和技术并没有详细示出,以便不会混淆对本发明的理解。描述了多个具体细节,例如逻辑电路的实现、操作码、描述操作数的方式、资源分割/共享/复制实现、系统组件的类型和相互关系、以及逻辑电路的分割/集成选择,以便提供对于本发明的主题的更为透彻的理解。然而,应该理解,本领域技术人员在没有这些具体细节的情况下也可以实现本发明的实施例。在其他示例中,控制结构、门级别的电路以及全部的软件指令序列并没有具体示出,以便不会混淆本发明的实施例。本领域技术人员通过在此的描述在不进行不恰当的试验的情况下就可以实现适当的功能。
说明书中所涉及的“一个实施例”、“实施例”、“示例性实施例”等等表示所述的实施例可以包括具体特征、结构、或者特点,但是每个实施例不是必须要包括这些具体特征、结构、或者特点。此外,这些语句并不是必须指同一实施例。此外,当结合实施例描述了具体特征、结构、或者特点时,则认为在本领域技术人员的知识范围内,这种特征、结构、或者特点可以结合其他实施例(不论是否阐述清楚)来实现。
本发明的实施例包括可以用机器可读介质提供的机器可执行指令来体现的特征、方法和过程。机器可读介质包括以机器(例如,计算机、网络设备、个人数字助理、制造工具、具有一组一个或多个处理器的任何设备、等等)可访问形式提供信息的任何机制。在示例性 实施例中,机器可读介质包括易失性和/或者非易失性介质(例如,只读存储器(ROM)、随机存取存储器(RAM)、磁盘存储介质、光存储介质、闪存设备、等等),以及电、光、声、或者其他形式的传播信号(例如,载波、红外信号、数字信号、等等)。
利用这些指令来使得被使用这些指令进行了编程的通用或者专用处理器执行本发明的实施例的方法和过程。或者,本发明的实施例的特征或者操作可以通过包含用于执行这些操作的硬连线逻辑电路的专用硬件组件来执行,或者通过经过编程的数据处理组件与专用硬件组件的任意组合来执行。本发明的实施例包括软件、数据处理硬件、数据处理系统的实现方法,以及各种处理操作,在此已经进一步进行了描述。
多个附图示出了根据本发明的一些实施例,用于解码器的系统和设备的框图。一个附图示出了描述根据本发明的一些实施例,解码器结构的操作的流程图。该流程图的操作已经参考框图中所示的系统/结构进行了描述。然而,应该理解,该流程图的操作可以通过参考框图所示出的系统和设备之外的其他系统和设备来实现,并且参考这些系统/设备所述的实施例可以执行与参考框图所描述的系统和设备不同的操作。
对于对在此所述的实施例的大范围的多种变化,该详细描述仅仅是为了阐述,而不应被认为是限制本发明主题的范围。因此,要求权利的内容是在附带的权利要求和其等价物的范围和精神范围内的全部变体。因此,说明书和附图应该被看作是进行阐述而不具有限定含意。
Claims (21)
1.一种用于解码数据的设备,包括:
变长解码器,用于接收基于一编码标准的压缩比特流,其中,所述变长解码器包括:
硬件加速器,用于对所述压缩比特流中的、基于包括所述编码标准在内的多种编码标准公用的第一操作的部分进行解码;以及
可编程元件,用于对所述压缩比特流中的、基于专用于所述编码标准的第二操作的部分进行解码;
其中,所述可编程元件用于控制所述硬件加速器,并且
其中,输入至所述变长解码器中的所述压缩比特流是由所述硬件加速器接收的,并且所述硬件加速器从所接收到的压缩比特流中获得指定数量的比特,并将所获得的所述指定数量的比特传送至所述可编程元件。
2.如权利要求1所述的设备,其中,所述硬件加速器用于对来自所述压缩比特流的至少一部分宏块数据进行解码。
3.如权利要求2所述的设备,其中,所述可编程元件用于对来自所述压缩比特流中的序列数据和帧数据进行解码。
4.如权利要求3所述的设备,其中,所述可编程元件用于基于专用于所述编码标准的所述第二操作,对至少一部分所述序列数据和至少一部分所述帧数据进行解码。
5.如权利要求2所述的设备,其中,所述硬件加速器用于将所述宏块数据存储到宏块分组中,并且其中,所述可编程元件用于基于所述压缩比特流,导出所述宏块分组的首部。
6.如权利要求1所述的设备,其中,所述多种编码标准包括运动图像专家组MPEG-2、MPEG-4或者Windows Media-9。
7.一种用于解码数据的方法,包括:
接收使用一编码标准而编码的编码数据;
使用解码器内的硬件加速器,对基于包括所述编码标准在内的多种编码标准公用的第一操作的编码数据进行解码,所述硬件加速器用于执行所述第一操作;
使用所述解码器内的可编程元件,对基于所述编码标准专用的第二操作的编码数据进行解码,所述可编程元件用于执行所述第二操作;
其中,使用所述可编程元件控制所述硬件加速器;并且
其中,所述解码器是变长解码器,并且
其中,输入至所述解码器中的所述编码数据是由所述硬件加速器接收的,并且所述硬件加速器从所接收到的编码数据中获得指定数量的比特,并将所获得的所述指定数量的比特传送至所述可编程元件。
8.如权利要求7所述的方法,其中,使用所述解码器的可编程元件对所述编码数据进行解码的步骤包括,从所述编码数据中生成序列数据。
9.如权利要求8所述的方法,其中,使用所述解码器的可编程元件对所述编码数据进行解码的步骤包括,从所述编码数据中生成帧数据。
10.如权利要求9所述的方法,其中,使用所述解码器的硬件加速器对所述编码数据进行解码的步骤包括,从所述编码数据中生成宏块数据。
11.如权利要求10所述的方法,其中,使用所述解码器的可编程元件对所述编码数据进行解码的步骤包括,基于所述编码数据生成宏块控制信息。
12.如权利要求7所述的方法,其中,所述多种编码标准包括运动图像专家组MPEG-2、MPEG-4或者Windows Media-9。
13.一种用于解码数据的系统,包括:
静态随机存取存储器SRAM;以及
变长解码器,用于接收基于一编码标准而编码的压缩比特流,其中,所述变长解码器包括:
硬件加速器,用于执行第一解码操作,所述第一解码操作包括用于在所述压缩比特流中定位起始码的第一操作,其中,所述第一解码操作是包括所述编码标准在内的多种编码标准公用的;
以及
可编程元件,用于接收来自所述第一解码操作的输出,并执行所述编码标准专用的第二解码操作,其中,所述可编程元件用于将所述第二解码操作的结果存储到所述SRAM中,并且基于所述压缩比特流,生成第一组解码数据;
其中,所述可编程元件控制所述硬件加速器执行所述第一解码操作,以基于所述压缩比特流,生成第二组解码数据,其中,
所述硬件加速器用于从所述可编程元件接收所述第一组解码数据,并且其中,所述硬件加速器用于将所述第一组解码数据和所述第二组解码数据存储到所述SRAM中,并且
其中,输入至所述变长解码器中的所述压缩比特流是由所述硬件加速器接收的,并且所述硬件加速器从所接收到的压缩比特流中获得指定数量的比特,并将所获得的所述指定数量的比特传送至所述可编程元件。
14.如权利要求13所述的系统,其中,所述第二解码操作包括用于从所述压缩比特流中生成多个视频帧的序列数据和帧数据的第三操作。
15.如权利要求13所述的系统,其中,所述第一解码操作包括用于从所述压缩比特流中生成多个视频帧的宏块数据的宏块操作。
16.如权利要求15所述的系统,其中,所述编码标准专用的所述第二解码操作还包括用于从所述压缩比特流中生成所述多个视频帧的宏块控制信息的宏块控制操作。
17.如权利要求13所述的系统,还包括游程解码器,用于从所述SRAM中获得所述编码标准专用的所述第二解码操作的结果,并基于来自所述SRAM的、所述编码标准专用的所述第二解码操作的结果,生成系数数据。
18.如权利要求13所述的系统,其中,所述多种编码标准包括运动图像专家组MPEG-2、MPEG-4或者Windows Media-9。
19.一种用于解码数据的方法,包括:
使用变长解码器的可编程元件控制硬件加速器,以传递所接收的压缩比特流的多个比特;
使用所述硬件加速器从所述压缩比特流中获得序列级别的数据;
使用所述硬件加速器从所述压缩比特流中获得帧级别的数据;以及
使用可编程元件控制所述硬件加速器,以对来自所述所接收的压缩比特流的多个数据宏块执行解码操作,并且
其中,输入至所述变长解码器中的所述压缩比特流是由所述硬件加速器接收的,并且所述硬件加速器从所接收到的压缩比特流中获得指定数量的比特,并将所获得的所述指定数量的比特传送至所述可编程元件。
20.如权利要求19所述的方法,其中,所述解码操作包括一核心操作,其是多种编码标准公用的。
21.如权利要求20所述的方法,其中,所述多种编码标准包括运动图像专家组 MPEG-2、MPEG-4或者Windows Media-9。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/093,732 | 2005-03-30 | ||
US11/093,732 US8705632B2 (en) | 2005-03-30 | 2005-03-30 | Decoder architecture systems, apparatus and methods |
PCT/US2006/012985 WO2006105544A1 (en) | 2005-03-30 | 2006-03-30 | Multistandard variable length decoder with hardware accelerator |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101116342A CN101116342A (zh) | 2008-01-30 |
CN101116342B true CN101116342B (zh) | 2013-01-02 |
Family
ID=36688107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800044766A Expired - Fee Related CN101116342B (zh) | 2005-03-30 | 2006-03-30 | 用于解码数据的设备、方法和系统 |
Country Status (7)
Country | Link |
---|---|
US (1) | US8705632B2 (zh) |
EP (1) | EP1864501A1 (zh) |
JP (1) | JP5053254B2 (zh) |
KR (1) | KR100985361B1 (zh) |
CN (1) | CN101116342B (zh) |
TW (1) | TWI374669B (zh) |
WO (1) | WO2006105544A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8705632B2 (en) | 2005-03-30 | 2014-04-22 | Intel Corporation | Decoder architecture systems, apparatus and methods |
DE112006003307T8 (de) * | 2005-12-09 | 2009-01-29 | Nvidia Corp., Santa Clara | Multistandard-Hardware-Videodecodervorrichtung |
US8705630B2 (en) * | 2006-02-10 | 2014-04-22 | Nvidia Corporation | Adapting one type of encoder to another type of encoder |
TWI478584B (zh) * | 2007-03-08 | 2015-03-21 | Realtek Semiconductor Corp | 一種視訊編解碼的方法及其裝置 |
CN101350625B (zh) * | 2007-07-18 | 2011-08-31 | 北京泰美世纪科技有限公司 | 一种高效通用的qc-ldpc码译码器及其译码方法 |
US8462841B2 (en) * | 2007-12-31 | 2013-06-11 | Netlogic Microsystems, Inc. | System, method and device to encode and decode video data having multiple video data formats |
CN101547353B (zh) * | 2008-03-28 | 2011-09-07 | 富士通株式会社 | 可变长码解码加速装置 |
CN101478311B (zh) * | 2009-01-22 | 2010-10-20 | 浙江大学 | bzip2压缩算法硬件加速实现方法 |
CN102055970A (zh) * | 2009-11-09 | 2011-05-11 | 鸿富锦精密工业(深圳)有限公司 | 多重标准视频解码系统 |
CN102065288B (zh) * | 2010-06-30 | 2013-07-24 | 美商威睿电通公司 | 结合软硬件实现的视频处理系统、方法及其装置 |
US10055807B2 (en) | 2016-03-02 | 2018-08-21 | Samsung Electronics Co., Ltd. | Hardware architecture for acceleration of computer vision and imaging processing |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1351511A2 (en) * | 2002-04-01 | 2003-10-08 | Broadcom Corporation | Method of communicating between modules in a video decoding system |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3930280B2 (ja) * | 2001-09-27 | 2007-06-13 | 株式会社東芝 | 符号化画像データ復号装置、方法およびプログラム |
US6944746B2 (en) * | 2002-04-01 | 2005-09-13 | Broadcom Corporation | RISC processor supporting one or more uninterruptible co-processors |
WO2003085494A2 (en) | 2002-04-01 | 2003-10-16 | Broadcom Corporation | Video decoding system |
US6963613B2 (en) * | 2002-04-01 | 2005-11-08 | Broadcom Corporation | Method of communicating between modules in a decoding system |
US7765388B2 (en) * | 2003-09-17 | 2010-07-27 | Broadcom Corporation | Interrupt verification support mechanism |
US8705632B2 (en) | 2005-03-30 | 2014-04-22 | Intel Corporation | Decoder architecture systems, apparatus and methods |
-
2005
- 2005-03-30 US US11/093,732 patent/US8705632B2/en active Active
-
2006
- 2006-03-29 TW TW095110904A patent/TWI374669B/zh not_active IP Right Cessation
- 2006-03-30 KR KR1020077024958A patent/KR100985361B1/ko active IP Right Grant
- 2006-03-30 EP EP06749485A patent/EP1864501A1/en not_active Withdrawn
- 2006-03-30 CN CN2006800044766A patent/CN101116342B/zh not_active Expired - Fee Related
- 2006-03-30 JP JP2008504541A patent/JP5053254B2/ja not_active Expired - Fee Related
- 2006-03-30 WO PCT/US2006/012985 patent/WO2006105544A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1351511A2 (en) * | 2002-04-01 | 2003-10-08 | Broadcom Corporation | Method of communicating between modules in a video decoding system |
Also Published As
Publication number | Publication date |
---|---|
TWI374669B (en) | 2012-10-11 |
TW200708108A (en) | 2007-02-16 |
KR100985361B1 (ko) | 2010-10-04 |
EP1864501A1 (en) | 2007-12-12 |
JP2008537392A (ja) | 2008-09-11 |
JP5053254B2 (ja) | 2012-10-17 |
WO2006105544A1 (en) | 2006-10-05 |
KR20080005237A (ko) | 2008-01-10 |
CN101116342A (zh) | 2008-01-30 |
US8705632B2 (en) | 2014-04-22 |
US20060222000A1 (en) | 2006-10-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101116342B (zh) | 用于解码数据的设备、方法和系统 | |
US20070153907A1 (en) | Programmable element and hardware accelerator combination for video processing | |
US7443318B2 (en) | High speed context memory implementation for H.264 | |
TWI575886B (zh) | 熵編碼及解碼方案 | |
CN101031086B (zh) | 视频信息编码方法及设备和视频信息解码方法及设备 | |
US9299166B2 (en) | Image compression method and apparatus for bandwidth saving | |
US20110001643A1 (en) | System and method for providing high throughput entropy coding using syntax element partitioning | |
JPH08116266A (ja) | 符号化方法、符号化装置、符号化器、コーディング装置、復号方法、復号装置、復号器、エントロピー復号器、及び初期化方法 | |
US20120243619A1 (en) | Apparatus processing video stream | |
JPH07222164A (ja) | ディジタルビデオ・ビットストリームコーダ | |
US11431978B2 (en) | Video decoding method and video decoding device for improving decoding efficiency | |
US20140092987A1 (en) | Entropy coding techniques and protocol to support parallel processing with low latency | |
US9706201B2 (en) | Region-based processing of predicted pixels | |
US20220109891A1 (en) | Features of range asymmetric number system encoding and decoding | |
US20120183234A1 (en) | Methods for parallelizing fixed-length bitstream codecs | |
US11683509B1 (en) | Prediction unit skip detection in encoder | |
JP2020072369A (ja) | 復号装置、符号化装置、復号方法、符号化方法、及びプログラム | |
Ahangar et al. | Real time low complexity VLSI decoder for prefix coded images | |
US20060230241A1 (en) | Buffer architecture for data organization | |
WO2023038689A1 (en) | Systems and methods for streaming extensions for video encoding | |
Sun | 11. Design of High-Throughput Entropy Codec |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130102 Termination date: 20200330 |