当前位置: 首页 > 专利查询>微软公司专利>正文

防止非字节对齐和/或位移位位置起始码仿效的方法和系统技术方案

技术编号:3634119 阅读:215 留言:0更新日期:2012-04-11 18:40
本方法和系统提供了在高于比特级的粒度上的起始码仿效防止的方法。在各种实施例中,起始码仿效防止可在不同于诸如字节等数据边界的位置上作出。这些实施例可结合在处理的数据中不总是保持数据对齐边界的系统一起使用。在某些系统中,描述的技术可提供一基准,在丢失数据边界的情况下,解码器系统可从该基准恢复。(*该技术在2023年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术涉及用于防止起始码仿效并用于数据填充的方法和系统。
技术介绍
数字数据通常从某一类型的发射器发送到某一类型的接收器。发射器通常包括对用于发送数据进行编码的编码器;接收器通常包括对它所接收的数据进行解码的解码器。有不同类型的数字数据,如视频数据、音频数据、音频/视频数据、文本数据、计算机可执行程序数据、归档数据、数据库信息等等。当发送数字数据时,它通常在某一类型的信道上发送。等效地,为本专利技术的目的,计算机存储器或任一存储设备或存储媒质可以被认为是一种传输信道。 当发送数字数据时,重要的是能够找出信道上数据中的若干特定的点。为各种目的需要完成这一过程,如为查找使能够在通过信道传输数据过程中从误差或丢失中恢复的点、使能够在不同于整个流的起始处开始解码过程的点、或者使能够搜索用于不同目的的不同类型数据的点。由此,例如,在解码器侧,处理数字数据的解码器和其它组件通常需要知道该数据的上下文,使得该数据能够被正确地处理。如果能够以所发送的第一位开始,并且解码器能够在没有任何误差的情况下运行,则这并不是重要的。理想地,在这一情况下,解码器可依照知道该数据是什么格式来简单地跟踪所发送的信息。然而,这种理想情况通常不会出现,的确存在误差和其它偶然性,向设计和使用发送并接收数字数据系统的那些人提出了挑战。在诸如调谐到正在进行的数据流广播等情况下,解码器无法在数据传输的起始处开始。通过数据格式分析查找点也需要解码器中大量的复杂处理。 在许多类型的信道环境中,通过在数据中提供所谓的重同步标记来解决这一问题。重同步标记提供了一种机制,系统可用该机制来开始其解码过程或从误差中恢复。例如,当数字数据被编成一列比特或字节的流时,在流中具有重同步标记可向解码器提供一参考点,在传输中出现误差的情况下可从该参考点恢复。 可采用重同步标记的一个方式是在起始码的上下文中。起始码是具有特定值的比特或字节的串。一般而言,许多系统往往传送字节(如,H.222.0/MPEG-2系统),使得可将起始码定义为具有唯一值的字节串。该唯一的字节串提供了一种模式,该模式的存在指示了重同步点。重同步点通常指示某些可独立解码的数据的开始或边界。例如,在H.262/MPEG-2视频数据中,重同步点可指示片段(即,图像的可独立解码区域)的开始、图像的开始、GOP(即,“图像组”或可独立解码的图像序列)的开始、或新视频序列的开始。数字视频流也可包括在起始码之后的所谓的辅助或补充数据。 有时候,起始码不仅在诸如视频流等数据流中使用,也由系统的多级使用。H.222.0/MPEG-2系统规范是使用起始码,并传送与系统级信息和音频信息隔行扫描的视频数据流的系统的示例。 由于起始码在提供数据流中的重同步点的范围内是重要的,因此避免数据流中在实际上并非表示起始码之处仿效起始码将是一种较好的观念。 例如,考虑以下情况。起始码定义了可标识新数据单元的开始的特定模式的比特或字节。如果在起始码之间发送任意数据,在该任意数据本身可能包含被用作起始码的模式。例如,如果假定要传送的字节是完全随机的,则如果起始码是K比特长,则在某一特定比特位置开始的比特中偶然仿效起始码的概率为1/2k。 在某些情况下,可判断如果起始码中的比特数较大,则起始码较不可能偶然被仿效。在这一情况下,如果偶然的起始码仿效的后果并不是太严重,则可判断不必要采取措施来确保防止偶然的起始码仿效。这就是某些音频数据格式的情况。通常,这些格式不使用按每秒的比特数测量的十分高的比特率,因此起始码不太可能在任一特定的时间间隔内被偶然仿效。对于视频数据,情况通常并非如此,因为对视频数据的传输而言比特率通常要高得多。 在过去的主要视频编码标准(可能有一个例外)中,数据负载内的视频句法格式被设计成避免起始码仿效。即,如果知道了哪种数据元素将组成该视频句法,则可仔细地设计句法使得不会出现任何偶然的起始码。例如,传统的视频编码标准中起始码以一长串0比特开始,随后为一个1比特。该长串可包含23个0比特,最后为一个1比特。假定所发送的大多数数据是使用可变长度码(通常非正式地称为哈夫曼码)来熵编码的。例如,为本专利技术的目的,可变长度码(VLC)可被定义为用于在一组表示的符号中选择的可变深度树结构码。使用二叉树VLC的一种技术是确保树中从根到表示有效符号的每一叶的路径总是在其中的某处具有“1”,并且该树结构不会太深。 由此,例如,如果知道每一可变长度码串在长度上不多于10比特,并且每一这样的串将具有至少一个1值的比特,则可知道从该VLC编码的已编码数据的序列不可能包含18个以上连续的0值比特。即,最坏的情形是1000000000之后为0000000001。由此,如果仔细地设计句法,并检查每一0值和每一1值比特的位置以确定在一行中将出现多少0,则可使用包含比曾出现在该句法中更长的0串的起始码。例如,可设计句法使得有效句法不会在非起始码的位置上包含23个0。由此,每次出现23个0应当是起始码,并且解码器应当能够准确地检测到起始码。 尽管上述操作看上去是简单明了的,然而操作可以是相当难的任务,因为必须在要发送的每一可能的顺序上检查要发送的所有可能的数据(在比特级),以确保起始码模式不会被偶然发送。这是一种易出错的句法设计的费力方法。 一般而言,这一比特级检查设计过程描述了在过去设计许多视频编码规范的方法(即,H.261、MPEG-1、H.262/MPEG-2、大多数H.263和MPEG-4)。其一个例外是ITU-T推荐H.263(ITU-T Recommendation H.263)的附录E,它使用了一种被称为是算术编码的技术,以算术方式从数学规范生成压缩的比特。此处,在熵解码器的末端有一额外的过程,它检查所生成的比特,并且在编码器侧,如果在一行中有太多的0,则在遇到预定数量的0之前插入一“标记”比特(一个1比特)。在解码器侧,解码器对这些0计数,并且如果遇到临界数量的0,则它知道它遇到了一个真正的起始码。如果解码器见到比临界数量少一个0,则它知道后面的1比特是被插入来避免起始码仿效的标记比特,它丢弃该比特并将后面的比特认作真实数据的继续。 该解决方案的问题是它令编码器和解码器在比特级检查并处理输入数据。分析并移位按照单个比特位置处理的数据的位置变得较困难,并且会不合需要地加重解码器的负担。比特范围的移位也是一种处理器高强度的操作。 因此,本专利技术提出了提供防止起始码仿效的改进的方法和系统相关联的关注。 专利技术概述 描述了方法和系统,以提供由在高于比特级的粒度上执行的操作提供起始码仿效防止的方法。通过在不同于比特级的级别上操作,可提高处理效率。依照一个或多个实施例,起始码仿效防止方法寻求与大于单个比特的固定大小数据段相关的数据模式。当找到特定的模式时,插入起始码仿效防止数据以防止起始码仿效。插入的数据大于单个比特,在某些实施例中,包括一个字节。当解码器对插入了起始码仿效防止数据的数据进行解码时,可容易地标识真正的起始码,并可移除起始码仿效防止数据以提供要被传送的原始数据。 在各种实施例中,可作出防止在不同于诸如字节边界等数据边界的位置上的偶然的起始码值仿效的起始码仿效防止。这些实施例可用于在处理的数据中并非永远保持数据对齐边界的本文档来自技高网...

【技术保护点】
一种方法,其特征在于,它包括:在供在使用起始码的环境内编码使用的数据内搜索固定大小数据段的至少一个模式,单个的固定大小数据段包括至少两个比特;响应于找到一个或多个模式,插入与包含所述模式的数据有关的起始码仿效防止数据;以及   其中,所述搜索和所述插入被设计成防止不在数据边界上开始的一个或多个位置上的仿效。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:GJ苏利文
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1