CN101136901A - 基于帧的数据的可变分辨率处理 - Google Patents
基于帧的数据的可变分辨率处理 Download PDFInfo
- Publication number
- CN101136901A CN101136901A CNA2007101416620A CN200710141662A CN101136901A CN 101136901 A CN101136901 A CN 101136901A CN A2007101416620 A CNA2007101416620 A CN A2007101416620A CN 200710141662 A CN200710141662 A CN 200710141662A CN 101136901 A CN101136901 A CN 101136901A
- Authority
- CN
- China
- Prior art keywords
- transition
- frame
- window function
- piece
- win
- 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.)
- Granted
Links
Images
Abstract
本发明涉及基于帧的数据的可变分辨率处理。提供了用于处理基于帧的数据的系统、方法和技术。获得数据帧、在所述帧中发生瞬变的指示、以及所述瞬变在所述帧中的位置。根据所述瞬变的指示,为所述帧设定块大小,从而有效地在所述帧中定义多个大小相等的块。另外,根据所述瞬变的位置,为所述多个大小相等的块中的不同的块选择不同的窗函数,并且通过使用所选择的窗函数来处理所述数据帧。
Description
本申请要求于2006年8月18日提交的名为“Variable-ResolutionFiltering”的美国临时专利申请序列号60/822,760的优先权,将该申请以引用的方式并入本文作为此处的详细描述。
技术领域
本发明涉及信号处理,比如音频信号的处理。
背景技术
许多传统的信号处理技术是基于帧的。在这些技术中,将数据流分割为离散的帧,并且通常以相当统一的方式处理每个这样的帧中的数据。在一个示例中,将输入音频信号分割为相等长度的帧。然后,以特定的方式处理每个帧。要为每个帧确定的公共处理参数是块长度,或者等同地,为处理目的而应将帧分割为多少个大小相等的块。块长度决定了初始域(例如,对音频信号为时域)和频(或其它变换)域中的分辨率。更具体地,越短的块在初始域提供越高的分辨率而在频域中提供越低的分辨率。
音频信号经常由多个准稳态片段(episode)构成,其每个都包括被显著瞬变所打断的多个音调频率成分。这样,这种音频信号的一个单独帧经常包括一些与瞬变对应的采样,但是大多数采样与该信号的准稳态部分对应。
因为音频信号中的瞬变能够短到只有几个采样,所以在被检测到包含瞬变的帧内使用的块的大小理想情况下应该只是几个采样,从而滤波器的时间分辨率与该瞬变匹配。不幸的是,在同一帧内使用不同的块大小通常是不实际的。使得在具有被检测到的瞬变的帧内的所有块仅为几个采样的宽度会导致在该帧内的频率分辨率极低,因此,对该帧内的其它采样是不合适的;即,这些其它的采样,只要它们离该瞬变足够远,就是准稳态的并因此要使用高的频率分辨率来更好地处理。这个矛盾通常导致一种折衷的块大小,其既不是对于瞬变采样最优也不是对于同一帧中的准稳态采样最优。
图1中示出了用于处理输入采样12的帧的传统系统的框图。首先,在瞬变检测器14中分析采样12,以判定该帧是否包含瞬变。
根据该检测,在模块16选择窗函数。在这点上,音频编码算法经常使用具有不同时间-频率分辨率的滤波器组。一种常用的滤波器组是MDCT(改进型离散余弦变换),其具有能够由下述基本函数描述的脉冲响应:
其中k=0,1,...,M-1;n=0,1,...,2M-1;w(n)是长度2M的窗函数。参照,例如,H.S.Malvar,“Signal Processing with Lapped Transfroms”,ArtechHouse,1992(这里参照Malvar)。
在这种情况下,时间-频率分辨率由M决定,在此,M有时被称为块大小。大的M意味着低的时间分辨率但是高的频率分辨率,而小的M意味着高的时间分辨率和低的频率分辨率。
为了实现模块16(如图1所示),传统的编码算法通常使用两个块大小。如果在模块14中没有检测到瞬变,则使用大的块大小,其被实现为覆盖整个帧的单个块。或者,如果检测到瞬变,则使用小的块大小,其被实现为覆盖该帧的预定数量的块。
与这两个块大小相对应的主窗函数分别是是窗函数30(在图2中示出并标注为WIN_LONG_LONG2LONG)和窗函数40(在图3中示出并标注为WIN_SHORT_SHORT 2 SHORT)。为了使得MDCT能够在这两个主窗函数之间正确地切换,完全重构条件(例如,如在Malvar中所述)要求使用三个过渡窗(transition window)函数,例如:窗函数50(图16中示出并标注为WIN_LONG_LONG2SHORT)、窗函数60(图5中示出并标注为WIN_LONG_SHORT2LONG)、和窗函数70(图6中示出并标注为WIN_LONG_SHORT2SHORT)。需要注意,所有这三个过渡窗函数50、60和70与长块(即,覆盖整个帧的块)结合使用。
这样,在传统的技术中,将一个帧分配给单独一个长块(并与长窗口30、50、60或70对应)或一系列相同的短块(并与相同的短窗口40对应)。因为每个块都比块与块之间的间隔要长,导致了长窗口和短窗口的交叠的序列,就如图7中所示的窗函数序列80,其中,每个窗口都覆盖当前块的M个新采样以及先前块的M个采样。在该图中,为了进行参照,与窗函数30、40、50、60或70对应的每个块的中间分别标明为31、41、51、61或71。
需要注意,这种传统的技术不仅基于模块14对当前帧所进行的检测,而且还基于对于先前帧和后续帧所进行的相同检测,来为不包含瞬变的帧选择窗函数。即,窗函数50、60和70用作瞬变帧和非瞬变帧之间的过渡窗函数。
返回到图1,然后,在模块17中,将在模块16中所选择的窗函数应用(对瞬变帧则多次应用)到当前帧的输入采样12。也就是说,对于每个块,将采样值与对应于该块的窗函数值相乘,以获得一组加权值。
然后,使用所选择的窗函数在模块19中处理这些加权值,以提供输出值22。在模块19中执行的处理的具体类型能够根据所希望的应用而变化。例如,对于音频信号,处理可以包括分析、编码、和/或增强。
发明内容
本发明通过在检测到包含瞬变的帧内使用多个不同窗函数,以及其他内容,来解决这个问题和其它问题。在优选实施例中,本发明在具有被检测瞬变的单个数据帧内提供至少两级分辨率。更优选的是,不改变帧内的块大小而提供该多种分辨率。
因此,例如,能够在瞬变的附近使用更高的分辨率而在帧的其它部分使用更低的分辨率。需要注意,未限定的术语“分辨率”这里指的是初始(例如,时间)域中的分辨率。因为频(或其它变换)域中的分辨率与初始域中的分辨率成相反的变化,在发明的这些实施例中,为帧中不包含瞬变的部分提供了更高的频率(或其它变换域)分辨率。此外,通过保持块大小不变,通常能够在不使处理结构变复杂的情况下获得前述优点。
这样,在一方面,本发明的目的是处理基于帧的数据,其中,获得数据帧、在所述帧中发生瞬变的指示、以及所述瞬变在所述帧中的位置。根据所述瞬变的指示,为所述帧设定块大小,从而有效地在所述帧中定义多个大小相等的块。另外,根据所述瞬变的所述位置,为所述多个大小相等的块中的不同块选择不同的窗函数,并且通过使用所选择的窗函数来处理所述数据帧。
在优选实施例中,所述块相互交叠,并且每个窗函数也与每个相邻的窗函数交叠,优选地是采用满足完全重构条件的方式。前述性质优选地用于帧中的相邻的块和窗函数,以及在相邻帧中的相邻的块和窗函数。
在任何情况下,优选地将窗函数选择为,在所述多个大小相等的块中所识别出的包含瞬变的块中,提供更高的分辨率。而且,这优选地通过在所识别出的块中使用在所述多个窗函数中的比其它窗函数更窄的瞬变窗函数来实现(例如,通过将在该块中、但是在该瞬变窗函数外部的采样清零)。换而言之,虽然在该帧中的块的宽度保持不变,但是如果需要,则这些块中的窗函数的宽度能够变化,以便为该帧的每个块获得期望的分辨率折衷(例如,时间/频率)。
在这点上,能够用多种不同的方法来定义窗函数的宽度。例如,能够将其定义为窗函数中非零部分的长度、窗函数中高于特定阈值的部分的长度、或窗函数中包含有该窗函数的某个特定百分比的内容(例如,能量)的部分的长度。
因此,能够通过压缩或扩展标准形状,然后将在块中但不包括在该压缩形状中的任何采样清零,来改变窗函数的宽度。或者,能够通过使用不同的形状并且一些形状的更多能量集中在更小的部分,来改变宽度。
在另一方面,本发明的目的是处理基于帧的数据,其中,获得数据帧、在所述帧中发生瞬变的指示、以及所述瞬变在所述帧中的位置。选择在所述帧中使用的不同的窗函数,以便在包含所述瞬变的区域内提供更高的分辨率,并且通过使用所选择的窗函数来处理所述数据帧。
前述概括仅仅是为了提供本发明的特定方面的简单描述。通过结合附图并参照权利要求和以下优选实施例的详细描述,能够获得对本发明的更完全的理解。
附图说明
图1是用于基于瞬变的存在而改变在数据帧中的时间分辨率的传统系统的框图;
图2示出了当具有长块大小的帧夹在两个也具有长块大小的帧之间时所用的传统窗函数;
图3示出了用于具有短块大小的帧的传统窗函数;
图4示出了当具有长块大小的帧的先前帧具有长块大小,后续帧具有短块大小时,用于该帧的传统过渡窗函数;
图5示出了当具有长块大小的帧的先前帧具有短块大小,后续帧具有长块大小时,用于该帧的传统过渡窗函数;
图6示出了当具有长块大小的帧的先前帧具有短块大小,后续帧具有短块大小时,用于该帧的传统过渡窗函数;
图7示出了一个示例传统窗函数序列,其中,包含瞬变的帧在每个边上与两个不包含瞬变的帧相邻接;
图8示出了根据本发明的代表性实施例的简短窗函数WIN_SHORT_BRIEF2BRIEF;
图9示出了根据本发明的代表性实施例的过渡窗函数WIN_SHORT_SHORT2BRIEF;
图10示出了根据本发明的代表性实施例的过渡窗函数WIN_SHORT_BRIEF2SHORT;
图11示出了根据本发明的代表性实施例的过渡窗函数WIN_LONG_LONG2BRIEF;
图12示出了根据本发明的代表性实施例的过渡窗函数WIN_LONG_BRIEF2LONG;
图13示出了根据本发明的代表性实施例的过渡窗函数WIN_LONG_BRIEF2BRIEF
图14示出了根据本发明的代表性实施例的过渡窗函数WIN_LONG_SHORT2BRIEF;
图15示出了根据本发明的代表性实施例的过渡窗函数WIN_LONG_BRIEF2SHORT;
图16是示出用于根据本发明的代表性实施例用于选择窗函数的技术的流程图;
图17示出了根据本发明的第一示例窗函数序列;
图18示出了根据本发明的第二示例窗函数序列;
图19示出了根据本发明的第三示例窗函数序列;以及
图20示出了根据本发明的第四示例窗函数序列。
具体实施方式
本发明的主要目的是改进传统系统的窗函数选择组件16。本发明的一个特征是引入新的“简短窗函数(brief window function)”,例如,如图8中所示的窗函数100。与传统的窗函数WIN_SHORT_SHORT2SHORT40类似,这个被标注为WIN_SHORT_BRIEF2BRIEF的窗函数100目的是用于短块中。实际上,如以下详细所述,在本发明的优选实施例中,窗函数WIN_SHORT_BRIEF2BRIEF100目的是用在与窗函数WIN_SHORT_SHORT2SHORT 40相同的帧中。
然而,与传统窗函数不同,简短窗函数100用于采用多个首部和尾部的零权重,对其所占据的块的整个长度(图8中,具有端点102和103)的仅仅中心部分进行信号整形,以便提高该部分的时间分辨率。例如,在短块的长度等于256个采样的情况下,简短窗函数100优选地在中心160个采样中(在这里其还是对称的)为非零,并且在这些采样中的最初16个和最后16个与和简短窗函数100相邻的各个过渡窗函数交叠,并且该窗口的最初48个采样和最后48个采样为零权重。
在本发明的优选实施例中,简短窗函数100仅用于在音频帧中检测到瞬变采样的情况中(例如,在包含瞬变采样的块中),而规则的短窗函数(例如,传统窗函数40),或者本发明所提供的多个新的过渡函数之一,用于在该帧中剩余部分的准稳态采样。与传统技术相比,这实现了以下可能性:
●能够使用明显更大的块大小,在这种情况下,准稳态采样的频率分辨率得到改善,而瞬变采样周围的时间分辨率保持不变。
●能够保持块大小不变,在这种情况下,准稳态采样的频率分辨率不变,而瞬变采样周围的时间分辨率得到改善。
●能够使用略微更大的块,在这种情况下,准稳态采样的频率分辨率略微得到改善,而瞬变采样周围的时间分辨率也略微得到改善。
使用任何以上选择,解决相矛盾的时间-频率分辨率需求的折衷方案得到改进。
为了便于结合其它两个主窗函数 (即,WIN_LONG_LONG2LONG 30和WIN_SHORT_SHORT2SHORT 40)使用窗函数100(例如,为了满足完全重构条件),优选地引入额外的过渡窗函数。这种过渡窗函数的示例如下。然而,首先需要注意本公开普遍使用的术语:
WIN_BlockLength_PriorWF2SubsWF,其中,BlockLength指示当前窗函数所占据的块的长度(例如,长或短),PriorWF标识在紧邻的先前块中的窗函数的类型(例如,长、短、或简短),而SubsWF标识在紧邻的后续块中的窗函数的类型(例如,长、短、或简短)。
过渡窗函数110(在图9中示出并标注为WIN_SHORT_SHORT2BRIEF)用于短块中,该短块紧邻在包含瞬变的另一个短块之前。即,该窗口紧邻在窗函数WIN_SHORT_BRIEF2BRIEF 100之前。
窗函数120(示于图10并标注为WIN_SHORT_BRIEF2SHORT)用于短块中,该短块紧邻在包含瞬变的另一个短块之后。即,该窗口紧邻在窗函数WIN_SHORT_BRIEF2BRIEF 100之后。
窗函数130(示于图11并标注为WIN_LONG_LONG2BRIEF)用于长块中,该长块紧邻在包含瞬变的另一个短块之前。即,该窗口覆盖了在包含瞬变的后续帧之前紧邻的帧,该瞬变正好在该后续帧的第一个块中。
窗函数140(示于图12并标注为WIN_LONG_BRIEF2LONG)用于长块中,该长块紧邻在包含瞬变的另一个短块之后。即,该窗口覆盖了在包含瞬变的先前帧之后紧邻的帧,该瞬变正好在该先前帧的最后的一个块中。
窗函数150(示于图13并标注为WIN_LONG_BRIEF2BRIEF)用于长块中,该长块夹在两个包含瞬变的短块之间。即,该窗口覆盖了在两个包含瞬变的帧之间的帧,在先前帧中的瞬变正好在其最后的一个块中,而后续帧中的瞬变正好在其第一个块中。
窗函数160(示于图14并标注为WIN_LONG_SHORT2BRIEF)用于长块中,该长块覆盖了在两个包含瞬变的帧之间的帧,在先前帧中的瞬变正好不在其最后的一个块中,而后续帧中的瞬变正好在其第一个块中。
窗函数170(示于图15并标注为WIN_LONG_BRIEF2SHORT)用于长块中,该长块覆盖了在两个包含瞬变的帧之间的帧,在先前帧中的瞬变正好在其最后的一个块内,而后续帧中的瞬变正好不在其第一个块内。
在每种情况下,窗函数优选地设计为使得其以满足完全重构条件的方式,在每个边上与相邻的窗函数交叠。可以使用的窗函数的具体示例给出如下。
图16是示出用于根据本发明的代表实施例选择窗函数的技术的流程图。一般地说,图16中所示出的整个过程会是自动的(例如,采用软件、固件、专用硬件、或者其组合来实现)。
最初地,在步骤202获得数据帧。在这点上,可以根据本发明的实施例处理多种不同类型的数据。在此公开中,经常假定该数据对应于音频信号。然而,这不应该看作是限制,而是所获得的数据可以表示任何其他物理现象,比如图像信号、视频信号、或者用于表示热、压力、辐射、运动、距离、任何生物功能、天气和/或任何地质现象的信号。
还需要注意,该数据帧可能已经由该数据的来源(例如,作为数据通过通信频道而被接收的地方)进行了定义。或者,例如,该数据可以以连续流进行接收,并被(例如,在内部)分割为帧以进行处理。在任何情况下,本处理尤其(虽然不是排它地)适用于被分割为各个帧的数据。如上面所示,在某些特定方面,基于帧的处理容许以统一的方式处理整个数据流中的各个部分。
在本发明的优选实施例中,每个帧有统一的块大小。在这点上,将块优选地定义为帧的基本信号处理单位。例如,在要将帧中的数据从原始域(例如,在音频情况下的时域)变换到(例如,在信号处理模块19)频域(例如,使用离散余弦变换或快速傅里叶变换),或者变换到由一组正交函数定义的任何其它变换域的情况下,优选地对每个块,分别执行该变换和在该变换域中的任何后续处理。
这样,在优选实施例中,帧可以由单个块覆盖,或者可以由多个大小相等的块覆盖。更优选地,如传统技术一样,仅有两种块大小:覆盖整个帧的大的块大小,和导致均匀分布在整个帧中的多个连续块的小的块大小。
此外,为了处理其它将发生的边界问题,如采用传统技术一样,本发明的块优选地相互交叠(例如,以满足完全重构条件的方式)。从概念上,能够将每个块视为包含随后要进行处理(例如,在模块19中)的多个核心采样和与这些核心采样相邻的多个边界采样。在优选实施例中,核心采样是在该序列中的新采样,而边界采样是来自先前块的历史采样。在另一方面,多个帧优选地连续并且不交叠。因此,在一个帧的开始处的块与先前帧交叠。对于由单个块覆盖的帧,该单个块覆盖整个先前帧。
除了获取数据帧本身之外,步骤202还获取瞬变指示符(例如,从瞬变检测器14)。在优选实施例中,所获得的瞬变指示符指示在当前帧中是否存在瞬变,如果存在,则指示其在帧中的位置。如果在当前帧中检测到一个以上的瞬变,则优选地获取(例如,由瞬变检测器14确定,然后将其从瞬变检测器14接收)每个这种瞬变的位置。为了简化解释,本公开有时不失一般性地假设在每个帧中只检测到单个瞬变(如果有的话)。
能够使用例如任何现有技术来执行实际的瞬变检测。通常,瞬变会将自我显示为在非常短的时间内在高频成分中的一个尖峰,因此,能够以此为基础而被检测到。在任何情况下,经常会指定一个阈值级别,在其之下的信号活动将不被视为是瞬变。
返回参考图16,在步骤203,判断在当前帧中是否存在瞬变。优选地,该判断直接基于瞬变检测器14所提供的信息。如果不存在瞬变,则处理进行到步骤205。如果存在一个瞬变,则处理进行到步骤210。
在步骤205,基于当前帧不包含瞬变的判定来设定块大小。在优选实施例中,在这种情况下,使用单个块覆盖整个帧。更优选的,该块包含在当前帧中的所有采样作为核心采样,以及来自一个(或多个)先前帧的部分或全部采样。示例性的块大小为2048个采样,即,1024个核心采样(帧大小也为1024个采样)和1024个来自先前帧的采样。
接下来,在步骤207,为当前帧选择窗函数(假定单个块覆盖整个帧)。在优选实施例中,此步骤包括,评估先前紧邻的和后续紧邻的帧/块。由于窗函数数量的增加,与传统技术相比,适当窗口序列的确定通常略微更为复杂,但是潜在的原理相对更直接。具体地,选择长窗函数,并且具体形状取决于在先前和后续帧中任何瞬变的存在及其位置。具体选择优选地如下进行:
先前帧 | 当前帧 | 下一个帧 |
无瞬变 | WIN_LONG_LONG2LONG30 | 无瞬变 |
WIN_LONG_LONG2SHORT40 | 有瞬变,但是不在第一个块中 | |
WIN_LONG_LONG2BRIEF130 | 有瞬变,在第一个块中 | |
有瞬变,但是不在最后的一个MDCT块中 | WIN_LONG_SHORT2LONG60 | 无瞬变 |
WIN_LONG_SHORT2SHORT70 | 有瞬变,但不是在第一个块中 | |
WIN_LONG_SHORT2BRIEF160 | 有瞬变,在第一个块中 | |
有瞬变,在最后的一个MDCT块中 | WIN_LONG_BRIEF2LONG140 | 无瞬变 |
WIN_LONG_BRIEF2SHORT170 | 有瞬变,但是不在第一个块中 | |
WIN_LONG_BRIEF2BRIEF150 | 有瞬变,在第一个块中 |
一旦在步骤207中选择了合适的窗函数,就在步骤17应用该窗函数(例如,如上所讨论的)。
在另一方面,如果在步骤203中判定在当前帧中存在瞬变,则处理进行到步骤210,在步骤中,将块大小设置为“小”。例如,对于1024个采样的帧大小而言,为256个采样的块大小,即,128个核心采样和与先前块交叠的128个采样(从而使得该帧被8个块覆盖)。虽然本实施例为这两种可能情形(瞬变/无瞬变)中的每一种都构想了单一块大小,但是需要注意,在其它的实施例中,可以基于任何期望的标准来选择不同的块大小,并且一个帧可以由多个不同大小的块构成。
在任何情况下,一旦确定了块大小,处理进行到步骤212,在该步骤中,为当前帧中的不同的块选择不同的窗函数。因为确知当前帧包含至少一个瞬变,所以WIN_SHORT_BRIEF2BRIEF窗函数100至少将会使用一次(在所确定的一个(或多个)位置处)。更优选地,根据如下原则,为当前帧的短块选择一系列简短窗函数和短窗函数:
●将,WIN_SHORT_BRIEF2BRIEF应用于发生瞬变的块中的采样,以便改善该块的时间分辨率。
●在包含瞬变的窗口之前紧邻的窗口的窗函数具有“...2BRIEF”形式的标号。
●在包含瞬变的窗口之后紧邻的窗口的窗函数具有“..._BRIEF2...”形式的标号。
因此,可以允许任何以下的窗函数组合:
瞬变前 | 瞬变 | 瞬变后 |
WIN_LONG_LONG2BRIEF | WIN_SHORT_BRIEF2BRIEF | WIN_LONG_BRIEF2LONG |
WIN_LONG_SHORT2BRIEF | WIN_LONG_BRIEF2SHORT | |
WIN_LONG_BRIEF2BRIEF | WIN_LONG_BRIEF2BRIEF | |
WIN_SHORT_SHORT2BRIEF | WIN_SHORT_BRIEF2SHORT | |
WIN_SHORT_BRIEF2BRIEF | WIN_SHORT_BRIEF2BRIEF |
在本公开中题目为“窗函数选择例程”的部分中,阐述了用C语言所编写的具体程序,用于在一个帧中放置窗函数。然而,一般而言,瞬变前的过渡窗函数是基于其自身的块长度(长或短)和在其之前紧邻的窗函数的性质(长、短、或简短),从以上表格的左边列中选出的。相似地,瞬变后的过渡窗函数是基于其自身的块长度(长或短)和在其之后紧邻的窗函数的性质(长、短、或简短),从以上表格的右边列中选出的。优选地,对于在当前帧中并非以下特性的每个块分配窗函数WIN_SHORT_SHORT2SHORT40:(i)瞬变前(在瞬变块之前紧邻的块)、(ii)瞬变(包含瞬变的块)、(iii)瞬变后(在瞬变块之后紧邻的块)、(iv)帧的第一个块、或(v)帧的最后的一个块。对于当前帧中的第一个块(假定其不是瞬变前块、瞬变块、瞬变后块)优选地分配窗函数WIN_SHORT_PriorWF2SHORT,对于当前帧中的最后的一个块(假定其不是瞬变前块、瞬变块、瞬变后块)优选地分配窗函数WIN_SHORT_SHORT2SubsWF。
一旦步骤212完成,过程就进行到步骤17,以应用所选择的窗函数。一旦步骤17完成,过程就返回到步骤202,以处理下一帧。
应当理解,图16中所示的流程图实际上主要是概念的。实际上,如上所述,一个帧的一个(或多个)窗函数的选择通常会受到在相邻帧中瞬变的存在及其位置的影响。因此,一个帧的一个(或多个)窗函数的选择,可以与一个或更多其它帧的一个(或多个)窗函数的选择同时执行。至少,对于当前帧的选择优选地要预想要被应用于后续帧的窗函数。
需要注意,图16中所示的流程图中的部分216能够用于代替在传统窗口选择模块16(图1中)中执行的相应处理。因此,本发明的技术典型地能够被容易地体现为对于传统系统的改进。
可以使用本发明的一种应用是音频编码/解码。在这种系统中,编码器典型地向解码器指明其用于编码当前帧的窗函数,从而使得解码器能够使用相同的窗函数来解码该帧。采用传统技术,要实现此目的,通常只需要向解码器传送一个窗函数索引,因为:
●对没有检测到瞬变的帧,只使用其中一种长窗函数,并且因此需要向解码器指明。
●对于包含一个或多个瞬变的帧,该帧中的所有窗函数都相同,即,WIN_SHORT_SHORT2SHORT40。图7中示出了这样的帧70(其夹在两个未检测到瞬变的帧之间)。
以上陈述对本发明的技术也成立。即,为了使解码器使用与编码器相同的窗函数来解码帧,只需要向解码器传送一个窗函数索引。这是因为:
●对于没有检测到瞬变的帧,本发明的技术也只需要向解码器指明使用长窗函数中的哪一个。
●对于检测到瞬变的帧,编码器只需向解码器指明在当前帧的第一个块中是否存在瞬变以及在下一个帧的第一个块中是否存在瞬变;然后,就能够使用在此所述的步骤,确定用于整个帧的窗函数序列。因为在优选实施例中,WIN_SHORT_BRIEF2BRIEF窗函数100用于具有瞬变的块,因此可以使用以下术语来传递此信息:
WIN_SHORT_CurrentSubs,其中,Current(SHORT=否,BRIEF=是)标识在当前帧的第一个块中是否存在瞬变,Subs(SHORT=否,BRIEF=是)标识在后续帧的第一个块中是否存在瞬变。例如,WIN_SHORT_BRIEF2BRIEF指示在当前帧的第一个块中以及后续帧的第一个块中存在瞬变, 而WIN_SHORT_BRIEF2SHORT指示在当前帧的第一个块中存在瞬变,而在后续帧的第一个块中不存在瞬变。
图17-20示出了根据本发明的示例性窗函数序列。在每个这样的序列中,具有至少一个瞬变的帧(由WIN_SHORT_BRIEF2BRIEF窗函数100所指示)在每个边上被两个不包含瞬变的帧所包围。然而,这些示例并非用于进行限定;每个都具有至少一个瞬变的连续的帧也是允许的。
示例性实现
一个广泛使用的窗函数为如下正弦函数:
如果对于长窗函数M=L、对于短窗函数M=S、以及对于简短窗函数M=B,其中L>S>B,则能够定义以下窗函数:
WIN_LONG_LONG2LONG:
WIN_LONG_LONG2SHORT:
WIN_LONG_SHORT2LONG:
WIN_LONG_SHORT2SHORT:
WIN_SHORT_SHORT2SHORT:
WIN_SHORT_BRIEF2BRIEF:
WIN_LONG_LONG2BRIEF:
WIN_LONG_BRIEF2LONG:
WIN_LONG_BRIEF2BRIEF:
WIN_LONG_SHORT2BRIEF:
WIN_LONG_BRIEF2SHORT:
WIN_SHORT_SHORT2BRIEF:
WIN_SHORT_BRIEF2SHORT:
一组好的窗口长度参数为:L=1024、S=128、以及B=32。然而,也可以使用其它的参数。
系统环境
一般而言,除了明确指示的情况之外,在此所描述的所有的系统、方法以及技术都能够采用一个或多个可编程的通用目的计算装置实现。这样的装置典型地包括,例如,、在以下组件中的至少一些,并且其相互连接(例如经由公共总线):一个或多个中央处理单元(CPU);只读存储器(ROM);随机存取存储器(RAM);输入/输出软件以及用于与其它装置连接(例如,采用诸如串口、并口、USB连接或火线连接之类的硬连线连接,或者采用诸如蓝牙或802.11协议之类的无线协议)的电路;用于连接到一个或多个网络(例如,采用诸如以太网卡之类的硬连线连接,或者无线协议,诸如码分多址(CDMA)、全球移动通信系统(GSM)、蓝牙、802.11协议、或任何其它基于蜂窝或非基于蜂窝的系统)的软件和电路,该网络在本发明的很多实施例中进而连接到因特网或任何其它网络;显示器(诸如阴极射线管显示器、液晶显示器、有机发光显示器、聚合物发光显示器或任何其它薄膜显示器);其它输出装置(诸如一个或多个扬声器、耳机以及打印机);一个或多个输入装置(诸如鼠标、触摸板、写字板、触控显示器或其它定点装置、键盘、袖珍键盘、麦克风、扫描仪);大容量存储单元(诸如硬盘);实时时钟;便携式存储读/写装置(诸如用于从RAM读出和向RAM写入、磁盘、磁带、光磁盘、光盘、等等);以及调制解调器(例如,用于发送传真或经由拨号连接而连接到因特网或任何其它计算机网络)。在运行中,可以由这种通用目的计算机执行的、用于实施以上方法和功能的处理步骤,最初典型地存储在大容量存储器上(例如,硬盘),它们被下载到RAM中,然后由RAM外部的CPU执行。然而,在一些情况下,处理步骤最初存储在RAM或ROM中。
可以从各种销售商处获得用于实施本发明的合适的装置。在各种实施例中,根据任务的大小和复杂程度来使用了不同类型的装置。合适的装置包括大型计算机、多处理器计算机、工作站、个人电脑、以及甚至是诸如PDAs、无线电话之类的小型计算机、或者任何其它的器具或装置,无论是单机的、硬连线到网络还是无线连接到网络的。
另外,虽然以上描述了通用目的可编程装置,但是在可替换实施例中,可以替代地(或附加地)使用一个或多个特殊用途处理器或计算机。通常,应当注意,除了明确表明的之外,以上描述的任何功能都能够采用软件、硬件、固件或者其组合来实现,并且基于已知的工程上的折衷来选择特定的实现。更具体而言,在以固定的、预定的或逻辑的方式实现以上描述的功能的情况下,能够通过编程(例如,软件或固件)、逻辑组件(硬件)的合适排列或两者的任何组合来实现,就如本领域技术人员所理解的那样。
应当理解,本发明还涉及机器可读介质,其上存储了执行本发明的方法和功能的程序指令。这种介质包括,例如,磁盘、磁带、诸如CD ROM和DVD ROM之类的光学可读介质、或诸如PCMCIA卡之类的半导体存储器、各种类型的存储卡、USB存储装置、等等。在每种情况下,介质可以是便携式产品形式,比如微型磁盘驱动器或小型盘、软盘、盒式磁带、盘式磁带、卡、棒、等等,或者其可以是相对更大或不可移动产品的形式,比如计算机或其它装置中提供的硬盘驱动器、ROM或RAM。
前述描述主要强调电子计算机和装置。然而,应当理解,也可以替代地使用任何其它的计算装置或其它类型的装置,比如利用电子的、光学的、生物的以及化学的处理的任何组合的装置。
附加考虑
以上描述了本发明的多个不同实施例,每个这样的实施例都描述为包含某些特征。然而,并不是要将结合任何单个实施例的讨论所描述的那些特征限定于该实施例,而是可以在任何其他实施例中,将它们包含在和/或安排在多个组合中,就如本领域技术人员理解的那样。
类似地,在以上讨论中,功能有时归属于特定的模块或单元。然而,通常可以按照需要,在任何不同的模块或组件之间重新分配功能,在一些情况下,完全消除了对特定组件或模块的需求,和/或需要增加新的组件或模块。根据已知的工程折衷,优选地进行功能的精确分配,就如本领域技术人员理解的那样。
这样,虽然参考本发明的示例性实施例和附图详细描述了本发明,本领域技术人员应该理解,不脱离本发明的精神和范围的情况下,可以对本发明进行多种修改和修正。因此,发明并不局限于附图所示的和以上描述的精确实施例。相反,意欲将所有不脱离发明精神的改变视作在本发明的范围之内,本发明的范围仅仅由所附的权利要求所限定。
窗口函数选择例程
if(nWinTypeFirst==WIN_SHORT_SHORT2SHORT
‖nWinTypeFirst==WIN_SHORT_SHORT2BRIEF)
{
pnWinTypeShort[0]=WIN_SHORT_SHORT2SHORT;
switch(nWinTypeLast)
{
case WIN_SHORT_BRIEF2BRIEF:
pnWinTypeShort[0]=WIN_SHORT_BRIEF2SHORT;
break;
case WIN_LONG_LONG2SHORT:
case WIN_LONG_SHORT2SHORT:
case WIN_LONG_BRIEF2SHORT:
case WIN_SHORT_SHORT2SHORT:
case WIN_SHORT_BRIEF2SHORT:
break;
default:
ErroHandling();
}
}
else{
pnWinTypeShort[0]=WIN_SHORT_BRIEF2BRIEF;
switch(nWinTypeLast)
{
case WIN_SHORT_BRIEF2BRIEF:
case WIN_SHORT_SHORT2BRIEF:
case WIN_LONG_LONG2BRIEF:
case WIN_LONG_BRIEF2BRIEF:
case WIN_LONG_SHORT2BRIEF:
break;
default:
ErroHandling();
}
}
for(nBlock=1;nBlock<nNumBlocksPerFrm;nBlock++)
{
pnWinTypeShort[nBlock]=WIN_SHORT_SHORT2SHORT;
}
nBlock=0;
for(nCluster=0;nCluster<nNumCluster-1;nCluster++)
{
nBlock+=anNumBlocksPerCluster[nCluster];
pnWinTypeShort[nBlock]=WIN_SHORT_BRIEF2BRIEF;
}
if(pnWinTypeShort[0]==WIN_SHORT_BRIEF2BRIEF)
{
if(pnWinTypeShort[1]==WIN_SHORT_SHORT2SHORT)
{
pnWinTypeShort[1]=WIN_SHORT_BRIEF2SHORT;
}
}
for(nBlock=1;nBlock<nNumBlocksPerFrm-1;nBlock++)
{
if(pnWinTypeShort[nBlock]=WIN_SHORT_BRIEF2BRIEF)
{
if(pnWinTypeShort[nBlock-1]==
WIN_SHORT_SHORT2SHORT)
{
pnWinTypeShort[nBlock-1]=
WIN_SHORT_SHORT2BRIEF;
}
if(pnWinTypeShort[nBlock-1]==
WIN_SHORT_BRIEF2SHORT)
{
pnWinTypeShort[nBlock-1]=
WIN_SHORT_BRIEF2BRIEF;
}
if(
pnWinTypeShort[nBlock+1]=WIN_SHORT_SHORT2SHORT)
{
pnWinTypeShort[nBlock+1]=
WIN_SHORT_BRIEF2SHORT;
}
}
}
switch(pnWinTypeShort[nBlock])
{
case WIN_SHORT_BRIEF2BRIEF:
if(pnWinTypeShort[nBlock-1]=WIN_SHORT_SHORT2SHORT)
{
pnWinTypeShort[nBlock-1]=WIN_SHORT_SHORT2BRIEF;
}
if(pnWinTypeShort[nBlock-1]==WIN_SHORT_BRIEF2SHORT)
{
pnWinTypeShort[nBlock-1]=WIN_SHORT_BRIEF2BRIEF;
}
break;
case WIN_SHORT_SHORT2SHORT:
if(nWinTypeFirst==WIN_SHORT_SHORT2BRIEF
‖nWinTypeFirst==WIN_SHORT_BRIEF2BRIEF)
{
pnWinTypeShort[nBlock]=WIN_SHORT_SHORT2BRIEF;
}
break;
case WIN_SHORT_BRIEF2SHORT:
if(nWinTypeFirst==WIN_SHORT_SHORT2BRIEF
‖nWinTypeFirst==WIN_SHORT_BRIEF2BRIEF)
{
pnWinTypeShort[nBlock]=WIN_SHORT_BRIEF2BRIEF;
}
break;
default:
ErroHandling();
}
where:
变量 | 说明 |
nWinTypeFirst | 指明在当前帧的第一个块中以及在下一个帧的第一个块中是否存在瞬变 |
nWinTypeLast | 用于最后一个帧中的末尾的块的窗口函数 |
pnWinTypeShort[nBlock] | 用于第nBlock块的窗口函数 |
nNumBlocksPerFrm | 在一个帧中的块的数量 |
nNumCluster | 在一个帧中的瞬变束的数量。一个瞬变束开始于一个瞬变,并且在下个瞬变开始之前或者在该帧的结束之前结束 |
anNumBlocksPerCluster[nCluster] | 在其第一个块包含瞬变的第nCluster个束中的块的数量 |
ErroHandling() | 用户定义的任何错误处理函数 |
Claims (20)
1.一种用于处理基于帧的数据的方法,包括:
(a)获得数据帧、在所述帧中发生瞬变的指示、以及所述瞬变在所述帧中的位置;
(b)根据所述瞬变的指示,为所述帧设定块大小,从而有效地在所述帧中定义多个大小相等的块;
(c)根据所述瞬变的位置,为所述多个大小相等的块中的不同的块选择不同的窗函数;以及
(d)通过应用在步骤(c)中所选择的窗函数,来处理所述数据帧。
2.如权利要求1所述的方法,其中,选择所述窗函数,以便在所述多个大小相等的块中所识别出的包含瞬变的块中,提供更高的分辨率。
3.如权利要求2所述的方法,其中,通过在所识别出的块中使用比所述窗函数中的其他窗函数更窄的瞬变窗函数以及通过对在所述瞬变窗函数外部的采样清零,来提供所述更高的分辨率。
4.如权利要去1所述的方法,其中,所述窗函数以满足完全重构条件的方式相互交叠。
5.如权利要求1所述的方法,还包括为不同的数据帧多次重复步骤(a)-(d)的步骤。
6.如权利要求1所述的方法,其中,在步骤(c)中所选择的窗函数包括:标准的瞬变帧窗函数、比所述标准的瞬变帧窗函数更窄的瞬变窗函数、以及以下至少一种:(i)瞬变前过渡窗函数以及(ii)瞬变后过渡窗函数。
7.如权利要求6所述的方法,其中:
(i)所述瞬变窗函数在所述包含瞬变的块中使用;
(ii)对于所述帧中在所述包含瞬变的块之前紧邻的块,如果有该块的话,则在该块中使用所述瞬变前过渡窗函数;以及
(iii)对于所述帧中在所述包含瞬变的块之后紧邻的块,如果有该块的话,则在该块中使用所述瞬变后过渡窗函数。
8.如权利要求1所述的方法,其中,所述数据帧包含音频信号。
9.如权利要求1所述的方法,其中,所述数据帧包括表示物理现象的信号。
10.一种用于处理基于帧的数据的方法,包括:
(a)获得数据帧、在所述帧中发生瞬变的指示、以及所述瞬变在所述帧中的位置;
(b)选择在所述帧中使用的不同的窗函数,以便在包含所述瞬变的区域内提供更高的分辨率;以及
(c)通过应用步骤(b)中所选择的窗函数,来处理所述数据帧。
11.如权利要去10所述的方法,其中,所述窗函数以满足完全重构条件的方式相互交叠。
12.如权利要求10所述的方法,还包括为不同的数据帧多次重复步骤(a)-(c)的步骤。
13.如权利要求10所述的方法,其中,所述数据帧包含音频信号。
14.一种用于处理基于帧的数据的系统,包括:
(a)用于获得数据帧、在所述帧中发生瞬变的指示、以及所述瞬变在所述帧中的位置的装置;
(b)用于根据所述瞬变的指示,为所述帧设定块大小,从而有效地在所述帧中定义多个大小相等的块的装置;
(c)用于根据所述瞬变的位置,为所述多个大小相等的块中的不同的块选择不同的窗函数的装置;以及
(d)用于通过应用由所述装置(c)所选择的窗函数来处理所述数据帧的装置。
15.如权利要求14所述的系统,其中,选择所述窗函数,以便在所述多个大小相等的块中所识别出的包含瞬变的块中,提供更高的分辨率。
16.如权利要求14所述的系统,其中,通过在所识别出的块中使用比所述窗函数中的其他窗函数更窄的瞬变窗函数以及通过对在所述瞬变窗函数外部的采样清零,来提供所述更高的分辨率。
17.如权利要去14所述的系统,所述窗函数以满足完全重构条件的方式相互交叠。
18.如权利要求14所述的系统,还包括用于为不同的数据帧多次重复所述装置(a)-(d)的实现的装置。
19.如权利要求14所述的系统,其中,由所述装置(c)所选择的窗函数包括:标准的瞬变帧窗函数、比所述标准的瞬变帧窗函数更窄的瞬变窗函数、以及以下至少一种:(i)瞬变前过渡窗函数以及(ii)瞬变后过渡窗函数。
20.如权利要求14所述的系统,其中,所述数据帧包含音频信号。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US82276006P | 2006-08-18 | 2006-08-18 | |
US60/822,760 | 2006-08-18 | ||
US11/558,917 US8744862B2 (en) | 2006-08-18 | 2006-11-12 | Window selection based on transient detection and location to provide variable time resolution in processing frame-based data |
US11/558,917 | 2006-11-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101136901A true CN101136901A (zh) | 2008-03-05 |
CN101136901B CN101136901B (zh) | 2012-11-21 |
Family
ID=39095224
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101416620A Active CN101136901B (zh) | 2006-08-18 | 2007-08-17 | 用于处理基于帧的数据的方法和系统 |
CNB2007101416616A Ceased CN100489964C (zh) | 2006-08-18 | 2007-08-17 | 音频解码 |
CNB2007101416635A Active CN100489965C (zh) | 2006-08-18 | 2007-08-17 | 音频编码系统 |
Family Applications After (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101416616A Ceased CN100489964C (zh) | 2006-08-18 | 2007-08-17 | 音频解码 |
CNB2007101416635A Active CN100489965C (zh) | 2006-08-18 | 2007-08-17 | 音频编码系统 |
Country Status (1)
Country | Link |
---|---|
CN (3) | CN101136901B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103295577A (zh) * | 2013-05-27 | 2013-09-11 | 深圳广晟信源技术有限公司 | 用于音频信号编码的分析窗切换方法和装置 |
CN104424436A (zh) * | 2013-08-28 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种恶意广告识别方法及装置 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101290774B (zh) * | 2007-01-31 | 2011-09-07 | 广州广晟数码技术有限公司 | 音频编码和解码系统 |
CN101620241B (zh) * | 2008-07-01 | 2011-05-04 | 鸿富锦精密工业(深圳)有限公司 | 信号解码系统及其解码方法 |
MY154452A (en) * | 2008-07-11 | 2015-06-15 | Fraunhofer Ges Forschung | An apparatus and a method for decoding an encoded audio signal |
TWI665659B (zh) * | 2010-12-03 | 2019-07-11 | 美商杜比實驗室特許公司 | 音頻解碼裝置、音頻解碼方法及音頻編碼方法 |
KR20140075466A (ko) * | 2012-12-11 | 2014-06-19 | 삼성전자주식회사 | 오디오 신호의 인코딩 및 디코딩 방법, 및 오디오 신호의 인코딩 및 디코딩 장치 |
CN109286922B (zh) * | 2018-09-27 | 2021-09-17 | 珠海市杰理科技股份有限公司 | 蓝牙提示音处理方法、系统、可读存储介质和蓝牙设备 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5848391A (en) * | 1996-07-11 | 1998-12-08 | Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. | Method subband of coding and decoding audio signals using variable length windows |
US6226608B1 (en) * | 1999-01-28 | 2001-05-01 | Dolby Laboratories Licensing Corporation | Data framing for adaptive-block-length coding system |
-
2007
- 2007-08-17 CN CN2007101416620A patent/CN101136901B/zh active Active
- 2007-08-17 CN CNB2007101416616A patent/CN100489964C/zh not_active Ceased
- 2007-08-17 CN CNB2007101416635A patent/CN100489965C/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103295577A (zh) * | 2013-05-27 | 2013-09-11 | 深圳广晟信源技术有限公司 | 用于音频信号编码的分析窗切换方法和装置 |
CN103295577B (zh) * | 2013-05-27 | 2015-09-02 | 深圳广晟信源技术有限公司 | 用于音频信号编码的分析窗切换方法和装置 |
CN104424436A (zh) * | 2013-08-28 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种恶意广告识别方法及装置 |
CN104424436B (zh) * | 2013-08-28 | 2019-02-15 | 腾讯科技(深圳)有限公司 | 一种恶意广告识别方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN101136901B (zh) | 2012-11-21 |
CN100489964C (zh) | 2009-05-20 |
CN100489965C (zh) | 2009-05-20 |
CN101127213A (zh) | 2008-02-20 |
CN101127212A (zh) | 2008-02-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101136901B (zh) | 用于处理基于帧的数据的方法和系统 | |
US10997481B2 (en) | System and method for collecting and analyzing multi-fields two-dimensional code | |
US9431018B2 (en) | Variable resolution processing of frame-based data | |
CN101815992B (zh) | 编码和/或解码数字内容 | |
CN100545882C (zh) | 用于无线遥控接收芯片的自适应解码方法 | |
JP5162589B2 (ja) | 音声復号化 | |
CA3168921A1 (en) | Method and apparatus for compressing and decompressing a higher order ambisonics representation | |
CN1787383B (zh) | 变换、编码、逆变换和解码音频信号的方法和设备 | |
CA2438078A1 (en) | Document data profiler apparatus, system, method, and electronically stored computer program product | |
CN101526963A (zh) | 网页编码识别方法、装置和终端设备 | |
CN101290774B (zh) | 音频编码和解码系统 | |
US9100042B2 (en) | High throughput decoding of variable length data symbols | |
CN107729375B (zh) | 一种日志数据排序的方法及装置 | |
CN104811407B (zh) | 通信方法及系统、通信信号接收方法及装置 | |
CN101828220B (zh) | 用于mpeg aac及mpeg aac eld编码器/解码器的分析及合成滤波器组的有效实施方法 | |
CN112395388A (zh) | 信息处理方法及装置 | |
CN102419978B (zh) | 音频解码器、音频解码的频谱重构方法及装置 | |
CN108667757A (zh) | 曼彻斯特码采样处理方法、模块及解码器 | |
Kościelniak et al. | The Integrated Calibration Method: comparison of various flow approaches | |
CN109831280A (zh) | 一种声波通讯方法、装置及可读存储介质 | |
US6107989A (en) | Adaptive cursor for interpreting displays of grouped data words | |
CN111144575A (zh) | 舆情预警模型的训练方法、预警方法、装置、设备及介质 | |
CN104269174A (zh) | 一种音频信号的处理方法及装置 | |
CN101094044A (zh) | 一种比特量化的方法及装置 | |
CN117555863A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
EE01 | Entry into force of recordation of patent licensing contract |
Application publication date: 20080305 Assignee: Shenzhen Sheng Digital Technology Co., Ltd. Assignor: Guangsheng Digital Technology Co., Ltd., Guangzhou Contract record no.: 2010990000326 Denomination of invention: Virable-resolution processing of frame-based data License type: Common License Record date: 20100602 |
|
LICC | Enforcement, change and cancellation of record of contracts on the licence for exploitation of a patent or utility model |