著录项信息
专利名称 | 视频编码、解码方法与视频编码、解码装置 |
申请号 | CN200910225201.0 | 申请日期 | 2009-11-16 |
法律状态 | 权利终止 | 申报国家 | 中国 |
公开/公告日 | 2010-06-09 | 公开/公告号 | CN101729898A |
优先权 | 暂无 | 优先权号 | 暂无 |
主分类号 | H04N7/26 | IPC分类号 | H;0;4;N;7;/;2;6查看分类表>
|
申请人 | 中国人民解放军国防科学技术大学 | 申请人地址 | 湖南省长沙市开福区砚瓦池正街47号
变更
专利地址、主体等相关变化,请及时变更,防止失效 |
权利人 | 中国人民解放军国防科学技术大学 | 当前权利人 | 中国人民解放军国防科学技术大学 |
发明人 | 彭伟;卢泽新;张晓哲;孙志刚;吴纯青;虞万荣;莫敦运 |
代理机构 | 北京同立钧成知识产权代理有限公司 | 代理人 | 刘芳 |
摘要
本发明涉及一种视频编码、解码方法与视频编码、解码装置,视频编码方法包括:缓存多个第一关键帧,所述多个第一关键帧分别对应距离当前帧不同时间段的关键帧,每个所述第一关键帧具有一第一索引值;分别以每个所述第一关键帧为参考帧,对原始视频流进行编码,生成多个第一编码视频帧;将所述多个第一编码视频帧进行比较,获取输出视频帧和输出索引值;输出所述输出视频帧和所述输出索引值。本发明提供的视频编码、解码方法与视频编码、解码装置,通过缓存多个第一关键帧,充分利用视频场景中长时间尺度上的相关性,在保证图像质量的情况下,提高了视频数据的压缩比。
1.一种视频编码方法,其特征在于,包括:
缓存多个第一关键帧,所述多个第一关键帧分别对应距离当前帧不同
时间段的关键帧,每个所述第一关键帧具有一第一索引值;
分别以每个所述第一关键帧为参考帧,对原始视频流进行编码,生成多个第一编码视频帧;
将所述多个第一编码视频帧进行比较,获取输出视频帧和输出索引值,所述输出视频帧为压缩比最大的第一编码视频帧,所述输出索引值为作为所述输出视频帧的参考帧的第一关键帧的第一索引值;
当所述输出视频帧的帧类型为关键帧时,将所述多个第一关键帧中不作为所述输出视频帧的参考帧的其中一个第一关键帧,用所述输出视频帧替换;
输出所述输出视频帧和所述输出索引值,并输出被替换的第一关键帧的第一索引值。
2.根据权利要求1所述的视频编码方法,其特征在于,将所述多个第一关键帧中不作为所述输出视频帧的参考帧的其中一个第一关键帧,用所述输出视频帧替换,具体为:
从所述输出视频帧的参考帧以外的多个所述第一关键帧中,选择与所述输出视频帧相似度最大或最小的第一关键帧,作为被所述输出视频帧替换的第一关键帧。
3.根据权利要求1所述的视频编码方法,其特征在于,将所述多个第一关键帧中不作为所述输出视频帧的参考帧的其中一个第一关键帧,用所述输出视频帧替换,具体为:
从所述输出视频帧的参考帧以外的多个所述第一关键帧中,选择使用频度最低的第一关键帧,作为被所述输出视频帧替换的第一关键帧;
其中,所述第一关键帧的使用频度为第一时间内以所述第一关键帧为 参考帧产生的输出视频帧的数目,和所述第一时间内总输出视频帧的数目的比值。
4.根据权利要求1所述的视频编码方法,其特征在于,
若所述输出视频帧的帧类型为关键帧,所述输出视频帧的传输遵循面向连接的可靠传输协议;
所述输出索引值的传输与所述输出视频帧的传输同时进行。
5.一种视频解码方法,其特征在于,包括:
接收输入数据帧,所述输入数据帧至少包括输入视频帧和输入索引值;
从预先缓存的多个第二关键帧确定解码所述输入视频帧的第二关键帧,所述输入索引值与编码所述输入视频帧的第一关键帧和解码所述输入视频帧的第二关键帧存在映射关系,所述多个第二关键帧分别对应距离当前帧不同时间段的关键帧;
以确定的第二关键帧为参考帧,对所述输入视频帧进行解码,得到解码视频流;
当所述输入视频帧的帧类型为关键帧时,用所述输入视频帧替换,所述多个第二关键帧中与所述输入数据帧包括的第三索引值对应的第二关键帧。
6.一种实现如权利要求1-4任一项所述的视频编码方法的视频编码装置,其特征在于,包括:
第一存储模块,缓存多个第一关键帧,所述多个第一关键帧分别对应距离当前帧不同时间段的关键帧,每个所述第一关键帧具有一第一索引值;
编码生成模块,用于分别以每个所述第一关键帧为参考帧,对原始视频流进行编码,生成多个第一编码视频帧;
比较获取模块,用于将所述多个第一编码视频帧进行比较,获取输出 视频帧和输出索引值,所述输出视频帧为压缩比最大的第一编码视频帧,所述输出索引值为作为所述输出视频帧的参考帧的第一关键帧的第一索引值;
第一选择替换模块,用于在所述输出视频帧的帧类型为关键帧时,选择所述多个第一关键帧中不作为所述输出视频帧的参考帧的其中一个第一关键帧,用所述输出视频帧替换;第一输出模块,用于输出所述输出视频帧和所述输出索引值;
第二输出模块,用于输出被所述输出视频帧替换的第一关键帧的第一索引值。
7.一种实现如权利要求5所述的视频解码方法的视频解码装置,其特征在于,包括:
第二存储模块,用于缓存多个第二关键帧,所述多个第二关键帧分别对应距离当前帧不同时间段的关键帧;
接收模块,用于接收输入数据帧,所述输入数据帧至少包括输入视频帧和输入索引值;
确定模块,用于从预先缓存的所述多个第二关键帧确定解码所述输入视频帧的第二关键帧,所述输入索引值与编码所述输入视频帧的第一关键帧和解码所述输入视频帧的第二关键帧存在映射关系;
解码输出模块,用于以确定的第二关键帧为参考帧,对所述输入视频帧进行解码,得到解码视频流;
第二选择替换模块,用于在所述输入视频帧的帧类型为关键帧时,根据所述输入数据帧包含的第三索引值,用输入视频帧替换与所述第三索引值对应的第二关键帧。
视频编码、解码方法与视频编码、解码装置 \n技术领域\n[0001] 本发明涉及一种视频图像压缩编码技术,尤其涉及一种视频编码、解码方法与视频编码、解码装置。 \n背景技术\n[0002] 网络技术和多媒体技术的发展促使在互联网上出现越来越多的流媒体应用。流媒体数据在互联网中的传输比例越来越大,对互联网的传输能力带来了挑战。同时,在无线通信领域,由于无线链路的带宽低,带宽被通信覆盖范围内的通信节点所共享,因而较难满足流媒体对通信带宽的需求。一般具有一定图像质量的视频流往往对传输带宽有较高要求,通常需要64Kbps以上的带宽,这一要求仍然超过许多低速链路的传输能力,例如通用分组无线服务技术(General Packet Radio Service;简称为:GPRS)的理论传输速率是\n171.2Kbps,但目前实际使用中只能达到20~35Kbps的速率,无法满足上述要求。 [0003] 目前,针对传输带宽较小的问题,现有一些提高无线链路上传输性能的方法。例如,在传输速度非常低,而比特差错发生率却非常高的数字通信环境下,通过缓冲可变长度的视频数据使按照国际标准压缩的视频位流与传输信道的状态相适应,以提高视频传输性能。又例如,在传输视频压缩数据的同时,传输与视频压缩数据相对应的控制码,通过对不同种类的画面数据以不同的压缩格式进行压缩,使得传输数据量较小且有较好的画面质量。上述方法主要是从视频数据传输过程来考虑的,而在流媒体应用中,主要是对视频数据进行压缩,以尽可能高的压缩比减小数据量,以解决传输带宽问题。 \n[0004] 目前的视频压缩方法主要是从时间域和空间域两个维度上进行压缩。其 中,大部分视频压缩算法主要是从空间域上对图像进行压缩处理,这种方法通过利用空间域上的冗余信息,来提高视频数据的压缩比,但是未能充分利用时间域上的信息冗余。因此,为了进一步提高无线链路上视频数据的压缩比,有人提出了通过在数据发送端和接收端存储一定量的数据压缩状态信息,利用数据流中存在的重复性减少时间域上信息冗余的有状态压缩编码方法。例如,在网络层次,RFC 4996定义的传输控制协议/因特网互联协议(Transmission Control Protocol/Internet Protocol;简称为:TCP/IP)分组头的压缩方法、RFC 5225定义的实时传送协议(Real-time TransportProtocol;简称为:RTP)、用户数据报协议(User Datagram Protocol;简称为:UDP)等协议分组头的压缩方法属于有状态压缩编码方法,这些方法压缩了分组头中的数据,可与视频数据的压缩方法联合使用。 [0005] 但是,现有的有状态压缩编码方法只是利用了视频数据在短时间尺度上的相关性,并未考虑长时间尺度上的相关性,例如MPEG-2,因此,有状态压缩编码方法有待于改进,以进一步提高视频数据的压缩比,降低视频数据传输对网络带宽的要求,解决在带宽受限的无线网络和互联网中传输高质量的视频数据的问题。 \n发明内容\n[0006] 本发明实施例的目的是提供一种视频编码、解码方法与视频编码、解码装置,以提高视频数据的压缩比,降低视频数据传输对网络带宽的要求。 \n[0007] 为实现上述目的,本发明实施例提供了一种视频编码方法,包括: [0008] 缓存多个第一关键帧,所述多个第一关键帧分别对应距离当前帧不同时间段的关键帧,每个所述第一关键帧具有一第一索引值; \n[0009] 分别以每个所述第一关键帧为参考帧,对原始视频流进行编码,生成多个第一编码视频帧; \n[0010] 将所述多个第一编码视频帧进行比较,获取输出视频帧和输出索引值,所述输出视频帧为压缩比最大的第一编码视频帧,所述输出索引值为作为所述输出视频帧的参考帧的第一关键帧的第一索引值;\n[0011] 当所述输出视频帧的帧类型为关键帧时,将所述多个第一关键帧中不作为所述输出视频帧的参考帧的其中一个第一关键帧,用所述输出视频帧替换; \n[0012] 输出所述输出视频帧和所述输出索引值,并输出被替换的第一关键帧的第一索引值。 \n[0013] 为实现上述目的,本发明实施例提供了一种视频解码方法,包括: [0014] 接收输入数据帧,所述输入数据帧至少包括输入视频帧和输入索引值; [0015] 从预先缓存的多个第二关键帧确定解码所述输入视频帧的第二关键帧,所述输入索引值与编码所述输入视频帧的第一关键帧和解码所述输入视频帧的第二关键帧存在映射关系,所述多个第二关键帧分别对应距离当前帧不同时间段的关键帧 [0016] 以确定的第二关键帧为参考帧,对所述输入视频帧进行解码,得到解码视频流; [0017] 当所述输入视频帧的帧类型为关键帧时,用所述输入视频帧替换,所述多个第二关键帧中与所述输入数据帧包括的第三索引值对应的第二关键帧。 \n[0018] 为实现上述目的,本发明实施例提供了一种视频编码装置,包括: [0019] 第一存储模块,缓存多个第一关键帧,所述多个第一关键帧分别对应距离当前帧不同时间段的关键帧,每个所述第一关键帧具有一第一索引值; \n[0020] 编码生成模块,用于分别以每个所述第一关键帧为参考帧,对原始视频流进行编码,生成多个第一编码视频帧; \n[0021] 比较获取模块,用于将所述多个第一编码视频帧进行比较,获取输出视频帧和输出索引值,所述输出视频帧为压缩比最大的第一编码视频帧,所述输出索引值为作为所述输出视频帧的参考帧的第一关键帧的第一索引值; \n[0022] 第一选择替换模块,用于在所述输出视频帧的帧类型为关键帧时,选择所述多个第一关键帧中不作为所述输出视频帧的参考帧的其中一个第一关键帧,用所述输出视频帧替换; \n[0023] 第一输出模块,用于输出所述输出视频帧和所述输出索引值; [0024] 第二输出模块,用于输出被所述输出视频帧替换的第一关键帧的第一索引值。 [0025] 为实现上述目的,本发明实施例提供了一种视频解码装置,包括: [0026] 第二存储模块,用于缓存多个第二关键帧,所述多个第二关键帧分别对应距离当前帧不同时间段的关键帧; \n[0027] 附图说明\n[0028] 接收模块,用于接收输入数据帧,所述输入数据帧至少包括输入视频帧和输入索引值; \n[0029] 确定模块,用于从预先缓存的所述多个第二关键帧确定解码所述输入视频帧的第二关键帧,所述输入索引值与编码所述输入视频帧的第一关键帧和解码所述输入视频帧的第二关键帧存在映射关系; \n[0030] 解码输出模块,用于以确定的第二关键帧为参考帧,对所述输入视频帧进行解码,得到解码视频流; \n[0031] 第二选择替换模块,用于在所述输入视频帧的帧类型为关键帧时,根据所述输入数据帧包含的第三索引值,用输入视频帧替换与所述第三索引值对应的第二关键帧。 [0032] 由上述技术方案可知,本发明实施例提供的视频编码、解码方法与视频编码、解码装置,通过缓存多个距离当前帧不同时间段的第一关键帧,充分利用了视频场景中长时间尺度上的相关性,在不降低图像质量的情况下,提高了视频数据的压缩比,降低了视频数据传输对网络带宽的要求。 \n[0033] 具体实施方式\n[0034] 图1为本发明一实施例提供的视频编码方法的流程图; \n[0035] 图2为本发明一实施例提供的视频解码方法的流程图; \n[0036] 图3为本发明一实施例提供的视频编码装置的结构示意图; \n[0037] 图4为本发明一实施例提供的视频解码装置的结构示意图; \n[0038] 图5为本发明一实施例提供的视频传输系统的结构示意图。 \n[0039] 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 [0040] 图1为本发明一实施例提供的视频编码方法的流程图,本实施例的执行主体为视频编码装置,更具体的为视频编码装置中的多个编码生成单元,如 图1所示,本实施例提供的视频编码方法包括: \n[0041] 步骤101,缓存多个第一关键帧,多个第一关键帧分别对应距离当前帧不同时间段的关键帧,每个第一关键帧具有一第一索引值; \n[0042] 其中,第一索引值用于标识不同的第一关键帧,有效的第一索引值为一个大于或等于0的整数,例如,可以用编码生成单元的编号作为相应第一关键帧的第一索引值,每个编码生成单元对应一个第一关键帧; \n[0043] 其中,关键帧主要用于视频编码装置的初始化和信道的获取,以及节目的切换和插入,关键帧的压缩倍数相对较低,是后续视频数据压缩的基准。通过合理缓存多个距离当前帧不同时间段的关键帧,可以体现视频数据在长时间尺度上的相关性。 [0044] 步骤102,分别以每个第一关键帧为参考帧,对原始视频流进行编码,生成多个第一编码视频帧; \n[0045] 具体的,每个编码生成单元接收原始视频流,并基于该编码生成单元当前所对应的第一关键帧,对原始视频流进行编码,生成编码后的视频帧,即第一编码视频帧,多个编码生成单元并行对原始视频流进行编码,得到多个第一编码视频帧。 \n[0046] 步骤103,将多个第一编码视频帧进行比较,获取输出视频帧和输出索引值; [0047] 其中,输出视频帧为压缩比最大的第一编码视频帧,输出索引值为作为输出视频帧的参考帧的第一关键帧的第一索引值。 \n[0048] 步骤104,输出输出视频帧和输出索引值。 \n[0049] 本实施例提供的视频编码方法,通过在视频编码装置中缓存多个距离当前帧不同时间段的第一关键帧,并基于多个第一关键帧,同时对输入的原始视频流进行编码,从编码结果中选择压缩比最大的作为输出视频帧,本实施例提供的技术方案充分利用了视频场景中这种长时间尺度上的相关性,在保证图像质量的情况下,提高了视频数据的压缩比,从而降低了视频数据传输对网络带宽的要求。 \n[0050] 下面通过具体的实施例对上述实施例中各个步骤的具体实现过程进行详细的说明。 \n[0051] 具体的,步骤101在缓存多个第一关键帧之前,还包括对视频数据的 采集过程,视频数据可以是通过视频采集设备采集的实时视频流,也可以是从视频文件经过解码得到的视频流。本实施例提供一种完整实现步骤101的方法,具体为: \n[0052] 视频采集设备,例如摄像头,对应用场景进行采集生成实时视频流,将视频流送入视频编码装置中的编码生成单元中,进行编码。由于原始视频流中传送的第一个视频帧必然是关键帧,因此,第一视频帧将被视频编码装置存储起来作为初始的第一关键帧。假如视频编码装置可以存储N个关键帧,则原始视频流中其后的N-1个关键帧也会被存储起来,用于作为后续的第一关键帧,从而完成对第一关键帧的初始化,用于对后续的原始视频流进行编码处理。 \n[0053] 其中,第一关键帧出现的频率是由视频编码装置中的编码生成单元所采用的编码方法决定的,并且多个编码生成单元采用的编码方法可以相同,也可以不同,可以是现有的各种视频压缩编码方法,也可以开发新的视频压缩编码方法,只要与解码装置采用的解码方法相对应即可。例如,当编码生成单元采用MPEG-2编码标准时,则第一关键帧为I帧,视频编码装置存储N个I帧,用于对后续原始视频流进行编码,而非第一关键帧为P帧和B帧。在MPEG-2视频中,一个图象组(Group Of Pictures;简称为:GOP)中包含多个帧,包括I-帧、P-帧和B-帧。其中,第一个编码帧为I帧,I帧是只使用本帧内的视频数据进行编码的视频数据,即只对本帧内的图象块进行DCT变换、量化和熵编码等压缩处理,I-帧采用帧内编码减少了空间域上的冗余;P-帧采用前向估计,B-帧采用双向估计,需要以一个I帧和一个P帧,或者是前后两个P帧为参考帧进行压缩编码,利用相邻帧之间的相关性对图像进行压缩编码,减少时间域上的冗余。在上述技术方案的基础上,步骤102,分别以步骤\n101存储的N个第一关键帧中的一个为参考帧,对原始视频流进行编码,生成多个第一编码视频帧,具体实现过程为: \n[0054] 当视频编码装置接收到原始视频流时,分别送入N个编码生成单元中, 其中,每个编码生成单元对应不同的I帧,即第一关键帧,并基于所对应的I帧对原始视频流进行编码处理,生成第一编码视频帧,第一编码视频帧的帧类型可能是P帧、B帧或者I帧,具体视视频场景的变化和编码方法而定,N个编码生成单元对应生成N个第一编码视频帧 [0055] 其中,编码生成单元对原始视频流进行处理的过程均与MPEG-2编码标准相同。例如,对I帧,基于帧内数据进行编码处理;对P帧,以I帧或P帧作为参考帧对原始视频流进行压缩处理;对B帧,基于一个I帧和一个P帧,或者是前后两个P帧,对原始视频流进行压缩处理。因此,在编码端不仅需要缓存I帧,还需要缓存前后两个P帧,具体的实现依赖于MPEG-2标准的编码过程。由于是本领域很熟知的技术,因此不再赘述。 [0056] 基于上述技术方案,步骤103对步骤102生成的多个第一编码视频帧进行比较,选择压缩比最大的作为输出视频帧,具体的: \n[0057] 本实施例选择第一编码视频帧中字节数最少的作为输出视频帧,同时将产生输出视频帧的编码生成单元对应的第一关键帧的第一索引值作为与输出视频帧对应的输出索引值。例如,输出索引值可以是生成输出视频帧的编码生成单元的编号,其中,获取输出索引值以便于在视频解码端能够正确解码输出视频帧。 \n[0058] 发明人在实现本发明过程中发现,现有技术中,从时间域上对视频流进行压缩时,一般假定视频流由连续多个视频片段组成,每个视频片段的持续时间不长,由时间上相关的图像帧构成,因此,现有方法主要是在短时间尺度上对视频流进行了视频压缩,现有技术并没有考虑长时间尺度上视频数据的相关性。而在一些图像变化不剧烈的场景中,例如视频监控、视频电话、视频会议等,视频流呈现长时间尺度上的相关性。而在实施本发明的过程中,还发现,对同样的原始视频流编码生成的第一编码视频帧,由于作为压缩参考帧的第一关键帧不同,第一编码视频帧的输出字节不同。其中,输出字节数最少的说明压缩比最大,进而说明用于压缩该原始视频流的第一关键帧与 原始视频流的相关性最大,并且具有最大相关性的第一关键帧距离当前帧的时间段并不确定,充分说明本发明技术方案通过利用视频数据在长时间尺度上的相关性,在不降低图像质量的情况下,能够取得更高的视频压缩比,降低视频数据传输对网络带宽的要求。 \n[0059] 在步骤103实现的基础上,通过步骤104将获取的输出视频帧和输出索引值输出。具体地,按照与视频解码装置约定的传输协议,例如可以是面向连接的传输控制协议(Transmission Control Protocol;简称为:TCP)、无连接的用户数据报传输协议(User Datagram Protocol;简称为:UDP),通过传输装置将输出视频帧和输出索引值发送给视频解码装置,其中,传输装置可以是无线网络通信装置,例如GPRS传输模块、无线以太网适配器、卫星通信模块以及无线电台,也可以是有线网络通信装置,如百兆/千兆以太网、电话拨号通信装置等。其中,关键帧和非关键帧具有不同的可靠性要求,具体采用哪种传输协议,根据输出视频帧对可靠性要求的高低而定,例如,I帧可靠性要求最高,P帧次之,B帧最低。当对可靠性要求较高时,可以采用TCP协议,否则可以采用UDP协议。而对于输出索引值,是视频解码装置解码的依据,因此,本实施例中将输出索引值与输出视频帧封装在一起,同时传输给数据目的端。 \n[0060] 采用上述技术方案,可以缓存反映视频场景中长时间尺度上相关性的多个第一关键帧,基于多个第一关键帧同时对同一原始视频流进行编码,从编码结果中选择压缩比最大的作为输出视频帧,充分利用视频场景中这种长时间尺度上的相关性,提高视频数据的压缩比,降低了视频数据传输对网络带宽的要求,同时,上述技术方案并未限制各个编码生成单元采用的编码方法,通过采用与视频环境相适应的编码方法,可以保证图像质量,因此,本实施例提供的视频编码方法,在保证图像质量的情况下,提高了视频数据的压缩比,实现了在带宽受限的无线链路和互联网链路上传输高质量的视频数据。 [0061] 基于上述技术方案,进一步的,当视频场景发生变化时,根据第一关键 帧的定义可知,输出视频帧可能是将在后续的视频编码过程中使用的第一关键帧,即输出视频帧的帧类型是关键帧,本实施例具体指I帧。若输出视频帧的帧类型是关键帧,即I帧时,需要用该输出视频帧替换原有的第一关键帧(I帧)中的一个,以保证用于编码原始视频流的第一关键帧总是距离当前帧最近的、相关性最强的关键帧。具体为,将多个第一关键帧中不作为输出视频帧的参考帧的其中一个第一关键帧,用输出视频帧替换。本实施例提供了两种优选的实现方法,一种是基于相似度,一种是基于使用频度。 \n[0062] 其中,基于相似度的实现方法具体为:除去作为输出视频帧的参考帧的第一关键帧,从剩余的N-1个第一关键帧(I帧)中选择相似度与输出视频帧最大(或最小)的一个,作为被输出视频帧替换的第一关键帧,其中,相似度定义为两幅图像的相似程度,例如,可以通过Waston距离对两幅图像的相似度进行估计。然后,用输出视频帧替换被选择替换的第一关键帧,具体的,将输出视频帧存储到被选择替换的第一关键帧的存储单元中,同时记录被选择替换的第一关键帧的第一索引值,并输出为视频解码端的第三索引值。 [0063] 基于使用频度的实现方法具体为:除去作为输出视频帧的参考帧的第一视频关键帧,从剩余的N-1个第一关键帧(I帧)中选择使用频度最低的一个,作为被输出视频帧替换的第一关键帧,其中,将第一时间内以某一个第一关键帧为参考帧时产生的输出视频帧的个数,与第一时间内产生的总的输出视频帧的个数的比值,称为该第一关键帧的使用频度,每个第一关键帧都有自己的使用频度,其中第一时间可以是从输入原始视频流开始计时的一段时间,也可以是人为设定的一个具体时间段,例如2分钟,本实施例并不对此进行限制,使用者可以结合实际的视频场景和具体的编码方法自行设置。然后,用输出视频帧替换被选择替换的第一关键帧,具体的,将输出视频帧存储到被输出视频帧替换的第一关键帧的存储单元中,同时记录所述被选择替换的第一关键帧的第一索引值,并输出为视频解码端的第三索引值。 \n[0064] 同时,若输出视频帧是后续编码过程将要使用的第一关键帧,则对传输 的可靠性要求较高,不容许丢失,因此可以采用TCP协议进行传输,同样,可以采用TCP协议将被选择替换的第一关键帧的第一索引值和输出视频帧一起传输给数据目的端。 [0065] 当输出视频帧为后续编码过程将要使用的第一关键帧时,采用上述技术方案,可以实现对视频编码装置中存储的多个第一关键帧的更新,使本实施例缓存的总是与当前帧距离最近的、相关性最强的最能体现长时间尺度上的相关性的第一关键帧,保证本实施例提供的视频编码方法,充分利用视频场景中这种长时间尺度上的相关性,提高视频数据的压缩比,从而实现了在带宽受限的无线链路和互联网链路上传输高质量的视频数据。 [0066] 同时,发明人在实现本发明技术方案的过程中发现,本发明提供的技术方案与现有技术中从空间域上对图像进行压缩处理的方法不同,基于空间域的压缩方法一般是,先从图像中提取对象、将图像分块,然后对对象或图像块分别进行压缩编码处理,例如,将图像划分为背景区域和物体区域,根据划分结果,对背景区域和物体区域分别进行不同的压缩编码;或者,在发送端对输入视频数据进行预处理后,将图像分为前景图像和背景图像,对前景图像和背景图像分别进行考虑和调整准峰值(Quasi-Peak Value;简称为:QP值),其中预处理包括运动估计、运动补偿、离散余弦变换(DiscreteCosine Transform;简称为:\nDCT变换)、量化以及熵编码等;又或者,将分块后图像进行并行编码,以提高视频压缩和解码速度。也有方法通过运动预测和补偿处理得到原始视频图像序列的残差,将残差映射到向量空间,然后通过对向量进行多次降维的方法,以求降低数据量。但是,上述方法只是利用了视频数据在空间域上的冗余信息,并未利用时间域上的冗余信息,而本发明的技术方案通过缓存多个距离当前帧不同时间段的关键帧,并结合现有的编码方法,不仅保证了图像质量,充分利用了时间域上的冗余信息,而且充分利用了长时间尺度上的相关性,提高了视频数据的压缩比,降低了视频数据传输对带宽的要求。 \n[0067] 图2为本发明一实施例提供的视频解码方法的流程图,本实施例的执行主体是视频解码装置,如图2所示,本实施例提供的视频解码方法包括: \n[0068] 步骤201,接收输入数据帧,输入数据帧至少包括输入视频帧和输入索引值; [0069] 其中,输入索引值用于标识编码输入视频帧的第一关键帧;输入数据帧是由视频编码端通过网络传输装置传输过来的经过编码后的视频帧。 \n[0070] 步骤202,从预先缓存的多个第二关键帧确定解码输入视频的第二关键帧; [0071] 其中,多个第二关键帧分别对应距离当前帧不同时间段的关键帧,且多个第二关键帧与视频编码装置中缓存的多个第一关键帧相同或者相应,是进行视频解码的基础,每个第二关键帧具有一第二索引值,有效的第二索引值也是大于或者等于零的整数,且第二索引值与视频编码端的第一索引值相应或者相同。例如,可以是视频解码装置中各个解码生成单元的编码号,也可以就是第一索引值,其中,输入索引值与编码输入视频帧的第一关键帧和解码输入视频帧的第二关键帧存在映射关系,即根据输入索引值可以找到与编码输入视频帧的第一关键帧相应的第二关键帧,用来解码输入视频帧。 \n[0072] 步骤203,以确定的第二关键帧为参考帧,对输入视频帧进行解码,得到解码视频流。 \n[0073] 具体的,视频解码装置中包含多个解码生成单元,每个解码生成单元对应一个第二关键帧,并在被选中时,基于对应的第二关键帧对输入视频帧进行解码,生成解码视频流。因此,经步骤202确定用于解码输入视频帧的第二关键帧,即确定了解码生成单元,将输入视频帧送入该解码生成单元中,由解码生成单元基于对应的第二关键帧,通过与视频编码端预先约定的解码方法对输入视频帧进行解码,其解码过程是视频编码端的编码过程的逆过程; \n[0074] 解码后得到的解码视频流可以传送给视频播放装置进行播放,也可以 传送给数据存储装置保存,还可以传送给其他需要该解码视频流的装置。 \n[0075] 采用上述技术方案,通过输入数据帧中的输入索引值,从缓存的多个第二关键帧中确定用于解码输入视频帧的第二关键帧,完成对输入视频帧的解码,本实施例提供的视频解码方法,与本发明实施例提供的视频编码方法相适应,在保证解码后的图像质量的同时,保证了视频编码方法充分发挥其优点,即通过利用视频场景中长时间尺度上的相关性,在保证了图像质量的同时,提高视频数据压缩比。 \n[0076] 基于上述技术方案,当视频编码端的输出视频帧是后续视频编码过程中将要使用的一第一关键帧时,对应于本实施例中的输入视频帧是在后续视频解码过程中将要使用的一第二关键帧,则输入数据帧中还包括一第三索引值,用于标识将要被该输入视频帧替换的第二关键帧。视频解码装置根据接收到的第三索引值,从缓存的多个第二视频关键帧中确定与第三索引值对应的第二关键帧,将输入视频帧存储到与第三索引值对应的第二关键帧的存储单元中,用于解码后续的输入视频帧。 \n[0077] 上述技术方案与本发明实施例提供的视频编码方法相适应,通过输入数据帧中的第三索引值,实现对第二关键帧的更新,使视频解码端缓存的第二关键帧与视频编码端缓存的第一关键帧保持同步,保证来自视频编码端的视频压缩数据能够被正确解码,通过该视频解码方法保证了解码后的图像质量,同时,为本发明实施例提供的视频编码方法实施以及视频编码方法优势的发挥,打下了基础。 \n[0078] 基于上述技术方案的描述,下面实施例对本发明提供的视频编码方法和视频解码方法作进一步的详细描述。 \n[0079] 在以下实施例中,假设视频编码端缓存的第一关键帧的个数为N,对应于视频解码端缓存的第二关键帧的个数也为N。而多个第一关键帧和多个第二关键帧分别对应距离当前帧不同时间段的关键帧,其中,距离当前帧的时间段可以通过各个关键帧之间的时间间隔来体现,所述时间间隔可以相 同,也可以不同,为便于说明本发明的技术方案,以下实施例以所述时间间隔相同为例。 \n[0080] 步骤301,缓存多个第一关键帧Ii(i=1ΛN),且第一关键帧Ii的第一索引值为Vi,假设当前帧为I0,则Ii=I0+i×Δti,其中Δti(i=1ΛN)表示不同第一关键帧之间的时间间隔,可以相同,可以不同。本实施例以多个第一关键帧之间的时间间隔相同为例,则Ii=I0+i×Δt,其中,令Δt1=Λ=ΔtN=Δt,但是本领域技术人员可以理解,关键帧之间的时间间隔与实际视频场景的变化和所采用的编码方法相关。 \n[0081] 步骤302,以第一关键帧Ii为参考帧,对原始视频流进行编码,生成第一编码视频帧CIi; \n[0082] 步骤303,将多个第一编码视频帧CIi进行比较,获取输出视频帧和输出索引值,本实施例假设压缩比最大的第一编码视频帧为CI3,即以第一关键帧I3为参考帧对原始视频流编码,生成的第一编码视频帧,则输出视频帧为CI3,输出索引值为V3; [0083] 步骤305,输出输出视频帧CI3和输出索引值V3。 \n[0084] 具体的,当输出视频帧CI3为第一关键帧时,将会在后续的编码过程中用于对输入的原始视频流进行编码,因此,在步骤303之后,还包括步骤3041,从除去第一关键帧I3外的N-1个第一关键帧Ij(j=1ΛN,j≠3)中选择一个,作为被输出视频帧CI3替换的第一关键帧;其中,选择被替换的第一关键帧的方法可以采用上述实施例中提供的任何一种方法,具体不再赘述,本实施例假设被替换的第一关键帧为I7; \n[0085] 步骤3042,用输出视频帧CI3替换第一关键帧I7,即I7=CI3,并将第一关键帧I7的第一索引值V7输出。其中,通过步骤3041、步骤3042可以使缓存的第一关键帧跟随视频场景进行实时更新,以便视频编码端缓存的第一关键帧时钟是与当前帧最接近的、相关性最大的关键帧,便于本实施 例技术方案充分发挥利用长时间尺度上的相关性的优点。 [0086] 上述输出数据,具体指输出视频帧CI3、输出索引值V3和第一索引值V7通过数据传输网络传送给视频解码端。在视频解码端,具体的: \n[0087] 步骤306,接收输入数据帧,输入数据帧至少包括输入视频帧和输入索引值; [0088] 在本实施例中,输入数据帧为上述输出数据,其中,输入视频帧即输出视频帧CI3,输入索引值即输出索引值V3。 \n[0089] 步骤307,从预先缓存的多个第二关键帧Ji(i=1ΛN)确定,与输入索引值对应的、用于解码输入视频帧的第二关键帧; \n[0090] 假设当前帧为J0,则Ji=J0+i×Δt,即多个第二关键帧分别对应距离当前帧不同时间段的关键帧,且第二关键帧的第二索引值为Wi,第二关键帧与第一关键帧相应或者相同,本实施例以相同为例,即Ii=Ji,Vi=Wi。 \n[0091] 通过上述分析可知,在本实施例中,用于解码输入视频帧的第二关键帧为J3。 [0092] 步骤309,以确定的第二关键帧J3为参考帧,对输入视频帧,即输出视频帧CI3进行解码,得到解码视频流。 \n[0093] 具体的,由于输出视频帧CI3是后续视频编码过程中将要使用的一第一关键帧,对应的输入视频帧是在后续视频解码过程中将要使用的一第二关键帧,因此,本实施例在步骤308、步骤309之间还包括,与步骤3401、步骤3042对应的步骤3081、步骤3082,具体为: [0094] 步骤3081,根据输入数据帧中包括的第三索引值,从多个第二关键帧中确定与第三索引值对应的第二关键帧; \n[0095] 本实施例中,第三索引值即被替换的第一关键帧的第一索引值V7,与第三索引值对应的第二关键帧,即具有与第一索引值V7相等的第二索引值W7的第二关键帧J7。 [0096] 步骤3082,用输入视频帧,即输出视频帧CI3替换第二关键帧J7。 [0097] 上述步骤用于实现视频解码端缓存的第二关键帧与视频编码端缓存的第一关键帧保持同步,以保证对编码后的视频数据正确解码。 \n[0098] 基于上述技术方案,视频编码端与视频解码端在进行视频数据传输之前,可以进行参数协商,例如约定第一视频关键帧的最大数目,即N的值,编码生成单元采用的具体编码方法和编码参数以及传输协议等。 \n[0099] 在本实施例中,步骤301至步骤305用于实现本发明实施例提供的视频编码方法,步骤306至步骤309用于实现本发明实施例提供的视频解码方法,本实施例将视频编码、解码方法结合起来,有利于进一步加深对本发明的技术方案的理解。本实施例提供的技术方案,通过缓存多个距离当前帧不同时间段的关键帧,可以充分利用视频数据中长时间尺度上的相关性,降低时间域上的冗余度,提高视频数据的压缩比,降低视频数据传输对带宽的要求。同时本实施例通过与视频解码端进行参数协商,保证了视频编码端和视频解码端的交互性,有利于本实施例的实施,从而进一步发挥本实施例的优点。 \n[0100] 图3为本发明一实施例提供的视频编码装置的结构示意图,如图3所示,本实施例提供的视频编码装置包括:第一存储模块31、编码生成模块32、比较获取模块33和第一输出模块34。 \n[0101] 其中,第一存储模块31用于缓存多个第一关键帧,其中,多个第一关键帧分别对应距离当前帧不同时间段的关键帧,每个第一关键帧具有一第一索引值,具体的,第一索引值用于标识不同的第一关键帧,有效的第一索引值为一个大于或等于0的整数,例如,可以是编码生成模块32中的编码生成单元的编号; \n[0102] 进一步,根据所使用的编码标准的需求,第一存储模块31还可用于存储编码视频流时所需的其它视频帧,例如,当采用MPEG-2编码标准时,要编码生成B-帧还需要至少一个P-帧,因此,第一存储模块31中除了存储有第一关键帧外,还存储有所需的P-帧,并提供给编码生成模块32中的编 码生成单元,使编码生成单元对输入视频流进行正确编码。\n关于编码过程中所需的其它视频帧也可以单独存储,这并不影响本发明技术方案的实施。 [0103] 编码生成模块32包括多个编码生成单元,每个编码生成单元对应一个第一关键值,并基于对应的第一关键值,对原始视频流进行编码,生成第一编码视频帧。具体的,每个编码生成单元可以存储有第一关键帧,也可以从第一存储模块31中提取所需的第一关键帧;对应于本实施例中第一存储模块31,可以是设置于多个编码生成单元中的独立存储单元,也可以是独立的一存储空间,在此只给出两种具体的实现方式,本实施例并不对此进行限制。 \n[0104] 比较获取模块33用于将编码生成模块32生成的多个第一编码视频帧进行比较,获取输出视频帧和输出索引值,其中,输出视频帧为压缩比最大的第一编码视频帧,输出索引值为作为输出视频帧的参考帧的第一关键帧的第一索引值。 \n[0105] 第一输出模块34用于将比较获取模块33获取的输出视频帧和输出索引值输出,具体的,视频编码装置可以和视频解码装置预先约定传输协议,例如可以是TCP协议、UDP协议,通过传输装置将输出视频帧和输出索引值发送给视频解码端。 \n[0106] 本实施例提供的视频编码装置可以用于执行本发明实施例提供的视频解码方法,其实现过程可以依照视频解码方法去实现,在此不再赘述。 \n[0107] 本实施例提供的视频编码装置,通过设置第一存储模块存储多个距离当前帧不同时间段的关键帧,多个编码生成单元同时对原始视频流进行编码,选择压缩比最大的作为输出视频帧,以充分利用视频场景中长时间尺度上的相关性,因此,提高了视频数据的压缩比,降低了视频数据传输对网络带宽的要求,同时,上述技术方案并未限制各个编码生成单元采用的编码方法,通过采用与视频环境相适应的编码方法,可以保证图像质量,因此,本实施例提供的视频编码装置,在保证图像质量的情况下,提高了视频数据的压缩比,实现了在带宽受限的无线链路和互联网链路上传输高质量的视频数据。 \n[0108] 基于上述技术方案,本实施例提供的编码装置还包括第一选择替换模块35和第二输出模块36。 \n[0109] 其中,第一选择替换模块35用于选择多个第一关键帧中不作为输出视频帧的参考帧的其中一个第一关键帧,用输出视频帧替换帧;第二输出模块36用于在第一输出模块\n31输出输出视频帧和输出索引值的同时,输出被输出视频帧替换的第一关键帧的第一索引值,以提供给视频解码端。 \n[0110] 其中,本实施例中的第二输出模块36可以和第一输出模块34一体设置,也可以是两个独立的输出模块,本实施例中第一输出模块34与第二输出模块36为两个独立设置的模块。 \n[0111] 当输出视频帧为后续编码过程将要使用的第一关键帧时,采用上述技术方案,可以实现对视频编码装置中存储的多个第一关键帧的更新,使本实施例缓存的总是与当前帧最接近的、相关性最强的性的第一关键帧,保证本实施例提供的技术方案充分利用视频场景中这种长时间尺度上的相关性,提高视频数据的压缩比。 \n[0112] 图4为本发明一实施例提供的视频解码装置的结构示意图,如图4所示,本实施例提供的视频解码装置包括:第二存储模块41、接收模块42、确定模块43和解码输出模块\n44。 \n[0113] 其中,第二存储模块41用于缓存多个第二关键帧,多个第二关键帧分别对应距离当前帧不同时间段的关键帧,其中,每个第二关键帧具有一第二索引值;具体的,视频解码装置缓存的多个第二关键帧与视频编码装置中缓存的多个第一关键帧相同或者相应,是进行视频解码的基础。 \n[0114] 接收模块42用于接收输入数据帧,输入数据帧至少包括输入视频帧和输入索引值;其中,输入索引值用于标识编码输入视频帧时作为参考帧的第一关键帧与解码输入视频帧的第二关键帧之间的映射关系,根据输入索引值可以确定用于解码输入视频帧的第二关键帧。接收模块42将接收到的输入索引值发送给确定模块43,使确定模块43从第二存储模块41 缓存的多个第二关键帧中选择解码输入视频帧的第二关键帧,其中,解码输入关键帧的第二关键帧的第二索引值与输入索引值相应或者相同,例如,可以是视频解码装置中解码生成单元的编号。 \n[0115] 解码输出模块44以确定模块43确定的第二关键帧为参考帧,对输入视频帧进行解码,得到解码视频流。其中,解码过程是视频编码端的编码过程的逆过程,而解码后得到的解码视频流可以传送给视频播放装置进行播放,也可以传送给数据存储装置保存,或者也可以传送给其他需要该解码视频流的装置。 \n[0116] 进一步,本实施提供的视频解码装置还包括一第二选择替换模块45,用于根据输入数据帧包含的第三索引值,用输入视频帧替换与第三索引值对应的第二关键帧,用于解码后续的输入视频帧。 \n[0117] 本实施例提供的视频编码装置可以用于执行本发明实施例提供的视频解码方法,其实现过程可以依照视频解码方法去实现,在此不再赘述。 \n[0118] 本实施例提供的视频解码装置可用于执行本发明实施例提供的视频解码方法,采用本实施例的技术方案,通过第二存储模块缓存与视频编码端相同或者相应的多个第二关键帧,执行与视频编码端相反的解码操作,保证了视频编码端可以充分利用视频场景中长时间尺度上的相关性,达到提高视频数据压缩比的目的,同时,由于未对编码方法进行限制,视频解码端只要按照与视频编码端的约定,进行相应解码,因此,可以通过采用高标准的编码解码方法保证解码后的图像质量。 \n[0119] 图5为本发明一实施例提供的视频传输系统的结构示意图,如图5所示,本实施例提供的视频传输系统包括:数据源端51、数据目的端52和数据传输网络53。 [0120] 在本实施例中,在数据源端和数据目的端都存储了与视频压缩相关的状态信息和视频关键帧,且数据源端和数据目的端存储的视频关键帧相同。数据源端将包括关键帧和非关键帧的视频数据通过数据传输网络传送给数据目 的端,数据目的端向数据源端返回反馈信息,以进行流控、丢失重传、差错控制等。其中,数据源端主要包括视频输入接口、网络传输接口、视频编码装置等部件,采用本发明实施例提供的视频编码方法对原始视频流进行编码,生成输出视频帧。数据目的端主要包括网络传输接口、视频输出接口、视频解码装置等部件,采用本发明实施例提供的视频解码方法对输入视频帧进行解码,生成解码视频流。 \n[0121] 更为具体的,本实施例中数据源端和数据目的端由两台个人计算机构成,两者通过局域网连接,其中,局域网的连接设备为以太网交换机。作为数据源端的计算机连接一个视频摄像头。视频摄像头获取的原始视频流直接传送到数据源端的计算机中。数据源端计算机实现本发明实施例提供的视频编码方法,产生的输出视频帧通过局域网传送到数据目的端。数据目的端计算机实现本发明实施例提供的视频解码方法,解码得到的解码视频流直接在计算机显示器上播放。其中,视频编码算法采用MPEG-2的编码算法,解码算法采用对应的MPEG-2解码算法。数据通信采用TCP和UDP协议,其中,使用TCP协议传输关键帧,使用UDP协议传输非关键帧。 \n[0122] 采用本发明实施例提供的视频编码、解码方法和视频编码、解码装置的上述视频传输系统,可以同时利用长时间尺度和短时间尺度上视频数据的相关性对视频数据进行压缩,提高视频数据的压缩比,在不降低图像质量的情况下,降低视频数据传输的带宽要求,从而可以较好地应用于带宽低、可用带宽变化较大的无线网络或互联网环境中。 [0123] 最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换,而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的精神和范围。
法律信息
- 2014-01-08
未缴年费专利权终止
IPC(主分类): H04N 7/26
专利号: ZL 200910225201.0
申请日: 2009.11.16
授权公告日: 2011.06.15
- 2011-06-15
- 2010-08-11
实质审查的生效
IPC(主分类): H04N 7/26
专利申请号: 200910225201.0
申请日: 2009.11.16
- 2010-06-09
引用专利(该专利引用了哪些专利)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 |
1
| |
2002-05-15
|
2000-10-13
| | |
2
| |
2009-03-18
|
2007-09-14
| | |
3
| |
2007-09-19
|
2003-07-11
| | |
4
| | 暂无 |
2003-11-18
| | |
5
| | 暂无 |
2004-03-03
| | |
被引用专利(该专利被哪些专利引用)
序号 | 公开(公告)号 | 公开(公告)日 | 申请日 | 专利名称 | 申请人 | 该专利没有被任何外部专利所引用! |