CN102724497A - 在视频数据流的编码和解码中存储设备的有效使用 - Google Patents

在视频数据流的编码和解码中存储设备的有效使用 Download PDF

Info

Publication number
CN102724497A
CN102724497A CN2012101614957A CN201210161495A CN102724497A CN 102724497 A CN102724497 A CN 102724497A CN 2012101614957 A CN2012101614957 A CN 2012101614957A CN 201210161495 A CN201210161495 A CN 201210161495A CN 102724497 A CN102724497 A CN 102724497A
Authority
CN
China
Prior art keywords
frame
pixel partitions
subregion
data
fragment
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
Application number
CN2012101614957A
Other languages
English (en)
Other versions
CN102724497B (zh
Inventor
C·L·杜维维耶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Apple Inc
Original Assignee
Apple Computer Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Apple Computer Inc filed Critical Apple Computer Inc
Priority claimed from CN 200510079995 external-priority patent/CN1812579B/zh
Publication of CN102724497A publication Critical patent/CN102724497A/zh
Application granted granted Critical
Publication of CN102724497B publication Critical patent/CN102724497B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/76Television signal recording
    • H04N5/91Television signal processing therefor
    • H04N5/92Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • H04N19/426Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements using memory downsizing methods
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/43Hardware specially adapted for motion estimation or compensation
    • H04N19/433Hardware specially adapted for motion estimation or compensation characterised by techniques for memory access

Abstract

本发明公开了在视频数据流的编码和解码中存储设备的有效使用。本发明公开了通过以新颖的方式组织存储设备结构中的帧数据来简化帧的编码/解码的实施方式。具体地,在分配给帧片段的存储设备结构中,使用的分区条目存储在该分配部分的第一区段中,不使用的分区条目存储在该分配部分的第二区段中,第一和第二区段的每个包括在该存储设备结构中的连续区域,使得使用的分区条目不会散布在不使用的分区条目中。在一些实施方式中,确定在视频数据的编码或解码中有用的附加数据,并将其存储在使用的分区条目的不使用的字节中(诸如宏块头数据或标准基准帧索引数据)。在一些实施方式中,宏块的两个或更多个相同分区合成并单个分区。

Description

在视频数据流的编码和解码中存储设备的有效使用
本申请是申请号为200510079995.6、申请日为2005年6月27日、发明名称为“在视频数据流的编码和解码中存储设备的有效使用”的发明专利申请的分案申请。
技术领域
本发明涉及在视频数据流的编码和解码中的存储设备的有效使用。
背景技术
视频编解码器(压缩器-解压缩器)是一些压缩算法式,其被设计成对视频数据流进行编码/压缩和解码/解压缩,以此来减少流的大小,从而传输更快并且存储空间更小。然而由于存在损耗,视频编解码器在压缩视频流的二进制数据时尽力保持视频质量。通常使用的视频编解码器的实例有MPEG-4、AVI、WMV、RM、RV、H.261、H.263以及H.264。
视频流由帧序列组成,其中每一帧由多个宏块组成。视频编解码器通过将帧分成一个或多个片段(slice)或子部分,对该序列中的每一帧进行编码,其中每一个片段包含整数个宏块。宏块典型的是16×16像素阵列(尽管其它尺寸的宏块也是可以的),并且可以将宏块分成用于编码和解码的分区。例如,图1表示可以在H.264标准中对宏块进行分区的不同的方式。如图1所示,宏块可以以259种可能的方式中的一种被分区:
1.一个分区
2.两个垂直分区
3.两个小平分区以及
4.四个较小的正方形分区。
在最后一种情况中,每个最后所得到的正方形分区可以以相同的方式被分区(通过另外256种方式对宏块进行分区),直到将一个单独的宏块分成最大16个分区。
宏块的容量可以是自备的,或从一个或两个不同的帧中预测得到。在接收到的比特流(在编码过程中生成)中,后面的预测信息可以从每个分区得到:运动向量(由x和y分量组成)以及该运动向量所依据的帧(在帧序列中)的相关指示器。该指示器可以是例如基准帧索引,其被用于连同相关的基准帧列表一起来指示该运动向量所依据的特定帧。
图2表示基准帧索引和基准帧列表的概念。对于帧的每个片段,存储了用于识别运动向量的特定帧的一个或多个基准帧列表。在图2的实例中,第一和第二基准帧列表用于识别运动向量的特定帧。典型地,当接收到一个片段时,该片段的头部含有得到帧基准列表的信息。
与运动向量相关的基准帧索引在基准帧列表中指定条目(含有帧号),其指示帧序列中运动向量所依据的帧。在图2的实例中,有七个活动帧(即,目前在存储设备中保持的帧),其从0至6编号。编号为“3”的帧目前正在被处理。如果基准帧索引给相关的第一运动向量指定值0,那么这表示在该第一基准帧列表的第一条目中的帧号是该运动向量所依据的帧。由此,如图2的实例所示,编号为“2”的帧是该第一运动向量所依据的帧。在进一步的实例中,如果基准帧索引给相关的第二运动向量指定值2,那么这表示在第二基准帧列表(用于第二运动向量)的第三条目中的帧号是该第二运动向量所依据的帧。由此,如图2的实例所示,编号为“6”的帧是该第二运动向量所依据的帧。
图3表示含有帧的片段的分区数据的传统的存储设备结构305的原理图。在图3的实例中,该片段由三个宏块所组成,其中第一宏块
(宏块0)由1个分区组成,第二宏块(宏块1)由16个分区组成,第三宏块(宏块2)由2个分区组成。
典型地,在解码过程中,基于假定该片段的每个宏块被分成最大数量的分区(例如在H.264标准情况下的16个分区)的“最坏情况设想”,存储设备被分配给片段。由此,在H.264标准下,对于该片段的每个宏块,分配有足够的存储空间来存储头部和16个分区条目(entry)。数据结构中的分区条目在帧的解码过程中存储分区数据。每个分区条目含有单个分区的数据(例如,运动向量和基准帧索引数据)。
图3的图表表示已经分配给片段的该存储设备结构的分配部分310。由于没有将片段的每个宏块典型地分成16个分区,因此宏块将经常分配到比该宏块中所含有的分区更多的分区条目的存储量。由此,宏块的该存储设备结构的分配部分将典型地含有一个或多个使用的分区条目(含有该宏块的实际分区数据的条目)以及一个或多个不使用的分区条目(不含有该宏块的分区数据的条目)。使用的分区条目含有有意义的/有用的数据(例如运动向量和分区的基准帧索引数据),反之,不使用分区条目不含有有意义的/有用的数据。
如图3所示,对于该片段的每个宏块,该存储设备结构含有头部区段和分区条目区段。典型地,在解码过程中,基于假定该宏块被分成16个分区的“最坏情况设想”,给头部分配存储量。由此,对于每个宏块头部,分配了足够的存储空间用于16个头部分区条目。宏块的传统头部含有描述该宏块怎样被分区的数据。这种描述性的数据包括例如每个分区的位置和维数数据。图4表示存储在宏块2的存储设备结构中的传统头部405的原理图。宏块2被分成2个分区。由此,头部将包括2个使用的头部分区条目,每个条目含有特定分区的描述性数据。剩余的14个头部分区条目将为空(不使用)。此外,每个头部典型地含有指示该宏块中的分区数量的数据。
如图3所示,存储设备结构305的第一部分315含有宏块0的数据。由于宏块0由1个分区组成,因此该存储设备结构含有仅用于宏块0的第一分区的使用的分区条目(分区条目0),同时分配给宏块0的剩余15个分区条目(分区条目1-15)为不使用条目。存储设备结构305的第二部分320含有用于宏块1的数据。由于宏块1由16个分区组成,因此该存储设备结构含有用于宏块1的第一至第十六个分区的使用的分区条目(分区条目0-15),使得分配给宏块1的所有条目都被使用。存储设备结构305的第三部分325含有宏块2的数据。由于宏块2由2个分区组成,因此该存储设备结构含有用于宏块2的第一和第二分区的使用的分区条目,同时分配给宏块2的剩余14个分区条目不被使用。
由此,该片段的分区数据典型地以随意的模式存储在存储设备结构中,其中不使用的分区条目散布在使用的分区条目中。存储设备结构中的数据存储的这种随意模式引起该片段的效率低的解码。这是由于当CPU在解码过程中从存储设备中加载分区数据时,CPU从存储设备结构检索存储器的数据块(如相邻的分区数据),而不是仅检索该CPU那时所需要的精确的数据。这些检索到的数据块可能含有使用和不使用的分区条目。这些检索到的数据块存储在该CPU可以快速(典型地以比该CPU可以访问该存储设备结构明显更短的时间)访问的高速缓冲存储器(例如,CPU高速缓冲存储器)中。
如果该CPU在处理该片段的过程中后来需要特定的分区数据,那么该CPU首先确定特定分区数据是否存在于该高速缓冲存储器中,这是由于该特定分区数据可能已经包括在之前检索到的数据块中,并且访问高速缓冲存储器的时间比访问该存储设备结构的时间短。如果特定分区数据存在于高速缓冲存储器中,那么这被称为“高速缓冲存储器命中(hit)”,其中从高速缓冲存储器检索特定分区数据是快速的。如果该特定分区数据没有存在于该高速缓冲存储器中,那么这被称为“高速缓冲存储器失误”,则该CPU必须随后从较慢的该存储设备结构中检索特定分区数据。
当特定数据以随意的方式存储在存储设备结构中时,其中不使用的分区条目散布在使用的分区条目中,那么由于检索到的数据块将还含有与使用的分区条目散布的不使用的分区条目,其中不使用的分区条目含有非有用数据,因此在该片段的处理过程中,典型地存在较高比率的“高速缓冲存储器失误”。
由此,需要一种在存储设备结构中组织分区数据从而可以更有效地处理分区数据的方法。
发明内容
本发明的一些实施方式通过以新颖的方式组织存储设备结构中的帧数据而简化了帧的编码/解码。具体地,在给帧片段已经分配的部分存储设备结构中,使用的分区条目(含有有用数据的条目)存储在该分配部分的第一区段,不使用的分区条目(不含有有用数据的条目)存储在该分配部分的第二区段,第一和第二区段包括在该存储设备结构中的连续和相邻的区域。在一些实施方式中,使用的分区条目“打包”到该存储设备结构的分配部分的第一区段,同时不使用的分区条目占用该分配部分的剩余部分。
在一些实施方式中,确定/识别在视频数据的编码或解码中有用的其它数据,并将其存储在使用的分区条目的未使用字节中。在一些实施方式中,宏块的头部数据存储在该宏块的特定条目中(例如,该宏块的第一分区的第一分区条目)。在这些实施方式中,头部数据与分区条目的分区数据结合为一体。在这些实施方式中,对标准基准帧索引数据进行计算,并将其存储在使用的分区条目的未使用字节中。在一些实施方式中,对宏块的分区进行比较,以确定该宏块的任何分区是否相同,由此将相同的分区合并成宏块的单个分区。
附图说明
图1表示可以对宏块在H.264压缩标准下进行分区的不同方式。
图2表示基准帧索引和基准帧列表的概念。
图3表示含有帧的片段的分区数据的传统存储设备结构的概念图。
图4表示存储在存储设备结构中的传统头部的概念图。
图5表示在数据结构中在帧解码过程中存储分区数据的分区条目的组成。
图6表示含有用于帧片段的分区数据的存储设备结构的概念图,根据本发明该分区数据在该存储设备结构中被组织。
图7表示与图6所示的存储设备结构的分配部分相关的定位器列表的概念图。
图8是用于存储视频帧片段的数据的方法流程图。
图9表示含有在该条目的6个不使用字节中的有用数据的分区条目的组成。
图10表示H.264标准的查找表。
图11表示含有帧片段的分区数据的存储设备结构的概念图,其中头部数据已经结合在分区条目中。
图12表示使用结合的头部来存储视频帧片段的数据的方法流程图。
图13表示标准基准帧列表的实例。
图14是使用标准基准帧索引来存储帧序列中的一组帧片段的数据的方法流程图。
图15A-B表示合并分区的实例。
图16是用于合并宏块分区的方法流程图。
图17示出了实现本发明某些实施方式的计算机系统。
具体实施方式
于2004年6月27日提出的序列号为60/583,447,题目为“对图像进行编码和解码”的美国临时专利申请的公开内容在此通过引用清楚地结合。
在以下对本发明的详细描述中,将对本发明的多处细节、实例以及实施方式进行阐述和说明。然而,对本领域技术人员显而易见的是,本发明并不限于阐述的实施方式,并且本发明在没有对某些具体细节以及实例进行讨论的情况下仍可以实现。
分区条目:
在一些实施方式中,调整分区的分区条目,使其具有预定长度,以加快分区的解码。由于调整上的考虑,因此数据典型地被分成多个特定数量的字节。在这些实施方式中,每个分区条目被调整为相同数量的预定字节。
图5表示在帧的解码过程中存储分区数据的数据结构中分区条目500的组成。每个分区条目含有单个分区数据(即,运动向量以及基准帧索引数据)。在图5所示的实例中,分区条目有16字节的长度。如图所示,在分区条目(两个字节用于运动向量的每个x或y分量)中,第一运动向量505的数据包括四个字节数据,第二运动向量510的数据也包括四个字节的数据。在该分区条目中,第一基准帧索引515的数据包括一个字节,第二基准帧索引520的数据也包括一个字节数据。如图5的实例所示,其中分区条目具有16个字节,分区条目含有十个使用的字节,其中该条目的六个字节525典型地为空并且不被使用(即,不含有有意义的或有用的数据)。
在编码/解码过程中存储设备的有效使用:
在一些实施方式中,为了简化帧片段的编码/解码,在该存储设备结构中组织该片段数据,使得使用的分区条目不会散布在不使用的分区条目中。具体地,在已经给该片段分配的一部分存储设备结构中,使用的分区条目存储在该分配部分的第一区段,不使用的分区条目存储在该分配部分的第二区段,在该存储设备结构中第一和第二区段的每个包括连续并且相邻的存储区域。在一些实施方式中,使用的分区条目“打包”到该存储设备结构的分配部分的第一预定区段,同时不使用的分区条目占用该分配部分的剩余部分。
与该存储设备结构的分配部分相联系的是定位器列表,其是包含在该分配部分中的分区条目的索引的列表。具体地,该定位器列表包括索引列表(例如,指针),这些索引包含分配部分中的分区条目的位置信息(例如,地址信息)。该定位器列表和该分配部分一起对该分配部分中的特定宏块的特定分区条目进行定位。
在一些实施方式中,每个宏块的头部数据存储在存储该使用的分区条目的该分配部分的第一区段中。在一些实施方式中,宏块的头部数据存储在第一区段中,但是与该宏块的任何分区条目分开存储。在另一些实施方式中,宏块的头部数据存储在宏块的特定分区条目中(例如,该宏块的第一分区的第一分区条目)。在这些实施方式中,该头部数据与分区条目的分区数据相结合。
图6表示含有帧片段的分区数据的存储设备结构605的原理图,根据本发明在存储设备结构中组织该分区数据。在图6的实例中,该片段由和图3实例相同的三个宏块组成,由此第一宏块(宏块0)由1个分区组成,第二宏块(宏块1)由16个分区组成,第三宏块(宏块2)由2个分区组成。
给该片段分配的存储部分610的尺寸基于“最坏情况设想”而确定,使得对于该片段的每个宏块分配有足够的存储空间来存储头部和16个分区条目(其中每个分区条目包括16字节数据)。由此,对于宏块0,有一个使用的分区条目(分区条目0)和15个不使用的分区条目(分区条目1-15);对于宏块1,有16个使用的分区条目;对于宏块2,有两个使用的分区条目和14个不使用的分区条目。
如图6所示,该片段的所有宏块的使用的分区条目存储(“打包”)到该存储设备结构的分配部分的第一区段630中,同时不使用的分区条目存储在该分配部分的第二区段635中(该分配部分的剩余部分)。对于宏块0,头部数据和使用的分区条目0在宏块0的第一“使用的”区段630的子分段615中。宏块0的不使用的分区条目1-15在该分配部分的第二“不使用”区段635中。对于宏块1,头部数据和使用的分区条目0-15在宏块1的第一“使用的”区段630的子分段620中。对于宏块2,头部数据和使用分区条目0-1在宏块2的第一“使用的”区段630的子分段625中。宏块2的不使用的分区条目2-15在该分配部分的第二“不使用”区段635中。与图3形成对比,图3中使用和不使用的分区条目散布在该存储设备结构305的整个分配部分310中。
由于将会遇到较少的高速缓冲存储器失误,因此以这种方式组织分区数据使得对片段进行解码更加有效。当CPU从该分配部分的第一区段中检索分区数据块时,分区数据的每个块将完全或大部分地由使用的分区条目组成,这是由于使用的分区条目已经打包在第一区段中,不使用的分区条目打包在第二独立区段中。由于该高速缓冲存储器由此含有从该使用的分区条目中得到的大比例的有意义的/有用的数据,因此这引起较少的高速缓冲存储器失误。
图7表示与图6所示的存储设备结构605的分配部分610相联系的定位器列表705的原理图。该定位器列表包括索引列表(例如,指针),其包含用于帮助在分配部分中定位分区条目的位置信息(例如,地址信息)。该定位器列表和该分配部分一起帮助对该分配部分中的特定宏块的特定分区条目进行定位。
在一些实施方式中,仅有一个宏块的索引存储在该定位器列表705中。在一些实施方式中,在该定位器列表705中仅存储宏块第一分区的第一分区条目的索引。在这些实施方式中,该列表中的索引识别在该存储设备结构605的分配部分610中的该片段中的宏块号以及该宏块的第一分区条目的位置信息。例如,如图7所示,宏块0的索引含有在分配部分610中宏块0的第一分区条目的位置信息。
图8是用于存储视频帧片段的数据的方法800的流程图。该方法800可以例如通过构造使用数据存储设备结构来编码或解码数据流的应用而实施。
该方法800通过接收(在805)视频帧片段的数据而开始,该片段含有两个或更多宏块,其中每个宏块包含一个或多个分区。该片段的数据包括与该片段的宏块分区相关的分区数据(例如,运动向量和基准帧索引数据),和每个宏块的头部数据。作为可选择的步骤,对于每个宏块,该方法比较(在807)该宏块的分区,并合并(在807)任何相同分区(以下将要讨论)。
该方法然后分配(在810)用于存储片段数据的部分存储设备结构,该分配的存储部分包括为分区条目和宏块头部分配的存储设备。在一些实施方式中,该分配的存储部分的尺寸根据分配给该片段的每个宏块的分区条目的预定个数而确定。在一些实施方式中,该分配的存储部分的尺寸根据“最坏情况设想”而确定,使得该片段的每个宏块分配有足够的存储空间来存储宏块头部和16个分区条目。
然后该方法将与该片段的分区相联系的分区数据存储(在812)在分配的分区条目中(称作使用的分区条目)。作为可选择的步骤,该方法确定(在813)另外的有用的/有意义的数据,并将其存储(在813)在使用的分区条目的不使用的字节中(以下将要讨论)。在一些实施方式中,该方法对结合在一起的头部数据或标准基准帧索引数据进行计算(在813),并将其存储(在813)在使用的分区条目中。在一些实施方式中,该方法计算/识别并存储在分区编码或解码中有用的任何其它数据。
该方法800然后将每个宏块的头部数据存储(在815)在该分配的存储部分的第一区段中。该方法800还将使用的分区条目存储/放置(在817)在该分配的存储部分的第一区段中,其中使用的分区条目含有该片段的宏块的分区数据。该方法800还将不使用的分区条目(不含有分区数据的条目)存储/放置(在820)在分配的存储部分的第二区段中。在一些实施方式中,该第一和第二区段的每个包括在分配的存储部分中的存储设备的连续区域,由此使用的分区条目没有散布在该分配的存储部分中的不使用的分区条目中。
该方法800然后生成(在825)与该分配的存储部分相联系的定位器列表,该定位器列表包括索引列表(例如,指针),其包含分配部分中的分区条目的位置信息(例如,地址信息)。该定位器列表用于帮助在分配部分中定位特定宏块的特定分区条目。在一些实施方式中,在该定位器列表中仅存储宏块第一分区的第一分区条目的索引。然后该方法结束。
分区条目中的不使用的字节的使用
被结合的头部
如图6所示,对于每个宏块,存在也在该分配部分的第一区段中存储的宏块头部数据,其中该第一区段存储了使用的分区条目。在一些实施方式中,宏块的头部数据存储在第一区段,但是与该宏块的任意分区条目分开存储。在另一些实施方式中,宏块的头部数据存储在该宏块的特定分区条目中。在这些实施方式中,该头部数据和分区条目的分区数据结合在一起。
如图5的实例所示,分区条目可以是16字节长度。如图5所示,分区数据(运动向量和基准帧索引数据)包括10字节505-520的分区条目,留下六字节525的分区条目未使用。图9表示根据本发明的分区条目900的组成,其中,分区条目900在6个未使用的字节525的条目中含有有用数据。
在一些实施方式中,宏块的头部数据存储在宏块的特定分区条目的不使用的字节中。在一些实施方式中,该宏块的头部数据仅结合在该宏块的第一分区的第一分区条目中。在一些实施方式中,被结合的头部数据930包括分区条目900的2字节的不使用字节525。
该被结合的头部数据930和分区配置查找表一起用来识别宏块的唯一分区配置。如以上所讨论的,在H.264标准下,宏块可以被分区成259个不同的可能的分区配置。在这些实施方式中,生成查找表,该查找表含有259种不同的可能的分区配置中的每一个以及与每个分区配置(例如,范围从0-258)相联系的唯一标识符。在图10中示出了H.264标准的查找表1005的实例。在这些实施方式中,对于每个宏块,该被结合的头部数据识别查找表中的特定分区配置,其指示该宏块的分区配置(其中该被结合的头部数据的值与该特定分区配置所相关的唯一标识符相匹配)。
回顾宏块的传统头部含有有关该宏块怎样被分区的说明性数据,并且包括例如在该宏块中的每个分区相对于该宏块的位置和大小的数据。该传统的说明性数据可以从宏块的唯一分区配置中得到,这是由于该分区配置将指示该宏块中的每个分区相对于该宏块的位置和大小的数据。由此,一旦确定了该宏块的唯一分区配置,那么也可以确定在头部中典型地包含的该说明性数据。
由于被结合的头部数据存储在分区条目的不使用的部分中,并且将不需要传统头部的单独的存储空间,因此使用被结合的头部数据将减少存储设备的消耗。图11表示含有帧片段的分区数据的存储设备结构的概念图,其中头部数据已经结合在分区条目中。注意,和图3和6相对比,不再需要用于每个宏块的单独的头部区段。
图12是使用被结合的头部存储视频帧片段的数据的方法1200的流程图。该方法1200可以通过使用数据存储设备结构配置来编码或解码视频数据流的应用而实施。
该方法1200通过接收(在1205)视频帧片段的数据而开始,该片段含有两个或更多个宏块,其中每个宏块包含一个或多个分区。该片段的数据包括与该片段的宏块分区相关的分区数据(例如,运动向量和基准帧索引数据),以及含有描述该宏块怎样被分区的数据的每个宏块的头部数据(例如,该宏块的每个分区的位置和尺寸数据)。
然后该方法1200生成或接收(在1206)分区配置查找表,其含有宏块的每个可能的分区配置,每个可能的分区配置具有相联系的唯一标识符(例如,用数字表示的标识符)。对于该片段的每个宏块,该方法1200随后在该查找表中识别(在1207)与该宏块的分区配置相匹配的特定分区配置。然后该方法1200从该查找表中确定(在1208)与该识别的分区配置相关的唯一标识符。该相关的唯一标识符在此称为宏块的被结合的头部数据。该方法可以使用宏块的接收到的头部数据来识别(在1207)该宏块的特定分区配置,其中接收到的头部数据含有描述宏块怎样被分区的数据。由此,宏块的被结合的头部数据从该宏块的最初接收到的头部数据中得到(在步骤1207和1208)。
然后该方法分配(在1210)部分用于存储该片段的数据的存储设备结构。在一些实施方式中,不用考虑该片段的宏块的头部数据的单独存储区段,就可以确定分配的存储部分的大小。在这些实施方式中,预定个数的分区条目被分配给该片段的每个宏块,同时没有给每个宏块的头部数据分配单独的存储区段(如图11所示)。
然后该方法将与片段的分区相关的分区数据存储(在1212)在分配的分区条目中(称作使用的分区条目)。然后该方法1200将每个宏块的被结合的头部数据(在步骤1208中确定)存储(在1215)在该宏块的分区的使用的分区条目中。该方法可以通过将该被结合的头部数据存储在该宏块的分区条目的任何不使用的字节中来实现这点。在一些实施方式中,宏块的被结合的头部数据仅存储在该宏块的第一分区的第一使用的分区条目中。在一些实施方式中,被结合的头部数据包括使用的分区条目中的2字节不使用的字节。
在一些实施方式中,该方法1200随后将使用的分区条目存储/放置(在1217)在该分配的存储部分的第一区段中。在一些实施方式中,该方法1200还将不使用的分区条目(不含有分区数据的条目)存储/放置(在1220)在该分配的存储部分的第二区段中。在一些实施方式中,该方法1200随后生成(在1225)与该分配的存储部分相关的定位器列表,该定位器列表包括索引列表,其含有在该分配的部分中的分区条目的位置信息。然后该方法结束。
标准基准帧索引
在一些实施方式中,对标准基准帧索引进行计算并将其存储在每个分区条目的不使用的字节中。在这些实施方式中,分区条目的第一和第二基准帧索引分别与标准基准帧索引形成映射。
正如以上联系图2所讨论的那样,与运动向量相联系的基准帧索引在基准帧列表中指定条目(含有帧号),其指示该运动向量所依据的帧。由于第一和第二基准帧列表可以对于帧的每个片段而改变,因此不可能有保证地确定在不同宏块的不同分区条目中具有相同值的基准帧索引是否指示同一帧。例如,在两个不同宏块中的两个分区条目可能每个具有与其第一运动向量相关的基准帧索引“2”。可是这并不表示这两个第一运动向量都基于同一帧。
这导致例如在解码过程的去块效应滤波器(deblocking filter)阶段中的低效率。在去块效应滤波器阶段中,对于两个时间相邻的宏块,确定这些分区的第一和第二运动向量的值是否相同(或者在预定偏差之内),并且确定第一和第二运动向量是否基于同一帧。如果是这样,这表示这些分区的运动是相同的(或几乎相同),由此随后应用不同的去块效应滤波过程(例如,较弱的滤波过程)。
典型地,一个效率低的过程用于确定两个分区的第一和第二运动向量是否基于同一帧。这个过程要求每个分区:检索与该运动向量相关的基准帧索引、检索基准帧列表、确定由基准帧索引所指定的基准帧列表中的帧号。然后,这个过程需要对这些帧号进行比较,来确定这些帧是否是相同的。
在一些实施方式中,产生标准基准帧列表,并将其存储并用于帧的所有片段或一个序列的所有帧。在一些实施方式中,在解码过程中没有修改该标准基准帧列表。图13表示标准基准帧列表的实例。
在一些实施方式中,分区条目中的基准帧索引与标准基准帧索引形成映射。在这些实施方式中,基准帧索引和相联系的基准帧列表一起确定由基准帧索引所指示的帧号。然后使匹配的帧号在标准基准帧列表中定位,以在含有该匹配帧号的标准基准帧列表中确定条目号(标准基准帧索引)。该确定的标准基准帧索引然后存储在分区条目的不使用的字节中。在图9所示的实例中,标准基准帧索引935的数据包括两个字节的不使用的字节525。
下面是使用图13所示的标准基准帧列表和图2所示的第一和第二基准帧列表进行映射过程的实例。假定第一基准帧索引“2”和第二基准帧索引“0”包含在分区条目中。与基准帧索引“2”相联系的第一基准帧列表在条目号0、1和2处分别含有帧号2、1和0。这样,基准帧索引“2”指示帧号0。在标准基准帧列表中,该帧号0与条目0中的帧号相匹配。这样,基准帧索引2与标准基准帧索引0形成映射。相似地,与第二基准帧索引“0”相联系的第二基准帧列表在条目号0、1和2处分别含有帧号4、5和6。这样,第二基准帧索引“0”指示帧号4。在该标准基准帧列表中,帧号4与条目3中的帧号相匹配。这样,第二基准帧索引0与标准基准帧索引3形成映射。
在一些实施方式中,单个标准基准帧列表被产生并存储。在另一些实施方式中,分别产生并存储用于识别第一运动向量的特定帧的第一标准基准帧列表和用于识别第二运动向量的特定帧的第二标准基准帧列表。
在这些实施方式中,生成标准基准帧列表以及将基准帧索引映射到标准基准帧索引会增加开销。然而,一旦实施这些操作,就及时减少了用于确定两个分区的运动向量是否基于同一帧的过程。在这些实施方式中,为了执行该确定,仅需要检索和比较该分区的标准基准帧索引。此外,由于不需要该帧号的实际值,因此不需要确定由该标准基准帧索引所指示的帧号。由于标准基准帧索引对同一标准基准帧列表进行索引,因此具有相同值的标准基准帧索引由此指定相同的帧号。
图14是使用标准基准帧索引存储帧序列中的一组帧片段的数据的方法1400流程图。该方法1400可以例如通过配置来使用数据存储设备结构对视频数据流进行编码或解码的应用而实施。
该方法1400开始于接收(在1405)视频帧的一组的一个或多个片段,每个片段含有两个或更多个宏块,其中每个宏块包括一个或多个分区。该组片段的数据包括每个片段的头部数据(含有一个或多个初始基准帧列表的数据)、与这些宏块的分区相联系的分区数据(运动向量以及初始基准帧索引数据),以及每个宏块的头部数据。在一些实施方式中,分区的运动向量和初始基准帧索引数据包括用于第一和第二运动向量以及相联系的第一和第二初始基准帧索引的数据。第一初始基准帧索引在相联系的第一初始基准帧列表(其可以从包括的该分区的片段的头部数据中得到)中指定一个条目(含有帧号),该条目指示该第一运动向量所基于的该帧序列中的特定帧。同样,第二初始基准帧索引在相联系的第二初始基准帧列表(其可以从包括该分区的片段的头部数据中得到)中指定一个条目,该条目指示该第二运动向量所基于的该帧序列中的特定帧。
然后该方法生成或接收(在1406)标准基准帧列表,该标准基准帧列表用于该组片段中的所有片段。该标准基准帧列表包括一列标准基准帧索引(条目号)以及一列帧号,每个帧号对应特定标准基准帧索引。在一些实施方式中,生成用于映射第一和第二初始基准帧索引
(下面将要讨论)的单个标准基准帧列表。在另一些实施方式中,分别生成用于映射第一和第二初始基准帧索引的第一和第二标准基准帧列表。
对于接收到的一组片段中宏块的每个分区,该方法1400使用初始基准帧列表和标准基准帧列表,将与该分区相联系的第一和第二初始基准帧索引分别映射(在1407)到第一和第二标准基准帧索引。该方法可以通过确定与分区相联系的初始基准帧列表中的初始基准帧索引所指示的帧号,在该标准基准帧列表中匹配该帧号,并且对应于该匹配的帧号来确定标准基准帧索引来实现。这样,第一和第二标准基准帧索引分别指示与该分区相联系的第一和第二运动向量所基于的那些帧。
注意,同一标准基准帧列表用于使分区的初始基准帧索引与标准基准帧索引形成映射。即使该初始基准帧索引可以根据不同的初始基准帧列表(例如,当与该初始基准帧索引相联系的分区处于接收的一组片段中的不同片段中时),这也是不变的。结果,即使这些分区包括在不同的片段中,在具有同一相联系的标准基准帧索引的组中的任一片段中的任何分区都涉及并且指示该帧序列中的同一帧。如上所述,该标准基准帧索引的这个特点可以在该分区随后的处理过程中提供便利。
对于该组片段中的每个片段,然后该方法1400分配(在1410)用于存储该片段数据的存储设备结构的特定部分。在这些实施方式中,给每个片段的每个宏块分配预定个数的分区条目。然后该方法将与该片段的分区相联系的分区数据存储(在1412)在该分配的分区条目中(称为使用的分区条目)。
对于在接收到的该组片段中的每个分区,该方法1400然后将与该分区相联系的第一和第二标准基准帧索引存储(在1415)在该分区的使用的分区条目中。该方法可以通过将第一和第二标准基准帧索引数据存储在该分区的分区条目的任何不使用的字节中来实现。在一些实施方式中,第一和第二标准基准帧索引数据包括使用的分区条目中2个字节的不使用的字节。
在一些实施方式中,对于每个片段(包括多个分区),该方法1400还将使用的分区条目(含该片段中的分区的数据)存储/放置(在1417)在该片段分配得到的存储部分的第一区段中。在一些实施方式中,对于每个片段,该方法1400还将不使用的分区条目(不含有分区数据的条目)存储/放置(在1420)在该片段分配得到的存储部分的第二区段中。在一些实施方式中,对于每个片段,该方法1400产生(在1425)与该片段分配的存储部分相联系的定位器列表,该定位器列表包括索引列表,其含有在该分配的部分中的分区条目的位置信息。然后该方法结束。
在分区条目中的不使用的字节的其它用途
如上所述,分区条目含有6个不使用的字节。在一些实施方式中,被结合的头部数据930存储在宏块的第一分区的不使用的字节中。在一些实施方式中,计算标准基准帧索引935,并将其存储在每个分区条目的不使用的字节中。
在另一些实施方式中,使用该分区条目的不使用的字节使分区的编码和解码更有效。在一些实施方式中,分区条目的不使用字节用于存储方便该分区的编码或解码的被识别或计算的数据。例如,可以计算该宏块的多个分区,或将其存储在该宏块的第一分区的不使用字节中。这就不需要在解码过程中之后进行的多个分区的计算。在图9所示的实例中,多个分区940的数据包括一个字节的不使用字节。
在图9所示的实例中,使用的字节525中的数据(诸如被结合的头部数据930以及标准基准帧索引的数据935)以特定的顺序表示在分区条目900中。不过,本领域普通技术人员将理解也可以使用其它数据顺序。
分区的合并:
在一些实施方式中,当相同宏块的一些或所有分区具有相同的运动向量和相同的基准帧索引(称为同一分区)时,为了解码的目的,相同分区聚集(合并)成单个分区。在这种情况下,对于该宏块只需保存一个分区条目,而不是保存多个分区条目,由此减少了存储设备的开销。
图15A表示当该相同宏块的所有四个分区都具有相同运动向量和基准帧索引时,这四个分区为了解码合并成单个分区的实例。这样,对于该宏块只需保存一个分区条目,而不是四个分区条目。图15B表示当该相同宏块的五个分区中的两个具有相同的运动向量和基准帧索引时的实例,这两个相同的分区位于该宏块的左上侧。如图15B所示,这两个相同的分区合并成单个分区,使得对于该宏块只需保存四个分区条目,而不是五个分区条目。
在一些实施方式中,该合并方法结合本发明的分区条目打包方法(关于图6已在以上讨论)一起使用。在这些实施方式中,在将宏块的使用分区条目打包在存储设备结构分配部分的第一区段中之前,检查该宏块分区,以确定在该宏块中是否有任何相同的分区。如果有,则该宏块的相同分区聚合成单个分区,并且这些相同分区的单个分区条目存储在该分配部分的第一区段中。
当相同宏块分区具有相同的第一和第二运动向量以及相同的第一和第二基准帧索引时,就可以更有效地将同样的分区处理成单个分区。尽管进行运动向量和基准帧索引比较会有初始时间的开销,但是一旦同样的分区合并成单个分区,那么可以比以前更快地执行每个解码阶段,为了执行任何解码功能,仅需要在一个较大的合并过的分区上执行一个操作,而不需要在几个较小的分区上执行几个操作。对每个将要在该合并的分区上执行的每个解码功能在时间上将比之前更有效率,仅需要一个加载操作和一个解码功能的请求,而不需要多个加载操作和多个解码功能请求。
注意,相同宏块的分区使用相同的基准帧列表,这是由于相同的基准帧列表用于相同片段的所有宏块。这样,由于基准帧索引结合相同的基准帧列表一起使用,不需要确定和比较由基准帧索引所指定的实际帧号。
图16是合并视频片段的宏块分区的方法1600流程图。在一些实施方式中,该方法1600包括关于图8描述的方法800的步骤807。在图8的方法800中,方法800接收(在805)视频帧的片段数据,该片段含有两个或更多个宏块,其中每个宏块包含一个或多个分区。该片段的数据包括分区数据(例如,运动向量和基准帧索引数据),其与该片段的宏块的分区以及每个宏块的头部数据相联系。
该方法1600开始于将接收到的片段设定(在1605)成当前宏块。该方法1600然后通过比较与分区相联系的分区数据(运动向量和基准帧索引数据)对当前宏块的所有分区进行比较(在1610)。该方法然后确定(在1615)当前宏块的任何分区是否是相同的(即,与任何分区相联系的该运动向量和基准帧索引数据是否是相同的)。如果相同,则该方法将当前宏块的相同分区合并(在1620)成一个分区,并继续步骤1625。如果不同,那么该方法直接进行到步骤1625。
在步骤1625,该方法确定当前宏块是否是该片段的最后一个宏块。如果不是,该方法将下一个宏块设定(在1630)成当前宏块,并继续步骤1610。如果是最后一个宏块,那么该方法结束。
图17代表计算机系统1700,本发明的一些实施方式通过该计算机系统1700而实现。计算机系统1700包括总线1705、处理器1710、系统存储器1715、只读存储器1720、永久存储设备1725、输入设备1730以及输出设备1735。
总线1705集中代表所有系统、外围设备以及芯片组总线,这些总线可通信地连接计算机系统1700的多个内部设备。例如,总线1705通过只读存储器1720、系统存储器1715以及永久存储设备1725可通信地连接处理器1710。
只读存储器(ROM)1720存储处理器1710和该计算机系统的其它模块所必须的静态数据和指令。另一方面,该永久存储设备1725是读写存储设备。该设备是非易失性存储器单元,即使当该计算机系统1700关闭时,其也存储指令和数据。本发明的一些实施方式使用海量存贮设备(诸如磁盘或光盘以及其相应的磁盘驱动)作为永久存储设备1725。另一些实施方式使用可移动存储设备(诸如软盘或
Figure BDA00001670943300181
盘,及其相应的磁盘驱动器)作为永久存储设备。
和永久存储设备1725类似,系统存储器1715是读写存储器设备。然而与存储设备1725不同的是,系统存储器是易失性读写存储器,诸如随机存取存储器(RAM)。该系统存储器存储处理器在运行期间所需的一些指令和数据。
在一些实施方式中,实现本发明的方法所必需的指令和/或数据存储在系统存储器1715、永久存储设备1725、只读存储器1720或者三者的任意组合中。例如,不同的存储器单元可以包括用于根据本发明的方法编码或解码视频数据流的指令,和/或包括视频数据。为了执行本发明的过程,处理器1710从这些不同的存储单元检索执行的指令和处理的数据。
总线1705也连接到输入和输出设备1730和1735。输入设备1730可以使得用户传递信息并选择给计算机系统1700的命令。输入设备1730包括字母数字键盘和光标控制器。输出设备1735显示由计算机系统1700生成的图像。输出设备包括打印机和显示设备,诸如阴极射线管(CRT)和液晶显示器(LCD)。
最后,如图17所示,例如通过网络适配器(未示出),总线1705也将计算机系统1700连接到网络1765。以这种方式,计算机系统1700可以是计算机网络(诸如局域网(“LAN”)、广域网(“WAN”)或者企业内部互联网)或者网络(诸如因特网)的一部分。计算机系统1700的任何或所有组件可以结合本发明一起使用。然而,本领域的普通技术人员将理解任何其它的系统配置也可以用在本发明中。
虽然根据本发明参考多个具体细节进行了描述,但是本领域的普通技术人员将认识到在不背离本发明的精神的情况下,可以以其它具体的形式来体现本发明。例如,本发明的多个实施方式通过参照宏块进行了上述描述。本领域的普通技术人员将认识到这些实施方式可以结合其它像素值阵列一起使用。

Claims (32)

1.一种对视频画面的像素分组进行分区的方法,该方法包括:
接收包括第一像素分区和第二像素分区的像素分组;
确定所述像素分组的第一像素分区的属性集合是否与所述像素分组的第二像素分区的属性集合相同;以及
当所述第一像素分区的属性集合与所述第二像素分区的属性集合相同时,通过将所述第一像素分区与所述第二像素分区合并,来限定所述像素分组的第三像素分区。
2.如权利要求1所述的方法,其中,所述视频画面包括多个像素分组,每个像素分组包括像素分区的集合,所述方法还包括:
定义用于存储所述多个像素分组的像素分区的数据的存储结构;以及
代替在所述存储结构中存储所述第一和第二像素分区的数据,将所述第三像素分区的数据存储于所述存储结构中。
3.如权利要求1所述的方法,其中所述第一像素分区的属性集合包括所述第一像素分区的运动向量,其中所述第二像素分区的属性集合包括所述第二像素分区的运动向量。
4.如权利要求1所述的方法,其中所述第一像素分区的属性集合包括所述第一像素分区的基准视频画面索引值,其中所述第二像素分区的属性集合包括所述第二像素分区的基准视频画面索引值。
5.如权利要求1所述的方法,其中所述像素分组还包括第四像素分区,其中所述确定还包括确定所述像素分组的第四像素分区的属性集合是否与所述第一和第二像素分区的属性集合相同。
6.如权利要求5所述的方法,其中限定所述第三像素分区包括当所述第四像素分区的属性集合与所述第一和第二像素分区的属性集合相同时,通过将所述第一、第二和第四像素分区合并来限定所述像素分组的第三像素分区。
7.如权利要求6所述的方法,其中,所述视频画面包括多个像素分组,每个像素分组包括像素分区的集合,所述方法还包括:
定义用于存储所述多个像素分组的像素分区的数据的存储结构;以及
代替在所述存储结构中存储所述第一、第二和第四像素分区的数据,将所述第三像素分区的数据存储于所述存储结构中。
8.如权利要求1所述的方法,其中所述像素分组是宏块。
9.如权利要求1所述的方法,其中所述接收、确定和限定步骤在解码操作期间进行。
10.一种用于指定用于解码视频帧序列的基准帧列表的方法,每个帧包含一组片段,每个片段包含一个或更多宏块,每个宏块包含一个或更多分区,其中每个片段的数据包含初始基准帧列表的数据,所述方法包括:
对于视频帧序列中的第一视频帧的第一片段和第二视频帧的第二片段中的每一个,存储与特定宏块的特定分区相关联的数据,其中所述数据包含运动向量和指示在初始基准帧列表中的帧号的初始基准帧索引,所述帧号指示帧序列中运动向量所依据的特定帧,其中所述第一片段的初始基准帧列表不同于所述第二片段的初始基准帧列表;
使用所述初始基准帧列表和标准基准帧列表,将所述第一片段和所述第二片段中的每个的初始基准帧索引映射到标准基准帧索引;以及
将所述标准基准帧索引的数据存储在计算机系统的存储器中。
11.如权利要求10所述的方法,其中,对于至少一个帧中的多个分区执行所述映射。
12.如权利要求10所述的方法,其中,所述标准基准帧索引指示在所述标准基准帧列表中的帧号,所述帧号指示帧序列中与分区相关联的运动向量所依据的特定帧。
13.如权利要求10所述的方法,其中,为任一片段中具有相同值的任何分区映射的任何标准基准帧索引指示帧序列中相同的特定帧。
14.如权利要求10所述的方法,其中,为多个帧中的多个分区执行所述映射。
15.一种用于指定用于解码视频帧序列的基准帧列表的方法,每个帧包含一组片段,每个片段包含一个或更多宏块,每个宏块包含一个或更多分区,其中每个特定片段的数据包含所述特定片段的初始基准帧列表的数据,其中特定片段的宏块的每个分区具有相关联的运动向量和相关联的初始基准帧索引,所述初始基准帧索引对应于在所述特定片段的初始基准帧列表中的帧号,所述帧号指示帧序列中所述运动向量所依据的特定帧,其中至少一个初始基准帧索引不对应于不同运动向量的相同帧号,所述方法包括:
接收帧序列的标准基准帧列表,所述标准基准帧列表包括多个帧号,所述标准基准帧列表中的每个帧号对应于标准基准帧索引和运动向量将要基于的唯一帧,每个标准基准帧索引对应于不同运动向量的相同帧号;
对于片段中的分区,识别与所述标准基准帧列表中的、与相关联的初始基准帧索引所对应的帧号相同的帧号对应的标准基准帧索引;以及
将所识别的标准基准帧索引的数据存储到所述分区的所使用的分区条目中。
16.如权利要求15所述的方法,其中,对于所述帧序列中的至少一个帧中的多个分区执行所述识别。
17.一种用于对视频画面的像素分组进行分区的设备,该设备包括:
用于接收包括第一像素分区和第二像素分区的像素分组的装置;
用于确定所述像素分组的第一像素分区的属性集合是否与所述像素分组的第二像素分区的属性集合相同的装置;以及
用于当所述第一像素分区的属性集合与所述第二像素分区的属性集合相同时,通过将所述第一像素分区与所述第二像素分区合并,来限定所述像素分组的第三像素分区的装置。
18.如权利要求17所述的设备,其中,所述视频画面包括多个像素分组,每个像素分组包括像素分区的集合,所述设备还包括:
用于定义用于存储所述多个像素分组的像素分区的数据的存储结构的装置;以及
用于代替在所述存储结构中存储所述第一和第二像素分区的数据,将所述第三像素分区的数据存储于所述存储结构中的装置。
19.如权利要求17所述的设备,其中所述第一像素分区的属性集合包括所述第一像素分区的运动向量,其中所述第二像素分区的属性集合包括所述第二像素分区的运动向量。
20.如权利要求17所述的设备,其中所述第一像素分区的属性集合包括所述第一像素分区的基准视频画面索引值,其中所述第二像素分区的属性集合包括所述第二像素分区的基准视频画面索引值。
21.如权利要求17所述的设备,其中所述像素分组还包括第四像素分区,其中所述用于确定所述像素分组的第一像素分区的属性集合是否与所述像素分组的第二像素分区的属性集合相同的装置还包括用于确定所述像素分组的第四像素分区的属性集合是否与所述第一和第二像素分区的属性集合相同的装置。
22.如权利要求21所述的设备,其中用于限定所述像素分组的第三像素分区的装置包括用于当所述第四像素分区的属性集合与所述第一和第二像素分区的属性集合相同时,通过将所述第一、第二和第四像素分区合并来限定所述像素分组的第三像素分区的装置。
23.如权利要求22所述的设备,其中,所述视频画面包括多个像素分组,每个像素分组包括像素分区的集合,所述设备还包括:
用于定义用于存储所述多个像素分组的像素分区的数据的存储结构的装置;以及
用于代替在所述存储结构中存储所述第一、第二和第四像素分区的数据,将所述第三像素分区的数据存储于所述存储结构中的装置。
24.如权利要求17所述的设备,其中所述像素分组是宏块。
25.如权利要求17所述的设备,其中所述接收、确定和限定在解码操作期间进行。
26.一种用于指定用于解码视频帧序列的基准帧列表的设备,每个帧包含一组片段,每个片段包含一个或更多宏块,每个宏块包含一个或更多分区,其中每个片段的数据包含初始基准帧列表的数据,所述设备包括:
用于对于视频帧序列中的第一视频帧的第一片段和第二视频帧的第二片段中的每一个,存储与特定宏块的特定分区相关联的数据的装置,其中所述数据包含运动向量和指示在初始基准帧列表中的帧号的初始基准帧索引,所述帧号指示帧序列中运动向量所依据的特定帧,其中所述第一片段的初始基准帧列表不同于所述第二片段的初始基准帧列表;
用于使用所述初始基准帧列表和标准基准帧列表,将所述第一片段和所述第二片段中的每个的初始基准帧索引映射到标准基准帧索引的装置;以及
用于将所述标准基准帧索引的数据存储在计算机系统的存储器中的装置。
27.如权利要求26所述的设备,其中,对于至少一个帧中的多个分区执行所述映射。
28.如权利要求26所述的设备,其中,所述标准基准帧索引指示在所述标准基准帧列表中的帧号,所述帧号指示帧序列中与分区相关联的运动向量所依据的特定帧。
29.如权利要求26所述的设备,其中,为任一片段中具有相同值的任何分区映射的任何标准基准帧索引指示帧序列中相同的特定帧。
30.如权利要求26所述的设备,其中,为多个帧中的多个分区执行所述映射。
31.一种用于指定用于解码视频帧序列的基准帧列表的设备,每个帧包含一组片段,每个片段包含一个或更多宏块,每个宏块包含一个或更多分区,其中每个特定片段的数据包含所述特定片段的初始基准帧列表的数据,其中特定片段的宏块的每个分区具有相关联的运动向量和相关联的初始基准帧索引,所述初始基准帧索引对应于在所述特定片段的初始基准帧列表中的帧号,所述帧号指示帧序列中所述运动向量所依据的特定帧,其中至少一个初始基准帧索引不对应于不同运动向量的相同帧号,所述设备包括:
用于接收帧序列的标准基准帧列表的装置,所述标准基准帧列表包括多个帧号,所述标准基准帧列表中的每个帧号对应于标准基准帧索引和运动向量将要基于的唯一帧,每个标准基准帧索引对应于不同运动向量的相同帧号;
用于对于片段中的分区,识别与所述标准基准帧列表中的、与相关联的初始基准帧索引所对应的帧号相同的帧号对应的标准基准帧索引的装置;以及
用于将所识别的标准基准帧索引的数据存储到所述分区的所使用的分区条目中的装置。
32.如权利要求31所述的设备,其中,对于所述帧序列中的至少一个帧中的多个分区执行所述识别。
CN201210161495.7A 2004-06-27 2005-06-27 在视频数据流的编码和解码中存储设备的有效使用 Active CN102724497B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US58344704P 2004-06-27 2004-06-27
US60/583,447 2004-06-27
US11/071,901 US7852916B2 (en) 2004-06-27 2005-03-01 Efficient use of storage in encoding and decoding video data streams
US11/071,901 2005-03-01
CN 200510079995 CN1812579B (zh) 2004-06-27 2005-06-27 在视频数据流的编码和解码中存储设备的有效使用

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN 200510079995 Division CN1812579B (zh) 2004-06-27 2005-06-27 在视频数据流的编码和解码中存储设备的有效使用

Publications (2)

Publication Number Publication Date
CN102724497A true CN102724497A (zh) 2012-10-10
CN102724497B CN102724497B (zh) 2016-06-01

Family

ID=34942453

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201210161495.7A Active CN102724497B (zh) 2004-06-27 2005-06-27 在视频数据流的编码和解码中存储设备的有效使用
CN2010101212733A Active CN101778290B (zh) 2004-06-27 2005-06-27 在视频数据流的编码和解码中存储设备的有效使用

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN2010101212733A Active CN101778290B (zh) 2004-06-27 2005-06-27 在视频数据流的编码和解码中存储设备的有效使用

Country Status (6)

Country Link
US (3) US7852916B2 (zh)
EP (1) EP1610562B1 (zh)
JP (2) JP5102947B2 (zh)
KR (2) KR101121612B1 (zh)
CN (2) CN102724497B (zh)
TW (1) TWI267305B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60330198D1 (de) 2002-09-04 2009-12-31 Microsoft Corp Entropische Kodierung mittels Anpassung des Kodierungsmodus zwischen Niveau- und Lauflängenniveau-Modus
US7852916B2 (en) 2004-06-27 2010-12-14 Apple Inc. Efficient use of storage in encoding and decoding video data streams
US20070291839A1 (en) * 2006-06-15 2007-12-20 Faraday Technology Corp. Method and device for multimedia processing
US9204149B2 (en) * 2006-11-21 2015-12-01 Vixs Systems, Inc. Motion refinement engine with shared memory for use in video encoding and methods for use therewith
US8630355B2 (en) * 2006-12-22 2014-01-14 Qualcomm Incorporated Multimedia data reorganization between base layer and enhancement layer
JP5061741B2 (ja) * 2007-06-13 2012-10-31 日本電気株式会社 情報処理装置及びそれに用いる順序付きデータ管理方法並びにそのプログラム
US8179974B2 (en) 2008-05-02 2012-05-15 Microsoft Corporation Multi-level representation of reordered transform coefficients
US8233621B2 (en) * 2008-06-16 2012-07-31 Hitachi, Ltd. Slice-based prioritized secure video streaming
US8406307B2 (en) * 2008-08-22 2013-03-26 Microsoft Corporation Entropy coding/decoding of hierarchically organized data
US8503527B2 (en) 2008-10-03 2013-08-06 Qualcomm Incorporated Video coding with large macroblocks
US8665959B2 (en) * 2010-04-12 2014-03-04 Qualcomm Incorporated Block and partition signaling techniques for video coding
US9398308B2 (en) 2010-07-28 2016-07-19 Qualcomm Incorporated Coding motion prediction direction in video coding
US9066102B2 (en) 2010-11-17 2015-06-23 Qualcomm Incorporated Reference picture list construction for generalized P/B frames in video coding
KR20120066305A (ko) * 2010-12-14 2012-06-22 한국전자통신연구원 비디오 움직임 예측 및 보상용 캐싱 장치 및 방법
US10244239B2 (en) 2010-12-28 2019-03-26 Dolby Laboratories Licensing Corporation Parameter set for picture segmentation
US9008176B2 (en) 2011-01-22 2015-04-14 Qualcomm Incorporated Combined reference picture list construction for video coding
US8934552B2 (en) 2011-03-31 2015-01-13 Qualcomm Incorporated Combined reference picture list construction and mapping
EP2721816A4 (en) * 2011-06-16 2015-03-18 Freescale Semiconductor Inc METHOD AND DEVICE FOR ENCODING AND DECODING AN IMAGE
US9232233B2 (en) * 2011-07-01 2016-01-05 Apple Inc. Adaptive configuration of reference frame buffer based on camera and background motion
US8891630B2 (en) 2011-10-24 2014-11-18 Blackberry Limited Significance map encoding and decoding using partition set based context assignment
US9277928B2 (en) 2013-03-11 2016-03-08 Interventional Spine, Inc. Method and apparatus for minimally invasive insertion of intervertebral implants
TWI549437B (zh) * 2014-07-15 2016-09-11 友達光電股份有限公司 編解碼系統與方法
KR102477264B1 (ko) 2015-09-22 2022-12-13 삼성전자주식회사 텍스쳐를 처리하는 방법 및 장치

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE59106776D1 (de) 1991-08-30 1995-11-30 Siemens Ag Steuerung für einen Kraftfahrzeugantrieb mit einem automatischen Getriebe.
US5497404A (en) * 1992-07-14 1996-03-05 General Instrument Corporation Transmission error recovery for digital communication systems using variable length data packets where data is stored in header locations of memory
JP3240017B2 (ja) * 1993-01-11 2001-12-17 ソニー株式会社 Mpeg信号記録方法およびmpeg信号再生方法
WO1994018799A1 (en) 1993-02-03 1994-08-18 Qualcomm Incorporated Interframe video encoding and decoding system
EP0710422B1 (en) * 1993-07-19 1998-09-30 BRITISH TELECOMMUNICATIONS public limited company Detecting errors in video images
US5598514A (en) * 1993-08-09 1997-01-28 C-Cube Microsystems Structure and method for a multistandard video encoder/decoder
US5920352A (en) * 1994-10-28 1999-07-06 Matsushita Electric Industrial Co., Ltd. Image memory storage system and method for a block oriented image processing system
KR0171143B1 (ko) * 1995-03-20 1999-03-20 배순훈 육각그리드에서의 삼각구조 형성 장치
FR2745650B1 (fr) * 1996-02-29 1998-05-22 Sgs Thomson Microelectronics Adressage d'une zone memoire d'un decodeur mpeg
US5852630A (en) * 1997-07-17 1998-12-22 Globespan Semiconductor, Inc. Method and apparatus for a RADSL transceiver warm start activation procedure with precoding
US6266373B1 (en) * 1998-06-15 2001-07-24 U.S. Philips Corporation Pixel data storage system for use in half-pel interpolation
US6529634B1 (en) 1999-11-08 2003-03-04 Qualcomm, Inc. Contrast sensitive variance based adaptive block size DCT image compression
US7079579B2 (en) 2000-07-13 2006-07-18 Samsung Electronics Co., Ltd. Block matching processor and method for block matching motion estimation in video compression
JP3940657B2 (ja) * 2002-09-30 2007-07-04 株式会社東芝 動画像符号化方法と装置及び動画像復号化方法と装置
US6646578B1 (en) 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
KR20040093605A (ko) * 2003-04-30 2004-11-06 삼성전자주식회사 고속 움직임 추정을 위한 블록 모드 결정 방법 및 그 장치
US8467447B2 (en) 2004-05-07 2013-06-18 International Business Machines Corporation Method and apparatus to determine prediction modes to achieve fast video encoding
US7852916B2 (en) 2004-06-27 2010-12-14 Apple Inc. Efficient use of storage in encoding and decoding video data streams
TWI248312B (en) * 2004-11-16 2006-01-21 Aiptek Int Inc Method for locating the partitions of a video image

Also Published As

Publication number Publication date
KR20100009623A (ko) 2010-01-28
TWI267305B (en) 2006-11-21
JP5524997B2 (ja) 2014-06-18
US8428123B2 (en) 2013-04-23
EP1610562B1 (en) 2016-07-27
US20050286634A1 (en) 2005-12-29
KR101121612B1 (ko) 2012-02-28
EP1610562A3 (en) 2010-07-21
KR20060092814A (ko) 2006-08-23
US20100329349A1 (en) 2010-12-30
KR101085622B1 (ko) 2011-11-22
CN101778290B (zh) 2012-07-18
TW200610412A (en) 2006-03-16
US20120201305A1 (en) 2012-08-09
US8194730B2 (en) 2012-06-05
JP2006025414A (ja) 2006-01-26
JP2012170118A (ja) 2012-09-06
JP5102947B2 (ja) 2012-12-19
CN102724497B (zh) 2016-06-01
EP1610562A2 (en) 2005-12-28
US7852916B2 (en) 2010-12-14
CN101778290A (zh) 2010-07-14

Similar Documents

Publication Publication Date Title
CN101778290B (zh) 在视频数据流的编码和解码中存储设备的有效使用
CN1812579B (zh) 在视频数据流的编码和解码中存储设备的有效使用
US7324026B2 (en) Optimization of decoder memory usage for VLC tables
CN1615653B (zh) 多通道视频译码的系统和方法
US7835443B2 (en) Method of selecting a reference picture
EP2391132A1 (en) Video processing system, computer program product and method for managing a transfer of information between a memory unit and a decoder
US8548962B2 (en) Data compression and decompression using relative and absolute delta values
EP1602240A2 (en) Array arrangement for memory words and combination of video prediction data for an effective memory access
US7813432B2 (en) Offset buffer for intra-prediction of digital video
CN104704825A (zh) 分段图像数据的无损压缩
US6940909B2 (en) Video decoding during I-frame decode at resolution change
US7400683B2 (en) Device with virtual tilized image memory
US6412054B1 (en) Storage disk declustering method
KR20220166198A (ko) 그래픽 처리 시스템들 내의 메모리에 데이터를 저장하기 위한 방법들 및 장치
Marvie et al. Remote rendering of massively textured 3D scenes through progressive texture maps
JP4162348B2 (ja) メモリ混載画像処理用lsiおよび画像処理装置
US6404358B1 (en) Decoding method for a Huffman code
US6181354B1 (en) Image generator using display memory
JP3367314B2 (ja) 符号化装置、復号装置、符号化方法、復号方法、および、画像処理装置
Seo et al. Experimental evaluation for scalability and QoS in a VOD System

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