CN110868613B - 基于历史候选列表的图像编码方法、图像解码方法及装置 - Google Patents

基于历史候选列表的图像编码方法、图像解码方法及装置 Download PDF

Info

Publication number
CN110868613B
CN110868613B CN201810991217.1A CN201810991217A CN110868613B CN 110868613 B CN110868613 B CN 110868613B CN 201810991217 A CN201810991217 A CN 201810991217A CN 110868613 B CN110868613 B CN 110868613B
Authority
CN
China
Prior art keywords
motion information
image block
current
list
historical
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.)
Active
Application number
CN201810991217.1A
Other languages
English (en)
Other versions
CN110868613A (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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810991217.1A priority Critical patent/CN110868613B/zh
Priority to PCT/CN2019/102924 priority patent/WO2020043111A1/zh
Publication of CN110868613A publication Critical patent/CN110868613A/zh
Application granted granted Critical
Publication of CN110868613B publication Critical patent/CN110868613B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/20Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
    • H04N21/23Processing of content or additional data; Elementary server operations; Server middleware
    • H04N21/234Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
    • H04N21/2343Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本申请实施例公开了基于历史候选列表的图像编码、解码方法和相关产品。所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息,其中所述解码方法包括:解析码流中的语法元素,以确定当前解码图像块的帧间预测模式;基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息;根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新。本申请实施例在不同的帧间预测模式下采用不同的方式来更新历史候选列表,将会一定程度上提高运动矢量预测效率,亦即提高帧间预测效率,从而提高编解码性能。

Description

基于历史候选列表的图像编码方法、图像解码方法及装置
技术领域
本申请涉及视频图像编解码领域,尤其涉及基于历史候选列表的图像编码方法、基于历史候选列表的图像解码方法以及相应的图像编码装置和图像解码装置。
背景技术
通过视频压缩技术,例如MPEG-1视频、MPEG-2视频、ITU-T H.262/MPEG-2、ITU-TH.263、ITU-T H.264/MPEG-4第10部分高级视频编码(Advanced Video Coding,AVC)、ITU-TH.265/高效视频编码(High Efficiency Video Coding,HEVC)、正在进行中的ITU-TH.266/多用途视频编码(Versatile Video Coding,VVC)标准和所述标准的扩展部分中所描述的那些视频压缩技术,设备之间可以实现高效地发射及接收数字视频信息。通常情况下,视频序列的图像被划分成图像块进行编码或解码。
视频压缩技术中,为了减少或去除视频序列中的冗余信息,引入了基于图像块的空间预测(帧内预测,intra prediction)和/或时间预测(帧间预测,inter prediction)。其中,帧间预测模式可以包括但不限于:跳过/融合模式(skip/merge mode)与非跳过/融合模式(例如高级运动矢量预测模式(AMVP mode))等,且均是利用多运动信息竞争的方法进行帧间预测的。
帧间预测过程中,引入了包括多组运动信息(亦称为多个候选运动信息)的候选运动信息列表(简称候选列表),例如,编码器可以利用从该候选列表中选出一组合适的候选运动信息来预测当前编码图像块的运动信息(例如运动矢量),进而得到当前编码图像块的最佳参考图像块(即预测块)。帧内预测过程中,有时候也引入了包括多组运动信息(亦称为block vector)的候选列表。
然而,无论跳过/融合模式还是非跳过/融合模式,如何提高帧间预测效率(亦称为运动矢量预测效率),从而提高编解码性能是持续需要解决的问题。
发明内容
本申请实施例提供基于历史候选列表的图像编码方法、基于历史候选列表的图像解码方法及相应的图像编码装置和图像解码装置,提高运动矢量预测效率,从而提高编解码性能。
第一方面,本申请实施例提供一种基于历史候选列表(亦可称为历史候选表)的图像解码方法,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息(例如可以为当前条带slice或当前图像或当前一个或多个编码树单元CTU中在先已解码图像块的运动信息),所述方法包括:
解析接收的码流中的语法元素,以确定当前解码图像块的帧间预测模式;
基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息;
根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新。
应当理解的是,基于历史候选列表的图像解码方法中,在一种示例方式下,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述当前解码图像块执行的帧间预测过程中,在另一种示例方式下,考虑不同解码图像块的帧间预测模式的不同,针对有些解码图像块,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述解码图像块执行的帧间预测过程中;针对有些解码图像块,所述历史候选列表中的一个或多个历史候选运动信息也可以不应用于对所述解码图像块执行的帧间预测过程中;但总的来说,当前条带slice或当前图像或当前一个或多个CTU中,所述历史候选列表中的一个或多个历史候选运动信息将会应用于对一个或多个解码图像块执行的帧间预测过程中,本申请对此不做限定。
历史候选列表包括一个或多个历史候选项,每个历史候选项为在先已编码或在先已解码块的运动信息。在不同示例方式下,所述历史候选列表可以条带slice级别的,或者,所述历史候选列表可以图像级别的,或者,所述历史候选列表可以是若干个CTU(CTU行)的级别的;或者,所述历史候选列表可以是CTU的级别的;
例如,所述历史候选运动信息为当前图像块所属的条带slice中在先已解码图像块的运动信息;又例如,所述历史候选运动信息为当前图像块所属的图像中在先已解码图像块的运动信息;又例如,所述历史候选运动信息为当前图像块所属的CTU组(例如一个或多个CTU)中在先已解码图像块的运动信息;
换言之,例如,所述历史候选列表是在当前图像块所属的条带的解码过程中生成且更新的;又例如,所述历史候选列表是在当前图像块所属的图像的解码过程中生成且更新的;又例如,所述历史候选列表是在当前图像块所属的CTU组(例如一个或多个CTU)的解码过程中生成且更新的;
在一种可行的设计方式下,所述历史候选列表中的一个或多个历史候选运动信息被用于对所述当前解码图像块执行的帧间预测过程中;换言之,对所述当前解码图像块执行的帧间预测过程包括:基于候选运动信息列表对所述当前解码图像块执行帧间预测,其中所述候选运动信息列表不同于所述历史候选列表,且所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中。
可见,本申请实施例中考虑当前解码图像块的帧间预测模式来更新历史候选列表,比如,如果当前解码图像块的帧间预测模式为skip/merge模式,不使用当前解码图像块的运动信息更新历史候选列表;相反,如果当前解码图像块的帧间预测模式为非skip/merge模式,使用当前解码图像块的运动信息更新历史候选列表;这样的话,即使历史候选列表中的原有的历史候选运动信息的数目较多,也一定程度上减少了将当前解码图像块的运动信息加入到历史候选列表中可能会引起的查找重复项和数据搬移的操作,而且所述历史候选列表在图像解码过程中不断更新,有助于提高运动矢量预测效率,亦即有助于提高帧间预测效率,从而提高编解码性能。
应当理解的是,本申请实施例的方法的执行主体可以是视频解码器或具有视频解码功能的电子设备。
在第一方面的某些实现方式中,所述根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新,包括:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,其中第一处理方式不同于第二处理方式。
可见,相比于无论何种帧间预测模式采用统一的方式更新历史候选列表,本申请实施例在不同的帧间预测模式下采用不同的方式来更新历史候选列表,一旦所述历史候选列表中的一个或多个历史候选运动信息作用于对当前解码图像块执行的帧间预测过程中,将会一定程度上提高运动矢量预测效率,亦即提高帧间预测效率,从而提高编解码性能。
在第一方面的某些实现方式中,所述第一帧间预测模式为跳过模式(skip mode)或融合模式(merge mode);所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式;
或者,
所述第二帧间预测模式为跳过模式(skip mode)或融合模式(merge mode);所述第一帧间预测模式为非第二帧间预测模式的帧间预测模式。
在第一方面的某些实现方式中,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
相应地,所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息(直接)加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息(the last history candidate)加入所述历史候选列表。
可见,本申请实施例考虑当前解码图像块的帧间预测模式来更新历史候选列表,比如如果当前解码图像块的帧间预测模式为skip/merge模式,第一处理方式即使用当前解码图像块的运动信息更新历史候选列表的过程中需要做重复项检查;相反,如果当前解码图像块的帧间预测模式为非skip/merge模式,第二处理方式即使用当前解码图像块的运动信息更新历史候选列表的过程中无需做重复项检查;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,将当前解码图像块的运动信息加入到历史候选列表中能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在第一方面的某些实现方式中,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息(例如,所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的图像块的运动信息)。
相应地,所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
可见,本申请实施例考虑当前解码图像块的帧间预测模式来更新历史候选列表,比如如果当前解码图像块的帧间预测模式为skip/merge模式,第一处理方式即不使用所述当前解码图像块的运动信息更新历史候选列表或有条件使用所述当前解码图像块的运动信息更新历史候选列表;相反,如果当前解码图像块的帧间预测模式为非skip/merge模式,第二处理方式即缺省使用当前解码图像块的运动信息更新历史候选列表,且更新的过程中做重复项检查;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,使用当前解码图像块的运动信息更新历史候选列表的过程中,能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在第一方面的某些实现方式中,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息。
相应地,所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
可见,本申请实施例考虑当前解码图像块的帧间预测模式来更新历史候选列表,比如如果当前解码图像块的帧间预测模式为skip/merge模式,第一处理方式即不使用所述当前解码图像块的运动信息更新历史候选列表或有条件使用所述当前解码图像块的运动信息更新历史候选列表;相反,如果当前解码图像块的帧间预测模式为非skip/merge模式,第二处理方式即缺省使用当前解码图像块的运动信息更新历史候选列表,且更新的过程中不做重复项检查;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,使用当前解码图像块的运动信息更新历史候选列表的过程中,能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在第一方面的某些实现方式中,所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,包括:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前解码图像块的运动信息作为最新的历史候选运动信息(the last HMVP candidate)加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
在第一方面的某些实现方式中,所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息,包括:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中;应当理解的是,第一候选运动信息列表与第一帧间预测模式对应,比如merge模式对应mergecandidate list;
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前解码图像块的第二候选运动信息列表中;应当理解的是,第二候选运动信息列表与第二帧间预测模式对应,比如inter模式对应MVPcandidate list;
从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;应当理解的是,例如,根据从所述码流中解析出的第一标识信息从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;如果所述第一候选运动信息列表或第二候选运动信息列表的长度为一,则无需解析第一标识信息(例如索引),确定唯一的候选运动信息为目标候选运动信息);
基于所述目标候选运动信息预测/得到所述当前解码图像块的运动信息;应当理解的是,例如,确定所述目标候选运动信息为所述当前解码图像块的运动信息;或者,所述目标候选运动信息为运动矢量预测值MVP,基于所述运动矢量预测值MVP和从所述码流中解析出的所述当前图像块的运动矢量残差值MVD,确定所述当前解码图像块的运动信息。
需要说明的是,候选运动信息列表(例如第一候选运动信息列表或第二候选运动信息列表)不同于所述历史候选列表;候选运动信息列表是图像块级别的(不同的图像块具有与之分别对应的候选运动信息列表),而历史候选列表(亦称为历史候选表)是当前slice(条带)或当前图像或者当前一个或多个编码树单元CTU级别的,例如,同一个slice下的多个图像块的编码或解码过程中,都可以使用这个不断更新的历史候选列表。
本申请实施例中,在图像解码过程中不断更新历史候选列表,在构建当前解码图像块的候选运动信息列表(比如merge候选列表或AMVP候选列表)的过程中,根据当前解码图像块的预测模式来决定是否将历史候选列表中的历史候选加入到对应的候选运动信息列表中,比如:在当前解码图像块的帧间预测模式为inter模式时,不将历史候选列表中的历史候选运动信息加入到AMVP候选列表中;在当前解码图像块的帧间预测模式为merge/skip模式时,将历史候选列表中的历史候选运动信息加入到融合候选列表中;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,使用历史候选列表来构建候选运动信息列表的过程中,能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在第一方面的某些实现方式中,所述第一候选运动信息列表包括所述当前解码图像块的一个或多个空域参考块的运动信息和/或当前解码图像块的一个或多个时域参考块的运动信息,其中所述空域参考块包括:与当前解码图像块空域邻接的相邻块的运动信息和/或一个或者多个与当前解码图像块空域不邻接的非相邻块的运动信息;所述时域参考块包括:在参考帧中与所述当前解码图像块相同位置处的同位块的右下角相邻块的运动信息,或者,所述同位块的中心位置的运动信息;所述第二候选运动信息列表包括所述当前解码图像块的空域参考块的运动矢量和/或当前解码图像块的时域参考块的运动矢量;
或者,
所述第一候选运动信息列表包括所述当前解码图像块的一个或多个空域参考块的运动矢量和/或当前解码图像块的一个或多个时域参考块的运动矢量;所述第二候选运动信息列表包括所述当前解码图像块的一个或多个空域参考块的运动信息和/或当前解码图像块的一个或多个时域参考块的运动信息。
需要说明的是,这里的空域参考块指的是与当前图像块空域相关的参考块,可以包括当前图像块所在图像中的、与当前图像块邻近的一个或多个空域参考块,和/或,当前图像块所在图像中的、与所述当前图像块不邻接的一个或多个空域参考块。一种示例下,所述当前解码图像块所在图像中的与所述当前解码图像块邻近的一个或多个空域参考块包括:位于所述当前解码图像块左下侧的第四空域邻近块A0,位于所述当前解码图像块左侧的第一空域邻近块A1,位于所述当前解码图像块右上侧的第三空域邻近块B0,位于所述当前解码图像块上侧的第二空域邻近块B1,或位于所述当前解码图像块左上侧的第五空域邻近块B2。
需要说明的是,这里的时域参考块,指的是与当前图像块时域相关的参考块,可以包括参考图像中、与并置块(co-located块)邻近的一个或多个空域参考块,和/或,所述并置块中的一个或多个子块,其中,所述并置块为参考图像中与所述当前图像块具有相同的大小、形状和坐标的图像块,或者所述并置块为参考图像中与所述当前图像块具有指定位置偏移量的具有相同的大小、形状的图像块。这里的参考图像指的是已重建的图像,具体的,这里的参考图像指的是一个或多个参考图像列表中的参考图像,例如可以是指定参考图像列表中的指定参考图像索引对应的参考图像,也可以是默认的参考图像列表中的处于首位置的参考图像,本申请对此不作限定。一种示例下,所述时域参考块包括:所述当前图像块的并置块(co-located块)的右下空域邻近块H,所述并置块的左上中间块C0,所述并置块的右下中间块C3、所述并置块的左上块TL,或所述并置块的右下块BR。
需要说明的是,无论是哪一种参考块,都是指已确定运动矢量图像块(亦指已编码图像块或已解码图像块)。
在第一方面的某些实现方式中,所述将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中,包括:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
本申请实施例中,一旦构建的历史候选列表中的历史候选的数目较多时,能进一步提高帧间预测效率,从而一定程度上提高了编解码性能。
在第一方面的某些实现方式中,所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,包括:
从与当前解码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,所述目标候选运动信息用于预测所述当前解码图像块的运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;例如,如果当前解码图像块的帧间预测模式为merge模式,则与当前解码图像块的帧间预测模式对应的候选运动信息列表为融合运动信息候选列表merge candidate list;如果当前解码图像块的帧间预测模式为AMVP模式,则与当前解码图像块的帧间预测模式对应的候选运动信息列表为运动矢量预测候选列表MVP candidate list;所述历史候选列表不同于所述候选运动信息列表。
根据所述当前解码图像块的运动信息对当前解码图像块进行帧间预测,得到所述当前解码图像块的预测图像(亦即预测像素值)。
此外,需要说明的是,本申请实施例的候选运动信息列表中的候选运动信息可包括运动矢量MV和参考图像指示信息。当然,候选运动信息也可以包含两者之一或者全部包含,例如在编解码端共同约定参考图像的情况下,候选运动信息可以仅包含运动矢量MV。运动矢量一般包含水平分量偏移和竖直分量偏移。例如使用(x,y)表示MV,x表示水平方向的位置偏移,y表示竖直方向的位置偏移。其中参考图像指示信息可以包括但不限于参考图像列表和与参考图像列表对应的参考图像索引。参考图像索引用于识别对应参考图像列表(RefPicList0或RefPicList1)中的运动矢量所指向的参考图像。图像可被称作帧,且参考图像可被称作参考帧。
本申请实施例在图像解码过程中不断更新历史候选列表,通过在当前解码图像块的候选运动信息列表(比如融合运动信息候选列表或运动矢量预测候选列表)中加入历史候选运动信息(history candidate)的方法,增加了候选运动信息(例如merge/skip的融合运动信息候选或inter模式的运动矢量预测候选)的数量,提高了预测效率。
在第一方面的某些实现方式中,所述方法还包括:
基于所述当前解码图像块的残差图像(亦即残差值)和所述帧间预测过程得到的当前解码图像块的预测图像(亦即预测像素值),得到所述当前解码图像块的重建图像。应当理解的是,如果当前解码图像块的预测图像与当前解码图像块的原始图像相同,则没有所述当前解码图像块的残差图像(亦即残差值),则基于所述帧间预测过程得到的当前解码图像块的预测图像(亦即预测像素值),得到所述当前解码图像块的重建图像。
可见,本申请实施例的基于历史候选列表的图像解码方法,不仅适用于融合/跳过模式(Merge/skip)和/或高级运动矢量预测模式(advanced motion vector prediction,AMVP),而且也能适用于使用空域参考块和/或时域参考块的运动信息对当前图像块的运动信息进行预测的其它模式,从而提高编解码性能。
第二方面,本申请实施例提供一种基于历史候选列表的图像编码方法,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已编码图像块的运动信息,例如,所述历史候选运动信息为当前slice或当前图像或当前一个或多编码树单元CTU中在先已解码图像块的运动信息,所述方法包括:
根据率失真代价准则确定当前编码图像块的帧间预测模式;例如,从所述候选帧间预测模式的集合中选择率失真代价最小的帧间预测模式作为当前编码图像块的帧间预测模式;
基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息;
根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新;
并将用于指示所述当前编码图像块的帧间预测模式的语法元素编入码流。
应当理解的是,历史候选列表包括一个或多个历史候选项,每个历史候选项为在先已编码或在先已解码块的运动信息。在不同示例方式下,所述历史候选列表可以slice级别的,或者,所述历史候选列表可以是若干个CTU(CTU行)的级别的;或者,所述历史候选列表可以是CTU的级别的;
例如,所述历史候选运动信息为当前图像块所属的条带slice中在先已编码图像块的运动信息;又例如,所述历史候选运动信息为当前图像块所属的图像中在先已编码图像块的运动信息;又例如,所述历史候选运动信息为当前图像块所属的CTU组(例如一个或多个CTU)中在先已编码图像块的运动信息;
换言之,例如,所述历史候选列表是在当前图像块所属的条带的编码过程中生成且更新的;又例如,所述历史候选列表是在当前图像块所属的图像的编码过程中生成且更新的;又例如,所述历史候选列表是在当前图像块所属的CTU组(例如一个或多个CTU)的编码过程中生成且更新的;
在一种可行的设计方式下,所述历史候选列表中的一个或多个历史候选运动信息被用于对所述当前编码图像块执行的帧间预测过程中;换言之,对所述当前编码图像块执行的帧间预测过程包括基于候选运动信息列表对所述当前编码图像块执行帧间预测,其中所述候选运动信息列表不同于所述历史候选列表,且所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中。
在第二方面的某些实现方式中,所述根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新,包括:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,其中,第一处理方式不同于第二处理方式。
在第二方面的某些实现方式中,所述第一帧间预测模式为融合merge模式或跳过skip模式;所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式;
或者,
所述第二帧间预测模式为融合merge模式或跳过skip模式;所述第一帧间预测模式为非第二帧间预测模式的帧间预测模式。
在第二方面的某些实现方式中,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
相应地,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息(直接)加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
在第二方面的某些实现方式中,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前编码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先编码得到的历史候选运动信息(例如,基于所述第一帧间预测模式在先编码得到的图像块的运动信息);
相应地,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
在第二方面的某些实现方式中,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前编码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先编码得到的历史候选运动信息;
相应地,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
其中,所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,包括:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前编码图像块的运动信息作为最新的历史候选运动信息(the last HMVP candidate)加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
在第二方面的某些实现方式中,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息,包括:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中;
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前编码图像块的第二候选运动信息列表中;
根据率失真代价准则从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;例如,所述目标候选运动信息编码所述当前编码图像块的率失真代价最小;
确定所述目标候选运动信息为所述当前编码图像块的运动信息;或者,基于所述目标候选运动信息和通过运动估计(Motion Estimation)得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值。应注意的是,所述候选运动信息列表(例如第一候选运动信息列表或第二候选运动信息列表)不同于所述历史候选列表。
其中,所述第一候选运动信息列表包括所述当前编码图像块的空域参考块的运动信息和/或当前编码图像块的时域参考块的运动信息,例如所述空域参考块包括:与当前编码图像块空域邻接的相邻块的运动信息和/或一个或者多个与当前编码图像块空域不邻接的非相邻块的运动信息;所述时域参考块包括:在参考帧中与所述当前编码图像块相同位置处的同位块的右下角相邻块的运动信息,或者,所述同位块的中心位置的运动信息;所述第二候选运动信息列表包括所述当前编码图像块的空域参考块的运动矢量和/或当前编码图像块的时域参考块的运动矢量;
或者,
所述第一候选运动信息列表包括所述当前编码图像块的空域参考块的运动矢量和/或当前编码图像块的时域参考块的运动矢量;所述第二候选运动信息列表包括所述当前编码图像块的空域参考块的运动信息和/或当前编码图像块的时域参考块的运动信息。
其中,所述将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中,包括:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中;
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
在第二方面的某些实现方式中,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,包括:
根据率失真代价准则,从与当前编码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;例如,所述目标候选运动信息编码所述当前编码图像块的率失真代价最小;
确定所述目标候选运动信息为所述当前编码图像块的运动信息;或者,基于所述目标候选运动信息和通过运动估计(Motion Estimation)得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,其中,所述目标候选运动信息为目标候选运动矢量预测值。
例如,如果当前编码图像块的帧间预测模式为merge模式,则与当前编码图像块的帧间预测模式对应的候选运动信息列表为merge candidate list;如果当前编码图像块的帧间预测模式为AMVP模式,则与当前编码图像块的帧间预测模式对应的候选运动信息列表为MVP candidate list;
需要说明的是,所述历史候选列表不同于所述候选运动信息列表;候选运动信息列表是图像块级别的(不同的图像块具有与之分别对应的候选运动信息列表),而历史候选表是当前slice或当前图像或者当前一个或多个图像编码单元CTU级别的,换言之,同一个slice下的多个图像块的编码或解码过程中,都可以使用这个不断更新的历史候选列表。
在第二方面的某些实现方式中,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,还包括:
根据所述当前编码图像块的运动信息对当前编码图像块进行帧间预测,得到所述当前编码图像块的预测图像(亦即预测像素值)。
在第二方面的某些实现方式中,所述方法还包括:
基于所述当前编码图像块的残差图像(亦即残差值)和所述帧间预测过程得到的当前编码图像块的预测图像(亦即预测像素值),得到所述当前编码图像块的重建图像。应当理解的是,如果当前编码图像块的预测图像与当前编码图像块的原始图像相同,则没有所述当前编码图像块的残差图像(亦即残差值),则基于所述帧间预测过程得到的当前编码图像块的预测图像(亦即预测像素值),得到所述当前编码图像块的重建图像。
在第二方面的某些具体实现方式中,所述当前编码块的帧间预测模式为融合merge模式或跳过skip模式,所述方法还包括:
将与所述目标候选运动信息对应的merge索引号编入码流;
或者,
所述当前编码块的帧间预测模式为非融合merge模式或非跳过skip模式,所述方法还包括:
将与所述目标候选运动信息(即目标候选运动矢量预测值MVP)对应的索引号和所述运动矢量差值MVD编入码流。
第三方面,本申请实施例提供一种基于历史候选列表(亦可称为历史候选表)的图像解码装置,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息(例如可以为当前条带slice或当前图像或当前一个或多个编码树单元CTU中在先已解码图像块的运动信息),包括用于实施第一方面的任意一种方法的若干个功能单元。举例来说,图像解码装置可以包括:
熵解码单元,用于解析接收的码流中的语法元素,以确定当前解码图像块的帧间预测模式;
帧间预测单元,用于基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息;
所述帧间预测单元还用于根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新。
应当理解的是,基于历史候选列表的图像解码装置中,在一种示例方式下,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述当前解码图像块执行的帧间预测过程中,在另一种示例方式下,考虑不同解码图像块的帧间预测模式的不同,针对有些解码图像块,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述解码图像块执行的帧间预测过程中;针对有些解码图像块,所述历史候选列表中的一个或多个历史候选运动信息也可以不应用于对所述解码图像块执行的帧间预测过程中;但总的来说,当前条带slice或当前图像或当前一个或多个CTU中,所述历史候选列表中的一个或多个历史候选运动信息将会应用于对一个或多个解码图像块执行的帧间预测过程中,本申请对此不做限定。
第四方面,本申请实施例提供一种基于历史候选列表(亦可称为历史候选表)的图像编码装置,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已编码图像块的运动信息(例如,所述历史候选运动信息为当前slice或当前图像或当前一个或多编码树单元CTU中在先已解码图像块的运动信息),包括用于实施第二方面的任意一种方法的若干个功能单元。举例来说,图像编码装置可以包括:
帧间预测单元,用于根据率失真代价准则,确定当前编码图像块的帧间预测模式;基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息;例如,从所述候选帧间预测模式的集合中选择率失真代价最小的帧间预测模式作为当前编码图像块的帧间预测模式;
所述帧间预测单元还用于根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新;
熵编码单元,用于将用于指示所述当前编码图像块的帧间预测模式的语法元素编入码流。
应当理解的是,基于历史候选列表的图像编码装置中,在一种示例方式下,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述当前编码图像块执行的帧间预测过程中,在另一种示例方式下,考虑不同编码图像块的帧间预测模式的不同,针对有些编码图像块,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述编码图像块执行的帧间预测过程中;针对有些编码图像块,所述历史候选列表中的一个或多个历史候选运动信息也可以不应用于对所述编码图像块执行的帧间预测过程中;但总的来说,当前条带slice或当前图像或当前一个或多个CTU中,所述历史候选列表中的一个或多个历史候选运动信息将会应用于对一个或多个编码图像块执行的帧间预测过程中,本申请对此不做限定。
第五方面,本申请实施例提供一种基于历史候选列表的视频解码设备,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息,所述设备包括:
存储器,用于存储码流形式的视频数据,所述视频数据包括一个或多个图像块;
视频解码器,用于解析码流中的语法元素,以确定当前解码图像块的帧间预测模式;基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息;根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新。
其中,所述历史候选列表中的一个或多个历史候选运动信息应用于对所述当前解码图像块执行的帧间预测过程中。换言之,对所述当前解码图像块执行的帧间预测过程包括基于候选运动信息列表对所述当前解码图像块执行帧间预测,其中所述候选运动信息列表不同于所述历史候选列表,且所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中。
第六方面,本申请实施例提供一种基于历史候选列表的视频编码设备,所述设备包括:
存储器,用于存储视频数据,所述视频数据包括一个或多个图像块;
视频编码器,用于根据率失真代价准则确定当前编码图像块的帧间预测模式;基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息;根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新;并将用于指示所述当前编码图像块的帧间预测模式的语法元素编入码流。
其中,所述历史候选列表中的一个或多个历史候选运动信息被用于对所述当前编码图像块执行的帧间预测过程中;换言之,对所述当前编码图像块执行的帧间预测过程包括基于候选运动信息列表对所述当前编码图像块执行帧间预测,其中所述候选运动信息列表不同于所述历史候选列表,且所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中。
本申请的第七方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
本申请的第八方面提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的方法。
本申请的第九方面提供了一种电子设备,包括上述第四方面所述的视频编码器,或上述第三方面所述的视频解码器。
本申请的第十方面提供了一种编码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行第二方面的任意一种方法的部分或全部步骤。
本申请的第十一方面提供了一种解码设备,包括:相互耦合的非易失性存储器和处理器,所述处理器调用存储在所述存储器中的程序代码以执行第一方面的任意一种方法的部分或全部步骤。
应理解,本申请的第二至十一方面与本申请的第一方面的技术方案一致,各方面及对应的可实施的设计方式所取得的有益效果相似,不再赘述。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1为本申请实施例中一种视频编码及解码系统的示意性框图;
图2为本申请实施例中一种视频编码器的示意性框图;
图3为本申请实施例中一种视频解码器的示意性框图;
图4A为本申请实施例中合并模式下由视频编码器执行的编码方法的一种示例性流程图;
图4B为本申请实施例中高级运动矢量预测模式下由视频编码器执行的编码方法的一种示例性流程图;
图5为本申请实施例中由视频解码器执行的运动补偿的一种示例性流程图;
图6为本申请实施例中当前图像块及与其关联的空域参考块、时域参考块的一种示例性示意图;
图7为本申请实施例中一种基于历史候选列表的图像编码方法的流程图;
图8为本申请实施例中一种基于历史候选列表的图像解码方法的流程图;
图9为本申请实施例中更新前后的历史候选列表的一种示例性示意图;
图10A为本申请实施例中更新前后的历史候选列表的另一种示例性示意图;
图10B为本申请实施例中图10A所示的更新前后的历史候选列表的一种具体示例性示意图;
图11A为本申请实施例中历史候选运动信息加入融合运动信息候选列表的一种示例性示意图;
图11B为本申请实施例中历史候选运动信息加入融合运动信息候选列表的另一种示例性流程示意图;
图12为本申请实施例中一种视频编码或解码系统(亦可称为编码设备或解码设备)的示意性框图;
图13为本申请实施例中另一种编码设备或解码设备的示意性框图。
具体实施方式
帧内预测编码:用周围邻近的像素值来预测当前的像素值,然后对预测误差进行编码的编码方式。
编码图片:含有图片的所有编码树单元的图片的编码表示。
运动矢量(motion vector,MV):用于帧间预测的二维矢量,其提供从解码图片中的坐标到参考图片中的坐标的偏移量。
预测块:在其上应用相同预测的矩形M×N样本块。
预测过程:使用预测值提供当前被解码的数据元素(例如,样本值或运动矢量)的估计值。
预测值:指定值或后续数据元素解码过程中使用的先前解码数据元素(例如,样本值或运动矢量)的组合。
参考帧:作为短期参考图片或长期参考图片的图片或帧。参考帧含有可以按解码顺序用于后续图片的解码过程中的帧间预测的样本。
帧间预测:根据当前块的参考帧中的像素,通过运动矢量指示参考帧中用于预测的像素的位置,产生当前块的预测图像。
双向预测(B)片:可以使用帧内预测或帧间预测用最多两个运动矢量和参考索引预测每个块的样本值而解码的片。
CTU:编码树单元(coding tree unit),一幅图像由多个CTU构成,一个CTU通常对应于一个方形图像区域,包含这个图像区域中的亮度像素和色度像素(或者也可以只包含亮度像素,或者也可以只包含色度像素);CTU中还包含语法元素,这些语法元素指示如何将CTU划分成至少一个编码单元(coding unit,CU),以及解码每个编码单元得到重建图像的方法。
CU:编码单元,对应于图像中一个A×B的矩形区域,包含A×B亮度像素或/和它对应的色度像素,A为矩形的宽,B为矩形的高,A和B可以相同也可以不同,A和B的取值通常为2的整数次幂,例如128、64、32、16、8、4。一个编码单元包含预测图像和残差图像,预测图像与残差图像相加得到编码单元的重建图像。预测图像通过帧内预测或帧间预测生成,残差图像通过对变换系数进行反量化和反变换处理生成。
VTM:JVET组织开发的新式编解码器参考软件。
融合编码(merge):一种帧间编码编码方式,其运动矢量不直接在码流中传递。当前块可根据融合序号(merge index)从融合候选列表(merge candidate list)中选择对应的融合候选,将融合候选的运动信息作为当前块的运动信息,或者对融合候选的运动信息经过缩放后作为当前块的运动信息。
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述。
图1为本申请实施例中视频编码及解码系统10的一种示意性框图。如图1中所展示,系统10包含源装置12,源装置12产生将在稍后时间由目的地装置14解码的经编码视频数据。源装置12及目的地装置14可包括广泛范围的装置中的任一者,包含桌上型计算机、笔记型计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手机、所谓的“智能”触控板、电视、摄影机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置或类似者。在一些应用中,源装置12及目的地装置14可经装备以用于无线通信。
目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在一个可行的实施方式中,链路16可包括使源装置12能够实时将经编码视频数据直接传输到目的地装置14的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码视频数据且将其传输到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频频谱或一个或多个物理传输线。通信媒体可形成基于包的网络(例如,局域网、广域网或因特网的全球网络)的部分。通信媒体可包含路由器、交换器、基站或可有用于促进从源装置12到目的地装置14的通信的任何其它装备。
替代地,可将经编码数据从输出接口22输出到存储装置24。类似地,可由输入接口从存储装置24存取经编码数据。存储装置24可包含多种分散式或本地存取的数据存储媒体中的任一者,例如,硬盘驱动器、蓝光光盘、DVD、CD-ROM、快闪存储器、易失性或非易失性存储器或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一可行的实施方式中,存储装置24可对应于文件服务器或可保持由源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由流式传输或下载从存储装置24存取所存储视频数据。文件服务器可为能够存储经编码视频数据且将此经编码视频数据传输到目的地装置14的任何类型的服务器。可行的实施方式文件服务器包含网站服务器、文件传送协议服务器、网络附接存储装置或本地磁盘机。目的地装置14可经由包含因特网连接的任何标准数据连接存取经编码视频数据。此数据连接可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,缆线调制解调器等)或两者的组合。经编码视频数据从存储装置24的传输可为流式传输、下载传输或两者的组合。
本申请的技术不必限于无线应用或设定。技术可应用于视频解码以支持多种多媒体应用中的任一者,例如,空中电视广播、有线电视传输、卫星电视传输、流式传输视频传输(例如,经由因特网)、编码数字视频以用于存储于数据存储媒体上、解码存储于数据存储媒体上的数字视频或其它应用。在一些可行的实施方式中,系统10可经配置以支持单向或双向视频传输以支持例如视频流式传输、视频播放、视频广播和/或视频电话的应用。
在图1的可行的实施方式中,源装置12包含视频源18、视频编码器20及输出接口22。在一些应用中,输出接口22可包含调制器/解调制器(调制解调器)和/或传输器。在源装置12中,视频源18可包含例如以下各者的源:视频捕获装置(例如,摄像机)、含有先前捕获的视频的视频存档、用以从视频内容提供者接收视频的视频馈入接口,和/或用于产生计算机图形数据作为源视频的计算机图形系统,或这些源的组合。作为一种可行的实施方式,如果视频源18为摄像机,那么源装置12及目的装置14可形成所谓的摄影机电话或视频电话。本申请中所描述的技术可示例性地适用于视频解码,且可适用于无线和/或有线应用。
可由视频编码器20来编码所捕获、预捕获或计算机产生的视频。经编码视频数据可经由源装置12的输出接口22直接传输到目的地装置14。经编码视频数据也可(或替代地)存储到存储装置24上以供稍后由目的地装置14或其它装置存取以用于解码和/或播放。
目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些应用中,输入接口28可包含接收器和/或调制解调器。目的地装置14的输入接口28经由链路16接收经编码视频数据。经由链路16传达或提供于存储装置24上的经编码视频数据可包含由视频编码器20产生以供视频解码器30的视频解码器使用以解码视频数据的多种语法元素。这些语法元素可与在通信媒体上传输、存储于存储媒体上或存储于文件服务器上的经编码视频数据包含在一起。
显示装置32可与目的地装置14集成或在目的地装置14外部。在一些可行的实施方式中,目的地装置14可包含集成显示装置且也经配置以与外部显示装置接口连接。在其它可行的实施方式中,目的地装置14可为显示装置。一般来说,显示装置32向用户显示经解码视频数据,且可包括多种显示装置中的任一者,例如液晶显示器、等离子显示器、有机发光二极管显示器或另一类型的显示装置。
视频编码器20及视频解码器30可根据例如目前在开发中的下一代视频编解码压缩标准(H.266)操作且可遵照H.266测试模型(JEM)。替代地,视频编码器20及视频解码器30可根据例如ITU-TH.265标准,也称为高效率视频解码标准,或者,ITU-TH.264标准的其它专属或工业标准或这些标准的扩展而操作,ITU-TH.264标准替代地被称为MPEG-4第10部分,也称高级视频编码(advanced video coding,AVC)。然而,本申请的技术不限于任何特定解码标准。视频压缩标准的其它可行的实施方式包含MPEG-2和ITU-TH.263。
尽管未在图1中展示,但在一些方面中,视频编码器20及视频解码器30可各自与音频编码器及解码器集成,且可包含适当多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件及软件以处置共同数据流或单独数据流中的音频及视频两者的编码。如果适用,那么在一些可行的实施方式中,MUX-DEMUX单元可遵照ITUH.223多路复用器协议或例如用户数据报协议(UDP)的其它协议。
视频编码器20及视频解码器30各自可实施为多种合适编码器电路中的任一者,例如,一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。在技术部分地以软件实施时,装置可将软件的指令存储于合适的非暂时性计算机可读媒体中且使用一个或多个处理器以硬件执行指令,以执行本申请的技术。视频编码器20及视频解码器30中的每一者可包含于一个或多个编码器或解码器中,其中的任一者可在相应装置中集成为组合式编码器/解码器(CODEC)的部分。
本申请示例性地可涉及视频编码器20将特定信息“用信号发送”到例如视频解码器30的另一装置。然而,应理解,视频编码器20可通过将特定语法元素与视频数据的各种经编码部分相关联来用信号发送信息。即,视频编码器20可通过将特定语法元素存储到视频数据的各种经编码部分的头信息来“用信号发送”数据。在一些应用中,这些语法元素可在通过视频解码器30接收及解码之前经编码及存储(例如,存储到存储系统34或文件服务器36)。因此,术语“用信号发送”示例性地可指语法或用于解码经压缩视频数据的其它数据的传达,而不管此传达是实时或近实时地发生或在时间跨度内发生,例如可在编码时将语法元素存储到媒体时发生,语法元素接着可在存储到此媒体之后的任何时间通过解码装置检索。
JCT-VC开发了H.265(HEVC)标准。HEVC标准化基于称作HEVC测试模型(HM)的视频解码装置的演进模型。H.265的最新标准文档可从http://www.itu.int/rec/T-REC-H.265获得,最新版本的标准文档为H.265(12/16),该标准文档以全文引用的方式并入本文中。HM假设视频解码装置相对于ITU-TH.264/AVC的现有算法具有若干额外能力。例如,H.264提供9种帧内预测编码模式,而HM可提供多达35种帧内预测编码模式。
JVET致力于开发H.266标准。H.266标准化的过程基于称作H.266测试模型的视频解码装置的演进模型。H.266的算法描述可从http://phenix.int-evry.fr/jvet获得,其中最新的算法描述包含于JVET-F1001-v2中,该算法描述文档以全文引用的方式并入本文中。同时,可从https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/获得JEM测试模型的参考软件,同样以全文引用的方式并入本文中。
一般来说,HM的工作模型描述可将视频帧或图像划分成包含亮度及色度样本两者的树块或最大编码单元(largest coding unit,LCU)的序列,LCU也被称为CTU。树块具有与H.264标准的宏块类似的目的。条带包含按解码次序的数个连续树块。可将视频帧或图像分割成一个或多个条带。可根据四叉树将每一树块分裂成编码单元。例如,可将作为四叉树的根节点的树块分裂成四个子节点,且每一子节点可又为母节点且被分裂成另外四个子节点。作为四叉树的叶节点的最终不可分裂的子节点包括解码节点,例如,经解码视频块。与经解码码流相关联的语法数据可定义树块可分裂的最大次数,且也可定义解码节点的最小大小。
编码单元包含解码节点及预测单元(prediction unit,PU)以及与解码节点相关联的变换单元(transform unit,TU)。CU的大小对应于解码节点的大小且形状必须为正方形。CU的大小的范围可为8×8像素直到最大64×64像素或更大的树块的大小。每一CU可含有一个或多个PU及一个或多个TU。例如,与CU相关联的语法数据可描述将CU分割成一个或多个PU的情形。分割模式在CU是被跳过或经直接模式编码、帧内预测模式编码或帧间预测模式编码的情形之间可为不同的。PU可经分割成形状为非正方形。例如,与CU相关联的语法数据也可描述根据四叉树将CU分割成一个或多个TU的情形。TU的形状可为正方形或非正方形。
HEVC标准允许根据TU进行变换,TU对于不同CU来说可为不同的。TU通常基于针对经分割LCU定义的给定CU内的PU的大小而设定大小,但情况可能并非总是如此。TU的大小通常与PU相同或小于PU。在一些可行的实施方式中,可使用称作“残差四叉树”(residualqualtree,RQT)的四叉树结构将对应于CU的残差样本再分成较小单元。RQT的叶节点可被称作TU。可变换与TU相关联的像素差值以产生变换系数,变换系数可被量化。
一般来说,PU包含与预测过程有关的数据。例如,在PU经帧内模式编码时,PU可包含描述PU的帧内预测模式的数据。作为另一可行的实施方式,在PU经帧间模式编码时,PU可包含界定PU的运动矢量的数据。例如,界定PU的运动矢量的数据可描述运动矢量的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如,四分之一像素精确度或八分之一像素精确度)、运动矢量所指向的参考图像,和/或运动矢量的参考图像列表(例如,列表0、列表1或列表C)。
一般来说,TU使用变换及量化过程。具有一个或多个PU的给定CU也可包含一个或多个TU。在预测之后,视频编码器20可计算对应于PU的残差值。残差值包括像素差值,像素差值可变换成变换系数、经量化且使用TU扫描以产生串行化变换系数以用于熵解码。本申请通常使用术语“视频块”来指CU的解码节点。在一些特定应用中,本申请也可使用术语“视频块”来指包含解码节点以及PU及TU的树块,例如,LCU或CU。
视频序列通常包含一系列视频帧或图像。图像群组(group of picture,GOP)示例性地包括一系列、一个或多个视频图像。GOP可在GOP的头信息中、图像中的一者或多者的头信息中或在别处包含语法数据,语法数据描述包含于GOP中的图像的数目。图像的每一条带可包含描述相应图像的编码模式的条带语法数据。视频编码器20通常对个别视频条带内的视频块进行操作以便编码视频数据。视频块可对应于CU内的解码节点。视频块可具有固定或变化的大小,且可根据指定解码标准而在大小上不同。
作为一种可行的实施方式,HM支持各种PU大小的预测。假定特定CU的大小为2N×2N,HM支持2N×2N或N×N的PU大小的帧内预测,及2N×2N、2N×N、N×2N或N×N的对称PU大小的帧间预测。HM也支持2N×nU、2N×nD、nL×2N及nR×2N的PU大小的帧间预测的不对称分割。在不对称分割中,CU的一方向未分割,而另一方向分割成25%及75%。对应于25%区段的CU的部分由“n”后跟着“上(Up)”、“下(Down)”、“左(Left)”或“右(Right)”的指示来指示。因此,例如,“2N×nU”指水平分割的2N×2NCU,其中2N×0.5NPU在上部且2N×1.5NPU在底部。
在本申请中,“N×N”与“N乘N”可互换使用以指依照垂直维度及水平维度的视频块的像素尺寸,例如,16×16像素或16乘16像素。一般来说,16×16块将在垂直方向上具有16个像素(y=16),且在水平方向上具有16个像素(x=16)。同样地,N×N块一股在垂直方向上具有N个像素,且在水平方向上具有N个像素,其中N表示非负整数值。可将块中的像素排列成行及列。此外,块未必需要在水平方向上与在垂直方向上具有相同数目个像素。例如,块可包括N×M个像素,其中M未必等于N。
在使用CU的PU的帧内预测性或帧间预测性解码之后,视频编码器20可计算CU的TU的残差数据。PU可包括空间域(也称作像素域)中的像素数据,且TU可包括在将变换(例如,离散余弦变换(discrete cosine transform,DCT)、整数变换、小波变换或概念上类似的变换)应用于残差视频数据之后变换域中的系数。残差数据可对应于未经编码图像的像素与对应于PU的预测值之间的像素差。视频编码器20可形成包含CU的残差数据的TU,且接着变换TU以产生CU的变换系数。
在任何变换以产生变换系数之后,视频编码器20可执行变换系数的量化。量化示例性地指对系数进行量化以可能减少用以表示系数的数据的量从而提供进一步压缩的过程。量化过程可减少与系数中的一些或全部相关联的位深度。例如,可在量化期间将n位值降值舍位到m位值,其中n大于m。
JEM模型对视频图像的编码结构进行了进一步的改进,具体的,被称为“四叉树结合二叉树”(QTBT)的块编码结构被引入进来。QTBT结构摒弃了HEVC中的CU,PU,TU等概念,支持更灵活的CU划分形状,一个CU可以正方形,也可以是长方形。一个CTU首先进行四叉树划分,该四叉树的叶节点进一步进行二叉树划分。同时,在二叉树划分中存在两种划分模式,对称水平分割和对称竖直分割。二叉树的叶节点被称为CU,JEM的CU在预测和变换的过程中都不可以被进一步划分,也就是说JEM的CU,PU,TU具有相同的块大小。在现阶段的JEM中,CTU的最大尺寸为256×256亮度像素。
在一些可行的实施方式中,视频编码器20可利用预定义扫描次序来扫描经量化变换系数以产生可经熵编码的串行化向量。在其它可行的实施方式中,视频编码器20可执行自适应性扫描。在扫描经量化变换系数以形成一维向量之后,视频编码器20可根据上下文自适应性可变长度解码(CAVLC)、上下文自适应性二进制算术解码(CABAC)、基于语法的上下文自适应性二进制算术解码(SBAC)、概率区间分割熵(PIPE)解码或其他熵解码方法来熵解码一维向量。视频编码器20也可熵编码与经编码视频数据相关联的语法元素以供视频解码器30用于解码视频数据。
为了执行CABAC,视频编码器20可将上下文模型内的上下文指派给待传输的符号。上下文可与符号的相邻值是否为非零有关。为了执行CAVLC,视频编码器20可选择待传输的符号的可变长度码。可变长度解码(VLC)中的码字可经构建以使得相对较短码对应于可能性较大的符号,而较长码对应于可能性较小的符号。以这个方式,VLC的使用可相对于针对待传输的每一符号使用相等长度码字达成节省码率的目的。基于指派给符号的上下文可以确定CABAC中的概率。
在本申请实施例中,视频编码器可执行帧间预测以减少图像之间的时间冗余。如前文所描述,根据不同视频压缩编解码标准的规定,CU可具有一个或多个预测单元PU。换句话说,多个PU可属于CU,或者PU和CU的尺寸相同。在本文中当CU和PU尺寸相同时,CU的分割模式为不分割,或者即为分割为一个PU,且统一使用PU进行表述。当视频编码器执行帧间预测时,视频编码器可用信号通知视频解码器用于PU的运动信息。示例性的,PU的运动信息可以包括:参考图像索引、运动矢量和预测方向标识。运动矢量可指示PU的图像块(也称视频块、像素块、像素集合等)与PU的参考块之间的位移。PU的参考块可为类似于PU的图像块的参考图像的一部分。参考块可定位于由参考图像索引和预测方向标识指示的参考图像中。
为了减少表示PU的运动信息所需要的编码比特的数目,视频编码器可根据合并预测模式或高级运动矢量预测模式过程产生用于PU中的每一者的候选运动信息列表(后文简称为候选者列表)。用于PU的候选者列表中的每一候选者可表示一组运动信息。运动信息可包括运动矢量MV和参考图像指示信息。当然,运动信息也可以只包含两者之一或者全部包含,例如在编解码端共同约定参考图像的情况下,运动信息可以仅包含运动矢量。由候选列表中的一些候选者表示的运动信息可基于其它PU的运动信息。如果候选者表示指定空间候选者位置(spatial candidate positions)或时间候选者位置(temporal candidatepositions)中的一者的运动信息,则本申请可将所述候选者称作“原始”候选运动信息。举例来说,对于合并模式,在本文中也称为合并预测模式,可存在五个原始空间候选者位置和一个原始时间候选者位置。在一些实例中,视频编码器还可以通过一些手段来产生附加或额外候选运动信息,例如插入零运动矢量作为候选运动信息来产生额外候选运动信息。这些额外候选运动信息不被视为原始候选运动信息且在本申请中可称作后期或人工产生的候选运动信息。
本申请的技术一般涉及用于在视频编码器处产生候选者列表的技术和用于在视频解码器处产生相同候选者列表的技术。视频编码器和视频解码器可通过实施用于构建候选者列表的相同技术来产生相同候选者列表。举例来说,视频编码器和视频解码器两者可构建具有相同数目的候选者(例如,五个候选者)的列表。视频编码器和解码器可首先考虑空间候选者(例如,同一图像中的相邻块),接着考虑时间候选者(例如,不同图像中的候选者),且最后可考虑人工产生的候选者直到将所要数目的候选者添加到列表为止。根据本申请的技术,可在候选列表构建期间针对某些类型的候选运动信息利用修剪操作以便从候选列表移除重复,而对于其它类型的候选者,可能不使用修剪以便减小解码器复杂性。举例来说,对于空间候选者集合和对于时间候选者,可执行修剪操作以从候选者的列表排除具有重复运动信息的候选者。
在产生用于CU的PU的候选列表之后,视频编码器可从候选列表选择候选运动信息且在码流中输出表示所选择的候选运动信息的索引标识。选择的候选运动信息可为具有产生最紧密地匹配正被解码的PU的预测块的运动信息。前述索引标识可指示在候选列表中所选择的候选运动信息的位置。视频编码器还可基于由PU的运动信息指示的参考块产生用于PU的预测块。可基于由选择的候选运动信息确定PU的运动信息。举例来说,在合并模式中,确定选择的候选运动信息即为PU的运动信息。在AMVP模式中,PU的运动信息可基于PU的运动矢量差和选择的候选运动信息确定。视频编码器可基于CU的PU的预测性图像块(简称为预测块)和用于CU的原始图像块产生用于CU的一个或多个残差图像块(简称为残差块)。视频编码器可接着编码一个或多个残差块且输出码流。
码流可包括用于识别PU的候选列表中的选定候选运动信息的数据。视频解码器可基于由PU的候选列表中的选定候选运动信息确定PU的运动信息。视频解码器可基于PU的运动信息识别用于PU的一或多个参考块。在识别PU的一或多个参考块之后,视频解码器可基于PU的一或多个参考块产生用于PU的预测块。视频解码器可基于用于CU的PU的预测块和用于CU的一个或多个残差块来重构用于CU的图像块。
为了易于解释,本申请可将位置或图像块描述为与CU或PU具有各种空间关系。此描述可解释为是指位置或图像块和与CU或PU相关联的图像块具有各种空间关系。此外,本申请可将视频解码器当前在解码的PU称作当前PU,也称为当前待处理图像块。本申请可将视频解码器当前在解码的CU称作当前CU。本申请可将视频解码器当前在解码的图像称作当前图像。应理解,本申请同时适用于PU和CU具有相同尺寸,或者PU即为CU的情况,统一使用PU来表示。
如前文简短地描述,视频编码器20可使用帧间预测以产生用于CU的PU的预测块和运动信息。在一些例子中,PU的运动信息可能与一个或多个邻近PU(即,其图像块在空间上或时间上在该PU的图像块附近的PU)的运动信息相同或类似。因为邻近PU经常具有类似运动信息,所以视频编码器20可参考邻近PU的运动信息来编码该PU的运动信息。参考邻近PU的运动信息来编码该PU的运动信息可减少码流中指示该PU的运动信息所需要的编码比特的数目。
视频编码器20可以各种方式参考邻近PU的运动信息来编码该PU的运动信息。举例来说,视频编码器20可指示该PU的运动信息与附近PU的运动信息相同。本申请可使用合并模式来指代指示该PU的运动信息与邻近PU的运动信息相同或可从邻近PU的运动信息导出。在另一可行的实施方式中,视频编码器20可计算用于该PU的运动矢量差(Motion VectorDifference,MVD)。MVD指示该PU的运动矢量与邻近PU的运动矢量之间的差。视频编码器20可将MVD而非该PU的运动矢量包括于该PU的运动信息中。在码流中表示MVD比表示该PU的运动矢量所需要的编码比特少。本申请可使用高级运动矢量预测模式指代通过使用MVD和识别候选者(即候选运动信息)的索引值来通知解码端该PU的运动信息。
为了使用合并模式或AMVP模式以信号通知解码端该PU的运动信息,视频编码器20可产生用于该PU的候选列表。候选列表可包括一或多个候选者(即一组或多组候选运动信息)。用于该PU的候选列表中的每一个候选者表示一组运动信息。一组运动信息可包括运动矢量、参考图像列表和与参考图像列表对应的参考图像索引。
在产生用于PU的候选列表之后,视频编码器20可从用于PU的候选列表中选择多个候选者中的一者。举例来说,视频编码器可比较每一候选者与正被解码的PU且可选择具有所要求的码率-失真代价的候选者。视频编码器20可输出用于PU的候选者索引。候选者索引可识别选定的候选者在候选列表中的位置。
此外,视频编码器20可基于由PU的运动信息指示的参考块产生用于PU的预测块。可基于由用于PU的候选列表中的选定的候选运动信息确定PU的运动信息。
当视频解码器30接收到码流时,视频解码器30可产生用于CU的PU中的每一者的候选列表。由视频解码器30针对PU产生的候选列表可与由视频编码器20针对PU产生的候选列表相同。从码流中解析得到的语法元素可指示在PU的候选列表中选择的候选运动信息的位置。在产生用于PU的候选列表之后,视频解码器30可基于由PU的运动信息指示的一或多个参考块产生用于PU的预测块。视频解码器30可基于在用于PU的候选列表中选择的候选运动信息确定PU的运动信息。视频解码器30可基于用于PU的预测块和用于CU的残差块重构用于CU的图像块。
应当理解,在一种可行的实施方式中,在解码端,候选列表的构建与从码流中解析选择的候选者在候选列表中的位置是相互独立,可以任意先后或者并行进行的。
在另一种可行的实施方式中,在解码端,首先从码流中解析选定的候选者在候选列表中的位置,根据解析出来的位置构建候选列表,在该实施方式中,不需要构建全部的候选列表,只需要构建到该解析出来的位置处的候选列表,即能够确定该位置处的候选者即可。举例来说,当解析码流得出选定的候选者为候选列表中索引标识为3的候选者时,仅需要构建从索引为0到索引为3的候选列表,即可确定索引标识为3的候选者,可以达到减小复杂度,提高解码效率的技术效果。
图2为本申请实施例中视频编码器20的一种示意性框图。视频编码器20可执行视频条带内的视频块的帧内解码和帧间解码。帧内解码依赖于空间预测来减少或去除给定视频帧或图像内的视频的空间冗余。帧间解码依赖于时间预测来减少或去除视频序列的邻近帧或图像内的视频的时间冗余。帧内模式(I模式)可指若干基于空间的压缩模式中的任一者。例如单向预测(P模式)或双向预测(B模式)等帧间模式可指若干基于时间的压缩模式中的任一者。
在图2的可行的实施方式中,视频编码器20包含分割单元35、预测单元41、参考图像存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测单元41包含帧间预测单元43和帧内预测单元46。帧间预测单元43可以包括运动估计单元42和运动补偿单元44。对于视频块重构建,视频编码器20也可包含反量化单元58、反变换单元60和求和器(亦称为重建器)62。也可包含解块滤波器(图2中未展示)以对块边界进行滤波从而从经重构建视频中去除块效应伪影。在需要时,解块滤波器将通常对求和器62的输出进行滤波。除了解块滤波器之外,也可使用额外环路滤波器(环路内或环路后)。
如图2中所展示,视频编码器20接收视频数据,且分割单元35将数据分割成视频块。此分割也可包含分割成条带、图像块或其它较大单元,以及(例如)根据LCU及CU的四叉树结构进行视频块分割。视频编码器20示例性地说明编码在待编码的视频条带内的视频块的组件。一般来说,条带可划分成多个视频块(且可能划分成称作图像块的视频块的集合)。
预测单元41可基于编码质量与代价计算结果(例如,码率-失真代价,RDcost)选择当前视频块的多个可能解码模式中的一者,例如多个帧内解码模式中的一者或多个帧间解码模式中的一者。预测单元41可将所得经帧内解码或经帧间解码块提供到求和器50以产生残差块数据且将所得经帧内解码或经帧间解码块提供到求和器62以重构建经编码块从而用作参考图像。
预测单元41内的帧间预测单元43(例如运动估计单元42及运动补偿单元44)执行相对于一个或多个参考图像中的一个或多个预测块的当前视频块的帧间预测性解码以提供时间压缩。运动估计单元42用于根据视频序列的预定模式确定视频条带的帧间预测模式。预定模式可将序列中的视频条带指定为P条带、B条带或GPB条带。运动估计单元42及运动补偿单元44可高度集成,这里为方便理解概念而分别说明。通过运动估计单元42所执行的运动估计以产生估计视频块(亦称为图像块)的运动矢量的过程。例如,运动矢量可指示当前视频帧或图像内的视频块的PU相对于参考图像内的预测块的位移。
预测块为依据像素差而被发现为紧密匹配待解码的视频块的PU的块,像素差可通过绝对差和(SAD)、平方差和(SSD)或其它差度量确定。在一些可行的实施方式中,视频编码器20可计算存储于参考图像存储器64中的参考图像的子整数(sub-integer)像素位置的值。例如,视频编码器20可内插参考图像的四分之一像素位置、八分之一像素位置或其它分数像素位置的值。因此,运动估计单元42可执行相对于全像素位置及分数像素位置的运动搜索且输出具有分数像素精确度的运动矢量。
运动估计单元42通过比较PU的位置与参考图像的预测块的位置而计算经帧间解码条带中的视频块的PU的运动矢量。可从第一参考图像列表(列表0)或第二参考图像列表(列表1)选择参考图像,列表中的每一者识别存储于参考图像存储器64中的一个或多个参考图像。运动估计单元42将经计算运动矢量发送到熵编码单元56及运动补偿单元44。
由运动补偿单元44执行的运动补偿可涉及基于由运动估计所确定的运动矢量提取或产生预测块。在接收当前视频块的PU的运动矢量后,运动补偿单元44即可在参考图像列表中的一者中定位运动矢量所指向的预测块。视频编码器20通过从正解码的当前视频块的像素值减去预测块的像素值来形成残差视频块,从而形成像素差值。像素差值形成块的残差数据,且可包含亮度及色度差分量两者。求和器50表示执行此减法运算的一个或多个组件。运动补偿单元44也可产生与视频块及视频条带相关联的语法元素以供视频解码器30用于解码视频条带的视频块。
如果PU位于B条带中,则含有PU的图像可与称作“列表0”和“列表1”的两个参考图像列表相关联。在一些可行的实施方式中,含有B条带的图像可与为列表0和列表1的组合的列表组合相关联。
此外,如果PU位于B条带中,则运动估计单元42可针对PU执行单向预测或双向预测,其中,在一些可行的实施方式中,双向预测为分别基于列表0和列表1的参考图像列表的图像进行的预测,在另一些可行的实施方式中,双向预测为分别基于当前帧在显示顺序上的已重建的未来帧和已重建的过去帧进行的预测。当运动估计单元42针对PU执行单向预测时,运动估计单元42可在列表0或列表1的参考图像中搜索用于PU的参考块。运动估计单元42可接着产生指示列表0或列表1中的含有参考块的参考图像的参考帧索引和指示PU与参考块之间的空间位移的运动矢量。运动估计单元42可输出参考帧索引、预测方向标识和运动矢量作为PU的运动信息。预测方向标识可指示参考帧索引指示列表0或列表1中的参考图像。例如预测方向标识1指示列表list0,预测方向标识2指示列表list1,预测方向标识3指示双向预测,即list0和list1。运动补偿单元44可基于由PU的运动信息指示的参考块产生PU的预测性图像块。
当运动估计单元42针对PU执行双向预测时,运动估计单元42可在列表0中的参考图像中搜索用于PU的参考块且还可在列表1中的参考图像中搜索用于PU的另一参考块。运动估计单元42可接着产生指示列表0和列表1中的含有参考块的参考图像的参考索引和指示参考块与PU之间的空间位移的运动矢量。运动估计单元42可输出PU的参考索引和运动矢量作为PU的运动信息。运动补偿单元44可基于由PU的运动信息指示的参考块产生PU的预测性图像块。
在一些可行的实施方式中,运动估计单元42不向熵编码单元56输出用于PU的运动信息的完整集合。而是,运动估计单元42可参考另一PU的运动信息来用信号通知PU的运动信息。举例来说,运动估计单元42可确定PU的运动信息充分类似于相邻PU的运动信息。在此实施方式中,运动估计单元42可在与PU相关联的语法结构中指示一个指示值,所述指示值向视频解码器30指示PU具有与相邻PU相同的运动信息或具有可从相邻PU导出的运动信息。在另一实施方式中,运动估计单元42可在与PU相关联的语法结构中识别与相邻PU相关联的候选者和运动矢量差(MVD)。MVD指示PU的运动矢量和与相邻PU相关联的所指示候选者之间的差。视频解码器30可使用所指示候选者和MVD来确定PU的运动矢量。
如前文所描述,预测单元41可产生用于CU的每一PU的候选者列表。候选者列表中的一或多者可包括一组或多组原始候选运动信息和从原始候选运动信息导出的一组或多组附加候选运动信息。
预测单元41内的帧内预测单元46可执行相对于在与待解码的当前块相同的图像或条带中的一个或多个相邻块的当前视频块的帧内预测性解码以提供空间压缩。因此,作为通过运动估计单元42及运动补偿单元44执行的帧间预测(如前文所描述)的替代,帧内预测单元46可帧内预测当前块。具体地说,帧内预测单元46可确定用以编码当前块的帧内预测模式。在一些可行的实施方式中,帧内预测单元46可(例如)在单独编码遍历期间使用各种帧内预测模式来编码当前块,且帧内预测单元46(或在一些可行的实施方式中,模式选择单元40)可从经测试模式选择使用的适当帧内预测模式。
在预测单元41经由帧间预测或帧内预测产生当前视频块的预测块之后,视频编码器20通过从当前视频块减去预测块而形成残差视频块。残差块中的残差视频数据可包含于一个或多个TU中且应用于变换处理单元52。变换处理单元52使用例如离散余弦变换(DCT)或概念上类似的变换的变换(例如,离散正弦变换DST)将残差视频数据变换成残差变换系数。变换处理单元52可将残差视频数据从像素域转换到变换域(例如,频域)。
变换处理单元52可将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小码率。量化过程可减少与系数中的一些或全部相关联的比特深度。可通过调整量化参数来修改量化的程度。在一些可行的实施方式中,量化单元54可接着执行包含经量化变换系数的矩阵的扫描。替代地,熵编码单元56可执行扫描。
在量化之后,熵编码单元56可熵编码经量化变换系数。例如,熵编码单元56可执行上下文自适应性可变长度解码(CAVLC)、上下文自适应性二进制算术解码(CABAC)、基于语法的上下文自适应性二进制算术解码(SBAC)、概率区间分割熵(PIPE)解码或另一熵编码方法或技术。熵编码单元56也可熵编码正经解码的当前视频条带的运动矢量及其它语法元素。在通过熵编码单元56进行熵编码之后,可将经编码码流传输到视频解码器30或存档以供稍后传输或由视频解码器30检索。
熵编码单元56可编码根据本申请的技术指示选定帧内预测模式的信息。视频编码器20可在可包含多个帧内预测模式索引表和多个经修改帧内预测模式索引表(也称作码字映射表)的所传输码流配置数据中包含各种块的编码上下文的定义及用于上下文中的每一者的MPM、帧内预测模式索引表和经修改帧内预测模式索引表的指示。
反量化单元58及反变换单元60分别应用反量化及反变换,以在像素域中重构建残差块以供稍后用作参考图像的参考块。运动补偿单元44可通过将残差块与参考图像列表中的一者内的参考图像中的一者的预测块相加来计算重建块。运动补偿单元44也可将一个或多个内插滤波器应用于经重构建残差块以计算子整数像素值以用于运动估计。求和器62将经重构建残差块与通过运动补偿单元44所产生的经运动补偿的预测块相加以产生重建块,所述重建块作为参考块以供存储于参考图像存储器64中。参考块可由运动估计单元42及运动补偿单元44用作参考块以帧间预测后续视频帧或图像中的块。
应当理解的是,视频编码器20的其它的结构变化可用于编码视频流。例如,对于某些图像块或者图像帧,视频编码器20可以直接地量化残差信号而不需要经变换单元52处理,相应地也不需要经反变换单元60处理;或者,对于某些图像块或者图像帧,视频编码器20没有产生残差数据,相应地不需要经变换单元52、量化单元54、反量化单元58和反变换单元60处理;或者,视频编码器20可以将经重构图像块作为参考块直接地进行存储而不需要经滤波器单元处理;或者,视频编码器20中量化单元54和反量化单元58可以合并在一起。环路滤波单元是可选的,以及针对无损压缩编码的情况下,变换单元52、量化单元54、反量化单元58和反变换单元60是可选的。应当理解的是,根据不同的应用场景,帧间预测单元和帧内预测单元可以是被选择性的启用,而在本案中,帧间预测单元被启用。
图3为本申请实施例中视频解码器30的一种示意性框图。在图3的可行的实施方式中,视频解码器30包含熵编码单元80、预测单元81、反量化单元86、反变换单元88、求和器90(即重建器)和参考图像存储器92。一种变型下,参考图像存储器92亦可以设置在视频解码器30之外。预测单元81包括帧间预测单元82和帧内预测单元84。帧间预测单元82,例如可以是运动补偿单元82。在一些可行的实施方式中,视频解码器30可执行与关于来自图4A或图4B的视频编码器20描述的编码流程的示例性地互逆的解码流程。
在解码过程期间,视频解码器30从视频编码器20接收表示经编码视频条带的视频块及相关联的语法元素的经编码视频码流。视频解码器30的熵编码单元80熵解码码流以产生经量化系数、运动矢量及其它语法元素。熵编码单元80将运动矢量及其它语法元素转递到预测单元81。视频解码器30可在视频条带层级和/或视频块层级处接收语法元素。
在视频条带经解码为经帧内解码(I)条带时,预测单元81的帧内预测单元84可基于用信号发送的帧内预测模式及来自当前帧或图像的先前经解码块的数据而产生当前视频条带的视频块的预测数据。
在视频图像经解码为经帧间解码(例如,B、P或GPB)条带时,预测单元81的运动补偿单元82基于从熵编码单元80所接收的运动矢量及其它语法元素而产生当前视频图像的视频块的预测块。预测块可从参考图像列表中的一者内的参考图像中的一者产生。视频解码器30可基于存储于参考图像存储器92中的参考图像使用默认构建技术来构建参考图像列表(列表0及列表1)。
运动补偿单元82通过解析运动矢量及其它语法元素来确定当前视频条带的视频块的预测信息,且使用预测信息来产生正经解码的当前视频块的预测块。例如,运动补偿单元82使用所接收的语法元素中的一些来确定用以解码视频条带的视频块的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的参考图像列表中的一者或多者的构建信息、条带的每一经帧间编码视频块的运动矢量、条带的每一经帧间解码视频块的帧间预测状态及用以解码当前视频条带中的视频块的其它信息。
运动补偿单元82也可基于内插滤波器执行内插。运动补偿单元82可使用如由视频编码器20在视频块的编码期间所使用的内插滤波器来计算参考块的子整数像素的内插值。在此应用中,运动补偿单元82可从所接收的语法元素确定由视频编码器20使用的内插滤波器且使用内插滤波器来产生预测块。
如果PU是使用帧间预测而编码,则运动补偿单元82可产生用于PU的候选者列表。码流中可包括识别选定候选者在PU的候选者列表中的位置的数据。在产生用于PU的候选者列表之后,运动补偿单元82可基于由PU的运动信息指示的一或多个参考块产生用于PU的预测性图像块。PU的参考块可在与所述PU不同的时间图像中。运动补偿单元82可基于由PU的候选者列表中的选定的运动信息确定PU的运动信息。
反量化单元86对码流中所提供且通过熵编码单元80所解码的经量化变换系数进行反量化(例如,解量化)。反量化过程可包含使用通过视频编码器20针对视频条带中的每一视频块所计算的量化参数确定量化的程度,且同样地确定应应用的反量化的程度。反变换单元88将反变换(例如,反DCT、反整数变换或概念上类似的反变换过程)应用于变换系数以便在像素域中产生残差块。
在运动补偿单元82基于运动矢量及其它语法元素产生当前视频块的预测块之后,视频解码器30通过将来自反变换单元88的残差块与通过运动补偿单元82产生的对应预测块求和来形成经解码视频块。求和器90(即重建器)表示执行此求和运算的一个或多个组件。在需要时,也可应用解块滤波器来对经解码块进行滤波以便去除块效应伪影。其它环路滤波器(在解码环路中或在解码环路之后)也可用以使像素转变平滑,或以其它方式改进视频质量。给定帧或图像中的经解码视频块接着存储于参考图像存储器92中,参考图像存储器92存储供后续运动补偿所使用的参考图像。参考图像存储器92也存储供稍后呈现于例如图1的显示装置32的显示装置上的经解码视频。
如前文所注明,本申请的技术示例性地涉及帧间解码。应理解,本申请的技术可通过本申请中所描述的视频解码器中的任一者进行,视频解码器包含(例如)如关于图1到3所展示及描述的视频编码器20及视频解码器30。即,在一种可行的实施方式中,关于图2所描述的预测单元41可在视频数据的块的编码期间在执行帧间预测时执行下文中所描述的特定技术。在另一可行的实施方式中,关于图3所描述的预测单元81可在视频数据的块的解码期间在执行帧间预测时执行下文中所描述的特定技术。因此,对一般性“视频编码器”或“视频解码器”的引用可包含视频编码器20、视频解码器30或另一视频编码或编码单元。
应当理解的是,视频解码器30的其它结构变化可用于解码经编码视频位流。例如,视频解码器30可以不经滤波单元处理而生成输出视频流;或者,对于某些图像块或者图像帧,视频解码器30的熵解码单元80没有解码出经量化的系数,相应地不需要经反量化单元86和反变换单元88处理。环路滤波单元是可选的;以及针对无损压缩的情况下,反量化单元86和反变换单元88是可选的。应当理解的是,根据不同的应用场景,帧间预测单元和帧内预测单元可以是被选择性的启用,而在本案中,帧间预测单元被启用。
图4A为本申请实施例中融合(Merge)模式的一种示例性流程图。视频编码器(例如视频编码器20)可执行合并操作200。在其它可行的实施方式中,视频编码器可执行不同于合并操作200的合并操作。举例来说,在其它可行的实施方式中,视频编码器可执行合并操作,其中视频编码器执行比合并操作200多、少的步骤或与合并操作200不同的步骤。在其它可行的实施方式中,视频编码器可以不同次序或并行地执行合并操作200的步骤。编码器还可对以跳跃(skip)模式编码的PU执行合并操作200。
在视频编码器开始合并操作200之后,视频编码器可产生用于当前PU的候选者列表(202)。视频编码器可以各种方式产生用于当前PU的候选者列表。举例来说,视频编码器可根据下文关于图7到图13描述的实例技术中的一者产生用于当前PU的候选者列表。
如前文所述,用于当前PU的候选者列表可包括时间候选运动信息(简称时间候选者)。时间候选运动信息可指示时域对应(co-located)的PU的运动信息。co-located的PU可在空间上与当前PU处于图像帧中的同一个位置,但在参考图像而非当前图像中。本申请可将包括时域对应的PU的参考图像称作相关参考图像。本申请可将相关参考图像的参考图像索引称作相关参考图像索引。如前文所描述,当前图像可与一个或多个参考图像列表(例如,列表0、列表1等)相关联。参考图像索引可通过指示参考图像在某一个参考图像列表中的位置来指示参考图像。在一些可行的实施方式中,当前图像可与组合参考图像列表相关联。
在一些视频编码器中,相关参考图像索引为涵盖与当前PU相关联的参考索引源位置的PU的参考图像索引。在这些视频编码器中,与当前PU相关联的参考索引源位置邻接于当前PU左方或邻接于当前PU上方。在本申请中,如果与PU相关联的图像块包括特定位置,则PU可“涵盖”所述特定位置。
然而,可存在以下例子:与当前PU相关联的参考索引源位置在当前CU内。在这些例子中,如果PU在当前CU上方或左方,则涵盖与当前PU相关联的参考索引源位置的PU可被视为可用。然而,视频编码器可需要存取当前CU的另一PU的运动信息以便确定含有co-located PU的参考图像。因此,这些视频编码器可使用属于当前CU的PU的运动信息(即,参考图像索引)以产生用于当前PU的时间候选者。换句话说,这些视频编码器可使用属于当前CU的PU的运动信息产生时间候选者。因此,视频编码器不能并行地产生用于当前PU和涵盖与当前PU相关联的参考索引源位置的PU的候选者列表。
根据本申请的技术,视频编码器可在不参考任何其它PU的参考图像索引的情况下显式地设定相关参考图像索引。此可使得视频编码器能够并行地产生用于当前PU和当前CU的其它PU的候选者列表。因为视频编码器显式地设定相关参考图像索引,所以相关参考图像索引不基于当前CU的任何其它PU的运动信息。在视频编码器显式地设定相关参考图像索引的一些可行的实施方式中,视频编码器可始终将相关参考图像索引设定为固定的预定义预设参考图像索引(例如0)。以此方式,视频编码器可基于由预设参考图像索引指示的参考帧中的co-located PU的运动信息产生时间候选者,且可将时间候选者包括于当前CU的候选者列表中。
在视频编码器显式地设定相关参考图像索引的可行的实施方式中,视频编码器可显式地在语法结构(例如图像标头、条带标头、APS或另一语法结构)中用信号通知相关参考图像索引。在此可行的实施方式中,视频编码器可用信号通知解码端用于每一LCU(即CTU)、CU、PU、TU或其它类型的子块的相关参考图像索引。举例来说,视频编码器可用信号通知:用于CU的每一PU的相关参考图像索引等于“1”。
在一些可行的实施方式中,相关参考图像索引可经隐式地而非显式地设定。在这些可行的实施方式中,视频编码器可使用由涵盖当前CU外部的位置的PU的参考图像索引指示的参考图像中的PU的运动信息产生用于当前CU的PU的候选者列表中的每一时间候选者,即使这些位置并不严格地邻近当前PU。
在产生用于当前PU的候选者列表之后,视频编码器可产生与候选者列表中的候选者相关联的预测性图像块(204)。视频编码器可通过基于所指示候选者的运动信息确定当前PU的运动信息和接着基于由当前PU的运动信息指示的一个或多个参考块产生预测性图像块来产生与候选者相关联的预测性图像块。视频编码器可从候选者列表选择候选者中的一者(206)。视频编码器可以各种方式选择候选者。举例来说,视频编码器可基于对与候选者相关联的预测性图像块的每一者的码率-失真代价分析来选择候选者中的一者。
在选择候选者之后,视频编码器可输出候选者的索引(208)。该索引可指示选定候选者在候选者列表中的位置。在一些可行的实施方式中,该索引可表示为“merge_idx”。
图4B为本申请实施例中高级运动矢量预测(AMVP)模式的一种示例性流程图。视频编码器(例如视频编码器20)可执行AMVP操作210。
在视频编码器开始AMVP操作210之后,视频编码器可产生用于当前PU的一个或多个运动矢量(211)。视频编码器可执行整数运动估计和分数运动估计以产生用于当前PU的运动矢量。如前文所描述,当前图像可与两个参考图像列表(列表0和列表1)相关联。如果当前PU经单向预测,则视频编码器可产生用于当前PU的列表0运动矢量或列表1运动矢量。列表0运动矢量可指示当前PU的图像块与列表0中的参考图像中的参考块之间的空间位移。列表1运动矢量可指示当前PU的图像块与列表1中的参考图像中的参考块之间的空间位移。如果当前PU经双向预测,则视频编码器可产生用于当前PU的列表0运动矢量和列表1运动矢量。
在产生用于当前PU的一个或多个运动矢量之后,视频编码器可产生用于当前PU的预测性图像块(简称为预测块)(212)。视频编码器可基于由用于当前PU的一个或多个运动矢量指示的一个或多个参考块产生用于当前PU的预测性图像块。
另外,视频编码器可产生用于当前PU的候选列表(213)。视频解码器可以各种方式产生用于当前PU的候选预测运动矢量列表。举例来说,视频编码器可根据下文关于图6到图13描述的可行的实施方式中的一个或多个产生用于当前PU的候选列表。在一些可行的实施方式中,当视频编码器在AMVP操作210中产生候选列表时,候选预测运动矢量列表可包括两个或三个候选预测运动矢量。相比而言,当视频编码器在合并操作中产生候选预测运动矢量列表时,候选预测运动矢量列表可包括更多候选预测运动矢量(例如,五个或七个候选预测运动矢量)。
在产生用于当前PU的候选列表之后,视频编码器可产生用于候选列表中的每一候选预测运动矢量的一个或多个运动矢量预测残差值(亦称为运动矢量差MVD)(214)。视频编码器可通过确定由候选预测运动矢量指示的运动矢量与当前PU的对应运动矢量之间的差来产生用于候选预测运动矢量的运动矢量差。
如果当前PU经单向预测,则视频编码器可产生用于每一候选预测运动矢量的单一MVD。如果当前PU经双向预测,则视频编码器可产生用于每一候选预测运动矢量的两个MVD。第一MVD可指示候选预测运动矢量的运动矢量与当前PU的列表0运动矢量之间的差。第二MVD可指示候选预测运动矢量的运动矢量与当前PU的列表1运动矢量之间的差。
视频编码器可从候选预测运动矢量列表选择候选预测运动矢量中的一个或多个(215)。视频编码器可以各种方式选择一个或多个候选预测运动矢量。举例来说,视频编码器可选择具有最小误差地匹配待编码的运动矢量的相关联运动矢量的候选预测运动矢量,此可减少表示用于候选预测运动矢量的运动矢量差所需的位数目。
在选择一个或多个候选预测运动矢量之后,视频编码器可输出用于当前PU的一个或多个参考图像索引、一个或多个候选预测运动矢量索引,和用于一个或多个选定候选预测运动矢量的一个或多个运动矢量差(216)。
在当前图像与两个参考图像列表(列表0和列表1)相关联且当前PU经单向预测的例子中,视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)或用于列表1的参考图像索引(“ref_idx_11”)。视频编码器还可输出指示用于当前PU的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。或者,视频编码器可输出指示用于当前PU的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于当前PU的列表0运动矢量或列表1运动矢量的MVD。
在当前图像与两个参考图像列表(列表0和列表1)相关联且当前PU经双向预测的例子中,视频编码器可输出用于列表0的参考图像索引(“ref_idx_10”)和用于列表1的参考图像索引(“ref_idx_11”)。视频编码器还可输出指示用于当前PU的列表0运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_10_flag”)。另外,视频编码器可输出指示用于当前PU的列表1运动矢量的选定候选预测运动矢量在候选预测运动矢量列表中的位置的候选预测运动矢量索引(“mvp_11_flag”)。视频编码器还可输出用于当前PU的列表0运动矢量的MVD和用于当前PU的列表1运动矢量的MVD。
图5为本申请实施例中由视频解码器(例如视频解码器30)执行的运动补偿的一种示例性流程图。
当视频解码器执行运动补偿操作220时,视频解码器可接收用于当前PU的选定候选者的指示(222)。举例来说,视频解码器可接收指示选定候选者在当前PU的候选者列表内的位置的候选者索引。
如果当前PU的运动信息是使用融合merge模式进行编码且当前PU经双向预测,则视频解码器可接收第一候选者索引和第二候选者索引。第一候选者索引指示用于当前PU的列表0运动矢量的选定候选者在候选者列表中的位置。第二候选者索引指示用于当前PU的列表1运动矢量的选定候选者在候选者列表中的位置。在一些可行的实施方式中,单一语法元素可用以识别两个候选者索引。
另外,视频解码器可产生用于当前PU的候选者列表(224)。视频解码器可以各种方式产生用于当前PU的此候选者列表。举例来说,视频解码器可使用下文参看图6到图10描述的技术来产生用于当前PU的候选者列表。当视频解码器产生用于候选者列表的时间候选者时,视频解码器可显式地或隐式地设定识别包括co-located PU的参考图像的参考图像索引,如前文关于图4A或图4B所描述。
在产生用于当前PU的候选者列表之后,视频解码器可基于由用于当前PU的候选者列表中的一个或多个选定候选者指示的运动信息确定当前PU的运动信息(225)。举例来说,如果当前PU的运动信息是使用合并模式而编码,则当前PU的运动信息可与由选定候选者指示的运动信息相同。如果当前PU的运动信息是使用AMVP模式而编码,则视频解码器可使用由所述或所述选定候选者指示的一个或多个运动矢量和码流中指示的一个或多个MVD来重建当前PU的一个或多个运动矢量。当前PU的参考图像索引和预测方向标识可与所述一个或多个选定候选者的参考图像索引和预测方向标识相同。在确定当前PU的运动信息之后,视频解码器可基于由当前PU的运动信息指示的一个或多个参考块产生用于当前PU的预测性图像块(226)。
图6为本申请实施例中当前图像块(例如编码单元CU)、与其关联的空域邻近图像块以及时域邻近图像块的一种示例性示意图,说明CU600和与CU600相关联的示意性的候选者位置1到10的示意图。候选者位置1到5表示与CU600在同一图像中的空间候选者。候选者位置1定位于CU600左方。候选者位置2定位于CU600上方。候选者位置3定位于CU600右上方。候选者位置4定位于CU600左下方。候选者位置5定位于CU600左上方。候选者位置6到7表示与CU600的co-located块602相关联的时间候选者,其中co-located块为在参考图像(即临近已编码图像)中与CU600具有相同的大小、形状和坐标的图像块。候选者位置6位于co-located块602的右下角。候选者位置7定位于co-located块602右下中间位置,或者或者co-located块602左上中间位置。图6为用以提供帧间预测单元(例如具体是运动估计单元42或运动补偿单元82)可产生候选者列表的候选者位置的示意性实施方式。图6的候选者位置1至5为用以提供帧内预测单元可产生候选者列表的候选者位置的示意性实施方式。
需要说明的是,图6中空间候选者位置和时间候选者位置仅仅是示意,候选者位置包括但不限于此。在一些可行的实施方式中,空间候选者位置示例性的还可以包括与待处理图像块相距预设距离以内,但不与待处理图像块邻接的位置。
本申请实施例不仅适用于合并预测模式(Merge)和/或高级运动矢量预测模式(advanced motion vector prediction,AMVP),而且也能适用于其它使用空域参考块和/或时域参考块的运动信息对当前图像块的运动信息进行预测的模式,从而提高编解码性能。
图7为本申请实施例中基于历史候选列表(亦称为历史候选表table)的图像编码方法的一种示例性流程图。所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已编码图像块的运动信息,该方法的执行主体可以是视频编码器(例如视频编码器20)或具有视频编码功能的电子设备(例如设备1200、1300),该方法可以包括以下步骤:
S701、根据率失真代价准则,确定当前编码图像块的帧间预测模式;
例如,从候选帧间预测模式的集合中选择率失真代价最小的帧间预测模式作为当前编码图像块的帧间预测模式;
S703、基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程得到当前编码图像块的运动信息;
换言之,基于所述当前编码图像块的帧间预测模式对当前编码图像块执行编码处理,可以参见现有技术,这里不再赘述;
S705、根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新;
S707、将用于指示所述当前编码图像块的帧间预测模式的语法元素编入码流。
在一种较优实现方式下,本发明实施例还可以包括:
S702、在当前编码图像块的编码过程中,载入历史候选列表,换言之,即所述历史候选列表中的一个或多个历史候选运动信息可以被用于对所述当前编码图像块执行的帧间预测过程(亦可称为对所述当前编码图像块执行的编码过程)中;
相应地,在本申请实施例的具体实现方式下,步骤S703中的基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,可以包括:
根据率失真代价准则,从与当前编码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中,例如,所述目标候选运动信息编码所述当前编码图像块的率失真代价最小;
确定所述目标候选运动信息为所述当前编码图像块的运动信息(例如merge模式下);或者,基于所述目标候选运动信息和通过运动估计(Motion Estimation)得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值(例如AMVP模式下)。
可见,在一种设计方式下,无论是哪一种帧间预测模式,都可以将所述历史候选列表中的一个或多个历史候选运动信息加入所述候选运动信息列表中。
应当理解的是,以上方法流程的步骤中,步骤的描述顺序并不代表步骤的执行顺序,按照以上的描述顺序来执行是可行的,不按照以上的描述顺序来执行也是可行的。例如上述步骤S707可以在步骤S705之后执行,也可以在步骤S705之前执行;上述步骤S702可以在步骤S701之后执行,也可以在步骤S701之前执行;其余步骤此处不再一一举例。
应当理解的是,基于历史候选列表的视频或图像编码过程中,在一种示例方式下,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对当前编码图像块执行的帧间预测过程(亦称为编码过程)中,在另一种示例方式下,考虑不同编码图像块的帧间预测模式的不同,针对有些编码图像块,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述编码图像块执行的帧间预测过程中;针对有些编码图像块,所述历史候选列表中的一个或多个历史候选运动信息也可以不应用于对所述编码图像块执行的帧间预测过程中;但总的来说,在当前条带slice或当前图像或当前一个或多个CTU的层级下,所述历史候选列表中的一个或多个历史候选运动信息可以被应用于对一个或多个编码图像块执行的帧间预测过程中,本申请对此不做限定。
在本申请实施例中,S703可以包括:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表。
其中,所述第一帧间预测模式为合成merge模式或跳过skip模式;所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式;
或者,
所述第二帧间预测模式为合成merge模式或跳过skip模式;所述第一帧间预测模式为非第二帧间预测模式的帧间预测模式。
在本申请实施例的一种实现方式下,在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,步骤S703中使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
相应地,在本申请实施例的一种实现方式下,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,步骤S703中使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前的所述历史候选列表的大小未达到预设列表大小,则(直接)将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
在本申请实施例的另一种实现方式下,在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,步骤S703中所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前编码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先编码得到的历史候选运动信息;
其中,所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,包括:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前编码图像块的运动信息作为最新的历史候选运动信息(the last HMVP candidate ok)加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
相应地,在本申请实施例的另一种实现方式下,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,步骤S703中使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
或者,
相应地,在本申请实施例的另一种实现方式下,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,步骤S703中使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
S702、在当前编码图像块的编码过程中,载入历史候选列表,换言之,即所述历史候选列表中的一个或多个历史候选运动信息可以被用于对所述当前编码图像块执行的帧间预测过程(亦可称为对所述当前编码图像块执行的编码过程)中;
为了一定程度上减少历史候选运动信息加入候选运动信息列表(比如mergecandidate list)所引出的重复性检查和候选项移动操作,在本申请实施例的一种实现方式下,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息,可以包括:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中;
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前编码图像块的第二候选运动信息列表中;
根据率失真代价准则从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息,例如,所述目标候选运动信息编码所述当前编码图像块的率失真代价最小;
确定所述目标候选运动信息为所述当前编码图像块的运动信息;或者,基于所述目标候选运动信息和通过运动估计(Motion Estimation)得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值。
其中,所述第一候选运动信息列表(例如merge candidate list)包括所述当前编码图像块的空域参考块的运动信息(空域参考块包括与当前编码图像块空域邻接的相邻块的运动信息和/或一个或者多个与当前编码图像块空域不邻接的非相邻块的运动信息)和/或当前编码图像块的时域参考块的运动信息(所述时域参考块包括:在参考帧中与所述当前编码图像块相同位置处的同位块的右下角相邻块的运动信息,或者,所述同位块的中心位置的运动信息);
所述第二候选运动信息列表包括所述当前编码图像块的空域参考块的运动矢量和/或当前编码图像块的时域参考块的运动矢量;
或者,
所述第一候选运动信息列表(例如AMVP candidate list)包括所述当前编码图像块的空域参考块的运动矢量和/或当前编码图像块的时域参考块的运动矢量;
所述第二候选运动信息列表包括所述当前编码图像块的空域参考块的运动信息和/或当前编码图像块的时域参考块的运动信息。
例如,如果所述当前编码块的帧间预测模式为融合merge模式或跳过skip模式,编入码流中的语法元素还包括用于指示当前编码图像块的目标候选运动信息的索引号,换言之,即还可以将与所述目标候选运动信息对应的索引号编入码流;
例如,如果所述当前编码块的帧间预测模式为非融合merge模式或非跳过skip模式,编入码流中的语法元素还包括用于指示当前编码图像块的目标候选运动信息的索引号和运动矢量差值MVD,换言之,即还可以将与所述目标候选运动信息对应的索引号和所述运动矢量差值MVD编入码流,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值MVP。
在一种较优的实现方式下,所述历史候选列表中的候选运动信息(以HMVP示意)采用先进先出的方式(如图10A和10B所示),所述将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中,包括:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
进一步的,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,还包括:根据所述当前编码图像块的运动信息对当前编码图像块进行帧间预测,得到所述当前编码图像块的预测图像(亦即预测像素值)。
进一步的,本申请实施例的编码方法还可以包括:
基于所述当前编码图像块的残差图像(亦即残差值)和所述帧间预测过程得到的当前编码图像块的预测图像(亦即预测像素值),得到所述当前编码图像块的重建图像。
可见,本申请实施例中考虑当前编码图像块的帧间预测模式来更新历史候选列表,比如,如果当前编码图像块的帧间预测模式为skip/merge模式,不使用当前编码图像块的运动信息更新历史候选列表;相反,如果当前编码图像块的帧间预测模式为非skip/merge模式,使用当前编码图像块的运动信息更新历史候选列表;这样的话,即使历史候选列表中的原有的历史候选运动信息的数目较多,也一定程度上减少了将当前编码图像块的运动信息加入到历史候选列表中可能会引起的查找重复项和更新引起的移动候选项导致的数据搬移操作,而且所述历史候选列表在图像编码过程中不断更新,有助于提高运动矢量预测效率,亦即有助于提高帧间预测效率,从而提高编解码性能。
图8为本申请实施例中基于历史候选列表(亦称为历史候选表table)的图像解码方法的一种示例性流程图。所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息,该方法的执行主体可以是视频解码器(例如视频解码器30)或具有视频解码功能的电子设备(例如设备1200、1300),该方法可以包括以下步骤:
S801、解析码流中的语法元素,以确定当前解码图像块的帧间预测模式;
例如,从码流中解析出skip_flag,merge_flag,pred_mode等语法元素;在一种示例下,如下表所示,skip_flag,merge_flag,pred_mode中的一个或多个用于指示当前解码图像块的帧间预测模式。例如,cu_skip_flag取值为0,表示当前图像块的帧间预测模式不是skip模式,cu_skip_flag取值为1,表示当前图像块的帧间预测模式是skip模式;例如,pred_mode_flag取值为0,表示当前图像块的预测模式是inter帧间预测模式,pred_mode_flag取值为1,表示当前图像块的预测模式是intra帧内预测模式;例如,merge_flag取值为0,表示当前图像块的帧间预测模式不是merge模式,merge_flag取值为1,表示当前图像块的帧间预测模式是merge模式。
Figure GDA0003141441790000351
Figure GDA0003141441790000361
Figure GDA0003141441790000371
S803、基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程(亦可称为对当前解码图像块执行解码过程),得到当前解码图像块的运动信息;
在一种实现方式下,根据帧间预测模式来判断是否将历史候选列表中历史候选运动信息加入当前解码图像块的候选运动信息列表中,相应地,步骤S803可以包括:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中(第一候选运动信息列表与第一帧间预测模式对应,比如merge模式对应merge candidate list);
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前解码图像块的第二候选运动信息列表中(第二候选运动信息列表与第二帧间预测模式对应,比如inter模式对应MVP candidate list);
从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;例如,根据从所述码流中解析出的第一标识信息,从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;如果所述第一候选运动信息列表或第二候选运动信息列表的长度为一,则无需解析第一标识信息(例如索引),确定唯一候选运动信息为目标候选运动信息;
基于所述目标候选运动信息预测所述当前解码图像块(简称当前块)的运动信息;例如,确定所述目标候选运动信息为所述当前解码图像块的运动信息(比如merge模式);或者,所述目标候选运动信息为运动矢量预测值,基于所述运动矢量预测值和从所述码流中解析出的所述当前图像块的运动矢量残差值MVD(和帧间预测方向、参考帧索引等),确定所述当前解码图像块的运动信息(比如inter模式)。
其中,所述第一候选运动信息列表包括所述当前解码图像块的空域参考块的运动信息(空域参考块包括与当前解码图像块空域邻接的相邻块的运动信息和/或一个或者多个与当前解码图像块空域不邻接的非相邻块的运动信息)和/或当前解码图像块的时域参考块的运动信息(所述时域参考块包括:在参考帧中与所述当前解码图像块相同位置处的同位块的右下角相邻块的运动信息,或者,所述同位块的中心位置的运动信息);
所述第二候选运动信息列表包括所述当前解码图像块的空域参考块的运动矢量和/或当前解码图像块的时域参考块的运动矢量;
或者,
所述第一候选运动信息列表包括所述当前解码图像块的空域参考块的运动矢量和/或当前解码图像块的时域参考块的运动矢量;
所述第二候选运动信息列表包括所述当前解码图像块的空域参考块的运动信息和/或当前解码图像块的时域参考块的运动信息。
一并参阅图11A,所述将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中,包括:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
例如,将历史候选列表中的历史候选运动信息加入到融合运动信息候选列表或运动矢量预测候选列表中,可包括以下三种方式之一,本申请不作限定。
方式一:若当前块为merge/skip模式,将历史候选列表中的历史候选加入到融合运动信息候选列表中。若当前块为inter模式,不将历史候选列表中的历史候选加入到运动矢量预测候选列表。
方式二:若当前块为inter模式,将历史候选列表中的历史候选加入到运动矢量预测候选列表。若当前块为merge/skip模式,不将历史候选列表中的历史候选加入到融合运动信息候选列表中。
方式三:若当前块为merge/skip模式,将历史候选列表中的历史候选加入到融合运动信息候选列表中。若当前块为inter模式,将历史候选列表中的历史候选加入到运动矢量预测候选列表。
在一种较优实现方式下,本发明实施例还可以包括:
S802、在当前解码图像块的解码过程中,载入历史候选列表,换言之,即所述历史候选列表中的一个或多个历史候选运动信息可以被用于对所述当前解码图像块执行的帧间预测过程(亦可称为对所述当前解码图像块执行的解码过程)中;
如图9和10A所示,历史候选列表的长度L为预设值(亦称为预设列表大小),即构造完成后历史候选列表中包含的历史候选运动信息候选个数为L,例如L=5、6、7,8,9或10等。L为大于0的正整数。
历史候选列表的初始化过程参见现有技术,例如在条带(SLICE)开始的时候,将历史候选列表清空,也可采用其他历史候选列表的初始化方法,本申请不作限定。
相应地,无论是哪一种帧间预测模式,都将所述历史候选列表中的一个或多个历史候选运动信息加入候选运动信息列表(例如,与当前解码图像块的帧间预测模式对应的候选运动信息列表)中,相应地,步骤S803可以包括:
S803A,从与当前解码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,所述目标候选运动信息用于预测所述当前解码图像块的运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;
其中,可以是根据从所述码流中解析出的第一标识信息(例如融合索引或运动矢量预测值索引),从所述候选运动信息列表中确定目标候选运动信息;如果所述候选运动信息列表的长度为一,则无需解析第一标识信息(例如融合索引或运动矢量预测值索引),确定唯一候选运动信息为目标候选运动信息;
基于所述目标候选运动信息预测/得到所述当前解码图像块的运动信息;例如,确定所述目标候选运动信息为所述当前解码图像块的运动信息(若当前块为merge/skip模式);或者,所述目标候选运动信息为运动矢量预测值,基于所述运动矢量预测值和从所述码流中解析出的所述当前图像块的运动矢量残差值MVD,确定所述当前解码图像块的运动信息(若当前块为非merge/skip模式)。
S803B,根据所述当前解码图像块的运动信息对当前解码图像块进行帧间预测,得到所述当前解码图像块的预测图像(亦即预测像素值)。
其中,根据运动信息进行运动补偿(motion compensation),得到预测图像。如果当前块存在残差,则将残差信息和预测图像相加,获得当前块的重建图像;如果当前块没有残差,则预测图像为当前块的重建图像。
上述过程参见现有技术,例如可采用与HEVC或者VTM相同的方法,也可采用其他运动补偿、图像重建方法,本申请对此不做限定。
可选的,S803C,基于所述当前解码图像块的残差图像(亦即残差值)和所述帧间预测过程得到的当前解码图像块的预测图像(亦即预测像素值),得到所述当前解码图像块的重建图像。例如,将预测图像与残差图像相加,得到当前块的重建图像。
S805、根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新。
应当理解的是,以上方法流程的步骤中,步骤的描述顺序并不代表步骤的执行顺序,按照以上的描述顺序来执行是可行的,不按照以上的描述顺序来执行也是可行的。例如上述步骤S802可以在步骤S801之后执行,也可以在步骤S801之前执行;其余步骤此处不再一一举例。
在一种可行设计方式下,步骤S805可以包括:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表。
其中,所述第一帧间预测模式为跳过模式(skip mode)或融合模式(merge mode);所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式;
或者,
所述第二帧间预测模式为跳过模式(skip mode)或融合模式(merge mode);所述第一帧间预测模式为非第二帧间预测模式的帧间预测模式
在一种实现方式下,在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,步骤S805中所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
当所述当前解码图像块(简称为当前块)的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。在本申请中,并不限定判断或比较当前块的运动信息与历史候选列表中某个历史候选运动信息是否相同的方法。可以是两个运动信息完全相同,也可以是两个运动信息在某种处理后相同,例如两个运动矢量右移2位后的结果相同。
相应地,在一种实现方式下,在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,步骤S805中所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息(直接)加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息(the last candidate)加入所述历史候选列表。
例如,如图10A或10B所示,如果当前块的预测模式为skip/merge模式,从历史候选列表头部开始,将当前块的运动信息与历史候选列表中的历史候选进行比较;如有某个历史候选与当前块运动信息相同,将该历史候选从历史候选列表中移除。检查历史候选列表大小,如该列表大小超过预设的大小,则将该列表中位于头部的历史候选移除。最后,将当前块的运动信息加入到历史候选列表中。
例如,如图9所示,如果当前块的预测模式为inter模式,检查历史候选列表大小,如果历史候选列表大小未超过预设的列表大小(亦称为列表长度或table size),则将当前块的运动信息作为最新的一个历史候选运动信息加入到历史候选列表的尾部中;如果历史候选列表大小达到预设的列表大小(亦称为列表长度或table size),则将该历史候选列表中位于头部的历史候选运行信息移除,并将当前块的运动信息作为最新的一个历史候选运动信息加入到历史候选列表尾部中;
可见,根据当前图像块的预测模式来决定是否检查当前图像块的运动信息是否与已经加入到历史候选列表中其它历史候选项是否相同的过程中,考虑到一种规律,如果当前图像块的预测模式是inter模式下,则当前图像块的运动信息与在先已编码或已解码的图像块的运动信息相同的可能性较低,做重复性检查的必要性或意义不大;从而省掉的重复项查找最少,但性能损失最少。
在另一种实现方式下,在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,步骤S805中所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息;
其中,所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,包括:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前解码图像块的运动信息作为最新的历史候选运动信息(the last HMVP candidate)加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
相应地,在另一种实现方式下,在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,步骤S805中所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
例如,如果当前块的预测模式为skip/merge模式,则不将当前块的运动信息加入历史候选列表或者如果当前块的预测模式为skip/merge模式,则当历史候选列表中存在SKIP/merge模式的图像块的运动信息(历史候选)未超过S值,则将当前块的运动信息加入历史候选列表,其中S为阈值,即表示历史候选列表中允许放入的SKIP/merge模式的图像块的运动信息的最大个数。其中,将当前块的运动信息加入历史候选列表的过程包括:从历史候选列表头部开始,将当前块的运动信息与历史候选列表中的历史候选进行比较;如有某个历史候选与当前块运动信息相同,将该历史候选从历史候选列表中移除。然后,检查历史候选列表大小,如该列表大小超过预设的大小,则将该列表中位于头部的历史候选移除。最后,将当前块的运动信息加入到历史候选列表中。
例如,如图10A或10B所示,如果当前块的预测模式为inter模式,从历史候选列表头部开始,将当前块的运动信息与历史候选列表中的历史候选进行比较;如有某个历史候选与当前块的运动信息相同,则将该历史候选从历史候选列表中移除。检查历史候选列表大小,如该列表大小超过预设的大小(例如历史候选列表的size),则将该列表中位于头部的历史候选移除。并将当前块的运动信息加入到历史候选列表尾部中。如该列表大小未超过预设的大小,则将当前块的运动信息直接加入到历史候选列表的尾部中。
可见,根据当前图像块的预测模式来决定是否将历史候选列表中较多的历史候选项加入到merge candidate list中,尤其是针对历史候选列表的size很大的情况下,当前图像块的MV预测准确度基本无损失的同时降低本发明实施例方法的复杂性。
在再一种实现方式下,在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,步骤S805中所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息;
相应地,在再一种实现方式下,在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,步骤S805中所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
例如,如果当前块的预测模式为skip/merge模式,则不将当前块的运动信息加入历史候选列表。或者如果当前块的预测模式为skip/merge模式,则当历史候选列表中存在SKIP/merge模式的图像块的运动信息(历史候选)未超过S值,则将当前块的运动信息加入历史候选列表,其中S为阈值,即表示历史候选列表中允许放入的SKIP/merge模式的图像块的运动信息的最大个数。其中,将当前块的运动信息加入历史候选列表的过程包括:从历史候选列表头部开始,将当前块的运动信息与历史候选列表中的历史候选进行比较;如有某个历史候选与当前块运动信息相同,将该历史候选从历史候选列表中移除。然后,检查历史候选列表大小,如该列表大小超过预设的大小,则将该列表中位于头部的历史候选移除。最后,将当前块的运动信息加入到历史候选列表中。
例如,如果当前块的预测模式为inter模式,检查历史候选列表大小,如该列表大小超过预设的大小,则将该列表中位于头部的历史候选移除。最后,将当前块的运动信息加入到历史候选列表尾部中。如该列表大小未超过预设的大小,则将当前块的运动信息加入到历史候选列表的尾部中。
例如,如果当前块的预测模式为inter模式,如果历史候选列表大小未超过预设的列表大小(亦称为列表长度或table size),则将当前块的运动信息作为最新的一个历史候选运动信息加入到历史候选列表的尾部中;如果历史候选列表大小达到预设的列表大小(亦称为列表长度或table size),则将该历史候选列表中位于头部的历史候选运行信息移除,并将当前块的运动信息作为最新的一个历史候选运动信息加入到历史候选列表尾部中;
可见,根据当前图像块的预测模式来决定是否检查当前图像块的运动信息是否与已经加入到历史候选列表中其它历史候选项是否相同,考虑到一种规律,如果当前图像块的预测模式是inter模式下,则当前图像块的运动信息与在先已编码或已解码的图像块的运动信息相同的可能性较低,则做重复性检查的必要性或意义不大;以及,根据当前图像块的预测模式来决定是否将历史候选列表中较多的历史候选项加入到merge candidatelist中,尤其是针对历史候选列表的size很大的情况下,当前图像块的MV预测准确度基本无损失的同时降低本发明实施例方法的复杂性。
综上所述,一方面,相比于现有技术,本申请实施例在将当前块的运动信息加入到历史候选列表前,首先检查当前块的预测模式。当该预测模式为inter和merge/skip时分别采用不同的方式来查找重复项的操作和更新操作。另一方面,在历史候选列表建立完成之后,在构建当前图像块的merge候选列表或MVP候选列表的过程中,检查当前图像块的预测模式,根据当前图像块的预测模式来决定是否将历史候选列表中的历史候选加入到融合运动信息候选列表中,比如:当该预测模式为inter时,不将历史候选列表中的历史候选加入到融合运动信息候选列表中;当该预测模式为merge/skip时,将历史候选列表中的历史候选加入到融合运动信息候选列表中;在另一种设计方式下,当该预测模式为inter时,将历史候选列表中的历史候选加入到融合运动信息候选列表中;当该预测模式为merge/skip时,不将历史候选列表中的历史候选加入到融合运动信息候选列表中。再一方面,本发明实施例考虑当前图像块的帧间预测模式来决定是否进行重复性检查,一定程度上避免了历史候选列表中历史候选项搬运操作,比如:如果当前新加入当前图像块的运动信息(CurrentMV)与某个在先已经加入的历史候选项(比如MV2)相同时,则将在先已经加入的历史候选项(比如MV2)从历史候选列表中去除,并将当前新加入当前图像块的运动信息(Current MV)加入到历史候选列表的尾部,这样带来了历史候选列表中的历史候选项的数据搬运操作,比如,MV2之后的MV3被搬运到原来MV2的位置,MV3之后的MV4被搬运到原来MV3的位置,以此顺延,等等;或者,如果历史候选列表中已有最大数量的历史候选项了,而出现当前新加入当前图像块的运动信息(Current MV),则基于FIFO原则将历史候选列表中最先加入的历史候选项(比如MV0)从历史候选列表中去除,并将当前新加入当前图像块的运动信息(Current MV)加入到历史候选列表的尾部,这样带来了历史候选列表中的历史候选项的数据搬运操作,比如,MV0之后的MV1被搬运到原来MV0的位置,MV1之后的MV2被搬运到原来MV1的位置,以此顺延,等等。
图11A和图11B示意了在融合运动信息候选列表中加入历史候选(historycandidate)的方法,以增加merge/skip的融合运动信息候选的数量,提高了预测效率。加入历史候选的融合运动信息候选列表的构建方式如下:
步骤1111、1113:将与当前块空域相邻的空间候选和时域候选加入当前块的融合运动信息候选列表。
例如,若当前解码图像块(下文简称为当前块)为merge/skip模式,则生成融合运动信息候选列表。若当前CU或当前解码图像块为inter模式,则生成运动矢量预测候选列表。将历史候选列表中的历史候选加入到融合运动信息候选列表或运动矢量预测候选列表中。
上述若当前块为merge/skip模式,生成融合运动信息候选列表,具体包括:
将与当前块的空间候选和时域候选加入当前块的融合运动信息候选列表中,其方法与HEVC中的方法相同。如图6所示,空间融合候选包含A0、A1、B0、B1和B2,时域融合候选包括T0和T1。在VTM(Versatile video coding Test Model,多用途视频编码测试模型)中,时域融合候选也包括自适应时域运动矢量预测(ATMVP)技术提供的候选运动信息。生成融合运动信息候选列表相关的过程,可采用HEVC或者VTM中的方法进行,也可采用其他生成融合运动信息候选列表的方法,本申请对此不作限定。
上述若当前块为inter模式,则生成运动矢量预测候选列表,可采用HEVC(HighEfficiency Video Coding,高效视频编码)或者VTM中的方法进行,也可采用其他生成运动矢量预测候选列表的方法,本申请对此不作限定。
步骤1131:将历史候选列表中的历史候选加入到融合运动信息候选列表中,例如,按照从历史候选列表尾部到头部的顺序将历史候选加入到融合运动信息候选列表中,直至融合运动信息候选列表中的候选项达到最大允许数目,如图11A所示。在当前图像块的融合运动信息候选列表的构建中,可以考虑当前图像块的帧间预测模式,从历史候选列表尾部的历史候选开始,检查其与步骤1得到的融合运动信息候选列表中融合运动信息候选是否相同,如果不同则加入到融合运动信息候选列表中,如果相同则检查历史候选列表中下一个历史候选,细节参见前面实施例的描述,这里不再赘述。
或者,将历史候选列表中的历史候选加入到融合运动信息候选列表中,按照从历史候选列表尾部到头部的顺序检查预设数目的历史候选,预设数目可以是融合运动信息候选列表中的候选项的最大允许数目与当前已经放入运动信息候选列表的候选项的数目之间的差;
需要说明的是,历史候选列表包括一个或多个历史候选项,每个历史候选项为在先已编码或在先已解码块的运动信息。在不同示例方式下,所述历史候选列表可以slice级别的,或者,所述历史候选列表可以是若干个CTU(CTU行)的级别的;或者,所述历史候选列表可以是CTU的级别的。
步骤1135:加入其它类型的融合运动信息候选,如双向预测候选(bi-predictivecandidate)和零运动矢量候选(zero motion vector candidate)。
需要说明的是,候选运动信息列表是图像块级别的(不同的图像块具有与之分别对应的候选运动信息列表),而历史候选表是当前slice或当前图像或者当前一个或多个图像编码单元CTU级别的,换言之,同一个slice下的多个图像块的编码或解码过程中,都可以使用这个不断更新的历史候选列表。
图10B示意了利用当前帧中已编码块的运动信息构建历史候选列表,采用先进先出的方式对于历史候选列表进行访问。编码/解码端中总体的历史候选列表构建和使用方式如下:
步骤1:在条带(SLICE)解码开始的时候初始化历史候选列表,将其清空。
步骤2:解码当前CU,如果当前CU或当前块为merge或inter帧间预测模式,则生成融合运动信息候选列表或运动矢量预测候选列表,基于当前块的帧间预测模式将历史候选列表中的历史候选加入到融合运动信息候选列表或运动矢量预测候选列表中,细节参见前述实施例,这里不再赘述。
步骤3:在解码完当前CU或当前块之后,基于当前块的帧间预测模式将当前块的运动信息作为新的历史候选加入到历史候选列表中,以更新历史候选列表,如图9,10A和10B所示。例如,从历史候选列表头部开始,将当前块的运动信息与历史候选列表中历史候选进行比较。如果某个历史候选(例如图3中的MV2)与当前块的运动信息相同,则将这个历史候选MV2移除。以及,检查历史候选列表大小,如该列表大小超过预设的大小,则将该列表中位于头部的历史候选移除。最后,将当前块的运动信息加入到历史候选列表的尾部,细节参见前述实施例,这里不再赘述。
一并参阅图2,本申请实施例提供一种基于历史候选列表的图像编码装置,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已编码图像块的运动信息,例如,所述历史候选运动信息为当前slice或当前图像或当前一个或多编码树单元CTU中在先已解码图像块的运动信息,所述装置包括:
帧间预测单元(43),用于根据率失真代价准则,确定当前编码图像块的帧间预测模式;基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息;例如,从所述候选帧间预测模式的集合中选择率失真代价最小的帧间预测模式作为当前编码图像块的帧间预测模式;
所述帧间预测单元(43)还用于根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新;
熵编码单元(56),用于将用于指示所述当前编码图像块的帧间预测模式的语法元素编入码流。
应当理解的是,这里的帧间预测单元可以对应于图2中的帧间预测单元43;这里的熵编码单元可以对应于图2中的熵编码单元56。
本申请实施例的图像编码装置中,在所述根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新的方面,所述帧间预测单元(43)用于:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表。
其中,所述第一帧间预测模式为融合merge模式或跳过skip模式;所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式;
或者,
所述第二帧间预测模式为融合merge模式或跳过skip模式;所述第一帧间预测模式为非第二帧间预测模式的帧间预测模式。
本申请实施例的图像编码装置中,在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,在所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元(43)用于:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
相应地,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,在所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息(直接)加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
本申请实施例的图像编码装置中,在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元(43)用于:
将当前编码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先编码得到的历史候选运动信息;
相应地,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
本申请实施例的图像编码装置中,在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元(43)用于:
将当前编码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先编码得到的历史候选运动信息;
相应地,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
其中,所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表的方面,所述帧间预测单元(43)用于:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前编码图像块的运动信息作为最新的历史候选运动信息(the last HMVP candidate)加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
本申请实施例的图像编码装置中,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息的方面,所述帧间预测单元(43)用于:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中;
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前编码图像块的第二候选运动信息列表中;
根据率失真代价准则从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;例如,所述目标候选运动信息编码所述当前编码图像块的率失真代价最小;
确定所述目标候选运动信息为所述当前编码图像块的运动信息;或者,基于所述目标候选运动信息和通过运动估计(Motion Estimation)得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值。
其中,所述第一候选运动信息列表包括所述当前编码图像块的空域参考块的运动信息和/或当前编码图像块的时域参考块的运动信息,例如所述空域参考块包括:与当前编码图像块空域邻接的相邻块的运动信息和/或一个或者多个与当前编码图像块空域不邻接的非相邻块的运动信息;所述时域参考块包括:在参考帧中与所述当前编码图像块相同位置处的同位块的右下角相邻块的运动信息,或者,所述同位块的中心位置的运动信息;所述第二候选运动信息列表包括所述当前编码图像块的空域参考块的运动矢量和/或当前编码图像块的时域参考块的运动矢量;
或者,
所述第一候选运动信息列表包括所述当前编码图像块的空域参考块的运动矢量和/或当前编码图像块的时域参考块的运动矢量;所述第二候选运动信息列表包括所述当前编码图像块的空域参考块的运动信息和/或当前编码图像块的时域参考块的运动信息。
其中,所述将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中的方面,所述帧间预测单元(43)用于:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中;
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
本申请实施例的图像编码装置中,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程的方面,所述帧间预测单元(43)用于:
根据率失真代价准则,从与当前编码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;例如,所述目标候选运动信息编码所述当前编码图像块的率失真代价最小;
确定所述目标候选运动信息为所述当前编码图像块的运动信息;或者,基于所述目标候选运动信息和通过运动估计(Motion Estimation)得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,其中,所述目标候选运动信息为目标候选运动矢量预测值。
本申请实施例的图像编码装置中,所述帧间预测单元(43)还用于:
根据所述当前编码图像块的运动信息对当前编码图像块进行帧间预测,得到所述当前编码图像块的预测图像(亦即预测像素值)。
本申请实施例的图像编码装置中,所述装置还包括:
重建单元(62),用于基于所述当前编码图像块的残差图像(亦即残差值)和所述帧间预测过程得到的当前编码图像块的预测图像(亦即预测像素值),得到所述当前编码图像块的重建图像。应当理解的是,如果当前编码图像块的预测图像与当前编码图像块的原始图像相同,则没有所述当前编码图像块的残差图像(亦即残差值),则基于所述帧间预测过程得到的当前编码图像块的预测图像(亦即预测像素值),得到所述当前编码图像块的重建图像。
本申请实施例的图像编码装置中,所述当前编码块的帧间预测模式为融合merge模式或跳过skip模式,所述熵编码单元(56)具体用于:将与所述目标候选运动信息对应的merge索引号编入码流;
或者,
所述当前编码块的帧间预测模式为非融合merge模式或非跳过skip模式,所述熵编码单元(56)具体用于:将与所述目标候选运动信息(即目标候选运动矢量预测值MVP)对应的索引号和所述运动矢量差值MVD编入码流。
一并参阅图3,本申请实施例提供一种基于历史候选列表(亦可称为历史候选表)的解码装置,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息(例如可以为当前条带slice或当前图像或当前一个或多个编码树单元CTU中在先已解码图像块的运动信息),所述装置包括:
熵解码单元(80),用于解析接收的码流中的语法元素,以确定当前解码图像块的帧间预测模式;
帧间预测单元(亦称为运动补偿单元)(82),用于基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息;
所述帧间预测单元(82)还用于根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新。
应当理解的是,这里的帧间预测单元可以对应于图3中的帧间预测单元82;这里的熵解码单元可以对应于图3中的熵解码单元80。
应当理解的是,基于历史候选列表的图像解码装置中,在一种示例方式下,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述当前解码图像块执行的帧间预测过程中,在另一种示例方式下,考虑不同解码图像块的帧间预测模式的不同,针对有些解码图像块,所述历史候选列表中的一个或多个历史候选运动信息可以应用于对所述解码图像块执行的帧间预测过程中;针对有些解码图像块,所述历史候选列表中的一个或多个历史候选运动信息也可以不应用于对所述解码图像块执行的帧间预测过程中;但总的来说,当前条带slice或当前图像或当前一个或多个CTU中,所述历史候选列表中的一个或多个历史候选运动信息将会应用于对一个或多个解码图像块执行的帧间预测过程中,本申请对此不做限定。
在本申请解码装置的实施例的某些实现方式中,在所述根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新的方面,所述帧间预测单元用于:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表;和/或
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表。
可见,相比于无论何种帧间预测模式采用统一的方式更新历史候选列表,本申请实施例在不同的帧间预测模式下采用不同的方式来更新历史候选列表,一旦所述历史候选列表中的一个或多个历史候选运动信息作用于对当前解码图像块执行的帧间预测过程中,将会一定程度上提高运动矢量预测效率,亦即提高帧间预测效率,从而提高编解码性能。
在本申请解码装置的实施例的某些实现方式中,所述第一帧间预测模式为跳过模式(skip mode)或融合模式(merge mode);所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式;
或者,
所述第二帧间预测模式为跳过模式(skip mode)或融合模式(merge mode);所述第一帧间预测模式为非第二帧间预测模式的帧间预测模式。
在本申请解码装置的实施例的某些实现方式中,在所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
相应地,在所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息(直接)加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息(the last history candidate)加入所述历史候选列表。
可见,本申请实施例考虑当前解码图像块的帧间预测模式来更新历史候选列表,比如如果当前解码图像块的帧间预测模式为skip/merge模式,第一处理方式即使用当前解码图像块的运动信息更新历史候选列表的过程中需要做重复项检查;相反,如果当前解码图像块的帧间预测模式为非skip/merge模式,第二处理方式即使用当前解码图像块的运动信息更新历史候选列表的过程中无需做重复项检查;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,将当前解码图像块的运动信息加入到历史候选列表中能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在本申请解码装置的实施例的某些实现方式中,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息。
相应地,在所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
可见,本申请实施例考虑当前解码图像块的帧间预测模式来更新历史候选列表,比如如果当前解码图像块的帧间预测模式为skip/merge模式,第一处理方式即不使用所述当前解码图像块的运动信息更新历史候选列表或有条件使用所述当前解码图像块的运动信息更新历史候选列表;相反,如果当前解码图像块的帧间预测模式为非skip/merge模式,第二处理方式即缺省使用当前解码图像块的运动信息更新历史候选列表,且更新的过程中做重复项检查;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,使用当前解码图像块的运动信息更新历史候选列表的过程中,能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在本申请解码装置的实施例的某些实现方式中,在所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息。
相应地,在所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
可见,本申请实施例考虑当前解码图像块的帧间预测模式来更新历史候选列表,比如如果当前解码图像块的帧间预测模式为skip/merge模式,第一处理方式即不使用所述当前解码图像块的运动信息更新历史候选列表或有条件使用所述当前解码图像块的运动信息更新历史候选列表;相反,如果当前解码图像块的帧间预测模式为非skip/merge模式,第二处理方式即缺省使用当前解码图像块的运动信息更新历史候选列表,且更新的过程中不做重复项检查;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,使用当前解码图像块的运动信息更新历史候选列表的过程中,能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在本申请解码装置的实施例的某些实现方式中,在所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表的方面,所述帧间预测单元用于:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前解码图像块的运动信息作为最新的历史候选运动信息(the last HMVP candidate)加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
在本申请解码装置的实施例的某些实现方式中,在所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息的方面,所述帧间预测单元用于:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中;应当理解的是,第一候选运动信息列表与第一帧间预测模式对应,比如merge模式对应mergecandidate list;
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前解码图像块的第二候选运动信息列表中;应当理解的是,第二候选运动信息列表与第二帧间预测模式对应,比如inter模式对应MVPcandidate list;
从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;应当理解的是,例如,根据从所述码流中解析出的第一标识信息从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;如果所述第一候选运动信息列表或第二候选运动信息列表的长度为一,则无需解析第一标识信息(例如索引),确定唯一候选运动信息为目标候选运动信息);
基于所述目标候选运动信息预测/得到所述当前解码图像块的运动信息;应当理解的是,例如,确定所述目标候选运动信息为所述当前解码图像块的运动信息;或者,所述目标候选运动信息为运动矢量预测值,基于所述运动矢量预测值和从所述码流中解析出的所述当前图像块的运动矢量残差值MVD,确定所述当前解码图像块的运动信息。
本申请实施例中,在图像解码过程中不断更新历史候选列表,在构建当前解码图像块的候选运动信息列表(比如merge候选列表或AMVP候选列表)的过程中,根据当前解码图像块的预测模式来决定是否将历史候选列表中的历史候选加入到对应的候选运动信息列表中,比如:在当前解码图像块的帧间预测模式为inter模式时,不将历史候选列表中的历史候选运动信息加入到AMVP候选列表中;在当前解码图像块的帧间预测模式为merge/skip模式时,将历史候选列表中的历史候选运动信息加入到融合候选列表中;这样的话,一旦构建的历史候选列表中的历史候选的数目较多时,使用历史候选列表来构建候选运动信息列表的过程中,能一定程序上减少查找重复项的操作,从而一定程度上提高了编解码性能。
在本申请解码装置的实施例的某些实现方式中,所述第一候选运动信息列表包括所述当前解码图像块的空域参考块的运动信息和/或当前解码图像块的时域参考块的运动信息,其中所述空域参考块包括:与当前解码图像块空域邻接的相邻块的运动信息和/或一个或者多个与当前解码图像块空域不邻接的非相邻块的运动信息;所述时域参考块包括:在参考帧中与所述当前解码图像块相同位置处的同位块的右下角相邻块的运动信息,或者,所述同位块的中心位置的运动信息;所述第二候选运动信息列表包括所述当前解码图像块的空域参考块的运动矢量和/或当前解码图像块的时域参考块的运动矢量;
或者,
所述第一候选运动信息列表包括所述当前解码图像块的空域参考块的运动矢量和/或当前解码图像块的时域参考块的运动矢量;所述第二候选运动信息列表包括所述当前解码图像块的空域参考块的运动信息和/或当前解码图像块的时域参考块的运动信息。
在本申请解码装置的实施例的某些实现方式中,在所述将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中的方面,所述帧间预测单元用于:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
本申请实施例中,一旦构建的历史候选列表中的历史候选的数目较多时,能进一步提高帧间预测效率,从而一定程度上提高了编解码性能。
在本申请解码装置的实施例的某些实现方式中,在所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程的方面,所述帧间预测单元(82)用于:
从与当前解码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,所述目标候选运动信息用于预测所述当前解码图像块的运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;
根据所述当前解码图像块的运动信息对当前解码图像块进行帧间预测,得到所述当前解码图像块的预测图像(亦即预测像素值)。
本申请实施例在图像解码过程中不断更新历史候选列表,通过在当前解码图像块的候选运动信息列表(比如融合运动信息候选列表或运动矢量预测候选列表)中加入历史候选运动信息(history candidate)的装置,增加了候选运动信息(例如merge/skip的融合运动信息候选或inter模式的运动矢量预测候选)的数量,提高了预测效率。
在本申请解码装置的实施例的某些实现方式中,所述装置还包括:
重建单元(90),用于基于所述当前解码图像块的残差图像(亦即残差值)和所述帧间预测过程得到的当前解码图像块的预测图像(亦即预测像素值),得到所述当前解码图像块的重建图像。应当理解的是,如果当前解码图像块的预测图像与当前解码图像块的原始图像相同,则没有所述当前解码图像块的残差图像(亦即残差值),则基于所述帧间预测过程得到的当前解码图像块的预测图像(亦即预测像素值),得到所述当前解码图像块的重建图像。
图12是根据一示例性实施例的包含图2的编码器20和/或图3的解码器200的视频编码系统1200的实例的说明图。系统1200可以实现本申请的各种技术的组合。在所说明的实施方式中,视频编码系统1200可以包含成像设备1201、视频编码器20、视频解码器30(和/或藉由处理单元1206的逻辑电路1207实施的视频编码器)、天线1202、一个或多个处理器1203、一个或多个存储器1204和/或显示设备1205。
如图所示,成像设备1201、天线1202、处理单元1206、逻辑电路1207、视频编码器20、视频解码器30、处理器1203、存储器1204和/或显示设备1205能够互相通信。如所论述,虽然用视频编码器20和视频解码器30绘示视频编码系统1200,但在不同实例中,视频编码系统1200可以只包含视频编码器20或只包含视频解码器30。
在一些实例中,如图所示,视频编码系统1200可以包含天线1202。例如,天线1202可以用于传输或接收视频数据的经编码比特流。另外,在一些实例中,视频编码系统1200可以包含显示设备1205。显示设备1205可以用于呈现视频数据。在一些实例中,如图所示,逻辑电路1207可以通过处理单元1206实施。处理单元1206可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。视频编码系统1200也可以包含可选处理器1203,该可选处理器1203类似地可以包含专用集成电路(application-specific integrated circuit,ASIC)逻辑、图形处理器、通用处理器等。在一些实例中,逻辑电路1207可以通过硬件实施,如视频编码专用硬件等,处理器1203可以通过通用软件、操作系统等实施。另外,存储器1204可以是任何类型的存储器,例如易失性存储器(例如,静态随机存取存储器(Static Random Access Memory,SRAM)、动态随机存储器(Dynamic Random Access Memory,DRAM)等)或非易失性存储器(例如,闪存等)等。在非限制性实例中,存储器1204可以由超速缓存内存实施。在一些实例中,逻辑电路1207可以访问存储器1204(例如用于实施图像缓冲器)。在其它实例中,逻辑电路1207和/或处理单元1206可以包含存储器(例如,缓存等)用于实施图像缓冲器等。
在一些实例中,通过逻辑电路实施的视频编码器20可以包含(例如,通过处理单元1206或存储器1204实施的)图像缓冲器和(例如,通过处理单元1206实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过逻辑电路1207实施的视频编码器20,以实施参照图2和/或本文中所描述的任何其它编码器系统或子系统所论述的各种单元。逻辑电路可以用于执行本文所论述的各种操作。
视频解码器30可以以类似方式通过逻辑电路1207实施,以实施参照图3的解码器200和/或本文中所描述的任何其它解码器系统或子系统所论述的各种单元。在一些实例中,逻辑电路实施的视频解码器30可以包含(通过处理单元2820或存储器1204实施的)图像缓冲器和(例如,通过处理单元1206实施的)图形处理单元。图形处理单元可以通信耦合至图像缓冲器。图形处理单元可以包含通过逻辑电路1207实施的视频解码器30,以实施参照图3和/或本文中所描述的任何其它解码器系统或子系统所论述的各种单元。
在一些实例中,视频编码系统1200的天线1202可以用于接收视频数据的经编码比特流。如所论述,经编码比特流可以包含本文所论述的与编码视频帧相关的数据、指示符、索引值、模式选择数据等,例如与编码分割相关的数据(例如,变换系数或经量化变换系数,(如所论述的)可选指示符,和/或定义编码分割的数据)。视频编码系统1200还可包含耦合至天线1202并用于解码经编码比特流的视频解码器30。显示设备1205用于呈现视频帧。
图13为本申请实施例的编码设备或解码设备(简称为译码设备1300)的一种实现方式的示意性框图。其中,译码设备1300可以包括处理器1310、存储器1330和总线系统1350。其中,处理器和存储器通过总线系统相连,该存储器用于存储指令,该处理器用于执行该存储器存储的指令。编码设备的存储器存储程序代码,且处理器可以调用存储器中存储的程序代码执行本申请描述的各种视频编码或解码方法,尤其是在各种帧间预测模式或帧内预测模式下的视频编码或解码方法,以及在各种帧间或帧内预测模式下预测运动信息的方法。为避免重复,这里不再详细描述。
在本申请实施例中,该处理器1310可以是中央处理单元(Central ProcessingUnit,简称为“CPU”),该处理器1310还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1330可以包括只读存储器(ROM)设备或者随机存取存储器(RAM)设备。任何其他适宜类型的存储设备也可以用作存储器1330。存储器1330可以包括由处理器1310使用总线1350访问的代码和数据1331。存储器1330可以进一步包括操作系统1333和应用程序1335,该应用程序1335包括允许处理器1310执行本申请描述的视频编码或解码方法(尤其是本申请描述的基于历史候选列表的图像编码方法或基于历史候选列表的图像解码方法)的至少一个程序。例如,应用程序1335可以包括应用1至N,其进一步包括执行在本申请描述的视频编码或解码方法的视频编码或解码应用(简称视频译码应用)。
该总线系统1350除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1350。
可选的,译码设备1300还可以包括一个或多个输出设备,诸如显示器1370。在一个示例中,显示器1370可以是触感显示器或触摸显示屏,其将显示器与可操作地感测触摸输入的触感单元合并。显示器1370可以经由总线1350连接到处理器1310。
本领域技术人员能够领会,结合本文公开描述的各种说明性逻辑框、单元和算法步骤所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件来实施,那么各种说明性逻辑框、单元、和步骤描述的功能可作为一或多个指令或代码在计算机可读媒体上存储或传输,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于有形媒体,例如数据存储媒体,或包括任何促进将计算机程序从一处传送到另一处的媒体(例如,根据通信协议)的通信媒体。以此方式,计算机可读媒体大体上可对应于(1)非暂时性的有形计算机可读存储媒体,或(2)通信媒体,例如信号或载波。数据存储媒体可为可由一或多个计算机或一或多个处理器存取以检索用于实施本申请中描述的技术的指令、代码和/或数据结构的任何可用媒体。计算机程序产品可包含计算机可读媒体。
作为实例而非限制,此类计算机可读存储媒体可包括RAM、ROM、EEPROM、CD-ROM或其它光盘存储装置、磁盘存储装置或其它磁性存储装置、快闪存储器或可用来存储指令或数据结构的形式的所要程序代码并且可由计算机存取的任何其它媒体。并且,任何连接被恰当地称作计算机可读媒体。举例来说,如果使用同轴缆线、光纤缆线、双绞线、数字订户线(DSL)或例如红外线、无线电和微波等无线技术从网站、服务器或其它远程源传输指令,那么同轴缆线、光纤缆线、双绞线、DSL或例如红外线、无线电和微波等无线技术包含在媒体的定义中。但是,应理解,所述计算机可读存储媒体和数据存储媒体并不包括连接、载波、信号或其它暂时媒体,而是实际上针对于非暂时性有形存储媒体。如本文中所使用,磁盘和光盘包含压缩光盘(CD)、激光光盘、光学光盘、数字多功能光盘(DVD)和蓝光光盘,其中磁盘通常以磁性方式再现数据,而光盘利用激光以光学方式再现数据。以上各项的组合也应包含在计算机可读媒体的范围内。
可通过例如一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路等一或多个处理器来执行相应的功能。因此,如本文中所使用的术语“处理器”可指前述结构或适合于实施本文中所描述的技术的任一其它结构中的任一者。另外,在一些方面中,本文中所描述的各种说明性逻辑框、单元、和步骤所描述的功能可以提供于经配置以用于编码和解码的专用硬件和/或软件单元内,或者并入在组合编解码器中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。在一种示例下,视频编码器20及视频解码器30中的各种说明性逻辑框、单元、单元可以理解为对应的电路器件或逻辑元件。
本申请的技术可在各种各样的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本申请中描述各种组件、单元或单元是为了强调用于执行所揭示的技术的装置的功能方面,但未必需要由不同硬件单元实现。实际上,如上文所描述,各种单元可结合合适的软件和/或固件组合在编码解码器硬件单元中,或者通过互操作硬件单元(包含如上文所描述的一或多个处理器)来提供。
以上所述,仅为本申请示例性的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (36)

1.一种基于历史候选列表的图像编码方法,其特征在于,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已编码图像块的运动信息,所述方法包括:
根据率失真代价准则,确定当前编码图像块的帧间预测模式;
基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息;
根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新;
将用于指示所述当前编码图像块的帧间预测模式的语法元素编入码流;
所述根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新,包括:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表;第一处理方式不同于第二处理方式;所述第一帧间预测模式为融合merge模式或跳过skip模式;所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式。
2.根据权利要求1所述的方法,其特征在于,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
3.根据权利要求2所述的方法,其特征在于,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
4.根据权利要求1所述的方法,其特征在于,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前编码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先编码得到的历史候选运动信息。
5.根据权利要求4所述的方法,其特征在于,所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,包括:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
6.根据权利要求4所述的方法,其特征在于,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
或者,
所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
7.根据权利要求1所述的方法,其特征在于,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息,包括:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中;
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前编码图像块的第二候选运动信息列表中;
根据率失真代价准则从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;
确定所述目标候选运动信息为所述当前编码图像块的运动信息,其中所述当前编码图像块的帧间预测模式为融合merge模式或跳过skip模式;
或者,基于所述目标候选运动信息和通过运动估计得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值,其中所述当前编码图像块的帧间预测模式为非融合merge模式或非跳过skip模式。
8.根据权利要求7所述的方法,其特征在于,所述将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中,包括:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
9.根据权利要求1所述的方法,其特征在于,所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,包括:
根据率失真代价准则,从与当前编码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;
确定所述目标候选运动信息为所述当前编码图像块的运动信息,其中所述当前编码图像块的帧间预测模式为融合merge模式或跳过skip模式;或者,
基于所述目标候选运动信息和通过运动估计得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值,其中所述当前编码图像块的帧间预测模式为非融合merge模式或非跳过skip模式。
10.一种基于历史候选列表的图像解码方法,其特征在于,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息,所述方法包括:
解析码流中的语法元素,以确定当前解码图像块的帧间预测模式;
基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息;
根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新;
所述根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新,包括:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,第一处理方式不同于第二处理方式;所述第一帧间预测模式为跳过模式或融合模式;所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式。
11.根据权利要求10所述的方法,其特征在于,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
12.根据权利要求11所述的方法,其特征在于,所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
13.根据权利要求10所述的方法,其特征在于,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表,包括:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息。
14.根据权利要求13所述的方法,其特征在于,所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,包括:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
15.根据权利要求13所述的方法,其特征在于,所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
或者,
所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表,包括:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
16.根据权利要求10所述的方法,其特征在于,所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息,包括:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中;
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前解码图像块的第二候选运动信息列表中;
从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;
基于所述目标候选运动信息预测所述当前解码图像块的运动信息。
17.根据权利要求16所述的方法,其特征在于,所述将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中,包括:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
18.根据权利要求10所述的方法,其特征在于,所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,包括:
从与当前解码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,所述目标候选运动信息用于预测所述当前解码图像块的运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;
根据所述当前解码图像块的运动信息对当前解码图像块进行帧间预测,得到所述当前解码图像块的预测图像。
19.一种基于历史候选列表的图像编码装置,其特征在于,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已编码图像块的运动信息,所述装置包括:
帧间预测单元,根据率失真代价准则确定当前编码图像块的帧间预测模式;基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息;
所述帧间预测单元还用于根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新;
熵编码单元,用于将用于指示所述当前编码图像块的帧间预测模式的语法元素编入码流;
所述根据当前编码图像块的帧间预测模式,使用当前编码图像块的运动信息对所述历史候选列表进行更新的方面,所述帧间预测单元用于:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表;第一处理方式不同于第二处理方式;所述第一帧间预测模式为融合merge模式或跳过skip模式;所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式。
20.根据权利要求19所述的装置,其特征在于,在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,在所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
21.根据权利要求20所述的装置,其特征在于,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
22.根据权利要求19所述的装置,其特征在于,在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
将当前编码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先编码得到的历史候选运动信息。
23.根据权利要求22所述的装置,其特征在于,在所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表的方面,所述帧间预测单元用于:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前编码图像块的运动信息作为最新的历史候选运动信息加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
24.根据权利要求22所述的装置,其特征在于,在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
当所述当前编码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前编码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
或者,
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,所述使用当前编码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前编码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
25.根据权利要求19所述的装置,其特征在于,在所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程,得到当前编码图像块的运动信息的方面,所述帧间预测单元用于:
在当前编码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中;
在当前编码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前编码图像块的第二候选运动信息列表中;
根据率失真代价准则从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;
确定所述目标候选运动信息为所述当前编码图像块的运动信息,其中所述当前编码图像块的帧间预测模式为融合merge模式或跳过skip模式;或者,
基于所述目标候选运动信息和通过运动估计得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值,其中所述当前编码图像块的帧间预测模式为非融合merge模式或非跳过skip模式。
26.根据权利要求25所述的装置,其特征在于,在所述将所述历史候选列表中的历史候选运动信息加入当前编码图像块的第一候选运动信息列表中的方面,所述帧间预测单元用于:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
27.根据权利要求19所述的装置,其特征在于,在所述基于所述当前编码图像块的帧间预测模式对当前编码图像块执行帧间预测过程的方面,所述帧间预测单元用于:
根据率失真代价准则,从与当前编码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;
确定所述目标候选运动信息为所述当前编码图像块的运动信息,其中所述当前编码图像块的帧间预测模式为融合merge模式或跳过skip模式;或者,
基于所述目标候选运动信息和通过运动估计得到的当前编码图像块的运动矢量,确定所述当前编码图像块的运动矢量差值MVD,所述目标候选运动信息为所述当前编码图像块的运动矢量预测值,其中所述当前编码图像块的帧间预测模式为非融合merge模式或非跳过skip 模式。
28.一种基于历史候选列表的图像解码装置,其特征在于,所述历史候选列表包括一个或多个历史候选运动信息,所述历史候选运动信息为在先已解码图像块的运动信息,所述装置包括:
熵解码单元,用于解析码流中的语法元素,以确定当前解码图像块的帧间预测模式;
帧间预测单元,用于基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息;
所述帧间预测单元还用于根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新;
在所述根据当前解码图像块的帧间预测模式,使用当前解码图像块的运动信息对所述历史候选列表进行更新的方面,所述帧间预测单元用于:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表;或
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表;第一处理方式不同于第二处理方式;所述第一帧间预测模式为跳过模式或融合模式;所述第二帧间预测模式为非第一帧间预测模式的帧间预测模式。
29.根据权利要求28所述的装置,其特征在于,在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
30.根据权利要求29所述的装置,其特征在于,在所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
如果当前的所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前的所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
31.根据权利要求28所述的装置,其特征在于,在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,所述使用当前解码图像块的运动信息采用第一处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
将当前解码图像块的运动信息不加入历史候选列表;或者,
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表,其中所述目标历史候选运动信息为基于所述第一帧间预测模式在先解码得到的历史候选运动信息。
32.根据权利要求31所述的装置,其特征在于,在所述如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表的方面,所述帧间预测单元用于:
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小未达到预设列表大小,则将当前解码图像块的运动信息作为最新的历史候选运动信息加入历史候选列表;
如果当前的历史候选列表中目标历史候选运动信息的个数未超过第一阈值且当前的所述历史候选列表的大小已达到预设列表大小,则从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
33.根据权利要求31所述的装置,其特征在于,在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:
当所述当前解码图像块的运动信息与所述历史候选列表中的第X历史候选运动信息相同时,从所述历史候选列表去除所述第X历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
当所述当前解码图像块的运动信息与所述历史候选列表中的一个或多个历史候选运动信息均不相同时,将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表;
或者,
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,所述使用当前解码图像块的运动信息采用第二处理方式更新所述历史候选列表的方面,所述帧间预测单元用于:如果当前所述历史候选列表的大小未达到预设列表大小,则将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表中;
如果当前所述历史候选列表的大小已达到预设列表大小,从所述历史候选列表去除最早加入的历史候选运动信息,并将所述当前解码图像块的运动信息作为最新的历史候选运动信息加入所述历史候选列表。
34.根据权利要求28所述的装置,其特征在于,在所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程,得到当前解码图像块的运动信息的方面,所述帧间预测单元用于:
在当前解码图像块的帧间预测模式为第一帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中;
在当前解码图像块的帧间预测模式为第二帧间预测模式的情况下,将所述历史候选列表中的历史候选运动信息不加入当前解码图像块的第二候选运动信息列表中;
从所述第一候选运动信息列表或第二候选运动信息列表中确定目标候选运动信息;
基于所述目标候选运动信息预测所述当前解码图像块的运动信息。
35.根据权利要求34所述的装置,其特征在于,在所述将所述历史候选列表中的历史候选运动信息加入当前解码图像块的第一候选运动信息列表中的方面,所述帧间预测单元用于:
在所述历史候选列表中的第一历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第一历史候选运动信息加入所述第一候选运动信息列表中,
在所述历史候选列表中的第二历史候选运动信息与所述第一候选运动信息列表中的一个或多个候选运动信息均不相同的情况下,将所述第二历史候选运动信息加入所述第一候选运动信息列表中,其中:
在第一历史候选运动信息加入所述历史候选列表的时间晚于第二历史候选运动信息加入所述历史候选列表的时间的情况下,所述第一历史候选运动信息相对于所述第二历史候选运动信息先加入所述第一候选运动信息列表。
36.根据权利要求28所述的装置,其特征在于,在所述基于所述当前解码图像块的帧间预测模式对当前解码图像块执行帧间预测过程的方面,所述帧间预测单元用于:
从与当前解码图像块的帧间预测模式对应的候选运动信息列表中确定目标候选运动信息,所述目标候选运动信息用于预测所述当前解码图像块的运动信息,其中所述历史候选列表中的一个或多个历史候选运动信息被包括于所述候选运动信息列表中;
根据所述当前解码图像块的运动信息对当前解码图像块进行帧间预测,得到所述当前解码图像块的预测图像。
CN201810991217.1A 2018-08-28 2018-08-28 基于历史候选列表的图像编码方法、图像解码方法及装置 Active CN110868613B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201810991217.1A CN110868613B (zh) 2018-08-28 2018-08-28 基于历史候选列表的图像编码方法、图像解码方法及装置
PCT/CN2019/102924 WO2020043111A1 (zh) 2018-08-28 2019-08-28 基于历史候选列表的图像编码、解码方法以及编解码器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810991217.1A CN110868613B (zh) 2018-08-28 2018-08-28 基于历史候选列表的图像编码方法、图像解码方法及装置

Publications (2)

Publication Number Publication Date
CN110868613A CN110868613A (zh) 2020-03-06
CN110868613B true CN110868613B (zh) 2021-10-01

Family

ID=69642896

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810991217.1A Active CN110868613B (zh) 2018-08-28 2018-08-28 基于历史候选列表的图像编码方法、图像解码方法及装置

Country Status (2)

Country Link
CN (1) CN110868613B (zh)
WO (1) WO2020043111A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112218092B (zh) * 2020-10-17 2022-09-06 浙江大华技术股份有限公司 串编码技术的编码方法、设备及存储介质
CN112261413B (zh) * 2020-10-22 2023-10-31 北京奇艺世纪科技有限公司 视频编码方法、编码装置、电子设备和存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103081470A (zh) * 2010-09-02 2013-05-01 Lg电子株式会社 编码和解码视频的方法和使用该方法的装置
CN103931192A (zh) * 2011-11-08 2014-07-16 三星电子株式会社 用于在视频编码或解码中的运动矢量确定的方法和设备
CN104853209A (zh) * 2014-02-16 2015-08-19 同济大学 图像编码、解码方法及装置
CN105120290A (zh) * 2015-08-04 2015-12-02 宁波大学 一种深度视频快速编码方法
CN105637874A (zh) * 2013-10-18 2016-06-01 Lg电子株式会社 解码多视图视频的视频解码装置和方法
US9549200B1 (en) * 2011-04-11 2017-01-17 Texas Instruments Incorporated Parallel motion estimation in video coding
CN107318016A (zh) * 2017-05-08 2017-11-03 上海大学 一种基于零块分布的hevc帧间预测模式快速判定方法
CN108353184A (zh) * 2015-11-05 2018-07-31 联发科技股份有限公司 用于视频编解码的使用平均运动矢量的帧间预测的方法和装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103081470A (zh) * 2010-09-02 2013-05-01 Lg电子株式会社 编码和解码视频的方法和使用该方法的装置
US9549200B1 (en) * 2011-04-11 2017-01-17 Texas Instruments Incorporated Parallel motion estimation in video coding
CN103931192A (zh) * 2011-11-08 2014-07-16 三星电子株式会社 用于在视频编码或解码中的运动矢量确定的方法和设备
CN105637874A (zh) * 2013-10-18 2016-06-01 Lg电子株式会社 解码多视图视频的视频解码装置和方法
CN104853209A (zh) * 2014-02-16 2015-08-19 同济大学 图像编码、解码方法及装置
CN105120290A (zh) * 2015-08-04 2015-12-02 宁波大学 一种深度视频快速编码方法
CN108353184A (zh) * 2015-11-05 2018-07-31 联发科技股份有限公司 用于视频编解码的使用平均运动矢量的帧间预测的方法和装置
CN107318016A (zh) * 2017-05-08 2017-11-03 上海大学 一种基于零块分布的hevc帧间预测模式快速判定方法

Also Published As

Publication number Publication date
WO2020043111A1 (zh) 2020-03-05
CN110868613A (zh) 2020-03-06

Similar Documents

Publication Publication Date Title
CN109963155B (zh) 图像块的运动信息的预测方法、装置及编解码器
CN107710764B (zh) 确定用于视频译码的照明补偿状态的系统及方法
CN107690810B (zh) 确定用于视频译码的照明补偿状态的系统及方法
CN109996081B (zh) 图像预测方法、装置以及编解码器
US9854234B2 (en) Reference picture status for video coding
US9736489B2 (en) Motion vector determination for video coding
JP5869122B2 (ja) ビデオコーディングにおける予測データのバッファリング
US20130272409A1 (en) Bandwidth reduction in video coding through applying the same reference index
JP2020536443A (ja) ビデオコーディングのためのアフィン予測動き情報をコーディングすること
KR20130126688A (ko) 모션 벡터 예측
US20130188716A1 (en) Temporal motion vector predictor candidate
US11563949B2 (en) Motion vector obtaining method and apparatus, computer device, and storage medium
JP2023083293A (ja) ビデオ符号化方法および装置
CN111200735A (zh) 一种帧间预测的方法及装置
WO2020047807A1 (zh) 帧间预测方法、装置以及编解码器
CN110868613B (zh) 基于历史候选列表的图像编码方法、图像解码方法及装置
US20210014526A1 (en) Video coding method and apparatus
KR102449889B1 (ko) 비디오 코딩을 위한 서브-블록 시간적 움직임 벡터 예측
CN113170141B (zh) 帧间预测方法和相关装置
CN110896485B (zh) 一种预测运动信息的解码方法及装置
CN110546956B (zh) 一种帧间预测的方法及装置
WO2019084776A1 (zh) 图像块的候选运动信息的获取方法、装置及编解码器

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant