CN102740068A - 图像存储器压缩方法与装置 - Google Patents
图像存储器压缩方法与装置 Download PDFInfo
- Publication number
- CN102740068A CN102740068A CN2011104450598A CN201110445059A CN102740068A CN 102740068 A CN102740068 A CN 102740068A CN 2011104450598 A CN2011104450598 A CN 2011104450598A CN 201110445059 A CN201110445059 A CN 201110445059A CN 102740068 A CN102740068 A CN 102740068A
- Authority
- CN
- China
- Prior art keywords
- block
- bit rate
- bit
- bits
- encoded
- 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
- 230000006835 compression Effects 0.000 title claims abstract description 63
- 238000007906 compression Methods 0.000 title claims abstract description 63
- 238000000034 method Methods 0.000 title claims abstract description 49
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 claims abstract description 34
- 238000012856 packing Methods 0.000 claims abstract description 23
- 238000013139 quantization Methods 0.000 claims abstract description 12
- 238000004806 packaging method and process Methods 0.000 claims description 17
- 238000005520 cutting process Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 7
- 239000000284 extract Substances 0.000 claims description 2
- 230000000717 retained effect Effects 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 description 27
- 230000006870 function Effects 0.000 description 15
- 238000011002 quantification Methods 0.000 description 11
- 238000007689 inspection Methods 0.000 description 7
- 238000006073 displacement reaction Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000008602 contraction Effects 0.000 description 5
- 230000008878 coupling Effects 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 5
- 238000005859 coupling reaction Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000009826 distribution Methods 0.000 description 5
- 238000002474 experimental method Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 4
- 230000003044 adaptive effect Effects 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 241000983670 Ficus natalensis subsp. leprieurii Species 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 230000003139 buffering effect Effects 0.000 description 1
- 239000012467 final product Substances 0.000 description 1
- 230000008676 import Effects 0.000 description 1
- 238000012886 linear function Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
Images
Classifications
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/124—Quantisation
- H04N19/126—Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/132—Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
- H04N19/146—Data rate or code amount at the encoder output
-
- 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/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/174—Methods 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
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression Of Band Width Or Redundancy In Fax (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
图像存储器压缩方法与装置,该图像存储器压缩方法以区块为一压缩单元,将一图像存储器里多帧图像的每一图像切割成多个区块。此方法根据一预定的参数,量化区块内的多个像素值,进而产生一量化区块以及自多个像素值的二进位表示法中移除的多个位。一预测器是用来产生此量化区块的一残余区块。一可变长度编码器将此残余区块作为输入并产生一编码位流。一包装单元将此编码位流与量化产生的多个被移除的位作为输入,并且通过使用称为群组区块(GOB)的一结构,弹性地共享同一GOB里多个区块的可用空间,以产生符合一目标比特率的此区块的一整个编码位字串序列。
Description
技术领域
本发明涉及一种图像存储器压缩(Frame Memory Compression,FMC)方法与装置。
背景技术
视频压缩标准如MPGE-2、MPEG-4、H.263、和H.264/AVC,已广泛应用于视频相关的应用。具备压缩标准的视频处理器的效能往往是受限于图像存储器的容量和系统带宽。为了加速视频处理器,常应用图像存储器压缩(FMC)技术,通过压缩将要被存于图像存储器的数据,此图像存储器压缩可用来减少图像存储器的容量。并且,因为利用FMC而减少了图像存储器的数据,在总线上传输的数据量也因此大大地减少,以符合带宽的限制。现有的图像存储器压缩技术可分为两种类型。一类是以空间域(spatial domain)为基础的FMC,而另一类是以频域(frequency domain)为基础的FMC。
以空间域为基础的FMC利用空间域里像素间的关联性(correlation)来预测像素值。例如,一些用来减少视频编解码器(video Codec),如H.264/AV C,中缓冲图像存储器(buffered-frame memory)的容量和存取次数的技术,通过一新增的决定单元,对每一微区块(micro block,MB)决定一关联的存储类型,并根据此MB的关联的存储类型来进行简单的压缩。一些FMC演算法在处理核心和外部存储器之间嵌入一压缩单元、采用4×4区块作为一压缩单元来对多种预测模式计算结果、并从中选出一最佳的压缩结果。一种视频编解码器的图像存储器压缩技术是采用一种以像素为基础的(pixel-based)无失真(lossless)的压缩方法,并且利用一地址表(address table)来保存编码单元的可随机存取的特性(random accessibility)。另一技术是考虑延迟的问题,来设计一种具有低延迟和可变长度的编码方法。
图1是以空间域为基础的一种FMC技术的一范例示意图。此技术使用一固定的压缩率(fixed compression ratio)和近乎无失真的(near-lossless)FMC,来减少硬件组件的带宽以及降低图像存储器的使用率。参考图1,一个4×4区块是一个基本的压缩单元,此FMC技术利用8种预测模式(模式1~模式8)和结合简单的量化、差分脉冲编码调制(differential pulse code modulation,DPCM)、以及可变长度编码(variable length coding,VLC),如Golomb-Rice编码,来进行图像存储器压缩。使用内部预测(intra prediction)的多种模式来进行FMC可能需要高的复杂性,对于小压缩区块的压缩结果并不显著。
以频域为基础的FMC将像素从空间域转换到频域,并且利用频域里功率能量的群集效应(clustering effect)来压缩数据。例如,一种减少视频存储器的技术是使用阶层式转换(hierarchical transform),例如Harr转换,将像素从空间域转换到频域,并且对得到的转换系数进行量化和游程编码(run lengthcoding)。一种失真的FMC技术考虑灰阶的像素数据,并且使用固定或可变的(variable)量化方式来进行图像存储器压缩。有些技术使用修改式的Hadamard转换和自适性的(adaptive)Golomb-Rice编码来进行显示设备的图像存储器压缩。有些技术考虑一个固定50%的压缩效率,使用转换和自适性的Golomb-Rice编码来进行图像存储器压缩。有些技术使用离散余弦变换和修改式的位平面区域编码(bit plane zonal coding)来实现移动式的视频应用的图像压缩器(frame compressor)。以频域为基础的FMC需要高的计算复杂度或复杂的硬件,对于低延迟的需求可能不适用。
发明内容
本发明实施例可提供一种图像存储器压缩的方法与装置。
公开的一实施例是关于一种图像存储器压缩的方法,以适应于一图像处理器,此图像处理器至少包括一量化器(quantizer)、一预测器(predictor)、一可变长度编码器(variable length encoder)、以及一包装单元(packing unit)。此方法包含:以一区块为一压缩单元,将一图像存储器里多帧图像的每一图像切割成多个区块;应用此量化器,依据一预定的参数,量化此区块内的多个像素值,进而产生一量化区块(quantized block)以及自多个像素值的二进位表示法(binary representation)中移除的多个位;应用此预测器,来产生此量化区块的一残余区块(residual block);应用此可变长度编码器,将此残余区块作为输入并产生一编码位流(coded bitstream);以及应用此包装单元,将此编码位流与量化产生的此多个被移除的位(removed bit)作为输入,并且通过使用称为群组区块(group of blocks,GOB)的一结构,弹性地共享同一GOB里多个区块的可用空间,以产生符合一目标比特率的此区块的一整个编码位字串序列(codeword sequence)。
公开的另一实施例是关于一种图像存储器压缩的装置,以适应于一图像处理器,此图像处理器以一区块为一压缩单元,将一图像存储器里多帧图像的每一图像切割成多个区块。此装置包含一量化器、一预测器、一可变长度编码器、以及一包装单元。此量化器依据一预定的参数,量化此区块内的多个像素值,进而产生一量化区块以及自此多个像素值的二进位表示法中移除的多个位。此预测器依据此区块的边界数据和此量化区块,使用两个控制输入来产生一残余区块。此可变长度编码器将此残余区块作为输入,并经由使用一查表(table-lookup)方法而产生一编码位流。此包装单元将此编码位流与量化产生的多个被移除的位作为输入,并且通过使用称为群组区块(GOB)的一结构,弹性地共享同一GOB里多个区块的可用空间,以产生符合一目标比特率的此区块的一整个编码位字串序列。
现在配合下列图示、实施例的详细说明及权利要求书,将上述及本发明的其他优点详述于后。
附图说明
图1是以空间域为基础的一个FMC技术的一范例示意图。
图2是根据一实施范例,说明每一m×n区块的压缩技术的一流程图。
图3是根据一实施范例,说明图2的压缩技术的另一种变化的一示意图。
图4A至图4C是根据一实施范例,说明量化步骤的一示意图。
图5A与图5B是根据一实施范例,说明一4×4区块进行预测的一示意图。
图6是根据一实施范例,说明图5A中编码区块的最终相对应的残余区块的一示意图。
图7是根据一实施范例,说明在Golomb-Rice编码中产生的可变长度编码表的一示意图。
图8是根据一实施范例,说明非边界区块的Golomb-Rice编码策略的一示意图。
图9A和图9B是根据一实施范例,说明在边界上的残余区块的Golomb-Rice编码策略的一示意图。
图10是根据一实施范例,说明包装的运作的一流程图。
图11是根据一实施范例,说明切割和填补的运作的一示意图。
图12是根据一实施范例,说明切割和填补的运作的一流程图。
图13是根据一实施范例,说明补偿运作的一示意图。
图14是根据一实施范例,说明比特率控制技术的一示意图。
图15是根据一实施范例的一示意图,说明图像存储器压缩方法的运作。
图16是根据一实施范例的一示意图,说明一种图像存储器压缩装置。
图17是根据一实施范例的一示意图,说明预测优先顺序的像素指标。
图18是根据一实施范例的一示意图,说明包装单元的一示意图。
图19是根据一实施范例的一示意图,说明当编码一新区块时,e[i]是右移至右移位寄存器的MSB位的情况。
图20是根据一实施范例的一示意图,说明|s[i]|+|e[i]|<T[i]的第一范例的情况,其移位和收缩的结果。
图21是根据一实施范例的一示意图,说明|s[i]|<T[i]以及|s[i]|+|e[i]|>T[i]的第二范例的情况,其移位和收缩的结果。
图22是根据一实施范例的一示意图,说明|S[i]|=T[i]的第三范例的情况,其移位和收缩的结果。
图23是根据一实施范例的一示意图,说明|S[i]|>T[i]的第四范例的情况,其移位和收缩的结果。
图24是根据一实施范例的一示意图,说明由一重建模块所执行的一区块的整个编码位字串序列。
图25是根据一实施范例的一示意图,说明一些范例的实验参数,其中使用具有1080p解析度的8种典型的图像序列。
【主要元件符号说明】
210量化 220预测
230可变长度编码 240包装
240a整个编码位字串序列 250比特率控制
430补偿位
910残余区块 920残余区块
1010切割 1020填补
1030补偿
1110特殊位流
1210检查是否(T-R(k))大于hk+1
1220替编码位字串k+1找到一最佳匹配的编码位字串
1230以此最佳匹配的编码位字串来编码第(k+1)个残余
1240检查R(k)是否小于T
1250剩余空间全数填补零
13101010...01 1320范例的填充顺序
1330一些补偿位
1410共享池
1510以一区块为一压缩单元,将一图像存储器里多帧图像的每一图像切割成多个区块
1520依据一预定的参数,量化此区块内的多个像素值,进而产生一量化区块以及自多个像素值的二进位表示法中移除的多个位
1530产生此量化区块的一残余区块
1540将此残余区块作为输入并产生一编码位流
1550将此编码位流与量化产生的多个被移除的位作为输入,并且通过使用称为群组区块的一结构,弹性地共享同一GOB里多个区块的可用空间,以产生符合一目标比特率的此区块的一整个编码位字串序列
1600图像存储器压缩装置 1610量化器
1620预测器 1630可变长度编码器
1640包装单元
1810右移位寄存器 1820收缩模块
1830剩余位计算模块 1840重建模块
具体实施方式
此实施范例公开一种有效的FMC技术来压缩至少一输入图像。该至少一输入图像可以是一帧静态的单一图像(static single image)或是来自一视频流的一帧图像。此FMC压缩技术是以区块为基础的(block-based),也就是说,以区块作为基础的压缩单元。假设给予一帧尺寸为W×L的图像,此图像可以切割成数个m×n区块和被切割区块的总数为(W/m)×(L/n),其中m和n是小于此图像帧的宽度W和比特率L。当一些图像帧的W和L不被m和n整除时,使用此技术者可以应用一些额外的处理即可。
在实施范例中公开的FMC技术是压缩区块。需要注意的是,区块并非完全独立地压缩。后面叙述的比特率控制会考虑多数的邻近区块,来执行同一群组区块中可压缩位的分配(compressible bit allocation)。换句话说,公开的实施范例在一图像编解码器中,通过一个接一个地编码每一m×n区块来压缩一帧图像,并且保证每一编码区块的压缩率符合一给定的目标比特率(一预定的系统参数)。
在公开的实施范例中,每一m×n区块的压缩技术可以包含量化、预测、可变长度编码、包装以及比特率控制的部分。图2是根据一实施范例,说明每一m×n区块的压缩技术的一流程图。参考图2,量化210采用一个m×n区块作为输入,并且依据一预定的参数QP来量化区块内的像素值,从而产生一个m×n的量化区块。量化210的技术与传统的图像压缩略有不同。量化210是当包装(packing)240中有剩余的空间(remaining vacancy)可使用时,保留移除位(removed bit)以作为补偿用(for compensation)的补偿位(paddingbit)。预测220将此m×n量化区块作为输入,并产生一个m×n的残余区块。可变长度编码230将此m×n的残余区块作为输入,并且产生一编码位流。包装240将此编码位流和量化210所产生的补偿位作为输入,并且产生符合一目标比特率的一整个编码位字串序列240a。比特率控制(rate-control)250使用称为群组区块(GOB)的一结构,在同一GOB弹性地共享区块的可用空间。一GOB是一群相邻的区块,并且是一基本的比特率控制单元,也是一随机存取单元(random access unit)。
当执行可变长度编码230时,图2的流程图先执行此区块所有像素的编码,再移至包装240。此流程图可以容许细微的小变化。例如,处理每一区块时,可以一像素接着一像素地(pixel-by-pixel)处理,也就是说,可以递归地(recursively)处理像素。亦即,在处理像素i之后,判定可用的比特率R(i)是否超过了一阈值T。一旦超出,就不再处理在此区块中随后的像素,此流程图也直接移至包装240。此变化如图3的范例所示。
每一部分的细节详述如下。在进行量化210时,预定的参数QP可以用来控制量化水平。量化的方式是移除此像素值的二进位表示法的某些位。要被移除的位可以由用户通过预定的参数QP来决定。位的移除顺序是从此像素值的二进位表示法的最低有效位(Least Significant Bit,LSB)至最高有效位(Most Significant Bit,MSB)。例如,量化最低水平,即QP=0,表示每一像素具有没有被量化的全解析度(full resolution),换句话说,没有位被移除。量化水平1,即QP=1,表示每一像素的最低有效位被移除。量化水平2,即QP=2,表示两个最低重要位被移除,等等。QP的最大值可由使用多少位以代表一像素值来决定,例如,如果每一像素值由8个位来代表,则QP最大值是8。特别是,本发明中特地设计了将被移除的位,称为移除位,保留并传送至包装240,作为补偿之用。量化后,此处理的区块称为量化区块,做为预测220的输入。
图4A是根据一实施范例,说明量化210步骤的一示意图,其中QP=1。图4A说明一个压缩单元,即一m×n的区块。图4B说明一m×n区块的位平面,即图4A的m×n区块中每一像素值的二进位表示法,其中每一像素的最低有效位将被移除。经过以QP=1进行量化后,每一像素的最低有效位(LSB)被移除,并且所有移除的位都被保留作为补偿位430,如图4C的范例所示。在本发明中,编码区块容许有不同的QP参数,并且QP[i]代表区块i的QP。
在进行预测220中,上方和左边邻近区块的边界像素值以及同一区块中已编码的像素值的信息被用来预测编码像素(encoding pixel)(即将被编码的像素)。一预测函数(prediction function)计算被预测像素的像素值。此预测函数使用上方和左边邻近区块的边界像素值以及同一区块中已编码的像素值做为输入参数。此预测函数,例如可以是一个线性函数如一简单的平均函数(averagefunction)或是一权重函数(weighting function)。许多预测函数都可以使用,平均函数或是权重函数只是范例而已。预测误差(prediction error)定义为预测像素值(predicted pixel value)与实际像素值(actual predicted pixel value)之间的误差。对于那些没有上方或左边邻近区块的区块,当上方或左边邻近区块的边界像素值其中有一信息无法取得时,可以仅使用可取得的像素值的信息搭配同一编码区块内的已编码的像素值的信息,来进行预测。对于左上角的区块,也就是既没有上方的邻近区块也没有左边邻近区块的区块,当没有上方也没有左边的邻近区块的边界像素值的信息可以取用时,在同一编码区块内的已编码的像素值的信息可以用来执行预测。
整个预测可以一像素接着一像素地进行,直到编码区块的所有m×n个像素都进行了预测。m×n像素可依一特定顺序一个接一个地处理,称为编码顺序(coding order)。例如,此特定顺序可设计如下。整个预测可从右下角(button-right)的像素开始。在最右边的行(第n行)的n-1个像素是第一优先进行预测(减去起始像素),和最下面的列(第m列)的m-1个像素的预测是第二优先(减去起始像素)。编码顺序可以是多样化的。然而,以上描述的顺序仅是顺序的原则性,而不是一限制性(restrictive)顺序的完整描述。
为便于说明,举一4×4区块(m=n=4)为范例来说明如何进行预测,但本发明中并不局限于此范例的情况。图5A至图5B是根据一实施范例,说明执行一4×4区块的预测的一示意图。图5A说明一4×4区块有四个上边相邻(adjacent)像素和四个左边相邻像素。如图5B说明,此范例假设四个上边相邻像素,标示为U0、U1、U2、以及U3,和四个左边相邻像素,标示为L0、L1、L2、以及L3,都是可进行预测的。如图5B实施范例中的编码顺序所示,预测220可从右下角具编码顺序“0”的像素开始,接着是在中间具编码顺序“1”的像素等。在此范例中,假设使用平均函数作为预测函数。依此,第一像素的预测值为(L3+U3)/2(即(108+116)/2),预测误差(即残余)为2(即112减去110)。根据同样的方式,第二像素预测值为(116+110)/2=113,这是U3与第一个像素的平均。结果,第二个像素的预测误差为5(即113减去108)。图5A中编码区块的最终相对应的残余区块如图6所示。
可变长度编码230可以使用多种可变长度编码方法来进行。例如,当执行可变长度编码230时,使用的可变长度码可以是霍夫曼码、Golomb-Rice码等。本发明中可以整合一些改进,以使得所使用的可变长度编码的压缩效率更高。例如,使用可变长度编码可以根据值的概率分布,其中出现概率越高的值是用一越短的编码位字串(codeword)来编码。有多种编码概率分布可以使用。例如,根据像素在区块中的位置、以及上方和左边邻近区块的边界是否可使用等信息,来选择适当的编码概率分布。每一概率分布可以由一个别的概率编码表(coding table)来实现,其中编码表的每一元素包含至少两栏位。此两栏位是一编码值(coding value)及其相对应的编码位字串。每一编码表包含一个特殊的元素。此特殊元素的编码位字串是全部为0或是全部为1。
通过使用一代表性编码值(representative coding value)来取代多个编码值,编码表中元素的个数可以缩减。在编码表中,编码值与编码位字串之间的对映是多对一的关系。也就是说,多个编码值可以对映到相同的编码位字串。编码位字串的最大比特率可由多对一的属性来控制。例如,那些编码位字串的比特率超过一预定阈值的残余可以被分配到比特率小于此阈值的编码位字串。结果,几种不同的残余可以容许对映至相同的编码位字串。在本发明中,当m×n个残余已完全被编码后,编码区块的可用比特率没有被彻底地利用时,可以从多到一对映的编码位字串附加一些额外的位,来辨别确实的残余。
在实施范例中,不同的可变长度编码可能会产生不同类型的编码表,例如Huffman编码或Golomb-Rice编码。图7是根据一实施范例,说明在Golomb-Rice编码中产生的可变长度编码表的一示意图。这些范例的编码表有许多特性。其中一个特性是通过使用一个共同的残余值来代表数个不同的残余值以减少残余空间(residual space)的大小。例如,如果一个像素经量化水平为1的量化后以7个位来表示,则残余空间的大小为255,范围从-127到127。依此,此范例中的编码表,残余空间的大小可以降到127,范围从-64到63。在图7例子中,此残余值-127可以相当等于在此减少残余空间(reduced residualspace)里的残余值1。
一输入残余区块的一编码位流是多个连续的位流,这是依一特殊的编码顺序并经由一个接一个(one-by-one)串接(concatenating)残余区块的编码位字串而构成的。给于一残余区块,其m×n个残余值依据自己的位置以及自己是否在边界上,并以其中一个可变长度编码表来压缩。在本发明中,根据要编码的残余值的位置,可以使用多种编码策略。图8是根据一实施范例,说明非边界(non-boundary)区块的Golomb-Rice编码策略的一示意图。图9A和图9B是根据一实施范例,说明在边界上的残余区块的Golomb-Rice编码策略的一示意图。
以图6所示为例,假设残余区块有四个上方相邻像素U0、U1、,U2、和U3的四个上方相邻的残余值,以及四个左边相邻像素L0、L1、L2、和L3的四个左边相邻的残余值。参考图8,对于图5B的特殊的编码顺序,码(0)是2的Golomb-Rice码(2是图6中像素0的残余值),并且使用Golom-Rice码表GR(3)。所以,对应的编码位字串是比特率为3的111。而码(1)是5的Golomb-Rice码(5是图6中像素1的剩余值),并且使用Golom-Rice码表GR(3)。所以,对应的编码位字串是比特率为6的001001。如何选择和使用相对应的Golomb-Rice表的编码策略可以通过分析实验数据来进行。
在图9A的例子中,假设在边界上的一残余区块910没有上方四个相邻的像素也没有左边四个相邻的像素。根据残余区块的Golomb-Rice编码策略,顺序为0的右下角的像素使用一直接模式(direct mode)。换句话说,此右下角的像素使用它自己的二进位表示法做为已编码的一编码位字串。残余区块910的剩余像素采用图8中同样的编码策略,来选择与使用一相对应的Golomb-Rice码表。例如,顺序1的像素使用Golomb-Rice码表GR(3),顺序2的像素使用Golomb-Rice码表GR(1),依此类推。同样地,在图9B的例子中,假设一残余区块920是在边界上且有四个左边相邻像素L0、L1、L2、和L3。根据残余区块的Golomb-Rice编码策略的范例,顺序0的像素使用Golomb-Rice码表GR(3),顺序1的像素使用Golomb-Rice码表GR(3),顺序2的像素使用Golomb-Rice码表GR(1),依此类推。而有四个左边相邻像素L0、L1、L2、和L3的所有像素使用Golomb-Rice码表GR(0)。上述如何选择和使用一相对应的Golomb-Rice表的编码策略可通过分析实验数据来进行。
对于一个可变长度码,因为一编码区块的编码位流的比特率可能无法刚好符合一预定阈值,即预定的目标比特率(target bit rate),包装240处理编码位流以使得每一编码位流的比特率小于或等于此预定的目标比特率。换句话说,每一编码位流的比特率可以达到目标比特率,以保证每一编码区块的压缩率。参考图10,包装240包括切割(cutting)1010、填补(filling)1020、和/或补偿(compensation)1030的功能步骤。如图10所示,针对每一编码的位流,包装240检查编码位流的比特率。当此比特率等于或超过一预定目标比特率,则执行切割1010和填补1020。当此比特率小于此预定目标比特率,则执行补偿1030。补偿1030是通过使用从量化210所保存的补偿位来达成的。
图11是根据一实施范例,说明切割和填补的运作的一示意图。参考图11,切割1010是从编码位流移除超过目标比特率(目标比特率)的第(k+1)个编码位字串,并选择最匹配的编码位字串来取代第(k+1)个编码位字串,其中k是此编码位字串的指标(index),k<n×m,使得k个连续编码位字串的总比特率小于目标比特率,但连续k+1个连续编码位字串的总比特率大于目标比特率。此匹配的定义是指取出第(k+1)个编码位字串后,满足编码位流的剩余可用编码空间的最大比特率的编码位字串,其中剩余可用空间的大小是目标比特率减去k个连续编码位字串的总比特率。如果多个编码位字串符合此条件,并且是相同的比特率,则选择编码值接近第(k+1)个编码位字串的编码值的编码位字串。其理由是每一编码位字串相对应编码表的一编码值。
经过编码后,如果还有空间可使用,则重复以上步骤。也就是按照此预测顺序,来选择对尚未编码的残余最匹配的编码位字串,直到没有匹配的编码位字串可以选择或是全部的残余已进行过编码。当还有空间可使用并且残余区块内的一些残余尚未编码,但剩余的空间已不足够用来选择最佳匹配的编码位字串,则利用一特殊位流(例如,全为0或全为1)来补满剩余的空间,例如,在图11中,补满剩余的空间的特殊位流1110是全为零。
换句话说,当还有空间可使用时,通过递归地(recursively)寻找多个匹配的(近似的)编码位字串来对尚未编码的残余进行填补1020。当剩余空间已不足够用来选择最佳匹配的编码位字串时,亦即没有发现更匹配的编码位字串,则以一特殊的位流,例如全为0或全为1,来进行填补1020。
对于如图3所示的变化的压缩技术的情况,可以事先知道第(k+1)个编码位字串的编码会超过目标比特率(目标长度),因此切割1010步骤可以省略。
依此,图12是根据一实施范例,说明切割和填补的运作的一流程图。参考图12,对于一个编码位字串的指标k(k<n×m),检查用来编码第(k+1)个残余的可变长度编码表的编码位字串之间的最小比特率hk+1是否小于编码位流的剩余可用的编码空间。也就是说,检查是否(T-R(k))大于hk+1(步骤1210),其中T代表该给定的目标比特率,R(k)代表最初k个连续残余的编码位字串的比特率。是的话,替编码位字串k+1找到一最佳匹配的编码位字串(步骤1220),并且以此最佳匹配的编码位字串来编码第(k+1)个残余(步骤1230),然后将编码位字串指标k增加1,并重复步骤1220与步骤1230,直到找不出符合的编码位字串。否则,检查k个连续的编码位字串的总比特率是否小于目标比特率,亦即,检查R(k)是否小于T(步骤1240)。当R(k)小于T时,一个如全零流(all-zero stream)的特殊位流是用来填补剩余空间,也就是,剩余空间全数填补零(步骤1250),然后输出整个编码位字串序列240a;当R(k)不小于T时,则输出整个编码位字串序列240a。
如前所述,当所有的像素已编码并且编码位字串的比特率小于目标比特率时,从量化210保留的补偿位(填补位)是用于像素补偿(pixel compensation)。在本发明中,由一特殊设计的顺序来表示补偿位的重要性,即所谓的填补顺序(padding order),其中具有较小的填补顺序的位往往比具有较高的填补顺序的位更为显著。换句话说,小的填补顺序的位具有更高的重要性以用于像素补偿,并且由最小的填补顺序的位开始填补。所以,按填补顺序递归地填补编码位流的剩余空间,直到没有更多的可用空间或是已使用全部的填补位。补偿1030遵循相同的预测编码的顺序,并遵循量化步骤的相反的顺序,从而通过补偿位的填补,有效地利用剩余的空间以补偿编码区块的质量。补偿位是量化步骤的输出之一,并且一位接着一位地填补编码位流的剩余空间,直到已使用所有的补偿位或是编码位流的比特率达到目标比特率。
图13是根据一实施范例,说明补偿运作的一示意图。在图13中,案例A的情况是,现有的可使用空间,即目标比特率和编码流的比特率之间的差值,大于补偿位,例如标号1310的补偿位1010...01,的总数目,则可根据一范例的填补顺序,例如标号1320所示,使用所有的补偿位来填补;案例B的情况是,现有的可使用空间小于补偿位的总数目,只有一些补偿位,例如标号1330所示,被用来依据填补顺序1320以填补回编码位流。
如前所述,当执行包装240时,比特率控制250使用称为GOB的结构在同一GOB弹性地共享区块的可用空间。换句话说,此区块可以在同一GOB的其它区块取得额外的空间。一GOB的大小可能是M×N,其中M和N可以是不同的,WMm和LNn。也就是说,M和N必须小于输入图像的宽度和比特率,而大于压缩区块的宽度和比特率。压缩图像的宽度和比特率没有必要是M和N的倍数。
图14是根据一实施范例,说明比特率控制技术的一示意图。假设一个GOB包括4个区块,标记为区块0~区块3,在区块压缩之前,同一GOB的每一区块i会提供一个可共享的比特率si,i=0,1,2,3。所有共享空间被收集并记录于一共享池1410。当区块i要进行编码时,令SP(i)代表共享比特率(share bit rate)的总数,以记录共享池1410的比特率。初始值SP(0)=s0+s1+s2+s3。令T(i)代表区块i可用比特率的总数,且Pi代表区块i扣除所共享的比特率后的剩余的可用比特率。令block_len(i)代表编码后的区块i的编码位流的比特率。所以,区块i可用比特率的总数T(i)可以计算为T(i)=Pi+SP(i)以及SP(i+1)=T(i)-block_len(i)。
T(i)=Pi+SP(i)以及SP(i+1)=T(i)-block_len(i)是一通用的形式(genericform)。每一区块i的比特率控制详细计算如下。
........,以及
现在说明一种给定的图像压缩方法,以适应于一视频处理器,此视频处理器至少包括一量化器、一预测器、一可变长度编码器、以及一包装单元。图15是根据一实施范例的一示意图,说明图像存储器压缩方法的运作。参考图15,以一区块为一压缩单元,将一图像存储器里多帧图像的每一图像切割成多个区块,如步骤1510所示。此量化器可依据一预定的参数,量化此区块内的多个像素值,进而产生一量化区块以及自多个像素值的二进位表示法中移除的多个位,如步骤1520所示。此预测器可产生此量化区块的一残余区块,如步骤1530所示。此可变长度编码器可将此残余区块作为输入并产生一编码位流,如步骤1540所示。此包装单元可将此编码位流与量化产生的多个被移除的位作为输入,并且通过使用称为群组区块的一结构,弹性地共享同一GOB里多个区块的可用空间,以产生符合一目标比特率的此区块的一整个编码位字串序列,如步骤1550所示。
之前所描述的量化、预测、可变长度编码、包装和速率控制的部分的进一步详细的运作可以分别实施于量化器、预测器、可变长度编码器和包装单元。
在本发明的实施范例中,如果一给定的目标比特率足够大时,此FMC技术可以实现无失真压缩效能。在有些应用中,它可能需要小的目标比特率,公开的FMC技术可以接近无失真的情况。在本发明的实施范例中,也提供一畸变区块指示(Distorted Block Indication,DBI)方法来识别图像中编码区块的失真程度是否超过一预定阈值。此识别方法可进行如下(但不受限于仅此情况)。当一压缩区块由一FMC解码器重建,可以获得此区块的编码比特率。如果编码比特率违反了一预定阈值(例如,大于此阈值),则可标示此畸变区块。换句话说,通过使用公开的FMC技术,可以发现失真程度超过此预定阈值的区块。
公开的DBI方法对于图像压缩的运动补偿是有用的,例如H.264/AVC、H.263、以及MPEG-4,其中目前图像会参考前一帧图像的运动估计。当一图像处理器参考以本发明的FMC技术所重建的一图像,来搜寻运动向量时,它可以得知畸变区块,那么就可以妥善处理畸变区块,以避免因运动预测所造成的误差传播(error propagation)。
图16是根据一实施范例的一示意图,说明一种图像存储器压缩装置。其中,此装置适应于一视频处理器,此视频处理器将一图像存储器里多帧图像的每一图像切割成多个区块。参考图16,此图像存储器压缩装置1600可包含一量化器1610、一预测器1620、一可变长度编码器1630、以及一包装单元1640。图像存储器压缩装置1600的输入数据包含边界数据(boundary data)L[i]、量化参数QP[i]、以及m×n个像素的k区块的一序列,其中i是区块指标,i=1,...,k。首先,对于每一区块i,依据量化参数QP[i]的值来量化其m×n个像素。在实施范例中,量化器1610可以根据缩短位数目来进行量化,例如,它可以使用每一像素的最高有效8-QP[i]个位来实现量化结果,并用表示成MSB8-QP[j](p[i,j]),其中P[i,j]是第i个区块的第j个像素,j=1,...,mn,并且函数MSBu(x)回以像素x的最高有效的u个位。
在本发明的实施范例中,量化器1610量化后的输出是q[i,j]=MSB8-QP[i](p[i,j]),并且所有的被截断位(cut-off bit)保留为一个集合e[i]={LSBQP[i](p[i,j]):j=1,...,mn},即补偿位,以提供给包装阶段。LSBQP[i](p[i,j])取出P[i,j]中QP[i]个最低有效位。换句话说,函数LSBu(x)回以像素x的最低有效的u个位。以QP[i]=2为例。假设像素P[0,0]的位表示为8′b10101001,这意味着像素p[0,0]是由一个8位流10101001来代表,然后q[0,0]=MSB8-2(p[0,0])=6′b101010以及LSB2(p[0,0])=2′b01,e[i]的位顺序可以遵循从MSB到LSB的一预测优先顺序。假设一个区块有9个像素,图17是根据一实施范例的一示意图,说明预测优先顺序的像素指标。参考图17,如果预测优先顺序是9,3,6,7,8,2,5,4,1,则补偿位e[i]={LSBQP[i](p[i,9]),LSBQP[i](p[i,3]),LSBQP[i](p[i,6]),LSBQP[i](p[i,7]),LSBQP[i](p[i,8]),LSBQP[i](p[i,2]),LSBQP[i](p[i,5]),LSBQP[i](p[i,4]),LSBQP[i](p[i,1])}。
预测器1620使用两个输入数据,即边界数据L[i]与量化q[i,j],以及两个控制输入,即控制-1与控制-2,来产生一m×n的残余区块。控制-1是用来辨认边界值L[i]的有效状态。例如,当控制-1是假(FALSE)时,则指出这个预测没有边界,并且此预测计算只根据q[i,j]。当控制-1是真(TRUE)时,则指出L[i]是有效的。当控制-1是真时,预测器1620使用控制-2来决定一个有效边界的状态。在实施范例中,控制-2是用来选择三种边界状态的其中一种,三种边界状态即同时参考左边和上方的边界、只参考左边的边界、以及只参考上方的边界。L[i]包括m+n个值,其中区块i的上方边界包括n个值,而左边边界包括m个值,例如每一值有8-QP[i]个位。预测器1620进行q[i,j]和L[i]的预测计算,并且产生q[i,j]与它的一预测值之间的一差异d[i,j],也就是说,差异d[i,j]是像素p[i,j]的残余。
在获得差异d[i,j]后,可变长度编码器1630使用查表的方法来执行每一d[i,j]的编码,其中对d[i,j]的每一值可以找到一相对应的码并且s[i,j]是以一特定的顺序输出的所有码。以e[i]为例,可变长度编码器1630具有与e[i]相同的顺序和以反向预测的顺序输入,并以顺序s[i,1]、s[i,4]、s[i,5]、s[i,2]、s[i,8]、s[i,7]、s[i,6]、s[i,3]]、以及s[i,9],输出区块i的一编码流s[i,j]。
在取得区块i的编码流s[i,j]后,包装单元1640根据编码流s[i,j]、补偿位e[i]、以及一预定的目标比特率T[i]来进行包装的运作。T[i]是包装单元1640输出的cs[i]的最大位比特率。图18是根据一实施范例,说明包装单元1640的一示意图。参考图18,包装单元1640可包含一右移寄存器(right-shiftregister)1810、一收缩模块(shrinking module)1820、一剩余位计算模块(remaining-bit calculation module)1830、以及一重建模块(reconstruction module)1840。右移位寄存器1810具有一的最大比特率,即T[0]个位。收缩模块1820执行在右移位寄存器1810上的MSBT[i]的运算。换句话说,收缩模块1820从右移位寄存器1810中提取MSBT[i]位,也就是说,由收缩模块1820所产生的一寄存器r的输出值就是MSBT[i](R),其中R代表右移位寄存器1810的位流。包装单元1640对于每一区块单元的具体运作描述如下。
每当编码一个新的区块i时,右移位寄存器1810将被重置(reset),例如重置成全零。首先,e[i]是右移至右移位寄存器1810的MSB位,如图19所示。然后,按照预测顺序输入s[i,j],其中s[i]是串接带有优先顺序的输入序列S[i,j]而成的编码位字串;较低优先顺序的输入是放置在LSB的位置,而较高优先顺序的输入被放置在MSB的位置。以前述提及的实施例为范例,s[i]={s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2],s[i,5],s[i,4],s[i,1]}。|s[i]|是所有s[i,j]串接而成的位比特率,以及|e[i]|是e[i]的位比特率。通常,|e[i]|=mn×QP[i]。如果|s[i]|+|e[i]|<T[i],移位和收缩的结果如图20的范例所示。图20说明s[i]和e[i]都保存在寄存器r里,亦即,新区块的编码是没有任何畸变的。
然而,如果|s[i]|<T[i]以及|s[i]|+|e[i]|>T[i],移位和收缩的结果如图21的范例所示,其中u=T[i]-|s[i]|,指出e[i]的值被截断,亦即,一些的填补位被截断(truncated)。换句话说,s[i]和MSBu(e[i])被保存在寄存器r。如果|s[i]|=T[i],则移位和收缩的结果如图22的范例所示。图22说明s[i]是被全部保存,而e[i]是完全消失不见。
当比特率是三种情况如图20一图22所示,的其中之一时,剩余位计算模块(remaining-bit calculation module)1830计算一标志,称为iscutting,的值为假(FALSE),重建模块(reconstruction module)1840直接输出r值至一寄存器cs[i]并且设定区块i的区块比特率block_len[i]为T[i]。
最后的情况是当|si]|>T[i]时,会发生编码位字串被截断,并且r值如图23所示,即只有MSBT[i](s[i])被保存在寄存器r里。当此情况发生时,剩余位计算模块1830设定标志iscutting的值为真(TRUE),以表示s[i]的比特率是大于T[i]。剩余位计算模块1830依据被通知的输入编码位字串的比特率s_len[j],进一步输出一个指标cut_index来告知s[i]中的那一个s[i,j]被截断。并且位比特率bit_len用来通知可用的剩余比特率。
以s[i]={s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2],s[i,5],s[i,4],s[i,1]}为例。假设s[i,4]和s[i,1]是从右移寄存器r的范围右移,并且s[i,5]是部分保存(partially saved)在寄存器r中。此时,cut_indx=5,bit_len=|T[i]|-|{s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2]}|。s[i,5]被截断的这种情况指出可用剩余比特率bit len小于|s[i,5]|。此时,重建模块1840会根据bit_len,搜寻一个编码位字串,并且输出寄存器r的一个新值(new value),其中此编码位字串具有最合适的比特率以取代被截断的s[i,5]。
假设取代截断s[i,5]的新发现的编码位字串记为s`[i,5],并且|s`[i,5]|小于可用的剩余比特率bit len,则存在寄存器cs[i]里的值如图24所示,其中s`[i]={s[i,9],s[i,3],s[i,6],s[i,7],s[i,8],s[i,2],s[i,5]},而存在寄存器cs[i]里的其余位都填满了零。换句话说,在寄存器cs[i]中的值是一个由重建模块1840产生的区块i的整个编码位字串序列。最后,重建模块1840输出区块i的整个编码位字串序列,即有效的区块比特率block_len[i]以及它的总可用比特率T[i]。总可用比特率T[i]将反馈到包装单元1640,以处理下一个新区块的包装运作。
在一些实验范例中,来观察公开的图像存储器压缩(FMC)技术是否可实现无失真的压缩性能。图25是根据一实施范例,说明一些范例的实验参数,其中使用具有1080p解析度的8种典型的图像序列。在这些范例的实验中,使用公开的FMC技术的所有区块经由使用QP=0可以完成编码。换句话说,使用公开的FMC技术的所有区块在一预定的目标比特率的要求下,可以达到无失真压缩。当使用QP=1时,在一预定的目标比特率的要求下,可以达到大多数的区块的编码。如果给定的目标比特率足够小,使用公开的FMC技术可以接近无失真的压缩性能。如果给定的目标比特率足够大,使用公开的FMC技术的所有区块可以实现无失真的压缩性能。
在另一些实验范例中,进一步观察在不同大小的GOB使用公开的FMC技术的压缩性能,其中,使用4×4GOB、16×4GOB、以及16×16GOB的三种不同大小。实验结果说明,在三种不同的GOB大小中,16×16GOB达到最好的压缩性能。换句话说,通过使用以GOB为基础的结构,公开的速率控制技术可进一步提高图像处理器的整个压缩性能。
以上所述皆仅为本发明实施例,不能依此限定本发明实施的范围。大凡依据本发明权利要求书所作的均等变化与修饰,皆应属于本发明权利要求书要求保护的范围。
Claims (19)
1.一种图像存储器压缩方法,以适应于一图像处理器,该图像处理器至少包括一量化器、一预测器、一可变长度编码器、以及一包装单元,该方法包含:
以一区块为一压缩单元,将一图像存储器里多帧图像的每一图像切割成多个区块;
应用该量化器,依据一预定的参数,量化该区块内的多个像素值,进而产生一量化区块以及自该多个像素值的二进位表示法中移除的多个位;
应用该预测器,来产生该量化区块的一残余区块;
应用该可变长度编码器,将该残余区块作为输入并产生一编码位流;以及
应用该包装单元,将该编码位流与量化产生的该多个被移除的位作为输入,并且通过使用称为群组区块GOB的一结构,弹性地共享同一GOB里多个区块的可用空间,以产生符合一目标比特率的该区块的一整个编码位字串序列。
2.如权利要求1所述的方法,其中一GOB是该区块的一组邻近的区块,以及是一基本的比特率控制单元。
3.如权利要求1所述的方法,其中该量化器以一顺序移除该多个移除的位来量化该区块内的该多个像素值,且该顺序是从该多个像素值的每一像素值的二进位表示法的最低有效位至最高有效位。
4.如权利要求1所述的方法,其中该预测器依据该区块的边界数据,以一特殊预定的顺序,一像素接着一像素来预测该区块内的该多个像素值。
5.如权利要求1所述的方法,其中该量化器所产生的该多个移除的位被保留,以在该包装单元产生该整个编码位字串序列时做为像素补偿。
6.如权利要求1所述的方法,其中该包装单元利用一剩余的可用空间来补偿该编码位流的质量,其根据一填补顺序,以一位接着一位的方式将该多个移除位填补回该编码位流的该剩余空间,直到已使用所有的移除位或是该编码位流的一比特率达到该目标比特率。
7.如权利要求6所述的方法,其中该填补顺序代表该多个移除位的重要性,并且具有一较低的填补顺序的一位是比具有一较高的填补顺序的另一位更为重要。
8.如权利要求1所述的方法,其中该包装单元检查该编码位流的一比特率是否小于该目标比特率,并且当该比特率等于或超过该目标比特率时,执行一切割和一填补,当该比特率小于该目标比特率时,执行一补偿。
9.如权利要求8所述的方法,其中运作该切割是从该编码位流移除用于该可变长度编码器中超过该目标位速率的一第(k+1)编码位字串,并且选择一最佳匹配编码位字串来取代该第(k+1)编码位字串,其中k是一编码位字串的指标,使得用于该可变长度编码器的连续k个编码位字串的总比特率小于该目标比特率,但用于该可变长度编码器的连续k+1个编码位字串的总比特率大于该目标比特率。
10.如权利要求9所述的方法,其中当还有一剩余空间可用并且该剩余区块内存在尚未编码的残余时,则通过递归地寻找多个匹配的编码位字串来对该尚未编码的残余进行该填补,当该剩余空间不足够用以选择一最佳匹配的编码位字串时,则以一特殊的位流来进行该填补。
11.一种图像存储器压缩装置,以适应于一图像处理器,该图像处理器以一区块为一压缩单元,将一图像存储器里多帧图像的每一图像切割成多个区块,该装置包含:
一量化器,依据一预定的参数,量化该区块内的多个像素值,进而产生一量化区块以及自该多个像素值的二进位表示法中移除的多个位;
一预测器,依据该区块的边界数据和该量化区块,使用两控制输入来产生一残余区块;
一可变长度编码器,将该残余区块作为输入,并经由使用一查表方法而产生一编码位流;以及
一包装单元,将该编码位流与量化产生的该多个被移除的位作为输入,并且通过使用称为群组区块GOB的一结构,弹性地共享同一GOB里多个区块的可用空间,以产生符合一目标比特率的该区块的一整个编码位字串序列。
12.如权利要求11所述的装置,其中该预测器使用该两控制输入其中之一来识别该边界数据的一有效状态,另一控制输入是用来决定一有效边界的状态。
13.如权利要求12所述的装置,其中该另一控制输入选择三个边界状态的其中一种,该三个边界状态包括同时参照左边和上方的边界、只参照左边的边界、以及只参照上方的边界。
14.如权利要求11所述的装置,其中该包装单元还包含:
一右移位寄存器,用来将该多个移除位右移至其最高有效位,并且根据一预测顺序右移该编码位流;
一收缩模块,从该右移位寄存器提取最高有效的T位,并且回以该最高有效的T位至一寄存器,其中T是该目标比特率的位比特率;
一剩余位计算模块,计算出一标志,以指出该编码位流的比特率是否大于该目标比特率,当该标志为真时,该剩余位计算模块输出一编码位字串指标,以通知该区块中那一编码位字串应该被取代,并且输出一位比特率以告知该寄存器一可用的剩余空间的比特率;以及
一重建模块,根据该标志、该编码位字串指标、该位比特率、以及该目标比特率,输出一区块比特率以及自该寄存器输出该整个编码位字串序列。
15.如权利要求14所述的装置,其中该编码位流的比特率大于该目标比特率时,该标志被设定为真,该重建模块找到一最佳匹配的编码位字串来取代对应于该编码位字串指标的该编码位字串。
16.如权利要求15所述的装置,其中当该最佳匹配的编码位字串的比特率少于该可用的剩余空间时,将该寄存器中所有剩余位以零填补。
17.如权利要求14所述的装置,其中当该编码位流和该多个移除位的一总比特率小于该目标比特率时,该标志被设定为假,并且该编码位流和该多个移除位全部被存储在该寄存器。
18.如权利要求14所述的装置,其中当该编码位流的比特率小于该目标比特率,但该编码位流和该多数移除位的一总比特率大于该目标位速率时,该标志被设定为假,并且该编码位流和该多个移除位的最高有效的u个位被存储在该寄存器,其中u等于该目标比特率和该编码位流的比特率之间的一差异。
19.如权利要求11所述的装置,其中当该编码位流的比特率等于该目标比特率时,该标志被设定为假,并且该编码位流被全部保存,而该多个移除位完全消失不见。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161469095P | 2011-03-30 | 2011-03-30 | |
US61/469,095 | 2011-03-30 | ||
US13/178,510 | 2011-07-08 | ||
US13/178,510 US8767823B2 (en) | 2011-03-30 | 2011-07-08 | Method and apparatus for frame memory compression |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102740068A true CN102740068A (zh) | 2012-10-17 |
CN102740068B CN102740068B (zh) | 2015-06-24 |
Family
ID=46927245
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110445059.8A Active CN102740068B (zh) | 2011-03-30 | 2011-12-27 | 图像存储器压缩方法与装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8767823B2 (zh) |
CN (1) | CN102740068B (zh) |
TW (1) | TWI455594B (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248891A (zh) * | 2013-04-24 | 2013-08-14 | 复旦大学 | 一种基于n-bit截尾量化和块内二维预测的参考帧压缩方法 |
CN110113614A (zh) * | 2019-05-13 | 2019-08-09 | 上海兆芯集成电路有限公司 | 图像处理方法及图像处理装置 |
CN110119313A (zh) * | 2019-05-13 | 2019-08-13 | 上海兆芯集成电路有限公司 | 图像处理方法及图像处理装置 |
CN111131828A (zh) * | 2019-12-30 | 2020-05-08 | 芯颖科技有限公司 | 一种图像压缩方法及装置 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101862438B1 (ko) * | 2011-07-18 | 2018-05-29 | 톰슨 라이센싱 | 트리 구조들의 적응적 엔트로피 코딩을 위한 방법 |
KR20130049522A (ko) * | 2011-11-04 | 2013-05-14 | 오수미 | 인트라 예측 블록 생성 방법 |
KR102172995B1 (ko) * | 2013-07-17 | 2020-11-02 | 삼성전자주식회사 | 전자 장치 및 이의 이미지 저장 방법 |
US9832468B2 (en) * | 2013-07-17 | 2017-11-28 | Samsung Electronics Co., Ltd. | Electronic device for storing image and image storage method thereof |
US10531109B2 (en) * | 2015-01-27 | 2020-01-07 | Dolby Laboratories Licensing Corporation | Predictive image encoding and decoding with pixel group based quantization |
CN106651971B (zh) * | 2015-11-04 | 2020-06-05 | 上海兆芯集成电路有限公司 | 图形数据压缩装置与图形数据压缩方法 |
US9851916B2 (en) | 2016-02-17 | 2017-12-26 | International Business Machines Corporation | Dynamic compression for runtime services |
TWI597979B (zh) * | 2016-08-19 | 2017-09-01 | 晨星半導體股份有限公司 | 與影像處理系統中之快取記憶體相關的記憶體管理方法及記憶體管理裝置 |
CN107797757B (zh) * | 2016-09-06 | 2021-03-30 | 联发科技股份有限公司 | 影像处理系统中的快取存储器管理方法及装置 |
US10360695B1 (en) * | 2017-06-01 | 2019-07-23 | Matrox Graphics Inc. | Method and an apparatus for enabling ultra-low latency compression of a stream of pictures |
KR102403066B1 (ko) * | 2017-08-22 | 2022-05-27 | 삼성전자주식회사 | 제로 비트 패딩을 이용한 채널 부호화/복호화 방법 및 장치 |
CN115834904A (zh) * | 2018-12-13 | 2023-03-21 | 华为技术有限公司 | 一种帧间预测的方法及装置 |
US20210224636A1 (en) * | 2020-01-21 | 2021-07-22 | Pegah AARABI | System and method for interfacing a biological neural network and an artificial neural network |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1073313A (zh) * | 1991-10-15 | 1993-06-16 | 汤姆森消费电子有限公司 | 视频数据量化控制装置 |
US5907500A (en) * | 1996-10-21 | 1999-05-25 | Nec Corporation | Motion compensation adder for decoding/decompressing compressed moving pictures |
CN1246246A (zh) * | 1996-12-17 | 2000-03-01 | 汤姆森消费电子有限公司 | 图象处理系统中的象素块压缩设备 |
US20070223823A1 (en) * | 2006-03-21 | 2007-09-27 | Nokia Corporation | Method, apparatus, system and computer program product for providing compression of image files |
US20100162073A1 (en) * | 2008-12-18 | 2010-06-24 | Samsung Electronics Co., Ltd. | Bit mapping/demapping method and apparatus for communication system |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6693961B1 (en) | 2000-01-10 | 2004-02-17 | Conexant Systems, Inc. | System and method of video frame memory reduction of video decoders |
US6983017B2 (en) | 2001-08-20 | 2006-01-03 | Broadcom Corporation | Method and apparatus for implementing reduced memory mode for high-definition television |
US7599435B2 (en) | 2004-01-30 | 2009-10-06 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video frame encoding and decoding |
TWI277013B (en) | 2005-02-01 | 2007-03-21 | Ind Tech Res Inst | Method for reducing buffered-frame memory sizes and accesses in a video codec |
US8218653B2 (en) | 2008-03-31 | 2012-07-10 | Sony Corporation | Lossy frame memory compression using intra refresh |
-
2011
- 2011-07-08 US US13/178,510 patent/US8767823B2/en active Active
- 2011-09-22 TW TW100134112A patent/TWI455594B/zh active
- 2011-12-27 CN CN201110445059.8A patent/CN102740068B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1073313A (zh) * | 1991-10-15 | 1993-06-16 | 汤姆森消费电子有限公司 | 视频数据量化控制装置 |
US5907500A (en) * | 1996-10-21 | 1999-05-25 | Nec Corporation | Motion compensation adder for decoding/decompressing compressed moving pictures |
CN1246246A (zh) * | 1996-12-17 | 2000-03-01 | 汤姆森消费电子有限公司 | 图象处理系统中的象素块压缩设备 |
US20070223823A1 (en) * | 2006-03-21 | 2007-09-27 | Nokia Corporation | Method, apparatus, system and computer program product for providing compression of image files |
US20100162073A1 (en) * | 2008-12-18 | 2010-06-24 | Samsung Electronics Co., Ltd. | Bit mapping/demapping method and apparatus for communication system |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103248891A (zh) * | 2013-04-24 | 2013-08-14 | 复旦大学 | 一种基于n-bit截尾量化和块内二维预测的参考帧压缩方法 |
CN103248891B (zh) * | 2013-04-24 | 2016-04-20 | 复旦大学 | 一种基于n-bit截尾量化和块内二维预测的参考帧压缩方法 |
CN110113614A (zh) * | 2019-05-13 | 2019-08-09 | 上海兆芯集成电路有限公司 | 图像处理方法及图像处理装置 |
CN110119313A (zh) * | 2019-05-13 | 2019-08-13 | 上海兆芯集成电路有限公司 | 图像处理方法及图像处理装置 |
CN110119313B (zh) * | 2019-05-13 | 2021-09-03 | 格兰菲智能科技有限公司 | 图像处理方法及图像处理装置 |
CN111131828A (zh) * | 2019-12-30 | 2020-05-08 | 芯颖科技有限公司 | 一种图像压缩方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
US8767823B2 (en) | 2014-07-01 |
TWI455594B (zh) | 2014-10-01 |
TW201240471A (en) | 2012-10-01 |
CN102740068B (zh) | 2015-06-24 |
US20120250758A1 (en) | 2012-10-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102740068A (zh) | 图像存储器压缩方法与装置 | |
US10045034B2 (en) | System and method for using pattern vectors for video and image coding and decoding | |
CN105379283B (zh) | 数据编码和解码 | |
CN101502123B (zh) | 编码装置 | |
US5966465A (en) | Compression/decompression using reversible embedded wavelets | |
CN104394418B (zh) | 一种视频数据编码、解码的方法及装置 | |
TW201838412A (zh) | 用於視訊寫碼之低複雜度符號預測 | |
US20200177919A1 (en) | Method for Producing Video Coding and Programme-Product | |
CN104718753B (zh) | 利用切片速率控制的有界率压缩 | |
CN103765893A (zh) | 使用用于定点变换的比特深度调整的视频编码方法及其设备,以及视频解码方法及其设备 | |
TW201342919A (zh) | 資料編碼及解碼 | |
CN101502122A (zh) | 编码装置及编码方法 | |
KR20220019285A (ko) | 프레임들의 시퀀스를 인코딩하는 방법 및 인코더 | |
US6330283B1 (en) | Method and apparatus for video compression using multi-state dynamical predictive systems | |
WO2024212688A1 (zh) | 图像文件编解码方法、图像文件编码器和图像文件解码器 | |
JPH04343576A (ja) | 高能率符号化方法と高能率符号の復号方法 | |
US6125211A (en) | Progressive image transmission | |
Kuo et al. | An efficient spatial prediction-based image compression scheme | |
Shen et al. | Fast Golomb coding parameter estimation using partial data and its application in hyperspectral image compression | |
JP2002290743A (ja) | 画像情報符号化方法、符号化装置、ディジタル複写機、ディジタルファクシミリ装置、及び、ディジタルファイリング装置 | |
JP2008109195A (ja) | 画像処理装置 | |
Tilki et al. | Image data compression using multiple bases representation | |
JP2008131140A (ja) | 画像符号化装置 | |
Hu et al. | Image progressive transmission by quadtree and block truncation coding | |
TW201334427A (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 |