[go: up one dir, main page]

HK1214050B - Method of coding and decoding images, coding and decoding device - Google Patents

Method of coding and decoding images, coding and decoding device Download PDF

Info

Publication number
HK1214050B
HK1214050B HK16101733.2A HK16101733A HK1214050B HK 1214050 B HK1214050 B HK 1214050B HK 16101733 A HK16101733 A HK 16101733A HK 1214050 B HK1214050 B HK 1214050B
Authority
HK
Hong Kong
Prior art keywords
block
blocks
probability data
group
decoding
Prior art date
Application number
HK16101733.2A
Other languages
Chinese (zh)
Other versions
HK1214050A1 (en
Inventor
F.亨利
S.帕图克斯
Original Assignee
杜比国际公司
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
Priority claimed from FR1151849A external-priority patent/FR2972588A1/en
Application filed by 杜比国际公司 filed Critical 杜比国际公司
Publication of HK1214050A1 publication Critical patent/HK1214050A1/en
Publication of HK1214050B publication Critical patent/HK1214050B/en

Links

Description

编码和解码图像的方法、编码和解码设备Method for encoding and decoding images, encoding and decoding devices

本申请是申请号为201280021355.8,申请日为2012年2月23日,题为“编码和解码图像的方法、编码和解码设备、计算机程序”的中国发明专利申请的分案申请。This application is a divisional application of the Chinese invention patent application with application number 201280021355.8, application date February 23, 2012, and titled "Method for encoding and decoding images, encoding and decoding devices, and computer programs."

技术领域Technical Field

本发明一般属于图像处理的领域,更准确地属于数字图像以及数字图像序列的编码和解码。The present invention generally belongs to the field of image processing, more precisely to the encoding and decoding of digital images and digital image sequences.

本发明由此尤其可被用于在目前的视频编码器(MPEG、H.264等)或未来的视频编码器(ITU-T/VCEG(H.265)或ISO/MPEG(HVC))中实现的视频编码。The present invention can therefore be used in particular for video coding implemented in current video encoders (MPEG, H.264, etc.) or future video encoders (ITU-T/VCEG (H.265) or ISO/MPEG (HVC)).

背景技术Background Art

目前的视频编码器(MPEG、H264等)使用视频序列的按块(block-wise) 表示。图像被切分为宏块,每个宏块自身被切分为块,并且每个块或宏块通过图像内或图像间预测来编码。于是,特定的图像通过空间预测(帧内预测) 来编码,而其他图像在本领域技术人员已知的运动补偿的辅助下关于一个或多个编码-解码参考图像通过时间预测(帧间预测)来编码。此外,对于每个块,可以对残留块进行编码,该残留块与原始块减去预测相对应。在可选的变换之后,该块的系数可被量化,然后被熵编码器编码。Current video encoders (MPEG, H264, etc.) use a block-wise representation of video sequences. Images are divided into macroblocks, each macroblock itself divided into blocks, and each block or macroblock is encoded using intra-image or inter-image prediction. Thus, certain images are encoded using spatial prediction (intra-frame prediction), while other images are encoded using temporal prediction (inter-frame prediction) with respect to one or more encoding-decoding reference images, aided by motion compensation known to those skilled in the art. Furthermore, for each block, a residual block can be encoded, corresponding to the original block minus the prediction. After an optional transform, the coefficients of the block can be quantized and then encoded by an entropy encoder.

帧内预测和帧间预测需要之前已编码和解码的特定块可用,从而在解码器或编码器中被用于预测当前块。图1A表示这样的预测编码的示意性示例,其中,图像IN被分为块,该图像的当前块MBi经受与例如由阴影箭头表示的之前编码和解码的预定数量的三个块MBr1、MBr2、MBr3相关的预测编码。上述三个块特别包括紧邻地位于当前块MBi的左边的块MBr1、以及分别紧邻地位于当前块MBi的上方和右上方的两个块MBr2和MBr3Intra-frame prediction and inter-frame prediction require the availability of certain previously coded and decoded blocks, which are then used in the decoder or encoder to predict the current block. FIG1A shows a schematic example of such predictive coding, wherein an image IN is divided into blocks, and a current block MBi of the image is subjected to predictive coding with respect to a predetermined number of previously coded and decoded blocks MBr1 , MBr2 , and MBr3 , as indicated by the shaded arrows. The three blocks mentioned above include, in particular, block MBr1 , located immediately to the left of the current block MBi , and two blocks MBr2 and MBr3, located immediately above and immediately to the right of the current block MBi , respectively.

这里更为特别关心的是熵编码器。熵编码器按照到达的顺序来对信息编码。典型地实现“光栅扫描”类型的块的逐行遍历,如图1A由参考(标号) PRS所示,从图像的左上角的块开始。对于每个块,表示该块所需的各个信息项(块类型、预测模式、残留系数等)被顺序分发给熵编码器。Of particular interest here is the entropy encoder. The entropy encoder encodes information in the order it arrives. Typically, a "raster scan" style of block traversal is implemented, starting with the block in the upper left corner of the image, as shown in FIG1A by reference symbol PRS. For each block, the various information items required to represent the block (block type, prediction mode, residual coefficients, etc.) are sequentially distributed to the entropy encoder.

已知一种足够复杂的有效算术编码器,被称为“CABAC”(“上下文适应二进制算术编码器”),其被引入到AVC压缩标准(也被称为ISO-MPEG4 第10部分和ITU-T H.264)。An efficient arithmetic coder of sufficient complexity is known, called “CABAC” (“Context Adaptive Binary Arithmetic Coder”), which was introduced into the AVC compression standard (also known as ISO-MPEG4 Part 10 and ITU-T H.264).

熵编码器实现各种构思:Entropy encoders implement various concepts:

-算术编码:例如最初在文档J.Rissanen and G.G.Langdon Jr,“Universalmodeling and coding,”IEEE Trans.Inform.Theory,vol.IT-27,pp.12–23,Jan. 1981中描述的编码器使用该符号的出现概率来对符号进行编码;Arithmetic coding: encoders such as those originally described in the document J. Rissanen and G. G. Langdon Jr, “Universal modeling and coding,” IEEE Trans. Inform. Theory, vol. IT-27, pp. 12–23, Jan. 1981, encode symbols using the probability of occurrence of that symbol;

-上下文适应:这包括适应要编码的符号的出现概率。一方面,实现快速获悉。另一方面,根据之前编码的信息的状态,特定的上下文被用于编码。每个上下文存在相对应的固有的符号出现概率。例如,上下文根据给定的配置对应于编码符号的类型(残留的系数、编码模式的信令等的表示),或者对应于邻居的状态(例如从邻居选择的“帧内”模式的数量等);-Context Adaptation: This involves adapting the probability of occurrence of the symbols to be coded. On the one hand, this allows for fast learning. On the other hand, a specific context is used for coding, depending on the state of previously coded information. Each context has a corresponding inherent probability of occurrence of symbols. For example, the context corresponds to the type of coded symbol (residual coefficient, signaling of coding mode, etc.) or to the state of the neighborhood (e.g., the number of "Intra" modes selected from the neighborhood, etc.) according to a given configuration.

-二进制化:要编码的符号被转换为比特串的形式。随后,该各个比特被相继分发给二进制熵编码器。- Binarization: The symbol to be encoded is converted into a bit string. The individual bits are then successively distributed to a binary entropy encoder.

于是,该熵编码器针对使用的每个上下文来实现一种系统,用于快速获悉与之前针对考虑的上下文来编码的符号相关的概率。该获悉基于这些符号的编码顺序。典型地,如上所述根据“光栅扫描”类型的顺序来遍历图像。The entropy encoder then implements a system for quickly learning the probabilities associated with the symbols previously encoded for the context in question, for each context used. This learning is based on the order in which these symbols were encoded. Typically, the image is traversed according to a "raster scan" type of order, as described above.

在对可等于0或1的给定符号b进行编码时,以下列方式针对当前块 MBi来更新该符号的出现概率Pi的获悉:When encoding a given symbol b, which may be equal to 0 or 1, the knowledge of the probability of occurrence P i of this symbol is updated for the current block MB i in the following way:

其中,α是预定值,例如0.95,且Pi-1是在该符号最后出现时所计算的符号出现概率。Wherein, α is a predetermined value, such as 0.95, and Pi -1 is the probability of occurrence of the symbol calculated when the symbol appears last.

图1A表示这样的熵编码的示意性示例,其中,图像IN的当前块MBi被熵编码。在当前块MBi的熵编码开始时,所使用的符号出现概率是在之前编码和解码的块的编码之后获得的符号出现概率,根据上述“光栅扫描”类型的块的逐行遍历,该在之前编码和解码的块紧邻在当前块MBi的前面。仅为了图示清楚,图1A中通过细线箭头来表示针对特定的块的基于逐块依赖性的获悉。FIG1A shows a schematic example of such entropy coding, in which a current block MBi of an image I N is entropy coded. At the start of entropy coding of the current block MBi , the symbol occurrence probabilities used are those obtained after the encoding of the previously coded and decoded block immediately preceding the current block MBi , according to the row-by-row traversal of the blocks of the "raster scan" type described above. For clarity of illustration only, FIG1A illustrates the block-by-block dependency learning for a particular block using thin arrows.

该类型的熵编码的缺陷在于如下事实,在对位于行开始的符号进行编码时,使用的概率主要对应于位于前一行的末尾的符号所观察到的概率,与块的“光栅扫描”遍历相关。现在,由于符号概率的可能空间变化(例如,对于与运动信息项相关的符号,位于图像右侧部分的运动与在左侧部分观察到的可以不同,且从而对于由此产生的局部概率来说是类似的),可以观察到概率的局部适应性的缺失,这在编码时具有引起有效性损失的风险。A drawback of this type of entropy coding is that, when coding a symbol located at the beginning of a line, the probabilities used correspond mainly to the probabilities observed for the symbol located at the end of the previous line, associated with a "raster scan" traversal of the block. Due to the possible spatial variations in the symbol probabilities (for example, for a symbol associated with a motion information item, the motion located in the right part of the image can be different from that observed in the left part, and thus the local probabilities resulting therefrom can be similar), a lack of local adaptability of the probabilities can be observed, which risks causing a loss of effectiveness during coding.

在互联网地址http://wftp3.itu.int/av-arch/jctvc-site/2010_04_A_ Dresden/JCTVC-A114-Annex A.doc(2011年2月8日)提供的文档“Annex A:CDCM VideoCodec Decoder Specification”中描述了一种编码方法,其缓解了上述缺陷。如图1B所示,在以上文档中描述的编码方法包括:A coding method is described in the document "Annex A: CDCM Video Codec Decoder Specification" available at the internet address http://wftp3.itu.int/av-arch/jctvc-site/2010_04_A_ Dresden/JCTVC-A114-Annex A.doc (8 February 2011) which alleviates the above-mentioned drawbacks. As shown in FIG1B , the coding method described in the above document includes:

-将图像IN切分为多个块的步骤,- a step of dividing the image I N into a plurality of blocks,

-结合例如由阴影箭头表示的之前编码和解码的预定数量的三个块 MBr1、MBr2、MBr3对该图像的当前块MBi进行预测编码的步骤。上述三个块特别包括紧邻地位于当前块MBi的左边的块MBr1、以及分别紧邻地位于当前块MBi的上方和右上方的两个块MBr2和MBr3a step of predictive coding of a current block MB i of the image in conjunction with a predetermined number of three previously coded and decoded blocks MBr 1 , MBr 2 , MBr 3 , indicated, for example, by hatched arrows. These three blocks include in particular the block MBr 1 situated immediately to the left of the current block MB i , and the two blocks MBr 2 and MBr 3 situated immediately above and immediately to the right of the current block MB i ,

-对图像IN的块进行熵编码的步骤,据此,在这些块可用时,每块使用分别针对紧邻地位于当前块上方的已编码和解码的块以及紧邻地位于当前块的左侧的已编码和解码的块来计算的符号出现概率。为了使后者更为清楚,在图1B中通过细线箭头来部分表示该符号出现概率的使用。a step of entropy coding the blocks of the image I N , according to which, when these blocks are available, each block uses the probability of the occurrence of symbols calculated respectively for the coded and decoded blocks immediately above the current block and for the coded and decoded blocks immediately to the left of the current block. To make the latter clearer, the use of these symbol occurrence probabilities is partially indicated in FIG1B by thin arrows.

该熵编码的好处在于,它利用了由当前块的紧邻环境产生的概率,由此使得可能获得更高的编码性能。此外,使用的编码技术使得可能对预定数量的成对的相邻块的子集并行编码。在图1B展示的例子中,三个子集SE1、 SE2和SE3被并行编码,在该例子中每个子集由虚线表示的一行块构成。当然,该编码需要分别位于当前块的上方和右上方的块可用。The benefit of this entropy coding is that it utilizes the probability generated by the immediate surroundings of the current block, making it possible to obtain higher coding performance. In addition, the coding technique used makes it possible to encode a predetermined number of paired subsets of adjacent blocks in parallel. In the example shown in Figure 1B, three subsets SE1, SE2 and SE3 are encoded in parallel, each of which consists of a row of blocks represented by a dotted line. Of course, this coding requires that blocks located above and to the upper right of the current block are available.

该并行编码技术的缺陷在于,为了允许访问针对紧邻地位于当前块上方的块来计算的符号出现概率,需要存储与一行块关联的一些概率。如果例如在图1B中考虑第二行SE2的块,通过使用针对之前的第一行SE1的第一块来计算的符号出现概率,该行的第一块被熵编码。在完成第二行的第一块的编码时,出现概率的值V1的状态被存储在缓冲存储器MT中。随后,通过使用同时针对第一行SE1的第二块和第二行SE2的第一块来计算的符号出现概率,第二行SE2的第二块被熵编码。在完成第二行的第二块的编码时,出现概率的值V2的状态被存储在缓冲存储器MT中。该过程持续,直到第二行SE的最后一块。由于概率的数量非常大(存在与语法元素的数量和关联上下文的数量的组合一样多的概率),整一行的这些概率的存储在存储器资源方面非常昂贵。A drawback of this parallel encoding technique is that, in order to access the symbol occurrence probabilities calculated for the blocks immediately above the current block, it is necessary to store a number of probabilities associated with a row of blocks. For example, considering the blocks of the second row SE2 in FIG1B , the first block of the row is entropy encoded using the symbol occurrence probabilities calculated for the first block of the preceding first row SE1. Upon completion of encoding the first block of the second row, the state of the occurrence probability values V1 is stored in the buffer memory MT. Subsequently, the second block of the second row SE2 is entropy encoded using the symbol occurrence probabilities calculated simultaneously for the second block of the first row SE1 and the first block of the second row SE2. Upon completion of encoding the second block of the second row SE2, the state of the occurrence probability values V2 is stored in the buffer memory MT. This process continues until the last block of the second row SE2. Since the number of probabilities is very large (there are as many probabilities as the number of syntax elements and the number of associated contexts combined), storing these probabilities for an entire row is very expensive in terms of memory resources.

发明内容Summary of the Invention

本发明的一个目标是弥补上述现有技术的缺陷。An object of the present invention is to remedy the above-mentioned drawbacks of the prior art.

为此,本发明的主题涉及一种对至少一个图像进行编码的方法,包括下列步骤:To this end, the subject matter of the invention is a method for encoding at least one image, comprising the following steps:

-将图像划分为多个块,- Divide the image into blocks,

-将所述块分组为预定数量的块的子集,- grouping said blocks into subsets of a predetermined number of blocks,

-对所述块的子集中的每个并行编码,所考虑的子集中的块是根据遍历的预定顺序来编码的,针对所考虑的子集中的当前块,所述编码步骤包括下列子步骤:- parallel encoding of each of the subsets of blocks, the blocks of the considered subset being encoded according to a predetermined order of traversal, the encoding step comprising, for the current block of the considered subset, the following sub-steps:

·关于至少一个之前编码和解码的块对所述当前块进行预测编码,predictively encoding the current block with respect to at least one previously encoded and decoded block,

·通过获悉至少一个之前的符号出现概率对当前块进行熵编码,Entropy coding of the current block by learning the probability of occurrence of at least one previous symbol,

根据本发明的方法值得关注之处在于:The method according to the present invention is noteworthy in that:

-在当前块是所考虑的子集中要编码的第一块的情形下,符号出现概率是针对至少一个其他子集中的编码和解码的预定块来计算的符号出现概率,- in the case where the current block is the first block to be coded in the subset under consideration, the probability of occurrence of the symbol is the probability of occurrence of the symbol calculated for coded and decoded predetermined blocks in at least one other subset,

-在当前块是所考虑的子集中除第一块以外的块的情形下,符号出现概率是针对属于相同子集的至少一个已编码和解码的块来计算的符号出现概率。- In the case where the current block is a block other than the first block in the considered subset, the symbol occurrence probability is the symbol occurrence probability calculated for at least one coded and decoded block belonging to the same subset.

该布置使得可能在编码器的缓冲存储器中存储较少数量的符号出现概率,因为除了块的子集的第一块之外的当前块的熵编码不再必定需要使用关于之前已编码和解码的块所计算的符号出现概率,该之前已编码和解码的块位于另一子集中并位于当前块上方。This arrangement makes it possible to store a smaller number of symbol occurrence probabilities in the buffer memory of the encoder, since the entropy encoding of a current block other than the first block of the subset of blocks no longer necessarily requires the use of symbol occurrence probabilities calculated with respect to a previously encoded and decoded block that is in the other subset and is located above the current block.

该布置还使得可能保持现有的压缩性能,因为当前块的熵编码使用针对当前块所属的子集中的另一个之前编码和解码的块来计算的符号出现概率,并且最终已经通过更新概率来实现获悉,从而后者符合视频信号的统计。This arrangement also makes it possible to maintain the existing compression performance, since the entropy coding of the current block uses the probability of occurrence of symbols calculated for another previously encoded and decoded block in the subset to which the current block belongs, and learning is finally achieved by updating the probabilities so that the latter conform to the statistics of the video signal.

在所考虑的块的子集中的第一当前块熵编码期间使用针对所述其他子集的第一块来计算的符号出现概率的主要好处在于,通过在编码器的缓冲存储器中仅存储所述符号出现概率的更新来节省该缓冲存储器,而不用考虑所述其他子集的其他连续块所获悉的符号出现概率。The main benefit of using the symbol occurrence probabilities calculated for the first block of the subset of blocks under consideration during entropy coding of the first current block in the subset of blocks under consideration is that a buffer memory of the encoder is saved by storing in the buffer memory only the updates of the symbol occurrence probabilities, without taking into account the symbol occurrence probabilities known for other consecutive blocks of the other subset.

在所考虑的块的子集的第一当前块的熵编码期间使用针对所述其他子集中除第一块以外的块(例如第二块)来计算的符号出现概率的主要好处在于,获得对符号出现概率的更精确且因此更好的获悉,由此带来更好的视频压缩性能。The main benefit of using the symbol occurrence probabilities calculated for blocks other than the first block (e.g. the second block) in the other subsets during the entropy encoding of the first current block of the subset of blocks under consideration is that a more precise and therefore better knowledge of the symbol occurrence probabilities is obtained, resulting in better video compression performance.

在特定的实施例中,与所述子集中除第一块以外的要编码的当前块属于相同子集的所述编码和解码块是要编码的当前块的最近相邻块。In a particular embodiment, said coded and decoded blocks belonging to the same subset as the current block to be coded except for the first block in said subset are the nearest neighboring blocks of the current block to be coded.

该布置由此使得可能在所考虑的子集中的第一块的熵编码期间仅存储所获悉的符号出现概率,因为在该特殊情形下,仅考虑针对位于第一当前块上方且属于另一子集的块来计算的符号出现概率。这带来了编码器的存储器资源的大小降低的优化。This arrangement thus makes it possible to store only the learned symbol occurrence probabilities during the entropy coding of the first block in the considered subset, since in this particular case only the symbol occurrence probabilities calculated for the blocks located above the first current block and belonging to another subset are considered. This leads to an optimization in terms of a reduction in the size of the encoder's memory resources.

在另一特殊实施例中,在所考虑的子集中的块的预测编码将关于所述考虑的子集以外的预定数量的之前编码和解码的块来执行的情形下,所述考虑的子集中的块的并行编码是以相对于在执行并行编码的顺序下紧邻在前面的块的子集而偏移预定数量的块来执行的。In another particular embodiment, in the case where the predictive coding of the blocks in the considered subset is to be performed with respect to a predetermined number of previously coded and decoded blocks outside the considered subset, the parallel coding of the blocks in the considered subset is performed with an offset by a predetermined number of blocks relative to the subset of the immediately preceding blocks in the order in which the parallel coding is performed.

该布置允许针对要编码的当前的块的子集来实现在执行并行编码的顺序下在当前子集前面的块的子集中的块的处理过程的同步,由此使得可能保证被用于当前块的编码的前面子集中的一个或多个块的可用性。通过该方式,在验证前面的子集中的该块的可用性的步骤(例如为在现有技术的并行编码器中实现的步骤)可被有利地忽略,由此允许在根据本发明的编码器中对块进行处理所需的处理时间的加速。This arrangement allows, for a subset of blocks currently being encoded, synchronization of the processing of blocks in the subset of blocks preceding the current subset in the order in which parallel encoding is performed, thereby making it possible to ensure the availability of one or more blocks in the preceding subset for encoding the current block. In this way, the step of verifying the availability of the blocks in the preceding subset (such as is performed in prior art parallel encoders) can be advantageously omitted, thereby allowing the processing time required for processing blocks in the encoder according to the present invention to be accelerated.

相关地,本发明还涉及一种对至少一个图像进行编码的设备,包括:Relatedly, the present invention also relates to a device for encoding at least one image, comprising:

-用于将图像划分为多个块的部件,- a component for dividing the image into blocks,

-用于将块分组为预定数量的块的子集的部件,- means for grouping the blocks into subsets of a predetermined number of blocks,

-对块的子集中的每个并行编码的部件,所考虑的子集中的块是根据遍历的预定顺序来编码的,针对所考虑的子集中的当前块,所述编码部件包括:- for each parallel encoding means of a subset of blocks, the blocks of the subset considered are encoded according to a predetermined order of traversal, said encoding means comprising, for a current block of the subset considered,

·关于至少一个之前编码和解码的块对当前块进行预测编码的子部件,a subcomponent for predictively encoding the current block with respect to at least one previously encoded and decoded block,

·基于至少一个符号出现概率对当前块进行熵编码的子部件,a subcomponent for entropy coding the current block based on at least one symbol occurrence probability,

所述编码设备值得关注之处在于:The coding device is noteworthy in that:

-在当前块是所考虑的子集中要编码的第一块的情形下,针对第一当前块的熵编码,熵编码的子部件考虑针对至少一个其他子集中的编码和解码的预定块来计算的符号出现概率,- in the case where the current block is the first block to be coded in the subset under consideration, the entropy coding sub-means take into account, for the entropy coding of the first current block, the probabilities of occurrence of symbols calculated for coded and decoded predetermined blocks in at least one other subset,

-在当前块是所考虑的子集中除第一块以外的块的情形下,针对当前块的熵编码,熵编码的子部件考虑针对属于相同子集的至少一个编码和解码块来计算的符号出现概率。- in the case where the current block is a block other than the first block of the subset considered, the entropy coding subcomponent takes into account, for the entropy coding of the current block, the symbol occurrence probabilities calculated for at least one coded and decoded block belonging to the same subset.

通过相应的方式,本发明还涉及一种对表示至少一个编码图像的流进行解码的方法,包括下列步骤:In a corresponding manner, the invention also relates to a method for decoding a stream representing at least one coded image, comprising the following steps:

-在图像中识别要解码的预定数量的块的子集,- identifying in the image a subset of a predetermined number of blocks to be decoded,

-对与块的子集中的每个关联的流的部分并行解码,所考虑的子集中的块是根据遍历的预定顺序来解码的,针对所考虑的子集中的当前块,所述解码步骤包括下列子步骤:- parallel decoding of the portions of the stream associated with each of the subsets of blocks, the blocks of the considered subset being decoded according to a predetermined order of traversal, said decoding step comprising, for a current block of the considered subset, the following sub-steps:

·基于至少一个符号出现概率对当前块进行熵解码,Entropy decoding of the current block based on at least one symbol occurrence probability,

·关于至少一个之前解码的块对当前块进行预测解码,predictively decoding the current block with respect to at least one previously decoded block,

该解码方法值得关注之处在于:The decoding method is noteworthy in that:

-在当前块是所考虑的子集中要解码的第一块的情形下,符号出现概率是针对至少一个其他子集的已解码预定块来计算的,- in the case where the current block is the first block to be decoded in the subset under consideration, the symbol occurrence probabilities are calculated for already decoded predetermined blocks of at least one other subset,

-在当前块是所考虑的子集中除该子集中第一块以外的块的情形下,符号出现概率是针对属于相同子集的至少一个解码的块来计算的。- In the case where the current block is a block of the considered subset other than the first block in the subset, the symbol occurrence probability is calculated for at least one decoded block belonging to the same subset.

在特定的实施例中,与所述子集中第一块以外的要被解码的当前块属于相同的子集的解码块是要解码的当前块的最近相邻块。In a particular embodiment, the decoded blocks belonging to the same subset as the current block to be decoded other than the first block in the subset are nearest neighboring blocks of the current block to be decoded.

在另一特定实施例中,在所考虑的子集中的块的预测解码想要针对除了所考虑的子集以外的预定数量的之前编码和解码的块来执行的情形下,所考虑的子集中的块的并行解码是相对于在执行并行解码的顺序下紧邻在前面的块的子集而偏移预定数量的块来执行的。In another specific embodiment, in a case where predictive decoding of blocks in the considered subset is intended to be performed for a predetermined number of previously encoded and decoded blocks other than the considered subset, parallel decoding of the blocks in the considered subset is performed offset by the predetermined number of blocks relative to the subset of the immediately preceding blocks in the order in which the parallel decoding is performed.

相关地,本发明还涉及一种对表示至少一个编码图像的流进行解码的设备,包括:Relatedly, the invention also relates to a device for decoding a stream representing at least one coded image, comprising:

-在图像中识别要解码的预定数量的块的子集的部件,- means for identifying in the image a subset of a predetermined number of blocks to be decoded,

-对与块的子集中的每个关联的流的部分并行解码的部件,所考虑的子集中的块是根据遍历的预定顺序来解码的,针对所考虑的子集的当前块,所述解码部件包括:- means for partially parallel decoding of the stream associated with each of the subsets of blocks, the blocks of the subset considered being decoded according to a predetermined order of traversal, said decoding means comprising, for a current block of the subset considered:

·基于至少一个符号出现概率对当前块进行熵解码的子部件,a subcomponent for entropy decoding the current block based on at least one symbol occurrence probability,

·关于至少一个之前解码的块对当前块进行预测解码的子部件,a subcomponent for predictive decoding of the current block with respect to at least one previously decoded block,

所述解码设备值得关注之处在于:The decoding device is noteworthy in that:

-在当前块是所考虑的子集中要解码的第一块的情形下,针对第一当前块的熵解码,进行熵解码的子部件考虑针对至少一个其他子集的已解码预定块来计算的符号出现概率,- in the case where the current block is the first block to be decoded in the subset under consideration, the sub-means for performing entropy decoding take into account, for the entropy decoding of the first current block, the probabilities of occurrence of symbols calculated for already decoded predetermined blocks of at least one other subset,

-在当前块是所述考虑的子集中除第一块以外的块的情形下,针对当前块的熵解码,进行熵解码的子部件考虑针对属于相同子集的至少一个解码块来计算的符号出现概率。- in the case where the current block is a block other than the first block of said considered subset, the sub-means for performing entropy decoding take into account, for entropy decoding of the current block, the probabilities of occurrence of symbols calculated for at least one decoded block belonging to the same subset.

本发明的目标还在于一种包含指令的计算机程序,当该程序在计算机上执行时,所述指令用于执行以上的编码或解码方法的步骤。The invention also relates to a computer program comprising instructions for executing the steps of the above encoding or decoding method when this program is executed on a computer.

该程序可以使用任意编程语言,且可以是源代码、目标代码或源代码和目标代码之间的中间代码的形式,例如部分编译的形式,或者任意其他想要的形式。The program may use any programming language and may be in the form of source code, object code, or a code intermediate between source code and object code, such as a partially compiled form, or in any other desired form.

本发明的又一目标还在于一种可被计算机读取的记录介质,并且其包含例如上述计算机程序指令。Yet another object of the present invention is a computer-readable recording medium containing the computer program instructions described above.

记录介质可以是能够存储程序的任意实体或设备。例如,该介质可以包括:存储装置,诸如ROM(如CD ROM)、或微电子电路ROM;或者磁记录装置,例如磁盘(软盘)或硬盘。The recording medium may be any entity or device capable of storing a program. For example, the medium may include: a storage device such as a ROM (e.g., CD ROM) or a microelectronic circuit ROM; or a magnetic recording device such as a magnetic disk (floppy disk) or a hard disk.

此外,该记录介质可以是传输介质例如电或光信号,其可以通过电或光缆以无线电或其他方式来传输。根据本发明的程序特别地可在互联网类型的网络上下载。Furthermore, the recording medium may be a transmission medium such as an electrical or optical signal, which may be transmitted by radio or other means via an electrical or optical cable.The program according to the invention may in particular be downloaded over a network of the Internet type.

替换地,该记录介质可以是集成电路,程序被合并在该集成电路中,该电路适于执行所讨论的方法或可用于后者的执行。Alternatively, the recording medium may be an integrated circuit in which the program is incorporated, the circuit being suitable for executing the method in question or being usable for the execution of the latter.

上述编码设备、解码方法、解码设备和计算机程序至少具有与根据本发明的编码方法所表现的优势相同的优势。The above-described encoding device, decoding method, decoding device, and computer program have at least the same advantages as those exhibited by the encoding method according to the present invention.

附图说明BRIEF DESCRIPTION OF THE DRAWINGS

通过参考附图来描述的两个优选实施例,其他特征和优势将变得明显,在附图中:Other features and advantages will become apparent from the description of two preferred embodiments with reference to the accompanying drawings, in which:

-图1A表示根据第一例子的现有技术的图像编码图,- FIG. 1A shows a prior art picture coding diagram according to a first example,

-图1B表示根据第二例子的现有技术的图像编码图,- FIG. 1B shows a prior art picture coding diagram according to a second example,

-图2A表示根据本发明的编码方法的主要步骤,- FIG2A shows the main steps of the encoding method according to the invention,

-图2B详细地展示了在图2A中的编码方法中实现的并行编码,- FIG. 2B illustrates in detail the parallel encoding implemented in the encoding method of FIG. 2A ,

-图3A表示根据本发明的编码设备的实施例,- FIG. 3A shows an embodiment of a coding device according to the invention,

-图3B表示图3A中的编码设备的编码单元,- FIG. 3B shows a coding unit of the coding device in FIG. 3A ,

-图4A表示根据第一优选实施例的图像编码/解码图,- FIG. 4A shows an image encoding/decoding diagram according to a first preferred embodiment,

-图4B表示根据第二优选实施例的图像编码/解码图,- FIG. 4B shows an image encoding/decoding diagram according to a second preferred embodiment,

-图5A表示根据本发明的解码方法的主要步骤,- FIG5A shows the main steps of the decoding method according to the invention,

-图5B详细地展示了图5A中的解码方法中实现的并行编码,- FIG5B shows in detail the parallel encoding implemented in the decoding method of FIG5A,

-图6A表示根据本发明的解码设备的实施例,- FIG. 6A shows an embodiment of a decoding device according to the invention,

-图6B表示图6A中的解码设备的解码单元。- Figure 6B shows a decoding unit of the decoding device in Figure 6A.

具体实施方式DETAILED DESCRIPTION

现在将描述本发明的实施例,其中,根据本发明的编码方法被用于根据二进制流对一系列图像进行编码,该二进制流接近于用根据H.264/MPEG-4 AVC标准的编码来获取的二进制流。在该实施例中,通过对初始符合 H.264/MPEG-4AVC标准的编码器的调整例如以软件或硬件的方式来实现根据本发明的编码方法。以图2A所示的包含步骤C1到C5的算法的形式来展示根据本发明的编码方法。An embodiment of the present invention will now be described in which the encoding method according to the present invention is used to encode a series of images based on a binary stream that approximates a binary stream obtained by encoding in accordance with the H.264/MPEG-4 AVC standard. In this embodiment, the encoding method according to the present invention is implemented, for example, in software or hardware, by modifying an encoder that originally complies with the H.264/MPEG-4 AVC standard. The encoding method according to the present invention is illustrated in the form of an algorithm comprising steps C1 to C5, as shown in FIG2A.

根据本发明的实施例,在图3A所示的编码设备CO中实现根据本发明的编码方法。According to an embodiment of the present invention, the encoding method according to the present invention is implemented in the encoding device CO shown in FIG. 3A .

参考图2A,第一编码步骤C1是将要编码的一系列图像中的图像IE切分为多个块或宏块MB,如图4A或4B所示。在所示例子中,所述块MB为正方形并且都有相同的大小。作为图像大小的函数,其不必是块大小的倍数,左侧的最后的块和底部的最后的块可以不是正方形。在替代的实施例中,块例如可以是矩形大小并且/或者互相不对齐。With reference to FIG2A , the first encoding step C1 involves dividing an image IE from the series of images to be encoded into a plurality of blocks or macroblocks MB, as shown in FIG4A or 4B . In the example shown, the blocks MB are square and all of the same size. As a function of the image size, which need not be a multiple of the block size, the last block on the left and the last block at the bottom may not be square. In alternative embodiments, the blocks may, for example, be rectangular in size and/or not aligned with one another.

每个块或宏块自身还可被分为子块,该子块自身还可细分。Each block or macroblock may itself be further divided into sub-blocks, which may themselves be further subdivided.

该切分是通过图3A所示的划分模块PCO来实现的,其使用例如众所周知的划分算法。This segmentation is achieved by the segmentation module PCO shown in FIG3A , which uses, for example, a well-known segmentation algorithm.

参考图2A,第二编码步骤C2是将上述块分组为预定数量P的连续的块的子集SE1、SE2、…SEk、…、SEP,该子集将被并行编码。在图4A和4B 所示的例子中,预定数量P等于4,并且用虚线表示的四个子集SE1、SE2、 SE3、SE4分别由图像IE的前四行块构成。With reference to FIG2A , the second encoding step C2 consists of grouping the blocks into a predetermined number P of consecutive block subsets SE1, SE2, ..., SEk, ..., SEP, which are encoded in parallel. In the example shown in FIG4A and FIG4B , the predetermined number P is equal to 4, and the four subsets SE1, SE2, SE3, and SE4, indicated by dashed lines, each consist of the first four rows of blocks of the image IE.

该分组操作是通过图3A所示的计算模块GRCO利用众所周知的算法来实现的。The grouping operation is implemented by the calculation module GRCO shown in FIG3A using a well-known algorithm.

参考图2A,第三编码步骤C3包括对所述块的子集SE1、SE2、SE3和 SE4中的每个并行编码,所考虑的子集中的块是根据遍历的预定顺序PS来编码的。在图4A和4B所示的例子中,当前子集SEk(1≤k≤4)中的块如箭头PS所示从左到右被依次编码。With reference to FIG2A , the third encoding step C3 comprises encoding each of the subsets SE1, SE2, SE3, and SE4 of blocks in parallel, the blocks of the considered subset being encoded according to a predetermined order PS of traversal. In the example shown in FIG4A and FIG4B , the blocks of the current subset SEk (1≤k≤4) are encoded sequentially from left to right as indicated by the arrows PS.

该并行编码是通过图3A所示的数量为R(R=4)的编码单元UCk(1≤k≤R) 来实现的,并允许编码方法的大幅加速。通过这样已知的方式,编码器CO 包括缓冲存储器MT,其适于包含例如与当前块的编码协作的逐渐更新的符号出现概率。This parallel coding is achieved by a number R of coding units UCk (1≤k≤R) (R=4) as shown in FIG3A and allows a significant acceleration of the coding method. In a known manner, the coder CO comprises a buffer memory MT suitable for containing, for example, gradually updated symbol occurrence probabilities in conjunction with the coding of the current block.

如图3B更详细的展示,每个编码单元UCk包括:As shown in more detail in FIG3B , each coding unit UCk includes:

·关于至少一个之前编码和解码的块对当前块进行预测编码的子单元,用SUCPk来表示;The sub-unit for predictive coding of the current block with respect to at least one previously coded and decoded block, denoted by SUCPk;

·通过使用针对所述之前编码和解码的块来计算的至少一个符号出现概率对所述当前块进行熵编码的子单元,用SUCEk来表示。• A sub-unit of entropy coding of said current block by using at least one symbol occurrence probability calculated for said previously coded and decoded block, denoted SUCEk.

预测编码子单元SUCPk能够根据传统的预测技术例如以帧内和/或帧间模式来执行当前块的预测编码。The prediction coding sub-unit SUCPk is capable of performing prediction coding of the current block according to conventional prediction techniques, for example in intra and/or inter modes.

熵编码子单元SUCEk本身是CABAC类型,但根据本发明来调整,在说明书中将进一步描述。The entropy coding sub-unit SUCEk itself is of CABAC type, but is adapted according to the present invention, which will be further described in the specification.

作为变体,熵编码子单元SUCEk可以是已知的霍夫曼编码器。As a variant, the entropy coding sub-unit SUCEk may be a known Huffman coder.

在图4A和4B所示的例子中,第一单元UC1对第一行SE1的块从左向右进行编码。在到达第一行SE1的最后一块时,会传递到第(N+1)行这里是第5行等的第一块。第二单元UC2对第二行SE2的块从左向右进行编码。在到达第二行SE2的最后一块时,会传递到第(N+2)行这里是第6行等的第一块。该遍历被重复直到单元UC4,其对第四行SE4的块从左向右进行编码。在到达第一行的最后一块时,会传递到第(N+4)行这里是第8行的第一块,以此类推直到图像IE的最后一块被编码。In the example shown in Figures 4A and 4B, the first unit UC1 encodes the blocks of the first row SE1 from left to right. When the last block of the first row SE1 is reached, the first block of the (N+1)th row, which is row 5, is passed to. The second unit UC2 encodes the blocks of the second row SE2 from left to right. When the last block of the second row SE2 is reached, the first block of the (N+2)th row, which is row 6, is passed to, and so on. This process is repeated until the unit UC4 encodes the blocks of the fourth row SE4 from left to right. When the last block of the first row is reached, the first block of the (N+4)th row, which is row 8, is passed to, and so on until the last block of the image IE is encoded.

与以上刚才描述的不同的其他类型的遍历当然也是可能的。于是,可以将图像IE切分为若干个子图像,并将该类型的切分独立地应用于每个子图像。每个编码单元也可以不处理如上解释的嵌套的行而是嵌套的列。还可以以任意方向来遍历行或列。Other types of traversal than those just described are of course possible. Thus, the image IE can be split into several sub-images, and this type of segmentation applied independently to each sub-image. Each coding unit can also process nested columns instead of rows as explained above. It is also possible to traverse rows or columns in any direction.

参考图2A,第四编码步骤C4是产生N个子比特流Fk(1≤k≤N)以及每个子集SEk中的已处理块的解码版本,该子比特流Fk表示被上述每个编码单元压缩的已处理的块。根据将在说明书中进一步详细描述的同步机制,用SED1、SED2、…SEDk、…、SEDP表示的所考虑的子集中的解码的已处理块可被图3A所示的某些编码单元UC1、UC2、……、UCk、……、UCP 重新使用。With reference to FIG2A , the fourth encoding step C4 generates N sub-bitstreams Fk (1≤k≤N), representing the processed blocks compressed by each coding unit, as well as decoded versions of the processed blocks in each subset SEk. According to a synchronization mechanism described in further detail later in this specification, the decoded processed blocks in the considered subset, denoted by SED1, SED2, ..., SEDk, ..., SEDP, can be reused by certain coding units UC1, UC2, ..., UCk, ..., UCP, as shown in FIG3A .

参考图2A,第五编码步骤C5包括基于上述子流Fk来构造全局的流F。根据一个实施例,子流Fk被简单地并列,其额外的信息项用于向解码器表示每个子流Fk在全局流F中的位置。所述全局流F通过通信网络(未示出) 传输到远程终端。后者包括图6A所示的解码器DO。With reference to FIG2A , the fifth encoding step C5 comprises constructing a global stream F based on the substreams Fk described above. According to one embodiment, the substreams Fk are simply arranged in parallel, with additional information indicating to the decoder the position of each substream Fk within the global stream F. The global stream F is transmitted via a communication network (not shown) to a remote terminal. The latter includes a decoder DO shown in FIG6A .

于是,如说明书中将更详细地描述,根据本发明的解码器能够隔离全局流F中的子流Fk,并将它们分配给解码器的每个组成解码单元。需要注意,将子流分解为全局流独立于选择使用若干个并行地操作的解码单元,并且通过该方法可以仅使用包含并行操作单元的编码器或解码器。Thus, as will be described in more detail later in the description, the decoder according to the invention is able to isolate the substreams Fk of the global stream F and assign them to each constituent decoding unit of the decoder. It should be noted that the decomposition of the substreams into the global stream is independent of the choice of using several decoding units operating in parallel, and that this approach makes it possible to use only encoders or decoders that include units operating in parallel.

全局流F的该构造是在如图3A所示的流构造模块CF中实现的。This construction of the global flow F is implemented in the flow construction module CF as shown in FIG3A .

现在将参考图2B来描述例如在上述并行编码步骤C3期间在编码单元 UCk中实现的本发明的各个特定子步骤。Various specific sub-steps of the invention as implemented in the coding unit UCk, for example during the above-mentioned parallel coding step C3, will now be described with reference to FIG. 2B .

在步骤C31的过程中,编码单元UCk选择图4A或4B所示的当前行SEk 中要编码的第一块作为当前块。During step C31 , the coding unit UCk selects the first block to be coded in the current row SEk shown in FIG. 4A or 4B as the current block.

在步骤C32的过程中,单元UCk测试当前块是否是图像IE中的第一块 (位于顶部和左侧),在上述步骤C1中该图像已被切分为块。During a step C32 , the unit UCk tests whether the current block is the first block (located at the top and left) in the image IE which has been divided into blocks in the above-mentioned step C1 .

如果是这种情形,在步骤C33的过程中,编码概率被初始化为之前在图 3A的编码器CO中定义的值Pinit。If this is the case, during a step C33, the coding probabilities are initialized to the values Pinit previously defined in the coder CO of FIG. 3A .

如果不是这种情形,在后续说明中将详细描述的步骤C40中,确定必要的之前编码和解码的块的可用性。If this is not the case, in a step C40 , which will be described in detail in the subsequent description, the availability of the necessary previously encoded and decoded blocks is determined.

在步骤C34的过程中,对图4A或4B所述的第一行SE1中的第一当前块MB1进行编码。该步骤C34包括将在下面描述的多个子步骤C341到 C348。During step C34, the first current block MB1 in the first line SE1 described in Figure 4A or 4B is encoded. This step C34 includes a plurality of sub-steps C341 to C348 which will be described below.

在第一子步骤C341的过程,通过帧内和/或帧间预测的已知技术来对当前块MB1进行预测编码,在其过程中,关于至少一个之前编码和解码的块来预测块MB1。During a first sub-step C341 , the current block MB1 is predictively coded by known techniques of intra-frame and/or inter-frame prediction, during which the block MB1 is predicted with respect to at least one previously coded and decoded block.

毋庸赘述,例如在H.264标准中提出的其他模式的帧内预测也是可以的。Needless to say, other modes of intra-frame prediction proposed in the H.264 standard, for example, are also possible.

当前块MB1还可以经过帧间模式的预测编码,在其过程中,关于从之前编码和解码的图像产生的块来预测当前块。当然可以设想其他类型的预测。在用于当前块的可能的预测中,根据对于本领域技术人员来说众所周知的速率失真准则来选择最优的预测。The current block MB1 can also be subjected to inter-mode predictive coding, during which the current block is predicted with respect to blocks generated from previously coded and decoded images. Of course, other types of prediction are conceivable. Among the possible predictions for the current block, the optimal prediction is selected according to a rate-distortion criterion well known to those skilled in the art.

上述预测编码步骤使得可能构造预测块MBp1,这是对当前块MB1的近似。与该预测编码相关的信息随后将被写入到流F,该流F被发送到解码器 DO。该信息特别包含预测的类型(帧间或帧内),且如果合适,包含帧内预测的模式、块或宏块的划分类型(如果宏块已被细分)、参考图像索引、以及在帧间预测模式中使用的偏移矢量。该信息被编码器CO压缩。The predictive coding step described above makes it possible to construct a prediction block MBp 1 , which is an approximation of the current block MB 1 . The information relating to this predictive coding is then written to a stream F which is sent to the decoder DO. This information contains in particular the type of prediction (inter or intra) and, if applicable, the mode of intra prediction, the type of partitioning of the block or macroblock (if the macroblock is subdivided), the reference image index, and the offset vector used in the inter prediction mode. This information is compressed by the encoder CO.

在后面的子步骤C342的过程中,从当前块MB1中减去预测块MBp1,产生残留块MBr1During the subsequent sub-step C342 , the prediction block MBp 1 is subtracted from the current block MB 1 to generate the residual block MBr 1 .

在后面的子步骤C343的过程中,根据传统的直接变换操作(例如DCT 类型的离散余弦变换)来变换残留块MBr1,产生变换的块MBt1During a subsequent sub-step C343 , the residual block MBr 1 is transformed according to a conventional direct transformation operation (for example a discrete cosine transformation of the DCT type), generating a transformed block MBt 1 .

在后面的子步骤C344的过程中,根据传统的量化操作(例如标量量化) 来对变换的块MBt1进行量化。然后获得系数被量化的块MBq1During the subsequent sub-step C344 , the transformed block MBt 1 is quantized according to a conventional quantization operation (for example scalar quantization), and a block MBq 1 of quantized coefficients is then obtained.

在后面的子步骤C345的过程中,对系数被量化的块MBq1进行熵编码。在优选的实施例中,这需要CABAC熵编码。During a subsequent sub-step C345 , the block MBq 1 of quantized coefficients is entropy coded. In a preferred embodiment, this requires CABAC entropy coding.

在后面的子步骤C346的过程中,根据传统的反量化操作来对块MBq1进行反量化,这是在步骤C344中执行的量化的逆操作。然后获得系数被反量化的块MBDq1During a subsequent sub-step C346 , the block MBq 1 is dequantized according to a conventional dequantization operation, which is the inverse of the quantization performed in step C344 . A block MBDq 1 is then obtained whose coefficients are dequantized.

在后面的子步骤C347的过程中,对系数被反量化的块MBDq1进行逆变换,这是以上步骤C343中执行的直接变换的逆操作。然后获得解码的残留块MBDr1During the subsequent sub-step C347 , the block MBDq 1 whose coefficients are inversely quantized is subjected to an inverse transformation, which is the inverse operation of the direct transformation performed in the above step C343 . The decoded residual block MBDr 1 is then obtained.

在后面的子步骤C348的过程中,通过将解码的残留块MBDr1加到预测块MBp1来构造解码的块MBD1。需要注意,后者与在说明书中进一步描述的对图像IE进行解码的方法完成时获取的解码块相同。解码块MBD1于是可被编码单元UC1或构成预定数量R的编码单元的任意其他编码单元使用。During a subsequent sub-step C348, a decoded block MBD 1 is constructed by adding the decoded residual block MBDr 1 to the prediction block MBp 1. It should be noted that the latter is identical to the decoded block obtained upon completion of the method for decoding the image IE described further in this description. The decoded block MBD 1 can then be used by the coding unit UC1 or any other coding unit constituting the predetermined number R of coding units.

在完成上述编码步骤C34时,例如如图3B所示的熵编码子单元SUCEk 包含例如与第一块的编码协作而逐渐更新的所有概率。这些概率对应于各种可能的语法元素且对应于各种相关的编码上下文。Upon completion of the encoding step C34, the entropy encoding subunit SUCEk, as shown in FIG3B , contains all probabilities that have been updated gradually, for example, in conjunction with the encoding of the first block. These probabilities correspond to various possible syntax elements and to various relevant encoding contexts.

在上述编码步骤C34之后,在步骤C35的过程中进行测试,以确定当前块是否是该相同行的第j块,其中,j是编码器CO的已知预定值、且至少等于1。After the above encoding step C34, a test is performed during step C35 to determine whether the current block is the j-th block of the same row, where j is a known predetermined value of the encoder CO and is at least equal to 1.

如果是这样的情形,在步骤C36的过程中,针对第j块来计算的一组概率被存储在例如如图3A以及图4A和4B所示的编码器CO的缓冲存储器 MT中,所述存储器的大小适于存储所计算的数量的概率。If this is the case, during step C36, the set of probabilities calculated for the jth block is stored in a buffer memory MT of the encoder CO, for example as shown in Figures 3A and 4A and 4B, the size of which is suitable for storing the number of probabilities calculated.

在步骤C37的过程中,单元UCk测试刚才被编码的行SEk中的当前块是否是图像IE的最后一块。During a step C37 , the unit UCk tests whether the current block in the line SEk that has just been coded is the last block of the image IE.

如果是这种情形,则在步骤C38的过程中,编码方法结束。If this is the case, the encoding method ends during a step C38 .

如果不是这种情形,在步骤C39的过程中根据图4A或4B中的箭头PS 所表示的遍历顺序来选择下一要编码的块MBiIf this is not the case, the next block MB i to be coded is selected during a step C39 according to the traversal order indicated by the arrow PS in FIG. 4A or 4B .

如果在步骤C35的过程中,当前块不是所考虑的行SEk中的第j块,则不经过以上步骤C37。If, during step C35 , the current block is not the j-th block in the considered row SEk, the above step C37 is not performed.

在步骤C40的过程中,确定对于当前块MBi的编码来说必要的之前编码和解码的块的可用性。考虑到这需要通过不同的编码单元UCk来对图像 IE的块并行编码的事实,用于对这些块进行编码的编码单元可能未对这些块进行编码和解码,且因此它们还不可用。所述确定步骤包括验证位于前一行 SEk-1中的预定数量N'的块例如分别位于当前块的上方和右上方的两个块是否可用于当前块的编码,即它们是否已经被对其进行编码的编码单元UCk-1 编码且然后被解码。所述确定步骤还包括验证位于要编码的当前块MBi的左侧的至少一块的可用性。但是,考虑到图4A或4B所示的实施例中选择的遍历顺序PS,对所考虑的行SEk中的块依次进行编码。因此,左侧的已编码和解码的块总是可用的(除了一行中的第一块)。在图4A或4B所示的例子,这需要块紧邻地位于要编码的当前块的左侧。为此,仅测试分别位于当前块的上方和右上方的两个块的可用性。During step C40, the availability of previously coded and decoded blocks necessary for encoding the current block MBi is determined. Given the fact that this requires parallel coding of blocks of the image IE by different coding units UCk, the coding units used to encode these blocks may not have already coded and decoded them and are therefore not yet available. This determination step involves verifying whether a predetermined number N' of blocks located in the previous row SEk-1, for example, two blocks located above and to the right of the current block, are available for encoding the current block, i.e., whether they have already been coded and subsequently decoded by the coding unit UCk-1 that coded it. This determination step also includes verifying the availability of at least one block located to the left of the current block MBi to be encoded. However, given the traversal order PS selected in the embodiment shown in FIG. 4A or 4B , the blocks in the row SEk under consideration are encoded sequentially. Therefore, the coded and decoded blocks to the left are always available (except for the first block in a row). In the example shown in FIG. 4A or 4B , this requires blocks located immediately to the left of the current block to be encoded. To this end, only the two blocks located above and to the right of the current block are tested for availability.

该测试步骤易于使编码方法变慢,通过根据本发明的替代方法,图3A 所示的时钟CLK适于对块编码的过程进行同步,从而确保分别位于当前块的上方和右上方的两个块的可用性,而不需要验证这两个块的可用性。于是,如图4A或4B所示,编码单元UCk总是以用于当前块的编码的前一行SEk-1 中的预定数量N'(这里N'=2)的编码和解码块作为偏移来开始对第一块的编码。从软件的角度来看,实现这样的时钟使得可能在编码器CO中显著加速用于处理图像IE中的块所需的处理时间。This test step tends to slow down the encoding method. By using an alternative method according to the present invention, the clock CLK shown in FIG. 3A is adapted to synchronize the block encoding process, thereby ensuring the availability of two blocks located above and to the right of the current block, respectively, without requiring verification of their availability. Thus, as shown in FIG. 4A or 4B , the encoding unit UCk always begins encoding the first block with a predetermined number N′ (where N′=2) of coded and decoded blocks from the previous row SEk-1 used for the encoding of the current block as an offset. Implementing such a clock makes it possible, from a software perspective, to significantly accelerate the processing time required for processing blocks in an image IE in the encoder CO.

在步骤C41的过程中,进行测试来确定当前块是否是所考虑的行SEk 中的第一块。During a step C41 , a test is performed to determine whether the current block is the first block in the row SEk considered.

如果是这样的情形,在步骤C42的过程中,在缓冲存储器MT中仅读取在前一行SEk-1的第j块的编码期间计算的符号出现概率。If this is the case, during a step C42 , only the symbol occurrence probabilities calculated during the coding of the j-th block of the previous row SEk-1 are read in the buffer memory MT.

根据图4A所示的第一变体,第j块是前一行SEk-1中的第一块(j=1)。该读取包括用缓冲存储器MT中存在的概率来替换CABAC编码器的概率。对第二行SE2、第三行SE32和第四行SE4中的各个第一块进行处理,在图 4A中通过细线表示的箭头来描述该读取步骤。According to a first variant shown in FIG4A , the jth block is the first block (j=1) of the previous row SEk-1. This reading involves replacing the probabilities of the CABAC coder with the probabilities present in the buffer memory MT. The first blocks of the second row SE2, the third row SE32, and the fourth row SE4 are processed, and this reading step is depicted in FIG4A by the thin arrows.

根据图4B所示的上述步骤C42的第二变体,第j块是前一行SEk-1的第二块(j=2)。该读取包括用缓冲存储器MT中存在的概率来替换CABAC 编码器的概率。对第二行SE2、第三行SE32和第四行SE4中的各个第一块进行处理,在图4B中通过虚线表示的箭头来描述该读取步骤。According to a second variant of the above-described step C42, shown in FIG4B , the jth block is the second block (j=2) of the previous row SEk-1. This reading involves replacing the probabilities of the CABAC encoder with the probabilities present in the buffer memory MT. This is done for the first blocks of the second row SE2, the third row SE32, and the fourth row SE4, respectively. This reading step is depicted in FIG4B by the dashed arrows.

在步骤C42之后,通过上述步骤C34到C38的迭代,当前块被编码且然后被解码。After step C42 , through iterations of steps C34 to C38 described above, the current block is encoded and then decoded.

如果在上述步骤C41之后,当前块不是所考虑的行SEk的第一块,有利地不会读取从位于同一行SEk的之前编码和解码的块(即所示例子中紧邻地位于当前块的左侧的编码和解码块)产生的概率。确实,考虑到位于同一行中的块的顺序遍历读PS,如图4A或4B所示,在当前块的编码开始时在 CABAC编码器中存在的符号出现概率正好是在该相同行中前一块的编码/ 解码之后存在的符号出现概率。If, after the above-mentioned step C41, the current block is not the first block of the row SEk considered, the probabilities resulting from the previously coded and decoded blocks located in the same row SEk (i.e., the coded and decoded blocks located immediately to the left of the current block in the example shown) are advantageously not read in. Indeed, considering a sequential traversal reading PS of blocks located in the same row, as shown in FIG4A or 4B , the probability of occurrence of the symbols present in the CABAC encoder at the start of the coding of the current block is exactly the probability of occurrence of the symbols present after the coding/decoding of the previous block in the same row.

因此,在步骤C43的过程中,获悉所述当前块的熵编码的符号出现概率,其仅对应于如图4A或4B中的双实线箭头表示的针对同一行中的所述前一块来计算的符号出现概率。Therefore, during step C43, the entropy-coded symbol occurrence probability of the current block is learned, which only corresponds to the symbol occurrence probability calculated for the previous block in the same row as indicated by the double solid arrows in FIG. 4A or 4B.

在步骤C43之后,通过上述步骤C34到C38的迭代,当前块被编码且然后被解码。After step C43 , through iterations of steps C34 to C38 described above, the current block is encoded and then decoded.

解码部分的实施例的详细描述Detailed description of an embodiment of the decoding part

现在将描述根据本发明的解码方法的实施例,其中,以软件或硬件的方式通过对初始符合H.264/MPEG-4AVC标准的解码器的调整来实现该解码方法。An embodiment of a decoding method according to the invention will now be described, wherein the decoding method is implemented in software or hardware by adapting a decoder originally compliant with the H.264/MPEG-4 AVC standard.

以图5A所示的包含步骤D1到D4的算法的形式来展示根据本发明的解码方法。The decoding method according to the present invention is presented in the form of an algorithm comprising steps D1 to D4 as shown in FIG. 5A .

根据本发明的实施例,在如图6A所示的解码设备DO中实现根据本发明的解码方法。According to an embodiment of the present invention, the decoding method according to the present invention is implemented in a decoding device DO as shown in FIG. 6A .

参考图5A,第一解码步骤D1是在所述流F中识别N个子流F1、F2、…、 Fk、…、FP,该子流分别包含如图4A或4B所示的之前编码的块或宏块MB 的N个子集SE1、SE2、…、SEk、…、SEP。为此,流F中的每个子流Fk 与指示符关联,以允许解码器DO确定每个子流在流F中的位置。在所示例子中,所述块MB具有正方形并且都有相同的大小。作为图像大小的函数,其不必是块大小的倍数,左侧的最后的块和底部的最后的块可以不是正方形。在替代的实施例中,块例如可以是矩形大小并且/或者互相不对齐。With reference to FIG5A , the first decoding step D1 consists in identifying N substreams F1, F2, ..., Fk, ..., FP in the stream F, each containing N subsets SE1, SE2, ..., SEk, ..., SEP of a previously encoded block or macroblock MB, as shown in FIG4A or 4B . To this end, each substream Fk in the stream F is associated with an indicator that allows the decoder DO to determine the position of each substream in the stream F. In the example shown, the blocks MB are square and all have the same size. As a function of the image size, which does not necessarily have to be a multiple of the block size, the last block on the left and the last block at the bottom may not be square. In alternative embodiments, the blocks may, for example, be rectangular in size and/or misaligned.

