CN103167291B - 一种基于结构相似度的立体视频整帧丢失错误隐藏方法 - Google Patents

一种基于结构相似度的立体视频整帧丢失错误隐藏方法 Download PDF

Info

Publication number
CN103167291B
CN103167291B CN201310074764.0A CN201310074764A CN103167291B CN 103167291 B CN103167291 B CN 103167291B CN 201310074764 A CN201310074764 A CN 201310074764A CN 103167291 B CN103167291 B CN 103167291B
Authority
CN
China
Prior art keywords
macro block
pixel
coordinate position
left corner
top left
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.)
Expired - Fee Related
Application number
CN201310074764.0A
Other languages
English (en)
Other versions
CN103167291A (zh
Inventor
蒋刚毅
李晓丹
郁梅
李福翠
邵枫
彭宗举
王晓东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ningbo University
Original Assignee
Ningbo University
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
Application filed by Ningbo University filed Critical Ningbo University
Priority to CN201310074764.0A priority Critical patent/CN103167291B/zh
Publication of CN103167291A publication Critical patent/CN103167291A/zh
Application granted granted Critical
Publication of CN103167291B publication Critical patent/CN103167291B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Image Analysis (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其有效结合了人眼对图像结构信息的主观感知,通过判断丢失帧前一时刻参考图像帧的宏块参考模式,针对丢失帧中不同宏块参考模式的宏块,分别采用运动补偿预测方法或者视差补偿预测方法进行错误恢复,由于充分考虑了传统立体视频的时域相关性和视点间相关性,还重点结合了人眼对图像结构相似度的主观感知,因此不仅能够提高丢失帧恢复的客观质量,而且还能使得丢失帧恢复的主观质量更接近于人眼感知。

Description

一种基于结构相似度的立体视频整帧丢失错误隐藏方法
技术领域
本发明涉及一种立体视频错误隐藏方法,尤其是涉及一种基于结构相似度的立体视频整帧丢失错误隐藏方法。
背景技术
立体视频技术作为一种新的多媒体技术,其用来捕捉真实的世界场景,吸引了越来越多的注意力,可以广泛应用于医学、军事、家庭等方面。立体视频与单视点视频相比,其需要传输更多的数据量,因此其必须采用高效的压缩编码方法进行有效压缩。目前,立体视频压缩编码方法普遍利用时间、空间相关性预测来减少时间域、空域以及视点域的冗余信息,使得视频流对信道的抗误码能力下降,对信道失真越来越敏感。编码在传输的过程中,由于信道噪声和网络拥塞,使得传输时很容易造成比特出错或包丢失,最后导致解码视频质量下降,一旦出现差错,如果不加以控制,则不仅会影响当前帧的正确解码,而且由于立体视频编码采用运动估计、视差估计消除信息冗余,还会影响同一视点以及不同视点以出错帧为参考的后续帧的正确解码,因此必须采用一种行之有效的错误隐藏方法加以控制。
现有的立体视频错误隐藏方法大多针对部分宏块丢失的情况,当一帧图像中部分宏块发生丢失时,不仅可以使用丢失宏块周围正确解码宏块的信息,而且可以使用时域参考帧和视点间参考帧中相同位置的宏块信息进行恢复,恢复的过程基本为将丢失宏块的周围宏块和时域参考帧、视点间参考帧同一位置宏块以及其周围宏块作为候选宏块,选取其运动矢量/视差矢量作为候选矢量,通过边界匹配准则或外边界匹配准则寻找最佳矢量得到恢复宏块,最后使用加权方法得到最终恢复宏块。然而,对于整帧丢失的情况,由于当前丢失帧中没有可用信息使用,因此只能采用时间参考帧或视点间参考帧中的有效信息进行恢复。现有的整帧丢失错误隐藏方法基本都为利用参考帧对丢失帧划分区域,分别采用运动补偿或视差补偿进行恢复。但是,现有的整帧丢失错误隐藏方法没有充分考虑人眼主观感知,因此恢复得到的效果并不理想,仍需进一步改进。
发明内容
本发明所要解决的技术问题是提供一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其充分考虑了人眼对图像结构相似度(structuralsimilarity,SSIM)的主观感知,有效地提高了恢复质量。
本发明解决上述技术问题所采用的技术方案为:一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其特征在于包括以下步骤:
①假设立体视频的右视点sR中t时刻的图像帧为丢失帧,并记为则:将立体视频的右视点sR中已经正确解码的t-1时刻的图像帧记为将立体视频的右视点sR中已经正确解码的t-2时刻的图像帧记为将立体视频的左视点sL中已经正确解码的且与丢失帧对应时刻的图像帧记为将立体视频的左视点sL中已经正确解码的t-1时刻的图像帧记为
②获取中的每个宏块的最佳运动矢量和最佳视差矢量,将中左上角像素点的坐标位置为(x,y)的宏块的最佳运动矢量记为MVxy,将MVxy的水平分量记为MVXxy,将MVxy的垂直分量记为MVYxy,将中左上角像素点的坐标位置为(x,y)的宏块的最佳视差矢量记为DVxy,将DVxy的水平分量记为DVXxy,将DVxy的垂直分量记为DVYxy,其中,1≤x≤(W-15),1≤y≤(H-15),W表示立体视频的左视点和右视点中的图像帧的宽度,H表示立体视频的左视点和右视点中的图像帧的高度;
③计算中的每个像素点与中对应的最佳匹配像素点之间的时域结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点之间的时域结构相似度值记为ssimt(u,v),1≤u≤W,1≤v≤H;
计算中的每个像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点之间的视点间结构相似度值记为ssimm(u,v);
④根据中的每个宏块中的像素点与中对应的最佳匹配像素点之间的时域结构相似度值,计算中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值记为ssimt′(x,y),其中,1≤x≤(W-15),1≤y≤(H-15);
根据中的每个宏块中的像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,计算中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值记为ssimm′(x,y);
⑤根据中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值及中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,确定丢失帧中的每个宏块的宏块参考模式,然后对丢失帧中宏块参考模式为时域参考的宏块采用运动补偿预测方法进行恢复,对丢失帧中宏块参考模式为视点间参考的宏块采用视差补偿预测方法进行恢复,最终得到丢失帧的恢复帧。
所述的步骤③的具体过程为:
③-1、将中坐标位置(u,v)符合下述条件一的所有像素点归为第一类像素点,将中坐标位置(u,v)符合下述条件二的所有像素点归为第二类像素点,条件一:1≤u≤W-8且1≤v≤H-8,条件二:W-9≤u≤W或H-9≤v≤H;
③-2、计算中的每个像素点与中对应的最佳匹配像素点之间的时域结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点之间的时域结构相似度值记为ssimt(u,v),如果中坐标位置为(u,v)的像素点为第一类像素点,则 ssimu ( u , v ) = ( 2 μ c μ r + C 1 ) × ( 2 δ cr + C 2 ) ( μ c 2 + μ r 2 + C 1 ) × ( δ c 2 + δ r 2 + C 2 ) , 如果中坐标位置为(u,v)的像素点为第二类像素点,则ssimt(u,v)=0,其中,1≤u≤W,1≤v≤H,μc表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,μr表示中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,δc表示It-1,sR中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δr表示It-2,sR中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δcr表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值与中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的协方差,C1和C2均为常数;
③-3、计算中的每个像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点之间的视点间结构相似度值记为ssimm(u,v),如果中坐标位置为(u,v)的像素点为第一类像素点,则 ssimm ( u , v ) = ( 2 μ c μ r ′ + C 1 ) × ( 2 δ cr ′ + C 2 ) ( μ c 2 + μ r ′ 2 + C 1 ) × ( δ c 2 + δ r ′ 2 + C 2 ) , 如果It-1,sR中坐标位置为(u,v)的像素点为第二类像素点,则ssimm(u,v)=0,其中,1≤u≤W,1≤v≤H,μr′表示中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,δr′表示中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δcr′表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值与中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的协方差。
所述的步骤③-2和所述的步骤③-3中C1=162.56,C2=58.52。
所述的步骤④的具体过程为:
④-1、将中左上角像素点的横坐标x为(W-15)的所有宏块及左上角像素点的纵坐标y为(H-15)的所有宏块均归为第二类宏块,将中其余的所有宏块归为第一类宏块,其中,1≤x≤(W-15),1≤y≤(H-15);
④-2、计算中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值记为ssimt′(x,y),如果中左上角像素点的坐标位置为(x,y)的宏块为第一类宏块,则 ssimt ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimt ( x + p , y + q ) 256 , 如果中左上角像素点的坐标位置为(x,y)的宏块为第二类宏块,则 ssimt ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimt ( x + p , y + q ) 128 , 其中,1≤x≤(W-15),1≤y≤(H-15),ssimt(x+p,y+q)表示中坐标位置为(x+p,y+q)的像素点与中对应的坐标位置为(x+p+MVXxy,y+q+MVYxy)的最佳匹配像素点之间的时域结构相似度值;
④-3、计算中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值记为ssimm′(x,y),如果中左上角像素点的坐标位置为(x,y)的宏块为第一类宏块,则 ssimm ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimm ( x + p , y + q ) 256 , 如果中左上角像素点的坐标位置为(x,y)的宏块为第二类宏块,则 ssimm ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimm ( x + p , y + q ) 128 , 其中,ssimm(x+p,y+q)表示中坐标位置为(x+p,y+q)的像素点与中对应的坐标位置为(x+p+DVXxy,y+q+DVYxy)的最佳匹配像素点之间的视点间结构相似度值。
所述的步骤⑤的具体过程为:
⑤-1、将中当前正在处理的宏块定义为当前宏块;
⑤-2、假设当前宏块中的左上角像素点的坐标位置为(x,y),其中,1≤x≤(W-15),1≤y≤(H-15);
⑤-3、判断当前宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值ssimt′(x,y)是否大于当前宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值ssimm′(x,y),如果是,则将当前宏块的宏块参考模式确定为时域参考,否则,将当前宏块的宏块参考模式确定为视点间参考;
⑤-4、将当前宏块的宏块参考模式作为丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式,如果丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式为时域参考,则采用运动补偿预测方法对丢失帧中与当前宏块同一坐标位置的宏块进行恢复,如果丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式为视点间参考,则采用视差补偿预测方法对丢失帧中与当前宏块同一坐标位置的宏块进行恢复;
⑤-5、将中下一个待处理的宏块作为当前宏块,然后返回步骤⑤-2继续执行,直至中的所有宏块处理完毕,得到丢失帧的恢复帧。
与现有技术相比,本发明的优点在于:其有效结合了人眼对图像结构信息的主观感知,通过判断丢失帧前一时刻参考图像帧的宏块参考模式,针对丢失帧中不同宏块参考模式的宏块,分别采用运动补偿预测方法或者视差补偿预测方法进行错误恢复,由于充分考虑了传统立体视频的时域相关性和视点间相关性,还重点结合了人眼对图像结构相似度的主观感知,因此不仅能够提高丢失帧恢复的客观质量,而且还能使得丢失帧恢复的主观质量更接近于人眼感知。
附图说明
图1为本发明方法的总体实现框图;
图2a为图像尺寸为720×480的Puppy视频序列图像;
图2b为图像尺寸为640×480的Rena视频序列图像;
图2c为图像尺寸为640×480的Akko视频序列图像;
图2d为图像尺寸为512×384的Door_flowers视频序列图像;
图3a为测试序列Rena在QP=28时的丢失帧正确解码重建时的图像;
图3b为测试序列Rena在QP=28时采用运动矢量外推方法得到的恢复帧与图3a所示的图像之间的帧差图;
图3c为测试序列Rena在QP=28时采用视差矢量补偿方法得到的恢复帧与图3a所示的图像之间的帧差图;
图3d为测试序列Rena在QP=28时采用运动结合视差矢量补偿方法得到的恢复帧与图3a所示的图像之间的帧差图;
图3e为测试序列Rena在QP=28时采用本发明方法得到的恢复帧与图3a所示的图像之间的帧差图;
图4a为测试序列Door_flowers在QP=28时的丢失帧正确解码重建时的图像;
图4b为测试序列Door_flowers在QP=28时采用运动矢量外推方法得到的恢复帧与图4a所示的图像之间的帧差图;
图4c为测试序列Door_flowers在QP=28时采用视差矢量补偿方法得到的恢复帧与图4a所示的图像之间的帧差图;
图4d为测试序列Door_flowers在QP=28时采用运动结合视差矢量补偿方法得到的恢复帧与图4a所示的图像之间的帧差图;
图4e为测试序列Door_flowers在QP=28时采用本发明方法得到的恢复帧与图4a所示的图像之间的帧差图。
具体实施方式
以下结合附图实施例对本发明作进一步详细描述。
本发明提出的一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其总体实现框图如图1所示,其包括以下步骤:
①立体视频分为左视点和右视点两个视点,假设立体视频的右视点sR中t时刻的图像帧为丢失帧,并记为则:将立体视频的右视点sR中已经正确解码的时域方向的t-1时刻的图像帧记为将立体视频的右视点sR中已经正确解码的时域方向的t-2时刻的图像帧记为将立体视频的左视点sL中已经正确解码的且与丢失帧对应时刻即t时刻的图像帧记为将立体视频的左视点sL中已经正确解码的时域方向的t-1时刻的图像帧记为
②采用现有技术获取中的每个宏块的最佳运动矢量和最佳视差矢量,将中左上角像素点的坐标位置为(x,y)的宏块的最佳运动矢量记为MVxy,将MVxy的水平分量记为MVXxy,将MVxy的垂直分量记为MVYxy,将中左上角像素点的坐标位置为(x,y)的宏块的最佳视差矢量记为DVxy,将DVxz的水平分量记为DVXxy,将DVxy的垂直分量记为DVYxy,由于视差矢量通常只有水平方向的位移,因此DVYxy的值取零,其中,1≤x≤(W-15),1≤y≤(H-15),W表示立体视频的左视点和右视点中的图像帧的宽度,H表示立体视频的左视点和右视点中的图像帧的高度。
③计算中的每个像素点与中对应的最佳匹配像素点之间的时域结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点之间的时域结构相似度值记为ssimt(u,v),1≤u≤W,1≤v≤H。
计算中的每个像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点之间的视点间结构相似度值记为ssimm(u,v)。
在此具体实施例中,步骤③的具体过程为:
③-1、将中坐标位置(u,v)符合下述条件一的所有像素点归为第一类像素点,将中坐标位置(u,v)符合下述条件二的所有像素点归为第二类像素点,条件一:1≤u≤W-8且1≤v≤H-8,条件二:W-9≤u≤W或H-9≤v≤H,即将横坐标为W-9≤u≤W且纵坐标为1≤v≤H的所有像素点,及横坐标为1≤u≤W且纵坐标为H-9≤v≤H的所有像素点均归为第二类像素点,也即将中最右侧的八列像素点和最下侧的八行像素点归为第二类像素点,将中其余的所有像素点归为第一类像素点。
③-2、计算中的每个像素点与中对应的最佳匹配像素点之间的时域结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点之间的时域结构相似度值记为ssimt(u,v),如果中坐标位置为(u,v)的像素点为第一类像素点,则 ssimt ( u , v ) = ( 2 μ c μ r + C 1 ) × ( 2 δ cr + C 2 ) ( μ c 2 + μ r 2 + C 1 ) × ( δ c 2 + δ r 2 + C 2 ) , 如果中坐标位置为(u,v)的像素点为第二类像素点,则ssimt(u,v)=0,其中,1≤u≤W,1≤v≤H,μc表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,μr表示中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,δc表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δr表示中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δcr表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值与中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的协方差,C1和C2均为常数。
③-3、计算中的每个像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点之间的视点间结构相似度值记为ssimm(u,v),如果中坐标位置为(u,v)的像素点为第一类像素点,则 ssimm ( u , v ) = ( 2 μ c μ r ′ + C 1 ) × ( 2 δ cr ′ + C 2 ) ( μ c 2 + μ r ′ 2 + C 1 ) × ( δ c 2 + δ r ′ 2 + C 2 ) , 如果中坐标位置为(u,v)的像素点为第二类像素点,则ssimm(u,v)=0,其中,1≤u≤W,1≤v≤H,μr′表示中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,δr′表示中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δcr′表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值与中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的协方差。
上述步骤③-2和步骤③-3中取C1=162.56,C2=58.52。
④根据中的每个宏块中的像素点与中对应的最佳匹配像素点之间的时域结构相似度值,计算中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值记为ssimt′(x,y),其中,1≤x≤(W-15),1≤y≤(H-15)。
根据中的每个宏块中的像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,计算中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值记为ssimm′(x,y)。
在此具体实施例中,步骤④的具体过程为:
④-1、将中左上角像素点的横坐标x为(W-15)的所有宏块及左上角像素点的纵坐标y为(H-15)的所有宏块均归为第二类宏块,即将中最右侧的一列宏块和最下侧的一行宏块归为第二类宏块,将中其余的所有宏块归为第一类宏块,其中,1≤x≤(W-15),1≤y≤(H-15)。
④-2、计算中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值记为ssimt′(x,y),如果中左上角像素点的坐标位置为(x,y)的宏块为第一类宏块,则 ssimt ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimt ( x + p , y + q ) 256 , 如果中左上角像素点的坐标位置为(x,y)的宏块为第二类宏块,则 ssimt ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimt ( x + p , y + q ) 128 , 其中,1≤x≤(W-15),1≤y≤(H-15),ssimt(x+p,y+q)表示中坐标位置为(x+p,y+q)的像素点与中对应的坐标位置为(x+p+MVXxy,y+q+MVYxy)的最佳匹配像素点之间的时域结构相似度值。
④-3、计算中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值记为ssimm′(x,y),如果中左上角像素点的坐标位置为(x,y)的宏块为第一类宏块,则 ssimm ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimm ( x + p , y + q ) 256 , 如果中左上角像素点的坐标位置为(x,y)的宏块为第二类宏块,则 ssimm ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 ssimm ( x + p , y + q ) 128 , 其中,ssimm(x+p,y+q)表示中坐标位置为(x+p,y+q)的像素点与中对应的坐标位置为(x+p+DVXxy,y+q+DVYxy)的最佳匹配像素点之间的视点间结构相似度值。
⑤根据中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值及中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,确定丢失帧中的每个宏块的宏块参考模式,然后对丢失帧中宏块参考模式为时域参考的宏块采用现有的运动补偿预测方法进行恢复,对丢失帧中宏块参考模式为视点间参考的宏块采用现有的视差补偿预测方法进行恢复,最终得到丢失帧的恢复帧。
在此具体实施例中,步骤⑤的具体过程为:
⑤-1、将中当前正在处理的宏块定义为当前宏块。
⑤-2、假设当前宏块中的左上角像素点的坐标位置为(x,y),其中,1≤x≤(W-15),1≤y≤(H-15)。
⑤-3、判断当前宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值ssimt′(x,y)是否大于当前宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值ssimm′(x,y),如果是,则将当前宏块的宏块参考模式确定为时域参考,否则,将当前宏块的宏块参考模式确定为视点间参考。
⑤-4、将当前宏块的宏块参考模式作为丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式,如果丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式为时域参考,则采用运动补偿预测方法对丢失帧中与当前宏块同一坐标位置的宏块进行恢复,如果丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式为视点间参考,则采用视差补偿预测方法对丢失帧中与当前宏块同一坐标位置的宏块进行恢复。
⑤-5、将中下一个待处理的宏块作为当前宏块,然后返回步骤⑤-2继续执行,直至中的所有宏块处理完毕,得到丢失帧的恢复帧。
为更好地说明本发明方法的有效性和可行性,进行实验,具体如下:
在此,采用了JM测试平台,量化参数QP为23、28、33、38。测试的视频序列如图2a、图2b、图2c和图2d所示,分别为图像尺寸为720×480的Puppy序列,图像尺寸为640×480的Rena、Akko序列,以及图像尺寸为512×384的Door_flowers序列。本实施例中,假设丢失帧发生在右视点,对于图像尺寸为720×480的Puppy序列,丢失帧为第43帧;对于图像尺寸为640×480的Rena、Akko序列,丢失帧分别为第297帧和第11帧;对于图像尺寸为512×384的Door_flowers序列,丢失帧为第104帧。
表1给出了不同测试序列在相同量化参数QP=28情况下,分别采用本发明方法及三种常用对比方法即运动矢量外推法(MVE)、视差补偿预测恢复方法(DCP)和运动结合视差补偿预测的方法(MCP+DCP)的错误隐藏对比结果,同时对比不同测试序列,也给出了本发明方法与三种常用对比方法中在PSNR(峰值信噪比)上效果最好的一种方法之间的增益;表2给出了测试序列Rena在不同QP情况下,分别采用本发明方法及运动矢量外推法(MVE)、视差补偿预测恢复方法(DCP)和运动结合视差补偿预测的方法(MCP+DCP)的错误隐藏对比结果,同时对比不同的QP,也给出了本发明方法与三种常用对比方法中在PSNR(峰值信噪比)上效果最好的一种方法之间的增益。
表1不同测试序列在相同QP=28情况下的错误隐藏结果比较单位:dB
表2同一测试序列Rena在不同QP情况下的错误隐藏结果比较单位:dB
从表1中可以看出,对于不同的立体视频序列,本发明方法比运动矢量外推、视差补偿预测以及运动和视差补偿预测相结合的方法在恢复的丢失帧的PSNR上要提高1.3dB~4.3dB。从表2中可以看出,对于同一序列,在不同的QP下,本发明方法比运动矢量外推、视差补偿预测以及运动和视差补偿预测相结合的方法在恢复的丢失帧的PSNR上要提高1.0dB~3.5dB。这足以说明本发明方法的丢失帧恢复效果明显优于运动矢量外推、视差补偿预测以及运动和视差补偿预测相结合的方法的丢失帧恢复效果。
图3a给出了测试序列Rena在QP=28时的丢失帧正确解码重建时的图像,图3b给出了测试序列Rena在QP=28时采用运动矢量外推方法得到的恢复帧与图3a所示的图像之间的帧差图,图3c给出了测试序列Rena在QP=28时采用视差矢量补偿方法得到的恢复帧与图3a所示的图像之间的帧差图,图3d给出了测试序列Rena在QP=28时采用运动结合视差矢量补偿方法得到的恢复帧与图3a所示的图像之间的帧差图,图3e给出了测试序列Rena在QP=28时采用本发明方法得到的恢复帧与图3a所示的图像之间的帧差图。图4a给出了测试序列Door_flowers在QP=28时的丢失帧正确解码重建时的图像,图4b给出了测试序列Door_flowers在QP=28时采用运动矢量外推方法得到的恢复帧与图4a所示的图像之间的帧差图,图4c给出了测试序列Door_flowers在QP=28时采用视差矢量补偿方法得到的恢复帧与图4a所示的图像之间的帧差图,图4d给出了测试序列Door_flowers在QP=28时采用运动结合视差矢量补偿方法得到的恢复帧与图4a所示的图像之间的帧差图,图4e给出了测试序列Door_flowers在QP=28时采用本发明方法得到的恢复帧与图4a所示的图像之间的帧差图。很明显,从图3e和图4e中可以看出,本发明方法恢复的丢失帧与正确解码重建时的图像之间的差异最小,表明采用本发明方法恢复的丢失帧效果明显优于其他方法。

Claims (5)

1.一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其特征在于包括以下步骤:
①假设立体视频的右视点sR中t时刻的图像帧为丢失帧,并记为则:将立体视频的右视点sR中已经正确解码的t-1时刻的图像帧记为将立体视频的右视点sR中已经正确解码的t-2时刻的图像帧记为将立体视频的左视点sL中已经正确解码的且与丢失帧对应时刻的图像帧记为将立体视频的左视点sL中已经正确解码的t-1时刻的图像帧记为
②获取中的每个宏块的最佳运动矢量和最佳视差矢量,将中左上角像素点的坐标位置为(x,y)的宏块的最佳运动矢量记为MVxy,将MVxy的水平分量记为MVXxy,将MVxy的垂直分量记为MVYxy,将中左上角像素点的坐标位置为(x,y)的宏块的最佳视差矢量记为DVxy,将DVxy的水平分量记为DVXxy,将DVxy的垂直分量记为DVYxy,其中,1≤x≤(W-15),1≤y≤(H-15),W表示立体视频的左视点和右视点中的图像帧的宽度,H表示立体视频的左视点和右视点中的图像帧的高度;
③计算中的每个像素点与中对应的最佳匹配像素点之间的时域结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点之间的时域结构相似度值记为ssimt(u,v),1≤u≤W,1≤v≤H;
计算中的每个像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,假设中坐标位置为(u,v)的像素点所在的宏块的左上角像素点的坐标位置为(x,y),则将中坐标位置为(u,v)的像素点与中对应的坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点之间的视点间结构相似度值记为ssimm(u,v);
④根据中的每个宏块中的像素点与中对应的最佳匹配像素点之间的时域结构相似度值,计算中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值记为ssimt'(x,y),其中,1≤x≤(W-15),1≤y≤(H-15);
根据中的每个宏块中的像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,计算中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,将中左上角像素点的坐标位置为(x,y)的宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值记为ssimm'(x,y);
⑤根据中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值及中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,确定丢失帧中的每个宏块的宏块参考模式,然后对丢失帧中宏块参考模式为时域参考的宏块采用运动补偿预测方法进行恢复,对丢失帧中宏块参考模式为视点间参考的宏块采用视差补偿预测方法进行恢复,最终得到丢失帧的恢复帧。
2.根据权利要求1所述的一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其特征在于所述的步骤③的具体过程为:
③-1、将中坐标位置(u,v)符合下述条件一的所有像素点归为第一类像素点,将中坐标位置(u,v)符合下述条件二的所有像素点归为第二类像素点,条件一:1≤u≤W-8且1≤v≤H-8,条件二:W-9≤u≤W或H-9≤v≤H;
③-2、计算中的每个像素点与中对应的最佳匹配像素点之间的时域结构相似度值,如果中坐标位置为(u,v)的像素点为第一类像素点,则 s s i m t ( u , v ) = ( 2 μ c μ r + C 1 ) × ( 2 δ c r + C 2 ) ( μ c 2 + μ r 2 + C 1 ) × ( δ c 2 + δ r 2 + C 2 ) , 如果中坐标位置为(u,v)的像素点为第二类像素点,则ssimt(u,v)=0,其中,1≤u≤W,1≤v≤H,μc表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,μr表示中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,δc表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δr表示中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δcr表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值与中以坐标位置为(u+MVXxy,v+MVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的协方差,C1和C2均为常数;
③-3、计算中的每个像素点与中对应的最佳匹配像素点之间的视点间结构相似度值,如果中坐标位置为(u,v)的像素点为第一类像素点,则 s s i m m ( u , v ) = ( 2 μ c μ r ′ + C 1 ) × ( 2 δ c r ′ + C 2 ) ( μ c 2 + μ r ′ 2 + C 1 ) × ( δ c 2 + δ r ′ 2 + C 2 ) , 如果中坐标位置为(u,v)的像素点为第二类像素点,则ssimm(u,v)=0,其中,1≤u≤W,1≤v≤H,μr'表示中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的均值,δr'表示中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的方差,δcr'表示中以坐标位置为(u,v)的像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值与中以坐标位置为(u+DVXxy,v+DVYxy)的最佳匹配像素点为左上角像素点且尺寸大小为8×8的图像块中的所有像素点的像素值的协方差。
3.根据权利要求2所述的一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其特征在于所述的步骤③-2和所述的步骤③-3中C1=162.56,C2=58.52。
4.根据权利要求1至3中任一项所述的一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其特征在于所述的步骤④的具体过程为:
④-1、将中左上角像素点的横坐标x为(W-15)的所有宏块及左上角像素点的纵坐标y为(H-15)的所有宏块均归为第二类宏块,将中其余的所有宏块归为第一类宏块,其中,1≤x≤(W-15),1≤y≤(H-15);
④-2、计算中的每个宏块与中对应的最佳匹配宏块之间的时域结构相似度值,如果中左上角像素点的坐标位置为(x,y)的宏块为第一类宏块,则 ssimt ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 s s i m t ( x + p , y + q ) 256 , 如果中左上角像素点的坐标位置为(x,y)的宏块为第二类宏块,则 ssimt ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 s s i m t ( x + p , y + q ) 128 , 其中,1≤x≤(W-15),1≤y≤(H-15),ssimt(x+p,y+q)表示中坐标位置为(x+p,y+q)的像素点与中对应的坐标位置为(x+p+MVXxy,y+q+MVYxy)的最佳匹配像素点之间的时域结构相似度值;
④-3、计算中的每个宏块与中对应的最佳匹配宏块之间的视点间结构相似度值,如果中左上角像素点的坐标位置为(x,y)的宏块为第一类宏块,则 ssimm ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 s s i m t ( x + p , y + q ) 256 , 如果中左上角像素点的坐标位置为(x,y)的宏块为第二类宏块,则 ssimm ′ ( x , y ) = Σ p = 0 , q = 0 p = 15 , q = 15 s s i m m ( x + p , y + q ) 128 , 其中,ssimm(x+p,y+q)表示中坐标位置为(x+p,y+q)的像素点与中对应的坐标位置为(x+p+DVXxy,y+q+DVYxy)的最佳匹配像素点之间的视点间结构相似度值。
5.根据权利要求4所述的一种基于结构相似度的立体视频整帧丢失错误隐藏方法,其特征在于所述的步骤⑤的具体过程为:
⑤-1、将中当前正在处理的宏块定义为当前宏块;
⑤-2、假设当前宏块中的左上角像素点的坐标位置为(x,y),其中,1≤x≤(W-15),1≤y≤(H-15);
⑤-3、判断当前宏块与中对应的左上角像素点的坐标位置为(x+MVXxy,y+MVYxy)的最佳匹配宏块之间的时域结构相似度值ssimt'(x,y)是否大于当前宏块与中对应的左上角像素点的坐标位置为(x+DVXxy,y+DVYxy)的最佳匹配宏块之间的视点间结构相似度值ssimm'(x,y),如果是,则将当前宏块的宏块参考模式确定为时域参考,否则,将当前宏块的宏块参考模式确定为视点间参考;
⑤-4、将当前宏块的宏块参考模式作为丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式,如果丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式为时域参考,则采用运动补偿预测方法对丢失帧中与当前宏块同一坐标位置的宏块进行恢复,如果丢失帧中与当前宏块同一坐标位置的宏块的宏块参考模式为视点间参考,则采用视差补偿预测方法对丢失帧中与当前宏块同一坐标位置的宏块进行恢复;
⑤-5、将中下一个待处理的宏块作为当前宏块,然后返回步骤⑤-2继续执行,直至中的所有宏块处理完毕,得到丢失帧的恢复帧。
CN201310074764.0A 2013-03-08 2013-03-08 一种基于结构相似度的立体视频整帧丢失错误隐藏方法 Expired - Fee Related CN103167291B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310074764.0A CN103167291B (zh) 2013-03-08 2013-03-08 一种基于结构相似度的立体视频整帧丢失错误隐藏方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310074764.0A CN103167291B (zh) 2013-03-08 2013-03-08 一种基于结构相似度的立体视频整帧丢失错误隐藏方法

Publications (2)

Publication Number Publication Date
CN103167291A CN103167291A (zh) 2013-06-19
CN103167291B true CN103167291B (zh) 2016-04-27

Family

ID=48590000

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310074764.0A Expired - Fee Related CN103167291B (zh) 2013-03-08 2013-03-08 一种基于结构相似度的立体视频整帧丢失错误隐藏方法

Country Status (1)

Country Link
CN (1) CN103167291B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9872046B2 (en) 2013-09-06 2018-01-16 Lg Display Co., Ltd. Apparatus and method for recovering spatial motion vector
CN105763882B (zh) * 2016-03-04 2018-12-21 广东顺德中山大学卡内基梅隆大学国际联合研究院 用于解码端的帧内错误隐藏方法及其系统
CN108668135B (zh) * 2018-04-12 2020-08-25 杭州电子科技大学 一种基于人眼感知的立体视频b帧错误隐藏方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102307304A (zh) * 2011-09-16 2012-01-04 北京航空航天大学 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法
CN102572446A (zh) * 2012-01-10 2012-07-11 宁波大学 一种多视点视频整帧丢失错误隐藏方法
CN102595145A (zh) * 2012-03-13 2012-07-18 宁波大学 一种立体视频整帧丢失错误隐藏方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102307304A (zh) * 2011-09-16 2012-01-04 北京航空航天大学 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法
CN102572446A (zh) * 2012-01-10 2012-07-11 宁波大学 一种多视点视频整帧丢失错误隐藏方法
CN102595145A (zh) * 2012-03-13 2012-07-18 宁波大学 一种立体视频整帧丢失错误隐藏方法

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
SLICE ERROR CONCEALMENT BASED ON SIZE-ADAPTIVE SSIM MATCHING AND MOTION VECTOR OUTLIER REJECTION;Hai Gao,et al;《Acoustics,Speech and Signal Processing (ICASSP), 2011 IEEE International Conference on》;20110527;全文 *
立体视频传输中右通道整帧丢失的错误掩盖算法;庞林娟 等;《小型微型计算机系统》;20071031;第28卷(第10期);全文 *

Also Published As

Publication number Publication date
CN103167291A (zh) 2013-06-19

Similar Documents

Publication Publication Date Title
CN102307304B (zh) 基于图像分割的立体视频右图像整帧丢失的错误隐藏方法
CN107027029B (zh) 基于帧率变换的高性能视频编码改进方法
CN102595145B (zh) 一种立体视频整帧丢失错误隐藏方法
CN101668205B (zh) 基于残差宏块自适应下采样立体视频压缩编码方法
CN102510500B (zh) 一种基于深度信息的多视点立体视频错误隐藏方法
CN102158712B (zh) 一种基于视觉的多视点视频信号编码方法
CN104602028B (zh) 一种立体视频b帧整帧丢失错误隐藏方法
CN105306954B (zh) 一种基于视差最小可察觉误差模型的感知立体视频编码
CN103024402B (zh) 一种自由视点视频整帧丢失错误隐藏方法
CN108924568B (zh) 一种基于3d-hevc框架的深度视频错误隐藏方法
CN101355708B (zh) 一种自适应误码掩盖方法
CN103475884B (zh) 面向hbp编码格式的立体视频b帧整帧丢失错误隐藏方法
CN102801997A (zh) 基于感兴趣深度的立体图像压缩方法
CN103167291B (zh) 一种基于结构相似度的立体视频整帧丢失错误隐藏方法
CN107682705A (zh) 基于mv‑hevc框架的立体视频b帧错误隐藏方法
CN108668135B (zh) 一种基于人眼感知的立体视频b帧错误隐藏方法
JPH10191393A (ja) 多視点画像符号化装置
CN106331707B (zh) 基于恰可觉察失真模型的非对称感知视频编码系统及方法
CN103220533A (zh) 一种立体视频宏块丢失错误隐藏方法
KR101348276B1 (ko) 다시점 동영상을 부호화 하는 방법 및 장치
CN103826135B (zh) 基于恰可识别视差错误估计的三维视频深度图编码方法
CN103702120B (zh) 一种合成视点主观失真估计方法
CN109819230A (zh) 一种基于hevc标准的立体三维视频错误隐藏方法
CN114466199A (zh) 一种可适用于vvc编码标准的参考帧生成方法与系统
CN105915886B (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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160427

CF01 Termination of patent right due to non-payment of annual fee