CN1144434A - 视频解压缩方法和装置 - Google Patents

视频解压缩方法和装置 Download PDF

Info

Publication number
CN1144434A
CN1144434A CN95109662A CN95109662A CN1144434A CN 1144434 A CN1144434 A CN 1144434A CN 95109662 A CN95109662 A CN 95109662A CN 95109662 A CN95109662 A CN 95109662A CN 1144434 A CN1144434 A CN 1144434A
Authority
CN
China
Prior art keywords
time
data
word
unit
circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN95109662A
Other languages
English (en)
Inventor
阿德里安·P·怀斯
凯文·D·迪尤尔
安东尼·M·琼斯
马丁·W·萨瑟安
科林·史密斯
海伦·R·芬奇
安东尼·P·J·克莱登
唐纳德·W·W·帕特森
马克·巴恩斯
安德鲁·P·库利高斯基
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.)
Discovision Associates
Original Assignee
Discovision Associates
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=26305370&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CN1144434(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Priority claimed from GB9415413A external-priority patent/GB9415413D0/en
Application filed by Discovision Associates filed Critical Discovision Associates
Publication of CN1144434A publication Critical patent/CN1144434A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0207Addressing or allocation; Relocation with multidimensional access, e.g. row/column, matrix
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • 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
    • 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/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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4305Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
    • 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/4302Content synchronisation processes, e.g. decoder synchronisation
    • H04N21/4307Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
    • H04N21/43072Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
    • 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, rendering scenes according to MPEG-4 scene graphs
    • H04N21/44004Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/04Addressing variable-length words or parts of words
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods 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/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Abstract

一种MPEG视频解压缩方法和设备,使用多个以双线接口相连、安排为一流水线处理器的级,控制令牌和数据令牌经过单个双线接口传递,以令牌格式携带控制和数据。一令牌解码电路置于某些级中以把某些令牌作为与该级相关的控制令牌识别,并沿流水线传递未被识别的控制令牌。重配置的处理电路置于所选级中,并响应于被识别的控制令牌,以重配置该级来处理一已被识别的DATA令牌。还具有多种独特的支持子系统电路和处理技术。

Description

视频解压缩方法和装置
本申请已在英国申请专利,申请号NO.9415413.5,申请日期为1994年7月29日,要求优先权。
序言
本发明全面地涉及一种用于对众多音频和视频信号解码的新颖改进系统,特别涉及一种用于对众多的MPEG音频和视频信号解码的新颖改进系统。
本发明的串行流水线处理系统由单一的双线总线组成,该总线用于将形式为控制令牌及数据令牌的独特和专门化的交互接口令牌传送到配置成可重新配置的流水线处理器的众多自适应解压缩之类的电路。
现有技术
美国专利5,111,292公开了一种用于例如陆上传输的HDTV信号编码/解码装置,它包含有一个优先级选择处理器,用来分析高优先级传输通道和低优先级传输通道合用的压缩视频码字。对高清晰度视频源信号作出响应的压缩电路产生按等级分层的码字CW(它表示压缩的视频数据),和产生用来定义码字CW所代表的数字类型的伴随码字T。对码字CW和T作出响应的优先级选择处理器计算预定的数据块中的位数,并确定待分配到各相应通道中的每个数据块中的位数。此后处理器把码字CW分析成高、低优先级码字序列,其中高、低优先级码字序列分别对应于重现图象相对重要和相对次要的压缩视频数据。
在美国专利NO.5,216,724中描述了一个先有技术系统。该装置由许多计算模块构成,在一个优先实施例中,总共有四个计算模块并行地联接在一起。每个计算模块有一个处理器、双端口存储器、便笺式(Scratch-pad memory)存储器和一个仲裁装置。第一总线把各计算模块和一个主处理器联接在一起。此装置有一个和主机联接及通过第二总线和各计算模块联接的共享存储器。
美国专利NO.4.785,349公开了一种全活动彩色数字视频信号,该信号经压缩和格式化以便于传输,被记录在光盘介质上并以通常的电视帧速率被解码。在压缩时,对一帧的各区域分别进行分析,以选择对每个区域有特效的最佳填码(fill coding)方法。对区域解码时间进行估算以使压缩阈值为最佳。表示传送区域大小和位置的区域描述码集合在一起,放在数据流的第一数据段中。传送各区域像素幅度指示(amplitude indications)的区域填充码(regionfill codes),按填充码的类型集合在一起,放在数据流的其它各数据段中。数据流各段长度可以各自改变,按照它们各自的统计分布进行编码并进行格式化以形成数据帧。由于加进了辅助数据,每帧的字节数减少了。辅助数据由反向的帧序分析确定,以产生一个平均数,选用这个平均数使光盘放像时暂停最短,因此避开了光盘的不可预知的寻找等待期的特性。解码器中有一个对码流中统计信息作出响应的可变长度解码器,用于对数据流中各数据段进行分别的可变长度的解码。由区域描述数据可导出区域位置数据,它和区域填充码一起送到许多区域特定的解码器,后者可由填充码类型(例如相对码,绝对码,二分码(dyad)和DPCM码)的检测来选择,解码后的区域像素储存在位图中供后继显示。
美国专利NO.4,922,341公开了为数字电视信号减少图象数据的场景模型辅助法(method for scene-model-assisted),靠这种方法在时刻t提供的图像信号有待编码,靠这种方法在t-1时刻早已编码好的场景组成的前帧被送到图像存储器(image store)中作为参考,靠这种方法由一帧到另一帧的信息由放大系数,转移系数(shift factor)和一个自适应获得的四元树分离结构所组成。一旦系统初始初始化,一个均匀的、已规定的灰度级值或表示成确定亮度值的图像中间灰度被写进发送机编码器的图像存储器中和接收机解码器的图像存储器中,所有图像元素都照此方法存储。在编码器中的图像存储器以及在解码器中的图像存储器在运行时反馈回自身,所采用的反馈方式使在编码器和解码器中的图像存储器的内容可以变长的数据块为单位读出,可以用大于或小于1的亮度因子进行变换并可用转移地址写回图像存储器,而不同大小的数据块是按照一已知的四元树数据结构组织起来的。
美国专利NO.5,122,875公开了一种用编码/解码HDTV信号的装置。这种装置包含一个对高清晰度视频源信号作出响应的压缩电路,以产生按等级分层的码字CW(它表示压缩的视频数据)和定义码字CW所代表的数字类型的伴随码字T。对码字CW和T作出响应的优先级选择电路把码字CW分析成高、低优先级码字序列,其中高、低优先级码字序列分别和重现图像相对重要和相对次重要的压缩视频数据相对应。一个对高、低优先级码字序列作出响应的传输处理器分别形成高、低优先级码字的高、低优先级传输数据块。每个传输数据块包含有一个头,一些码字CW和出错检测检验位。各传输数据块送到一个前向出错检验电路以加进进一步的出错检验数据。此后高、低优先级数据送到调制解调器,在那里对各自的传输载波进行正交幅度调制。
美国专利NO.5,146,325公开了一个对压缩图像数据解压缩的视频解压缩系统,在那里视频信号的奇场和偶场被独立地压缩成基帧和内帧(interframe)的压缩模式序列,然后交织在一起进行传输。奇场和偶场独立地进行解压缩。在有些时间段,当有效的解压缩奇/偶场数据不能得到时,用偶/奇场数据替代不能得到的奇/偶场数据。对奇、偶场数据独立地解压缩以及所采用的数据代替方法,在启动系统时和改变信道时可以有减少显像等待时间的优点。
美国专利NO.5,168,356公开了一个视频信号编码系统,该系统中的装置把编码视频数据分成用于信号传输的传输数据块。由于传输数据块格式提供特殊的数据头格式,增强了在接收机处恢复信号的能力,这是因为在出现发送数据丢失或出错时,接收机能由该数据头确定重新进入数据流的点。在各传输数据块的编码视频数据中提供嵌入的第二级传输头,可能的重入点就可增至最多。
美国专利NO.5,168,375公开了一种方法,它对一场图像数据样本进行处理,得到一种或多种下述功能:抽取(decimation),内插和轮廓增强。这是靠矩阵变换处理器来实现的,处理器可以是JPEG压缩系统中使用的那种。在进行抽取和内插处理时,数据样本块都进行离散偶余弦变换(DECT),变换后再改变谱线的数目。在抽取时谱线的数目减小了,接着进行反变换以产生一个尺寸减小了的能代表原始数据块的样本点的矩阵。在内插时额外的零值谱线被插入频率分量矩阵,此后反变换产生一个增大的数据采样集而不增加频谱宽度。在轮廓增强时,由卷积或滤波操作来实现,这种操作涉及数据变换和滤波核(fiter kernel)在频域相乘,那里还提供反变换,结果得到一组经过处理的数据样本块。数据块被重叠,然后保留指定的样本,和从重叠区清除多余的样本。对于线性相位滤波器,用减少分量数目的方法改变核的空间表示,并用零填补使等于数据块样本的数目,接着对填补后的核矩阵进行离散奇余弦变换。
美国专利NO.5,175,617公开了一种通过电话线有限带宽的模拟信道来发送记录(logmap)视频图像的系统和方法。在记录图像中的像素组织被设计成和人眼敏感轮廓(sensor geometry)相匹配,像素在图像中心较密集。发送机把频带分成许多信道,给每个信道分配一个或二个像素,例如把3KHz音频质量的电话线分成相隔约3.9Hz的768个信道。每个信道由二个正交载波组成,因此每个信道能传送二个像素。有些信道留给特殊的校准信号(calibration sign-als),它使接收机能检测接收信号的相位和幅度。如果传感器及像素和一排振荡器直接联在一起,接收机能连续地接收每一个信道,这时接收机不必和发送机同步。在连续(模拟信号)传送中,接收机和第一帧同步,然后每隔一个帧周期得到以后各帧,FFT算法对连续情形实施快速离散近似。和取样周期相比,帧周期是相对低的,因此接收机一旦检测到第一帧就不大会失去帧同步。一种实验性的可视电话曾经每秒传送4帧,对1440个像素的记录图像加以正交编码,得到的有效数据传送率超过了40000位/秒。
美国专利NO.5,185,819公开了一种具有奇场和偶场视频信号的视频压缩系统,它们依次地按基帧和内帧压缩模式独立地进行压缩。独立压缩数据的奇场和偶场为了进行传输被交织在一起,使基帧偶场压缩数据处于接连两基帧奇场压缩数据中间。这个交织序列能够在不增加传输数据总数的情况下给接收机提供二倍数目的解码信号进入点。
美国专利NO.5,212,742公开了一种实时压缩/解压缩视频信号数据的装置和处理方法。这种装置有许多计算模块,在一个优先实施例中总共有四个并行地联接在一起的计算模块。每个计算模块有一个处理器,双端口存储器,便笺式(scratch-pad memory)存储器和一个仲裁装置。第一总线把计算模块和主机联接在一起。最后,此装置有一个共享存储器,它和主处理器相联,它也用第二总线和各计算机模块相联。此方法能把图像的各部分分配给各处理器去运行。
美国专利NO.5,231,484公开了一种系统和方法,它能实现适合使用推荐的ISO/IEC MPEG标准的编码器。里边有三个互相配合的部件或子系统,它们对输入的数字活动图像序列进行各种各样的自适应预处理,依次给各图像配置位数,并且按图像顺序在图像的不同区域自适应地量化变换系数,从而在给定图像的位数下产生最佳视觉质量。
美国专利NO.5,267,334公开了一种计算机系统中对一串活动图像去除帧冗余度的方法。此方法检测一串活动图像的第一次场景变化并产生第一关键帧(keyframe),它包含第一图像的完整场景信息。在优先实施例中这第一关键帧被称为“前向”(forward-facing)关键帧或基帧(intraframe),它通常代表CCITT压缩视频数据。下面的过程包括产生至少一幅中间压缩帧,这至少一幅的中间压缩帧包含两幅图像的差别信息,其中一幅是活动图像序列在时间上的第一幅,另一幅是至少一幅图像中的第一幅。这至少一帧被称为内帧(interframe)。过程的最后是检测活动图像序列中的第二场景变化并产生第二关键帧。它被称为“后向”(backward-facing)的关键帧,它包含紧接在第二次场景变化前显示的最后一幅图像的完整的场景信息。第一关键帧和至少一幅中间压缩帧联在一起作为正向显示用,第二关键帧和各中间压缩帧按反过来的次序联在一起作为反向显示用。正向显示图像时,基帧也可以用来产生完整的场景信息。当反向显示该序列时,后向关键帧用来产生完整的场景信息。
美国专利NO.5,276,513公开了一种由给定数目的先有技术图像金字塔级(image-pyramid stages)组成的第一电路装置和由同样给定数目的新颖的活动矢量(motion-vector)级组成的第二电路装置,以最小的系统处理延迟和/或占用最小系统处理延迟和/或占用最小硬件结构的特点来实现成本合算的分等级的实时运动分析。具体说,第一和第二电路装置对由相对高的帧速(例如每秒30帧)的相继给定像素密度的一系列不断输入的图像数据帧组成的、相对高分辨率的图像数据作出响应后,经过一些处理系统的延迟,产生相同给定帧速的一系列不断输出的相继给定像数密度的矢量数据帧。每个矢量数据帧表示出在相邻一对图像帧之间发生图像移动的特征。
美国专利NO.5,283,646公开了一种能每帧精确地发出希望位数的实时视频编码系统的方法和装置,它只对图像编码一次,它能更新用于对系数量化的量化步长,这些系数描述,例如,通过通信信道发送的一个图像。数据分割成若干区段,每个区段包括许多数据块。数据块用象DCT这样的方法进行编码,以对每个数据块产生一系列系数。系数可以被量化,描写数据所需的位数会变化很大,这取决于量化步长。对于和特定数据群相关的选定数目的区段,在发送完每个数据区段的时候,累积用去的实际位数和累积用去的希望位数进行比较。然后系统重新调整量化步长,使得象描写一幅图像所需用的许多区段达到最终希望的位数。用于更新量化步长和确定希望的位配置的各种方法也被说明。
美国专利NO.5,287,420公开了适用于个人计算机应用的图像压缩的方法和装置,它分两步压缩和储存数据。一幅图像被实时捕获,用一种有效的方法对它压缩,然后将它储存到硬盘中。隔些时候采用能得到更高的压缩比而计算量更大的算法对数据进行非实时的进一步的压缩。二步法可以得到高度先进的压缩算法带来的减少存储容量的好处而不要求计算资源实时实现这种算法。本专利还描述了适用于在个人计算机主处理器上执行第一步压缩的压缩算法。第一压缩阶段接收从视频数字化器中来的4:2:2YCrCb数据。对两个色度分量进行平均,一个伪随机数被加到所有各分量中。最后得到的数值被量化并被放入到一个代表2×2像素矩阵的单个32位字中。伪随机数的种子被记住,使得在实施第二压缩阶段前可以清除掉伪随机噪声。
美国专利NO.5,289,577公开了一种连续处理的流水线的方法和装置。该连续处理流水线有一个第一处理级,它通过多缓存器和CODEC联接,包括一个图像数据输入缓存器,一个图像数据输出缓存器和一个地址缓存器。地址缓存器存地址,其中每个地址标记图像存储器中一个地址块的初始地址。图像存储器中每个地址块存储了一个压缩的图像数据块。一个局部控制器负责把一个地址写入地址缓存器去初始化CODEC以执行一个离散余弦变换和一个离散余弦变换量化处理。
Chong,Yong M.的文章,数字图像处理用的数据流结构AData-Flow Architecture for Digital Image Processing WesconTechnical Papers:NO.2 Oct/NoV.1984,公开了一个特地为图像处理设计的实时信号处理系统。更详细说,它公开了一种以令牌为基础的数据流结构,在那里各令牌是固定的一个字节宽,有固定宽度的地址字段。系统含有多个连成环形的完全相同的流处理器。令牌含有一个数据字段,一个控制字段和一个标签。令牌标签字段进一步细分为一个处理器地址字段和一个标识符字段。处理器地址字段用来把令牌引导到正确的数据流处理器,标识符字段用来标明数据使数据流处理器知道用数据做什么事。因此,标识符字段相当于数据流处理器的指令。利用模块(MN),系统把每个令牌引导到特定的数据流处理器。如果这个模块(MN)号和特定级的模块(MN)号相符,就对数据实施适当的操作。如果令牌未被识别,就把它送到输出数据总线上。
Kimori,S.等的文章,“采用自定时电路的灵活的流水线机构”(An Elastic Pipeline Mechanism by Self-Timed Circuits,IEEE J.of Solid-State Circuits,Vol.23,NO.1 February 1988,)公开了一种具有自定时电路的灵活的流水线。异步流水线由许多流水线级组成。每一流水线级由许多后接组合逻辑电路的输入数据锁存器所组成。组合逻辑电路实现流水线级特有的逻辑运算。各数据寄存器同时接受与该级有关的数字转移控制电路所产生的触发信号。数据转移控制电路互相连接形成一个链,通过该链,各发送和应答信号线管理相邻流水线级之间数据转移的握手方式。此外,每一级中通常还有一个解码器,以选择在这一级中对运算对象要做什么运算。为了对复杂的解码过程进行预解码以及减轻逻辑电路中的临界路径问题,把解码器放在前一级中也是可能的。流水线的灵活性消除了任何集中控制,因为子模块之间的所有相互间配合完全可局部判决,此外,每个子模块能自主地同时实现数据缓存和自定时的数据转移控制。最后,为了增加流水线的灵活性,在占有级之间插入空级以保证级间可靠的数据转移。
因此,熟悉本行的人已认识到早就需要有一个新的和改进的视频压缩系统,它能避免已有技术系统的缺点。本发明明显地满足这个要求。
发明的简要说明
简单地说,这个发明提出了一种新的,改进的方法和装置,特别适用于一个具有很多控制和数据令牌的双线流水线系统,这个系统主要包括一个起始码检测器,一个具有Huffman解码器和微可编程状态机(MSM)的视频处理部件,一个离散余弦逆变换(IDCT),一个具有关联地址发生单元的同步DRAM控制器和包括过采样及视频定时发生器在内的合适的预测电路和显示电路。
更重要的是,这个发明中的很多实施例都包括了MPEG视频解压缩方法和装置,该装置是使用多个二线接口实现多级互联的流水式处理机。控制令牌和数据令牌通过双线接口来传送令牌格式的控制命令和数据。一个令牌解码电路设在一些流水级之中,以使该流水级具有能将本身不可识别的控制令牌,并从流水线上传递下去的能力。重构处理电路被有选择地放在一些级中,来识别那些控制令牌,对这一级进行重构以便于处理一个被识别出的数据令牌。有很多特有的支持子系统电路和处理技术被公开实现这一系统,包括存贮器寻址,利用共用的处理块对数据进行变换,时间同步,异步交替缓存,视频信息的存贮,并行Huffman解码器等等。
通过例子,但并不一定有局限性,本发明在它的众多特点之中还包括一个用于同步时间的器件,这个器件具有一个用来确定出现时间的时间标记。一个用来初始化第一电路中系统时间的参考时钟。一个第一时间计数器,以用来同参考时钟进行通讯以保持第一电路中的系统时间,还有一个由第二电路中的参考时钟初始化的第二时间计数器(Second time counter),与第一时间计数器同步,第二时间计数器用来保持一份系统时间的拷贝并通过比较时记与第二时间计数器来确定系统时间局部拷贝(Local copy)和系统时间之间存在的计时误差,这个发明还包括一个装置来同步系统解码器和一个视频解码器,这个装置用一个时间标记来确定显示时间,用一个参考时钟来初始化系统解码器中的系统时间,用第一时间计数器与参考时钟进行通讯以保持系统解码器中的系统时间,用一个第二时间计数器来保存系统时间的局部拷贝,并通过比较时间标记与第二时间计数器来确定系统时间局部拷贝和系统时间之间的显示计时误差。这个第二时间计数器由与第一时间计数器同步的视频解码器的参考时钟来初始化。
这个发明的另一实施例还包括一个用来同步第一电路和第二电路的装置,这个装置用于一个参考时钟来初始化第一电路中的系统时间。第一电路中有一个时间计数器与参考时钟进行通讯以保持系统时间,第一电路中还有一个第一基本流时间计数器(elementarystreom time counter)来提供基本流时间,第一电路可以接收一个时间标记,然后将时间标记加到基本流时间上,再减去系统时间,以产生一个同步时间,第二电路接收从第一电路来的同步时间,并且有一个与第一基本流时间计数器同步的第二基本流时间计数器,来提供基本流时间的局部拷贝,并通过比较同步时间与基本流时间的局部拷贝来确定系统时间和时间标记间的计时误差。通过这种方式,不必为了确定计时误差而将参考时钟信号直接传送到第二电路。
在这个发明的另一实施例中,一个用来同步第一电路和第二电路的装置有一个参考时钟用以初始化第一电路中的系统时间。第一电路有一个时间计数器同参考时钟进行通讯,以保持系统时间,第一视频时间计数器来提供视频解码时间,第一电路可以接收一个视频时间标记,并减去系统时间,第二电路可以接收从第一电路来的同步时间,并且有一个第二视频时间计数器与第一视频时间计数器同步。用来提供视频解码时间的局部拷贝,而且,通过比较同步时间和视频解码时间的局部拷贝,可以确定系统时间和视频时记间的计时误差,因此,不必为了确定计时误差而将参考时钟信号直接传送到第二电路。
这个发明还包括一种提供定时信息的方法,它提供一种视频数据流,在这个视频数据流的头中包含有一个时间标记,在这里,时间标记指的是每个数据包中的第一帧图像,下一步中,一个寄存器中的一个标志位被用来指示从包头中取出并放在寄存器中的有效时间标记信息。接着,时间标记被从视频数据流中移走,并放在寄存器当中,下一步,这种方法遇到一图象的开始,并且紧接着检查寄存器的状态,即检查寄存器的标志状态,来确定寄存器中是否保存着有效的时间标记信息,如果寄存器中保存的是有效的时间标记信息,就产生一个时间标记信息,作为一图像开始的响应。然后,将这个时间标记信息放回到数据流中。
在这个发明的另一实施例中,有一个上述装置,在这个装置中,基本流时间计数器被限制在16位。与之类似,还有上述的装置,第二基本流时间计数器置于基本流解码器被限制在16位,而且还有一种上述装置,在那里同步时间被限制在16位以用来控制基本流解码器。
本发明还有一种用以进行视频解码并确定显示时间错误是否超过了某个阈值的处理,它将视频数据分析处理成令牌形式以备将来进一步处理。确定时间标记令牌是否被指出,比较时间标记令牌和视频时间,并产生比较后的结果来确定计时误差指示,然后,与阈值相比较,确定比较的结果是否可以接受,并指出什么时候比较的结果超出了可接受的范围。
这个发明的另一实施例还包括了一个使用系统解码器和视频解码器的装置,系统解码器适于接收MPEG系统流并且从流中多路分配视频数据和视频时间标记。系统解码器有一个第一时间计数器来代表系统时间。视频解码器接收视频数据和视频时间标记,并且有一个第二时间计数器与第一时间计数器同步,视频解码器还有一个解码缓冲区用来按照基本的固定速度接收视频数据,并按照不同速度输出视频数据及传递视频时间标记。视频解码器在解码视频为图象时,也将这图象数据的视频时间标记与第二时间计数器相比较,以确定适当的显示时间。还有一种方法可以用来确定第一电路与第二电路之间的定时误差。给第一电路一个系统时间(SY),一个时间标记(TS),一个基本流时间(ET),以公式X=ET+TS-SY用基本流时间(ET),时间标记(TS)及系统时间(SY),获得同步时间(X),将同步时间(X)送到第二电路,并产生一个同步基本流时间(ET2),然后根据公式(ET2-x用同步时间(x)获得定时误差,因此可以将第一电路和第二电路在时间上同步而不必将第一电路的系统时间传到第二电路。
也可以用另外方法,如下述步骤获得第一电路与第二电路之间的定时误差;给第一电路一个时间标记(TS)和一个初始时间(IT),通过所用时间标记(TS)和初始时间(IT)由公式X=TS-1得到同步时间(X),将同步时间(X)送到第二电路,产生同步基本流时间(ET),并根据公式ET-X用同步时间(x)得到定时误差,在这种方法中,不必将系统时间从第一电路送到第二电路,即可获得第一电路与第二电路的同步。
还有别的方法来获得第一电路和第二电路的定时误差,步骤如下:给第一电路一个系统时间标记(SY),一个视频时间标记(VTS)及一个视频解码时间(VT)。通过视频解码时间(VT),视频时间标记(VTS)及系统时间(SY)得到同步时间(X)X=VT+VTS-SY将同步时间(x)送到第二电路,并产生一个与第一电路中视频解码时间(VT)同步的第二电路中的视频解码时间(VT2),利用同步时间(x)按照公式VT2-x得到定时误差,这样,也可以将第一电路与第二电路同步而不用将系统时间送到第二电路。
根据本发明,并行Huffman解码器块可以对按照MPEG Huffman方式编码的变长度码(VLCS)和固定长度码(FLCS)进行解码,并可以在分析微可编程状态机(MSM)的控制下,通过令牌,还可以保持较高的吞吐量。
在本发明的一个实施例中,采用了一种码查找技术。来解Huffman码以达到性能要求。并处理不规则或不标准的第二MPEG-2变换系数表,这个发明的实践还简化了在一个周期内不用外部控制器对流中的一些更复杂的成分的解码,这些复杂的成分例如换码系数(Escape-coded coefficients),内部DC值和运动矢量增量都作为复合的VLC/FLC成分出现在流中。
为了解码VLC,输入首先被放到两个分别处理最高位和最低位数据的输入数据寄存器中。一个选择器被用来把下一个VLC的开头和ROM输入定位,因此对于第一个VLC,选择器将其59位的输入中的最高的28位输出,其中的最高的16位被送到一个Huffman码ROM。对于后面的VLC,选择器有效地根据当前已解码的总位数对输入进行移位。这个总数可以通过将每个已被解码的VLC的大小加到一起而得到,各种不同的字宽度是可解码的最大编码大小和最大VLC的大小决定的,可解码的最大编码大小是28位MPEG-1换码系数。最大VLC的大小是16位(DCT系数表)。
“表选择”输入被用来选择由MPEG要求的各种不同的Huffman码表。
ROM有被选择器/移位器控制的地址,ROM先进行一个VLC表索引计算,然后再进行一个索引到数据操作,得到解码后的数据。
索引计算是一个内容可寻址存储器(CAM)操作,通过无关项(don′t care)有效的匹配实现从Huffman码到获得的码的操作,由于索引的产生是按一种查找方式进行的(而不是算法进行的),所以当处理规范的表时没有限制。
本发明中的ROM地址分为两个段。较大的段是将要被解码的位模式,较小的字段选择要检查的Huffman码表,除了完整的MPEG码表以外,ROM还有一些用于识别非法VLC模式的入口。这些非法VLC模式存在于一些码表中。
在本发明的另一个实施例中,采用了一个过程来提供固定宽度的字。具有的固定数目的位用来寻址变宽度数据。还有一个宽度定义段和地址段,还采用了一种过程使用固定长度的字来寻址存储器,这个过程具有固定数目的位用于寻址数据,并且有一个替换段和一个地址段,还有一个装置用于存储器寻址,包括一个状态机和一个运算核。
用于存储器寻址的过程有如下特点:它可以提供一个固定宽度字,有预先确定寻址变宽度数据的固定位数,用一个宽度定义段和一个地址段定义固定宽度字,提供了至少一位的宽度定义段来作为终止标志,用定义数据地址的多个位来定义了地址段,按照与变宽度数据大小相反的关系变化地址段位数的大小,接照与变宽度数据大小直接的关系变化宽度定义段的位数的大小,在变化宽度定义段和地址段宽度的同时,保持固定宽度的字以寻址变宽度数据。
用于存储器寻址的过程还包括用定义数据地址的多个位来定义地址段,用至少一个替换位定义变宽度的替换段。替换段中至少有一位用于地址段和替换段间的终止位,用替换段来指示来自另一个地址源的替换过的位,在按照相反关系变化地址字段的宽度和替换字段的宽度的同时,保持固定宽度的字来寻址变宽度数据。
根据本发明,一个用于寻址存储器中变宽度数据的方法其特点在于,它提供了一个存储器,这个存储器有预先确定宽度的字,并且由部分字组成,它还可以循环位移(rotate)部分字使其可以按最低位对齐方式被存取,扩展字的剩余部分以使得被存取的字可以被识别成部分字,恢复字的剩余部分并且可以循环位移(rotate)这个字直到部分字被恢复到它的原始位置。
这个发明还包括寻址存储器的方法和装置,其中,字是按定宽提供的,它有固定数目的位用于寻址变宽数据,而且有宽度定义段和地址段。另外还有一种用固定宽字寻址存储器的过程。这个过程有固定数目的位用于寻址数据,还有一个替换字段和一个地址段可以使用。
本发明还包括一种方法可以从RAM中存取M个字,M比预先确定的RAM的固定突发长度要小,RAM有一根使能线,可以有选择地使能或禁止对RAM的读写操作,这个方法由以下步骤组成:
命令N个字向RAM中写或从RAM中读;
确定何时从RAM中读完或写完M个字,M比N小;
当已经从RAM中读完或写完M个字后,禁止RAM。
本发明还包括一种存取动态随机存储存储器(DRAM)的方法,用来存储或获取与二维图像相关的数据字。这个DRAM包括两个分离的存储体,每个存储体可用以一页方式来读写数据字,二维图像被组织成二维的栅格形式的单元,每个单元包括M×N的象素点阵列,与每个单元相关的字占据一页或者不到一存储体,这个方法包括以下步骤:
(a)、为每个单元分配两个存储体中的一个,以使得所有与那个特定单元有关的字都可以从特定存储体中的特定页中读出或写入。为每个单元分配的存储体应使得任何同一行或同一列中两个相临的单元均分配到不同的存储体中。
(b)、读入与一个单元有关的数据字。这个单元由一个象素点阵组成,并且没有和二维栅格模式对齐,但是它和二维栅格模式下的单元中的象素点对齐。
(c)、标识出二维栅格模式中哪些单元包含有与没对齐的单元有关的数据字;
(d)、从DRAM的第一个存储体中,读出那些与已被识别出的,处于栅格模式中的,包含有与没对齐的单元有关的数据字的单元之一的数据字。
(e)、从DRAM的第二个存储中体,读出那些与另一个已被识别出的、处于栅格模式中的、包含有与没对齐的单元有关的数据字的另一单元的数据字。
(f)、重复步骤(d)和(e),直到所有与没对齐的单元有关的数据都被读出。
本发明还提供了一种RAM接口用以将一总线连接到RAM上。在这个RAM接口中,有一个单独的地址生成器来生成RAM接口所需寻址的存储器地址。地址生成器与RAM接口通过一双线接口进行通讯。
本发明还包括一种方法来控制存放按帧编码后的视频数据的缓冲区。这种方法确定每一个到来的解码后的帧序号,确定任何时间的期望的呈现序号,并在帧序号与呈现序号相同或帧序号在呈现序号之后时,将所有的缓冲区标记为待命状态。
因此,本发明的各种新的特点使得很多被认为是提高性能所必需的,考虑到如何设计、开发并利用系统来解码视频数据的问题得到了解决。这个发明的其它目的和优点将随着后面详细的描述和附图而变得显然了。
附图的简要说明
图1通过本发明的优选实施例来说明数据流。
图2显示了在64×32RAM中用来寻址8位数据的13位字的例子。
图3是本发明中寄存器组的功能块图。
图4说明图3中所示的寄存器文件的数据流。
图5是一方块图,该图根据本发明说明寄存器文件地址的解码。
图6是根据本发明的可编微码状态机的方块图。
图7显示了按照本发明的固定宽度字,它用作寻址,具有地址字段,替换字段和替换标头。
图8是按照本发明的运算核的一个例子的方块图。
图9说明一种方法的基本步骤,这个方法是根据本发明在输入数据上实现离散余弦逆变换IDCT。
图10是一方块图,它根据本发明说明了组合的,简化的二级结构的IDCT系统。
图11是一个集成电路的简要方块图,该图包含了图10中IDCT的主要系统部件。
图12a和图12b合起来是对应于主系统部件之一的预处理电路的方块图,为便于解释,这些图被统称作图12。
图13a、13b及13c描述了时序图,这些图说明了优选实施例的IDCT系统中时序和控制信号之间关系。
图14a和14b合起来是IDCT系统中通用处理电路的方块图,为了便于解释,这些图统称作图14。
图15a、15b、15c和15d合在一起是后处理电路的方块图,这电路相当于系统的另外的主要部件,这些图集体称作图15;
图16是方块图,它根据本发明说明了具有双数据流,变换RAM和改进缓冲器的IDCT;
图17是一方块图,它更详细的显示了图16中一维IDCT系统;
图18是一方块图,它更详细的显示了如图17所示的变换系统;
图19是一方块图,它更详细的显示了图18所示的输入缓冲器;
图20显示了根据本发明的预处理电路“PREC”的简要方块图;
图21是一方块图,它说明了在IDCT中的公共处理电路“CBLK”;
图22是后处理电路“PosTC”的方块图;
图23是图22所示的后处理电路的另一说明;
图24是一方块图,它根据本发明描述了舍入及饱和块;
图25是本发明中输出缓冲器的方块图;
图26是本发明中控制移位寄存器的方块图;
图27是本发明中控制移位寄存器解码的方块图;
图28描述了一个控制移位寄存器及一个输入控制缓冲器;
图29说明了T2数据流的控制电路;
图30显示了T1数据流的计数器中的数据;
图31描述了本发明中所用T2数据流的计数器中的数据;
图32显示了IDCT初始化及有关电路的时序图;
图33显示了T1和T2数据交错的时序图;
图34说明了T2数据的延迟和恢复的时序图;
图35是一时序图,它描述了本发明中IDCT的清除操作及有关电路的时序;
图36说明了根据本发明的启动系统;
图37描述了在T1和T2数据交错早期的延迟和恢复;
图38显示了图16到图37所示IDCT系统的另一优选实施例;
图39显示了按本发明被多路分配的MPEG信息流,这些信息流分配到包含数据和时间标记信息的基本流中;
图40描述了根据本发明的基本流时间标记错误判断及时间同步系统的第一实施例;
图41说明了按照本发明的基本流时间标记错误判断及时间同步系统的第二实施例;
图42显示了按照本发明的基本流时间标记错误判断及时间同步系统的第三实施例;
图43描述了按本发明的视频时间标记错误判断及时间同步系统的第1实施例;
图44说明了按本发明的视频时间标记错误判断和时间同步系统的第2实施例;
图45显示了如图44所示的在30Hz工作的视频时间标记错误判断和时间同步系统的第二实施例;
图46显示了本发明的系统的时间标记信息流;
图47是一方块图,它说明了用可编程微状态机处理的同步时间信息;
图48是一方块图,它说明了本发明的第一优选实施例;
图49是另一个说明本发明的第一优先实施例的方块图;
图50描述了本发明的第二个优先实施例;
图51显示按本发明被第二优先实施例用的寻址的详细方法;
图52是一方块图,它显示了按本发明来解码Huffman VLCS的装置;
图53是一简图,它显示了本发明的并行Huffman解码器的总体结构;
图54是说明用于解并行huffman码的ROM的原理图;
图55说明用于解并行huffman码的ROM的第一实施例;
图56说明用于解并行huffman码的ROM的第二实施例;
图57描述用于解并行huffman码的ROM的第三实施例;
图58是说明本发明一种实施例的基本系统部件的方框图;
图59是描述本发明的起始码检测器的方框图;
图60是说明本发明的分析器(parser)的方框图;
图61是说明本发明的空间处理电路系统基本部件的方框图;
图62是说明本发明显示电路系统的方框图;
图63说明本发明时间标记(timestamp)管理的一个实施例;
图64表示本发明时间标记管理的另一实施例;
图65是描述本发明的系统硬件部件方框图;
图66是提供本发明微控制器系统组成部分概貌的方框图;
图67是说明本发明算术核心(Arithmetic core)的简图;
图68说明本发明的ALU;
图69根据本发明描述寄存器文件;
图70说明对本发明各独立总线寄存器的写入;
图71表示在vector[1]=0及vector[0]=0情况下以帧为基础的预测;
图72描述在vector[1]=0及vector[0]=1情况下以帧为基础的预测;
图73表示在vector[1]=1及vector[0]=0情况下以帧为基础的预测;
图74说明在vector[1]=1及vector[0]=1情况下以帧为基础的预测;
图75描述在motion-vertical-field-select=0及vector[0]=0情况下以场为基础的预测;
图76说明在motion-vertical-field-select=0及vector[1]=1情况下以场为基础的预测;
图77类似地说明在motion-vertical-field-select=1及vector[0]=0情况下以场为基础的预测;
图78表示在motion-vertical-field-select=1及vector[0]=1情况下以场为基础的预测;
图79表示在帧图中motion-vertical-field-select=0及vector[0]=0情况下以场为基础的预测;
图80说明在motion-vertical-field-select=0及vector[0]=1情况下图79的预测;
图81表示在motion-vertical-field-select=1及vector[0]=0情况下图79的预测方式;
图82表示在motion-vertical-field-select及vector[0]都等于1情况下的图79的预测方式;
图83表示预测滤波的另一种方式;
图84说明又一种预测方式;
图85说明根据本发明的再一种预测方式;
图86表示本发明的另一种预测方式;
图87是说明本发明显示系统各个系统部件组织情况的方框图;
图88描述4∶3滤波操作;
图89描述3∶2滤波操作;
图90说明本发明的2∶1的滤波操作;
图91表示本发明使用的三抽头滤波器;
图92说明错误象素的重复;
图93描述本发明的field-id信号;
图94根据本发明表示各水平定时时刻(周期);
图95根据本发明说明每场625线的PAL垂直定时关系;
图96根据本发明说明每场525线的NTSC垂直定时关系;
图97根据本发明表示一种水平计数装置;
图98说明本发明的边界产生;
图99根据本发明描述图象剪切(cropping);
图100是作为芯片来说明本发明的方框图;
图101说明本发明对系统时钟(sysclock)的要求;
图102根据本发明描述在编码数据接口的双线协议;
图103表示本发明的DATA令牌;
图104表示本发明的FLUSH令牌;
图105说明编码数据接口的定时关系;
图106根据本发明描述非均恒脉冲序列CDCLOCK的使用;
图107表示在本发明16位方式下的输出定时关系;
图108说明在本发明8位方式下的输出定时关系;
图109表示本发明视频输出接口的定时关系;
图110描述本发明中的各个视频输出方式信号;
图111表示本发明中的水平定时关系;
图112表示用于525行系统的垂直定时关系;
图113描述用于625行系统的垂直定时关系;
图114根据本发明表示用于525行系统的同步和消隐信号;
图115根据本发明表示用于625行系统的同步和消隐信号;
图116表示在本发明中的零个SDRAM连接的配置;
图117表示在本发明中的一个SDRAM连接的配置;
图118根据本发明描述两个SDRAM连接的配置;
图119说明三个SDRAM连接的配置;
图120根据本发明是描述flag-picture-end操作的流程图;
图121根据本发明是表示start-code-search操作的流程图;
图122根据本发明表示时间标记的修改(modification);
图123说明微处理器接口的读定时关系;
图124表示微处理器接口的写定时关系。
在本发明实施的随后描述中,经常用到以下词汇,用下面的词汇表对它们作概括性定义
词汇表块:一个8行乘8列的象素矩阵,或64个DCT系数(源,已量化的或去量化的)。色度(分量):一个矩阵,块或单个象素,它表示两个色差信号之一。色差信号按照位流中所定义的方式与各个基色有关。用于表示色差信号的符号为Cr和Cb。编号表示:一个以其编码形式表示的数据元素。编码视频位流:如在本说明中定义的一幅或多幅图象系列的编码表不。编码次序:一些图象传送和解码的次序。这个次序不一定和显示次序一样。分量:来自组成一幅图象的三个矩阵(亮度和两个色度)之一的矩阵、块或单个象素。压缩:用于表示一个数据项的位数的减少。解码器:一个解码过程的具体实施。解码(过程):在本技术说明中作出说明的过程,它读输入编码位流并产生解码的图象或声音样本。显示次序:已解码的图象显示的次序。典型情况下这个次序与图象出现在编码器输入的次序相同。编码(过程):在本说明中未予说明的一个过程,它读一些输入图象或声音样本的流并产生如本说明所作出说明的一个有效的编码位流。基编码:对一个宏块或图象的编码,它只利用从该宏块或图象得到的信息。亮度(分量):表示信号单色出现的一个矩阵、块或单个象素,它按照在位流中定义的方式和各个基色有关。用以表示亮度的符号为Y。宏块:四个8×8亮度数据块和两个(对于4∶2∶0彩色信号格式)四个(对于4∶2∶2彩色信号格式)或八个(对于4∶4∶4彩色信号格式)相应8×8色度数据块,这些色度数据来自图象亮度分量的一个16×16区(section)。宏块被用来有时指象素数据,有时指象素值的编码表示和本说明这一部分中定义的语法的宏块头中定义的其他数据元素。对于具有本行一般技能的人,根据上下文其用法是清楚的。活动补偿:用活动矢量改进象素值的预测效率。预测用活动矢量提供进入过去的和/或未来的参考图象的位移量。这些位移量包含以前已解码的象素值,它们用来形成预测误差信号。活动矢量:一个两维矢量用于活动补偿,它提供当前图象中的座标位置到一幅参考图象中的座标的位移量。非基编码:对一个宏块或图象进行编码,它既利用它本身的信息也利用发生在别的时间的宏块和图象的信息。PEL:图象元素图象:源的、编码的或重建的图象数据。一幅源的或重建的图象包含三个8位数的矩形矩阵表示亮度和两个色度信号。对于逐行显示,一幅图象等同一帧,而对于隔行显视,一幅图象可以指一帧或该帧的上场或下场,根据上下文来决定。预测:用一个预测器提供当前正被解码的象素值或数据元素的估值。可重配置的处理级(RPS):响应一个已被识别的令牌,重配置它自已来完成各种操作的级。片:一系列宏块。令牌:一个交互连接信使包形式的通用适配单元,用于控制和/或数据操作。起始码[系统和视频]:夹在编码位流中的32位码,它们是独特的。它们用于几个目的,包括识别编码语法中的某些结构。可变长编码:VLC:编码用的一个可逆过程,它为常发生事件指定较短的码字,为不常发生的事件指定较长的码字。视频序列:一幅或多幅图象的一个序列。
详细说明下面的“发明详细说明”包括以下部分:
1)发明中存储器寻址的详细说明
固定宽度字中的变长度字段
用有变长度字段的固定宽度字实现地地替换
固定宽度字用于变宽度数据寻址
微可编码的状态机结构
运算核
2)发明中用共用处理块转换数据的详细说明
发明的理论背景
3)发明中时间同步的详细说明
4)发明中异步交替缓存的详细说明
5)发明中存储视频信息的详细说明
6)发明中并行Huffman解码器的详细说明
Huffman码ROM
最大吞吐量
FLC和令牌
补充
7)其它详细说明
发明的详细说明
作为说明此发明最一般性特点装置的介绍,优化装置200显示了数据流通过情况。详见附图中图1。此发明的实施例是用有多种控制和数据令牌的双线流水线系统来优先实现的。系统的主要部件包括起始码检测器201,视频Parser 202及与其结合的Huffman解码器203和微可编程状态机(MSM)204,离散余弦逆变换(IDCT)205,及具有关联地址发生单元的同步DRAM控制器206,包含过采样210、211和视频定时发生器212在内的适当预测电路208和显示电路209。
此项申请与英国专利申请号9405914.4公布的主题内容有关,后者题目为“视频解压缩”,由Discovision协会于1994年3月24日申请,并被本申请做为明确的参考。
根据上文,下面将更详细地提出本发明的具体方面、特点和子系统区域。在附图中,相同的参考数代表不同图中相同或相应的部分。发明中存储器寻址的详细说明
根据此项发明,这里要描述一种存储器寻址的方法和装置。特别地,这项发明提供用固定宽度字对变宽位域进行延迟的方法。更进一步,它还提出一种用固定宽度字进行变宽度数据寻址的方法。在实施例的不同形式中,变位域在用固定宽度字为变宽度数据寻址时被用于标明被换入字的位或标明字中未用到的部分。而且本发明的系统还包括一个有运算核的微可编码状态机。
微可编码状态机指定用于解决有多种和/或复杂运算需要的设计问题。这种设计的实例包括地址生成,流分析和解码,滤波孔系数(filter tap coefficent)计算。在这方面,寻址必须解决两种不同特性:(1)变长度地址以访问字的各种宽度区段,(2)地址替换。在此项发明中,一个64×32位配置的RAM能用64×32位,126×16位,256×8位,512×4位,1024×2位,或2048×1位格式的部分字寻址。定宽度字内的变长度字段
在许多应用中,为如替换、变宽度数据寻址或压缩字的其它部分等操作定义字的可变部分(称为字段)是很有用的。传统的定义字的可变部分的方法是用另外一个字(或几个字)标明该字内字段(或几个字段)的宽度。根据此项发明,描述了一种在该字内为该信息编码的方法,这种方法对整个字的定义可节省位,简化被编码字的解码,以及提供被编码者更直观,景象的优点。而且这种编码方法在变宽度字段字内按最高位或最低位对齐时是有效的。
于是表1显示了两个字义在八位字上变宽度字段(称为“F”)按最低位对齐的例子。“W”代表这些字内其它潜在字段。
                      表1
位号(十六进制)      7 6 5 4 3 2 1 0
固定字              W W W F F F F F
                    W W W W W W F F
表2表示用传统方法为表1所示字段编码,传统方法以二进制为单位,用足够的附加位标明字段的最大宽度(标“X”的位意为“不管”,即它们的值没有影响)。这种方法在位数利用上是低效的,而且不如本发明所述的形式直观。
                      表2
位号(十六进制)    7 6 5 4 3 2 1 0   字段定义
固定字            W W W X X X X X   1 0 1
                  W W W W W W X X   0 1 0
按此项发明提出的新方法在字内定义了字段。这种方法用一个继续标记和一个终止标记定义字段。所标的字段一端是一系列继续标记,并跟随着一个终止标记。而在零长度字段情形下,仅在字的末端提供一个终止标记。继续标记和终止标记都是单位的,且必须互补。另外,字段必须和字的任一端对齐。因此,这项发明中字段编码的方法只需比原字宽多一个位的宽度。
如表3所示,描述了用新方法对表1所示的字段编码。在此例子中,继续标记是“1”,终止标记是“0”。例子中的字段是最低位对齐的。
                        表3
位号(十六进制)      7 6 5 4 3   2 1 0
固定字              W W W 0 1   1 1 1 1
继续标记=1
终止标记=0         W W W W W   W 0 1 1
所以,根据这项发明,编码方法的优越性在于:
1、减少了编码中所需位数
2、在编码过程中需要简化,因为通常所需的表1~2中所示的“字段字义”的解码的“X到1”是编码中固定性质,这种编码是以2x的1形式。
3、编码形式更为直观,使字段字义更容易识别
而且,这项发明的编码方法也可被用于终止标记和继续标记互换的情况。变换后表3的编码与表4类似。因而在实际应用中“1”和“0”可交换使用。
                    表4
位号(十六进制)    7 6 5 4 3   2 1 0
固定字            W W W 1 0   0 0 0 0
继续标记=1
终止标记=0       W W W W W   W 1 0 0
正如前文指出的,被编码的字段须与字的任一端对齐。表5说明了最高位对齐字段,即除字段从最高位(下文后称MSB)向最低位(下文称LSB)直到并包括第一个终止标记为止外,字段编码方式与最低位对齐时相似。表5所示字段编码后见表6。
                     表5
位号(十六进制)    7 6 5 4 3 2 1 0
固定字            F F F F F W W W
                  F F W W W W W W
                     表6
位号(十六进制)    7 6 5 4 3 2 1 0
固定字            1 1 1 1 1 0 W W W
继续标记=1
终止标记=0       1 1 0 W W W W W W另外,字段可以同时从字的最高位端和最低位端进行编码。例如表7中两个字段编码后示于表8,比前面讲的每个字段仅多加一位。
                表7
位号(十六进制)    7 6 5 4 3 2 1 0
固定字            F F F F W W F F
                  W W W W F F F F
               表8
位号(十六进制)    7 6 5 4 3 2 1 0
固定字            1 1 1 1 0 W W 0 1 1
继续标记=1
终止标记=0       0 W W W W 0 1 1 1 1用变长度字段的固定宽度字实现地址替换
用另一个值替换存储器地址的一部分有些情况下是有用的。这样可以建立与数据有关的地址。本发明的编码方法可应用到存储器的地址中,用以指定地址的哪一部分要被替换。若地址中采用最低位对齐变长度字段,就可以定义替换字段。比如,一个十二位地址0baaaaaaaaaaaa被编码,使得其最低5位被十二位值0bcccccccccccc替换,会有0baaaaaaa011111并产生地址0baaaaaaccccc。表示12位地址内替换的编码。
             表9:地址替换
被替换位号 B  A  9  8  7  6  5  4  3  2  1  0
 0  a  a  a  a  a  a  a  a  a  a  a  a  1
 1  a  a  a  a  a  a  a  a  a  a  a  0  1
 2  a  a  a  a  a  a  a  a  a  a  0  1  1
 3  a  a  a  a  a  a  a  a  a  0  1  1  1
 4  a  a  a  a  a  a  a  a  0  1  1  1  1
 5  a  a  a  a  a  a  a  0  1  1  1  1  1
 6  a  a  a  a  a  a  0  1  1  1  1  1  1
 7  a  a  a  a  a  0  1  1  1  1  1  1  1
 8  a  a  a  a  0  1  1  1  1  1  1  1  1
 9  a  a  a  0  1  1  1  1  1  1  1  1  1
 10  a  a  0  1  1  1  1  1  1  1  1  1  1
 11  a  0  1  1  1  1  1  1  1  1  1  1
 12  0  1  1  1  1  1  1  1  1  1  1  1  1
用固定宽度字来寻址变宽度数据
这项发明的实施例之一是用于寻址存储器,该存储器可以在它的全宽或在2n宽度至全宽上被访问(这些较短的字叫做部分字)。因而我们要讲述此项发明的变字段编码如何用于这种存储器的寻址及如何把这些地址编入存储器索引。
要访问需要不同地址长度,宽度为32、16、8、4、2和1位的64×32位寄存器组,即实施例的实现是一个可被64×32位、128×16位、256×8位、512×4位、1024×2位、或2048×1位访问的64×32位存储器。可以看到访问到64×32位的任一位置需要5位,而要访问到2048×1位的位置之一需12位,因而地址是变化长度的。且地址宽度实际上表明了存储器的地址格式。所以,地址可以用最高位对齐的限制地址并定义其宽度的变宽度字段来在一个固定字宽度内定义地址。表10对此做了说明。
                 表10:变宽度寻址
数据宽度  A  9  8  7  6  5  4  3  2  1  0
 1  1  a  a  a  a  a  a  a  a  a  a  a
 2  0  1  a  a  a  a  a  a  a  a  a  a
 4  0  0  1  a  a  a  a  a  a  a  a  a
 8  0  0  0  1  a  a  a  a  a  a  a  a
 16  0  0  0  0  1  a  a  a  a  a  a  a
 32  0  0  0  0  0  1  a  a  a  a  a  a
为便于地址索引,可以用前文讲的地址替换方法替换地址的部分区段。地址的替换部分(或字段)可被一个最低位对齐的变长度字段字义(继续标记为“1”,终止标记为“0”),该字段被加到表10所示字段的顶部。用一个八位字地址为例,表11表明如何定义低位被替换的位数。加上的最低位是替换标志器(标为“W”)。固定宽度字用于替换的一般情况示于图2。
                   表11:地址替换
被替换位  A  9  8  7  6  5  4  3  2  1  0  w
 0  0  0  0  1  a  a  a  a  a  a  a  a  0
 1  0  0  0  1  a  a  a  a  a  a  a  0  1
 2  0  0  0  1  a  a  a  a  a  a  0  1  1
 3  0  0  0  1  a  a  a  a  a  0  1  1  1
 4  0  0  0  1  a  a  a  a  0  1  1  1  1
 5  0  0  0  1  a  a  a  0  1  1  1  1  1
 6  0  0  0  1  a  a  0  1  1  1  1  1  1
 7  0  0  0  1  a  0  1  1  1  1  1  1  1
 8  0  0  0  1  0  1  1  1  1  1  1  1  1
实际中替换码被加到已被编码的地址顶部。从这种编码中可以发现有不合法地址,最明显的是0×0000和0×3fff。在这种情况下,底部9位里必须有“0”以防替换位数超过8,且顶部6位中的“1”标明允许的访问宽度。如果测试出这些错误时,存取未定义,而寄存器文件内容不受影响。
根据此项发明,下面讨论对寄存器组中部分字的寻址和访问。
传统的存储器电路规定了存储器必须在全宽度上被访问,为了达到变宽度访问,就要读入全宽度字(32)位。这个全宽字循环移位直到被访问的部分字以LSB对齐,再将其上部分扩为全宽后输出。扩展可用零或1或符号填充,其中符号填充是用符号大小号(sign-magn-itudenumber)的符号位作为新的MSB,还可以用其它类似的传统方法填充。扩展取决于操作模式。当部分字被输入并写回存储器时,部分字首先复合循环成全宽字,全宽字再循环并写入存储阵列图3显示了32位字的第四个4位部分字的访问过程。
为访问或读取部分字,象图3中第1行213中所示的四位字,全宽字必须循环到位于LSB部分的字,如第2行214所示。第3列215所示4位字扩展产生了一个全32位字,这个字此时就可被访问了。
如图3所示,一个被选中写回的全宽字被截成原始部分字的宽度区部分字,多路传输到第2行214所示字中。在LSB位置,上述特点显示于第4行216。结果字被循环回读入字的初始位置,参见第5行217。这时的全宽字便可写回寄存器组。
下表总结了图3中标号的步骤:
1、从存储器中读取全字;
2、循环右移12位,使部分字位于LSB;
3、扩展为全字,然后传递到输出;
4、输入的部分字多路传输到(2)中的循环成的全字;
5、循环左移12位使全字恢复原始被写状态。
上述存取认为存储器数据流结构如图4所示。结构中的号码对应上文和图3。
存储器地址必须被解码以控制上述结构。应该看到任意宽度地址的MSB相对于存储器来说都在同样重要性。解码地址的顶部6位是一个32位字地址,剩下部分是一个位地址。所以,解码阶段(与替换并行)是用测试最高有效终止标记的位置来解码定义的可变字段的地址宽度。这使得地址是MSB对齐的(在LSB用零移位)。顶部6位可被直接用作存储器的32位字行地址。底部5位可被直接用做控制两个桶状移位器(见图4),这是因为,象一个初始32位的地址总会有0b00000的移位(当地址是MSB对齐时移的位)。同样,16位地址总有0b×0000的移位,即0或16位位移和1位地址能有0b×0000的移位,也就是0到31位位移。扩展器和输入多路转接器由分别用于屏蔽输出字和传输输入字至合适位置的取宽度解码来控制。解码的块结构图参见图5。可以看出,为宽度和替换做的两可变宽度字段的解码可以并行独立地完成。
图2所示的例子是用13位的固定宽度字对变宽度数寻址,并做图示中底部两行的替换。对这些例子而言,一个8位字可在0b1101-ssss位置被寻址,而“ssss”是从另一个地址源替换过来的。
微可编码的状态机结构
按照此项发明,存储器的地址替换和存储器的变宽度存取被结合实现于一个微可编码状态机,其结构如图6。这个结构是状态基218的一个,用一种叫微编码指令的宽控制信号字方法对运算核219提供控制,而运算核219反过来传递状态标识和某些数据到状态机218。
按照本发明,状态机218包括一个含一系列微编码指令的存储器。和传统微编码状态机一样,它或可连续执行这些微编码指令,或跳跃式的从一条指令转向另一条。跳跃地址形式如图7所示,替换值来自图6和图8所示的运算核219。这就在微编码程序中提供“跳跃表”的结构。因此,如果做一次3位替换的跳跃,将有8种可能的连续位置被达到,每种取决于运算核获取的值而定,即是一种可编程的跳跃。运算核
图8所示的运算核219,包括一个叫寄存器组211的存储器,一个运算逻辑单元(ALU)222,一个输入口223和一个输出口224。这些部件通过总线和多路转换器连接。正如前文所讲,这些部件和定义它们连接的多种转接器都由状态机218发出的微编码指令控制。ALU222及通道223、224是通常的,而寄存器组221是允许变宽度变址访问的存储器,寄存器组221的地址直接被编码进微编码指令中。
用这种方法寻址寄存器组有许多优点。首先,应用中许多地址不必是存储器的全部宽度(在这里是32位)。而用全宽度地址它不会对装置操作产生影响,会非常浪费内存单元。存储器单元数目的最小化将使内存占据空间最小化,从而寄存器组中容性负载也最小。这可使寄存器组速度最大化。其次,与存储器存取的变宽度结合的索引允许穿过不同宽度的地址,对一位的情况,能精确实现多位除和乘。
总之,一种存储器寻址过程可描述为以下步骤:(1)提了一个有预置固定位数的固定宽度字,用于变宽度数据寻址;(2)用宽度定义字段和地址字段的定义固定宽度字,其中地址字段为宽度定义字段提供至少一位终止标记;(3)用定义的数据地址的多位来定义地址字段;(4)变化的地址字段位数与变宽度数据大小有逆向关系,而变宽度数据在宽度定义字段中的位数与变宽度数据大小有正比关系,改变宽度定义字段和地址字段的宽度时为变宽度数据寻址保留一个固定宽度字。另外,存储器寻址过程有以下步骤:(1)提供一个有预定的固定位数的固定宽度字用于数据寻址;(2)定义一个有地址字段和替换字段固定宽度字;(3)定义有多位定义数据地址的地址字段;(4)定义有至少一个替换位的替换字段;(5)替换字段至少有一位充当地址字段与替换字段之间的终止标记;(6)用替换字段从单独的寻址源中标识替换位,并在反过来变换地址字段的宽度和替换字段的宽度时为变宽度数据寻址保留一个固定宽度字。此外,所说明的存储器中变宽度数据寻址过程有以下步骤:(1)提供一个有预置宽度且由部分字组成的字的存储器;(2)部分字循环至最低位对齐而被访问;(3)扩展字的剩余部分,使得被访问字被视为部分字;(4)恢复字的剩余部分并使之循环直至部分字恢复到它的原先位置。发明中用共用处理块转换数据的详细说明
根据此项发明,本实施例涉及一种使信号由频域到时域的变换方法,同时也涉及实现这种转换的数字电路。
在远距离通讯领域中,共同目标是提高信息容量和传输速度。然而每种通讯媒介对传输速度加以限制,这是由必须对传送信号进行处理的发送端与接收端硬件造成的。象电报线是一种典型的比邮递快得多的信息发送媒介,虽然打印和阅读邮件的速度可能比用电报键敲击快。
对发送信息时编码的方法也会限制信息传送的速度。比如一条长线电报(Long-winded,telegraph)信息比包含同样信息内容的简要消息传送时间长。因而最大的发送和接收速度可以通过尽可能地压缩被传输数据的方法获得,然后利用高速传送媒介,并尽可能快地在两端处理数据,这常意味着系统‘瓶颈现象’的减小和消除。
必须为大量数据提供高速传送的应用之一是数字电视领域。传统电视系统是用模拟无线电及电信号控制电视屏幕上显示行的图象元素(‘象素’)亮度和颜色,而数字电视传送系统将模拟信号转换为对应于象素点亮度和颜色值的二进制“数字”,产生图象的数字表示。现代数字编码方案和硬件结构通常比传统模拟传送系统有更高的信息传输速率。正因如此,数字电视能够获取比传统模拟电视高得多的分辨率和逼真得多的图象。人们期望包括称作高清晰度电视(HDTV)系统在内的数字电视系统在下个年代时的工业化世界取代传统模拟电视技术。从传送到存储,由模拟向数字图象的转换与由模拟录音带向现在到处可见的压缩光盘(CD)转换相似。
为了增加数字图象技术的一般用途,数字图象编码的标准化方案已被采用,一种称为JPEG标准的这种标准化方案用于静止图象。对运动的图象,现在有两种标准MPEG和H.261,这两种标准对运动图象的连续帧采用似JPEG方法处理。为了优于重复使用JPEG,MPEG和H.261对连续帧之间的不同进行处理,利用了众所周知的事实,即帧之间的运动差是很小的。因此,化费较小时间和空间去传送或存储对应变化的信息,而不是去传送或存储相似的静止图象信息。好像连续的每帧完全不同于连续的最靠近它的帧上的信息。
为了方便,所有现行标准运作都基于将图象或画面分割为很多文件或块状,每块均由8象素点宽和8象素点高的一幅画面组成。每个象素由三个(或更多)被叫做该象素‘元素’的数字代表。有许多可以将颜色象素点分解为元素的方法,比如用标准符号,象YUV;YCr,Cb.RGB等等。所有传统的JPEG方法都分别处理每个元素。
众所周知,眼睛对图象的高频成分(或边界)不敏感。有关最高频率的信息经常被完全忽略,而人类观察者不会发现任何图象质量的明显降低。利用去除眼睛观察不到的高频信息,使图象信息内容得到减小,必须用某种形式将包含空间信息(如亮度的实际值)的8×8象素块转换得到频率信息。JPEG,MPEG和H.261标准均采用著名的离散余弦变换处理8×8空间矩阵以获得8×8频率矩阵。
象前面讲的那样,输入数据代表图的一个方区间。要把输入数据转换为频域表示,所用的转换必须是二维的,而二维变换很难有效计算。已知的二维离散余弦变换(DCT)和伴随的离散余弦逆变换(IDCT)却具有“可分离”的特性,这意味着不必对8×8象素块中64个象素点同时进行运算,可先将块按行转换出中间值,再将中间值按列转换出最终转换频率值。
一维N阶DCT在数学上相当于两个N×N矩阵相乘。为了对一个8×8象素块进行必要的矩阵乘法,需进行512次乘法和448次加法,因此在8×8象素块上做整个二维DCT,需要1024次乘法和896次加法。这些运算操作,尤其是乘法,既复杂又慢,因而限制了可达到的传送速度。它们同样需要考虑为实现DCT所用硅片的面积。
DCT方法可以被重新排列以减少所需的计算量。目前有两种减少DCT所需计算的方法,二者都用到“二分法(binary decimation)”。术语“二分法”意味着一个N×N变换可以用两个N2×N2变换计算,再加上一些安排计算时的计算性辅助操作。尽管8×8的变换需要进行512次乘法和448次加法,一个4×4的变换却只需进行64次乘法和48次加示。因而二分法节省了284次乘法运算和352次加法运算,而且实现二分法的辅加运算与减少的运算量相比,一般可以忽略。
目前,两种主要二分方法代表人是Eong GiLee和Wen-Hsiung-Chen Lee的方法利用了逆DCT定义里固有的对称,而且通过利用简单的余弦特点,该法定义了一种递归的二分方法。Lee的办法仅适用于IDCT。
Chen的方法用递归矩阵的特点,矩阵缩简为仅有对角阵。这种方法利用已知的对角阵特点提供了简单DCT的二分方法。
Lee和Chen方法中一个严重缺点是:它们相对于乘法和加法必需进行的情况是不平衡的。实质上,两种方法需要许多加法后跟随着许多乘法,或反过来。因而,当用硬件实现Lee和Chen的方法时,不可能使加法器和乘法器并行运算。这会降低它们的速度和效率,因为硬件的最佳利用是当所有加法器和乘法器总被使用的情况。
此外,这些已知的用于DCT和IDCT计算的方法和装置还有一个缺点,就是难以处理叫做规范化系数(normaligation Coefficien-t)的问题,已知的构造需要在所有乘法器都在使用时加一个附加乘法运算时间。
这些应用前向和逆向DCT于视频数据的已知的方法对于不需考虑实现运算的半导体器件布局的软件设计人员来说是非常简便而高效的。但是这些方法对实现令人满意的、数字视频所需要的传送速度而言,在半导体结构和硬件内部连接关系上常常太慢或太复杂。
现有作用于视频数据的、实现DCT和IDCT的方法和硬件结构还有一个缺点,即需要数值的浮点内在表示。为了说明这个缺点,假定一个人有一个仅可处理三位数的计算器,三位数包括出现在小数点右边的数字(如果有的话)。进一步假设计算器要将12.3与4.56相加(注意小数点在这两个数字中相对数字的位置不是固定的。也就是说,小数点允许‘移动’)。由于计算器不能存储表示整个结果16.86需要的四位数,计算器必须或者舍掉最右端的‘6’来缩短结果,产生答案16.8,或者必须有必要的硬件把结果四舍五入到最接近的三位近似16.9,使结果减少为三位数字。
正如这个非常简单的例子所表明的,如果需要浮点运算,必需接受精度的损失,或者加a高复杂度和浪费空间的线路以减小舍入误差。即便使用了有效的舍入电路,舍入或截断误差的累积及扩展仍会导到视频信号内不可接受的失真。这个问题在处理视频信号的方法用到多次乘法时更加突出,因为一般乘法比加法引起的浮点舍入和截位误差更大。
一个更有效的DCT/IDCT方法和硬件结构必须保证方法中用到的数字可以用固定位置小数点表示,但这种方法中能够用到每个数字的全部可变范围。在这样的系统里,截断或舍入误差会消除,或至少大大减小。
在上面的例子中,如果硬件可以处理4位数,就不需要大于99.99的数,且每个数字有位于第二位和第三位之间的小数点,这样,小数点的出现根本不会影响所有计算。因此,可以仅将每个数视为整数进行运算,如1230+0456=1686的结果与12.30+4.56=16.86的结果一样明了,因为计算者一直知道‘1686’的中间‘6’和‘8’之间应该有一个小数点。换句话说,如果数字(常数或其它)被有选择地定标或校正,使它们落在相同的范围内,在该范围中的每个数字可以被准确单一地表示为一系列整数。
一种减少所需乘法器数目的方法是简单地用一个乘法器,它能够从不同途径接收输入数据。换言之,这个结构用一个乘法器进行DCT和IDCT计算中不同步骤内的乘法。虽然这种“纵横接线”可以减少所需乘法器个数,但它意味着需要采用大而复杂的多路转接器结构去选择乘法器的输入,其它与乘法器隔离,并把适当的信号从选择的信号源接入乘法器输入端。此外还需要大规模多路转接器,将大量的输出从共享的乘法器接到适当的下面的电路。所以,纵横接线或多路传输是复杂的,一般很慢(因为需要额外的存储),并且最终的半导体实现花费巨大。
现存包含“纵横接线”的结构的另一个缺点是它们需要通用目的的乘法器。即现有系统需要两个输入都可变的乘法器。正如众所周知的那样,数字乘法器的实现一般包括多行的加法器和移位器,如果一个乘数字的当前位是‘1’,被乘数的值就被加到局部的结果中,但若当前位是‘0’就不加。由于通用目的的乘法器必须能处理每一位都是‘1’的情况,所以必须提供一行加法器给乘数字的每一位。
举例来说,假设数据字8位宽,希望将单输入乘以5。数字5的9位表示为00000101。换句话说,乘5的数字乘法仅需要将输入值向左移两位(对应于乘4的乘法),再加到未移位前的值中。剩下6个系数位置位值为‘0’,所以它们不需要任何移位或附加步骤。
在这种情况下,固定常数乘法器指的是只能乘以5的乘法器,做这种乘法仅仅需要一个移位器和一个加法器(不考虑传送位的电路)。相反,一个通用目的的乘法器在八个位置的每一位上都需要移位器和加法器,虽然可能六个位置都不会被用到。如例子所示,固定系数能够简化乘法器,这是因为它们允许设计者减掉对应系数中零位的加法器行,从而节省硅片面积。
在IDCT方法中,根据此项发明,一个为N×N象素块的每N行和N列的一维IDCT被抽出,并且1-D的IDCT在N-2个序号为奇数的象素输入字和N-2个序号为偶数的象素输入字上分别工作。
在一个优选实施例中,按JPEG标准N=8。二维IDCT的结果便可以通过连续执行两个一维IDCT顺序操作而获得(用中间记录转换数据)。
在通常处理步骤中,当N=8,第一对输入值不需相乘就传递到输出加法器及减法器。第二对输入值的每一个要与对应于两个换算过的余弦值的两个常数系数的每一个相乘。在共用处理步骤中,不需要做其它乘法,只需一次减法和一次加法。第二对同第一对输入值双双相加或相减,以形成偶数或奇数个结果值。
在预先的共用处理阶段中,最低阶数的奇输入字预乘上2的平方根,并且奇输入字在一般处理块之前被成对相加。在共用处理之后的阶段,对应于处理过的奇输入字的中介值与预置恒常数相乘,形成奇结果值。
计算完偶和奇结果值后,用简单的从偶结果值减去奇结果值便形成了N/2个高阶输出,并用简单的奇结果值与偶结果值相加获得N/2个低阶输出。
对DCT(在视频处理系统的发送端)和IDCT(在接收端,该端包含本发明各种方式的一个或多个)来说,数值用简单的二进制右移,可很好地,故意地向下。这种故意的被平衡而向上换算消除了一些传统方法所需的乘法步骤。
按照此项发明的方法的另一方面,恒定常数或中介结果数据的选择位被预先设定的选定位‘1’或‘0’值舍入或校正。
象素数据的二维变换由第二个相同的1-D操作,从第一个1-DIDCT处理步骤的输出值上实现。
根据此发明的另一方面,一个IDCT系统包括一个预共用处理单元和一个对输入数据字进行预共用、共用、后共用处理计算的共用处理线路。一个监控控制器产生控制信号,去控制各种系统锁存器的负载;最好,去连续地时间复合N/2个奇数和N/2个偶数已编号输入字输到预共用块的输入锁存器,控制奇偶结果值的加法,并形成和锁存低阶(Low order)输出信号,并控制从偶结果值减去奇结果值,可形成并锁存高阶(High order)输出信号,并顺序控制内部多路转接器。
在这个发明中,偶数和奇数输入字通过不同路径同样的处理块更优化地被处理。输入数据字最好(但不必要)锁存,不必严格按递增或递减顺序,但是最好为数据路径提供一种能实现有效的“蝶形(butterfly)”结构的顺序。
进一步讲,至少共用处理电路可被设置为一个预逻辑电路,它的正常运作不需时钟和控制信号,按详细应用情况可以用其它处理块。
这里不需要通用目的的乘法器(有两个可变输入)。相反,恒定常数乘法器被这个优选实施例贯穿使用。另外,这项发明的优选实施例还包括固定点整数运算装置,可以为实现视频信号的IDCT变换提供方法和系统而设计。这种装置具备一条或几条以下特点:
1、所有费时的运算操作固定使用;
2、为了减小实现IDCT所需的硅片面积,存储元件(如锁存器)数量是小的,以不超过有效的构成流水线的要求为好,并用少量恒定常数乘法器,而不用要用额外存储元件的通用目的乘法器。
3、要把运算过程安排得每个运算操作不需要复杂的设计,比如如果已知使用‘脉动加法器’,它们会有足够的时间去求‘解’(见下文)或产生它们的结果;如果运算安排方式使得其它设计优于重新安排的运算过程,使得避免延迟,且提供更大的吞吐量和效率;
4、可以通过自然顺序得到结果;
5、不需要昂贵、复杂、交错地接线;
6、结构能支持快得多的运算;
7、控制数据流通过变换硬件的线路面积可以很小。发明的理论背景
为了了解不同部件的目的和功能,了解根据此发明在IDCT系统中利用信号处理方法的优点,了解系统的理论基础是很有帮助的。二维IDCT的可分性
对一N×N的象素块的二维前向离散余弦变换(DCT)的数学定义如下,其中U(j,k)是对应象素绝对值X(m,n)的象素频率值。
式1: y ( j , k ) = 2 N c ( j ) C ( k ) Σ n = 0 N - 1 Σ n = 0 N - 1 × ( m , n ) cos [ ( 2 m + 1 ) jn 2 N ] cos [ ( 2 n + 1 ) kn 2 N ] j,k=0,1,...,N-1对j,k=0,c(j),c(k)=1/2;否则为12N项控制变换的dc级别,系数C(j),C(k)是已知归一化因子。对应的离散余弦逆变换,即IDCT,表达式如下:式2: x ( m , n ) = 2 n Σ j = 0 N - 1 Σ k = 0 N - 1 c ( j ) C ( k ) Y ( j , k ) cos [ ( 2 m + 1 ) jn 2 N ] cos [ ( 2 N + 1 ) 2 N ]
j,k=0,...,N-1,j,k=0时,c(j),c(k)=1/2;否则为1
前向DCT是用来将空间值(无论直接表示象亮度一类的特性,还是象在MPEG标准中那样表示差别)变换为它们的频率表示。逆DCT正如它的名字所隐含的,向另一个‘方向’操作,即IDCT将频率值转换回空间值。在表达式2(E2)中,注意每个余弦函数仅与求和符号之一有关。因此,表达式E2可被重写为:式3: x ( m , n ) = 2 N Σ j = 0 N - 1 c ( j ) cos [ ( 2 m + 1 ) jn 2 N ] Σ k = 0 N - 1 c ( k ) Y ( j , k ) cos [ ( 2 n + 1 ) kn 2 N ]
这相当于先进行对依赖于k和n的所有项乘积的第一个一维IDCT,在一次直接的标准数据变换后,将第一个IDCT操作的输出做为输入,接着做第二个一维IDCT。一维IDCT定义
一维N点IDCT(n是一个偶数)由下式定义。式4: X ( k ) = Σ n = 0 N - 1 c ( n ) · y ( n ) cos [ π ( 2 k + 1 ) n 2 N ] - - - k = { 0,1 , . . . , N - 1 }
对n=0,c(n)=1/(2);否则为1式中y(n)是逆变换函数的N个输入,x(k)是它的N个输出。和2维情况一样,DCT公式在求和符号下有相同结构,但归一化常数在求和符号外,且x和y向量在式中交换了位置。一维IDCT的分解
如上所讲,一个二维IDCT可以用变换分解为一系列一维IDCT的操作进行计算。根据一个实施例,这些一维运算反过来被分解为一些子过程,用来进一步减小半导体实现要求的大小和复杂度。系数的归一化
正如上面讨论的那样,IDCT硬件的一个重要设计目标是减小必须包括进电路的乘法器数目。所以大多数计算DCT和IDCT的方法都试图减少所需乘法的次数。但是对于本实施例,全部输入值都用二的平方根因子向上故意换算。换句话说,用根据本发明的实施例的方法,IDCT表达式(E)的右端是与二的平方根故意相乘的。
根据这个实施例,两个一维IDCT运算顺序进行(具有一个中介变换),以产生最后的二维IDCT结果。每个一维运算包括一次与相同的二的平方根因子的乘法。因为中介变换不需要换算,连续做两次与二的平方根的乘法的结果是最终的二维结果会是向上乘因子2。要获取未经换算的值,电路就只需被2除。由于所有值都被数字表示,这种除法可以很简单地用右移数据的方式完成。下面要讲得更明白些,在每个一维IDCT阶段用到的以2的平方根向上换算及最后的以2向下换算,要通过都在系统硬件内的加法器、乘法器和移位器实现,这样,系统对可能与其相连接的其它装置不会设置换算输入的要求,因而系统与按JPEG或MPEG标准运作的其它传统装置兼容。所以,根据这项发明的实施例,归一化消除对IDCT半导体构造中硬件乘法器作至少两个2的平方根的乘法运算的需要。正如下文更详细解释的那样,在每个一维运算中输入数据的单步附加乘法(用2的平方根向上换算),可以消除用传统方法时必须的其它乘法步骤。一维IDCT向高和低阶输出的分离
表达式E现在可以对N/2个低阶输出(k=0,1,......N/2-1)和N/2个高阶输出(K=N/2,k=N/2+1,......N)分别求值。对N=8,这意味着可以先变换输入,计算Y(0)、Y(1)、Y(2)和Y(3),然后变换输入去计算Y(4)、Y(5)、Y(6)和Y(7)。
将变量K′=(N-1-K)引入高阶输出(K=N/2+1,......N),这样当K′从(N/2+1)向N变化时,k′从(N/2-1)向N变化。对N=8,这意味着对k=(4、5、6、7),k′=(3、2、1、0)。然后就可以显示将表达式E分解成以下两个子表达式E5(与E除了求和间距外都相同)和E6。
低阶输出:
式5: X ( k ) = Σ n = 0 N - 1 c ( n ) · y ( n ) · cos [ π ( 2 k + 1 ) n 2 N ] k={0,1,...,(N/2-1)};对n=0;c(n)=1/2;否则为1高阶输出:式6: x ( k ) = x ( N - 1 - k ″ ″ ) = Σ n = 0 N - 1 y ( n ) ( - 1 ) n cos [ π ( 2 k ′ + 1 ) 2 N ]
k={N,...,(N/2+1)}→k′={0,1,...,(N/2-1)}(由于全部高阶项C(n)=1,C(n)不包含在此式中。)
注意E5与E6在求和符号内结构相同,除了(-1)n项改变了求和符号下代表上层N2个输出值在奇号输入(n奇数)时乘积的符号,且除了Y项要和C(0)=1/√2相乘。一维IDCT向偶和奇输入的分离
观察到一维IDCT表达式E4的一个求和也可以分解为两次求和:一次对偶数序号的输入(对N=8,Y(0)、Y(2)、Y(4)和Y(6)),一次对奇数序号的输入(对n=8,Y(1)、Y(3)、Y(5)和Y(7))。令g(k)代表偶数序号输入的部分和,h(k)代表奇数序号输入的部分和。
因而有:式7: g ( k ) = Σ n = 0 ( N 2 ) - 1 c ( 2 n ) y ( 2 n ) cos [ π ( 2 k - 1 ) 2 n 2 N ] = Σ n = 0 ( N 2 ) - 1 c ( 2 n ) y ( 2 n ) cos [ π ( 2 k - 1 ) n 2 ( N 2 ) ] k={0,1,...,(N/2-1)};式8: h ( k ) = Σ n = 0 ( N 2 ) - 1 y ( 2 n + 1 ) cos [ π ( 2 k + 1 ) ( 2 n + 1 ) 2 N ]
k={0,1,...,(N/2-1)}.
对N=8,可看到E7和E8的求和都被n={0,1,2,3}取代。
现在回忆起余弦特征:
2.cosA.cosB=cos(A+B)+cos(A-B),又令
A=π(2k+1)/2N,    B=π(2k+1)(2N+1)/2N
于是可以在表达式E8两端同乘以:
2.CosA=1/{2cos[π(2k+1)/2N]}=Ck.
注意到由于Ck不依赖于求和序号n,它可以被移入求和符号。再假定定义Y(-1)=0,发现对输入Y(7)的余弦函数等于0。h(k)的表达式可以重写为以下形式。
式9: h ( k ) = 1 2 cos ( π ( 2 k + 1 ) 2 N ) Σ n = 0 N 2 - 1 [ y ( 2 n - 1 ) - y ( 2 n - 1 ) ] cos [ π ( 2 K + 1 ) n 2 ( N 2 ) ]
k=(0,1,...,(N/2-1)}.
注意到输入[Y(2n+1)=Y(2n-1)]表示计算h(k)时,奇输入项配对以形成N/2个成对输入P(n)=[Y(2n+1)=Y(2n-1)]。
对N=8,P(n)值如下:
n  p(n)
0 y(-1)+Y(1)=Y(1),Y(-1)=0
1 y(1)+y(3)
2 y(3)+y(5)
3 y(5)+y(7)
h(k)的表达式E9可以如下表示:
式10: h ( k ) = C k Σ n = 0 N 2 - 1 p ( n ) cos [ π ( 2 k - 1 ) n 2 ( N 2 ) ]
k=(0,1,...,(N/2-1)}.
现在可以看出,g(k)和h(k)求和符号内的余弦项相同,并且都具有1维IDCT的结构(与表达式E5相比较),但对奇数k项,即h(k)的IDCT结果需要乘上系数Ck=1/{2 COS[π(2K+1)/2N]}。
换句话说,g(k)是作用在偶输入Y(2n)上的n/2点IDCT,而h(k)是作用在[Y(2n+1)=Y(2n-1)]上的n/2点IDCT,这里定义Y(-1)=0。
现在介绍下面的特征:
yn=y(n);
c1=cos(π8);
c2=cos(2π8)=cos(π4)=12;
c3=cos(3π8);
d1=1[2.cos(π1610)];
d3=1[2.cos(3π/16)];
d5=1[2.cos(5π/16)];
d7=1/[2.cos(97π/16)].进一步引入换算的余弦系数如下:c1s=2.cos(π/8);c3s=2.cos(3π8);
利用余弦函数对称性(COS(-φ)=COS(φ))和周期性(C0S(π-φ)=-COS(φ)),表达式E7和E8可被扩展到N=8(记住(0)是1/√2),产生: g ( 0 ) = 1 / 2 . y 0 + y 2 c 1 + y 4 c 2 + y 6 c 3 = 1 / 2 . ( y + y 2 . c / s + y 4 + y 6 . c 3 s ) g ( 1 ) = 1 / 2 . y 0 + y 2 c 3 - y 4 c 2 - y 6 c 1 = 1 / 2 . ( y 0 + y 2 . c 3 s - y 4 - y 6 . c / s ) +y6.c/s) g ( 3 ) = 1 / 2 . y 0 - y 2 c 1 + y 4 c 2 - y 6 c 3 = 1 / 2 ( y 0 - y 2 . c / s + y 4 - y 6 . c 3 s ) h(0)=d1{y1+(y1+y3)c1-(y3+y5)c2+(y5+y7)c3}= d 1 / 2 . { 2 . y 1 + ( y 1 + y 3 ) . c / s + ( y 3 + y 5 ) + ( y 5 + y 7 ) . c 3 s } h ( 1 ) = d 3 . { y 1 + ( y 1 + y 3 ) c 3 - ( y 3 + y 5 ) c 2 + ( y 5 + y 7 ) c 1 = d 3 / 2 . { 2 . y 1 + ( y 1 + y 3 ) c 3 s - ( y 3 + y 5 ) - ( y 5 + y 7 ) c 1 s } h ( 2 ) = d 5 ( y 1 + y 3 ) c 3 - ( y 3 + y 5 ) c 2 + ( y 5 + y 7 ) c 1 } = d 5 / 2 { 2 . y 1 - ( y 1 - y 3 ) c 3 ys - ( y 3 - - y 5 ) - ( y 5 + y 7 ) c 1 s } h ( 3 ) = d 7 . { y 1 - ( y 1 + y 3 ) c 1 + ( y 3 + y 5 ) c 2 - ( y 5 + y 7 ) c 3 } = d 7 / 2 { 2 . y 1 - ( y 1 + y 3 ) . c 1 s + ( y 3 + y 5 ) - ( y 5 + y 7 ) . c 3 s }
现在,根据本发明的实施例,回想到对DCT和IDCT运算,所有值都用因子2向上换算。换句话说,根据这个实施例,h(k)和g(k)都乘上了这个换算因子。g(k)和h(k)表达式就变为:
式11:
g(0)=y0+y2*c/s+y4+y6*c3s
g(1)=y0+y2*c3s-y4-y6*c3s
g(2)=y0-y2*c3s-y4+y6*c/s
g(3)=y0-y2*c/s+y4-y6*c3s
和式12: h ( 0 ) = d 1 [ 2 * y 1 + ( y 1 + y 3 ) * c 1 s - ( y 3 + y 5 ) + ( y 5 + y 7 ) * c 3 s ] h ( 1 ) = d 3 [ 2 * y 1 + ( y 1 + y 3 ) * c 3 s - ( y 3 + y 5 ) - ( y 5 + y 7 ) * c 1 s ] h ( 2 ) = d 5 [ 2 * y 1 - ( y 1 + y 3 ) * c 3 s - ( y 3 + y 5 ) + ( y 5 + y 7 ) * c 1 s ] h ( 3 ) = d 7 [ 2 * y 1 - ( y 1 + y 3 ) * c 1 s ( y 3 + y 5 ) - ( y 5 + y 7 ) * c 3 s ]
注意到由于C2=COS(π/4)=1/√2,用√2做乘法给出一个换算C2值=1。对这个实施例用表达式换算的方法(对应视频绝对值和频率值的向上换算),有可能消除对乘法及C3S的需要,它们是恒定常数,使得不需用一般用法的乘法器。这转过来又消除了IDCT运算的半导体实现中对相应硬件乘法器的需求。
g(k)与h(k)的相似之处可以用矩阵形式表示这一系列等式的方法体现出来。令c是4×4余弦系数矩阵,定义如下:式13: C = 1 c 1 s 1 c 3 s 1 c 3 s - 1 - c 1 s 1 - c 3 s - 1 c 1 s 1 - c 1 s 1 - c 3 s 式14: g ( 0 ) f ( 1 ) g ( 2 ) g ( 3 ) = C * y 0 y 2 y 4 y 6 式15: h ( 0 ) h ( 1 ) h ( 2 ) h ( 3 ) = D * C * 2 * y 1 y 1 + y 3 y 3 + y 5 y 5 + y 7 这里D=对角阵[d1、d3、d5、d7]=d1、d3、d5和d7在4×4矩阵的对角线上,矩阵其它元素等于0。如E14和E15表示,计算偶序号输入以得到g(k),和计算奇序号输入以得到h(k)的过程都有与余弦系数矩阵c相乘的共同步骤。但是,为了求出h(k),输入必须首先配对求和(记住定义Y(-1)=0),Y(1)必须预先乘以2,而与c相乘的结果必须乘以D。
上述表达式同时表示,N点一维IDCT(见E4)也可被分为两个N/2点,一维IDCT,每一个都涉及对N/2个奇输入值(被归类)和N/2个偶输入值的共同核的运算过程(在求和符号内)。上述表达式在这个实施例中实现了为IDCT产生如下的简单结构:
低阶输出(N=8,输出k={1、2、3}):
式16:
Y(k)=g(k)+h(k);
高阶输出(N=8,输出k={4、5、6、7});
式17
Y(k)=Y(N-1-k′)=g(k′)-h(k′)。
注意到g(k)直接作用到偶输入值上,以直接产生输出值,而h(k′)涉及到输入数据的归类以及与值d1、d3、d5和d7相乘。
和通常情况一样,IDCT电路的设计者面临着一些权衡,象电路尺寸与速度,提供更多的装置及减少连接复杂性。比如,常可能为了提高计算速度,在硅片上加入一些附加的或复杂的装置,但这显然使器具变大或变复杂。而且,IDCT片上能够或希望包括的东西会限制或阻碍使用尖端复杂的设计,如“超前”加法器。准确性标准
假设所有计算有无限的精度和准确性,也就有无限制的存储空间和计算时间,用IDCT和DCT变换图象数据重新产生的图象会完美地再现原图象。当然,这种完美不会只用到现有技术。
但是,为了获得某种标准化,IDCT系统目前根据一个标准化方法测量,即由国际电报电话咨询委员会“Comite ConsultatifInternational Telegraphique et Telephonique(‘CCIT’)在‘CCITT推荐附录1 H261-逆变换准确性规定’中提出的方法。这个测试规定产生包括随机整数的10,000个8×8块的集合。对这些块做DCT和IDCT变换(预先或随后进行预定的舍入、省略和算术操作)用预定的精度,以产生10,000个8×8‘参考’IDCT输出数据集。
当测试一个IDCT实现方法时,用CCITT测试块作为输入。实际的IDCT变换输出随后与已知的‘参考’IDCT输出数据做统计比较。为IDCT以术语峰值、均值、均方值和块的平均均差,在整个或部分元素上规定最大值。而且,如果相应输入块包含全零,IDCT必须产生全零输出,且当所有输入数据的符号改变时,IDCT必须符合同样的标准。只有当运行这些测试时最大误差不超过规定的最大值,才可以说IDCT的实现有可接受的准确性。
其它有名的标准是电机与电子工程师学会(‘IEEE’)的标准,在‘IEEE对8×8离散余弦变换实现起草的标准规定’,P1180/D2,July 18,1990中;及‘8×8离散余弦逆变换’附录A中,ISO委员会草案CD 11172-2。这些标准本质上与上文描述的CCITT标准相同。
硬件实现
图9是根据此项发明的实施例,说明IDCT方法的数据流的简化的方块图(虽然下面要说明和解释的硬件结构做得更小巧而有效)。在图9中,系统输入如Y[0]和Y[4]及系统输出如X[3]和X[6]被显示为单线传送。这应该被理解为图9中每条单划线代表以数据总线形式的几条导线,用以最好是并行地传送每个输入和输出对应的多位宽度数据字。
在图9中,大开口圆圈225和226代表二输入加法器,小圆圈227在输入到加法器的连接点处表示用到了对应输入字的补码,这种有补码输入的加法器从非求补的输入减去要求补的输入。比如,虽然左上加法器输出的T0等于Y[0]+Y[4],即T0=Y0+Y4,此具有输出T1的加法器形成值Y[0]+(-1)*Y4=Y0-Y4。因此有一个补码输入的加法器被视为做差分部件。
同样在图9中,常系数乘法器由数据路径中的实三角形230表示。比如,输入Y1在进入加法器以得到B0前要通过一个2的平方根乘法器。因此,中介值T3=Y2·c1s+Y6·c3s,中介值B2=Pl·c3s-P3·c1s=(Y1+Y3)c3s-(Y5+Y7)·c1s。通过执行所示加法、减法和乘法,可以看到图示结构对g(0)到g(3)及h(0)到h(3)实现了表达式E11和E2。
根据这项发明,图9说明了实施例的一个重要优点。如图9所示,该结构分为四个主要区域,前公共块PREC 231,它形成配对输入P(k),并将输入Y(1)乘以2的平方根;第一个后公共块POSTC 1 233,它包括对常数d1、d3、d5和d7的4个乘法器(见表达式E12);第二个后公共块POSTC 2 235,它把g0加到g3项和h0到h3项为低阶输出,并为高阶输出形成g0到g3项和h0到h3项的差(见表达式E16和E17),一个公共块CBLK 232,被包含在偶和奇数据通道中。在根据此项发明实施例的处理电路,对奇和偶序号输入进行的公共操作用一个结构来实现,而不重复图9所示的结构。
为了理解运算方法和实施例中某些数字结构的优点,理解“进位位”很有帮助。举一个简单的例子,做两个二进制数的加法如1+1=0,看到有一个进位“1”,这个1必须加到高序位以产生正确结果“10”(十进制数“2”的二进制表示)。换句话说,01+01=00(无进位的“和”)+10(进位字);将“和”与进位字相加便得到正确结果00+10=10。
举一个十进制的例子,假设要做数字‘436’和‘825’的加法。手算这两个数相加的普通过程一般如下进行:1、个位‘6’加‘5’是‘1’,有一个到‘十’位置的进位‘1’-
                             *
和:1,进位入:0,进位出:1。2、十位:‘3’加‘2’是‘5’,加上前一次进位的‘1’,得‘6’且无进位一。
和:5,进位入:1,进位出:0。3、百位:‘4’加‘8’是2,有一个到千位的进位1,但从前一步没有要加入的进位位。
和:2,进位入:0,进位出:14、千位:‘0’加‘0’,加上百位给的进位‘1’,是‘1’
和:0,进位入:1,进位出:0。
因而答案‘1261’通过将每个位置的进位和加到同样位置和中形成,而每个位置的进位入是与之相临的低位位置的进位出。(注意到这意味着最低位的进位入总是‘0’)。当然,问题在于必须等十位确定了有无进位再进行百位‘4’和‘8’的加法。这就对必须如此计算的“脉动加法器”进行了说明,因而脉动加法器不需额外的存储单元就得到‘最终’结果,但比一些其它设计慢。
一种可替代的设计被称为‘进位保存’,这种设计用存储部分和及结果字(在此例中是0251)的方法形成每个位置的两个数的和,并用另一个字存储进位值(这里是1010),整个结果可用和与进位字用下面一步加法获得,即0251+1010=1261。注意到人们可以同时进行每一个位置的加法,只要被保存任何时候都不需等着决定是否可以将进位字加到部分结果上。
由于分解运算一般需要每个运算级中所需时间的最大部分,加速这些运算可能对整运算产生重要影响,而且仅需相对较小地增加变换规模。所以,保存进位的乘法器通常比每行用脉动加法器的乘法器快。但是,这种时间上的收益会导致更大复杂度的代价,这是由于乘法器里每步加法的进位字或存储或传递到下一步加法中。而且,为了获得最终的乘法结果,最后的部分和及最后的进位字不得不被解决,通常用一个脉冲加法器做加法。但是,看到只需要一个脉冲加法器,使得时间的节省通常与必需进行的乘法规模成比例。进一步,注意到进位字被视为与任何其它的数字同样处理,只要它在需要最终的乘法结果以前的任何时间被加入,实际的加法可能被延迟。
在本项发明的实施例中,这种延迟解决的可能性被用来简化设计,并增加IDCT电路的吞吐量。而且,预选的进位字的某些位在解决前被可选而仔细地置成预定值,以便本发明在标准测试数据集上,基于测试运行的统计分析,提供更大的IDCT结果期望准确度。
图10是解释一个根据此发明的优化结构的方块图。在这个发明的优选实施例中,偶和奇序号输入是时间多路的,且在公共块CBLK232中分别处理。输入可按不同顺序被处理。
在图10中,标记Y[1,0],Y[5,4],Y[3,2]和Y[7,6]用来表示奇序号输入Y1、Y3、Y5、Y7最好优先通过计算电路,然后是偶序号输入Y0、Y2、Y4、Y6。这个次序在本实例中不是必要的,尽管如此,正如下文所解释的,某些后序的算术操作仅对奇序号输入进行,首先输入奇序号输入值,这些后序操作可以在所有输入的共同运算在偶序号上向上操作的同时进行处理。这样削减了一些运算装置空闲的时间。
同样,标记X[0,7]、X[1,6]、X[3,4]、X[2,5]用于表示首先输出低阶输出X0、X1、X2、X3,然后是高阶输出X4、X5、X6、X7。如图9和图10所示,输入最好最初不按递增顺序分组,虽然这不是必需的,因为对奇序号输入是Y1、Y5、Y3和Y7。如此顺序安排输入信号使图9和图10所示的‘蝴蝶结’数据通道结构成为可能,并在硅半导体装置中大大增加了实现此项发明的内部连接效率。
如图10所示,加法器和减法器分别用圆圈内一个‘+’(加法器)235,或一个‘-’(减法器)236,即有一个补码输入的加法器,或‘±’(可以在加法和减法间切换的解算加法器/减法器237)来表示。公共块232中二个m位输入字的最左端的加法器和减法器是与m位或包含加法/减法的进位位的(m-1)位字并行的m位部分结果。换句话说,公共块(BLK 232中的开头的加法和减法最好不去解,意味着进位位的加法要拖延到随后的处理级。这个步骤的优点是由于用到不需要计算进位字与结果的最终和的进位位保存的加法器/减法器。但是解算加法器可能仍被用于在加法器输出处以减小总线宽度。
图10同时解释了此项发明优化实施例中的单和双输入锁存器的使用。图10中,锁存器被示为正方形238,并在前公共块PREC 231和后公共块POSTC 233中被用到。单输入锁存器用在乘法器D1、D3、D5、D7的输入处,并锁存解算加法器/减法器的输入,这些输入是对应从g[0,7]、.g[1,6]、g[3,4]、g[2.5]和h[0,7]、h[1,6]、h[3,4]、h[2,5]的分别输出计算出的g(k)和h(K)的值。这样,解算加法器/减法器可实现上文表达式E16和E17所示的加法或减法。
如前文所述,偶序号输入Y0、Y2、Y4和Y6在公共块CBLK 232中处理之前不必配对。但是,不但奇序号输入需要这种配对,而且输入Y12也必须与2的平方根相乘,以确保向公共块CBLK 232提供正确输入值。所以前公共块PREC 231对每个输入值包括一个二输入多路处理(‘mux’)锁存器C10,C54、C32和C76。2输入mux锁存器的一个输入从而直接接于未处理的输入值,另一个输入来自解算加法器,且对Y1,则来自解算2的平方根的乘法器。正确的配对及未配对的输入因而可以很简单地送入公共块CBLK 232,只需在多路锁存器的两个输入间简单转换。
如图10所示,2的平方根的乘法器D1、D3、D5和D7最好算出它们的输出,即它们产生加入了进位位的结果以输出完整的和。这保证此乘法器的输出有与对应并行数据通道中未乘的输入相同的总线宽度。
按照此项发明,公共块232的优化实施例也包含一个‘虚设’减法器240,分别在Y[1,0]和Y[5,4]的前向数据通道中。这种装置结合两个输入(在虚设减法器情况下,在对一个输入做2的补码),用并行输出的方式通过。在每种情形下,这一个输入被当作含进位位处理,其实进位位是在随后的处理级中被加入。虽然被延迟,相应的加法和减法还是被进行。
这种技巧由于不需为装置提供全域加法器/减法器,减少了上面两个数据通道所需的资源。所以,‘组合器’表现为加法器和减法器,可以为这些装置提供,并且既可简单连到下一装置(为加),也可作为一行反向器(为减)被操作。二者几乎或根本不需附加电路。
这些组合器的用法也意味着,公共块CBLK 232中从最初的加法器和减法器的输出都具有相同的宽度,并和两个数据通道底部中进位保存加法器/减法器的输出兼容,用这些输出可形成公共块CBLK232中随后的解算加法器和减法器的输入。
如前文所述,在这项发明的实施例中,偶序号输入是与奇序号输入分别处理的。进一步,假定奇序号输入首先被处理。监督控制电路(未示于图10中)将奇序号输入字应用到前公共块PREC中,并选择多路锁存器C10、C54、C32、C76的较低输入(如图10所示),它们随后存储成对值P0到P3(见图9和上面P(n)的定义),锁存器1h0、1h1、1h3和1h2再被触发,分别锁存H0、H1、H3和H2的值。
监督控制电路锁存并选择前公共块PREC 231中的二输入多路锁存器C10、C54、C32和C76的较高输入,并将偶序号输入字施加于这些锁存器。由于偶序号输入用于产生g0到g3的值,监督控制电路也在后公共块POSTC 233中打开锁存器Lg0到Lg3,以存储g(k)的值。
一旦g(k)和h(k)的值被锁存,后公共块POSTC 233用转换解算加法器减法器到减模式的方法输出高序信号X7、X6、X5和X4。低序输出信号X3、X2、X1和X0随后由转换解算加法器/减法器到加模式产生。注意到输出数据可被任意顺序表示,包括自然数序列。
按此项发明,优选的多路实施在图10中以很大的简化,图表化形式表示,与图9所示的非多路结构进行相同的计算。但公共块CBLK 232中加法器、减法器和乘法器数目减半,虚设加法器/减法器240的采用进一步减小了昂贵运算电路的复杂性。
图11图示了按此项发明的实施例,一个IDCT电路的实际实现方法的主要部件和数据线。主要部件包括前公共块电路PREC 231,公共块电路CBLK 232和后公共块电路POSTC 233、系统还包括一个控制器CNTL 241,它直接或间接地提供输入、定时和控制信号于前公共块PREC 231和后公共块POSTC 233。
在此项发明的优选实施例中,输入和输出信号(分别为Y0到Y7,X0到X7)是22位宽。测试表明,这是可能的用现有工业标准衡量,可接受准确性的最小宽度。下文将详细进述,这个最小宽度可以通过有意令选中的运算装置的某些进位字为‘1’或‘0’来部分获得。这种对应于对某些数据字调整的位操作,在这项发明中是作为对IDCT系统结果的统计分析结果而被执行,应用于以后对已知输入测试数据的IDCT变换。用指定某些位为预定值的方法,曾发现舍入和截尾误差的影响可以被削减,因而IDCT系统的空间输出数据可以被处理得与已知‘准确’空间数据偏差较小。不但如此,这项发明同样可以用于其它数据字长,这是由于根据本发明,电路用到的部件,用已知方法都能适应于不同的总线宽度。
虽然在一起处理的四个输入可以沿88个并行导线(4×22)同时输入前公共块PREC,一般一次从传送数据中转换一个象素字。根据此实施例。最好所有的输入数据字通过一单个22位输入总线串行传送,且每个输入字在数据通道中的适当输入点顺序锁存。如图11所示,22位输入数据总线被标为TIN[21:0]242。
在图和下文的讨论中,多位宽度信号用括号指示,高序位在冒号“:”的左边,最低有效位(LSB)在冒号的右边。比如,输入信号T-IN[21:0]242是22位宽,位号由0到21。单独一位用方括号内一单个的数来识别,因而T-IN[1]表示信号T_IN紧挨最低有效位的一位。
随后的控制信号用来控制此项发明的实施例中前公共块PREC231的运算。
IN-CLK,OUT-CLK:按照这个发明,系统最好使用一个无重叠的两相时钟。因此信号IN-CLK和OUT-CLK是锁存器列,它们保持输入、中介和输出信号值。
LATCH 10、LATCH 54、LATCH 32、LATCH 76:一次向系统输入一个22位字是可取的。在另一方面,四个输入信号一次处理,所以每个输入信号必须锁存在此结构的适当位置,且在于其它三个输入信号被处理之前进行。这些锁存信号激活相应的输入锁存器。比如信号LATCH 54,首先用于锁存输入信号Y5,再锁存输入信号Y4,它与输入信号Y5进入前公共块PREC 231在相同的点(见图10),但是在其后的处理级上。
LATCH:一旦四个偶或奇序号输入信号锁存到前公共块PREC231中,它们最好同时被移到随后一列寄存器。信号LATCH用于激活持有4个输入值的第二列输入寄存器,输入值用公共块PRCE 231中的运算装置进行操作处理。
SEL-BYP,SEL-P:如图10所示,锁存在锁存器C10,C54、C32和C76中的偶序号输入信号应绕过加法器和2的平方根解算乘法器。但是,奇序号输入信号必须首先配对形成成对输入P(n),信号Y1必须乘以2的平方根,控制信号SEL-P为了选择成对输入信号被激活。所以,这些信号被用于控制作为多路器的门,以使正确的信号传到前公共块PREC 231的输出锁存器。
象前文讨论的那样,不必严格递增顺序地排列输入,可形成一种简化的‘蝴蝶结’总线结构,它具有高的连接效率。前文也讲到奇输入最好首先作为一组应用于前公共块,随后是偶序号输入,但任何次序都可能在每个奇或偶组里使用,即,可以利用各种顺序的输入,但需为处理奇序号输入分别提供锁存安排,或至少在电路的分别区域中提供锁存安排。
监督控制电路同样为后公共块POSTC 233产生定时和控制信号。控制信号如下:
EN-BH,EN-GH:再参看图9,在对奇序号输入处理之后,公共块CBLK 232的输出被标示为H0、H1、H3和H2。这些信号随后送入系数乘法器,分别是后公共块中的d1、d3、d7和d5。信号EN-BH用于触发保持g0到g3值的锁存器,并在h0到h3的值在系数乘法器中乘过以后触发保持h0到h3值的锁存器。
ADD,SUB:如图10所示,实施例包括一系列加总和差分(k)与h(k)值的解算加法器/减法器,以分别形成低序输出。信号ADD,SUB分别用于设置解算加法器/减法器于加模式和减模式。
EN-0:这个信号用来触发锁存解算加法器/减法器结果的输出锁存器。
MUX-OUT 70,MUX-OUT 61,MUX-OUT 43,MUX-OUT 52;根据此项发明,系统的输出数据最好通过一单个22位输出总线传送,以使一次仅转换一组输出值(X0到X7)。这些信号顺序激活,以选择四组锁存的输出值中哪一组锁存到最后的输出锁存器。因此,这些信号用作对4对1多路器的控制信号。
T-OUT[21:0]:这个标记表示后公共块POSTC 233的22位输出信号。
从预公共块PREC 231的输出信号被锁存以形成公共块CBLK 232的输入信号。如图11所示,预公共块PREC 231的输出信号表示为4个22位数据字CI10[21:0]、CI54[21:0]、CI32[21:0]、CI76[21:0],它们分别成为公共块CBLK 232的输入信号IN[0]、IN[1]、IN[3]、IN[2]。
如图11所示,公共块CBLK 232的四个22位结果并行转换为输出信号OUT0[21:0]、OUT1[21:0]、OUT3[21:0]、OUT2[21:0],而后它们作为后公共块POSTC 233的输入信号锁存为CO70[21:0]、CO61[21:0]、CO43[21:0],CO52[21:0]。
应该特别注意的是公共块CBLK不需任何控制信号。因为这个例子中IDCT系统的独特结构,系统操作的公共块可被处理为纯逻辑运算,无需时钟,定时或控制信号。这进一步减小了设备的复杂性。还应注意到在某些应用中(尤其是在有充足时间进行所有所需运算操作的应用中),预公共块PREC 231和后公共块POSTC 233也可以被安排成无时钟定时或控制信号的操作。
图12是此项发明的预公共块PREC 231的方块图。在这张图及以后的图中,标记‘S1[a]、S2[b]......SM[z]’表示从信号S1、S2......SM中选择的位a、b......z在同一总线上并行传输,最高位(MSB)是从信号S1中选择的位‘a’,最低位(LSB)是从信号SM中选择的位‘z’,这里S是任意的信号标签,a、b、......z是在信号总线宽度范围内的整数。所选的位不一定是一单独位,整个或部分多位字也可以和其它单独位或整个或部分多位字一同传送。在图中,符号S可以被相应信号标记替代。
例如,图12中一个2的平方根乘法器被示为R2MUL。这个非解算乘法器的‘保存’或‘非解算和’输出表示为21位字M5S[20:0],同样,乘法器R2MUL的‘进位’输出表示为22位字M5C[20:0],它在总线上被传送到一个进位保存的解算加法器M5A的‘b’输入。(记起‘0’插入到保存输出的最低有效21位作为最低有效位,但是,这是在提供给解算加法器M5A的‘a’输入之前完成。在图12中用标志GND.M5S[20:0]表示)。换句话说,对应MSB输入到M5A的导线被用接地GND的方式置为‘0’。
为了明白为何将‘和’的第22位插入‘0’,观察若乘法的部分和是n位宽。进位位左移一位到相对于部分和的左边。因而进位字扩展为n+1位有一个在n+1位置上的有效数据位和最低位的‘0’(由于这一位之前没有东西产生进到单元位置的进位位)。如果这两个字用作解算二进制加法器的输入,必须小心以保证进位字的位(数字)正确地与相应部分和的位对准。这还可以保证小数点(就算仅象在整数运算中隐含)保持在两个字中对齐。假设加法器的输入是n+1位宽,所有n位正部分和字都可以加入一个‘0’到最高序位,以提供一个与其它输入进位字对齐的n+1位输入。
如前文所述,在预公共块PREC 231中某个给定时间处理的四个输入被通过输入总线T-IN(21:0)传送。这个输入总线与四个输入锁存器IN10L,IN54L、IN32L、IN76L的输入相连。每个锁存器仅在各自输入时钟信号IN-CLK和相应锁存器选择信号LATCH 10、LATCH 54、LATCH 32、LATCH 76为高时分别使能。所以,四个输入可以通过顺序激活锁存器使能信号LATCH 10、LATCH 54、LATCH 32和LATCH 76,在IN-CLK信号的四个阶段中被锁存在它们各自的输入锁存器中。在这段时间内,LATCH信号应该是低(或在不同相位上),以使输入锁存器IN10L、IN54L、IN32L和IN76L能稳定并锁定四个输入值。
按照这项发明,一个锁存器定时的例子图示于图13。一旦四个输入信号按合适的顺序锁存它们被传到第二组锁存器L10L,L54L、L32L、L76L。这些第二组锁存器在信号OUT-CLK和LATCH是高时被使能。这个信号定时也示于图13。
注意到这项发明的系统不必延迟接收全部八个输入字。一旦所有偶和奇输入字被接收并锁存于IN10L、IN54L、IN32L和IN76L,就释放了输入锁存器,使之可以开始接收其它四个输入信号,不需延时到IN-CLK的下一个上升沿。
用在图示中作为不同部件的二位数字后缀标记[10、54、32、76]说明奇序号信号先被处理,然后是在结构随后的通道通过上的偶序号信号。和上文提到过的一样,这个顺序对此项发明不是必需的,且对此领域有一般性熟练的人另外的次序可以被采用。
一旦四个输入信号被顺序正确地锁存于第二集锁存器L10L、L54L、L32L、L76L,相应的值或者被当作输出锁存器C10L、C54L、C32L和C76L的输入传送,这些输出锁存器受到选择的旁路信号SEL-BYP的触发。或者受‘选择P’信号SEL-P触发,被当作相同输出锁存器的配对并乘过的输入传送。换句话说所有信号都直接和间接地通过运算设备传送到预公共块PREC 231的输出锁存器C10L、C54L、C32L、C76L,而正确的值是在‘选择旁路’信号SEL-BYP的触发下(对于偶序号输入Y0、Y2、Y4和Y6),或在‘选择P’信号SEL-P的触发下(对于奇序号输入Y1、Y3、Y5和Y7)装入这些锁存器的。正如熟悉此一般技术的人可以理解的那样,希望的定时和这些及其它控制信号的顺序可以在正确的配置与/或控制器CNTL 241的微可编程下以一种已知的方式很容易地实现。
在锁存器L10L输出的最上端的输入值首先通过2的平方根乘法器R2MUL,然后通过所讲的解算加法器M5A。解算加法器M5A的输出显示为锁存器L10L的输出与2的平方根的解算乘法值的等同值。其它三个锁存器L54L、L32L、L76L的输出也分别被传送到相应的输出锁存器C54L、C32L、C76L,并直接通过22位锁存器总线LCH54[21:0],LCH32[21:0],LCH76[21:0]和间接通过解算加法器P2A、P1A和P3A分别到输出锁存器。
在这项发明里,解算加法器P2A、P1A、P3A有两个输入“a”和“b”。对加法器P2A,一个输入来自锁存器L32L,另一个输入来自锁存器L54L。对输入值Y5(锁存于L54L中)和Y3(锁存于L32L中),P2A加法器的输出等于Y5+Y3,且如前文所述,也等于P(2)。因此,加法器为奇序号输入配对以形成成对输入值P(1)、P(2)和P(3)。当然,锁存在L54L、L32L和L76L中的偶序号输入信号也会分别通过解算加法器P2A、P1A和P3A,但结果P“值”不会传到输出锁存器C54L、C32L和C76L,因为‘选择P’信号SEL-P不会为偶序号输入激活。
锁存在由输入时钟信号IN-CLK触发的输出锁存器C10L、C54L、C32L和C76L中的值因而等于偶序号输入Y0、Y2、Y4、Y6,或等于为奇序号输入配对的输入值P0、P1、P2、P3。可以回忆起输入Y(1)与假定值为0的值U(-1)配对。如图12所示,这个假设由不加任何到值Y1来实现。而Y1仅仅如图9和图10所示乘以二的平方根。
图14说明了根据此项发明,公共块CBLK 232的优选结构。由于不同系统块中多种乘法和加法,必需或最好做各种计算前按比例缩小公共块的输入值。这保证了对应系统多种运算装置输入的小数点位置一致(小数点对整数运算被隐含)。
因此,输入值IN0[21:0]和IN1[21:0]用因子4按比例缩小,在数字运算中对应向右移两位。为了用二进制形式保留数的符号(保持正值正号且负值负号),最高位(MSB)必须被复制到右移字结果的两个最有效位上;这个过程称为“符号扩展”。所以,输入值INO带着符号扩展向下移2位,形成移位后输入值,表示为IN[21]、IN0[21]、IN0[21:2]。输入值IN1[21:0]与之相似,符号扩展两位。输入IN2也移位和扩展,以形成IN2[21]、IN2[21:1]。这些一个位置的移位对应除2的截尾除法。
如图10所示,输入IN2、IN3必须与换算因子C1S和C3S相乘。每个输入IN3和IN2必须乘以每个换算因子。如图14所示,这一点由四个常系数进位保存乘法器MULC 1S、MULNC 1S、MULC 3S3和MULC2S2实现。必须注意对IN2的最下端乘法器是一个反乘法器MULC 1S,即它的输出对应输入的负值与常数C1S的乘积。所以,C76中锁存的值要从C32中锁存的值中减去(在乘以C3S之后)。由于有了反乘法器MULNC 1S,减法由加上对应值的负实现,这等同于形成差值。使得可以对以后的加法器使用相同线路,而允许一个非反相乘法器与一相接的减法器也许被使用。
在所讲的此项发明的实施例中,包括四个余弦参数乘法器MULC1S、MULNC 1S、MULC 2S3和MULC 3S2。但如果安排信号分别通过乘法器,所需乘法可以仅用两个乘法器实现,一个为C1S系数,一个为C3S常数。
根据此项发明MULC 1S、MULNC 1S、MUL 3S3和MULC 3S2乘法器最好是进位保存型的,这意味着它们产生两个输出字,一个对应在硬件乘法器内运算的不同行的加法结果,另一个对应产生的进位位,乘法器的输出就可以作为两个4输入解算加法器BT2、BT3之一的输入连接。
仅为了图示简单,从乘法器连到对应的加法器输入总线上的五条输出总线未画出。熟悉本领域一般技术的人是可以理解这些连接,且可被解释为每个输出与输入分别具有相同标号的被连在一起。所以,乘法器MULC 1S的保存输出M1S[20:0]与加法器BT3的“保存a”低21位相连。
如图14所示,加法器BT2和BT3的5个输入显示被“分裂”。比如,加法器BT2的“ca”输入用MC3[20:0]上面有IN3[21]表示,MC3[20:0]作为输入的最低21位。同样,同一加法器的“sa”(“保存a”输入)表示为GND,GND在M3S[19:0]之上。这意味着增加两个零作为输入字的两位高有效位。这种增加位保证形成了正确的22位宽输入字,并带着正确符号。
进位保存加法器BT2和BT3将两个不同22位的进位和保存字相加,以形成22位输出保存字T3S[21:0]和21位输出进位字T3C[21:0]。因此,每个加法器的输入是88位宽,每个加法器的输出是43位宽。如图10所示,锁存器C10的输出在与进位保存加法器BT3的输出相加前,与最上面的数据通道中的锁存器C54的输出相结合。但这种“结合”直到到达上层数据通道中的下一个加法器才是有必要的。因此,如图14所示,移位和符号扩展的输入值IN0与上层进位输入相连。
加法器CS0的高阶进位输入与移位和符号扩展的输入值IN0相连,且移位和符号扩展输入IN1被连接为同一加法器的高位保存输入。换句话说,IN0和IN1在加法器CS0中以后被相加。
所以,图10中用到的标记“虚设”加法器/减法器240表示何种操作必须被执行,虽然不必在图10所示位置进行。同样,图10所示的低虚设减法器240需要从锁存器C10的输出中减去锁存器C54的输出。这与将C10的输出与C54输出的补码相加是一样的。
再次参照图14,输入IN1(对应图10中锁存器C54的输出)的补码由22位输入反相器IN1[21:0]实现(一位一位地产生它输入的每一位的逻辑反)。2N1值的补码-NIN1[21:0]-被传送到加法器CS1的上层“保存”输入,相应的高位“进位”输入是移位和符号扩展的IN0。所以,加法器CS1的高位部分实现对应IN0减IN1的减法。
在图10所示的两低位数据通道中,在公共块CBLK 232的输出端,解算减法器的用来代替了图示高位两个数据通道中的解算加法器。每个解算加法器或减法器与被其跟随的进位保存加法器或减法器是等同的。这点示于图14。按照图10所示的连接结构,减法器CS2和CS3把处理值IN0到IN3当作它们的输入。
每个加法器/减法器C20-CS3的22位进位和保存输出在解算加法器RES0-RES3中求解。正如具有本领域一般技术的人可以理解的那样,进位和保存输出的求解在数字设计技术中被很好了解,因而这里不再详述,如图14所示,进位保存加法器/减法器CS0-CS3的保存输出直接作为22位输入传送到相应解算加法器RES0-RES3的“a”输入。
还是按众所周知的技术,求一个二个进制数的2补码要将它的每一位取反(变所有“1”为“0”,反之亦然),再加上“1”。注意到“1”可以在位取反后立即加上,也可迟些。一个进位字的LSB总是“0”。它在图示的此项发明的实施例中,用在每个进位字O0C和O1C分别输入解算加法器RES0和RES1时将它们的LSB接地GND的方法实现。但是,将减法器CS2和CS3的进位输出加上“1”以形成2补码值是用把这些数据字02C和03C的LSB接到供电VDD来实现的,从而用“1”“取代”进位字的LSB“0”,这与加上“1”等效。
由于上述理由,一个“0”作为LSB增加到来自进位保存加法器CS0和CS1的21位进位字中(将LSB接地GND),且来自进位保存减法器CS2和CS3的进位字的LSB用将相应数据线接供电电压VDD的方法置为“1”。所以,解算加法器RES0-RES3计算从加法器/减法器CS0-CS3的输出,以形成22位输出信号OUT0[21:0]-OUT3[21:0]。
根据本发明的实施例,IDCT电路的两个优点如图14所示。首先,公共块CBLK 232不需控制和定时信号。相反,公共块的输入信号已经被处理成可以立即应用到公共块232的纯逻辑运算设备的方式。第二,用对数据字的正确换算,可以从始至终使用整数运算(或者者至少所有值的小数点是固定的)。这避免了浮点设备的复杂性和缓慢性,且不会不可取地牺牲精度。
如所示地排列输入与根据此项发明用均衡的优选法,这个发明的实施例的另一个优点是可以在硅片实现的许多部份用到相似的设计结构。比如在图14中,常系数乘法器MULC 1S、MULC 3S3、MULC3S2和MULNC 1S都有相似的结构并在数据通道的同一点接收数据,因而四个乘法器都可以同时工作。这消除了“瓶颈现象”,且半导体实现中能够利用重复、平行结构的全部优点。进位保存加法器BT2和BT3同样可以同时工作,随后的进位保存加法器和减法器也是如此。许多器件设计的对称和有效同时使用的在这项发明的实施例的整个结构中是普遍的。
图15表示按照这项发明,后公共块POSTC 233的优选排列。如图10所示,后公共块POSTC 233的主要功能是用将公共块的输出与参数d1、d3、d5和d7相乘形成h0到h3的值;将g(k)与h(k)相加形成低位输出;从相应g(k)值中减去h(k)的值形成高序输出。现在同时参看图10和图15,后公共块POSTC 233锁存相应公共块CBLK 232的输出到锁存器BH0L、BH1L、BH3L和BH2L。这是在当Bh锁存器被使能,控制电路置EN-BH信号为高,且输出时钟信号OUTC-CLK信号变高时完成的。当控制电路通过信号EN-GH和输入时钟信号IN-CLK的上升给锁存器G0L、G1L、G3L和G2L使能时,g(k)、g(0)到g(3)的值分别锁定在相应锁存器G0L、G1L、G3L和G2L中。
被处理的奇序号输入,即值h0到h3,通过常系数乘法器D1MUL、D3MUL、D5MUL、D7MUL,在EN-GH和IN-CLK信号为高时被锁存到锁存器H0L、H1L、H3L和H2L。这些乘法器分别乘以d1、d3、d5和d7。在优选的实施例中,这些常系数乘法器最好是进位保存乘法器,以便简化设计并提高运算速度。如图15所示,常系数乘法器的“进位”(“c”)输出连接到解算加法器H0A、H1A、H3A和H2A的一个输入端,其间的某些改变下文详述。常系数乘法器的“保存”(“S”)输出同样连到相应解算加法器的另外输入,其间的某些强制性改变也在下文描述。
图15进一步表明,H0信号的LSB最好用将相应对H0“保存”的输出置为0(接地GND),且第二位(对应H0S[1])置为“1”的方法强制为“1”。来自常系数乘法器D3MUL的进位和保存输出的数据字被同样处理并输入到解算加法器H1A。这些处理的优点和它们对解算加示器H1A的输入。
根据这项发明,系数乘法器D7MUL和D5MUL的进位输出的全部22位都直接连到对应解算加法器H3A和H2A的“a”输入。但每个乘法器的“保存”输出的MSB通过接对应数据线到地GND的方法置为“0”。
所讲的IDCT系统用前文描述的CCITT规定为依据进行了测试。由于换算及其它众所周知的数字加法器和乘法器的特性,在10,000个采样中一般损失一些精度,但强制前文描述的不同位为“0”或“1”的运行减小了数字变换的预期误差。作为数据字位运算的结果,这项发明的实施例仅用22位宽数据字就可达到CCITT标准下的可接受的准确度,而一般情况下需要24位以产生同等的准确度。
由于有限的精确度和截尾及舍入误差,一般在IDCT系统的每个数据字中有一些不准确性。但是,强制数据字的选中位,发现误差被系统地在硬件的特定点引入特定的数据字,统计上产生总体较好结果。位强制也可用在乘法中,比如有选择地强制一个或多个进位位为预定值。
在这项发明中,位强制方法不需要是静止的,即总让某些位有规定值,而一个动态方法也可被使用。比如,一个数据字的所选位可以被置为“1”或“0”,取决于这个字(或甚至其它数据)是偶或奇,正或负,大于或小于预定阈值之类。
一般改进全局统计性能只需小的系统变动。因此,按照这项发明的实施例,所选数据字的LSB(最好一次一位或一数据字,虽然不是必须的)被强制为“1”或“0”。运行CCITT测试,且对运行的CCITT统计被编译,这一位随即强制为“1”或“0”的另一个,重新运行测试。而后其它数据字的LSB(或多个LSB)被强制为“1”或“0”,并编译相似的统计。观察不同强制字中强制位的不同组合的统计,可以决定最优的统计操作。
但如果不需这种基于统计的改进,常系数乘法器D1MUL、D3MUL、D5MUL和D7MUL的输出可以用传统方式在解算加法器H0A-H3A中解。对应锁存器H0L-H3L的输入的低21位,与这些输入的LSB接到地。
H-锁存器(H0L-H3L)与G-锁存器(G0L-G3L)的输出成对形成a和b分别的输入,输到解算加法器-减法器S70A、S61A、S43A和S52A。如前文所讲,这些器件在ADD信号为高时加上它们的输入,当减法使能信号SUB高时从“a”输入中减去“b”输入。高层两组锁存器对H0L、G0L、H1L和G1L的第二位以如下所说方式通过多路安排进行处理。
解算加法器-减法器S70A、S61A、 S43A和S52A的输出被锁定在结果锁存器R70L、R61L、R43L、R52L中。
如图15b描绘的那样,按照此项发明,加法器/减法器S70A和S61A的输入字对每个输入字的第二位进行处理。比如,加法器/减法器S70A的对“a”输入的输入字第二位是G0[1M]、G0[1M]、G0[0]。换句话说,第二位被置为具有值G01M。加法器/减法器S70A和S61A的其它输入的第二位做相似的处理。位处理由四个2:1位多种器H01MUX,G01MUX,H11MUX和G11MUX完成(如图15b右侧所示)。这项发明中,多路器由ADD和SUB信号控制,使得第二位(H01M、G01M、H11M和G11M)在各自加法器减法器S70A、S61A置1时(ADD是高)也置1,且如果SUB信号置为高时,第二位置于它实际的锁存器输出值。用这种方式置单独位的值容易在高速操作下实现。因此,优选的实施例包括位强制安排,是由于上文讲到的大量测试象素字的统计分析已经表明那样可获得更准确的结果。但是虽然可使字具有宽度较小的优点,如此处理第二位并不是必须的。
四个高或低位结果锁存在输出锁存器R70L、R61L、R43L和R52L中。这些结果在多路信号MUX-OUT70,MUX-OUT61、MUX-OUT43、MUX-OUT52的控制下顺序锁存到最后输出锁存器OUTF中。因而结果信号的输出顺序可以通过简单地改变它们锁存的锁存器顺序来控制。
后公共块POST 233中的时钟和控制信号相互关系示于图13b和13c。
象前文讨论的那样,两个1维IDCT操作可以带一个插入数据转置来并行实现,以进行2维IDCT。因而根据这项发明的实施例,后公共块POSTC 233的输出信号被首先按已知方式按列排序(或按行)这是在象RAM存储电路(未画出)类的传统存储单元中进行的,然后按行(或按列)从存储单元中读取,以便作为随后的前公共块的输入,并在这块内做上文所述的处理而传送,及在公共块CBLK 232中,和在后公共块POSTC 233中的处理而传送。
按行(或列)存储并按列(或行)读出在第二个IDCT前实现了所需的转置操作。第二个POSTC 233的输出将是期望的2维IDCT的结果,并可用移位以补偿不同处理块中进行的换算移位,在传统方式下被换算。特别地,向右移一个位置可以除以2,作为1维IDCT运算中进行的两个2的平方根乘法所需的偏置。
依赖应用,第2个IDCT结构(最好与图11所示相同)最好分别用半导体实现。这会避免若两个变换用相同的电路而引起的速度降低,虽然这种分别的1维变换实现不是必要的,如果象素时钟速率现在足以使一单个的电路实现能够实时处理两次通过的话。
如图16到38所示,按照这项发明,第二优选实施例使用一单个一维变换。这个实施例不需要象前文讨论的象素时钟速率的降低。
现存的第一个优选实施例中的“解算加法器”变成了“快速解算加法器”。如图38所示,这些被标为“快速解算”。这种变化产生的影响是允许每个数据路径运算块有更多时间对它的数据输入起作用。现有的第一个优选实施例中的“锁存器”被改为2相位“触发器”或“寄存器”。
位于现有一维IDCT数据路径流水线前端和末端的锁存存贮元件被结合成独立块,如专门在图18中的特别表示。另外,第二个优选实施例的输入和输出中出现的存贮单元数目增加了,以使变化数目的T2数据被缓存。
如图16和图17所示,两个数据流,数据流“T1”(原始未被处理数据)和数据流“T2”(已通过一维IDCT一次并在TRAM中转置过的数据),以时间多路方式被引入到数据通道流水线。
在此项发明中,每个流轮流为数据通道流水线引入一组数据项。这些数据流在连续通过数据通道流水线时“交叉”,并在数据通道输出处“解交叉”,如图17、18和33所示。一个组的数可以不同,但在此例中,它们是八位。
根据此项发明,T1必须不能被阻塞。如果T2到达与T1交叉的点,但输入缓存不能将它的数据引入流水线,因为这样会和T1流冲突,然后T2提供额外的缓存以使T2不阻塞数据流,反而会从它的输入流中缓存数据,直到它能安全地与流T1交叉的时候为止。这显示于图19和33图中T1流的数据被用信号“Latch 1(0)‘到’Latch 1(7)”装入到第一个变换的锁存器0-7中。另外,来自T2的数据用图33所示信号被装入“Latch 2(0)‘到’Latch 2(15)”。如图19所示。
交叉由“T1 OK2 Insert”和“T2 OK2 Insert”信号控制。在正常操作下,当信号升高时交叉会发生。但如果“T2 OK插入”升高时,T2锁存器中适当数量的数据还没有达到,那么锁存器会错过它的机会,必须继续缓存数据,直到下一个插入数据的机会发生。
总之,根据这项发明,如果要出现上述的缓冲,在T2的输出处必须发生相对“滑动”。T2在错过了它的数据插入点,并必须继续在图19所示锁存器中缓冲时发生滑动,如果T2滑动,而未能将数据引入流水线,T2流输出在数据通道输出处产生一个相应的缝隙。这个缝可用T2输出处额外的缓存移走或“吞掉”。这个处理可被视为有一个“固定”的T1一一维IDCT变换和一个可变T2一一维IDCT变换,在这里数据流以一种时间多路方式交叉,以便它们可以使用同一条运算数据通道流水线。
在这项发明中,当非数据进入T1时“恢复”发生。这是T2缓存追上T1和数据流的机会。非数据是一种数据类型,它绕过IDCT,在图34中的“Latch 2[φ]”里显示为一个数据脉冲。它最终到达T2输入,这个输入允许在T2缓存输出处注满。恢复示于图33和图25,此处“T2 dout”和“out”信号被许多周期间隔开,缝隙被用作固定数据流的参考。必须注意两个信号间若干周期的缝隙与T2的锁存器等待插入它的数据时缓存的缝隙相同。
在POSTC 233的部分B中TRANS FORM(变换)之后,交叉流被解交叉到“T2 out”,如图18和23所示。“T2 out”数据流在数据中有如上所述的滑动缝隙。图17中所示的T2 out[143:φ]进入到一个16选1的多路选择块,如图17中“IDDPMUX”块所示。这个多路选择块从输出缓存块中的16个位置之一选择数据,如图25所示。这个位置用图29所示的控制逻辑来选择,它利用了在T2的输入端“缓存等待的”间隙(“buffere-up”)。这个缝隙被用作一个参考。多路块的输出流T2DOUT是“固定”的数据流。
在对上文描述的此项发明的一个实施例的IDCT安排进行测试的范围内,发现所有中介和最终值都在每个点被很好保持在已知范围内,并仍满足CCITT标准。正因为如此,有可能象前文所述用少量地“调正”选中的值(比如,令选中数据字的某些位为期望值),且不需担心算术计算中上溢或下溢。
根据此项发明,此方法及系统可以有许多不同形式。比如,计算加法或乘法的结构可以用任何已知技术改变。因此,有可能在优选实施例中使用带解算加法器的进位保存部件的地方使用解算加法器或减法器。同时,这项发明的优选实施例在不同点上采用向下换算,以确保所有值都落在可接受的范围内。但向下换算不是必需的,因为可以用其它预防措施避免上溢或下溢。
在这项发明的一个实施例中,不同数据字的某些位被处理以减少系统内所需的字宽。但当然可以使不同的中介值不做位变换而通过。进一步讲,虽然在所讲的此发明的例子中,只有数据字进行了位变换,但也可以对常系数的位进行处理,并在CCITT标准下详测结果。如果结果的比较显示令一个特定位为给定值是有利的,那么有某些情况下就能够增加这些系数的二进位表示中“0”的个数,从而进一步减少实现相应乘法器所需的硅片面积。再则,位运算并不是必需的。
作为对此项发明上述方面的总结,下述内容被公开:一个变换数据的装置,有一个定义第一数据流源的第一锁存器,和一个定义第二数据流的第二锁存器。第一和第二锁存器与一单个运算单元进行通讯。运算单元传递数据到一个置换RAM,置换RAM置换数据并传递到第二锁存器。第二锁存器是可调整的,并大小可变,以适应被接收和发送数据的不同速率。第二锁存器和第一锁存器顺序传递第一和第二数据流到运算单元,但第二锁存器的顺序传递不会打断来自第一锁存器的传递。以这种方式,公共运算单元被用到第一和第二数据流。进一步,有如下步骤的用公共运算单元变换数据的过程被讲述。第一,将数据装入第一锁存器,当达到预定次数的循环时发送数据到运算单元,并将第一标志位装入控制移位寄存器。然后,将数据装入第二锁存器,第二锁存器是可调整的,且大小可变,以适应在不同速率被接收和发送数据的多种速率。下一步是当第一个控制移位寄存器达到预定状态,且第二个锁存器充以预定数目的数据时,传送第二个锁存器中的数据到运算单元。然后,若第二锁存器未充以预定数目的数据,则阻止从第二个锁存器发送数据,并当第一锁存器收到非数据时恢复第二锁存器。
发明中关于时间同步的详细说明
在MPEG-2中,视频和音频数据通过使用在MPEG-2系统流中的信息来进行同步,在这一方面,主要存在两种信息来用于同步:参考时钟和时间标记。参考时钟被用来通知解码器什么数字被用来代表当前时间。这被用来初始化计数器。这个计数器每隔相同的时间间隔增加一次,于是解码器永远都知道当前时间是多少。
时间标记装在一些数据流中,这些数据流组成了程序表(主要是图象和声音),如果是图像,时间标记与图相关,并告诉解码器这一帧图应在什么时候(由被参考时钟初始化的计数器定义)被显示。
在MPEG中,一系列参考时钟被复合到系统流中,这些参考时钟定义了“系统时间”。主要有两种参考时钟:程序参考时钟(PCRs)和系统参考时钟(SCRs)。在这个发明中,PCRs和SCRs的区别变得无足轻重。因为解码器用同样的方式使用这两种参考时钟。PCRs和SCRs有90KHz分辨率的定时信息,在有一个扩展段时,可以有27MHz分辨率的定时信息(或者是每秒1/27×106)。为了使系统时间可以在一次随机存取或通道改变后被重新初始化,参考时钟经常被包含在数据流中。
因此,非常重要的一点是要理解时间标记参考了一种解码器假想模型。在这种模型中,解码器可以迅速地将图像解码。但是象一般的熟知本领域中技艺的人所理解的那样,任何真正解码器都不能做到这一点,它必须花费步骤来修改图象应被显示的理论时间。而且,时间标记和参考时钟被用来确定显示时间和显示时间中的误差。这种修改依靠于具体解码器的具体结构。很明显,必须要在音频解码器中引入的任何延时需同视频解码器相当的延时相匹配。
当解码MPEG时,会出现“系统时间”概念上的不连续,例如,在一个编辑过的位流中,每个编辑点会有不连续时间。类似的情况会在改变通道时发生。应该明白,在这时使用时间标记时一定要小心,因为使用在一个时间范围内编码的时间标记而参考在另一个时间范围里定义的“系统时间”很明显要导致错误的结果。
图39显示了将MPEG系统流分离成基本流250的过程。尽管每个基本流通常会携带视频和音频数据,总的来说,各种类型的数据都可以被传送,每个基本流被分解成一系列的存取单元,如果是视频数据,这个存取单元是一图像。如果是音频数据,这个存取单元是固定数目的音频数据的样本。
在被分离出的系统流中还有一系列的参考时钟。这些参考时钟定义了“系统时间”。
根据这个发明,与每个基本流相关的是一个系列的时间标记。这些时间标记指出了相应的基本流中的下一个存取单元在什么“系统时间”出现。这些时间标记被叫做“呈现时间标记”(PTS)。
如果是视频数据,又定义了第二类时间标记,叫做“解码时间标记”(DTS)。由于DTS只是在PTS出现时才可能出现而且二者之间有简单的关系,这两类时间标记的具体差别可以被忽略。因为在这个发明中,PTS和DTS的区别没有什么意义。
解码时间标记(DTS)定义了解码一个访问单元(在视频情况下的图)的时间,呈现时间标记(PTS)定义呈现(显示)一个访问单元的时间。而且,所用的时序模式是假设模型,其中解码器的解码速度是无限快的。在这种情况下,DTS和PTS将彼此相等。
但是,在MPEG视频解码中有些帧的图像被重新排列了。因此在解码后,在它们被显示以前这些帧要在存储器内存一段时间,例如几个帧的时间。在这段时间中,接着上述图象被解码的图象被显示就会有问题。因此,对于这些重新排列的图,DTS和PTS之间有区别。
根据这个发明,应该明白,为了适当地同步时间,时间标记的使用必须前后一致。在一个优选的实施例中,当图按照它们解码的顺序出现时,在解码流水线的某个位置上放置了时间同步电路,于是这个实施例使用DTS。
然而,这些电路也可以同样地被移到解码流水线中那些图被重排列之后的点上。于是图会按照它们显示的顺序到达同步电路。因此,在对使用一般技术时,在这个实施例中可以使用PTS。
在这个发明的优选的实施例中,从时间标记中得到的信息被以令牌的形式在不同电路中传输。令牌由一系列一个或多个信息字组成。令牌的第一个字包含了一个标明令牌类型的码。和那个令牌所包含的信息的类型。与令牌中每个字相关的是被置成1的扩展位来指示在当前的令牌中还有多个字。因此,令牌中的最后一个字由一个被置成0的扩展位来指示。在这个发明中,指示令牌类型的第一个字的码可以有很多位以使得有些码使用少一些位(允许第一个字中的其它位用于表示其它信息),而另一些码使用的位数多一些。
令牌可以按特性分为控制令牌和数据令牌。例如,在系统解码器和视频解码器的接口上,有两类信息:(1)编码后的视频数据,(2)从时间标记信息中得到的同步时间。编码后的视频数据被认为是数据,并由数据令牌传送。(例如,叫做DATA的令牌),而同步时间则被看作是控制信息,由控制令牌(一个叫做SYNC-TIME的令牌)传送。在这个发明中,还有一些其它的控制令牌会不时被用到。例如,一个FLUSH令牌,它的行为方式与复位信号类似。当由于一个错误需要重新解码之前,需要用这个令牌来初始化视频解码电路。
根据这个发明,一个优选实施例的目标是对两个电路进行时间同步。更具体一点儿,是要对两个电路进行时间同步而不把第一电路的系统时间直接送到第二电路。根据这个发明,通过在每个电路中提供一个同步时间计数器而实现了同步两个电路而不把系统时间从第一电路送到第二电路。
这个发明还通过为每个电路提供一个基本流时间计数器而做到了对两个电路进行时间同步而不把系统时间从第一电路送到第二电路。
相应的,这个发明的另一个目标是要使两个电路做到时间同步并确定物体出现的出现时间误差,如果有的话。它通过使用时间标记信息,系统时间和第一电路中的基本流时间来产生同步时间,并将其送到第二电路。并与第二电路的基本流时间的一份拷贝相比较,第二电路的基本流时间与第一电路的基本流时间同步。这个发明的系统还可以同步一个系统解码器和视频解码器而不用将系统时间直接从系统解码器送到视频解码器。通过为每个电路提供一个同步时间计数器使得不必将系统时间直接传到视频解码器,用通过为每个电路提供一个视频计数器使得不必将系统时间从系统解码器传送到视频解码器。
这个发明还可以同步一个系统解码器和一个视频解码器,并且确定被显示的帧的显示时间误差,如果有的话。它是通过使用视频时间标记信息,系统时间和系统解码器的视频解码时间来产生同步时间,并将其送到视频解码器,然后与视频解码器中的视频解码时间的拷贝相比较。视频解码器中的视频解码时间与系统解码器中的视频解码时间同步。
根据这个发明,从时间标志中得到的信息可以象前面描述过的那样通过使用控制令牌在系统中传递。
图40显示了这个发明中第一个优选实施例中,实行基本流时间标记管理的情况。参考时钟253代表系统时间,被系统多路分配器254解码并初始化。然后按照需要放到系统解码器256中的时间计数器255中。然后在90KHz下被增大。参考时钟253的第二个拷贝同时被放入基本流解码器257中的时间计数器255中,也在90KHz下被增大,并且与系统解码器256中的时间计数器255同步。
根据这个发明,时间标记251从系统多路分配器254通到基本流缓冲区260,使得它们得到与到来的数据相同的延时。时间标记251也可以加入一个修正,以补偿基本流解码器257的非零解码时间。修正后的时间标记251与存在基本流解码器257里的所存的时间计数器258中的时间的拷贝相比较来确定解码后的信息是否出现得太早或太晚。
上面这个实施例比仅仅将系统时间直接从系统解码器256中的时间计数器255传到基本流解码器257要好,因为系统解码器中的计数器每秒钟改变90000次。因此系统时间实质上需要被连续地传到基本流解码器257,将系统时间连续地传递需要有专用的管脚或与之类似的东西。通过使用系统解码器256中的时间计数器255和基本流解码器252中的时间计数器256,系统时间可以以参考时钟253的形式以一秒钟几次的频率传送。
在图41中显示了另一个实施例。在图41的这个实施例中,不需要将参考时钟253直接传到基本流解码器257。这是通过使用第二个计数器“es-time”262实现的。这个计数器包含有基本流时间的信息。这一第二计数器被保存在系统解码器256和基本流解码器257中。两个es-time计数器262和263在接通电源或在其它时候例如改变通道时清零,然后从那里开始自由运行。由于这个实施例要求两个es-time计数器262和263保持同步,所以要注意必须要采取措施以保证两个es-time计数器不失去同步。为了保持两个es-time计数器262和263保持同步,可以用系统解码器中的es-time计数器的进位标志对基本流解码器257中的es-time计数器进行清零,象图41显示的那样。
正象在图41中显示的那样,代表系统时间的参考时钟253由系统多路分配器254解码,并置入系统解码器256里的时间计数器255中,然后在90KHz下增大。这个发明中的系统解码器256中的es-time计数器262和这个发明中基本流解码器257中的es-time计数器263是互相同步的,并且都在90KHz下被增大。基本流时间标记也被系统多路分配器254解码。因此,可以利用基本流时间标记、时间计数器中的系统时间和系统解码器256中的es-time计数器262里包含的基本流时间,按照方程3-1计算出同步值X。
下面这组方程3-1(a-d)说明了这个发明中的一种方法。这种方法用于时间同步,可以避免将参考时钟253送到基本流解码器257。方程3-1(a)是由时间同步所要求满足的方程。由于不愿意将系统时间直接传到基本流解码器电路257。如图41所示,利用系统解码器256,根据方程(3-1)(b-d),产生了一个表示同步时间的值X,并将这个值送到基本流解码器。然后将同步时间x与基本流解码器257中的es-time计数器中的基本流时间比较。于是,比较的结果可以用来判断解码的信息是否出现得太早或太晚,而且可以继续被系统用于时间同步。
方程3-1:
(a)、时间同步=(基本流时间标记-系统时间)
(b)、时间同步=(X-基本流时间)
(c)、(X-基本流时间)=(基本流时间标记-系统时间)
(d)、X=(基本流时间标记-系统时间+基本流时间)
在这个发明中,同步时间X可以加上一个修正值,以补偿基本流解码器257中的非零解码时间。修改后的同步时间与基本流解码器257中的es-time计数器263中存储的基本流时间进行比较。以确定解码的信息是否出现的太早或太晚,并进一步用来作为系统时间同步。注意,可以将基本流解码器257中的es-time计数器263中的基本流时间减去修正时间,而不必在同步时间X中加上修正时间而得到相同的结果。上面这个实施例是用来产生同步时间X并判断信息是否出现得太早或太晚的一个例子,很显然,对于那些在技术上很熟练的人来说,很容易找到很多其它的方法来达到上述要求。
例如,图42给出了根据这种发明的另一种确定同步时间X的方法。在这个例子里,系统解码器不存储基本流时间,相反,它在寄存器initial-time 265中记录系统时间的值。当基本流解码器257中的基本流时间计数器es-time 263被清零时。es-time 263的值可以通过系统解码器256计算得到,因为它将是当前系统时间和init-ial-time中记录的值之间的差值。
下列方程3-2(a-c)说明了进行时间同步的另一种方法。方程3-2(a)是表示基本流解码器257中的es-time 263中存储的基本流时间的值的方程。这个值被代入方程3-1(d)得到简化后的方程3-2(b),从方程3-2(b)可以得到方程3-2(c)。方程3-2(c)可以给出同步时间X。这个同步时间X是系统时间和在寄存器initial-time 265存的值的函数。
方程3-2:
(a)、基本流时间=系统时间-initial-time
(b)、X=(基本流时间标记-系统时间+[系统时间-initial-time])
(c)、X=(基本流时间标记-initial-time)
上面举出了两个利用这个发明得到同步时间X的方法。对于那些在技术上很熟练的人来说,很容易得到许多其它类似的方法。
图43显示了这个发明的另一个实现视频时间标记的管理的实施例。代表系统时间的参考时钟253被系统多路分配器254解码,初始化,然后是根据需要放入系统解码器256内的时间计数器255,然后在90KHz下增大。参考时钟253的第二个拷贝同时被置入视频解码器270内的时间计数器258,然后在90KHz下增大,并且与系统解码器256中的时间计数器255同步。
视频时间标记从系统多路分配器254流到视频解码缓冲区271以获得与到来的视频数据同样的延时。可以对视频时间标记加一个修正值来补偿视频解码器270的非零的解码时间。然后将修正后的视频时间标记与视频解码器270里的时间计数器258中时间的拷贝进行比较,以确定解码后的图是否被显示得太早或太晚。
图43显示的实施例是对原来仅仅将系统时间直接从系统解码器中的时间计数器传到视频解码器的方法的一种改进,因为系统解码器中的计数器每秒钟改变90000次。因此系统时间实质上是要被连续地送到视频解码器。连续地传送系统时间需要有专用的管脚或类似的东西。通过使用系统解码器中的时间计数器和视频解码器中的时间计数器可以将系统时间以参考时钟的形式每秒钟只传送几次。
现在参考图44,代表系统时间的参考时钟由系统多路分配器254解码,并放入系统解码器256中的时间计数器255中,然后在90KHz下增大。系统解码器256中的vid-time计数器272和视频解码器270中的vid-time计数器273互相同步,并在90KHz下增大。视频时间标记也由系统多路分配器254解码。于是同步值X可利用视频时间标记、时间计数器273中的系统时间和系统解码器256里的vid-time计数器272中的视频解码时间,根据方程3-3计算得到。
下面这一组方程3-3(a-d)说明了利用这个发明进行时间同步的一种方法。根据这种方法不必将参考时钟253送到视频解码器270。方程3-3(a)是由时间同步所要用的方程。如图44所示,由于不希望将系统时间直接送到视频解码器电路270,由系统解码器256根据方程3-3(b-d)产生了一个代表同步时间的X。然后将同步时间X与视频解码器270里的vid-time计数器273中的视频解码时间相比较。比较的结果用于判断解码的图是否被显示得太早或太晚,并且可以由系统用来进行进一步的时间同步。
方程3-3
(a)、时间同步=(视频时间标记-系统时间)
(b)、时间同步=(X-视频解码时间)
(c)、(X-视频解码时间)=(视频时间标记-系统时间)
(d)、X=(视频时间标记-系统时间+视频解码时间)
在这个发明中,可以将同步时间X上加一个修正值,用以补偿视频解码器的非零的解码时间。然后将修正后的同步时间与视频解码器270内部的vid-time计数器273中存储的视频解码时间进行比较,确定解码的图是否被显示得太早或太晚,并被用来对系统进行时间同步。注意,时间的修正可以从视频解码器270中的vid-time计数器273中的视频解码时间中减去时间修正值而不在同步时间X中加上时间修正值。这样可以得到相同的结果。这个发明的上述实施例是产生同步时间X并确定帧显示得早或晚的另一个例子。对于那些在技术上很熟练的人来说,得到很多其它的解决方法是一件非常容易的事情。
这个发明的另一种很好的特点是不需要处理整个33位的时间标记数字或44位的参考时钟数字。这个发明将计数器限制在16位,并允许对视频解码器270进行16位操作。在初看时,在90Kz的分辨率下(只有2/3秒被使用)16位似乎不可以表示足够的数字范围。但是并不需要这样高的精度,因为对视频解码器270的时间控制只是对一个段时间是准确的(因为视频定时发生器VTG是自由地运行或者与一些和被解码的MPEG流没有什么关系的部分进行强制同步),所以它和时间标记和呈现时间没什么关系。
如图44和图45所示,同步时间X和视频解码器270中的vid-time计数器273只使用16位。这是由两个因素造成的。第一,系统时间和时间标记(用于得到同步时间,见方程3-3)之间的差别应该总是非常小的,这使得那些高位可以被去掉。第二,只可能控制图像出现在离它最近的帧时间中。因此,低位变得不必要,可以通过向右移4位来将其去掉。
因此,这个发明中使用的16位的时间信息可以处理在180μS的精度下(大约是一场的1%)11.5秒的定时误差。这对一个PAL或SECAM欧洲625线电视系统是在5626 Hz时钟的112.5拍(tick);对一个NTSC 525线电视系统是93.84拍。因此,使用16位允许一场的1%的精度下进行定进计算。
图46显示了利用这个发明在硬件中移动时间标记的一个优选的方法。在这个硬件中交换信息的优选方法是令牌,但是应该知道其它的方法也可以。硬件被分为两个模块,第一个模块被加在起始码检测器201后面。这个模块负责产生包含有同步时间x的SYNC-TIME令牌,正如上文讨论的那样。这一令牌出现在相关的那个PICTURU-START令牌之前,在MPEG系统流中,时间标记被加载在数据包头中,指的是数据包的第一帧图象。由于数据包并不按照视频数据排列起来。所以一般来说,在时间标记所指的这帧图像的开头之前,经常是前一帧的结尾。
在这个发明中,同步时间信息可由微处理器接口或通过使用令牌得到。无论是哪种情况,同步时间数据(16位)被存储在同步时间寄存器中(这一寄存器被分成两部分,允许对每一字节的单独存取),这在表12中有详细说明。
  表12    用于处理同步时间的微处理器的寄存器寄存器名称  大小/方向复位状态          说明ts_low      读写                   同步时间值的低8位。ts-low
                               寄存器是从属型的,以使得
                               新的值可以写到这个寄存器
                               中,而不影响前面写过的值。
                               (那将成为SYNC-TIME令牌的
                               一部分),当读操作读回从寄
                               存器的值时,对ts-low寄存
                               器的写操作会影响主寄存器,
                               直到利用ts-valid进行的主
                               从传递完成之后,才可以将
                                写入ts-low中的值读回。ts_high     8/rw                   同步时间值的高8位,和ts-
                               low一样处于从属状态
  表12    用于处理同步时间的微处理器的寄存器(续)寄存器名称  大小/方向复位状态         说明ts_valid    读写     0           这一位控制ts-low和ts-high
                             的主从传递。
                             当向ts-low和ts-high中写入
                             值时,微处理器应将这一位
                             置成l。然在应该查询这一位,
                             读回值1。在这时,写入ts-
                             low和ts-high中的值将已经
                             被传到从属寄存器(并且可
                             以被读回ts-waiting位将要
                             被置成1。然后,微处理器应
                             应将这一位清0,为下一次存
                             取做准备。ts-waiting   只读    0           当ts-low和ts-high不包含有
                             效的同步时间信息时,将这
                             个寄存器清0。
                             当ts-low和ts-high中包含有
                             效的同步时间信息时,将寄
                             存器置1,在下一个PICTURE-
                             START令牌之前会产生一个
  表12    用于处理同步时间的微处理器的寄存器(续)寄存器名称  大小/方向复位状态        说明
                              SYNC-TIME令牌,然后ts-
                              waiting将会变成0。应该查
                              询这一位,以保证向ts-
                              valid中写入一个1之前这一
                              位是0,保证在进行主从传递
                              重写同步时间时,上一个同
                              步时间已经被使用。
在这个发明中,设置了一个ts-waiting标志位,来指示有效的同步时间信息位于时间标记寄存器中这个事实。如果用SYNC-TIME令牌提供数据,就将那个令牌从流令牌中移去。
当碰到一个PICTRUE-START令牌时,检查指示同步时间寄存器状态的标志位。如果这个标志位没有被设置,则无动作,PICTURE-START令牌和后面所有的数据不受影响。但是如果标志位已经被置数,说明有效的时间同步信息在寄存器中,于是就产生一个SYNC-TIME令牌并将其放在数据流中PICTURE-START令牌的前面。然后,清除标志位,使得下一个出现的时间标记可以使用同步时间寄存器。
图46所示的第二个模块包括一个分频器由27MHz的时钟驱动。还包括一个vid-time计数器,这个vid-time计数器由与微可编程状态机(MSM)218相关的分频器278提供时钟。
有一个分频器278对时钟进行4800分频,如图44和图46所示。换句话说,4800是16的300倍(27MHz/90KHz)。下面将讨论图45和图46所示的4804.8选项。
在NTSC彩色电视中,帧频不是30Hz,而实际上是大约29.94Hz(精确地说是30000/1001Hz)。(在彩电出现之前,采用的是30Hz)。每个NTSC行扫描时间有1716个27MHz的时钟周期。(行扫描时间是帧时间的1/525)。
美国电视标准体系已经表示出一种在将来仍回到使用30Hz的意向(或者对HDTV更可能的是60Hz)。因此,MPEG支持精确值为30Hz的帧频。但是,由于不可能利用27MHz的时钟产生精确的30Hz的电视信号(即每行1714.29......个时钟周期)所以在MPEG体制中产生一个30Hz的光栅是很困难的。
一个可能的解决办法是在解码器中“屈服(bend)”时钟速度,来产生一个27.027MHz的时钟而不是27MHz的时钟。这个时钟用MPEG参考时钟除以300.3(而不是300)来产生90KHz的时钟而得到。当利用27MHz来产生29.94Hz的帧频对视频定时电路计时,这个27.027MHz的时钟会产生精确的30Hz的频率。
在这个发明的体制中,90KHz的时钟先被乘以16,于是将27.027MHz的时钟除以300.3×16=4804.8。
vid-time计数器273(上文讨论过)包含视频解码时间,并在每次分频器到达到达终止数时增加。vid-time计数器273由reset-time管脚进行清0。
分频器和在这个发明中的vid-time计数器可以用完全时钟的反馈触发器实现。这种触发器比其它地方使用的电阻性反馈或弱反馈锁存器更耐α粒子的腐蚀。用时钟反馈型触发器作为时间计数器有利于保证视频解码器的时间计数器与系统解码器中的时间计数器保持同步。
图47说明了当MSM 218收到SYNC-TIME令牌后处理的过程。MSM218可以读入由视频时间计数器指示的当前时间,并将其和视频SYNC-TIME令牌提供的值相比较。因此,它可以与它应该解码图像的时间相比较以确定它是否早或晚。
在这个发明中,一个有符号的16位的时间标记修正值被加到由视频SYNC-TIME令牌携带的同步时间X上(上面讨论过)。当在芯片复位时,这个修正值由MSM 218清零。如果不动作,同步时间保持不变。微处理器总可以写入ts-correction来修改同步时间,因此可以补偿视频解码器和音频解码器的不同的延时。
存储在vid-time计数器273中的当前视频解码时间被从修正的同步时间中减掉。这个值的符号给出了误差的方向(并确定了误差码,加果有的话,这个误差码由MSM 218产生)。于是还得到了差值的绝对值。这个结果同一个阈值相比较,确定定时误差是否在可接受的范围。因此,在目前,视频定时只能在标准时间加上或减去一个帧时间的准确度范围内进行控制(因为VTG 333自由运行),这个阈值只能在一个帧时间内设定。
如果误差超过了一个帧时间,必须要进行一些修正。这个发明中的MSM 218可以在解码太早时修正它自己的状态,因为MSM可以简单地延迟解码直到合适的时间。但是,如果解码的时间比打算的时间晚,这时进行时间修正就比较困难,因为不可能删除编码的数据缓冲区的输出的可靠的图像。根本上讲,解码序列被破坏了,修正这种情况最可靠的方法就是以一种类似随机存取或通道改变的方式,重新开始解码过程。为了便于这一过程,MSM 218的控制寄存器可被编程用来删除所有的数据,直到碰上一个适当的起始码或FLUSH令牌。另外,启动阶段,不产生错误信息“ERR-TO-EARLY”,不器考虑disable-too-early的设置,因为在启动时,期望第一帧图象来得早一点儿。
表13说明了MSM 218的寄存器是如何工作的,并详细说明了寄存器可生成的一些动作和错误消息信息。
               表13    时间标记MSM寄存器寄存器名称     大小/方向   复位状态           说明ts_correction  16/读写       0          在同步时间被使用之前加
                                    到它上面的修正值frame-time     16/读写     226或188     表示解码图象的定时容差,
                                    复位状态由PAL/NTSC脚决
                                    定。vid-time      16/只读        0          由reset或reset-time复
                                    位,视频解码时间的当前
                                    值。
            表13    时间标记MSM寄存器(续)寄存器名称    大小/方向    复位状态          说明manual-startup  1/读写       0         当使用decode-disable
                                   进行手工启动时,将其置
                                   1。在这时SEQUENC-END和
                                   FLUSH令牌在MSM中导致
                                   decode-disable被置成1。decode-disable 1/读写        0         当被置成0时,解码过程
                                   正常进行。
                                   在每幅图启动时MSM检查
                                   decode-disable的标志位,
                                   如果标志位为1,不再继
                                   续进行。
                                   注意,如果要进行手工启
                                   动,(例如没有时间标记
                                   管理的硬件时),则这位
                                   应该和Manual-startup同
                                   时置1。disable_too_early 1/读写     0         当有错误时,置成1。表
                                   明解码太早的“ERR_TOO-
              表13    时间标记MSM寄存器(续)寄存器名称    大小/方向  复位状态      说明
                                 EARLY”被消除MSM简单地
                                 等待,正确的状态。NTSC_30         1/读写      0        当置为1时,分频器被
                                 4804.8除而不是被4800除。
                                 当解码30Hz帧频时,自动
                                 设置。descard-if_late 1/读写      0        它没有作用除非产生了一
                                 个“ERR_TOO_LATE”(或
                                 者如果错误没有标出时,
                                 将要产生一个ERR_TOO_
                                 LATE)。如果这位被置成1,
                                 则所有的数据都被丢掉,
                                 直到discard-until指示
                                 的条件到来。discard-until   2/读写     0         指示由时间标记引起的丢
                                 弃数据的停止条件。
                                  0-FLUSH
           表13    时间标记MSM寄存器(续)寄存器名称    大小/方向   复位状态      说明
                                   1-SEQUENCE-START
                                   2-GROUP-START
                                   3-NEXT PICTURE
                                   注意1、丢弃一帧图像可以
                                   立即被恢复,如果那帧图
                                   像是一个段图像,这可以
                                   通过产生一个哑段来保留
                                   变化的头/尾段结构。因此,
                                   如果discard-until被置成
                                   了Next picture,但是将
                                   要产生一个哑域时,会多
                                  丢掉一帧图像。
这个发明进行时间同步的一结果是,可能会有两个错误中的一个产生。
如果解码发生在时间标记指示的时间之前,会产生一个ERR_TOO_EARLY。ERR_TOO_EARLY可以被禁止,但是ERR_TOO_LATE总会产生,除非所有的错误被屏蔽。
总之,这个发明包括:一个用于时间同步的装置,该装置有一个时间标记用于确定呈现时间,一个参考时钟用于初始化第一电路的系统时间,一个第一时间计数器用于与参考时钟通讯来保持第一电路中的系统时间和一个第二时间计数器,该第二时间计数器由与第一时间计数器同步的第二电路的参考时钟进行初始化,用于保持系统时间的局部拷贝,并用于确定系统时间和系统时间的本地拷贝之间的出现定时误差。这可通过比较时间标记和第二时间计数器实现。这个发明还包括一个用于同步系统解码器和视频解码器的装置。这个装置使用一个时间标记来确定显示时间,一个参考时钟来初始化系统解码器中的系统时间,一个第一时间计数器与参考时钟通讯来保持系统解码器中的系统时间和一个第二时间计数器。这个第二时间计数器由与第一时间计数器同步的视频解码器的参考时钟初始化,用来保持系统时间的局部拷贝,并通过比较时间标记和第二时间计数器,来确定系统时间本地拷贝和系统时间之间的显示定时误差。另一个实施例包括了一个用于同步第一电路和第二电路的装置,这个装置使用一个参考时钟来初始化第一电路的系统时间,第一电路有一个时间计数器与参考时钟通讯来保持系统时间。这个装置的第一电路中还有一个第一基本流时间计数器用于提供基本流时间。第一电路适于接收一个时间标记,第一电路通过将基本流时间加到时间标记上,再减去系统时间而得到同步时间。第二电路适于从第一电路接收同步时间,并且有一个第二基本流时间计数器与第一基本流时间计数器同步,为基本流时间提供局部拷贝,并通过比较同步时间和基本流时间的局部拷贝来确定系统时间和时间标记中的定时误差。通过这种方式,不必为了确定计时误差而将参考时钟信号直接传到第二电路。在另一个实施例中,一个用于同步第一电路和第二电路的装置有一个参考时钟来初始化第一电路中的系统时间。第一电路有一个时间计数器,和参考时钟通讯来保持系统时间,它还有一个第一视频时间计数器来提供视频解码时间。第一电路适于接收视频时间标记,并通过将视频解码时间加到视频时间标记上,再减去系统时间而得到同步时间。第二电路适于从第一电路接收同步时间,并有一个第二视频时间计数器与第一视频时间计数器同步,用以提供视频解码时间的局部拷贝,并通过比较同步时间和视频解码时间的局部拷贝来确定系统时间和视频时间标记之间的定时误差。因此,不必为了确定定时误差而将参考时钟信号直接送到第二电路。这个发明,还包括一种提供定时信息的方法。这种方法提供了一个视频数据流。这个数据流有一个时间标记装在数据包头中。这个时间标记指的是数据包中的第一帧图像。下一步,提供了一个寄存器。这个寄存器中有一个标志,它指示从数据包信头中得到的并放在寄存器中的有效的时间标记信息。接着,将时间标记从视频数据流中取出,放到寄存器中。然后,这种方法碰到了一帧图像的开始,然后检查寄存器的状态,通过检查寄存器的标志位来确定寄存器中包含的是否是有效的时间标记信息。如果标志位指示寄存器中包含的是有效的时间标记信息,则产生一个与这帧图像开头相对应的时间标记,并将这个时间标记插回数据流中。另一个实施例中有一个上文描述的装置。在这个装置中,基本流时间计数器被限制在16位。与之类似,在另一个上文描述的装置中,基本流解码器中的第二基本流时间计数器被限制在16位。另外,还有一个上文描述的装置,同步时间被限制在16位,用以控制基本流解码。这个发明还有一种方法用于解码图像,并根据一个阈值确定显示时间误差。然后它将视频数据分析成令牌形式来进行进一步处理,以确定是否指示了一个时间标记令牌,将时间标记令牌同视频时间进行比较,根据得到一个比值确定是否出现了一个定时误差。然后,它与阈值相比较,判断比较的结果是否在可接受的参数范围内,当指示了一个定时误差时。它还指示比较的结果什么时候超出可接受的参数范围。另一个实施例包括了一种使用系统解码器和视频解码器的装置。系统解码器适于接收MEPG系统流,并将视频数据和视频时间标记从流中分离出来。系统解码器有一个表示系统时间的第一时间计数器、视频解码器接收视频数据和视频时间标记,第二时间计数器同第一时间计数器同步。视频解码器亦有一个视频解码缓冲器以几乎为常数的速率接收视频数据,并以不同速率输出视频数据及传递视频时间标记。在从视频数据中解码图像的同时,视频解码器还将解码后的图的视频时间标记与第二时间计数器进行比较,确定合适的显示时间。还有一种方法可以确定第一电路和第二电路之间的时间误差。这种方法为第一电路提供一个系统时间(SY),一个时间标记(TS),和一个基本流时间(ET),并通过使用基本流时间(ET),时间标记(TS)、和系统时间(SY),利用方程:X=EI+TS-SY,得到同步时间X。它将同步时间X送到第二电路,并产生一个同步的基本流时间(ET2),然后通过利用同步时间X,根据方程ET2-X得到一个时间误差。于是可以做到使第一电路和第二电路在时间上同步,而不必将系统时间传送到第二电路。另一个确定第一电路和第二电路之间的时间误差的方法有以下步骤:提供给第一电路一个时间标记(TS)和一个初始时间(T)。通过利用时间标记(TS)和初始时间(IT),根据方程x=TS-1得到同步时间(X)。将这个同步时间(X)送到第二电路,产生一个同步的基本流时间(EI),然后利用同步时间(X),利用方程ET-X得到时间误差。通过这种方式,可以使第一电路和第二电路在时间上同步而不必将系统时间送到第二电路。还有一个确定第一电路和第二电路时间误差的方法,它包括以下步骤:提供第一电路一个系统时间(SY)、一个视频时间标记(VTS),和一个视频解码时间(VT),通过利用视频解码时间(VT),视频时间标记(VTS),和系统时间(SY),根据方程X=TS+VTS-SY得到同步时间(X),再将这个同步时间(X)送到第二电路,在第二电路中产生一个视频解码时间(VT2),这个视频解码时间(VT2)与第一电路中的视频解码时间(VT)同步,然后利用同步时间(X),根据方程VT2-X得到时间误差。于是,第一电路与第二电路可以在时间上同步,而不必将系统时间送到第二电路。
这个发明中异步交替缓存的详细说明
根据这个发明,为了进行异步交替缓存,两个缓冲区异步地进行操作;当这一个在写数据时,另一个在读。因此,这使得一个有第一速度流量的数据流被同步到另一速度,而同时还保持着理想的速度。在这个发明中,写控制和读控制都有状态指示器来说明它们正使用哪一个缓冲区,并说明控制正在等待存取还是正在存取它所使用的缓冲区。每边同另一边的一个单一位通信。以表示缓冲器正在使用这是在异步电路的两边中,唯一需要同步的信号。当一个控制电路(读或写)完成存取一个缓冲区后,这个发明将使控制传到另一个电路。如果在控制已经交替后,并且两个电路在试图存取同一缓冲区,则后一个控制电路则会开始等待。控制电路会一直等到每边都使用不同的缓冲区,例如,另一边已交替完。如果在控制交替后,它发现它在使用不同的缓冲区,它将不等待,立即开始存取。缓冲器之间的仲裁系统以两边都使用同一缓冲区来启动,在这里是缓冲区0。读的一边由等待开始,这时写的一边正在访问,因为两个缓冲区中都没有可有效读出的东西。
在根据这个发明的一个实施例中,交替缓存是两个独立的RAMS。这些RAMS中的所有信号例如使能选通脉冲,读的或写的一边复用的地址或数据,都依赖于每边使用的是哪个缓冲区。这种结构被显示出使用了很多在两个缓冲区之间的大量信号的汇流区域。
将两个RAMS合并为一个结构,可以省下很多汇流区域,而仍然保持着同样的性能,这种结构与这个发明的第一个实施例中的独立的RAM相比,有两倍的行单元。但是,第二个实施例必须有两对位线,因为向独立的缓冲区中读和写会同时异步发生。每行的宽度与原来相同(例如有同样数目的单元),因为这时的存取与对独立的各RAM存取,有同样的宽度。每对行被当作在同样的地址来存取,但是是从不同的缓冲区,于是,它们被接到一对不同的位线上。使用相同的地址,这些成对的行可以很容易地被一个接在读地址上的行解码器和一个接在写地址上的行解码器存取。而且,读写控制从不在相同时间存取同一缓冲区。所以在由哪一个行解码器存取哪一对上不会出现冲突。
与行解码器从不同缓冲区存取行的方式相同,这个发明的这个结构里的读写电路都接到每一对位线上,每个缓冲区一对。于是读操作和写操作可以复用至每个缓冲区,与上面相同的原因,它们不会发生冲突。
如图48所示,交替单元1包括带有RAM 12和14的交替缓存10,交替单元1还包括一个写控制电路和一个读控制电路,用来控制数据进出RAM 12和14。这些读控制电路和写控制电路通过使用选通脉冲。数据和地址控制线8来完成这一点。线7和9是控制线,用以指示由写控制电路使用的RAM和由读控制电路使用的RAM。线7用于控制写控制电路,即当读控制电路在使用时低电平为RAM 12,是高电平为RAM 14。同样,线9用于通知读控制电路,低电平时写控制电路在使用RAM 12,高电平时用RAM 14。
在这个发明中,交替缓存10有两个RAM阵列,12和14。交替缓存10可以异步轮流地读写RAM区,这使得这个装置可以获得高速存取内存的必要的带宽,RAM 12和14需要下列信号:写地址16、读地址18、输入数据20、输出数据22和读写使能信号(没有画出),也见图49。
写地址和读地址信号由多路转换器24转接用。RAM阵列12和14在传统意义上与写电路、行解码器和读电路一起运行。
在这个发明的第一个实施例中,在初始化交替缓存10时,RAM12将被写入直到控制电路向RAM 14发出一个写使能信号。
一旦RAM阵列12被写入时,它归入读电路4的控制来被读。在这时,RAM阵列14也被写入。很重要的一点是要注意,当RAM阵列归入读阵列控制2控制时,或归入写控制电路4控制时,会建立一个控制,直到读或写操作结束。然后,控制转换。在读控制电路4存取RAM阵列,例如RAM 12,并且这时写控制电路2也要存取同一RAM阵列12时,写控制电路则会开始等待。
因此,根据这个发明,产生两个控制事件,当读控制电路或写控制电路被不同的RAM交替时,它会立即存取这个RAM,因为这个RAM是自由的,没有在另一个电路的控制之下;或者,它将开始等待。在启动阶段,读的一边服从于写的一边,因为这时在每个缓冲区中都没有有效的数据可读。
这个发明的第二个实施例显示在图50中,一个集成的交替缓存区30包括一个由RAM阵列12和RAM阵列14组合而成的逻辑尺寸的RAM阵列32。换句话说,在第一和第二实施例中具有同样RAM量,但在第二个实施例中是两个RAM结合起来了。因此,一个集成的交替缓存可以节省很多汇流区域,而仍保持着原来的性能。
在本发明的第二个实施例中,写电路34和读电路36分别与在交替缓存10中的类似。但是这些电路现在包括有选择器,可以从下文描述的位线对中进行选择。与之相同,读操作行解码器38和写操作行解码器40与在交替缓存10中的也是相似的。但是它们现在可以存取下面在图51中描述的行对。
如图51所示,根据这个发明,集成的交替缓存30的特有结构被详细说明了。单个的单元42包含在行44中,读行解码器38和写行解码器40成对地存取行44。一对行有由地址线16和18提供相同的地址。读缓冲区线52和写缓冲区54为选择一对行42中的一个提供控制信息。缓冲区0的位线48和缓冲区1的位线50分别接在不同的行的单元上。并接在读电路34和写电路36上。为了清楚地描述寻址方式,浅的阴影部分表示读行解码器38存取缓冲区0中的一行。类似的,深的阴影部分表示写行解码器存取缓冲区1中的一行。
总之,这个发明包括了一个至少有两个RAM阵列的交替缓存器。一个写控制电路与RAM阵列通讯用于控制数据写入RAM阵列。一个读控制电路与RAM阵列通讯用于控制数据读出RAM阵列。而且,写控制电路和读控制电路互相进行通讯,提供对RAM阵列的同步控制。另外还有一种只有一个RAM阵列的交替缓存装置,一个写控制电路通过一对位线与RAM阵列进行通讯,一个读控制电路利用另一对位线与RAM阵列进行通讯。此外还有一读行解码器和一写行解码器用于通过一对行线来寻址RAM,以使得每个单元被读出。这个发明还提供了一种异步寻址RAM的方法。这种方法通过至少解码RAM中的一对单元而实现异步寻址RAM。它用一个行解码器对至少一对行线解码,然后选择一行存取,并使用至少两对位线连接到一个读电路和一个写电路,选择要使用的那对位线。
关于这个发明存储视频信息的详细说明
视频解压缩系统包括三种基本部分用于解码和显示图像信息。一个视频解压缩系统的三个主要部分是空间解码器,时间解码器和视频格式化器。这个发明包括了时间解码器和视频格式化器以及一种时间解码器和视频格式化器分别管理它们各自的图像缓冲区和后面的帧存储缓冲区的方法。在MPEG系统中,时间解码器包括两个帧存贮缓冲区,视频格式化器包含两个帧存贮缓冲区。
MPEG使用三类不同的图像:内部的(I),估计的(P)和双向插入的(B)。B图像是基于对另外两种图像的估计的。这二个图像一个来自将来,一个来自过去。I图像不需要时间解码器再进行解码。但是必须存贮在两个帧存贮缓冲区中的一个里,在以后解码P图像和B图像时用。解码的P图像需要从一个已解码的P图像或I图像中作出估计。解码后的P图像存在一个帧存贮缓冲区中,为以后解码P图像或B图像时用。B图像要求要从两个帧存贮缓冲区中都作出预测,但是B图像不存贮在帧存贮缓冲区中。需要理解的是,I和P图像不是在它们被解码后从时间解码器中输出,而是I和P图像被写入一个帧存贮缓冲区,并且只在后面需要解码的I和P图像到来时才被读出。换句话说,时间解码器是依靠于后面来的P或I图像将前面的图像清除出图像缓冲区。因此,这个发明中的空间解码器可以在需要刷新时间解码器的两个帧存贮缓冲区时提供伪的I或P图像。反过来,这个伪的图象在后面的视频序列开始时被清除。
如表14所示,图像帧按照表中数字顺序显示。
                   表14帧存贮显示顺序    I1  Be  B3  P4  B5  B6  P7  B8   B9  I10传送顺序    I   P4  Be  B3  P7  B5  B6  I10  B8  B9
但是,为了减少那些被时间解码器存贮在内存中的图象帧的数目,这些帧按照不同的顺序传递。从分析一个内部帧图象(I图象)开始分析非常有用。I图象按照它们将要被显示顺序传递过来。然后传送下一个预测帧图像(P图像)P4。然后传送所有将在I图像和P4之间被显示的双向插入帧图像(B图像),这些B图像由Be和B3表示。这允许传送的B帧参考前面的一帧(前向预测)或将来的一帧(后向预测)。在传递完所有将在I和P4之间显示的B帧后,传递P7帧,然后传递所有在P4和P7之间显示的B帧,即与B5和B6对应的帧。然后再传递下一个I帧I10。最后,传递所有在P7和I10帧间显示的B帧,即与B8和B9相对应的帧。这个传送帧的顺序任何时候只需要时间解码器在内存中保持两帧图像,而且不需要解码器为了等待下一个要传递的P帧或I帧而显示一个注入的B帧。如上文所描述并如表14所示,这个发明中的时间解码器可以被配置来提供MPEG图像的重新排列。通过这种图像重新排列,P或I图像的输出被延迟,直到数据流中下一个P或I图像开始被时间解码器解码。
在P或I图像被重新排列时,某些令牌如PICTURE_START,PICTURE_TYPE和TEMPORAL_REFERENCE在图像被写入图像缓冲区时被暂时存贮在芯片中。当图像被读出来显示时,这些存贮的令牌被读出。在时间解码器的输出中,新被解码的P或I图像中的DATA令牌被原来被解码的P或I图像中的DATA令牌所代替,然后被送到视频格式化器。注意,时间解码器的输出处于令牌化的宏块格式,而且这里没有块到光栅的转换。
简单地说,这个发明的视频格式化器存贮两个帧存贮或图像。在一些视频格式化器中,使用三个图像或帧存储来完成重复或跳过图像等一些特点。视频格式化器的外部DRAM包含三个帧存储器。在这里使用三个帧存储器使得在解码图像的速度与显示速度不同时,可以重复或跳过一些帧。
所有的I、B和P帧都被存贮在视频格式化器的帧存储器中。在任一时刻,可以有一个帧存储被显示,一个帧存储被写入数据,并且在有三个帧存储器的视频格式化器中,还有另一帧被存贮在第三个帧存器储中。
这个实施例通过使用一个有两个帧储备的时间解码器和一个有两个帧储备的视频格式化器来完成MPEG一般要完成的预测,重新排列和块到光栅转换等任务,也就是说总共有四个帧储备。在这个发明中,通过使用一个共享帧储备的方案来完成这些任务,而仅使用三个帧储备。但是,这个实施例不能只用三个帧储备,来处理视频格式化器的重复和跳过帧的任务。
这个发明将I图像存贮在第一帧存贮器中,将P图像存贮在第二帧存贮器中。由于需要进行块到光栅的转换,B帧被按照下文将详细描述的方式存储在一个第三帧存储器中。为了尽量减少需要使用的外部DRAM的数量,一种连续的B帧分享同一个第三帧存贮器的方案被使用了。
当一个B帧被解码时,它会参考在第一或第二帧存储器中的已经解码后的I或P帧。解码后的B帧被写入第三帧存储器中。这个实施例允许光栅在一帧还没有被完全填满时就开始扫描。光栅可以在一个帧存储器填满之前开始,使得下一帧B图像可以被写到同一个帧存储器中,以占据在前一帧顶部光栅所腾出的空间。
为了记录帧储备中哪部分是图像数据,哪部分可以被新数据使用,每个帧存储器被分成许多扇区,在这个发明中,每个帧存储器首先被分成两个段存储器。其中每个段包括N个扇区。在这里,N是这个段中,块行的数目。
场图像的帧编码是比较简单的,每个连续的宏块行占据场存储器的两个扇区。一旦写回过程进行到这一帧的足够下的部分,光栅开始从顶部读出每个扇区。一旦第一帧被写完,下一帧的开始被写到光栅余下的空间。检查每个扇区的状态,保证被光栅读的扇区真正已经满了,而在被写回时,所需的两个扇区是空的。
帧图像的帧编码要更困难一些。不同于场图像,数据的宏块行不是按照它们要被光栅扫描的顺序写入DRAM的。场存储被并行地写入,但是这些场被光栅依次地扫描。
考虑一个图象每个场存储器有8个扇区。场存储器0包括由0到7共8个扇区,每个扇区包括一块行(即图象宽度×8个象素点深度)场存储器1包括由8到15共8个扇区。每个扇区包括一块行(即,8个象素点深度×图像宽度)。
第一个宏块行被写入到场存储器0中的0扇区和场存储器1中的8扇区。这个场存储器继续被并行地写入。在某一时刻,光栅开始从场存储0开始显示扇区。这一时刻的选择,应使得光栅对场存储器的扫描不会追上写入过程。但是,第二帧不能够用与第一帧相同的方式写入。因为扇区的读写是按照不同的顺序,等待帧开始的同样两个扇区被空出意味着读和写不能同时进行。但是为了获得必要的显示和解码速度,又必须做到这一点。
因此,第二帧一定要被写入场存储器中已经被光栅空出的扇区。这可以通过将场存储器分成两个实现。因此,对于第二帧来说,半个场存储的含义改变了。扇区4-7变成了第二场存储器的上部,扇部8-11变成了第一场存储器的下部。即它们进行对换。第一个宏块行在扇区0和4被空出时写入这两个扇区。然后将后面的行分别写入1和5,2和6、3和7。下一行被写到扇区8和12中,一直这样,直到11和15。这种对内存的重新分配,使得写回操作和光栅扫描可以连续工作在适当的速度。
当第三个连续的B帧到来时,写回的顺序返回到第一帧的情况。
在使用帧图像的共享B帧存储器中;第一帧被写回到扇区0到8(第一宏块行=2块行),然后是1和9,2和10,3和11......7和15。
第一图像被从扇区0开始被光栅读出,然后是1、2、3、4、5、6、7、8、9、10、11、12、13、14、15。
第二帧图像被写到扇区0和4,然后是1和5,2和6,3和7,8和12、9和13、10和14、11和15。
第二帧图像从扇区0开始被光栅读出。然后是1、2、3、8、9、10、11、4、5、6、7、12、13、14、15。
注意,根据这个发明,第二帧的第一个宏块并不被写到扇区0和扇区1中,这是被光栅最先空出的两个扇区,而是它要等待扇区4空出。这样做是因为两个原因:第一,等待扇区4空出并不影响系统保持连续地解码和显示,即使在编码数据最差的情形下,它还容易实现。第二,当被分成很多扇区的图像的大小不是2的乘方数时,从内存的扇区中读出或写入的序列并不经常重复,(例如,NTSC格式每个场有30个扇区,这一序列每58帧重复一次)。这使得测试和修复都困难。
在这个发明中,考虑到实现方法,不是保留每个单个扇区的状态的记录,而是每个半场存储都有效地通过先进先出的方式实现。它有指针指向下一个要读写的位置。因此每个先进先出装置满了或空了都会分别导致写回操作和光栅操作分别被禁止。这可以由每个半场存储都是只读或只写的知识知道,就好象是一个先进先出装置。
总之,这个发明提供了一种存储视频信息的方法。这种方法将视频信息以I帧、P帧、B1帧和B2帧形式,将I帧存储在第一帧存储器中,将P帧存储在第二帧存储中;还提供了一个第三帧存储。这个第三帧存储有一个第一场存储和一个第二场存储。这两个场存储分别至少被分为两个内存区。在第三寄存器中存储B1帧,从第一或第二场存储中的一个选择的内存区读取B1帧,将B2帧的一部分写到B1帧已经被读出的那部分内存区。于是,可以用较少的内存在存储视频信息。
在后面的两个程序中,包含着用于这个发明的优先实施例中的代码。
这个发明中并行Huffman解码器的详细说明
根据这个发明,并行Huffman解码器块将对用Huffman方式编码的变长度码(VLCs)和固定长度码(FLCs)进行解码,并在Parser微可编程状态机(MSM)的控制下,通过令牌。
这个发明的这个实施例可以处理MPEG-2和MEPG-1的Huffman码。发明的这个实施例的一个重要方面是由于它是并行解码器而不是串行的,所以它可以保持很高的吞吐量。
这个发明的这个实施例采用一种码查找技术来解码Huffman码。这样做是为了达到性能要求,并处理第二MPEG-2变换系数表。这个系数表是不规则的或者说实质上是不标准的。
而且,发明的这个实施例还有一些特点使得它可以在一个时钟周期内解码流中一些特别复杂的成分,而不需要外部控制器的协助。例如,这些复杂的成分有换码编码系数、直流基值和运动矢量增量。所有这些成分都会以组合VLC/FLC成分的方式出现在流中。
现在参见图52,那里说明了并行Huffman解码器300如何处理变长度码(VLCs)的,FLCs要求一种分流结构。这种分流结构使用选择器301的输出来生成数据,并用一个输入段来规定FLC的长度。因此在解码FLC时,不需要ROM 302了。
但是,在解码VLC时,输入首先被装入如图52所示的两个输入数据寄存器“MSReg”和LSReg”中。正如名字所暗示的那样,早的和最重要的数据存在MSReg中。用选择器将下一个VLC的开头和ROM输入对齐。因此,为了解码第一个VLC,选择器输出它全部59位输入中的高28位。其中高16位被送到Huffman编码ROM 302中。对于后面的VLC,选择器有效地根据已解码的总位数对输入进行移位。这个总位数通过将每个已解码的VLC的大小加到一起得到。不同的字宽是可解码的最大编码大小的结果。它是28位MPEG-1 EscapeCoded系数和16位的最大VLC大小(DCT系数表)。
“表选择”输入被用于选择MPEG所要求的不同的Huffman码表。
Huffman码ROM
这个发明中,用于解码所有VLC的实现方法的本质是一个专用ROM 302。如图52和图53所示,它的地址由选择器/移位器控制。ROM 302负责进行一个VLC表索引计算。然后再进行一个索引到数据的操作,产生解码后的数据。
索引计算是一个内容可寻址存储器(CAM)操作。通过执行“不管”匹配来处理当前流中的Huffman码。由于所有的VLC码表是固定的。所以一个CAM-ROM就足够了。这也就是图54到图57所示的ROMAND阶段的工作。由于索引生成是通过一种查找方式(而不是算法性的)方式进行的。所以在处理规则的表时,没有限制。
ROM OR阶段将索引(一个激活的字线)转换成解码后的数据和码的大小(长度)。这个数据构成了解码输出(服从于误差检查),信息的大小被反馈以实现一个控制选择器的计算。因此,提供了一个有正确数据的解码器ROM 302在下面的时钟周期内解码下一个VLC。
在这个发明中的ROM 302的地址有两个字段。大的字段是要被解码的位模式,小的字段选择要检查哪个Huffman码表。必须被检查的位模式相当长,有16位,与最长的VLC码对应。而且还有一个附加的4位的表选择段。因此总共有20位的地址空间(大约有一兆的地址),尽管ROM 302只有450个入口。这一差别存在的原因是由于存在着“不管(don′t care)”位。
为了解码VLCs,AND阶段必须要可以解码“不管”位。这个“不管”位处于VLC的位模式中。这是因为所有比最大18位短的VLC后将跟上附加位。这些附加位在VLC解码时不起作用,由于较宽的地址,AND阶段先被预解码(2→4),然后ROM 302必须将“不管”处理与这个预解码结合起来,另外,除了完整的MPEG码表,ROM 302还有识别非法VLC模式的入口。这些模式存在于一些码表中。最大吞吐量
为了保持每个周期输出一个解码的项,必须注意控制解码器的输入,并对于一些复杂的符号采取特别的处理。(即那些不是单个的FLCs和VLCs)。
为了保持Escape-coded系数的峰值吞流量,必须能够在一个周期内输入至少一个完整的码,在MPEG-1中要求的最大长度是28位。这指示输入字宽度为32位(大于28的下一个敏感大小)。
正常变换系数也是复杂符号,如果从某个角度来看。它们由一个VLC接着是一个1位的给出级别值的符号的FLC组成,并且用与其它复杂符号(如运动向量,直流基和Escape coded系数)类似的方式处理。如果系数被当作一个VLC后面是一个FLC(在不同周期)来解码,不能达到峰值流通量。而如果让ROM 302解码符号位就会使ROM中两个最大的表的大小加倍。因此在这个发明中,通过对不同的符号采取特别的处理。以使得一个时钟同期可以得到最终要求的结果。FLCs和令牌
处理FLC的根本是要控制有FLC所要求的长度的选择器,忽略rom 302,简单地输出正确选择的FLC。因此简单的FLCs由解码器很自然地处理,不要重要的外部硬件。而且,令牌不用处理,直接送到解码器的输出。
实现
根据这一发明,这一节说明了几个实现解码器的重要特点。如图52所示,这种实现包括用计数器303和选择器301安排寄存器,和实际的码ROM。
图53的方案展示了核心部件如何互相连接以实现这个发明中主要Huffman解码的核心部分。寄存器ms[31:0]和Ls[31:0]分别是MSReg和LSReg,块phselect是选择器。计数逻辑包含在块phcclog中(与很多其它的逻辑在一起),计数锁存器被叫做CNTL[4:0]。这一方案中的其它逻辑用于处理命令、数据和动态命令、令牌以及对复杂符号的操作(在块phcop中进行)。
根据这个发明,图54显示了一方案。这个方案说明了一个ROM设计形式的很小的例子,用于实现Huffman码ROM。这个ROM 302不一般的特点位于AND阶段。在这里,通过使用预解码和“不管”处理。实现了一种解码变长度Huffman码的方法。
现在参考图55、图56和图57,主要见图55,这里展示了一个可以进行“不管”处理的ROM AND阶段的实施例。在这个实施例中,每个地址线(a[3],a[2],a[1]和a[0])被驱动沿它的真和反的方向穿过AND阶段。为了解码在一个给定地址线上的“1”和“0”,一个晶体管被以传统的方式或者接在真地址线上,或者接在反地址线上。为了解码“不管”信号(由X代表),一个晶体管既不接在“真”地址线上,也不接在“反”地址线上。
图56和图57显示了另一个实施例,在这个实施例中,利用预解码减少了最坏情况下,解码逻辑中晶体管的个数,在这些例子中,预解码时,将两个地址位合并成一个,这样的话四根地址线中的一个被驱动为高电平,4种可能数字的每个都可用2个地址位来表示。一个在本领域有普通技术的人都可以理解,这个发明会同那些将多个地址位合并为一个的高级预解码技术工作得一样好。在预解码时,如果被组合在一起的两个地址位有定义好的值(1或0,但不是“不管”),则将一个晶体管按传统的方式接在合适的地址线上。与之类似,如果两个位都有一个“不管”,就不使用前面的晶体管。但是,如果一个地址位要有一个明确值(1或0),然而另一个地址位需要一个“不管”,则需要两个预解码地址线之一被激活时,选择被驱动穿过OR阶段的字线。在图56所示的实施例中,通过放置两个晶体管实现了这一点。这两个晶体管分别位于相应的预解码地址线上,如码001x所示的那样并行处理。在图57所示的实施例中,没有使用并行连接的晶体管,也实现了所要求的解码。这时,两个独立的解码器,二者都必被选择且执行。它们用字线驱动器上的异或门结合在一起,所以只有在两个选择都被激活时,字线才被激活。
我们相信前面的描述已经足够详细地说明了整个的概念,而且对于这个发明中各个方面的系统的实现和操作也有了足够详细的说明,使得一个有一般技术的人都可以利用和实践这个发明的附属的特性、目标和优点,但是,为了使对这个发明有一个进一步的更深入的理解,有关这个发明的更具体的商业化的实现各种实施例相关的细节,以后将给出了进一步的说明和解释。
为了更详细地说明本发明的系统,采用下面的标题进行陈述:
概述......................................
起始码检测器..............................
分析器....................................
空间处理..................................
予测......................................
显示电路系统..............................
并行起始码检测器(scdp)....................
输入Fifo(先进先出)........................
输入电路..................................
起始码....................................
位填充的去除..............................
搜索模式..................................
非对准起始码..............................
交叠的起始码..............................
不被识别的起始码..........................
扩展和用户数据............................
PICTURE-END令牌的插入.....................
图象后停止中断............................
discard-all...............................
存取位(Access Bit)........................
被scdp识别的令牌..........................
Scdp存贮器图..............................
技术实现(Implementation)..................
编码数据缓存器周围的数据流................
工作原理..................................
不连续性..................................
启动......................................
实施例....................................
硬件......................................
时间标记信息的MSM处理.....................
启动......................................
MSM时间标记错识码.........................
对30Hz的支持..............................
引言......................................
状态机....................................
跳转和调用................................
中断和错误................................
跳转地址..................................
状态机内部指令............................
状态机测试................................
状态机微码图..............................
状态机微码字..............................
算术核心..................................
ALU.......................................
移位块....................................
进位块....................................
条件块....................................
ALU核心...................................
ALU微码字.................................
ALU的用途.................................
寄存器组..................................
寄存器组寻址..............................
寄存器组寄存器类型........................
寄存器组地址图............................
寄存器组微码字............................
令牌端口..................................
令牌端口微码字............................
多路复用器................................
UPI存贮器图...............................
引言......................................
接口......................................
功能性说明................................
定时要求..................................
微处理器接口访问..........................
引言......................................
接口......................................
功能性说明................................
畸形令牌..................................
曲折扫描路径..............................
扫描线扫描顺序............................
微处理器接口访问..........................
引言......................................
帧图中的予测..............................
以帧为基础的予测..........................
以场为基础的予测(在一幅帧图中)............
双优(在帧图中)............................
在场图中的予测............................
以场为基础的予测..........................
16×8MC...................................
场图中的双优..............................
总体组成..................................
水平过采样器..............................
引言......................................
4∶3过采样................................
3∶2过采样................................
2∶1过采样................................
过界效应..................................
输出象素数................................
位置信号..................................
多路传送信号..............................
水平对准..................................
过采样比率................................
视频定时产生器............................
引言......................................
水平定时..................................
垂直定时-PAL..............................
垂直定时-NTSC.............................
VTG结构...................................
水平机....................................
垂直机....................................
硬件比较器设计............................
输出多路传送..............................
边框产生..................................
垂直边框..................................
UPI控制...................................
输出多路传送..............................
概述
这份详细说明把本发明当作一个完整的芯片来对待。现在参看图58,那里展示出一张级别很高的系统方框图。在以后的各节中,每个方框得到扩展以提供一个更加详细的方框图。
这份说明准确地为电路的各种功能块之间的所有接口提供资料。这就使得每个功能块应该能够以完整的接口知识来进行设计。
像在图58中表示出来的那样,基本的系统部件包括时钟产生器350,一个起始码检测器201,一个语法分析器(parser)202,一个微处理器接口320,一个存储器控制子系统352,一个空间处理子系统351,一个预测子系统208和一个显示355。图58进一步说明发生在各系统部件之间的连系。
起始码检测器
根据本发明,图59表示起始码检测器201(SCD)和系统的别的电路块之间的连接。
SCD 201可以被看作能提供三种性质不同的功能。第一,SCD201提供一个从专用的引脚(pins)或者从MPI 320接收数据的输入电路。第二,SCD 201检测数据中的起始码,和第三,SCD提供必要的电路,把进来的数据装配成一种在编码数据缓存器(CDB)321内部使用的一种格式。
语法分析器(Parser)
根据本发明,图60说明分析器子系统。为CDB 321格式化了的数据被解包,并传到接收从MPI 320来的指令的语法分析器中去。此后,通过一个双线接口,数据传送到系统的其余部分。
空间处理系统
图61说明空间处理电路系统的各部件。这些部件包括一个逆向模式化器(Imodel)325,一个逆向曲折(IZZ)326和逆向量化器(Iquant)327和一个逆向离散余弦变换器(DICT)328。数据传入Imodel 325,然后到IZZ 326,下一步到Iquant 327,再后到IDCT328。
显示电路系统
本发明的显示电路系统在图62中示出。此系统包括一个垂直过采样器210,一个水平标度子系统331,一个输出多路传输器332和一个视频定时产生器333。
并行起始码检测器(scdp)
根据本发明,起始码检测器201是一个并行起始码检测器,这就是说,它并行传送数据。这个系统类似于早先在英国1994年3月24日提出申请的申请号NO.9405914.4以及1992年6月30提出申请的EPO申请号no.92306038.8(此后用“Brolly”表示)的专利中公开的系统。然而在两种起始码检测器之间还有一些重要的不同点。第一,假定字节是对准的。在本发明中为了寻找起始码数据用不着移位。第二,本发明主要以MPEG数据操作。
一个MPEG(1和2)起始码包括被称为起始码前缀(start-code-prefix)的在位流中的一个专门的位(字节样式)。此样式是23个零后面跟一个一。紧跟着起始码前缀(start-code-prefix)的8位被称为起始码值(start-code-value)。它表明起始码的类型。到达本发明的SCD处的起始码要求字节是对准的。因此,上述数据可以被规定成一个字节序列。例如:
0×00
0×00
0×01
0×b8是一个group-start码。
输入Fifo(先进先出)
本发明设计成在给定峰值数据率为250 Kbytes/S并假定编码数据缓存器不溢出的情况下,in-accept引脚决不会被拉低。因此,为了计算输入fifo的长度,必须知道:1)交替缓存器等待时间的最坏情况,和2)通过SCD的数据扩充的最坏情况。
按照本发明,输入数据以编码数据时钟速率到达时,scdp将对每个起始码发生二次停顿。(从数据流中清除了三个字节后)。
输入电路
本发明输入电路的运行情况和在Brolly中公开的相同。然而,二电路间有几个不同的注意点。第一,upi不做成一直要等到令牌的有效结束(因为这可能从未被设置)。作为替代,它做成一直等到in-token信号为低电平。第二,当进入字节模式时数据头的产生取决于那里存在某些字节模式数据。
起始码
在本发明中,由SCD识别MPEG起始码并把它们转换成令牌。这些在表15中得到表示。
     表15                      起始码值
起始码类型 起始码值
picture_start_code     0×00
slice_start_code     0×01 to 0×af
保留     0×b0
保留     0×b1
user_data_start_code     0×b2
sequence_start_code     0×b3
sequence_error_code     0×b4
extension_start_code     0×b5
保留     0×b6
sequence_end_code     0×b7
group_start_code     0×b8
位填充的去除
在start-code-prefix前面的任何零位都是填充位,它们能被安全地去除。在本发明中只去除完整的填充字节。
例如,下面示出的字节序列有13个填充位,实际只清除其中8个
0×20∥5个填充位
0×00∥8个填充位
0×00
0×00
0×01∥start-code-prefix
搜索模式
按本发明的search-modes在下面的表16中得到描述:
                  表16   搜索模式
搜索模式     操作
    0     正常操作
    1     搜索图像起始或更高的起始码
    2     搜索群起始或更高的起始码
    3     搜索序列起始或更高的起始码
任何非零搜索模式引起所有到达数据被废弃,直到找到希望的起始码级别。此时搜索模式复位为零,并可能产生一个start-code-search中断。一个新的控制位stop-on-search决定在产生中断后SCD实际上是否停止(中断也按常规被屏蔽,但停止不是强制性的)。
在本发明中,如果SCD接收一个FLUSH令牌,search-mode也被置零。然而。当FLUSH令牌给discard-all结尾时,search-mode被完全复位,也就是search-mode是由一个FLUSH令牌和discard-all的组合所复位。
非对准起始码
任何一种大于一个零字节的游程(run),后面跟一个0×01就是一个起始码。此外,任何一种大于23个零,后面不跟一个一的游程是一个非对准起始码。在字节对准领域中,这可以解释成:如果在去除了位填充后收不到0×01,则该起始码是非对准的。应该注意这种陈述实际上遗漏了一些非对准起始码(在那里牵涉到小于一个字节的填充)。
不再费力地在此数据表中描述那些种类的非对准起始码被检测,本发明的scdp忽略他们。换言之,填充仍然被清除。
交叠的起始码
一个起始码的“数值”部分有可能形成下一个起始码的“前缀”部分。典型地发生这种情况有二个原因:1)标准允许系统级起始码在数据流的任何地方出现一包括直接在一个视频级起始码的中间出现,2)出错。去除所有的看上去错误的起始码,直到最后一个,这样,提供了一个从出错中恢复的较好机会。
根据本发明,在字节对准环境下,能够发生交叠起始的唯一途径是:如果一个picture-start(值=0×00)形成另一起始码的一部分。在这种情况下,picture-start从数据中被去除,第二起始码得到解码。依次地,如果此码交叠,那么采取同样的步骤,直到检测到一个不交叠的起始码。
不被识别的起始码
在本发明中,保留值(0×b0,0×b1,0×b6),所有的系统起始码(0×b9到0×ff)以及sequence-error码(0×b4)都被当作不被识别的起始码。在去除了不被识别的起始码后,SCD废弃所有输入数据,直到找到下一个有效的起始码。它还将unrecognized-start出错寄存器置位,并且将依靠unrecognized-start屏蔽,产生一个中断。
扩展和用户数据
本发明中使用二个配置位
1)Discard-user(or not)
2)Discard-extn(beyond MPEG 2 main picofile,main level)
这二个配置位都被复位成一。
MPEG 2各扩展起始码是不同的。跟在extension-start-value后面的四位现在是extension-start-code-identifier,必须由SCD解码。产生四块新的令牌来标记他们。被允许的extension-start-code-identifier以及他们各自的令牌在表17中示出。然而,保留的extension-start-code-identifier不被识别。不被识别的exte-nsion-start-codes或被废弃(取决于Discard-extn)或用(老的)extension-data令牌代替。
              表17    扩展起始码标识符extension-     名称          新令牌                   头start-code-identifier0000           保留0001           序列扩展      SEQUENCE-               0×e80010           序列显示扩展  SEQUENCE-DISPLAY-EXTN   0×e90011           量化矩阵扩展  QUANT-MATRIX-EXTN       0×ea0100           保留0010           序列可伸缩扩展0110           保留0111           图像平移扫描扩展1000           图像编码扩展  PICTURE-CODING-EXTN     0×eb
            表17    扩展起始码标识符(续)extension-       名称          新令牌                 头start-code-identifier1001            图像空间的可伸缩扩展1010            图像时间的可伸缩扩展1011 to 1111    保留1111
PICTURE-END令牌的插入
现有标准(MPEG1,2,JPEG,或H.261)中没有一个规定结束一幅当前图像的方法。
然而在本发明中,SCD 201含有一种叫做in-picture的状态。每当SCD 201输出一个PICTURE-START令牌时,这个状态就被置位。任何一个后续的起始码,只要它在语法上高于picture-start(或一个FLUSH令牌),就引起产生一块PICTURE-END令牌。PICTURE-END令牌被产生,并且在任何和新起始码有关的令牌之前输出。当PICTURE-END令牌离开SCD 201时,in-picture复位。如果SCD 201在输入数据流中接收到令牌,包括接收到PICTURE-END令牌,操作在逻辑上是相同的。总这,按照本发明,能引起产生PICTURE-END的起始码(和令牌)的是:
picture-start-code  或令牌
group-start-code    或令牌
sequence-start-code 或令牌
sequence-end-code   或令牌
FLUSH               令牌
图像后停止中断
图像后停止(stop after picture sap)是本发明功能的一个特点,以便用干净利落的方法结束一个当前的序列,例如,信道的改变。完成这个功能必须尽可能自动化而不需要外部实时软件。
sap控制位叫做flag-picture-end
除flag-picture-end以外还有二个控制位,屏蔽和出错位:
1)after-picture-stop:决定在产生中断以后,SCD是否停止
2)after-picture-discard:在产生了一个flag-picture-end中断后,这个位决定scdp是否自动进入到discard-all模式。
这样,discard-all模式不必知道什么事件调用它,并且能够迅速而干净地离开discard-all模式,进入搜索模式。
按照本发明,一旦SCD输出一个PICTURE-END令牌,flag-pict-ure-end位就决定是否要采取任何行动。如果flag-picture-end被置位,则FLUSH在PICTURE-END之后产生,本事件就产生了。中断由flag-picture-end-mask决定,而(已经中断之后)停止取决于after-picture-stop。
作为例子,对于一次信道的改变,事件的序列如下:
1)伴随
after-picture-stop=0
及after-picture-discard=1,
对flag-picture-end置位。
2)对flag-picture-end-event作出响应:
a)将搜索模式设置到sequence(举例)
b)Retune等
3)或FLUSH或S/W将discard-all复位。
4)scdp搜索下一序列的开始
discard-all
一个R/W控制位discard-all引起本发明的scdp废弃所有输入直到且包括一个FLUSH令牌。该位被一个FLUSH令牌自动复位并可被flag-picture-end功能置位。
被scdp识别的令牌
虽然本发明的scdp的大多数主要功能和实际令牌的产生有关,但有些令牌当它们被加到编码数据口(或经过输入电路)时被scdp解码并对其进行动作。表18说明和定义这些令牌。
                  表18    能识别的输入令牌令牌                头             动作                 注解FLUSH             0×17           清除scdp           这些令牌可以引
                                                 起一个PICTURE-PICTURE-START     0×12           置位in-picture     END的产生。在
                                                 这种情况下,它PICTURE-END       0×16           复位in-picture     们将会使in-
                                                 picture复位并GROUP-START       0×11                              可引起一个flag
                                                 -picture-end事SEQUENCE-START    0×10                              件,且一个
                                                 FLUSH被产生。SEQUENCE-END      0×14DATA              0×04等         对数据搜索起始码其他              --              不被识别的令牌通过scdp后不发生
                              变化
scdp存储器图
本发明的scdp的各种寄存器及其有关的地址在表19中得到描述。
    表19并行起始码检测器存储器映射
    寄存器名称     位  复位        说明  地址
scdp_access    0  0×0
    scdp_access     [0]    0     访问位
scdipc_cd0[7:0]  0×1
    CDO[7:0]  [7:0]     编码数据口
scdipc_cd1[7:0]  0×2
    coded_busy     [7]    1     只读
    enable_coded     [6]    0
    coded_extn     [7]     只读
scdp_ct10[7:0] 0×30  0×03
    discard_extn     [5]    1
    discard_user     [4]    1
    discard_all     [3]    0     由FLUSH复位
    flag_picture_end     [2]    0     允许事件
    aftef_pictufe_stop     [1]    0     仅当事件被允许
    after_picture_discard     [0]    0     仅当事件被允许
    表19并行起始码检测器存储器映射(续)
scdp_ctl1[7:0]    0  0×4
    stop_after_search     [2]    0     仅当事件被允许
    start_code_search[2:0]    [1:0]    0
scdp_event[7:0]    0  0×5
    end_search_event     [0]    0
    unrecognized_start_error     [0]    0
    flag_end_lof_picture_event     [0]    0
scdp_mask[7:0]    0  0×6
    end_search_mask     [2]    0
    unrecognized_start_mask     [1]    0
    flag_end_lof_picture_mask     [0]    0
编码数据缓存器周围的数据流
本发明有下列优点:
1)迫使缓存器交替的一种方法
2)避免必须把字节打包成奇数位的一种方法
3)把SCD总线的宽度(可能较长)减少到8位
4)SCD把自己打包成32位数据,为避免大的总线,SCD的这个位处于dramif内部。在本发明中它叫做sccdbin。本模块把所有的数据打包成32位的字,将其推算定位在非数据令牌之间。
5)交替缓存器进行自己的计数和交替。sccdbin对PICTURE-END或FLUSH令牌(或信号)作出响应,发出fill-and-swing,缓存器对这个信号作出响应,进行清除。
6)位于Huffman解码器前的解包模块sccdbout删除跟在FLUSH或PICTURE-END后面的所有数据,直到它接收到一个由输出交替缓存器提供的buffer-start信号。
引言
这一节将根据本发明详细说明时间标记信息的处理。
工作原理
在MPEG-2中,利用在MPEG-2系统流中传送的信息实现对视频和音频数据的同步。主要有二类涉及同步的信息:时钟基准和时间标记。
时钟基准用来通知解码器用什么数来代表“现在”这个时间。它被用来初始化一个按有规律的时间间隔增加的计数器,使得在任何时刻解码器都有一个现在是什么时间的概念。
每个组成节目(典型地是视频和音频节目)的数据流都带有时间标记。在视频情况下,一个时间标记和一个图像有关,它告诉解码器应当在什么“时间”(由时钟基准初始化的计数器定义)显示该图像。
然而,像在MPEG中所有事情一样,情况要比这更为复杂些。存在着两种类型的时钟基准:节目时钟基准(PCR)和系统时钟基准(SCR)。时钟有达到90 KHz分辨率的信息而另外一个时钟有分辨率扩展到27MHz的附加信息。数据流中常常包含有时钟基准,以便在随机存取或信道改变后可以重新初始化该“时间”。
也存在着两种类型的时间标记:显示时间标记(PTS)和解码器时间标记(DTS)。这两类时间标记只对必须重新安排次序的I图象和P图象(而不是对B图象)有所不同。DTS告诉你什么时候解码图像,而PTS告诉你什么时候显示图像。在没有2-3下拉效果(2-3 pull-down effects)的帧图像的简单情形下,一幅I图象或P图象的DTS和PTS之差将是跟在该图象帧周期后面的B图象的数目再加1。
要知道的重要复杂情况是,DTS和PTS涉及一个假想的解码器模型,它能立即解码图像。任何实际解码器做不到这一点,必须采取步骤改变应该显示图像的理论时间(由时间标记和时钟基准决定)。这种改进将取决于解码器结构的细节。很明显,视频解码器引进的任何延时必须由音频解码器等效的延时给予匹配。
不连续性
在“时间”概念上的不连续性可能会发生。例如,在一个编辑好的位流中,每个编辑点将有不连续的时间。信道改变时会发生相似情形。必须小心,因为相应于另外一种时间体制的时钟基准所决定的“时间”,使用在一种时间体制中编码的时间标记,将会明显地导致错误的结果。
起动
在起动(或改变信道)时会发生一个特殊的问题,因为为了正确地开始解码存在着二种可能互相竞争的要求。从视频角度考虑,必须从一个系统头后面的I图象开始解码(可能并非所有情况下都如此,但大多数情况下这是一种正确的说法),但是从系统角度考虑,第一个解码图像应当带一个时间标记。然而,并没有要求每个图像要带一个时间标记,因此,如果试图寻找一个图像,它既是I图象又携带一个时间标记,那就有可能一直等下去。
人们可能想到从I图像前一幅有时间标记的图像来推算该I图像的时间标记会是什么。令人遗憾的是这是非常困难的,因为必须部分地解调介于其间的图像以确定它们是场图像还是帧图像(以及repeat-first-field是否已置位)。这要求数据通过编码数据缓存器并且被Huffman解码器废弃。
实施例
图63示出实现时间标记管理的第一个实施例。时钟基准253由本发明的系统多路信号分离254解码并送到一个代表时间的计数器255,该计数器以90 KHz频率增加。时间基准还被装到第二个相同的计数器258,它位于视频解码器270中。时间标记流过视频缓冲器271,因此它们和视频数据的延迟相同。然后把它们和本地时间复制品进行比较,以确定图像是太早还是太晚。
各时间标记流经视频缓存器271,以便它们得到与视频数据相同数量的延时。然后将这些时间标记和时间的当地拷贝比较,以决定图象是太早还是太晚。
根据本发明的另一个实施例示于图64中。它避免了必须把时钟基准253送到视频解码器270。这是靠采用第二计数器“vid-time”272,273(在视频解码器270和系统解码器中各有一个)来实现的。它们在开机时复位,然后自由运行。因为此实施例要求两计数器步调一致,因此必须采取步骤保证它们不会步调不一致。实现这一点是靠把系统解码器中计数器的进位输出去复位视频解码器中的计数器(如图所示)。
此实施例的另一优点是不必处理全部33位数。这个想法是把计数器限制到16位使得视频解码器270处理16位。虽然在90KHz(仅2/3秒)分辨率可能会出现表示的数字范围不够用,但并不需要如此高的精度,因为VTG自由运行(或是被强制与某个和正在解码的MPEG流毫无关系的信号同步),在视频解码器上,时间控制反正只精确到一场时间。
作为结果,似乎进入解码器的时间标记的少量较低有效位能被丢弃。在本发明中,丢弃四位。这意味着视频解码器利用20位数的16位。因而,分辨率是5625Hz,能表示11.65秒的时间差值。
所以,一个PAL场是5625Hz时钟的112.5节拍(ticks)。一个NTSC场是93.84节拍。因而仍可能得到定时计算精确度约为一场时间的1%,这对本发明是足够了。
硬件
图65表明按照本发明的硬件。对Brolly公开的那些增加了两个模块。第一个加在起始码解码器201的紧后面。它负责产生令牌。在PICTURE_START令牌的紧前面发生TIME_STAMP令牌。在MPEG系统流中,数据包头中携带了时间标记。该时间标记指的是数据包中的第一幅图象。因为这些包不和视频数据对齐,所以通常先有前幅图象的结束,然后才有时间标记所指的图象的开始。
可以或者通过微处理器接口或者用一个令牌向本发明的系统提供时间标记信息。在两种情况,时间标记数据(16位)都存在寄存器中。设置一个标志(flag)指明有效时间标记信息在寄存器中的事实。如果用TIME-STAMP令牌提供数据,则那个令牌从令牌流中除去。
当遇到一个PICTURE-START令牌时,指明寄存器状态的标志被检验。如标志是清零,则不采取动作,PICTURE-START令牌和所有后随的数据不受影响。然而,如果表明时间标记信息有效的标志在寄存器中可得到,则在PICTURE-START令牌之前产生一个TIME_STAMP令牌。然后标志被清除并可再次得到以用于发生的下一个时间标记。
第二个硬件模块与可微编程的状态机218有关。这仅仅是用27MHz解码器时钟计数的一系列计数器。第一个是一个预计数器(prescaler),它以4800除时钟(示于图中的4804.8选项在以后讨论)。4800仅是300(27MHz/90KHz)×16。
第二个计数器是时间计数器,它在每次预计数器278输出时钟时增量。它用reset-time引脚复位。
本级的计数器可能应当用完全定时的反馈触发器(SYNC)实现,它们比其他任何地方用的弱反馈锁存器更抗单粒子腐蚀(a-partic-le corrupTion)(这是因为担心Brian中的时间计数器可能和系统解码器中的计数器失去同步)。
可微编程的状态机218能读出时间计数器所表明的当前时间,并把它和TIME-STAMP令牌提供的值比较。所以它可确定比应该正在对图象解码的时间是早还是迟。
用于关系到时间标记的SCD 201中的寄存器示于表20。
       表20    时间标记“SCD”寄存器寄存器名    尺寸/   复位     说明
        方向    状态ts-low      8/rw     -       时间标记值的低8位
                         这个寄存器是从属的,使得新值可
                         写入寄存器而不影响前面写入的值
                         (那将成为TIME-STAMP令牌的一部
                         分)。在读回从寄存器的同时写入
                         这个寄存器影响主寄存器。在用ts
                         -valid使主到从传送生效以前,
                         写入ts-low的值不能被读回。ts-high     8/rw      -      时间标记值的高8位。
                         它像ts-low寄存器一样是从属的。ts-valid    1/rw      0      这位控制ts-low和ts-high的主-从
                         传输。
        表20    时间标记“SCD”寄存器(续)寄存器名     尺寸/  复位     说明
         方向   状态
                         当值已写入ts-low和ts-high时,
                         微处理器应写值1到这位。然后它
                         应定时查询这位,直到它读回值1
                         为止。在此时刻,写入ts-low和ts
                         -high的值会已被传送到从寄存器
                         (并且可被读回)而ts-waiting
                         会被置1。然后微处理器应写入值0
                         为下次访问作准备。ts-waiting   1/ro    0       当置0时,寄存器ts-low和ts-high
                         不包含有效时间标记信息。
                         当置1时,寄存器ts-low和ts-high
                         包含有效时间标记信息。在下一个
                         PICTURE-START令牌以前,TIME-
                         STAMP令牌会产生,然后ts-waiting
                         会变成0。
                         应定时查询这个位以保证在写1到
                         ts-valid以前它是0,以保证前面
                         的时间标记值在被主到从传输
         表20    时间标记“SCD”寄存器(续)寄存器名    尺寸/  复位    说明
       方向    状态
                       改写以前已被用过。MSM对时间标记信息的处理
本节将详细描述按照本发明当MSM 218接收TIME-STAMP令牌时的功能。
首先,一个16位有符号时间标记校正值加到TIME-STAMP令牌携带的时间标记。用在芯片复位时MSM 218将校正值复位到0,如果不采取动作,时间标记不改变。然而,控制微处理器可以写任何值到这个寄存器来修改时间标记,从而补偿经过视频和音频解码器的有差异的延迟。
其次,从当前时间减去已校正的时间标记。它的符号给出误差的方向(如果MSM 218产生任何错误码的话,此符号决定错误码)。然后采用这个差的绝对值,此结果与帧时间比较,如结果小于帧时间,不采取动作。如前面讨论的,由于VTG自由运行,时间精度只能被控制到标称时间加或减一帧时间。
在本发明中,如误差超过一帧时间,则必须作某些校正。如果解码太早,MSM 218能自己校正这种情况,因为它能简单地延迟解码直到合适的时候为止。然而,如果解码比意图的时间晚,则因为不可能在编码数据缓存器输出处可靠地丢弃图象而变得更困难。实质上,序列的解码被中断,改正这种情况最可靠的方法是以类似于随机访问或通道改变的方式重新开始解码过程。为了方便这个步骤,MSM 218的控制寄存器可被编程来丢弃所有数据直到遇到一个FLUSH令牌为止。起动
按照本发明,如果MSM 218在它认为是起动情况时(例如,在复位以后,在一个SEQUENCE-END令牌或FLUSH令牌之后而仍旧在第一个PICTURE-START以前)则MSM 218的动作可被修改。如时间标记表明解码理应早于当前时间发生,则此情况按上面详细描述的同一方式处理。然而,如时间标记表明解码仍留待当前时间以后发生(那是在起动后的正常情况),则即使误差小于一帧时间,解码器也将等待直到正确时间为止。在这一方式,可能把标称解码时间尽可能精确地设置到正确时间。然后,后面的图象最多在它们的标称时间早一帧或晚一帧被解码,不会引发任何错误情况。
另外,在本发明中,在起动期间(因为它期望早解码),不管disable-too-early设置是什么,错误“ERR-TOO-EARLY”不被产生。MSM时间标记错误码
作为时间标记处理的结果,可能产生两种错误之一。
ERR_TOO_EARLY产生,如果解码发生的时间比时间标记表明的时间早一些。
ERR_TOO_LATE产生,如果解码发生的时间比时间标记表明的时间晚一些。
ERR-TOO-EARLY可被抑制,但除非所有错误被屏蔽掉,ERR_TOO_LATE总是会产生的。
表21示出了按照本发明与可微编程状态机有关的各种时间标记寄存器。
             表21    时间标记“MSM”寄存器寄存器名       尺寸/    复位      说明
           方向     状态ts-correction  16/rw     -        在使用以前把修正值加到每个
                              时间标记。frame-time     16/rw    226或188  表示在解码图象定时上的允许
                              误差。
                              由PAL/NTSC引脚决定的复位状
                              态。time           16/ro     0        用reset或time-reset两者之
                              一复位。时间的当前值。manual-startup 1/rw      0        在置1时,用decode-disable
                              手动启动。在此情况,在MSM
                              处的SEQUENCE-END和FLUSH令
                              牌使decode-disable置1。
                              当置0时,用时间标记管理硬
                              件启动。Decode-disable永不
                 表21时间标记“MSM”寄存器(续)寄存器名          尺寸/   复位       说明
              方向    状态
                                 自动置1。decode-disable    1/rw     0         当置0时,解码正常进行。
                                 在每幅图象开始,MSM检查
                                 decode-disable的状态,如果
                                 它置1,就不继续进行。
                                 注意:如用手动启动(即没有
                                 时间标记管理硬件)在manual
                                 -startup置1时这一位应同时
                                 置1。disable_too_early 1/rw     0         当置1时,指明解码太早的错
                                 误信号“ERR_TOO_EARLY”被
                                 抑制,MSM只是等待去纠正这
                                 一情况。NTSC_30           1/rw     0         当置1时预计数器被4804.8除
                                 而不是被4800除。当解码30Hz
                                 帧速率时该寄存器被自动设置。
         表21时间标记“MSM”寄存器(续)寄存器名       尺寸/   复位     说明
           方向    状态discard_if_    1/rw     0       除非产生(或如果错误未被屏late                            蔽掉,本会产生)“ERR_TOO_
                            LATE”,这个寄存器没有作用。
                            如果它被置1则数据被丢弃直
                            到用discard-unTil指明条件
                            为止。discard_until  2/rw             指明造成时间标记引发的丢弃late                            停止的条件。
                            0-FLUSH
                            1-SEQUENCE-START
                            2-GROUP-START
                            3-下一幅图
                            注1,如果图象是为了保留交
                            替的上/下(top/bottom)场结
                            构而产生的假场图象,则对该
                            图象的丢弃立即被取消(un-
                            done)。其结果是,如果disc-
                            ard-until被置为“下一幅图”
        表21时间标记“MSM”寄存器(续)寄存器名      尺寸/   复位     说明
          方向    状态
                           但又坚持要产生假场,则多丢
                           弃一幅图象。对30Hz的支持
本发明并不适当地支持30Hz帧速率。然而一个具有本行一般技巧的人会懂得,如果时钟发生器电路适当地作修改,本发明可以解码30Hz数据。在这一情况,系统用27.027MHz时钟定时使得典型的“CCIR-601”光栅以精确的30Hz速率产生图象。为了适应27.027MHz时钟,时钟必须被300.3除以提供90KHz时钟。因为本发明用一个16的因子去定标这个值,所以时钟被4804.8除是必要的。
引言
本节按照本发明,详细描述可微编码的状态机(MSM)。建立MSM的目的是产生一个机构,对它作小的修改就能用于许多应用,诸如VLC解码器和地址发生器。
本发明的MSM具有通用的性质,它提供对各种各样特性的支持。然而,MSM的基础结构是模块化的,允许建造中的灵活性。相应地,具有本行一般技能的那些人会懂得本发明能用于许多种应用。
如图66所示,系统设计分为两部分。第一部分是一个状态机218。它产生在双线接口控制下传送到数据处理流水线的一些指令,这在Brolly应用中曾经公开过,在此将其作为参考并归入本文。第二部分是一个算术核心219,包含ALU 222和有关的寄存器组221。这个算术核心219是数据处理流水线的一部分。它在两个双线接口的控制下接收数据和指令。如状态机也控制上游的块,这两个双线接口可以合并。它在一个双线接口的控制下在它的输出端产生数据。把这两个部分组合在一起,就使完整的微码(ucode)字的定义成为可能。
状态机
按照本发明,状态机218向算术核心219提供指令。它也在整个指令进行过程中提供控制它本身的指令。
正在传送到算术核心219的指令的地址保持在程序计数器中。程序计数器复位到0×00,通过地址继续进行下去。然而,“跳转”或“调用”指令和/或“中断/错误”事件能使程序计数器重新加载,从而改变指令执行的次序。
在本发明中,状态机218最多允许4096条指令。然而,具有本行一定技能的那些人会知道,其它的指令数量也可用。这里提出数字并不是要作为一种限制。
跳转和调用
在本实施例中,所有指令都是条件跳转指令。对每个指令计算一个条件,决定是否跳转(即重新加载程序计数器)。“真”和“假”两个条件分别提供给无条件跳转或不跳转。其余的各个条件(总共16个)基于状态总线的测试。如条件不是“真”或“假”,状态机218将等待,直到算术核心219已执行该指令并为了对照条件进行测试把状态总线反馈到状态机为止。这些条件示于下面表22中。
                   表22状态机条件码      条件0001    F          假-永不跳转0010    C          设置进位0011    NC         清除进位0100    Z          零0101    NZ         非零0110    AN         ALU结果为负0111    AP         ALU结果为负1000    F          假-备用条件1001    F
               表22状态机条件(续)码     条件1010   LT     (S^V)[I-J指明I<J]1010   GE     ~(S^V)[I-J指明IJ]1100   I      一个索引寄存器增量曾经逐步通过终端1101   NI     一个索引寄存器增量未曾逐步通过终端1110   V      溢出1111   NE     Extn位是低
如果一条调用位已设置的指令引起跳转,假定跳转不发生的下一个地址会存储起来作为返回地址。相应地,这形成一个例程调用的机构。为了从例程返回存储地址,对地址0×001作一次调用,调用只支持到一次调用的深度,即只能有一个返回地址。尽管如此,从调用中调用虽然是错误的,在硬件中却不检查。中断和错误
在本发明中,如中断/错误线被采样为高,无条件跳转到中断/错误地址(地址0×001)。如中断/错误不发生的话要采用的下一个地址被存贮起来。为了从中断/错误例程返回,做一次到中断地址(0×001)的跳转。
按照本发明,状态机218用硬件工作,如同执行中断或错误例程两者中的任一个。差别在于中断例程在执行时屏蔽掉其它中断,而错误例程不这样做。状态机218现在的连接如同一个中断而不是一个错误引脚。跳转地址
装入程序计数器中的地址是跳转地址。这个地址的12位包含在一个微码字段中。它可以或者是一个绝对地址或者可以有一些从ALU 222输出的部分来置换它。如果一个地址要被置换,状态机218会等待,直到算术核心219已执行完指令并且为了置换把ALU 222的输出馈送到状态机为止。
按照本发明,地址的格式示于表23,“跳转地址置换”。一些标明“a”的位表明绝对地址位。余下的较低有效地址位(LSB)将被置换。有标志“s”的LSB是置换位。
          表23    跳转地址置换
替换的位数  B  A  9  8  7  6  5  4  3  2  1  0  s
 0  a  a  a  a  a  a  a  a  a  a  a  a  0
 1  a  a  a  a  a  a  a  a  a  a  a  0  1
 2  a  a  a  a  a  a  a  a  a  a  0  1  1
 3  a  a  a  a  a  a  a  a  a  0  1  1  1
 4  a  a  a  a  a  a  a  a  0  1  1  1  1
 5  a  a  a  a  a  a  a  0  1  1  1  1  1
 6  a  a  a  a  a  a  0  1  1  1  1  1  1
 7  a  a  a  a  a  0  1  1  1  1  1  1  1
 8  a  a  a  a  0  1  1  1  1  1  1  1  1
 9  a  a  a  0  1  1  1  1  1  1  1  1  1
 10  a  a  0  1  1  1  1  1  1  1  1  1  1
 11  a  0  1  1  1  1  1  1  1  1  1  1  1
 12  0  1  1  1  1  1  1  1  1  1  1  1  1
加载返回地址 1  1  1  1  1  1  1  1  1  1  1  1  1
本发明的地址置换特性允许跳转表的结构。状态机内部指令
可能要求在状态总线上做重复的条件测试。这些指令对状态机是内部的并要求有从算术核心219的稳定反馈。所以这些类型的指令可标记为对算术核心219非有效,因此算术核心219不能执行它们。相应地,提供一个“有效”位,以标志指令对算术核心219是有效的。状态机测试
在本发明中,为了使状态机218的操作能被检验,微处理器总线可访问许多寄存器。用设置“访问”寄存器为1,然后定时查询寄存器直到它读回这个值为止的方法就可得到访问。然后状态机暂停,可安全地访问。写0到“访问”寄存器,可重新启动状态机。
当微处理器有访问时,它能对以下寄存器读和写:
-程序计数器
-调用返回地址
-中断返回地址
-中断状态位(即表明一个中断是否在进行)
-微码的所有位
表24描述这些寄存器的各种地址
用产生一个微处理机事件的方法,状态机218也能停止它本身。只有事件的屏蔽位被设置时,状态机才会暂停。然后,当为这个事件服务时,应可正常地得到访问。对复位地址(0×00)的一次调用会产生一个事件。调用实际上未进行,它只是在本指令被执行以后产生事件。尽管如此,为了检查,这个调用会留在指令ROM的输出处。
本发明的状态机218有一种方式,在这一方式下它会单步通过它的指令。设置MSSR寄存器的位为0使单步初始化。然后状态机会在每条指令前面停止。停止状态用“1”=stopped表明。然后即将执行的指令将在指令ROM的输出处。它可通过微处理器访问被改变。为了重启动状态机,写“1”到MSSR寄存器的位1。这两个位寄存器都是同步的,所以在它们能被访问以前,它们要求微处理器的访问。状态机微码图
表25表明本发明的状态机的微码图。
         表25    状态机微码图
         地址             用途
         0×000           复位地址
         0×001           中断/错误地址
         0×002           各微码程序地址
         -0×fff状态机微码字
类似地,按照本发明,表26描述状态机微码字。
         表26状态机微码字位数      2 1 0 f e d c b a 9 8 7 6 5 4 3 2 1 0位用途    a a a a a a a a a a a a s c 条   件 v这里:
a=地址
s=置换一个地址
c=调用或跳转
条件=跳转条件码,和
v=对算术核心有效的指令算术核心
在本发明中,算术核心219执行在MSM 218内的所有数据处理。如图67所示,算术核心219的总体结构包含有一些功能块,它们从可用总线中选取输入并提供一个总线作为输出。
算术核心219是32位宽,是由位片(bit-slices)构成的,它允许在其他实施中构成8、16、24或32位数据通路。
如图68中所描绘的,本发明的算术核心219有三个主要功能块:用于和数据流通信的令牌端口360,用于完成计算(可能还有其他功能)的ALU 222以及包括所有寄存器的寄存器组221。在图68中所有输出总线都被注上标记。到各块中的输入就是从这些总线中被选择出来的。这些选择器的大小以及它们的输入可以改变,且受微码控制。
ALU
按照本发明,ALU块222负责算术核心中的所有计算和数字操作。它可以进行相当复杂的运算(如循环,乘法和除法),这些复杂运算是由相对简单的运算(如移位,有条件转化(conditionalinversion)和加法)的组合来完成的。其中每一块都将在下面被描述。然后再举例说明在算术核心219中这些块作为一个整体如何被用来实现更加复杂的计算。
移位块
在本发明中,“移位块”允许用于1位左移、右移或不移。1位总线k象是一个附加位似的循环移位进入字。这在表27中被表示出来。
                       表27移位块
ss    移位功能
00    I′=I
01    I′=I;NOP
10    I′=(I<<1)+k
11    I′=(I>>1)+(k<<32)如果ss=0b01,“NOP”作为一个整体信号发给ALU 222。这是一个空操作,它将阻止任何状态标志从上一操作改变。
进位块
进位块或从状态寄存器中取进位位或把它清除。在单字加法和减法操作中,进位位被清除,而在多字操作中,以前操作产生的进位(并存贮在各状态标志中)将被用作进位。这在表28中得到描述。
                     表28进位块
         c            进位功能
         0            C=0
         1            C=H从状态标志来条件块
按照本发明,块条件,到ALU核心功能的加数和进位在表29中被定义。
               表29条件块
         ii           反转功能
         00           J′=J
                      C′=C
         01           J′=~J
                      C′=~C
         10           J′=J & L
                      C′=C & L
              表29 务件块(续)
         ii          反转功能
         11          J′=(L?J:~J)
                     C′=(L?C:~C)ALU核心
本发明的ALU核心222执行简单的一套采用2的补码运算的逻辑和算术功能。这些在表30中被定义。
              表30 ALU核心
        ff          ALU核心功能
        0           I′+J′+C′    Add
        1           I′ ^J′         XOR
        10          I′& J′         AND
        11          I′|J′         OR
从ALU核心222的结果,四个状态标志被产生(参看表31)。这些状态标志存在寄存器组221中(如表36所示)并送回到状态机218以便和条件码进行比较。
            表31由ALU核心产生的状态标识
       意义        反转功能
       进位        从ALU操作来的进位出
       零          ALU的结果是零
       负          ALU结果的最高有效位=1
       溢出        ALU操作溢出ALU微码字
            表32说明ALU微码字。
                            表32 ALU微码字
       位号     6  5  4  3  2  1  0
       位用处   s  s  I  I  f  f  c其中
ss是移位块控制
ii是条件块控制
ff是ALU核心控制
c是进位块控制ALU的用途
表33描述根据本发明的ALU不同功能的位图。
                       表33
位号            6  5  4  3  2  1  0
加法(I+J)      0  0  0  0  0  0  0
减法(I-J)      0  0  0  1  0  0  0
乘法            1  0  1  0  0  0  0
除法            1  0  1  1  0  0  0寄存器组
图69说明本发明的寄存器组221。寄存器组221包含64个32位字的寄存器。寄存器组221能对部分字(partial words)寻址,也就是寄存器组能以64×32位,128×16位,256×8位,512×4位,1024×2位或2048×1位的格式被寻址。地址直接由微码提供或者地址的一部分可以从特殊寄存器替换进来。这就允许寄存器的变址访问。
在每一个指令下,在一个寄存器上可以进行读出-修改-写入。读出-修改-写入便于部分字写回寄存器组。写入的源由一个外部的有自己的独立微码的多路复用器来决定。如果不要写,寄存器组221的输出应当由多路复用器来选择。
取决于模式寄存器的位0,部分字可以当作有符号或没有符号的数字。如果部分字是负的(也就是它的最高有效位被置位),符号会被扩展到总线的全部宽度。这使在算术运算中易于使用部分字。
本发明的寄存器组221中有三个存储单元还被连到一个专用总线上,但它们仍可以和别的寄存器组存储单元并行使用。它们是表示在图69中的A和B寄存器以及状态寄存器。寄存器组还包含用于地址替换的变址寄存器,及伴随的终端计数寄存器、常数寄存器和一个说明寄存器组模式的模式寄存器。
寄存器组寻址
按照本发明,寻址必须妥善处理两个不同的特性:用于访问字的变宽度部分的可变长度地址和地址替换。
为了对部分字寻址,要求有一个较长的地址。因此,所有地址是变长度的,并且它们被编码如下:其中“a”是一个地址位,地址位的最低有效位是“s”,即替换位。
             表34可变宽度寻址
    数据宽度   B    A   9    8   7   6   5   4   3   2   1   0   S
    1   1    a   a   a   a   a   a   a   a   a   a   a   a
    2   0    1   a   a   a   a   a   a   a   a   a   a   a
    4   0    0   1   a   a   a   a   a   a   a   a   a   a
    8   0    0   0   1   a   a   a   a   a   a   a   a   a
    16   0    0   0   0   1   a   a   a   a   a   a   a   a
    32(24)   0    0   0   0   0   1   a   a   a   a   a   a   a
寻址是大头在下的(endian)。这就是说字的较高、较重要的部分是用较低的地址来寻址。
地址的一部分“a......a”能以变址寄存器之一替换。作为一个例子,采用表34中定义的8位字地址,表35表明如何确定要被替换的最低有效位的数目。所有尾随的零都被替换。
                        表35地址替换
要被替换的位  C  B  A  9  8  7  6  5  4  3  2  1  0  S
0 0 0 0 1 a a a a a a a a a 0
    1  0  0  0  1  a  a  a  a  a  a  a  a  0  1
    2  0  0  0  1  a  a  a  a  a  a  a  0  1  1
    3  0  0  0  1  a  a  a  a  a  a  0  1  1  1
    4  0  0  0  1  a  a  a  a  a  0  1  1  1  1
    5  0  0  0  1  a  a  a  a  0  1  1  1  1  1
    6  0  0  0  1  a  a  a  0  1  1  1  1  1  1
    7  0  0  0  1  a  a  0  1  1  1  1  1  1  1
    8  0  0  0  1  a  0  1  1  1  1  1  1  1  1
例如,在一个32位地址中替换进4位将会有0b000001aaa01111的形式,或者在一个1位地址中替换零位将会有0b1aaaaaaaaaaaa0的形式。
在本发明中,替换将来自二个8位变址寄存器中的一个,变址寄存器是被在寄存器组中微码字指定的。因此能够看出,在一个地址中最多能替换8位。
还能看出,按上述方案,使用象0b0000000000000或0b11111111111111那样的非法地址是可能的。非法地址导致无地址可被访问,使寄存器组的输出总线未知(unknown)。寄存器组寄存器类型
在本发明中,有许多寄存器组寄存器类型。每种描述如下:
·有独立总线的寄存器
三个寄存器(A、B和状态寄存器)除了能用寄存器组中常规的方法被访问,还有它们自己的专用总线。这就使得这些寄存器能够连到算术核心219中的更多地方并能和寄存器组中其他寄存器并行地被访问。独立总线只能以其全宽度,也就是32位宽访问寄存器。
对于这些寄存器没有微码写使能。只能通过有自己的微码控制字的外部多路复用器才能对它们进行写入。为了防止写入,如图70所示,它们必须以它们自己的值写入。
当独立总线寄存器象寄存器组中的寄存器那样被写入时,独立总线写入被封锁。
状态寄存器象独立总线寄存器那样被实现。寄存器各位在表36中被定义。
                  表36状态寄存器的定义
    意义     说明
0  1 变址寄存器 一个变址寄存器增量通过了它的终端计数
1  E 扩展 由输入来的扩展位
2  V 溢出 ALU运算溢出
3  N ALU结果的最高有效位=1
4  Z ALU结果是零
5  C 进位 由ALU运算来的进位
6 未用
7 未用
·变址和终端计数寄存器
提供二个8位变址寄存器用于替换到地址中去。其中一个能在微码控制下每指令被增量。此外,每个寄存器由一个终端计数寄存器伴随。当增量的寄存器被通过(passed)时,它的终端计数将复位为零。
变址寄存器叫做Y和Z,它们分别有终端计数寄存器U和V。它们全部都能在寄存器组中被访问。
变址寄存器Z有一个预先规定的解码器附在它的输出端(目前这种解码是一种转化(inversion))。取决于模式寄存器中的Index_Mode(位1),这个解码器而不是变址寄存器将被用于地址替换,它将从寄存器组中的Z被读出。(Index_Mode=1读解码,Index_Mode=0读计数)
·常数寄存器
在本发明中,寄存器组的32位存储单元中的16个将被预先规定成常数。这些常数可以象常规寄存器那样被读出。写入这些存储单元将没有影响。(对于当前的实施例选定的常数是0-7。然而可以理解常数的其他数字也可被采用)。
按照本发明,常数的这种实现免除了在微码中需要一个常数字段和在算术核心中需要一个常数总线。然而它的确限制了程序中可用常数的数目。(数目16是可协商的)。在每一种场合的基础上,这些常数可以被编程。此外,十分常用的数值,如有必要,能被连到多路复用器上。
寄存器组地址映像
表37表示用于本发明的寄存器组地址映像。
                      表37寄存器组地址映像
    32位地址     位 寄存器
    0×00     全部 A寄存器
    0×01     全部 B寄存器
    0×02     7:0 状态寄存器
    0×02     8 符号扩展方式
    0×02     9 变址解码方式
    0×02     31:10 常规寄存器
    0×03     7:0 Y变址寄存器
    0×03     15:8 Z变址寄存器
    0×03     31:16 常规寄存器
    0×04     7:0 U终端计数寄存器
                     表37寄存器组地址映像(续)
    32位地址      位     寄存器
    0×04     15:8     V终端计数寄存器
    0×04     31:16     常规寄存器
    0×05-0×37     全部     常规寄存器
    0×37-0×3F     全部     常数
寄存器组微码字
表38表示用于本发明的寄存器组微码字。
                表38寄存器组微码字
位号     d    c    b    a    9    8    7    6    5    4    3    2    1    0
位用途     a    a    a    a    a    a    a    a    a    a    a    s    r    I
其中
a=完整的寄存器组地址(总是12位)
s=替换位
r=用于置换的变址寄存器:如果r=0,1分别选择Y,Z变址寄存器。
I=用r说明的增量变址寄存器。
令牌端口
本发明的令牌端口是算术核心到数据流的连接。这是一个双线接口连接。
仅当令牌端口读周期时,在令牌端口处的数据输入才被定义。因此,它应该仅当读周期时才被使用。
如果在一个读周期中输入端口并不包含有效数据或者在一个写周期中输出端口不接受,算术中心将停顿。于是,它将执行空操作,不读新的微码字,不写寄存器。只有当这些状态不存在时,它才重新启动。令牌端口微码字表39描述令牌端口微码字。
               表39令牌端口微码字
    位号     1    0
    位用途     I    O
其中I=读入输入端口O=从输出端口写多路复用器用于块的源的选择是靠使用多路复用器来完成的。总线的所有组合几乎都许可(只有一个例外:功能块,例如ALU,的输入必须来自存储块,例如令牌端口或寄存器组)。
多路复用器是2、4或8输入。因此,它们分别使用微码字的1、2或3位来控制它们的输入的选择。UPI存储器映像
按照本发明,表40表示MSM地址映像。
             表40 MSM地址映像
    地址     位  存储单元
    0×000     0  MSM事件位
    0×001     0  MSM屏蔽位
    0×100     7  访问位
    0×101     0  MSSR设置单步
    0×101     1  MSSR监控单步
    0×101     2  MSSR中断状态寄存器(只读)
    0×102     3:0  程序计数器MSB
                   表40 MSM地址映像(续)
地址 存储单元
    0×103     7:0     程序计数器LSB
    0×104     3:0     调用返回地址MSB
    0×105     7:0     调用返回地址LSB
    0×106     3:0     中断返回地址
    0×107     7:0     中断返回地址
    0×2000×2ff     7:0     寄存器组
引言
在MPEG编码标准(MPEG-1及MPEG-2)中,量化系数被作为“事件”来编码。每一事件被编码成一个RUN和一个LEVEL。RUN是给定的非零系数之前的零系数个数。LEVEL是该系数的值。此外,在最后的非零系数之后使用了一个特别事件End-of-block(本块结束)以指示本块的余部是全零。
例如,假设有下列的系数序列:
1、-7、0、3、0、0、0、-1、0、0、0、0......0(总计64个系数)
这些系数可被由(RUN,LEVEL)表示的下列事件模式化:
(0,1)(0,-7)(1,3)(3,-1)(EOB)
逆向模式化器的任务是逆转此模式化过程,使64个系数的每一个都用纯粹的数表示,以便后续处理。
接口
下列信号引脚被用于将数据送入本发明的逆向模式化器:
·level[11:0]
·run[5:0]
·in_extn
·in_valid
·in_accept
各令牌被在level[11:0]总线上传送(用其低8位;level[7:0])。run[5:0]充当传送RUN信息的辅助总线。除了在DATA令牌的数据字中之外,它别无意义。
下列信号在逆向模式化器的输出使用:
·out_data[11:0]
·out_extn
·out_valid
·out_accept
功能性说明
在各DATA令牌中的数据被扩充,以使在逆向模式化器输出端出现的DATA令牌中,总是有64个系数。在大多数情况下,DATA令牌的最后数据字不会使第64个系数被产生。这不是错误,而只是在此刻EOB事件本应已被编码到位流中去。因此,在此场合,逆向模式化器必须继续输出一些零值数据的令牌字,直到在输出端已总共产生64个系数。
在某些情况(如数据出错时)下,在逆向模式化器输入端的DATA令牌有可能出现多于64个系数。此时模式化器必须丢弃所有的多余数据并在其输出处产生正好具有64个系数的令牌。
在输入端出现的一切非DATA令牌都被不变地简单传送到逆向模式化器的输出端。
定时要求
本发明要求数据以时钟速率通过逆向模式化器。
如果在Imodel输入处的信号无间断,且与输出相连的电路不使Imodel停止工作(即in_valid=1,out_accept=1),则在Imodel的输出端会每个时钟周期出现一个新的数据字。但是要注意此时Imodel可能并不是在每个单一的时钟周期都在其输入端接受新数据,这是因为(DATA令牌内的)非零RUN可以引起对每次输入产生一个以上的数据字。
对微处理器接口的访问
在本发明逆向模式化器的正常工作方式下,不要求其电路系统与MPI连接。请注意出错状态(过多的系数)不应该产生微处理器的中断。它只是用丢弃多余数据的方法在内部得到处理。
但是在块输入处的窥测(测试)电路却需要访问微处理器。
引言
在各MPEG编码标准中,系数被“曲折(zig-zag)”扫描,以使较低频率的系数在较高频率的系数之前得到传送。
根据本发明,逆向曲折(inverse zig-zag)的作用是将它从逆向模式化器接收的一维的系数流转换成可以由IDCT处理的二维系数阵列。
过去在MPEG-1中,只使用了一条确确实实的之字形曲折扫描路径(从而得名)。而MPEG-2却使用两条扫描路径。第一条是原来的MPEG-1路径,第二条路径被优化,以用在交错编码的场合,在那里往往会有一些异常大的垂直频率成分。
除了那些明显地按曲折扫描次序传送的系数之外,各量化矩阵也同样地按照曲折扫描顺序被下装(downloaded)。这发生在MPEG-1,H.261和JPEG。其结果是,本发明的量化器位于逆向曲折之前(逆向曲折曾被作为IDCT的一部分来实现)。所以量化器处理的是系数的一维流,这些系数以与各下装的量化矩阵系数相同的次序到来。因此,量化器只须将第一个系数与第一个矩阵元素相联系,第二个系数与第二个矩阵元素相联系,并以此类推。
但是,由于现在在MPEG-2中有两条扫描路径,对于逆向曲折位于逆向量化器之前的本发明,采用了新方法。各系数及各下装的矩阵被逆向扫描,然后逆向量化器处理二维数据。应当注意到,因为在三种数据表示中(两个曲折扫描及在IZZ输出处的扫描线扫描(raster-scan)次序),首系数总是在最先,末系数总是在最后,这种处理才是可能的。首系数在Iquant中作特殊处理,因为它是直流(DC)项。末系数也作特殊处理,因为作为所有其余系数值的函数,由于失配控制(mis-match control)的结果,可能需要对它修改(所以它必须在最末)。余下的62个系数则全都以相同的方式处理(每个系数有它自己的量化矩阵元情况除外)。
接口
在本发明的逆向曲折器的输入处使用下列信号:
·in_data[11:0]
·in_extn
·in_valid
·in_accept
在逆向曲折器的输出处使用下列信号:
·out_data[11:0]
·out_extn
·in_valid
·out_accept
功能性说明
IZZ对下列各令牌作出响应:
·PICTURE_START
·ALTERNATE_SCAN
·DATA
·QUANT_TABLE
所有其它的令牌则穿过IZZ,不作修改地通过。
PICTURE_START令牌使IZZ将它的表示两条扫描路径的哪一条为有效的(例如alternate_scan)内部状态复位为零(表示MPEG-1扫描)。
ALTERNATE_SCAN是一个可以用掩码Oxfe指定为值Oxeb的令牌。ALTERNATE_SCAN令牌见于表41。
 表41 Alternate_Scan令牌
 E 7  6  5  4  3  2  1  0
 0 1  1  1  0  0  1  1  s
“S”表示对各后继的DATA令牌使用哪种扫描,所以它被装入IZZ寄存器“alternate_scan”。
各DATA令牌被按照扫描路径零(MPEG-1扫描路径)作重新排序,这与alternate-scan的设置无关。注意,alternate_scan必须保持它的原有值(即必须不被置零),以使各后继DATA令牌得到正确处理。
各QUANT_TABLE令牌被按照扫描路径零(MPEG-1扫描路径)作重新排序,这与alternate_scan的设置无关。注意,alternate_scan必须保持它的原有值(即必须不被置零),以使各后继DATA令牌得到正确处理。
畸形的令牌
DATA和QUANT_TABLE令牌两者都可能是畸形的。DATA令牌无疑应当是正确的,因为Imodel应当已经保证它的正确形成。然而,对QUANT_TABLE却得不到这样的保证。由于必须实现对畸形QUANT_TABLE令牌的处理,所以对DATA令牌也应当有这样的实现。
根据本发明,在IZZ输入端出现的过短的DATA及QUANT_TABLE令牌应当在输出端产生具有正确数据字数(64)的令牌。这些字中包含的数据内容是不重要的,它们可能是令牌开始前重排序RAM中偶然存在的任何废弃值。与此类似,过长的DATA和QUANT_TABLE令牌也应当在输出端产生形式正确的令牌。就当使用开头的64个系数(矩阵元素),应当丢弃其余部分。
在畸形令牌之后的所有(形式正确的)后继令牌应当得到恰当处理。
不要求产生微处理器接口出错(中断)。
扫描线扫描顺序
在IZZ的输出处,本发明的DATA和QUANT_TABLE令牌表示的是二维数据。但是这些系数事实上仍被当作一串一维数字来传送。问题在于数据应当以行传送还是以列传送。
预测电路系统要求对象素域(pel-domain)数据按照扫描线扫描的顺序来编排。由于IDCT装置了数据,进入IDCT的数据必须与之相反。表42表示在IZZ输出端DATA和QUANT_TABLE令牌的系数的传送次序。
        增高的水平频率→u
 0     1       2       3     4     5     6     7
 01234567  0  8  16  24  32  40  48  56
 1  9  17  25  33  41  49  57
 2  10  18  26  34  42  50  58
 3  11  19  27  35  43  51  59
 4  12  20  28  36  44  52  60
 5  13  21  29  37  45  53  61
 6  14  22  30  38  46  54  62
 7  15  23  31  39  47  55  63
     表42 IZZ各输出系数对微处理器接口的访问
在IZZ的正常运行中,并没有对微处理器访问的要求。然而,可能要求作访问使重排序RAM得到测试。预期不会需要窥测器。在Imodel前头的那个窥测器对二者已足够了。
引言
本节讨论预测,在此引言部分列举所有可能的预测方式,并且为每种方式提供示意图以准确解释必须做什么。
在整个本节中,对于水平方向的操作(如半象素滤波)不给于特别的注意。这是因为这些操作与Brolly的相同。然而在垂直方向,由于隔行扫描图象格式的关系,事情就十分不同了。
在帧图中的预测
以帧为基础的预测
在本方式下,根据基准帧来形成预测。其结果就象是两个基准场首先合成一帧,然后根据该帧作出预测。注意,这正是Brolly所描述的情况。
半象素滤波可以在垂直方向进行,这由矢量的最低有效位来触发。除最低有效位外,下一最高有效位(位1)具有特殊意义,因为它将决定预测的最高行(top line)由上基准场(top referencefield)产生还是由下基准场(bottom reference field)产生。
因此,必须考虑四种情况,每一种取决于垂直矢量的两个最低有效位的二进制值。
vector[1]=0,vector[0]=0
如图7l所示,恰好16行(色度读8行)被读入,因为没有半象素滤波。从每个基准场读8(4)行。
vector[1]=0,vector[0]=1
如图72所示,读17(9)行,9(5)行读自上基准场,8(4)行读自下基准场。
vector[1]=1,vector[0]=0
如图73所示,恰好读16(8)行,但是注意现在预测的最高行已经读自下基准场。
vector[1]=1,vector[0]=1
如图74所示,读了17(9)行,8(4)行读自上基准场,9(5)行读自下基准场。
所以,位1表示哪个基准场持有为产生预测而必须读的最高行。此外,如果位0也被置位,位1还指示哪个基准场具有使半象素滤波得以进行的额外行。
很明显,直到两场都从DRAM读出之后才能进行半象素预测。
在对垂直活动矢量定标以获得在场存贮中的偏移时,必须十分小心。下表表43,说明了效果:
             在场中的偏移
    矢量     位图        上场       下场
    -2     ...11100     ...11110(-2)     ...1111(-2)
    -1.5     ...11101     ...11111(-1)     ...11110(-2)
    -1     ...11110     ...1111(-1)     ...11111(-1)
    -0.5     ...11111     ...00000(0)     ...11111(-1)
       0     ...00000     ...00000(0)     ...00000(0)
     0.5     ...00001     ...00001(1)     ...00000(0)
       1     ...00010     ...00001(1)     ...00001(1)
     1.5     ...00011     ...00010(2)     ...00001(1)
       2     ...00100     ...00010(2)     ...00010(2)
                                表43
以场为基础的预测(在一幅帧图内)
在本方式,对各场作独立处理。两场的每一场使用分别的矢量。与每一矢量有关的是另一个一位的标识(motion_vertical_field_select),此标识指示预测应该根据上基准场还是根据下基准场来作出。矢量的最低位仍旧指示是否需要半象素滤波,但是位1没有特殊意义。注意,场矢量和帧矢量的测量单位不同,具有值n的场矢量所表示的(在屏幕上的)实际位移量与具有值2n的帧矢量相同。
然而现在有16种情况要考虑(因为有四个二进制变量:两个矢量各有motion-vertical-field-select,两个矢量也各有位0)。要画的图例太多,因此下列图解只讨论上场的预测。用类似的方法得到下场的结果。
如图75所示,motion_vertical_field_select=0,vector[0]=0
8(4)行读自上基准场以形成预测的上场。
图76表示motion_vertical_field_select=0,vector[0]=1。
9(5)行读自上基准场,然后被半象素滤波以形成预测的上场。
同样,图77描述motion_vertical_field_select=1,vector[0]=0
8(4)行读自下基准场以形成予测的上场。
图78说明motion-vertical-field-select=1,vector[0]=1
9(5)行读自下基准场,然后被半象素滤波以形成予测的上场。
双优(Dual Prime)(在帧图中)
双优是上一节中以场为基础的预测的特例。简要地说,双优是将以下两个特点结合起来:
·一种对各矢量编码的特别方法,使得尽管有效地形成了四个独立的场预测(独立是在各自有不同的矢量的意义上说的),事实上只传送一个活动矢量。因此矢量开销便大大减少了。
·对于每一场,预测信息读自各基准场的每一个,然后加以平均,形成最后的预测。这和B图象的情况非常类似,在那里分别作前向和后向预测,然后取平均值。
在本发明中,矢量解码将全部在语法分析器内完成。因此,当预测电路接收信息时,将真正有四个分别的矢量。
双优取平均将靠重新使用B帧取平均电路来完成(双优本身不能在B帧中使用)。因此预测电路的唯一有关的复杂性在于发出信号去指出(使用后向矢量令牌等等所作的)后向预测应当用前向基准场(而与后向基准场相反)来实现。由于P图象在正常情况决不应当请求后向预测,所以预测电路只需保持图型(P或B)的记录,以便能决定为了“后向”预测要使用哪个基准存贮。
场图中的预测
以场为基础的预测
这和在帧图中的以场为基础的预测极为相似。有四种情况,它们取决于motion_vertical_field_select和活动矢量的最低有效位。注意,讨论已形成的预测的上场和下场并不真正贴切,因为这只是对正在解码的图象的预测(该图象不是全部上场就是全部下场)。
图79说明motion_vertical_field_select=0,vector[0]=0
16(8)行读自上基准场以形成预测。
图80表示motion_vertical_field_select=0,vector[0]=1
17(9)行读自上基准场并被半象素滤波以给出预测。
图81描述motion_vertical_field_select=1,vector[0]=0
16(8)行读自下基准场以形成预测。
图82表示motion_vertical_field_select=1,vector[0]=1
17(9)行读自下基准场,并被半象素滤波,以给出预测。
16×8 MC
在本方式中,宏块(macroblock)被分成两个一上一下的16×8区域。为每个区域传送分别的场矢量。又有十六种情况要考虑(因为有四个二进制变量,两个矢量各有motion_vertical_field_select,两个矢量也各有位0)。要说明的事例也太多,所以下列图例只涉及上16×8区。用类似的方法得到下区的结果。
图83表示motion_vertical_field_select=0,vector[0]=08(4)行读自上基准场以形成上16×8区的预测。
图84描述motion_vertical_field_select=0,vector[0]=1
9(5)行读自上基准场并被半象素滤波以形成上16×8区的预测。
图85说明motion_vertical_field_select=1,vector[0]=0
8(4)行读自下基准场以形成上16×8区的预测。
图86描述motion_vertical_field_select=1,vector[0]=1
9(5)行读自下基准场并被半象素滤波以形成上16×8区的预测。
场图中的双优
场图中的双优只是场图中场预测的一个特例。将使用两个场矢量(一个将适用于上基准场,另一个适用于下基准场,语法分析器将给予保证)。两个预测之一看起来将是作后向预测,但是因为这是P图象。预测电路将把此理解为第二个前向预测。得出的两个预测然后将靠使用与B帧取平均同一的电路来取平均值。
总体构成
根据本发明,图87表示显示流水线的总体构成。数据从DRAM接口来到单一的多路复用接口。此外,DRAM接口将按行提供数据,这些数据被取整到超过正确的字节数,达到下一32字节的边界。然而,接近行末的那些象素可能位于计划中的显示区之外。
除数据外,DRAM接口将为每一通道(Y,Cr和Cb)提供一位,用来指示本字节是否当前显示行的末字节。还进一步提供一位,以指示数据来自哪个场。
在本发明显示流水线中的第一方框被分裂成三个通道。色度(Cr和Cb)数据供给垂直过采样器210。亮度(Y)数据在需要时可以在FIFO内延时。
垂直过采样器210的任务是以2∶1的因子对色度数据过采样,使色度数据有与亮度数据同样多的行数。为此,垂直过采样器存贮色度数据的每一行,并且产生在本行和下一行之间内插的输出象素。
在显示流水线中的下一级称作“水平对准370”。它是作为水平过采样器212的一部分实现的。其任务是对准数据,使得在每行的起点,三个通道的每一个的第一象素正确地被加到水平过采样器212。在每行的终点,一般说预期这些通道会在不同时间“用尽数据”。“水平对准”方框370的工作是从具有太多数据的通道丢弃多余数据,同时又停止其它通道,使它们等待,直到所有三个通道都被对准并准备好开始下一显示行。
在本发明中,水平过采样器212在水平方向对数据过采样,以便扩展数据来填满IV屏幕。为了节省硅片面积,滤波器由三个通道共用。可以做到这点,因为滤波器的总输出速度必须是27 Mbytes/s(时钟速率)。数据按照CCIR 601的次序被多路传送,使所产生的数据流被简单地多路传送到最终的数据流中去。
注意,水平过采样器212仅仅接纳DRAM接口提供的数据量并用选定的比例因子加以缩放。通常这些过采样器将产生对扫描线中实际行长度来说过多或过少的数据。这将在输出多路传送中得到处理。
也要注意,“水平对准”方框370不必知道为完成一行,需要每个通道有多少象素。计算此数字是十分困难的,因为水平过采样器输入象素数和输出象素数的关系不十分简单。水平对准方框370只是在“被提出要求”时才将数据在它三个通道的每一个上提供给水平过采样器212,即水平过采样器以要求的顺序“拉入”所需的象素数。到显示行的终点,通道之一将首先用尽数据,而这表示其他通道的剩余数据(如果有的话)应当被丢弃。
VTG 333只是在整个扫描区计数,它产生一系列定时信号提供给输出多路传送371。这些信号中,有些是内部信号,它们告知输出多路传送371如何去建立最后一条扫描线。其他是一些“外部”信号,如同步和消隐,这些信号也被加到输出多路传送371电路,使它们和数据被延迟同样的时钟周期数。
输出多路传送371方框有好几个任务。其中最有趣的恐怕是从数据中去除双线接口的性质。由水平过采样器212提供的数据仍有伴随的(valid)信号(输出多路传送也提供accept信号)。在多路传送输出端的数据没有双线接口,它只是被时钟打出,每个时钟周期一个字节。
输出多路传送371还有在图象四周画边框的任务。顶边框和左边框在VTG 333的控制下画出。VTG 333简单地告知输出多路传送371去产生必要数量的具有边框颜色的象素。在图的右部和底部,输出多路传送371画它自己的边框,即它知道去做此事,因为它用尽了图象数据。
在显示流水线中的最后的方框是8位至16位的输出方式变换器372。它十分简单,是一个触发器和一个多路传送器。有意将它在输出PAD本身处实现。这样做,就可能只布8位总线而不是16位总线。每一位将送到两个输出焊盘。
水平过采样器
引言
根据本发明,水平过采样器212执行对已解码图象过采样或内插的任务,以便将它扩展,以与显示扫描线相适应。
本发明的过采样器212可工作在四种方式:
1):1∶1——输出与输入相同
2):2∶1
3):3∶2
4):4∶3
在经过一些图象模拟和考虑可能实现的成本之后,已经决定使用三抽头滤波器来进行内插。
每个相继的输出用一组不同的滤波系数来产生。从这个意义看,滤波器是一种“多相”滤波器。总相数等于过采样比例的分子。因此,4∶3过采样器有四相,每产生第四个输出样本采用相同的滤波系数。
因为过采样器212产生着比它当作输入来接受的数据更多的输出数据,很清楚,不是每个时钟周期都接受一个新的输入样本。事实上,滤波器不接受新输入时的相数就是过采样比的分子和分母的差值。在这些比例的每一个中(1∶1除外),差值是1。因此,遍及各相的每个完整周期内,在其中的一相上不接受新的输入数据。这时的数据与上一相的相同。然而,滤波系数则与上一相不同。4∶3过采样
在4∶3过采样中,各滤波系数见表44,而图88表示正在工作的滤波器。输出象素实质上是以输入象素的加权平均来形成的。
  相     C[0]  C[1]     C[2]
  0     0  356     0
  1     42  220     -6
  2     128  128     0
  3     -6  220     42
    表44 4∶3滤波系数
注意,在最后一相(相3)算出之前不接受新的输入数据。3∶2过采样
表45说明3∶2过采样,而图89说明滤波器的工作。
   C[0]  C[1]    C[2]
    0     0  256     0
    1     68  194     -6
    2    -6  194     68
     表45 3∶2滤波系数2∶1过采样
和上面相似,表46说明2∶1过采样而图90表示它的滤波。
    相     C[0]     C[1]     C[2]
    0      0     256     0
    1      0     128     128
          表46 2∶1滤波系数
注意,相1本来可以同样好地用具有滤波系数128,128,0来描述。这样做的优点是各滤波系数就会和4∶3过采样器的相2一样。但是其缺点是“在计算最后一相时不接受新输入”的规则就会不真实了。
边界效应
在图象的边缘处,必须产生由位于图象区域外的象素形成的输出象素。为了避免这个问题,必须对边缘象素作图象重复,以使波波器可以不认为这是在图象的边缘而照常操作。
在三抽头滤波器的情况下,在本发明中就是如此,必须在图象左边和右边各重复一个象素。(如果是五抽头滤波器,就会要求在左边重复2个,在右边重复2个)。这在图91中示出。
因此,从概念上说,其实现可以看作由两个方框组成。
注意,如果图象宽度不是16象素的倍数,本方案就实行不通,这是因为DRAM接口总是提供宽度为16象素的倍数的数据。
虽然知道有这样的问题,我们也不准备为此做什么补救。至少说,大多数图象是16象素倍数的宽度,而且不管怎样,可以被边界效应影响的只是这一行的最后一个象素。这在图92中作了说明。
输出象素的个数
在本发明中,对于给定个数的输入象素,过采样器总是产生一定个数的输出象素。这一点很重要,因为这使语法分析器状态机能决定在过采样器的输出端会产生多少象素,由此决定为了使图象与扫描线适应,需要剪切掉多少象素(或增加多少边界象素)。
来自水平过采样器的第一个有效输出应当作为对正在输入到过采样器的第三个象素的响应而出现(因为这是三抽头滤波器)。由于重复了一个象素,它就总是在第二个实际象素输入过采样器时出现。
最后一个有效输出应当在此时出现,这时作为对正在输入的最后一个即(重复了的)象素的响应,所有可能的输入样本都已被产生。由于计算多相滤波器最后一相时使用了与次末相相同的输入数据,作为此最后重复象素进入过采样器的结果,可能产生一个或者两个输出象素。
如果做完这一步,过采样器将产生“q”个输出样本:
方程式1    q=N(pDIVM)+(pREM)
此为N:M过采样器对“p”输入样本作出的响应
例如,对于4∶3过采样器,可以拟定表47如下:
    P(输入象素)     q(输出象素)
    1     1
    2     2
    3     4
    4     5
    5     6
    6     8
位置信号          表47 4∶3过采样器输出象素数
在本发明中,两个信号与视频数据一起传送。它们使输出多路传送能确保数据被显示在输出扫描线的适当位置上。这些信号是:
·last_in_line
·field_id
last_in_line对一个象素时间,以及有关象素是扫描线中最后象素的信号来讲是有效的。field_id表示数据属于哪一场。“0”表示空间上场,“1”表示空间下场。注意,用在任何边框线之类上的这一表示法被应用于解码图象。field_id在一个象素前过早地改变状态,即在本场的次末象素与末象素之间。这就使本场的末象素得到识别,而不用等待下一场的首象素。然而,如果出于某种理由解码停止,就可能没有“下一场”。field_id信号在图93中示出。
如果需要真正的场指示符,可以将field_id延时一个象素来得到。
因为这些信号在整个显示流水线中与数据并排行进,所以重要的是使用两个信号而不是三个(后者可允许在场信号内提供末象素),以节省许多触发器。多路传送后的数据
将位置信号加到多路传送后的数据上时,需要小心。
数据以Cb Y CrY的次序作多路传送。
在本发明中,三个样本(Cb Y Cr)在时间上重合,所以应当被看成不可分割。剩余的字节(Y)位于上一(Cb Y Cr)象素和下一(Cb YCr)象素之间。
其结果是,一行的末字节总是Cr或Y这二者之一。(注意以3∶2过采样可以产生奇数的Y象素)。如果各行的末字节是Cr,则在多路传送信号中理应存在着不连续,因为一行的首字节永远是Cb
(CbY1Cr)(Y)(CbY1Cr)/(CbY1Cr)(Y)(CbY1Cr)水平方向的对准
在过采样器的输入处,不保证三个不同的通道总是对准的。
在本发明中,为了实现对准,在水平过采样器和水平对准这两个方框之间必须达成某种“约定”。根据本发明,约定的实施如下:
·一经要求,水平对准方框就将象素供给水平过采样器。当它
用尽某一给定通道的数据时,它会使用标记本行末象素的信
号告知过采样滤波器。这只会在有重复的象素的情况下发生。
水平过采样器保证一旦它已从给定通道被提供末象素,它就
不再在当前行对该通道索取另一象素。但是滤波器继续运行,
从其他各通道取入任何必需的象素,直到它从它知道已用尽
数据的通道索取象素。滤波器将它能在输出端产出的最后一
个象素标记为本行中的末象素。此刻它就将自己复位,准备
接受下一行数据。
·当水平过采样器了解到滤波器接受已经用尽的通道的数据时,
它就明白滤波器正在索取下一行的首象素。此刻在其他两个
通道的任何剩余象素被丢弃。在这些通道的每一个上将被提
供的下一象素将是一行的首象素。
虽然为了说明工作把水平对准方块和水平过采样滤波器看成两个分别的方框是适宜的,但是很可能它们是一起实现的。
过采样的比率
过采样比率将以两位二进制数供给滤波器。为了使滤波器有意识地工作,过采样比率应当由过采样器自身每场抽查一次。因此提供该比率的电路就有空在当前场的任何时候更新采样比,为下一场作准备。
随着每一场的首象素被实际接受(而不是紧接在上一场的末象素之后),此比率就应当被抽查。这样,在复位之后的最初场(或解码中暂停一下之后)就以正确的比率被过采样。
视频定时信号产生器
引言
本节根据本发明说明视频定时信号发生器(VTG333)。VTG主要担负产生各种模拟的视频同步信号及保持对显示系统当前扫描线位置的了解。这就使VTG能提供给输出多路传送器的各个控制信号,输出多路传送器在有效视频、边框和消隐等源中选择一个作输出。模拟和数字标准二者都得到支持;有两种帧的规格(PAL和NTSC)和有关的同步特性,它们可以在设置时选定。边框或剪切宽度可以在令牌内规定,此令牌将用一硬接线输入加载至VTG。水平定时
各水平定时参数的说明见图94。这些参数分为固定的(或适用于PAL,或适用于NTSC)和可变的(即和任何可以规定的边框或剪切有关的参数)。
视频显示的隔行扫描性质要求作以半行为基础的计数,所以各个定时时刻按前半行和后半行分别说明。
一行包括一段开头的消隐期、插入SAV令牌、一段有效期、插入EAV令牌和结尾的消隐期。在各消隐行期间,有效区将被插入消隐值而不是边框和数据。
行同步脉冲出现在每行的起始处(HSYNC)。在某此消隐行,出现两个同步脉冲,一个在前半行的开头,另一个在前半行之后。这些脉冲的宽度取决于现行的是哪个垂直区域:均衡区还是锯齿形(serration)区(即场同步脉冲区)。
在初始的水平消隐期间,按照剪切值(如果剪切位被置位)丢弃一些象素—允许一段120周的固定周期以从上一行丢弃RHS被剪切掉的象素。然后丢弃当前行的LHS象素。象素被停止直到有效区的始端。重要的是象素正被从中丢弃的数据流没有中断,否则会产生失真。
可是,如果剪切位未被置位,在一个左边界L的期间内,通过插入边界值来构造一个边界,其后是图象宽度的数据,然后再是边界,直到有效区的结尾。注意不必计算右边界L的值。
总的水平边框或剪切宽度的规格用象素来表示。为了使采样保持一致,LHS边框/剪切值必须是2个象素的倍数。因此,用时钟周期来表示,它必须是4的倍数。将最低的两个有效位从原来的以象素表示的总边框值中屏蔽掉,就能达到这点。例如,如果规定边框为91象素,左边框就将是88周期长,图象宽度将是(720-91)*2周。
到达输出多路传送的象素流被装填成32象素的块。考虑到这点及要支持的各种比例因子,一行要接收的象素最大数将是832。这意味着最大剪切值是112象素,即在LHS及RHS给予112周的剪切。垂直定时-PAL
根据本发明,在图95中表示PAL的垂直定时参数,分别表示了两场,因为它们有略为不同的定时。模拟参数由阴影区表示,它们在每场全相同,数字参数则用波形表示。为简单起见,表示了零边框的情况。如果规定为非零的垂直边框,则插入期限为borderT的边框,然后是图象高度的数据,然后再是边框,直到(固定的)有效区的末端。BroderT与图象高度的计算方法分别与(水平定时中的)borderL和图象宽度相似。再一次指出,初始边框(borderT)必须是4的倍数,现在是用半行数来表示,因为顶部边框必须是2的倍数。
注意,MPEG对576行的PAL视频编码,而模拟标准只规定575行。为适应此差别,为每场576个半行选择输出用的数据,但是只为必不可少的575行认定模拟的消隐信号。垂直定时-NTSC
往下,根据本发明,图96表示NTSC垂直定时。在原理上,它与PAL定时相似,虽然略为复杂一些。MPEG对480行的NTSC视频编码,而模拟标准却规定483行。这意味着为填满空缺必须每帧插入3行边框(每场3个半行)。此外,考虑周密的垂直消隐指示信号V是这样规定的:在有效视频行之前需要插入额外的边框行作装填之用。除了那些已经指出的行外,还将插入如上节所述的非零垂直边框。还要注意,两个标准都不允许作垂剪切。
至今,关于数字的消隐信号V还有若干不确定处,因为不同的参考来源提供了矛盾的信息。主要有两种可能的定时可能性,它们用V和V′表示,其相关的边框选择信号分别是SB和SB′。VTG结构
本发明的视频定时信号产生器包括用于水平定时定义域和垂直定时定义域的分开的机构(machines)。垂直机构为水平机构提供控制信号,水平机又依次为各垂直计数器提供半行增量信号。
VTG的各项输入是:
·时钟和复位
·PAL not NTSC
·带有剪切指示值的水平边框值
·垂直边框值
各项输出是:
·水平、垂直和复合同步及消隐信号
·数据、边框、消隐的选择信号
·用于剪切的一个丢弃数据位
·插入SAV及EAV
·用于构造SAV及EAV的F和V值
·用于插入SAV/EAV的两位YUV位置计数器
·一个首行位以便在启动时指示一幅图象的起点
所有的输出都到输出多路传送器方框去,包括各个同步信号,这些信号可以因此与数据保持同步。水平机(Horizontal Machine)
水平机主要是一个计数器,伴随有硬件以检测如图94所示的各个定时时刻的到来。计数从零至半行长度(后者对PAL和NTSC是不同的),并且每半行重复一次。对于每个固定的定时点有一个硬接线的(hardwired)比较器,定时点根据标准激活。此外,还有一个用于寄存边框值的寄存器(每场查询此值一次)、一个决定图象宽度的减法器,和一个从边框值递减计数到零的辅助计数器。此过程与主半行计数并行地发生。数据通路是10位宽,实现PAL和NTSC二者共需要15个硬接线的比较器。在图97中示出了当前实施例的结构及大致的规模。数据通路估计为360u×330u。
除数据通路外,在本发明VTG中的大多数控制逻辑将与水平机有关。这可能将总共需要100至200个门。
水平机的各项输入为:
·时钟与复位
·水平边框值与剪切位
·行、均衡或场同步指示信号
·PAL not NTSC
·垂直消隐
·插入垂直边框
水平机的各项输出为:
·水平和复合消隐
·插入数据
·插入边框
·插入各消隐值
·丢弃输入
·插入SAV或EAV,带有YUV计数
·水平同步
·复合同步
·行起始
·半行增量
垂直机
垂直数据通路基本上具有与水平数据通路相同的结构,但是硬件比较器是22个(PAL 8个,NTSC 14个)。主计数器的增量是半行,用每半行对各半行计数,并依次用每场对各半行计数。它也是十位的宽度。
此外,为了测试的目的,将半行的脉冲输入与另一个速度更快的时钟一起多路传送是有利的,这样垂直机就可以不依赖水平机而独立运行。
估计的规模是360u×420u。
垂直机的各项输入是:
·时钟与复位
·PAL not NTSC
·垂直边框值
·半行增量
垂直机的各项输出是:
·选择均衡、场或行脉冲
·垂直消隐(模拟)
·垂直同步
·用于构造SAV/EAV的F、V和V′
·插入垂直边框
·插入数据
·插入消隐值
·帧起始硬接线的比较器的设计
在本发明中,硬接线比较器的设计以一系列串联的n型半导体三极管为基础,它们或被预充电,或带上拉电阻,被组织成与存贮器的行解码器相似的式样。典型情况下,这些比较器将在上述的估计区域中约8u高。
输出多路传送
本发明的输出多路传送的任务是将要显示的数据放到一起。它用从VTG得到的定时信息来混合从显示流水线前几部分到达的数据。
输出多路传送的另一输入任务是去掉双线连接。输出多路传送之前的所有流水线的级都有双线接口,确实,到达输出多路传送输入端的数据总是来得太早,它们将会由于收到accept为低而被停住。但是在该器件的输出处却没有双线接口。
为了实现上述的对双线连接的去除,需要弄清楚数据供应的机理,使DRAM接口永不停住从水平过采样器输出端到来的数据。
从本质上说,输出多路传送在一场接一场的基础上不断地决定是否输出一场数据。在接近一场第一有效行起点的某时刻,输出多路传送作出决定。如果在其输入端有等待着的有效数据(即in_accept为低),则它就开始输出数据。反之,如果没有有效数据(例如,在第一幅图象已被解码之前),则它将整幅图象涂成边框颜色。
实际上,此过程还要略为复杂一些,因为输出多路传送也要保证将数据涂入正确的场内。即,必须有属于正确场的等待着的有效数据后才能开始显示。
如果在输出多路传送希望有有效数据送去显示的时候,数据在某刻停止有效(这决不应当发生),则输出多路传送就回复到输出边框颜色对本场的剩余部分一直这么做。
边框的产生
图98根据本发明说明在图象显示的左右边框颜色的产生。
如图示,VTG靠认定一个在输出多路传送内选择边框色的信号来产生图象的左边框区。但是,在图象的右方,边框色由输出多路传送自己产生。这是靠输出多路传送识别出它已把数据“用尽”并将图象宽度的剩余部分涂成边框色来实现的。
必须明白,对“用尽”数据有两种可能的解释。其一是从水平过采样器输出的数据不是有效的。但是,在这里不是这个意思。这里是指,当被last-in-line信号标记为在本行最后一个到来的象素被纳入输出流之后,就用尽了数据。图99表示当发生图象剪切(clipping)时与此相当的作用。
如图所示,VTG用认定一个告知输出多路传送丢弃输入象素的信号的方法来向输出多路传送发信号,要它剪切掉图象左方的象素。一旦此事发生完毕,VTG就发出输出多路传送应当输出剩余象素的信号。在有效行的终点(即720象素之后),VTG取消对此信号的认定,输出多路传送就丢弃加在其输入端的数据中任何剩下的象素。注意,一般说,在VTG指出的应当进行剪切的时间与有效行的起始时刻之间有(时间上的)间隙。这就可观地简化了VTG的设计。当剪切信号被认定时,输出多路传送丢弃象素;然后它等待着直到有效行的时期开始。输出多路传送
输出多路传送控制了不同数据源在一起的多路传送,以形成CCIR 601 8位多路复用的数据流。
定时关系(即多路传送的对象和时刻)主要由VTG控制。输出多路传送则与各更深层的问题有关。例如,在解码开始后,如果得不到可供显示的图象,输出多路传送会给整幅图象涂成边框颜色。最后,第一幅解码的图象将终于到达水平过采样器的输出端。典型情况下,这不会在一场开始时合适地出现。输出多路传送每场都问一次“有准备好作显示的有效数据吗?”。如果没有,它就等待下一场的出现(碰巧在一场中间出现的任何有效数据必须等待下一场的开始)。
输出多路传送还保证从SDRAM来到的正确场的数据被显列PAL或NTSC扫描制式的正确场中去。
除处理数据处,输出多路传送也为输出到引脚选择正确的同步和消隐信号。这便于连结到各式各样的组合编码器,DAC等等。为输出多路传送用的位器寄存器如表48所示。多路传送控制的一些位说明于表49。
                   表48输出多路传送寄存器
寄存器名 大小/方向 复位状态     描述
border-Cb     8     0×C0     边框颜色的Cb分量
border-Y     8     0×80     边框颜色的Y分量
border-Cr     8     0×40     边框颜色的Cr分量
outmux-ctril     8     zero
                表49来自Outmux-Ctrl的一些位
寄存器名 复位状态     描述
hs/ cs 0     0 控制在hcsync引脚上是水平同步还是复合同步0选择复合同步1选择水平同步
              表49来自Outmux-Ctrl的一些位(续)
寄存器名 复位状态     描述
hcsync_ah  1     0 控制hcsync引脚上的极性0选择低有效1选择高有效
vsync_ah  2     0 控制vsync引脚的极性0选择低有效1选择高有效
cblank_ah  3     0 控制cblanK引脚的极性0选择低有效1选择高有效
blanking601 4 0 在消隐期间输出控制的亮度数据值。0选择值零1选择值0×10(16)对CCIR 601数据这个引脚必须置1。
enbl_sav_eav  5     0  控制在输出流中一些SAV和EAV控制字的产生。0控制SAV和EAV,在此情况下,在
             表49来自Outmux-Ctrl的一些位(续)
寄存器名 复位状态 描述
本来要产生SAV和EAV的时间里输出消隐值。1使能SAV和EAV。注意blanking 601也应置1,以避免除了在SAV和EAV期间以外,值0出现在输出。对CCIR 601数据这个引脚必须置1
blank_screen  6     0 当置1时,这个位使整个屏幕被涂上边框的颜色,所以使屏幕消隐。注意解码继续正常进行,但已解码图象变得不可见。
vblank  7     - 这是一个只读位(写到这个位的数据被忽略)它表明垂直消隐。
a不管这个位的设置是什么,在消隐期间色度数度(Cb和Cr两者)总是0×80(十进制128)。视频解码器技术说明和特性
除了前面的详细说明之外,也提供关于适合本发明实施的一个视频解码器的优先实施例的下列公开内容。
·MPEG-2MP@ML·单个16 Mbit SDRAM·高分辨率MPEG-1·α影象(vision)可兼容·自动的出错掩盖(error concealment)·支持通道改变·时间标记管理 ·2/3和1/1下拉·视频缩放·电源(包括SDRAM)≈2.5w·自配置·小板面积·Quiet PadTM输出·片内视频定时信号发生器
本发明包括一个高度集成、易于使用的MPEG-2视频解码器。它完全支持MPEG-2 Main Profile at Main Level的所有要求。
本发明的系统也是自配置的(单个引脚在PAL运行和NTSC运行之间选择)并且,在许多应用中不需要外部软件支持就能开始和维持视频解码。出错掩盖和恢复是完全自动的。要求更高的应用可利用由运行在一个外部微处理器上的软件控制的高级特性。
本发明把它自己的微码存储在一个片内ROM上,从而避免用一个外部ROM或在解码能开始以前卸下微码的需要。见图100。
本发明的系统的下面更详细的说明,为了组织、清楚和便于说明的目的,用列在下面的标题陈述。信号..........................................寄存器图......................................电源..........................................逻辑电平......................................时钟信号.......................................复位信号.......................................编码数据接口信号...............................通过微处理器接口提供数据.......................在输入方式之间切换.............................接受编码数据的速率.............................编码数据接口定时信号...........................CDCLOCK........................................视频输出信号...................................视频输出控制寄存器.............................边框、缩放和剪切...............................视频输出控制寄存器.............................视频信号定时...................................MPI信号........................................MPI电气技术说明................................中断...........................................页寄存器.......................................SDRAM接口信号..................................SDRAM配置......................................在非JTAG系统中JTAG引脚的连接...................支持的指令.....................................特性...........................................对IEEE 1149.1的符合程度........................起始码检测器寄存器............................起始码的检测.................................discard-all装置...............................flag-picture-end装置.........................start_code_search装置........................SCD例-通道改变...............................分析器寄存器.................................错误码.......................................处理用户数据.................................系统组织.....................................信号和寄存器.................................电气技术说明.................................编码数据接口.................................视频输出接口.................................微处理器接口.................................同步DRAM接口.................................JTAG接口.....................................起始码检测器.................................视频分析器...................................时间标记管理.................................地址发生器配置...............................机械的信息...................................
本节包括按照本发明使用的所有信号(引脚)的列表和通过微处理器接口可利用的全部寄存器的列表。(见表50和51)。
                          表50信号
    信号名 I/O     引脚号     说明
 CDCLOCK I 137 编码数据接口。用于向系统提供JTAG端口编码数据或令牌
 CD[7∶0] I 133,132,130,129,128,127,125,124
 CDEXTN I 134
 CDVALID I 123
 CCDACCEPT O 122
 BMODE I 135
 ME[1∶0] I 99.98 微处理器接口(MPI)
 MR/W I 97
 MA[5∶0] I 107,106,104,103,102,101
 MD[7∶0] O 119,118,117,116,114,113,112111
  IRQ O 96
 DD[15∶0] I/O 36,35,33,32,30,29,27,26,21,2018,17,15,14,12,11  SDRM接口
 DA[10.0]  O 152,153,143,144,146,147,149,150,159,158,156,153
 BS  O
 DCKE  O 39
 DCLKOUT  O 38
 DCLKIN  I 23
  DWE  O 9
  DCAS  O 8
  DRAS  O 6
  DCS[I∶0]  O 3,2
 y[7∶0]  O 52,53,54,55,57,58,59,60 视频输出接口
信号名 I/O     引脚号     说明
 C[7∶0]  O  42,43,44,45,47,48,49,50
 HCSYNC  O  62
 VSYNC  O  63
 YE  O  64
 CB/ CR  O  65
 V16/8  I  67
 NTSC/ PAL  I  68
 CBLANK  O  69
  VTGRESET  I  70
 TCK  I  74  JTAG port
 TDI  I  73
 TDO  O  72
 TMS  I  75
  TRST  I  79
 SYSCLOCK  I  139
  RESET  I  138
  TIMEREST  I  82
 VCC  -  1,7,13,19,25,31,37,142,148154,160
 VDD  -  46,56,76,86,95,105,115,126,136
 VDD  - 4,10,16,22,28,34,40,41,51,61,71,80,81,91,100,110,120,121,131,140,145,151,157
            表51测试信号
信号名 I/O 引脚号 说明
 TPH01SH  1  87
 TPH11SH  1  88
 TSTRSTCTRL  1  77
 TLOOP  1  78 在正常运行时连续到地或VDD
 PLLSELECT  1  83 如PLLSELECT=0,片内锁相环路被禁止。为了正常运行,设置PLLSELECT=1。
 PLLLOCK  0  84
 TDCLK  1  85
寄存器映象
本发明的寄存器映象被分成区。开始的32个单元是系统正常工作要求的。地址只有5位。
下一个32个单元的组在地址发生器线路中,它们被要求用于建立一个非缺省的SDRAM存储器映射图。
寄存器映象的其余部分是那些只用于测试和诊断目的的寄存器。这些寄存器能被分页排入代替地址发生器寄存器。
表52说明本发明的寄存器映象。
         表52本发明寄存器映射图的概述
地址(16进制) 中断服务
0×00......0×03 中断服务
0×04......0×05 输入电路
0×06......0×07 起始码检测器
0×08......0×0a 时间标记插入
0×0b......0×0f (未用)
0×10......0×17 分析器
0×18......0×1C 输出控制
         表52本发明寄存器映射图的概述(续)
地址(16进制)     中断服务
0×1d  PLL控制
0×1e  DRAM PAD驱动强度
0×1f  page_selecta 表3-4
0×20......0×3f 分页寄存器访问
a、正常工作中,Page-Select应保持0值。
在这种情形,单元0×20......0×3f将包
含地址产生用户寄存器。
表53描述页选择寄存器。
           表53页选择寄存器
页选择 被选择的寄存器   见
0  Addrgen用户配置寄存器 表3-5
1 内置式自测试和IDCT测试寄存器 表3-11表3-12
              表53页选择寄存器(续)
页选择  被选择的寄存器   见
2  IM-PLUS测试寄存器和SCD测试寄存器 表3-13表3-14
3  分析器测试寄存器 表3-15
4  场/帧测试寄存器 表3-16
5  BOB测试寄存器 表3-17
6  更多的BOB测试寄存器 表3-17
7  Addrgen测试寄存器 表3-18
8  DRAMIF测试寄存器 表3-19
表54说明中断服务范围。
                     表54中断服务范围
  地址(16进制) 位号     寄存器名     见页
    0×00     7  chip_event
    6  end_search_event
    5  unrecognized_start_event
    4  flag_picture_end_event
    3  parser_event
    2
    1
    0
    0×01     7  chip_mask
    6  end_search_mask
    5  unrecognized_start_mask
    4  flag_picture_end_mask
    3  parser_mask
    2
    1
    0
    0×02     7  idct_too_few_event
    6  idct_too_many_event
    5
    4
    3
    2
    1
    0  watchdog_event
  地址(16进制) 位号     寄存器名 见页
    0×03     7  idct_too_few_mask
    6  idct_too_many_mask
    5
    4
    3
    2
    1
    0  watchdog_mask
表55表示本发明的输入电路寄存器。
                   表55输入线路寄存器
地址(十六进制)     位号 寄存器名 见页
0×04     7  coded-busy
    6  enable_mpi_input
    5  coded_extn
    4∶0  (未用)
0×05     7∶0  coded_data
表56表示本发明的起始码寄存器。
               表56起始码检测器寄存器
地址(16进制) 位号 寄存器名 见页
0×06  7  scdp_access
 6 (未用)
 5  discard-extension
 4  discard_user
 3  after_search_stop
 2  flag_Picture_end
 1  after_picture_stop
 0  after_picture_discard
                表56起始码检测器寄存器(续)
地址(16进制) 位号 寄存器名 见页
0×07 7∶3 (未用)
2  discard_all
1∶0  start_code_serach
按照本发明,表57表明时间标记插入寄存器。
                  表57时间标记插入寄存器
地址(16进制) 位号 寄存器名 见页
0×08     7∶0     ts-hign
0×09     7∶0     ts_low
0×0a     7     ts_valid
    6     ts_waiting
    5∶0     (未用)
同样地,表58说明视频分析器寄存器。
                   表58视频分析器寄存器
地址(hex)     位号 寄存器名 见页
0×10     7∶0  parser_ctrl0(实际上是一个寄存器组的一个单元一位数待定
0×11     7∶0  parser_ctrl1(实际上是一个寄存器组的一个单元一位数待定
0×12     7∶0  parser_error_code(实际上是MSM的常数字段)
0×13     7∶0  parser-access
    6∶0  reg_keyhole_addr
0×14     7∶0  reg_keyhole_data
0×15     7∶0  (不用)
0C16     7∶0  user_keyhole_addr
               表58视频分析器寄存器(续)
地址(hex)     位号 寄存器名 见页
0×17     7∶0  user_keyhole_data
输出控制寄存器示于表59。
                   表59输出控制寄存器
地址(16进制) 位号 寄存器名 见页
0×18  7∶0  border_cb
0×19  7∶0  border_Y
0×1a  7∶0  border_cr
0×1b     7  vblank
    6  b1ank_screen
    5  enbl_sav_eav
              表59输出控制寄存器(续)
地址(16进制) 位号 寄存器名 见页
    4 blanking 601
    3    cblank_ah
    2     vsync_ah
    1    hcsync_ah
   hs_not_cs
0×1c  7∶2       (未用)
 1∶0 垂直过采样控制
测试寄存器
完整的寄存器图示于表60到表69。
                表60嵌入式自测试寄存器
地址(16进制) 位号      寄存器名 见页
 P1+00      test_mode
 P1+01...P1+03      (not used)
 P1+04       misr_mask
 P1+05       (not used)
 P1+06          misr[1]
 P1+07          misr[0]
 P1+08  psrg_bit_select
 P1+09    psrg_constant
 P1+0a...P1+0c       (not used)
 P1+0d          psrg[2]
 P1+0e          psrg[1]
 P1+0f          psrg[0]
                表61IDCT测试寄存器
地址(16进制) 位号  寄存器名 见页
    P1+10  idct_clkgen
    P1+11 (not used)
    P1+12  snp_idct[1]
    P1+13  snp_idct[0]
P1+14... P1+17  not used
    P1+18  snp_tram[7]
    P1+19  snp_tram[6]
    P1+1a  snp_tram[5]
    P1+1b  snp_tram[4]
    P1+1c  snp_tram[3]
    P1+1d  snp_tram[2]
    P1+1e  snp_tram[1]
    P1+1f  snp_tram[0]
                 表62 IM-PLUS测试寄存器
地址(16进制) 位号 寄存器名 见页
    P2+00  imp_clkgen
    P2+01 (not used)
    P2+02  snp_iquant[1]
    P2+03  snp_iquant[0]
    P2+04 (not used)
    P2+05  snp_imode[1]
    P2+06  snp_imode[1]
    P2+07  snp_imode[0]
    P2+08  snp_iquant_ram[3]
    P2+09  snp_iquant_ram[2]
    P2+0a  snp_iquant_ram[1]
    P2+0b  snp_iquant_ram[0]
    P2+0c  iquant_keyhole_data
    P2+0d  iquant_keyhole_addr
P2+0e... P2+0f  (not used)
    P2+10   snp_izz_ram[3]
    P2+11   snp_izz_ram[2]
    P2+12   snp_izz_ram[1]
    P2+13   snp_izz_ram[0]
    P2+04   izz_keyhole_data
    P2+15   izz_keyhole_addr
 P2+16...P2+17   (not used)
                表63 SCD测试寄存器
地址(16进制) 位号 寄存器名 见页
    P2+18  scd_clkgen
    P2+19  未用
    P2+1a  snp_incrct[1]
    P2+1b  snp_incrct[0]
    P2+1c  snp_cdbin[1]
    P2+1d  snp_cdbin[0]
P2+1e... P2+1f  未用
              表64分析器测试寄存器
地址(16进制) 位号     寄存器名 见页
    P3+00  parser_clkgen
 P3+01...P3+02  未用
    P3+03  snp_cdbout[4]
    P3+04  snp_cdbout[3]
    p3+05  snp_cdbout[2]
    P3+06  snp_cdbout[1]
    P3+07  snp_cdbout[0]
    P3+08  未用
    p3+09  snp-aluin[2]
    P3+0a  snp-aluin[1]
    P3+0b  snp-aluin[0]
P3+0c...P3+0f  未用
              表64分析器测试寄存器(续)
地址(16进制)   位号 寄存器名 见页
P3+10 7 msm_access
    6∶0  未用
    P3+11     7∶3  未用
    2  mssr_intr_status
    1  mssr_ss_monitor
    0  mssr_ss_select
    P3+12     74  未用
    30  msm_pc
    P3+13     70
    P3+14     74  未用
    30  msm_call_return
    P3+15     70
    P3+16     74  未用
    30  msm_intr_return
    P3+17     70
    P3+18  snp_user_ram[7]
    P3+19  snp_user_ram[6]
    p3+1a  snp_user_ram[5]
    P3+1b  snp_user_ram[4]
    P3+1c  snp_user_ram[3]
    P3+1d  snp_user_ram[2]
    P3+1e  snp_user_ram[1]
    P3+1f  snp_user_ram[0]
                 表65场/帧测试寄存器
地址(16进制) 位号     寄存器名 见页
    P4+06   snp_padder_pf[1]
    P4+07   snp_padder_pf[0]
    P4+08   snp_pf_master[3](snpsel[3])
    P4+09   snp_pf_master[2](snpsel[2])
    P4+0a   snp_pf_master[1](snpsel[1])
    P4+0b   snp_pf_master[0](snpsel[0])
    P4+0c   snp_pf_slave[3](snpsel[7])
    P4+0d   snp_pf_slave[2](snpsel[6])
    P4+0e   snp_pf_sIave[1](snpsel[5])
    P4+0f   snp_pf_slave[0](snpsel[4])
    P4+10  未用
    P4+11   snp_pf_pipe[2](snpsel[10])
    P4+12   snp_pf_pipe[1](snpsel[9])
    P4+13   snp_pf_pipe[0](snpsel[8])
    P4+14  ff_keyhole_data
    P4+15  ff_keyhole_addr
    P4+16  snp_dec_data[1]
    P4+17  snp_dec_data[0]
                   表65场/帧测试寄存器(续)
地址(16进制) 位号     寄存器名     见页
    P4+18  snp_ff_ram[7]
    P4+19  snp_ff_ram[6]
    P4+1a  snp_ff_ram[5]
    P4+1b  snp_ff_ram[4]
    P4+1c  snp_ff_ram[3]
    P4+1d  snp_ff_ram[2]
    P4+1e  snp_ff_ram[1]
    P4+1f  snp_ff_ram[0]
                   表66 BOB测试寄存器
地址(16进制) 位号     寄存器名 见页
    P5+00  bob_clkgen
    P5+01  (not used)
    P5+02  snp_vup_cb[1]
    P5+03  snp_vup_cb[0]
    P5+04  snp_vup_cr[1]
    P5+05  snp_vup_cr[0]
    P5+06  snp_hup_y[1]
    P5+07  snp_hup_y[0]
    P5+08  snp_hup_cb[1]
    P5+09  snp_hup_cb[0]
    -P5+0a  snp_hup_cr[1]
    P5+0b  snp_hup_cr[0]
    P5+0c  (not used)
    P5+0d  snp_outmux[2]
    P5+0e  snp_outmux[1]
    P5+0f  snp_outmux[0]
    P5+10  (not used)
    P5+11  snp_vtg[2]
    P5+12  snp_vtg[1]
               表66 B0B测试寄存器(续)
地址(16进制) 位号     寄存器名 见页
    P5+13  snp_vtg[0]
    P5+14  snp_outiface[1]
    P5+15  snp_outiface[0]
P5+16...P5+1f  (not used)
P6+00...P6+07  snp_vupram_cb1[7∶0](bobupram)
P6+08...P6+09  snp_vupram_cb0[7∶0]
P6+10...P6+17  snp_vupram_cr1[7∶0]
P6+18...P6+1f  snp_vupram_cr0[7∶0]
             表67 Addrgen测试寄存器
地址(16进制) 位号 寄存器名 见页
    P8+0  dram_clkgen
            表68 DRAMIF测试寄存器
地址(16进制) 位号 寄存器名 见页
    P7+0  addrgen_clkgen
    P7+1
 snoopers
                           表69窥测器寄存器
地址(16进制) 数据位数 寄存器名 位置
P2+1a......P2+1b  10 snp_incrct[1∶0] 芯片的输入在输入电路前面
P2+1c......P2+1c  10 snp_cdbin[1∶0] cdbin的输入
P3+03......P3+07  33 snp_cdbout[4∶0] cdbout的输入
P3+09......P3+0b  19 snp_aluin[2∶0] 在MSM中ALU的输入
P2+05......P2+07  19 snp_imodel[2∶0] 逆向模式化器的输入
P2+02......P2+03  13 snp_iquant[1∶0] 逆向量化器的输入
P1+12......P1+13  13 snp_idct[1∶0] IDCT的输入
            表69窥测器寄存器(续)
地址(16进制) 数据    寄存器名位数     位置
P4+02......P4+03  10    snp_fld_frm[1∶0] 场/帧的输入
P4+04......P4+05  10    snp_padder_data[1∶0] pfadder的变换数据输入
P4+06......P4+07  8     snp_padder_pf[1∶0] pfadder的预测滤波器数据输入
P4+08......P4+0b  23    snp_padder_master[3∶0] predflt的主输入
P4+0c......P4+0f  23    snp_padder_master[3∶0] predflt的从输入
P4+11...P4+13        snp_pf_pipe[2∶0] 在通过predflt的半路上
           表69窥测器寄存器(续)
地址(16进制)     数据    寄存器名位数     位置
P5+02......P5+03  10 snp_vup_cb[1∶0] 色差信号过采样Cb的输入
P5+04......P5+05     snp_vup_cr[1∶0] 色差信号过采样Cr的输入
P5+06......P5+07  12 snp_hup_Y[1∶0] 水平过采样器Y的输入
P5+08......P5+09  10 snp_hup_cb[1∶0] 水平过采样器cb的输入
P5+0a...P5+0b  10 snp_hup_cr[1∶0] 水平过采样器cr的输入
                       表69窥测器寄存器(续)
地址(16进制) 数据寄存器名位数     位置
P5+0d...P5+0f  10+snp_outmux[2∶0]从vtg来的各选通脉冲 outmux的输入
P5+11......P5+13      snp_vtg_[2∶0] 对VTG的所有控制输入
P5+14......P5+15  13 snp_outiface[1∶0] 恰好在8位至16位转换器之前,为引脚重新定时
电源
本发明主要运行于单个5V电源。然而,为了使得能简单地连接到同步DRAM去,也提供了一个3.3V电源。
                 表70建议的技术规格额定值b
符号 参数                   最小    最大    单位
VDD 标称对地5V电源电压     -0.5     6.5       V
VCC 标称对地3.3 V电源电压  -0.5     6.5       V
VIN 除SDRAM接口引脚以外    GND-0.5  VDD+0.5   V在任何引脚上的输入电压
Vinsdram     在SDRAM接口任何     GND-0.5  VCC+0.5引脚上的输入电压a
TA 工作温度                -40    +85      ℃
TS 存储温度                -55   +150      ℃
a   D[15∶0],DA[11∶0],DCKE,DCLKOUT,DCLKIN, DWE,
DCAS,DRAS, DCS[1∶0]和TDCLK。b超过这里列出的条件可能对器件造成永久性损坏。这仅是条
件的可用域,并没有在这些条件下或在超出本说明部分使
用部分指出的任何其他条件下器件能正常运行的意思。持
续地经受绝对最大定额的情况可能影响可靠性。
                 表71直流工作条件
符号 参数     最小     最大 单位
VDD 标称对地5V电源电压     4.75     5.25     V
VCC 标称对地3.3V电源电压     3.00     3.60     V
GND     0     0     V
TA 操作温度     0     70    ℃a
LDD  RMS电源电流     mA
逻辑电平
按照本发明实现了三种不同的信号接口类型。微处理器接口用标准(5V)TTL电平。另外,编码数据接口和视频输出接口用5VCM0S电平。SDRAM接口也用3V低电压TTL电平。TTL(5V)电平
                             表72
符号     参数 最小   最大 单位
Vm 逻辑‘1’输入电压     2.0  VDD+0.5  Va
VIL 逻辑‘0’输入电压 GND-0.5      0.8  V
VOL 输出逻辑‘0’电压      0.4  V
VOLOC 集电极开路逻辑‘0’输出电压      0.4  Vb
VOL 逻辑‘1’输出电压    2.4  V
LO 输出电流  ±100 μAc
LOOC 集电极开路输出电流    4.0      8.0 μAd
LOZ 关状态输出漏电流     ±20 μA
LIN 输入漏电流     ±10 μA
                        表72(续)
符号     参数     最小 最大     单位
CIN 输入电容   5     pF
COUT 输出/IO电容   5     pF
a交流输入参数在1.4 v测量电平被测得。
b Lo≤Loocmin
c这是接口的稳态驱动能力。瞬态电流ma可能大得多。
d当有效时,集电极开路的IRQ输出信号拉低,其阻抗不大于100Ω。CMOS(5V)电平
对于CM0S输入,VIHmin约为VDD的70%,而VILmax约为VDD的30%。在表73中所示的是VIH和VIL分别在它们的最极限运行时的值。
                 表73 CMOS(5V)DC特性
符号         参数    最小    最大 单位
VIHcmos逻辑‘1’输入电压  3.68    VDD+0.5  V
VILcmos逻辑‘0’输入电压  GND-0.5    1.43  V
VOHcmos逻辑‘1’输出电压  VDD-0.1     Va
VDD-0.4  Vb
VOLcmos逻辑‘0’输出电压     0.1  Vc
    0.4  Vd
LINcmos输入漏电流    ±10 μA
CINcmos输入电容        5  pF
COUTNcmos输出/IO电容        5  pF
    a IOH≤1mAb IOH≤4mA
cIOL≤1mA
dIOL≤4mA
              表74 LVTTL(3.3V)DC特性
符号     参数     最小    最大   单位
VIHsdram 逻辑‘1’输入电压 VCC+0.5  Va
VILsdram 逻辑‘0’输入电压 GND-0.5      0.8   V
VOLsdram 逻辑‘0’输出电压   V
VOHsdram 逻辑‘1’输出电压   V
LOSdram 输出电流  ±100 μAb
LOZsdram 关状态输出漏电流   ±20 μA
LINsdram 输入漏电流   ±10 μA
CINsdram 输入电容      5  pF
COUTsdram 输出/IO电容      5  pF
a AC输入参数在V量测电平上被测得
b这是接口的稳态驱动能力。瞬态电流可能会大得多。时钟信号
本发明对几乎全部片内功能使用一个时钟(SYSCLOCK)。因为这个时钟用于视频输出线路,所以假定采用一个27MHZ时钟,使得VTG(Video Timing Generator视频定时信号发生器)可在正确的速率产生图象。
可用第二个时钟(CDCLOCK)将编码数据打入本发明的系统。这个时钟可和SYSCLOCK同步,这就允许从不是运行在27MHz时钟(可能是一个从盘或网络接口线路得到的时钟)的线路来的数据进入系统。
在内部,本发明用一锁相环路(PLL)得到用于驱动SDRAM接口的高速时钟。这个时钟作为DCLKOUT输出到SDRAM。一个片内PLL也用于得到均恒的脉冲占空比。对SYSCLOCK的要求示于图101。
                        表75对输入时钟的要求
序号 特性 27MHz最小  最大 单位 注释
1 时钟周期 37 ns     a
2 时钟高周期     10     ns
3 时钟低周期     10     ns
a注意时钟的允许偏差和稳定性必须满足与适当的视频标准的行频相一致的要求。复位信号
本发明用三种复位信号:1) RESET2) VTGRESET3) TIMERESETRESET是主芯片复位信号。所有线路被复位并采用下文中描述的各种表格中指明的复位状态。TESET必须在电源和时钟稳定到能保证正确复位以后的至少四个时钟周期内为低(LOW)有效。VTGRESET用于复位本发明的视频定时信号发生器而不影响本发明的其它方面。 TIMERESET根据本发明用于时间标记处理电路(timestamp handlingcircuitry)。引言
根据本发明,编码数据接口提供一组专用的引脚可用来给系统提供编码视频数据。另一种方法是,通过微处理器接口可以写入编码数据。本节讨论这两种方法。
如果用一些专用引脚,编码数据可以或者作为简单的字节流或者作为“令牌”被提供。令牌使编码数据以及其它类型的信息能被提供。例如,用这一机理可传送时间标记。
如果微处理器接口用于编码数据,则总是用令牌的。而且,这十分简单。一旦一个“令牌头”已被写入来说明后面跟随的数据是编码数据(只要求两个寄存器被写),此后,编码数据可简单地写入一个寄存器。编码数据接口信号表76规定了用于本发明的编码数据接口信号。
                    表76编码数据接口信号
信号名 类型     说明
CD[7∶0]     1 编码数据一次一个字节地提供给本发明。数据在CDCLOCK的上升沿被采样。数据假定为按字节对准。
CDEXTN     1 当编码数据接口用于传送令牌,这个信号是扩展位。这个信号和CD[7∶0]在同一时间被采样。
                      表76编码数据接口信号(续)
信号名 类型     说明
CDVALID 1  CDVALID和CD[7∶0]在同一时间被采样。当它为高(HIGH)时数据有效并被用作编码数据。当它为低(LOW)时,数据无效被系统忽略。
CDACCEPT 0  CDACCEPT指明系统准备好接收数据。当它为HIGH时,如所希望的那样,数据将在CDCLOCK的上升沿被锁存。当它为低时,系统不能接收数据(因为它的内部缓存器已满),所以应当再次提供数据。
BMODE 1 当这个信号为HIGH时,数据被解释为一个简单的编码数据字节流(CDEXTN被忽略)。当它为LOW时,数据解释为令牌。这个信号与CD[7∶0]在同一时间被采样。
CDCLOCK 1 这个时钟用来控制进入系统的数据的传输。CD[7∶0],CDEXTN,BMODE和CDVALID在CDCLOCK的上升沿被采样而外部线路应在同一时间对CDACCEPT采样。注意在缺省(复位)情况下,CDCLOCK和SYSCLOCK必须连结到同一信号。
CDVALID和CDACCEPT按照本发明用以控制数据的传送。这种类型的约定称为一个“两线”接口。在CDCLOCK的上升沿为了使数据传送能发生,两个信号都必须为高,图102表明数据(CD[7∶0],CDEXTN和BMODE和CDVALID和CDACCEPT之间的关系。注意∶如数据通过编码数据接口引脚被提供,微处理器接口寄存器“enable_mpi_input”必须为0(这是它的复位状态)。字节方式
在本发明中,如BMODE在CDCLOCK的上升沿被采样为HIGH(并且CDVALID和CDACCEPT两者都是高),则数据被看作简单的编码数据。事实上,数据立即被装入一个DATA。在此情况,CDEXTN被忽略。令牌方式
如BMODE在CDCLOCK的上升沿被采样为低(CDVALID和CDACCEPT两者都是高),则数据被看作是令牌。
按照本发明,在整个系统中令牌广泛地被用来控制数据流和控制信号流。理论上,在编码数据输入可提供任意令牌。
按照本发明,所有令牌包含一系列字节(CD[7∶0]),它们中的每一个与某一个扩展位(CDEXTN)有联系。令牌的第一个字节指明令牌携带的信息的类型。用扩展位为LOW的方法指明令牌的最后一个字节。
例如,编码数据用DATA令牌提供。这在图103中说明。如图所示,第一个字节是0×04(指明这是一个DATA令牌)。这个信息后面跟着编码数据的一些字节,它们一直延续到CDEXTN被采样为LOW为止。采样的下一个数据被看作新令牌的第一个字节(假定BMODE仍为LOW)。
另一个特别有用的令牌是FLUSH令牌。这个令牌的作用如同一个“复位”,可在一个视频流结束以后用它使系统为下一个视频流作好准备。在图104中说明FLUSH令牌。通过微处理器接口提供数据
在本发明中,用访问编码数据输入寄存器的方法通过微处理器接口(MPI)对系统提供令牌。表77定义了各编码数据输入寄存器。
                      表77编码数据输入寄存器
地址(16进制) 位号 方向/复位 寄存器名     说明
04     7  R0/1  coded_busy 本寄存器的状态指明系统是否能接受与入coded_data[7∶0]的令牌。值1指明接口忙,不能接受数据。当coded_busy=1时,如用户试图写入coded_data,将产生不确定的情况。
6  RW/0  enable_mpiinput 控制输入到系统去的编码数据是通过编码数据端口(0)还是通过MPI(1)。
                     表77编码数据输入寄存器(续)
地址(16进制) 位号方向/复位 寄存器名     说明
05 5    RW/X Coded_extn_input 写入coded_data的令牌数据扩展位。
4∶0(不用)
7∶0 RW/X coded_data 令牌数据被写入这个单元
通过MPI写令牌
在存储器映象中编码数据寄存器被组合成两个字节一组,以允许有效的数据传送。8个数据位,coded_data[7∶0],在一个存储单元而一些控制寄存器,coded_busy,enable_mpi_input和coded_extn在第二个单元。(见表56)。
当配置成使令牌通过MPI输入时,每次向coded_data[7∶0]写入一个值,当前令牌就被用coded_extn的当前值扩展。在任何令牌的最后一个字被写入coded_data[7∶0]以前,软件负责把coded_extn设置为0。
例如,用写1到coded_extn然后写0×04到coded_data[7∶0]的方法开始一个DATA令牌。这个新DATA令牌的开始然后进入系统接受处理。
每次一个新8位值写入coded_data[7∶0],当前令牌就被扩展。当结束当前令牌时,只需再次访问coded_extn(例如,引入另一个令牌)。用写0到coded_extn接着写当前令牌的最后一个字到coded_data[7∶0]的方法来指明当前令牌的最后一个字。
此外,在每次写入coded_data[7∶0]之前,应检查coded_busy,看接口是否已准备好接受更多数据。在输入方式之间切换
只要遵守合适的预防措施。动态改变数据输入方式就是可行的。一般,在切换方式以前通过任一路线传送的令牌应该被完成。这些切换方式示于表78。
                 表78切换数据输入方式
上一次方式 下一次方式 工作情况
字节 令牌 在接受下一个令牌以前,片上线路将使用在字节方式下提供的最后字节作为它当时正在建立的DATA令牌的最后字节(即扩展位将被置成0)。
MPI输入
令牌 字节 在选择字节方式以前。以令牌方式提供令牌的片外线路负责完成令牌(即把信息的最后字节的extn位置0)。
MPI输入 在令牌方式下提供令牌的片外线路
                       表78切换数据输入方式(续)
上一次方式 下一次方式 工作情况
已完成令牌以前(即把信息的最后一个字节的扩展位置0),不允许通过MPI访问输入(即coded_busy将维持置1)。
MPI输入 字节 在enable_mpi_input被置0以前,控制软件必须已完成令牌(即信息的最后一个字节的扩展位已置0)。
MPI输入
以字节方式提供的第一个字节使DATA令牌头在片上产生。在字节方式下传送的任何另外的字节附加在这个DATA令牌上直到输入方式改变为止。MPI寄存器位coded_busy和信号Coded_accept指明系统将在哪个接口上接受数据。正确监视这些信号应能保证不丢失数据。接受编码数据的速率
本发明的输入线路把令牌传送到起始码检测器。此检测器分析在DATA令牌中的数据,它的正常处理速率是每个(CDLOCK)时钟的一个字节。然而,有时需要额外的处理周期。例如,在编码数据中遇到起始码时。这种情况发生时,CDACCEPT就变低以指明数据不能被接受。
因此,CDCLOCK必须有一个比要提供给本系统的数据字节速率更高的时钟频率。在许多应用中,SYSCLOCK和CDCLOCK两者用同一时钟(典型地说,是27MHz)是合适的。一个例子示于图105。编码数据接口定时
类似地,表79表示本发明的编码数据接口定时。
                  表79编码数据接口定时信号
序号 特性 27MHz最小  最大 单位 注释
1 周期时间 37     ns
2 低时间 17 ns     a
3 高时间 17     ns
4 驱动时间 23 ns     b
5 保持时间  2     ns
6 输入信号建立时间  5     ns
7 输入信号保持时间  0     ns
a这些定时关系在某些情况不需遵守。
b最大的信号负载量为20pF。
编码数据接口用CMOS电平。CDCLOCK
通过编码数据接口的数据传送用CDCLOCK控制。CDCLOCK可与主视频解码器时钟(SYSCLOCK)同步。
这种机置也许在允许系统解码的时钟与视频时钟不一致时是有用的。
然而,在本发明中CDCLOCK也在内部被用来对例如起始码解码的电路定时。因为CDCLOCK没有锁相环路(PLL)所保证均恒占空比的好处,必须用外部线路来保证这点或保证示于图105中的定时参数2和3。
在CDCLOCK和SYSCLOCK不需要同步的一些情况下,用PLL而不是用CDCLOCK去驱动内部线路如起始码解码器的可能性是存在的。这可省去外部保证均恒占空比的线路的需要。
图106表明内部的安排,它使PLL产生的均恒占空比时钟可按规定路线送到起始码解码器以代替CDLOCK。
如Un_named_register为0(复位条件),起始码解码器从PLL得到时钟。在此情况下,CDCLOCK和SYSCLOCK两者必须连结到同一信号。
对SYSCLOCK的AC定时要求。
如Un_named_register为1,起始码解码器用CDCLOCK作时钟。在此情况下,CDCLOCK可能和SYSCLOCK同步。CDCLOCK必须满足图105中说明的定时要求。
引言
本发明的视频输出接口实现了一个符合CCIR 601和656推荐书的数字输出接口。所有的同步和消隐信息以特殊码字(SAV和EAV)的形式,被包含在与视频信息相同字节宽度的数据流中。
另外,提供分开的同步和消隐引脚使得本系统可直接连结到各种各样的设备(如视频DAC或NTSC编码器)。这些信号的定时适合于产生与CCIR 624推荐书相一致的视频信号。
视频数据可在一字节宽的单个总线上时分多路传送。另外,提供一个16位输出方式,在该情况下,亮度数据在一个字节宽总线上输出,而两个色差信号则在第二个单字节宽的总线上时分多路传送。视频输出信号
按照本发明,表80提供用于视频输出接口的信号。
         表80视频输出接口信号
名字 类型 说明
Y[7∶0]     0     亮度输出数据
C[7∶0]     0     Cr/Cb输出数据
HCSYNC     0     水平或复合同步。微处理器寄存器hs_not_cs控制哪个同步出现在这个引脚上。寄存器hcsync_ah控制这个信号的极性。
                     表80视频输出接口信号(续)
名字 类型     说明
VSYNC   0     垂直同步。寄存器Vsync_ah控制这个信号的极性。
CBLANK   0     复合消隐。寄存器cblank_ah控制这个信号的极性。
YE   0     当在SYSCLOCK的上升沿被抽样为高时,Y(以及在16位方式中Cr或Cb)数据有效。
CB/CR   0     在16位方式,当YE被采样为高时,此信号指明哪个彩色分量(Cr或Cb)出现在C[7∶0]引脚。在8位方式,当YE采样为低时,此信号指明哪个彩色分量(Cr或Cb)出现在Y[7∶0]。
V16/8   1     用于选择16或8位输出方式。当V16/8为高时选16位方式。当它为低时选8位方式。
NTSC/PAL   1     选择产生两种标准光栅的哪一种。当NTSC/PAL为高时产生525行光栅。当它为低时产生625行光栅。注意这个引脚也影响本发明的运作的其他方面。
                      表80视频输出接口信号(续)
名字 类型     说明
VTGRESET   1     此信号可用来使片上视频定时信号发生器复位。这可被用来把视频定时信号锁定在某种外部约束下。
图107表明在16位方式下的输出定时信号。图108表明在8位方式下的输出定时信号。视频输出控制寄存器
按照本发明的视频输出控制寄存器示于表81。
                 表81视频输出控制寄存器
地址(16进制) 位号 方向/复位 寄存器名 说明
18  7∶0  RW/0×C0  border_Cb 边框彩色的Cb分量
19  7∶0  RW/0×80  border_Y 边框彩色的Y分量
                          表81视频输出控制寄存器(续)
地址(16进制)     位号 方向/复位   寄存器名     说明
1A     7∶0  RW/0×40  border_Cr 边框彩色的Cr分量
1B     7  RO/x  vblank 这是一个只读位(写到这位的数据被无视)。它表明垂直消隐。
    6 RW/0  blank_screen 当置1时,这位使边框颜色涂在整个屏幕上,从而使屏幕消隐。注意解码继续正常进行,但已解码的图象变得不可见。
    5  RW/0  enbl_sav_eav 控制输出流中的控制字SAV和EAV的产生。0禁止SAV和EAV,在那种情况下,在本来要产生SAV和EAV的时候却输出消隐值。1使能SAV和EAV。注意除了在
                       表81视频输出控制寄存器(1)
地址(16进制) 位号 方向/复位     寄存器名     说明
SAV和EAV期间,blanking601也应置1以免输出出现零值。对于CCIR 601数据,这个引脚必须置1。
4  RW/0 blanking 601 控制在消隐期间输出的亮度a数据值。0选择零值。1选择0×10(16)值。对于CCIR 601数据,引脚必须置1。
1B 3  RW/0 cblank_ah 控制CBLANK引脚的极性。0选择低有效。1选择高有效。
2  RW/0 vsync_ah 控制VSYNC引脚的极性0选择低有效。1选择高有效。
                    表81视频输出控制寄存器(续)
地址(16进制) 位号 方向/复位     寄存器名     说明
1  RW/0  hcsync_ah 控制HCSYNC引脚的极性0选择低有效。1选择高有效。
0 RW/0  hs_not_cs 控制出现在HCSYNC引脚上的是水平同步还是复合同步0选择复合同步1选择水平同步
1C (VUP采样方式)
a在消隐期间不管这一位的设置如何,色度数据(Cb和Cr两者)都总是0×80(十进制128)。边框、比例缩放和剪切
本发明总是试图去产生尺寸为720象素乘或者480行(525行光栅)或者576行(625行光栅)的显示图象。本发明自动按比例缩放已解码的图象以便试图去填满这个区域。
因为只支持有限数目的比例因子,不可能总是把这个区域填充得很精确。如果最后得到的图象太小,则接着围绕已解码图象画一个边框,这个边框使已解码图象位于屏幕的中心。
相反地,如果按比例缩放产生的图象太大,于是图象被剪切使能合适地显示。显示的范围是已解码图象的中心。剪切被限制,使得不多于约10%的已解码图象被剪切。如果可能丢失的部分大于此百分比,则会用一较小的比例因子。
用向寄存器border_cb,border_y和border-cr写的方法可以选择边框的颜色。在设备复位以后和在任何图象已被解码以前,整个屏幕用边框的颜色填充。另外,用对blank_screen写的方法也可使整个屏幕画上边框的颜色。这可用于隐匿视频。例如在通道改变期间。视频输出特性特性
按照本发明,图109说明视频输出接口的定时信号。类似地,表82说明视频输出接口定时。
                   表82视频输出接口定时信号
序号 特性  27MHz最小最大     单位 注释
8 输出驱动时间 23 ns     a
9 输出保持时间 2     ns
10 建立时间 5 ns     b
                  表82视频输出接口定时信号(续)
序号     特性     27 MHz最小   最大 单位 注释
11 保持时间     0     ns
a   最大信号负载量为50 pF
b   不符合这个定时参数将仅仅导致复位将发生的所在精确时
    钟周期的不确定性。 VTGRESET用一片内同步器提供。该同
    步器能防止由于本定时参数未被保持而出现的暂时稳定性
    问题(metastability problems)。
表83规定视频输出方式信号。图110示出视频输出方式信号。
                  表83视频输出方式信号
序号 特性 27 MHz最小  最大 单位 注释
12 在复位以后第一个时钟以前建立 5 ns     a
a在复位以后如NTSC/PAL或V16/8改变状态则工作状态是不确定的。视频信号的定时
本发明的视频定时是这样的,它使最后得到的视频输出与以下CCIR推荐书相一致。
·CCIR推荐书601
·CCIR推荐书656
·CCIR推荐书624水平定时
水平定时示于图111。以SYSCLOCK周期为单位的数字是为525行系统的(625行系统的数字在括号中)。
在均衡期间, HSYNC信号在62个周期期间为低电平(在625行系统中为66个周期)
在场同步期间, HSYNC信号在732个周期期间为低电平(在625行系统中为738个周期)。垂直定时
为525行(NTSC)系统的垂直定时信号说明于图112。为625行(PAL)系统的示于图113。在这些图中左边自上而下的数字提供按照CCIR推荐书656的行号。右边的两列提供在SAV和EAV码(见CCIR推荐书601)中含有的“F”和“V”位。
在厚实心黑线中心的较小的数字提供已解码MPEG图象的逻辑行号。所以,对于用在525行(NTSC)系统的480行,这些编码为0到479,而对于用在625行(PAL)系统的576行则为0到575。
图114表明对525行系统引脚的同步和消隐的定时信号而图115是为625行系统的。注意只有 HSYNC或 CSYNC之一可被输出(见hs_not_cs)以及这些信号的每一个的极性可被取反(见cblank_ah等)。VTG复位状态
在本发明中,VTG对525行(NTSC)系统复位到第4行的开始,对625行(PAL)系统则复位到第1行的开始。
引言
按照发明,采用了标准的一字节宽微处理器接口(MPI)。MPI与多种解码器芯片时钟同步工作。MPI信号
表84描述MPI接口信号。
                  表84 MPI接口信号
信号名     类型     说明
ME[1∶0] 输入 两个低有效芯片使能,两者都必须是低以使能通过MPI的访问。
MR W 输入 高表明从在系统上的一个寄存器读出。低表明向系统上的一个寄存器写入。当芯片使能时这个信号应稳定。
MA[5∶0] 输入 地址表明在芯片的寄存器地址表中的一些单元之一。当芯片使能时这个信号应稳定。
MD[7∶0] 输出 8位宽数据I/O端口。如两个使能信号之中的任一个是高时这些引脚是高阻抗。
                       表84 MPI接口信号(续)
信号名     类型     说明
IRQ 输出 一个低有效、开路集电极中断请求信号。
MPI电气技术说明DC特性见2.2.1“TTL(5V)电平”。图123和124分别说明MPI的读和写定时信号。AC特性表85表明MPI的读定时信号
                      表85微处理器接口读定时
序号     特性 最小  最大     单位 注释
13 低使能时期 100     ns
14 高使能时期 50     ns
15 地址或 rw建立到芯片使能 0     ns
                     表85微处理器接口读定时(续)
序号     特性 最小 最大     单位 注释
16 地址或 rw保持从芯片禁止  0     ns
17 输出接通时间 20     ns
18 读数据访问时间 70 ns     b
19 读数据保持时间 5     ns
20 读数据关闭时间     20
a在本例中,选择 ME[0]开始周期和 ME[1]结束周期竞争。这
    些信号的地位相同。
b访问时间是在MD[7∶0]的每位上的最大负载量为50PF时确
    定的。负载变大访问时间会增加。
同样,表86表明MPI的写定时信号
                 表86微处理器接口写定时
序列号 特性 最小 最大 单位 注释
21 写数据建立时间 15 ns     a
22 写数据保持时间 0     ns
a在本例中,选择 enable[0]开始周期和 enable[1]结束周期是竞争的。这些信号的地位相同。中断
“事件”是一个术语用以描述用户可能想要知道的一个片内条件。一个事件可能指明一个出错条件或可能向用户软件提供消息。
有两个单个位的寄存器与每个中断或“事件”有联系。这些是条件事件寄存器和条件掩模寄存器。条件事件寄存器
条件事件寄存器是一个一位可读/写寄存器,它的值由发生在电路内的一个条件置成1。即使条件仅在瞬间存在,寄存器也被置1。然后,寄存器保证维持置1直到用户的软件把它复位或整个芯片复位为止。
·用写入值1的方法使寄存器置0。
·将0写到寄存器,寄存器不改变。
·在这个条件另一次发生能被观察到以前寄存器必须被用户软
件置0。
·在复位时寄存器总是被复位到0。条件掩模寄存器
条件掩模寄存器是一个一位可读/写寄存器,如果相应的条件事件寄存器(一个或多个)被设置,它使能一个中断请求的产生。在条件掩模寄存器被写1时如条件事件已被设置,就立即发出中断请求。
·值1使能中断
·在复位时寄存器清除为0。
除非另外说明,在产生一个中断请求后一个块将停止工作,在条件事件或条件掩模寄存器中的任一个被清除后该块将很快重新开始动作。事件和掩模位
在本发明中,一些事件位和一些掩模位总是被组合到寄存器映象(见表55)中的连续字节的相应位位置。这使中断服务软件能用从一些掩模寄存器中读出的值作为在事件寄存器中的值的一个掩模来识别哪个事件发生了中断。芯片事件和掩模
本发明有一个单一的“全局”事件位它概括芯片上的事件活动。芯片事件寄存器表示它们的掩模位为1的所有片内事件的或(OR)。
芯片掩模位为1使芯片产生中断。芯片掩模位为0表示任何片内事件产生中断请求。
写1或0到芯片事件不产生效果。当所有的事件(用使它们的掩模位为1的方法来使能)已被清除时它才会清除。IRQ信号
在本发明中,如果芯片事件位和芯片事件掩模位两者都被设置,IRQ信号变为有效。IRQ信号是低有效。“集电极开路”输出要求一个片外的上拉电阻。当有效时IRQ输出被一个100Ω或更小的阻抗拉下来。对大多数应用约4kΩ的上拉电阻是合适的。页寄存器
为了减少本发明要求的寄存器地址信号的数目。用了一个页寄存器使多于64个寄存器可被寻址。这个页寄存器在0×1f单元。寄存器单元0×00到0×1f不受页寄存器内容的影响并总是出现在寄存器图中。在单元0×20到0×3f中的一些寄存器由页寄存器选择。
有不分页的寄存器,它们是正常设备操作要求的。最后,分页寄存器只用于测试目的。
在本发明中,页寄存器被复位到值零。用户应保证没有别的值被写入这个寄存器。
引言SDRAM接口信号表87说明SDRAM接口信号。
                       表87  SDRAM接口信号
信号名 类型 说明
DD[15∶0]     I/O 数据引脚
DA[10∶0]     O 地址引脚
BS     O 存储体(bank)选择。通常在16 Mbit SDRAM部分这被标号为A[11]
DCKE     I 时钟使能
DCLKOUT     O  SDRAM时钟输出
DCLKIN     I 连接到DCLKOUT
DWE     O 写使能
DCAS     O 列地址
DRAS     O 行地址
                 表87 SDRAM接口信号(续)
信号名 类型     说    明
DCS[1∶0]   O 芯片选择DCS[0]选择SDRAM的第一“存储体”。如果用了第二“存储体”(见SDRAM配置1和2)则也用DCS[1]。
SDRAM配置
表88说明SDRAM的配置。
                         表88 SDRAM配置
配置 SDRAM组件 DRAM总量 组织
0     1     16 Mbit 16 Mbit,1M乘16 bits
1     2     20 Mbit  16 Mbit,1M乘16 bits
 4M bit,256 k乘16 bits
2     2     32 Mbit  16 Mbit,1M乘16 bits
 16 Mbit,1M乘16 bits
                      表88 SDRAM配置(续)
配置 SDRAM组件 DRAM总量 组织
3     2  32 Mbit  16 Mbit,2M乘8 bits
 16 Mbit,2M乘8 bits
配置零
配置零的SDRAM连结见图116。
图117说明一个SDRAM连结的配置。类似地,图118和119分别描述两个和三个SDRAM连接的配置。
引言
按照本发明,系统完全支持联合测试行动小组(Joint TestAction Group JTAG)“标准测试访问端口和边界扫描体系结构”,后者现在已被IEEE采纳为标准1149.1。
所有JTAG的操作通过测试访问端口(TAP)完成。TAP包含5个引脚。TREST(测试复位)引脚复位JTAG线路以保证在测试方式下设备不加电。TCK(测试时钟)引脚用来将串行测试标本用时钟打入TDI(测试数据输入)引脚和从TDO(测试数据输出)引脚打出。另外,JTAG线路的操作方式用把适当的位序列用时钟打入TMS(测试方式选择)引脚的方法来设置。
JTAG标准可被扩展来提供另外的特性,由芯片制造者自由决定。按照本发明有9个用户指令,包括三个JTAG必须遵循的指令。额外的指令使一些内部设备测试以不同等级进行并提供另外的外部测试灵活性。例如,所有设备的输出可以用一个简单的JTAG序列变成浮动。见表89。在非JTAG系统中JTAG引脚的连接
                      表89如何连接各JTAG输入
信号 方向     说明
TRST 输入 这个引脚有一个内部上拉电阻,但在加电时必须取低,即使JTAG特性不被使用。用将 TRST和芯片复位引脚 RESET连接在一起的方法也可得到这点。
TDITMS 输入 这些引脚有内部上拉,如果不使用JTAG线路,它们可不接。
TCK 输入 这个引脚没有上拉,如不用JTAG线路,应接地。
TDO 输出 除在JTAG扫描操作期间以外是高阻抗。如不使用JTAG,这个引脚可不接。
被支持的指令
本节说明本发明的这个实现中支持的一些指令。见表90、91和92。
                     表90必须遵循的指令
指令 说明
EXTEST 这是最基本的指令。它从边界扫描链申请数据到PCB,并捕捉响应。它有一个预定义的指令码,在指令寄存器中它全部是零。
SAMPLE/PRELOAD 这条指令使边界扫描链从设备的引脚被并行加载,边界扫描链没有被接入则移位,即对系统操作透明。用这个方法,可拍下设备引脚状态的“快照”(外部时钟控制被要求以避免暂时稳定性),或者在切换到EXTEST方式以前边界扫描链可被预加载。SAMPLE/PRELOAD的指令码可由制造者选择。
BYPASS 这条指令选择1位旁路寄存器去旁路边界扫描链,从而减少访问在PCB上的其他一些设备所要求的位流长度。指令码预定义为全1。
                       表91被支持的可选指令
指令 说明
INTEST 这条指令所做与EXTESTa相反,即从边界扫描链申请数据到芯片核心并捕捉响应。其指令码可由我们选择。想出合适的测试去利用这一能力是用户的责任。
以下可选JTAG指令不被支持
1)IDCODE
2)RUNBIST
                 表92另外的一些公用指令
指令 说明
FLOATBS 这个指令预置边界扫描寄存器,使其所有开路漏极单元(cells)包含“1”而所有其他单元包含“0”。系统工作不受影响。因为“0”在输出单元使输出浮动,这是禁止所有输出(对PCB测试的一个公共要求)的一个快速方法。在一个接入边界扫描链的指令,例如EXTEST,被加载之前,各输出不浮动。(如FLOATBS本身将边界扫描链接入,未知数据就将从引脚被送出直到UPDATE_DR状态为止这是不现实的。
                         表92另外的一些公用指令(续)
指令 说明
INEXTEST 把INTEST和EXTEST组合起来用。因为不管怎样我们可以单独使用,这可能不是很有用。它可使某些用户设计一个更快的组合的PCB/芯片测试。许多JTAG设备用这个组合的方式而不是分开的方式。
SETBYP 在TDI和TD0之间选择ByPass寄存器,但把边界扫描链接入。这使得PCB测试能在一个设备的一些引脚上建立一个恒定的标本,但仍访问其他设备的一些引脚而不必重新加载第一个设备。其名字与德州仪器公司(T.I.)的“Scope”JTAG设备中的相同功能是一致的。
SHIFTBN 与SAMPLE/PRELOAD一样,但没有SAMPLE操作。允许当前边界扫描内容偏移得更多一些而不被重写。T.I.在他们的Scope设备中有这条指令,但不同地称它为READBN或RBRNM,这两个名字都不太直观。
SHIFTBT 和SHIFTBN一样,除掉边界扫描链是接入的以外。可能比SHIFTBN更有用,因为它可用于对在JTAG设备之间外部连续的逻辑电路的一些较少位的PCB测试标本进行优化。例如对于一个靠近链远端的2输入门,几个测试模
                    表92另外的一些公用指令(续)
指令 说明
式可在边界扫描链中排队,依次使用。相反地,EXTEST在每个扫描周期重写边界扫描内容。
指令码的分配
一共有14个定义的指令。因而有一个4位长指令寄存器,附有两个未指定的指令。根据IEEE 1149.1,未指定指令是BYPASS指令的别名。
指令的全部列表和它们的码示于表93。
                         表93 JTAG指令码
指令 被移位的寄存器 信号捕获 B/SCAN寄存器 类型
0000  EXTEST  B/Scan  InputPads/O′s 接入 必须遵循的
0001  SAMPLE/PRELOAD  B/Scan  All Pads 透明 必须遵循的
                       表93 JTAG指令码(续)
指令 被移位的寄存器 信号捕获 B/SCAN寄存器 类型
0010  INTEST  B/Scan  OutputPads 接入 推荐的
0011  FLOATBS  B/Scan  O′s 透明 公用的
0100  SHIFTBT  B/Scan 不变 接入 公用的
0101  SHIFTBN  B/Scan 不变 透明 公用的
0110  INEXTEST  B/Scan  All Pads 接入 公用的
0111  未指定  Bypass  0 透明 保留的
1000  私有
1001  私有
1010  SPDATAT  ScanData 内部信号 接入 私有的
                      表93 JTAG指令码(续)
指令 被移位的寄存器 信号捕获 B/SCAN寄存器 类型
1011  SPDATAN  ScanData 内部信号     透明 私有的
1100  SETBYP  Bypass  0     接入 公用的
1101  未指定  Bypass  0     透明 保留的
1110  BYPASS  Bypass  0     透明 公用的
1111  BYPASS  Bypass  0     透明 必须遵循的
对IEEE 1149.1的符合程度规则
所有的规则都遵守此标准,不过应注意以下各点∶
                             表94 JTAG规则
规则 说明
3.1.1(b) 提供 TRST引脚。
3.5.1(b) 保证所有公用指令都适用,(见IEEE 1149.1 5.2.1(c))。
5.2.1(c) 保证所有公用指令都适用。对某些私有指令,在状态Capture-RR,Exitl-RR和Pause-RR的任何一个期间。TDO引脚可以是有效。
5.3.1(a) 用TRST引脚可得到加电后即复位。
6.2.1(e.f) 在TEST-Logic-Reset状态,BYPASS指令的码被装入。
7.1.1(d) 未分配的指令码等效于BYPASS。
7.2.1(c) 没有设备ID寄存器。
7.8.1(b) 单步操作要求系统时钟外部控制。
                     表94 JTAG规则(续)
规则     说    明
7.9.1(...) 没有RUNBIST装置。
7.11.1(...) 没有IDCODE指令。
7.12.1(...) 没有USERCODE指令。
8.1.1(b) 没有设备识别寄存器
8.2.1(c) 保证所有公用指令都适用。在装入私有指令码时,从TDI到TDO路径的视在长度在某些情况下可能改变
8.3.1(d-i) 保证所有公用指令都适用,在装入私有指令码时,数据可在TCK的非上升沿的其它时间装入。
10.4.1(e) 在INTEST期间,系统时钟引脚必须由外部控制。
10.6.1(c) 在INTEST期间,输出引脚用通过TDI把数据移入的方法控制。
推荐
                           表95已达到的推荐
推荐     说明
3.2.1(b) TCK是高阻抗CMOS输入。
3.3.1(C) TMS有高阻抗上拉。
3.6.1(d) (用于芯片的使用)。
3.7.1(a) (用于芯片的使用)。
6.1.1(e) 在Capture-IR期间装入SAMPLE/PRELOAD指令码。
7.2.1(f) 支持INTEST指令
7.7.1(g) 在EXTEST期间,在各系统输出引脚处,零被装入。
7.7.2(h) 所有系统输出可设置为高阻抗。
7.8.1(f) 在INTEST期间,在各系统输入引脚处,零被装入。
8.1.1(d,e) 设计专用的各个测试数据寄存器不能被公用访问。
                          表96未实现的推荐
推荐 说明
10.4.1(f) 在EXTEST期间从系统时钟引脚被驱动进入片上逻辑的信号是外部供给的。
许可
                       表97被满足的许可
许可     说明
3.2.1(c) 保证所有公用指令都适用。
6.1.1(f) 指令寄存器不用于捕获设计专用的信息。
7.2.1(g) 提供若干外加的公用指令。
7.3.1(a) 分派若干私有指令码。
7.3.1(c) (规则?)这些指令码是备有说明文件的。
7.4.1(f) 与BYPASS效能相同的外加码。
                         表97被满足的许可(续)
许可     说明
10.1.1(i) 每个输出引脚有它自己的三态控制。
10.3.1(h) 提供一个并联锁存器。
10.3.1(i,j) 在EXTEST期间用通过TDI使数据移入的方法控制各输入引脚。
10.6.1(d,e) 在Test-Logic-Reset状态,3态单元不被强制为无效。
引言
按照本发明,起始码检测器(SCD)有在编码数据流中检测起始码的任务。它把起始码转换成令牌以便系统作进一步内部处理。
除了这个任务以外,它支持许多特性,例如通道改变。起始码检测器寄存器
表98说明本发明的起始码检测器的一些寄存器
                       表98起始码检测器寄存器
地址(16进制) 位号 方向/复位 寄存器名     说明
06 7  RW/0  scdp_access 在寄存器单元0×07可被可靠地写入以前这个位必须置1。这使SCD停止处理数据,使得在微处理器访问和SCD任何修改寄存器本身的企图之间永远不会有任何竞争。一旦值1已被写到scdp_access,微处理器必须定时询问scdp_access并等待,直到它读回1为止。一旦已对单元0×07进行了要求的访问,值0应当被写入scdp_access使SCD能继续处理数据。
6 (未用)
                      表98起始码检测器寄存器(续)
地址(16进制) 位号 方向/复位 寄存器名     说明
    5     RW/1     discard_extension 当discard_extension是1,起始码检测器把任何不能识别为MPEG_2MP@ML的扩展数据丢掉。当它是0,这些扩展数据通过编码数据缓存器送到分析器。由于是标准微码,把discard_extension置0是毫无道理的。
    4     RW/1     discard_user 当discard_user是1,在起始码检测器处任何用户数据被丢弃。当它是0,用户数据通过编码数据缓存器到分析器。当存在处理在分析器处的小量用户数据的装置时,如discard_user设
                       表98起始码检测器寄存器(续)
地址(16进制) 位号 方向/复位     寄存器名     说明
置为0,必须小心。注意系统不能处理任意量的用户数据。
3  RW/0  after_search_stop 与start_code_search装置一起用
2  RW/0  flag_picture_end 此位被设置为1,使能flag_picture_end装置
1  RW/0  after_picturestop 与flag_picture_end装置一起用。
0  RW/0  after_picture_discard 与flag_picture_end装置一起用。
07  7∶3  -- (不用)
           表98起始码检测器寄存器(续)
地址(16进制) 位号   方向/   寄存器名复位     说明
2    RW/0    discard_all 此位被置1使能discard_all装置。
1∶0 RW/0    start_code_search 这个寄存器中的一个非零直使能start_code_search装置。见84页8.5。
00  7    --(与起始码解码器无关)
6    RWa/0  end_search_event 每当start_code_search被满足时,此位被设置。如end_search_mask也置1,则产生一个中断b
 5   RW/0  unrecognized_start_event 每当检测到未被认出的起始码,这一位被置1。如unrecoginzed_start_mask也置1,则会产生一个中断。
                        表98起始码检测器寄存器(续)
地址(16进制) 位号 方向/复位 寄存器名          说明
    4     RW/0 flag_picture    每当检测到图象结束,_end_event      这一位被设置并且flag_picture_end=1。如flag_picture_end_mask也设置到1,则会产中断。见第82页8.4。
 3∶0    -- (与起始码检测器无关)
    01     7    -- (与起始码检测器无关)
    6   RW/0   end_search      见上述end_search_event_mask
    5   RW/0  unrecogni zed_   见上述unrecogni zed_start_mask        start_event
                        表98起始码检测器寄存器(续)
地址(16进制) 位号 方向/复位 寄存器名         说明
4  RW/0 flag_Picture  见上述flag_picture__end_mask     end_event
 3∶0  -- (与起始码解码器无关)
a事件位不是简单的R/W寄存器位
b所有中断以chip_mask被置1为条件起始码的检测
本发明的起始码检测器只检测那些正确地字节对准的起始码。
本发明只处理视频起始码。未被认出的起始码被检测到,产生一个unrecognized_start_code事件。未被认出的起始码是系统起始码(具有值0×b9到0×ff),保留起始码(0×b0、0×bl和0×b6)和sequence_error_code(0×b4)。discard_all装置(discard_all Facility)
discard_all装置可被用来丢弃进入系统的所有数据。用设置discard_all为1的方法可“手动”选择discard_all装置。然而。scdp_access必须首先置1然后查询直到它读回1为止。一般说,典型的情况是作为flag_picture_end装置的一部分自动进入这个方式。
本发明会继续丢弃全部数据直到或者值0写到discard_all或者遇到一个FLUSH令牌为止。注意那个复位discard_all的FLUSH令牌从令牌流中被删除并且不影响分析器或任何后接的线路块。flag_picture_end装置
按照本发明,flag_picture_end装置的意图是用一直等待到图象结束才停止数据流进入系统的方法使解码有一个清楚的终结。所以,分析器不会看到不完全的图象。
图120作为一个流程图说明flag_picture_end装置。如图所示,当图象的末尾被检测到时可以产生一个中断(flag_picture_end_event)。这可以使SCD停止处理数据直到中断得到服务为止。否则,SCD可被允许继续进行下去。
如after_picture_discard被置1,则在检测到图象末尾以后,所有接着的数据将被丢弃。对在通道改变以前,把来自系统信号分离器中在使用的一个通道的尾数据丢弃掉,这是最有用的。
注意,在这个实施例中start_code_search装置的优先级高于flag_picture_end装置。这样,由于start_code_search而被丢弃的数据不被检验。检验是为了决定图象末尾是否已经达到。start_code_search装置
在本发明中,SCD能被设置来搜寻指定类型的起始码。例如,这可用于在一个通道改变后在解码开始前搜寻一个序列起始码。
                    表99 start_code_search方式
start_code_sear ch 结束搜寻的起始码
    0 (无正常操作)
    1  picture_start_code;group_start_code和sequence_start_code
    2  group_start_code和sequence_start_code
    3  sequence_start_code
用写一个非零值到start_code_search的方法进入搜寻方式。于是起始码检测器会搜寻如表99指出的合适的起始码。在搜寻继续时所有的数据和令牌被丢弃。当遇到一个合适的起始码时搜寻结束。start_code_search被设置为零并且可以可选择地产生一个中断。
也要注意一个FLUSH令牌会象遇到一个指定的起始码那样终止搜寻。然而,在特殊情况下在FLUSH令牌正在终止discard_all功能搜寻不停止。另外,当遇到FLUSH令牌时,在discard_all和从前选择的搜寻方式之间允许直接转换。
按照本发明,图121作为一个流程图说明start_code_search装置。SCD的例子-通道改变
在本发明中用SCD装置的一个例子示于下面影响一个通道改变的动作序列中。
1)控制中的微处理器识别一个通道改变的需要(可能是对摇控
器来的信号作出响应)。微处理器将用写的方法使用SCD的
flag_picture_end装置,即写∶
·1到flag_picture_end
·1到after_picture_discard
·1到flag_picture_end_mask
2)当起始码检测器检测到当前图象的末尾时,它立即开始丢弃
后续的全部数据。微处理器被中断并确定中断的原因曾是
flag_picture_end_event。微处理器用写的方法首先为新通
道准备起始码检测器。即写∶
·3(搜寻sequence_start)到start_code_search
·1到flag_picture_end_event(以清除事件)
3)然后微处理器重新调整调谐器去选择新通道。
4)在从老通道来的最后数据传送到系统以后(以及在从新通道
来的第一个数据传送到系统以前)插入一个FLUSH令牌。(另
一种方法是,将值0写到discard_a11)。所以,起始码检测
器停止丢弃(来自老通道的)数据并开始搜寻(从新通道来
的数据)某个序列起始码。
5)一旦序列起始码被检测到,起始码检测器停止丢弃数据并重
新开始正常解码。
引言
按照本发明,视频分析器负责对视频数据流解码。它作为一个微编程处理器被实现。
在事件的正常过程中,很少需要与视频分析器交互,许多简单的应用可简单地让它不断地完成视频解码。
然而,当视频分析器检测到异常或反常的事件,例如位流出错时,它能够通知控制用的微处理器。在所有情况下,微码包括从出错中恢复(和掩盖出错)的代码使得忽略位流出错是安全的。然而,正在发生位流错误的消息可能对诊断目的有用。
另外,时间标记管理的某些方面在分析器的微码处理器中处理。在第10章中为这些提供资料。分析器寄存器
分析器所用的寄存器示于表100
                       表100分析器寄存器
地址(16进制) 位号 方向/复位 寄存器名 说明
10     7∶1  RW (parser_ctrl) 未分配功能
    0  RW  parser_continue 用于某些情况以指明分析器应继续它的当前活动还是返回正常解码。
                       表100分析器寄存器(续)
地址(16进制) 位号 方向/复位 寄存器名     说明
11     7∶0     RW  parser_status 用来指明分析器在某些情况下的状态。
12     7∶0     RO  parser_error_code 当分析器已中断并且正等待被服务时这个单元包含一个出错码。这指明中断的理由。
13     7     RW/0  parser_access 值1必须被写入这个寄存器使能访问其它分析器寄存器。然后控制微处理器必须定时查询这位直到它读回值1,指明分析器已停止处理数据并能被访问。注意∶作为一个特殊情况,如果分析器被停止等待中断被服务,parser_error_code可能没有首先写1到parser_access而被读。
                        表100分析器寄存器(续)
地址(16进制) 位号 方向/复位 寄存器名     说明
    6∶0     RW    reg_keyhole_addr 这个寄存器被用来对分析器的内部寄存器组中的单元寻址。单元可通过reg_keyhole_data写入或读出。注意对reg_keyhole_data的每个访问(读或写)使reg_keyhole_addr增加1。
14     7∶0     RW     reg_keyhole_data 从这个单元的一次读出,实际上是从分析器的寄存器组,reg_keyhole_addr指定的单元读数据。类似地,对这个单元的一次写入,实际上是写到分析器的寄存器组reg_keyhole_addr指明的单元。
15 7∶0 (未用)
                      表100分析器寄存器(续)
地址(16进制) 位号 方向/复位 寄存器名     说明
16     7∶0     RW     user_keyhole_addr 这个寄存器用来对用户数据RAM中的单元寻址,该单元可通过user_keyhole_data写入或读出。注意每次对user_keyhole_data访问(读或写)使user_keyhole_addr增加1。
17     7∶0     RW     user_keyhole_data 从这个单元的一次读出实际上是从用户数据RAM被reg_key-hole_addr指明的单元读数据,类似地,对这个单元的一次写入实际上是写到用户数据RAM被reg_keyhole_addr指明的那个单元。
00     7∶4   -- (与分析器无关)
                       表100分析器寄存器(续)
地址(16进制) 位号 方向/复位 寄存器名     说    明
 3  RWa/0 分析器事件 每当分析器检测到一个出错条件这个位被设置。如parser_mask也被置1,则将产生一个中断b。
 2∶0   -- (与分析器无关)
01  7∶4   -- (与分析器无关)
 6  RW/0  parser_mask 见上述parser_event
 3∶0   -- (与分析器无关)
a    事件位不是简单的R/W寄存器位。
b    所有中断以chip_mask被置1为条件。出错码
每当分析器检测到一个事件条件,它设置parser_event。如parser_mask置1(表明用户系统对服务分析器事件有兴趣),分析器停止处理并且(假定chip_mask置1)产生一个中断。
一旦响应中断,控制用的微处理器应读parser_error_code来决定事件的原因。表101提供在这方面定义的出错码的完整列表。
在控制用的微处理器以适当方式已对事件响应以后,它必须允许本发明的分析器重新开始处理。用写值1到parser_event的方法清除事件来做到这点。
                     表101分析器出错码
码名 说明
ERR_USER_DATA 指明用户数据已遇到并出现在用户数据RAM中。
处理用尸数据
小量的用户数据可从分析器读出,缺省情况下,所有用户数据被起始码检测器丢弃。这是为了保护系统免于不合适地使用大量用户数据,那会超出它的容量。
为了允许用户数据达到分析器,寄存器discard_user必须置0。每当在位流中遇到用户数据,数据的字节被缓存入一个片上用户数据RAM。此RAM有可缓存192个字节数据的空间。当所有用户数据的字节已被读出(或RAM已满)时,分析器会产生一个事件(ERR_USER_DATA),它允许控制微处理器从RAM读数据。
在用户数据RAM被读以前,微处理器必须首先设置parser_access为1以得到对分析器的内部寄存器的访问,然后查询这个位直到它读回1为止。parser_status表明在用户数据RAM中的字节数。用户数据RAM不能被直接访问。代之以必须把要读的地址写入user_keyhole_addr(通常为0)然后从user_keyhole_data读出数据。因为从user_keyhole_data每完成一次读出,user_keyhole_addr自动增加,适当的数量的用户数据字节能被很快读出。
如果用户数据少于192字节则所有数据用单个事件处理。如果多于192个字节,则第一次产生ERR_USER_DATA时,parser_status将包含192个字节。在事件已被清除后(用写0到parser_access,然后写1到parser_event的方法)微码会询问parser_continue来决定下面做什么。
如果parser_continue是1,分析器继续处理用户数据。残留的用户数据字节(或下一个192字节)从流中被分析,过程重复。然而,如果parser_continue是0则分析器丢弃残留用户数据进行正常视频解码。注意,即使parser_continue是0,第一个ERR_USER_DATA事件总是会产生的。用户数据量的限制
如果试图使用用户数据,重要的是这是受限制的,以便保证按照本发明对视频数据实时解码。很难规定在用户数据方面可接受的极限,它取决于许多外部制约诸如控制用微处理器的中断响应时间和从系统读数据的一个字节所用的时间。作为一个指导,用户数据量应限制在该量能保证在约50μS以内从系统读出(包括中断响应时间等)。用户数据RAM
在图象数据解码期间,用户RAM被微码处理器用于其它目的(例如存储掩盖运动矢量)。因为这个理由,不可能把数据留在RAM中和希望为以后使用将它保存下来。
引言
本发明包括帮助管理视频时间标记的电路系统。假定与MPEG系统流分析器有关联的外部电路用时钟基准(编程时基或系统时基,以适宜为准)已恢复了一个稳定的27 MHz时钟。
所以按照本发明,本电路系统牵涉到在合适的时间开始视频解码以保证与音频同步,并且在此后监视视频时间标记以保证连续的同步。没有出错时不需要后来的改正。
最好避免将时基信息传送到视频解码器的需要。硬件分成两个范围,一是与用于加载视频时间标记的系统各输入级有关的电路,另一是与视频分析器电路有关的实时计数器。系统组织
本发明包括一个计数器,它以从27 MHz SYSCOLOCK得到的等时间间隔作增量计数。用于管理时间标记的系统(在概念上)依赖被维持在系统外面的这个计数器的第二个拷贝。这两个计数器用同一个信号复位,初始化到相同的值。以后这两个计数器自由运行。
本发明根据它的被称为“视频时间”的内部时间计数器进行它的时间标记管理。为保证进行正确的比较,视频时间标记被系统解码器修改。不必知道绝对时间—只要知道图象被解码的真正时间和它应已被解码的时间的差就可以了。
下面的方程1用将视频时间计数器和修改的(modified)时间标记之差设置成等于实际“时间”(从时钟基准得到)和时间标记之差的方法来表明这点。方程2仅仅是变量的重新组织以得到修改的时间标记。
方程1∶videotime-modifiedtimestamp=timestamp-time
视频时间-修改的时间标记=时间标记-时间
方程2:modlfiedtimestamp=videotime+(timestamp-time)
修改的时间标记=视频时间+(时间标记-时间)
图122表明一个得到修改的时间标记的可能的算术组织。事实上,实际的加法(和位移)将最可能在处理器上进行而不是在专用硬件中进行。当然,有许多别的方法来得到同样数值的修改的时间标记。例如,当本发明的RESET_TIME引脚在当初被最后认定时,简单地记录“时间”值可能比有一个视频计数器的拷贝更好。从这个信息和“时间”的当前值,推定在系统内部的视频时间的当前内容总是可能的。
可使用任意合适的算术运算的重新排列,后者能产生修改的时间标记的合适值就行。
如图122所示,用于本发明的修改的时间标记只用了16位。用两种方法做到这点。第一,因为时间和时间标记(用于得到修改的时间标记--见方程2)的差总应该是小的,较高的位可被丢弃。第二,因为本发明仅仅控制视频表示到最近的帧时间(frame-time),较小有效位也不需要,右移四位把它们丢弃。
所以被保持的16位时间信息能处理直到约11.5秒的时间误差,具有约180μS的精确度(约一场时间的1%)。
注意本应用包括那些对本行业技术有一般技术的人能自己解释的额外的图,这是为了对本详细结构和本发明意图起作用的运行环提供进一步的深入理解。
前面描述的本发明的流水线系统满足对视频解码系统各方面进一步改进的长期以来存在的需要,包括一个MPEG视频解压缩方法和利用用一个两线接口作为内部连接的多级的装置,排列成一个流水线处理机。控制令牌和DATA令牌通过单个两线接口,以便用令牌格式传送控制和数据两者。一个令牌解码电路放在某些级中,以便识别某些令牌作为与该级有关的控制令牌以及沿流水线传送未被认出的令牌。重构放在所选择的级中的处理级电路,它们对被识别的控制令牌作出响应,以便重构这些级去处理一个认出的DATA令牌。各种各样的独特的支持子系统电路和处理技术被公开,以便实现这个系统,包括存储器寻址,用一个公共处理块变换数据,时间同步,异步交替缓存,视频信息存储,并行Huffman解码器等等。
从上述内容,显然可见,在本发明的特定形式已被图解和描述的同时,能作出不脱离本发明的精神和范围的各种各样的修改。因此,除非用附加的权利要求,不打算使本发明受到其他限制。

Claims (74)

1、一种用于时间同步的装置,包括:
一用于决定呈现时间的时间标记;
一个在第一电路中用于初始化系统时间的参考时钟;
一个在第一电路中用于保持系统时间的与所述参考时钟通信的第一时间计数器;以及
一个在第二电路中由所述参考时钟初始化并与所述第一时间计数器同步的第二时间计数器,用于保持所述系统时间的局部拷贝,并通过比较所述时间标记和所述第二时间计数器判断所述系统时间的局部拷贝和所述系统时间之间的呈现定时误差。
2、一种用于同步一个系统解码器和一个视频解码器的装置,包括:
一个系统解码器;
一个用于决定显示时间的时间标记;
一个用于在所述系统解码器内初始化系统时间的参考时钟;
一个在所述系统解码器中用于保持系统时间的与所述参考时钟通信的第一时间计数器;以及
一个在所述视频解码器中由所述参考时钟初始化并与所述第一时间计数器同步的第二时间计数器,用于保持系统时间的局部拷贝,并通过比较所述时间标记和所述第二时间计数器判断所述系统时间的局部拷贝和所述系统时间之间的显示定时误差。
3、一种用于同步第一电路和第二电路的装置,包括:一个用于在第一电路中初始化系统时间的参考时钟,所述第一电路有一个用于保持系统时间的与所述参考时钟通信的时间计数器;
一个用于提供基本流时间的,位于所述第一电路的第一基本流时间计数器;
所述第一电路适于接收一时间标记,且所述第一电路适于通过向所述时间标记加入基本流时间和减去系统时间来产生同步时间;且
所述第二电路适于从所述第一电路接收同步时间,且具有一与所述第一基本流时间计数器同步的第二基本流时间计数器,用于提供所述基本流时间的局部拷贝,并用于通过比较同步时间和所述基本流时间的所述局部拷贝来判断所述系统时间和所述时间标记之间的定时误差;
藉此,所述参考时钟信号不必直接传递给所述第二电路以判断定时误差。
4、一种用于同步第一电路和第二电路的装置,包括:
一个用于在第一电路中初始化系统时间的参考时钟;
所述第一电路具有一个用于保持系统时间的与所述参考时钟通信的时间计数器;
一个用于提供视频解码时间的第一视频时间计数器;
所述第一电路适于接收一视频时间标记,并通过加视频解码时间和视频时间标记并减去系统时间来产生同步时间;且
所述第二电路适于从所述第一电路接收同步时间,并具有一个与所述第一视频时间计数器同步的第二视频时间计数器,用于提供视频解码时间的局部拷贝,并通过比较所述同步时间和所述视频解码时间的局部拷贝来判断所述系统时间和所述视频时间标记之间的一个定时误差;
藉此,所述参考时钟信号不必直接传递给所述第二电路以判断定时误差。
5、一种如权利要求1到4的任意一个所陈述的装置,其中,所述基本流时间计数器被限制为16位。
6、一种如权利要求1到4的任意一个所陈述的装置,其中,位于所述基本流解码器中的所述第二基本流时间计数器被限制为16位。
7、一种如权利要求1到6的任意一个所陈述的装置,其中,所述同步时间被限制为16位,以控制所述基本流解码。
8、一种用于提供定时信息的方法,包括如下步骤:
提供一视频数据流,该数据流具有一携带于包头中的时间标记,所述时间标记涉及一数据包中的第一幅图象;
提供一寄存器,该寄存器具有一个标志,用于指示取自所述包头并被放入所述寄存器的合法时间标记信息;
将所述时间标记从所述视频数据流移走,并将其放入所述寄存器;以及
遇见一个图象起始,然后检查所述寄存器的状态,通过检查标志状态以判断合法时间标记信息是否包含于所述寄存器之中。
9、一种如权利要求8中所陈述的方法,包括有附加步骤:
如果标志指示合法时间标记信息包含于所述寄存器内,则相应于图象起始产生一个时间标记;以及
将时间标记插回数据流中。
10、一个用于解码视频的过程,包括如下步骤:
判断相对于一阈值的显示时间误差;
将视频数据解析成为令牌,以便进一步处理;
判断一个时间标记令牌是否被指示;
将时间标记令牌与一视频时间相比较;
产生一比较值,以决定定时误差的指示;
在与阈值比较时,当指示有定时误差时,判断比较值是否处于一可接受的参数内;以及
当比较值超出可接受参数时给予指示。
11、一种使用一系统解码器和一视频解码器的装置,包括:
一种适于接受MPEG系统流并从流中分配视频数据和一视频时间标记的系统解码器;
所述系统解码器具有一第一时间计数器,代表系统时间;
一个用于接受所述视频数据和所述视频时间标记的视频解码器;
所述视频系统具有一第二时间计数器,与所述第一时间计数器同步;且
所述视频解码器还具有一个视频解码器缓冲器,用于以本质上恒定的速度接收所述视频数据和以变率输出所述视频数据,以传递一视频时间标记。
12、一种如权利要求11所陈述的装置,其中,所述视频解码器在从所述视频数据解码一幅图象的同时,还对所述被解码图象的视频时间标记和所述第二时间计数器进行比较,以判断合适的显示时间。
13、一种用于判断第一电路和第二电路之间定时误差的方法,包括如下步骤:
向第一电路提供一系统时间(SY),一时间标记(TS)和一基本流时间(ET);
通过使用基本流时间(ET)、时间标记(TS)和系统时间(SY),相应于公式X=ET+TS-SY获得同步时间(X)。
把同步时间(X)提供给第二电路;以及
产生一同步的基本流时间(ET2);
通过使用同步时间(X),相应于公式ET2-X获得一定时误差;
从而,第一电路可以与第二电路同步而无需将系统时间传递给第二电路。
14、一种用于判断第一电路和第二电路之间二定时误差的方法,包括如下步骤:
向第一电路提供一时间标记(TS)和一初始时间(IT);
通过使用时间标记(TS)和初始时间(IT),相应于公式X=TS-1获得同步时间(X);
向第二电路提供同步时间(X);
产生一同步的基本流时间(ET);以及
通过使用同步时间(X),相应于公式ET-X获得一定时误差;
从而,第一电路可以与第二电路同步而无需将时间传递给第二电路。
15、一种用于判断第一电路和第二电路之间的定时误差的方法,包括如下步骤:
向第一电路提供一系统时间(SY)、一视频时间标记(VTS)和一视频解码时间(VT);
通过使用该视频解码时间(VT)、视频时间标记(VTS)和系统时间(SY),相应于公式X=VT+VTS-SY获得同步时间(X)。
向第二电路提供同步时间(X);
在第二电路中产生一视频解码时间(VT2),该视频解码时间与第一电路中的视频解码时间(VT)同步;以及
通过使用同步时间(X),相应于公式VT2-X获得一定时误差;
从而,第一电路可以与第二电路同步而无需将系统时间传递给第二电路。
16、一种用于存贮器寻址的方法,包括如下步骤:
提供一具有预先设定了固定位数的固定宽度字,用于寻址可变宽度数据;
用一宽度定义字段和一地址字段定义固定宽度字;
向宽度字义字段提供至少一位,作为终止记号;
用多个定义数据地址的位定义地址字段;
与可变宽度数据的大小成反比地在地址字段中改变位的大小;
与可变宽度数据的大小成正比地在宽度定义字段中改变位的数目;以及
在改变宽度定义字段和地址字段的宽度的同时,保持一个固定宽度字,以寻址可变宽度数据。
17、一种用于存贮器寻址的方法,包括如下步骤:
提供一具有预先设定了固定位数的固定宽度字,用于寻址数据;
用一地址字段和一替换字段定义固定宽度字:
用多个定义数据地址的位定义地址字段;
用至少一个替换位定义一可变宽度替换字段;
替换字段至少具有一个位,用作地址字段和替换字段之间的终止记号;
用替换字段从分开的寻址源中指出被替换位;以及
在相反方向改变地址字段的宽度和替换字段宽度的同时,保持一固定宽度的字,用于寻址可变宽度数据。
18、一种用于在存贮器中寻址可变宽度数据的方法,包括如下步骤:
提供具有预定宽度字并由部分字组合的存贮器;
旋转将要被存取的部分字,以便最低位对齐;
扩展字的剩余部分,使被存取的字将被作为部分字被识别;
恢复字的剩余部分;以及
旋转字,直到部分字被恢复到其初始位置。
19、一个并行Huffman解码器,包括:
一个选择器;
一对用于接收Huffman编码数据的输入寄存器,二个所述寄存器控制并行输入到所述选择器;以及
一个Huffman码ROM,用于从所述选择器接受输入和另一ROM表选择输入;所述ROM提供解码的数据输出。
20、一种如权利要求19中所陈述的Huffman解码器,适于解码MPEG-1数据。
21、一种如权利要求19中所陈述的Huffman解码器,适于解码MPEG-2数据。
22、一种如权利要求19中所陈述的Huffman解码器,适于解码MPEG-1和MPEG-2数据。
23、一种如权利要求19到22中任何一个所陈述的Huffman解码器,其中,所述一对输入寄存器中的一个处理最高有效的数据,而所述一对输入寄存器中的另一个处理最低有效的数据。
24、一种如权利要求19到23中任意一个所陈述的Huffman解码器,适于解码可变长码(VLC)。
25、一种如权利要求19到24中任意一个所陈述的Huffman解码器,其中,所述ROM执行一VLC表索引运算。
26、一种如权利要求25中所陈述的Huffman解码器,其中,所述索引运算之后跟随一个索引到数据的运算,以提供解码数据。
27、一种如权利要求19到26中任意一个所陈述的Huffman解码器,适于解码换码编码的系数。
28、一种如权利要求19到26中任意一个所陈述的Huffman解码器,适于解码直流基(lntra-DC)值。
29、一种如权利要求19到26中任意一个所陈述的Huffman解码器,适于解码运动向量增量(delta)。
30、一种用于把一总线连结到RAM的RAM接口,包括:
用于从一总线接收多个数据字,并缓冲接收到的数据字的装置;
用于从所述总线接收一个与所述多个数据字相关的地址的装置;
用于在RAM中产生一系列地址的装置,被缓冲的数据字将被写入这些地址,且这些地址产生于所接收到的地址;以及
用于在被产生的地址处将所述被缓冲的数据字写入RAM的装置。
31、根据权利要求30所述的RAM接口,所述数据字接收和缓冲装置包括一交替缓冲器。
32、根据权利要求30所述的RAM接口,其中:
所述RAM以页寻址模式运行;且
所述地址产生装置包括基于接收到的地址产生行地址的装置和产生列地址的装置。
33、如权利要求32中所述的RAM接口,其中:
所述RAM是一个DRAM;
所述总线包括一双线接口;
所述数据字接收和缓冲装置包括一双线接口;
所述地址接收装置包括一双线接口;
所述多个数据字为一令牌的形式;且
所述接收到的地址为一令牌的形式。
34、如权利要求30中所述的RAM接口,还包括:
用于判断所述数据字接收装置是否已接收到并缓冲了所述多个数据字的装置。
35、一个用于将一总线连结到RAM的RAM接口,包括:
多个以预定地址存贮于RAM中的数据字;
用于从一总线接收与所述多个数据字相关联的RAM地址的装置;
用于在所述RAM中产生一系列RAM地址,以寻址所述多个数据字的装置,所述一系列地址来自接收到的地址;
用于缓冲从所述RAM读出的数据字的装置;以及
用于利用由所述地址产生装置产生的所述一系列RAM地址,从所述RAM读所述多个数据字,并将所述数据字写入所述缓冲器装置的装置。
36、如权利要求35所述的RAM接口,其中,所述数据字缓冲装置包括一交替缓冲器。
37、如权利要求35所述的RAM接口,其中:
所述RAM以页寻址模式运行,且
所述地址产生装置包括用于基于接收到的地址产生行地址的装置和产生列地址的装置。
38、如权利要求37所述的RAM接口,其中:
所述RAM是一个DRAM;
所述总线包括一双线接口;
所述数据字缓冲装置包括一双线接口;
所述地址接收装置包括一双线接口;且
所述接收到的地址为一令牌形式。
39、如权利要求35所述的RAM接口,进一步包括:
用于判断所述数据字接收装置是否已接收并缓冲了所述多个数据字的装置。
40、一种用于控制以帧形式组织的编码视频数据的缓冲的方法,包括:
判断一帧的图象号;
判断所述帧的期望呈现号;以及
当所述图象号位于或超过所述期望呈现号时,将缓冲器标志为已准备好。
41、一种用于转换数据的装置,包括:
定义一第一数据流源的第一锁存器和定义一第二数据流源的第二锁存器;
所述第一和第二锁存器与一运算单元通信;
所述运算单元将数据传送到一个发送器;
所述发送器将所述数据发送和传送到所述第二锁存器;
所述第二锁存器被安排以吸收数据;且
所述第二和第一锁存器以一种交叉方式将所述第一和第二数据流传送到所述运算单元,进一步定义,在交叉方式的所述通信中,所述第二锁存器不打断来自所述第一锁存器的通信;
一个公共的运算单元被用于所述第一和第二数据流。
42、一种使用一公共运算单元转换数据的过程,包括如下步骤:
将数据装载入一第一锁存器,且在达到一预定周期数时,将数据传送给运算单元,并将一第一记号位装入一控制移位寄存器;
将数据装入一第二锁存器,该第二锁存器适于吸收数据;
当第一控制移位寄存器达到一预定状态且第二锁存器装满了预定数量的数据时将第二锁存器内的数据传送给运算单元;
如果第二锁存器未被预定数量的数据装满,则停止从第二锁存器传送数据;以及
当第一锁存器在接收非数据时,恢复第二锁存器。
43、一种交替缓冲器装置,包括:
至少两个存贮器阵列;
一个与所述存贮器阵列通信的写控制电路,用于控制输入到所述存贮器阵列的数据,
一个与所述存贮器阵列通信的读控制电路,用于控制从所述存贮器阵列输出的数据;且
所述写控制电路与所述读控制电路相互通信,以获得所述存贮器阵列的同步控制。
44、一种如权利要求43中所陈述的交替缓冲器,其中:
所述步允许所述读控制电路从一个存贮器阵列读,而排斥所述写控制电路写那个阵列。
45、一个如权利要求44中所陈述的交替缓冲器,其中,所述排斥仅是暂时性的。
46、一种如权利要求43所陈述的交替缓冲器,其中,所述同步允许所述写控制电路从一个存贮器阵列读,而排斥所述读控制电路从那个阵列读。
47、一种如权利要求44所述的交替缓冲器,其中所述排斥是暂时性的。
48、一种如权利要求44所述的交替缓冲器,其中所述同步包括使被排斥的控制单元等待,直到另一控制单元已在所述阵列上操作。
49、一种交替缓冲器设备,包括:
一存贮器阵列;
一通过位线与所述存贮器阵列通信的写控制电路;
一个通过所述位线与所述存贮器阵列通信的读控制电路;以及
一个读行解码器和一写行解码器,安排用以通过一对行存取所述存贮器阵列,以使单个的单元被读。
50、一种如权利要求49中所述的交替缓冲器,其中,所述读行解码器能够选择至少一行以便存取。
51、一种如权利要求49中所述的交替缓冲器,其中,至少一个所述读或写控制电路被安排用以选择至少一对所述位线,以确定要被存取的行。
52、一种如权利要求49中所述的交替缓冲器,其中,所述读和写解码器不能同时选择同一行,且所述读和写控制电路不能同时选择相同位线。
53、一种用于在存贮器中异步存取单元的方法,包括如下步骤:
使用一解码器解码至少一对单元;以及
读所述单元之一并写另一单元。
54、一种如权利要求53所述的方法,其中,每一所述单元位于一分立行中。
55、一种如权利要求53中所述的方法,其中,所述单元通常由位线解码器存取,且至少被所述位线的第一组或所述位线的第二组所存取。
56、一种如权利要求53中所述的方法,其中,所述单元被安排成为只由读和写解码器存取的第一和第二组,所述第一组单元仅由所述位线的第一组存取。
57、一种用于存贮视频信息的方法,包括如下步骤:
以一个I帧、一个P帧、一个B1帧和一个B2帧的形式提供视频信息;
在第一个帧存贮中存贮I帧;在第二个帧存贮中存贮P帧;提供一个具有一第一和一第二场存贮的第三帧存贮器,第一和第二场存贮被分别分成至少两个存贮器区域;且
在第一或第二场存贮中存贮来自存储器区域的一选中部分的B1帧;将B2帧的一部分写到存贮器区域的所选中部分中,B1帧曾从这个部分被读出。
从而,可以使用缩减数量的存贮器存贮视频信息。
58、一种用于“不管”处理的存贮器,包括:
一组存贮器地址线、反向地址线和数据线,所述地址线和反向地址线被相应于一解码格式连结,以存取一数据字形式的寻址的信息,数据线上的“不管”地址位于不与相关的地址线和所述反向的地址线相联。
59、一种如权利要求58所述的存贮器,其中,所述存贮器地址线和反向地址线被预解码成地址信和反向地址线组的子地址线,以便一个信号对于某一地址出现于一个所述子地址线上,所述存贮器有一个旁路(by-pass),可以由一条子地址线激活,以将那个子地址线作为一定义值解码,将另一子地址线作为同一组中一“不管”解码。
60、一种如权利要求58所述的存贮器,其中,一对数据线与为表示将要被存取的数据之地址位置的每一地址线相关联,所述每一数据线对都与一NOR门相连。
61、一种存取动态随机存取存贮器(DRAM)的方法,用以存贮和恢复与一二维图象相关联的数据字,所述DRAM包括两个分离的体,每个体都可能以页模式操作,以读和写数据字,二维图象被以单元的二维栅格模式组织起来,每个单元包括一个M×N的象素矩阵,且与每个单元相关的字占据体的一页或少于一页,这种方法包括如下步骤:
(a)为每个单元分配两个体中特定的一个,使得所有与那个特定单元相关联的数据字都被读自或写到那个特定体的一个特定页,体到单元的分配是这样进行的,使每个单元都与一个与任何相邻单元不同的体相关联,相邻单元既可在同一行中,也可在同一列中;且
(b)读与由一M×N的象素矩阵构成的一个单元相关联的数据字,该单元不与两维栅格模式对齐,但是与两维栅格模式单元中的象素对齐。
62、如权利要求61中所陈述的方法,其中,DRAM包括一第一和第二个体,且读与未对齐的单元相关联的数据字的步骤(b)包括如下步骤:
(c)识别二维栅格模式中的那些单元包含与未对齐单元相关联的数据字;
(d)从DRAM的第一个体中,读一个与栅格模式的单元相关联的数据字,该单元已被识别出含有与未对齐单元相关的数据字;
(e)从DRAM的第二个体中,读与另一个栅格模式的单元相关联的数据字,该单元已被识别出含有与未对齐单元相关的数据字;
(f)重复步骤(d)和(e),直到所有与未对齐单元相关的数据字都已被读。
63、一种用于存取动态随机存取存贮器(DRAM)的方法,以便存贮和恢复与一二维图象相关联的数据字,所述DRAM包含两个分离的体,每个体都能够以页模式操作以读和写数据字,两维栅格模式的单元,每个单元包括一M×N的象素矩阵,且与每个单元相关的字占据体的一页或少于一页,该方法包括如下步骤:
(a)为每个单元分配两个体中特定的一个,使得所有与那个特定单元相关联的数据字都被读自或写到那个特定体的一个特定页,体到单元的分配是这样进行的,使每个单元都与一个与任何相邻单元不同的体相关联,相邻单元既可在同一行,也可在同一列中;且
(b)读与由一M×N的象素矩阵构成的一个单元相关联的数据字,该单元不与二维栅格模式对齐,但是与二维栅格模式单元中的象素对齐。
64、如权利要求63所陈述的方法,其中,DRAM包括一第一和第二体,且读与非对齐单元相关的数据字的步骤(b)包括如下步骤:
(c)从DRAM的第一个体中,读与栅格模式中的一个单元相关联的数据字,该单元包含与非对齐单元相关联的数据字;
(d)从DRAM的第二个体中,读与栅格模式中的另一个单元相关联的数据字,该单元包含与非对齐单元相关联的数据字;
(e)重复步骤(c)和(d),直到所有与非对齐单元相关联的数据字都已被读。
65、如权利要求63所陈述方法,其中DRAM包括一第一和第二体,且读与非对齐单元相关联的数据字的步骤(b)包括如下步骤:
(d)以单元的一预定顺序,读与栅格模式的每个单元相关联的数据字,这些单元包含与非对齐单元相关联的数据字,单元的预定顺序导致从后面单元读出的数据字被从另外的体中读出。
66、如权利要求65所陈述的方法,其中,预定的顺序是栅格模式的单元按顺时针方向旋转的顺序,这些单元包含与非对齐单元相关联的数据字。
67、如权利要求65所陈述的方法,其中,预定的顺序是栅格模式的单元按反时针方向旋转的顺序,这些单元包含与非对齐单元相关联的数据字。
68、如权利要求63所陈述的方法,其中DRAM包括一第一和第二体,且读与非对齐单元相关联的数据字的步骤(b)包括如下步骤:
(c)识别二维栅格模式的哪些单元包含与非对齐单元相关联的数据字;
(d)从DRAM的第一个体,读与栅格模式的一个单元相关联的数据字,这些单元已被识别出含有与非对齐单元相关联的数据字;
(e)从DRAM的第二个体,读与栅格模式的另一个单元相关联的数据字,这些单元已被识别出含有与非对齐单元相关联的数据字;
(f)重复步骤(d)和(e),直到所有与非对齐单元相关联的数据字都已被读。
69、如权利要求63所陈述的方法,其中,DRAM包括第一和第二体,且读与非对齐单元相关联的数据字的步骤(b)包括如下步骤:
(c)识别哪些二维栅格模式的单元包含与非对齐单元相关联的数据字;
(d)以单元的预定顺序,读与栅格模式的每个单元相关联的数据字,这些单元已被识别为含与非对齐单元相关联的数据字,单元的预定顺序导致从后面单元读出的数据字被从另外的体读出。
70、如权利要求69所陈述的方法,其中,所述预定顺序是栅格模式的单元按顺时针方向旋转的顺序,这些单元被识别为包含与非对齐单元相关联的数据字。
71、如权利要求69所陈述的方法,其中,所述预定顺序是栅格模式的单元按反时针方向旋转的顺序,这些单元被识别为含有与非对齐单元相关联的数据字。
72、一种用于从RAM中存取M个字的方法,该字数M小于RAM预定的固定脉冲串长度N,该RAM包含一使能线,该使能线选择性地允许和禁止读自或写到RAM,该方法包括如下步骤:
命令N个字被读自或写到RAM;
判断何时M个字已被读自或写到RAM,M小于N;且
当判断出M个字已被读自或写给RAM时,禁止(disabling)RAM。
73、一种用于从RAM中读M个字的方法,该字数M小于RAM预定的固定脉冲串长度N,该RAM包括一使能线,该使能线选择性地允许和禁止读RAM,该方法包括如下步骤:
命令N个字被从RAM读;
判断何时M个字已被读自RAM,M小于N;且
当判断出M个字已被读自RAM时,禁止RAM。
74、一种用于向RAM写M个字的方法,该字数M小于RAM预定的固定脉冲串长度N,该RAM包括一使能线,该使能线选择性地允许和禁止写RAM,该方法包括如下步骤:
命令N个字被写到RAM;
判断何时M个字已被写到RAM,M小于N;且
当判断出M个字已被写到RAM时,禁止RAM。
CN95109662A 1994-07-29 1995-07-29 视频解压缩方法和装置 Pending CN1144434A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
GB9415413A GB9415413D0 (en) 1994-07-29 1994-07-29 Method and apparatus for video decompression
GB9511569A GB2293076B (en) 1994-07-29 1995-06-07 Time synchronisation in a multiplexed data stream
GB9415413.5 1995-06-07
GB9511569.7 1995-06-07

Publications (1)

Publication Number Publication Date
CN1144434A true CN1144434A (zh) 1997-03-05

Family

ID=26305370

Family Applications (1)

Application Number Title Priority Date Filing Date
CN95109662A Pending CN1144434A (zh) 1994-07-29 1995-07-29 视频解压缩方法和装置

Country Status (8)

Country Link
US (16) US6217234B1 (zh)
EP (8) EP0892556A3 (zh)
JP (3) JPH08172624A (zh)
CN (1) CN1144434A (zh)
AU (3) AU701335C (zh)
CA (1) CA2154962A1 (zh)
MX (1) MXPA99001886A (zh)
SG (1) SG108204A1 (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382565C (zh) * 2002-12-04 2008-04-16 Nxp股份有限公司 选择基于位流格式探测的特殊解码器的方法和设备
CN1805517B (zh) * 2005-01-14 2010-05-26 三星电子株式会社 解码双视频信号的系统和方法
CN102413382A (zh) * 2011-12-27 2012-04-11 四川九洲电器集团有限责任公司 一种提高实时视频平滑性的方法
CN104486585A (zh) * 2014-12-18 2015-04-01 深圳先进技术研究院 一种基于gis的城市海量监控视频管理方法及系统
CN106201336A (zh) * 2015-05-24 2016-12-07 硅实验室公司 具有回写缓存器的设备及其相关方法
CN106462502A (zh) * 2014-06-05 2017-02-22 Gsi科技公司 涉及多组双管道存储器电路的系统和方法
CN106852185A (zh) * 2014-10-21 2017-06-13 华为技术有限公司 基于字典的并行压缩编码器
CN107886081A (zh) * 2017-11-23 2018-04-06 武汉理工大学 双路U‑Net深度神经网络矿山井下危险行为智能分级辨识方法
CN109074305A (zh) * 2016-03-31 2018-12-21 美光科技公司 半导体装置
CN109104199A (zh) * 2018-08-29 2018-12-28 重庆物奇科技有限公司 基于霍夫曼编码的编码方法、译码方法及应用
CN110134676A (zh) * 2019-06-03 2019-08-16 西安电子科技大学 一种传感器数据质量的监控方法
CN110175185A (zh) * 2019-04-17 2019-08-27 南京天数智芯科技有限公司 一种基于时序数据分布特征的自适应无损压缩方法
CN111837145A (zh) * 2017-12-18 2020-10-27 米西克有限公司 用于将矩阵计算映射到矩阵乘法加速器的系统和方法
CN112771498A (zh) * 2018-07-05 2021-05-07 米西克有限公司 用于实施智能处理计算架构的系统和方法
CN113383317A (zh) * 2019-01-31 2021-09-10 华为技术有限公司 一种处理装置、方法及相关设备
CN114138057A (zh) * 2021-11-19 2022-03-04 广西电网有限责任公司 基于agent的智能化时钟对时装置及使用方法
US11568918B2 (en) 2019-08-22 2023-01-31 Micron Technology, Inc. Apparatuses, systems, and methods for analog accumulator for determining row access rate and target row address used for refresh operation
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
US11600326B2 (en) 2019-05-14 2023-03-07 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell and associated comparison operation
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking
US11694738B2 (en) 2018-06-19 2023-07-04 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
US11699476B2 (en) 2019-07-01 2023-07-11 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
CN117095628A (zh) * 2023-10-17 2023-11-21 北京数字光芯集成电路设计有限公司 一种基于数字脉宽调制显示的逐行逐位扫描方法及系统
US11854618B2 (en) 2019-06-11 2023-12-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values

Families Citing this family (340)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7168084B1 (en) 1992-12-09 2007-01-23 Sedna Patent Services, Llc Method and apparatus for targeting virtual objects
US9286294B2 (en) 1992-12-09 2016-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content suggestion engine
CA2145365C (en) 1994-03-24 1999-04-27 Anthony M. Jones Method for accessing banks of dram
US6217234B1 (en) * 1994-07-29 2001-04-17 Discovision Associates Apparatus and method for processing data with an arithmetic unit
DE19524688C1 (de) * 1995-07-06 1997-01-23 Siemens Ag Verfahren zur Dekodierung und Kodierung eines komprimierten Videodatenstroms mit reduziertem Speicherbedarf
JPH09168150A (ja) * 1995-10-09 1997-06-24 Fujitsu Ltd 固定長セル取扱式画像通信方法並びに固定長セル取扱式画像通信用送信装置及び固定長セル取扱式画像通信用受信装置
US7266725B2 (en) 2001-09-03 2007-09-04 Pact Xpp Technologies Ag Method for debugging reconfigurable architectures
EP0878097B1 (en) * 1996-01-08 2003-03-26 International Business Machines Corporation File server for multimedia file distribution
US6678311B2 (en) 1996-05-28 2004-01-13 Qualcomm Incorporated High data CDMA wireless communication system using variable sized channel codes
JP2888288B2 (ja) * 1996-10-03 1999-05-10 日本電気株式会社 画像符号化装置
EP0837474B1 (en) * 1996-10-17 2005-02-02 STMicroelectronics S.r.l. Method for optimising a memory cell matrix for a semiconductor integrated microcontroller
US5898897A (en) * 1996-10-18 1999-04-27 Samsung Electronics Company, Ltd. Bit stream signal feature detection in a signal processing system
US5889515A (en) * 1996-12-09 1999-03-30 Stmicroelectronics, Inc. Rendering an audio-visual stream synchronized by a software clock in a personal computer
DE19654595A1 (de) 1996-12-20 1998-07-02 Pact Inf Tech Gmbh I0- und Speicherbussystem für DFPs sowie Bausteinen mit zwei- oder mehrdimensionaler programmierbaren Zellstrukturen
US6542998B1 (en) 1997-02-08 2003-04-01 Pact Gmbh Method of self-synchronization of configurable elements of a programmable module
JPH10257488A (ja) 1997-03-12 1998-09-25 Oki Data:Kk 画像符号化装置および画像復号化装置
JPH10290464A (ja) * 1997-04-14 1998-10-27 Kokusai Denshin Denwa Co Ltd <Kdd> 符号化モード判定装置
US5883907A (en) * 1997-05-01 1999-03-16 Motorola, Inc. Asymmetrical digital subscriber line (ADSL) block encoder circuit and method of operation
US6101195A (en) * 1997-05-28 2000-08-08 Sarnoff Corporation Timing correction method and apparatus
US6421812B1 (en) * 1997-06-10 2002-07-16 Altera Corporation Programming mode selection with JTAG circuits
US8686549B2 (en) * 2001-09-03 2014-04-01 Martin Vorbach Reconfigurable elements
DE19861088A1 (de) 1997-12-22 2000-02-10 Pact Inf Tech Gmbh Verfahren zur Reparatur von integrierten Schaltkreisen
US6363511B1 (en) 1998-03-31 2002-03-26 Stmicroelectronics N.V. Device and method for decoding data streams from storage media
US6260169B1 (en) * 1998-03-31 2001-07-10 Stmicroelectronics N.V. Device and method for real time correction of row data from DVD media
US6904174B1 (en) 1998-12-11 2005-06-07 Intel Corporation Simplified predictive video encoder
US7263127B1 (en) 1998-04-02 2007-08-28 Intel Corporation Method and apparatus for simplifying frame-based motion estimation
US7046734B2 (en) * 1998-04-02 2006-05-16 Intel Corporation Method and apparatus for performing real-time data encoding
US6279156B1 (en) * 1999-01-26 2001-08-21 Dell Usa, L.P. Method of installing software on and/or testing a computer system
US6370273B1 (en) * 1998-04-10 2002-04-09 Flashpoint Technology, Inc. Method and system for tiled image data decompression
JP3965539B2 (ja) * 1998-04-23 2007-08-29 ソニー株式会社 デジタル画像復号装置及び方法、並びに記録媒体
KR100268480B1 (ko) * 1998-06-05 2000-10-16 윤종용 포맷컨버터 모듈을 갖는 영상표시기기
US6408002B1 (en) * 1998-06-24 2002-06-18 Fujitsu Siemens Computers Llc Torus routing element error handling and self-clearing with missing or extraneous control code feature
US6754905B2 (en) 1998-07-23 2004-06-22 Diva Systems Corporation Data structure and methods for providing an interactive program guide
JP4605902B2 (ja) 1998-07-23 2011-01-05 コムキャスト アイピー ホールディングス アイ, エルエルシー 双方向ユーザインターフェイス
US9924234B2 (en) 1998-07-23 2018-03-20 Comcast Ip Holdings I, Llc Data structure and methods for providing an interactive program
EP1139660B1 (en) * 1998-08-27 2012-06-13 International Business Machines Corporation System for embedding additional information in video data, and embedding method
US6952823B2 (en) * 1998-09-01 2005-10-04 Pkware, Inc. Software patch generator using compression techniques
US6141743A (en) * 1998-09-17 2000-10-31 Advanced Micro Devices, Inc. Token-based storage for general purpose processing
US6192148B1 (en) * 1998-11-05 2001-02-20 Winbond Electronics Corp. Method for determining to skip macroblocks in encoding video
JP3619456B2 (ja) * 1998-11-26 2005-02-09 松下電器産業株式会社 演算装置およびこれを用いた画像処理装置
CN1126334C (zh) * 1998-12-02 2003-10-29 皇家菲利浦电子有限公司 用于产生实时信号的系统和方法
US6624761B2 (en) 1998-12-11 2003-09-23 Realtime Data, Llc Content independent data compression method and system
US7051309B1 (en) * 1999-02-16 2006-05-23 Crosetto Dario B Implementation of fast data processing with mixed-signal and purely digital 3D-flow processing boars
US6604158B1 (en) 1999-03-11 2003-08-05 Realtime Data, Llc System and methods for accelerated data storage and retrieval
US6601104B1 (en) 1999-03-11 2003-07-29 Realtime Data Llc System and methods for accelerated data storage and retrieval
US6904610B1 (en) 1999-04-15 2005-06-07 Sedna Patent Services, Llc Server-centric customized interactive program guide in an interactive television environment
US7096487B1 (en) 1999-10-27 2006-08-22 Sedna Patent Services, Llc Apparatus and method for combining realtime and non-realtime encoded content
US6754271B1 (en) 1999-04-15 2004-06-22 Diva Systems Corporation Temporal slice persistence method and apparatus for delivery of interactive program guide
JP2003505753A (ja) * 1999-06-10 2003-02-12 ペーアーツェーテー インフォルマツィオーンステヒノロギー ゲゼルシャフト ミット ベシュレンクテル ハフツング セル構造におけるシーケンス分割方法
FI110743B (fi) * 1999-06-28 2003-03-14 Valtion Teknillinen Menetelmä ja järjestelmä liike-estimoinnin suorittamiseksi
WO2001022736A1 (en) * 1999-09-21 2001-03-29 Koninklijke Philips Electronics N.V. Clock recovery
DE60034364D1 (de) 1999-10-27 2007-05-24 Sedna Patent Services Llc Vielfache videoströme unter verwendung von slice-basierter kodierung
US6411301B1 (en) 1999-10-28 2002-06-25 Nintendo Co., Ltd. Graphics system interface
US6452600B1 (en) 1999-10-28 2002-09-17 Nintendo Co., Ltd. Graphics system interface
US6717577B1 (en) 1999-10-28 2004-04-06 Nintendo Co., Ltd. Vertex cache for 3D computer graphics
US6618048B1 (en) 1999-10-28 2003-09-09 Nintendo Co., Ltd. 3D graphics rendering system for performing Z value clamping in near-Z range to maximize scene resolution of visually important Z components
US6318156B1 (en) * 1999-10-28 2001-11-20 Micro Motion, Inc. Multiphase flow measurement system
FR2801463B1 (fr) * 1999-11-23 2002-04-12 St Microelectronics Sa Procede et systeme de traitement d'images numeriques
US6498571B2 (en) 1999-12-09 2002-12-24 Luxxon Corporation Multiple stream variable length encoder and decoder
WO2001048633A1 (en) * 1999-12-24 2001-07-05 Telstra New Wave Pty Ltd A virtual token
US20010047473A1 (en) 2000-02-03 2001-11-29 Realtime Data, Llc Systems and methods for computer initialization
EP1177692A1 (en) * 2000-02-23 2002-02-06 Koninklijke Philips Electronics N.V. Method, transmitter and transmission system
US6879988B2 (en) * 2000-03-09 2005-04-12 Pkware System and method for manipulating and managing computer archive files
US20060143253A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US8959582B2 (en) 2000-03-09 2015-02-17 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060155788A1 (en) * 2000-03-09 2006-07-13 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143237A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20050015608A1 (en) * 2003-07-16 2005-01-20 Pkware, Inc. Method for strongly encrypting .ZIP files
US20060143199A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143180A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060143249A1 (en) * 2000-03-09 2006-06-29 Pkware, Inc. System and method for manipulating and managing computer archive files
US20060173847A1 (en) * 2000-03-09 2006-08-03 Pkware, Inc. System and method for manipulating and managing computer archive files
US7844579B2 (en) * 2000-03-09 2010-11-30 Pkware, Inc. System and method for manipulating and managing computer archive files
US8230482B2 (en) 2000-03-09 2012-07-24 Pkware, Inc. System and method for manipulating and managing computer archive files
FR2806574B1 (fr) * 2000-03-15 2002-05-03 Thomson Multimedia Sa Dispositif de synchronisation d'applications interactives dans un recepteur de television
US6687384B1 (en) * 2000-03-27 2004-02-03 Sarnoff Corporation Method and apparatus for embedding data in encoded digital bitstreams
US6857061B1 (en) 2000-04-07 2005-02-15 Nintendo Co., Ltd. Method and apparatus for obtaining a scalar value directly from a vector register
US6859862B1 (en) 2000-04-07 2005-02-22 Nintendo Co., Ltd. Method and apparatus for software management of on-chip cache
EP1282236B1 (en) * 2000-05-09 2012-10-03 Sony Corporation Data processing device and data processing method, and recorded medium
US7395209B1 (en) * 2000-05-12 2008-07-01 Cirrus Logic, Inc. Fixed point audio decoding system and method
US7119813B1 (en) 2000-06-02 2006-10-10 Nintendo Co., Ltd. Variable bit field encoding
US6799085B1 (en) * 2000-06-08 2004-09-28 Beverage Works, Inc. Appliance supply distribution, dispensing and use system method
US7754025B1 (en) 2000-06-08 2010-07-13 Beverage Works, Inc. Dishwasher having a door supply housing which holds dish washing supply for multiple wash cycles
US7083071B1 (en) 2000-06-08 2006-08-01 Beverage Works, Inc. Drink supply canister for beverage dispensing apparatus
US6751525B1 (en) 2000-06-08 2004-06-15 Beverage Works, Inc. Beverage distribution and dispensing system and method
DE50115584D1 (de) 2000-06-13 2010-09-16 Krass Maren Pipeline ct-protokolle und -kommunikation
US6606689B1 (en) 2000-08-23 2003-08-12 Nintendo Co., Ltd. Method and apparatus for pre-caching data in audio memory
US6664958B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Z-texturing
US7538772B1 (en) 2000-08-23 2009-05-26 Nintendo Co., Ltd. Graphics processing system with enhanced memory controller
US6636214B1 (en) 2000-08-23 2003-10-21 Nintendo Co., Ltd. Method and apparatus for dynamically reconfiguring the order of hidden surface processing based on rendering mode
US6811489B1 (en) 2000-08-23 2004-11-02 Nintendo Co., Ltd. Controller interface for a graphics system
US6580430B1 (en) 2000-08-23 2003-06-17 Nintendo Co., Ltd. Method and apparatus for providing improved fog effects in a graphics system
US7576748B2 (en) 2000-11-28 2009-08-18 Nintendo Co. Ltd. Graphics system with embedded frame butter having reconfigurable pixel formats
US6999100B1 (en) 2000-08-23 2006-02-14 Nintendo Co., Ltd. Method and apparatus for anti-aliasing in a graphics system
US6980218B1 (en) 2000-08-23 2005-12-27 Nintendo Co., Ltd. Method and apparatus for efficient generation of texture coordinate displacements for implementing emboss-style bump mapping in a graphics rendering system
US6609977B1 (en) 2000-08-23 2003-08-26 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US6825851B1 (en) 2000-08-23 2004-11-30 Nintendo Co., Ltd. Method and apparatus for environment-mapped bump-mapping in a graphics system
US6700586B1 (en) 2000-08-23 2004-03-02 Nintendo Co., Ltd. Low cost graphics with stitching processing hardware support for skeletal animation
US6937245B1 (en) 2000-08-23 2005-08-30 Nintendo Co., Ltd. Graphics system with embedded frame buffer having reconfigurable pixel formats
US7134960B1 (en) 2000-08-23 2006-11-14 Nintendo Co., Ltd. External interfaces for a 3D graphics system
US7196710B1 (en) 2000-08-23 2007-03-27 Nintendo Co., Ltd. Method and apparatus for buffering graphics data in a graphics system
US6639595B1 (en) 2000-08-23 2003-10-28 Nintendo Co., Ltd. Achromatic lighting in a graphics system and method
US6664962B1 (en) 2000-08-23 2003-12-16 Nintendo Co., Ltd. Shadow mapping in a low cost graphics system
US6867781B1 (en) * 2000-08-23 2005-03-15 Nintendo Co., Ltd. Graphics pipeline token synchronization
US6707458B1 (en) 2000-08-23 2004-03-16 Nintendo Co., Ltd. Method and apparatus for texture tiling in a graphics system
US8692695B2 (en) 2000-10-03 2014-04-08 Realtime Data, Llc Methods for encoding and decoding data
US7417568B2 (en) 2000-10-03 2008-08-26 Realtime Data Llc System and method for data feed acceleration and encryption
US9143546B2 (en) 2000-10-03 2015-09-22 Realtime Data Llc System and method for data feed acceleration and encryption
JP3489676B2 (ja) * 2000-10-16 2004-01-26 日本電気株式会社 画像表示装置およびその駆動方法
US6697074B2 (en) * 2000-11-28 2004-02-24 Nintendo Co., Ltd. Graphics system interface
US20020073136A1 (en) * 2000-12-07 2002-06-13 Tomoaki Itoh Data reproduction method, data receiving terminal and data receiving method
US6879725B2 (en) * 2001-01-26 2005-04-12 International Business Machine Corporation Method, system, and program for decoding a section from compressed data
US7386046B2 (en) 2001-02-13 2008-06-10 Realtime Data Llc Bandwidth sensitive data compression and decompression
US9037807B2 (en) 2001-03-05 2015-05-19 Pact Xpp Technologies Ag Processor arrangement on a chip including data processing, memory, and interface elements
US7844796B2 (en) 2001-03-05 2010-11-30 Martin Vorbach Data processing device and method
US7444531B2 (en) 2001-03-05 2008-10-28 Pact Xpp Technologies Ag Methods and devices for treating and processing data
US6901422B1 (en) * 2001-03-21 2005-05-31 Apple Computer, Inc. Matrix multiplication in a vector processing system
US6922441B2 (en) * 2001-05-11 2005-07-26 International Business Machines Corporation Method for performing integer divides without propagation of truncation error
US7385949B1 (en) 2001-06-05 2008-06-10 Broadcom Corporation System and method for de-interleaving data in a wireless receiver
KR100410554B1 (ko) * 2001-07-13 2003-12-18 삼성전자주식회사 반도체 메모리 장치에서의 패키지 맵 정보 출력방법 및그에 따른 회로
KR20030010233A (ko) * 2001-07-26 2003-02-05 주식회사 글로네트 다기능 텔레비전 수상기
JP4042364B2 (ja) * 2001-07-27 2008-02-06 日本電気株式会社 アドレス生成回路、選択判断回路
US20030021486A1 (en) * 2001-07-27 2003-01-30 Tinku Acharya Method and apparatus for image scaling
US7793326B2 (en) 2001-08-03 2010-09-07 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator
US7908628B2 (en) 2001-08-03 2011-03-15 Comcast Ip Holdings I, Llc Video and digital multimedia aggregator content coding and formatting
US7996827B2 (en) 2001-08-16 2011-08-09 Martin Vorbach Method for the translation of programs for reconfigurable architectures
US7003588B1 (en) 2001-08-22 2006-02-21 Nintendo Co., Ltd. Peripheral devices for a video game system
KR100448282B1 (ko) * 2001-08-30 2004-09-10 주식회사 대우일렉트로닉스 가중치 블록을 이용한 균형 부호화 및 복호화 방법
US7434191B2 (en) 2001-09-03 2008-10-07 Pact Xpp Technologies Ag Router
US20040064517A1 (en) * 2001-09-05 2004-04-01 Tsutomu Uenoyama Synchronization message processing method
US8686475B2 (en) * 2001-09-19 2014-04-01 Pact Xpp Technologies Ag Reconfigurable elements
JP2003099250A (ja) * 2001-09-20 2003-04-04 Oki Electric Ind Co Ltd レジスタ読み出し回路及びマイクロプロセッサ
US7463544B1 (en) * 2001-10-15 2008-12-09 Altera Corporation Device programmable to operate as a multiplexer, demultiplexer, or memory device
KR100992246B1 (ko) * 2001-11-22 2010-11-05 파나소닉 주식회사 부호화 방법 및 부호화 장치
US20030101312A1 (en) * 2001-11-26 2003-05-29 Doan Trung T. Machine state storage apparatus and method
US7089541B2 (en) * 2001-11-30 2006-08-08 Sun Microsystems, Inc. Modular parser architecture with mini parsers
US6879523B1 (en) * 2001-12-27 2005-04-12 Cypress Semiconductor Corporation Random access memory (RAM) method of operation and device for search engine systems
US7301961B1 (en) 2001-12-27 2007-11-27 Cypress Semiconductor Corportion Method and apparatus for configuring signal lines according to idle codes
WO2003060747A2 (de) 2002-01-19 2003-07-24 Pact Xpp Technologies Ag Reconfigurierbarer prozessor
US7113886B2 (en) * 2002-01-23 2006-09-26 Credence Systems Corporation Circuit and method for distributing events in an event stream
US6768684B2 (en) * 2002-01-25 2004-07-27 Sun Microsystems, Inc. System and method for small read only data
DE10208715B4 (de) * 2002-02-28 2004-05-06 Infineon Technologies Ag Latenz-Zeitschalter für ein S-DRAM
US20110161977A1 (en) * 2002-03-21 2011-06-30 Martin Vorbach Method and device for data processing
US8914590B2 (en) 2002-08-07 2014-12-16 Pact Xpp Technologies Ag Data processing method and device
US8284844B2 (en) 2002-04-01 2012-10-09 Broadcom Corporation Video decoding system supporting multiple standards
US8401084B2 (en) * 2002-04-01 2013-03-19 Broadcom Corporation System and method for multi-row decoding of video with dependent rows
JP3783645B2 (ja) * 2002-04-05 2006-06-07 株式会社日立製作所 コントラスト調整方法、コントラスト調整回路及びそれを用いた映像表示装置
KR100495657B1 (ko) * 2002-05-03 2005-06-16 삼성전자주식회사 복수의 통신 모드들을 갖는 집적 회로 장치 및 그것의동작 방법
US7073099B1 (en) * 2002-05-30 2006-07-04 Marvell International Ltd. Method and apparatus for improving memory operation and yield
US7133972B2 (en) 2002-06-07 2006-11-07 Micron Technology, Inc. Memory hub with internal cache and/or memory access prediction
FI116813B (fi) * 2002-06-20 2006-02-28 Nokia Corp Menetelmä ja järjestelmä vaihtuvapituisen koodauksen purkamiseksi, ja koodisanojen paikannuslaite
AU2003243025B2 (en) * 2002-06-28 2009-02-19 Lg Electronics Inc. Recording medium having data structure for managing reproduction of multiple play-back path video data recorded thereon and recording and reproducing methods and apparatuses
RU2334286C2 (ru) 2002-06-28 2008-09-20 Эл Джи Электроникс Инк. Носитель записи со структурой данных для управления записью и воспроизведением записанных на нем данных нескольких каналов и способы и устройства записи и воспроизведения
US7117316B2 (en) 2002-08-05 2006-10-03 Micron Technology, Inc. Memory hub and access method having internal row caching
AU2003286131A1 (en) 2002-08-07 2004-03-19 Pact Xpp Technologies Ag Method and device for processing data
US7836252B2 (en) 2002-08-29 2010-11-16 Micron Technology, Inc. System and method for optimizing interconnections of memory devices in a multichip module
US6820181B2 (en) 2002-08-29 2004-11-16 Micron Technology, Inc. Method and system for controlling memory accesses to memory modules having a memory hub architecture
EP1537486A1 (de) 2002-09-06 2005-06-08 PACT XPP Technologies AG Rekonfigurierbare sequenzerstruktur
US7230987B2 (en) * 2002-09-30 2007-06-12 Broadcom Corporation Multiple time-base clock for processing multiple satellite signals
US7533402B2 (en) 2002-09-30 2009-05-12 Broadcom Corporation Satellite set-top box decoder for simultaneously servicing multiple independent programs for display on independent display device
US7336268B1 (en) * 2002-10-30 2008-02-26 National Semiconductor Corporation Point-to-point display system having configurable connections
KR100498233B1 (ko) * 2002-10-31 2005-07-01 한국전자통신연구원 선입선출 메모리 회로 및 그 구현 방법
WO2004049330A1 (en) * 2002-11-22 2004-06-10 Lg Electronics Inc. Recording medium having data structure for managing reproduction of multiple reproduction path video data recorded thereon and recording and reproducing methods and apparatuses
KR100469278B1 (ko) * 2002-12-26 2005-02-02 엘지전자 주식회사 Dtv 시스템의 디코더 asic
JP3938054B2 (ja) * 2003-01-17 2007-06-27 セイコーエプソン株式会社 画像データ構造を有するデータが記録されたコンピュータ読み取り可能な記憶媒体、画像記録方法、装置及びプログラム
JP4140709B2 (ja) * 2003-02-05 2008-08-27 松下電器産業株式会社 画像信号再生装置および画像信号再生方法
DE10304911B4 (de) * 2003-02-06 2014-10-09 Heinz Lindenmeier Kombinationsantennenanordnung für mehrere Funkdienste für Fahrzeuge
TWI228932B (en) * 2003-02-11 2005-03-01 Ind Tech Res Inst Encoding and decoding method of recording medium
WO2004072764A2 (en) * 2003-02-13 2004-08-26 Nokia Corporation Method for signaling client rate capacity in multimedia streaming
US7283591B2 (en) * 2003-03-28 2007-10-16 Tarari, Inc. Parallelized dynamic Huffman decoder
DE112004000026D2 (de) * 2003-04-04 2006-06-14 Pact Xpp Technologies Ag Verfahren und Vorrichtung für die Datenverarbeitung
US7702878B2 (en) * 2004-03-19 2010-04-20 Broadcom Corporation Method and system for scalable video data width
WO2004107063A1 (ja) * 2003-05-28 2004-12-09 Fujitsu Limited 時刻管理装置及び時刻管理方法
US7756288B2 (en) * 2003-05-29 2010-07-13 Jeffrey Lubin Method and apparatus for analog insertion of low frequency watermarks
US7245145B2 (en) 2003-06-11 2007-07-17 Micron Technology, Inc. Memory module and method having improved signal routing topology
US7120727B2 (en) 2003-06-19 2006-10-10 Micron Technology, Inc. Reconfigurable memory module and method
US7260685B2 (en) 2003-06-20 2007-08-21 Micron Technology, Inc. Memory hub and access method having internal prefetch buffers
US20040264564A1 (en) * 2003-06-26 2004-12-30 Senger Michael D. System and method for efficiently using video encoding resources
ATE396587T1 (de) * 2003-07-03 2008-06-15 Matsushita Electric Ind Co Ltd Aufzeichnungsmedium, wiedergabevorrichtung, aufzeichnungsverfahren, integrierte schaltung, programm und wiedergabeverfahren
US7389364B2 (en) 2003-07-22 2008-06-17 Micron Technology, Inc. Apparatus and method for direct memory access in a hub-based memory system
US11294618B2 (en) 2003-07-28 2022-04-05 Sonos, Inc. Media player system
US11106425B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US8234395B2 (en) 2003-07-28 2012-07-31 Sonos, Inc. System and method for synchronizing operations among a plurality of independently clocked digital data processing devices
US11650784B2 (en) 2003-07-28 2023-05-16 Sonos, Inc. Adjusting volume levels
US8086752B2 (en) 2006-11-22 2011-12-27 Sonos, Inc. Systems and methods for synchronizing operations among a plurality of independently clocked digital data processing devices that independently source digital data
US11106424B2 (en) 2003-07-28 2021-08-31 Sonos, Inc. Synchronizing operations among a plurality of independently clocked digital data processing devices
US10613817B2 (en) 2003-07-28 2020-04-07 Sonos, Inc. Method and apparatus for displaying a list of tracks scheduled for playback by a synchrony group
US8290603B1 (en) 2004-06-05 2012-10-16 Sonos, Inc. User interfaces for controlling and manipulating groupings in a multi-zone media system
US7210059B2 (en) 2003-08-19 2007-04-24 Micron Technology, Inc. System and method for on-board diagnostics of memory modules
US7133991B2 (en) * 2003-08-20 2006-11-07 Micron Technology, Inc. Method and system for capturing and bypassing memory transactions in a hub-based memory system
US7136958B2 (en) 2003-08-28 2006-11-14 Micron Technology, Inc. Multiple processor system and method including multiple memory hub modules
US7091967B2 (en) * 2003-09-01 2006-08-15 Realtek Semiconductor Corp. Apparatus and method for image frame synchronization
US7310752B2 (en) 2003-09-12 2007-12-18 Micron Technology, Inc. System and method for on-board timing margin testing of memory modules
US7194593B2 (en) 2003-09-18 2007-03-20 Micron Technology, Inc. Memory hub with integrated non-volatile memory
KR100532471B1 (ko) * 2003-09-26 2005-12-01 삼성전자주식회사 입출력 데이터 위스 조절이 가능한 메모리 장치 및 그위스 조절 방법
US7120743B2 (en) 2003-10-20 2006-10-10 Micron Technology, Inc. Arbitration system and method for memory responses in a hub-based memory system
CN100550178C (zh) * 2003-11-12 2009-10-14 松下电器产业株式会社 再现装置和方法以及记录方法
US6903668B1 (en) * 2003-11-18 2005-06-07 M-Systems Flash Disk Pioneers Ltd. Decompression accelerator for flash memory
US7330992B2 (en) 2003-12-29 2008-02-12 Micron Technology, Inc. System and method for read synchronization of memory modules
US6956511B2 (en) * 2004-01-06 2005-10-18 Sharp Laboratories Of America, Inc. Multi-symbol/coefficient decode operation for Huffman codes
US6988237B1 (en) 2004-01-06 2006-01-17 Marvell Semiconductor Israel Ltd. Error-correction memory architecture for testing production errors
KR100640885B1 (ko) * 2004-01-27 2006-11-02 엘지전자 주식회사 듀얼 비디오 디코딩을 위한 비디오 버퍼 제어 장치
US7188219B2 (en) 2004-01-30 2007-03-06 Micron Technology, Inc. Buffer control system and method for a memory system having outstanding read and write request buffers
US8023564B2 (en) * 2004-02-04 2011-09-20 Broadcom Corporaiton System and method for providing data starting from start codes aligned with byte boundaries in multiple byte words
US7788451B2 (en) 2004-02-05 2010-08-31 Micron Technology, Inc. Apparatus and method for data bypass for a bi-directional data bus in a hub-based memory sub-system
US20050175027A1 (en) * 2004-02-09 2005-08-11 Phonex Broadband Corporation System and method for requesting and granting access to a network channel
US7366864B2 (en) 2004-03-08 2008-04-29 Micron Technology, Inc. Memory hub architecture having programmable lane widths
CN100527266C (zh) * 2004-03-15 2009-08-12 汤姆森许可贸易公司 获得预定的一组数据值的方法及使用该方法的设备
US7257683B2 (en) 2004-03-24 2007-08-14 Micron Technology, Inc. Memory arbitration system and method having an arbitration packet protocol
US7120723B2 (en) 2004-03-25 2006-10-10 Micron Technology, Inc. System and method for memory hub-based expansion bus
US9977561B2 (en) 2004-04-01 2018-05-22 Sonos, Inc. Systems, methods, apparatus, and articles of manufacture to provide guest access
US6980042B2 (en) 2004-04-05 2005-12-27 Micron Technology, Inc. Delay line synchronizer apparatus and method
US7590797B2 (en) 2004-04-08 2009-09-15 Micron Technology, Inc. System and method for optimizing interconnections of components in a multichip memory module
US7162567B2 (en) * 2004-05-14 2007-01-09 Micron Technology, Inc. Memory hub and method for memory sequencing
US8024055B1 (en) 2004-05-15 2011-09-20 Sonos, Inc. Method and system for controlling amplifiers
US7363419B2 (en) 2004-05-28 2008-04-22 Micron Technology, Inc. Method and system for terminating write commands in a hub-based memory system
US7310748B2 (en) 2004-06-04 2007-12-18 Micron Technology, Inc. Memory hub tester interface and method for use thereof
US7519788B2 (en) 2004-06-04 2009-04-14 Micron Technology, Inc. System and method for an asynchronous data buffer having buffer write and read pointers
US8326951B1 (en) 2004-06-05 2012-12-04 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US8868698B2 (en) 2004-06-05 2014-10-21 Sonos, Inc. Establishing a secure wireless network with minimum human intervention
US7693797B2 (en) * 2004-06-21 2010-04-06 Nokia Corporation Transaction and payment system security remote authentication/validation of transactions from a transaction provider
US7426651B2 (en) * 2004-07-19 2008-09-16 Sony Corporation System and method for encoding independent clock using communication system reference clock
EP1622009A1 (en) * 2004-07-27 2006-02-01 Texas Instruments Incorporated JSM architecture and systems
US7392331B2 (en) 2004-08-31 2008-06-24 Micron Technology, Inc. System and method for transmitting data packets in a computer system having a memory hub architecture
US7132963B2 (en) * 2004-09-13 2006-11-07 Ati Technologies Inc. Methods and apparatus for processing variable length coded data
US20060119557A1 (en) * 2004-12-03 2006-06-08 Toppoly Optoelectronics Corporation System and method for driving an LCD
US20060176960A1 (en) * 2005-02-07 2006-08-10 Paul Lu Method and system for decoding variable length code (VLC) in a microprocessor
US20060176959A1 (en) * 2005-02-07 2006-08-10 Paul Lu Method and system for encoding variable length code (VLC) in a microprocessor
US7482954B1 (en) * 2005-02-25 2009-01-27 Xilinx, Inc. Bitstream compression for a programmable device
US7483173B2 (en) * 2005-03-10 2009-01-27 Kabushiki Kaisha Toshiba Data processor having a synchronizing function of a plurality of chips
CN100539437C (zh) * 2005-07-29 2009-09-09 上海杰得微电子有限公司 一种音频编解码器的实现方法
GB2431800A (en) * 2005-10-31 2007-05-02 Sony Uk Ltd Interpolation involving motion vectors and mutiple tap spatial filters.
US8295343B2 (en) 2005-11-18 2012-10-23 Apple Inc. Video bit rate control method
US20070116117A1 (en) * 2005-11-18 2007-05-24 Apple Computer, Inc. Controlling buffer states in video compression coding to enable editing and distributed encoding
US8233535B2 (en) 2005-11-18 2012-07-31 Apple Inc. Region-based processing of predicted pixels
US8780997B2 (en) * 2005-11-18 2014-07-15 Apple Inc. Regulation of decode-side processing based on perceptual masking
US8031777B2 (en) * 2005-11-18 2011-10-04 Apple Inc. Multipass video encoding and rate control using subsampling of frames
US20070162531A1 (en) * 2006-01-12 2007-07-12 Bhaskar Kota Flow transform for integrated circuit design and simulation having combined data flow, control flow, and memory flow views
EP1974265A1 (de) * 2006-01-18 2008-10-01 PACT XPP Technologies AG Hardwaredefinitionsverfahren
TWI299133B (en) 2006-01-23 2008-07-21 Realtek Semiconductor Corp Webcasting system and audio regulating methods therefor
TWI305479B (en) * 2006-02-13 2009-01-11 Advanced Semiconductor Eng Method of fabricating substrate with embedded component therein
US8525842B1 (en) * 2006-06-16 2013-09-03 Nvidia Corporation System and method for utilizing semaphores in a graphics pipeline
TWI432957B (zh) * 2006-08-04 2014-04-01 Marvell World Trade Ltd 具有誤差修正功能之記憶體模組以及主機裝置
KR100792431B1 (ko) 2006-08-31 2008-01-10 주식회사 하이닉스반도체 반도체 메모리 장치
US9202509B2 (en) 2006-09-12 2015-12-01 Sonos, Inc. Controlling and grouping in a multi-zone media system
US8483853B1 (en) 2006-09-12 2013-07-09 Sonos, Inc. Controlling and manipulating groupings in a multi-zone media system
US8788080B1 (en) 2006-09-12 2014-07-22 Sonos, Inc. Multi-channel pairing in a media system
US20080103875A1 (en) * 2006-10-31 2008-05-01 Michael Kokernak Methods and systems for an interactive data finder
US7817470B2 (en) * 2006-11-27 2010-10-19 Mosaid Technologies Incorporated Non-volatile memory serial core architecture
JP4453697B2 (ja) * 2006-12-15 2010-04-21 ソニー株式会社 演算処理装置、および演算処理制御方法、並びにコンピュータ・プログラム
US20080167992A1 (en) * 2007-01-05 2008-07-10 Backchannelmedia Inc. Methods and systems for an accountable media advertising application
US8347019B2 (en) * 2007-01-26 2013-01-01 International Business Machines Corporation Structure for hardware assisted bus state transition circuit using content addressable memories
US9597019B2 (en) * 2007-02-09 2017-03-21 Lifescan, Inc. Method of ensuring date and time on a test meter is accurate
KR100839504B1 (ko) * 2007-02-23 2008-06-19 삼성전자주식회사 이미지를 디코딩하는 방법, 이를 수행하는 이미지 디코더및 이를 포함하는 모바일 장치
US20080282072A1 (en) * 2007-05-08 2008-11-13 Leonard Todd E Executing Software Within Real-Time Hardware Constraints Using Functionally Programmable Branch Table
JP5040427B2 (ja) * 2007-05-11 2012-10-03 ソニー株式会社 データ処理方法、データ処理装置、固体撮像装置、撮像装置、電子機器
WO2009034489A2 (en) * 2007-09-10 2009-03-19 Nxp B.V. Method and apparatus for motion estimation in video image data
US20090080538A1 (en) * 2007-09-20 2009-03-26 Aten International Co., Ltd. Method and Apparatus for Decoding a Video Signal
KR101372418B1 (ko) * 2007-10-19 2014-03-12 (주)휴맥스 비트스트림 디코딩 장치 및 방법
DE112008003643A5 (de) * 2007-11-17 2010-10-28 Krass, Maren Rekonfigurierbare Fliesskomma- und Bit- ebenen Datenverarbeitungseinheit
US7760135B2 (en) * 2007-11-27 2010-07-20 Lockheed Martin Corporation Robust pulse deinterleaving
US20110173596A1 (en) * 2007-11-28 2011-07-14 Martin Vorbach Method for facilitating compilation of high-level code for varying architectures
WO2009071329A1 (en) * 2007-12-07 2009-06-11 Pact Xpp Technologies Ag Using function calls as compiler directives
US8051455B2 (en) 2007-12-12 2011-11-01 Backchannelmedia Inc. Systems and methods for providing a token registry and encoder
JP4536109B2 (ja) * 2007-12-26 2010-09-01 富士通株式会社 半導体装置および信号処理方法
CN101593095B (zh) * 2008-05-28 2013-03-13 国际商业机器公司 基于流水级的数据处理方法和系统
KR101649493B1 (ko) 2008-09-18 2016-08-19 삼성전자주식회사 Crc 길이의 가상 확장 방법 및 장치
US9094721B2 (en) 2008-10-22 2015-07-28 Rakuten, Inc. Systems and methods for providing a network link between broadcast content and content located on a computer network
US20100098074A1 (en) * 2008-10-22 2010-04-22 Backchannelmedia Inc. Systems and methods for providing a network link between broadcast content and content located on a computer network
US8160064B2 (en) * 2008-10-22 2012-04-17 Backchannelmedia Inc. Systems and methods for providing a network link between broadcast content and content located on a computer network
KR101590633B1 (ko) * 2008-11-11 2016-02-02 삼성전자주식회사 슬라이스 단위로 분할된 동영상을 처리하는 동영상 부호화/복호화장치 및 동영상 부호화/복호화방법
US7773005B2 (en) * 2008-12-05 2010-08-10 Advanced Micro Devices, Inc. Method and apparatus for decoding variable length data
WO2010086500A1 (en) * 2009-01-28 2010-08-05 Nokia Corporation Method and apparatus for video coding and decoding
US7746109B1 (en) * 2009-04-02 2010-06-29 Xilinx, Inc. Circuits for sharing self-timed logic
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
US8423088B2 (en) 2009-07-22 2013-04-16 Microsoft Corporation Aggregated, interactive communication timeline
BR112012009445B1 (pt) 2009-10-20 2023-02-14 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Codificador de áudio, decodificador de áudio, método para codificar uma informação de áudio, método para decodificar uma informação de áudio que utiliza uma detecção de um grupo de valores espectrais previamente decodificados
US8885663B2 (en) 2009-12-03 2014-11-11 Thomson Licensing Data block processor in a mobile DTV system with diversity
US8739262B2 (en) * 2009-12-18 2014-05-27 Sabre Glbl Inc. Tokenized data security
CN102714731A (zh) * 2009-12-22 2012-10-03 索尼公司 图像处理设备和方法及程序
CN102792370B (zh) 2010-01-12 2014-08-06 弗劳恩霍弗实用研究促进协会 使用描述有效状态值及区间边界的散列表的音频编码器、音频解码器、编码音频信息的方法及解码音频信息的方法
EP2526493B1 (en) * 2010-01-19 2019-06-19 Rambus Inc. Adaptively time-multiplexing memory references from multiple processor cores
KR101676477B1 (ko) * 2010-07-21 2016-11-15 삼성전자주식회사 컨텍스트 기반의 무손실 부호화 장치 및 방법, 그리고 복호화 장치 및 방법
US9319880B2 (en) * 2010-09-15 2016-04-19 Intel Corporation Reformatting data to decrease bandwidth between a video encoder and a buffer
US8402164B1 (en) 2010-10-27 2013-03-19 Xilinx, Inc. Asynchronous communication network and methods of enabling the asynchronous communication of data in an integrated circuit
CN103270699B (zh) * 2010-12-28 2016-08-10 国际商业机器公司 用于确定搜索起点的装置和方法
US11265652B2 (en) 2011-01-25 2022-03-01 Sonos, Inc. Playback device pairing
US11429343B2 (en) 2011-01-25 2022-08-30 Sonos, Inc. Stereo playback configuration and control
US9325999B2 (en) * 2011-03-10 2016-04-26 Sharp Kabushiki Kaisha Video decoder for slices
WO2012124063A1 (ja) * 2011-03-15 2012-09-20 富士通株式会社 半導体記憶装置及び半導体記憶装置の制御方法
US8938312B2 (en) 2011-04-18 2015-01-20 Sonos, Inc. Smart line-in processing
US9172982B1 (en) * 2011-06-06 2015-10-27 Vuemix, Inc. Audio selection from a multi-video environment
US9154813B2 (en) 2011-06-09 2015-10-06 Comcast Cable Communications, Llc Multiple video content in a composite video stream
US9020044B2 (en) * 2011-06-13 2015-04-28 Ati Technologies Ulc Method and apparatus for writing video data in raster order and reading video data in macroblock order
US8767824B2 (en) * 2011-07-11 2014-07-01 Sharp Kabushiki Kaisha Video decoder parallelization for tiles
US9042556B2 (en) 2011-07-19 2015-05-26 Sonos, Inc Shaping sound responsive to speaker orientation
CN103797811B (zh) 2011-09-09 2017-12-12 乐天株式会社 用于消费者对交互式电视接触的控制的系统和方法
TWI455595B (zh) * 2011-09-29 2014-10-01 Mstar Semiconductor Inc 布林熵解碼器及影像播放系統之布林熵解碼方法
US8824569B2 (en) * 2011-12-07 2014-09-02 International Business Machines Corporation High bandwidth decompression of variable length encoded data streams
EP2798843A4 (en) * 2011-12-28 2015-07-29 Intel Corp SYSTEMS AND METHOD FOR INTEGRATED METADATA INSERT IN A VIDEO CODING SYSTEM
JP5422640B2 (ja) * 2011-12-28 2014-02-19 京セラドキュメントソリューションズ株式会社 画像読取装置
US9729115B2 (en) 2012-04-27 2017-08-08 Sonos, Inc. Intelligently increasing the sound level of player
EP2856324A4 (en) 2012-06-04 2016-01-20 Hewlett Packard Development Co MANAGING AN ANALYTICAL FUNCTION TO EXECUTE ON DATA STORED IN AN INPUT BLOCK
US9008330B2 (en) 2012-09-28 2015-04-14 Sonos, Inc. Crossover frequency adjustments for audio speakers
WO2014163241A1 (ko) 2013-04-02 2014-10-09 주식회사 칩스앤미디어 동영상 처리 방법 및 장치
US9626184B2 (en) * 2013-06-28 2017-04-18 Intel Corporation Processors, methods, systems, and instructions to transcode variable length code points of unicode characters
US9374106B2 (en) 2013-08-28 2016-06-21 International Business Machines Corporation Efficient context save/restore during hardware decompression of DEFLATE encoded data
US8933824B1 (en) 2013-08-28 2015-01-13 International Business Machines Corporation Hardware decompression of deflate encoded data with multiple blocks
WO2015035320A1 (en) * 2013-09-06 2015-03-12 Huawei Technologies Co., Ltd. System and method for an asynchronous processor with a hierarchical token system
US9244516B2 (en) 2013-09-30 2016-01-26 Sonos, Inc. Media playback system using standby mode in a mesh network
US9800640B2 (en) 2013-10-02 2017-10-24 International Business Machines Corporation Differential encoder with look-ahead synchronization
US9226087B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9226073B2 (en) 2014-02-06 2015-12-29 Sonos, Inc. Audio output balancing during synchronized playback
US9252805B1 (en) * 2015-03-28 2016-02-02 International Business Machines Corporation Parallel huffman decoder
US9838571B2 (en) 2015-04-10 2017-12-05 Gvbb Holdings S.A.R.L. Precision timing for broadcast network
US10248376B2 (en) 2015-06-11 2019-04-02 Sonos, Inc. Multiple groupings in a playback system
US9484954B1 (en) * 2015-09-10 2016-11-01 Intel Corporation Methods and apparatus to parallelize data decompression
US10657674B2 (en) * 2016-06-17 2020-05-19 Immersive Robotics Pty Ltd. Image compression method and apparatus
US10701404B2 (en) * 2016-08-30 2020-06-30 Dolby Laboratories Licensing Corporation Real-time reshaping of single-layer backwards-compatible codec
JP2018049381A (ja) * 2016-09-20 2018-03-29 東芝メモリ株式会社 メモリ制御回路、メモリシステムおよびプロセッサシステム
US9825649B1 (en) * 2016-09-29 2017-11-21 Intel Corporation Efficient huffman decoder improvements
US10712997B2 (en) 2016-10-17 2020-07-14 Sonos, Inc. Room association based on name
US10567800B2 (en) 2016-11-29 2020-02-18 Qualcomm Incorporated Transform hardware architecture for video coding
US9819359B1 (en) 2016-12-11 2017-11-14 Microsoft Technology Licensing, Llc Multi-symbol, multi-format, parallel symbol decoder for hardware decompression engines
AU2018217434C1 (en) 2017-02-08 2023-04-27 Immersive Robotics Pty Ltd Displaying content to users in a multiplayer venue
US10691361B2 (en) 2017-02-24 2020-06-23 Microsoft Technology Licensing, Llc Multi-format pipelined hardware decompressor
US10020819B1 (en) 2017-09-28 2018-07-10 Amazon Technologies, Inc. Speculative data decompression
US11153604B2 (en) 2017-11-21 2021-10-19 Immersive Robotics Pty Ltd Image compression for digital reality
CN111837384A (zh) 2017-11-21 2020-10-27 因默希弗机器人私人有限公司 用于图像压缩的频率分量选择
US10044369B1 (en) * 2018-03-16 2018-08-07 Centri Technology, Inc. Interleaved codes for dynamic sizeable headers
US20190392287A1 (en) 2018-06-22 2019-12-26 Samsung Electronics Co., Ltd. Neural processor
CN109120273A (zh) * 2018-08-29 2019-01-01 重庆物奇科技有限公司 基于霍夫曼编码的编码装置、译码装置及系统
US10878534B2 (en) * 2018-11-07 2020-12-29 Kyocera Document Solutions Inc. Apparatuses, processes, and computer program products for image data downscaling
CN109542059B (zh) * 2018-11-19 2022-04-01 国核自仪系统工程有限公司 历史数据压缩装置和方法
US11671111B2 (en) 2019-04-17 2023-06-06 Samsung Electronics Co., Ltd. Hardware channel-parallel data compression/decompression
US11211944B2 (en) 2019-04-17 2021-12-28 Samsung Electronics Co., Ltd. Mixed-precision compression with random access
TWI743774B (zh) * 2019-07-18 2021-10-21 瑞昱半導體股份有限公司 音訊與視訊同步方法與相關的裝置
US10976709B1 (en) * 2020-03-30 2021-04-13 Stmicroelectronics (Research & Development) Limited Latched gray code for ToF applications
CN112987616B (zh) * 2021-03-15 2022-03-25 沈阳智谷科技有限公司 一种基于磁变量信号的超高速电子包采集系统与方法
CN113839678B (zh) * 2021-08-31 2023-11-03 山东云海国创云计算装备产业创新中心有限公司 一种哈夫曼解码系统、方法、设备及计算机可读存储介质

Family Cites Families (339)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US33632A (en) * 1861-11-05 Improved water-closet
GB9405914D0 (en) * 1994-03-24 1994-05-11 Discovision Ass Video decompression
EP0576749B1 (en) 1992-06-30 1999-06-02 Discovision Associates Data pipeline system
GB1243631A (en) 1967-07-18 1971-08-25 Nat Res Dev Improvements in or relating to elastic encoder storage systems
US3676802A (en) 1971-06-21 1972-07-11 Us Navy Submarine propeller cavitation noise simulator
US3873976A (en) * 1973-07-30 1975-03-25 Burroughs Corp Memory access system
US3875391A (en) * 1973-11-02 1975-04-01 Raytheon Co Pipeline signal processor
US3872430A (en) * 1973-11-23 1975-03-18 Paul Emile Boudreau Method and apparatus of error detection for variable length words using a polynomial code
US3893042A (en) * 1973-12-12 1975-07-01 Us Navy Lock indicator for phase-locked loops
US3962685A (en) * 1974-06-03 1976-06-08 General Electric Company Data processing system having pyramidal hierarchy control flow
GB1532275A (en) * 1976-01-28 1978-11-15 Nat Res Dev Apparatus for controlling raster-scan displays
US4125369A (en) * 1977-03-28 1978-11-14 The Dow Chemical Company Permanent topical textile antistats
US4142205A (en) * 1976-07-21 1979-02-27 Nippon Electric Co., Ltd. Interframe CODEC for composite color TV signals comprising means for inverting the polarity of carrier chrominance signals in every other frame or line
JPS53114617A (en) * 1977-03-17 1978-10-06 Toshiba Corp Memory unit for picture processing
US4149242A (en) * 1977-05-06 1979-04-10 Bell Telephone Laboratories, Incorporated Data interface apparatus for multiple sequential processors
US4135242A (en) * 1977-11-07 1979-01-16 Ncr Corporation Method and processor having bit-addressable scratch pad memory
US4228497A (en) * 1977-11-17 1980-10-14 Burroughs Corporation Template micromemory structure for a pipelined microprogrammable data processing system
US4215369A (en) * 1977-12-20 1980-07-29 Nippon Electric Company, Ltd. Digital transmission system for television video signals
US4196448A (en) * 1978-05-15 1980-04-01 The United States Of America As Represented By The Secretary Of The Navy TV bandwidth reduction system using a hybrid discrete cosine DPCM
US4225920A (en) * 1978-09-11 1980-09-30 Burroughs Corporation Operator independent template control architecture
US4302775A (en) * 1978-12-15 1981-11-24 Compression Labs, Inc. Digital video compression system and methods utilizing scene adaptive coding with rate buffer feedback
GB2039106B (en) * 1979-01-02 1983-03-23 Honeywell Inf Systems Number format conversion in computer
JPS6046585B2 (ja) 1979-03-06 1985-10-16 株式会社リコー シリアル・デ−タ伝送方式
US4307447A (en) * 1979-06-19 1981-12-22 Gould Inc. Programmable controller
JPS6010458B2 (ja) * 1979-08-23 1985-03-18 富士通株式会社 フエ−ズ・ロツクド・ル−プ回路
GB2059724B (en) 1979-09-28 1984-04-04 Racal Datacom Ltd Data transmission systems
DE3015125A1 (de) * 1980-04-19 1981-10-22 Ibm Deutschland Gmbh, 7000 Stuttgart Einrichtung zur speicherung und darstellung graphischer information
US4334246A (en) 1980-05-16 1982-06-08 Xerox Corporation Data decompressor circuit
US4467409A (en) * 1980-08-05 1984-08-21 Burroughs Corporation Flexible computer architecture using arrays of standardized microprocessors customized for pipeline and parallel operations
JPS6228086Y2 (zh) * 1980-12-08 1987-07-18
DE3138897A1 (de) * 1981-09-30 1983-04-14 Siemens AG, 1000 Berlin und 8000 München Schaltungsanordnung zur verarbeitung von speicheroperanden fuer dezimale und logische befehle
JPS59126368A (ja) * 1983-01-10 1984-07-20 Hitachi Ltd 符号化復号化装置
US4495629A (en) * 1983-01-25 1985-01-22 Storage Technology Partners CMOS scannable latch
JPS59146345A (ja) * 1983-02-10 1984-08-22 Masahiro Sowa コントロ−ルフロ−並列計算機方式
US4799677A (en) * 1983-09-02 1989-01-24 Bally Manufacturing Corporation Video game having video disk read only memory
US4710866A (en) * 1983-09-12 1987-12-01 Motorola, Inc. Method and apparatus for validating prefetched instruction
US4540903A (en) * 1983-10-17 1985-09-10 Storage Technology Partners Scannable asynchronous/synchronous CMOS latch
US4598372A (en) * 1983-12-28 1986-07-01 Motorola, Inc. Apparatus and method of smoothing MAPS compressed image data
US4689823A (en) * 1984-01-04 1987-08-25 Itek Corporation Digital image frame processor
US4747070A (en) * 1984-01-09 1988-05-24 Wang Laboratories, Inc. Reconfigurable memory system
NL8400391A (nl) * 1984-02-08 1985-09-02 Philips Nv Systeem voor het weergeven van een op een schijfvormige registratiedrager opgetekend programma.
US4630198A (en) * 1984-02-21 1986-12-16 Yuan Houng I Intelligent stand-alone printfile buffer with paging control
FR2561011B1 (fr) * 1984-03-09 1986-09-12 Cit Alcatel Processeur de calcul d'une transformee discrete inverse du cosinus
US4580066A (en) * 1984-03-22 1986-04-01 Sperry Corporation Fast scan/set testable latch using two levels of series gating with two current sources
US4885786A (en) * 1984-10-24 1989-12-05 International Business Machines Corporation Method for enlarging an image stored in run representation form
CA1220830A (en) * 1984-12-28 1987-04-21 David S. Drynan Transmitting sequence numbers of information in a packet data transmission system
US4646151A (en) * 1985-02-01 1987-02-24 General Electric Company Television frame synchronizer with independently controllable input/output rates
US4808398A (en) 1985-02-14 1989-02-28 The Dow Chemical Company Narrow size distribution zinc oxide
JPS61194989A (ja) 1985-02-22 1986-08-29 Mitsubishi Electric Corp 静止画伝送装置
US4680581A (en) 1985-03-28 1987-07-14 Honeywell Inc. Local area network special function frames
US5233420A (en) * 1985-04-10 1993-08-03 The United States Of America As Represented By The Secretary Of The Navy Solid state time base corrector (TBC)
JPH0632056B2 (ja) * 1985-05-31 1994-04-27 松下電器産業株式会社 デ−タ処理装置
JPS61276032A (ja) * 1985-05-31 1986-12-06 Matsushita Electric Ind Co Ltd 情報処理装置
US5263135A (en) 1985-07-18 1993-11-16 Canon Kabushiki Kaisha Image processing apparatus
DE3525898A1 (de) * 1985-07-19 1987-01-29 Reinhard Lidzba Verfahren zum komprimieren und dekomprimieren mehrerer strukturverwandter datenfolgen sowie einrichtungen zur durchfuehrung des verfahrens
JP2564805B2 (ja) * 1985-08-08 1996-12-18 日本電気株式会社 情報処理装置
US4720780A (en) * 1985-09-17 1988-01-19 The Johns Hopkins University Memory-linked wavefront array processor
US4692880A (en) * 1985-11-15 1987-09-08 General Electric Company Memory efficient cell texturing for advanced video object generator
JPS62139081A (ja) 1985-12-13 1987-06-22 Canon Inc 合成画像形成方法
US4894823A (en) * 1986-02-28 1990-01-16 American Telephone And Telegraph Company Time stamping for packet system nodes
US4726019A (en) * 1986-02-28 1988-02-16 American Telephone And Telegraph Company, At&T Bell Laboratories Digital encoder and decoder synchronization in the presence of late arriving packets
US5021947A (en) * 1986-03-31 1991-06-04 Hughes Aircraft Company Data-flow multiprocessor architecture with three dimensional multistage interconnection network for efficient signal and data processing
US4789927A (en) * 1986-04-07 1988-12-06 Silicon Graphics, Inc. Interleaved pipeline parallel processing architecture
JP2500858B2 (ja) * 1986-04-11 1996-05-29 インターナショナル・ビジネス・マシーンズ・コーポレーション 拡張ラスタ演算回路を有する表示システム
US4843632A (en) * 1986-05-09 1989-06-27 Prodigy Systems Corporation Compressed image expansion system
FR2599872B1 (fr) * 1986-06-06 1988-07-29 Thomson Csf Dispositifs de calcul de transformees cosinus mono-dimensionnelles, et dispositif de codage et dispositif de decodage d'images comportant de tels dispositifs de calcul
US4829465A (en) * 1986-06-19 1989-05-09 American Telephone And Telegraph Company, At&T Bell Laboratories High speed cosine transform
US4814978A (en) * 1986-07-15 1989-03-21 Dataflow Computer Corporation Dataflow processing element, multiprocessor, and processes
GB8618060D0 (en) 1986-07-24 1986-12-17 Gec Avionics Data processing apparatus
EP0255767A3 (en) 1986-07-31 1990-04-04 AT&T Corp. Selective broadcasting arrangement for local area networks
US4887224A (en) * 1986-08-28 1989-12-12 Canon Kabushiki Kaisha Image data processing apparatus capable of high-speed data encoding and/or decoding
US4910417A (en) * 1986-09-19 1990-03-20 Actel Corporation Universal logic module comprising multiplexers
JP2520404B2 (ja) * 1986-11-10 1996-07-31 日本電気株式会社 圧縮復号化装置
US4811214A (en) * 1986-11-14 1989-03-07 Princeton University Multinode reconfigurable pipeline computer
IT1207346B (it) 1987-01-20 1989-05-17 Cselt Centro Studi Lab Telecom Sformata coseno discreta a coeffi circuito per il calcolo della tra cienti quantizzati di campioni di segnale numerico
EP0280573B1 (en) * 1987-02-26 1993-12-22 Pioneer Electronic Corporation Device for reproducing still pictures with an audio portion
US4831321A (en) * 1987-03-03 1989-05-16 Robert Cooper Trickle jumping charging device
CA1309519C (en) * 1987-03-17 1992-10-27 Antonio Cantoni Transfer of messages in a multiplexed system
NL8700843A (nl) * 1987-04-10 1988-11-01 Philips Nv Televisie-overdrachtsysteem met transformcoding.
US4855947A (en) * 1987-05-27 1989-08-08 Amdahl Corporation Microprogrammable pipeline interlocks based on the validity of pipeline states
DE3718521A1 (de) * 1987-06-03 1988-12-22 Du Pont Deutschland Verfahren zum aufzeichnen von quasihalbtonbildern und vorrichtung zur umwandlung von bildpunkt-tonwertdaten
US4975595A (en) * 1987-06-12 1990-12-04 National Semiconductor Corporation Scannable register/latch circuit
US5297263A (en) 1987-07-17 1994-03-22 Mitsubishi Denki Kabushiki Kaisha Microprocessor with pipeline system having exception processing features
US4875196A (en) * 1987-09-08 1989-10-17 Sharp Microelectronic Technology, Inc. Method of operating data buffer apparatus
JPS6477391A (en) * 1987-09-18 1989-03-23 Victor Company Of Japan System and device for predictive coding
GB8722394D0 (en) * 1987-09-23 1987-10-28 British Telecomm Video coder
US5163132A (en) * 1987-09-24 1992-11-10 Ncr Corporation Integrated controller using alternately filled and emptied buffers for controlling bi-directional data transfer between a processor and a data storage device
DE3877105D1 (zh) * 1987-09-30 1993-02-11 Siemens Ag, 8000 Muenchen, De
US4785349A (en) * 1987-10-05 1988-11-15 Technology Inc. 64 Digital video decompression system
US5122873A (en) * 1987-10-05 1992-06-16 Intel Corporation Method and apparatus for selectively encoding and decoding a digital motion video signal at multiple resolution levels
US4811413A (en) * 1987-10-22 1989-03-07 International Business Machines Corp. System of reconfigurable pipelines of generalized neighborhood function morphic image processors
US4866637A (en) * 1987-10-30 1989-09-12 International Business Machines Corporation Pipelined lighting model processing system for a graphics workstation's shading function
US5134697A (en) * 1987-11-16 1992-07-28 Prime Computer Remote memory-mapped display with interactivity determination
US4823201A (en) * 1987-11-16 1989-04-18 Technology, Inc. 64 Processor for expanding a compressed video signal
US4897803A (en) * 1987-11-23 1990-01-30 Xerox Corporation Address token based image manipulation
NL8702905A (nl) * 1987-12-03 1989-07-03 Philips Nv Werkwijze en inrichting voor het optekenen van informatie, een registratiedrager, een inrichting voor het uitlezen van de opgetekende informatie, alsmede een codeer- en decodeerschakeling voor toepassing in de opteken- en uitleesinrichting.
DE3782500T2 (de) * 1987-12-23 1993-05-06 Ibm Gemeinsam genutzte speicherschnittstelle fuer datenverarbeitungsanlage.
FR2625340B1 (fr) * 1987-12-23 1990-05-04 Labo Electronique Physique Systeme graphique avec controleur graphique et controleur de dram
US4891784A (en) * 1988-01-08 1990-01-02 Hewlett-Packard Company High capacity tape drive transparently writes and reads large packets of blocked data between interblock gaps
JPH01188951A (ja) * 1988-01-23 1989-07-28 Sharp Corp データフロープログラムの実行制御方式
GB8805742D0 (en) * 1988-03-10 1988-04-07 Emi Plc Thorn Bandwidth reduction system for television signals
US5214770A (en) 1988-04-01 1993-05-25 Digital Equipment Corporation System for flushing instruction-cache only when instruction-cache address and data-cache address are matched and the execution of a return-from-exception-or-interrupt command
US4949280A (en) * 1988-05-10 1990-08-14 Battelle Memorial Institute Parallel processor-based raster graphics system architecture
US5121498A (en) * 1988-05-11 1992-06-09 Massachusetts Institute Of Technology Translator for translating source code for selective unrolling of loops in the source code
JP2600304B2 (ja) * 1988-06-30 1997-04-16 三菱電機株式会社 半導体記憶装置とこれを用いたデータパス
US5200925A (en) 1988-07-29 1993-04-06 Mitsubishi Denki Kabushiki Kaisha Serial access semiconductor memory device and operating method therefor
US5010401A (en) * 1988-08-11 1991-04-23 Mitsubishi Denki Kabushiki Kaisha Picture coding and decoding apparatus using vector quantization
US4989138A (en) * 1988-09-02 1991-01-29 Tektronix, Inc. Single bus graphics data processing pipeline with decentralized bus arbitration
US4991110A (en) * 1988-09-13 1991-02-05 Silicon Graphics, Inc. Graphics processor with staggered memory timing
DE3832563A1 (de) * 1988-09-24 1990-03-29 Bosch Gmbh Robert Speicheranordnung fuer eine schmalband-bilduebertragungseinrichtung
US4866510A (en) * 1988-09-30 1989-09-12 American Telephone And Telegraph Company Digital video encoder
US5241635A (en) 1988-11-18 1993-08-31 Massachusetts Institute Of Technology Tagged token data processing system with operand matching in activation frames
US5148524A (en) 1988-11-29 1992-09-15 Solbourne Computer, Inc. Dynamic video RAM incorporating on chip vector/image mode line modification
US5161221A (en) * 1988-12-12 1992-11-03 Eastman Kodak Company Multi-memory bank system for receiving continuous serial data stream and monitoring same to control bank switching without interrupting continuous data flow rate
US5091721A (en) * 1988-12-22 1992-02-25 Hughes Aircraft Company Acoustic display generator
GB2226471A (en) 1988-12-23 1990-06-27 Philips Electronic Associated Displaying a stored image in expanded format
SG102585A1 (en) * 1989-02-10 2004-03-26 Canon Kk Apparatus for image reading or processing
US5060242A (en) * 1989-02-24 1991-10-22 General Electric Company Non-destructive lossless image coder
JP2925157B2 (ja) * 1989-02-28 1999-07-28 キヤノン株式会社 データ記憶装置
JP2765918B2 (ja) * 1989-03-06 1998-06-18 株式会社日立製作所 プレゼンテーション装置
JP2766302B2 (ja) * 1989-04-06 1998-06-18 株式会社東芝 可変長符号並列解読方法および装置
JPH02280462A (ja) * 1989-04-20 1990-11-16 Fuji Photo Film Co Ltd 画像データ圧縮方法
AU612543B2 (en) * 1989-05-11 1991-07-11 Panasonic Corporation Moving image signal encoding apparatus and decoding apparatus
US5172011A (en) * 1989-06-30 1992-12-15 Digital Equipment Corporation Latch circuit and method with complementary clocking and level sensitive scan capability
US5233690A (en) * 1989-07-28 1993-08-03 Texas Instruments Incorporated Video graphics display memory swizzle logic and expansion circuit and method
US5257350A (en) 1989-08-10 1993-10-26 Apple Computer, Inc. Computer with self configuring video circuitry
US5151997A (en) * 1989-08-10 1992-09-29 Apple Computer, Inc. Computer with adaptable video circuitry
US5233545A (en) 1989-09-19 1993-08-03 Hewlett-Packard Company Time interval triggering and hardware histogram generation
US5299025A (en) 1989-10-18 1994-03-29 Ricoh Company, Ltd. Method of coding two-dimensional data by fast cosine transform and method of decoding compressed data by inverse fast cosine transform
US5053985A (en) * 1989-10-19 1991-10-01 Zoran Corporation Recycling dct/idct integrated circuit apparatus using a single multiplier/accumulator and a single random access memory
US5142380A (en) * 1989-10-23 1992-08-25 Ricoh Company, Ltd. Image data processing apparatus
US5134487A (en) * 1989-11-06 1992-07-28 Canon Kabushiki Kaisha Using common circuitry for different signals
US5057793A (en) * 1989-11-13 1991-10-15 Cowley Nicholas P Frequency synthesizer PLL having digital and analog phase detectors
US5227863A (en) 1989-11-14 1993-07-13 Intelligent Resources Integrated Systems, Inc. Programmable digital video processing system
US5146326A (en) * 1989-11-14 1992-09-08 Fujitsu Limited Coded picture information decoding apparatus having means for improving picture distortion
US5027212A (en) * 1989-12-06 1991-06-25 Videologic Limited Computer based video/graphics display system
US5003204A (en) * 1989-12-19 1991-03-26 Bull Hn Information Systems Inc. Edge triggered D-type flip-flop scan latch cell with recirculation capability
US5263316A (en) 1989-12-21 1993-11-23 Sundstrand Corporation Turbine engine with airblast injection
US5226131A (en) 1989-12-27 1993-07-06 The United States Of America As Represented By The United States Department Of Energy Sequencing and fan-out mechanism for causing a set of at least two sequential instructions to be performed in a dataflow processing computer
US5287470A (en) 1989-12-28 1994-02-15 Texas Instruments Incorporated Apparatus and method for coupling a multi-lead output bus to interleaved memories, which are addressable in normal and block-write modes
JP2881886B2 (ja) * 1989-12-30 1999-04-12 ソニー株式会社 映像信号符号化方法及びその装置
US5221966A (en) 1990-01-17 1993-06-22 Avesco Plc Video signal production from cinefilm originated material
US5113182B1 (en) 1990-01-19 1995-11-07 Prince Corp Vehicle door locking system detecting that all doors are closed
JP2842913B2 (ja) 1990-01-24 1999-01-06 株式会社日立製作所 ワイドテレビジョン信号処理回路
JP2728760B2 (ja) 1990-02-13 1998-03-18 株式会社東芝 データ伝送装置並びに受信データ処理方法
JPH03248243A (ja) 1990-02-26 1991-11-06 Nec Corp 情報処理装置
US5107345A (en) * 1990-02-27 1992-04-21 Qualcomm Incorporated Adaptive block size image compression method and system
US5081450A (en) * 1990-03-09 1992-01-14 International Business Machines Corporation Apparatus and method for compressing and expanding multibit digital pixel data
US5191548A (en) * 1990-03-14 1993-03-02 C-Cube Microsystems System for compression and decompression of video data using discrete cosine transform and coding techniques
US5253078A (en) 1990-03-14 1993-10-12 C-Cube Microsystems, Inc. System for compression and decompression of video data using discrete cosine transform and coding techniques
US5136371A (en) * 1990-03-15 1992-08-04 Thomson Consumer Electronics, Inc. Digital image coding using random scanning
US5151875A (en) * 1990-03-16 1992-09-29 C-Cube Microsystems, Inc. MOS array multiplier cell
JP2865782B2 (ja) 1990-03-16 1999-03-08 富士通株式会社 非同期伝送用codec装置
FR2660138B1 (fr) * 1990-03-26 1992-06-12 France Telecom Cnet Dispositif de codage/decodage de signaux d'image.
DE69126565T2 (de) * 1990-04-17 1998-01-02 Matsushita Electric Ind Co Ltd Verfahren zur Übertragung von Kodes mit variabler Länge
CA2014734A1 (en) 1990-04-17 1991-10-17 Marvin Simms Autotracking fume extraction exhaust hood
US5319724A (en) * 1990-04-19 1994-06-07 Ricoh Corporation Apparatus and method for compressing still images
US5201056A (en) * 1990-05-02 1993-04-06 Motorola, Inc. RISC microprocessor architecture with multi-bit tag extended instructions for selectively attaching tag from either instruction or input data to arithmetic operation output
GB9011700D0 (en) 1990-05-25 1990-07-18 Inmos Ltd Communication interface
US5311309A (en) 1990-06-01 1994-05-10 Thomson Consumer Electronics, Inc. Luminance processing system for compressing and expanding video data
GB9012538D0 (en) * 1990-06-05 1990-07-25 Philips Nv Coding of video signals
US5179372A (en) * 1990-06-19 1993-01-12 International Business Machines Corporation Video Random Access Memory serial port access
US5057917A (en) * 1990-06-20 1991-10-15 The United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration Real-time data compression of broadcast video signals
US5122948A (en) * 1990-06-28 1992-06-16 Allen-Bradley Company, Inc. Remote terminal industrial control communication system
US5173695A (en) * 1990-06-29 1992-12-22 Bell Communications Research, Inc. High-speed flexible variable-length-code decoder
EP0466550B1 (en) 1990-06-29 1998-11-18 Digital Equipment Corporation Conversion of internal processor register commands to I/O space address
EP0463965B1 (en) * 1990-06-29 1998-09-09 Digital Equipment Corporation Branch prediction unit for high-performance processor
JPH0459375A (ja) * 1990-06-29 1992-02-26 Seikosha Co Ltd シリアルプリンタ
CA2044051A1 (en) 1990-06-29 1991-12-30 Paul C. Wade System and method for error detection and reducing simultaneous switching noise
US5247612A (en) * 1990-06-29 1993-09-21 Radius Inc. Pixel display apparatus and method using a first-in, first-out buffer
IL98700A (en) 1990-07-13 1994-04-12 Minnesota Mining & Mfg A method and device for building a composite figure from several data types
FR2664779B1 (fr) 1990-07-13 1993-06-11 Europ Rech Electr Lab Procede de traitement d'un signal video.
US5174641A (en) * 1990-07-25 1992-12-29 Massachusetts Institute Of Technology Video encoding method for television applications
KR100214435B1 (ko) 1990-07-25 1999-08-02 사와무라 시코 동기식 버스트 엑세스 메모리
US5202847A (en) 1990-07-31 1993-04-13 Inmos Limited Digital signal processing
US5241658A (en) 1990-08-21 1993-08-31 Apple Computer, Inc. Apparatus for storing information in and deriving information from a frame buffer
US5297271A (en) 1990-09-21 1994-03-22 Chips And Technologies, Inc. Method and apparatus for performing a read-write-modify operation in a VGA compatible controller
US5189526A (en) 1990-09-21 1993-02-23 Eastman Kodak Company Method and apparatus for performing image compression using discrete cosine transform
US5367636A (en) 1990-09-24 1994-11-22 Ncube Corporation Hypercube processor network in which the processor indentification numbers of two processors connected to each other through port number n, vary only in the nth bit
US5038209A (en) * 1990-09-27 1991-08-06 At&T Bell Laboratories Adaptive buffer/quantizer control for transform video coders
JPH06500655A (ja) 1990-10-03 1994-01-20 スィンキング マシンズ コーポレーション 並列コンピュータ・システム
JPH04142812A (ja) 1990-10-04 1992-05-15 Toshiba Corp 位相同期回路
US5130568A (en) * 1990-11-05 1992-07-14 Vertex Semiconductor Corporation Scannable latch system and method
US5229863A (en) * 1990-12-24 1993-07-20 Xerox Corporation High speed CCITT decompressor
JPH04242860A (ja) 1990-12-28 1992-08-31 Sony Corp 演算装置
US5253053A (en) 1990-12-31 1993-10-12 Apple Computer, Inc. Variable length decoding using lookup tables
US5184124A (en) 1991-01-02 1993-02-02 Next Computer, Inc. Method and apparatus for compressing and storing pixels
GB2252002B (en) 1991-01-11 1995-01-04 Sony Broadcast & Communication Compression of video signals
JPH04236664A (ja) 1991-01-18 1992-08-25 Sony Corp 演算回路
US5301344A (en) 1991-01-29 1994-04-05 Analogic Corporation Multibus sequential processor to perform in parallel a plurality of reconfigurable logic operations on a plurality of data sets
US5055841A (en) * 1991-02-01 1991-10-08 Bell Communications Research, Inc. High-speed feedforward variable word length decoder
US5257213A (en) 1991-02-20 1993-10-26 Samsung Electronics Co., Ltd. Method and circuit for two-dimensional discrete cosine transform
US5111292A (en) * 1991-02-27 1992-05-05 General Electric Company Priority selection apparatus as for a video signal processor
US5122875A (en) * 1991-02-27 1992-06-16 General Electric Company An HDTV compression system
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
US5333212A (en) 1991-03-04 1994-07-26 Storm Technology Image compression technique with regionally selective compression ratio
CA2062200A1 (en) * 1991-03-15 1992-09-16 Stephen C. Purcell Decompression processor for video applications
US5457482A (en) 1991-03-15 1995-10-10 Hewlett Packard Company Method and apparatus for utilizing off-screen memory as a simultaneously displayable channel
US5870497A (en) 1991-03-15 1999-02-09 C-Cube Microsystems Decoder for compressed video signals
US5421028A (en) 1991-03-15 1995-05-30 Hewlett-Packard Company Processing commands and data in a common pipeline path in a high-speed computer graphics system
JP2866754B2 (ja) * 1991-03-27 1999-03-08 三菱電機株式会社 演算処理装置
US5220325A (en) * 1991-03-28 1993-06-15 At&T Bell Laboratories Hierarchical variable length decoder for digital video data
US5203003A (en) 1991-03-28 1993-04-13 Echelon Corporation Computer architecture for conserving power by using shared resources and method for suspending processor execution in pipeline
US5164819A (en) 1991-04-03 1992-11-17 Music John D Method and system for coding and compressing color video signals
US5287193A (en) 1991-04-10 1994-02-15 Industrial Technology Research Institute Parallel processing architecture of run-length codes
US5457780A (en) 1991-04-17 1995-10-10 Shaw; Venson M. System for producing a video-instruction set utilizing a real-time frame differential bit map and microblock subimages
US5182642A (en) 1991-04-19 1993-01-26 General Dynamics Lands Systems Inc. Apparatus and method for the compression and transmission of multiformat data
JP3109854B2 (ja) 1991-04-23 2000-11-20 キヤノン株式会社 画像符号化方法及び装置
US5212549A (en) * 1991-04-29 1993-05-18 Rca Thomson Licensing Corporation Error concealment apparatus for a compressed video signal processing system
US5146325A (en) * 1991-04-29 1992-09-08 Rca Thomson Licensing Corporation Video signal decompression apparatus for independently compressed even and odd field data
US5185819A (en) * 1991-04-29 1993-02-09 General Electric Company Video signal compression apparatus for independently compressing odd and even fields
US5263136A (en) 1991-04-30 1993-11-16 Optigraphics Corporation System for managing tiled images using multiple resolutions
JP3532932B2 (ja) 1991-05-20 2004-05-31 モトローラ・インコーポレイテッド 時間重複メモリ・アクセスを有するランダムにアクセス可能なメモリ
AU657510B2 (en) 1991-05-24 1995-03-16 Apple Inc. Improved image encoding/decoding method and apparatus
US5212742A (en) * 1991-05-24 1993-05-18 Apple Computer, Inc. Method and apparatus for encoding/decoding image data
EP0514663A3 (en) 1991-05-24 1993-07-14 International Business Machines Corporation An apparatus and method for motion video encoding employing an adaptive quantizer
JPH06507990A (ja) 1991-05-24 1994-09-08 ブリティッシュ・テクノロジー・グループ・ユーエスエイ・インコーポレーテッド コンピュータのための最適化コンパイラ
JPH04354287A (ja) 1991-05-30 1992-12-08 Sony Corp 画像補間回路
JP2569496Y2 (ja) 1991-06-07 1998-04-22 日東工器株式会社 ダイアフラムポンプ
US5228098A (en) 1991-06-14 1993-07-13 Tektronix, Inc. Adaptive spatio-temporal compression/decompression of video image signals
US5184347A (en) * 1991-07-09 1993-02-02 At&T Bell Laboratories Adaptive synchronization arrangement
US5404550A (en) 1991-07-25 1995-04-04 Tandem Computers Incorporated Method and apparatus for executing tasks by following a linked list of memory packets
US5254991A (en) 1991-07-30 1993-10-19 Lsi Logic Corporation Method and apparatus for decoding Huffman codes
GB2258781B (en) 1991-08-13 1995-05-03 Sony Broadcast & Communication Data compression
US5321806A (en) 1991-08-21 1994-06-14 Digital Equipment Corporation Method and apparatus for transmitting graphics command in a computer graphics system
JP3108479B2 (ja) 1991-08-28 2000-11-13 株式会社リコー 符号化復号化方法およびその装置
US5319460A (en) 1991-08-29 1994-06-07 Canon Kabushiki Kaisha Image signal processing device including frame memory
JP2507204B2 (ja) 1991-08-30 1996-06-12 松下電器産業株式会社 映像信号符号化装置
US5309563A (en) 1991-09-09 1994-05-03 Compaq Computer Corporation Computer implemented method for transferring command messages between a system manager for a computer system and a network operating system associated therewith
US5168375A (en) 1991-09-18 1992-12-01 Polaroid Corporation Image reconstruction by use of discrete cosine and related transforms
GB2260053B (en) 1991-09-27 1995-03-08 Sony Broadcast & Communication Image signal processing
US5261047A (en) 1991-10-29 1993-11-09 Xerox Corporation Bus arbitration scheme for facilitating operation of a printing apparatus
US5231484A (en) * 1991-11-08 1993-07-27 International Business Machines Corporation Motion video compression system with adaptive bit allocation and quantization
US5214507A (en) * 1991-11-08 1993-05-25 At&T Bell Laboratories Video signal quantization for an mpeg like coding environment
JPH05137131A (ja) * 1991-11-13 1993-06-01 Sony Corp フレーム間動き予測方法
US5257223A (en) 1991-11-13 1993-10-26 Hewlett-Packard Company Flip-flop circuit with controllable copying between slave and scan latches
US5227878A (en) * 1991-11-15 1993-07-13 At&T Bell Laboratories Adaptive coding and decoding of frames and fields of video
US5237413A (en) * 1991-11-19 1993-08-17 Scientific-Atlanta, Inc. Motion filter for digital television system
US5175617A (en) * 1991-12-04 1992-12-29 Vision Applications, Inc. Telephone line picture transmission
US5307180A (en) 1991-12-18 1994-04-26 Xerox Corporation Method and apparatus for controlling the processing of digital image signals
US5517603A (en) 1991-12-20 1996-05-14 Apple Computer, Inc. Scanline rendering device for generating pixel values for displaying three-dimensional graphical images
US5307449A (en) 1991-12-20 1994-04-26 Apple Computer, Inc. Method and apparatus for simultaneously rendering multiple scanlines
US5241222A (en) * 1991-12-20 1993-08-31 Eastman Kodak Company Dram interface adapter circuit
US5237432A (en) 1991-12-23 1993-08-17 Xerox Corporation Image scaling apparatus
US5159449A (en) * 1991-12-26 1992-10-27 Workstation Technologies, Inc. Method and apparatus for data reduction in a video image data reduction system
JPH06153069A (ja) * 1992-10-30 1994-05-31 Sony Corp 画像の変換装置、複製装置、再生装置、および表示装置
US5446866A (en) 1992-01-30 1995-08-29 Apple Computer, Inc. Architecture for transferring pixel streams, without control information, in a plurality of formats utilizing addressable source and destination channels associated with the source and destination components
US5225832A (en) * 1992-02-13 1993-07-06 Industrial Technology Research Institute High speed variable length decoder
US5280349A (en) * 1992-02-13 1994-01-18 Industrial Technology Research Institute HDTV decoder
US5490257A (en) 1992-02-24 1996-02-06 Advanced Micro Devices, Inc. RAM based FIFO memory half-full detection apparatus and method
US5357606A (en) 1992-02-25 1994-10-18 Apple Computer, Inc. Row interleaved frame buffer
JP3323950B2 (ja) 1992-03-17 2002-09-09 サン・マイクロシステムズ・インコーポレーテッド デジタル画像処理システムでidctを実施する方法及びそのためのidctプロセッサ
US5233348A (en) * 1992-03-26 1993-08-03 General Instrument Corporation Variable length code word decoder for use in digital communication systems
US5333266A (en) 1992-03-27 1994-07-26 International Business Machines Corporation Method and apparatus for message handling in computer systems
US5293229A (en) 1992-03-27 1994-03-08 Matsushita Electric Corporation Of America Apparatus and method for processing groups of fields in a video data compression system
US5253058A (en) 1992-04-01 1993-10-12 Bell Communications Research, Inc. Efficient coding scheme for multilevel video transmission
CA2133459A1 (en) 1992-04-01 1993-10-14 Michael Keith Method and apparatus for compressing and decompressing a sequence of digital video images using sync frames
US5329313A (en) 1992-04-01 1994-07-12 Intel Corporation Method and apparatus for real time compression and decompression of a digital motion video signal using a fixed Huffman table
KR0160610B1 (ko) 1992-04-07 1999-01-15 강진구 가변장부호화에 의한 영상압축방법과 신장방법 및 그 장치
US5287420A (en) 1992-04-08 1994-02-15 Supermac Technology Method for image compression on a personal computer
US5283646A (en) 1992-04-09 1994-02-01 Picturetel Corporation Quantizer control method and apparatus
GB2267194B (en) 1992-05-13 1995-10-04 Sony Broadcast & Communication Apparatus and method for processing image data
US5241383A (en) 1992-05-13 1993-08-31 Bell Communications Research, Inc. Pseudo-constant bit rate video coding with quantization parameter adjustment
US5305438A (en) 1992-05-19 1994-04-19 Sony Electronics Inc. Video storage, processing, and distribution system using recording format independent hierarchical storages and processors
US5369405A (en) 1992-05-19 1994-11-29 Goldstar Co., Ltd. Coefficient generation apparatus for variable length decoder
CA2096584A1 (en) 1992-05-28 1993-11-29 Frank H. Liao Variable length code decoder for video decompression operations
US5450599A (en) 1992-06-04 1995-09-12 International Business Machines Corporation Sequential pipelined processing for the compression and decompression of image data
US5289577A (en) * 1992-06-04 1994-02-22 International Business Machines Incorporated Process-pipeline architecture for image/video processing
KR940010433B1 (ko) 1992-06-09 1994-10-22 대우전자 주식회사 가변길이 코드 디코딩장치
US5276513A (en) 1992-06-10 1994-01-04 Rca Thomson Licensing Corporation Implementation architecture for performing hierarchical motion analysis of video images in real time
US5289276A (en) 1992-06-19 1994-02-22 General Electric Company Method and apparatus for conveying compressed video data over a noisy communication channel
JPH0695986A (ja) 1992-06-19 1994-04-08 Westinghouse Electric Corp <We> リアルタイムデータ・イメージングネットワークシステム及びその操作方法
US5276681A (en) 1992-06-25 1994-01-04 Starlight Networks Process for fair and prioritized access to limited output buffers in a multi-port switch
EP0575675B1 (en) 1992-06-26 1998-11-25 Discovision Associates Method and apparatus for transformation of signals from a frequency to a time domaine
US5603012A (en) 1992-06-30 1997-02-11 Discovision Associates Start code detector
US5412782A (en) 1992-07-02 1995-05-02 3Com Corporation Programmed I/O ethernet adapter with early interrupts for accelerating data transfer
US5287182A (en) * 1992-07-02 1994-02-15 At&T Bell Laboratories Timing recovery for variable bit-rate video on asynchronous transfer mode (ATM) networks
US5253055A (en) 1992-07-02 1993-10-12 At&T Bell Laboratories Efficient frequency scalable video encoding with coefficient selection
US5287178A (en) 1992-07-06 1994-02-15 General Electric Company Reset control network for a video signal encoder
US5325092A (en) 1992-07-07 1994-06-28 Ricoh Company, Ltd. Huffman decoder architecture for high speed operation and reduced memory
US5278620A (en) 1992-07-08 1994-01-11 Xerox Corporation Cleaning blade equipped with a vibration sensor
US5231486A (en) * 1992-07-27 1993-07-27 General Electric Company Data separation processing in a dual channel digital high definition television system
US5278647A (en) 1992-08-05 1994-01-11 At&T Bell Laboratories Video decoder using adaptive macroblock leak signals
FR2695278B1 (fr) 1992-08-26 1994-10-14 Euro Cp Sarl Procédé d'échange d'informations, en particulier entre équipements d'un local, et unité fonctionnelle et installation s'y rapportant.
US5406279A (en) 1992-09-02 1995-04-11 Cirrus Logic, Inc. General purpose, hash-based technique for single-pass lossless data compression
JP3278756B2 (ja) * 1992-09-10 2002-04-30 日本テキサス・インスツルメンツ株式会社 画像処理方法及び装置
US5301019A (en) 1992-09-17 1994-04-05 Zenith Electronics Corp. Data compression system having perceptually weighted motion vectors
US5351047A (en) 1992-09-21 1994-09-27 Laboratory Automation, Inc. Data decoding method and apparatus
US5294894A (en) 1992-10-02 1994-03-15 Compaq Computer Corporation Method of and apparatus for startup of a digital computer system clock
US5298992A (en) 1992-10-08 1994-03-29 International Business Machines Corporation System and method for frame-differencing based video compression/decompression with forward and reverse playback capability
US5300949A (en) 1992-10-22 1994-04-05 International Business Machines Corporation Scalable digital video decompressor
CA2126561C (en) * 1992-10-23 1998-07-14 Martin Schaarschmidt Boning device and method
US5278520A (en) 1992-10-26 1994-01-11 Codex, Corp. Phase lock detection in a phase lock loop
US5329619A (en) 1992-10-30 1994-07-12 Software Ag Cooperative processing interface and communication broker for heterogeneous computing environments
US5497498A (en) 1992-11-05 1996-03-05 Giga Operations Corporation Video processing module using a second programmable logic device which reconfigures a first programmable logic device for data transformation
JP3007235B2 (ja) 1992-11-10 2000-02-07 富士写真フイルム株式会社 可変長符号の伸長装置および圧縮伸長装置
US5420801A (en) 1992-11-13 1995-05-30 International Business Machines Corporation System and method for synchronization of multimedia streams
US5301272A (en) 1992-11-25 1994-04-05 Intel Corporation Method and apparatus for address space aliasing to identify pixel types
JPH06178274A (ja) * 1992-11-30 1994-06-24 Sony Corp 動画像復号化装置
JP3255308B2 (ja) * 1992-12-18 2002-02-12 ソニー株式会社 データ再生装置
US5517670A (en) 1992-12-30 1996-05-14 International Business Machines Corporation Adaptive data transfer channel employing extended data block capability
JP3257643B2 (ja) * 1993-01-18 2002-02-18 ソニー株式会社 画像符号化装置および画像復号化装置
GB2274956B (en) * 1993-02-05 1997-04-02 Sony Broadcast & Communication Image data compression
AU672070B2 (en) 1993-02-26 1996-09-19 Sony Corporation Synchronization of audio/video information
US5396497A (en) 1993-02-26 1995-03-07 Sony Corporation Synchronization of audio/video information
US5298896A (en) 1993-03-15 1994-03-29 Bell Communications Research, Inc. Method and system for high order conditional entropy coding
FR2703535A1 (fr) * 1993-03-31 1994-10-07 Philips Electronique Lab Procédé et dispositif pour décoder des images comprimées.
US5410355A (en) 1993-04-02 1995-04-25 Rca Thomson Licensing Corporation Video signal processor including input codeword buffer for providing stored codewords to codeword priority analysis circuit
US5345408A (en) 1993-04-19 1994-09-06 Gi Corporation Inverse discrete cosine transform processor
US5572691A (en) 1993-04-21 1996-11-05 Gi Corporation Apparatus and method for providing multiple data streams from stored data using dual memory buffers
US5486876A (en) 1993-04-27 1996-01-23 Array Microsystems, Inc. Video interface unit for mapping physical image data to logical tiles
US5699460A (en) * 1993-04-27 1997-12-16 Array Microsystems Image compression coprocessor with data flow control and multiple processing units
US5448310A (en) 1993-04-27 1995-09-05 Array Microsystems, Inc. Motion estimation coprocessor
US5486864A (en) 1993-05-13 1996-01-23 Rca Thomson Licensing Corporation Differential time code method and apparatus as for a compressed video signal
ES2118217T3 (es) 1993-05-19 1998-09-16 Alsthom Cge Alcatel Metodo de gestion de memoria de servidores de video.
FR2705805B1 (fr) 1993-05-27 1996-06-28 Sgs Thomson Microelectronics Système de traitement d'images.
US5304953A (en) 1993-06-01 1994-04-19 Motorola, Inc. Lock recovery circuit for a phase locked loop
DE69330675T2 (de) 1993-06-03 2002-06-13 Ibm Verbesserte Paketstruktur für Netzschicht
US5425061A (en) 1993-06-07 1995-06-13 Texas Instruments Incorporated Method and apparatus for bit stream synchronization
JP2560988B2 (ja) 1993-07-16 1996-12-04 日本電気株式会社 情報処理装置および処理方法
US5577203A (en) 1993-07-29 1996-11-19 Cirrus Logic, Inc. Video processing methods
US5598514A (en) 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
JP3247804B2 (ja) 1993-08-17 2002-01-21 株式会社リコー データ圧縮方法、データ圧縮/伸長方法、符号語データ数制限装置
US5430485A (en) * 1993-09-30 1995-07-04 Thomson Consumer Electronics, Inc. Audio/video synchronization in a digital transmission system
US5568165A (en) 1993-10-22 1996-10-22 Auravision Corporation Video processing technique using multi-buffer video memory
US5398072A (en) 1993-10-25 1995-03-14 Lsi Logic Corporation Management of channel buffer in video decoders
US5452006A (en) 1993-10-25 1995-09-19 Lsi Logic Corporation Two-part synchronization scheme for digital video decoders
US5490247A (en) 1993-11-24 1996-02-06 Intel Corporation Video subsystem for computer-based conferencing system
US5528238A (en) 1993-11-24 1996-06-18 Intel Corporation Process, apparatus and system for decoding variable-length encoded signals
US5634025A (en) * 1993-12-09 1997-05-27 International Business Machines Corporation Method and system for efficiently fetching variable-width instructions in a data processing system having multiple prefetch units
CA2145361C (en) * 1994-03-24 1999-09-07 Martin William Sotheran Buffer manager
EP0674266A3 (en) * 1994-03-24 1997-12-03 Discovision Associates Method and apparatus for interfacing with ram
US5541595A (en) 1994-05-19 1996-07-30 Matsushita Electric Corporation Of America Variable length code decoder for simultaneous decoding the most significant bits and the least significant bits of a variable length code
US5477263A (en) * 1994-05-26 1995-12-19 Bell Atlantic Network Services, Inc. Method and apparatus for video on demand with fast forward, reverse and channel pause
US5495291A (en) 1994-07-22 1996-02-27 Hewlett-Packard Company Decompression system for compressed video data for providing uninterrupted decompressed video data output
US6217234B1 (en) * 1994-07-29 2001-04-17 Discovision Associates Apparatus and method for processing data with an arithmetic unit
US5559999A (en) 1994-09-09 1996-09-24 Lsi Logic Corporation MPEG decoding system including tag list for associating presentation time stamps with encoded data units
US5566089A (en) 1994-10-26 1996-10-15 General Instrument Corporation Of Delaware Syntax parser for a video decompression processor
US5517250A (en) 1995-02-28 1996-05-14 General Instrument Corporation Of Delaware Acquisition of desired data from a packetized data stream and synchronization thereto

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN100382565C (zh) * 2002-12-04 2008-04-16 Nxp股份有限公司 选择基于位流格式探测的特殊解码器的方法和设备
CN1805517B (zh) * 2005-01-14 2010-05-26 三星电子株式会社 解码双视频信号的系统和方法
CN102413382A (zh) * 2011-12-27 2012-04-11 四川九洲电器集团有限责任公司 一种提高实时视频平滑性的方法
CN106462502B (zh) * 2014-06-05 2020-12-25 Gsi科技公司 涉及多组双管道存储器电路的系统和方法
CN106462502A (zh) * 2014-06-05 2017-02-22 Gsi科技公司 涉及多组双管道存储器电路的系统和方法
CN106852185B (zh) * 2014-10-21 2019-10-25 华为技术有限公司 基于字典的并行压缩编码器
CN106852185A (zh) * 2014-10-21 2017-06-13 华为技术有限公司 基于字典的并行压缩编码器
CN104486585A (zh) * 2014-12-18 2015-04-01 深圳先进技术研究院 一种基于gis的城市海量监控视频管理方法及系统
CN104486585B (zh) * 2014-12-18 2018-01-05 深圳先进技术研究院 一种基于gis的城市海量监控视频管理方法及系统
CN106201336B (zh) * 2015-05-24 2021-01-22 硅实验室公司 具有回写缓存器的设备及其相关方法
CN106201336A (zh) * 2015-05-24 2016-12-07 硅实验室公司 具有回写缓存器的设备及其相关方法
CN109074305A (zh) * 2016-03-31 2018-12-21 美光科技公司 半导体装置
CN109074305B (zh) * 2016-03-31 2023-07-28 美光科技公司 半导体装置
CN107886081A (zh) * 2017-11-23 2018-04-06 武汉理工大学 双路U‑Net深度神经网络矿山井下危险行为智能分级辨识方法
CN111837145A (zh) * 2017-12-18 2020-10-27 米西克有限公司 用于将矩阵计算映射到矩阵乘法加速器的系统和方法
CN111837145B (zh) * 2017-12-18 2024-02-02 米西克有限公司 用于将矩阵计算映射到矩阵乘法加速器的系统和方法
US11694738B2 (en) 2018-06-19 2023-07-04 Micron Technology, Inc. Apparatuses and methods for multiple row hammer refresh address sequences
CN112771498A (zh) * 2018-07-05 2021-05-07 米西克有限公司 用于实施智能处理计算架构的系统和方法
CN109104199A (zh) * 2018-08-29 2018-12-28 重庆物奇科技有限公司 基于霍夫曼编码的编码方法、译码方法及应用
CN113383317A (zh) * 2019-01-31 2021-09-10 华为技术有限公司 一种处理装置、方法及相关设备
CN113383317B (zh) * 2019-01-31 2023-07-18 华为技术有限公司 一种处理装置、方法及相关设备
CN110175185A (zh) * 2019-04-17 2019-08-27 南京天数智芯科技有限公司 一种基于时序数据分布特征的自适应无损压缩方法
US11600326B2 (en) 2019-05-14 2023-03-07 Micron Technology, Inc. Apparatuses, systems, and methods for a content addressable memory cell and associated comparison operation
CN110134676B (zh) * 2019-06-03 2021-01-29 西安电子科技大学 一种传感器数据质量的监控方法
CN110134676A (zh) * 2019-06-03 2019-08-16 西安电子科技大学 一种传感器数据质量的监控方法
US11854618B2 (en) 2019-06-11 2023-12-26 Micron Technology, Inc. Apparatuses, systems, and methods for determining extremum numerical values
US11699476B2 (en) 2019-07-01 2023-07-11 Micron Technology, Inc. Apparatuses and methods for monitoring word line accesses
US11568918B2 (en) 2019-08-22 2023-01-31 Micron Technology, Inc. Apparatuses, systems, and methods for analog accumulator for determining row access rate and target row address used for refresh operation
US11600314B2 (en) 2021-03-15 2023-03-07 Micron Technology, Inc. Apparatuses and methods for sketch circuits for refresh binning
US11664063B2 (en) 2021-08-12 2023-05-30 Micron Technology, Inc. Apparatuses and methods for countering memory attacks
CN114138057A (zh) * 2021-11-19 2022-03-04 广西电网有限责任公司 基于agent的智能化时钟对时装置及使用方法
US11688451B2 (en) 2021-11-29 2023-06-27 Micron Technology, Inc. Apparatuses, systems, and methods for main sketch and slim sketch circuit for row address tracking
CN117095628A (zh) * 2023-10-17 2023-11-21 北京数字光芯集成电路设计有限公司 一种基于数字脉宽调制显示的逐行逐位扫描方法及系统
CN117095628B (zh) * 2023-10-17 2023-12-26 北京数字光芯集成电路设计有限公司 一种基于数字脉宽调制显示的逐行逐位扫描方法及系统

Also Published As

Publication number Publication date
US6799246B1 (en) 2004-09-28
US5798719A (en) 1998-08-25
US5768629A (en) 1998-06-16
US5821885A (en) 1998-10-13
US5829007A (en) 1998-10-27
EP0695095A2 (en) 1996-01-31
US5740460A (en) 1998-04-14
EP0892556A3 (en) 2000-01-12
AU701335C (en) 2001-11-08
AU701335B2 (en) 1999-01-28
US5835792A (en) 1998-11-10
US5995727A (en) 1999-11-30
US5828907A (en) 1998-10-27
EP0891095A3 (en) 2000-01-12
JP2001094437A (ja) 2001-04-06
EP0891094A3 (en) 2000-01-12
US5703793A (en) 1997-12-30
US5963154A (en) 1999-10-05
AU2400499A (en) 1999-06-03
EP0891096A2 (en) 1999-01-13
JPH08172624A (ja) 1996-07-02
US6141721A (en) 2000-10-31
EP0891099A2 (en) 1999-01-13
EP0891097A3 (en) 2000-01-12
EP0892556A2 (en) 1999-01-20
AU2400799A (en) 1999-06-24
US6217234B1 (en) 2001-04-17
SG108204A1 (en) 2005-01-28
EP0891096A3 (en) 2000-01-12
CA2154962A1 (en) 1996-01-30
EP0891095A2 (en) 1999-01-13
EP0891098A2 (en) 1999-01-13
US5878273A (en) 1999-03-02
EP0891098A3 (en) 2000-01-12
EP0695095A3 (en) 1999-03-17
US5801973A (en) 1998-09-01
JP2001168728A (ja) 2001-06-22
AU2501995A (en) 1996-02-08
MXPA99001886A (es) 2004-09-07
EP0891097A2 (en) 1999-01-13
EP0891099A3 (en) 2000-01-12
EP0891094A2 (en) 1999-01-13
US5984512A (en) 1999-11-16

Similar Documents

Publication Publication Date Title
CN1144434A (zh) 视频解压缩方法和装置
CN1145362C (zh) 视频数据处理方法及装置
CN1104685C (zh) 盒式存储器,保证其用在计算机系统的方法和鉴别系统
US6119213A (en) Method for addressing data having variable data width using a fixed number of bits for address and width defining fields
CN1137212A (zh) 可重新配置处理级
CN105430408A (zh) 一种基于Intel、AMD和Nvidia三平台的H264硬件解码系统
Sengupta et al. Antipiracy-aware ip chipset design for ce devices: A robust watermarking approach [hardware matters]
CN109587546A (zh) 视频处理方法、装置、电子设备和计算机可读介质
CN1133534A (zh) 起始码检测器
CN1114489A (zh) 流水线
CN1042282C (zh) 用于同步矢量处理机的第二最近邻通讯网络、系统和方法
CN106063252B (zh) 用于处理字幕的设备和方法
Afonso et al. Energy-aware motion and disparity estimation system for 3D-HEVC with run-time adaptive memory hierarchy
KR100270798B1 (ko) 복수의 mpeg 오디오 및 비디오 신호를 디코딩하기 위한 시스템
Rhee et al. A System-on-a-Chip Design for Digital TV
Ham et al. A Low Cost Instruction Set for Bit Stream Process
Dutta Architecture, design, and verification of an 18 million transistor digital television and media processor chip

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB03 Change of inventor or designer information

Inventor after: Adrian P wise

Inventor after: Andrew P library Lee Gauss base

Inventor after: William Philip Robbins

Inventor after: Nicholas birch

Inventor after: David Andrew Barne

Inventor after: Kevin D Dewar

Inventor after: Anthony Mark Jones

Inventor after: Martin William Sotheran

Inventor after: Colin Smith

Inventor after: Helen R Finch

Inventor after: Anthony - R - J - Carleton

Inventor after: Donald W W Paterson

Inventor after: Mark Barnes

Inventor before: Adrian Philip Wise

Inventor before: Andrew P Gauss Cooley

Inventor before: William Philip Robbins

Inventor before: Nicola birch

Inventor before: Kevin D Dewar

Inventor before: Anthony Mark Jones

Inventor before: Martin William Sotheran

Inventor before: Colin Smith

Inventor before: Helen R Finch

Inventor before: Anthony R J Carleton

Inventor before: Donald W W Paterson

Inventor before: Mark Barnes

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ADRIAN P. WISE; KEVIN D. DEWAR; ANTHONY M. JONES; MARTIN WILLIAM SOTHERAN;COLIN SMITH; HELEN R FINCH; ANTHONY R J CLAYDON; DONALD WILLIAM WALKER PATTERSON; PAGO ARCO HAERBOGE; ANDREW COOLEY GAUSSIAN TO: ADRIAN P. WISE; KEVIN D. DEWAR; ANTHONY M. JONES; MARTIN WILLIAM SOTHERAN; COLIN SMITH; HELEN R FINCH; ANTHONY R J CLAYDON; DONALD WILLIAM WALKER PATTERSON; PAGO ARCO HAERBOGE; ANDREW COOLEY GAUSSIAN ...

C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication