CN106105197A - 针对帧内块复制的基于散列的编码器搜索 - Google Patents

针对帧内块复制的基于散列的编码器搜索 Download PDF

Info

Publication number
CN106105197A
CN106105197A CN201580013143.9A CN201580013143A CN106105197A CN 106105197 A CN106105197 A CN 106105197A CN 201580013143 A CN201580013143 A CN 201580013143A CN 106105197 A CN106105197 A CN 106105197A
Authority
CN
China
Prior art keywords
block
video
current block
picture
hash
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.)
Granted
Application number
CN201580013143.9A
Other languages
English (en)
Other versions
CN106105197B (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.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
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 Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN106105197A publication Critical patent/CN106105197A/zh
Application granted granted Critical
Publication of CN106105197B publication Critical patent/CN106105197B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9014Indexing; Data structures therefor; Storage structures hash tables
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • 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/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • 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/172Methods 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 picture, frame or field
    • 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/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/18Methods 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 a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial 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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/31Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the temporal domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/597Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding specially adapted for multi-view video sequence encoding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Discrete Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Storage Device Security (AREA)

Abstract

一种经配置以编码图片的视频信息的设备包含存储器单元和与所述存储器单元通信的处理器。所述存储器单元经配置以存储包含对应于所述图片中的参考块的至少一个散列索引的散列表,所述参考块是所述图片中的可用块的子集。所述处理器经配置以:基于将散列函数应用到当前块而将所述当前块映射到所述散列表中的散列索引;从所述散列表识别对应于所述散列索引的参考块;基于所述当前块与所述参考块的比较从所述参考块之中选择预测块;以及使用所述选定预测块编码所述视频信息。

Description

针对帧内块复制的基于散列的编码器搜索
技术领域
本发明大体上涉及视频译码和压缩的领域,且特定来说涉及视频编解码器的上下文中的帧内块复制(帧内BC)。
背景技术
数字视频能力可并入到广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置及其类似物。数字视频装置实施视频压缩技术,例如在由移动图片专家组-2(MPEG-2)、MPEG-4、国际电信联盟电信标准化部门(ITU-T)H.263、ITU-T H.264/MPEG-4、第10部分定义的标准、先进视频译码(AVC)、高效视频译码(HEVC)标准和此些标准的扩展中描述的视频压缩技术。视频装置可通过实施这些视频译码技术而更有效率地发射、接收、编码、解码和/或存储数字视频信息。
视频压缩技术执行空间(图片内)预测及/或时间(图片间)预测来减少或去除视频序列中固有的冗余。对于基于块的视频译码,可将视频切片分割成视频块,视频块还可被称作树块、译码单元(CU)及/或译码节点。使用关于同一图片中的相邻块中的参考样本的空间预测对图片的经帧内译码(I)切片中的视频块进行编码。图片的经帧间译码(P或B)切片中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。图片可被称为帧,且参考图片可被称为参考帧。
发明内容
本发明的系统、方法及装置各自具有若干创新方面,其中没有单个方面单独负责本文所揭示的合乎需要的属性。
在一个方面中,一种用于编码图片的视频信息的设备包括:存储器单元,其经配置以存储包含对应于图片中的参考块的至少一个散列索引的散列表,所述参考块是图片中的可用块的子集;以及处理器,其操作上耦合到所述存储器单元且经配置以:基于将散列函数应用到当前块而将所述当前块映射到散列表中的散列索引;从散列表识别对应于所述散列索引的参考块;基于所述当前块与所述参考块的比较从参考块之中选择预测块;且使用选定预测块编码视频信息。
在另一方面中,一种用于编码图片的视频信息的方法包括:在存储器单元中存储包含对应于图片中的参考块的至少一个散列索引的散列表,所述参考块是图片中的可用块的子集;基于将散列函数应用到当前块而将当前块映射到散列表中的散列索引;从散列表识别对应于所述散列索引的参考块;基于当前块与参考块的比较从参考块之中选择预测块;以及使用选定预测块编码视频信息。
在另一方面中,一种非暂时性计算机可读存储媒体具有存储于其上的指令,所述指令在执行时致使装置的处理器:在存储器单元中存储供编码图片的视频信息时使用的散列表,所述散列表包括对应于图片中的参考块的至少一个散列索引,所述参考块是图片中的可用块的子集;基于将散列函数应用到当前块而将当前块映射到散列表中的散列索引;从散列表识别对应于所述散列索引的参考块;基于当前块与参考块的比较从参考块之中选择预测块;以及使用选定预测块编码视频信息。
在又一方面中,一种经配置以编码图片的视频信息的视频译码装置包括:用于存储包含对应于图片中的参考块的至少一个散列索引的散列表的装置,所述参考块是图片中的可用块的子集;用于基于将散列函数应用到当前块而将当前块映射到散列表中的散列索引的装置;用于从散列表识别对应于所述散列索引的参考块的装置;用于基于当前块与参考块的比较从参考块之中选择预测块的装置;以及用于使用选定预测块编码视频信息的装置。
附图说明
图1A是说明可利用根据本发明中描述的方面的技术的实例视频编码及解码系统的框图。
图1B是说明可执行根据本发明中描述的方面的技术的另一实例视频编码和解码系统的框图。
图2A是说明可实施根据本发明中描述的方面的技术的视频编码器的实例的框图。
图2B是说明可实施根据本发明中描述的方面的技术的视频编码器的实例的框图。
图3A是说明可实施根据本发明中描述的方面的技术的视频解码器的实例的框图。
图3B是说明可实施根据本发明中描述的方面的技术的视频解码器的实例的框图。
图4为说明使用帧内块复制的编码器搜索的常规实例的图。
图5说明根据本发明中描述的方面针对帧内BC的基于散列的快速编码器搜索的示范性框架。
图6为根据本发明中描述的方面用于使用基于散列的编码器搜索编码图片的视频信息的示范性流程图的说明。
具体实施方式
大体来说,本发明涉及例如高效视频译码(HEVC)等先进视频编解码器的上下文中的帧内块复制(帧内BC)。作为一个实例,本发明涉及在对HEVC的范围扩展(RExt)中针对帧内BC的改进的编码器搜索。然而,所述技术不应被视为限于HEVC标准或其范围扩展。
例如远程桌面、远程游戏、无线显示器、汽车信息娱乐、云计算等应用的使用已变得较流行。这些应用中的视频内容通常是同一图片内的自然内容以及文本、人工图形等(也称为非自然内容)的组合。在文本和人工图形区中,常常存在重复样式(例如,字符、图标、符号等)。帧内BC是涉及移除归因于此些重复样式的冗余且改进帧内译码效率的专门技术。更确切地说,帧内BC是块匹配技术,其中基于来自同一图片或相同切片内的另一区的另一先前经重建块预测当前译码单元(CU)或当前预测单元(PU)。
为寻找合适的经重建块,编码器通常对整个搜索区执行搜索,整个搜索区可为视频信息的整个帧。已经提出用于改进针对帧内BC的搜索速度的各种方法。然而,如果搜索区较大(例如,整个帧),则这些方法可能并不有效。这是因为大搜索区可含有许多块,其中的每一者可必须在帧内BC期间个别地检查。
本发明的实施例通过提供用于经由使用散列表编码图片的视频信息的技术而提供解决先前帧内BC方法中的问题的优点。散列表可包含对应于图片中的先前经重建块的子集的至少一个散列索引。当前块接着可经由使用散列函数映射到散列索引,且帧内BC可限于对应于当前块映射到的散列索引的经重建块。因此,此类实施例适于将针对帧内BC的编码器搜索限于特定经重建块而非整个搜索区。
需要用于例如文本和图形(具有运动)等屏幕内容材料的新译码工具的调查。下文描述改进针对屏幕内容的译码效率的特定技术。译码效率的改进可利用专门译码工具通过利用屏幕内容的特性来实现。本文提供HEVC标准的扩展,包含用于屏幕内容译码的特定工具。
虽然本文中在HEVC和/或H.264标准的上下文中描述某些实施例,但所属领域的一般技术人员可了解,本文中揭示的系统和方法可适用于任何合适的视频译码标准。举例来说,本文中所揭示的实施例可适用于以下标准中的一或多者:国际电信联盟(ITU)电信标准化部门(ITU-T)H.261、国际标准化组织/国际电工委员会(ISO/IEC)MPEG-1Visual、ITU-TH.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包含可缩放和多视图扩展。并且,本发明中描述的技术可变为将来开发的标准的一部分。换句话说,本发明中描述的技术可适用于先前开发的视频译码标准、当前正在开发的视频译码标准及即将出现的视频译码标准。
在许多方面,HEVC通常遵循先前视频译码标准的框架。HEVC中的预测的单位不同于特定先前视频译码标准中的预测的单位(例如,宏块)。实际上,在HEVC中不存在如在某些先前视频译码标准中所理解的宏块的概念。宏块由基于四叉树方案的分层结构替换,所述分层结构可提供高灵活性和其它可能益处。举例来说,在HEVC方案内,定义三个类型的块,例如CU、PU和变换单元(TU)。CU可指区分裂的基本单元。可将CU视为类似于宏块的概念,但HEVC不限制CU的最大大小,且可允许递归分裂成四个大小相等的CU以改进内容适应性。PU可被认为是帧间/帧内预测的基本单元,且单个PU可含有多个任意形状分区以有效地对不规则图像样式进行译码。TU可认为是变换的基本单元。可独立于PU界定TU;然而,TU的大小可限于TU所属的CU的大小。此块结构分离为三个不同概念可允许根据单元的相应作用来优化每一单元,这可得到改进的译码效率。
仅出于说明的目的,用仅包含视频数据的两个层(举例来说,例如基础层等较低层,以及例如增强层等较高层)的实例来描述本文中所揭示的某些实施例。视频数据的“层”可通常指具有至少一个共同特性(例如,视图、帧速率、分辨率或类似者)的图片序列。例如,层可以包含与多视图视频数据的特定视图(例如,透视图)相关联的视频数据。作为另一实例,层可包含与可缩放视频数据的特定层相关联的视频数据。因此,本发明可互换地参考视频数据的层和视图。也就是说,视频数据的视图可被称作视频数据的层,且视频数据的层可被称作视频数据的视图。此外,多层编解码器(也称为多层视频译码器或多层编码器-解码器)可共同指多视图编解码器或可缩放编解码器(例如,经配置以使用MV-HEVC、3D-HEVC、SHVC或另一多层译码技术编码和/或解码视频数据的编解码器)。视频编码和视频解码可通常被称作视频译码。应理解,这些实例可适用于包含多个基础层及/或增强层的配置。另外,为了易于解释,参考某些实施例,以下揭示内容包含术语“帧”或“块”。然而,这些术语不打算具有限制性。举例来说,下文描述的技术可配合任何合适的视频单元(例如,块(例如,CU、PU、TU、宏块等)、切片、帧等)一起使用。
视频译码标准
例如视频图像、TV图像、静态图像或由录像机或计算机产生的图像等数字图像可由布置成水平和垂直线的像素或样本组成。单个图像中的像素的数目通常有数万个。每一像素通常含有明度和色度信息。在无压缩的情况下,将从图像编码器传达到图像解码器的信息的绝对量将使实时图像发射变得不可能。为了减少待发射的信息的量,已开发出例如JPEG、MPEG及H.263标准等数个不同压缩方法。
视频译码标准包含ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IECMPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也被称作ISO/IECMPEG-4AVC),包含可缩放和多视图扩展。
另外,ITU-T视频译码专家组(VCEG)和ISO/IEC MPEG的视频译码联合协作小组(JCT-VC)已经开发视频译码标准(即,HEVC)。对HEVC草案10的完全引用为Bross等人的文献JCTVC-L1003,“高效率视频译码(HEVC)文本说明书草案10”,ITU-T SG16WP3与ISO/IECJTC1/SC29/WG11的关于视频译码的联合合作小组(JCT-VC),第12次会议:瑞士日内瓦,2013年1月14日至2013年1月23日。对HEVC的多视图扩展(即,MV-HEVC)和对HEVC的可缩放扩展(即,SHVC)也正分别由JCT-3V(关于3D视频译码扩展开发的ITU-T/ISO/IEC联合合作小组)和JCT-VC开发。
视频译码系统
下文参考附图更充分地描述新颖系统、设备及方法的各个方面。然而,本发明可以许多不同形式来体现,且不应将其解释为限于贯穿本发明所呈现的任何特定结构或功能。相反地,提供这些方面以使得本发明将透彻且完整,并且将向所属领域的技术人员充分传达本发明的范围。基于本文中的教示,所属领域的技术人员应了解,本发明的范围既定涵盖无论是独立于本发明的任何其它方面而实施还是与之组合而实施的本文中所揭示的新颖系统、设备及方法的任何方面。举例来说,可以使用本文中所阐述的任何数目个方面来实施设备或实践方法。另外,本发明的范围既定涵盖使用除本文中所阐述的本发明的各种方面之外的或不同于本文中所阐述的本发明的各种方面的其它结构、功能性或结构与功能性来实践的此设备或方法。应理解,可通过权利要求的一或多个要素来体现本文中所揭示的任何方面。
尽管本文描述了特定方面,但这些方面的许多变化及排列落在本发明的范围内。尽管提及了优选方面的一些益处及优点,但本发明的范围不希望限于特定益处、用途或目标。而是,本发明的方面既定广泛地适用于不同无线技术、系统配置、网络及发射协议,其中的一些是借助于实例而在图中以及在优选方面的以下描述中说明。具体实施方式和图式仅说明本发明,而不是限制由所附权利要求书及其等效物界定的本发明的范围。
附图说明实例。由附图中的参考标号指示的元件对应于在以下描述中由相同参考标号指示的元件。在本发明中,具有以序数词(例如,“第一”、“第二”、“第三”等)开始的名称的元件不一定暗示所述元件具有特定次序。而是,此些序数词仅用于指代相同或类似类型的不同元件。
图1A为说明可利用根据本发明中所描述的方面的技术的实例视频译码系统10的框图。如本文中所描述地使用,术语“视频译码器”一般指视频编码器及视频解码器两者。在本发明中,术语“视频译码”或“译码”可一般地指代视频编码和视频解码。除了视频编码器和视频解码器外,本申请案中描述的方面可扩展到其它相关装置,例如,转码器(例如,可解码位流且重新编码另一位流的装置)及中间框(例如,可修改、变换及/或另外操纵位流的装置)。
如图1A中所示,视频译码系统10包含源装置12,其产生将在稍后时间由目的地装置14解码的经编码视频数据。在图1A的实例中,源装置12和目的地装置14构成单独装置。然而,应注意,源装置12和目的地模块14可在同一装置上或为同一装置的一部分,如在图1B的实例中所展示。
再次参考图1A,源装置12和目的地装置14可分别包括广泛范围的装置中的任一者,包含台式计算机、笔记本(例如,膝上型)计算机、平板计算机、机顶盒、电话手持机(例如,所谓的“智能”电话)、所谓的“智能”板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频串流装置等等。在各种实施例中,源装置12和目的地装置14可经装备以用于无线通信。
目的地装置14可经由链路16接收待解码的经编码视频数据。链路16可包括能够将经编码视频数据从源装置12移动到目的地装置14的任何类型的媒体或装置。在图1A的实例中,链路16可包括使得源装置12能够实时将经编码视频数据发射到目的地装置14的通信媒体。可根据通信标准(例如,无线通信协议)调制经编码的视频数据,并将其发射到目的地装置14。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或一或多个物理发射线。通信媒体可形成基于包的网络(例如,局域网、广域网或全球网络,例如因特网)的部分。通信媒体可包含路由器、交换机、基站或可用于促进从源装置12到目的地装置14的通信的任一其它设备。
或者,经编码数据可从输出接口22输出到存储装置31(可选地存在)。类似地,可由(例如)目的地装置14的输入接口28从存储装置31存取经编码数据。存储装置31可包含多种分布式或本地存取数据存储媒体中的任一者,例如硬盘驱动器、快闪存储器、易失性或非易失性存储器,或用于存储经编码视频数据的任何其它合适的数字存储媒体。在另一实例中,存储装置31可对应于文件服务器或可保持源装置12产生的经编码视频的另一中间存储装置。目的地装置14可经由串流或下载从存储装置31存取所存储的视频数据。文件服务器可以为能够存储经编码视频数据并将经编码视频数据发射到目的地装置14的任何类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、网络附接存储(NAS)装置,或本地磁盘驱动器。目的地装置14可通过任何标准数据连接(包含因特网连接)来存取经编码的视频数据。此可包含无线信道(例如无线局域网(WLAN)连接)、有线连接(例如数字订户线(DSL)、电缆调制解调器等),或适合于存取存储在文件服务器上的经编码视频数据的两者的组合。经编码视频数据从存储装置31的发射可为串流发射、下载发射或两者的组合。
本发明的技术不限于无线应用或设置。所述技术可应用于支持多种多媒体应用中的任一者的视频译码,所述多媒体应用例如空中电视广播、有线电视发射、卫星电视发射、(例如)经由因特网的串流视频发射(例如,根据超文本传送协议(HTTP)的动态自适应串流等)、用于存储在数据存储媒体上的数字视频的编码、存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,视频译码系统10可经配置以支持单向或双向视频发射以支持例如视频串流、视频重放、视频广播及/或视频电话等应用。
在图1A的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些情况下,输出接口22可包含调制器/解调器(调制解调器)和/或发射器。在源装置12中,视频源18可包含例如视频俘获装置(例如,摄像机)、含有先前所俘获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口和/或用于产生计算机图形数据以作为源视频的计算机图形系统,或此类源的组合等源。作为一个实例,如果视频源18是摄像机,那么源装置12和目的地装置14可形成所谓的“相机电话”或“视频电话”,如图1B的实例中所说明。然而,本发明中所描述的技术一般来说可适用于视频译码,且可应用于无线和/或有线应用。
可由视频编码器20对所俘获、预俘获或计算机产生的视频进行编码。可经由源装置12的输出接口22将经编码视频数据发射到目的地装置14。还可(或替代地)将经编码视频数据存储到存储装置31上以用于稍后由目的地装置14或其它装置存取以用于解码和/或重放。图1A和1B中说明的视频编码器20可包括图2A中说明的视频编码器20、图2B中说明的视频编码器23,或本文中所描述的任何其它视频编码器。
在图1A的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。在一些情况下,输入接口28可包含接收器和/或调制解调器。目的地装置14的输入接口28可经由链路16和/或从存储装置31接收经编码视频数据。经由链路16传送或在存储装置31上提供的经编码视频数据可包含由视频编码器20所产生的多种语法元素以供由例如视频解码器30等视频解码器用于解码视频数据。此类语法元素可与在通信媒体上发射、存储于存储媒体上或存储文件服务器的经编码视频数据包含在一起。图1A和1B中说明的视频解码器30可包括图3中说明的视频解码器30、图3B中说明的视频解码器33,或本文中所描述的任何其它视频解码器。
显示装置32可与目的地装置14集成或在目的地装置14外部。在一些实例中,目的地装置14可包含集成显示装置,并且还经配置以与外部显示装置介接。在其它实例中,目的地装置14可为显示装置。一般来说,显示装置32将经解码视频数据显示给用户,且可包括多种显示装置中的任一者,例如液晶显示器(LCD)、等离子体显示器、有机发光二极管(OLED)显示器或另一类型的显示装置。
在相关方面中,图1B展示实例视频译码系统10′,其中源装置12和目的地装置14在装置11上或为装置11的一部分。装置11可为电话手持机,例如“智能”电话或类似物。装置11可包含与源装置12和目的地装置14可操作通信的控制器/处理器装置13(可选地存在)。图1B的视频译码系统10′及其组件在其它方面类似于图1A的视频译码系统10及其组件。
视频编码器20和视频解码器30可根据例如HEVC等视频压缩标准操作,且可符合HEVC测试模型(HM)。或者,视频编码器20和视频解码器30可以根据其它专有或业界标准操作,所述标准例如ITU-T H.264标准(或者被称作MPEG-4第10部分AVC),或此类标准的扩展。但是,本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T H.263。
尽管图1A和1B的实例中未展示,但视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当的MUX-DEMUX单元或其它硬件和软件以处理共同数据流或单独数据流中的音频和视频两者的编码。在一些实例中,如果适用的话,那么MUX-DEMUX单元可以符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
视频编码器20和视频解码器30各自可实施为多种合适的编码器电路中的任一者,例如一或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任何组合。当部分地用软件实施所述技术时,装置可将用于软件的指令存储在合适的非暂时性计算机可读媒体中且在硬件中使用一或多个处理器执行所述指令以执行本发明的技术。视频编码器20和视频解码器30中的每一者可包含在一或多个编码器或解码器中,所述编码器或解码器中的任一者可集成为相应装置中的组合式编码器/解码器的部分。
视频译码过程
如上文简要提及,视频编码器20编码视频数据。视频数据可包括一或多个图片。图片中的每一者为形成视频的部分的静态图像。在一些情况下,图片可被称作视频“帧”。当视频编码器20对视频数据进行编码时,视频编码器20可产生位流。位流可包含形成视频数据的经译码表示的一连串位。位流可包含经译码图片和相关联的数据。经译码的图片是图片的经译码的表示。
为了产生位流,视频编码器20可对视频数据中的每一图片执行编码操作。当视频编码器20对图片执行编码操作时,视频编码器20可产生一系列经译码图片和相关联数据。相关联数据可包含视频参数集(VPS)、序列参数集(SPS)、图片参数集(PPS)、自适应参数集(APS)和其它语法结构。SPS可以含有适用于零个或多于零个的图片序列的参数。PPS可含有适用于零或更多图片的参数。APS可含有适用于零个或更多图片的参数。APS中的参数可为比PPS中的参数更可能改变的参数。
为了产生经译码图片,视频编码器20可将图片分割成大小相等的视频块。视频块可为样本的二维阵列。视频块中的每一者与树块相关联。在一些情况下,树块可被称作最大译码单元(LCU)。HEVC的树块可广泛类似于例如H.264/AVC等先前标准的宏块。然而,树块不必限于特定大小,且可包含一或多个译码单元(CU)。视频编码器20可使用四叉树分割来将树块的视频块分割成与CU相关联的视频块(因此名称为“树块”)。
在一些实例中,视频编码器20可将图片分割成多个切片。切片中的每一者可包含整数数目个CU。在一些情况下,一个切片包括整数数目个树块。在其它情况下,切片的边界可在树块内。
作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操作。当视频编码器20对切片执行编码操作时,视频编码器20可产生与切片相关联的经编码数据。与切片相关联的经编码数据可被称为“经译码切片”。
为产生经译码切片,视频编码器20可对切片中的每一树块执行编码操作。当视频编码器20对树块执行编码操作时,视频编码器20可产生经译码树块。经译码树块可包括表示树块的经编码型式的数据。
当视频编码器20产生经译码切片时,视频编码器20可根据光栅扫描次序对切片中的树块执行编码操作(例如,编码)。举例来说,视频编码器20可按如下次序来对切片的树块进行编码:跨越切片中的树块的最顶行从左到右进行,接着跨越树块的下一较低行从左到右进行,以此类推,直到视频编码器20已对切片中的树块的每一者进行了编码为止。
作为根据光栅扫描次序编码树块的结果,可已编码在给定树块的上方和左边的树块,但尚未编码在给定树块的下方和右边的树块。因此,当对给定树块进行编码时,视频编码器20可能能够存取通过对给定树块的上方和左边的树块进行编码而产生的信息。然而,当编码给定树块时,视频编码器20可能不能够存取通过编码在给定树块的下方和右边的树块而产生的信息。
为了产生经译码树块,视频编码器20可对树块的视频块递归地执行四叉树分割以将视频块划分为逐渐变小的视频块。较小视频块中的每一者可与不同CU相关联。举例来说,视频编码器20可将树块的视频块分割成四个大小相等的子块、将所述子块中的一或多者分割成四个大小相等的子子块(sub-sub-block),以此类推。经分割的CU可为其视频块被分割成与其它CU相关联的视频块的CU。未分割CU可为其视频块未被分割成与其它CU相关联的视频块的CU。
位流中的一或多个语法元素可指示视频编码器20可分割树块的视频块的最大次数。CU的视频块在形状上可为正方形。CU的视频块的大小(例如,CU的大小)范围可从8x8像素直到具有最大64x64个像素或更大的树块的视频块的大小(例如,树块的大小)。
视频编码器20可根据z扫描次序对树块的每一CU执行编码操作(例如,编码)。换句话说,视频编码器20可将左上CU、右上CU、左下CU和接着右下CU按此次序编码。当视频编码器20对经分割的CU执行编码操作时,视频编码器20可根据z扫描次序对与经分割的CU的视频块的子块相关联的CU进行编码。换句话说,视频编码器20可对与左上子块相关联的CU、与右上子块相关联的CU、与左下子块相关联的CU,且接着是与右下子块相关联的CU按所述次序进行编码。
作为根据z扫描次序编码树块的CU的结果,可已编码在给定CU的上方、左上方、右上方、左边和左下方的CU。尚未对给定CU的右下方的CU进行编码。因此,当对给定CU进行编码时,视频编码器20可能能够存取通过对与给定CU相邻的一些CU进行编码而产生的信息。然而,当对给定CU进行编码时,视频编码器20可能不能够存取通过对与给定CU相邻的其它CU进行编码而产生的信息。
当视频编码器20编码未经分割CU时,视频编码器20可产生所述CU的一或多个预测单元(PU)。CU的PU中的每一者可与CU的视频块内的不同视频块相关联。视频编码器20可产生用于CU的每一PU的经预测视频块。PU的经预测视频块可为样本块。视频编码器20可使用帧内预测或帧间预测来产生PU的经预测视频块。
当视频编码器20使用帧内预测来产生PU的经预测视频块时,视频编码器20可基于与PU相关联的图片的经解码样本来产生PU的经预测视频块。如果视频编码器20使用帧内预测来产生CU的PU的经预测视频块,那么CU为经帧内预测的CU。当视频编码器20使用帧间预测来产生PU的经预测视频块时,视频编码器20可基于不同于与PU相关联的图片的一或多个图片的经解码样本而产生PU的经预测视频块。如果视频编码器20使用帧间预测来产生CU的PU的经预测视频块,那么所述CU为经帧间预测CU。
此外,当视频编码器20使用帧间预测来产生PU的经预测视频块时,视频编码器20可产生PU的运动信息。PU的运动信息可指示PU的一或多个参考块。PU的每一参考块可为参考图片内的视频块。参考图片可为除与PU相关联的图片以外的图片。在一些情况下,PU的参考块也可被称作PU的“参考样本”。视频编码器20可基于PU的参考块产生所述PU的经预测视频块。
在视频编码器20产生用于CU的一或多个PU的经预测视频块之后,视频编码器20可基于用于CU的所述PU的经预测视频块产生所述CU的残余数据。CU的残余数据可指示用于CU的PU的经预测视频块中的样本与CU的原始视频块之间的差异。
此外,作为对未分割的CU执行编码操作的部分,视频编码器20可对CU的残余数据执行递归四叉树分割以将CU的残余数据分割成与CU的变换单元(TU)相关联的一或多个残余数据块(例如,残余视频块)。CU的每一TU可与不同残余视频块相关联。
视频编码器20可将一或多个变换应用到与TU相关联的残余视频块以产生与TU相关联的变换系数块(例如,变换系数块)。在概念上,变换系数块可为变换系数的二维(2D)矩阵。
在产生变换系数块之后,视频编码器20可对所述变换系数块执行量化过程。量化总体上是指对变换系数进行量化以可能减少用以表示变换系数的数据的量从而提供进一步压缩的过程。量化过程可减少与变换系数中的一些或全部相关联的位深度。例如,可在量化期间将n位变换系数向下舍入到m位变换系数,其中n大于m。
视频编码器20可使每一CU与量化参数(QP)值相关联。与CU相关联的QP值可确定视频编码器20如何对与CU相关联的变换系数块进行量化。视频编码器20可通过调整与CU相关联的QP值来调整应用于与CU相关联的变换系数块的量化的程度。
在视频编码器20量化变换系数块之后,视频编码器20可产生表示经量化变换系数块中的变换系数的语法元素集。视频编码器20可将例如上下文自适应二进制算术译码(CABAC)操作等熵编码操作应用于这些语法元素中的一些。还可使用例如上下文自适应可变长度译码(CAVLC)、概率区间分割熵(PIPE)译码或其它二进制算术译码等其它熵译码技术。
由视频编码器20产生的位流可包含一系列网络抽象层(NAL)单元。所述NAL单元中的每一者可为含有NAL单元中的数据类型的指示及含有数据的字节的语法结构。举例来说,NAL单元可含有表示视频参数集、序列参数集、图片参数集、经译码切片、附加增强信息(SEI)、存取单元定界符、填充符数据,或另一类型的数据的数据。NAL单元中的数据可包含各种语法结构。
视频解码器30可接收由视频编码器20产生的位流。位流可包含由视频编码器20编码的视频数据的经译码表示。当视频解码器30接收到位流时,视频解码器30可对位流执行解析操作。当视频解码器30执行解析操作时,视频解码器30可从位流提取语法元素。视频解码器30可基于从位流提取的语法元素而重建视频数据的图片。基于语法元素而重建视频数据的过程一般可与由视频编码器20执行以产生语法元素的过程互逆。
在视频解码器30提取与CU相关联的语法元素之后,视频解码器30可基于所述语法元素产生用于CU的PU的经预测视频块。另外,视频解码器30可对与CU的TU相关联的变换系数块进行逆量化。视频解码器30可对变换系数块执行逆变换以重建与CU的TU相关联的残余视频块。在产生经预测视频块且重建残余视频块之后,视频解码器30可基于经预测视频块及残余视频块重建CU的视频块。以此方式,视频解码器30可基于位流中的语法元素重建CU的视频块。
视频编码器
图2A为说明可实施根据本发明中描述的方面的技术的视频编码器20的实例的框图。视频编码器20可经配置以处理视频帧的单层(例如,针对HEVC)。此外,视频编码器20可经配置以执行本发明的技术中的任一者或全部。在一些实例中,本发明中描述的技术可在视频编码器20的各种组件之间共享。在一些实例中,另外或替代地,处理器(未图示)可经配置以执行本发明中描述的技术中的任一者或全部。
出于解释的目的,本发明在HEVC译码的上下文中描述视频编码器20。然而,本发明的技术可以适用于其它译码标准或方法。图2A中所描绘的实例是针对单层编解码器。然而,如相对于图2B将进一步描述,视频编码器20中的一些或全部可经复制用于处理多层编解码器。
视频编码器20可对视频切片内的视频块执行帧内译码及帧间译码。帧内译码依赖于空间预测来减小或移除给定视频帧或图片内的视频中的空间冗余。帧间译码依靠时间预测来减少或移除视频序列的邻近帧或图片内的视频中的时间冗余。帧内模式(I模式)可指代若干基于空间的译码模式中的任一者。例如单向预测(P模式)或双向预测(B模式)等帧间模式可指代若干基于时间的译码模式中的任一者。
在图2A的实例中,视频编码器20包含多个功能组件。视频编码器20的功能组件包含预测处理单元100、残余产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换单元110、重建单元112、滤波器单元113、经解码图片缓冲器114和熵编码单元116。预测处理单元100包含帧间预测单元121、运动估计单元122、运动补偿单元124、帧内预测单元126和层间预测单元128。在其它实例中,视频编码器20可包含更多、更少或不同功能组件。此外,运动估计单元122与运动补偿单元124可高度集成,但出于解释的目的而在图2A的实例中单独地表示。
视频编码器20可接收视频数据。视频编码器20可从各种源接收视频数据。举例来说,视频编码器20可从视频源18(例如,图1A或1B中所展示)或另一源接收视频数据。视频数据可表示一系列图片。为编码视频数据,视频编码器20可对图片中的每一者执行编码操作。作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操作。作为对切片执行编码操作的部分,视频编码器20可对切片中的树块执行编码操作。
作为对树块执行编码操作的部分,预测处理单元100可对树块的视频块执行四叉树分割以将所述视频块划分成逐渐变小的视频块。较小视频块中的每一者可与不同CU相关联。举例来说,预测处理单元100可将树块的视频块分割成四个相等大小的子块,将所述子块中的一或多者分割成四个相等大小的子子块,等等。
与CU相关联的视频块的大小范围可从8x8样本高达最大64x64像素或更大的树块大小。在本发明中,“NxN”和“N乘N”可互换使用来指代在垂直和水平尺寸方面的视频块的样本尺寸,例如,16x16样本或16乘16样本。一般来说,16x16视频块在垂直方向上具有16个样本(y=16),且在水平方向上具有16个样本(x=16)。同样,NxN块一般在垂直方向上具有N个样本,且在水平方向上具有N个样本,其中N表示非负整数值。
另外,作为对树块执行编码操作的部分,预测处理单元100可产生用于所述树块的阶层式四叉树数据结构。例如,树块可对应于四叉树数据结构的根节点。如果预测处理单元100将树块的视频块分割成四个子块,那么根节点在四叉树数据结构中具有四个子节点。所述子节点中的每一者对应于与子块中的一者相关联的CU。如果预测处理单元100将子块中的一者分割成四个子子块,那么对应于与子块相关联的CU的节点可具有四个子级节点,其中的每一者对应于与子子块中的一者相关联的CU。
四叉树数据结构的每一节点可含有对应树块或CU的语法数据(例如,语法元素)。举例来说,四叉树中的节点可包含分裂旗标,其指示对应于所述节点的CU的视频块是否被分割(例如,分裂)成四个子块。用于CU的语法元素可递归地界定,且可取决于所述CU的视频块是否分裂成子块。视频块未被分割的CU可对应于四叉树数据结构中的叶节点。经译码树块可包含基于对应树块的四叉树数据结构的数据。
视频编码器20可对树块的每一未经分割的CU执行编码操作。当视频编码器20对未经分割的CU执行编码操作时,视频编码器20产生表示未经分割的CU的经编码表示的数据。
作为对CU执行编码操作的部分,预测处理单元100可在CU的一或多个PU间分割CU的视频块。视频编码器20和视频解码器30可支持各种PU大小。假定特定CU的大小为2Nx2N,视频编码器20及视频解码器30可支持2Nx2N或NxN的PU大小,及2Nx2N、2NxN、Nx2N、NxN、2NxnU、nLx2N、nRx2N或类似的对称PU大小的帧间预测。视频编码器20和视频解码器30还可支持用于2NxnU、2NxnD、nLx2N和nRx2N的PU大小的不对称分割。在一些实例中,预测处理单元100可执行几何分割以沿并不按直角与CU的视频块的侧会合的边界来在CU的PU间分割CU的视频块。
帧间预测单元121可对CU的每一PU执行帧间预测。帧间预测可提供时间压缩。为了对PU执行帧间预测,运动估计单元122可产生PU的运动信息。运动补偿单元124可基于运动信息和除与CU相关联的图片(例如,参考图片)之外的图片的经解码样本产生PU的经预测视频块。在本发明中,由运动补偿单元124产生的经预测视频块可称作经帧间预测视频块。
切片可为I切片、P切片,或B切片。运动估计单元122和运动补偿单元124可取决于PU处于I切片、P切片还是B切片中而对CU的PU执行不同操作。在I切片中,所有PU都是经帧内预测。因此,如果PU在I切片中,那么运动估计单元122及运动补偿单元124不对PU执行帧间预测。
如果PU在P切片中,那么含有所述PU的图片与被称作“列表0”的参考图片列表相关联。列表0中的参考图片中的每一者含有可用于其它图片的帧间预测的样本。当运动估计单元122关于P切片中的PU执行运动估计操作时,运动估计单元122可搜索列表0中的参考图片以找出PU的参考块。PU的参考块可为最紧密对应于PU的视频块中的样本的一组样本,例如,样本块。运动估计单元122可使用多种度量来确定参考图片中的一组样本对应于PU的视频块中的样本的紧密程度。例如,运动估计单元122可通过绝对差总和(SAD)、平方差总和(SSD)或其它差异度量来确定参考图片中的一组样本对应于PU的视频块中的样本的紧密程度。
在识别出P切片中的PU的参考块之后,运动估计单元122可产生指示列表0中含有参考块的参考图片的参考索引,以及指示PU与参考块之间的空间位移的运动向量。在各种实例中,运动估计单元122可以不同精确度产生运动向量。举例来说,运动估计单元122可以四分之一样本精确度、八分之一样本精确度或其它分数样本精确度产生运动向量。在分数样本精确度的情况下,参考块值可从参考图片中的整数位置样本值内插。运动估计单元122可将参考索引及运动向量输出为PU的运动信息。运动补偿单元124可基于由PU的运动信息识别的参考块而产生PU的经预测视频块。
如果PU处于B切片中,那么含有PU的图片可与被称作“列表0”和“列表1”的两个参考图片列表相关联。在一些实例中,含有B切片的图片可与为列表0与列表1的组合的列表组合相关联。
此外,如果PU在B切片中,那么运动估计单元122可对PU执行单向预测或双向预测。当运动估计单元122对PU执行单向预测时,运动估计单元122可搜索列表0或列表1中的参考图片以找出用于所述PU的参考块。运动估计单元122可随后产生指示列表0或列表1中的含有参考块的参考图片的参考索引和指示PU与参考块之间的空间位移的运动向量。运动估计单元122可输出参考索引、预测方向指示符和运动向量作为所述PU的运动信息。预测方向指示符可指示参考索引指示列表0还是列表1中的参考图片。运动补偿单元124可基于由PU的运动信息指示的参考块来产生PU的经预测视频块。
当运动估计单元122针对PU执行双向预测时,运动估计单元122可搜索列表0中的参考图片以找到用于所述PU的参考块,且还可搜索列表1中的参考图片以找到用于所述PU的另一参考块。运动估计单元122可随后产生指示列表0和列表1中的含有参考块的参考图片的参考索引和指示参考块与PU之间的空间位移的运动向量。运动估计单元122可输出PU的参考索引及运动向量作为PU的运动信息。运动补偿单元124可基于由PU的运动信息指示的参考块而产生PU的经预测视频块。
在一些情况下,运动估计单元122不将PU的运动信息的完整集合输出到熵编码单元116。实际上,运动估计单元122可参考另一PU的运动信息信令PU的运动信息。举例来说,运动估计单元122可确定PU的运动信息足够类似于相邻PU的运动信息。在此实例中,运动估计单元122可在与PU相关联的语法结构中指示一值,所述值向视频解码器30指示PU具有与相邻PU相同的运动信息。在另一实例中,运动估计单元122可在与PU相关联的语法结构中识别相邻PU和运动向量差(MVD)。运动向量差指示PU的运动向量与所指示的相邻PU的运动向量之间的差。视频解码器30可使用所指示的相邻PU的运动向量和运动向量差来确定PU的运动向量。通过在信令第二PU的运动信息时参考第一PU的运动信息,视频编码器20可能能够使用较少位信令第二PU的运动信息。
作为对CU执行编码操作的部分,帧内预测单元126可对CU的PU执行帧内预测。帧内预测可提供空间压缩。当帧内预测单元126对PU执行帧内预测时,帧内预测单元126可基于同一图片中的其它PU的经解码样本来产生用于PU的预测数据。用于PU的预测数据可包含经预测视频块和各种语法元素。帧内预测单元126可对I切片、P切片和B切片中的PU执行帧内预测。
为了对PU执行帧内预测,帧内预测单元126可使用多个帧内预测模式以产生用于PU的预测数据的多个集合。当帧内预测单元126使用帧内预测模式来产生PU的预测数据的集合时,帧内预测单元126可在与帧内预测模式相关联的方向和/或梯度上跨越PU的视频块从相邻PU的视频块扩展样本。相邻PU可在所述PU的上方、右上方、左上方或左侧,假定对于PU、CU和树块采用从左到右、从上到下的编码次序。帧内预测单元126可取决于PU的大小而使用各种数目个帧内预测模式,例如33个方向性帧内预测模式。
预测处理单元100可从由运动补偿单元124针对PU产生的预测数据或由帧内预测单元126针对PU产生的预测数据当中选择用于PU的预测数据。在一些实例中,预测处理单元100基于预测数据集合的速率/失真度量而选择PU的预测数据。
如果预测处理单元100选择由帧内预测单元126产生的预测数据,那么预测处理单元100可信令用以产生用于PU的预测数据的帧内预测模式,即,选定帧内预测模式。预测处理单元100可以各种方式信令所选帧内预测模式。举例来说,有可能所选帧内预测模式与相邻PU的帧内预测模式相同。换句话说,相邻PU的帧内预测模式可为用于当前PU的最可能模式。因此,预测处理单元100可产生用以指示选定帧内预测模式与相邻PU的帧内预测模式相同的语法元素。
如上文所论述,视频编码器20可包含层间预测单元128。层间预测单元128经配置以使用SHVC中可用的一或多个不同层(例如,基础或参考层)预测当前块(例如,EL中的当前块)。此预测可称作层间预测。层间预测单元128利用预测方法来减少层间冗余,借此改进译码效率且减少计算资源要求。层间预测的一些实例可包含层间帧内预测、层间运动预测及层间残余预测。层间帧内预测使用基础层中的协同定位块的重建来预测增强层中的当前块。层间运动预测使用基础层的运动信息来预测增强层中的运动信息。层间残余预测使用基础层的残余来预测增强层的残余。
在预测处理单元100选择用于CU的PU的预测数据之后,残余产生单元102可通过从CU的视频块减去(例如,由减号指示)CU的PU的经预测视频块而产生用于CU的残余数据。CU的残余数据可包含对应于CU的视频块中的样本的不同样本分量的2D残余视频块。举例来说,残余数据可包含对应于CU的PU的经预测视频块中的样本的明度分量与CU的原始视频块中的样本的明度分量之间的差的残余视频块。另外,CU的残余数据可包含对应于CU的PU的经预测视频块中的样本的色度分量与CU的原始视频块中的样本的色度分量之间的差的残余视频块。
预测处理单元100可执行四叉树分割以将CU的残余视频块分割成子块。每一未经划分的残余视频块可与CU的不同TU相关联。与CU的TU相关联的残余视频块的大小及位置可基于或可不基于与CU的PU相关联的视频块的大小及位置。被称为“残余四叉树”(RQT)的四叉树结构可包含与残余视频块中的每一者相关联的节点。CU的TU可以对应于RQT的叶节点。
变换处理单元104可通过将一或多个变换应用于与CU的每一TU相关联的残余视频块而产生用于所述TU的一或多个变换系数块。变换系数块中的每一者可为变换系数的2D矩阵。变换处理单元104可将各种变换应用于与TU相关联的残余视频块。举例来说,变换处理单元104可将离散余弦变换(DCT)、定向变换或概念上类似的变换应用到与TU相关联的残余视频块。
在变换处理单元104产生与TU相关联的变换系数块之后,量化单元106可量化所述变换系数块中的变换系数。量化单元106可基于与CU相关联的QP值而对与CU的TU相关联的变换系数块进行量化。
视频编码器20可以各种方式使QP值与CU相关联。例如,视频编码器20可对与CU相关联的树块执行速率-失真分析。在速率-失真分析中,视频编码器20可通过对树块执行多次编码操作而产生树块的多个经译码表示。当视频编码器20产生树块的不同经编码表示时,视频编码器20可使不同QP值与CU相关联。当给定QP值与具有最低位速率和失真度量的树块的经译码表示中的CU相关联时,视频编码器20可信令给定QP值与CU相关联。
逆量化单元108和逆变换单元110可分别将逆量化及逆变换应用于变换系数块以从变换系数块重建残余视频块。重建单元112可将经重建的残余视频块添加到来自由预测处理单元100产生的一或多个经预测视频块的对应样本,以产生与TU相关联的经重建视频块。通过以此方式重建CU的每一TU的视频块,视频编码器20可重建CU的视频块。
在重建单元112重建CU的视频块之后,滤波器单元113可执行解块操作以减小与所述CU相关联的视频块中的成块假影。在执行一或多个解块操作之后,滤波器单元113可将CU的经重建视频块存储在经解码图片缓冲器114中。运动估计单元122和运动补偿单元124可使用含有经重建视频块的参考图片来对后续图片的PU执行帧间预测。另外,帧内预测单元126可使用经解码图片缓冲器114中的经重建视频块对处于与CU相同图片中的其它PU执行帧内预测。
熵编码单元116可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元116可从量化单元106接收变换系数块,且可从预测处理单元100接收语法元素。当熵编码单元116接收到数据时,熵编码单元116可执行一或多个熵编码操作以产生经熵编码数据。举例来说,视频编码器20可对所述数据执行CAVLC操作、CABAC操作、可变到可变(V2V)长度译码操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作,或另一类型的熵编码操作。熵编码单元116可输出包含经熵编码数据的位流。
作为对数据执行熵编码操作的一部分,熵编码单元116可选择上下文模型。如果熵编码单元116正执行CABAC操作,那么上下文模型可指示特定二进制数具有特定值的概率的估计。在CABAC的情况下,术语“二进位”用以指语法元素的二进制化版本的位。
多层视频编码器
图2B为说明可实施根据本发明中所描述的方面的技术的多层视频编码器23(也被简称为视频编码器23)的实例的框图。视频编码器23可经配置以处理多层视频帧(例如,用于SHVC和MV-HEVC)。此外,视频编码器23可经配置以执行本发明的技术中的任一者或全部。
视频编码器23包含视频编码器20A和视频编码器20B,其中的每一者可被配置为视频编码器20且可执行上文关于视频编码器20所描述的功能。此外,如再使用参考数字所指示,视频编码器20A和20B可包含系统及子系统中的至少一些作为视频编码器20。尽管将视频编码器23说明为包含两个视频编码器20A和20B,但视频编码器23不被如此限制,且可包含任何数目的视频编码器20层。在一些实施例中,视频编码器23可包含针对存取单元中的每一图片或帧的视频编码器20。例如,包含五个图片的存取单元可由包含五个编码器层的视频编码器处理或编码。在一些实施例中,视频编码器23可包含比存取单元中的帧更多的编码器层。在一些此类情况下,当处理一些存取单元时,一些视频编码器层可能不在作用中。
除了视频编码器20A和20B之外,视频编码器23可包含再取样单元90。在一些情况下,再取样单元90可对所接收的视频帧的基础层进行上取样以例如创建增强层。再取样单元90可对与帧的所接收的基础层相关联的特定信息进行上取样,但不对其它信息进行上取样。举例来说,再取样单元90可对基础层的空间大小或像素数目进行上取样,但切片的数目或图片次序计数可保持恒定。在一些情况下,再取样单元90可不处理所接收的视频及/或可为任选的。举例来说,在一些情况下,预测处理单元100可执行上取样。在一些实施例中,再取样单元90经配置以对层进行上取样且重新组织、重新界定、修改或调整一或多个切片以符合一组切片边界规则及/或光栅扫描规则。虽然主要描述为对基础层或存取单元中的较低层进行上取样,但在一些情况下,再取样单元90可对层进行下取样。例如,如果在视频的串流期间减小带宽,那么可对帧进行下取样而不是上取样。
再取样单元90可经配置以从较低层编码器(例如,视频编码器20A)的经解码图片缓冲器114接收图片或帧(或与图片相关联的图片信息)且对所述图片(或所接收的图片信息)进行上取样。可接着将所述经上取样图片提供到较高层编码器(例如,视频编码器20B)的预测处理单元100,所述较高层编码器经配置以编码与较低层编码器相同的存取单元中的图片。在一些情况下,较高层编码器为从较低层编码器去除的一个层。在其它情况下,在图2B的层0视频编码器与层1编码器之间可存在一或多个较高层编码器。
在一些情况下,可省略或绕过再取样单元90。在这些情况下,可直接或在至少不提供到再取样单元90的情况下将来自视频编码器20A的经解码图片缓冲器114的图片提供到视频编码器20B的预测处理单元100。举例来说,如果提供到视频编码器20B的视频数据和来自视频编码器20A的经解码图片缓冲器114的参考图片具有相同的大小或分辨率,那么可将参考图片提供到视频编码器20B而没有任何再取样。
在一些实施例中,视频编码器23使用下取样单元94对将提供到较低层编码器的视频数据进行下取样,之后将所述视频数据提供到视频编码器20A。替代地,下取样单元94可为能够对视频数据上取样或下取样的再取样单元90。在另外其它实施例中,可省略下取样单元94。
如图2B中所说明,视频编码器23可进一步包含多路复用器(或mux)98。mux 98可从视频编码器23输出组合的位流。可通过从视频编码器20A和20B中的每一者取得位流且交替在给定时间输出哪一位流来创建组合的位流。虽然在一些情况下,可一次一个位地交替来自两个(或在两个以上视频编码器层的情况下更多)位流的位,但在许多情况下,以不同方式组合所述位流。举例来说,可通过一次一个块地交替所选位流来创建输出位流。在另一实例中,可通过从视频编码器20A和20B中的每一者输出非1:1比率的块来创建输出位流。举例来说,可从视频编码器20B输出用于从视频编码器20A输出的每一块的两个块。在一些实施例中,可预编程来自mux 98的输出流。在其它实施例中,mux 98可基于从视频编码器23外部的系统(例如,从包含源装置12的源装置上的处理器)接收的控制信号而组合来自视频编码器20A、20B的位流。可基于来自视频源18的视频的分辨率或位速率、基于链路16的带宽、基于与用户相关联的预订(例如,付费预订与免费预订),或基于用于确定来自视频编码器23的所要分辨率输出的任何其它因素来产生控制信号。
视频解码器
图3A是说明可实施根据本发明中描述的方面的技术的视频解码器30的实例的框图。视频解码器30可经配置以处理视频帧的单层(例如针对HEVC)。此外,视频解码器30可经配置以执行本发明的技术中的任一者或全部。在一些实例中,本发明中描述的技术可在视频解码器30的各种组件之间共享。在一些实例中,另外或替代地,处理器(未图示)可经配置以执行本发明中描述的技术中的任一者或全部。
出于解释的目的,本发明描述在HEVC译码的上下文中的视频解码器30。然而,本发明的技术可以适用于其它译码标准或方法。图3A中所描绘的实例是针对单层编解码器。然而,如相对于图3B将进一步描述,视频解码器30中的一些或全部可复制以用于多层编解码器的处理。
在图3A的实例中,视频解码器30包含多个功能组件。视频解码器30的功能组件包含熵解码单元150、预测处理单元152、逆量化单元154、逆变换单元156、重建单元158、滤波器单元159和经解码图片缓冲器160。预测处理单元152包含运动补偿单元162、帧内预测单元164和层间预测单元166。在一些实例中,视频解码器30可执行一般与关于图2A的视频编码器20描述的编码遍次互逆的解码遍次。在其它实例中,视频解码器30可包含较多、较少或不同的功能组件。
视频解码器30可接收包括经编码视频数据的位流。所述位流可包含多个语法元素。当视频解码器30接收到位流时,熵解码单元150可对所述位流执行解析操作。对位流执行解析操作的结果是,熵解码单元150可从所述位流提取语法元素。作为执行解析操作的一部分,熵解码单元150可对位流中的经熵编码语法元素进行熵解码。预测处理单元152、逆量化单元154、逆变换单元156、重建单元158及滤波器单元159可执行重建操作,重建操作基于从位流提取的语法元素产生经解码视频数据。
如上文所论述,位流可包括一系列NAL单元。位流的NAL单元可包含视频参数集NAL单元、序列参数集NAL单元、图片参数集NAL单元、SEI NAL单元等等。作为对位流执行解析操作的一部分,熵解码单元150可执行解析操作,所述解析操作从序列参数集NAL单元提取序列参数集且对其进行熵解码、从图片参数集NAL单元提取图片参数集且对其进行熵解码、从SEI NAL单元提取SEI数据且对其进行熵解码等等。
此外,位流的NAL单元可包含经译码切片NAL单元。作为对位流执行解析操作的部分,熵解码单元150可执行解析操作,所述解析操作从经译码切片NAL单元提取经译码切片且对其进行熵解码。经译码切片中的每一者可包含切片标头以及切片数据。切片标头可以含有关于切片的语法元素。切片标头中的语法元素可包含识别与含有所述切片的图片相关联的图片参数集的语法元素。熵解码单元150可对经译码切片标头中的语法元素执行熵解码操作(例如,CABAC解码操作),以恢复切片标头。
作为从经译码切片NAL单元提取切片数据的部分,熵解码单元150可执行从切片数据中的经译码CU提取语法元素的解析操作。所提取的语法元素可包含与变换系数块相关联的语法元素。熵解码单元150可接着对语法元素中的一些执行CABAC解码操作。
在熵解码单元150对未分割的CU执行解析操作之后,视频解码器30可对未分割的CU执行重建操作。为了对未经分割的CU执行重建操作,视频解码器30可对CU的每一TU执行重建操作。通过对CU的每一TU执行重建操作,视频解码器30可重建与CU相关联的残余视频块。
作为对TU执行重建操作的一部分,逆量化单元154可对与TU相关联的变换系数块进行逆量化(例如,解量化)。逆量化单元154可以类似于针对HEVC所提议或由H.264解码标准定义的逆量化过程的方式来逆量化变换系数块。逆量化单元154可使用由视频编码器20针对变换系数块的CU计算的量化参数QP来确定量化程度,且同样地,确定逆量化单元154应用的逆量化的程度。
在逆量化单元154对变换系数块进行逆量化之后,逆变换单元156可产生与变换系数块相关联的TU的残余视频块。逆变换单元156可将逆变换应用到变换系数块以便产生所述TU的残余视频块。举例来说,逆变换单元156可将逆DCT、逆整数变换、逆卡忽南-拉维(Karhunen-Loeve)变换(KLT)、逆旋转变换、逆定向变换或另一逆变换应用于变换系数块。在一些实例中,逆变换单元156可基于来自视频编码器20的信令而确定适用于变换系数块的逆变换。在这些实例中,逆变换单元156可基于在用于与变换系数块相关联的树块的四叉树的根节点处的经信令的变换来确定逆变换。在其它实例中,逆变换单元156可从例如块大小、译码模式或类似者等一或多个译码特性推断逆变换。在一些实例中,逆变换单元156可应用级联的逆变换。
在一些实例中,运动补偿单元162可通过基于内插滤波器执行内插而精炼PU的经预测视频块。用于将用于以子样本精确度进行运动补偿的内插滤波器的识别符可包含在语法元素中。运动补偿单元162可使用由视频编码器20在产生PU的经预测视频块期间使用的相同内插滤波器来计算参考块的子整数样本的内插值。运动补偿单元162可根据接收到的语法信息确定由视频编码器20使用的内插滤波器且使用所述内插滤波器来产生经预测视频块。
如果PU是使用帧内预测编码,那么帧内预测单元164可执行帧内预测以产生用于PU的经预测视频块。举例来说,帧内预测单元164可基于位流中的语法元素确定用于PU的帧内预测模式。位流可包含帧内预测单元164可用以确定PU的帧内预测模式的语法元素。
在一些情况下,语法元素可指示帧内预测单元164将使用另一PU的帧内预测模式来确定当前PU的帧内预测模式。举例来说,可能有可能当前PU的帧内预测模式与相邻PU的帧内预测模式相同。换句话说,相邻PU的帧内预测模式可为用于当前PU的最可能模式。因此,在此实例中,位流可包含小语法元素,所述小语法元素指示PU的帧内预测模式与相邻PU的帧内预测模式相同。帧内预测单元164可随后使用帧内预测模式基于在空间上相邻的PU的视频块而产生用于PU的预测数据(例如,经预测样本)。
如上文所论述,视频解码器30还可包含层间预测单元166。层间预测单元166经配置以使用在SHVC中可用的一或多个不同层(例如,基础或参考层)预测当前块(例如,增强层中的当前块)。此预测可称作层间预测。层间预测单元166利用预测方法来减少层间冗余,借此改进译码效率且减少计算资源要求。层间预测的一些实例包含层间帧内预测、层间运动预测及层间残余预测。层间帧内预测使用基础层中的协同定位块的重建来预测增强层中的当前块。层间运动预测使用基础层的运动信息来预测增强层中的运动。层间残余预测使用基础层的残余来预测增强层的残余。下文更详细地论述层间预测方案中的每一者。
重建单元158可使用与CU的TU相关联的残余视频块和CU的PU的经预测视频块(例如,帧内预测数据或帧间预测数据,如果适用)来重建CU的视频块。因此,视频解码器30可基于位流中的语法元素而产生经预测视频块及残余视频块,且可基于经预测视频块及残余视频块而产生视频块。
在重建单元158重建CU的视频块之后,滤波器单元159可执行解块操作以减少与CU相关联的成块假影。在滤波器单元159执行解块操作以减少与CU相关联的成块假影之后,视频解码器30可将所述CU的视频块存储在经解码图片缓冲器160中。经解码图片缓冲器160可提供参考图片以用于后续运动补偿、帧内预测和在例如图1A或1B的显示装置32等显示装置上的呈现。举例来说,视频解码器30可基于经解码图片缓冲器160中的视频块对其它CU的PU执行帧内预测或帧间预测操作。
多层解码器
图3B为说明可实施根据本发明中描述的方面的技术的多层视频解码器33(也被简称为视频解码器33)的实例的框图。视频解码器33可经配置以处理多层视频帧(例如,用于SHVC及多视图译码)。此外,视频解码器33可经配置以执行本发明的技术中的任一者或全部。
视频解码器33包含视频解码器30A及视频解码器30B,其中的每一者可经配置为视频解码器30且可执行上文相对于视频解码器30所描述的功能。此外,如再使用参考数字所指示,视频解码器30A和30B可包含系统及子系统中的至少一些作为视频解码器30。尽管将视频解码器33说明为包含两个视频解码器30A和30B,但视频解码器33不被如此限制,并且可包含任何数目的视频解码器30层。在一些实施例中,视频解码器33可包含用于存取单元中的每一图片或帧的视频解码器30。举例来说,可由包含五个解码器层的视频解码器处理或解码包含五个图片的存取单元。在一些实施例中,视频解码器33可包含比存取单元中的帧更多的解码器层。在一些此等情况下,当处理一些存取单元时,一些视频解码器层可能不在作用中。
除了视频解码器30A和30B之外,视频解码器33可包含上取样单元92。在一些实施例中,上取样单元92可对所接收视频帧的基础层进行上取样以创建待添加到帧或存取单元的参考图片列表的增强层。此增强层可存储在经解码图片缓冲器160中。在一些实施例中,上取样单元92可包含关于图2A的再取样单元90描述的实施例中的一些或全部。在一些实施例中,上取样单元92经配置以对层进行上取样且重新组织、重新界定、修改或调整一或多个切片以符合一组切片边界规则和/或光栅扫描规则。在一些情况下,上取样单元92可为经配置以对所接收的视频帧的层进行上取样及/或下取样的再取样单元。
上取样单元92可经配置以从较低层解码器(例如,视频解码器30A)的经解码图片缓冲器160接收图片或帧(或与图片相关联的图片信息)并对所述图片(或所接收的图片信息)进行上取样。随后可将此经上取样图片提供到较高层解码器(例如,视频解码器30B)的预测处理单元152,所述较高层解码器经配置以解码与较低层解码器在相同的存取单元中的图片。在一些情况下,较高层解码器为从较低层解码器移除的一个层。在其它情况下,在图3B的层0解码器与层1解码器之间可存在一或多个较高层解码器。
在一些情况下,可省略或绕过上取样单元92。在此些情况下,可直接提供来自视频解码器30A的经解码图片缓冲器160的图片,或至少不提供到上取样单元92,不提供到视频解码器30B的预测处理单元152。例如,如果提供到视频解码器30B的视频数据及来自视频解码器30A的经解码图片缓冲器160的参考图片具有相同的大小或分辨率,那么可将参考图片提供到视频解码器30B而不需要上取样。另外,在一些实施例中,上取样单元92可为经配置以对从视频解码器30A的经解码图片缓冲器160接收的参考图片进行上取样或下取样的再取样单元90。
如图3B中所说明,视频解码器33可进一步包含多路分用器(或demux)99。demux 99可将经编码视频位流分裂成多个位流,其中由demux 99输出的每一位流被提供到不同的视频解码器30A和30B。可通过接收位流来创建多个位流,且视频解码器30A和30B中的每一者在给定时间接收位流的一部分。虽然在一些情况下,可在视频解码器(例如,在图3B的实例中的视频解码器30A和30B)中的每一者之间一次一个位地交替来自在demux 99处接收的位流的位,但在许多情况下,以不同方式划分所述位流。举例来说,可通过一次一个块地交替哪一视频解码器接收位流而划分所述位流。在另一实例中,可通过到视频解码器30A和30B中的每一者的块的非1:1比率来划分位流。举例来说,可针对提供到视频解码器30A的每一块将两个块提供到视频解码器30B。在一些实施例中,可预编程由demux 99对位流的划分。在其它实施例中,demux 99可基于从视频解码器33外部的系统(例如,从包含目的地模块14的目的地装置上的处理器)接收的控制信号而划分位流。可基于来自输入接口28的视频的分辨率或位速率、基于链路16的带宽、基于与用户相关联的预订(例如,付费预订与免费预订)或基于用于确定可由视频解码器33获得的分辨率的任何其它因素而产生控制信号。
帧内随机存取点(IRAP)图片
一些视频译码方案可提供贯穿位流的各种随机存取点,使得可从那些随机存取点中的任一者开始解码位流而无需解码位流中的在那些随机存取点之前的任何图片。在此类视频译码方案中,可正确地解码除随机存取跳过前导(RASL)图片外的按解码次序在随机存取点之后的所有图片,而不需使用在所述随机存取点之前的任何图片。举例来说,即使位流的一部分在发射期间或在解码期间丢失,解码器仍可从下一个随机存取点开始恢复解码位流。对随机存取的支持可促进例如动态串流服务、搜寻操作、信道切换等。
在一些译码方案中,此些随机存取点可由被称作帧内随机存取点(IRAP)图片的图片提供。举例来说,与包含在存取单元(“auA”)中的在增强层(“层A”)中的增强层IRAP图片相关联的随机存取点可提供层特定的随机存取,使得对于层A的每一参考层(“层B”)(例如,参考层为用以预测层A的层)(所述参考层具有与包含在存取单元(“auB”)中的在层B中且按解码次序在auA之前的图片相关联的随机存取点(或包含在auA中的随机存取点)),可正确地解码层A中按解码次序在auA之后的图片(包含位于auA中的那些图片)而无需解码层A中在auA之前的任何图片。
IRAP图片可使用帧内预测(例如,在不参考其它图片的情况下进行译码)和/或层间预测进行译码,且可包含(例如)即时解码器刷新(IDR)图片、清洁随机接入(CRA)图片和断链存取(BLA)图片。当在位流中存在IDR图片时,按解码次序在IDR图片之前的所有图片不用于通过在所述IDR图片之后的图片进行的预测。当在位流中存在CRA图片时,跟随CRA图片的图片可或可不将按解码次序在CRA图片之前的图片用于预测。按解码次序在CRA图片之后但使用按解码次序在CRA图片之前的图片的那些图片可被称作RASL图片。按解码次序可在IRAP图片之后且按输出次序在IRAP图片之前的另一类型的图片为随机存取可解码前导(RADL)图片,其可不含有对按解码次序在IRAP图片之前的任何图片的参考。如果在CRA图片之前的图片不可用,那么RASL图片可由解码器丢弃。BLA图片向解码器指示在BLA图片之前的图片可能不可用于解码器(例如,由于两个位流被拼接在一起,且BLA图片按解码次序是第二位流的第一图片)。含有为IRAP图片的基础层图片(例如,具有层ID值0)的存取单元(例如,由跨越多个层的与相同的输出时间相关联的所有经译码图片组成的图片群组)可被称作IRAP存取单元。
帧内块复制(帧内BC)
在视频译码中,视频译码器(例如,视频编码器或视频解码器)形成预测性块。视频编码器确定预测性块与当前块(例如,正预测的块)之间的差异(被称作残余)。残余值形成残余块。视频解码器接收残余块且将残余块的残余添加到预测性块以重建当前块。在帧间预测中,预测性块在与当前块不同的图片中或基于不同图片的样本且由运动向量识别。在帧内预测中,预测性块是由与当前块在同一图片中的样本形成且通过帧内预测模式形成。在帧内块复制(帧内BC)预测中,预测性块与当前块在同一图片中且通过块向量识别。
帧内BC已包含例如在HEVC的RExt中。图4中展示常规帧内BC技术的实例,其中从当前图片(或切片)的已经解码块410(即,预测块)预测当前CU(或PU)405。经由使用预测信号415,解码器可重建当前CU 405。在一些情况下,可在不进行环路内滤波的情况下重建预测信号415,包含解块和样本自适应偏移(SAO)。
块向量420可指示当前CU/PU 405的预测块410。块向量预测符可用于编码块向量420。块向量420可在整数层级预测和/或信令。举例来说,块向量预测符可在每一译码树块(CTB)的开始处设定成(-w,0),其中w为CU 405的宽度。块向量预测符可在找到合适的预测块410时更新。块向量预测符可进一步经更新以指示以帧内BC模式译码的最近经译码预测块425(即,较靠近当前CU 405的块)。如果CU并不以帧内BC模式译码,那么块向量预测符可保持不变。在块向量预测之后,在HEVC中使用运动向量差译码方法编码块向量差异(即,块向量420与块向量预测符之间的差异)。在一些情况下,仅信令指示使用哪一块向量420的预测符索引和块向量420。
在一些情况下,可支持多种块大小。在HEVC的当前RExt中,可在CU层级和PU层级两者处启用帧内BC。对于PU层级帧内BC,针对所有CU大小支持2NxN和N/2N PU分割。此外,当CU为最小CU时,支持NxN PU分割。
当前,针对帧内BC的搜索区430可包括两部分:(1)当前译码树单元(CTU)中的经重建部分;以及(2)当前CTU的左侧上的CTU高度的经重建64列。
已经呈现下文论述的若干文献,其提供用于快速编码器搜索的方法。然而,因为这些方法将帧内BC应用到搜索区430内的每一块,所以在搜索区430较大(例如,整个帧)时其可能并不有效。
举例来说,在文献JCTVC-O0156中,提出若干方法来加速针对帧内BC的编码器搜索,包含:针对帧内BC的块大小约束;相邻块译码状态/块大小相依1-D/2D块向量约束;以及基于速率失真(RD)成本和基于预分析的提早终止。对于此文献的完全引用文件为JCTVC-O0156,Pang等人,“AhG5:针对帧内块复制的快速编码器搜索和搜索区约束”,ITU-TSG16WP3与ISO/IEC JTC1/SC29/WG11的关于视频译码的联合合作小组(JCT-VC),第15次会议:瑞士日内瓦,2013年10月23日-11月1日。
举例来说,在文献JCTVC-O0245中,提出提早跳过方法来通过在某些状况下跳过或限制帧内BC而加速针对帧内BC的编码搜索。对于此文献的完全引用文件为JCTVC-O0245,Do-Kyoung Kwon,“AHG5:使用帧内块复制(IntraBC)搜索的提早跳过的快速编码”,ITU-TSG16WP3与ISO/IEC JTC1/SC29/WG11的关于视频译码的联合合作小组(JCT-VC),第15次会议:瑞士日内瓦,2013年10月23日-11月1日。
举例来说,在文献JCTVC-P0151中,提出一种方法以通过在某些状况下再使用所计算绝对差总和(SAD)和跳过帧内BC来提供快速编码器搜索。对于此文献的完全引用文件为JCTVC-P0151,Pang等人,“非-RCE3:针对RCE3子测试B.3的快速编码器搜索”,ITU-TSG16WP3与ISO/IEC JTC1/SC29/WG11的关于视频译码的联合合作小组(JCT-VC),第16次会议:美国圣何塞,2014年1月9-17日。
需要改进用于针对帧内BC的快速编码器搜索的技术以变得更有效,不仅仅在搜索区较小(例如RExt中的当前搜索区,上文所论述)时。更确切地说,需要在搜索区增大(例如,大于RExt中的当前搜索区和/或覆盖整个帧)时改进此些技术的效率。
本文中描述了用以加速针对帧内BC的编码器搜索的技术。在一实施例中,所述技术是关于RExt,包含支持“高”位深度(例如,超过8位),和高色度取样格式,包含4:4:4和4:2:2。本文中所描述的技术还可适用于屏幕内容译码。
图5说明根据本发明中描述的方面针对帧内BC的基于散列的快速编码器搜索的示范性框架。在基于散列的快速编码器搜索中,在每一切片(或瓦片)的编码过程期间构造散列表。在各种实施例中,散列表可存储于存储器单元中,且所述存储器单元可操作上耦合到处理器(即,与之通信)。在一些情况下,散列表可包含一或多个链表。在各种实施例中,当前块505经由使用散列函数515而映射到散列索引510。换句话说,编码器(例如,视频编码器20或视频解码器30)将散列函数515应用到当前块505以确定与当前块505相关联的散列索引510。在各种实施例中,编码器搜索520(即,由编码器针对预测块执行的搜索操作)可限于当前块505确定为映射到的个别散列索引510。换句话说,在520处,编码器可将搜索限于先前映射到散列索引510的块而非搜索整个搜索区。在一实施例中,散列索引510可包含指示先前已映射到散列索引510的块的信息的链表。在一些情况下,此些块可被称为候选参考块,因为这些块是待用作用于预测当前块505的预测块的候选者。因为编码器搜索520限于候选参考块,所以编码器可有效地仅搜索类似于当前块505的那些块,而非不必要地搜索将不适合作为预测块的其它块。
在重建当前块505之后,当前块505可充当新的可用候选参考块。新的可用候选参考块根据其散列索引510添加到散列表中的对应链表。在一些实施例中,散列滤波器530可用于对一些新的可用候选参考块进行滤波(即,移除),且此些新的可用候选参考块不添加到散列表中。散列表可在编码器搜索520之后(如果不使用散列滤波器)或应用散列滤波器530之后(如果使用散列滤波器)更新525。
散列函数515可用于将当前块505或任何参考块(原始或经重建)映射到散列索引510。散列索引510可为固定位长度,例如12、13、14、15、16、…,或24位,或散列索引510可为可变位长度。可存在多种合适的散列函数515和/或用于计算散列索引510的方法。
举例来说,散列索引510可为以下集合中的一或多个值的最高有效位(MSB)的串接:{直流电(DC)、DCs、Grad、Grads、DCTi,j、DCTs,(i,j)},其中DC为当前块的DC值或平均值,其中DCs为当前块的第一子块的DC值,其中Grad为当前块的梯度,其中Grads为当前块的第二子块的梯度(其中第二子块可包括第一子块或可为当前块的不同子块),其中DCTi,j为当前块的第(i,j)DCT系数,且其中DCTs,(i,j)为当前块的第三子块的第(i,j)DCT系数(其中第三子块可包括第一或第二子块或可为当前块的不同子块)。在一些实施例中,可有可能使用亮度和/或色度样本的值来计算这些值(例如,DC、DCs、Grad、Grads、DCTi,j、DCTs,(i,j))。
在另一实例中,可使用循环冗余检查(CRC)计算散列索引510,其中输入为当前块中的所有像素或选定像素,或块中的所有像素或选定像素的函数(例如,量化)。在一些实施例中,有可能使用亮度或色度样本作为输入,或使用亮度和色度样本两者作为输入。
编码器搜索520可包含计算和/或评估当前块505与候选参考块(即,先前已映射到散列索引510(即,与之相关联)的在与当前块505相同的图片(或图片的切片)内的块)之间的距离量度。一些实施例可涉及使用多种距离度量中的一或多者,包含绝对差总和(SAD)、平方差总和(SSE)和/或RD成本。具有最短距离的候选参考块可选择为当前块505的预测块。在一实施例中,仅存储在散列表525中的具有与当前块505相同的散列索引510的候选参考块使用距离量度来评估。以此方式,使用根据本发明的基于散列的搜索技术针对预测块的搜索可比HEVC的RExt中使用的现有方法更有效。
在重建当前块505之后,用于预测同一图片(或相同切片)内的将来块的新的可用候选参考块根据其散列索引而添加到散列表525的对应链表中。如上所述,在一些实施例中,散列滤波器530用于滤出一些候选参考块,且这些候选参考块可不添加到散列表525。
散列滤波器530可利用多种因子来对候选参考块进行滤波。此滤波可排除可针对帧内BC提供低或可忽略的效用的候选参考块,因此避免散列表与用于此些候选参考块的索引混杂。在一个实例中,如果候选参考块的平均梯度小于阈值,那么候选参考块并不添加到散列表525中。举例来说,候选参考块的平均梯度可对应于候选参考块内的像素值的均一性。如果候选参考块的平均梯度小于阈值,那么此可指示候选参考块中的像素值(作为整体)是均匀或平坦的。
在另一实例中,针对N个(例如,N=3、4、5、6、7…32)预定义像素值,如果具有等于候选参考块中的这N个值中的任一者的值的像素的百分比(例如,亮度或色度,或亮度和色度两者)低于阈值(例如,70%、75%、80%、85%、90%、95%),那么候选参考块并不添加到散列表525中。举例来说,如果具有等于候选参考块中的这N个值中的任一者的值的像素的百分比小于所述阈值,那么此可指示特定值或颜色并不在候选参考块中占主导。
在又一实例中,当对应于一个散列索引510的链表中的节点的数目大于阈值(例如,128)时,特定候选参考块并不添加到散列表525中。
在一些情况下,散列表(例如,散列表525)可经设计以执行动作来改进效率。举例来说,散列表可调整散列索引以更准确地将候选参考块分组。散列索引可具有固定位长度(例如,12、13、14、15、16、…或24位)或具有可变位长度。在一些情况下,散列索引可增加或减小长度以调整候选参考块的分组。举例来说,散列索引可具有12位的位长度。在当前实例中,如果与其它散列索引相比,候选参考块的较大子集与一个散列索引相关联,那么所述散列索引和/或其它散列索引的位长度可经调整到14位以排除一些候选参考块且借此较均匀分布候选参考块。或者,散列索引的位长度可减小以包含较多候选参考块。
图6为根据本发明中描述的方面用于使用基于散列的编码器搜索编码图片的视频信息的示范性流程图的说明。过程600在框601处开始。
在框605处,过程600可涉及编码器将散列表存储在存储器中。散列表可为适于实施关联阵列的任何软件或装置。散列表可包括以下各者中的一或多者:散列函数、散列索引、贮体、密钥和值。给定输入或密钥,散列表可应用散列函数来将输入映射到散列索引。所述散列索引可具有相关联贮体。每一贮体与一或多个条目相关联。举例来说,每一条目可含有指示视频信息的一或多个块的数据。
在框610处,过程600可涉及将视频信息的块映射到散列索引。举例来说,指示视频信息的当前块的数据可输入到散列表。编码器可应用散列函数来基于所输入数据(即,视频信息的当前块)计算散列索引。多种计算可适合用作散列函数,如上文所论述。
编码器可因此使用散列索引和相关联贮体将视频信息的块映射到一或多个条目。举例来说,条目可提供指示候选参考块的信息。在此实例中,所述信息可为候选参考块的内容的说明数据。在一些情况下,一或多个条目可与一个贮体相关联,且所述一或多个条目可包括链表。链表可为任何相关联信息集,且由节点组成。节点可包含值和到下一节点的链路。举例来说,第一条目可与链路或指针相关联,且所述链路可将方向信息提供到第二条目。在此实例中,第一和第二条目连同相关联链路可包括链表。链表可具有任何数目的节点。每一节点可包含条目和到下一节点的链路。
在一些情况下,贮体可包括链路,且所述链路可为空参考或到节点的指针。举例来说,如果不存在与散列索引相关联的所存储值,那么散列索引的相关联贮体可具有空参考。
在决策框615处,过程600可涉及确定与散列索引相关联的链路是否为空参考或到节点的指针。如果链路不是空参考,那么过程600可涉及进行到框620。如果链路为空参考,那么过程600可涉及进行到框640。
如上文所论述,节点的值字段可含有指示候选参考块的信息。通过访问此信息,视频信息的当前块可与个别参考块进行比较。
在框620处,如果散列索引的链路不是空参考,那么过程600可涉及将当前块与散列索引的链路指示的节点的候选参考块进行比较。如上文所论述,所述比较可涉及当前块与候选参考块之间距离的计算。
在一些情况下,链表可继续直至节点的链路为空参考为止。在其它情况下,链表可继续直至节点的链路指向第一节点为止。
在决策框625处,过程600可涉及确定当前节点是否具有空参考或到第一节点的指针。如果当前节点并不具有空参考或到第一节点的指针,那么过程600可涉及返回到框620。如果当前节点具有空参考或到第一节点的指针,那么过程600可涉及进行到框630。
在框630处,如果当前节点具有空参考,那么过程600可涉及从链表中的候选参考块之中确定(例如,选择)预测块。在一些情况下,预测块的确定可基于当前块与链表中的候选参考块之间的比较。举例来说,链表中的具有距当前块最短距离的候选参考块可选择为预测块。
在框635处,过程600可涉及使用所确定的预测块编码图片的视频信息。举例来说,从预测块接收的信息可用于编码含有预测块和当前块的图片的切片或整个图片。
在一些情况下,指示当前块的信息可添加到散列表。以此方式,当前块可充当稍后当前块的候选参考块。然而,在一些情况下,当前块可必需在添加到散列表之前通过一或多个滤波器。三个示范性滤波器在上文已经论述,且在决策框640、645和650处表示。
在决策框640、645和650处,在已经重建当前块之后,或另外在已确定不存在候选参考块(因为在决策框615处散列索引与空参考相关联)之后,过程600可涉及经由三个滤波器对当前块进行滤波。
在决策框640处,过程600可涉及确定当前块的平均梯度是否低于非均一性阈值。如果平均梯度低于非均一性阈值,那么过程600可涉及进行到框655。如果平均梯度满足或超出非均一性阈值,那么过程600可涉及进行到决策框645。
在决策框645处,过程600可涉及确定具有预定像素值的当前块的像素的百分比,以及进一步确定所述百分比是否低于阈值百分比。举例来说,可使用任何数目的预定像素值。如果所述百分比低于阈值百分比,那么过程600可涉及进行到框655。如果所述百分比满足或超出阈值百分比,那么过程600可涉及进行到框650。
在决策框650处,过程600可涉及确定链表中的节点的数目是否高于节点的阈值数目。如果链表中节点的数目满足或超出节点的阈值数目,那么过程600可涉及进行到框655。如果节点的数目低于节点的阈值数目,那么过程600可涉及进行到框660。
在框655处,如果当前块并不通过滤波器中的一或多者,那么不将其添加到散列表。
在框660处,如果当前块确实通过滤波器,那么将其添加到散列表。举例来说,指示当前块的信息可添加到与当前块的散列索引相关联的链表的节点。
过程600在框665处结束。
在一些实施例中,散列表可在每一切片(或瓦片、帧等)的开始处被清除或清空。然而,在一些实施例中,举例来说,如果当前切片为帧间切片,那么散列表可不清空。
在一实施例中,上文所描述的基于散列的搜索可应用到(但不限于)特定块大小,例如8x8、16x16等。上文所描述的基于散列的搜索方法可单独地使用或结合关于针对帧内BC的快速编码器搜索的当前技术使用。
其它考虑因素
可使用多种不同技术和技艺中的任一者来表示本文中所揭示的信息和信号。举例来说,可通过电压、电流、电磁波、磁场或磁粒子、光场或光粒子或其任何组合来表示在整个上文描述中可能参考的数据、指令、命令、信息、信号、位、符号和码片。
结合本文揭示的实施例所描述的各种说明性逻辑块、电路及算法步骤可实施为电子硬件、计算机软件,或两者的组合。为清楚地说明硬件与软件的此可互换性,上文已大体上关于其功能性而描述了各种说明性组件、块和步骤。此功能性是实施为硬件还是软件取决于特定应用及施加于整个系统的设计约束。熟练的技术人员可针对每一特定应用以不同方式实施所描述的功能性,但此类实施决策不应被解释为引起偏离本发明的范围。
本文中所描述的技术可在硬件、软件、固件或其任一组合中实施。所述技术可实施于多种装置中的任一者中,例如通用计算机、无线通信装置手持机或集成电路装置,其具有包含在无线通信装置手持机及其它装置中的应用的多种用途。被描述为装置或组件的任何特征可一起实施于集成逻辑装置中或分开实施为离散但可互操作的逻辑装置。如果在软件中实施,那么所述技术可至少部分地由包括程序代码的计算机可读数据存储媒体来实现,所述程序代码包含在被执行时执行上文所描述的方法中的一或多者的指令。计算机可读数据存储媒体可形成计算机程序产品的一部分,所述计算机程序产品可包含封装材料。计算机可读媒体可包括存储器或数据存储媒体,例如,随机存取存储器(RAM)(例如,同步动态随机存取存储器(SDRAM))、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存器、磁性或光学数据存储媒体等等。另外或作为替代,所述技术可至少部分地由计算机可读通信媒体来实现,所述计算机可读通信媒体以指令或数据结构的形式载运或传送程序代码且可由计算机存取、读取和/或执行(例如,传播的信号或波)。
程序代码可由处理器执行,所述处理器可包含一或多个处理器,例如,一或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其它等效集成或离散逻辑电路。此处理器可经配置以执行本发明中所描述的技术中的任一者。通用处理器可为微处理器;但在替代方案中,处理器可为任何常规处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如,DSP与微处理器的组合、多个微处理器、一或多个微处理器结合DSP核心,或任何其它此类配置。因此,如本文中所使用的术语“处理器”可指前述结构中的任一者、前述结构的任何组合,或适合于实施本文中所描述的技术的任何其它结构或设备。另外,在某些方面中,可将本文中所描述的功能性提供于经配置以用于编码和解码的专用软件模块或硬件模块内或并入组合式视频编码器-解码器(CODEC)中。而且,所述技术可完全实施于一或多个电路或逻辑元件中。
本发明的技术可在广泛多种的装置或设备中实施,包含无线手持机、集成电路(IC)或一组IC(例如,芯片组)。本发明中描述各种组件或单元是为了强调经配置以执行所揭示技术的装置的功能方面,但未必需要通过不同硬件单元实现。实际上,如上文所描述,各种单元可以结合合适的软件和/或固件组合在编解码器硬件单元中,或者通过互操作硬件单元的集合来提供,所述硬件单元包含如上文所描述的一或多个处理器。
虽然已经结合各种不同实施例描述了前文,但可在不脱离本发明的教示的情况下将来自一个实施例的特征或元件与其它实施例组合。举例来说,编码器可具有可供使用的多个所论述的散列函数,且可确定针对视频信息的每一块使用哪一散列函数。所存储的散列索引可包括多个值,且如果视频信息的块的所计算的散列索引与所存储散列索引的值中的一或多者匹配,那么所述块可映射到所存储的散列索引。所论述的散列滤波器可实际上结合当前块到散列表的自动添加而应用,即,散列滤波器可在指示视频信息的块的信息添加到散列表之后应用。举例来说,如果链表变满,那么散列滤波器可在所述点处应用。还预期特征的类似组合,包含在指示当前块的信息已映射到散列表中的散列索引之后将所述信息添加到散列表;然而,相应实施例之间的特征的组合不必限于此。
已经描述本发明的各种实施例。这些和其它实施例在所附权利要求书的范围内。

