动态视频数据压缩的制作方法

文档序号:7808020阅读:315来源:国知局
专利名称:动态视频数据压缩的制作方法
技术领域
本申请涉及数据处理系统,更特别地,涉及视频数据处理系统。
背景技术
典型的视频数据处理系统包括芯片外系统存储器和包括多个视频处理块和相关硬件的视频芯片上系统(SOC)集成电路。视频SOC接收压缩的视频数据,并且解压缩(即, 解码、去压缩或扩展)压缩的视频数据以恢复未压缩的(即,原始)视频数据。视频SOC将未压缩的视频数据写入到系统存储器以供一个或更多个视频处理块随后使用。一个或更多个视频处理块检索未压缩的视频数据,并且可将处理后的、未压缩的视频数据写回到存储器。一般地,视频图像包括RXC个像素(例如,对于示例性高清视频画面,为1920X1080 个像素),并且,每个像素可由多个字节的数据表示。由于包括大量的数据,因此,在特定时间对于特定的视频处理块,视频图像的视频数据的全帧一般是不可用的。而是,从系统存储器读取视频数据的帧的部分,以增量的方式对其进行处理,并且在一些情况下,将其写回到存储器。系统存储器和视频SOC之间的未压缩的视频数据的移动消耗大量的存储器带宽。 典型地,可用于视频SOC的存储器带宽限制视频处理系统的性能。可以增加可用存储器带宽的系统存储器的增加(例如,通过增加存储器信道的数量)明显地增加了视频SOC的额外成本(例如,通过增加芯片上缓冲器的尺寸、控制器、管脚的数量和板面积),增加了外部存储器的成本并最终增加了视频处理系统的成本。

发明内容
在本发明的至少一个实施例中,一种方法包括解压缩第一压缩视频数据以以第一顺序提供未压缩视频数据。所述解压缩基于第一压缩率。所述方法包括压缩所述未压缩视频数据以以第二顺序提供第二压缩视频数据。所述压缩基于第二压缩率。在所述方法的至少一个实施例中,所述第一顺序基于视频数据的帧的基本块,并且所述第二顺序基于视频数据的帧的线。在所述方法的至少一个实施例中,所述压缩包括交替进行未压缩视频数据的第一线的部分部分的压缩与未压缩视频数据的至少一个第二线的部分部分的压缩, 以由此产生与未压缩视频数据的第一线对应的压缩视频数据的第一线和与未压缩视频数据的第二线对应的压缩视频数据的至少一个第二线。在本发明的至少一个实施例中,一种设备包括缓冲器,第一视频数据解压缩器, 和视频数据压缩器。所述第一视频数据解压缩器能够操作来基于第一压缩率解压缩第一压缩视频数据以及以第一顺序将未压缩视频数据写入到所述缓冲器。所述视频数据压缩器能够操作来从所述缓冲器读取所述未压缩视频数据以及以第二顺序提供第二压缩视频数据。 在至少一个实施例中,所述视频数据压缩器能够操作来交替进行未压缩视频数据的第一线的部分部分的压缩与未压缩视频数据的至少一个第二线的部分部分的压缩,以由此产生与未压缩视频数据的第一线对应的压缩视频数据的第一线和与未压缩视频数据的第二线对应的压缩视频数据的至少一个第二线。在至少一个实施例中,所述视频数据压缩器能够操作来在压缩未压缩视频数据的第一线的第一部分之后保存所述视频数据压缩器的状态信息,并且能够操作来在压缩未压缩视频数据的第一线的第二部分之前将所述状态信息恢复到所述视频数据压缩器。在该设备的至少一个实施例中,所述第一顺序基于视频数据的帧的基本块,并且所述第二顺序基于视频数据的帧的线。在至少一个实施例中,所述设备还包括包括扩展部分的存储器。所述存储器能够操作来存储比视频数据的相应的未压缩线多的视频数据的线。


