CN103891281B - 检测用于视频译码的相邻视频单元的可用性 - Google Patents

检测用于视频译码的相邻视频单元的可用性 Download PDF

Info

Publication number
CN103891281B
CN103891281B CN201280050981.XA CN201280050981A CN103891281B CN 103891281 B CN103891281 B CN 103891281B CN 201280050981 A CN201280050981 A CN 201280050981A CN 103891281 B CN103891281 B CN 103891281B
Authority
CN
China
Prior art keywords
video
unit
video unit
cell
adjacent
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201280050981.XA
Other languages
English (en)
Other versions
CN103891281A (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 CN103891281A publication Critical patent/CN103891281A/zh
Application granted granted Critical
Publication of CN103891281B publication Critical patent/CN103891281B/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/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • 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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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
    • H04N19/423Methods 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 characterised by memory arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Abstract

作为对视频数据的视频编码或解码操作的部分,视频译码器对所述视频数据的当前视频单元执行译码操作。作为对所述当前视频单元执行所述译码操作的部分,所述视频译码器确定相邻于所述当前视频单元的一个或一个以上视频单元的可用性。为了确定相邻于所述当前视频单元的视频单元的可用性,所述视频译码器基于相邻于所述当前视频单元的母代视频单元的视频单元的可用性而识别查找表中的条目。所述所识别条目指示相邻于所述当前视频单元的所述视频单元的可用性。所述视频译码器随后基于相邻于所述当前视频单元的所述视频单元是否可用而对所述当前视频单元执行译码操作。

Description

检测用于视频译码的相邻视频单元的可用性
相关申请案的交叉参考
本申请案主张2011年10月18日申请的第61/548,630号美国临时申请案的权益,所述美国临时申请案的整个内容以应用的方式并入本文。
技术领域
本申请案涉及视频译码的领域,例如视频编码和解码。
背景技术
数字视频能力可并入到广泛多种装置中,包含数字电视机、数字直播系统、无线广播系统、个人数字助理(PDA)、膝上型或桌上型计算机、数码相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝式或卫星无线电电话、视频电话会议装置和类似装置。数字视频装置实施视频压缩技术,例如由MPEG-2、MPEG-4、ITU-TH.263、ITU-TH.264/MPEG-4第10部分高级视频译码(AVC)定义的标准以及此些标准的扩展中描述的那些技术,从而较有效地发射和接收数字视频信息。新的视频译码标准正在开发,例如由作为MPEG与ITU-T之间的合作的“视频译码联合合作组”(JCT-VC)开发的高效视频译码(HEVC)标准。新兴的HEVC标准有时称为H.265,但尚未正式做出此指定。
发明内容
本发明的技术大体上涉及在视频译码期间确定相邻视频单元的可用性。更具体来说,视频译码器对当前视频单元执行视频译码操作。作为执行视频译码操作的部分,在一些实例中,视频译码器可基于当前视频单元的母代视频单元的可用性而识别查找表中的条目。所识别条目指示相邻于当前视频单元的视频单元的可用性。以此方式,查找表准许视频译码器检测相邻于当前视频单元的视频单元的可用性。所述视频译码器基于相邻于所述当前视频单元的视频单元的可用性而对所述当前视频单元执行译码操作。
在一个实例中,本发明描述用于对视频数据进行译码的方法。所述方法包括基于相邻于当前视频单元的母代视频单元的视频单元的可用性而识别查找表中的条目。当前视频单元在视频数据的图片内。所识别条目指示相邻于当前视频单元的视频单元的可用性。此外,所述方法包括基于相邻于当前视频单元的视频单元是否可用而对当前视频单元执行译码操作。
在另一实例中,本发明描述一种视频译码设备,包括一个或一个以上处理器,所述处理器经配置以基于相邻于当前视频单元的母代视频单元的视频单元的可用性而识别查找表中的条目。当前视频单元在图片内。所识别条目指示相邻于当前视频单元的视频单元的可用性。所述一个或一个以上处理器进一步经配置以基于相邻于当前视频单元的视频单元是否可用而对当前视频单元执行译码操作。
在另一实例中,本发明描述用于对视频数据进行译码的视频译码设备。视频译码设备包括用于基于相邻于当前视频单元的母代视频单元的视频单元的可用性而识别查找表中的条目的装置。当前视频单元在视频数据的图片内。所识别条目指示相邻于当前视频单元的视频单元的可用性。所述视频译码设备进一步包括用于基于相邻于所述当前视频单元的所述视频单元是否可用而对所述当前视频单元执行译码操作的装置。
在另一实例中,本发明描述一种包括计算机可读媒体的计算机程序产品,所述计算机可读媒体上存储有指令,所述指令在执行时致使一个或一个以上处理器基于相邻于当前视频单元的母代视频单元的视频单元的可用性而识别查找表中的条目。当前视频单元在图片内。所识别条目指示相邻于当前视频单元的视频单元的可用性。另外,所述指令在执行时致使所述一个或一个以上处理器基于相邻于当前视频单元的视频单元是否可用而对当前视频单元执行译码操作。
在附图和以下描述中陈述本发明的一个或一个以上方面的细节。从描述和图式以及从权利要求书将明了本发明中描述的技术的其它特征、目的和优点。
附图说明
图1是图解说明可利用本发明的技术的实例性视频译码系统的框图。
图2是图解说明将图片实例性地分割为树块和切片的概念图。
图3是图解说明图片的树块的实例性光栅扫描次序的概念图。
图4是图解说明经分割为逐渐变小的视频译码单元的实例性树块的概念图。
图5是图解说明用于分割树块的实例四叉树数据结构的概念图。
图6是图解说明根据z扫描次序对树块的未经分割译码单元的实例定序的概念图。
图7是图解说明对视频序列进行编码的视频编码器的实例的框图。
图8是图解说明对经编码视频序列进行解码的视频解码器的实例的框图。
图9是图解说明用以确定当前视频单元的相邻者的可用性的实例性递归操作的流程图。
图10是图解说明视频单元的实例性相邻者的概念图。
图11是图解说明经再分非叶视频单元与相邻视频单元之间的实例性关系的概念图。
图12是图解说明非叶视频单元的左上方子单元的相邻者的实例可用性的概念图。
图13是图解说明非叶视频单元的右上方子单元的相邻者的实例可用性的概念图。
图14是图解说明非叶视频单元的左下方子单元的相邻者的实例可用性的概念图。
图15是图解说明非叶视频单元的右下方子单元的相邻者的实例可用性的概念图。
图16是图解说明用以确定当前视频单元的相邻者的可用性的另一实例性操作的流程图。
图17是已经分割为六十四个基本视频单元的LCU的概念图。
图18是图解说明针对左下方相邻者的实例性查找表(LUT)的概念图。
图19是图解说明针对左边相邻者的实例性LUT的概念图。
图20是图解说明针对左上方相邻者的实例性LUT的概念图。
图21是图解说明针对上方相邻者的实例性LUT的概念图。
图22是图解说明针对右上方相邻者的实例性LUT的概念图。
图23是图解说明用以确定当前视频单元的相邻者的可用性的另一实例性操作的流程图。
具体实施方式
附图图解说明实例。在附图中由参考标号指示的元件对应于在以下描述中由相同参考标号指示的元件。在本发明中,具有以序数词(例如,“第一”、“第二”、“第三”等等)开始的名称的元件不一定暗示所述元件具有特定次序。而是,此些序数词仅用以指代相同或相似类型的不同元件。
本发明的技术可增加视频译码器可确定图片的视频单元的相邻者的可用性的效率。如本文描述所使用,术语“视频译码器”一般指代视频编码器和视频解码器两者。在本发明中,术语“视频译码”或“译码”可一般指代视频编码和视频解码。“视频单元”可对应于邻接的一组像素值。如果第一视频单元的一个或一个以上像素值在图片中邻近于第二视频单元的一个或一个以上像素值,那么第一视频单元可为第二视频单元的相邻者(即,第一视频单元相邻于第二视频单元)。
当对视频单元执行视频译码过程时,如果视频译码器能够使用与相邻视频单元相关联的数据来对视频单元进行译码,那么相邻视频单元可为“可用的”。如果视频译码器不能使用与相邻视频单元相关联的数据来对视频单元进行译码,那么相邻视频单元可为“不可用的”。举例来说,当视频编码器对视频单元执行视频编码过程时,如果视频编码器尚未对相邻视频单元进行编码,如果相邻视频单元不存在,如果相邻视频单元在不同于视频单元的切片中,或如果视频编码器另外不能使用与相邻视频单元相关联的数据来对视频单元进行编码,那么相邻视频单元可为不可用的。当视频解码器对视频块执行视频解码过程时,如果视频解码器尚未对相邻视频单元进行解码,如果相邻视频单元不存在,如果相邻视频单元在不同于视频单元的切片中,或如果视频解码器另外不能使用与相邻视频单元相关联的数据来对视频单元进行解码,那么相邻视频单元可为不可用的。
可存在多种原因视频译码器为何可能需要确定相邻视频单元是否可用,例如用于帧内预测或运动向量预测。举例来说,视频编码器或视频解码器可能需要存取相邻视频单元的像素值以便对当前视频单元的像素值进行帧内预测。在此实例中,如果视频解码器尚未对相邻视频单元进行解码,那么视频解码器可能不能存取相邻视频单元的像素值。在另一实例中,对于运动向量预测,视频编码器或视频解码器可能需要存取相邻视频单元的运动数据以便产生当前视频单元的运动数据,例如用于合并或跳过模式,或高级运动向量预测(AMVP)模式。在其它实例中,可能需要相邻视频单元的可用性来确定用于各种语法元素的熵译码的上下文。在这些实例中,如果视频编码器尚未对相邻视频单元进行编码,那么视频编码器可能不能存取相邻视频单元的运动数据。
根据本发明的技术,视频译码器可存储含有多个条目的查找表(LUT)。视频译码器可基于相邻于当前视频单元的母代视频单元的视频单元的可用性而存取LUT中的特定条目。LUT中的条目可指定相邻于当前视频单元的视频单元的可用性。以此方式,视频译码器可使用LUT来基于相邻于当前视频单元的母代视频单元的视频单元的可用性而确定相邻于当前视频单元的视频单元的可用性。以此方式确定相邻视频单元的可用性可需要比先前提出的用于确定相邻视频单元的可用性的技术少的存储器存取,且可促进可用性的相对快检测。
图1是图解说明可利用本发明中描述的技术的实例性视频译码系统10的框图。如图1的实例所示,视频译码系统10包含源装置12和目的地装置14。源装置12产生经编码视频数据。目的地装置14可在稍后时间对经编码视频数据进行解码。源装置12和目的地装置14可包括广泛多种装置中的任一者,包含桌上型计算机、笔记型(即,膝上型)计算机、平板计算机、机顶盒、移动电话、电话手持机、“智能”板、电视机、相机、显示装置、数字媒体播放器、视频游戏控制台、视频流式传输装置、交通工具中计算机,或能够编码和解码视频数据的其它类型的计算装置。
目的地装置14可经由通信信道16接收经编码视频数据。通信信道16可包括能够将经编码视频数据从源装置12移动到目的地装置14的媒体或装置。在一个实例中,通信信道16可包括通信媒体,其使得源装置12能够实时地将经编码视频数据直接发射到目的地装置14。源装置12或另一装置可根据例如无线通信协议等通信标准调制经编码视频数据。通信媒体可包括任何无线或有线通信媒体,例如射频(RF)频谱或者一种或一种以上物理传输线。通信信道16可形成基于包的网络的部分,所述网络例如为局域网、广域网或例如因特网的全球网。通信信道16可包含路由器、交换机、基站或可用于促进经编码视频数据从源装置12到目的地装置14的通信的任何其它设备。
在一些实例中,源装置12和目的地装置14可针对无线通信而装备。然而,本发明的技术不一定限于无线应用或设定。而是,所述技术可应用于视频译码以支持多种多媒体应用中的任一种,例如空中电视广播、闭路电视发射、卫星电视发射、流式传输视频发射(例如,经由因特网)、为存储在数据存储媒体上对数字视频的编码、对存储在数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,源装置12和目的地装置14可经配置以支持单向或双向视频发射以支持例如视频流式传输、视频重放、视频广播和/或视频电话等应用。
此外,在一些实例中,源装置12可将经编码视频数据输出到存储系统34。类似地,目的地装置14可存取存储在存储系统34上的经编码视频数据。在各种实例中,存储系统34可包含各种分布式或局部存取的数据存储媒体。数据存储媒体的实例类型包含(但不限于)硬驱动器、蓝光光盘、DVD、CD-ROM、固态存储器单元、易失性或非易失性存储器,或适合用于存储经编码视频数据的其它数字存储媒体。
在一些实例中,存储系统34可包括文件服务器或另一中间存储装置,其可存储由源装置12产生的经编码视频。目的地装置14可经由流式传输或下载从存储系统34存取所存储的视频数据。文件服务器可为能够存储经编码视频数据且将所述经编码视频数据发射到目的地装置14的任一类型的服务器。实例文件服务器包含网络服务器(例如,用于网站)、文件传送协议(FTP)服务器、网络附接存储(NAS)装置或本地磁盘驱动器。目的地装置14可通过数据连接(例如因特网连接)存取经编码视频数据。数据连接可包含适于存取存储在文件服务器上的经编码视频数据的无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等等)或两者的组合。经编码视频数据从存储系统34的发射可为流式传输发射、下载发射或两者的组合。
在图1的实例中,源装置12包含视频源18、视频编码器20和输出接口22。在一些实例中,输出接口22还可包含调制器/解调器(调制解调器)和/或发射器。视频源18可将视频数据提供到视频编码器20。在各种实例中,视频源18可包括用于提供视频数据的各种类型的装置和/或系统。举例来说,视频源18可包括视频俘获装置,例如摄像机。在另一实例中,视频源18可包括含有先前俘获视频的视频档案。在又一实例中,视频源18可包括从视频内容提供者接收视频的视频馈送接口。在又一实例中,视频源18可包括用于产生计算机图形数据的计算机图形系统。
如下文详细描述,视频编码器20可对由视频源18提供的视频数据进行编码。在一些实例中,源装置12可经由输出接口22将经编码视频数据直接发射到目的地装置14。而且,在一些实例中,存储系统34可存储经编码视频数据用于目的地装置14或其它装置稍后存取。
本发明可大体上涉及视频编码器20将某些信息“用信号发送”到另一装置,例如视频解码器30。然而应了解,视频编码器20可通过使某些语法元素与视频数据的各种经编码部分相关联来用信号发送信息。也就是说,视频编码器20可通过将某些语法元素存储到视频数据的各种经编码部分的标头来用信号发送数据。在一些情况下,此些语法元素可在由视频解码器30接收和解码之前经编码和存储(例如,存储到存储系统34)。因此,术语“用信号发送”可大体上指代用以对经压缩视频数据进行解码的语法或其它数据的通信。此通信可实时或近实时地发生。或者,此通信可在一时间跨度中发生,例如可能当在编码时将语法元素存储到媒体时发生,解码装置可随后在存储到此媒体之后的任何时间检索所述语法元素。
在图1的实例中,目的地装置14包含输入接口28、视频解码器30和显示装置32。在一些实例中,输入接口28可包含接收器和/或调制解调器。目的地装置14的输入接口28从通信信道16和/或存储系统34接收经编码视频数据。视频解码器30对由输入接口28接收的经编码视频数据进行解码。目的地装置14可再现经解码视频数据用于在显示装置32上显示。
显示装置32可与目的地装置14集成或可在目的地装置14的外部。在一些实例中,目的地装置14可包含集成显示装置,且还可经配置以与外部显示装置介接。在各种实例中,显示装置32可包括各种类型的显示装置。举例来说,显示装置32可包括液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器,或另一类型的显示装置。
虽然图1中未图示,但视频编码器20和视频解码器30可各自与音频编码器和解码器集成,且可包含适当的多路复用器-多路分用器(MUX-DEMUX)单元或其它硬件和软件,以处置共同数据流或单独数据流中的音频和视频两者的编码。如果适用,MUX-DEMUX单元可符合ITU H.223多路复用器协议,或例如用户数据报协议(UDP)等其它协议。
视频编码器20和视频解码器30各自可实施为多种合适电路中的任一者,例如一个或一个以上微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件或其任一组合。当所述技术部分地以软件实施时,装置可将用于所述软件的指令存储在合适的非暂时性计算机可读媒体中,且使用一个或一个以上处理器执行硬件中的指令以便执行本发明的技术。视频编码器20和视频解码器30中的每一者可包含于一个或一个以上编码器或解码器中,其中任一者可集成为相应装置中的组合式编码器/解码器(CODEC)的部分。
视频编码器20和视频解码器30可根据例如当前在开发的高效视频译码(HEVC)标准等视频压缩标准来操作,且可符合HEVC测试模型(HM)。或者,视频编码器20和视频解码器30可根据例如ITU-T H.264标准(或者称为MPEG-4第10部分高级视频译码(AVC))等其它专门或行业标准或此些标准的扩展来操作。对标准的实例扩展包含对H.264/AVC标准的可缩放视频译码(SVC)和多视图视频译码(MVC)扩展。本发明的技术不限于任何特定译码标准。视频压缩标准的其它实例包含MPEG-2和ITU-T H.263。
如上文简要提到,视频编码器20对视频数据进行编码。视频数据可包括一个或一个以上图片序列。图片中的每一者是静止图像。在一些实例中,图片可称为“帧”。当视频编码器20对视频数据进行编码时,视频编码器20可产生位流。位流包含形成经译码图片的表示和相关联数据的位序列。经译码图片是图片的经译码表示。
为了产生位流,视频编码器20可对视频数据中的图片序列执行编码操作。当视频编码器20对图片序列执行编码操作时,视频编码器20可产生一系列经译码图片和相关联数据。另外,视频编码器20可产生序列参数集(SPS),其含有适用于图片序列的参数。此外,视频编码器20可产生图片参数集(PPS),其含有整体适用于图片的参数。
为了产生经译码图片,视频编码器20可将图片分割为一个或一个以上树块。树块是视频数据的2D块。在一些实例中,树块也可称为最大译码单元(LCU)。HEVC的树块可广义地类似于例如H.264/AVC等先前标准的宏块。然而,树块不一定限于特定大小,且可包含一个或一个以上译码单元(CU)。
在一些实例中,视频编码器20可将图片分割为多个切片。切片中的每一者可包含整数个CU。在一些实例中,切片包括整数个树块。在其它实例中,切片的边界可在树块内。如果切片的边界在树块内,那么切片可称为精细粒度切片。图2图解说明经分割为LCU的图片50。靠近图片50的中点的较暗的线52指示图片50的切片54与切片56之间的边界。在图2的实例中,图片50内的单元58可对应于树块。
作为对图片执行编码操作的部分,视频编码器20可对图片的每一切片执行编码操作。用于切片的编码操作可产生与切片相关联的经编码数据。与切片相关联的经编码数据可称为“经译码切片”。经译码切片可包含切片标头和切片数据。切片数据可包含成译码次序的一系列连续译码单元。切片标头可含有属于切片的第一或所有树块的数据元素。
为了产生切片的经译码切片数据,视频编码器20可对切片中的每一树块执行编码操作。视频编码器20可根据光栅扫描次序对切片中的树块执行编码操作。图3是展示图片50的树块的实例光栅扫描次序的概念图,其中每一树块中的数字指示树块的光栅扫描的实例次序(例如,图3的实例中1到56)。当视频编码器20对树块执行编码操作时,视频编码器20可产生经译码树块。经译码树块可包括表示树块的经编码版本的数据。
为了产生经译码树块,视频编码器20可对树块递归地执行四叉树分割以将树块划分为逐渐变小的CU。举例来说,视频编码器20可将树块分割为四个相等大小的子CU,将子CU中的一者或一者以上分割为四个相等大小的子子CU,等等。位流中的一个或一个以上语法元素可指示视频编码器20可对树块进行分割的最大次数。语法元素也可指示最小译码单元(SCU)。在一些实例中,CU的形状可为正方形。在其它实例中,CU可为矩形或具有另一形状。给定当前视频单元的母代视频单元可对应于与当前视频单元对应的四叉树节点正上方的四叉树节点。当视频编码器20使用四叉树分割来将给定视频单元分割为四个相等大小的视频单元时,给定视频单元在本发明中称为四个相等大小的视频单元的母代视频单元。
图4是图解说明经分割为逐渐变小的CU的树块60的概念图。在图4的实例中,树块60经分割为十三个未经分割的CU62。在其它实例中,视频编码器20可以其它方式分割树块。
作为对树块执行编码操作的部分,视频编码器20可产生树块的阶层式四叉树数据结构。举例来说,树块可对应于四叉树数据结构的根节点。如果视频编码器20将树块分割为四个子CU,那么根节点在四叉树数据结构中具有四个子节点。子节点中的每一者对应于子CU中的一者。如果视频编码器20将子CU中的一者分割为四个子子CU,那么对应于子CU的节点可具有四个子节点,其各自对应于子子CU中的一者。四叉树数据结构的每一节点可提供对应CU的语法数据。举例来说,四叉树中的节点可包含分裂旗标,其指示对应于节点的CU是否经分割(即,分裂)为四个子CU。CU的语法元素可递归地界定,且可取决于CU是否经分裂为子CU。未经分割的CU可对应于四叉树数据结构中的叶节点。四叉树数据结构中的叶节点可称为“译码节点”。表示树块的经编码版本的数据可包含基于树块的四叉树数据结构的数据。
图5是图解说明用于分割树块的实例四叉树数据结构70的概念图。图5的实例中的四叉树数据结构70不对应于图4中的树块60的分区。在图5的实例中,四叉树数据结构70包含对应于树块的根节点72。视频编码器20将树块分割为四个子CU。这些子CU对应于四叉树数据结构70的子层级中的节点74。此外,在图5的实例中,视频编码器20已将第二子CU分割为四个子子CU。这些子子CU对应于四叉树数据结构70的孙层级中的节点76。在图5中,视频编码器20已将第四子子CU分割为四个子子子CU。这些子子子CU对应于四叉树数据结构70的曾孙层级中的节点78。
当视频编码器20对树块执行编码操作时,视频编码器20可根据z扫描次序确定树块的四叉树内的每一层级处的树块的CU的序列。举例来说,视频编码器20可根据z扫描次序对子层级处的子CU进行定序,根据z扫描次序对第一子CU的子子CU进行定序,根据z扫描次序对第二子CU的子子CU进行定序,根据z扫描次序对子子CU的子子子CU进行定序,以此类推。视频编码器20可随后基于所确定的CU序列对树块的每一CU执行编码操作。图6是图解说明根据z扫描次序对树块60的未经分割CU的实例定序的概念图。特定来说,每一CU内的数字指示CU相对于其它CU被扫描的次序(例如,在图6的实例中从0到12)。
作为对未经分割CU执行编码操作的部分,视频编码器20可产生用于CU的预测数据。视频编码器20可使用帧内预测或帧间预测来产生CU的预测数据。当视频编码器20使用帧内预测来产生CU的预测数据时,视频编码器20可从含有CU的图片的经解码像素值导出CU的预测数据。举例来说,视频编码器20可基于相邻于当前视频单元的视频单元的一个或一个以上像素值产生当前视频单元的预测数据。当视频编码器20使用帧间预测来产生CU的预测数据时,视频编码器20可从除了含有CU的图片之外的参考图片的经解码值导出CU的预测数据。
在视频编码器20产生CU的预测数据之后,视频编码器20可产生CU的残余数据。举例来说,视频编码器20可基于CU的预测数据产生CU的残余数据。CU的残余数据可指示CU的预测数据中的像素值与CU的原始像素值之间的差。
此外,作为对未经分割CU执行编码操作的部分,视频编码器20可对CU执行递归四叉树分割以将CU分割为一个或一个以上变换单元(TU)。本发明可大体上将CU和TU指代为“视频单元”。CU的每一TU可与CU的残余数据的一不同部分相关联。以与视频编码器20对树块内的CU进行定序类似的方式,视频编码器20可根据z扫描次序对CU的TU进行定序。视频编码器20可根据z扫描次序对CU的每一TU执行变换操作。当视频编码器20对TU执行变换操作时,视频编码器20可至少部分地通过将变换应用于与TU相关联的残余数据来产生变换系数块(即,变换系数的块)。举例来说,视频编码器20可将一个或一个以上变换应用于残余数据以产生一个或一个以上变换系数块。变换系数块可为系数的2D矩阵。
在产生变换系数块之后,视频编码器20可通过对变换系数块执行量化和熵编码操作产生变换系数块的经编码版本。视频编码器20可输出视频数据的位流中的变换系数块的经编码版本。换句话说,视频编码器20可输出含有表示变换系数块的经编码数据的位流。
由视频解码器30执行的视频解码过程可大体上与由视频编码器20执行的编码过程互逆。举例来说,当视频解码器30接收到位流时,视频解码器30可对位流中的每一图片序列执行解码操作。作为对图片序列执行解码操作的部分,视频解码器30可对图片序列中的每一图片执行解码操作。作为对图片执行解码操作的部分,视频解码器30可对图片的每一切片执行解码操作。作为对切片执行解码操作的部分,视频解码器30可根据光栅扫描次序对切片中的每一树块执行解码操作。作为对树块执行解码操作的部分,视频解码器30可根据z扫描次序对树块的每一CU执行解码操作。
在一些实例中,视频解码器30可能不能对树块内的视频单元(例如,CU或TU)执行某些解码操作,直到视频解码器30已对一个或一个以上相邻视频单元完成解码操作为止。举例来说,视频解码器30可能不能对视频单元执行某些解码操作,直到视频解码器30已对左下方相邻视频单元、左边相邻视频单元、左上方相邻视频单元、上方相邻视频单元和/或右上方相邻视频单元进行解码为止。给定视频单元的左下方相邻视频单元在给定视频单元的下方和左边发生。给定视频单元的左边相邻视频单元在给定视频单元的左边发生。给定视频单元的左上方相邻视频单元在给定视频单元的左上方发生。给定视频单元的上方相邻视频单元在给定视频单元的上方发生。右上方相邻视频单元在给定视频单元的右上方发生。因为视频解码器30根据光栅扫描次序对树块执行解码操作,且根据z扫描次序对树块的CU和TU执行解码操作,所以视频解码器30可能不需要确定视频单元的右边、右下方或下方相邻者的可用性以对视频单元执行解码操作。
可能存在多种原因视频解码器30为何不能对给定视频单元执行解码操作直到一个或一个以上相邻视频单元经解码为止。举例来说,视频编码器20可能已执行帧内预测以对CU的像素值进行编码。作为执行帧内预测的部分,视频编码器20可使用来自相邻CU的像素值来产生CU的预测数据。当视频解码器30对CU执行解码操作时,视频解码器30可确定相邻CU是否已经解码。换句话说,视频解码器30可确定相邻CU是否可用。如果特定相邻CU可用,那么视频解码器30可使用来自相邻CU的像素值来产生CU的预测数据。然而,如果相邻CU不可用,那么视频解码器30不必存取来自相邻CU的像素值。因此,视频解码器30可使用默认像素值而不是使用来自相邻CU的像素值。
在一些实例中,视频编码器20还可能需要确定CU的相邻CU是否已经编码。举例来说,视频编码器20可能需要确定CU的相邻CU是否已经编码,以便产生指示CU的运动向量的运动向量候选。视频编码器20和视频解码器30可使用各种算法来确定给定视频单元的相邻视频单元是否已经编码或解码(即,相邻视频单元是否可用)。这些算法可能是复杂的,因为例如CU和TU等视频单元可与四叉树数据结构的不同层级(或深度)相关联。换句话说,视频单元的相邻者可与四叉树的与所述视频单元不同的层级相关联。因此,可能实际上存在位于给定视频单元正上方的两个视频单元。一些先前提出的算法是复杂的,且可能需要大量存储器存取。因为处理复杂算法和执行存储器存取消耗时间和电能,所以可能希望视频编码器20或视频解码器30执行此些复杂算法。
在一些实例中,本发明的技术可减少确定视频单元的相邻视频单元是否已经编码或解码的复杂性。为了便于阐释,术语“视频译码器”可用以指代视频编码器或视频解码器。根据本发明的技术,视频译码器使用查找表(LUT)来加速视频单元的相邻者的可用性的检测。在各种实例中,视频译码器以不同方式使用不同LUT来加速视频单元的相邻者的可用性的检测。举例来说,视频译码器可使用视频单元的母代视频单元的相邻者的可用性作为到LUT中的索引,所述索引指定视频单元的相邻者的可用性。换句话说,视频译码器可基于视频单元的相邻者的可用性确定视频单元的子单元的相邻者的可用性。
以此方式,视频译码器可执行用于对视频数据进行译码的方法。在此方法中,视频译码器可基于相邻于当前视频单元的母代视频单元的视频单元的可用性而识别查找表中的条目。在此方法中,当前视频单元在视频数据的图片内。所识别条目可指示相邻于当前视频单元的视频单元的可用性。所述方法还可包含基于相邻于当前视频单元的视频单元是否可用而对当前视频单元执行译码操作。译码操作可为视频编码操作或视频解码操作。在一些实例中,对当前视频单元执行译码操作包括基于与相邻于当前视频单元的视频单元相关联的数据对当前视频单元执行译码操作。视频译码器可在视频编码或视频解码操作期间执行此方法以执行帧内预测,以在合并/跳过或AMVP模式中获得运动信息,在熵译码中获得上下文信息,或执行视频编码或视频解码操作的其它部分。
在其它实例中,视频译码器根据光栅或z扫描次序确定树块内的视频单元的索引。视频译码器可随后使用此索引来识别LUT中的条目。视频译码器可使用所识别条目来确定视频单元的相邻者的可用性。下文详细描述的图16和23图解说明根据此些实例确定相邻者的可用性的实例操作。
图7是图解说明对视频序列进行编码的视频编码器20的配置实例的框图。图7是为了阐释目的而提供,且不应被视为限制如在本发明中广义地例示和描述的技术。为了阐释的目的,本发明在HEVC译码的上下文中描述视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。
在图7的实例中,视频编码器20包含多个功能组件。视频编码器20的功能组件包含模式选择模块100、运动估计模块102、运动补偿模块104、帧内预测模块106、残余产生模块110、变换模块112、量化模块114、熵编码模块116、逆量化模块118、逆变换模块120、重构模块122以及经解码图片缓冲器124。在其它实例中,视频编码器20可包含较多、较少或不同的功能组件。举例来说,视频编码器20可包含解块滤波器以对重构模块122的输出进行滤波以从经重构视频中移除成块假象。此外,运动估计模块102和运动补偿模块104可高度集成,但在图7的实例中为了阐释目的而分开表示。
视频编码器20可接收视频数据。在各种实例中,视频编码器20可从各种源接收视频数据。举例来说,视频编码器20可从视频源18(图1)或另一源接收视频数据。视频数据可表示图片序列。为了对视频数据进行编码,视频编码器20可对每一图片序列执行编码操作。作为对图片序列执行编码操作的部分,视频编码器20可对图片序列内的每一切片执行编码操作。作为对图片执行编码操作的部分,视频编码器20可对图片中的每一切片执行编码操作。作为对切片执行编码操作的部分,视频编码器20可对切片中的每一树块执行编码操作。
作为对树块执行编码操作的部分,视频编码器20可将树块分割为一个或一个以上CU。在一些实例中,CU的大小的范围可为从8x8像素直到具有最大64x64像素或更大的树块的大小。在本发明中,“NxN”和“N乘N”可以互换地使用以在垂直和水平尺寸方面指代视频块的像素尺寸,例如16x16像素或16乘16像素。大体上,16x16块将在垂直方向上具有16个像素(y=16)且在水平方向上具有16个像素(x=16)。同样,NxN块通常在垂直方向上具有N个像素且在水平方向上具有N个像素,其中N表示非负整数值。类似标记法可用以指示变换系数块的尺寸。
视频编码器20可对树块的每一未经分割CU执行编码操作。当视频编码器20对未经分割CU执行编码操作时,视频编码器20产生表示未经分割CU的经编码版本的数据。
作为对CU执行编码操作的部分,运动估计模块102和运动补偿模块104对CU执行帧间预测。换句话说,运动估计模块102和运动补偿模块104可基于参考图片而非含有CU的图片的经解码像素值来产生CU的预测数据。帧间预测可提供时间压缩。
为了对CU执行帧间预测,视频编码器20可将CU分割为一个或一个以上预测单元(PU)。视频编码器20和视频解码器30可支持各种PU大小。假定特定CU的大小为2N×2N,则视频编码器20和视频解码器30可支持2N×2N、N×N、2N×N或N×2N的PU大小。视频编码器20和视频解码器30还可支持2N×nU、2N×nD、nL×2N和nR×2N的PU大小的不对称分割。在一些实例中,视频编码器20可沿着不以直角会合CU的侧的边界将CU分割为若干PU。
运动估计模块102可执行关于CU的每一PU的运动估计操作。当运动估计模块102执行关于PU的运动估计操作时,运动估计模块102产生PU的一个或一个以上运动向量。举例来说,切片可为I切片、P切片或B切片。运动估计模块102和运动补偿模块104可取决于CU是否在I切片、P切片或B切片中而执行针对CU的PU的不同操作。在I切片中,所有CU经帧内预测。因此,如果CU在I切片中,那么运动估计模块102和运动补偿模块104不对CU执行帧间预测。
如果CU在P切片中,那么含有CU的图片与称为“列表0”的参考图片列表相关联。列表0中的参考图片中的每一者含有可用于解码次序上的后续图片的帧间预测的像素值。当运动估计模块102执行关于P切片中的PU的运动估计操作时,运动估计模块102搜索列表0中的参考图片是否有PU的参考样本。PU的参考样本可为一组像素值,其最接近地对应于PU的像素值。运动估计模块102可使用多种度量来确定参考图片中的一组像素值如何接近地对应于PU的像素值。举例来说,运动估计模块102可通过绝对差和(SAD)、平方差和(SSD)或其它差度量来确定参考图片中的一组像素值如何接近地对应于PU的像素值。
在识别P切片中的CU的PU的参考样本之后,运动估计模块102可产生指示列表0中含有参考样本的参考图片的参考索引,以及指示PU与参考样本之间的空间位移的运动向量。在各种实例中,运动估计模块102可在各种程度的精度上产生运动向量。举例来说,运动估计模块102可以四分之一像素精度、八分之一像素精度或其它分数像素精度来产生运动向量。运动估计模块102可将参考索引和运动向量输出到熵编码模块116和运动补偿模块104。运动补偿模块104可使用CU的PU的参考索引和运动向量来识别和检索PU的参考样本。运动补偿模块104可随后使用PU的参考样本的像素值来产生CU的预测数据。
如果CU在B切片中,那么含有CU的图片可与称为“列表0”和“列表1”的两个参考图片列表相关联。列表0中的参考图片中的每一者含有可用于解码次序上的后续图片的帧间预测的像素值。列表1中的参考图片在解码次序上发生在图片之前,但在呈现次序上发生在图片之后。在一些实例中,含有B切片的图片可与作为列表0与列表1的组合的列表组合相关联。
此外,如果CU在B切片中,那么运动估计模块102可执行针对CU的PU的单向预测或双向预测。当运动估计模块102执行PU的单向预测时,运动估计模块102可搜索列表1的参考图片是否有PU的参考样本。运动估计模块102可随后产生指示列表1中含有参考样本的参考图片的参考索引,以及指示PU与参考样本之间的空间位移的运动向量。运动估计模块102可将CU的PU的参考索引和运动向量输出到熵编码模块116和运动补偿模块104。运动补偿模块104可使用CU的PU的参考索引和运动向量来识别和检索PU的参考样本。运动补偿模块104可随后使用PU的参考样本的像素值来产生CU的预测数据。
当运动估计模块102执行PU的双向预测时,运动估计模块102可搜索列表0中的参考图片是否有PU的参考样本,且还可搜索列表1中的参考图片是否有PU的另一参考样本。运动估计模块102可随后产生指示参考样本的参考索引,以及指示参考样本与PU之间的空间位移的运动向量。运动估计模块102可将参考索引和运动向量输出到熵编码模块116和运动补偿模块104。运动补偿模块104可使用参考索引和运动向量来识别和检索PU的参考样本。运动补偿模块104可随后从CU的PU的参考样本中的像素值内插CU的预测数据的像素值。
在一些实例中,运动估计模块102可产生数据,运动补偿模块104或视频解码器30可根据所述数据预测CU的PU的运动向量。在此些实例中,运动补偿模块104或视频解码器30可使用来自相邻CU的数据和运动数据来预测CU的PU的运动向量。然而,如果相邻CU不可用,那么运动估计模块102可不使用相邻CU的运动向量来产生此数据。因此,运动估计模块102可使用本发明的技术来确定相邻CU的可用性。相邻CU可出于各种原因而不可用。举例来说,如果视频编码器20尚未对相邻CU进行编码,如果相邻CU不存在,如果相邻CU处于与CU不同的切片中,或如果视频编码器20另外不能使用与相邻CU相关联的数据来预测CU的PU的运动向量,那么相邻CU可为不可用的。
作为对CU执行编码操作的部分,帧内预测模块106可对CU执行帧内预测。换句话说,帧内预测模块106可基于与CU相同的切片中的经解码像素值来产生CU的预测数据。帧内预测可提供空间压缩。
为了对CU执行帧内预测,帧内预测模块106可使用多个帧内预测模式来产生CU的多个预测数据集合。当帧内预测模块106使用帧内预测模式来产生CU的预测数据集合时,帧内预测模块106可在与帧内预测模式相关联的方向和/或梯度上从相邻CU延伸像素值越过CU。相邻CU可位于当前CU的上方、右上方和左上方或左边,假定CU和树块的从左到右、从上到下(即,z扫描)编码次序。帧内预测模块106可使用各种数目的帧内预测模式,例如33个方向性帧内预测模式,这取决于CU的大小。
如果相邻CU不可用,那么帧内预测模块106可不能使用相邻CU的像素值来产生CU的预测数据。相邻CU可出于各种原因而不可用。举例来说,如果视频编码器20尚未对相邻CU进行编码,如果相邻CU不存在,如果相邻CU处于与CU不同的切片中,或如果帧内预测模块106另外不能使用相邻CU的像素值来产生CU的预测数据,那么相邻CU可为不可用的。因此,帧内预测模块106可能需要确定相邻CU是否可用。在一些实例中,帧内预测模块106可使用本发明的技术来确定相邻CU的可用性。
在一些实例中,如果帧内预测模块106确定相邻CU不存在,那么帧内预测模块106可使用默认像素值而非相邻CU的实际像素值来产生CU的预测数据。此外,在一些实例中,如果帧内预测模块106确定相邻CU不存在,那么帧内预测模块106可使用合成像素值而非相邻CU的实际像素值来产生CU的预测数据。帧内预测模块106可基于可用的相邻CU的像素值产生合成像素值。
帧内预测模块106可选择CU的预测数据集合中的一者。在各种实例中,帧内预测模块106可以各种方式选择CU的预测数据集合。举例来说,帧内预测模块106可通过计算预测数据集合的失真率且选择具有最低失真率的预测数据集合来选择CU的预测数据集合。
模式选择模块100可从由运动补偿模块104针对CU产生的预测数据或由帧内预测模块106针对CU产生的预测数据当中选择CU的预测数据。在一些实例中,模式选择模块100基于预测数据集合中的误差(即,失真)来选择CU的预测数据。在一些实例中,模式选择模块100基于速率-失真量度来选择CU的预测数据,所述量度平衡了译码位的数目对所得经译码数据中的失真。
在模式选择模块100选择CU的预测数据之后,残余产生模块110可执行残余产生操作,其基于CU的预测数据产生CU的残余数据。CU的残余数据可指示CU的原始像素值与CU的预测数据之间的像素值的差。在一些实例中,执行残余产生操作可包括从CU的像素值减去CU的预测数据。CU的残余数据可包含对应于CU中的像素的不同像素分量的2D残余块。举例来说,残余数据可包含对应于CU的预测数据中的像素的明度分量与CU的原始像素中的明度像素分量之间的差的残余块。另外,CU的残余数据可包含对应于CU的预测数据中的像素的色度分量与CU的原始像素的色度分量之间的差的残余块。
如上文描述,CU可具有一个或一个以上TU。CU的每一TU可对应于CU的残余数据的一不同部分。CU的TU的大小可以或可以不基于CU的PU的大小。在一些实例中,视频编码器20可使用递归四叉树分割来将CU再分为若干TU。所得数据结构可称为“残余四叉树”(RQT)。RQT中的每一节点可对应于CU的TU。当根据本发明的技术确定相邻者的可用性时,视频译码器可使用RQT作为树块的CU的四叉树的扩展。
变换模块112可通过将变换应用于对应于TU的残余数据来产生CU的每一未经分割TU的变换系数块。举例来说,变换模块112可将变换应用于残余数据的特定部分以产生变换系数块。变换系数块中的每一者可为系数的2D矩阵。在各种实例中,变换模块112可将各种变换应用于对应于TU的残余数据。举例来说,变换模块112可应用离散余弦变换(DCT)、方向性变换或概念上类似的变换。
在变换模块112产生TU的变换系数块之后,量化模块114可量化变换系数块中的系数。量化大体上指代其中变换系数块中的系数经量化以可能地减少用以表示所述系数的数据量从而提供进一步压缩的过程。量化可减少与系数中的一些或全部相关联的位深度。举例来说,在量化期间可将n位值下舍入到m位值,其中n大于m。
在量化模块114量化变换系数块之后,熵编码模块116可对变换系数块执行熵编码操作。在各种实例中,视频编码器20可对变换系数块执行各种类型的熵编码操作。举例来说,视频编码器20可对变换系数块执行上下文自适应可变长度译码(CAVLC)操作、上下文自适应二进制算术译码(CABAC)操作、基于语法的上下文自适应二进制算术译码(SBAC)操作、概率区间分割熵(PIPE)译码操作或另一类型的熵编码操作。视频编码器20还可对与视频数据相关联的语法元素执行熵编码操作。
为了执行CABAC,熵编码模块116可将上下文模型指派于待发射的符号。所述上下文可例如涉及符号的相邻值是否为非零。为了执行CAVLC,视频编码器20可针对待发射符号选择可变长度译码。VLC中的码字可经构造以使得相对较短的码对应于较可能的符号,而相对长的码对应于较不可能的符号。以此方式,VLC的使用可针对待发射的每一符号使用相等长度码字来实现位节省。概率确定可基于对符号指派的上下文。
在一些实例中,当熵编码模块116对变换系数块执行熵编码操作时,熵编码模块116可基于与相邻于与变换系数块相关联的TU的TU相关联的数据而选择一个或一个以上上下文模型用于对变换系数块进行编码。然而,如果相邻TU不可用,熵编码模块116可能不能选择用于对变换系数块进行编码的上下文模型。相邻TU可出于各种原因而不可用。举例来说,如果熵编码模块116尚未对相邻TU执行熵编码操作或如果熵编码模块116另外不能存取通过对相邻TU执行熵编码操作而产生的数据,那么相邻TU可能不可用。因此,熵编码模块116可确定相邻TU是否可用。在一些此类实例中,熵编码模块116可使用本发明的技术来确定相邻于TU的TU的可用性。当对CU的其它语法元素执行熵编码操作时,类似的考虑可适用。
逆量化模块118和逆变换模块120可分别将逆量化和逆变换应用于变换系数块以从变换系数块解码用于译码单元的残余数据。重构模块122可将经重构残余数据添加到由运动补偿模块104或帧内预测模块106产生的预测数据以产生经重构视频块用于存储在经解码图片缓冲器124中。换句话说,重构模块122可基于视频单元的预测数据和视频单元的残余数据而重构视频单元的像素值。运动估计模块102和运动补偿模块104可使用含有经重构视频块的参考图片来对后续图片的CU执行帧间预测。视频解码器30可输出图片,所述图片包含当前视频单元的像素值。
在视频编码器20对变换系数块执行熵编码之后,视频编码器20可在用于视频数据的位流中包含表示经熵编码变换系数块的数据。所述位流可为形成经译码图片的表示和相关联数据的位序列。所述位流可包括网络抽象层(NAL)单元的序列。NAL单元中的每一者可为一种语法结构,其含有NAL单元中的数据类型和含有所述数据的字节的指示。举例来说,NAL单元可含有表示PPS、经译码切片、补充增强信息、存取单元定界符、填充数据或另一类型数据的数据。NAL单元的数据可呈散布有防止竞争位的原始字节序列有效负载(RBSP)的形式。RBSP可为含有整数个字节的囊封于NAL单元内的语法结构。
图8是图解说明经配置以实施本发明的技术的视频解码器30的实例配置的框图。图8是为了阐释目的而提供,且不限制如本发明中广义地例示和描述的技术。为了阐释的目的,本发明在HEVC译码的上下文中描述视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。
在图8的实例中,视频解码器30包含多个功能组件。视频解码器30的功能组件包含熵解码模块150、运动补偿模块152、帧内预测模块154、逆量化模块156、逆变换模块158、重构模块160,以及经解码图片缓冲器162。在一些实例中,视频解码器30可执行与关于图7的视频编码器20描述的编码遍次大体上互逆的解码遍次。在其它实例中,视频解码器30可包含较多、较少或不同功能组件。举例来说,视频解码器30可包含解块滤波器以对重构模块160的输出进行滤波以从经重构视频移除成块假象。
视频解码器30可接收包括经编码视频数据的位流。当视频解码器30接收到位流时,视频解码器30对位流执行解码操作以重构视频数据的每一图片中的像素值。作为对位流执行解码操作的部分,视频解码器30可对视频数据中的每一图片的每一树块执行解码操作。视频解码器30可以光栅扫描次序对图片内的树块执行解码操作。作为对树块执行解码操作的部分,视频解码器30可在树块的四叉树的每一层级处以z扫描次序对所述层级处的树块的CU执行解码操作。
作为对未经分割CU执行解码操作的部分,视频解码器30可在未经分割CU的残余四叉树的每一层级处以z扫描次序对CU的每一TU执行解码操作。通过对CU的每一TU执行解码操作,视频解码器30可重构CU的残余数据。
作为对未经分割TU执行解码操作的部分,熵解码模块150可对与TU相关联的变换系数块的经编码版本执行熵解码操作。在一些实例中,熵解码模块150可使用CABAC来对变换系数块进行解码。在此些实例中,熵解码模块150可基于通过对与相邻TU相关联的变换系数块执行熵解码操作所产生的数据而选择上下文模型。熵解码模块150可使用选定上下文模型来对变换系数块进行解码。
然而,如果相邻TU不可用,那么熵解码模块150可能不能基于通过对与相邻TU相关联的变换系数块执行熵解码操作所产生的数据而选择上下文模型。相邻TU可出于各种原因而不可用。举例来说,如果熵解码模块150尚未对相邻TU执行熵解码操作或如果熵解码模块150另外不能使用通过对相邻TU执行熵解码操作而产生的数据,那么相邻TU可能不可用。因此,熵解码模块150可确定相邻TU是否可用。在此些实例中,熵解码模块150可使用本发明的技术来确定相邻TU是否可用。以此方式,视频译码器(例如,视频编码器20或视频解码器30)可基于与相邻于给定视频单元的视频单元相关联的数据而选择上下文模型,且基于选定上下文模型而对与给定视频单元相关联的数据执行熵译码操作。
此外,作为对未经分割TU执行解码操作的部分,逆量化模块156可对与TU相关联的变换系数块进行逆量化,即解量化。逆量化模块156可以类似于针对HEVC提出或由H.264解码标准界定的逆量化过程的方式来逆量化变换系数块。逆量化模块156可使用由视频编码器20针对变换系数块的CU计算的量化参数QP来确定量化程度,且同样确定将应用的用于逆量化模块156的逆量化程度。
在逆量化模块156逆量化变换系数块之后,逆变换模块158可产生与变换系数块相关联的TU的残余数据。逆变换模块158可至少部分地通过将逆变换应用于变换系数块来产生TU的残余数据。举例来说,逆变换模块158可将逆DCT、逆整数变换、逆卡忽南-拉维(Karhunen-Loeve)变换(KLT)、逆旋转变换、逆方向性变换或另一逆变换应用于变换系数块。在一些实例中,逆变换模块158可基于来自视频编码器20的信令来确定将应用于变换系数块的逆变换。在此些实例中,逆变换模块158可基于与变换系数块相关联的树块的四叉树的根节点处用信号发送的变换来确定逆变换。在其它实例中,逆变换模块158可从例如块大小、译码模式或类似物等一个或一个以上译码特性推断逆变换。在一些实例中,逆变换模块158可应用级联逆变换。
运动补偿模块152可执行运动补偿以产生CU的预测数据。为了执行运动补偿,运动补偿模块152可基于相邻于CU的CU的PU的运动信息来预测CU的PU的运动信息。在一些实例中,运动补偿模块152可使用合并/跳过模式或AMVP模式来预测PU的运动信息。运动补偿模块152可使用CU的PU的运动信息来识别PU的参考样本。运动补偿模块152可随后使用PU的参考样本来产生CU的预测数据。
然而,如果相邻CU不可用,那么运动补偿模块152可能不能基于相邻CU的PU的运动信息来预测CU的PU的运动信息。相邻CU可出于各种原因而不可用。举例来说,如果视频解码器30尚未对相邻CU进行解码,如果相邻CU不存在,如果相邻CU处于与CU不同的切片中,或如果运动补偿模块152另外不能使用与相邻CU相关联的数据来预测CU的PU的运动向量,那么相邻CU可为不可用的。因此,运动补偿模块152可确定相邻CU是否可用。运动估计模块152可使用本发明的技术来确定相邻CU是否可用。
在一些实例中,运动补偿模块152可通过基于内插滤波器执行内插来精炼CU的预测数据。将用于具有子像素精度的运动补偿的内插滤波器的识别符可包含于语法元素中。运动补偿模块152可使用由视频编码器20在CU的预测数据的产生期间使用的相同内插滤波器来计算参考块的子整数像素的经内插值。运动补偿模块152可根据所接收语法信息来确定由视频编码器20使用的内插滤波器且使用所述内插滤波器来产生预测数据。
帧内预测模块154可执行帧内预测来产生CU的预测数据。举例来说,帧内预测模块154可基于位流中的语法元素来确定CU的帧内预测模式。帧内预测模块154可随后使用帧内预测模式基于相邻CU的像素值而产生CU的预测数据(例如,预测像素值)。
然而,如果相邻CU不可用,那么帧内预测模块154可能不能使用相邻CU的像素值。相邻CU可出于各种原因而不可用。举例来说,如果视频解码器30尚未对相邻CU进行解码,如果相邻CU不存在,如果相邻CU处于与CU不同的切片中,或如果帧内预测模块154另外不能使用相邻CU的像素值来产生CU的预测数据,那么相邻CU可为不可用的。因此,帧内预测模块154可确定相邻CU是否可用。帧内预测模块154可使用本发明的技术来确定相邻CU是否可用。如果CU的帧内预测模式必须使用不可用相邻CU的像素值,那么帧内预测模块154可使用默认或合成像素值而不是使用不可用相邻CU的像素值来产生CU的预测数据。
在HEVC实例中,运动补偿模块152和帧内预测模块154可使用语法信息(例如,由四叉树提供)中的一些来确定用以对经编码视频序列的图片进行编码的树块的大小、描述经编码视频序列的图片的每一CU如何分裂(以及同样,子CU如何分裂)的分裂信息、指示每一CU如何经编码的模式(例如,帧内或帧间预测,和针对帧内预测的帧内预测编码模式)、每一经帧间预测CU的一个或一个以上参考帧(和/或含有参考帧的识别符的参考图片列表),以及用以对经编码视频序列进行解码的其它信息。
重构模块160可使用CU的残余数据和CU的预测数据来重构CU的像素值。在一些实例中,视频解码器30可应用解块滤波器以从切片或图片的经重构像素值滤波器移除成块假象。经解码图片缓冲器162可存储视频数据的图片的经解码像素值。经解码图片缓冲器162可提供参考图片以用于后续运动补偿、帧内预测以及在例如图1的显示装置32等显示装置上的呈现。
图9是图解说明用以确定当前视频单元的相邻者的可用性的实例性递归操作200的流程图。如本发明中别处所述,例如视频编码器20和视频解码器30等视频译码器可出于各种原因确定相邻视频单元是否可用。视频译码器可出于此些原因中的任一者而执行操作200。举例来说,如果视频译码器是视频编码器,那么视频译码器可在确定CU的PU的运动信息时执行操作200。在此实例中,视频译码器可确定相邻CU的可用性且基于可用相邻CU中的一者的PU的运动信息来用信号发送PU的运动信息。在另一实例中,如果视频译码器是视频解码器,那么视频译码器可在对CU执行帧内预测操作时执行操作200。在此实例中,视频译码器可确定相邻CU的可用性,且如果CU的帧内预测模式必须使用不可用CU的像素值,那么使用默认或合成像素值。
当视频译码器(例如视频编码器20或视频解码器30)确定当前视频单元的相邻视频单元的可用性时,视频译码器确定当前视频单元是否为树块(202)。如果当前视频单元是树块(202的“是”),那么视频译码器可基于当前视频单元的水平和垂直索引以及关于含有当前视频单元的切片的信息来确定相邻视频单元的可用性(204)。举例来说,在确定当前视频单元是树块之后,视频译码器可基于图片内的当前视频单元的位置确定当前视频单元的相邻者的可用性。
举例来说,如果当前视频单元是树块,那么当前视频单元可具有水平索引1和垂直索引1,即当前视频单元处于坐标(1,1)。在此实例中,树块可根据光栅扫描次序来译码。因此,如果当前视频单元左上方的树块(即,左上方相邻者)、当前视频单元上方的树块(即,上方相邻者)、当前视频单元右上方的树块(即,右上方相邻者)、当前视频单元左边的树块(即,左边相邻者)处于与树块相同的切片中,那么左上方相邻者、上方相邻者、右上方相邻者和左边相邻者可用。然而,当前视频单元左下方的树块(即,左下方相邻者)不可用。左下方相邻者不可用是因为在此实例中,视频译码器根据光栅扫描次序对树块进行译码,且当前视频单元在光栅扫描次序上在左下方相邻者之前发生。
如果当前视频单元不是树块(202的“否”),那么当前视频单元是树块的子单元。因此,为了确定当前视频单元的相邻者是否可用,视频译码器可确定当前视频单元的母代视频单元的相邻者的可用性(206)。当前视频单元的母代视频单元可对应于与当前视频单元对应的四叉树节点正上方的四叉树节点。图5展示具有连续子CU层级的实例性四叉树分割阶层。
为了确定母代视频单元的相邻者的可用性,视频译码器可递归地调用操作200。也就是说,视频译码器可至少部分地通过递归地执行操作以确定当前视频单元的前代视频单元的相邻者的可用性来确定母代视频单元的相邻者的可用性。前代视频单元可为在四叉树数据结构中在当前视频单元上方的视频单元。当视频译码器递归地调用操作200时,当前节点的母代视频单元是“当前”节点。因此,如果母代视频单元是树块,那么视频译码器可基于如上所述的母代视频单元的水平和垂直索引而确定母代视频单元的相邻者的可用性。另一方面,如果母代视频单元不是树块,那么视频译码器可确定母代视频单元的母代视频单元(即,祖代视频单元)的相邻者的可用性。
如果祖代视频单元是树块,那么视频译码器可使用如上所述的祖代视频单元的水平和垂直索引确定祖代视频单元的相邻者的可用性。如果祖代视频单元不是树块,那么视频译码器可确定祖代视频单元的母代视频单元(即,曾祖代视频单元)的可用性。处理通过当前视频单元的前代视频单元的此过程可以此方式继续直到到达树块(即,前代树块)且视频译码器能够确定前代树块的相邻者的可用性为止。一旦视频译码器确定当前视频单元的前代树块的可用性,视频译码器便可返回向下工作通过当前视频单元的前代视频单元。对于每一代处的视频单元,视频译码器使用视频单元的母代视频单元的可用性来识别LUT中的条目。LUT可包含母代视频单元的相邻者的可用性的多种组合。所识别条目指示视频单元的相邻者的可用性。
在视频译码器已确定当前视频单元的母代视频单元的相邻者的可用性之后,视频译码器使用当前视频单元的母代视频单元的相邻者的可用性来识别LUT中的条目(208)。所识别条目可包含一系列值,所述值中的每一者指示当前视频单元的不同相邻者的可用性。视频译码器可随后基于所识别条目来识别当前视频单元的相邻者的可用性(210)。使用当前视频单元的母代视频单元的相邻者的可用性识别的条目指示当前视频单元的相邻者的可用性。
以下是实例LUT。
表1
表1的实例LUT包含五列和三十二行。第一列指定当前视频单元的母代视频单元的相邻者的可能可用性。第二列指定在当前视频单元是母代视频单元的左上方子单元的情况下当前视频单元的相邻者的可用性。第三列指定在当前视频单元是母代视频单元的右上方子单元的情况下当前视频单元的相邻者的可用性。第四列指定在当前视频单元是母代视频单元的左下方子单元的情况下当前视频单元的相邻者的可用性。第五列指定在当前视频单元是母代视频单元的右下方子单元的情况下当前视频单元的相邻者的可用性。因此,LUT可包含用于当前视频单元的母代视频单元的其它子代视频单元的条目,用于其它子代视频单元的条目指示其它子代视频单元的相邻者的可用性。
在表1的实例性LUT中,视频单元的相邻者的可用性表示为五位二进制数。所述二进制数中的每一位对应于不同相邻者的可用性。举例来说,第一位(即,最右边位)可对应于左下方相邻者,第二位可对应于左边相邻者,第三位可对应于左上方相邻者,第四位可对应于上方相邻者,且第五(即,最左边)位可对应于右上方相邻者。如果位是0,那么对应相邻者不可用。如果位是1,那么对应相邻者可用。
为了使用表1的实例性LUT来确定当前视频单元的相邻者的可用性,视频译码器可首先在LUT中识别在第一列(即,母代的相邻者)列中具有对应于当前视频单元的母代视频单元的相邻者的可用性的值的行。第二,视频译码器基于当前视频单元是否为母代视频单元的左上方、右上方、左下方或右下方子单元来识别LUT中的列。视频译码器随后使用LUT的所识别行和列中的值来确定当前视频单元的相邻者的可用性。
以此方式,给定视频单元的相邻者可用性,视频译码器可立即确定视频单元的子单元。因此,基于可通过树块的水平和垂直索引以及树块的切片信息导出的树块的相邻者可用性,可递归地确定在树块的四叉树内的任何深度处的任何视频单元的相邻者可用性。也就是说,对于四叉树内的任何个别视频单元,可从根部递归地获得视频单元的相邻者可用性。因此,对视频单元的相邻者可用性的检测可仅需要两个因素:视频单元在四叉树的深度处的位置,以及视频单元的母代视频单元的相邻者可用性。而且,全部五个相邻视频单元的可用性可通过一个单个LUT操作来联合确定。这可为高度有效率的。
在步骤204或210中识别当前视频单元的相邻者的可用性之后,视频译码器将当前视频单元的相邻者的可用性返回到操作200的调用者(212)。举例来说,如果当前视频单元经分割,那么操作200的调用者可为操作200的另一实例。在此实例中,视频译码器可将当前视频单元的相邻者的可用性返回到操作200的另一实例。在另一实例中,如果当前视频单元为未经分割视频单元,那么操作200的调用者可为帧内预测过程。在此实例中,视频译码器可将当前视频单元的相邻者的可用性返回到帧内预测过程。
以下C伪码展示实例性递归函数,用于输出相邻于当前视频单元的视频单元和当前视频单元内的每一子单元的可用性。
在以上伪码中,函数“HEVC_NeighborAvail”接收参数“nAvail”,其指示相邻于当前视频单元的视频单元的可用性。函数“HEVC_NeighborAvail”随后确定当前视频单元是否经分裂为若干子单元。如果是,那么函数“HEVC_NeighborAvail”使用相邻于当前视频单元的视频单元的可用性来在LUT中查找相邻于当前视频单元的每一子单元的视频单元的可用性。函数“HEVC_NeighborAvail”可使用指示相邻于当前视频单元的子单元的视频单元的可用性的参数递归地调用自身。如果当前视频单元未分裂为子单元,那么函数“HEVC_NeighborAvail”可输出相邻于当前视频单元的视频单元的可用性。以此方式,函数“HEVC_NeighborAvail”可输出相邻于当前视频单元的视频单元和当前视频单元内的每一子单元的可用性。
虽然操作200呈现为递归操作,但视频译码器可执行非递归操作,其使用LUT和当前视频单元的可用性来确定当前视频单元的相邻者的可用性。换句话说,视频译码器可至少部分地通过执行非递归操作以确定当前视频单元的前代视频单元的相邻者的可用性来确定母代视频单元的相邻者的可用性。非递归操作可具有与上述递归操作类似的效率。以下是实施非递归操作的实例性代码,其基于相邻于当前视频单元的母代视频单元的视频单元的可用性来识别LUT中的条目,所识别条目指示当前视频单元的相邻者的可用性。
在上文提供的代码中,初始化LUT“anNeighborAvailabilityLut”。函数“main()”调用函数“HEVC_ProcessQuadTree()”。以上代码假定当前LCU的可用性为5(即,00101)。在其它实例中,对当前LCU的可用性可使用若干值。
函数“HEVC_ProcessQuadTree()”打印当前LCU内的每一CU的可用性。函数“HEVC_ProcessQuadTree()”包含“for”循环。“for”循环确定相邻于当前LCU中的每一视频单元的视频单元的可用性。“for”循环根据首先深度搜索模式确定可用性。
在“for”循环的每一迭代期间,视频译码器可执行第一“while”循环。第一“while”循环增加当前深度,以便将分析移动到在当前LCU的四叉树的最大深度上方一个层级的当前视频单元。由于第一“while”循环将分析沿着四叉树向下移动,因此第一“while”循环使用LUT来确定相邻于左上方子单元的视频单元的可用性。“for”循环随后迭代通过当前视频单元的每一子单元,使用LUT来确定相邻于当前视频单元的子单元的视频单元的可用性。
在确定相邻于当前视频单元的每一子单元的视频单元的可用性之后,“for”循环中的第二“while”循环减小当前深度,直到到达在所述深度处并非所有CU均已经分析的深度为止。“for”循环随后确定相邻于当前层级处的下一视频单元的视频单元的可用性。“for”循环随后可关于下一视频单元重复此操作,以确定相邻于下一视频单元的子单元的视频单元的可用性。“for”循环可以此方式继续直到相邻于当前LCU中的每一视频单元的视频单元的可用性已经确定为止。上文提供的代码可经修改以仅识别相邻于特定视频单元的视频单元的可用性。
图10是图解说明给定视频单元250与相邻视频单元之间的关系的概念图。图11图解说明视频单元250的四个子单元252A、252B、252C和252D(统称为“子单元252”)与视频单元250的相邻视频单元的关系。
子单元252的相邻者的可用性可概括如下。子单元252A的相邻者可用性可与视频单元250的相邻者可用性相关,如下。
●BelowLeft(SubU0)=Left(U)
●Left(SubU0)=Left(U)
●AboveLeft(SubU0)=AboveLeft(U)
●Above(SubU0)=Above(U)
●AboveRight(SubU0)=Above(U)
在以上标记法中,“BelowLeft(SubU0)”指示子单元252A的左下方相邻者的可用性。“Left(U)”指示视频单元250的左边相邻者的可用性。“Left(SubU0)”指示子单元252A的左边相邻者的可用性。“AboveLeft(SubU0)”指示子单元252A的左上方相邻者的可用性。“AboveLeft(U)”指示视频单元250的左上方相邻者的可用性。“Above(SubU0)”指示子单元252A的上方相邻者的可用性。“Above(U)”指示视频单元250的上方相邻者的可用性。“AboveRight(SubU0)”指示子单元252A的右上方相邻者的可用性。图12是图解说明子单元252A的相邻者的概念图。
252B的相邻者可用性可与视频单元250的相邻者可用性相关,如下。
●BelowLeft(SubU1)=假
●Left(SubU1)=真
●AboveLefi(SubU1)=Above(U)
●Above(SubU1)=Above(U)
●AboveRight(SubU1)=AboveRight(U)
“假”指示相邻视频单元不可用。“真”指示相邻视频单元可用。在以上标记法中,“BelowLeft(SubU1)”指示子单元252B的左下方相邻者的可用性。“Left(SubU1)”指示子单元252B的左边相邻者的可用性。“AboveLeft(SubU1)”指示子单元252B的左上方相邻者的可用性。“Above(SubU1)”指示子单元252B的上方相邻者的可用性。“Above(U)”指示视频单元250的上方相邻者的可用性。“AboveRight(SubU1)”指示子单元252B的右上方相邻者的可用性。“AboveRight(U)”指示视频单元250的右上方相邻者的可用性。图13是图解说明子单元252B的相邻者的概念图。
子单元252C的相邻者可用性可与视频单元250的相邻者可用性相关,如下。
●BelowLeft(SubU2)=BelowLeft(U)
●Left(SubU2)=Left(U)
●AboveLefi(SubU2)=Left(U)
●Above(SubU2)=真
●AboveRight(SubU2)=真
在以上标记法中,“BelowLeft(SubU2)指示子单元252C的左下方相邻者的可用性。“BelowLeft(U)”指示视频单元250的左下方相邻者的可用性。“Left(SubU2)”指示子单元252C的左边相邻者的可用性。“Left(U)”指示视频单元250的左边相邻者的可用性。“AboveLefi(SubU2)”指示子单元252C的左上方相邻者的可用性。“Above(SubU2)”指示子单元252C的上方相邻者的可用性。“AboveRight(SubU2)”指示子单元252C的右上方相邻者的可用性。图14是图解说明子单元252C的相邻者的概念图。子单元252D的相邻者可用性可与视频单元250的相邻者可用性相关,如下。
●BelowLeft(SubU3)=假
●Left(SubU3)=真
●AboveLefi(SubU3)=真
●Above(SubU3)=真
●AboveRight(SubU3)=假
“BelowLeft(SubU3)指示子单元252D的左下方相邻者的可用性。“Left(SubU3)”指示子单元252D的左边相邻者的可用性。“AboveLefi(SubU3)”指示子单元252D的左上方相邻者的可用性。“Above(SubU3)”指示子单元252D的上方相邻者的可用性。“AboveRight(SubU3)”指示子单元252D的右上方相邻者的可用性。图15是图解说明子单元252D的相邻者的概念图。
图16是图解说明用以确定当前视频单元的相邻者的可用性的另一实例性操作300的流程图。当前视频单元可为译码单元或变换单元。以下描述阐释视频译码器执行操作300。如上所述,视频译码器可为视频编码器,例如视频编码器20,或视频解码器,例如视频解码器30。
在操作300开始之后,视频译码器可将当前LCU分割为一个或一个以上基本视频单元(302)。当前LCU是含有当前视频单元的LCU。当前LCU的基本视频单元是相等大小的。基本视频单元具有最小可允许的译码单元或变换单元大小。举例来说,如果当前LCU是8x8且最小允许的译码单元大小是4x4,那么视频译码器可将当前LCU分割为四个4x4基本视频单元。
接着,视频译码器识别当前视频单元的目标视频单元(304)。视频译码器可基于当前视频单元的哪一相邻者是所关注相邻者来识别目标视频单元。视频译码器尝试确定所关注相邻者的可用性。如果视频译码器正在确定当前视频单元的上方相邻者的可用性,那么视频译码器将当前视频单元的第一(即,左上方)基本视频单元识别为目标视频单元。如果视频译码器正在确定当前视频单元的左边相邻者的可用性,那么视频译码器将当前视频单元的第一基本视频单元识别为目标视频单元。如果视频译码器正在确定当前视频单元的左上方相邻者的可用性,那么视频译码器将第一基本视频单元识别为目标视频单元。如果视频译码器正在确定当前视频单元的右上方相邻者的可用性,那么视频译码器将当前视频单元的右上方基本视频单元识别为目标视频单元。如果视频译码器正在确定当前视频单元的左下方相邻者的可用性,那么视频译码器将当前视频单元的左下方基本视频单元识别为目标视频单元。
图17是已经分割为六十四个基本视频单元的LCU340的概念图。在图17的实例中,LCU340可为32x32且基本视频单元可为4x4。LCU340的左上角的阴影基本视频单元指示当前视频单元中的基本视频单元。在图17的实例中,当前视频单元可为16x16CU或TU。如果所关注相邻者是当前视频单元的上方、左上方或左边相邻者,那么目标视频单元是标记为“1”的基本视频单元。如果所关注相邻者是当前视频单元的右上方相邻者,那么目标视频单元是标记为“2”的基本视频单元。如果所关注相邻者是当前视频单元的左下方相邻者,那么目标视频单元是标记为“3”的基本视频单元。
现在继续参考图16的实例。在识别目标视频单元之后,视频译码器可确定目标视频单元的索引(306)。在一些实例中,视频译码器可根据光栅扫描次序确定LCU的基本视频单元的序列。视频译码器可随后基于根据光栅扫描次序对基本视频单元的定序来确定目标视频单元的索引。如果目标视频单元是目标视频单元的第一基本视频单元,那么视频译码器可基于当前LCU内的当前视频单元的位置来确定目标视频单元的光栅扫描索引。举例来说,在一些情况下,视频译码器可通过将当前视频单元的光栅扫描索引乘以四来确定目标视频单元的光栅扫描索引。如果目标视频单元是当前视频单元的右上方基本视频单元,那么视频译码器可如下确定目标视频单元的光栅扫描索引:
当前视频单元的第一基本视频单元的索引+
(当前视频单元的以像素计的宽度-1)/基本视频单元的宽度
如果目标视频单元是当前视频单元的左下方基本视频单元,那么视频译码器可如下确定目标视频单元的光栅扫描索引:
当前视频单元的第一基本视频单元的索引+
(以像素计的LCU宽度/基本视频单元宽度)*
(以像素计的当前视频单元高度-1)/(基本视频单元宽度)
如果所关注相邻者是当前视频单元的左下方相邻者(308的“是”),那么视频译码器可基于目标视频单元的索引识别针对左下方相邻者的LUT中的条目(310)。图18是图解说明针对左下方相邻者的实例性LUT的概念图。如果所关注相邻者不是当前视频单元的左下方相邻者(308的“否”),但所关注相邻者是当前视频单元的左边相邻者(312的“是”),那么视频译码器可基于目标视频单元的索引识别针对左边相邻者的LUT中的条目(314)。图19是图解说明针对左边相邻者的实例性LUT的概念图。如果所关注相邻者不是当前视频单元的左边相邻者(312的“否”),但所关注相邻者是当前视频单元的左上方相邻者(316的“是”),那么视频译码器可基于目标视频单元的索引识别针对左上方相邻者的LUT中的条目(318)。图20是图解说明针对左上方相邻者的实例性LUT的概念图。
如果所关注相邻者不是当前视频单元的左上方相邻者(316的“否”),但所关注相邻者是当前视频单元的上方相邻者(320的“是”),那么视频译码器可基于目标视频单元的索引识别针对上方相邻者的LUT中的条目(322)。图21是图解说明针对上方相邻者的实例性LUT的概念图。如果所关注相邻者不是当前视频单元的上方相邻者(320的“否”),但所关注相邻者是当前视频单元的右上方相邻者(324的“是”),那么视频译码器可基于目标视频单元的索引识别针对右上方相邻者的LUT中的条目(326)。图22是图解说明针对右上方相邻者的实例性LUT的概念图。在识别LUT中的一者中的条目之后,视频译码器可使用所识别条目来确定所关注相邻者的可用性(328)。
视频译码器可通过识别LUT中具有对应于目标视频单元的位置的位置的条目来识别图18到22的LUT中的条目。举例来说,如果目标视频单元位于当前LCU的坐标(4,3)处,那么视频译码器可识别LUT中的一者的坐标(4,3)处的条目。
在图18到22中,LCU大小假定为32x32且基本视频单元大小假定为4x4。在具有不同大小LCU和/或基本视频单元的实例中,视频译码器可使用与图18到22中所示LUT不同的LUT。LCU可能仅需要每LCU大小产生一次。在图18到22中,每一格对应于对应LUT的一条目。如果条目含有数字“1”且视频译码器识别出条目,那么所关注相邻者可用。如果条目含有数字“0”且视频译码器识别出条目,那么所关注相邻者不可用。如果条目含有字母“A”且视频译码器识别出条目,那么在当前LCU上方的相邻LCU与当前LCU在同一切片中的情况下所关注相邻者可用。当前LCU是含有当前视频单元的LCU。如果条目含有字母“L”且视频译码器识别出条目,那么在当前LCU左边的相邻LCU与当前LCU在同一切片中的情况下所关注相邻者可用。如果条目含有字母“AL”且视频译码器识别出条目,那么在当前LCU左上方的相邻LCU与当前LCU在同一切片中的情况下所关注相邻者可用。如果条目含有字母“AR”且视频译码器识别出条目,那么在当前LCU右上方的相邻LCU与当前LCU在同一切片中的情况下所关注相邻者可用。
图23是图解说明用以确定当前视频单元的相邻者的可用性的另一实例性操作350的流程图。当前视频单元可为译码单元或变换单元。以下描述阐释视频译码器执行操作350。如上所述,视频译码器可为视频编码器,例如视频编码器20,或视频解码器,例如视频解码器30。
如本发明中别处所述,例如视频编码器20和视频解码器30等视频译码器可出于各种原因确定相邻视频单元是否可用。视频译码器可出于此些原因中的任一者而执行操作350。举例来说,如果视频译码器是视频编码器,那么视频译码器可在确定CU的PU的运动信息时执行操作350。在此实例中,视频译码器可确定相邻CU的可用性且基于可用相邻CU中的一者的PU的运动信息来用信号发送PU的运动信息。在另一实例中,如果视频译码器是视频解码器,那么视频译码器可在对CU执行帧内预测操作时执行操作350。在此实例中,视频译码器可确定相邻CU的可用性,且如果CU的帧内预测模式必须使用不可用CU的像素值,那么使用默认或合成像素值。
在视频译码器开始操作350之后,视频译码器可将当前LCU分割为一个或一个以上基本视频单元(352)。视频译码器可随后识别当前视频单元的目标视频单元(354)。视频译码器可以上文关于图16所述的方式分割当前LCU且识别目标视频单元。
在识别目标视频单元之后,视频译码器可确定目标视频单元的索引(356)。在一些实例中,视频译码器可以上文关于图16所述的方式确定目标视频单元的光栅扫描索引。在其它实例中,视频译码器可确定目标视频单元的z扫描索引。
在识别目标视频单元的索引之后,视频译码器基于目标视频单元的索引来识别LUT中的条目(358)。LUT可包含用于基本视频单元的光栅扫描索引的列、用于基本视频单元的z扫描索引的列、用于基本视频单元的左下方相邻者的可用性的列、用于基本视频单元的左边相邻者的可用性的列、用于基本视频单元的左上方相邻者的可用性的列、用于基本视频单元的上方相邻者的可用性的列,以及用于基本视频单元的右上方相邻者的可用性的列。
表2说明实例性LUT。
表2
视频译码器可针对不同大小的LCU和基本视频单元存储不同LUT。举例来说,视频译码器可在LCU为32x32且基本视频单元为4x4时使用表2的实例性LUT。在其它实例中,视频译码器可在LCU为64x64且基本视频单元为4x4时使用不同LUT。在又一实例中,视频译码器可在LCU为32x32且基本视频单元为8x8时使用又一LUT。
在表2的实例性LUT中,如果存在当前LCU上方的与当前LCU在同一切片中的LCU,那么值“bAboveLCU”评估为“真”,否则为“假”。如果存在当前LCU左上方的与当前LCU在同一切片中的LCU,那么值“bAboveLeftLCU”评估为“真”,否则为“假”。如果存在当前LCU右上方的与当前LCU在同一切片中的LCU,那么值“bAboveRightLCU”评估为“真”,否则为“假”。如果存在当前LCU左边的与当前LCU在同一切片中的LCU,那么值“bLeftLCU”评估为“真”,否则为“假”。视频译码器可基于相邻LCU和当前LCU的水平和垂直索引来确定相邻LCU是否与当前LCU在同一切片中。
在图23的实例中,如果所识别条目指示所关注相邻者可用(360的“是”),那么视频译码器可确定所关注相邻者可用(362)。如果所识别条目不指示所关注相邻者可用(360的“否”),那么视频译码器可确定所识别条目是否指示视频译码器检查左边LCU(364)。举例来说,视频译码器可确定所识别条目是否指示所关注相邻者的“bLeftLCU”。如果所识别条目指示视频译码器检查左边LCU(364的“是”),那么视频译码器可确定在左边相邻于当前LCU的LCU是否与当前LCU在同一切片中(366)。如果在左边相邻于当前LCU的LCU与当前LCU在同一切片中(366的“是”),那么视频译码器确定所关注相邻者可用(368)。否则,如果在左边相邻于当前LCU的LCU与当前LCU不在同一切片内(366的“否”),那么视频译码器可确定所关注相邻者不可用(370)。
如果所识别条目不指示视频译码器检查左边LCU(364的“否”),那么视频译码器可确定所识别条目是否指示视频译码器检查左上方LCU(372)。举例来说,视频译码器可确定所识别条目是否指示所关注相邻者的“bAboveLeftLCU”。如果所识别条目指示视频译码器检查左上方LCU(372的“是”),那么视频译码器可确定在当前LCU左上方的LCU是否与当前LCU在同一切片中(374)。如果在当前LCU左上方的LCU与当前LCU在同一切片中(374的“是”),那么视频译码器可确定所关注相邻者可用(376)。否则,如果在当前LCU左上方的LCU与当前LCU不在同一切片中(374的“否”),那么视频译码器可确定所关注相邻者不可用(370)。
如果所识别条目不指示视频译码器检查左上方LCU(372的“否”),那么视频译码器可确定所识别条目是否指示视频译码器检查右上方LCU(378)。举例来说,视频译码器可确定所识别条目是否指示所关注相邻者的“bAboveRightLCU”。如果所识别条目指示视频译码器检查右上方LCU(378的“是”),那么视频译码器可确定在当前LCU右上方的LCU是否与当前LCU在同一切片中(380)。如果在当前LCU右上方的LCU与当前LCU在同一切片中(380的“是”),那么视频译码器可确定所关注相邻者可用(382)。否则,如果所识别条目不指示视频译码器检查右上方LCU(378的“否”)或在当前LCU右上方的LCU与当前LCU不在同一切片内(380的“否”),那么视频译码器可确定所关注相邻者不可用(370)。
在一些实例中,图16和23中图解说明的实例性操作可通过以下逻辑的实施而优化。如果所关注相邻者是目标视频单元的上方相邻者且如果目标视频单元在当前LCU的顶部行上,那么在当前LCU上方的相邻LCU与当前LCU在同一切片内的情况下所关注相邻者可用。如果当前LCU上方的相邻LCU与当前LCU不在同一切片内,那么所关注相邻者不可用。如果目标视频单元不在当前LCU的顶部行上,那么所关注相邻者可用。
如果所关注相邻者是目标视频单元的左边相邻者且目标视频单元在当前LCU的左边列上,那么在当前LCU左边的相邻LCU与当前LCU在同一切片内的情况下所关注相邻者可用。如果当前LCU左边的相邻LCU与当前LCU不在同一切片内,那么所关注相邻者不可用。如果目标视频单元不在当前LCU的左边列中,那么所关注相邻者可用。
如果所关注相邻者是目标视频单元的左上方相邻者,目标视频单元包含当前LCU的左上方像素,且当前LCU左上方的LCU与当前LCU在同一切片内,那么所关注相邻者可用。否则,如果当前LCU左上方的LCU与当前LCU不在同一切片内,那么所关注相邻者不可用。如果目标视频单元在当前LCU的顶部行上(但不是LCU的左上方视频单元),那么在当前LCU上方的LCU与当前LCU在同一切片内的情况下所关注相邻者可用。如果目标视频单元在当前LCU的顶部行上,那么在当前LCU上方的LCU与当前LCU不在同一切片内的情况下所关注相邻者不可用。如果所关注相邻者在当前LCU的左边列中(但不是左上方),那么在当前LCU左边的LCU与当前LCU在同一切片内的情况下所关注相邻者可用。如果所关注相邻者在当前LCU的左边列中(但不是左上方),那么在当前LCU左边的LCU与当前LCU不在同一切片内的情况下所关注相邻者不可用。否则,所关注相邻者可用。
如果所关注相邻者是目标视频单元的左下方相邻者,且目标视频单元包含当前LCU的左下方像素,那么所关注相邻者不可用。如果目标视频单元在当前LCU的底部行上,但不包含当前LCU的左下方像素,那么所关注相邻者不可用。如果目标视频单元在当前LCU的左边列上(但不处于左下方),那么在当前LCU左边的LCU与当前LCU在同一切片内的情况下所关注相邻者可用。如果目标视频单元在当前LCU的左边列上(但不处于左下方),那么在当前LCU左边的LCU与当前LCU不在同一切片内的情况下所关注相邻者不可用。如上所述,视频译码器可根据z扫描次序对当前LCU内的视频单元进行译码。因此,视频译码器可在对具有较低z扫描索引的视频单元进行译码之后对具有较高z扫描索引的视频单元进行译码。因此,如果目标视频单元不在当前LCU的底部行或左边列上,那么在所关注相邻者的z扫描索引小于目标视频单元的z扫描索引的情况下所关注相邻者可用。如果所关注相邻者的z扫描索引不小于(即,大于)目标视频单元的z扫描索引,那么所关注相邻者不可用。
如果所关注相邻者是目标视频单元的右上方相邻者且目标视频单元在当前LCU的右上角中,那么在当前LCU右上方的LCU与当前LCU在同一切片内的情况下所关注相邻者可用。如果当前LCU右上方的LCU与当前LCU不在同一切片内,那么所关注相邻者不可用。如果目标视频单元在当前LCU的顶部行中(但不是当前LCU的右上方基本视频单元),那么在当前LCU上方的LCU与当前LCU在同一切片内的情况下所关注相邻者可用。如果目标视频单元在当前LCU的顶部行中(但不是当前LCU的右上方基本视频单元),那么在当前LCU上方的LCU与当前LCU不在同一切片内的情况下所关注相邻者不可用。如果目标视频单元在当前LCU的右边列中(但不是当前LCU的右上方基本视频单元),那么所关注相邻者不可用。否则,如果目标视频单元不在顶部行或右边列上,那么在所关注相邻者的z扫描索引小于目标视频单元的z扫描索引的情况下所关注相邻者可用。如果所关注相邻者的z扫描索引不小于目标视频单元的z扫描索引,那么所关注相邻者不可用。
应认识到,取决于实施例,本文描述的方法中的任一者的某些动作或事件可以不同顺序执行,可添加、合并或一起完全省去(例如,并非所有描述的动作或事件对于所述方法的实践都是必要的)。而且,在某些实施例中,动作或事件可例如通过多线程处理、中断处理或多个处理器而同时执行,而非循序地执行。
所属领域的技术人员将认识到,结合本文所揭示的方法、系统和设备描述的各种说明性逻辑块、模块、电路和算法步骤可实施为电子硬件、由处理器执行的计算机软件或所述两者的组合。为了清楚地说明硬件与软件的这种可交换性,上文已大体上在其功能性方面描述了各种说明性组件、块、模块、电路和步骤。将此类功能性实施为硬件还是软件取决于特定应用和对整个系统施加的设计约束。熟练的技术人员针对每一特定应用可以不同方式实施所描述的功能性,但不应将此类实施方案决策解释为造成与本发明的范围的脱离。
而且,本文所揭示的实施例可用经设计以执行本文描述的功能的例如通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或其它可编程逻辑装置、离散门或晶体管逻辑、离散硬件组件或其任何组合等电子装置或电路来实施或执行。通用处理器可为微处理器,但在替代例中,处理器可为任何常规的处理器、控制器、微控制器或状态机。处理器还可实施为计算装置的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或一个以上微处理器或任何其它此类配置。
结合本文所揭示的实施例描述的方法或算法的步骤可直接以硬件、以由处理器执行的软件模块或以所述两者的组合来实施。软件模块可驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可装卸式盘、CD-ROM或此项技术中已知的任何其它形式的存储媒体中。示范性存储媒体耦合到处理器,使得处理器可从存储媒体读取信息和向存储媒体写入信息。在替代方案中,存储媒体可与处理器成一体式。处理器和存储媒体可驻留在ASIC中。ASIC可驻留在用户终端中。在替代方案中,处理器和存储媒体可作为离散组件驻留在用户终端中。