Claims (28)

1.一种用于编码图片的视频信息的设备,所述设备包括:
存储器单元,其经配置以存储包含对应于所述图片中的参考块的至少一个散列索引的散列表,所述参考块是所述图片中的可用块的子集;以及
处理器,其操作上耦合到所述存储器单元且经配置以:
基于将散列函数应用到当前块而将所述当前块映射到所述散列表中的散列索引;
从所述散列表识别对应于所述散列索引的参考块;
基于所述当前块与所述参考块的比较从所述参考块之中选择预测块;以及
使用所述选定预测块编码所述视频信息。
2.根据权利要求1所述的设备,其中所述散列函数创建集合中的一或多个值的最高有效位MSB的串接,所述集合包括:所述当前块的直流电DC值;所述当前块的子块的DC值;所述当前块的梯度;所述当前块的所述子块的梯度;所述当前块的离散余弦变换DCT;以及所述当前块的所述子块的DCT。
3.根据权利要求1所述的设备,其中所述散列函数包括所述当前块中的一或多个像素的循环冗余检查CRC。
4.根据权利要求1所述的设备,其中所述参考块包括链表。
5.根据权利要求4所述的设备,其中所述处理器进一步经配置以响应于所述当前块的平均梯度值满足或超出非均一性阈值而将所述当前块添加到所述链表。
6.根据权利要求4所述的设备,其中所述处理器进一步经配置以响应于具有预定义像素值的所述当前块的像素的百分比满足或超出阈值百分比而将所述当前块添加到所述链表。
7.根据权利要求4所述的设备,其中所述处理器进一步经配置以响应于所述链表中的节点的数目小于节点的阈值数目而将所述当前块添加到所述链表。
8.一种用于编码图片的视频信息的方法,所述方法包括:
在存储器单元中存储包含对应于所述图片中的参考块的至少一个散列索引的散列表,所述参考块是所述图片中的可用块的子集;
基于将散列函数应用到当前块而将所述当前块映射到所述散列表中的散列索引;
从所述散列表识别对应于所述散列索引的参考块;
基于所述当前块与所述参考块的比较从所述参考块之中选择预测块;以及
使用所述选定预测块编码所述视频信息。
9.根据权利要求8所述的方法,其中所述散列函数创建集合中的一或多个值的最高有效位MSB的串接,所述集合包括:所述当前块的直流电DC值;所述当前块的子块的DC值;所述当前块的梯度;所述当前块的所述子块的梯度;所述当前块的离散余弦变换DCT;以及所述当前块的所述子块的DCT。
10.根据权利要求8所述的方法,其中所述散列函数包括所述块中的一或多个像素的循环冗余检查CRC。
11.根据权利要求8所述的方法,其中所述参考块包括链表。
12.根据权利要求11所述的方法,其进一步包括响应于所述当前块的平均梯度值满足或超出非均一性阈值而将所述当前块添加到所述链表。
13.根据权利要求11所述的方法,其进一步包括响应于具有预定义像素值的所述当前块的像素的百分比满足或超出阈值百分比而将所述当前块添加到所述链表。
14.根据权利要求11所述的方法,其进一步包括响应于所述链表中的节点的数目小于节点的数目阈值而将所述当前块添加到所述链表。
15.一种非暂时性计算机可读存储媒体,其具有存储于其上的指令,所述指令在执行时致使装置的处理器:
在存储器单元中存储供在编码图片的视频信息的过程中使用的散列表,所述散列表包括对应于所述图片中的参考块的至少一个散列索引,所述参考块是所述图片中的可用块的子集;
基于将散列函数应用到当前块而将所述当前块映射到所述散列表中的散列索引;
从所述散列表识别对应于所述散列索引的参考块;
基于所述当前块与所述参考块的比较从所述参考块之中选择预测块;以及
使用所述选定预测块编码所述视频信息。
16.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述散列函数创建集合中的一或多个值的最高有效位MSB的串接,所述集合包括:所述当前块的直流电DC值;所述当前块的子块的DC值;所述当前块的梯度;所述当前块的所述子块的梯度;所述当前块的离散余弦变换DCT;以及所述当前块的所述子块的DCT。
17.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述散列函数包括所述当前块中的一或多个像素的循环冗余检查CRC。
18.根据权利要求15所述的非暂时性计算机可读存储媒体,其中所述参考块包括链表。
19.根据权利要求18所述的非暂时性计算机可读存储媒体,其进一步具有存储于其上的指令,所述指令在执行时致使所述处理器响应于所述当前块的平均梯度值满足或超出非均一性阈值而将所述当前块添加到所述链表。
20.根据权利要求18所述的非暂时性计算机可读存储媒体,其进一步具有存储于其上的指令,所述指令在执行时致使所述处理器响应于具有预定义像素值的所述当前块的像素的百分比满足或超出阈值百分比而将所述当前块添加到所述链表。
21.根据权利要求18所述的非暂时性计算机可读存储媒体,其进一步具有存储于其上的指令,所述指令在执行时致使所述处理器响应于所述链表中的节点的数目小于节点的阈值数目而将所述当前块添加到所述链表。
22.一种视频译码装置,其经配置以编码图片的视频信息,所述视频译码装置包括:
用于存储包含对应于所述图片中的参考块的至少一个散列索引的散列表的装置,所述参考块是所述图片中的可用块的子集;
用于基于将散列函数应用到当前块而将所述当前块映射到所述散列表中的散列索引的装置;
用于从所述散列表识别对应于所述散列索引的参考块的装置;
用于基于所述当前块与所述参考块的比较从所述参考块之中选择预测块的装置;
以及
用于使用所述选定预测块编码所述视频信息的装置。
23.根据权利要求22所述的视频译码装置,其中所述散列函数创建集合中的一或多个值的最高有效位MSB的串接,所述集合包括:所述当前块的直流电DC值;所述当前块的子块的DC值;所述当前块的梯度;所述当前块的所述子块的梯度;所述当前块的离散余弦变换DCT;以及所述当前块的所述子块的DCT。
24.根据权利要求22所述的视频译码装置,其中所述散列函数包括所述块中的一或多个像素的循环冗余检查CRC。
25.根据权利要求22所述的视频译码装置,其中所述参考块包括链表。
26.根据权利要求25所述的视频译码装置,其进一步包括用于响应于所述当前块的平均梯度值满足或超出非均一性阈值而将所述当前块添加到所述链表的装置。
27.根据权利要求25所述的视频译码装置,其进一步包括用于响应于具有预定义像素值的所述当前块的像素的百分比满足或超出阈值百分比而将所述当前块添加到所述链表的装置。
28.根据权利要求25所述的视频译码装置,其进一步包括用于响应于所述链表中的节点的数目小于节点的阈值数目而将所述当前块添加到所述链表的装置。
CN201580013143.9A 2014-03-17 2015-03-17 针对帧内块复制的基于散列的编码器搜索 Expired - Fee Related CN106105197B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201461954449P 2014-03-17 2014-03-17
US61/954,449 2014-03-17
US14/659,398 US9715559B2 (en) 2014-03-17 2015-03-16 Hash-based encoder search for intra block copy
US14/659,398 2015-03-16
PCT/US2015/020936 WO2015142829A1 (en) 2014-03-17 2015-03-17 Hash-based encoder search for intra block copy

