视频码流的宏块级耦合的解码和环路滤波方法和装置的制作方法

文档序号:7954227阅读:216来源:国知局
专利名称:视频码流的宏块级耦合的解码和环路滤波方法和装置的制作方法
技术领域
本发明涉及到视频压缩过程中采用灵活宏块排序(FM0)和任意条带顺序(AS0)技术时 的解码过程,特别是涉及到视频码流的解码和环路滤波的方法和装置。
背景技术
在视频压縮标准(如H.264)中,有许多适用于基于IP的对话应用的关键技术,如多条 带群(slice gro叩)灵活宏块排序(Flexible Macroblock Ordering即FMO)和任意条带顺 序(Abitrary Slice Order即ASO)。采用灵活宏块排序(FMO)技术有利于实现错误隐藏, 提髙视频通信网络的健壮性,在有无序(out of order)传输行为的网络中采用任意条带顺 序技术能更有效地利用网络带宽,减小传输延迟。但采用灵活宏块排序(FMO)和任意条带顺 序(ASO)技术也对解码过程和环路滤波(deblocking filter)的实现(特别是硬件实现) 产生直接影响。
图像按宏块编码的方式
在视频压縮标准中,一幅图像由整数个宏块(macroblock)构成,如图l所示,宏块是16x16 (像素)大小的正方形区域,宏块在图像内的序号(地址)按光栅扫描的顺序编号。
如图1所示,以176x144大小的图像为例, 一幅图像中共包含99((176x144)/(16x16)) 个宏块,宏块的序号依图1中箭头所示方向递增,这种方式即为按光栅扫描顺序编号的方式。 在视频压縮标准中,编码过程和解码过程都是以宏块为单位进行的,很显然,解码后的宏块 仍要按上图1所示的顺序放置才能保证解码图像的正确。
视频码流的结构和顺序描述如下
在视频压縮标准中,原始的图像文件经过编码以后的二进制文件称为码流,码流中信息 的基本组成单位是条带(slice),条带按图2所示的分层结构组织。
在视频码流中, 一幅图像的信息是由几个条带组成,每个条带包括条带头(slice header) 和条带数据(slice data)两部分。其中条带头包含了该条带中所有宏块所共有的信息,而 条带数据是由整数个宏块构成(如图3中包含8个宏块),条带中的宏块放置有两种方式, 分别如图3(a)和图3(b)所示。在图3(a)中,条带内的宏块序号是按自然数递增的,在图3(b) 中,条带内宏块的序号经过某种映射(MAP)操作后,条带内的宏块序号不一定按自然数递增, 即映射后的宏块序号厶,厶,……力不一定按l的步长递增。
环路滤波-
视频压缩标准如H.264, MPEG-1, MPEG-4中,采用基于块的混合编码方法,即预测编码 和变换编码相结合的方法。在编码过程中,宏块被进一步划分成更小的块,块的大小依不同 的视频压缩标准而不同。为了进一步提髙视频压缩的效率,可充分利用视频序列本身的特点, 即相邻像素的空间相关性及相继帧之间的时间相关性。所谓空间相关性指同一幅图像中相邻 像素的彩色值一般是平滑变化的,而时间相关性指视频序列的相继帧通常对应相同的物理场 景,只不过其中的物体可能是移动的。预测编码充分利用了视频序列的时间相关性,当前编 码图像中的图像块可在以前已经编码过的参考图像中搜索最匹配的块,这称为运动估计,当 前块与匹配(预测)块对应像素的差值构成预测误差块。变换编码(如离散余弦变换)则充 分利用了像素之间的空间相关性,在视频压縮标准中,变换编码被应用于预测误差块,变换 编码后的系数经量化后再进行熵编码可得到进一步的压縮。在以上编码过程中,变换编码后 系数的量化会产生一定的编码误差,主要以块效应的形式表现出来。为了减少编码误差,通 常对编码图像采用环路滤波(也称为去块效应滤波,即deblocking filtering)的方法。环 路滤波通常以宏块为单位进行,在滤波过程中要用到当前宏块的相邻的上面宏块和左面宏块 的像素,如图4所示。
在图4中,当前宏块的滤波要用到宏块A和宏块B中的像素,所以当前宏块的滤波必须
在宏块A和宏块B己经完成解码的前提下才能进行,这就要求解码过程按宏块光栅扫描的顺
序进行。当采用多条带群灵活宏块排序(FMO)和任意条带顺序(ASO)时,如果解码过程按条
带在码流中的顺序进行,不能保证按宏块光栅扫描的顺序解码,因此环路滤波只能在一幅图
像的所有宏块解码结束后才能进行。
目前已公开的采用灵活宏块排序(FM0)和任意条带顺序(AS0)时的解码和环路滤波方
法如下
1) 按条带在码流中的顺序解码一幅图像的所有条带并把解码完的宏块存入环路滤波前复原 图像帧/场缓沖存储器;
2) 对环路滤波前复原图像帧/场缓冲存储器中的解码后图像进行宏块级的环路滤波;
3) 重复步骤l)和2),直到视频码流结束。 上述的解码流程图如图5所示。
上述的宏块解码和环路滤波方法所应用的装置示意图如图6所示。整个宏块解码和环路 滤波装置由以下5个模块组成
1.条带头解码模块,用于解码条带头;
2. 宏块解码模块,用于每个宏块的解码;
3. 环路滤波前复原图像帧/场缓冲存储器。由于按条带在码流中的顺序解码条带,不能 实现按宏块光栅扫描顺序的解码,所以解码后的整幅图像的所有宏块在经过环路滤波前要先
暂存在此帧/场缓冲存储器;
4. 环路滤波模块,按光栅扫描的顺序滤波图像中的所有宏块;
5. 图像显示和存储模块,用于环路滤波后复原图像的显示和存储。
这些现有技术的相关资料有[TU-T(国际电信联盟)的视频编码专家组VCEG( video coding experts group)和ISO/IEC(国际标准化组织)的运动图像专家组MPEG (moving picture experts group)共同组建的联合视频组(Joint Video Team)参考软件JM85版本。
从图5中可看出,环路滤波过程是在一幅图像解码全部结束后进行的,因此解码后的整 幅图像必须先放在缓冲区内,然后再从缓冲区中取出进行环路滤波,这需要很大的缓冲存储 空间以及很多的时钟周期数,因此这种方法大大增加了解码到环路滤波的延迟和实现成本。

发明内容
本发明的目的在于提供一种视频码流的宏块级耦合的解码和环路滤波方法和装置,以减 少解码到环路滤波的延迟和实现成本。为达上述目的,本发明采用如下技术方案
一种视频码流的宏块级耦合的解码和环路滤波方法,包括解码和环路滤波步骤,所述其 解码步骤中按宏块光栅扫描的顺序进行的,并暂存当前宏块的滤波用到上面宏块和左面宏块 的相关像素,所述环路滤波步骤中利用暂存的相关像素对当前宏块进行环路滤波,直到当前 图像解码结束。
其中,所述解码和环路滤波具体包括以下步骤
1) 读取输入码流中当前图像的所有条带信息并暂存;
2) 初始化当前解码宏块的指数i=0;
3) 找到当前解码宏块i所属条带后解码该宏块i;
4) 对宏块i进行环路滤波;
5) 宏块指数i递增l;
6) 判断当前图像解码是否结束,若结束则顺序执行以下步骤,否则跳到步骤3);
7) 判断视频码流是否结束,若结束则解码全部完成,否则跳到步骤1)进行下一幅图像 的解码。
一种视频码流的宏块级耦合的解码和环路滤波装置,包括
序列参数集存储模块,用于存储从码流中读出的序列参数集; 图像参数集存储模块,用于存储从码流中读出的图像参数集;
整幅图像的所有条带头信息缓存模块,用于存储读出的一幅图像中的所有条带头内容; 整幅图像的所有条带数据缓存模块,用于存储读出的一幅图像中的所有条带数据内容; 解码控制模块,其输入端与序列参数集存储模块、图像参数集存储模块和整幅图像的所
有条带头信息缓存模块相连,接受这三个模块的信息,用来控制整个解码流程,判定哪个条
带是按光栅扫描顺序递增的当前解码宏块所在的条带,并判定一幅图像的解码是否结束;
宏块读取模块,其输入端与解码控制模块和条带数据缓存模块相连,根据解码控制模块
提供的信息,从条带数据缓存模块的相应的条带中读出当前解码宏块的数据;
宏块解码和环路滤波模块,其输入端与宏块读取模块相连,接受宏块读取模块提供的数
据,实现宏块解码及环路滤波的功能;
图像显示或存储模块,显示或存储解码和环路滤波后的复原图像内容。 作为本发明装置的一种优先方式,所述解码控制模块包括以下单元
条带中第一宏块与0比较单元,其输入端与条带头信息缓存模块相连,其输出端与宏块 读取模块相连,用来确定条带中第一宏块等于0的条带,并指示宏块读取模块从此条带中读 取宏块数据;
映射存储和宏块所在条带判别单元,其输入端与条带头信息缓存模块相连,其输出端与 宏块读取模块相连,用于存储宏块到条带群的映射信息并计算每个宏块所在的条带群数,根 据这些信息判别出宏块i所在的条带,并指示宏块读取模块从此条带中读取宏块数据;
当前图像已解码宏块数与宏块总数比较单元,用于判定一幅图像的解码是否已经全部结束。
本发明提出的视频码流的宏块级耦合的解码和环路滤波方法和装置,适用于灵活宏块排 序和任意条带顺序机制的视频压縮码流的解码和环路滤波。它不需要在一幅图像全部宏块解 码结束后再进行环路滤波,而是在每个宏块解码结束后立即进行环路滤波,解码过程和环路 滤波之间也不需要把整幅图像的宏块暂存到缓冲区,避免了暂存和再读取所需要的时间和计 算。其解码过程是按宏块光栅扫描的顺序进行的,由于当前宏块的滤波用到上面宏块和左面 宏块的有关像素,因此只需要将当前宏块的上面一行宏块和左面一个宏块的相应像素进行暂 存即可,显著减少了缓冲存储器的空间,降低了解码器的实现成本。