每个块或宏块自身还可被分为子块,该子块自身还可细分。Each block or macroblock may itself be further divided into sub-blocks, which may themselves be further subdivided.

这样的识别是通过如在图6A中表示的流提取模块EXDO来执行的。Such identification is performed by the stream extraction module EXDO as represented in FIG. 6A .

在图4A或4B所示的例子中,预定数量等于4,并且四个子集SE1、SE2、 SE3、SE4用虚线表示。In the example shown in FIG. 4A or 4B , the predetermined number is equal to 4, and the four subsets SE1 , SE2 , SE3 , SE4 are indicated by dotted lines.

参考图5A,第二解码步骤D2是对所述块的子集SE1、SE2、SE3和SE4 中的每个并行解码,所考虑的子集中的块根据遍历的顺序PS来编码。在图4A或4B所示的例子中,当前子集SEk(1≤k≤4)中的块如箭头PS所示从左到右被依次解码。在步骤D2完成时,获得解码的块的子集SED1、SED2、 SED3、…、SEDk、…、SEDP。Referring to FIG5A , the second decoding step D2 involves decoding each of the block subsets SE1, SE2, SE3, and SE4 in parallel, with the blocks in the considered subset being encoded according to the traversal order PS. In the example shown in FIG4A or 4B , the blocks in the current subset SEk (1≤k≤4) are decoded sequentially from left to right, as indicated by the arrow PS. Upon completion of step D2, decoded block subsets SED1, SED2, SED3, ..., SEDk, ..., SEDP are obtained.