Claims (33)

1.一种用于对视频数据进行译码的方法,所述方法包括:
基于相邻于当前视频单元的祖代视频单元的视频单元的可用性而识别查找表中的第一条目,相邻于所述祖代视频单元的视频单元包括所述祖代视频单元的左下相邻者、所述祖代视频单元的左相邻者、所述祖代视频单元的左上相邻者、所述祖代视频单元的上相邻者和所述祖代视频单元的右上相邻者,所述当前视频单元在所述视频数据的图片内,所识别的第一条目指示相邻于所述当前视频单元的母代视频单元的视频单元的可用性,相邻于所述母代视频单元的视频单元包括所述母代视频单元的左下相邻者、所述母代视频单元的左相邻者、所述母代视频单元的左上相邻者、所述母代视频单元的上相邻者和所述母代视频单元的右上相邻者,其中,所述祖代视频单元是所述当前视频单元的母代视频单元的母代视频单元,且所述当前视频单元的母代视频单元不是树块;
基于相邻于所述母代视频单元的视频单元的可用性来识别所述查找表中的不同的第二条目,所述第二条目指示相邻于所述当前视频单元的视频单元的可用性,相邻于所述当前视频单元的视频单元包括所述当前视频单元的左下相邻者、所述当前视频单元的左相邻者、所述当前视频单元的左上相邻者、所述当前视频单元的上相邻者和所述当前视频单元的右上相邻者;以及
基于确定相邻于所述当前视频单元的视频单元可用,使用与相邻于所述当前视频单元的视频单元相关联的数据对所述当前视频单元执行译码操作。
2.根据权利要求1所述的方法,其中对所述当前视频单元执行所述译码操作包括:
基于与相邻于所述当前视频单元的所述视频单元相关联的所述数据而选择上下文模型从而获得一选定的上下文模型;以及
基于所述选定的上下文模型而对与所述当前视频单元相关联的数据执行熵译码操作。
3.根据权利要求1所述的方法,其中所述当前视频单元为译码单元或变换单元。
4.根据权利要求1所述的方法,其进一步包括:
确定所述当前视频单元是否为树块;以及
在确定所述当前视频单元不是树块之后,确定相邻于所述当前视频单元的母代视频单元的视频单元的所述可用性。
5.根据权利要求4所述的方法,其进一步包括:
基于所述祖代视频单元是树块,基于所述图片内的所述祖代视频单元的位置确定相邻于所述祖代视频单元的视频单元的可用性。
6.根据权利要求4所述的方法,其中确定相邻于所述母代视频单元的所述视频单元的所述可用性包括递归地执行操作以确定相邻于所述当前视频单元的前代视频单元的所述视频单元的所述可用性。
7.根据权利要求4所述的方法,其中确定相邻于所述母代视频单元的所述视频单元的所述可用性包括执行非递归操作以确定相邻于所述当前视频单元的前代视频单元的所述视频单元的所述可用性。
8.根据权利要求1所述的方法,其中所识别的第二条目包括一系列值,所述一系列值中的每一个别值指示了相邻于所述当前视频单元的各视频单元的各自可用性。
9.根据权利要求1所述的方法,其中所述查找表包含用于相邻于所述当前视频单元的母代视频单元的视频单元的可用性的多种组合的条目。
10.根据权利要求9所述的方法,其中所述查找表包含用于所述当前视频单元的母代视频单元的其它子代视频单元的条目,用于所述其它子代视频单元的所述条目指示相邻于所述其它子代视频单元的视频单元的可用性。
11.根据权利要求1所述的方法,其中所述译码操作是编码操作的部分。
12.根据权利要求11所述的方法,
其中对所述当前视频单元执行所述译码操作包括基于相邻于所述当前视频单元的所述视频单元的一个或一个以上像素值产生所述当前视频单元的预测数据;且
其中所述方法进一步包括:
基于所述当前视频单元的所述预测数据产生所述当前视频单元的残余数据;
将一个或一个以上变换应用于所述残余数据以产生一个或一个以上变换系数块;以及
输出含有表示所述变换系数块的经编码数据的位流。
13.根据权利要求1所述的方法,其中所述译码操作是解码操作的部分。
14.根据权利要求13所述的方法,
其中对所述当前视频单元执行所述译码操作包括基于相邻于所述当前视频单元的所述视频单元的一个或一个以上像素值产生所述当前视频单元的预测数据;且
其中所述方法进一步包括:
对所述当前视频单元的残余数据进行解码;
基于所述当前视频单元的所述预测数据和所述当前视频单元的所述残余数据重构所述当前视频单元的像素值;以及
输出所述图片,所述图片包含所述当前视频单元的所述像素值。
15.一种视频译码设备,其包括一个或一个以上处理器,所述一个或一个以上处理器经配置以:
基于相邻于当前视频单元的祖代视频单元的视频单元的可用性而识别查找表中的第一条目,相邻于所述祖代视频单元的视频单元包括所述祖代视频单元的左下相邻者、所述祖代视频单元的左相邻者、所述祖代视频单元的左上相邻者、所述祖代视频单元的上相邻者和所述祖代视频单元的右上相邻者,所述当前视频单元在图片内,所识别的第一条目指示相邻于所述当前视频单元的母代视频单元的视频单元的可用性,相邻于所述母代视频单元的视频单元包括所述母代视频单元的左下相邻者、所述母代视频单元的左相邻者、所述母代视频单元的左上相邻者、所述母代视频单元的上相邻者和所述母代视频单元的右上相邻者,
其中,所述祖代视频单元是所述当前视频单元的母代视频单元的母代视频单元,
且所述当前视频单元的母代视频单元不是树块;
基于相邻于所述母代视频单元的视频单元的可用性来识别所述查找表中的不同的第二条目,所述第二条目指示相邻于所述当前视频单元的视频单元的可用性,相邻于所述当前视频单元的视频单元包括所述当前视频单元的左下相邻者、所述当前视频单元的左相邻者、所述当前视频单元的左上相邻者、所述当前视频单元的上相邻者和所述当前视频单元的右上相邻者;以及
基于确定相邻于所述当前视频单元的视频单元可用,使用与相邻于所述当前视频单元的视频单元相关联的数据对所述当前视频单元执行译码操作。
16.根据权利要求15所述的视频译码设备,其中所述一个或一个以上处理器经配置以:
基于与相邻于所述当前视频单元的所述视频单元相关联的所述数据而选择上下文模型从而获得一选定的上下文模型;以及
基于所述选定的上下文模型而对与所述当前视频单元相关联的数据执行熵译码操作。
17.根据权利要求15所述的视频译码设备,其中所述当前视频单元为译码视频单元或变换单元。
18.根据权利要求15所述的视频译码设备,其中所述一个或一个以上处理器经配置以:
确定所述当前视频单元是否为树块;以及
在确定所述当前视频单元不是树块之后,确定相邻于所述当前视频单元的母代视频单元的视频单元的可用性。
19.根据权利要求18所述的视频译码设备,其中所述一个或一个以上处理器经配置以:
基于所述祖代视频单元是树块,基于所述图片内的所述祖代视频单元的位置确定相邻于所述祖代视频单元的视频单元的可用性。
20.根据权利要求18所述的视频译码设备,其中所述一个或一个以上处理器经配置以递归地执行操作以确定相邻于所述当前视频单元的前代视频单元的视频单元的所述可用性。
21.根据权利要求18所述的视频译码设备,其中所述一个或一个以上处理器经配置以执行非递归操作以确定相邻于所述当前视频单元的前代视频单元的所述视频单元的所述可用性。
22.根据权利要求15所述的视频译码设备,其中所述第二条目包括一系列值,所述一系列值中的每一个别值指示了相邻于所述当前视频单元的各视频单元的各自可用性。
23.根据权利要求15所述的视频译码设备,其中所述查找表包含用于相邻于所述当前视频单元的母代视频单元的视频单元的可用性的多种组合的条目。
24.根据权利要求23所述的视频译码设备,其中所述查找表包含用于所述当前视频单元的母代视频单元的其它子代视频单元的条目,用于所述其它子代视频单元的所述条目指示相邻于所述其它子代视频单元的视频单元的可用性。
25.根据权利要求15所述的视频译码设备,其中所述译码操作是编码操作的部分。
26.根据权利要求25所述的视频译码设备,其中所述一个或一个以上处理器经配置以:
基于相邻于所述当前视频单元的所述视频单元的一个或一个以上像素值产生所述当前视频单元的预测数据;
基于所述当前视频单元的所述预测数据产生所述当前视频单元的残余数据;
将一个或一个以上变换应用于所述残余数据以产生一个或一个以上变换系数块;以及
输出含有表示所述变换系数块的经编码数据的位流。
27.根据权利要求15所述的视频译码设备,其中所述译码操作是解码操作的部分。
28.根据权利要求27所述的视频译码设备,其中所述一个或一个以上处理器经配置以:
基于相邻于所述当前视频单元的所述视频单元的一个或一个以上像素值产生所述当前视频单元的预测数据;
对所述当前视频单元的残余数据进行解码;
基于所述当前视频单元的所述预测数据和所述当前视频单元的所述残余数据重构所述当前视频单元的像素值;以及
输出所述图片,所述图片包含所述当前视频单元的所述像素值。
29.一种用于对视频数据进行译码的视频译码设备,所述视频译码设备包括:
用于基于相邻于当前视频单元的祖代视频单元的视频单元的可用性而识别查找表中的第一条目的装置,相邻于所述祖代视频单元的视频单元包括所述祖代视频单元的左下相邻者、所述祖代视频单元的左相邻者、所述祖代视频单元的左上相邻者、所述祖代视频单元的上相邻者和所述祖代视频单元的右上相邻者,
所述当前视频单元在所述视频数据的图片内,所识别的第一条目指示相邻于所述当前视频单元的母代视频单元的视频单元的可用性,相邻于所述母代视频单元的视频单元包括所述母代视频单元的左下相邻者、所述母代视频单元的左相邻者、所述母代视频单元的左上相邻者、所述母代视频单元的上相邻者和所述母代视频单元的右上相邻者,其中,所述祖代视频单元是所述当前视频单元的母代视频单元的母代视频单元,且所述当前视频单元的母代视频单元不是树块;
用于基于相邻于所述母代视频单元的视频单元的可用性来识别所述查找表中的不同的第二条目的装置,所述第二条目指示相邻于所述当前视频单元的视频单元的可用性,相邻于所述当前视频单元的视频单元包括所述当前视频单元的左下相邻者、所述当前视频单元的左相邻者、所述当前视频单元的左上相邻者、所述当前视频单元的上相邻者和所述当前视频单元的右上相邻者;以及
用于基于确定相邻于所述当前视频单元的视频单元可用使用与相邻于所述当前视频单元的视频单元相关联的数据对所述当前视频单元执行译码操作的装置。
30.根据权利要求29所述的视频译码设备,其进一步包括:
用于确定所述当前视频单元是否为树块的装置;以及
用于在所述当前视频单元不是树块的情况下递归地执行操作以确定相邻于所述当前视频单元的前代视频单元的视频单元的所述可用性的装置。
31.根据权利要求29所述的视频译码设备,其中所识别的第二条目包括一系列值,所述一系列值中的每一个别值指示相邻于所述当前视频单元的各视频单元的各自可用性。
32.根据权利要求29所述的视频译码设备,其中所述译码操作是编码操作的部分。
33.根据权利要求29所述的视频译码设备,其中所述译码操作是解码操作的部分。
CN201280050981.XA 2011-10-18 2012-09-14 检测用于视频译码的相邻视频单元的可用性 Expired - Fee Related CN103891281B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161548630P 2011-10-18 2011-10-18
US61/548,630 2011-10-18
US13/418,107 2012-03-12
US13/418,107 US9838692B2 (en) 2011-10-18 2012-03-12 Detecting availabilities of neighboring video units for video coding
PCT/US2012/055462 WO2013058910A1 (en) 2011-10-18 2012-09-14 Detecting availabilities of neighboring video units for video coding

Publications (2)

Publication Number Publication Date
CN103891281A CN103891281A (zh) 2014-06-25
CN103891281B true CN103891281B (zh) 2018-07-27

Family

ID=48085988

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280050981.XA Expired - Fee Related CN103891281B (zh) 2011-10-18 2012-09-14 检测用于视频译码的相邻视频单元的可用性

Country Status (7)

Country Link
US (1) US9838692B2 (zh)
EP (2) EP2769546A1 (zh)
JP (1) JP6022586B2 (zh)
KR (1) KR101647904B1 (zh)
CN (1) CN103891281B (zh)
IN (1) IN2014CN02627A (zh)
WO (1) WO2013058910A1 (zh)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102351132B1 (ko) * 2012-06-26 2022-01-13 엘지전자 주식회사 비디오 인코딩 방법, 비디오 디코딩 방법 및 이를 이용하는 장치
US10075728B2 (en) * 2012-10-01 2018-09-11 Inria Institut National De Recherche En Informatique Et En Automatique Method and device for motion information prediction refinement
US10564949B2 (en) * 2013-09-20 2020-02-18 Reservoir Labs, Inc. System and method for generation of event driven, tuple-space based programs
US11789769B2 (en) 2013-09-20 2023-10-17 Qualcomm Incorporated System and method for generation of event driven, tuple-space based programs
WO2015057947A1 (en) * 2013-10-17 2015-04-23 Huawei Technologies Co., Ltd. Improved reference pixel selection and filtering for intra coding of depth map
KR102319384B1 (ko) * 2014-03-31 2021-10-29 인텔렉추얼디스커버리 주식회사 템플릿 매칭 기반의 화면 내 픽쳐 부호화 및 복호화 방법 및 장치
CN103929642B (zh) * 2014-04-24 2017-04-12 北京航空航天大学 一种hevc变换系数的熵编码上下文模型偏移值快速计算方法
US10715833B2 (en) * 2014-05-28 2020-07-14 Apple Inc. Adaptive syntax grouping and compression in video data using a default value and an exception value
CN104363459A (zh) * 2014-10-29 2015-02-18 复旦大学 一种适用于hevc标准中帧内预测的参考像素的硬件填充方法
JP6485045B2 (ja) * 2015-01-06 2019-03-20 沖電気工業株式会社 インデックス演算装置、プログラム及び方法
CN104869457B (zh) * 2015-05-21 2019-04-26 京东方科技集团股份有限公司 显示器、显示装置、播放器、播放装置及播放显示系统
EP3414902A1 (en) * 2016-02-12 2018-12-19 Thomson Licensing A method and device for intra-predictive encoding/decoding a coding unit comprising picture data, said intra-predictive encoding depending on a prediction tree and a transform tree
US20210281873A1 (en) * 2016-09-06 2021-09-09 Mediatek Inc. Methods and apparatuses of candidate set determination for binary-tree splitting blocks
US10841575B2 (en) * 2018-04-15 2020-11-17 Arris Enterprises Llc Unequal weight planar motion vector derivation
TWI735900B (zh) * 2018-06-29 2021-08-11 大陸商北京字節跳動網絡技術有限公司 一種視頻處理方法和裝置
CN114845108A (zh) 2018-06-29 2022-08-02 抖音视界(北京)有限公司 查找表的更新:fifo、约束的fifo
KR20210024502A (ko) 2018-06-29 2021-03-05 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Hmvp 후보를 병합/amvp에 추가할 때의 부분/풀 프루닝
CN110662059B (zh) 2018-06-29 2021-04-20 北京字节跳动网络技术有限公司 使用查找表存储先前编码的运动信息并用其编码后续块的方法和装置
KR102646649B1 (ko) 2018-06-29 2024-03-13 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 Lut에서의 모션 후보들의 검사 순서
CN115134599A (zh) 2018-06-29 2022-09-30 抖音视界有限公司 更新查找表(lut)的条件
WO2020003284A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Interaction between lut and amvp
WO2020003261A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Selection from multiple luts
WO2020003270A1 (en) 2018-06-29 2020-01-02 Beijing Bytedance Network Technology Co., Ltd. Number of motion candidates in a look up table to be checked according to mode
JP7181395B2 (ja) 2018-07-02 2022-11-30 北京字節跳動網絡技術有限公司 イントラ予測モードを有するルックアップテーブルおよび非隣接ブロックからのイントラモード予測
CN112040247B (zh) * 2018-09-10 2021-09-21 华为技术有限公司 视频解码方法、视频解码器以及计算机可读存储介质
TWI820211B (zh) 2018-09-12 2023-11-01 大陸商北京字節跳動網絡技術有限公司 取決於總數減去k的開始檢查hmvp候選的條件
US10848782B2 (en) 2018-09-21 2020-11-24 Tencent America LLC Method and apparatus for video coding
WO2020143741A1 (en) 2019-01-10 2020-07-16 Beijing Bytedance Network Technology Co., Ltd. Invoke of lut updating
CN113383554B (zh) 2019-01-13 2022-12-16 北京字节跳动网络技术有限公司 LUT和共享Merge列表之间的交互
WO2020147772A1 (en) 2019-01-16 2020-07-23 Beijing Bytedance Network Technology Co., Ltd. Motion candidates derivation
SG11202109622QA (en) * 2019-03-09 2021-10-28 Tencent America LLC Method and apparatus for video coding
WO2020192611A1 (en) 2019-03-22 2020-10-01 Beijing Bytedance Network Technology Co., Ltd. Interaction between merge list construction and other tools
WO2022213988A1 (en) * 2021-04-05 2022-10-13 Beijing Bytedance Network Technology Co., Ltd. Duplicate partitioning prevention

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605255A (zh) * 2008-06-12 2009-12-16 华为技术有限公司 一种视频编解码的方法及装置

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05274841A (ja) 1992-03-26 1993-10-22 Sony Corp 情報記録装置
WO2006078454A1 (en) 2005-01-14 2006-07-27 Thomson Licensing Method and apparatus for intra prediction for rru
KR101380580B1 (ko) * 2006-08-02 2014-04-02 톰슨 라이센싱 비디오 인코딩을 위한 적응형 기하학적 파티셔닝 방법 및 장치
US8233537B2 (en) 2007-03-19 2012-07-31 Texas Instruments Incorporated Efficient implementation of H.264 4 by 4 intra prediction on a VLIW processor
CN101641954B (zh) 2007-03-23 2011-09-14 Lg电子株式会社 用于解码/编码视频信号的方法和装置
US8045489B2 (en) * 2007-03-30 2011-10-25 Cisco Technology, Inc. Method and system for the automatic configuration of conference resources
US8254455B2 (en) 2007-06-30 2012-08-28 Microsoft Corporation Computing collocated macroblock information for direct mode macroblocks
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8265144B2 (en) 2007-06-30 2012-09-11 Microsoft Corporation Innovations in video decoder implementations
US8634457B2 (en) 2008-09-26 2014-01-21 Qualcomm Incorporated Determining availability of video data units
KR101456498B1 (ko) 2009-08-14 2014-10-31 삼성전자주식회사 계층적 부호화 단위의 스캔 순서를 고려한 비디오 부호화 방법 및 장치, 비디오 복호화 방법 및 장치
US20120039383A1 (en) * 2010-08-12 2012-02-16 Mediatek Inc. Coding unit synchronous adaptive loop filter flags

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101605255A (zh) * 2008-06-12 2009-12-16 华为技术有限公司 一种视频编解码的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
BBC’s Response to the Call for Proposals on Video Compression Technology;Thomas Davies;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 1st Meeting:Dresden,DE,15-23,April,2010》;20100423;全文 *
CE9: Motion Vector Coding Test Report by Fraunhofer HHI;B. Bross;《Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 4th Meeting:Daegu,KR,20-28,January,2011》;20110228;全文 *

