发明内容
本发明的目的是弥补现有技术的至少一个缺点。
为此目的,本发明涉及一种解码代表画面序列的编码数据流的方法,该画面包括其中每一个与至少一个画面数据相关联的像素。
根据本发明的方法包括以下步骤:
-将代表画面数据的流的至少一部分解码为解码数据,以及
-通过考虑到代表序列中的画面之间的亮度变化的至少一个亮度变化模型从解码数据中重构画面数据。
根据一个特定的有利实施例,该方法还包括选择步骤:以这样的方式从至少两个亮度变化模型的集合中选择至少一个亮度变化模型以便使建模误差最小化。
有利地,根据本发明的解码方法特别在局部亮度变化的情形下,可以针对编码数据流的给定比特率,改进重构的画面序列的质量。
根据第一实施例,画面被划分为块,以这样的方式为当前块选择亮度变化模型以便使当前块的邻域像素的之前重构的画面数据与由亮度变化模型滤波的之前重构的参考画面中对应的像素的画面数据之间计算的平均二次误差最小化。
有利地,用于当前块的至少一个亮度变化模型的选择步骤包括用于确定每个亮度变化模型的参数的子步骤和用于根据所述当前块的邻域像素的之前重构的画面数据与由亮度变化模型滤波的之前重构的参考画面中对应的像素的画面数据来选择亮度变化模型的子步骤。
根据特定特征,对应像素是与当前块同位置(colocated)的参考画面块的邻域像素。
根据变型,对应像素是由与当前块相关联的重构的运动矢量识别的、参考画面的参考块的邻域像素。
根据另一特定特征,与当前块相关联的运动矢量的坐标被舍入到整的像素值。
根据另一特定特征,当前块被划分为子块,将亮度变化模型的选择步骤单独地应用于每个子块。
有利地,用于每个子块的对应像素是与当前块相关联的参考块的邻域像素。
根据特定的有利实施例,选择步骤包括用于计算以下和的子步骤:
-被称作第一和的、当前块的邻域像素的之前重构的画面数据的和,
-被称作第二和的、参考画面中对应像素的画面数据的和,
-被称作第三和的、参考画面中对应像素的画面数据的平方和,以及
-被称作第四和的、当前块的邻域像素的之前重构的画面数据和参考画面中的对应像素的画面数据的乘积的和。
根据该同一实施例,根据所述和来确定集合的每个亮度变化模型的参数并且选择亮度变化模型。
本实施例在以下程度上是特别有利的:从所计算的和、在单个步骤中确定每个亮度变化模型的参数并且直接选择模型。
根据特定特征,亮度变化模型的集合包括属于包含以下模型的亮度变化模型的集合的至少两个亮度变化模型:
-加法亮度变化模型,
-乘法亮度变化模型,以及
-1次线性亮度变化模型。
根据特定特征,加法亮度变化模型的参数被计算为第一和与第二和之间的差除以当前块的邻域像素的数目。
根据另一特定特征,乘法亮度变化模型的参数被计算为第四和除以第三和。
有利地,如果Δd为正,则选择乘法亮度变化模型,否则选择加法亮度变化模型, 其中:
-S3是第三和,以及
-S4是第四和,以及
-N是当前块的邻域像素的数目。
根据特定实施例,根据本发明的解码方法包括附加数据(标志)的解码步骤,所述附加数据(标志)为第一块指示是否根据考虑从至少两个亮度变化模型的集合中选择的亮度变化模型的时间预测模式在时间上预测第一块。
根据本发明的另一方面,根据本发明的解码方法包括确定步骤:当根据给定的编码模式(即,预定义的模式)编码第二块时,从与之前重构的邻域块相关联的附加数据的值确定所述第二块的附加数据(标志)。
本发明还涉及一种画面序列的编码方法,序列的每个画面包括其中至少一个画面数据与其每一个相关联的像素。根据本发明的编码方法包括以下步骤:
-考虑到代表序列的图像之间的亮度变化的至少一个亮度变化模型对画面数据进行时间预测的步骤,以及
-对预测的画面数据的编码步骤。
根据本发明的方法包括选择步骤:以这样的方式从至少两个亮度变化模型的集合中选择至少一个亮度变化模型以便使建模误差最小化。
本发明还涉及一种画面序列的编码装置,该序列的每个画面被划分为其中至少一个画面数据与其每一个相关联的像素块,所述装置包括:
-运动估计模块,用于估计用于画面序列的当前块的至少一个运动矢量,
-运动补偿模块,用于从至少一个运动矢量确定当前块的预测块,以及
-编码模块,用于通过考虑代表序列的画面之间的亮度变化的亮度变化模型而对当前块和预测块之间的差进行编码。
该编码装置还包括:选择模块,用于从至少两个亮度变化模型的集合中选择亮度变化模型。
有利地,特别在局部亮度变化的情形下,根据本发明的编码方法、编码装置和解码装置能够针对编码数据流的给定比特率,改进重构的画面序列的质量。
此外,本发明涉及一种用于解码代表画面序列的编码数据流的装置,每个画面被划分为其中至少一个画面数据与其每一个相关联的像素块。根据本发明的解码装置包括:
-解码模块,用于为重构当前块而解码流的至少一个运动矢量和残差数据,
-运动补偿模块,用于从至少一个运动矢量确定预测块,以及
-重构模块,用于通过考虑代表序列的画面之间的亮度变化的亮度变化模型,从预测块和残差数据重构当前块。
该解码装置还包括:选择模块,用于从至少两个亮度变化模块的集合中选择亮度变化模型。
本发明还涉及一种编码画面数据结构或者涉及一种编码画面数据流,其中对序列的码片块的附加数据进行编码,所述附加数据指示根据考虑从至少两个亮度变化模型的集合中选择的亮度变化模型的时间预测模式来编码块。
具体实施方式
表述“亮度变化”在英文术语中还称为“辉度变化”、“光度变化”或者“照度变化”。画面序列是一系列的若干画面。每个画面包括像素或者画面点,其中至少一个画面数据与其每一个相关联。画面数据例如是辉度数据或者色度数据。术语“编码模式”被理解为由视频编码标准授权的一组编码模式。通常,它们可以被归类为帧内(INTRA)模式(即,对与它们相关联的块不实现时间预测而是可能实现空间预测)和帧间(INTER)模式(即,对与它们相关联的块实现时间预测)。
应以最宽泛的含义来理解术语“运动数据”。其包括运动矢量以及可能包括使得在画面序列中能够识别参考画面的参考画面索引。
术语“残差数据”指的是在减去其它数据之后获得的数据。该术语与术语“残差”同义。残差块是残差数据与其相关联的像素块。
术语“预测数据”指的是用于预测其它数据的数据。预测块是预测数据与其相关联的像素块。
例如通过在预测块和当前画面数据块之间逐个像素地求差(differentiate)而获得残差块。
图1示出根据本发明的第一实施例的用于解码代表画面序列的编码数据流F的方法。
在步骤100中,将流F的至少一部分解码为解码数据。步骤100通常是二进制流的熵解码步骤。通常,解码数据包括运动数据、变换的和量化的残差画面数据(即,时间上或者空间上预测的)或者变换和量化的画面数据(即,没有经过预测的)等。根据变型,运动数据不进行解码而是由运动估计步骤进行重构。用于在解码处理期间重构运动数据的该方法被称为“模板匹配”。这种方法在2007年10月20日、中国深圳的第33届meeting of the VCEGgroup of the ITU-T上公开的Steffen Kamp等人的、标题为《Decoder SideMotion Vector Derivation》的文档VCEG-AG16中进行了描述。
在步骤102,从步骤100中解码的数据的至少一部分中、从至少两个亮度变化模型的集合M={Mi}i∈[0;I-1]中选择亮度变化模型Mi。选取的亮度变化模型是使得建模误差最小化的模型。在通过所选择的亮度变化模型将对应数据进行滤波之后,在当前画面Ic的之前重构的画面数据和之前重构的参考画面Ir中的对应数据之间计算该建模误差。建模误差例如是平均二次误差。然而,本发明绝不限于该平均二次误差。根据变型,建模误差是通过所选择的亮度变化模型对对应数据进行滤波之后,在当前画面Ic的之前重构的画面数据和之前重构的参考画面Ir中的对应数据之间计算的SAD(“绝对差之和”的首字母缩写词)。
在步骤104,从步骤102选择的亮度变化模型和在步骤100解码的数据对画面数据,例如像素的辉度值进行重构。从以下等式重构当前画面中的坐标(x,y)的像素的画面数据Ic(x,y):
Ic(x,y)=Mi(Ir(x+mvx,y+mvy))+res(x,y),其中(mvx,mvy)是与当前画面中的坐标(x,y)的像素相关联的运动矢量MV的坐标,其中res(x,y)是与当前画面中的坐标(x,y)的像素相关联的残差数据并且在步骤100中被解码,对其可能已经应用了逆变换和逆量化。
根据图2所图示的第二实施例,画面序列中的画面被划分为像素块。在图2中,当前块Bc位于当前画面Ic中。与该当前块Bc相关联的是指向位于参考画面Ir中的参考块Br的运动矢量MV。当前块Bc的邻域被标注为Nc。邻域Nc包括当前画面Ic中处于当前块Bc的附近但是不一定与该当前块Bc相邻的像素。同样,参考块Br的邻域被标注为Nr。邻域Nr包括参考画面Ir中处于参考块Br的附近但是不一定与该参考块Br相邻的像素。参照图3描述该具体实施例。
在步骤300,将流F的至少一部分解码为解码数据。步骤300与参照图1描述的步骤100相同。
在步骤301,使得能够在模型的集合M={Mi}i∈[0;I-1]中识别亮度变化模型的索引i被初始化为零。集合M的每个模型Mi依赖于一个或者多个参数。
在步骤302,通过对当前块Bc的邻域Nr的像素和参考画面Ir的对应像素之间的平均二次误差(标注为MQE)进行最小化来确定模型Mi的参数
即,
所述对应像素是邻域Nr的像素。根据变型,对应像素是与邻域Nc的像素同位置(co-locate)的像素,即,该参考画面Ir中具有与邻域Nc的像素的坐标的相同坐标的参考画面Ir的像素。在该情形下,
在步骤304,索引i与I-1比较。如果i<I-1,则该方法转向步骤306,否则,转向步骤308。
在步骤306,i递增1并且该方法利用新的亮度变化模型从步骤302开始。
在步骤308,一旦已经确定集合M的所有的亮度变化模型,即,当已经确定它们各自的参数,则选择使平均二次误差最小的模型
在步骤310,根据以下公式,从步骤308选择的亮度变化模型
和从之前重构的参考块Br的画面数据重构当前块Bc的画面数据:
其中(mvx,mvy)是与当前块Bc相关联的运动矢量MV的坐标,并且其中res(x,y)是与当前画面中的坐标(x,y)的像素相关联的残差数据并且在步骤100中被解码,对其可能已经应用了逆变换和逆量化。
根据图4中图示的有利的变型,运动矢量MV的坐标被舍入为像素。该变型可以避免对参考画面中邻域Nr的像素的内插以便确定模型的参数并且选择其中之一。 因此,在步骤302,如下计算模型的参数: 其中rd(.)是舍入函数。
根据另一特定的有利变型,当块Bc被划分为子块时,独立地为块Bc的每个子块而重复步骤300到310。然而,为了补救在该情形下出现的因果性(causality)问题,用于每一子块的邻域Nc和Nr对于所有的子块是相同的,并且是图5中所图示的块Bc和Br的邻域。如同在标准H.264的情形下,在块Bc的重构方法的结束时仅仅对块Bc的子块进行整体重构的情况下,该变型是特别有利的。块Bc是可能被划分为子块的16x16大小的宏块。在时间上预测块Bc的所有子块以生成预测宏块,然后,从流F的一部分重构块Bc的残差数据并将其添加到预测宏块。因此,属于块Bc的块Bc的子块的的邻域像素的画面数据还没有被重构并且因此不能用于确定该子块的亮度变化模型的参数。
根据由图6图示的第三实施例,解码方法包括将流F的至少一部分解码为解码数据的步骤600。步骤600与参照图1描述的步骤100相同。
在步骤601,计算以下4个和:
以及
如果对同一当前块Bc测试若干运动矢量(因此意味着考虑若干集合Nr),则由于和S1不依赖于测试的运动矢量,所以仅仅需要对它计算一次。
在步骤602,从这四个和中确定模型集合M的每个模型Mi的参数
在步骤604,一旦已经确定集合M的所有的模型,即,当已经确定它们各自的参数,则选择使平均二次误差最小的模型
在步骤606,根据以下公式,从步骤308选择的亮度变化模型和从之前重构的参考块Br的画面数据重构当前块Bc的画面数据。 其中(mvx,mvy)是与当前块Bc相关联的运动矢量MV的坐标,并且其中res(x,y)是与当前画面中的坐标(x,y)的像素相关联的残差数据并且在步骤100中被解码,对其可能已经应用了逆变换和逆量化。
参照图7描述第四特定有利实施例。该实施例应用以下情形:其中集合M包括两个亮度变化模型,加法亮度变化模型和乘法亮度变化模型。根据加法模型,当前块Bc的预测数据等于a+Ir(x+mvx,y+mvy),而根据乘法模型,当前块Bc的预测数据等于b*Ir(x+mvx,y+mvy),其中a和b分别是加法模型和乘法模型的参数。
根据本实施例的方法包括将流F的至少一部分解码为解码数据的步骤700。步骤700与参照图1描述的步骤100相同。
在步骤701,计算以下4个和:
以及
如果对同一当前块Bc测试若干运动矢量(因此意味着考虑若干集合Nr),则由于和S1不依赖于测试的运动矢量,所以仅仅需要对它计算一次。
在步骤702,根据以下等式确定两个模型的参数:
其中N是邻域Nc和Nr中每一个的像素的数目,以及
在该步骤702期间,根据以下公式计算加法模型的建模误差和乘法模型的建模误差之间的差Δd:
在步骤704,差Δd与值零进行比较。如果Δd>0,则在步骤706选择乘法模型,否则在步骤708选择加法模型。
如果在解码方法期间对同一当前块Bc测试若干运动矢量MVk(k=0,1,...,M,M>1),则可以根据以下等式直接计算与为该运动矢量选取的模型的每个运动矢量相关联的误差Ek:
-如果选取的模型是加法模型,
-如果选取的模型是乘法模型,
由于和
不依赖于测试的运动矢量,所以仅仅必须对其计算一次并且不用于每个测试的运动矢量。
在步骤710,根据以下公式,从步骤706或708选择的亮度变化模型并且从之前重构的参考块Br的画面数据重构当前块Bc的画面数据: 其中(mvx,mvy)是与当前块Bc相关联的运动矢量MV的坐标。根据变型,本实施例还可应用于集合M包括来自以下模型中的至少两个亮度变化模型的情况:加法亮度变化模型、乘法亮度变化模型,以及当前块Bc的预测数据等于a+Ir(x+mvx,y+mvy)+b的1次(degree 1)的线性亮度变化模型。
根据图8图示的第五特定有利实施例,根据本发明的方法包括将流F的至少一部分解码为解码数据的步骤800。步骤800与参照图1的步骤100相同。然而,在该步骤期间,解码被称作Flag(标志)的附加数据。在变型中,附加数据Flag不是被系统地解码,而是对之前重构的邻域块的某些预定义的编码模式(例如,跳跃(skip)模式或者帧间16x16模式)进行推断。当前块Bc的邻域块包括例如位于当前块的顶部的块以及位于当前块的左侧的块。例如,如果当前块Bc的编码模式是跳跃模式或者帧间16x16模式,则如果位于当前块Bc之上的块的附加数据Flag和位于当前块Bc的左侧的块的附加数据Flag等于FL,则当前块Bc的附加数据Flag等于FL,否则,当前块Bc的附加数据Flag具有FL的不同的值。根据变型,当前块Bc的邻域块包括:例如,当前块的顶部的块、位于当前块的左侧的块以及位于当前块Bc的顶部和左侧的块。
在步骤801,解码或者推断的Flag数据与预定义值FL比较。如果Flag不等于FL,则在步骤802从由流F中解码的数据的至少一部分重构当前块的画面数据。根据步骤802的块Bc的重构是标准的重构步骤,即,不能够实现亮度变化模型的选择步骤。根据特定实施例,FL=0。根据变型,FL=1。
如果Flag等于FL,则在步骤804,根据参照图1至6描述的实施例之一、从解码的数据或者从其至少一部分,从至少两个亮度变化模型的集合M={Mi}i∈[0;I-1]中选择亮度变化模型Mi。
在步骤806,从步骤804选择的亮度变化模型和从步骤800解码的数据重构画面数据,例如,像素的辉度值。从以下等式重构当前块Bc的画面数据Bc(x,y),其中(x,y)代表画面中的像素的坐标:
Bc(x,y)=Mi(Br(x+mvx,y+mvy))+res(x,y),其中(mvx,mvy)是与当前块Bc相关联的运动矢量MV的坐标。
关于亮度变化模型的选择,参照图8描述的实施例可以与参照图1至7描述的任一实施例组合。
本发明还涉及画面序列的编码的方法。参照图9描述第一实施例。
在步骤900中,根据之前参照图1至7描述的解码方法(步骤102、301至308、602至604,或者701至708)的实施例之一,在至少两个亮度模型的集合M中为块Bc选择亮度模型
在步骤902,从之前确定的参考块Br并且从在步骤900中选择的亮度变化模型
为当前块Bc生成预测块Bpred。如下定义被标注为Bpred的预测块:
其中(mvx,mvy)是与当前块Bc相关联的运动矢量MV的坐标。
在步骤904,编码当前块Bc和预测块Bpred之间的像素到像素的差。除了熵编码步骤之外,如果需要,该编码步骤还可能包括变换步骤(例如DCT(离散余弦变换))和量化。
参照图10描述第二实施例。在步骤1000中,为要编码的当前块Bc确定至少一个运动矢量。根据特定实施例,在运动估计步骤1000期间,仅仅考虑加法亮度变化模型,即,对当前块Bc,以这样的方式确定运动矢量和参数a使得当前块Bc与借助于矢量识别的并且由参数a加权的参考画面中的块Br之间的误差Err最小化,即,Err(Bc(x,y),a+Br(x+mvx,y+mvy))。根据变型,考虑集合M的全部的亮度变化模型。在该情形下,对于当前块Bc以及对于集合M的每个亮度变化模型
以这样的方式确定运动矢量MV(mvx,mvy)和参数
的优化的集合以便使当前块Bc与借助于矢量识别的并且由具有相关联的参数集合的模型加权的参考画面中的块Br之间的误差最小化,即,
在步骤1002,从在步骤1000确定的一运动矢量或多个运动矢量以及参考画面Ir确定运动补偿块Br。在该步骤期间,特别在运动矢量MV具有非整数坐标的情形下,画面Ir的像素的内插可能是必须的。
在步骤1004,根据之前参照图1至7描述的解码方法的实施例(步骤102、301至308、602至604,或者701至708)之一,在至少两个亮度变化模型的集合M中为当前块Bc选择亮度变化模型
在步骤1006,以以下方式从在步骤1002中确定的运动补偿块Br(x+mvx,y+mvy)和从在步骤1004中选择的亮度变化模型为当前块Bc生成预测块Bpred:
在步骤1008,通过从当前块Bc中逐个像素地减去预测块Bpred而生成残差块。然后在步骤1010中将该残差块编码为编码数据流F。步骤1008通常实现残差画面数据的变换步骤以及之后的量化步骤。
参照图11描述第三实施例。
在步骤1100,例如根据比特率失真类型准则为当前块Bc确定编码模式。
在步骤1102,确定选择的编码模式是否是帧间模式。如果不是这种情形,则在步骤1104中,根据帧内编码模式,即,在没有时间预测的情况下、如同在标准H.264情形下在可能的空间预测的情况下,来编码块Bc。
如果选择的编码模式是帧间模式,则方法转向步骤1106。然后确定选择的编码模式是否是考虑了亮度变化模型的模式。如果不是这样的情形,则方法转向步骤1108并且根据标准的帧间模式来编码块Bc,即,不通过亮度变化模型对预测块Bpred进行加权。
相反,如果选择的编码模式是考虑了亮度变化模型的模式,则方法转向步骤1110。在步骤1110中,确定模型的集合的每个模型Mi的参数
在步骤1112,一旦已经确定集合M的所有模式,即,当已经确定了它们各自的参数时,选择使平均二次误差最小化的模型
在步骤1114,以以下方式从运动补偿块Br(x+mvx,y+mvy)和从选择的亮度变化模型为当前块Bc生成预测块Bpred:
步骤1112和1114等效于步骤1004。
在步骤1116中,编码当前块Bc,即,可能在变换和量化之后,编码块Bc和通过步骤1112中选择的模型加权的预测块Bpred之间的差。
本发明还涉及参照图12描述的编码装置12。编码装置12接收属于画面序列的输入画面I。每个画面被划分为其中至少一个画面数据与其每一个相关联的像素块。编码装置12特别实现了具有时间预测的编码。在图12中仅仅示出了编码装置12中与时间预测编码或者帧间编码有关的模块。未示出的并且视频编码器领域的技术人员已知的其它模块实现具有或者没有空间预测的帧内编码。编码装置12特别包括计算模块1200,其能够从当前块Bc中逐个像素地减去预测块Bpred以生成残差画面数据块或者被标注为res的残差块。编码装置12还包括模块1202,其能够对残差块res进行变换并且然后将其量化为量化数据。变换T例如是离散余弦变换(或DCT)。编码模块12还包括熵编码模块1204,其能够将量化数据编码为编码数据流F。编码模块12还包括执行模块1202的逆向操作的模块1206。模块1206执行逆量化Q-1以及之后的逆变换T-1。模块1206连接到计算模块1208,计算模块1208能够对来自模块1206的块和预测块Bpred逐个像素地进行相加以生成存储在存储器1210中的重构画面数据块。
编码装置12还包括运动估计模块1212,其能够对块Bc与存储在存储器1210中的参考画面Ir的块之间的至少一个运动矢量进行估计,该画面之前已经被编码并且然后被重构。根据变型,可以在其中存储器1210未连接到运动估计模块1212的情形下,执行当前块Bc和原始参考画面Ic之间的运动估计。根据本领域技术人员公知的方法,运动估计模块以这样的方式针对运动矢量搜索参考画面Ir以便使得当前块Bc与借助于所述运动矢量识别的参考画面Ir中的块之间计算的误差最小化。根据本发明,运动估计模块1212适合于考虑到亮度变化模型。根据特定实施例,运动估计步骤1212仅仅考虑加法亮度变化模型,即,该模块以这样的方式为当前块Bc确定运动矢量和参数a以便使得当前块与借助于运动矢量MV(mvx,mvy)识别的并且由参数a加权的、存储在存储器1210中的参考画面Ir中的块Br之间的误差最小化,即,Err(Bc(x,y),a+Br(x+mvx,y+mvy))。根据变型,运动估计模块1212考虑集合M的所有的亮度变化模型。在该情形下,运动估计模块1212为当前块Bc并且为集合M的每个亮度变化模型Mi,例如以这样的方式确定运动矢量MV(mvx,mvy)和优化的参数
的集合以便使得当前块与借助于矢量识别的并且由具有相关联的参数集合的模型加权的参考画面中的块之间的误差最小化,即,Err(Bc(x,y),Mi(mi,Br(x+mvx,y+mvy)))。运动估计模块1212还能够在不考虑亮度变化模型的情况下确定运动矢量。
通过运动估计模块1212向能够在预定义的编码模式集合中为块Bc选择编码模式的判定模块1214传送利用或者未利用亮度变化模型的加权的运动数据。选取的编码模式例如是使得比特率失真类型准则最小化的编码模式。然而,本发明不限于该选择方法并且可以根据另一准则(例如,先验类型准则)来选择所选取的模式。由判定模块1214选择的编码模式以及在时间预测模式或者帧间模式的情形下运动数据(例如,一运动矢量或者多个运动矢量)被传送给运动补偿模块1216。该运动矢量或者该多个运动矢量以及选择的编码模式被进一步传送给熵编码模块以在流F中编码。从由运动估计模块1212确定的运动矢量以及从由判定模块1214确定的编码模式,运动补偿模块1216接着在之前重构的并且存储在存储器1212中的参考画面Ir中确定预测块Bpred。在具有亮度变化模型辨识的帧间编码模式中由判定模块1214选取的编码模式的情形下,将开关S置于位置S0。
在由判定模块1214选取的编码模式是具有亮度变化模型辨识的帧间编码模式的情形下,将开关S置于位置S1。
如果开关处于位置S1,则通过由选择模块1218从至少两个模型的集合中选择的亮度变化模型对预测块Bpred加权。选择模块1218根据之前与图1至7描述的实施例(步骤102、301至308、602至604,或者701至708)之一,实现亮度变化模型的选择步骤。
模块1200、1202、1204、1206、1210、1214形成被称作编码模块的模块组。编码模块能够通过考虑代表序列中的画面之间的亮度变化的亮度变化模型来编码当前块和预测块之间的差。
本发明还涉及一种参照图13描述的解码装置13。解码装置13在输入端接收代表画面序列的编码数据流F。流F例如由编码装置12传送。解码装置13包括熵解码模块1300,其能够生成例如编码模式的解码数据以及与画面的内容有关的解码数据,即,残差数据。
解码装置13还包括运动数据重构模块。根据第一实施例,运动数据重构模块是对代表所述运动矢量的流F的一部分进行解码的熵解码模块1300。
根据未在图13中示出的变型,运动数据重构模块是运动估计模块。用于通过解码装置13重构运动数据的该解决方案被称为“模板匹配”。
与画面内容有关的解码数据然后被发送给能够执行逆量化以及之后的逆变换的模块1302。模块1302与生成了编码流F的编码模块12的模块1202相同。模块1302连接到计算模块1304,计算模块1304能够对来自模块1302的块和预测块Bpred逐个像素地进行相加以生成存储在存储器1306中的重构画面数据块。解码装置13还包括与编码装置12的模块1216相同的运动补偿模块1308。从运动矢量MV以及由熵解码模块1300解码的当前块Bc的编码模式,运动补偿模块1308接着在之前重构的并且存储在存储器1306中的参考画面Ir中确定预测块Bpred。在解码的编码模式是不具有亮度变化模式辨识的帧间编码模式的情形下,将开关S置于位置S0。
在编码模式是具有亮度变化模型辨识的帧间编码模式的情形下,将开关S置于位置S1。
如果开关处于位置S1,则通过由选择模块1310从至少两个模型的集合中选择的亮度变化模型对预测块Bpred加权。选择模块1310与选择模块1218相同。
模块1302、1304、1306形成被称作重构模块的模块组。重构模块能够通过考虑代表序列中的画面之间的亮度变化的亮度变化模型、从预测块和残差数据来重构当前块。
本发明还涉及一种编码数据流F或者涉及一种编码的画面数据结构,其中为以帧间模式编码的每个块编码附加数据,该附加数据指示是否根据考虑从至少两个亮度变化模型的集合中选择的亮度变化模型的时间预测模式来编码所述块。根据变型,除了根据一个或多个特定的预定义的模式(例如根据跳跃模式或者帧间16x16模式)编码的块之外,对以帧间模式编码的每个块编码该附加的数据。在根据这些特定模式之一编码的块的特定情形下,不在流中显式地编码该附加数据,而是根据这些特定模式之一从编码块的邻域块的附加数据中、在编码装置中推断该附加数据。
明显地,本发明不限于上述的实施例示例。
具体地,本领域技术人员可以对所叙述的实施例进行任何变化并且将它们进行组合以从它们的各种优点中受益。特别地,关于亮度变化模型的选择,参照图8描述的实施例可以与参照图1-7描述的任何实施例进行组合。