CN101061642A - 置换延迟 - Google Patents
置换延迟 Download PDFInfo
- Publication number
- CN101061642A CN101061642A CN 200580039606 CN200580039606A CN101061642A CN 101061642 A CN101061642 A CN 101061642A CN 200580039606 CN200580039606 CN 200580039606 CN 200580039606 A CN200580039606 A CN 200580039606A CN 101061642 A CN101061642 A CN 101061642A
- Authority
- CN
- China
- Prior art keywords
- data
- compression
- video
- address
- roze
- 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
Links
Images
Abstract
一种系统和方法(图1),其中,即使当简单寻址将数据设置于非终点、可置换的位置时,也可以通过简单地址计算将多个零流消除(ROZE)数据区或其它压缩数据(图2)恢复到单个密集数据阵列。在不增加该算法成本的情况下,在随后的计算步骤中重新排列数据。
Description
相关申请
本申请要求以下临时申请的优先权:2004年9月21日提交的题为RATE CONTROL WITH VARIABLE SUBBANDQUANTIZATION的美国专利申请第60/612,311号的临时申请;2004年9月22日提交的题为SPLIT TABLE ENTROPY CODING的美国专利申请第60/612,652号的临时申请;2004年9月22日提交的题为PERMUTATION PROCRASTINATION的美国专利申请第60/612,651号的临时申请;2004年10月12日提交的题为MOBILEIMAGING APPLICATION,DEVICE ARCHITECTURE,ANDSERVICE PLATFORM ARCHITECTURE的美国专利申请第60/618,558号的临时申请;2004年10月13日提交的题为VIDEOMONITORING APPLICATION,DEVICE ARCHITECTURES,ANDSYSTEM ARCHITECTURE的美国专利申请第60/618,938号的临时申请;2005年2月16日提交的题为MOBILE IMAGINGAPPLICATION,DEVICE ARCHITECTURE,AND SERVICEPLATFORM ARCHITECTURE AND SERVICES的美国专利申请第60/654,058号的临时申请;其全部内容结合于此以作参考。
本申请为2004年9月16日提交的题为MULTIPLECODEC-IMAGER SYSTEM AND METHOD的美国专利申请第10/944,437号的部分延续,其现在是2005年5月19日公开的美国公开第US2005/0104752号;2003年4月17日提交的题为SYSTEM,METHOD AND COMPUTER PROGRAM PRODUCT FOR IMAGEAND VIDEO TRANSCODING的美国专利申请第10/418,649号的部分延续,其现在是2003年11月6日公开的美国公开第US2003/0206597号;2003年4月17日提交的题为WAVELETTRANSFORM SYSTEM,METHOD AND COMPUTER PROGRAMPRODUCT的美国专利申请第10/418,363号的部分延续,其现在是2003年10月23日公开的美国公开第US2003/0198395号;2003年5月28日提交的题为PILE-PROCESSING SYSTEM AND METHODFOR PARALLEL PROCESSORS的美国专利申请第10/447,455号的部分延续,其现在是2003年12月11日公开的美国公开第US2003/0229773号;2003年5月28日提交的题为CHROMATEMPORAL RATE REDUCTION AND HIGH-QUALITY PAUSESYSTEM AND METHOD的美国专利申请第10/447,514号的部分延续,其现在是2003年12月25日公开的美国公开第US2003/0235340号;2004年9月29日提交的题为SYSTEM AND METHOD FORTEMPORAL OUT-OF-ORDER COMPRESSION AND MULTI-SOURCE COMPRESSION RATE CONTROL的美国专利申请第1O/955,240号的部分延续,其现在是2005年5月19日公开的美国公开第US2005/0105609号;2005年9月20日提交的题为COMPRESSION RATE CONTROL SYSTEM AND METHOD WITHVARIABLE SUBBAND PROCESSING(代理人文档第74189-200301/US号)的美国专利申请第____号的部分延续;其全部内容结合于此以作参考。本申请还将2004年11月30日出版的题为MULTIPLE CODEC-IMAGER SYSTEM AND METHOD的美国专利第6,825,780号;2005年1月25日出版的题为SYSTEMAND METHOD FOR A DYADIC-MONOTONIC(DM)CODEC的美国专利第6,847,317号;以及2005年9月21日提交的题为MULTIPLE TECHNIQUE ENTROPY CODING SYSTEM ANDMETHOD(代理人文档第74189-200401/US号)的美国申请第____号的全部内容结合于此以作参考。
技术领域
本发明涉及数据压缩,更具体地,涉及改变在数据压缩的各个级之间传输的数据的排序。
背景技术
直接数字化的静态图像和视频需要许多“位”。因此,通常为了存储、传输、和其它应用而压缩图像和视频。大多数的图像和视频压缩器共享一个具有各种变化的基本结构。如图1所示,该基本结构包括三个级:变换级、量化级、以及熵编码级。
视频“编解码器”(压缩器/解压器)用于通过在图像质量、处理器要求(即,成本/功率消耗)、和压缩比率(即,结果数据速率)之间进行平衡来降低数据通讯流所需的数据速率。当前可用的压缩方法提供了不同的折衷(trade-offs)范围,并产生了多个编解码方案,其中,每个方案被最优化以满足特定应用的需要。
视频压缩器中变换级的目的在于收集源图片的能量(energy)和信息以通过利用图片或序列内局部相似和图案来将其转换为最大可能的压缩形式。压缩器被设计为在“典型”输入上很好地工作,而忽略掉压缩“随机的”或“不合理的”输入对其造成的故障。
诸如MPEG-2的许多图像压缩和视频压缩方法使用离散余弦变换(DCT),作为变换级。
诸如MPEG-4结构的一些较新的图像压缩和视频压缩方法使用各种小波变换,作为变换级。
小波变换包括以一维或多于一维的形式重复应用小波滤波器对到数据集。对于图像压缩,可以使用2D小波变换(水平和垂直)。对视频数据流来说,可以使用3D小波变换(水平、垂直、和时间)。
现有技术图2示出了当前可用的各种压缩算法中的折衷实例100。如图所示,这种压缩算法包括基于小波的编解码器102和基于DCT的编解码器104,它们包括不同的MPEG视频分配方案。
与基于DCT的编解码器算法不同,2D和3D小波因其赏心悦目的图像质量和灵活的压缩比被高度评价,促使JPEG委员会采用小波算法作为其JPEG2000静态图像标准。不幸地是,相对于DCT的可选方案,大多数的小波实施使用非常复杂的算法,需要很好的处理能力。另外,小波对于时间压缩提出了特别地挑战,使得3D小波尤其困难。
由于这些原因,相对于诸如MPEG的高容量工业标准编解码器,小波没有提供成本竞争性的优势,因此,仅在小型应用中被采用。因此需要一种商业上可行的3D小波实施,其针对三个主要市场阶段的低功耗和低成本进行最优化。
例如,小型摄像机越来越普及,并且数字化处理其信号的优势是明显的。例如,一些国家中蜂窝电话市场的最快发展阶段是具有图像和视频片断功能的电话阶段。大多数数字静态相机具有视频片断功能。在移动无线手机市场,这些静态图片和视频短片的传输需要更大的装置电池容量。现有的视频编码标准和数字信号处理器给电池带来更大压力。
另一个新的应用是个人视频记录器(PVR),其允许观众暂停直播TV和定时转换节目。这些装置使用数字硬盘存储器以记录视频,并要求对来自电缆的模拟视频进行视频压缩。为了提供如画中画和边看边录的功能,这些单元需要多个视频压缩编码器。
另一个正在发展的应用领域是用于监视和安全视频的数字视频记录器(DVR)。待存储的输入视频的每个信道也都需要压缩编码。为了利用方便、灵活的数字网络传输结构,经常在摄像机内使视频数字化。即使具有较旧的复杂记录器结构,也使用多信道压缩编码器。
当然,大量的其它市场可从对低功耗和低成本最优化的商业上可行的压缩方案中获利。
时间压缩
视频压缩方法通常比分别压缩视频序列的每个图像做得更多。视频序列中的图像经常与时间上邻近的序列中的其它图像相似。考虑到这种相似,可以改进压缩。这种做法称为“时间压缩”。用于MPEG的一种传统的时间压缩方法为运动搜索。在这种方法中,正在被压缩的图像的每个区均用作图样,来搜索前一图像中的范围。选择最接近的匹配区,并且通过只压缩与该匹配区不同的区来表示该区。
时间压缩的另外一种方法是使用小波,正如在空间(水平和垂直)方向上所使用的,但是现在对两个或多个图像的相应像素或系数进行操作。这被称作3D小波,用于这三个“方向”水平、垂直、和时间。
使用上述两种方法中的一种或者任一其它方法的时间压缩将图像和前一图像一起压缩。通常,在时间上,将大量图像一起压缩。这个图像集称为图片组或GOP。
许多小波压缩技术以及其它压缩技术,将原始图像分割成多个块并且分别变换每个块。在一些与本发明相关的变换中,对块执行变换的结果是包括多个子频带的数据。各个子频带典型地具有完全不同的统计特征,因此经常需要将它们区分开,以用于后续的不同处理。另外,为了便于后续处理,包含统计上相似的数据的子频带在后续处理中经常被组合到一起。作为在变换结果中有序的(或邻近的位置)结果数据,经常在应用的压缩技术(例如,通过统计相似性对子频带的分组)中通过后续操作的操作无序地(或在单独的位置)存储。
零流(Run-of-Zeros)消除(ROZE)
许多压缩方法具有一个或多个步骤,其中,将一些数据的表示从将每个值都清楚地表示出来的“密集”表示转变为零值不清楚地表示而是以某种方式模糊地表示的“稀疏”表示。密集到稀疏变换的实例是“零流消除”(ROZE)或流编码(run-coding)。这是当数据体需要具有许多零值时的典型操作,这样通过对这些零进行计数并记录邻近的零的数量而不是单独地列出每个零,来更紧凑地表示这些零。
当在这种压缩数据的解码过程中遇到ROZE数据时,需要进行逆变换:ROZE数据用于以所有的零和其它清楚地表示以用于进一步处理的值填充阵列。
在并行处理器或其它专用实施平台上高效地进行这些处理可能需要将相同数据阵列的部分变换到几个不同的ROZE区中,每个ROZE区均表示该数据的一部分(例如,每个ROZE区均表示变换后的图像的一个子频带)。以这种方式分隔的部分在存储器内是交错的。
零流消除可以通过“堆积法”来实施,如未审查的美国专利申请第10/447,455号、公开第2003/0229773号中所述,其结合于此以作参考。
撤销ROZE
当解码或展开处理过的且存储在ROZE区中的数据阵列时,可在计算出流长度时每次一个地生成这些零。可选地,整个目标区域可以是“为零的”,随后可以通过简单地从该数据中的一个非零值跳到下一非零值的方法来插入非零值。当每个非零值被添加到存储器中时,这可以通过使用流长度来增加存储器地址中的地址或指针完成。在许多计算结构中,将存储区设置为零是特别高效的,因此,刚刚描述的可选方法是有优势的。可称为线性展开的实例程序如下:
步骤1
将地址A预置到密集阵列的开头。(密集阵列表示这样的阵列,其中基本上每个或每个数据元素被清楚有序地表示)。
初始化密集阵列,以使其包含所有零值。
步骤2
如果存在任意ROZE数据,则取下一个零流长度L;将A加L。
否则,结束。
步骤3
从ROZE区中取下一非零数据项,并且把它存入地址A。
跳转到步骤2。
但是,以上实例程序在密集阵列是存储器的单一连续范围(即,不包含地址范围内的间隙)的情况下才是根本有效的。
当阵列的数据被变换到几个ROZE区而不是单个区时,地址A的计算将变得非常复杂;以上“将A加L”的简单步骤不再是足够的。相反,地址计算必须通过考虑到地址序列中的间隙的其它方法来完成。这种地址计算可以通过两个或三个或更多个因子来减慢展开过程(即,撤销ROZE步骤)。这种减慢对于非并行处理平台可能很显著,而当在并行处理平台上完成展开时可变得甚至更加显著。
从而,在压缩过程的特定设计中,数据被压缩或处理为表达式,其中,线性展开生成包含原始数据(或原始数据的近似值)的复原的阵列,但是其中,数据项的顺序与原始阵列中数据项的顺序不匹配。把压缩数据展开到其顺序与原始数据匹配的状态,迄今为止还需要昂贵的计算过程。然而,本发明的特定方面提供了用于将压缩数据展开到它的原始顺序的高效计算方法。实际上,可以通过使用线性展开的高效技术作为该操作的主要部分来达到这个目的。
附图说明
图1示出了根据一个实施例用于压缩/解压缩数据的方框图。
图2示出了在当前可用的各种压缩算法中的折衷实例。
具体实施方式
图1示出了根据一个实施例用于压缩/解压缩数据的方框图200。这个方框图200中包括编码器部201和解码器部203,它们一起构成“编解码器”。编码器部201包括用于压缩数据以存储到文件208中的变换模块202、量化器204、以及熵编码器206。为了执行这种文件208的解压缩,解码器部203包括用于解压缩数据以便应用(即,查看视频数据的情况等)的熵解码器210、反量化器212、以及逆变换模块214。在使用中,出于去相关的目的,变换模块202对多个像素(在视频数据的情况下)执行可逆变换。接下来,量化器204实现变换值的量化,此后,熵编码器206负责对量化的变换系数的熵编码。
通过每次一个地对每个ROZE区使用以上简单方法(即,线性展开),对除第一ROZE区以外的所有区执行跳过“初始化A”操作撤销阵列中的ROZE数据,我们可以克服在本发明背景技术中描写的困难。该展开生成正确的非零值以及正确的零值数量,但是它们被放置在密集阵列中的错误地址处。每个数据项的正确地址和从该简化操作中生成的地址之间的关系为“置换”。
幸运地是,在一些算法中,撤销ROZE步骤之后的操作进行“逐点”(即,逐项)工作,并且对项的次序或位置不敏感。当碰到这种情况时,我们可以进行下一步骤而不用首先将数据重新排列到正确位置,因为它们的位置对该步骤不重要。
这一步骤的实际实例为“反量化”,众所周知的图像和视频解压缩步骤是把每个数据项乘以已知因子,以把它恢复到用于进一步计算的正确大小范围。如图1所示,这一步骤可出现在反量化器212和解码器203的逆变换214之间。
这一步骤的另一实际实例是时间反小波滤波器操作。在这种情况下,组合两个数据项,但是两个数据项来自GOP的连续图像中的对应位置,通过对每个数据项进行撤销ROZE操作使它们以相同的方式重新排列。因此,时间反小波滤波器的输入在彼此对应的相同位置上,并且可以任意顺序处理。
现在将数据重新排列到正确位置的操作可以与下述独立定位的处理相结合。注意,这个重排列是“免费”进行的,这是因为没有进行额外的数据读取和存储;只是地址不同,并且它们完全可以在编译时间或芯片设计时间被预先确定。
以这种方式生成用于读取和存储数据的地址序列。考虑密集阵列;每个位置的数据属于该阵列的某些(可能不同)位置。这定义了阵列地址的“置换”。众所周知,每个置换可以被分解或因子分解为“循环”,即,置换在相同的位置开始和结束。任一具有实际上属于此处的数据的位置是长度为1的循环。任一具有彼此的数据的位置对形成长度为2的循环等等。
因此,根据本发明的一些部分的特定方面,假设我们已知置换,我们可以提供该置换的一套完整的循环并且使用该套完整的循环,如下:
算法1
步骤1
选择还没有遍历的循环。如果不存在,则停止。
步骤2
从该循环中的第一位置读取数据。对该数据执行计算步骤,并调用结果R。
如果该循环的长度为1,则将R存储到该地址并跳转到步骤1。
步骤3
如果循环已完成,则跳转到步骤4。
否则,从该循环中的下一位置读取数据。
将R存储到当前(刚读取的)位置。
对该(刚读取的)数据执行计算步骤,并调用结果R。
跳转到步骤3。
步骤4
将R存储到该循环的第一位置。跳转到步骤1。
因此,可以看出,使用循环项内的置换表达式来操作在算法1中阐述的本发明的过程。对于每个循环其
解开
算法1具有几个检测和分支点。这些会降低许多计算引擎的执行效率。
注意,当编译程序或生成芯片布局时,可以一次性地完成步骤1中的选择以及步骤2和步骤3中的检测,使得程序呈“直线”形式并且这些检测不花费执行时间。核查预定的可选方法是将以上算法1视为编译时间操作,其中,读取、存储、和计算操作在运行时间生成待执行的代码。这些考虑产生算法2,其阐述和表示了具有比算法1更高的计算效率的本发明的另外的方面。
算法2(编译)
步骤1
选择还未遍历的循环。如果不存在,则停止。
步骤2
生成代码,以从该循环中的第一位置读取数据。生成代码,以对该数据执行计算步骤,并调用结果R。
如果该循环的长度为1,则生成代码,以将R存储到该地址并跳转到步骤1。
步骤3
如果该循环已完成,则跳转到步骤4。
否则,生成代码,以从该循环中的下一位置读取数据。生成代码,以将R存储到当前(刚读取的)位置。生成代码,以对该(刚读取的)数据执行计算步骤,并调用结果R。
跳转到步骤3。
步骤4
生成代码,以将R存储到该循环的第一位置。跳转到步骤1。
算法2生成不具有检测和分支的直线代码。这种代码能在处理器上,特别是那些具有并行操作(例如,流水线技术)的处理器,最高效地执行。
因此,可以看出,算法2将用于基于给出的特定置换的已知特征来生成直线程序。直线程序在运行时将读取、处理(包括诸如反量化或逆时间变换的处理)、以及存储以通过置换循环确定的正确顺序展开的数据。
还存在其它流编码方法,用于除了零以外,还对其它值计数。上述方法可以被轻松地扩展,来用这种方法操作。
出于某种原因,算法1和2同样有效地应用于以预定方式在存储器中编码的数据,而不仅通过撤销ROZE。例如,MPEG块的对角线扫描是这种编码。不论何时以“逐点”方式对这种编码数据进行操作,我们可以将反编码与此处示出的逐点操作相结合,以节省计算时间。
算法1和2同样有效地应用于通过同样的置换方式编码的多个数据集的情况。为了并行计算这些数据集,两种算法的每个步骤都将使用每个数据中的相同对应地址来读取、计算、或存储来自每个数据集的数据。无论是彼此独立的计算,还是包含来自一些或所有数据集的对应数据项的组合的计算,都可以进行这种操作。
根据一个方面,本发明提供了一种方法,其中,即使当简单寻址将数据设置到非终点、可置换的位置时,也可以通过简单的地址计算把多个ROZE数据区恢复到单独的密集数据阵列。在不增加该算法成本的情况下,在随后的计算步骤中重新排列数据。
虽然以上为本发明优选实施例的完整描述,但可以使用不同的替换、修改和等同物。因此,以上描述不应该被看作是对本发明的范围的限制,本发明的范围由所附权利要求限定。
Claims (1)
1.一种在数据阵列中存储数字图像数据的方法,包括:
以与基础图像相关的原始顺序序列来接收数字图像数据;
在第一时间将所述数据存储到数据阵列的地址中,所述地址具有与所述数据的所述原始顺序序列相关的置换序列;
恢复来自所述数据阵列的所存储的数据;
对所恢复的数据执行至少一种操作;以及
在随后的时间,将所述数据存储到所述数据阵列的所述地址中,其中,在所述的随后的存储步骤期间,所述数据被存储到具有所述原始顺序序列的地址中。
Applications Claiming Priority (8)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US61265104P | 2004-09-22 | 2004-09-22 | |
US60/612,652 | 2004-09-22 | ||
US60/612,651 | 2004-09-22 | ||
US10/955,240 | 2004-09-29 | ||
US60/618,558 | 2004-10-12 | ||
US60/618,938 | 2004-10-13 | ||
US60/654,058 | 2005-02-16 | ||
US11/232,725 | 2005-09-21 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101061642A true CN101061642A (zh) | 2007-10-24 |
Family
ID=38783530
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200580037714 Pending CN101052972A (zh) | 2004-09-22 | 2005-09-22 | 多技术熵编码系统和方法 |
CN 200580039606 Pending CN101061642A (zh) | 2004-09-22 | 2005-09-22 | 置换延迟 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200580037714 Pending CN101052972A (zh) | 2004-09-22 | 2005-09-22 | 多技术熵编码系统和方法 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN101052972A (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RS64604B1 (sr) * | 2011-06-16 | 2023-10-31 | Ge Video Compression Llc | Entropijsko kodiranje razlika vektora kretanja |
CN103745443B (zh) * | 2014-01-10 | 2017-06-13 | 北京优纳科技有限公司 | 提高图像质量的方法和设备 |
CN104392725A (zh) * | 2014-12-02 | 2015-03-04 | 中科开元信息技术(北京)有限公司 | 多声道无损音频混合编解码方法及装置 |
-
2005
- 2005-09-22 CN CN 200580037714 patent/CN101052972A/zh active Pending
- 2005-09-22 CN CN 200580039606 patent/CN101061642A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
CN101052972A (zh) | 2007-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101438591B (zh) | 灵活量化 | |
CN101243459B (zh) | 宽范围系数的自适应编码和解码 | |
JP5027936B2 (ja) | 適応スキャン順序付けのための方法、記録媒体、プログラム、及び処理装置。 | |
US6965700B2 (en) | Embedded and efficient low-complexity hierarchical image coder and corresponding methods therefor | |
CN1245029C (zh) | 视频序列代码转换的运动矢量外推法 | |
CN101601307B (zh) | 用于有效地编码和解码电子信息的系统和方法 | |
CN1951120A (zh) | 为动态选择的小尺寸或全尺寸播放提供独立编码链的视频编码系统 | |
CN104272735A (zh) | 针对视频的上下文自适应二进制熵编码的变换系数编码 | |
WO2007058296A1 (ja) | 符号化装置および方法、復号装置および方法、並びに、伝送システム | |
CN103404141A (zh) | 使用变换的视频编码和解码 | |
US9077960B2 (en) | Non-zero coefficient block pattern coding | |
CN1777285A (zh) | 视讯/影像处理装置以及视讯/影像处理方法 | |
CN1547708A (zh) | 以无损方式对数字图像和音频数据解码的系统和方法 | |
CN1893576A (zh) | 数字数据接收器以及构建幻灯节目的方法 | |
CN1976475A (zh) | 影像处理装置与方法 | |
CN1777286A (zh) | 影像处理装置及方法 | |
CN1968420A (zh) | 应用于影像译码器与编码器的影像处理方法 | |
CN101061642A (zh) | 置换延迟 | |
CN1224273C (zh) | 视频编码器和记录设备 | |
US20060072834A1 (en) | Permutation procrastination | |
Bruns et al. | Sample-parallel execution of EBCOT in fast mode | |
CN1652600A (zh) | 使用视频数据的运动向量信息的变换的扰码设备和方法 | |
CN1241394C (zh) | 基于mpeg标准用于解码编码的视频数据的方法和装置 | |
CN2648738Y (zh) | 带有视频水印的视频转码器 | |
CN101061637A (zh) | 具有可变子频带处理的压缩比控制系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20071024 |