Publications (2)

Publication Number Publication Date
CN106105197A true CN106105197A (zh) 2016-11-09
CN106105197B CN106105197B (zh) 2019-01-15

Family

ID=54069145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580013143.9A Expired - Fee Related CN106105197B (zh) 2014-03-17 2015-03-17 针对帧内块复制的基于散列的编码器搜索

Country Status (7)

Country Link
US (1) US9715559B2 (zh)
EP (1) EP3120543B1 (zh)
JP (1) JP2017513343A (zh)
KR (1) KR20160134724A (zh)
CN (1) CN106105197B (zh)
BR (1) BR112016021485A2 (zh)
WO (1) WO2015142829A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110024398A (zh) * 2016-11-30 2019-07-16 微软技术许可有限责任公司 针对屏幕远程处理场景的局部的基于散列的运动估计
WO2020140952A1 (en) * 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd Hash-based motion searching
CN112492288A (zh) * 2020-12-01 2021-03-12 清华大学深圳国际研究生院 面向聚焦式全光视频序列的帧内预测方法及存储介质
CN113542769A (zh) * 2021-09-17 2021-10-22 苏州浪潮智能科技有限公司 一种视频图像编码方法、系统、设备以及介质
US11736701B2 (en) 2014-09-30 2023-08-22 Microsoft Technology Licensing, Llc Hash-based encoder decisions for video coding

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015058397A1 (en) 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
GB2531003A (en) * 2014-10-06 2016-04-13 Canon Kk Method and apparatus for vector encoding in video coding and decoding
KR102131142B1 (ko) 2015-01-29 2020-07-07 브이아이디 스케일, 인크. 인트라-블록 카피 검색
WO2016196843A1 (en) * 2015-06-03 2016-12-08 Apple Inc. Techniques for resource conservation during performance of intra block copy prediction searches
JP2017069617A (ja) * 2015-09-28 2017-04-06 ルネサスエレクトロニクス株式会社 半導体装置および画像符号化方法
US10390026B2 (en) 2016-03-25 2019-08-20 Google Llc Smart reordering in recursive block partitioning for advanced intra prediction in video coding
GB2560720B (en) * 2017-03-20 2021-08-25 Canon Kk Method and apparatus for encoding and transmitting at least a spatial part of a video sequence
US10674159B2 (en) * 2017-07-28 2020-06-02 Microsoft Technology Licensing, Llc Effective intra encoding for screen data
CN118474356A (zh) 2018-04-01 2024-08-09 有限公司B1影像技术研究所 图像编码/解码方法、介质和传输比特流的方法
EP3973702A1 (en) * 2019-05-22 2022-03-30 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Encoder and decoder, encoding method and decoding method for drift-free padding and hashing of independent coding regions
US11539957B2 (en) * 2019-06-20 2022-12-27 Tencent America LLC Layered random access with reference picture resampling
KR102355918B1 (ko) * 2019-07-29 2022-02-07 주식회사 그루크리에이티브랩 블록체인을 이용한 전자 데이터 제공 방법 및 그 시스템
CN111225214B (zh) * 2020-01-22 2022-08-12 北京字节跳动网络技术有限公司 视频处理方法、装置及电子设备
US11202085B1 (en) 2020-06-12 2021-12-14 Microsoft Technology Licensing, Llc Low-cost hash table construction and hash-based block matching for variable-size blocks
KR102403817B1 (ko) * 2020-11-24 2022-05-31 이화여자대학교 산학협력단 화면 내 블록 카피를 이용한 다시점 영상에서의 블록 벡터 예측 기법 및 디코더
US20230334702A1 (en) * 2022-04-15 2023-10-19 Meta Platforms Technologies, Llc Hardware Encoder for Color Data in a 2D Rendering Pipeline
US11797508B1 (en) * 2023-06-02 2023-10-24 Black Cape Inc. Systems and methods for geospatial correlation

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093934A1 (en) * 2001-05-14 2002-11-21 Salgen Systems Limited Image compression and transmission
WO2007038357A2 (en) * 2005-09-22 2007-04-05 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
JP2010251877A (ja) * 2009-04-13 2010-11-04 Hitachi Kokusai Electric Inc 署名装置
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法
US20130272412A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Common motion information candidate list construction process
US20130272409A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Bandwidth reduction in video coding through applying the same reference index
CN103596011A (zh) * 2013-11-20 2014-02-19 北京中星微电子有限公司 图像数据的存储处理方法和装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8189933B2 (en) * 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
KR20100095992A (ko) * 2009-02-23 2010-09-01 한국과학기술원 비디오 부호화에서의 분할 블록 부호화 방법, 비디오 복호화에서의 분할 블록 복호화 방법 및 이를 구현하는 기록매체
JP2011165170A (ja) * 2010-01-15 2011-08-25 Toyota Central R&D Labs Inc 対象物検出装置及びプログラム
US9210432B2 (en) * 2012-10-08 2015-12-08 Google Inc. Lossless inter-frame video coding
US9350988B1 (en) * 2012-11-20 2016-05-24 Google Inc. Prediction mode-based block ordering in video coding
US9210424B1 (en) * 2013-02-28 2015-12-08 Google Inc. Adaptive prediction block size in video coding
KR20160075705A (ko) 2013-10-25 2016-06-29 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 및 이미지 코딩에서의 해시 기반 블록 매칭
WO2015058397A1 (en) * 2013-10-25 2015-04-30 Microsoft Technology Licensing, Llc Representing blocks with hash values in video and image coding and decoding
EP3114841B1 (en) * 2014-03-04 2020-06-10 Microsoft Technology Licensing, LLC Encoder-side decisions for block flipping and skip mode in intra block copy prediction
WO2015131325A1 (en) 2014-03-04 2015-09-11 Microsoft Technology Licensing, Llc Hash table construction and availability checking for hash-based block matching
US9438910B1 (en) * 2014-03-11 2016-09-06 Google Inc. Affine motion prediction in video coding
EP3120556B1 (en) * 2014-03-17 2021-01-13 Microsoft Technology Licensing, LLC Encoder-side decisions for screen content encoding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2002093934A1 (en) * 2001-05-14 2002-11-21 Salgen Systems Limited Image compression and transmission
WO2007038357A2 (en) * 2005-09-22 2007-04-05 Qualcomm Incorporated Multi-dimensional neighboring block prediction for video encoding
JP2010251877A (ja) * 2009-04-13 2010-11-04 Hitachi Kokusai Electric Inc 署名装置
US20130272412A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Common motion information candidate list construction process
US20130272409A1 (en) * 2012-04-12 2013-10-17 Qualcomm Incorporated Bandwidth reduction in video coding through applying the same reference index
CN103281538A (zh) * 2013-06-06 2013-09-04 上海交通大学 基于滚动哈希和块级别帧内预测的帧内编码方法
CN103596011A (zh) * 2013-11-20 2014-02-19 北京中星微电子有限公司 图像数据的存储处理方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
QIJUN WANG ET AL: ""Intracoding and Refresh With Compression-Orientted Video Epitomic Priors"", 《IEEE TRANSACTION ON CIRCUITS AND SYSTEM FOR VIDEO TECHNOLOGY》 *
TAGLIASACCHI M RT AL: ""Hash-Based Motion Modeling in Wyner-Ziv Video Coding"", 《2007 IEEE INTERNATIONAL CONFERENCE ON ACOUSTICS ,SPEECH,AND SIGNAL PROCESSING》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11736701B2 (en) 2014-09-30 2023-08-22 Microsoft Technology Licensing, Llc Hash-based encoder decisions for video coding
CN110024398A (zh) * 2016-11-30 2019-07-16 微软技术许可有限责任公司 针对屏幕远程处理场景的局部的基于散列的运动估计
CN110024398B (zh) * 2016-11-30 2022-12-13 微软技术许可有限责任公司 针对屏幕远程处理场景的局部的基于散列的运动估计
WO2020140952A1 (en) * 2019-01-02 2020-07-09 Beijing Bytedance Network Technology Co., Ltd Hash-based motion searching
CN113170194A (zh) * 2019-01-02 2021-07-23 北京字节跳动网络技术有限公司 基于散列的运动搜索的简化
US11558638B2 (en) 2019-01-02 2023-01-17 Beijing Bytedance Network Technology Co., Ltd. Hash-based motion searching
US11616978B2 (en) 2019-01-02 2023-03-28 Beijing Bytedance Network Technology Co., Ltd. Simplification of hash-based motion searching
US11805274B2 (en) 2019-01-02 2023-10-31 Beijing Bytedance Network Technology Co., Ltd Early determination of hash-based motion searching
CN112492288A (zh) * 2020-12-01 2021-03-12 清华大学深圳国际研究生院 面向聚焦式全光视频序列的帧内预测方法及存储介质
CN113542769A (zh) * 2021-09-17 2021-10-22 苏州浪潮智能科技有限公司 一种视频图像编码方法、系统、设备以及介质
CN113542769B (zh) * 2021-09-17 2021-12-10 苏州浪潮智能科技有限公司 一种视频图像编码方法、系统、设备以及介质

