具有帧缓冲压缩的视频处理器及其使用方法

文档序号:7799390阅读:316来源:国知局
具有帧缓冲压缩的视频处理器及其使用方法
【专利摘要】具有帧缓冲压缩的视频处理器及其使用方法,其中一种视频处理装置包括视频处理单元,基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码的视频信号。图块引擎包括图块累积模块,将所述未压缩的视频帧数据累积到多个图块单元,其中所述多个图块单元的每一个包括多个视频区段单元。图块压缩/解压缩模块通过将所述多个视频区段单元压缩成多个压缩的视频区段单元,生成压缩的视频帧数据以存储在压缩视频帧缓冲器中,以及进一步地,通过取得所述多个压缩的视频区段单元,从所述压缩视频帧缓冲器中取得所述压缩的视频帧数据,并通过解压缩所述多个压缩的视频区段单元以生成未压缩的视频帧数据。
【专利说明】具有帧缓冲压缩的视频处理器及其使用方法
[0001]相关申请的交叉引用
[0002]本申请按照35U.S.C.119要求2013年I月22日提交的名称为“VIDEO PROCESSORWITH FRAME BUFFER COMPRESSION AND METHODS FOR USE THEREWITH” 的申请号为 61 /755,280的临时申请的优先权,其全部内容通过引用结合至此。
【技术领域】
[0003]本申请涉及在例如视频编码器、解码器和转码器的设备中使用的编码。
【背景技术】
[0004]对于现代视频处理装置,视频编码已成为重要的议题。鲁棒(Robust)编码算法允许视频信号以减少的带宽传输和存储在较小的存储器中。然而,这些编码方法的准确性面临变得习惯于更高分辨率和更高图像质量的用户的审阅。已经为许多编码方法制定了标准,包括H.264标准,也称为MPEG-4、部分10或者高级视频编码(AVC)。虽然这一标准展示了许多强大的技术,但还可能有进一步的改进来提高这些方法的执行速度和性能。
[0005]在处理视频的现代设备(例如视频处理集成电路)中,存在许多视频和图像数据不得不存储在装置外部的存储器中的实例。这通常发生在该视频或图像帧太大而不能存储在该装置本身内的存储器时。由于视频或图像帧的像素分辨率增加,这些视频帧的处理所要求的存储带宽也增加。存储带宽可以是在设计这样的视频装置时的一个考虑。
[0006]通过将这些系统与本发明比较,对于本领域普通技术人员来说,常见的和传统的方法的其他局限和缺点将变得明显。

【发明内容】

