CN1494325A - 块组编码结构及基于块组结构的自适应分阶段预测编码方法 - Google Patents
块组编码结构及基于块组结构的自适应分阶段预测编码方法 Download PDFInfo
- Publication number
- CN1494325A CN1494325A CNA031565409A CN03156540A CN1494325A CN 1494325 A CN1494325 A CN 1494325A CN A031565409 A CNA031565409 A CN A031565409A CN 03156540 A CN03156540 A CN 03156540A CN 1494325 A CN1494325 A CN 1494325A
- Authority
- CN
- China
- Prior art keywords
- coding
- piece
- group
- macro block
- phase
- 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
- 238000000034 method Methods 0.000 title claims abstract description 171
- 230000003044 adaptive effect Effects 0.000 title claims description 22
- 238000005070 sampling Methods 0.000 claims abstract description 35
- 238000009795 derivation Methods 0.000 claims description 57
- 101100263683 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) VHS1 gene Proteins 0.000 claims description 32
- 101100263684 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) VHS2 gene Proteins 0.000 claims description 32
- 101100263685 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) VHS3 gene Proteins 0.000 claims description 29
- 230000000903 blocking effect Effects 0.000 claims description 4
- 230000015572 biosynthetic process Effects 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 230000006835 compression Effects 0.000 abstract description 4
- 238000007906 compression Methods 0.000 abstract description 4
- 238000004364 calculation method Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 1
- 239000004744 fabric Substances 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本发明属于信号处理中的视频编解码技术领域,涉及块组编码结构及基于块组结构的自适应分阶段预测编码方法。该块组编码结构包括:定义M像素×N像素的块为块组,包括原始块组和派生块组;其中,原始块组为连续的M像素×N像素的块;派生块组为对原始块组进行水平或垂直1/2抽样并重新排列得到的M像素×N像素的块;所说的派生块组按第一组块组、第二组块组的顺序组成块组编码结构。该编码方法根据派生块组中块的编码阶段属性分别在第一阶段或第二阶段编码。本发明有效的提高视频信号的压缩效率。针对最新的JVT参考软件JM61e,在相同的试验条件下,所做试验表明本发明的编码效率明显高于JVT结果。
Description
技术领域 本发明属于信号处理中的视频编解码技术领域。
背景技术 传统的视频编码标准如ITU制定的H.261,H.263,H.263+,H.264标准以及ISO的MPEG组织制定的MPEG-1,MPEG-2,MPEG-4等都是建立在混合编码,即HybridCoding框架之上的。所谓混合编码框架是一种混合时间空间视频图像编码方法,这种方法包括:先进行帧内、帧间的预测,以消除时间域的相关性;然后对原始图像与预测结果的残差进行二维变换(采用离散余弦变换或其它线性变换),消除空间相关性;然后进行熵编码,去除统计上的冗余度。
为了提高视频信号的压缩效率,预测是视频编码标准中最重要的核心技术,预测方法一般分为帧内预测和帧间预测。
在上述视频编码标准中,宏块(16×16的图像像素块)是预测及编解码的基本单位。宏块可以分解为16×16,或两个8×16,或两个16×8,或四个8×8,或多个8×4,4×8,4×4等一些小的矩形块。帧间预测方法是用这些矩形块大小的原始图像(原始输入的图像),即原始图像块,在参考图像(在以前编码的重建帧中用作为参考的图像)中进行运动估计,就得到原始图像块的最佳匹配图像块作为预测结果。帧内预测方法是在当前编码帧中利用需要编码的矩形块周围已经编码的矩形块,对需要编码的矩形块进行预测得到的预测矩形块作为预测结果。
目前在视频编码标准中,主要存在四种预测编码方法。因为视频信号的输入可以分为逐行扫描的和隔行扫描的。逐行扫描的视频信号叫作帧图像,隔行扫描的视频信号叫作场图像。帧图像中的宏块叫帧宏块,场图像中的宏块叫场宏块。以帧宏块为单位的预测编码方法叫帧预测编码方法(简称帧编码),以场宏块为单位的预测编码方法叫场预测编码方法(简称场编码)。在H.261,H.263,H.263+,H.264标准以及ISO的MPEG组织制定的MPEG-1,MPEG-2,MPEG-4标准等都包含的帧编码,MPEG-2,MPEG-4,H.264还包括场编码。在H.264又提出了根据编码代价值进行自适应选择帧编码或场编码的自适应帧场预测编码方法,以及基于宏块对的自适应帧场预测编码方法。
帧编码对于帧图像来说效果较好,但不适应于场图像。
场编码对于场图像来说效果较好,但不适应于帧图像。
帧场自适应预测编码方法为:对视频信号首先分别进行帧编码和场编码,然后根据两者的编码代价值,决定采用帧编码的编码码流还是场编码的编码码流。这种预测编码方法能够适应帧图像和场图像,但是这种方法是以整帧的编码代价值为单位进行比较选择,因此编码效率不高。
基于宏块对的帧场自适应预测编码方法为:先进行基于宏块对的帧编码和场编码,然后根据两者的编码代价值,决定采用基于宏块对的帧编码的编码码流还是场编码的编码码流。这种预测编码方法也能够适应帧图像和场图像,但复杂度很大。
发明内容 本发明的目的是为克服已有技术的不足之处,提出一种基于块组(BlockGroup)结构的自适应分阶段预测编码方法。本发明利用块组数据结构的特点,采用两阶段进行预测编码。本发明重点定义预测编码结构,这种预测编码结构能够结合其他各种编码技术,有效的提高视频信号的压缩效率。
本发明提出的一种视频信号编码中块组编码结构,其特征在于,定义M像素×N像素的块为块组,包括原始块组和派生块组;其中,原始块组为连续的M像素×N像素的块;派生块组为对原始块组进行水平或垂直1/2抽样并重新排列得到的M像素×N像素的块;所说的派生块组按第一组块组、第二组块组的顺序组成块组编码结构。
本发明基于上述块组编码结构的自适应分阶段预测编码方法,其特征在于,定义M像素×N像素的块为块组,包括原始块组和派生块组;其中,原始块组为连续的M像素×N像素的块;派生块组为对原始块组进行水平或垂直1/2抽样并重新排列得到的M像素×N像素的块;所说的派生块组按第一组块组、第二组块组的顺序组成块组编码结构;根据派生块组的特征确定块组中块的编码阶段属性;包括编码过程和解码过程:
所说的编码过程,具体包括以下步骤:
1)进行第一阶段编码,包括下列步骤:
(1)从原始图像中获得一个原始块组,作为当前编码块组,根据原始块组进行抽样处理得到四种派生块组;
(2)如果被选定的块组编码结构的第一组块组中没有派生块组,则该编码结构的第一组块组不编码;如果被选定的块组编码结构的第一组块组中存在派生块组,则对该编码结构的第一组块组进行下面编码:
如果被选定的块组编码结构的第一组块组中只存在一种派生块组,首先考虑第一组块组中派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块进行编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;将该派生块组的上层/下层两个块的编码码流作为第一组块组上层/下层块的编码码流,其编码代价值作为第一组块组上层/下层块的编码代价值;然后按同样的方式进行第一组块组下层/上层两个块的编码,并获得第一组块组下层/上层块的编码码流和下层/上层块的编码代价值;最后将上、下层块的编码代价值之和作为第一组块组的编码代价值;
如果被选定的块组编码结构的第一组块组中存在两种派生块组,首先考虑第一组块组中第一种派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块进行编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;然后再考虑第一组块组中第二种派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;最后根据这两种派生块组上层/下层两个块的编码代价值之和,选择编码代价值小的派生块组的上层/下层两个块的编码码流作为第一组块组上层/下层块的编码码流,其编码代价值作为第一组块组上层/下层块的编码代价值;按同样的方式进行第一组块组下层/上层两个块的编码,并获得第一组块组下层/上层块的编码码流和下层/上层块的编码代价值;将上、下层块的编码代价值之和作为第一组块组的编码代价值;
(3)如果被选定的块组编码结构的第二组块组中没有派生块组,该编码结构的第二组块组不编码;如果被选定的块组编码结构的第二组块组中存在派生块组,则按照第(2)步相同的编码过程对该编码结构的第二组块组进行编码,得到第二组块组的编码码流和编码代价值;
(4)当前编码块组的编码码流输出:
如果被选定的块组编码结构中只有一组块组进行了编码,则根据第(2)步或第(3)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;
如果被选定的块组编码结构的两组块组都进行了编码,则比较第(2)步中得到的第一组块组的编码代价值与第(3)步中得到的第二组块组的编码代价值,决定当前编码块组采用哪组块组的编码码流:当第一组块组的编码代价值小,当前编码块组就采用第一组块组的编码码流,根据第(2)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;当第二组块组的编码代价值小,当前编码块组就采用第二组块组的编码码流,根据第(3)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;
(5)对当前编码块组中没有编码的块进行插值获得重建块,并与由编码获得的重建块构成当前编码块组的重建块组;
(6)重复(1)到(5)步骤,直到原始图像中所有的原始块组完成编码,则第一阶段编码完成;在第一阶段编码中所有的重建块组构成了重建帧图像,作为第二阶段编码时的参考帧;
2)进行第二阶段编码,包括下列步骤:
(1)从原始图像中获得一个与第一阶段(1)步相同的原始块组,即当前编码块组,根据原始块组进行抽样处理得到四种派生块组;
(2)以第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对当前编码块组中第一阶段没有编码的块进行编码,并得到其重建块;
(3)用编码得到的重建块替代第一阶段编码时通过插值得到的重建块,并且输出编码码流;
(4)重复(1)到(3)步骤,直到原始图像中所有的原始块组完成第二阶段编码,则第二阶段编码完成;
所说的解码过程,具体包括以下步骤:
1)第一阶段解码
(1)首先根据编码码流判断码流的编码结构和要解码的块组类型,如果要解码的块组属于码流的编码结构的第一组块组,则到第(2)步解码;如果要解码的块组属于码流的编码结构的第二组块组,则到第(3)步解码;
(2)码流的编码结构的第一组块组解码:根据编码码流判断上层和下层两个块的派生块组类型,再根据该块的编码阶段属性,决定是否解码:如果该块在第一阶段编码,则该块直接解码并得到解码重建块;如果该块在第二阶段编码,则该块留在第二阶段解码;
(3)码流的编码结构的第二组块组解码:根据编码码流判断上层和下层两个块的派生块组类型,再根据该块的编码阶段属性,决定是否解码:如果该块在第一阶段编码,则该块直接解码并得到解码重建块;如果该块在第二阶段编码,则该块留在第二阶段解码;
(4)根据已经解码的块对第(2)步或第(3)步块组解码中没有解码的块进行插值获得重建块,并与第(2)步或第(3)步中解码得到的重建块构成一个完整的重建块组;
(5)重复第(1)到第(4)的步骤,直到所有块组都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建块组构成了重建帧图像,作为第二阶段解码的参考帧图像;
2)第二阶段解码:
(1)对解码的块组中第一阶段没有解码的块进行解码,以第一阶段得到的解码重建帧图像作为解码参考帧,对这些未解码的块进行解码,并得到解码块的重建块;
(2)用第(1)步的解码重建块替代第一阶段通过插值得到的重建块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
本发明的原理:
在视频编码时,预测的好坏决定编码效率的高低,因此对于一幅图像,如果考虑先编码其中一部分,但这部分能够比较满意的重建整幅图像,然后将这个重建图像作为这幅图像中剩余部分编码时预测的参考图像,这样能有效的提高那些剩余部分图像的编码效率,这就是本发明的分阶段预测编码思想。在本发明采用的块组结构中,有些部分在第一阶段编码,有些部分留在第二阶段编码,这样就很好的实现了分阶段预测编码思想。
本发明的效果:
本发明主要特点是定义了预测编码结构,这种预测编码结构能够结合其他各种编码技术,有效的提高视频信号的压缩效率。针对最新的JVT参考软件JM61e,在相同的试验条件下,所做试验表明本发明的编码效率明显高于JVT结果。
附图说明
图1为本发明采用的块组结构示意图。
图2为本发明的四种类型的派生块组结构示意图。
具体实施方式 本发明提出的一种基于块组结构的自适应分阶段预测编码方法,结合附图及实施例详细说明如下:
本发明定义M像素×N像素为块组(Block Group),定义连续的M像素×N像素为原始块组。
本发明的原始块组产生方法为:对于逐行扫描的原始图像,一个连续的M像素×N像素就构成一个原始块组;对于隔行扫描的原始图像,先将时间上相邻的奇场和偶场,或偶场和奇场图像按自然空间位置拼成帧图像,然后在拼成的帧图像中一个连续的M像素×N像素就构成一个原始块组,如图1所示。
对原始块组进行水平或垂直1/2抽样,就得到四种类型的派生块组A、B、C和D,如图2所示。
图2中A为连续块组(Non-sampling Block Group-NS):对原始块组不进行任何抽样就得到这种类型块组,该派生块组由NS1、NS2、NS3和NS4四个块组成,其中NS1和NS2是上层两个块,NS3和NS4是下层两个块。具体定义为:
NS1(x,y)=BG(x,y),
NS2(x,y)=BG(x+M/2,y),
NS3(x,y)=BG(x,y+N/2),
NS4(x,y)=BG(x+M/2,y+N/2),x=1,…,M/2,y=1,…,N/2,
其中,BG(x,y)是原始块组中在(x,y)点的像素值,这里x=1,…,M,y=1,…,N。
图2中B为水平抽样块组(Horiztonal-sampling Block Group-HS):对原始块组进行水平1/2抽样就得到这种类型块组,该派生块组由HS1、HS2、HS3和HS4四个块组成,其中HS1和HS2是上层两个块,HS3和HS4是下层两个块。具体定义为:
HS1(x,y)=BG(2x,y),
HS2(x,y)=BG(2x+1,y),
HS3(x,y)=BG(2x,y+N/2),
HS4(x,y)=BG(2x+1,y+N/2),x1,…,M/2,y=1,…,N/2,
其中,BG(x,y)是原始块组中在(x,y)点的像素值,这里x=1,…,M,y=1,…,N。
图2中C为垂直抽样块组(Vertical-sampling Block Group-VS):对原始块组进行垂直1/2抽样就得到这种类型块组,该派生块组由VS1、VS2、VS3和VS4四个块组成,其中VS1和VS2是上层两个块,VS3和VS4是下层两个块。具体定义为:
VS1(x,y)=BG(x,2y),
VS2(x,y)=BG(x+M/2,2y),
VS3(x,y)=BG(x,2y+1),
VS4(x,y)=BG(x+M/2,2y+1),x=1,…,M/2,y=1,…,N/2,
其中,BG(x,y)是原始块组中在(x,y)点的像素值,这里x=1,…,M,y=1,…,N。
图2中D为垂直水平抽样块组(Vertical-Horiztonal-sampling Block Group-VHS):对原始块组进行垂直1/2抽样再水平1/2抽样就得到这种类型块组,该派生块组由VHS1、VHS2、VHS3和VHS4四个块组成,其中VHS1和VHS2是上层两个块,VHS3和VHS4是下层两个块。具体定义为:
VHS1(x,y)=BG(2x,2y),
VHS2(x,y)=BG(2x+1,2y),
VHS3(x,y)=BG(2x,2y+1),
VHS4(x,y)=BG(2x+1,2y+1),x=1,…,M/2,y=1,…,N/2,
其中,BG(x,y)是原始块组中在(x,y)点的像素值,这里x=1,…,M,y=1,…,N。
本发明将四种派生块组进行组合编码,按第一组块组、第二组块组的顺序组合构成块组编码结构,其中第一组块组和第二组块组均由四种派生块组中任意一种或任意两种派生块组构成,第一组块组和第二组块组中可以有一组组块没有派生组块,各种块组编码结构列举如下:
1.NS-HS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组没有任何块组;
2.VS-VHS块组编码结构:第一组块组没有任何块组,第二组块组包括VS块组和VHS块组;
3.NS-VS块组编码结构:第一组块组包括NS块组,第二组块组包括VS块组;
4.HS-VHS块组编码结构:第一组块组包括HS块组,第二组块组包括VHS块组;
5.NS-VHS块组编码结构:第一组块组包括NS块组,第二组块组包括VHS块组;
6.HS-VS块组编码结构:第一组块组包括HS块组,第二组块组包括VS块组;
7.NS-HS-VS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组包括VS块组;
8.NS-HS-VHS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组包括VHS块组;
9.NS-VS-VHS块组编码结构:第一组块组包括NS块组,第二组块组包括VS块组和VHS块组;
10.HS-VS-VHS块组编码结构:第一组块组包括HS块组,第二组块组包括VS块组和VHS块组;
11.NS-HS-VS-VHS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组包括VS块组和VHS块组;
上述定义的编码结构只是本发明可以采用的编码结构中的一部分例子,可以定义与上述编码结构相类似的其他结构。
本发明将根据派生块组特征确定其中块的编码阶段属性:
在不同类型的派生块组中有些块在第一阶段编码,有些在第二阶段编码。区分块编码阶段属性的原则是:在派生块组中,如果这个块被其他的已编码块通过插值能够获得比较满意的重建块或者这个块在第二阶段的编码代价值将比在第一阶段的编码代价值小,则这个块留在第二阶段编码,否则在第一阶段编码。根据这些原则,本发明定义了不同派生块组中块的编码阶段属性:
对于NS块组,每个块都必须在第一阶段编码。
对于HS块组,可以将上层块HS1、HS2中任意一个块和下层块HS3、HS4中任意一个块放在第一阶段编码,剩下的块放在第二阶段编码;还可以将HS1、HS2、HS3和HS4四个块中任意三个块放在第一阶段编码,剩下的块放在第二阶段编码。例如可以将HS1和HS3放在第一阶段编码,HS2和HS4在第二阶段编码;可以将HS2和HS4放在第一阶段编码,HS1和HS3在第二阶段编码;也可以将HS2和HS3放在第一阶段编码,HS1和HS4放在第二阶段编码;还可以将HS1和HS4放在第一阶段编码,HS2和HS3放在第二阶段编码;例如将HS1、HS2、HS3放在第一阶段编码,剩下的块HS4放在第二阶段编码;其它依次类推。
对于VS块组,可以将上层两个块VS1和VS2放在第一阶段编码,将下层两个块VS3和VS4放在第二阶段编码;也可以将下层两个块VS3和VS4放在第一阶段编码,将上层两个块VS1和VS2放在第二阶段编码;还可以将VS1、VS2、VS3和VS4四个块中任意三个块放在第一阶段编码,剩下的块放在第二阶段编码,例如,将VS1、VS2、VS3三个块放在第一阶段编码,剩下的块VS4放在第二阶段编码,其它依次类推。
对于VHS块组,可以将VHS1、VHS2、VHS3和VHS4四个块中任意一个块或任意两个或任意三个块放在第一阶段编码,剩下的块放在第二阶段编码;例如,可以将VHS1放在第一阶段编码,VHS2,VHS3和VHS4放在第二阶段编码;也可以将VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码;还可以将VHS1、VHS2、VHS3三个块放在第一阶段编码,剩下的VHS4块放在第二阶段编码;其它依次类推。
本发明提出的一种基于块组结构的分阶段自适应预测编码方法,在上述块组编码结构中任意选取一种编码结构,并根据该编码结构中块组的编码阶段属性进行编码,包括编码过程和解码过程;
编码过程的具体包括以下步骤:
1)进行第一阶段编码,包括下列步骤:
(1)从原始图像中获得一个原始块组,作为当前编码块组,根据原始块组进行抽样处理得到四种派生块组;
(2)如果被选定的块组编码结构的第一组块组中没有派生块组,则该编码结构的第一组块组不编码;如果被选定的块组编码结构的第一组块组中存在派生块组,则对该编码结构的第一组块组进行下面编码:
如果被选定的块组编码结构的第一组块组中只存在一种派生块组,首先考虑第一组块组中派生块组的上层/下层两个块,根据每个块的编码阶段属性,如果是在第一阶段编码,则对该块进行编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;这样得到第一组块组上层/下层块的编码码流和第一组块组上层/下层块的编码代价值;然后按同样的方式进行第一组块组下层/上层两个块的编码,这样得到第一组块组下层/上层块的编码码流和下层/上层块的编码代价值;最后将上、下层块的编码代价值之和作为第一组块组的编码代价值;
如果被选定的块组编码结构的第一组块组中存在两种派生块组,首先考虑第一组块组中第一种派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块进行编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;然后再考虑第一组块组中第二种派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;最后根据这两种派生块组上层/下层两个块的编码代价值之和,选择编码代价值小的派生块组的上层/下层两个块的编码码流作为第一组块组上层/下层块的编码码流,其编码代价值作为第一组块组上层/下层块的编码代价值;按同样的方式进行第一组块组下层/上层两个块的编码,这样得到第一组块组下层/上层块的编码码流和下层/上层块的编码代价值;将上、下层块的编码代价值之和作为第一组块组的编码代价值;
(3)如果被选定的块组编码结构的第二组块组中没有派生块组,该编码结构的第二组块组不编码;如果被选定的块组编码结构的第二组块组中存在派生块组,则按照第(2)步相同的编码过程对该编码结构的第二组块组进行编码,得到第二组块组的编码码流和编码代价值;
(4)当前编码块组的编码码流输出:
如果被选定的块组编码结构中只有一组块组进行了编码,则根据第(2)步或第(3)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;
如果被选定的块组编码结构的两组块组都进行了编码,则比较第(2)步中得到的第一组块组的编码代价值与第(3)步中得到的第二组块组的编码代价值,决定当前编码块组采用哪组块组的编码码流:当第一组块组的编码代价值小,当前编码块组就采用第一组块组的编码码流,根据第(2)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;当第二组块组的编码代价值小,当前编码块组就采用第二组块组的编码码流,根据第(3)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;
(5)对当前编码块组中没有编码的块进行插值获得重建块,并与由编码获得的重建块构成当前编码块组的重建块组;
(6)重复(1)到(5)步骤,直到原始图像中所有的原始块组完成编码,则第一阶段编码完成;在第一阶段编码中所有的重建块组构成了重建帧图像,作为第二阶段编码时的参考帧;
2)进行第二阶段编码,包括下列步骤:
(1)从原始图像中获得一个与第一阶段(1)步相同的原始块组,即当前编码块组,根据原始块组进行抽样处理得到四种派生块组;
(2)以第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对当前编码块组中第一阶段没有编码的块进行编码,并得到其重建块;
(3)用编码得到的重建块替代第一阶段编码时通过插值得到的重建块,并且输出编码码流;
(4)重复(1)到(3)步骤,直到原始图像中所有的原始块组完成第二阶段编码,则第二阶段编码完成;
解码过程的具体包括以下步骤:
1)第一阶段解码
(1)首先根据编码码流判断码流的编码结构和要解码的块组类型,如果要解码的块组属于码流的编码结构的第一组块组,则到第(2)步解码;如果要解码的块组属于码流的编码结构的第二组块组,则到第(3)步解码;
(2)码流的编码结构的第一组块组解码:根据编码码流判断上层和下层两个块的派生块组类型,再根据该块的编码阶段属性,决定是否解码:如果该块在第一阶段编码,则该块直接解码并得到解码重建块;如果该块在第二阶段编码,则该块留在第二阶段解码;
(3)码流的编码结构的第二组块组解码:根据编码码流判断上层和下层两个块的派生块组类型,再根据该块的编码阶段属性,决定是否解码:如果该块在第一阶段编码,则该块直接解码并得到解码重建块;如果该块在第二阶段编码,则该块留在第二阶段解码;
(4)根据已经解码的块对第(2)步或第(3)步块组解码中没有解码的块进行插值获得重建块,并与第(2)步或第(3)步中解码得到的重建块构成一个完整的重建块组;
(5)重复第(1)到第(4)的步骤,直到所有块组都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建块组构成了重建帧图像,作为第二阶段解码的参考帧图像;
2)第二阶段解码:
(1)对解码的块组中第一阶段没有解码的块进行解码,以第一阶段得到的解码重建帧图像作为解码参考帧,对这些未解码的块进行解码,并得到解码块的重建块;
(2)用第(1)步的解码重建块替代第一阶段通过插值得到的重建块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
本发明根据M像素×N像素的组块中M和N不同取值和不同的块组编码结构,列举8种基于块组结构的自适应分阶段预测编码方法的实施例,分别说明如下:
实施例一:
本实施例中M像素×N像素的块组定义为宏块组,即M等于32,N等于32,原始块组定义原始宏块组,派生块组定义为派生宏块组。
本实施例采用NS-HS-VS-VHS编码结构,其中派生宏块组中宏块的编码阶段属性如下:
对于NS宏块组,每个宏块都必须在第一阶段编码。
对于HS宏块组,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块组,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块组,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
本实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块组,即为当前编码宏块组,根据原始宏块组进行抽样处理得到四种类型的派生宏块组,即NS、HS、VS、VHS宏块组。
2)对NS宏块组和HS宏块组进行编码(NS-HS宏块组编码):
首先对NS宏块组的上层两个宏块NS1和NS2进行编码并计算其编码代价值,然后对HS的上层左边宏块HS1进行编码并计算其编码代价值,再估计上层右边宏块HS2的编码代价值,最后根据NS和HS宏块组上层两个宏块的编码代价值之和,选择编码代价值小的宏块组类型的上层两个宏块(NS1和NS2或HS1和HS2)的编码码流作为NS-HS宏块组上层宏块的编码码流,其编码代价值作为NS-HS宏块组上层宏块的编码代价值。
同样,对NS宏块组的下层两个宏块NS3和NS4进行编码并计算其编码代价值,然后对HS的下层左边宏块HS3进行编码并计算其编码代价值,再估计下层右边宏块HS4的编码代价值,最后根据NS和HS宏块组下层两个宏块的编码代价值之和,选择编码代价值小的宏块组类型的下层两个宏块(NS3和NS4或HS3和HS4)的编码码流作为NS-HS宏块组下层宏块的编码码流,其编码代价值作为NS-HS宏块组下层宏块的编码代价值。
将上、下层宏块的编码代价值之和作为NS-HS宏块组的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个宏块的左右编码顺序可以颠倒。
3)对VS宏块组和VHS宏块组进行编码(VS-VHS宏块组编码):
首先对VS宏块组的上层两个宏块VS1和VS2编码并计算其编码代价值,然后对VHS的上层左边宏块VHS1和VHS2进行编码并计算其编码代价值,最后根据VS和VHS宏块组上层两个宏块的编码代价值之和,选择编码代价值小的宏块组类型的上层两个宏块(VS1和VS2或VHS1和VHS2)的编码码流作为VS-VHS宏块组上层宏块的编码码流,其编码代价值作为VS-VHS宏块组上层宏块的编码代价值。
估计VS和VHS宏块组的下层两个宏块的编码代价值,比较这两种类型宏块组下层宏块的编码代价值之和,选择编码代价值小的宏块组类型的下层两个宏块(VS3和VS4或VHS3和VHS4)的编码代价值作为VS-VHS宏块组下层宏块的编码代价值。
将上、下层宏块的编码代价值之和作为VS-VHS宏块组的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个宏块的左右编码顺序可以颠倒。
4)当前编码宏块组的编码码流输出:
比较步骤2)中NS-HS宏块组与步骤3)中VS-VHS宏块组的编码代价值,决定当前编码宏块组采用哪种宏块组类型:如果NS-HS宏块组的编码代价值小,当前编码宏块组的宏块组类型就为NS-HS宏块组类型;再根据第2)步的结果,决定当前编码宏块组的上、下层宏块的派生宏块组类型:如果NS-HS宏块组的上层两个宏块是NS宏块组,则输出NS1和NS2宏块的编码码流;如果NS-HS宏块组的上层两个宏块是HS宏块组,则只输出HS1宏块的编码码流;如果NS-HS宏块组的下层两个宏块是NS宏块组,则输出NS3和NS4宏块的编码码流;如果NS-HS宏块组的下层两个宏块是HS宏块组,则只输出HS3宏块的编码码流;相反,如果VS-VHS宏块组的编码代价值小,当前编码宏块组的宏块组类型就为VS-VHS宏块组类型。同时根据第3)步的结果,也决定了当前编码宏块组的上、下层宏块的派生宏块组类型:如果VS-VHS宏块组的上层两个宏块是VS宏块组,则输出VS1和VS2宏块的编码码流;如果VS-VHS宏块组的上层两个宏块是VHS宏块组,则输出VHS1和VHS2宏块的编码码流;VS-VHS宏块组的下层两个宏块不输出码流。
5)对当前编码宏块组中没有编码的宏块进行插值获得重建宏块:
经过第4)步,在当前编码宏块组中可能有些宏块已经编码输出,有些宏块没有编码;因为已经编码的宏块能够得到重建的宏块,而没有编码的宏块不能得到重建的宏块,只能通过插值得到这些没有编码宏块的重建宏块;这样就得到了当前编码宏块组的整个重建宏块组;根据第4)步,需要插值的宏块为:如果当前编码宏块组的编码类型为NS-HS宏块组类型,当其上层两个宏块是HS宏块组时,则HS2宏块需要插值;当其下层两个宏块是HS宏块组时,则HS4宏块需要插值;如果当前编码宏块组的编码类型为VS-VHS宏块组类型,其下层两个宏块需要插值;宏块的插值可以采用各种已有的插值技术实现,例如多抽头加权插值等。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块组完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块组构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块组,即当前编码宏块组,根据原始宏块组进行抽样处理得到四种类型的宏块组,即NS、HS、VS、VHS宏块组。
2)对当前编码宏块组中第一阶段没有编码的宏块进行编码:
第一阶段编码已经决定了当前编码宏块组的编码类型以及已经编码的宏块和没有编码的宏块,因此这一步需要编码的宏块就是第一阶段没有编码的宏块。具体判断过程如下:如果当前编码宏块组的宏块类型是NS-HS宏块组类型,而且NS-HS宏块组的上层两个宏块是HS宏块组,则HS2宏块需要编码;如果NS-HS宏块组的下层两个宏块是HS宏块组,则HS4宏块需要编码;如果当前编码宏块组的编码类型是VS-VHS宏块组类型时,下层两个宏块需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段宏块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,还可以包括由第一阶段块编码时使用的参考帧和经第一阶段编码后得到的重建参考帧相结合构成的参考帧,对上述需要编码的宏块进行编码,并得到重建宏块。
3)编码宏块的码流输出和更新重建宏块:
输出编码宏块的码流,用第2)步得到的编码重建宏块替代第一阶段编码时通过插值得到的重建宏块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块组完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,宏块编码可以采用已有的各种编码技术实现。宏块编码后,计算宏块的编码代价值也是采用已有的编码代价值计算技术。估计宏块的编码代价值是指不进行该宏块编码,而只是根据其周围已经编码的宏块,估计出该宏块的编码代价值,例如一个宏块的编码代价值可以估计为其周围已经编码的宏块中与其最相似宏块的编码代价值。
其中解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块组类型:
首先根据编码码流判断要解码的宏块组类型。如果是NS-HS宏块组类型,则执行第2步,如果是VS-VHS宏块组类型,则执行第3步。
2)NS-HS宏块组解码:
根据编码码流判断上层两个宏块的类型,如果上层两个宏块是NS类型,直接解码这两个宏块NS1和NS2;如果上层两个宏块是HS类型,直接解码这两个宏块中左边的宏块HS1,右边的宏块HS2留在第二阶段解码。
然后,根据码流判断下层两个宏块的类型,如果下层两个宏块是NS类型,直接解码这两个宏块NS3和NS4;如果下层两个宏块是HS类型,直接解码这两个宏块中左边的宏块HS3,右边的宏块HS4留在第二阶段解码。
3)VS-VHS宏块组解码:
根据码流判断上层两个宏块类型,如果上层两个宏块是VS类型,直接解码这两个宏块VS1和VS2;如果上层两个宏块是VHS类型,直接解码这两个宏块VHS1和VHS2。
然后,下层两个宏块留在第二阶段解码。
4)对第2)步或第3)步的宏块组中没有解码的宏块进行插值获得重建宏块:
根据已经解码的宏块对没有解码的宏块进行插值,这样就得到了一个完整的重建宏块组。这里宏块的插值采用与编码过程中宏块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块组都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块组构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块组中第一阶段没有解码的宏块进行解码:
经过第一阶段解码,在宏块组中可能还有一些宏块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,还可以使用由第一阶段块解码时使用的参考帧和经第一阶段解码后得到的重建参考帧相结合构成的参考帧,再对这些未解码的宏块进行解码,得到其重建宏块。
2)更新解码重建帧:
用第1)步的解码重建宏块替代第一阶段通过插值得到重建宏块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,宏块解码可以采用与编码相对应的已有各种解码技术实现。
实施例二:
本实施例中M像素×N像素的块组定义为宏块组,即M等于32,N等于32,原始块组定义原始宏块组,派生块组定义为派生宏块组。
本实施例采用NS-HS-VS编码结构,其中派生宏块组中宏块的编码阶段属性如下:
对于NS宏块组,每个宏块都必须在第一阶段编码。
对于HS宏块组,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块组,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块组,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
本实施例实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块组,即为当前编码宏块组,根据原始宏块组进行抽样处理得到四种类型的派生宏块组,即NS、HS、VS、VHS宏块组。
2)对NS宏块组和HS宏块组进行编码(NS-HS宏块组编码):
首先对NS宏块组的上层两个宏块NS1和NS2进行编码并计算其编码代价值,然后对HS的上层左边宏块HS1进行编码并计算其编码代价值,再估计上层右边宏块HS2的编码代价值,最后根据NS和HS宏块组上层两个宏块的编码代价值之和,选择编码代价值小的宏块组类型的上层两个宏块(NS1和NS2或HS1和HS2)的编码码流作为NS-HS宏块组上层宏块的编码码流,其编码代价值作为NS-HS宏块组上层宏块的编码代价值。
同样,对NS宏块组的下层两个宏块NS3和NS4进行编码并计算其编码代价值,然后对HS的下层左边宏块HS3进行编码并计算其编码代价值,再估计下层右边宏块HS4的编码代价值,最后根据NS和HS宏块组下层两个宏块的编码代价值之和,选择编码代价值小的宏块组类型的下层两个宏块(NS3和NS4或HS3和HS4)的编码码流作为NS-HS宏块组下层宏块的编码码流,其编码代价值作为NS-HS宏块组下层宏块的编码代价值。
将上、下层宏块的编码代价值之和作为NS-HS宏块组的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个宏块的左右编码顺序可以颠倒。
3)对VS宏块组进行编码(VS宏块组编码):
首先对VS宏块组的上层两个宏块VS1和VS2编码并计算其编码代价值,这样得到VS宏块组上层宏块的编码码流和编码代价值。
估计VS宏块组下层两个宏块的编码代价值,这样得到VS宏块组下层宏块的编码代价值。
将上、下层宏块的编码代价值之和作为VS宏块组的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个宏块的左右编码顺序可以颠倒。
4)当前编码宏块组的编码码流输出:
比较步骤2)中NS-HS宏块组与步骤3)中VS-VHS宏块组的编码代价值,决定当前编码宏块组采用哪种编码类型:如果NS-HS宏块组的编码代价值小,当前编码宏块组的编码类型就为NS-HS宏块组类型;再根据第2)步的结果,决定当前编码宏块组的上、下层的派生宏块组类型:如果NS-HS宏块组的上层两个宏块是NS宏块组,则输出NS1和NS2宏块的编码码流;如果NS-HS宏块组的上层两个宏块是HS宏块组,则只输出HS1宏块的编码码流;如果NS-HS宏块组的下层两个宏块是NS宏块组,则输出NS3和NS4宏块的编码码流;如果NS-HS宏块组的下层两个宏块是HS宏块组,则只输出HS3宏块的编码码流;相反,如果VS宏块组的编码代价值小,当前编码宏块组的编码类型就为VS宏块组类型。同时根据第3)步的结果,也决定了当前编码宏块组的上、下层的派生宏块组类型,并且输出VS1和VS2宏块的编码码流。
5)对当前编码宏块组中没有编码的宏块进行插值获得重建宏块:
经过第4)步,在当前编码宏块组中可能有些宏块已经编码输出,有些宏块没有编码;因为已经编码的宏块能够得到重建的宏块,而没有编码的宏块不能得到重建的宏块,只能通过插值得到这些没有编码宏块的重建宏块;这样就得到了当前编码宏块组的整个重建宏块组;根据第4)步,需要插值的宏块为:如果当前编码宏块组的编码类型为NS-HS宏块组类型,当其上层两个宏块是HS宏块组时,则HS2宏块需要插值;当其下层两个宏块是HS宏块组时,则HS4宏块需要插值;如果当前编码宏块组的编码类型为VS宏块组类型,下层两个宏块需要插值;宏块的插值可以采用各种已有的插值技术实现。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块组完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块组构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块组,即当前编码宏块组,根据原始宏块组进行抽样处理得到四种类型的宏块组,即NS、HS、VS、VHS宏块组。
2)对当前编码宏块组中第一阶段没有编码的宏块进行编码:
第一阶段编码已经决定了当前编码宏块组的编码类型以及已经编码的宏块和没有编码的宏块,因此这一步需要编码的宏块就是第一阶段没有编码的宏块。具体判断过程如下:如果当前编码宏块组的编码类型是NS-HS宏块组类型,而且NS-HS宏块组的上层两个宏块是HS宏块组,则HS2宏块需要编码;如果NS-HS宏块组的下层两个宏块是HS宏块组,则HS4宏块需要编码;如果当前编码宏块组的编码类型是VS宏块组类型,下层两个宏块VS3和VS4需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段宏块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对需要编码的宏块进行编码,并得到重建宏块。
3)编码宏块的码流输出和更新重建宏块:
输出编码宏块的码流,用第2)步得到的编码重建宏块替代第一阶段编码时通过插值得到的重建宏块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块组完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,宏块编码可以采用已有的各种编码技术实现。宏块编码后,计算宏块的编码代价值也是采用已有的编码代价值计算技术。估计宏块的编码代价值是指不进行该宏块编码,而只是根据其周围已经编码的宏块,估计出该宏块的编码代价值,例如一个宏块的编码代价值可以估计为其周围已经编码的宏块中与其最相似宏块的编码代价值。
其中解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块组类型:
首先根据编码码流判断要解码的宏块组类型。如果是NS-HS宏块组类型,则执行第2步,如果是VS-VHS宏块组类型,则执行第3步。
2)NS-HS宏块组解码:
根据编码码流判断上层两个宏块的类型,如果上层两个宏块是NS类型,直接解码这两个宏块NS1和NS2;如果上层两个宏块是HS类型,直接解码这两个宏块中左边的宏块HS1,右边的宏块HS2留在第二阶段解码。
然后,根据码流判断下层两个宏块的类型,如果下层两个宏块是NS类型,直接解码这两个宏块NS3和NS4;如果下层两个宏块是HS类型,直接解码这两个宏块中左边的宏块HS3,右边的宏块HS4留在第二阶段解码。
3)VS宏块组解码:
直接解码上层两个宏块VS1和VS2,下层两个宏块留在第二阶段解码。
4)对第2)步或第3)步的宏块组中没有解码的宏块进行插值获得重建宏块:
根据已经解码的宏块对没有解码的宏块进行插值,这样就得到了一个完整的重建宏块组。这里宏块的插值采用与编码过程中宏块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块组都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块组构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块组中第一阶段没有解码的宏块进行解码:
经过第一阶段解码,在宏块组中可能还有一些宏块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,再对这些未解码的宏块进行解码,得到其重建宏块。
2)更新解码重建帧:
用第1)步的解码重建宏块替代第一阶段通过插值得到重建宏块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,宏块解码可以采用与编码相对应的已有各种解码技术实现。
实施例三:
本实施例中M像素×N像素的块组定义为宏块组,即M等于32,N等于32,原始块组定义原始宏块组,派生块组定义为派生宏块组。
本实施例采用NS-VS编码类型,其中派生宏块组中宏块的编码阶段属性如下:
对于NS宏块组,每个宏块都必须在第一阶段编码。
对于HS宏块组,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块组,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块组,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
本实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块组,即为当前编码宏块组,根据原始宏块组进行抽样处理选择两种类型的派生宏块组,即NS和VS宏块组。
2)对NS宏块组进行编码:
首先对NS宏块组的上层两个宏块NS1和NS2进行编码并计算其编码代价值,得到NS宏块组上层宏块的编码码流和编码代价值。
同样,对NS宏块组的下层两个宏块NS3和NS4进行编码并计算其编码代价值,得到NS宏块组下层宏块的编码码流和编码代价值。
将上、下层宏块的编码代价值之和作为NS宏块组的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个宏块的左右编码顺序可以颠倒。
3)对VS宏块组进行编码:
首先对VS宏块组的上层两个宏块VS1和VS2进行编码并计算其编码代价值,得到VS宏块组上层宏块的编码码流和编码代价值。
估计VS宏块组的下层两个宏块的编码代价值,得到VS宏块组下层宏块的编码代价值。
将上、下层宏块的编码代价值之和作为VS宏块组的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个宏块的左右编码顺序可以颠倒。
4)当前编码宏块组的编码码流输出:
比较第2)步中NS宏块组与第3)步中VS宏块组的编码代价值,决定当前编码宏块组采用哪种宏块组:如果NS宏块组的编码代价值小,则输出NS宏块组的四个宏块的编码码流;相反,如果VS宏块组的编码代价值小,则输出VS宏块组上层宏块VS1和VS2的编码码流。
5)对当前编码宏块组中没有编码的宏块进行插值获得重建宏块:
经过第4)步,在当前编码宏块组中可能有些宏块已经编码输出,有些宏块没有编码;因为已经编码的宏块能够得到重建的宏块,而没有编码的宏块不能得到重建的宏块,只能通过插值得到这些没有编码宏块的重建宏块,这样就得到了当前编码宏块组的整个重建宏块组。根据第4)步,需要插值的宏块为:如果当前编码宏块组为NS宏块组,则没有宏块需要插值;如果当前编码宏块组为VS宏块组,则其下层两个宏块VS3和VS4需要插值;宏块的插值可以采用各种已有的插值技术实现。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块组完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块组构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块组,即当前编码宏块组,根据原始宏块组进行抽样处理选择两种类型的宏块组,即NS和VS宏块组。
2)对当前编码宏块组中第一阶段没有编码的宏块进行编码:
第一阶段编码已经决定了当前编码宏块组的类型以及已经编码的宏块和没有编码的宏块,因此这一步需要编码的宏块就是第一阶段没有编码的宏块。具体判断过程如下:如果当前编码宏块组是NS宏块组,则没有宏块需要编码;如果当前编码宏块组是VS宏块组,则VS宏块组的下层两个宏块VS3和VS4宏块需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段宏块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧, 对需要编码的宏块进行编码,并得到重建宏块。
3)编码宏块的码流输出和更新重建宏块:
输出编码宏块的码流,用第2)步得到的编码重建宏块替代第一阶段编码时通过插值得到的重建宏块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块组完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,宏块编码可以采用已有的各种编码技术实现。宏块编码后,计算宏块的编码代价值也是采用已有的编码代价值计算技术。估计宏块的编码代价值是指不进行该宏块编码,而只是根据其周围已经编码的宏块,估计出该宏块的编码代价值,例如一个宏块的编码代价值可以估计为其周围已经编码的宏块中与其最相似宏块的编码代价值。
所说的解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块组类型:
首先根据编码码流判断要解码的宏块组类型。如果是NS宏块组类型,则执行第2步,如果是VS宏块组类型,则执行第3步。
2)NS宏块组解码:
直接解码NS上层两个宏块NS1和NS2和下层两个宏块NS3和NS4。
3)VS宏块组解码:
直接解码VS上层两个宏块VS1和VS2;下层两个宏块VS3和VS4在第一阶段不解码,留在第二阶段解码。
4)对第2)步或第3)步的宏块组中没有解码的宏块进行插值获得重建宏块:
根据已经解码的宏块对没有解码的宏块进行插值,这样就得到了一个完整的重建宏块组。这里宏块的插值采用与编码过程中宏块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块组都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块组构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块组中第一阶段没有解码的宏块进行解码:
经过第一阶段解码,在宏块组中可能还有一些宏块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,再对这些未解码的宏块进行解码,得到其重建宏块。
2)更新解码重建帧:
用第1)步的解码重建宏块替代第一阶段通过插值得到重建宏块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,宏块解码可以采用与编码相对应的已有各种解码技术实现。
实施例四:
本实施例中定义M像素×N像素的块组定义为宏块,即M等于16,N等于16,原始块组定义原始宏块,派生块组定义为派生宏块。
本实施例采用NS-HS-VS-VHS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块,每个块都必须在第一阶段编码。
对于HS宏块,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
本实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块,即当前编码宏块,根据原始宏块进行抽样处理得到四种类型的抽样宏块,即NS、HS、VS、VHS宏块。
2)对NS宏块和HS宏块进行编码(NS-HS宏块类型):
首先对NS宏块的上层两个块NS1和NS2进行编码并计算其编码代价值,然后对HS的上层左边块HS1进行编码并计算其编码代价值,再估计上层右边块HS2的编码代价值,最后根据NS和HS块上层两个块的编码代价值之和,选择编码代价值小的宏块类型的上层两个块(NS1和NS2或HS1和HS2)的编码码流作为NS-HS宏块类型上层块的编码码流,其编码代价值作为NS-HS宏块类型上层块的编码代价值。
然后对NS宏块的下层两个块NS3和NS4进行编码并计算其编码代价值,然后对HS的下层左边块HS3进行编码并计算其编码代价值,再估计下层右边块HS4的编码代价值,最后根据NS和HS块下层两个块的编码代价值之和,选择编码代价值小的宏块类型的下层两个块(NS3和NS4或HS3和HS4)的编码码流作为NS-HS宏块类型下层块的编码码流,其编码代价值作为NS-HS宏块类型下层块的编码代价值。
将上、下层块的编码代价值之和作为NS-HS宏块类型的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个块的左右编码顺序可以颠倒。
3)对VS宏块和VHS宏块进行编码(VS-VHS宏块类型):
首先对VS宏块的上层两个块VS1和VS2进行编码并计算其编码代价值,然后对VHS的上层块VHS1和VHS2进行编码并计算其编码代价值,最后根据VS和VHS块上层两个块的编码代价值之和,选择编码代价值小的宏块类型的上层两个块(VS1和VS2或VHS1和VHS2)的编码码流作为VS-VHS宏块类型上层块的编码码流,其编码代价值作为VS-VHS宏块类型上层块的编码代价值。
然后估计VS的下层两个块VS3和VS4的编码代价值和VHS的下层两个块VHS3和VHS4编码代价值,根据VS和VHS宏块下层两个块的编码代价值之和,选择编码代价值小的宏块类型的下层两个块(VS3和VS4或VHS3和VHS4)的编码代价值作为VS-VHS宏块类型下层块的编码代价值。
将上、下层块的编码代价值之和作为VS-VHS宏块编码类型的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个块的左右编码顺序可以颠倒。
4)当前编码宏块的编码码流输出:
比较步骤2)中NS-HS宏块与步骤3)中VS-VHS宏块的编码代价值,决定当前编码宏块的采用哪种宏块类型的编码码流:当NS-HS宏块类型的编码代价值小时,当前编码宏块的输出采用NS-HS宏块的编码码流。同时根据第2)步的结果,也决定了当前编码宏块的上、下层块的抽样宏块类型:如果NS-HS宏块类型的上层两个块属于NS宏块,则输出NS1和NS2块的编码码流;如果NS-HS宏块类型的上层两个块属于HS宏块,则只输出HS1块的编码码流;如果NS-HS宏块类型的下层两个块属于NS宏块,则输出NS3和NS4块的编码码流;如果NS-HS宏块类型的下层两个块属于HS宏块,则只输出HS3块的编码码流;相反,当VS-VHS宏块类型的编码代价值小时,当前编码宏块的输出采用VS-VHS宏块的编码码流。同时根据第3)步的结果,也决定了当前编码宏块的上、下层块的抽样宏块类型:如果VS-VHS宏块类型的上层两个块属于VS宏块,则输出VS1和VS2块的编码码流;如果VS-VHS宏块类型的上层两个块属于VHS宏块,则只输出VHS1和VHS2块的编码码流;VS-VHS宏块类型的下层两个块不输出编码码流。
5)对当前编码宏块中没有编码的块进行插值获得重建块:
经过第4)步,在当前编码宏块中可能有些块已经编码输出,有些块没有编码。因为已经编码的块能够得到重建的块,而没有编码的块不能得到重建的块,只能通过插值得到这些没有编码块的重建块,这样就得到了当前编码宏块的整个重建宏块。根据第4)步,需要插值的块为:如果当前编码宏块的编码类型为NS-HS宏块类型,当NS-HS宏块的上层块属于HS宏块,则HS2块需要插值;当NS-HS宏块的下层块属于HS宏块,则HS4块需要插值。如果当前编码宏块的编码类型为VS-VHS宏块编码类型,当VS-VHS宏块类型为VS宏块时,VS3和VS4块需要插值,当VS-VHS宏块类型为VHS宏块时,VHS3和VHS4块需要插值。块的插值可以采用各种已有的插值技术实现。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块,即当前编码宏块,根据原始宏块进行抽样处理得到四种类型的宏块,即NS、HS、VS、VHS宏块。
2)对当前编码宏块中第一阶段没有编码的块进行编码:
第一阶段编码已经决定了当前编码宏块的编码类型以及已经编码的块和没有编码的块,因此这一步需要编码的块就是第一阶段没有编码的块。具体判断过程如下:如果当前编码宏块的编码类型是NS-HS宏块类型,当NS-HS宏块的上层块属于HS宏块,则HS2块需要编码;当NS-HS宏块的下层块属于HS宏块,则HS4块需要编码;如果VS-VHS宏块类型的下层两个块属于VS宏块,则VS3和VS4块需要编码,如果VS-VHS宏块类型的下层两个块属于VHS宏块,则VHS3和VHS4块需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对需要编码的块进行编码,并得到重建块。
3)编码块的码流输出和更新重建块:
输出编码块的码流,用第2)步得到的编码重建块替代第一阶段编码时通过插值得到的重建块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,宏块编码和块编码可以采用已有的各种编码技术实现。块编码后,计算块的编码代价值也是采用已有的编码代价值计算技术。估计块的编码代价值是指不进行该块编码,而只是根据其周围已经编码的块,估计出该块的编码代价值,例如一个块的编码代价值可以估计为其周围已经编码的块中与其最相似块的编码代价值。
其中解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块类型:
首先根据编码码流判断要解码的宏块编码类型。如果是NS-HS宏块类型,则执行第2步,如果是VS-VHS宏块类型,则执行第3步。
2)NS-HS宏块类型的解码:
根据码流判断上层两个块的抽样宏块类型:如果上层两个块属于NS类型,直接解码这两个块NS1和NS2;如果上层两个块属于HS类型,直接解码这两个块中左边的块HS1,右边的块HS2留在第二阶段解码。
然后,根据码流判断下层两个块的抽样宏块类型:如果下层两个块属于NS宏块,则这两个块NS1和NS2留在第二阶段解码;如果下层两个块属于HS宏块,直接解码这两个块中左边的块HS3,右边的块HS4留在第二阶段解码。
3)VS-VHS宏块类型的解码:
根据码流判断上层两个块的抽样宏块类型:如果上层两个块属于VS类型,直接解码上层两个块VS1和VS2;如果上层两个块属于VHS类型,直接解码上层两个块块VHS1和VHS2。
然后,下层两个块在第一阶段不解码;留在第二阶段解码。
4)对第2)步或第3)步的宏块中没有解码的块进行插值获得重建块:
根据已经解码的块对没有解码的块进行插值,这样就得到了一个完整的重建宏块。这里块的插值采用与编码过程中块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块中第一阶段没有解码的块进行解码:
经过第一阶段解码,在宏块中可能还有一些块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,再对这些未解码的块进行解码,得到其重建块。
2)更新解码重建帧:
用第1)步的解码重建块替代第一阶段通过插值得到重建块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,块解码可以采用与编码相对应的已有各种解码技术实现。
实施例五:
本实施例中定义M像素×N像素的块组定义为宏块,即M等于16,N等于16,原始块组定义原始宏块,派生块组定义为派生宏块。
本实施例采用NS-HS-VS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块,每个块都必须在第一阶段编码。
对于HS宏块,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
本实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块,即当前编码宏块,根据原始宏块进行抽样处理得到四种类型的抽样宏块,即NS、HS、VS、VHS宏块。
2)对NS宏块和HS宏块进行编码(NS-HS宏块类型):
首先对NS宏块的上层两个块NS1和NS2进行编码并计算其编码代价值,然后对HS的上层左边块HS1进行编码并计算其编码代价值,再估计上层右边块HS2的编码代价值,最后根据NS和HS块上层两个块的编码代价值之和,选择编码代价值小的宏块类型的上层两个块(NS1和NS2或HS1和HS2)的编码码流作为NS-HS宏块类型上层块的编码码流,其编码代价值作为NS-HS宏块类型上层块的编码代价值。
然后对NS宏块的下层两个块NS3和NS4进行编码并计算其编码代价值,然后对HS的下层左边块HS3进行编码并计算其编码代价值,再估计下层右边块HS4的编码代价值,最后根据NS和HS块下层两个块的编码代价值之和,选择编码代价值小的宏块类型的下层两个块(NS3和NS4或HS3和HS4)的编码码流作为NS-HS宏块类型下层块的编码码流,其编码代价值作为NS-HS宏块类型下层块的编码代价值。
将上、下层块的编码代价值之和作为NS-HS宏块类型的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个块的左右编码顺序可以颠倒。
3)对VS宏块进行编码(VS宏块类型):
首先对VS宏块的上层两个块VS1和VS2进行编码并计算其编码代价值,得到VS宏块类型上层块的编码码流和编码代价值。
然后估计VS的下层两个块VS3和VS4的编码代价值,得到VS宏块类型下层块的编码代价值。
将上、下层块的编码代价值之和作为VS宏块类型的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个块的左右编码顺序可以颠倒。
4)当前编码宏块的编码码流输出:
比较步骤2)中NS-HS宏块与步骤3)中VS宏块的编码代价值,决定当前编码宏块的采用哪种宏块类型的编码码流:如果NS-HS宏块类型的编码代价值小,当前编码宏块的输出采用NS-HS宏块类型的编码码流。同时根据第2)步的结果,也决定了当前编码宏块的上、下层块的抽样宏块类型:如果NS-HS宏块类型的上层两个块属于NS宏块,则输出NS1和NS2块的编码码流;如果NS-HS宏块类型的上层两个块属于HS宏块,则只输出HS1块的编码码流;如果NS-HS宏块类型的下层两个块属于NS宏块,则输出NS3和NS4块的编码码流;如果NS-HS宏块类型的下层两个块属于HS宏块,则只输出HS3块的编码码流;相反,如果VS宏块类型的编码代价值小,当前编码宏块的输出采用VS宏块类型的编码码流。同时根据第3)步的结果,输出VS1和VS2块的编码码流。
5)对当前编码宏块中没有编码的块进行插值获得重建块:
经过第4)步,在当前编码宏块中可能有些块已经编码输出,有些块没有编码。因为已经编码的块能够得到重建的块,而没有编码的块不能得到重建的块,只能通过插值得到这些没有编码块的重建块,这样就得到了当前编码宏块的整个重建宏块。根据第4)步,需要插值的块为:如果当前编码宏块为NS-HS宏块类型,当NS-HS宏块的上层块属于为HS宏块时,则HS2块需要插值;当NS-HS宏块的下层块属于为HS宏块时,则HS4块需要插值。如果当前编码宏块为VS宏块类型,其下层两个块VS3和VH4需要插值。块的插值可以采用各种已有的插值技术实现。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块,即当前编码宏块,根据原始宏块进行抽样处理得到四种类型的宏块,即NS、HS、VS、VHS宏块。
2)对当前编码宏块中第一阶段没有编码的块进行编码:
第一阶段编码已经决定了当前编码宏块的编码类型以及已经编码的块和没有编码的块,因此这一步需要编码的块就是第一阶段没有编码的块。具体判断过程如下:如果当前编码宏块是NS-HS宏块类型,当NS-HS宏块的上层块属于HS宏块,则HS2块需要编码;当NS-HS宏块的下层块属于HS宏块,则HS4块需要编码;如果当前编码宏块的类型是VS宏块类型,则VS3和VS4块需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对需要编码的块进行编码,并得到重建块。
3)编码块的码流输出和更新重建块:
输出编码块的码流,用第2)步得到的编码重建块替代第一阶段编码时通过插值得到的重建块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,宏块编码和块编码可以采用已有的各种编码技术实现。块编码后,计算块的编码代价值也是采用已有的编码代价值计算技术。估计块的编码代价值是指不进行该块编码,而只是根据其周围已经编码的块,估计出该块的编码代价值,例如一个块的编码代价值可以估计为其周围已经编码的块中与其最相似块的编码代价值。
其中解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块类型:
首先根据编码码流判断要解码的宏块编码类型。如果是NS-HS宏块类型,则执行第2步,如果是VS宏块类型,则执行第3步。
2)NS-HS宏块类型的解码:
根据码流判断上层两个块的抽样宏块类型:如果上层两个块属于NS类型,直接解码这两个块NS1和NS2;如果上层两个块属于HS类型,直接解码这两个块中左边的块HS1,右边的块HS2留在第二阶段解码。
然后,根据码流判断下层两个块的抽样宏块类型:如果下层两个块属于NS宏块,则这两个块NS1和NS2留在第二阶段解码;如果下层两个块属于HS宏块,直接解码这两个块中左边的块HS3,右边的块HS4留在第二阶段解码。
3)VS宏块类型的解码:
直接解码上层两个块VS1和VS2;下层两个块VS3和VS4留在第二阶段解码。
4)对第2)步或第3)步的宏块中没有解码的块进行插值获得重建块:
根据已经解码的块对没有解码的块进行插值,这样就得到了一个完整的重建宏块。这里块的插值采用与编码过程中块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块中第一阶段没有解码的块进行解码:
经过第一阶段解码,在宏块中可能还有一些块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,再对这些未解码的块进行解码,得到其重建块。
2)更新解码重建帧:
用第1)步的解码重建块替代第一阶段通过插值得到重建块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,块解码可以采用与编码相对应的已有各种解码技术实现。
实施例六:
本实施例中定义M像素×N像素的块组定义为宏块,即M等于16,N等于16,原始块组定义原始宏块,派生块组定义为派生宏块。
本实施例采用NS-VS编码类型,其中派生宏块中块的编码阶段属性如下:
对于NS宏块,每个块都必须在第一阶段编码。
对于HS宏块,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
本实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块,即当前编码宏块,根据原始宏块进行抽样处理选择两种类型的抽样宏块,即NS和VS宏块。
2)对NS宏块进行编码:
首先对NS宏块的四个块NS1、NS2、NS3和NS4进行编码得到NS宏块编码的编码码流,并计算其编码代价值之和作为NS宏块的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个块的左右编码顺序可以颠倒。
3)对VS宏块进行编码:
首先对VS宏块的上层两个块VS1和VS2进行编码并计算其编码代价值,这样得到VS上层块的编码码流和编码代价值。
然后估计VS宏块的下层两个块VS3和VS4的编码代价值,这样得到VS宏块下层块的编码代价值。
将上、下层块的编码代价值之和作为VS宏块的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒,上层和下层两个块的左右编码顺序可以颠倒。
4)当前编码宏块的编码码流输出:
比较步骤2)中NS宏块与步骤3)中VS类型的编码代价值,决定当前编码宏块的采用哪种宏块类型:如果NS宏块的编码代价值小,当前编码宏块为NS宏块类型,则输出NS1、NS2、NS3和NS4块的编码码流;相反,如果VS宏块的编码代价值小,当前编码宏块为VS宏块类型,则输出VS1和VS2块的编码码流。
5)对当前编码宏块中没有编码的块进行插值获得重建块:
经过第4)步,在当前编码宏块中可能有些块已经编码输出,有些块没有编码。因为已经编码的块能够得到重建的块,而没有编码的块不能得到重建的块,只能通过插值得到这些没有编码块的重建块,这样就得到了当前编码宏块的整个重建宏块。根据第4)步,需要插值的块为:如果当前编码宏块为NS宏块,则没有块需要插值;如果当前编码宏块为VS宏块,则下层两个块VS3和VH4需要插值。块的插值可以采用各种已有的插值技术实现。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块,即当前编码宏块,根据原始宏块进行抽样处理选择两种类型的宏块,即NS和VS宏块。
2)对当前编码宏块中第一阶段没有编码的块进行编码:
第一阶段编码已经决定了当前编码宏块的类型以及已经编码的块和没有编码的块,因此这一步需要编码的块就是第一阶段没有编码的块。具体判断过程如下:如果当前编码宏块的类型是NS宏块,则没有块需要编码;如果当前编码宏块的类型是VS宏块,则VS3和VS4块需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对需要编码的块进行编码,并得到重建块。
3)编码块的码流输出和更新重建块:
输出编码块的码流,用第2)步得到的编码重建块替代第一阶段编码时通过插值得到的重建块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,块编码可以采用已有的各种编码技术实现。块编码后,计算块的编码代价值也是采用已有的编码代价值计算技术。估计块的编码代价值是指不进行该块编码,而只是根据其周围已经编码的块,估计出该块的编码代价值,例如一个块的编码代价值可以估计为其周围已经编码的块中与其最相似块的编码代价值。
其中解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块类型:
首先根据编码码流判断要解码的宏块类型。如果是NS宏块类型,则执行第2步,如果是VS宏块类型,则执行第3步。
2)NS宏块的解码:
直接解码NS1、NS2、NS3和NS4四个块。
3)VS宏块的解码:
直接解码VS宏块的上层两个块VS1和VS2;下层两个块VS1和VS2在第一阶段不解码,留在第二阶段解码。
4)对第2)步或第3)步的宏块中没有解码的块进行插值获得重建块:
根据已经解码的块对没有解码的块进行插值,这样就得到了一个完整的重建宏块。这里块的插值采用与编码过程中块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块中第一阶段没有解码的块进行解码:
经过第一阶段解码,在宏块中可能还有一些块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,再对这些未解码的块进行解码,得到其重建块。
2)更新解码重建帧:
用第1)步的解码重建块替代第一阶段通过插值得到重建块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,块解码可以采用与编码相对应的已有各种解码技术实现。
实施例七:
本实施例中定义M像素×N像素的块组定义为宏块对,即M等于16,N等于32,原始块组定义原始宏块对,派生块组定义为派生宏块对。
本实施例采用NS-VS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块对,每个块都必须在第一阶段编码。
对于HS宏块对,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块对,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块对,VHS1和VHS3放在第一阶段编码,VHS2和VHS4放在第二阶段编码。
本实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块对,即当前编码宏块对,根据原始宏块对进行抽样处理选择两种类型的抽样宏块对,即NS和VS宏块对。
2)对NS宏块对进行编码:
首先对NS宏块对的上层宏块和下层宏块进行编码并计算其编码代价值,这样得到NS宏块对的编码码流和编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒。
3)对VS宏块对进行编码:
首先对VS宏块对的上层宏块进行编码并计算其编码代价值,这样得到VS宏块对上层宏块的编码码流和编码代价值。
然后估计VS宏块对下层宏块的编码代价值,这样得到VS宏块对下层宏块的编码代价值。
将VS宏块对上、下层宏块的编码代价值之和作为VS宏块对的编码代价值。
上述步骤中,上层和下层的先后编码顺序可以颠倒。
4)当前编码宏块的编码码流输出:
比较步骤2)中NS宏块对与步骤3)中VS宏块对的编码代价值,决定当前宏块对采用哪种宏块对编码:如果NS宏块对的编码代价值小,当前宏块对采用NS宏块对编码,则输出NS宏块对上、下层宏块的编码码流;相反,如果VS宏块对的编码代价值小,当前宏块对采用VS宏块对编码,并且只输出VS宏块对的上层宏块的编码码流。
5)对当前编码宏块对中没有编码的宏块进行插值获得重建宏块:
经过第4)步,在当前编码宏块对中可能有些宏块已经编码输出,有些宏块没有编码。因为已经编码的宏块能够得到重建的宏块,而没有编码的宏块不能得到重建的宏块,只能通过插值得到这些没有编码宏块的重建宏块,这样就得到了当前编码宏块对的整个重建宏块对。根据第4)步,需要插值的宏块为:如果当前编码宏块对是NS宏块对类型,没有宏块需要插值;如果当前编码宏块对是VS宏块对类型,VS宏块对的下层宏块需要插值。宏块的插值可以采用各种已有的插值技术实现。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块对完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块对构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块对,即当前编码宏块对,根据原始宏块对进行抽样处理选择两种类型的宏块对,即NS和VS宏块对。
2)对当前编码宏块对中第一阶段没有编码的宏块进行编码:
第一阶段编码已经决定了当前编码宏块对是哪种宏块对编码以及已经编码的宏块和没有编码的宏块,因此这一步需要编码的宏块就是第一阶段没有编码的宏块。具体判断过程如下:如果当前编码宏块是NS宏块对类型,则没有宏块需要编码;如果当前编码宏块对是VS宏块对类型,则VS宏块的下层宏块需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对需要编码的块进行编码,并得到重建宏块。
3)编码宏块的码流输出和更新重建宏块:
输出编码宏块的码流,用第2)步得到的编码重建宏块替代第一阶段编码时通过插值得到的重建宏块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块对完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,宏块编码可以采用已有的各种编码技术实现。宏块编码后,计算宏块的编码代价值也是采用已有的编码代价值计算技术。估计宏块的编码代价值是指不进行该宏块编码,而只是根据其周围已经编码宏块的编码代价值,估计出该宏块的编码代价值,例如一个宏块的编码代价值可以估计为其周围已经编码的宏块中与其最相似宏块的编码代价值。
其中解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块对类型:
首先根据编码码流判断要解码的宏块对类型。如果是NS宏块对,则执行第2步,如果是VS宏块对,则执行第3步。
2)NS宏块对的解码:
直接解码NS宏块对的上层宏块和下层宏块。
3)VS宏块对的解码:
直接解码VS宏块对的上层宏块;下层宏块在第一阶段不解码,留在第二阶段解码。
4)对第2)步或第3)步的宏块对中没有解码的宏块进行插值获得重建宏块:
根据已经解码的宏块对没有解码的宏块进行插值,这样就得到了一个完整的重建宏块对。这里宏块的插值采用与编码过程中宏块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块对都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块对构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块对中第一阶段没有解码的宏块进行解码:
经过第一阶段解码,在宏块对中可能还有一些宏块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,再对这些未解码的宏块进行解码,得到其重建宏块。
2)更新解码重建帧:
用第1)步的解码重建宏块替代第一阶段通过插值得到重建宏块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,宏块解码可以采用与编码相对应的已有各种解码技术实现。
实施例八:
本实施例中定义M像素×N像素的块组定义为宏块对,即M等于32,N等于16,原始块组定义原始宏块对,派生块组定义为派生宏块对。
本实施例采用NS-HS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块对,每个块都必须在第一阶段编码。
对于HS宏块对,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码。
对于VS宏块对,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码。
对于VHS宏块对,VHS1和VHS4放在第一阶段编码,VHS2和VHS3放在第二阶段编码。
本实施例包括编码过程和解码过程如下:
其中编码过程,具体包括以下步骤:
第一阶段编码
1)从原始图像中获得一个原始宏块对,即当前编码宏块对,根据原始宏块对进行抽样处理选择两种类型的抽样宏块对,即NS和HS宏块对。
2)对NS宏块对进行编码:
首先对NS宏块对的左边宏块和右边宏块进行编码并计算其编码代价值,这样得到NS宏块对的编码码流和编码代价值。
上述步骤中,左边和右边的先后编码顺序可以颠倒。
3)对HS宏块对进行编码:
首先对HS宏块对的左边宏块进行编码并计算其编码代价值,这样得到HS宏块对左边宏块的编码码流和编码代价值。
然后估计HS宏块对的右边宏块的编码代价值,这样得到HS宏块对右边宏块的编码代价值。
将HS宏块对左、右边宏块的编码代价值之和作为HS宏块对的编码代价值。
上述步骤中,左边和右边的先后编码顺序可以颠倒。
4)当前编码宏块的编码码流输出:
比较步骤2)中NS宏块对与步骤3)中HS宏块对的编码代价值,决定当前宏块对采用哪种宏块对类型:如果NS宏块对的编码代价值小,当前宏块对采用NS宏块对类型,并输出NS宏块对左、右边宏块的编码码流;相反,如果HS宏块对的编码代价值小,当前宏块对采用HS宏块对类型,则只输出HS宏块对的左边宏块的编码码流。
5)对当前编码宏块对中没有编码的宏块进行插值获得重建宏块:
经过第4)步,在当前编码宏块对中可能有些宏块已经编码输出,有些宏块没有编码。因为已经编码的宏块能够得到重建的宏块,而没有编码的宏块不能得到重建的宏块,只能通过插值得到这些没有编码宏块的重建宏块,这样就得到了当前编码宏块对的整个重建宏块对。根据第4)步,需要插值的宏块为:如果当前编码宏块对是NS宏块对编码,没有宏块需要插值;如果当前编码宏块对是HS宏块对编码,HS宏块对的右边宏块需要插值。宏块的插值可以采用各种已有的插值技术实现。
6)重复1)到5)步骤,直到原始图像中所有的原始宏块对完成编码,则第一阶段编码完成。在第一阶段编码中所有的重建宏块对构成了重建帧图像,作为第二阶段编码时的参考帧。
第二阶段编码:
1)从原始图像中获得一个与第一阶段1)步相同的原始宏块对,即当前编码宏块对,根据原始宏块对进行抽样处理选择两种类型的宏块对,即NS和HS宏块对。
2)对当前编码宏块对中第一阶段没有编码的宏块进行编码:
第一阶段编码已经决定了当前编码宏块对是哪种宏块对编码以及已经编码的宏块和没有编码的宏块,因此这一步需要编码的宏块就是第一阶段没有编码的宏块。具体判断过程如下:如果当前编码宏块是NS宏块对类型,则没有宏块需要编码;如果当前编码宏块对是HS宏块对类型,则HS宏块的右边宏块需要编码。以第一阶段编码中所得到的重建帧图像和第一阶段块编码时使用的参考帧一起作为第二阶段编码时的参考帧,也可以只使用第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对需要编码的块进行编码,并得到重建宏块。
3)编码宏块的码流输出和更新重建宏块:
输出编码宏块的码流,用第2)步得到的编码重建宏块替代第一阶段编码时通过插值得到的重建宏块。
4)重复1)到3)步骤,直到原始图像中所有的原始宏块对完成第二阶段编码,则第二阶段编码完成。
在上述的编码过程中,宏块编码可以采用已有的各种编码技术实现。宏块编码后,计算宏块的编码代价值也是采用已有的编码代价值计算技术。估计宏块的编码代价值是指不进行该宏块编码,而只是根据其周围已经编码宏块的编码代价值,估计出该宏块的编码代价值,例如一个宏块的编码代价值可以估计为其周围已经编码的宏块中与其最相似宏块的编码代价值。
其中解码过程,具体包括以下步骤:
第一阶段解码
1)判断解码的宏块对类型:
首先根据编码码流判断要解码的宏块对类型。如果是NS宏块对,则执行第2步,如果是HS宏块对,则执行第3步。
2)NS宏块对的解码:
直接解码NS宏块对的左边宏块和右边宏块。
3)HS宏块对的解码:
直接解码HS宏块对的左边宏块;右边宏块在第一阶段不解码,留在第二阶段解码。
4)对第2)步或第3)步的宏块对中没有解码的宏块进行插值获得重建宏块:
根据已经解码的宏块对没有解码的宏块进行插值,这样就得到了一个完整的重建宏块对。这里宏块的插值采用与编码过程中宏块插值时相同的插值技术。
5)重复第1)到第4)的步骤,直到所有宏块对都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建宏块对构成了重建帧图像,作为第二阶段解码的参考图像。
第二阶段解码:
1)对解码的宏块对中第一阶段没有解码的宏块进行解码:
经过第一阶段解码,在宏块对中可能还有一些宏块没有解码。以第一阶段得到的解码重建帧图像和第一阶段使用的解码参考帧作为第二阶段解码时的参考帧,也可以只使用第一阶段解码中所得到的重建帧图像作为第二阶段解码时的参考帧,再对这些未解码的宏块进行解码,得到其重建宏块。
2)更新解码重建帧:
用第1)步的解码重建宏块替代第一阶段通过插值得到重建宏块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
在上述的解码过程中,宏块解码可以采用与编码相对应的已有各种解码技术实现。
Claims (19)
1、一种视频信号编码中块组编码结构,其特征在于,定义M像素×N像素的块为块组,包括原始块组和派生块组;其中,原始块组为连续的M像素×N像素的块;派生块组为对原始块组进行水平或垂直1/2抽样并重新排列得到的M像素×N像素的块;所说的派生块组按第一组块组、第二组块组的顺序组成块组编码结构。
2、如权利要求1所述的视频信号编码中块组编码结构,其特征在于,所说的原始块组产生方法为:对于逐行扫描的原始图像,一个连续的M像素×N像素的块组就构成一个原始块组;对于隔行扫描的原始图像,先将时间上相邻的奇场和偶场,或偶场和奇场图像按自然空间位置拼成帧图像,然后在拼成的帧图像中一个连续的M像素×N像素的块组就构成一个原始块组。
3、如权利要求1所述的视频信号编码中块组编码结构,其特征在于,所说的派生块组包括:对原始块组不进行任何抽样得到的连续块组NS,该块组由NS1、NS2、NS3和NS4四个块组成;对原始块组进行水平1/2抽样就得到的水平抽样块组HS,该块组由HS1、HS2、HS3和HS4四个块组成;对原始块组进行垂直1/2抽样就得到的垂直抽样块组VS,该块组由VS1、VS2、VS3和VS4四个块组成;以及对原始块组进行垂直1/2抽样再水平1/2抽样得到的垂直水平抽样块组VHS,该块组由VHS1、VHS2、VHS3和VHS4四个块组成。
4、如权利要求3所述的视频信号编码中块组编码结构,其特征在于,所说的第一组块组和第二组块组均由四种派生块组NS、HS、VS和VHS中任意一种或任意两种派生块组构成。
5、如权利要求3所述的视频信号编码中块组编码结构,其特征在于,所说的第一组块组和第二组块组中有一组组块没有派生组块或两组块组都有派生组块。
6、如权利要求3所述的视频信号编码中块组编码结构,其特征在于,所说的派生块组中块的编码阶段属性为:在派生块组中,如果这个块被其他的已编码块通过插值能够获得比较满意的重建块或者这个块在第二阶段的编码代价值将比在第一阶段的编码代价值小,则这个块留在第二阶段编码,否则在第一阶段编码。
7、如权利要求6所述的视频信号编码中块组编码结构,其特征在于,所说的派生块组中块的编码阶段属性为:
对于NS块组,每个块都在第一阶段编码;
对于HS块组,对于HS块组,将上层两个块中任意一个块和下层两个块中任意一个块放在第一阶段编码,剩下的块放在第二阶段编码;或将四个块中任意三个块放在第一阶段编码,剩下的块放在第二阶段编码;
对于VS块组,将上层两个块或下层两个块放在在第一阶段编码,剩下的两个块放在第二阶段编码,或将四个块中任意三个块放在第一阶段编码,剩下的块放在第二阶段编码;
对于VHS块组,将四个块中任意一个块或任意两个或任意三个块放在第一阶段编码,剩下的块放在第二阶段编码。
8、如权利要求3所述的视频信号编码中块组编码结构,其特征在于,所说的块组编码结构具体包括:
1)NS-HS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组没有任何块组;
2)VS-VHS块组编码结构:第一组块组没有任何块组,第二组块组包括VS块组和VHS块组;
3)NS-VS块组编码结构:第一组块组包括NS块组,第二组块组包括VS块组;
4)HS-VHS块组编码结构:第一组块组包括HS块组,第二组块组包括VHS块组;
5)NS-VHS块组编码结构:第一组块组包括NS块组,第二组块组包括VHS块组;
6)HS-VS块组编码结构:第一组块组包括HS块组,第二组块组包括VS块组;
7)NS-HS-VS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组包括VS块组;
8)NS-HS-VHS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组包括VHS块组;
9)NS-VS-VHS块组编码结构:第一组块组包括NS块组,第二组块组包括VS块组和VHS块组;
10)HS-VS-VHS块组编码结构:第一组块组包括HS块组,第二组块组包括VS块组和VHS块组;
11)NS-HS--VS-VHS块组编码结构:第一组块组包括NS块组和HS块组,第二组块组包括VS块组和VHS块组。
9、一种基于块组结构的自适应分阶段预测编码方法,其特征在于,定义M像素×N像素的块为块组,包括原始块组和派生块组;其中,原始块组为连续的M像素×N像素的块;派生块组为对原始块组进行水平或垂直1/2抽样并重新排列得到的M像素×N像素的块;所说的派生块组按第一组块组、第二组块组的顺序组成块组编码结构;根据派生块组的特征确定块组中块的编码阶段属性;包括编码过程和解码过程:
所说的编码过程,具体包括以下步骤:
1)进行第一阶段编码,包括下列步骤:
(1)从原始图像中获得一个原始块组,作为当前编码块组,根据原始块组进行抽样处理得到四种派生块组;
(2)如果被选定的块组编码结构的第一组块组中没有派生块组,则该编码结构的第一组块组不编码;如果被选定的块组编码结构的第一组块组中存在派生块组,则对该编码结构的第一组块组进行下面编码:
如果被选定的块组编码结构的第一组块组中只存在一种派生块组,首先考虑第一组块组中派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块进行编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;将该派生块组的上层/下层两个块的编码码流作为第一组块组上层/下层块的编码码流,其编码代价值作为第一组块组上层/下层块的编码代价值;然后按同样的方式进行第一组块组下层/上层两个块的编码,并获得第一组块组下层/上层块的编码码流和下层/上层块的编码代价值;最后将上、下层块的编码代价值之和作为第一组块组的编码代价值;
如果被选定的块组编码结构的第一组块组中存在两种派生块组,首先考虑第一组块组中第一种派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块进行编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;然后再考虑第一组块组中第二种派生块组的上层/下层两个块,根据这两个块的编码阶段属性,如果是在第一阶段编码,则对该块编码并计算其编码代价值,如果是在第二阶段编码,则估计该块的编码代价值;最后根据这两种派生块组上层/下层两个块的编码代价值之和,选择编码代价值小的派生块组的上层/下层两个块的编码码流作为第一组块组上层/下层块的编码码流,其编码代价值作为第一组块组上层/下层块的编码代价值;按同样的方式进行第一组块组下层/上层两个块的编码,并获得第一组块组下层/上层块的编码码流和下层/上层块的编码代价值;将上、下层块的编码代价值之和作为第一组块组的编码代价值;
(3)如果被选定的块组编码结构的第二组块组中没有派生块组,该编码结构的第二组块组不编码;如果被选定的块组编码结构的第二组块组中存在派生块组,则按照第(2)步相同的编码过程对该编码结构的第二组块组进行编码,得到第二组块组的编码码流和编码代价值;
(4)当前编码块组的编码码流输出:
如果被选定的块组编码结构中只有一组块组进行了编码,则根据第(2)步或第(3)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;
如果被选定的块组编码结构的两组块组都进行了编码,则比较第(2)步中得到的第一组块组的编码代价值与第(3)步中得到的第二组块组的编码代价值,决定当前编码块组采用哪组块组的编码码流:当第一组块组的编码代价值小,当前编码块组就采用第一组块组的编码码流,根据第(2)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;当第二组块组的编码代价值小,当前编码块组就采用第二组块组的编码码流,根据第(3)步的结果,决定当前编码块组的上、下层采用哪种派生块组类型,再根据派生块组中块的编码阶段属性,输出已经编码块的码流;
(5)对当前编码块组中没有编码的块进行插值获得重建块,并与由编码获得的重建块构成当前编码块组的重建块组;
(6)重复(1)到(5)步骤,直到原始图像中所有的原始块组完成编码,则第一阶段编码完成;在第一阶段编码中所有的重建块组构成了重建帧图像,作为第二阶段编码时的参考帧;
2)进行第二阶段编码,包括下列步骤:
(1)从原始图像中获得一个与第一阶段(1)步相同的原始块组,即当前编码块组,根据原始块组进行抽样处理得到四种派生块组;
(2)以第一阶段编码中所得到的重建帧图像作为第二阶段编码时的参考帧,对当前编码块组中第一阶段没有编码的块进行编码,并得到其重建块;
(3)用编码得到的重建块替代第一阶段编码时通过插值得到的重建块,并且输出编码码流;
(4)重复(1)到(3)步骤,直到原始图像中所有的原始块组完成第二阶段编码,则第二阶段编码完成;
所说的解码过程,具体包括以下步骤:
1)第一阶段解码
(1)首先根据编码码流判断码流的编码结构和要解码的块组类型,如果要解码的块组属于码流的编码结构的第一组块组,则到第(2)步解码;如果要解码的块组属于码流的编码结构的第二组块组,则到第(3)步解码;
(2)码流的编码结构的第一组块组解码:根据编码码流判断上层和下层两个块的派生块组类型,再根据该块的编码阶段属性,决定是否解码:如果该块在第一阶段编码,则该块直接解码并得到解码重建块;如果该块在第二阶段编码,则该块留在第二阶段解码;
(3)码流的编码结构的第二组块组解码:根据编码码流判断上层和下层两个块的派生块组类型,再根据该块的编码阶段属性,决定是否解码:如果该块在第一阶段编码,则该块直接解码并得到解码重建块;如果该块在第二阶段编码,则该块留在第二阶段解码;
(4)根据已经解码的块对第(2)步或第(3)步块组解码中没有解码的块进行插值获得重建块,并与第(2)步或第(3)步中解码得到的重建块构成一个完整的重建块组;
(5)重复第(1)到第(4)的步骤,直到所有块组都被解码,则第一阶段解码完成。在第一阶段解码中所有的重建块组构成了重建帧图像,作为第二阶段解码的参考帧图像;
2)第二阶段解码:
(1)对解码的块组中第一阶段没有解码的块进行解码,以第一阶段得到的解码重建帧图像作为解码参考帧,对这些未解码的块进行解码,并得到解码块的重建块;
(2)用第(1)步的解码重建块替代第一阶段通过插值得到的重建块,这样得到最终的解码重建帧,并以此作为解码下一帧的解码参考帧。
10、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块组,即M等于32,N等于32,原始块组定义原始宏块组,派生块组定义为派生宏块组;
所说的编码结构采用NS-HS-VS-VHS编码结构,其中派生宏块组中宏块的编码阶段属性如下:
对于NS宏块组,每个宏块都必须在第一阶段编码;
对于HS宏块组,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块组,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块组,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
11、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块组,即M等于32,N等于32,原始块组定义原始宏块组,派生块组定义为派生宏块组;
所说的编码结构采用NS-HS-VS编码结构,其中派生宏块组中宏块的编码阶段属性如下:
对于NS宏块组,每个宏块都必须在第一阶段编码;
对于HS宏块组,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块组,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块组,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
12、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块组,即M等于32,N等于32,原始块组定义原始宏块组,派生块组定义为派生宏块组;
所说的编码结构采用NS-VS编码类型,其中派生宏块组中宏块的编码阶段属性如下:
对于NS宏块组,每个宏块都必须在第一阶段编码;
对于HS宏块组,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块组,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块组,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
13、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块,即M等于16,N等于16,原始块组定义原始宏块,派生块组定义为派生宏块;
所说的编码结构采用NS-HS-VS-VHS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块,每个块都必须在第一阶段编码;
对于HS宏块,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
14、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块,即M等于16,N等于16,原始块组定义原始宏块,派生块组定义为派生宏块;
所说的编码结构采用NS-HS-VS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块,每个块都必须在第一阶段编码;
对于HS宏块,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码;
15、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块,即M等于16,N等于16,原始块组定义原始宏块,派生块组定义为派生宏块;
所说的编码结构采用NS-VS编码类型,其中派生宏块中块的编码阶段属性如下:
对于NS宏块,每个块都必须在第一阶段编码;
对于HS宏块,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块,VHS1和VHS2放在第一阶段编码,VHS3和VHS4放在第二阶段编码。
16、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块对,即M等于16,N等于32,原始块组定义原始宏块对,派生块组定义为派生宏块对;
所说的编码结构采用NS-VS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块对,每个块都必须在第一阶段编码;
对于HS宏块对,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块对,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块对,VHS1和VHS3放在第一阶段编码,VHS2和VHS4放在第二阶段编码。
17、如权利要求9所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的M像素×N像素的块组定义为宏块对,即M等于32,N等于16,原始块组定义原始宏块对,派生块组定义为派生宏块对;
所说的编码结构采用NS-HS编码结构,其中派生宏块中块的编码阶段属性如下:
对于NS宏块对,每个块都必须在第一阶段编码;
对于HS宏块对,HS1和HS3在第一阶段编码,HS2和HS4在第二阶段编码;
对于VS宏块对,VS1和VS2在第一阶段编码,VS3和VS4在第二阶段编码;
对于VHS宏块对,VHS1和VHS4放在第一阶段编码,VHS2和VHS3放在第二阶段编码。
18、如权利要求9、10、11、12、13、14、15、16或17所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的第二阶段编码时的参考帧还包括第一阶段块编码时使用的参考帧,所说的第二阶段解码时的参考帧还包括第一阶段块解码时使用的参考帧。
19、如权利要求9、10、11、12、13、14、15、16或17所述的基于块组结构的自适应分阶段预测编码方法,其特征在于,所说的第二阶段编码时的参考帧包括由第一阶段块编码时使用的参考帧和经第一阶段编码后得到的重建参考帧相结合构成的参考帧,所说的第二阶段解码时的参考帧包括由第一阶段块解码时使用的参考帧和经第一阶段解码后得到的重建参考帧相结合构成的参考帧。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03156540 CN1265647C (zh) | 2003-09-08 | 2003-09-08 | 块组编码结构及基于块组结构的自适应分阶段预测编码方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 03156540 CN1265647C (zh) | 2003-09-08 | 2003-09-08 | 块组编码结构及基于块组结构的自适应分阶段预测编码方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1494325A true CN1494325A (zh) | 2004-05-05 |
CN1265647C CN1265647C (zh) | 2006-07-19 |
Family
ID=34240836
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 03156540 Expired - Fee Related CN1265647C (zh) | 2003-09-08 | 2003-09-08 | 块组编码结构及基于块组结构的自适应分阶段预测编码方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN1265647C (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170566A (zh) * | 2010-02-24 | 2011-08-31 | 索尼公司 | 发送装置和方法、接收装置和方法、及信号传输系统 |
CN102801949A (zh) * | 2011-05-26 | 2012-11-28 | 索尼公司 | 信号发送装置和方法、信号接收装置和方法及信号传送系统 |
CN102821305A (zh) * | 2011-06-06 | 2012-12-12 | 索尼公司 | 信号发送/接收设备和方法以及信号传输系统 |
-
2003
- 2003-09-08 CN CN 03156540 patent/CN1265647C/zh not_active Expired - Fee Related
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102170566A (zh) * | 2010-02-24 | 2011-08-31 | 索尼公司 | 发送装置和方法、接收装置和方法、及信号传输系统 |
CN102801949A (zh) * | 2011-05-26 | 2012-11-28 | 索尼公司 | 信号发送装置和方法、信号接收装置和方法及信号传送系统 |
CN102821305A (zh) * | 2011-06-06 | 2012-12-12 | 索尼公司 | 信号发送/接收设备和方法以及信号传输系统 |
Also Published As
Publication number | Publication date |
---|---|
CN1265647C (zh) | 2006-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1206864C (zh) | 结合率失真优化的码率控制的方法及其装置 | |
CN1260979C (zh) | 图像处理装置及系统、解码装置、编码装置及编码方法 | |
CN1172532C (zh) | 图像预测编码/解码装置和方法以及记录媒体 | |
CN1217546C (zh) | 图像编码装置 | |
CN1320809C (zh) | 图像处理装置与方法 | |
CN1196319C (zh) | 图象解码装置和图象解码方法 | |
CN1993993A (zh) | 图像处理设备、其程序、及其方法 | |
CN1204753C (zh) | 基于相邻像素预测的帧内预测方法 | |
CN1846437A (zh) | 为隔行扫描和逐行扫描视频编码和解码宏块和运动信息中的革新 | |
CN1213935A (zh) | 分层图像编码解码、数字广播信号记录及图像音频的解码 | |
CN1545813A (zh) | 图象编码装置、图象译码装置、图象编码方法、图象译码方法、图象编码程序和图象译码程序 | |
CN1701616A (zh) | 图像信息编码装置和方法,以及图像信息解码装置和方法 | |
CN1169303C (zh) | 数据处理装置和方法以及记录介质 | |
CN1253013C (zh) | 预测装置、编码装置、逆预测装置、解码装置 | |
CN1229758C (zh) | 正交变换图像的分辨率变换装置和方法 | |
CN1265647C (zh) | 块组编码结构及基于块组结构的自适应分阶段预测编码方法 | |
CN1893655A (zh) | 图像预测编码/解码装置和方法以及记录媒体 | |
CN1170437C (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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20060719 Termination date: 20120908 |