该并行解码是由如图6A所示的数量为R(R=4)的解码单元UDk (1≤k≤R)来实现的,并且允许解码方法的大幅加速。按照这样已知的方式,解码器DO包括缓冲存储器MT,其适于包含例如与当前块的解码协作地逐渐更新的符号出现概率。This parallel decoding is realized by a number R (R=4) of decoding units UDk (1≤k≤R) as shown in FIG6A and allows a significant acceleration of the decoding method. In a known manner, the decoder DO comprises a buffer memory MT suitable for containing symbol occurrence probabilities that are gradually updated, for example, in conjunction with the decoding of the current block.

如图6B更详细地展示,每个解码单元UDk包括:As shown in more detail in FIG. 6B , each decoding unit UDk comprises:

·通过获悉针对至少一个之前解码的块来计算的至少一个符号出现概率、对所述当前块进行熵解码的子单元,用SUDEk来表示,a subunit, denoted SUDEk, for entropy decoding the current block by knowing at least one symbol occurrence probability calculated for at least one previously decoded block,

·关于所述之前解码的块来对当前块进行预测解码的子单元,用SUDPk 来表示。The sub-unit for predictive decoding of the current block with respect to the previously decoded block is denoted by SUDPk.

预测解码子单元SUDPk能够根据传统的预测技术例如在帧内和/或帧间模式下执行当前块的预测解码。The predictive decoding sub-unit SUDPk is capable of performing predictive decoding of the current block according to conventional prediction techniques, for example in intra and/or inter modes.

熵解码子单元SUDEk本身是CABAC类型,但根据本发明来调整,在说明书中将进一步描述。The entropy decoding sub-unit SUDEk is itself of CABAC type, but adapted according to the present invention, as will be described further in the description.

作为变体,熵解码子单元SUDEk可以是已知的霍夫曼解码器。As a variant, the entropy decoding sub-unit SUDEk may be a known Huffman decoder.

在图4A或4B所示的例子中,第一单元UD1对第一行SE1中的块从左向右进行解码。在到达第一行SE1的最后一块时,会传递到第(N+1)行(这里是第5行)等的第一块。第二单元UC2对第二行SE2中的块从左到右进行解码。在到达第二行SE2的最后一块时,会传递给第(N+2)行(这里是第6行)等的第一块。该遍历重复直到单元UD4,其对第四行SE4中的块从左向右进行解码。在到达第一行的最后一块时,会传递给第(N+4)行(这里是第8行)的第一块,以此类推直到最后识别的子流中的最后一块被解码。In the example shown in FIG4A or 4B , the first unit UD1 decodes the blocks in the first row SE1 from left to right. When the last block of the first row SE1 is reached, the block is passed to the first block of the (N+1)th row (here, the 5th row), and so on. The second unit UC2 decodes the blocks in the second row SE2 from left to right. When the last block of the second row SE2 is reached, the block is passed to the first block of the (N+2)th row (here, the 6th row), and so on. This process is repeated until the unit UD4 decodes the blocks in the fourth row SE4 from left to right. When the last block of the first row is reached, the block is passed to the first block of the (N+4)th row (here, the 8th row), and so on until the last block in the last identified substream is decoded.

与以上刚才描述的不同的其他类型的遍历当然也是可能的。例如,每个解码单元也可以不处理如上解释的嵌套的行而是嵌套的列。还可以以任意方向来遍历行或列。Other types of traversal than those just described are of course also possible. For example, each decoding unit may process nested columns instead of rows as explained above. Rows or columns may also be traversed in any direction.

参考图5A,第三解码步骤D3是基于在解码步骤D2中获得的每个解码的子集SED1、SED2、…、SEDk、…、SEDP来重构解码的图像。更准确地说,每个解码的子集SED1、SED2、…、SEDk、…、SEDP中的解码块被发送到例如如图6A所示的图像重构单元URI。在步骤D3的过程中,当这些块变得可用时,单元URI在解码的图像中写入解码块。Referring to FIG5A , the third decoding step D3 reconstructs a decoded image based on each decoded subset SED1, SED2, …, SEDk, …, SEDP obtained in decoding step D2. More specifically, the decoded blocks in each decoded subset SED1, SED2, …, SEDk, …, SEDP are sent to an image reconstruction unit URI, such as that shown in FIG6A . During step D3 , the unit URI writes the decoded blocks into the decoded image as they become available.

在图5A所示的第四解码步骤D4的过程中,图6A所示的单元URI给出完全解码的图像ID。During the fourth decoding step D4 shown in FIG. 5A , the unit URI shown in FIG. 6A gives the fully decoded image ID.

现在将参考图5B来描述例如在上述并行解码步骤D2期间在解码单元 UDk中实现的本发明的各个特定子步骤。Various specific sub-steps of the invention as implemented in a decoding unit UDk, for example during the above-described parallel decoding step D2, will now be described with reference to FIG. 5B .

在步骤D21的过程中,解码单元UDk选择在图4A或4B所示的当前块 SEk中要解码的第一块作为当前块。During step D21, the decoding unit UDk selects the first block to be decoded among the current blocks SEk shown in FIG. 4A or 4B as the current block.

在步骤D22的过程中,单元UDk测试当前块是否是被解码的图像中的第一块,在该实例中为子流F1的第一块。During a step D22 , the unit UDk tests whether the current block is the first block of the image being decoded, in this example the first block of the sub-stream F1 .

如果是这种情形,在步骤D23的过程中,解码概率被初始化为之前在图 6A的解码器DO中定义的值Pinit。If this is the case, during a step D23, the decoding probability is initialized to the value Pinit previously defined in the decoder DO of Figure 6A.

如果不是这种情形,将在后续说明中描述的步骤D30的过程中确定必要的之前解码的块的可用性。If this is not the case, the availability of the necessary previously decoded blocks will be determined during step D30 described in the subsequent description.

在步骤D24的过程中,对图4A或4B所示的第一行SE1中的第一当前块MB1进行解码。该步骤D24包括以下将描述的多个子步骤D241到D246。During step D24, the first current block MB1 in the first row SE1 shown in Figure 4A or 4B is decoded. This step D24 includes a plurality of sub-steps D241 to D246 which will be described below.

在第一子步骤D241的过程中,对与当前块相关的语法元素进行熵解码。更准确地说,通过例如图6B所示的CABAC熵解码子单元SUDE1对与当前块相关的语法元素进行解码。CABAC熵解码子单元SUDE1对压缩文件的子比特流F1进行解码以产生语法元素,且同时以该方式来更新其概率,从而在该子单元对符号进行解码的时刻,该符号的出现概率等于在上述熵编码步骤C345中对该相同符号进行编码时得到的符号出现概率。During a first sub-step D241, the syntax elements associated with the current block are entropy decoded. More precisely, the syntax elements associated with the current block are decoded by a CABAC entropy decoding sub-unit SUDE1, for example as shown in FIG6B . The CABAC entropy decoding sub-unit SUDE1 decodes the sub-bitstream F1 of the compressed file to generate syntax elements and simultaneously updates their probabilities in such a way that, at the moment a symbol is decoded by this sub-unit, the probability of the occurrence of this symbol is equal to the probability of the occurrence of the symbol obtained when encoding the same symbol in the above-mentioned entropy encoding step C345.

在后面的子步骤D242的过程中,通过帧内和/或帧间预测的已知技术来对当前块MB1进行预测解码,在其过程中,关于至少一个之前解码的块来预测所述块MB1。During a subsequent sub-step D242 , the current block MB1 is predictively decoded by known techniques of intra-frame and/or inter-frame prediction, during which said block MB1 is predicted with respect to at least one previously decoded block.

毋庸赘述,例如在H.264标准中提出的其他模式的帧内预测也是可以的。Needless to say, other modes of intra-frame prediction proposed in the H.264 standard, for example, are also possible.

在该步骤的过程中,借助于在之前的步骤中解码的语法元素进行预测解码,该语法元素特别包含预测的类型(帧间或帧内),且如果合适,包含帧内预测的模式、块或宏块的划分类型(如果后者已被细分)、参考图像索引、以及在帧间预测模式中使用的偏移矢量。During this step, predictive decoding is performed with the help of the syntax elements decoded in the previous step, which contain in particular the type of prediction (inter or intra) and, if appropriate, the mode of intra prediction, the type of partitioning of the block or macroblock (if the latter is subdivided), the reference image index and the offset vector used in the inter prediction mode.

上述预测解码步骤使得可能构造预测块MBp1The above-described predictive decoding step makes it possible to construct the prediction block MBp 1 .

在后面的子步骤D243的过程中,借助于之前解码的语法元素来构造量化残留块MBq1During a subsequent sub-step D243 , the quantized residual block MBq 1 is constructed with the aid of the previously decoded syntax elements.

在后面的子步骤D244的过程中,根据传统的反量化操作来对量化的残留块MBq1进行反量化,这是在上述步骤C344中执行的量化的逆操作,以产生解码的反量化块MBDt1During a subsequent sub-step D244 , the quantized residual block MBq 1 is dequantized according to a conventional dequantization operation, which is the inverse operation of the quantization performed in the above-mentioned step C344 , in order to generate a decoded dequantized block MBDt 1 .

在后面的子步骤D245的过程中,对反量化块MBDt1进行逆变换,这是以上步骤C343中执行的直接变换的逆操作。然后获得解码的残留块MBDr1During the subsequent sub-step D245 , the inverse transformation is performed on the dequantized block MBDt 1 , which is the inverse operation of the direct transformation performed in the above step C343 . The decoded residual block MBDr 1 is then obtained.

在后面的子步骤D246的过程中,通过将预测块MBp1加到解码的残留块MBDr1来构造解码块MBD1。所述解码块MBD1于是可被解码单元UD1 或构成预定数量N的解码单元的一部分的任意其他解码单元使用。During a subsequent sub-step D246 , a decoding block MBD 1 is constructed by adding the prediction block MBp 1 to the decoded residual block MBDr 1. Said decoding block MBD 1 can then be used by the decoding unit UD1 or any other decoding unit forming part of the predetermined number N of decoding units.

在完成上述解码步骤D246时,例如如图6B所示的熵解码子单元SUDE1 包含例如与第一块的解码协作而逐渐更新的所有概率。这些概率对应于各种可能的语法元素以及各种关联的解码上下文。Upon completion of the above decoding step D246, the entropy decoding subunit SUDE1, for example as shown in FIG6B, contains all probabilities that are gradually updated, for example in cooperation with the decoding of the first block. These probabilities correspond to various possible syntax elements and various associated decoding contexts.

在上述解码步骤D24之后,在步骤D25的过程中进行测试,以确定当前块是否是该相同行的第j块,其中j是解码器DO的已知预定值且至少等于1。After the above-mentioned decoding step D24 , a test is performed during a step D25 to determine whether the current block is the j-th block of this same row, where j is a predetermined value known to the decoder DO and is at least equal to 1.

如果是这种情形,在步骤D26的过程中,针对第j块来计算的一组概率被存储在例如如图6A以及图4A或4B所示的解码器DO的缓冲存储器MT 中,所示存储器的大小适于存储所计算的概率的数量。If this is the case, during a step D26 , the set of probabilities calculated for the jth block is stored in a buffer memory MT of the decoder DO, for example as shown in FIG. 6A and FIG. 4A or 4B , the size of which is suitable for storing the number of calculated probabilities.

在步骤D27的过程中,单元UDk测试刚才被解码的当前块是否是最后的子流中的最后一块。During a step D27 , the unit UDk tests whether the current block that has just been decoded is the last block of the last sub-stream.

如果是这种情形,在步骤D28的过程中,解码方法结束。If this is the case, the decoding method ends during a step D28 .

如果不是这种情形,执行步骤D29,在步骤D29的过程中根据图4A或 4B中的箭头PS所示的遍历顺序来选择要解码的下一块MBiIf this is not the case, step D29 is executed, during which the next block MB i to be decoded is selected according to the traversal order indicated by the arrow PS in FIG. 4A or 4B .

如果在上述步骤D25的过程中,当前块不是所考虑的行SEDk中的第j 块,进行以上的步骤D27。If, during the above step D25, the current block is not the j-th block in the row SEDk considered, the above step D27 is performed.

在上述步骤D29之后的步骤D30的过程中,确定对于当前块MBi的解码来说必要的之前解码的块的可用性。考虑到这需要通过不同的解码单元 UDk来对块并行编码的事实,用于对这些块进行解码的解码单元可能未对这些块进行解码,且因此它们还不可用。所述确定步骤包括验证位于前一行 SEk-1中的预定数量N'的块(例如分别位于当前块的上方和右上方的两个块) 是否可用于当前块的解码,即它们是否已经被对其进行解码的解码单元UDk-1解码。所述确定步骤还包括验证位于要解码的当前块MBi的左侧的至少一块的可用性。但是,考虑到图4A或4B所示的实施例中选择的遍历顺序PS,对所考虑的行SEk中的块依次进行解码。因此,左侧的解码的块总是可用的(除了一行中的第一块)。在图4A或4B所示的例子中,这需要块紧邻地位于要解码的当前块的左侧。为此,仅测试分别位于当前块的上方和右上方的两个块的可用性。During step D30, following step D29, the availability of previously decoded blocks necessary for decoding the current block MB i is determined. Given the fact that this requires parallel encoding of blocks by different decoding units UDk, these blocks may not have been decoded by the decoding units used to decode them and are therefore not yet available. This determination step involves verifying whether a predetermined number N' of blocks located in the previous row SEk-1 (e.g., two blocks located above and to the right of the current block, respectively) are available for decoding the current block, i.e., whether they have already been decoded by the decoding unit UDk-1 that decoded it. This determination step also involves verifying the availability of at least one block located to the left of the current block MB i to be decoded. However, given the traversal order PS selected in the embodiment shown in FIG. 4A or 4B , the blocks in the row SEk under consideration are decoded sequentially. Therefore, the decoded blocks to the left are always available (except for the first block in a row). In the example shown in FIG. 4A or 4B , this requires that the blocks be located immediately to the left of the current block to be decoded. To this end, only the two blocks located above and to the right of the current block, respectively, are tested for availability.

该测试步骤易于使解码方法变慢,通过根据本发明的替代方法,图6A 所示的时钟CLK适于对块解码的过程进行同步,从而确保分别位于当前块的上方和右上方的两个块的可用性,而不需要验证这两个块的可用性。于是,如图4A或4B所示,解码单元UDk总是以用于解码当前块的前一行SEk-1 中的预定数量N'(这里N'=2)的解码块作为偏移来开始对第一块进行解码。从软件的角度来看,实现这样的时钟使得可能在解码器DO中显著加速处理每个子集SEk中的块所需的处理时间。This test step tends to slow down the decoding method. By using an alternative method according to the invention, the clock CLK shown in FIG6A is adapted to synchronize the block decoding process, thereby ensuring the availability of two blocks located above and to the right of the current block, respectively, without having to verify the availability of these two blocks. Thus, as shown in FIG4A or 4B , the decoding unit UDk always starts decoding the first block with a predetermined number N′ (where N′=2) of decoded blocks from the row SEk-1 preceding the current block as an offset. Implementing such a clock makes it possible, from a software perspective, to significantly accelerate the processing time required to process the blocks in each subset SEk in the decoder DO.

在步骤D31的过程中,进行测试以确定当前块是否是所考虑的行SEk 中的第一块。During a step D31 , a test is performed to determine whether the current block is the first block in the row SEk considered.

如果是这样的情形,在步骤D32的过程中,在缓冲存储器MT中仅读取在前一行SEk-1的第j块的解码期间计算的符号出现概率。If this is the case, during a step D32 , only the symbol occurrence probabilities calculated during the decoding of the j-th block of the previous row SEk-1 are read in the buffer memory MT.

根据图4A所示的第一变体,第j块是前一行SEk-1中的第一块(j=1)。该读取包括用缓冲存储器MT中存在的概率来替换CABAC解码器的概率。对第二行SE2、第三行SE3和第四行SE4中的各个第一块进行同样处理,在图4A中通过细线表示的箭头来描述该读取步骤。According to a first variant shown in FIG4A , the jth block is the first block (j=1) of the previous row SEk-1. This reading involves replacing the probabilities of the CABAC decoder with the probabilities present in the buffer memory MT. The same process is performed for the first blocks of the second row SE2, the third row SE3, and the fourth row SE4, respectively. This reading step is depicted in FIG4A by the thin arrows.

根据图4B所示的上述步骤D32的第二变体,第j块是前一行SEk-1的第二块(j=2)。该读取包括用缓冲存储器MT中存在的概率来替换CABAC 解码器的概率。对第二行SE2、第三行SE3和第四行SE4中的各个第一块进行处理,在图4B中通过虚线表示的箭头来描述该读取步骤。According to a second variant of step D32 described above, shown in FIG4B , the jth block is the second block (j=2) of the previous row SEk-1. This reading involves replacing the probabilities of the CABAC decoder with the probabilities present in the buffer memory MT. This is done for each of the first blocks in the second row SE2, the third row SE3, and the fourth row SE4, a reading step depicted by the dashed arrows in FIG4B .

在步骤D32之后,通过上述步骤D24到D28的迭代,当前块被解码。After step D32, the current block is decoded through iterations of steps D24 to D28 described above.

如果在上述步骤D31之后,当前块不是所考虑的行SEk的第一块,有利地不会读取从位于同一行SEk的之前解码的块(即所示例子中紧邻地位于当前块的左侧的解码块)产生的概率。确实,考虑到位于同一行中的块的顺序遍历读PS,如图4A或4B所示,在当前块的解码开始时在CABAC解码器中存在的符号出现概率正好是在该相同行中前一块的解码之后存在的符号出现概率。If, after the above-mentioned step D31, the current block is not the first block of the row SEk considered, it is advantageous not to read the probabilities resulting from the previously decoded block located in the same row SEk (i.e., the decoded block located immediately to the left of the current block in the example shown). Indeed, considering a sequential traversal reading PS of blocks located in the same row, as shown in FIG4A or 4B , the probability of the occurrence of the symbols present in the CABAC decoder at the start of the decoding of the current block is exactly the probability of the occurrence of the symbols present after the decoding of the previous block in the same row.

因此,在步骤D33的过程中,获悉用于所述当前块的熵解码的符号出现概率,其仅对应于如图4A或4B中的双实线箭头表示的针对同一行中的所述前一块来计算的符号出现概率。Therefore, during step D33, the symbol occurrence probabilities for entropy decoding of the current block are learned, which only correspond to the symbol occurrence probabilities calculated for the previous block in the same row as indicated by the double solid arrows in FIG. 4A or 4B.

在步骤D33之后,通过上述步骤D24到D28的迭代,当前块被解码。After step D33, the current block is decoded through iterations of steps D24 to D28 described above.

Claims (12)