参照附图,可以更好地理解本发明并使得本领域技术人员可以很容易理解其大量的目的、特征和优点。图1示出包括未压缩视频数据的存储装置的示例性视频处理系统的功能框图。图2示出实现示例性动态视频数据压缩技术的示例性视频处理系统的功能框图。图3示出画面图像(screen image)的帧的示例性视频数据格式。图4示出画面图像的示例性视频数据到SOC的视频处理块的信息流。图5示出与本发明的至少一个实施例一致的实现示例性动态视频数据压缩技术的示例性视频处理系统的功能框图。图6示出与本发明的至少一个实施例一致的从图5的解压缩器106到缓冲器506 的未压缩视频数据的功能块的信息流。图7示出与本发明的至少一个实施例一致的从图5的缓冲器506到低延时 (low-latency)压缩器512的未压缩视频数据的信息流。图8示出与本发明的至少一个实施例一致的从图5的缓冲器506到低延时压缩器 512的未压缩视频数据的信息流。图9示出与本发明的至少一个实施例一致的从图5的系统存储器到一个或更多个低延时解压缩器的压缩视频数据的信息流。图10示出与本发明的至少一个实施例一致的包括防护带的图5的系统存储器。在不同的附图中的使用的相同附图标记表示类似或相同的项。
具体实施例方式参照图1,示例性视频芯片上系统(SOC)集成电路(例如,视频SOC 102)通过存储器104从外部源接收一个或更多个视频数据流。例如,外部源将高度压缩的视频数据写入到存储器104。高度压缩的视频数据是通过具有高的压缩率的编码器压缩的视频数据。如这里提到的那样,高压缩率是至少约IOx的压缩率,即,压缩后的视频数据使用比未压缩(即, 原始)视频数据少至少约10倍的比特。例如,运动图像专家组(Moving Picture Experts Group,MPEG)视频压缩标准具有约25 60x的压缩率。典型的解压缩器(即,解码器或扩展器,例如,解压缩器106)解压缩视频数据,并且将未压缩的视频数据提供给存储器控制器 112以将未压缩的视频数据写入到存储器104。解压缩器106(例如,服从MPEG标准的解码器)需要大的延时以解压缩视频数据。视频处理器108和110从存储器104检索未压缩的视频数据。视频处理器108和110 —次仅检索视频数据的单个帧的多个部分。视频处理器108和110可包括帧率转换器、显示器、去交错器(deinterlacer)、排序器(compositor)、缩放器(scaler)、锐化器(sharpener)、颜色操作块、面部或物体识别块、对比度增强器、超级分辨率缩放器(superresolution scaler)、去块器(deblocker)、时间和/或空间噪声减少器、其它适当的视频处理块或其任意组合中的一个或更多个。视频处理器108和110将处理后的未压缩的视频数据存储回存储器104以供随后使用或者将处理后的视频数据提供给芯片外电路(未示出)。虽然解压缩器106和视频处理器108和110被示为与存储器控制器112直接耦合,但是,在SOC的其它实施例中,解压缩器106和视频处理器108和110与一个或更多个共享的存储器总线耦合。典型的存储器104是双倍速率同步动态随机存取存储器(即,DDR SDRAM存储器或DDR存储器)。在至少一个实施例中,存储器104是符合DDR SDRAM存储器标准、DDR2 SDRAM存储器标准、DDR3SDRAM存储器标准、其它DDR SDRAM存储器标准或其它适当的存储器标准的DDR存储器。虽然参照DDR SDRAM存储器进行了描述,但是,这里描述的技术适用于包括符合其它存储器标准的存储器的系统。一般地,视频处理系统100的存储器带宽效率的提高可被应用以增加视频处理系统100的功能,并且/或者被应用以降低视频处理系统100的成本。例如,视频处理系统100 的存储器带宽效率的提高允许存储器104被小型化,例如,从具有32位总线的DDR存储器 (例如,X 32DDR存储器)小型化为具有16位总线的DDR存储器(例如,X 16DDR存储器)。 小型化的存储器104减少了所需管脚的数量、板面积、视频SOC裸片面积、外部存储器成本, 并最终降低了视频处理系统100的成本。另外,视频处理系统100的存储器带宽效率的提高可有利于增加被视频处理系统100同时处理的高清视频流的数量。参照图2,视频处理系统200包括实现动态视频数据压缩技术的示例性视频 SOC (例如,视频SOC 202),与视频处理系统100的存储器带宽效率相比,该动态视频数据压缩技术提高了视频处理系统200的存储器带宽效率。解压缩器106从存储器104检索高度压缩的视频数据,并且将未压缩的视频数据提供给低延时压缩器(即,编码器,例如,低延时压缩器208)。低延时压缩器208通过存储器控制器220提供存储于存储器104中的压缩数据。低延时压缩器208以低的延迟(S卩,比高压缩率压缩器低至少一个数量级,例如,几个系统时钟周期)并且通过使用比高度压缩视频数据的压缩率低的压缩率压缩原始视频数据。示例性低延时压缩技术包括游程长度码或其它适当的低延时压缩技术(其可以是有损耗或无损耗的压缩技术)或它们的组合。在至少一个实施例中,低延时压缩器208将第一像素之后的每个像素替换为该像素和在左侧与该像素相邻的像素之间的差值。然后,例如通过使用Huffman编码和滑动窗口压缩(例如,LZ77压缩)中的至少一个来压缩所得到的值。在至少一个实施例中,低延时压缩器208使用用于计算相邻的像素对的和以及差值的离散子波变换技术。如果启用了有损耗的、低延时压缩,那么,如果满足某些条件,则不同的值被丢弃。然后,例如通过使用Huffman编码和滑动窗口压缩中的至少一个来压缩其余的值。在动态视频数据压缩技术的至少一个实施例中,与解压缩器106相关的高压缩视频数据压缩技术具有比低延时视频数据压缩器208的比率大至少一个数量级的压缩率。例如,低延时压缩器208可将视频数据的位数减少到1/2,而高压缩率视频数据压缩技术将视频数据的位数减少到1/25或更少。与视频SOC 102的吞吐量相比,由视频SOC 202的动态视频压缩技术提供的存储器带宽使用减少一半可动态地增加视频SOC 202的吞吐量。在至少一个实施例中,与由视频SOC 102处理的视频流的数量相比,SOC 202能够处理附加的视频数据流。在至少一个实施例中,低延时压缩器208以与从解压缩器106接收未压缩的视频数据的顺序相同的顺序压缩由解压缩器106提供的所述未压缩的视频数据。低延时压缩器208以与压缩其的顺序相同的顺序向存储器控制器220提供压缩的视频数据。类似地, 低延时解压缩器210和214分别响应于来自视频处理器108和110的视频数据请求,以与从存储器控制器220接收压缩的视频数据的顺序相同的顺序解压缩压缩的视频数据。但是,在至少一个实施例中,解压缩器106以与视频处理器108或视频处理器110处理视频数据的顺序不同的顺序提供未压缩的数据。例如,解压缩器106可以在视频数据的基本块的各分块(tile)中提供未压缩的视频数据,并且,视频处理器108—次处理未压缩视频数据的帧的多个线。如果以解压缩器106提供它的顺序(例如,非线性、分块的顺序)压缩视频数据并且随后的视频处理块(例如,缩放器)以画面数据的帧的逐个线(即,线性顺序)地读取未压缩数据,则低延时解压缩器210可能不能以足够低的延时来解压缩压缩的视频数据,以防止这些随后的视频处理器块饥饿(即,在需要时缺少数据)。参照图1和图3,在视频SOC 102的至少一个实施例中,通过使用将视频图像的帧 (例如,帧300)分成像素的基本块(例如,宏块)的M行和N列的高压缩率视频数据压缩技术(例如,MPEG-2),压缩从外部源接收的压缩视频数据。单个基本块由FBm,η表示,这里,m表示帧300的基本块的M个行中的特定行,并且,η表示帧300的基本块的N个列中的特定列。在视频SOC 102的至少一个实施例中,每个基本块(例如,基本块30 包括像素数据的P X Q块(即,每个基本块包括P个线,每个线Q个像素,例如,像素数据的16 X 16 块)。基本块的每行包括形成视频图像的帧的线的一部分的像素。例如,在跨视频图像的帧的线的基本块的数量为N的情况下,基本块的每行包括形成视频图像的帧的线的第1/N的像素的线部分。解压缩器106以非线性的方式,即不是以视频图像的帧的逐个线的方式,对视频数据进行操作。在至少一个实施例中,解压缩器106对视频图像的帧的基本块进行操作,并且以分块的格式(即,未压缩视频数据的逐个基本块)提供未压缩视频数据。在至少一个实施例中,解压缩器106对于视频图像的帧一次从左到右、从上到下写入一个基本块, 并且块内的像素以线性的顺序被写入。但是,注意,每个基本块可包括与多个线对应的视频数据。另外,注意,分块格式和基本块尺寸可根据不同的高压缩率视频压缩技术和符合不同的视频压缩标准的解码器而改变。参照图4,在SOC 102的至少一个实施例中,视频处理器108和110以线性的方式处理视频数据,即,以逐线的方式对视频图像的帧进行读取或操作。在视频图像的帧的基本块的一个行(例如,行400)中,所读取和处理的线的数量可与基本块的尺寸无关。例如,示例性视频处理器可一次对基本块的该行的三条线(例如,Li、L2、L3)进行操作。但是,基本块
的行包括视频数据的P条线(例如,Li、L2、L3.....Lp),并且,每个基本块包括与视频数据的
P条线对应的P个线部分(例如,lm,n,i、Iffl,n,2> Iffl, ,3.....lm,n,P),其中m表示视频图像的帧
的基本块的行,而η表示画面图像的基本块的列。示例性视频处理块读取并处理视频数据的一条或更多条线,每条线包括来自跨视频图像的帧的行的多个基本块的视频数据的各部分(例如,每条线跨N基本块)。注意,在至少一个实施例中,示例性视频处理器读取并处理多条线,线的数目不是包括于基本块中的线数的倍数。因此,当视频处理器读取多条线时,这些线可跨在视频图像的帧的不同的行中的视频图像的帧的多个基本块(即,跨视频图像的帧的垂直相邻的各部分)。上述的解压缩器106的实施例产生未压缩视频数据的顺序和视频处理器108和 110消耗未压缩视频数据的顺序之间的差异增加了视频数据的动态低延时压缩和解压缩的复杂性。参照图2和图5,不是将未压缩的视频数据提供给存储器控制器112以将其存储于存储器104中或者提供给图2的低延时压缩器208,在视频SOC的至少一个实施例(例如, 图5的视频SOC 502)中,与高压缩率压缩技术一致的解压缩器106将未压缩视频数据的一个或更多个基本块写入到视频SOC上的缓冲电路(例如,图5的缓冲器506)。参照图5,在至少一个实施例中,视频SOC 502在芯片上高速缓存存储器或其它适当的存储电路中实现内部缓冲器(例如,缓冲器506)。解压缩器106在其变得可用时将未压缩的视频数据的每个基本块写入到缓冲器506。在至少一个实施例中,缓冲器506包括多个缓冲器部分(例如,缓冲器506是乒乓缓冲器或旋转缓冲器)以允许低延时压缩器512 一次访问未压缩视频数据的至少一个完整的基本块,而不是访问未压缩视频数据的部分更新的基本块。同时,解压缩器106将未压缩视频数据的接下来的各基本块写入到缓冲器506 的另一部分。在至少一个实施例中,解压缩器106对于视频图像的帧从左到右、从上到下向缓
冲器506提供视频图像的帧的基本块,即,FBtl,^FBmFBth2.....FB0jN,FB1j0,FBljl,FBlj2.....
FB1jN,FB2j0,FB2j1,FB2j2.....FB2jN,FBMj0,FBMj1,FBmj2.....FBm,N。在视频 SOC 502 的至少一个
实施例中,解压缩器106是与单个视频SOC 502上的高压缩率数据(例如,HD H. 264AVC.HD VC-I和HD MPEG2)相关的几个解压缩器106中的一个。视频SOC 102上的每个解压缩器可具有唯一的基本块尺寸和/或分块算法(tiling algorithm)。低延时压缩器512从缓冲器 506读取未压缩视频数据、压缩未压缩视频数据,并且将压缩的视频数据的完整线提供给存储器控制器520以将其写入到存储器104。低延时压缩器512以低延时(S卩,比高压缩率压缩器低至少一个数量级,例如,几个系统时钟周期)并且通过使用比高度压缩的视频数据的压缩率低的压缩率压缩原始视频数据。与解压缩器106相关的高压缩视频数据压缩技术具有比低延时视频数据压缩器512的比率大至少一个数量级的压缩率。参照图5和图6,在至少一个实施例中,解压缩器106以其变得可用的顺序将未压缩的视频数据602的基本块写入到缓冲器506中。例如,视频图像的帧的行m列η上的基
本块(即,FBm,η)的线被逐个线部分地,即以Im,μ、Inuna.....Im,η,Ρ的方式,写入到缓冲器
506中。在至少一个实施例中,缓冲器506可保持以线顺序,即以lu+^lu+u.....lm,n+1,
P,写入的至少一个附加的基本块(例如,FBm,n+1)。因此,缓冲器506在特定的时间将未压缩的视频数据的一个或更多个基本块提供给低延时压缩器512。参照图7,在至少一个实施例中,低延时压缩器512从包括数据的一个基本块(即, FBm,n)的缓冲器506读取第一行(例如,lm,u)。低延时压缩器512压缩基本块的该线。由于视频数据的帧的线跨每一个都包括该线的一部分的视频数据的多个基本块分布,因此, 低延时压缩器512在压缩与视频数据的帧的第一线的一部分对应的基本块的线之后保存低延时压缩器的状态(例如,在芯片上存储器513或其它存储元件中)。低延时压缩器512 保存该状态信息以用于在跨视频数据的帧的该线的附加基本块中提供的该线的附加部分的后续压缩。
在至少一个实施例中,在保存了状态信息之后,低延时压缩器512的状态被复位, 并且低延时压缩器512读取与基本块的第二线部分和视频数据的帧的下一线对应的来自缓冲器506的下一行(例如,lm,u)。压缩器512保持该压缩器的所得到的状态。在至少一个实施例中,低延时压缩器512继续压缩来自缓冲器506的下面的行并保存所得到的状态, 直到缓冲器的仅存储一个基本块的缓冲器部分的端部。然后,压缩器512恢复与视频数据的帧的第一线对应的存储状态,并且从覆盖FBm,n或者从缓冲器506的另一缓冲器部分检索的未压缩数据的下一基本块(即,FBffl, n+1)压缩视频数据的帧的第一线的下一部分(例如, Iffl, η+1,ο)。低延时压缩器512继续恢复来自存储器513的状态信息、压缩来自缓冲器506的下面的行,并且保存所得到的状态,直到被处理的各单个线的所有线部分都被压缩。重新参照图5,解压缩器106继续用未压缩视频数据的基本块覆盖缓冲器506的内容。同时,低延时压缩器512继续保存压缩器的状态作为视频数据的帧的线的中间压缩状态,并且继续恢复压缩器的状态以压缩视频数据的帧的线的下面的部分。低延时压缩器 512继续在视频数据的帧的不同线的压缩之间交替,直到视频数据的帧的全部线都被压缩。 形成视频数据的帧的线的一部分的每个基本块线被压缩以形成压缩的视频数据的完整线。 然后,低延时压缩器512将压缩的视频数据的完整线发送到存储器控制器520,以将其写入到存储器104。在至少一个实施例中,低延时压缩器512缓存压缩的视频数据的各完整线, 直到缓冲器包括足够的压缩视频数据以满足存储器控制器520和/或存储器104的最小突发串(burst)需求。响应于满足了最小突发串需求,存储器控制器520将压缩的视频数据的相应线发送到存储器104。参照图5和图8,在至少一个实施例中,低延时压缩器512包括能够同时压缩视频数据的多个线的多个并行压缩器块。压缩器块中的每一个处理来自缓冲器506的行并且保存所得到的压缩器块状态,直到缓冲器的仅存储一个基本块的缓冲器部分的端部。然后,压缩器512恢复与由压缩器块压缩的视频数据的帧的第一线对应的所存储的状态,并且压缩来自未压缩数据的下面的基本块(即,FBm,n+1)的那些线的下面的部分。低延时压缩器512 继续恢复来自存储器513的状态信息、压缩来自缓冲器506的下面的行,并且保存所得到的状态,直到被处理的各单个线中的所有线部分都已被压缩。在至少一个实施例中,缓冲器 506包括未压缩视频数据的多个基本块(即,FBm,n和FBm,n+1)。低延时压缩器512压缩来自缓冲器506的各单个行,并且保存所得到的压缩器块状态,直到来自缓冲器506的下面的行包括来自未压缩数据的下一基本块的线的下面的部分。然后,低延时压缩器512将与视频数据的帧的各单个线对应的所存储状态恢复到压缩器块,并且,压缩视频数据的帧的相应线的下面的线部分。低延时压缩器512继续交替进行未压缩视频数据的各单个线的部分部分的压缩,直到压缩器已完成视频数据的相应线的压缩。参照图5和图9,当视频处理器108或视频处理器110需要输入视频数据时,视频处理器将对于视频数据的请求发送到存储器控制器520。存储器控制器520从存储器104 检索压缩视频数据,并且将压缩的视频数据提供给低延时解压缩器514。低延时解压缩器一次扩展压缩视频数据的至少一个线,并且将未压缩的视频数据提供给视频处理器。在至少一个实施例中,低延时解压缩器514包括并行地扩展视频数据的帧的各线的多个解压缩器,从而允许解压缩器514同时向视频处理器110提供未压缩视频数据的多个线。参照图5,在视频SOC 502的至少一个实施例中,包括单独的低延时压缩器和解压缩器块(例如,压缩器512、解压缩器514、压缩器516和解压缩器518)以有利于使用现有的用于解压缩器106和视频处理器108和110的设计。单独的低延时压缩器和解压缩器块使得动态视频数据压缩技术对于这些视频数据处理块是透明的。在视频S0C502的至少一个实施例中,低延时压缩器和解压缩器功能被集成到存储器控制器520中。在视频SOC 502 的其它实施例中,低延时压缩和解压缩功能被集成到解压缩器106和视频处理器108和110 中。在至少一个实施例中,视频SOC 502基于未压缩视频数据的线的宽度,分配足以容纳视频数据的多个线的存储器。视频数据的典型的低延时压缩线占据视频数据的未压缩线的约1/3到约1/2。但是,在视频SOC 502的至少一个实施例中,低延时压缩技术可产生比未压缩视频数据的相应线多的压缩视频数据的线,尽管这种可能性较低。在这些情况下,由视频SOC 502产生的压缩视频数据的一个或更多个线溢出大小适合于未压缩视频数据的宽度的存储器分配。参照图10,在至少一个实施例中,存储器104包括防护带或扩展区域, 其为溢出未压缩视频数据的宽度的压缩视频数据的线提供附加空间。在存储器104的至少一个实施例中,压缩的视频数据可运行到存储器104的水平回描区域、间距区域(pitch region)或其它扩展区域中。重新参照5,虽然存储器104被示为芯片外,但是,在系统500 的至少一个实施例中,存储器104被集成到视频SOC 502上。在视频SOC 502的至少一个实施例中,存储器104可存储压缩视频数据和未压缩数据二者。例如,视频SOC 502以压缩格式存储视频数据,但以未压缩格式存储音频数据。 因此,存储器控制器520需要知道是将数据发送到低延时解压缩器,还是直接发送到请求数据的视频处理器。在视频SOC 502的至少一个实施例中,存储器104的线包括表示数据的线是被压缩还是被解压缩的标记或标签。在视频S0C502的至少一个实施例中,包括压缩视频数据的存储器104的地址范围由软件或其它适当的技术预定并被存储于视频SOC 502上的存储器中。在至少一个实施例中,低延时压缩器512实现数字水印、比特劫取(bit robbing)或其它适当技术以向低延时解压缩器514表示视频数据的特定线是否处于压缩格式。然后,低延时解压缩器514可自动确定是解压缩视频数据还是将视频数据直接发送到请求视频处理器。重新参照图1,在视频SOC 102的至少一个实施例中,存储器控制器112是视频处理单元(例如,解压缩器106、视频处理器108和视频处理110)和存储器104之间的中间元件。存储器控制器112将一个或更多个存储器请求缓冲器(例如,FIFO)中的存储器请求排队,并且通过区分存储器请求的优先级、将存储器请求翻译成一序列存储器命令并将与最高优先级的存储器请求相关的一序列存储器命令发送给存储器104,来调度这些存储器请求(例如,分别从存储器104读取并写入到存储器104)。在至少一个实施例中,存储器控制器112发送或接收分别响应于写入或读取命令而写入到与最小突发串尺寸一致的存储器或从中读取的视频数据的多个字节。但是,存储器104的最小突发串尺寸可改变。在至少一个实施例中,存储器104包括具有16字节的最小突发串尺寸的DDR2存储器。在至少一个实施例中,存储器104包括具有32字节的最小突发串尺寸的DDR3存储器。随着存储器技术的发展,最小突发串尺寸可改变。在至少一个实施例中,在可能(即,具有可接受的延时)时,存储器控制器112基于最小突发串尺寸将存储器请求重新排序以提高效率。在至少一个实施例中,存储器控制器112包括足以将存储器请求重新排序以将这些存储器请求一起调度到邻接的存储器地址的缓冲器。但是,由于请求方的数量和被请求的数据量,因此,在高的数据率下,这种对于存储器104的写入的重新排序可能是不实际的,并且,所得到的对于存储器104的写入命令是效率低下的。例如,存储器控制器112将在未压缩视频数据的基本块之后的基本块存储到存储器104中的邻接的存储器位置中。由于视频处理器块108和110 —次读取多个线, 这些线一般不与视频数据的基本块中的线数对应,因此,存储器控制器112以非邻接的顺序访问存储器位置,这增加从存储器104读取的延迟。参照图1和图5,在至少一个实施例中,与视频SOC 102的存储效率相比,视频SOC 502具有提高的存储效率。例如,在至少一个实施例中,不是将在未压缩视频数据的基本块之后的基本块存储到存储器104中的邻接的存储器位置中,而是存储器控制器520从低延时压缩器512接收压缩视频数据的一个或更多个线。因此,存储器控制器520写入视频数据的这些线,使得视频数据的像素的线以从左到右、从上到下的顺序被存储在存储器104 中的具有邻接的存储器地址的位置(例如,存储器的一个或更多个整页)中。在至少一个实施例中,存储器控制器520能够发出对于存储器的连续写入,其是要针对存储器中的邻接的页,从而与视频系统100相比,提供存储器写入延迟的进一步减少。与视频SOC 102相比,随后由视频SOC 502从存储器104的一个或更多个线的读取更可能与存储器104的最小突发串尺寸对准并且/或者增加存储器104的行缓冲器的命中率。因此,与以基本块顺序存储数据的像素的视频SOC 102的存储器访问相比,视频S0C502的存储器访问具有更少的延时。另外,由于在至少一个实施例中,视频SOC 502写入到具有邻接的存储器地址的存储器,因此,随着存储器技术的发展,视频SOC 502更容易避免存储器104的突发串尺寸的变化的影响。由于视频S0C502以与视频处理器108和110访问存储器的顺序一致的顺序在存储器104中存储视频数据(即,在存储器104中的邻接寻址位置中按线,即以从左到右、从上到下的顺序存储像素),因此,与视频处理系统100的存储器延迟相比,存储器延迟不减少。另外,由于对于视频S0C502以线的顺序提供视频数据,因此,与视频SOC 102给视频处理块(例如,视频处理器108和视频处理器110)提供数据线相比,视频SOC 502需要更少的缓冲器以给视频处理块(例如,低延时解压缩器514或低延时解压缩器518,它们然后分别向视频处理器108和视频处理器110提供未压缩视频数据)提供数据线。由于对于向消费者馈送视频数据来说,向存储器写入与从存储器读取相比不是那么的时间关键的, 因此,与由在从存储器104读取视频数据之后将视频数据重新排序的视频处理系统100的实施例所引入的延时相比,视频处理系统500更好地容许由低延时压缩器512压缩和以线的顺序写入压缩的视频数据到存储器102中所引入的任何延时(即,不太可能影响系统性能)。虽然在描述本发明的实施例时一般性地假定了电路和物理结构,但是,很容易认识到,可以以适用于随后的设计、模拟、测试或制造阶段的计算机可读描述形式体现当前的半导体设计和制造、物理结构和电路。在示例性配置中作为离散的部件给出的结构和功能可实现为组合的结构或部件。本发明的各种实施例可不设想为包括这里描述和在所附的权利要求中限定的电路、电路的系统、相关的方法和这些电路、系统和方法的上面具有编码 (例如,HDL、Verilog、⑶SII数据)的可触知计算机可读介质。此外,计算机可读介质可存储可用于实现本发明的指令以及数据。指令/数据可涉及硬件、软件、固件或它们的组合。
这里阐述的本发明的描述是解释性的,并且不是要限制在以下的权利要求中阐述的本发明的范围。例如,虽然已在通过使用符合特定的高压缩率标准(HD H. 264AVC, HD VC-I和HD MPEG2)的特定解压缩器来压缩视频数据的实施例中描述了本发明,但是,本领域技术人员可以理解,可在其它视频压缩技术的情况下利用这里的教导。在不背离在以下权利要求中阐述的本发明的范围和精神的情况下,可以基于这里阐述的描述对这里公开的实施例进行变更和修改。
权利要求
1.一种方法,包括解压缩第一压缩视频数据以以第一顺序提供未压缩视频数据,所述解压缩基于第一压缩率;和压缩所述未压缩视频数据以以第二顺序提供第二压缩视频数据,所述压缩基于第二压缩率。
2.如权利要求1所述的方法,其中,所述压缩包括压缩未压缩视频数据的第一线以产生第二压缩视频数据的第一线,所述压缩包括 压缩未压缩视频数据的第一线的第一部分以产生压缩器的第一状态;和基于压缩器的第一状态压缩未压缩视频数据的第一线的第二部分;和在压缩未压缩视频数据的第一线的第一部分和压缩未压缩视频数据的第一线的第二部分之间,压缩未压缩视频数据的至少一个其它线的一部分。
3.如权利要求2所述的方法,其中,所述压缩未压缩视频数据的第一线还包括在压缩未压缩视频数据的至少一个其它线的一部分之前保存所述压缩器的第一状态;禾口在压缩未压缩视频数据的第一线的第二部分之前恢复所述压缩器的第一状态。
4.如权利要求1所述的方法,其中,所述压缩包括交替进行未压缩视频数据的第一线的部分部分的压缩与未压缩视频数据的至少一个第二线的部分部分的压缩,以由此产生与未压缩视频数据的第一线对应的压缩视频数据的第一线和与未压缩视频数据的第二线对应的压缩视频数据的至少一个第二线。
5.如权利要求1所述的方法,其中,所述第一顺序是非线性顺序,并且所述第二顺序是线性顺序。
6.如权利要求1所述的方法,其中,所述第一顺序基于视频数据的帧的基本块,并且所述第二顺序基于视频数据的帧的线。
7.如权利要求1所述的方法,其中,所述第一压缩率比所述第二压缩率大至少一个数量级。
8.如权利要求1所述的方法,其中,所述第一压缩视频数据根据运动图像专家组 (MPEG)视频压缩标准被压缩,并且所述第二压缩视频数据通过使用压缩技术被压缩,所述压缩技术具有数量级比MPEG视频压缩的延时小的延时。
9.如权利要求1所述的方法,还包括将第二压缩视频数据的一序列多个线写入到存储器中的相应的连续寻址的位置。
10.如权利要求9所述的方法,还包括向存储器控制器提供要被存储于存储器中的相应的连续寻址的位置中的第二压缩视频数据的所述一序列多个线。
11.如权利要求1所述的方法,还包括基于所述第二压缩率解压缩所述第二压缩视频数据以由此产生未压缩视频数据;和将所述未压缩视频数据提供给视频处理器。
12.—种设备,包括 缓冲器;第一视频数据解压缩器,能够操作来基于第一压缩率解压缩第一压缩视频数据以及以第一顺序将未压缩视频数据写入到所述缓冲器;和视频数据压缩器,能够操作来从所述缓冲器读取所述未压缩视频数据以及以第二顺序提供第二压缩视频数据。
13.如权利要求12所述的设备,其中,所述视频数据压缩器能够操作来交替进行未压缩视频数据的第一线的部分部分的压缩与未压缩视频数据的至少一个第二线的部分部分的压缩,以由此产生与未压缩视频数据的第一线对应的压缩视频数据的第一线和与未压缩视频数据的第二线对应的压缩视频数据的至少一个第二线。
14.如权利要求13所述的设备,其中,所述视频数据压缩器能够操作来在压缩未压缩视频数据的第一线的第一部分之后保存所述视频数据压缩器的状态信息,并且能够操作来在压缩未压缩视频数据的第一线的第二部分之前将所述状态信息恢复到所述视频数据压缩器。
15.如权利要求12所述的设备,其中,所述第一顺序是非线性顺序,并且所述第二顺序是线性顺序。
16.如权利要求12所述的设备,其中,所述第一顺序基于视频数据的帧的基本块,并且所述第二顺序基于视频数据的帧的线。
17.如权利要求12所述的设备,其中,所述第一压缩率比所述第二压缩率大至少一个数量级。
18.如权利要求12所述的设备,其中,所述视频数据压缩器包括并行操作的多个编码器。
19.如权利要求12所述的设备,其中,所述第一压缩视频数据根据运动图像专家组 (MPEG)视频压缩标准被压缩。
20.如权利要求12所述的设备,还包括存储器控制器,能够操作来从所述视频数据压缩器接收所述第二压缩视频数据并将所述第二压缩视频数据写入存储器。
21.如权利要求12所述的设备,还包括包括扩展部分的存储器,所述存储器能够操作来存储比视频数据的相应的未压缩线多的视频数据的线。
22.如权利要求12所述的设备,还包括第二视频数据解压缩器,能够操作来基于所述第二压缩率解压缩所述第二压缩视频数据。
23.如权利要求12所述的设备,还包括存储器范围存储元件,能够操作来存储与所述第二压缩视频数据相关的存储器范围的指示。
24.一种设备,包括用于解压缩第一压缩视频数据以以第一顺序提供未压缩视频数据的装置,所述解压缩基于第一压缩率;和用于压缩所述未压缩视频数据以以第二顺序提供第二压缩视频数据的装置,所述压缩基于第二压缩率。
25.如权利要求M所述的设备,其中,所述第一顺序基于视频数据的帧的基本块,并且所述第二顺序基于视频数据的帧的线。
全文摘要
本公开涉及动态视频数据压缩的方法和设备,所述方法包括解压缩第一压缩视频数据以以第一顺序提供未压缩视频数据。所述方法包括压缩未压缩视频数据以以第二顺序提供第二压缩视频数据。解压缩和压缩分别基于第一和第二压缩率。第一顺序可基于视频数据的帧的基本块,而第二顺序可基于视频数据的帧的线。压缩可包括交替进行未压缩视频数据的第一线的部分部分的压缩与未压缩视频数据的至少一个第二线的部分部分的压缩,以由此产生与未压缩视频数据的第一线对应的压缩视频数据的第一线以及与未压缩视频数据的第二线对应的压缩视频数据的至少一个第二线。
文档编号H04N7/26GK102547283SQ201110452810
公开日2012年7月4日 申请日期2011年12月30日 优先权日2010年12月30日
发明者R·古普塔, 小J·W·吉拉尔迪奥 申请人:Vixs系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1