Also Published As

Publication number Publication date
KR20160134724A (ko) 2016-11-23
US20150261884A1 (en) 2015-09-17
BR112016021485A2 (pt) 2017-08-15
US9715559B2 (en) 2017-07-25
CN106105197B (zh) 2019-01-15
WO2015142829A1 (en) 2015-09-24
EP3120543A1 (en) 2017-01-25
JP2017513343A (ja) 2017-05-25
EP3120543B1 (en) 2020-01-15

Similar Documents

Publication Publication Date Title
CN106105197A (zh) 针对帧内块复制的基于散列的编码器搜索
CN105393536B (zh) 使用位移向量从预测性块的帧内预测
CN106105209B (zh) 多层视频编解码器的级别定义
CN104272746B (zh) 用于视频序列中的随机存取点图片的经解码图片缓冲器处理
CN103329530B (zh) 视频译码中的子切片
CN106165429B (zh) 多层译码中的一致性窗口信息
CN103621095B (zh) 用于视频译码中的帧内预测的边界像素填补
CN104205829B (zh) 合并信令及环路滤波器开/关信令
CN106464909B (zh) 可缩放视频译码中的位流符合性约束
CN104272742B (zh) 加权预测参数译码
CN105009590B (zh) 用于视频信息的可缩放译码的装置和方法
CN106664426A (zh) 视频译码中的语法元素的值范围
CN103975595B (zh) 用于视频译码的分段参数集
CN106416255A (zh) 多层编解码器中的表示格式更新
CN105052152A (zh) 用于仅高级语法可缩放视频译码的层间参考图片限制
CN106471810A (zh) 用于屏幕内容视频数据的运动向量差(mvd)译码的方法
CN106416258A (zh) 用于位流分区的符合性参数
CN105637881A (zh) 用于视频信息的可缩放译码的装置和方法
CN106537917B (zh) 用于译码视频信息的设备、方法及计算机可读介质
CN105025997A (zh) 针对位深度可缩放视频译码使用样本自适应调整的层间预测
CN106165423B (zh) 用于视频数据的方法、装置、设备和计算机可读存储媒体
CN105379278A (zh) 用于视频信息的可缩放译码的装置和方法
CN106664428A (zh) 用于调色板模式译码的方法
CN105637883A (zh) 用于视频信息的可缩放译码的装置和方法
CN105830446B (zh) 用于对多层位流的视频信息进行解码的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20190115

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