CN102263946B - 用于存储和获取像素数据的技术 - Google Patents
用于存储和获取像素数据的技术 Download PDFInfo
- Publication number
- CN102263946B CN102263946B CN201110135358.1A CN201110135358A CN102263946B CN 102263946 B CN102263946 B CN 102263946B CN 201110135358 A CN201110135358 A CN 201110135358A CN 102263946 B CN102263946 B CN 102263946B
- Authority
- CN
- China
- Prior art keywords
- view data
- memory
- data
- compression
- golomb
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N5/00—Details of television systems
- H04N5/76—Television signal recording
- H04N5/91—Television signal processing therefor
- H04N5/92—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback
- H04N5/926—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation
- H04N5/9261—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation involving data reduction
- H04N5/9264—Transformation of the television signal for recording, e.g. modulation, frequency changing; Inverse transformation for playback by pulse code modulation involving data reduction using transform coding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/40—Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
- H03M7/4031—Fixed length to variable length coding
- H03M7/4037—Prefix coding
- H03M7/4043—Adaptive prefix coding
- H03M7/4068—Parameterized codes
- H03M7/4075—Golomb codes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/87—Regeneration of colour television signals
- H04N9/877—Regeneration of colour television signals by assembling picture element blocks in an intermediate memory
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
描述了可以用于将宏块存储到存储器和从存储器获取宏块的技术。在一些情况中,宏块可以以翻转的行和列地址被存储在存储器的可寻址存储单元。因为宏块以列被存储而在行上被获取,所以可以在单个读突发中获取多个宏块的部分。所述部分可以被Golomb译码并存储,从而可以从所述部分重组宏块。在一些情况中,编码后的视频的宏块可以被存储在连续的可寻址存储单元。
Description
技术领域
本文公开的主题总地涉及用于存储和获取像素数据的技术。
背景技术
一些集成在片上系统(SoC)设备中的视频编码器和译码器将视频数据写入存储器并且从存储器取得视频数据以用于运动向量生成和运动补偿。运动向量生成器和运动补偿是视频编码和译码中公知的技术。对外部存储器进行的读写可能消耗大量的功率。随着消费类电子设备中视频帧大小的增加,期望减少从存储器进行读操作以及对存储器进行写操作的次数。减少对存储器的读写次数可以降低功耗,并且潜在地释放存储器以供视频编码器和译码器之外的设备使用。
附图说明
在附图中以示例的方式而非限制性的方式图示出本发明的实施例,在附图中类似的标号指代类似的要素。
图1描绘视频译码系统的示例。
图2A示出数个示例,在所述示例中在突发中沿存储单元的行从存储器读取像素。
图2B描绘了当压缩后的数据以反转的列和行地址被存储时存储压缩后的数据和从存储器获取压缩后的数据的方式。
图3描绘了根据实施例的视频编码器系统的示例。
图4A描绘了以常规方式写和读宏块的方式。
图4B描绘了以展开方式读和写宏块的方式。
图5描绘了由视频译码系统用来存储和获取宏块的示例性过程。
图6描绘了由视频编码系统使用的示例性过程。
图7描绘了根据实施例的系统。
具体实施方式
贯穿本说明书提及“一个实施例”或“实施例”意指结合该实施例描述的特定特征、结构或特性被包括在本发明的至少一个实施例中。因此,贯穿本说明书各处出现的短语“在一个实施例中”或“实施例”并非必须全部指代同一实施例。另外,所述特定特征、结构或特性可以在一个或多个实施例中组合。
各实施例潜在地减少分别用于读写基准图片的读写操作次数。一些实施例尝试无损压缩所述基准图片并且将压缩后的基准图片存储到存储器中以供视频编码器或视频译码器使用。对于视频译码器请求存储的图片,使用翻转寻址策略,由此列地址成为行地址,并且行地址成为列地址。压缩后的图片根据该翻转存储器寻址策略存储到存储器中。
为了从存储器获取以翻转配置(configuration)存储的基准图片,可以读取并解压缩一个或多个行的基准图片数据。解压缩后的基准图片数据可以存储到存储器中。当压缩后的基准图片数据以列存储而以行读取时,可以获取基准图片的多个行的部分。基准图片的多个行的部分可以存储在存储器中并且为了视频译码器而被重组。在一些情况下,如果基准图片的一特定像素是由视频译码器请求的,则进行对基准图片多个行的部分的读取,直至识别出所请求的像素(或多个像素)。可以获取一个或多个突发大小量的数据以获取所请求的像素。如果已经读取了数据的额外像素,则数据的所述额外像素可以被存储在存储器中以潜在地供今后使用。
对于视频编码器请求存储的图片,压缩后的数据以展开(unrolled)方式存储,由此压缩后的数据被存储在连续的存储器可寻址位置中。在一些情况下,视频编码器请求数据的整个宏块。因此,当视频编码器请求获取基准宏块时,请求在一个或多个读突发中从连续的存储单元获取数据的压缩后的整个宏块。
图1示出系统框图,在该系统中,视频译码器系统向存储器写入宏块并且从存储器获取宏块。视频译码器102用于对所接收的帧进行视频译码。视频译码器102可以应用任何视频译码标准来对宏块进行译码,所述标准例如但不限于MPEG-2(ISO/IEC 13818-1(2000))、MPEG-4第10章(ISO/IEC14496-10(2009))以及诸如ITU-T H.265的演进视频译码标准。译码后的宏块可以被用作用于译码另一宏块的基准。
Golomb编码器104用于从视频译码器102接收宏块。Golomb编码器104用于进行宏块的Golomb压缩。Golomb,S.W.,“Run-length Encodings”IEEE Transactions on Information Theory,IT,(1966)中描述了Golomb编码。Golomb编码随着帧大小的增加而接近哈夫曼码的压缩性能。在存储入存储器之前将译码后的图像进行压缩可以潜在地减少将译码后的图像写入存储器的操作次数。在一些情况下,每个时钟周期可以发生4次符号Golomb编码和译码。相反,其他无损压缩策略可能实现每多个时钟周期对一个符号的压缩。
在2010年6月25日递交(代理人卷号为P34530)、发明人为Thomas和Coulter、标题为“System,Method,and Computer Program Product forParameter Estimation for Lossless Video Compression”、序列号为No.12/823,637的美国专利申请中描述了进行Golomb编码的技术。在一些情况下,相邻帧之间可能是强关联的。在各个实施例中,对于Golomb编码,在采用特定编码参数的无损压缩之后,生成之前帧符号的直方图来预测当前帧中的比特数。在之前帧直方图上遍历所有可能编码参数可以产生优化的编码参数,可以以该优化的编码参数压缩当前帧。使用之前帧作为预测因素可以产生高压缩效率。Golomb-Rice压缩方案的示例性过程如下:
1.基于选定的编码参数(即,对于Golomb,M=0)生成之前帧符号的直方图。符号为错误值像素(n)-像素(n-1)。
2.对该直方图进行降序排序。
3.向每个区段(bin)分配Golomb码。直方图中的区段是每个单独的符号或者符号范围,对此符号或符号范围维持有一计数。例如,对于值从0到255的像素,0可以为第一区段,1可以为下一区段,以此类推。在另一示例中,可以有数个区段,其中每个区段覆盖一像素值范围。这些区段中的每一个具有每个区段范围内的值出现次数的相关联计数。
4.对于每个区段,将区段中的项数乘以为其分配的Golomb码。
5.这些积的和将产生针对特定编码参数对当前帧进行编码所需的比特数的估计。
6.对于每个编码参数重复1-5,并且选择产生最少总比特数的编码参数。例如,在使用Golomb编码的8-比特像素示例中,可以从8个编码参数进行选择,即M=0至M=7。
Golomb编码器104压缩宏块的每一行,并且请求以翻转形式将压缩后的行写入存储器。在一些情况下,Golomb编码器104请求将每个翻转后的宏块的最左侧压缩后的列存储在已知地址,然后在其后存储其余压缩后的列。之后,读块110能够通过随机访问最左侧压缩后的列来随机访问每个宏块的开头。读块110在第一压缩后的列之后读取每个压缩后的宏块的其余内容。在一些情况下,Golomb编码器104请求将每个翻转后的宏块的最左侧压缩后的列存储在存储器的每第128列。这允许对每第八个压缩后的宏块的开头进行随机访问。其他存储宏块的方式是可允许的,只要一些宏块的开头是可随机访问的。
Golomb编码器104用于向写模式块106提供无损压缩的图像。写模式块106用于以参照图2B描述的方式向存储器108写入Golomb压缩后的宏块。在一些实施例中,写模式块106用于通过将像素行写成像素列而非像素行来将压缩后的图像写入存储器108。换言之,行和列存储器地址可以反转,从而行地址用作列地址并且列地址用作行地址。存储器108可以是双倍数据率(DDR)型存储器,但是可以使用其他类型的具有最小读突发大小的外部存储器。在一些情况下,存储器108与视频译码器102形成在同一集成电路中。在其他情况下,存储器108是与视频译码器102分离的集成电路的一部分。
在一些情况下,使用翻转寻址方案来写入压缩后的图片的操作可以使用比在行上写入压缩后的图片更少的写操作。对于一些存储器(例如DDR),写操作按32字节的增量发生。以翻转配置写入压缩后的宏块可以减少写入到存储器中的填补内容(filler content)。
译码后的宏块的压缩和存储的一个示例如下。在一些实现中,可以使用Golomb编码来缓冲和压缩八(8)个译码后的宏块。作为压缩的结果,可获得十六(16)个数据行。可以使每个数据行加倍,从而行数变为三十二(32)。例如,每个数据行可以被重写,从而每行包括两个数据行而列数则减少。例如,压缩为64字节的128字节线(line)可以被保存为两个32字节的行。之后,通过反转行列地址而将数据存储到存储器中。
读块110用于从存储器108读取压缩后的宏块。视频译码器102可以请求读块110从存储器108读取特定宏块或特定像素。压缩后的宏块以参照图2B描述的方式存储。压缩后的宏块以反转的行列地址被存储,但是从存储器的获取可以在行上进行。在一些实施例中,读块110使用读突发在行上从存储器108读取压缩后的宏块,并且将每个列的部分提供给Golomb译码器112。读块110能够直接访问行内的任何列位置。对于第一读突发之后的每个读突发,读块110回顾对于某行来说上次直接可访问的列地址,计算到达该上次直接可访问位置的地址,并且从此位置开始。待访问的像素是通过访问包括该待访问像素的至少一个压缩数据列来访问的。
以翻转配置写入宏块可以潜在地减少在后续从存储器获取宏块时的读操作次数。如果压缩后的数据列长度类似,则减少了具有填补内容(即未压缩数据)的读突发。所获取的宏块部分存储在高速缓存中,并且那些所获取的部分可以被重构为宏块或者被存储以供未来使用。
在一个或多个压缩后的宏块比其他压缩后的宏块实质性长的情况下,可以使用图2A的方案。在一些情况下,Golomb编码器104检测到压缩后的宏块导致比如果以未压缩方式存储的情况更低效的读写,并且在这样的情况下,Golomb编码器104可以请求将该宏块未压缩地存储在存储器中。
Golomb译码器112用于对从存储器108获取的每个压缩后的数据进行Golomb译码。Golomb译码在Golomb S.W.,“Run-length Encodings”IEEETransactions on Information Theory,IT(1966)中有描述。Golomb译码器112用于将译码后的像素提供给存储器114。在2010年6月25日递交(代理人卷号为P34530)、发明人为Thomas和Coulter、标题为“System,Method,and Computer Program Product for Parameter Estimation for Lossless VideoCompression”、序列号为No.12/823,637的美国专利申请中描述了用于进行Golomb译码的适当技术。
存储器114存储Golomb译码后的宏块部分。在一些实施例中,存储器114被实现为高速缓存,但是可以使用其他类型的存储器来存储宏块的部分。视频译码器102可以从存储器108请求宏块中的一个或多个像素。重构逻辑115确定存储器114是否存储有视频译码器102所请求的宏块或像素。所请求的宏块或像素可以被用作视频译码中的基准宏块或像素。重构逻辑115请求读块110从存储器108读取下一行,直至获取到所请求的像素。在一些情况下,单个32字节的DDR突发读从上次直接可访问列或者从上次访问的一组行的位置开始从存储器108获取16行。32字节的读突发可以转换为32个行,可以通过使每个线加倍来将16个行变为该32个行。
以下是当像素被译码器使用时从存储器获取所述像素的方式示例。数据以翻转格式存储,其中行列地址反转。取得十六(16)个数据行。如果所请求的像素未存储在存储器中,则从上次直接可访问列开始或者从之前访问的一组已获取行的位置之后开始进行另外的行读取。读取的数据被Golomb解压缩。如果所请求的多个像素列被包括在最近一次取得中从而所请求的像素被包括在该最近一次取得中,则不进行额外的读取。另外,如果所请求的像素被包括在最近一次取得中,则存储上次访问的每个行的地址,从而后续取得不会读取之前读取的数据。
图2A示出数个示例,在所述示例中在突发中沿存储单元的行从存储器读取像素。在该示例中,块沿行存储。实心条表示存储为压缩后的数据的块。每个宏块为C个像素乘以B个像素。每个读突发的最小大小示出为矩形。在一些情况下,最小读突发为32字节。当使用多于一个的读突发来捕获块的压缩后的数据时,第二个读突发中读取的一些数据并非所述压缩后的数据的一部分。因此,并非所述压缩后的数据的一部分的数据可以被视为浪费的带宽。
图2B描绘了当压缩后的数据以反转的列和行地址被存储时存储压缩后的数据和从存储器获取压缩后的数据的方式。实线表示宏块中压缩后的像素的线。在一些情况下,可以访问压缩后的数据的每个列的开头,这与访问该列的中部或末尾形成对比。读突发在存储器地址的行上发生,其中列存储器地址增加。由于每个压缩后的宏块以列存储,所以在每个读突发中获取所存储的压缩后的数据至少一列的一部分。压缩后的宏块每列的部分可以被解压缩、存储并且随后重组为未压缩宏块。
图2B还描绘当数据按行存储和获取时(图2A)所获取的并非压缩后的数据一部分的数据与当数据按列存储和获取时(图2B)所获取的并非压缩后的数据一部分的数据之间的比较。通过比较,与使用图2A的技术相比,当使用图2B的技术存储和获取数据时使用更少读突发来获取压缩后的数据。
图3描绘根据实施例的视频编码器系统的示例。视频编码器302用于对图片的块进行视频编码。可以使用任何视频编码标准,例如但不限于MPEG-2(ISO/IEC 13818-1(2000))、MPEG-4第10章(ISO/IEC 14496-10(2009))以及诸如ITU-T H.265的演进视频译码标准。视频编码器302用于将编码后的宏块提供给Golomb编码器304。Golomb编码器304用于对编码后的宏块进行Golomb编码。Golomb编码器304可以使用与Golomb编码器104类似的技术来进行Golomb压缩。Golomb编码器304用于输出压缩后的原始YUV数据。
写模式块306用于以参照图4B描述的方式将Golomb编码后的宏块写入到存储器308。在一些实施例中,写模式块306按连续的存储器可寻址位置将压缩后的数据写入存储器308。在一些情况下,存储器308与视频编码器302形成在同一集成电路中。在其他情况下,存储器308是与视频编码器302分离的集成电路的一部分。
读模式块310用于通过请求对连续存储单元的读取来从存储器308读取编码后的数据,直至读取到视频编码器302所请求的宏块。Golomb译码器312使用与参照Golomb译码器112所描述的类似技术对压缩后的YUV数据应用Golomb译码。Golomb译码器312用于将宏块提供给视频编码器302。
图4A描绘以常规方式写入宏块的方式。在常规方式中,宏块的像素以Z字方式写入存储器以及从存储器读出。对于尺寸为C乘以R像素的宏块,从访问点开始在宏块的行上读取像素然后在下一宏块的行上读取像素。
图4B描绘以展开方式写入宏块的方式。在该示例中,与按图4A中的宏块结构存储和获取相对的,C乘以R像素的宏块是按连续的存储器可寻址位置在存储器中存储和获取的。可以使用多个读突发来读取视频编码器302所请求的压缩后的宏块。图4B描绘出压缩后的宏块可能不横跨整个读突发量的数据。因此,一些获取的数据可能不包含有用的数据。读模式块310获取压缩后的宏块的左上像素,然后继续读取,直至获取到压缩后的宏块的全部。Golomb编码器104可以请求将每个宏块的开头存储在读模式块310可直接访问的位置处。
对于翻转配置,如果有任何压缩后的线比之其他压缩后的线尤其地长,则当读取该压缩后的线的部分时存在潜在的浪费,因为获取到线尾端的读突发中读取的数据包括的大部分是非有用数据。相反,使用展开配置,在提供行随机访问的同时,除了潜在地在可能读取到填补内容的最后读取中之外,在任何读取中均没有带宽浪费。32字节连续像素的读突发继续进行,直至获取到整个期望的宏块。对于未压缩的16×16展开宏块,在单个读突发中读取16个列和2个行。
图5描绘视频译码系统用来存储和获取宏块的示例性过程。
框502包括对宏块进行Golomb压缩。
框504包括通过将列地址用作行地址以及将行地址用作列地址将Golomb压缩后的宏块写入到存储器可寻址位置。例如,可以使用参照图2B描述的技术来将宏块存储到存储器中。
框506包括从存储器获取Golomb压缩后的宏块并且对所述宏块进行Golomb解压缩。可以使用在相同行存储器地址而横跨多个列的读突发来访问存储器的部分。因为宏块是按列存储而在行上获取的,所以可以在单个读突发中获取多个宏块的部分。所述部分可以被Golomb译码并存储,从而可以从所述部分重组宏块。之后,像素或宏块可用于视频译码器。
图6描绘视频编码系统使用的示例性过程。
框602包括对已经根据视频标准编码的宏块应用Golomb压缩。
框604包括以连续的存储单元将Golomb压缩后的宏块存储在存储器中。例如,宏块以连续的存储器可寻址位置被存储在存储器中。
框606包括根据连续的存储器可寻址位置从存储器中获取所存储的Golomb压缩后的宏块。可以发生一个或多个读突发来从存储器获取Golomb压缩后的宏块。
图7描绘根据实施例的系统。系统700可以包括主机系统702和显示器722。计算机系统700可以实现在手持式个人计算机、移动电话、机顶盒或任何计算设备中。主机系统702可包括芯片组705、处理器710、主机存储器712、存储装置714、图形子系统715和无线电720。芯片组705可在处理器710、主机存储器712、存储装置714、图形子系统715和无线电720之间提供相互通信。例如,芯片组705可包括存储适配器(未示出),其能够提供与存储装置714的相互通信。例如,存储适配器能够遵从下面任何的协议来与存储装置714通信:小型计算机系统接口(SCSI)、光纤信道(FC)和/或串行高级技术配件(S-ATA)。
在各个实施例中,译码后或编码后的视频向存储器的存储和获取可以根据本文描述的技术发生。
处理器710可被实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、多核或任何其它微处理器或中央处理单元。
主机存储器712可实现为易失性存储设备,比如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态RAM(SRAM)。存储装置714可实现为非易失性存储设备,比如但不限于磁盘驱动器、光盘驱动器、磁带驱动器、内部存储设备、附接的存储设备、闪速存储器、电池备份的SDRAM(同步DRAM)和/或可访问网络的存储设备。
图形子系统715可执行诸如静止或视频的图像处理以供显示。模拟或数字接口可被用于通信地耦合图形子系统715和显示器722。例如,所述接口可以是高清晰度多媒体接口、显示端口(DisplayPort)、无线HDMI和/或无线HD兼容技术中的任意一种。图形子系统715可被集成至处理器710或芯片组705。图形子系统715可以是与芯片组705通信耦合的独立卡。
无线电720可以包括一个或多个能够根据可应用无线标准(例如但不限于IEEE 802.11和IEEE 802.16任何版本)发送和接收信号的无线电。
尽管未描绘,但是系统700可以包括对诸如触摸屏、鼠标和摄像机的输入设备的接入。
本文描述的图形和/或视频处理技术可以被实现在各种硬件架构中。例如,图形和/或视频功能可集成在芯片组内。可替换地,可使用分立的图形和/或视频处理器。如又一个实施例,可由包括多核处理器的通用处理器实现图形和/或视频功能。在另一个实施例中,可在消费电子设备中实现这些功能。
本发明的实施例可被实现为以下各项中的任一个或组合:使用主板互连的一个或多个微芯片或集成电路、硬连线逻辑、由存储设备存储并由微处理器执行的软件、固件、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。术语“逻辑”可包括作为示例的软件或硬件和/或软件和硬件的组合。
本发明的实施例可作为例如计算机程序产品来提供,该计算机程序产品可包括其上存储有机器可执行指令的一个或多个机器可读介质,这些指令在由诸如计算机、计算机网络或其他电子设备的一个或多个机器执行时可使得该一个或多个机器根据本发明的实施例来执行操作。机器可读介质可包括但不限于,软盘、光学盘、CD-ROM(光盘只读存储器)、磁光盘、ROM(只读存储器)、RAM(随机存取存储器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪速存储器、或适于存储机器可执行指令的其它类型的介质/机器可读介质。
各附图和以上描述给出了本发明的示例。尽管被描绘为多个不同的功能项,但本领域技术人员将理解,这些元件中的一个或多个可被很好地组合成单个功能元件。或者,某些元件可被分成多个功能元件。来自一个实施例的元件可被添加到另一个实施例。例如,本文所描述的各过程的次序可被改变并且不限于本文所描述的方式。而且,任何流程图的动作都不必以所示次序来实现;也不一定需要执行所有动作。同样,不依赖于其他动作的这些动作可以与该其他动作并行执行。然而,本发明的范围绝不由这些具体示例来限定。诸如结构、尺寸和材料使用方面的区别的众多变型,无论是否在本说明书中明确地给出,都是可能的。本发明的范围至少与所附权利要求所给出的一样宽泛。
Claims (18)
1.一种计算机实现的用于存储和获取图像数据的方法,所述方法包括:
对图像数据进行Golomb压缩;
部分地基于是由视频译码器还是由视频编码器请求存储图像数据,以翻转配置和展开配置二者之一将Golomb压缩后的图像数据存储到存储器中;
请求从所述存储器中获取图像数据,其中所述获取是部分地基于所述图像数据是由视频译码器还是由视频编码器请求的;
对所获取的图像数据进行Golomb解压缩;
响应于解压缩后的图像数据包括视频译码器或视频编码器请求的图像数据,而将所述解压缩后的图像数据选择性地传送给视频译码器或视频编码器;
响应于来自视频译码器的针对像素的请求,确定所获取的数据是否包括所请求的像素;以及
响应于所获取的数据不包括所请求的像素,而请求从所述存储器进行另一次数据读取。
2.如权利要求1所述的方法,其中,所述翻转配置包括反转行和列地址。
3.如权利要求1所述的方法,其中,所述展开配置包括将压缩后的图像数据存储在连续的存储单元。
4.如权利要求1所述的方法,还包括:
对从所述另一次数据读取中获取的图像数据进行Golomb解压缩;
将解压缩后的所获取数据存储在第二存储器中;以及
将存储的解压缩后的所获取数据提供给视频译码器。
5.如权利要求1所述的方法,其中,请求从所述存储器中获取图像数据包括:响应于图像数据是由视频译码器请求的,而请求通过读取一行或多行的数据来获取所述图像数据,其中每个所获取的行包括多个存储的压缩后的图像数据中的部分。
6.如权利要求1所述的方法,其中,请求从所述存储器中获取图像数据包括:响应于图像数据是由视频编码器请求的,而请求从连续的存储单元获取所述图像数据。
7.如权利要求1所述的方法,其中:
所述图像数据包括宏块,
对图像数据进行Golomb压缩包括对所述宏块的每一行进行Golomb压缩,
当压缩后的图像数据以翻转配置被存储时,所述宏块的每一个压缩后的行被存储在一列中,以及
当压缩后的图像数据以展开配置被存储时,所述宏块的压缩后的行被存储在连续位置。
8.一种用于存储和获取图像数据的装置,所述装置包括:
图像源,用于提供图像数据;
Golomb压缩逻辑,用于对所述图像数据应用Golomb压缩;
存储器;
写逻辑,用于将压缩后的图像数据写入所述存储器,其中,所述写逻辑将压缩后的数据写入所述存储器的方式部分地基于所述图像数据是来自视频编码器还是视频译码器;
读逻辑,用于从所述存储器中获取存储的图像数据,其中,所述读逻辑用于以一方式获取存储的图像数据,所述方式部分地基于所述图像数据是由视频译码器还是由视频编码器请求的;
Golomb译码器,用于对所获取的存储的图像数据应用Golomb译码;
第二存储器,用于存储译码后的所获取的存储的图像数据,并响应于译码后的图像数据包括由视频译码器请求的图像数据,而将译码后的所获取的数据提供给所述视频译码器;以及
重构逻辑,用于确定所述第二存储器是否包括所请求的图像数据,其中,所述读逻辑用于响应于所获取的数据不包括所请求的图像数据,而请求从所述存储器进行另一次数据读取。
9.如权利要求8所述的装置,其中,所述图像源包括视频编码器或视频译码器二者之一。
10.如权利要求8所述的装置,其中,所述写逻辑用于响应于所述图像数据是从视频译码器提供的,而以反转的行和列地址将压缩后的图像数据写入所述存储器。
11.如权利要求8所述的装置,其中,所述写逻辑用于响应于所述图像数据是从视频编码器提供的,而以连续的存储地址将压缩后的图像数据写入所述存储器。
12.如权利要求8所述的装置,其中,所述读逻辑用于响应于所述数据是由视频译码器请求的,而读取至少一行的可寻址存储单元。
13.如权利要求8所述的装置,其中,所述读逻辑用于响应于所述数据是由视频编码器请求的,而读取连续的可寻址存储单元。
14.一种用于存储和获取图像数据的系统,所述系统包括:
显示设备;
无线电接口;以及
视频处理系统,其通信地耦合到所述显示设备和所述无线电接口,所述视频处理系统包括:
视频编码器和视频译码器二者或其中之一,用于提供图像数据,
Golomb压缩逻辑,用于对所述图像数据应用Golomb压缩,
存储器,
写逻辑,用于将压缩后的图像数据写入所述存储器,其中,所述写逻辑将压缩后的数据写入所述存储器的方式部分地基于所述图像数据是来自视频编码器还是视频译码器,
读逻辑,用于从所述存储器中获取存储的图像数据,其中,所述读逻辑用于以一方式获取存储的图像数据,所述方式部分地基于所述图像数据是由视频译码器还是由视频编码器请求的,
Golomb译码器,用于对所获取的存储的图像数据应用Golomb译码,
第二存储器,用于存储译码后的所获取的存储的图像数据,并响应于译码后的图像数据包括由所述视频编码器或所述视频译码器请求的图像数据,而将译码后的所获取的存储的图像数据提供给所述视频编码器或所述视频译码器二者之一,以及
重构逻辑,用于确定所述第二存储器是否包括所请求的图像数据,其中,所述读逻辑用于响应于所获取的数据不包括所请求的图像数据,而请求从所述存储器进行另一次数据读取。
15.如权利要求14所述的系统,其中,所述写逻辑用于响应于所述图像数据是从视频译码器提供的,而以反转的行和列地址将压缩后的图像数据写入所述存储器。
16.如权利要求14所述的系统,其中,所述写逻辑用于响应于所述图像数据是从视频编码器提供的,而以连续的存储地址将压缩后的图像数据写入所述存储器。
17.如权利要求14所述的系统,其中,所述读逻辑用于响应于所述数据是由视频译码器请求的,而读取至少一行的可寻址存储单元。
18.如权利要求14所述的系统,其中,所述读逻辑用于响应于所述数据是由视频编码器请求的,而读取连续的可寻址存储单元。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/785,946 | 2010-05-24 | ||
US12/785,946 US8971413B2 (en) | 2010-05-24 | 2010-05-24 | Techniques for storing and retrieving pixel data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102263946A CN102263946A (zh) | 2011-11-30 |
CN102263946B true CN102263946B (zh) | 2014-05-07 |
Family
ID=44279333
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110135358.1A Active CN102263946B (zh) | 2010-05-24 | 2011-05-24 | 用于存储和获取像素数据的技术 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8971413B2 (zh) |
CN (1) | CN102263946B (zh) |
DE (1) | DE102011100936B4 (zh) |
GB (1) | GB2480747B (zh) |
WO (1) | WO2011149751A2 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8971413B2 (en) | 2010-05-24 | 2015-03-03 | Intel Corporation | Techniques for storing and retrieving pixel data |
US9319880B2 (en) * | 2010-09-15 | 2016-04-19 | Intel Corporation | Reformatting data to decrease bandwidth between a video encoder and a buffer |
US20150288979A1 (en) * | 2012-12-18 | 2015-10-08 | Liu Yang | Video frame reconstruction |
US8879858B1 (en) * | 2013-10-01 | 2014-11-04 | Gopro, Inc. | Multi-channel bit packing engine |
US11036827B1 (en) * | 2017-10-17 | 2021-06-15 | Xilinx, Inc. | Software-defined buffer/transposer for general matrix multiplication in a programmable IC |
CN108961147B (zh) * | 2018-06-11 | 2022-12-13 | 北京集创北方科技股份有限公司 | 一种数据处理方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0734164A2 (en) * | 1995-03-20 | 1996-09-25 | Daewoo Electronics Co., Ltd | Video signal encoding method and apparatus having a classification device |
US5978507A (en) * | 1992-01-29 | 1999-11-02 | British Telecommunications Public Limited Company | Method of forming a template of an image of an object for use in the recognition of the object |
US6105114A (en) * | 1997-01-21 | 2000-08-15 | Sharp Kabushiki Kaisha | Two-dimensional array transposition circuit reading two-dimensional array in an order different from that for writing |
US6272180B1 (en) * | 1997-11-21 | 2001-08-07 | Sharp Laboratories Of America, Inc. | Compression and decompression of reference frames in a video decoder |
Family Cites Families (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
IT8368002A0 (it) * | 1983-09-29 | 1983-09-29 | Sip | Codificatore decodificatore dedicato alla trasmissione e o ricezione di immagini televisive su canale numerico a bassa velocita |
US5978509A (en) | 1996-10-23 | 1999-11-02 | Texas Instruments Incorporated | Low power video decoder system with block-based motion compensation |
KR100239349B1 (ko) * | 1996-12-20 | 2000-01-15 | 구자홍 | 역이산 코사인 변환기의 데이타 포멧 변환 회로 |
US6304607B1 (en) | 1997-03-18 | 2001-10-16 | Texas Instruments Incorporated | Error resilient video coding using reversible variable length codes (RVLCS) |
JP2000115782A (ja) | 1998-10-06 | 2000-04-21 | Canon Inc | 符号化装置及び方法及び記憶媒体 |
JP2000115770A (ja) | 1998-10-06 | 2000-04-21 | Canon Inc | 符号化装置及び方法 |
IL129203A (en) | 1999-03-28 | 2002-07-25 | Univ Ramot | System and method for compressing figures |
KR100618972B1 (ko) | 1999-08-02 | 2006-09-01 | 삼성전자주식회사 | 가변장 코딩 방법 및 장치 |
US6496199B1 (en) | 1999-10-01 | 2002-12-17 | Koninklijke Philips Electronics N.V. | Method for storing and retrieving data that conserves memory bandwidth |
US6882750B2 (en) | 2000-05-02 | 2005-04-19 | Zaxel Systems, Inc. | Fast loss less image compression system based on neighborhood comparisons |
US8374237B2 (en) | 2001-03-02 | 2013-02-12 | Dolby Laboratories Licensing Corporation | High precision encoding and decoding of video images |
US6650784B2 (en) | 2001-07-02 | 2003-11-18 | Qualcomm, Incorporated | Lossless intraframe encoding using Golomb-Rice |
US7016547B1 (en) * | 2002-06-28 | 2006-03-21 | Microsoft Corporation | Adaptive entropy encoding/decoding for screen capture content |
US20050185568A1 (en) * | 2004-02-23 | 2005-08-25 | Davidson Robert J. | Storage device |
US20050229061A1 (en) | 2004-04-01 | 2005-10-13 | Sung-Ho Kang | Method of efficiently compressing and decompressing test data using input reduction |
US20070110151A1 (en) * | 2005-11-14 | 2007-05-17 | Ess Technology, Inc. | System and method for video frame buffer compression |
US7626518B2 (en) * | 2006-06-08 | 2009-12-01 | Via Technologies, Inc. | Decoding systems and methods in computational core of programmable graphics processing unit |
MX2009003968A (es) * | 2006-10-16 | 2009-06-01 | Nokia Corp | Sistema y método para usar segmentos decodificables paralelamente para codificación de video de vistas múltiples. |
TWI330473B (en) | 2006-11-24 | 2010-09-11 | Primax Electronics Ltd | Huffman decoding method |
US8031937B2 (en) * | 2007-04-04 | 2011-10-04 | Telefonaktiebolaget Lm Ericsson (Publ) | Frame buffer compression and decompression method for graphics rendering |
US20090254694A1 (en) | 2008-04-02 | 2009-10-08 | Zikbit Ltd. | Memory device with integrated parallel processing |
US7786907B2 (en) | 2008-10-06 | 2010-08-31 | Donald Martin Monro | Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems |
US8134885B2 (en) * | 2009-11-24 | 2012-03-13 | Bae Systems Information And Electronic Systems Integration Inc. | High-speed compression architecture for memory |
US8971413B2 (en) | 2010-05-24 | 2015-03-03 | Intel Corporation | Techniques for storing and retrieving pixel data |
US20110317759A1 (en) | 2010-06-25 | 2011-12-29 | Thomas Vinay S | System, method, and computer program product for parameter estimation for lossless video compression |
-
2010
- 2010-05-24 US US12/785,946 patent/US8971413B2/en not_active Expired - Fee Related
-
2011
- 2011-05-09 DE DE102011100936.5A patent/DE102011100936B4/de active Active
- 2011-05-19 WO PCT/US2011/037104 patent/WO2011149751A2/en active Application Filing
- 2011-05-19 GB GB1108465.4A patent/GB2480747B/en not_active Expired - Fee Related
- 2011-05-24 CN CN201110135358.1A patent/CN102263946B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978507A (en) * | 1992-01-29 | 1999-11-02 | British Telecommunications Public Limited Company | Method of forming a template of an image of an object for use in the recognition of the object |
EP0734164A2 (en) * | 1995-03-20 | 1996-09-25 | Daewoo Electronics Co., Ltd | Video signal encoding method and apparatus having a classification device |
US5561464A (en) * | 1995-03-20 | 1996-10-01 | Daewoo Electronics Co., Ltd. | Method and apparatus for encoding a video signal employing transform and classified vector quantization techniques |
US6105114A (en) * | 1997-01-21 | 2000-08-15 | Sharp Kabushiki Kaisha | Two-dimensional array transposition circuit reading two-dimensional array in an order different from that for writing |
US6272180B1 (en) * | 1997-11-21 | 2001-08-07 | Sharp Laboratories Of America, Inc. | Compression and decompression of reference frames in a video decoder |
Also Published As
Publication number | Publication date |
---|---|
WO2011149751A2 (en) | 2011-12-01 |
US20110286528A1 (en) | 2011-11-24 |
DE102011100936A9 (de) | 2012-08-02 |
CN102263946A (zh) | 2011-11-30 |
DE102011100936B4 (de) | 2018-10-31 |
WO2011149751A3 (en) | 2012-04-19 |
GB2480747A (en) | 2011-11-30 |
GB201108465D0 (en) | 2011-07-06 |
GB2480747B (en) | 2014-09-17 |
US8971413B2 (en) | 2015-03-03 |
DE102011100936A1 (de) | 2011-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102263946B (zh) | 用于存储和获取像素数据的技术 | |
JP4782181B2 (ja) | エントロピー復号化回路、エントロピー復号化方法、およびパイプライン方式を利用したエントロピー復号化方法 | |
CN102104764B (zh) | 一种图像序列的压缩存储处理方法 | |
CN102547283B (zh) | 动态视频数据压缩的设备和方法 | |
US8824560B2 (en) | Virtual frame buffer system and method | |
US9509992B2 (en) | Video image compression/decompression device | |
US9894371B2 (en) | Video decoder memory bandwidth compression | |
US20140086309A1 (en) | Method and device for encoding and decoding an image | |
CN101540903B (zh) | 比率控制方法、视频帧编码器及帧缓存压缩系统 | |
TWI675584B (zh) | 具有多個句法解析電路和/或多個後解碼電路的視訊處理系統 | |
US20140219361A1 (en) | Image data encoding for access by raster and by macroblock | |
RU2265879C2 (ru) | Устройство и способ для извлечения данных из буфера и загрузки их в буфер | |
CN101511025B (zh) | 图像压缩/解压缩的方法、装置 | |
US20110249959A1 (en) | Video storing method and device based on variable bit allocation and related video encoding and decoding apparatuses | |
KR100273110B1 (ko) | 엠펙 시스템 디코더 및 이 디코더의 데이터 처리 방법 | |
US20140184625A1 (en) | Stutter buffer transfer techniques for display systems | |
CN104113759A (zh) | 视频系统、视频帧缓存再压缩/解压缩方法与装置 | |
KR101602871B1 (ko) | 데이터 부호화 방법 및 장치와 데이터 복호화 방법 및 장치 | |
Lee et al. | Low latency variable length coding scheme for frame memory recompression | |
Yang et al. | An effective dictionary-based display frame compressor | |
JP5504885B2 (ja) | 画像処理装置および画像処理方法 | |
CN101754034B (zh) | 透明属性的离散余弦转换压缩图数据的解压缩系统及方法 | |
CN103581674A (zh) | 视频数据的压缩/解压缩方法及系统 | |
KR102154580B1 (ko) | 이미지 처리 장치 및 방법 |
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 |