图1为现有176x144大小的图像及其16x16大小的宏块和光栅扫描顺序示意图2为现有条带的分层组织结构示意图3为现有条带内宏块的两种放置方式;
图4为现有当前宏块解码需用到的宏块示意图5为现有解码和环路滤波方法的流程图6为现有解码和环路滤波装置示意图7为本发明的宏块级耦合的解码和环路滤波方法的流程图8为本发明的宏块级耦合的解码和环路滤波方法所应用的装置示意图9为现有两种不同的色度亚采样格式;
图10为本发明实施例当前宏块解码需用到的部分宏块的示意图; 图11为本发明实施例宏块级耦合的解码和环路滤波方法的流程图; 图12为本发明实施例宏块级耦合的解码和环路滤波装置示意具体实施例方式
如图7所示, 一种视频码流的宏块级耦合的解码和环路滤波方法,包括以下步骤
1) 读取输入码流中当前图像的所有条带信息并暂存;
2) 初始化当前解码宏块的指数i=0;
3) 找到当前解码宏块i所属条带后解码该宏块i;
4) 对宏块i进行环路滤波;
5) 宏块指数i递增l;
6) 判断当前图像解码是否结束,若结束则顺序执行以下步骤,否则跳到步骤3);
7) 判断视频码流是否结束,若结束则解码全部完成,否则跳到步骤1)进行下一幅图像 的解码。
如图8所示, 一种视频码流的宏块级耦合的解码和环路滤波装置,包括
序列参数集存储模块,用于存储从码流中读出的序列参数集; 图像参数集存储模块,用于存储从码流中读出的图像参数集;
整幅图像的所有条带头信息缓存模块,用于存储读出的一幅图像中的所有条带头内容; 整幅图像的所有条带数据缓存模块,用于存储读出的一幅图像中的所有条带数据内容; 解码控制模块,其输入端与序列参数集存储模块、图像参数集存储模块和整幅图像的所 有条带头信息缓存模块相连,接受这三个模块的信息,用来控制整个解码流程,其主要功能
之一是判定哪个条带是按光栅扫描顺序递增的当前解码宏块所在的条带,其主要功能之二是 判定一幅图像的解码是否结束,以及其他对解码过程进行控制的功能;
宏块读取模块,其输入端与解码控制模块和条带数据缓存模块相连,根据解码控制模块 提供的信息,从条带数据缓存模块的相应的条带中读出当前解码宏块的数据;
宏块解码和环路滤波模块,其输入端与宏块读取模块相连,接受宏块读取模块提供的数 据,实现宏块解码及环路滤波的功能;
图像显示或存储模块,显示或存储解码和环路滤波后的复原图像内容。
H. 264中实现每个宏块解码后立即滤波的例子
在彩色数字视频图像中,每个像素值由三个分量构成,分别是一个亮度(luma)分量(Y)和 两个色度(chroma)分量(U和V),每个分量通常用8比特(bit) =1字节(byte)表示其具体数 值。由于人类视觉系统对亮度比色度更敏感,所以对色度分量的空间采样率可以小于亮度分 量的空间采样率,采用不同的亮度和色度的空间采样率构成不同的色度亚采样格式,例如对 于两个色度分量,在每行中采用--半的亚采样,即每行中每4个Y样点对应两个U样点和两 个V样点,这称为4: 2: 2格式若对色度分量在水平和垂直方向上都进行一半的亚采样, 即每4个Y样点对应一个U样点和一个V样点,这称为4: 2: 0格式,不同格式的亮度与色 度样点的相对位置如下图9所示。在li264中,以4: 2: O亚采样格式的视频序列为例,对 于每个16x16大小的亮度分量宏块,对应两个8x8大小的色度分量块。采用4: 2: 0格式时, 一整幅图像所占用的存储空间为以176xl44大小的图像为例,对亮度分量,需要176x144 =25344字节的存储空间,对两个色度分量,需要(88x72)x2 = 12672字节的存储空间,所以 总共需38016字节的存储空间。
正如前面所述,在H.264中,解码结束后要进行环路滤波,环路滤波是以宏块为单位进 行的,并且对亮度分量块与两个色度分量块要分别进行滤波。对亮度分量来说,每个宏块的 滤波要用到其上面的宏块中与当前宏块相邻接的四行像素以及左面宏块中与当前宏块相邻接 的四列像素,而对两个色度分量来说,每个8x8块的滤波要用到上面8x8块的两行像素和左 面8x8块的两列像素,如下图10所示。
在实现宏块按光栅扫描顺序解码后,环路滤波可在每个宏块解码结束后立即进行,由于 宏块滤波要用到相邻的上面宏块与左面宏块的像素,所以对亮度分量来说,需要存储当前解 码宏块的上面一行宏块的四行像素和左面一个宏块的四列像素,而对两个8x8的色度分量块 来说,需要存储当前解码块的上面一行块的两行像素和左面一个块的两列像素。以176 x 144 大小的图像为例,对亮度分量,需要176x4+16x4=704+64=768字节的存储空间,对两个
色度分量,需要(88x2 + 8x2)x2 = 384字节的存储空间,所以总共需1152字节的存储空间,这
些内容放在环路滤波暂存器中。
如前所述,在视频压縮标准中,当前块与经过运动估计后的预测块的差值形成预测误差
块,为了进一步去除像素之间的空间相关性,预测误差块还要经过变换编码和量化,量化后
的系数通过熵编码进一步提高压縮效率。在H.264中,有两种可选择的熵编码方法,分别是
基于上下文的可变长编码CAVLC(context-adaptive variable-length coding)以及基于上下
文的二进制算术编码CABAC (context-adative binary arithmetic coding)。对于CABAC编
码方式来说,上下文的信息对不同的条带来说是不同的,而同一条带内前一宏块解码结束后
要将上下文信息(context model)传送到下一宏块,所以在采用CABAC编码方式时,需要将
每一个条带内的上下文信息保存,在当前解码宏块与下一个解码宏块位于不同条带时,即需
要条带切换时,对应每个条带的上下文信息也必须一同进行切换。
在H.264中,每幅图像由一个或几个条带群组成,每个条带群又含有一个或者几个条带。
在同一条带群中,宏块总是以递增(但不一定连续)的宏块序号放置的,而灵活宏块排序(FMO)
是通过宏块到条带群的映射(MAP)操作实现的。H.264码流的内容以语法结构表形式出现,并
具有层次特征,上层语法结构由相应的语法元素组成并可能包含底层的语法结构。如条带数
据(slice data)语法结构包含了 mb_skip_flag等语法元素及macroblock_layer()语法结构,
macroblock—layer ()语法结构规定了宏块中所包含的信息。图像参数集(picture parameter
set)是比264码流中的一个语法结构,它包括一幅图像的所有条带的所有相关信息。在开始
解码条带前,码流中有一个或多个图像参数集传输到并存储在解码器中。 一幅图像使用哪个
图像参数集由条带头语法结构中的语法元素picjarameter—set一id来选择。在图像参数集
(picture parameter set ) 语法结构中包含 num_slice—group—minus—1 和
slice—group—map—type两个语法元素。num—slice—group_minus_l表征了当前图像所使用的
条带群数。当该参数取0时,说明当前图像只有一个条带群,所有的宏块属于这个条带群且
宏块在条带内是以光栅扫描顺序排列的;当该参数大于0时,说明当前图像有多于一个的条
带群且宏块与条带群之间的映射(MAP)形式由参数Slice_group_map__type决定。在H. 264中,
slice—group—raap—type取值范围为{0, 1, 2, 3, 4, 5, 6},每个值对应一种映射方式,即宏
块与条带群之间共有7种映射形式。不同的映射形式对应宏块在条带群内的不同放置。因此
在得到图像参数集语法结构中的num—slice—group—minus—1和slice—group—map—type信息后
就能确定一幅图像所包含的所有宏块与条带群之间的映射关系,也就是说给定宏块按光栅扫 描的序号i之后,在解码条带内容前,就能确定该宏块所属条带群。这些映射的信息放在数
组MbToSliceGro叩Map[]中。另外,条带头语法结构中含有语法元素条带中第一宏块 (first_mb_in—slice ),它给出当前条带中第一个宏块的序号。利用数组 MbToSliceGroupM即[],条带中第一宏块(first—mb_in—slice)以及宏块序号在同一条带群 中总是递增(但不一定连续)的性质,就可以在未解码完的条带中找到包含宏块i的条带。
通过以上说明,宏块级耦合的解码和环路滤波方法的一个实施例描述如下-
1) 读取输入码流中当前图像的所有条带信息并放入条带缓存区中;
2) 初始化每个条带用于CABAC解码的上下文信息并放入条带的上下文信息暂存区中;
3) 初始化当前解码宏块的指数i=0;
4) 在当前图像的所有条带中,找到条带中第一个宏块的序号等于0的条带,跳到步骤6);
5) 在条带缓存区中搜索其第一个宏块的映射(MbToSliceGroupMap[first_mb—in—slice]) 等于宏块i的映射(MbToSliceGro叩Map[i])的非空条带,此条带即为宏块i所在的条带;
6) 从上下文信息暂存区中读取宏块i所在的条带的上下文信息
7) 在宏块i所在的条带中解码宏块i;
8) 对宏块i进行环路滤波;
9) 将宏块i中与后续宏块滤波有关的采样值放入环路滤波暂存器中;
10) 将宏块i所在条带用于CABAC解码的最新上下文信息放入条带的上下文信息暂存区
中;
11) 解码宏块指数i递增l;
12) 判断i是否等于一幅图像包含的总宏块个数,若等于则当前图像解码结束,顺序执 行以下步骤,否则跳到步骤5);
13) 判断视频码流是否结束,若结束则解码全部完成,否则跳到步骤l)进行下一幅图像 的解码。
上述解码和环路滤波实施例的流程图如图11所示
上述宏块级耦合的的解码和环路滤波实施例所应用的装置示意图如图12所示 整个解码和环路滤波装置由以下模块和单元组成 序列参数集存储模块,用于存储从码流中读出的序列参数集; 图像参数集存储模块,用于存储从码流中读出的图像参数集;
整幅图像的所有条带头信息缓存模块,用于存储读出的一幅图像中的所有条带头内容; 整幅图像的所有条带数据缓存模块,用于存储读出的一幅图像中的所有条带数据内容; 解码控制模块,其输入端与序列参数集存储模块、图像参数集存储模块和整輻图像的所
有条带头信息缓存模块相连,接受这三个模块的信息,用来控制整个解码流程。此模块包括 以下单元-
(1) 条带中第一宏块(firstjnb一in—slice)与0比较单元,其输入端与条带头信息缓存 模块相连,其输出端与宏块读取模块相连,用来确定条带中第一宏块(first_mb—in—slice) 等于0的条带,并指示宏块读取模块从此条带中读取宏块数据;
(2) 映射存储和宏块所在条带判别单元,其输入端与条带头信息缓存模块相连,其输出端 与宏块读取模块相连,用于存储宏块到条带群的映射信息并计算每个宏块所在的条带群数, 根据这些信息判别出MbToSliceGro叩Map[firstjnb—in_slice] = MbToSliceGroupMap[i]的条 带,即宏块i所在的条带,并指示宏块读取模块从此条带中读取宏块数据;
(3) 当前图像已解码宏块数与宏块总数比较单元,用来判定一幅图像的解码是否已经全部 结束,从而可以开始解码一幅新的图像。
宏块读取模块,其输入端与解码控制模块和条带数据缓存模块相连,根据解码控制模块 提供的信息,从条带数据缓存模块的相应的条带中读出当前解码宏块的数据; 宏块解码和环路滤波模块,包括以下单元
(1) 宏块解码及环路滤波单元,其输入端与宏块读取模块、环路滤波暂存器单元,条带的 上下文信息暂存单元相连,接受这些模块或单元提供的数据,实现宏块解码及环路滤波的功 能;
(2) 环路滤波暂存器,其输入、输出端均与宏块解码及环路滤波单元相连,当前宏块滤波 结束后,将亮度分量宏块的最后四行和最右边四列及两个色度分量块的最后两行和最右边两 列内容暂存,用于后续宏块的滤波。
(3) 条带的上下文信息初始化单元,其输入端与解码控制模块中的当前图像已解码宏块数 与宏块总数比较单元相连,当一幅新的图像解码开始时,初始化各条带的上下文信息并将其 存入条带的上下文信息暂存单元,即其输出与条带的上下文信息暂存单元相连。
(4) 条带的上下文信息暂存单元,其输入端与宏块解码及环路滤波单元和条带的上下文信 息初始化单元相连,在宏块i解码结束后,暂存宏块i所在条带用于CABAC解码的最新上下 文信息。
图像显示或存储模块,显示或存储解码和环路滤波后的复原图像内容。
权利要求
1、一种视频码流的宏块级耦合的解码和环路滤波方法,包括解码和环路滤波步骤,其特征在于所述其解码步骤中按宏块光栅扫描的顺序进行的,并暂存当前宏块的滤波用到上面宏块和左面宏块的相关像素,所述环路滤波步骤中利用暂存的相关像素对当前宏块进行环路滤波,直到当前图像解码结束。
2、 根据权利要求1所述的视频码流的宏块级耦合的解码和环路滤波方法,其特征在于所述解 码和环路滤波具体包括以下步骤1) 读取输入码流中当前图像的所有条带信息并暂存;2) 初始化当前解码宏块的指数i=0;3) 找到当前解码宏块i所属条带后解码该宏块i;4) 对宏块i进行环路滤波;5) 宏块指数i递增l;6) 判断当前图像解码是否结束,若结束则顺序执行以下步骤,否则跳到步骤3);7) 判断视频码流是否结束,若结束则解码全部完成,否则跳到步骤1)进行下一幅图像 的解码。
3、 根据权利要求1所述的视频码流的宏块级耦合的解码和环路滤波方法,其特征在于当视频码流的熵编码为CABAC时,所述解码和环路滤波具体包括以下步骤-1) 读取输入码流中当前图像的所有条带信息并放入条带缓存区中;2) 初始化每个条带用于CABAC解码的上下文信息并放入条带的上下文信息暂存区中;3) 初始化当前解码宏块的指数i=0;4) 在当前图像的所有条带中,找到条带中第一个宏块的序号等于0的条带,跳到步骤6);5) 在条带缓存区中搜索其第一个宏块的宏块到条带群映射等于宏块i的宏块到条带群映 射的非空条带,此条带即为宏块i所在的条带;6) 从上下文信息暂存区中读取宏块i所在的条带的上下文信息;7) 在宏块i所在的条带中解码宏块i;8) 对宏块i进行环路滤波;9) 将宏块i中与后续宏块滤波有关的采样值放入环路滤波暂存器中;10) 将宏块i所在条带用于CABAC解码的最新上下文信息放入条带的上下文信息暂存区 中;11) 解码宏块指数i递增l;12) 判断i是否等于一幅图像包含的总宏块个数,若等于则当前图像解码结束,顺序执 行以下步骤,否则跳到步骤5);13)判断视频码流是否结束,若结束则解码全部完成,否则跳到步骤l)进行下一幅图像的解码。
4、 一种视频码流的宏块级耦合的解码和环路滤波装置,其特征在于包括 序列参数集存储模块,用于存储从码流中读出的序列参数集;图像参数集存储模块,用于存储从码流中读出的图像参数集;整幅图像的所有条带头信息缓存模块,用于存储读出的一幅图像中的所有条带头内容; 整幅图像的所有条带数据缓存模块,用于存储读出的一幅图像中的所有条带数据内容; 解码控制模块,其输入端与序列参数集存储模块、图像参数集存储模块和整幅图像的所有 条带头信息缓存模块相连,接受这三个模块的信息,用来控制整个解码流程,判定哪个条 带是按光栅扫描顺序递增的当前解码宏块所在的条带,并判定一幅图像的解码是否结束; 宏块读取模块,其输入端与解码控制模块和条带数据缓存模块相连,根据解码控制模块提 供的信息,从条带数据缓存模块的相应的条带中读出当前解码宏块的数据; 宏块解码和环路滤波模块,其输入端与宏块读取模块相连,接受宏块读取模块提供的数据, 实现宏块解码及环路滤波的功能;图像显示或存储模块,显示或存储解码和环路滤波后的复原图像内容。
5、 根据权利要求4所述的视频码流的宏块级耦合的解码和环路滤波装置,其特征在于所述 解码控制模块包括以下单元条带中第一宏块与0比较单元,其输入端与条带头信息缓存模块相连,其输出端与宏块读 取模块相连,用来确定条带中第一宏块等于O的条带,并指示宏块读取模块从此条带中读 取宏块数据;映射存储和宏块所在条带判别单元,其输入端与条带头信息缓存模块相连,其输出端与宏 块读取模块相连,用于存储宏块到条带群的映射信息并计算每个宏块所在的条带群数,根 据这些信息判别出宏块i所在的条带,并指示宏块读取模块从此条带中读取宏块数据; 当前图像已解码宏块数与宏块总数比较单元,用于判定一幅图像的解码是否已经全部结 束。下文信息初始化单元、条带的上下文信息暂存单元,其中宏块解码及环路滤波单元,其输入端与宏块读取模块、环路滤波暂存器单元,条带的上下 文信息暂存单元相連,接受这些模块或单元提供的数据,实现宏块解码及环路滤波的功能; 环路滤波暂存器,其输入、输出端均与宏块解码及环路滤波单元相连,当前宏块滤波结束 后,将亮度分量宏块的最后四行和最右边四列及两个色度分量块的最后两行和最右边两列 内容暂存,用于后续宏块的滤波;条带的上下文信息初始化单元,其输入端与解码控制模块中的当前图像已解码宏块数与宏 块总数比较单元相连,当一幅新的图像解码开始时,初始化各条带的上下文信息并将其存 入条带的上下文信息暂存单元,即其输出与条带的上下文信息暂存单元相连; 条带的上下文信息暂存单元,其输入端与宏块解码及环路滤波单元和条带的上下文信息初 始化单元相连,在宏块i解码结束后,暂存宏块i所在条带用于CABAC解码的最新上下文fe息。
全文摘要
本发明提供一种视频码流的宏块级耦合的解码和环路滤波方法和装置,适用于具有灵活宏块排序和任意条带顺序机制的视频压缩码流的解码和环路滤波,本发明不需要在一幅图像全部宏块解码结束后再进行环路滤波,而是在每个宏块解码结束后立即进行环路滤波,解码过程和环路滤波之间不需要把整幅图像的宏块暂存到缓冲区,也避免了暂存和再读取所需要的时间和计算。在这种宏块级耦合的解码和环路滤波方法和装置中,解码过程是按宏块光栅扫描的顺序进行的,由于当前宏块的滤波用到上面宏块和左面宏块的有关像素,因此只需要将当前宏块的上面一行宏块和左面一个宏块的相应像素进行暂存即可,显著减少了缓冲存储器的空间,降低了解码器的实现成本。
文档编号H04N7/24GK101115195SQ20061002931
公开日2008年1月30日 申请日期2006年7月24日 优先权日2006年7月24日
发明者涛 林, 林争辉, 王淑慧 申请人:同济大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1