[0007]根据本发明的一方面,提供一种视频处理装置,包括:视频处理单元,其基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码视频信号;图块引擎,包括:图块累积模块,将未压缩的视频帧数据累积到多个图块单元中,其中,所述多个图块单元的每一个包括多个视频区段单元,所述多个视频区段单元的每一个包括来自视频帧的相应行的至少一部分的像素数据;以及图块压缩/解压缩模块,耦合至图块累积模块,通过将所述多个视频区段单元压缩成多个压缩的视频区段单元来生成压缩的视频帧数据以存储在压缩视频帧缓冲器中,以及进一步地,通过取得所述多个压缩的视频区段单元来从所述压缩视频帧缓冲器中取得所述压缩的视频帧数据,并通过解压缩所述多个压缩的视频区段单元来生成未压缩的视频帧数据。
[0008]视频处理装置可进一步包括:区段引擎,耦合至图块引擎和视频帧缓冲器,包括定义对应于所述压缩视频帧缓冲器的存储地址范围的至少一个寄存器。
[0009]视频处理装置可进一步包括:图像处理单元,基于未压缩的图像帧数据,处理视频帧的至少一个图像平面;以及其中,所述区段引擎进一步包括区段压缩/解压缩模块,通过将未压缩的图像帧数据压缩成多个压缩的图像区段单元,来生成压缩的图像帧数据以存储在压缩图像帧缓冲器中,以及进一步地,通过取得多个压缩的图像区段单元来从所述压缩图像帧缓冲器中取得压缩的图像帧数据,并通过解压缩所述多个压缩的图像区段单元来生成未压缩的图像帧数据。
[0010]所述至少一个寄存器定义对应于所述压缩图像帧缓冲器的存储地址范围。
[0011]当对应于来自所述图像处理单元的写命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,所述区段引擎可将写命令识别为对应于所述压缩图像帧缓冲器;以及当对应于来自所述图像处理单元的读命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,所述区段引擎可将读命令识别为对应于所述压缩图像帧缓冲器。
[0012]视频处理装置可进一步包括:显示处理单元,其耦合至所述区段引擎,并基于未压缩的视频帧数据和未压缩的图像帧数据来处理视频帧和视频帧的至少一个图像平面;其中,所述区段压缩/解压缩模块通过取得多个压缩的视频区段单元来从所述压缩视频帧缓冲器中取得压缩的视频帧数据,并通过解压缩多个压缩的视频区段单元来生成未压缩的视频帧数据。
[0013]所述区段引擎可进一步包括用于存储未压缩的图像帧数据的高速缓存器;其中,当未压缩的图像帧数据中被选择的那些被存储在所述高速缓存器中时,所述区段引擎通过从所述高速缓存器中取得未压缩的图像帧数据中被选择的那些对来自所述图像处理单元和所述显示处理单元的请求进行响应;以及当未压缩的图像帧数据中被选择的那些没有被存储在所述高速缓存器中时,进一步从所述压缩图像帧缓冲器中取得未压缩的图像帧数据中被选择的那些。
[0014]当未压缩的视频帧数据中被选择的那些被存储在所述高速缓存器中时,所述区段引擎可通过从所述高速缓存器中取得未压缩的视频帧数据中被选择的那些对来自所述显示处理单元的请求进行响应,以及当未压缩的视频帧数据中被选择的那些没有存储在所述高速缓存器中时,通过取得相应的压缩的视频区段单元、并解压缩相应的压缩的视频区段单元以生成未压缩的视频帧数据中被选择的那些,来进一步从所述压缩视频帧缓冲器中取得未压缩的视频帧数据中被选择的那些。
[0015]可基于解码后的视频信号生成处理后的视频信号。
[0016]所述视频处理单元可通过将解码后的视频信号重新编码为处理后的视频信号,来将视频输入信号转码成处理后的视频信号。
[0017]根据本发明的一个方面,提出了一种将视频输入信号处理成处理后的视频信号的方法,该方法包括:基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码后的视频信号;将未压缩的视频帧数据累积到多个图块单元中,其中,所述多个图块单元中的每一个包括多个视频区段单元,所述多个视频区段单元的每一个包括来自视频帧的相应行的至少一部分的像素数据;通过将所述多个视频区段单元压缩成多个压缩的视频区段单元,来生成压缩的视频帧数据以存储在压缩视频帧缓冲器中;以及通过取得多个压缩的视频区段单元来从所述压缩视频帧缓冲器中取得压缩的视频帧数据,并通过解压缩多个压缩的视频区段单元来生成未压缩的视频帧数据。
[0018]所述方法可进一步包括:在寄存器中存储对应于所述压缩视频帧缓冲器的存储地址范围。[0019]所述方法可进一步包括:基于未压缩的图像帧数据,处理视频帧的至少一个图像平面;通过将未压缩的图像帧数据压缩成多个压缩的图像区段单元,来生成压缩的图像帧数据以存储在压缩图像帧缓冲器中;通过取得多个压缩的图像区段单元来从所述压缩图像帧缓冲器中取得压缩的图像帧数据,并通过解压缩多个压缩的图像区段单元来生成未压缩的图像帧数据。
[0020]所述至少一个寄存器可定义对应于所述压缩图像帧缓冲器的存储地址范围。
[0021]所述方法可进一步包括:当对应于写命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,将所述写命令识别为对应于所述压缩图像帧缓冲器;以及当对应于读命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,将所述读命令识别为对应于所述压缩图像帧缓冲器。
[0022]所述方法可进一步包括:基于未压缩的视频帧数据和未压缩的图像帧数据,处理视频帧和视频帧的至少一个图像平面;以及通过取得多个压缩的视频区段单元,从所述压缩视频帧缓冲器中取得压缩的视频帧数据,并通过解压缩多个压缩的视频区段单元来生成未压缩的视频帧数据。
[0023]所述方法可进一步包括:将未压缩的图像帧数据存储在高速缓存器中;当未压缩的图像帧数据中被选择的那些存储在所述高速缓存器中时,从所述高速缓存器中取得未压缩的图像帧数据中被选择的那些;以及当未压缩的图像帧数据中被选择的那些没有存储在所述高速缓存器中时,从所述压缩图像帧缓冲器中取得未压缩的图像帧数据中被选择的那些。
[0024]所述方法可进一步包括:将未压缩的视频帧数据存储在高速缓存器中;当未压缩的视频帧数据中被选择的那些被存储在所述高速缓存器中时,从所述高速缓存器中取得未压缩的视频帧数据中被选择的那些;以及当未压缩的视频帧数据中被选择的那些没有存储在所述高速缓存器中时,从所述压缩视频帧缓冲器中取得未压缩的视频帧数据中被选择的那些。
[0025]根据本发明的一个方面,提供:视频处理单元,基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码的视频信号;数据对象压缩/解压缩模块,耦合至所述视频处理单元,通过将多个视频数据对象压缩成多个压缩的视频数据对象,生成压缩的视频帧数据;将所述多个压缩的视频数据对象存储在压缩帧缓冲器中;通过识别出对应于视频帧数据的被选择的部分的所述多个压缩的视频数据对象中被选择的那些视频数据对象、取得所述多个压缩的视频数据对象中被选择的那些视频数据对象以及解压缩所述多个压缩的视频数据对象中被选择的那些视频数据对象以生成未压缩的视频帧数据,来从所述压缩视频帧缓冲器中取得视频帧数据的被选择的部分。
[0026]每个所述压缩的视频数据对象可以被存储在所述压缩帧缓冲器中的存储器中的相应预定义位置处的基准存储地址处。
[0027]所述数据对象压缩/解压缩模块可为所述多个压缩的视频数据对象的每一个生成头文件,该头文件指示包含在其中的压缩数据的尺寸。
[0028]所述数据对象压缩/解压缩模块可为所述多个压缩的视频数据对象的每一个生成一个压缩数据字段。
[0029]通过确定对应于所述多个压缩的视频数据对象中被选择的那些的每一个的基准存储地址、读取对应于多个压缩的视频数据对象中所述被选择的那些的每一个的头文件以确定对应于所述多个压缩的视频数据对象中被选择的那些的每一个的压缩数据的尺寸、以及基于相应的基准存储地址和相应的尺寸,取得对应于多个压缩的视频数据对象中被选择的那些的每一个的压缩数据字段,所述数据对象压缩/解压缩模块可取得所述多个压缩的视频数据对象中被选择的那些;。
[0030]所述多个视频数据对象的第一子集通过无损压缩方式被压缩,所述多个视频数据对象的第二子集通过有损压缩方式被压缩。
[0031]所述多个视频数据对象的第一子集的相应的一个将通过以下方式被压缩:
[0032](a)压缩所述多个视频数据对象的所述相应的一个;
[0033](b)将所述视频数据对象的压缩量与压缩目标进行比较;以及
[0034](C)当所述视频数据对象的压缩量比所述压缩目标好时,将所述压缩的视频数据对象存储在所述压缩视频帧缓冲器;以及
[0035]其中,所述多个视频数据对象的第二子集的相应的一个将通过以下方式被压缩:
[0036](d)当所述视频数据对象的压缩量比所述压缩目标差时,丢弃所述压缩的视频数据对象;
[0037](e)量化所述多个视频数据对象的所述相应的一个;以及
[0038](f)重复(a)-(e)直到所述视频数据对象的压缩量比所述压缩目标好。
[0039]所述多个视频数据对象中的每一个可包括来自视频帧的多个行的至少一部分的像素数据。
[0040]所述多个视频数据对象的每一个可包括来自视频帧的相应行的至少一部分的像
素数据。
[0041]通过累积所述未压缩的视频帧数据至多个图块单元,所述数据对象压缩/解压缩模块可为所述数据对象生成所述压缩的视频帧数据,其中,所述多个图块单元中的一个包括所述多个视频数据对象。
[0042]所述视频处理装置可进一步包括图像处理单元,基于未压缩的图像帧数据处理所述视频帧的至少一个图像平面;以及,其中,通过将所述未压缩的图像帧数据压缩成多个压缩的图像区段单元,所述数据对象压缩/解压缩模块生成压缩的图像帧数据以存储在压缩图像帧缓冲器,以及进一步通过取得所述多个压缩的图像区段单元来从所述压缩图像帧缓冲器中取得所述压缩的图像帧数据,并通过解压缩所述多个压缩的图像区段单元以生成未压缩的图像帧数据。
[0043]根据本发明的一个方面,提供一种将视频输入信号处理成处理的视频信号的方法,该方法包括:根据视频压缩协议将所述视频输入信号解码成解码的视频信号;通过将多个视频数据对象压缩成多个压缩的视频数据对象来生成压缩的视频帧数据;以及,通过识别对应于所述视频帧数据中被选择的部分的、多个压缩的视频数据对象中的被选择的那些、取得所述多个压缩的视频数据对象中所选择的那些、以及通过解压缩所述多个压缩的视频数据对象中被选择的那些以生成未压缩的视频帧数据,来从所述压缩视频帧缓冲器中取得视频帧数据中被选择的部分。
[0044]所述压缩的视频数据对象的每一个可被存储在所述压缩帧缓冲器中的存储器中的相应预定位置处的基准存储地址处;其中,所述压缩的视频数据对象的每一个包括头文件,所述头文件指示包含在其中的所述压缩数据的尺寸;以及其中所述压缩的视频数据对象的每一个可包括压缩数据字段。
[0045]取得所述多个压缩的视频数据对象中被选择的那些包括:确定对应于多个压缩的视频数据对象中被选择的那些的每一个的基准存储地址;读取对应于多个压缩的视频数据对象中被选择的那些的每一个的头文件,以确定对应于多个压缩的视频数据对象中被选择的那些的每一个的压缩数据的尺寸;以及,基于相应的基准存储地址和相应的尺寸,取得对应于多个压缩的视频数据对象中被选择的那些的每一个的压缩数据字段。
[0046]所述多个视频数据对象的第一子集通过无损压缩方式被压缩,以及所述多个视频数据对象的第二子集通过有损压缩方式被压缩。
[0047]所述方法可进一步包括通过将所述未压缩的图像帧数据压缩成多个压缩的图像区段单元,生成压缩的图像帧数据以存储在压缩图像帧缓冲器中;以及,通过取得所述多个压缩的图像区段单元,从所述压缩图像帧缓冲器中取得所述压缩的图像帧数据,并通过解压缩所述多个压缩的图像区段单元以生成未压缩的图像帧数据。
【专利附图】