Also Published As

Publication number Publication date
CN103891281A (zh) 2014-06-25
KR20140085510A (ko) 2014-07-07
EP3396956A1 (en) 2018-10-31
WO2013058910A1 (en) 2013-04-25
IN2014CN02627A (zh) 2015-06-26
JP6022586B2 (ja) 2016-11-09
US9838692B2 (en) 2017-12-05
KR101647904B1 (ko) 2016-08-11
JP2014532384A (ja) 2014-12-04
US20130094580A1 (en) 2013-04-18
EP2769546A1 (en) 2014-08-27

Similar Documents

Publication Publication Date Title
CN103891281B (zh) 检测用于视频译码的相邻视频单元的可用性
CN104704833B (zh) 多视图或3维视频译码中的高级视图间残差预测
CN104838658B (zh) 具有不对称空间分辨率的纹理和深度视图分量当中的内部视图运动预测
KR101617968B1 (ko) 비디오 코딩에서 최종 유의 변환 계수의 스캔 순서의 위치 도출
TWI499285B (zh) 判定視訊寫碼之解塊濾波之邊界強度值
CN103975597B (zh) 纹理及深度视图分量当中的内部视图运动预测
CN104221380B (zh) 用于并行运动估计的共同空间候选块
CN106664428B (zh) 用于调色板模式译码的方法和设备
CN110100436A (zh) 使用导出色度模式译码视频数据
CN104685875B (zh) 用于视频译码的方法、设备、计算机可读存储媒体
RU2584498C2 (ru) Видеокодирование интра-режима
CN104137542B (zh) 在视频译码过程中对与残余视频数据相关联的变换系数进行译码的方法、设备以及计算机可读介质
JP2019515580A (ja) イントラ予測モードのネイバーベースのシグナリング
CN110100439A (zh) 用于视频译码的帧内预测技术
CN109716774A (zh) 用于视频译码的可变数目的帧内模式
CN108028932A (zh) 用于视频译码的调色板预测初始化及合并
CN108464001A (zh) 用于视频译码的多类型树框架
US11330297B2 (en) Methods incorporating extensions to copy-above mode for palette mode coding
EP3764644A1 (en) Intra-frame mode prediction method and apparatus for image block
CN103141100A (zh) 用于视频译码的帧内平滑滤波器
EP4002847B1 (en) Method and device for processing video signal
TW201352004A (zh) 轉換係數寫碼
CN103202016A (zh) 用于视频译码的自适应运动向量分辨率信令
CN107257476A (zh) 帧间预测方法及其装置
CN107211160A (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: 20180727

Termination date: 20190914

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