1.一种计算机实现的方法,包括:1. A computer-implemented method, comprising: 接收代表至少一个编码图像的流;Receive a stream representing at least one encoded image; 从流中识别预定多个块的组;Identify groups of multiple predefined blocks from the stream; 将每个块的组提供给第一解码单元;以及Provide each block group to the first decoding unit; and 由第一解码单元处理给定的块的组中的第一块,其中对第一块的处理包括:The first block in a given block set is processed by the first decoding unit, wherein the processing of the first block includes: 确定第一块在所述给定的块的组中处于块的次序中的第一个;Determine that the first block is the first in the order of blocks within the given group of blocks; 响应于确定第一块在所述给定的块的组中处于块的次序中的第一个,从缓冲器中取回第一组概率数据,其中第一组概率数据包括与如下块相关联的第一组符号出现概率,该块与第一块紧邻地定位并且属于所述预定多个块的组中的不同于所述给定的块的组的另一块的组;In response to determining that the first block is the first in the order of blocks in the given group of blocks, a first set of probability data is retrieved from the buffer, wherein the first set of probability data includes a first set of symbol occurrence probabilities associated with a block that is located immediately adjacent to the first block and belongs to a group of another block that is different from the group of the given group of blocks in the predetermined plurality of blocks. 基于第一组概率数据来对第一块进行熵解码;以及Entropy decoding of the first block is performed based on the first set of probability data; and 由第一解码单元处理所述给定的块的组中的第二块,其中对第二块的处理包括:The first decoding unit processes the second block in the given block set, wherein the processing of the second block includes: 确定第二块在所述给定的块的组中不是处于块的次序中的第一个;Determine that the second block is not the first in the order of the given group of blocks; 响应于确定第二块在所述给定的块的组中不是处于块的次序中的第一个,从存储器单元中取回第二组概率数据,其中第二组概率数据包括与至少一个其他已经解码的块相关联的第二组符号出现概率,这至少一个其他已经解码的块属于所述预定多个块的组中的所述给定的块的组,In response to determining that the second block is not the first in the order of blocks in the given group of blocks, a second set of probability data is retrieved from the memory cell, wherein the second set of probability data includes a second set of symbol occurrence probabilities associated with at least one other decoded block, which belongs to the given group of blocks in the predetermined plurality of groups of blocks. 其中第二组符号出现概率不与不属于所述给定的块的组的块相关联;以及The probability of the second group of symbols appearing is not associated with blocks that do not belong to the group of the given block; and 基于第二组概率数据来对第二块进行熵解码。Entropy decoding of the second block is performed based on the second set of probability data. 2.如权利要求1所述的方法,还包括:2. The method of claim 1, further comprising: 基于第二组概率数据和关于第二块的数据来生成第三组概率数据;以及A third set of probability data is generated based on the second set of probability data and the data about the second block; and 用第三组概率数据替换存储器单元中的第二组概率数据。Replace the second set of probability data in the memory cell with the third set of probability data. 3.如权利要求1所述的方法,其中:3. The method of claim 1, wherein: 基于第一组概率数据来对第一块进行熵解码包括:通过使用上下文适应二进制算术编码CABAC算法,基于第一组概率数据来对第一块进行熵解码;以及Entropy decoding of the first block based on the first set of probability data includes: using the context-adapted binary arithmetic coding (CABAC) algorithm to entropy decode the first block based on the first set of probability data; and 基于第二组概率数据来对第二块进行熵解码包括:通过使用CABAC算法,基于第二组概率数据来对第二块进行熵解码。Entropy decoding of the second block based on the second set of probability data includes: using the CABAC algorithm to perform entropy decoding of the second block based on the second set of probability data. 4.如权利要求1所述的方法,还包括:4. The method of claim 1, further comprising: 基于第一组概率数据和关于第一块的数据来生成第三组概率数据;Generate the third set of probability data based on the first set of probability data and the data about the first block; 将第三组概率数据存储到存储器单元;以及Store the third set of probability data into the memory unit; and 使用至少第三组概率数据来生成第二组概率数据。Use at least a third set of probability data to generate the second set of probability data. 5.如权利要求1所述的方法,还包括:5. The method of claim 1, further comprising: 相对于至少一个先前解码的块,对所述给定的块的组中的每个块进行预测解码。Predictive decoding is performed on each block in the group of the given blocks, relative to at least one previously decoded block. 6.如权利要求1所述的方法,还包括:6. The method of claim 1, further comprising: 由第一解码单元处理所述给定的块的组中的第三块,其中对第三块的处理包括:The first decoding unit processes the third block in the given block group, wherein the processing of the third block includes: 从存储器单元中取回第三组概率数据,其中第三组概率数据包括与所述至少一个其他已经解码的块相关联的第三组符号出现概率,并且其中第三组概率数据至少基于第二组概率数据;以及Retrieve a third set of probability data from the memory cell, wherein the third set of probability data includes a third set of symbol occurrence probabilities associated with the at least one other decoded block, and wherein the third set of probability data is based at least on the second set of probability data; and 基于第三组概率数据来对第三块进行熵解码。Entropy decoding of the third block is performed based on the third set of probability data. 7.一种计算机实现的系统,包括:7. A computer-implemented system, comprising: 一个或更多个计算机以及一个或更多个存储指令的存储设备,所述指令可操作为在被所述一个或更多个计算机执行时使得所述一个或更多个计算机执行包括以下项的操作:One or more computers and one or more storage devices storing instructions, the instructions being operable to cause the one or more computers to perform operations including: 接收代表至少一个编码图像的流;Receive a stream representing at least one encoded image; 从流中识别预定多个块的组;Identify groups of multiple predefined blocks from the stream; 将每个块的组提供给第一解码单元;以及Provide each block group to the first decoding unit; and 由第一解码单元处理给定的块的组中的第一块,其中对第一块的处理包括:The first block in a given block set is processed by the first decoding unit, wherein the processing of the first block includes: 确定第一块在所述给定的块的组中处于块的次序中的第一个;Determine that the first block is the first in the order of blocks within the given group of blocks; 响应于确定第一块在所述给定的块的组中处于块的次序中的第一个,从缓冲器中取回第一组概率数据,其中第一组概率数据包括与如下块相关联的第一组符号出现概率,该块与第一块紧邻地定位并且属于所述预定多个块的组中的不同于所述给定的块的组的另一块的组;In response to determining that the first block is the first in the order of blocks in the given group of blocks, a first set of probability data is retrieved from the buffer, wherein the first set of probability data includes a first set of symbol occurrence probabilities associated with a block that is located immediately adjacent to the first block and belongs to a group of another block that is different from the group of the given group of blocks in the predetermined plurality of blocks. 基于第一组概率数据来对第一块进行熵解码;以及Entropy decoding of the first block is performed based on the first set of probability data; and 由第一解码单元处理所述给定的块的组中的第二块,其中对第二块的处理包括:The first decoding unit processes the second block in the given block set, wherein the processing of the second block includes: 确定第二块在所述给定的块的组中不是处于块的次序中的第一个;Determine that the second block is not the first in the order of the given group of blocks; 响应于确定第二块在所述给定的块的组中不是处于块的次序中的第一个,从存储器单元中取回第二组概率数据,其中第二组概率数据包括与至少一个其他已经解码的块相关联的第二组符号出现概率,这至少一个其他已经解码的块属于所述预定多个块的组中的所述给定的块的组,In response to determining that the second block is not the first in the order of blocks in the given group of blocks, a second set of probability data is retrieved from the memory cell, wherein the second set of probability data includes a second set of symbol occurrence probabilities associated with at least one other decoded block, which belongs to the given group of blocks in the predetermined plurality of groups of blocks. 其中第二组符号出现概率不与不属于所述给定的块的组的块相关联;以及The probability of the second group of symbols appearing is not associated with blocks that do not belong to the group of the given block; and 基于第二组概率数据来对第二块进行熵解码。Entropy decoding of the second block is performed based on the second set of probability data. 8.如权利要求7所述的系统,其中,所述操作进一步包括:8. The system of claim 7, wherein the operation further comprises: 基于第二组概率数据和关于第二块的数据来生成第三组概率数据;以及A third set of probability data is generated based on the second set of probability data and the data about the second block; and 用第三组概率数据替换存储器单元中的第二组概率数据。Replace the second set of probability data in the memory cell with the third set of probability data. 9.如权利要求7所述的系统,其中:9. The system of claim 7, wherein: 基于第一组概率数据来对第一块进行熵解码包括:通过使用上下文适应二进制算术编码CABAC算法,基于第一组概率数据来对第一块进行熵解码;以及Entropy decoding of the first block based on the first set of probability data includes: using the context-adapted binary arithmetic coding (CABAC) algorithm to entropy decode the first block based on the first set of probability data; and 基于第二组概率数据来对第二块进行熵解码包括:通过使用CABAC算法,基于第二组概率数据来对第二块进行熵解码。Entropy decoding of the second block based on the second set of probability data includes: using the CABAC algorithm to perform entropy decoding of the second block based on the second set of probability data. 10.如权利要求7所述的系统,其中,所述操作进一步包括:10. The system of claim 7, wherein the operation further comprises: 基于第一组概率数据和关于第一块的数据来生成第三组概率数据;Generate the third set of probability data based on the first set of probability data and the data about the first block; 将第三组概率数据存储到存储器单元;以及Store the third set of probability data into the memory unit; and 使用至少第三组概率数据来生成第二组概率数据。Use at least a third set of probability data to generate the second set of probability data. 11.如权利要求7所述的系统,其中,所述操作进一步包括:11. The system of claim 7, wherein the operation further comprises: 相对于至少一个先前解码的块,对所述给定的块的组中的每个块进行预测解码。Predictive decoding is performed on each block in the group of the given blocks, relative to at least one previously decoded block. 12.如权利要求7所述的系统,其中,所述操作进一步包括:12. The system of claim 7, wherein the operation further comprises: 由第一解码单元处理所述给定的块的组中的第三块,其中对第三块的处理包括:The first decoding unit processes the third block in the given block group, wherein the processing of the third block includes: 从存储器单元中取回第三组概率数据,其中第三组概率数据包括与所述至少一个其他已经解码的块相关联的第三组符号出现概率,并且其中第三组概率数据至少基于第二组概率数据;以及Retrieve a third set of probability data from the memory cell, wherein the third set of probability data includes a third set of symbol occurrence probabilities associated with the at least one other decoded block, and wherein the third set of probability data is based at least on the second set of probability data; and 基于第三组概率数据来对第三块进行熵解码。Entropy decoding of the third block is performed based on the third set of probability data.
HK16101733.2A 2011-03-07 2016-02-18 Method of coding and decoding images, coding and decoding device HK1214050B (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1151849A FR2972588A1 (en) 2011-03-07 2011-03-07 METHOD FOR ENCODING AND DECODING IMAGES, CORRESPONDING ENCODING AND DECODING DEVICE AND COMPUTER PROGRAMS
FR11/51,849 2011-03-07

Publications (2)

Publication Number Publication Date
HK1214050A1 HK1214050A1 (en) 2016-07-15
HK1214050B true HK1214050B (en) 2019-09-20

Family

ID=

Similar Documents

Publication Publication Date Title
JP6310524B2 (en) Image encoding and decoding method, encoding and decoding device, and computer program corresponding thereto
CN107094255A (en) Method, coding and decoding equipment and the computer program of image coding and decoding
HK1237572B (en) Method of coding and decoding images and coding and decoding device
HK1237570B (en) Method of coding and decoding images and coding and decoding device
HK1235942B (en) Method of coding and decoding images and coding and decoding device
HK1234563B (en) Method of coding and decoding images and coding and decoding device
HK1235943B (en) Method of coding and decoding images and coding and decoding device
HK1234562B (en) Method of coding and decoding images and coding and decoding device
HK1235187B (en) Method of coding and decoding images and coding and decoding device
HK1214050B (en) Method of coding and decoding images, coding and decoding device
HK1235187A1 (en) Method of coding and decoding images and coding and decoding device
HK1237570A1 (en) Method of coding and decoding images and coding and decoding device
HK1237572A1 (en) Method of coding and decoding images and coding and decoding device
HK1235943A1 (en) Method of coding and decoding images and coding and decoding device
HK1235942A1 (en) Method of coding and decoding images and coding and decoding device
HK1234563A1 (en) Method of coding and decoding images and coding and decoding device
HK1234562A1 (en) Method of coding and decoding images and coding and decoding device
HK1244377B (en) Method for encoding and decoding images, encoding and decoding device, and computer program
HK1244375B (en) Method for encoding and decoding images, encoding and decoding device, and computer program
HK1244376B (en) Method for encoding and decoding images, encoding and decoding device, and computer program
HK1244373B (en) Method for encoding and decoding images, encoding and decoding device, and computer program
HK1244374B (en) Method for encoding and decoding images, encoding and decoding device, and computer program
HK1243849B (en) Method for encoding and decoding images, encoding and decoding apparatus, and computer readable storage medium