【附图说明】
[0048]图1-3表示根据本发明的实施例的各种视频处理装置的示意图。
[0049]图4表示根据本发明的一个实施例的视频处理装置125的框图。
[0050]图5表示根据本发明的一个实施例的视频编码器/解码器102的框图。
[0051]图6表示根据本发明的一个实施例的视频帧216的图。
[0052]图7表示根据本发明的一个实施例的示例性图块单元218的图。
[0053]图8表示根据本发明的一个实施例的存储模块202和处理模块222的框图。
[0054]图9-14表示根据本发明的实施例的示例性读和写操作的框图。
[0055]图15表示根据本发明的一个实施例的数据对象压缩的框图。
[0056]图16表示根据本发明的一个实施例的压缩数据对象264的示意图。
[0057]图17表示根据本发明的一个实施例的视频处理装置125'的框图。
[0058]图18表示根据本发明的一个实施例的区域识别信号生成器150的框图。
[0059]图19表示根据本发明的一个实施例的图像310的图。
[0060]图20表示根据本发明的一个实施例的视频存储系统179的框图。
[0061]图21表不根据本发明的一个实施例的视频分配系统375的框图。
[0062]图22表示根据本发明的一个实施例的方法的流程图。
[0063]图23表示根据本发明的一个实施例的方法的流程图。
[0064]图24表示根据本发明的一个实施例的方法的流程图。
[0065]图25表示根据本发明的一个实施例的方法的流程图。
[0066]图26表示根据本发明的一个实施例的方法的流程图。
[0067]图27表示根据本发明的一个实施例的方法的流程图。
[0068]图28表示根据本发明的一个实施例的方法的流程图。
[0069]图29表示根据本发明的一个实施例的方法的流程图。
[0070]图30表示根据本发明的一个实施例的方法的流程图。
[0071]图31表示根据本发明的一个实施例的方法的流程图。[0072]图32表示根据本发明的一个实施例的方法的流程图。
[0073]图33表示根据本发明的一个实施例的方法的流程图。
【具体实施方式】
[0074]图1-3表示根据本发明的实施例的各种视频处理装置的示意图。特别地,具有内置数字视频记录器功能或独立的数字视频记录器的机顶盒10、电视计算机20和便携式计算机30图示了包含视频处理装置125的电子设备,视频处理装置125包括本发明的一个或多个特征或功能。虽然图示了这些特定的装置,但视频处理装置125包括能够根据结合附图4-33和附加的权利要求描述的系统和方法进行编码和/或解码视频内容的任意装置。
[0075]图4表示根据本发明的一个实施例的视频处理装置125的框图。特别地,视频处理装置125包括接收模块100,例如电视接收机、有线电视接收机、卫星广播接收机、宽带调制解调器、3G收发器或其他能够接收接收的信号98和通过时分解复用、频分解复用或其他解复用技术提取一个或多个视频信号110的信息接收机或收发器。视频编码/解码模块102耦合至所述接收模块100,以对应于视频显示装置104的格式编码、解码或转码所述视频信号。
[0076]在本发明的一个实施例中,所述接收信号98是广播视频信号,例如高清电视信号、增强的高清电视信号、或其他经由无线介质直接或通过一个或多个卫星或其他中继站或通过有线网络、光网络或其他传输网络传输的广播视频信号。另外,接收信号98从存储的视频文件生成,从例如磁带、磁盘或光盘的记录介质回放,并且可包括包括通过公共或个人网络(例如局域网、广域网、城域网或因特网)传输的流视频信号或视频下载信号。
[0077]视频信号110和处理后的视频信号112可以是按照一种编解码标准格式化的数字视频信号,该编解码标准例如是H.264、MPEG-4部分10高级视频编码(AVC)VCl或其他数字格式,例如运动图像专家组(MPEG)格式(例如MPEG1、MPEG2或MPEG4)、Quicktime格式、实时媒体格式、或视窗媒体视频(WMV)或其他数字视频格式,或者是标准的或者是专有的。特别地,一旦被解码,视频信号110有时被显示器使用,有时也与一个或多个图像平面混合并随后输出至电视;或者,视频能被处理、缩放,与媒体数据、子标题、字幕或图像对象或菜单混合,和/或重压缩到压缩格式从而能够重传到远程装置。
[0078]视频显示装置104可包括电视、监视器、计算机、手提没备或其他直接或间接创建光图像流的视频显示装置,例如通过基于将处理后的视频信号112解码为流视频信号的投影,或通过回放存储的数字视频文件。
[0079]视频编码器/解码器102根据本发明操作,并特别包含结合随后的图5-33描述的多个可选的功能和特征。
[0080]图5表示根据本发明的一个实施例的视频编码器/解码器102的框图。特别地,视频编码器/解码器102根据H.264或H.265标准、MPEG-4标准、VC-1 (SMPTE标准421M)高清媒体接口(HDMI)或其他标准的许多功能和特征进行操作,以将视频输入信号110编码、解码或转码成处理后的视频信号112。经由信号接口 198接收视频信号110和输出视频信号112。言号接口 198包括一个或多个装置接口,其将视频编码器/解码器102与主机的其他组件和/或其他外部设备进行接口,例如调制解调器、网络接口、无线收发器、数据总线或其他能够接收和/或输出视频信号110和处理后的视频信号112的数字接口。[0081]视频编码器102包括处理模块200,处理模块包括一个或多个处理装置,例如中央处理单元(CPU) 204、音频处理单元(APU) 206、视频处理单元(VPU) 208、图像处理单元(GPU) 210和显示处理单元(DPU)212。这些处理单元中的每一个可使用单个处理装置或多个处理装置来实现。这样的处理装置可以是微处理器、协处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑装置、状态机、逻辑电路、模拟电路、数字电路和/或基于存储在存储器(例如存储模块202)中的操作指令处理信号(模拟和/或数字)的任意装置。存储模块202可以是单个存储设备或多个存储设备。这样的存储设备包括硬盘装置或其他盘驱动、只读存储器、随机接入存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、快闪存储器、高速缓存器和/或任意存储数字信息的设备。注意,当处理模块经由状态机、模拟电路、数字电路和/或逻辑电路执行其一个或多个其功能时,存储相应操作指令的存储器可被嵌入或外接到包含所述状态机、模拟电路、数字电路和/或逻辑电路的电路。
[0082]处理模块200和存储器模块202经由总线214耦合到信号接口 198,并可选地耦合到可以以硬件、软件或固件实现的其他未具体示出的模块。虽然示出了特定的总线结构,但根据本发明也可执行采用在一个或多个模块和/或附加总线之间直接相连的可替代结构。
[0083]在操作中,处理模块200编码、解码或转码视频信号110以生成处理后的视频信号112。该编码、解码和/或转码经由存储在存储模块202中的一个或多个压缩帧缓冲器205操作。特别地,为了减少存储带宽,存储模块202提供一种结构以压缩存储在存储器中的视频和/或图像帧缓冲器所需要的数据。
[0084]在编码、解码 和/或转码的过程中可使用两种类型的存储对象。一种类型的存储对象是可以顺序数据对象为特性的“区段单元”(span unit)。在顺序数据对象中,该处理本质上是线性的,并且在一定的区段内是一维的和连续的。第二种类型的存储对象是“图块单元”(tilt unit),其以数据对象为特性,例如二维矩阵或被以二维方式处理的其他数据结构。特别地,图块单元可具有相关性,或可包括在相同操作内创建的多个区段单元。
[0085]下面将参见随后的图6-7说明区段单元和图块单元的示例实现。
[0086]图6表示根据本发明的一个实施例的视频帧216的示意图。特别地,示出了视频帧216,其包括具有二维像素阵列的图像(帧或场)。视频帧216被分成多个区段单元(SU),该多个区段单元被安排为二维矩阵或阵列。每个区段单元包括视频帧216的一行像素数据的至少一部分。在示出的实施例中,视频帧216的第一行像素数据包含在SU(1,I),SU(1,
2)……中,以及视频帧216的第二行像素数据包含在SU (2,I),SU (2, 2)……中等。每个区段单元具有在编码器/解码器102初始化期间预定的尺寸。在操作中,每个SU被压缩用于存储在压缩帧缓冲器中。SU的长度是被选择以平衡增加压缩算法效率的需要与最小化粒度损失的需要的、尽可能小的尺寸。注意,例如,当多个压缩帧缓冲器205与存储模块202 —起执行时,可能存在一种或多种类型的SU。存储在视频帧缓冲器中的视频SU可具有与存储在图像帧缓冲器中的图像SU不同的长度。进一步,对应于各不同类型的区段单元,基础的压缩方法也可不同。例如,图像SU和视频SU可被不同地压缩,以存储在它们各自的压缩帧缓冲器中。
[0087]图7表示根据本发明的一个实施例的示出了示例图块单元218的示意图。在所示的示例中,图块单元(TU) 218由垂直排列的一系列SU构成,以形成一个二维块。TU的尺寸是在编码器/解码器102的初始化期间预先确定的尺寸。在示出的示例中,TU与SU具有相同的长度,但是,在其他实施例中也可以具有其他整数倍的SU长度。进一步地,所示出的TU的高度是整数个,即N个SU。可选择TU的高度以优化潜在视频处理的处理要求。
[0088]图8表不根据本发明的一个实施例的存储模块202和处理模块200的框图表不。特别地,处理模块CPU204、APU206、VPU208、GPU210和DPU212经由区段引擎230和包括用于存储器240的读通道和写通道的内部存储总线220耦合至存储器240。VPU208还耦合至图块引擎250。虽然示出了单个CPU204、APU206、VPU208、GPU210和DPU212,但可以通过类似的形式实现每一类型的多个处理单元。
[0089]视频处理单元208根据视频压缩协议将视频输入信号,例如视频信号110解码成处理后的视频信号112。VPU208基于以压缩格式存储在存储器240的压缩视频帧缓冲器242中的未压缩的视频帧数据进行操作。图块引擎250包括图块累积模块254,其将未压缩的视频帧数据累积至多个图块单元。图块压缩/解压缩模块252通过将每个图块单元的视频区段单元压缩成压缩的视频区段单元,来生成压缩的视频帧数据以存储在压缩视频帧缓冲器242中。图块压缩/解压缩模块252通过取得相应的压缩的视频区段单元来从压缩视频帧缓冲器242中取得压缩的视频帧数据,并通过解压缩所述压缩的视频区段单元以生成未压缩的视频帧数据。
[0090]区段引擎230包括定义对应于所述压缩视频帧缓冲器和压缩图像帧缓冲器244的存储地址的范围的至少一个寄存器232。图像处理单元210基于未压缩的图像帧数据处理视频帧的一个或多个图像平面。所述区段引擎进一步包括区段压缩/解压缩模块234,其通过将所述未压缩的图像帧数据压缩成多个压缩的图像区段单元来生成压缩的图像帧数据以存储在压缩图像帧缓冲器242中,以及进一步地,通过取得所述相应的压缩的图像区段单元来从压缩图像帧缓冲器中取得压缩的图像帧数据,并且通过解码多个压缩的图像区段单元来生成未压缩的图像帧数据。区段引擎230能进行类似的压缩和解压缩视频区段单元,除了由VPU208执行的读写操作,其经由图块引擎250避开区段引擎230的压缩和解压缩。区段引擎管理包括一组用于高速缓存区段单元的高速缓存器的高速缓存器236、管理一致性、以及为经由高速缓存器的所有读写提供服务。
[0091]在操作中,每个范围寄存器232定义每个压缩帧缓冲器的存储器240中的开始地址和长度。除了经由图块引擎250来处理压缩和解压缩的略读(bypass read)操作之外,具有范围寄存器内的地址的任意读操作首先将被针对高速缓存器236进行检查。如果区段单元数据被高速缓存,其可被立即处理。如果区段单元数据未在高速缓存器236中,在未压缩的区段单元数据将被返回之前,压缩的SU可从存储器240中取得并被解压缩。除了略写(bypass write)操作,具有范围寄存器内的地址的任意写操作将被累积到高速缓存器236的高速缓存器中,并由区段引擎管理。略读和略写操作被区段引擎230忽略,并直接被发送到存储器240中。
[0092]可连同由VPU208解码压缩视频流的示例来定义处理模块200和存储模块202的操作。存储器240中的范围将被指定为压缩的,并且该范围足够大,以能够处理GPU210、VPU208和DPU212所要求的所有视频和图像缓冲器。这些压缩缓冲器将被相应的寄存器232指定。CPU204和APU206可选地处理未压缩的数据,因为与VPU208、GPU210和DPU212相比,它们在非常低的存储带宽要求上操作。出于这些目的,在存储器240中可留出未压缩音频缓冲器246和未压缩数据空间248。与未压缩音频缓冲器246和未压缩数据空间248的存储空间相对应的读写地址可被直接传递到存储器240。
[0093]VPU208解码压缩视频流。解码的YUV数据被写入到外部存储器。该数据将被累积到图块引擎250的图块累积模块254中,该图块累积模块254作为将数据组合到多个SU的区段中的高速缓存器。一旦区段被填充和压缩,随着一系列压缩的SU写在为每个压缩的SU的输出保留的存储地址处,压缩的TU可被直接写出至主存储器。当仅被部分填充时,如果TU被清空(flush),可从压缩视频帧缓冲器242收集被要求填充整个TU的丢失数据。为了创建完整的TU,每个压缩的SU将被读入、被图块压缩/解压缩模块252解压缩,并被组合到TU的其他区段单元中。接着,随着一系列压缩的SU写在为每个压缩的SU的输出保留的存储地址处,重组的TU可被压缩和写出。如果需要图像平面,每个图像平面被GPU210创建,该GPU210提取要存储在压缩图像帧缓冲器244中的每个元素。图像帧缓存数据也被分成一系列压缩的SU读写。将由区段引擎230经由其高速缓存器236的缓冲器为这些从和到存储器240的读和写提供服务。当DPU212需要合成每个视频和图像平面以显示时,所有读取的数据将经由区段引擎230解压缩。
[0094]下面将结合图9-14呈现存储模块202的读写操作的进一步示例。
[0095]图9-14表示根据本发明的实施例的示例读写操作的框图。如图9所示,CPU204生成针对未压缩数据248的读写命令。未压缩写数据302耦合至内部存储总线220。因为写地址并不对应于存储器240的压缩区域,未压缩写数据302直接传递至存储器240到达对应于未压缩数据的存储区域的写地址。类似地,由于读地址并不对应于存储器240的压缩区域,未压缩读数据300穿过区段引擎230,直接从存储器240传递到内部存储总线220以提供给CPU204。
[0096]如图10所示,APU206生成针对未压缩音频数据246的读写命令。未压缩写数据306耦合至内部存储总线220。因为写地址不对应于存储器240的压缩区域,未压缩写数据306直接传送到存储器240到达对应于未压缩音频缓冲器246的存储空间的写地址,并且未压缩数据空间248可被直接传递到存储器240。类似地,由于读地址不对应于存储器240的压缩区域,未压缩读数据304穿过区段引擎230,直接从存储器240传递到内部存储总线220以提供给APU206。
[0097]如图11所示,VPU208生成针对压缩的视频帧数据242的读写命令。未压缩写数据314被图块引擎350累积,并随着一系列压缩区段单元写操作被输出至内部存储总线220作为压缩的写数据316。压缩的写数据316是略过操作(bypass operation),其被直接传递到存储器240到达为这些压缩的区段单元保留的压缩视频帧数据242的存储空间中。类似地,压缩的读数据310略过区段引擎230,直接从存储器240穿过区段引擎230传递到内部存储总线220。图块引擎250解压缩压缩读数据310以作为未压缩读数据312提供给VPU208。
[0098]如图12所示,未压缩的视频帧数据320 (例如以解码的YUV数据形式)被累积到图块引擎250的图块累积模块254中,图块累积模块254作为这些数据被组合到多个SU的未压缩的区段322的高速缓存器。一旦区段被填充并被压缩模块256压缩成压缩的区段单元324,随着一系列压缩的SU写入为每个压缩的SU的输出保留的存储地址,压缩的TU可经由内部存储总线220被直接写出到存储器中。当仅部分被填充时,如果TU被清空,从压缩视频帧缓冲器中收集填充整个TU所需的丢失数据。每个压缩的SU326将被读入、被图块解压缩模块258解压缩、并被组合到TU的其他区段单元以创建完整的TU。接着,随着一系列压缩的SU写入为每个压缩的SU的输出保留的存储地址,重组的TU被压缩和写出。
[0099]如图13所示,GPU204生成针对压缩图像帧缓冲器244的读写命令。未压缩写数据334耦合至内部存储总线220。由于写地址对应于存储器240的压缩区域,在存储到存储器之前,未压缩写数据334被区段引擎230高速缓存并压缩以形成压缩的写数据336。类似地,由于读地址对应于存储器240的压缩区域,未压缩的读数据330从高速缓冲器236中取得或通过解压缩从存储器240中取得的压缩的读数据332来生成,并作为未压缩的读数据330经由内部存储总线220提供给VPU204。
[0100]如图14所示,DPU204生成针时压缩图像帧缓冲器244和压缩视频帧缓冲器242的读写命令。未压缩的写数据344耦合至内部存储总线220。由于写地址对应于存储器240的压缩区域,在被存储到存储器之前,未压缩的写数据344被区段引擎230高速缓存,并被压缩以形成压缩的写数据346。类似地,由于读地址对应于存储器240的压缩区域,未压缩的读数据340从高速缓存器236中取得或者通过解压缩从存储器240中取得的压缩的读数据342来生成,并作为未压缩的读数据340经由内部存储总线220提供给VPU204。
[0101]图15表示根据本发明的一个实施例的数据对象压缩的框图。特别地,示出了压缩解压缩模块252或234执行的数据压缩和解压缩的一个实施例。通常,将整个视频参考帧或者图像帧作为一个整体进行压缩是不可行的,因为后续图像处理可能仅需要该帧的一小部分。如之前所讨论的,以提供到该帧数据的部分的随机访问能力的方式,更小的数据对象(例如区段单元)被压缩成压缩的数据对象(例如压缩的区段单元)。
[0102]接着,如所示的,每个数据对象(D0)260分别被压缩成相应的压缩数据对象(CDO) 2620如所示的,基于每个数据对象260的压缩量,所述压缩数据对象262可以是不同的尺寸。每个压缩数据对象262被存储在存储器240的一部分中的预定位置,例如为压缩数据或该类型的压缩数据(视频帧数据,图像帧数据等等)保留的地址范围。特别地,每个压缩数据对象262被存储在存储器中的相应预定位置处的基础存储地址中。例如,数据对象(例如区段单元)在视频帧或图像帧中的位置可基于帧大小、分辨率等预先确定。每个数据对象260可与存储器240的一部分中的基础存储地址相关联,该基础存储地址对应于与特定数据对象260相对应的压缩数据对象262将要被存储的位置。
[0103]图16表示根据本发明的一个实施例的压缩数据对象264的示意图。如图15所示出的,基于每个数据对象260的压缩量,所述压缩数据对象262可以是不同的尺寸。在操作中,压缩解压缩模块252或234压缩所述数据对象,生成指示每个压缩数据对象262的压缩数据的尺寸的头文件266,并在压缩数据字段268中存储所述压缩数据。
[0104]当需要一个帧的区域时,解压缩模块首先识别对应于所选择的帧的部分的压缩数据对象262中被选择的那些。接着,通过确定每个压缩数据对象262的相应基础存储地址,压缩解压缩模块252计算所需要的数据对象在存储器中的位置。通过读取相应的头文件266,压缩解压缩模块252获取每个压缩数据对象262的正确尺寸,基于所述尺寸取得压缩数据字段268,并解压缩所述压缩数据字段,以重新生成数据对象260,
[0105]应当注意的是,虽然之前结合所述区段单元的压缩进行说明,但是在其他实施例中,压缩解压缩模块252可直接压缩图块单元,而不是单个压缩区段单元。进一步地,可选地,不同的压缩解压缩模块252或234针对对应于例如压缩视频区段单元和压缩图像区段单元的不同数据对象可采用不同的压缩方法。
[0106]在本发明的一个实施例中,为了更灵活地获得特定的带宽减少率,对帧数据,例如视频帧数据,进行有损压缩和无损压缩的混合压缩。可以理解的是,采用有损压缩,则所存储的帧将不同于原始帧。当这些帧被显示,或作为参考帧使用时,将存在不匹配。存储带宽效率的增加的代价是图像质量的下降。
[0107]在一个实施例中,压缩目标可被设置,并且只要对特定数据对象260所实现的实际压缩满足或超过所述压缩目标,可采用无损压缩。在无损压缩不足以达到或超过所述压缩目标的情形下,可采用有损压缩以达到或超过所述压缩目标。例如,压缩/解压缩模块252或234可操作以使用无损方案来初始压缩数据对象260。如果不能达到所述压缩目标,数据对象260被再次量化和压缩。这一处理被重复,直到达到所述压缩目标。
[0108]结合下文,可描述每个数据对象260的压缩,特别是有损/无损压缩的选择的处理:
[0109](a)压缩该数据对象260;
[0110](b)将该数据对象260的压缩量与压缩目标进行比较;
[0111](C)当数据对象260的压缩量比所述压缩目标好时,将该压缩数据对象262存储在压缩视频帧缓冲器中;
[0112](d)当数据对象的压缩量比所述压缩目标差时,丢弃该压缩视频数据对象260,并量化数据对象260 ;以及
[0113](e)重复步骤(a)-(d),直到数据对象260的压缩量比所述压缩目标好。
[0114]如上所述,当无损压缩不足以达到所述压缩目标时,数据对象260被重复量化,直到该量化的数据对象的压缩满足或超过所述压缩目标。这导致这样的数据帧压缩,其中数据对象260的第一子集经由无损压缩方式被压缩,数据对象260的第二子集经由有损压缩方式被压缩一取决于所选择的特定压缩目标和将被压缩的帧数据上的每个特定数据对象260的可能的压缩量。还应当注意的是,视频帧可被划分为区域,并采用这种方案针对不同的区域获得不同的压缩目标。例如,与帧的周边部分相比,屏幕的中心部分可采用较小压缩目标以保持保真度。另外,可识别视频帧中的对应于重要图像的感兴趣区域。与一个或多个感兴趣区域之外的帧的部分相比,视频帧中的一个或多个感兴趣区域可采用较小压缩目标以保持保真度。
[0115]下面将结合随后的图17-19,进一步讨论基于包括多个选择性功能和特征的视频帧中被识别的一个或多个区域的不同压缩目标的使用。
[0116]图17表示根据本发明的一个实施例的视频处理装置125的框图。特别地,示出了类似于视频处理装置125起作用的视频处理装置125',但是视频编码器/解码器102'包括区域识别信号生成器150,用于识别视频帧中的一个或多个感兴趣区域。基于该区域识别信号,从多个可能的目标值中选择用于使压缩合格的压缩目标。
[0117]如结合图16所讨论的,一个或多个感兴趣区域之外的帧部分相比,视频帧中的一个或多个感兴趣区域采用较小压缩目标以保持保真度。特别地,选择压缩目标以将第一压缩目标应用于与感兴趣区域对应的数据对象以及将第二压缩目标应用于不对应于感兴趣区域的数据对象,其中,与第一压缩目标相比,第二压缩目标要求更多的压缩。例如,区域识别信号能够识别对应于视频帧中的脸部的一个或多个区域,当视频处理装置125'的用户观看时,该一个或多个区域受到更仔细的观察。
[0118]在一个实施例中,为感兴趣区域所选择的压缩目标可以是微不足道的0%压缩的目标。这迫使压缩/解压缩模块252或234接受任意的无损压缩量,排除有损压缩在这些区域内应用的可能性。在另一实施例中,在感兴趣区域中采用非微不足道的但仍然较小的压缩目标。这将使压缩决定在这些区域中倾向于接受无损压缩,并进一步倾向于接受数据对象的较少的量化,这导致在采用有损压缩时会造成较少的损失。
[0119]图18表示根据本发明的一个实施例的区域识别信号生成器150的框图。特别地,区域识别信号生成器150包括区域检测模块320,用于检测在至少一个图像中的检测区域322,例如,该图像可以是被压缩以存储在压缩视频帧缓冲器242中的视频帧。在操作中,区域检测模块320可检测可能要求更高图像质量的特殊图案或其他感兴趣区域的存在。这样的图案的一个示例是人脸或其他脸,但是,其他图案包括符号、文本、重要图像和能够被类似地执行的特定应用图案和其他图案。区域识别信号生成器150可选地包括区域净模块324,例如通过形态学操作基于所述检测区域322生成净区域326。区域识别信号生成器150进一步包括区域生长模块,其扩展所述净区域326以生成识别包含感兴趣图案的区域的区域识别信号330。
[0120]例如,考虑图像310包括人脸并且区域识别信号生成器150生成对应于该人脸的区域的情况,区域检测模块320可基于对应于面部特征(例如肤色)的像素色彩值的检测生成检测区域322。区域净模块可生成包含这些面部特征的更连续的区域,区域生长模块可增长这些区域以包括周围的头发和其他图像部分,从而确保整个脸部都被包含在区域识别信号330识别的区域中。编码部分使用区域识别信号330来操作,以强调这些面部区域的质量,而潜在地不强调图像的其他区域。应当注意的是,对于对脸部给出更高的敏感度和洞察力的观众来说,整个图像可具有更高的质量。
[0121]图19表示根据本发明的一个实施例的图像310的示意图。如所示的,区域识别信号生成器150已识别感兴趣区域350,生成相应的区域识别信号330,该区域识别信号330指示感兴趣区域350的边界或者包括感兴趣区域350的特定数据对象260。
[0122]如结合图16-18所讨论的,与感兴趣区域350之外的图像310的部分相比,当压缩感兴趣区域350的数据对象时,可采用较小压缩目标以保持保真度。特别地,选择压缩目标以将第一压缩目标应用于对应感兴趣区域的数据对象并且将第二压缩目标应用于不对应感兴趣区域的数据对象,其中,与第一压缩目标相比,第二压缩目标要求更高的压缩。
[0123]图20表示根据本发明的一个实施例的视频存储系统179的框图表示。特别地,装置11是一个具有内置的数字视频录象机功能的机顶盒、独立的数字视频录象机、DVD录像机/播放器或其他存储处理后的视频信号112以在视频显示器(例如电视12)上显示的装置。尽管视频编码器/解码器102被示出结合在设备11中,它可以是一个独立的装置。在这一配置中,当从存储装置中取得时,视频编码器/解码器102可进一步将视频信号110解码成处理后的视频信号112,以生成具有适合视频显示装置12显示的格式的视频信号。虽然图示了这些特定的装置,但根据结合本文描述的本发明的特征和功能所描述的方法和系统,视频存储系统179可以包括硬件驱动、快闪存储装置、计算机、DVD烧录器或能够生成、存储、解码和/或显示处理后的视频信号112的视频内容的任何其他装置。
[0124]图21表示根据本发明的一个实施例的视频分发系统375的框图。特别地,从第一视频编码器/解码器102经由传输路径122将通过编码或转码视频信号110而创建的处理后的视频信号111传输到作为解码器工作的第二视频编码器/解码器102。第二视频编码器/解码器102解码所述处理后的视频信号111以显示在例如电视10、计算机20或其他显示设备的显示设备上。
[0125]传输路径122可包括根据无线局域网协议,例如80211协议、WIMAX协议、蓝牙协议等操作的无线路径。进一步地,传输路径可包括根据有线协议(例如通用串行总线协议)、以太网协议或其他高速协议操作的有线路径。
[0126]图22表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-21描述的一个或多个特征和功能使用的一种方法。步骤400包括基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码的视频信号。步骤402包括将所述未压缩的视频帧数据累积到多个图块单元,其中,所述多个图块单元中的每一个包括多个视频区段单元,每个视频区段单元包括来自视频帧的相应行的至少一部分的像素数据。步骤404包括通过将多个视频区段单元压缩成多个压缩的视频区段单元,生成压缩的视频帧数据以存储在压缩视频帧缓冲器中。步骤406包括通过取得所述多个压缩的视频区段单元,从所述压缩视频帧缓冲器中取得压缩的视频帧数据,并通过解压缩所述多个压缩的视频区段单元以生成未压缩的视频帧数据。
[0127]图23表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-22描述的一个或多个特征和功能使用的一种方法。步骤410包括存储对应于寄存器中的压缩视频帧缓冲器的存储地址的范围。
[0128]图24表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-23描述的一个或多个特征和功能使用的一种方法。步骤420包括基于未压缩的图像帧数据处理所述视频帧的至少一个图像平面。步骤422包括通过将所述未压缩的图像帧数据压缩成多个压缩的图像区段单元,生成压缩的图像帧数据以存储在压缩图像帧缓冲器中。步骤424包括通过取得所述多个压缩的图像区段单元,来从所述压缩图像帧缓冲器中取得压缩的图像帧数据,并通过解压缩所述多个压缩的图像区段单元来生成未压缩的图像帧数据。所述至少一个寄存器定义对应于压缩图像帧缓冲器的存储地址的范围。
[0129]图25表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-24描述的一个或多个特征和功能使用的一种方法。步骤430包括:当对应于写命令的存储地址落在对应于压缩图像帧缓冲器的存储地址的范围内时,将所述写命令识别为对应于压缩图像帧缓冲器。步骤432包括:当对应于读命令的存储地址落在对应于压缩图像帧缓冲器的存储地址的范围内时,将所述读命令识别为对应于压缩图像帧缓冲器。
[0130]图26表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-25描述的一个或多个特征和功能使用的一种方法。步骤440包括基于未压缩的视频帧数据和未压缩的图像帧数据,处理所述视频帧和所述视频帧的至少一个图像平面。步骤442包括通过取得所述多个压缩的视频区段单元,从所述压缩视频帧缓冲器取得所述压缩的视频帧数据,并通过解压缩所述多个压缩的视频区段单元以生成未压缩的视频帧数据。
[0131]图27表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-26描述的一个或多个特征和功能使用的一种方法。步骤450包括将未压缩的图像帧数据存储在高速缓存器中。步骤452包括当所述未压缩的图像帧数据中被选择的那些数据存储在所述高速缓存器中时,从所述高速缓存器中取得未压缩的图像帧数据中被选择的那些数据。步骤454包括当所述未压缩的图像帧数据中被选择的那些数据没有存储在所述高速缓存器中时,从压缩图像帧缓冲器中取得所述未压缩的图像帧数据中被选择的那些数据。
[0132]图28表示根据本发明的一个实施例的一种方法的流程图表示。特别地,示出了结合如图1-27描述的一个或多个特征和功能使用的一种方法。步骤460包括将未压缩的视频帧数据存储在高速缓存器中。步骤462包括当未压缩的视频帧数据中被选择的那些数据存储在所述高速缓存器中时,从所述高速缓存器中取得未压缩的视频帧数据中被选择的那些数据。步骤464包括当未压缩的视频帧数据中被选择的那些数据未存储在所述高速缓存器中时,从所述压缩视频帧缓冲器中取得未压缩的视频帧数据中被选择的那些数据。
[0133]图29表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-28描述的一个或多个特征和功能使用的一种方法。步骤470包括:基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码的视频信号。步骤472包括:通过将多个视频数据对象压缩成多个压缩的视频数据对象,生成压缩的视频帧数据以存储在压缩视频帧缓冲器中,其中,所述多个视频数据对象的第一子集经由无损压缩方式压缩以及所述多个视频数据对象的第二子集经由有损压缩方式压缩。步骤474包括通过取得所述多个压缩的视频数据对象,从所述压缩视频帧缓冲器中取得压缩的视频帧数据。步骤476包括通过解压缩所述多个压缩的视频数据对象,生成未压缩的视频帧数据。
[0134]在一个实施例中,多个视频数据对象中的相应一个包括来自视频帧的多个行或视频帧的一个相应的行的至少一部分的像素数据。
[0135]图30表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-29描述的一个或多个特征和功能使用的一种方法。步骤480包括压缩多个视频数据对象中的相应的一个。步骤482包括将视频数据对象的压缩量与压缩目标进行比较。步骤484包括当所述视频数据对象的压缩量比所述压缩目标好时,将所述压缩的视频数据对象存储在压缩视频帧缓冲器中。步骤486包括当视频数据对象的压缩量比所述压缩目标差时,丢弃压缩的视频数据对象。步骤488包括量化所述多个视频数据对象中的所述相应的一个。重复步骤480、482、486和488,直到所述多个视频数据对象的所述相应的一个的压缩量比压缩目标好,并执行步骤484。基于识别所述视频帧中的区域的区域识别信号,可从多个可能的目标值中选择所述压缩目标。
[0136]图31表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-30描述的一个或多个特征和功能使用的一种方法。步骤490包括当检测到感兴趣区域时,处理视频帧以生成区域识别信号。
[0137]在一个实施例中,选择所述压缩目标,以将无损压缩应用于对应感兴趣区域的视频数据对象。选择所述压缩目标,以将第一压缩目标应用于对应感兴趣区域的视频数据对象以及将第二压缩目标应用于不对应感兴趣区域的视频数据对象,并且其中,与第一压缩目标相比,第二压缩目标要求更多的压缩。
[0138]图32表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-31描述的一个或多个特征和功能使用的一种方法。步骤500包括基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码的视频信号。步骤502包括:通过将多个视频数据对象压缩成多个压缩的视频数据对象,生成压缩的视频帧数据。步骤504包括将所述多个压缩的视频数据对象存储在压缩帧缓冲器中。步骤506包括:通过识别对应于视频帧数据的被选择部分的多个压缩的视频数据对象的被选择的那些对象、取得所述多个压缩的视频数据对象的被选择的那些对象、以及解压缩所述多个压缩的视频数据对象的被选择的那些对象以生成未压缩的视频帧数据,来从所述压缩视频帧缓冲器中取得视频帧数据的被选择的部分。
[0139]在一个实施例中,所述压缩视频数据对象的每一个存储在存储器中的相应预定位置的基础存储地址处的压缩帧缓冲器中。所述多个视频数据对象的每一个包括来自视频帧的多个行或视频帧的一个相应行的至少一部分的像素数据。
[0140]图33表示根据本发明的一个实施例的一种方法的流程图。特别地,示出了结合如图1-32描述的一个或多个特征和功能使用的一种方法。在一个实施例中,所述压缩的视频数据对象的每一个包括指示包含在其中的压缩数据的尺寸的头文件和压缩数据字段。步骤510包括确定对应于多个压缩的视频数据对象的被选择的那些对象的每一个的基础存储地址。步骤512包括读取对应于多个压缩的视频数据对象的被选择的那些对象的每一个的头文件,以确定对应于多个压缩的视频数据对象的被选择的那些对象的每一个的压缩数据的尺寸。步骤514包括基于相应的基础存储地址和相应的尺寸,取得对应于多个压缩的视频数据对象的被选择的那些对象的每一个的压缩数据字段。
[0141]如本文所使用的,术语“大体上”和“近似地”提供一种针对其相应的项目和/或项目之间的相关性的工业上可接受的容差。这样的工业上可接受的容差的范围从小于百分之一到百分之五十,对应但不限于组分值、集成电路处理变量、温度变量、上升和下降的次数、和/或热噪声。这样的项目之间的相关性的范围从百分之几的差别到巨大的差别。另如可在本文使用的, 术语“可操作地耦合到”、“耦合到”和/或“耦合”包括两个项目之间的直接耦合和/或经由一个中间项目的两个项目之间的间接耦合(例如,项目包括但不限于组件、元素、电路和/或模块),其中,对于间接耦合,中间项目不修改信号的信息,但可以调整其电流水平、电压水平和/或功率水平。再如可在本文使用的,推断耦合(即,一个元素通过推断耦合到另一个元素)包括两个项目之间的以和“耦合到”相同的方式的直接和间接耦合。更进一步地,如可在本文中使用的,术语“可操作于”或“可操作地耦合到”表示项目包括电源连接、输入、输出等中的一个或多个,以在激活时执行一个或多个其相应功能,并且进一步包括推断耦合到一个或多个其他项目。另外如可在本文中使用的,术语“与……相关”包括直接和/或间接耦合多个独立的项目和/或嵌入到另一个项目中的一个项目。如可在本文中使用的,术语“比……好”表示两个或多个项目、信号等之间的比较提供一个想要的关系。例如,当想要的关系是信号I具有比信号2大的幅值,则当信号I的幅值大于信号2的幅值,或者信号2的幅值小于信号I的幅值时,获得好的比较。
[0142]另如可在本文中所使用的,术语“处理模块”、“处理电路”和/或“处理单元”可以是单个处理设备或多个处理设备。这样的处理设备可以是微处理器、微控制器、数字信号处理器、微计算机、中央处理单元、现场可编程门阵列、可编程逻辑设备、状态机、逻辑电路、模拟电路、数字电路和/或基于电路的硬编码和/或操作指令处理信号(模拟和/或数字)的任意设备。处理模块、模块、处理电路和/或处理单元可以是,或进一步包括,存储器和/或集成的存储元件,其可以是单个的存储设备、多个存储设备、和/或另一个处理模块、模块、处理电路和/或处理单元的嵌入电路。这样的存储设备可以是只读存储器、随机接入存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、快闪存储器、高速缓存器、和/或任意存储数字信息的设备。注意,如果处理模块、模块、处理电路和/或处理单元包括多于一个的处理设备,该处理设备将被集中放置(例如,经由有线和/或无线总线结构直接耦合到一起)或分散放置(例如,通过经由局域网和/或广域网的间接耦合的云计算)。进一步注意,如果处理模块、模块、处理电路和/或处理单元经由状态机、模拟电路、数字电路、和/或逻辑电路执行一个或多个其功能,存储相应的操作指令的存储器和/或存储元件可以被内嵌或外接到包括所述状态机、模拟电路、数字电路、和/或逻辑电路的电路。还进一步注意,存储元件可存储,并且处理模块、模块、处理电路和/或处理单元执行,对应于在一个或多个图中说明的步骤和/功能的至少一些的硬编码和/或操作指令。这样的存储设备或存储元件被包含在制成品中。
[0143]上文借助于描述特定功能及其关系的性能的方法步骤描述了本发明。为了方便描述,在本文中上述功能架构模块和方法步骤的边界和顺序被任意定义。只要合适地实现所述特定的功能和关系,可定义可替代的边界和顺序。任意这样的可替代边界和顺序在本发明的范围和精神之内。进一步地,为了便于描述,这些功能架构模块的边界可以被任意定义。只要某些重要的功能被合适地实现,可替代的边界可被定义。类似地,在本说明书中,也可任意地定义流程图块以描述某种重要的功能。在某种程度上,流程图块的边界和顺序可以别的方式被定义并仍然实现某种重要的功能。因此,功能架构模块和流程图块的这样的可替代定义和顺序在本发明的范围和精神之内。本领域普通技术人员将认识到本说明书中的功能架构模块和其他描述的块、模块和组件可以如所描述的那样实施,或由离散组件、特定应用的集成电路、执行合适软件等的处理器或任意上述组合来实施。
[0144]也至少部分地根据一个或多个实施例描述了本发明。此处使用本说明书的实施例来描述本发明、其方面、其特征、其概念和/或其示例。体现本发明的装置、制成品、机器和/或处理的物理实施例可包括参考本说明书所讨论的一个或多个实施例描述的一个或多个方面、特征、概念、示例等。进一步地,从图到图,具体实施例可包含相同或相似地命名的功能、步骤、模块等,其使用相同或不同的附图标记,从而这些功能、步骤、模块等可以是相同或相似的功能、步骤、模块等,也可以是不同的。
[0145]除非有相反的规定,本文所示出的图像的任意一幅图像中从元件发送、接收和/或两个元件之间的信号可以是模拟的或数字的,连续时间的或离散时间的,以及单端的或差动的。例如,如果信号路径被示为单端路径,则其也表示差动信号路径。类似地,如果一个信号路径被示为差动信号路径,则其也表示单端信号路径。虽然本说明书描述了一个或多个特定的结构,但也可以同样地实施使用一个或多个未明显示出的数据总线、元件之间的直接连接、和/或本领域技术人员可知的其他元件之间的间接耦合的其他结构。
[0146]在本发明的各种实施例的描述中使用了术语“单元”,也被称为“模块”。模块包括处理模块、功能块、硬件、和/或存储在存储器中由处理设备执行以实现本说明书所描述的一个或多个功能的软件。注意,如果模块经由硬件实施,该硬件可独立地操作和/或与软件和/或固件共同操作。如本文所使用的,模块包含一个或多个子模块,每一个都可以是一个或多个模块。
[0147]虽然本说明书明确地描述了本发明的各种功能和特征的特定组合,但这些特征和功能的其他组合同样是可能的。本发明不限于本说明书所公开的特定实施例,并且明显地包括这些其他组合。
【权利要求】
1.一种视频处理装置,包括: 视频处理单元,其基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码视频信号; 图块引擎,包括: 图块累积模块,将未压缩的视频帧数据累积到多个图块单元中,其中,所述多个图块单元的每一个包括多个视频区段单元,所述多个视频区段单元的每一个包括来自视频帧的相应行的至少一部分的像素数据;以及 图块压缩/解压缩模块,耦合至图块累积模块,通过将所述多个视频区段单元压缩成多个压缩的视频区段单元来生成压缩的视频帧数据以存储在压缩视频帧缓冲器中,以及进一步地,通过取得所述多个压缩的视频区段单元来从所述压缩视频帧缓冲器中取得所述压缩的视频帧数据,并通过解压缩所述多个压缩的视频区段单元来生成未压缩的视频帧数据。
2.如权利要求1所述的视频处理装置,进一步包括: 区段引擎,耦合至图块引擎和视频帧缓冲器,包括定义对应于所述压缩视频帧缓冲器的存储地址范围的至少一个寄存器。
3.如权利要求2所述的视频处理装置,进一步包括: 图像处理单元,基于未压缩的图像帧数据,处理视频帧的至少一个图像平面;以及 其中,所述区段引擎进一步包括区段压缩/解压缩模块,通过将未压缩的图像帧数据压缩成多个压缩的图像区段单元,来生成压缩的图像帧数据以存储在压缩图像帧缓冲器中,以及进一步地,通过取得多个压缩的图像区段单元来从所述压缩图像帧缓冲器中取得压缩的图像帧数据,并通过解压缩所述多个压缩的图像区段单元来生成未压缩的图像帧数据。
4.如权利要求3所述的视频处理装置,其中,所述至少一个寄存器定义对应于所述压缩图像帧缓冲器的存储地址范围; 可选地,当对应于来自所述图像处理单元的写命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,所述区段引擎将写命令识别为对应于所述压缩图像帧缓冲器;以及 其中,当对应于来自所述图像处理单元的读命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,所述区段引擎将读命令识别为对应于所述压缩图像帧缓冲器。
5.如权利要求3或4所述的视频处理装置,进一步包括: 显示处理单元,其耦合至所述区段引擎,并基于未压缩的视频帧数据和未压缩的图像帧数据来处理视频帧和视频帧的至少一个图像平面; 其中,所述区段压缩/解压缩模块通过取得多个压缩的视频区段单元来从所述压缩视频帧缓冲器中取得压缩的视频帧数据,并通过解压缩多个压缩的视频区段单元来生成未压缩的视频帧数据。
6.如权利要求3至5中任意一项所述的视频处理装置,其中,所述区段引擎进一步包括用于存储未压缩的图像帧数据的高速缓存器; 其中,当未压缩的图像帧数据中被选择的那些被存储在所述高速缓存器中时,所述区段引擎通过从所述高速缓存速器中取得未压缩的图像帧数据中被选择的那些对来自所述图像处理单元和所述显示处理单元的请求进行响应;以及当未压缩的图像帧数据中被选择的那些没有被存储在所述高速缓存器中时,进一步从所述压缩图像帧缓冲器中取得未压缩的图像帧数据中被选择的那些。
7.如权利要求6所述的视频处理装置,其中,当未压缩的视频帧数据中被选择的那些被存储在所述高速缓存器中时,所述区段引擎通过从所述高速缓存器中取得未压缩的视频帧数据中被选择的那些对来自所述显示处理单元的请求进行响应,以及当未压缩的视频帧数据中被选择的那些没有存储在所述高速缓存器中时,通过取得相应的压缩的视频区段单元、并解压缩相应的压缩的视频区段单元以生成未压缩的视频帧数据中被选择的那些,来进一步从所述压缩视频帧缓冲器中取得未压缩的视频帧数据中被选择的那些。
8.如权利要求1-7中任意一项所述的视频处理装置,其中,包括以下的一个或多个: 基于解码后的视频信号生成处理后的视频信号;以及 所述视频处理单元通过将解码后的视频信号重新编码为处理后的视频信号,来将视频输入信号转码成处理后的视频信号。
9.一种将视频输入信号处理成处理后的视频信号的方法,该方法包括: 基于未压缩的视频帧数据,根据视频压缩协议将视频输入信号解码成解码后的视频信号; 将未压缩的视频帧数据累积到多个图块单元中,其中,所述多个图块单元中的每一个包括多个视频区段单元,所述多个视频区段单元的每一个包括来自视频帧的相应行的至少一部分的像素数据; 通过将所述多个视频区段单元压缩成多个压缩的视频区段单元,来生成压缩的视频帧数据以存储在压缩视频帧缓冲器中;以及 通过取得多个压缩的视频区段单元来从所述压缩视频帧缓冲器中取得压缩的视频帧数据,并通过解压缩多个压缩的视频区段单元来生成未压缩的视频帧数据。
10.如权利要求9所述的方法,进一步包括: 在寄存器中存储对应于所述压缩视频帧缓冲器的存储地址范围。
11.如权利要求9或10所述的方法,进一步包括: 基于未压缩的图像帧数据,处理视频帧的至少一个图像平面; 通过将未压缩的图像帧数据压缩成多个压缩的图像区段单元,来生成压缩的图像帧数据以存储在压缩图像帧缓冲器中; 通过取得多个压缩的图像区段单元来从所述压缩图像帧缓冲器中取得压缩的图像帧数据,并通过解压缩多个压缩的图像区段单元来生成未压缩的图像帧数据。
12.如权利要求11所述的方法,其中,所述至少一个寄存器定义时应于所述压缩图像帧缓冲器的存储地址范围。
13.如权利要求12所述的方法,进一步包括: 当对应于写命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,将所述写命令识别为对应于所述压缩图像帧缓冲器;以及 当对应于读命令的存储地址落在对应于所述压缩图像帧缓冲器的存储地址范围之内时,将所述读命令识别为对应于所述压缩图像帧缓冲器。
14.如权利要求12或13所述的方法,进一步包括: 基于未压缩的视频帧数据和未压缩的图像帧数据,处理视频帧和视频帧的至少一个图像平面;以及 通过取得多个压缩的视频区段单元,从所述压缩视频帧缓冲器中取得压缩的视频帧数据,并通过解压缩多个压缩的视频区段单元来生成未压缩的视频帧数据。
15.如权利要求14所述的方法,进一步包括以下之一: 或者是将未压缩的图像帧数据存储在高速缓存器中; 或者是当未压缩的图像帧数据中被选择的那些存储在所述高速缓存器中时,从所述高速缓存器中取得未压缩的图像帧数据中被选择的那些;以及 当未压缩的图像帧数据中被选择的那些没有存储在所述高速缓存器中时,从所述压缩图像帧缓冲器中取得未压缩的图像帧数据中被选择的那些;或者 所述方法进一步包括: 将未压缩的视频帧数据存储在高速缓存器中; 当未压缩的视频帧数据中被选择的那些被存储在所述高速缓存器中时,从所述高速缓存器中取得未压缩的视频帧数据中被选择的那些;以及 当未压缩的视频帧数据中被选择的那些没有存储在所述高速缓存器中时,从所述压缩视频帧缓冲器中取得未压缩的视频帧数据中被选择的那些。
【文档编号】H04N19/146GK103945223SQ201410102524
【公开日】2014年7月23日 申请日期:2014年1月22日 优先权日:2013年1月22日
【发明者】I·莱克索诺, E·扬, E·鸿, 杨奇, 郭欣, 趙勗罡 申请人:Vixs系统公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1