CN112313953A - 用于视频编解码和处理的去方块滤波器 - Google Patents

用于视频编解码和处理的去方块滤波器 Download PDF

Info

Publication number
CN112313953A
CN112313953A CN201980024417.2A CN201980024417A CN112313953A CN 112313953 A CN112313953 A CN 112313953A CN 201980024417 A CN201980024417 A CN 201980024417A CN 112313953 A CN112313953 A CN 112313953A
Authority
CN
China
Prior art keywords
block
activity
filter
pixels
video
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
CN201980024417.2A
Other languages
English (en)
Other versions
CN112313953B (zh
Inventor
J.董
Y-H.赵
W-J.钱
M.卡尔切维茨
L.张
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 CN112313953A publication Critical patent/CN112313953A/zh
Application granted granted Critical
Publication of CN112313953B publication Critical patent/CN112313953B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • 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/117Filters, e.g. for pre-processing or post-processing
    • 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/124Quantisation
    • 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
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/174Methods 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 slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding

Abstract

去方块是视频编解码中用于移除可能由于将视频帧分成块并基于该块对视频帧进行编码而引起的失真的步骤。本文所描述的技术可以包括确定沿该块的边界的临近块的活动性,其中活动性测量边界区域中的像素的平滑度或复杂度。然后可以确定活动性的平均值,以及左侧块与右侧块之间的活动性差异。然后平均活动性和活动性差异可以用于确定边界区域的分类。该分类可进一步用于选择应用于该边界区域中的像素的滤波器。一旦滤波器已经被应用,就可以将块添加到重构的视频帧。

Description

用于视频编解码和处理的去方块滤波器
技术领域
本申请涉及对由于压缩、模糊等而失真的视频帧执行的滤波处理,以改善客观和/或主观质量。本文描述的技术及系统可应用于现有的视频编解码器(例如,高级视频编解码(code)(Advanced Video Coding,AVC)、高效视频编解码(High Efficiency VideoCoding,HEVC)或任何其他合适的视频编解码器)中的任何一个,或者可以被提议作为未来视频编解码标准的编解码工具。本文描述的技术及系统也可以用作对从标准或专有编解码器输出的视频帧的后处理方法。
背景技术
视频编解码标准包括ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual以及ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包括其可缩放视频编解码(Scalable Video Coding,SVC)及多视图视频编解码(Multi-view Video Coding,MVC)扩展。
另外,最近已由ITU-T视频编解码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图片专家组(Motion Picture Experts Group,MPEG)的视频编解码联合协作组(Joint Collaboration Team on Video Coding on Video Coding,JCT-VC)以及3D视频编解码扩展开发联合协作组(Joint Collaboration Team on 3D Video CodingExtension Development,JCT-3V)开发了新的视频编解码标准,即高效视频编解码(HEVC)或ITU-T H.265,包括其范围及屏幕内容编解码扩展、3D视频编解码(3D-HEVC)与多视图扩展(MV-HEVC)以及可缩放扩展(SHVC)。
在2016年,MPEG及ITU-T VCEG形成联合探索视频组(JVET),以探索用于下代视频编解码标准的新编解码工具。参考软件被称为JEM(联合探索模型)。
发明内容
在各种实施方式中,提供用于在视频编解码处理中去方块的系统、方法和计算机可读介质。本文描述的技术可以包括确定沿块的边界的临近块的活动性,其中活动性测量边界区域中的像素的平滑度或复杂度。然后可以确定活动性的平均值,以及左侧块与右侧块之间的活动性差异。然后,平均活动性和活动性差异可以用来确定边界区域的分类。该分类可以进一步用于选择滤波器以应用于边界区域中的像素。一旦滤波器被应用,就可以将块添加到重构的视频帧。
附图说明
下面参考以下附图详细描述说明性示例:
图1是示出包括编码(encode)设备和解码(decode)设备的系统的示例的框图;
图2包括可以作为编码的视频帧的部分的块的组的图;
图3包括示出沿左侧块与右侧块之间的边界的段的像素或样点的示例的图;
图4包括示出沿段的四条样点线(在此示例中)中的一条像素或样点线的图;
图5包括示出可以用于计算沿段的局部(local)活动性的样点的图;
图6包括示出平均活动性和活动性差异的可能的组合的图;
图7包括示出量化后的平均活动性和量化后的活动性差异的可能的组合的图;
图8包括示出可以用于滤波处理的附加样点的图;
图9包括示出可能合并的类别的图;
图10包括示出可能合并的类别的图;
图11包括示出用于编解码视频数据的示例处理的流程图;
图12是示出示例编码设备的框图;
图13是示出示例解码设备的框图;
图14示出大小为16的FilterSetBS2的示例;
图15示出大小为8的FilterSetBS2的示例;
图16示出大小为4的FilterSetBS2的示例;
图17示出大小为16的FilterSetBS1的示例;以及
图18示出FilterSetBSl的整数表示的示例。
具体实施方式
下文提供本发明的某些方面及实施例。这些方面和实施例中的一些可以独立地应用并且其中的一些可以以将对本领域技术人员显而易见的组合来应用。在以下描述中,为解释的目的,阐述众多具体细节以便提供对本申请的实施例的透彻理解。然而,明显的是,各种实施例可以在没有这些具体细节的情况下被实践。附图和描述不旨在限定性的。
随后的描述仅提供示例性实施例并且不旨在限制本发明的范围、可应用性或配置。相反,随后对示例性实施例的描述将为本领域技术人员提供能够实施示例性实施例的描述。应当理解,可以在不脱离如所附权利要求中所阐述的本申请的精神和范围的情况下对元件的功能和配置做出各种改变。
在以下描述中给出具体细节以提供对实施例的透彻理解。然而,本领域普通技术人员应当理解,实施例可以在没有这些具体细节的情况下实践。例如,电路、系统、网络、处理和其他组件可以示出为框图中的组件,以便在不必要的细节下不与实施例混淆。在其他情况下,熟知的电路、处理、算法、结构和技术可以在无不必要细节的情况下被示出,以免混淆实施例。
此外,应注意,个别实施例可以描述为被描绘为流程图、流图、数据流图、结构图或框图的处理。尽管流程图可能将操作描述为顺序处理,但许多操作可以并行地或同时执行。另外,可以再配置操作的次序。处理在其操作完成时终止,但可以具有不被包括在图中的附加步骤。处理可以对应于方法、函数、程序、子例程、子程序等。当处理对应于函数时,其终止可以对应于函数的返回至调用函数或主函数。
术语“计算机可读介质”包括但不限于便携式或非便携式存储设备、光学储存设备、和能够储存、包含或承载指令和/或数据的各种其他介质。计算机可以读介质可以包括非暂时性介质,其中可以存储数据并且不包括载波和/或无线地或通过有线连接传播的暂时性电子信号。非暂时性介质的示例可以包括但不限于磁盘或磁带、诸如紧凑型光盘(CD)或数字通用光盘(DVD)的光学储存介质、闪存、内存或内存设备。计算机可以读介质可以具有存储在其上的代码和/或机器可执行指令,该代码和/或机器可以执行指令可以表示程序、函数、子程序、程序、例程、子例程、模块、软件套件、类别,或指令、数据结构或程序语句的任何组合。代码段可以通过传递和/或接收信息、数据、自变量、参数或存储内容而被耦合到另一代码段或硬件电路。信息、自变量、参数、数据等可以经由包括存储器共享、消息传递、令牌传递、网络传输等任何合适的方式来传递、转发或传输。
此外,可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实施实施例。当以软件、固件、中间件或微代码实施时,用于执行必要任务的程序代码或代码段(例如,计算机程序产品)可以存储于计算机可以读或机器可以读介质中。处理器可以执行必要的任务。
去方块是视频编解码中用于移除可能由将视频帧分成块而引起的失真以及基于该块对视频帧编码的步骤。去方块滤波器可以使块的边缘平滑,由此改善重构的视频帧的外观。本文中,编解码是指编码或解码,或这两者。
诸如高效视频编解码(HEVC或H.265)的一些视频编解码器使用旨在发现计算复杂度与编解码效率之间的平衡的去方块方案。减小计算复杂度使得视频能够在指定时间量内在可用计算硬件上被编码或被解码。增加编解码效率会减少压缩的视频数据的大小。然而,减小计算复杂度的需求可能会导致过度简化并形成不太好的编解码效率的去方块方案。例如,一些去方块方案考虑两个块之间的局部活动性的平均值,但却将两个块视为相同,没有考虑两个块中的活动性差异。作为另一示例,即使在平滑器滤波更适当时,一些去方块方案也仅仅执行粗略的滤波。
计算机硬件的改善可以实现当选择及应用滤波器来去方块时将更大数量的因子考虑在内的去方块技术。这些技术可以利用计算资源执行更复杂的处理,这可以得到更好的编解码效率和/或这可以改善重构的视频帧的外观。例如,这些技术可以包括确定沿块的边界的临近块的活动性,其中活动性测量边界区域中的像素的平滑度或复杂度。然后可以确定活动性的平均值,以及左侧块与右侧块之间的活动性差异。然后平均活动性和活动性差异可以用来确定边界区域的分类。该分类可以进一步用于选择滤波器以应用于边界区域中的像素。一旦该滤波器被应用,就可以将块添加到重构的视频帧。
随着更多设备及系统为消费者提供消耗数字视频数据的能力,对有效视频编解码技术的需要变得更加重要。需要视频编解码来减少处理存在于数字视频数据中的大量数据所必要的存储和传输要求。各种视频编解码技术可以用于将视频数据压缩成使用更低比特率同时维持高视频质量的形式。
图1是示出包括编码设备104及解码设备112的系统100的示例的框图。编码设备104可以是源设备的一部分,解码设备112可以是接收设备的一部分。源设备和/或接收设备可以包括电子设备,诸如移动或静止的电话手机(例如,智能电话、蜂巢式电话等)、桌上型计算机、膝上型计算机或笔记本电脑、平板计算机、机顶盒、电视机、相机、显示设备、数字介质播放器、视频游戏控制面板、视频流式传输设备、或任何其他合适的电子设备。在一些示例中,源设备和接收设备可以包括用于无线通信的或多个无线收发器。本文描述的编解码技术适用于各种多介质应用中的视频编解码,包括流式视频传输(例如,通过互联网)、电视广播或传输、对数字视频编码以存储于数据存储介质上、对存储于数据存储介质上的数字视频解码、或其他应用。在一些示例中,系统100可以支持单向或双向视频传输,以支持诸如视频会议、视频流式传输、视频回放、视频广播、游戏、和/或视频电话的应用。
编码设备104(或编码器)可以用于使用视频编解码标准或协议对视频数据进行编码以生成编码的视频比特流。视频编解码标准包括ITU-TH.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual及ITU-TH.264(也称为ISO/IEC MPEG-4 AVC)(包括其可缩放视频编解码(SVC)及多视图视频编解码(MVC)扩展)以及高效视频编解码(HEVC)或ITU-T H.265。存在对HEVC的各种扩展,处理多层视频编解码,包括对HEVC的多视图扩展(称为MVHEVC)和对HEVC的可缩放扩展(称为SHVC),或任何其他合适的编解码协议。此外,存在用于屏幕内容材料(诸如文本和运动的图形)的编解码工具,以及改善屏幕内容的编解码效率的技术。正在开发H.265/HEVC屏幕内容编解码(SCC)扩展以涵盖这些新的编解码工具。在2016年,MPEG和ITU-TVCEG形成了联合探索视频组(JVET),以探索用于下一代视频编解码标准的新的编解码工具。参考软件被称为JEM(联合探索模型)。
本文描述的许多实施例使用HEVC标准或其扩展来描述示例。然而,本文描述的技术及系统也可以适用于诸如AVC、MPEG、其扩展的其他编解码标准、或当前存在或未来的编解码标准的其他合适的编解码标准。因此,虽然可以参考特定视频编解码标准来描述本文描述的技术和系统,但本领域技术人员将理解,描述不应被解释为仅应用于特定标准。
视频源102可以将视频数据提供给编码设备104。视频源102可以是源设备的一部分,或可以是除了源设备以外的设备的一部分。视频源102可以包括视频捕获设备(例如,摄像机、相机电话、视频电话等)、包含被存储的视频的视频档案、提供视频数据的视频服务器或内容提供商、从视频服务器或内容提供商接收视频的视频馈送接口、用于生成计算机图形视频数据的计算机图形系统、这些源的组合、或任何其他合适的视频源。
来自视频源102的视频数据可以包括一个或多个输入图片或帧。图片或帧是作为视频的一部分的静态图像。编码设备104的编码器引擎106(或编码器)对视频数据进行编码以生成编码的视频比特流。在一些示例中,编码的视频比特流(或“比特流”)是一系列或多个编码的视频序列。编码的视频序列(Coded Video Sequence,CVS)包括一系列的接入单元(Access Unit,AU),其从具有在基础层中且具有某些属性的随机接入点图片的AU开始,直到不包括具有在基础层中且具有某些属性的随机接入点图片的下一个AU。例如,开始CVS的随机接入点图片的某些属性可以包括等于1的RASL(随机接入跳过引导图片)标志(例如NoRaslOutputFlag)。否则,随机接入点图片(具有等于0的RASL标志)不能开始CVS。接入单元(AU)包括或一个或多个编码的图片(coded picture)和与共享相同输出时间的编码的图片相对应的控制信息。例如,HEVC比特流可以包括一个或多个CVS,CVS包括被称为网络抽象层(Network Abstraction Layer,NAL)单元的数据单元。两种类别的NAL单元存在于HEVC标准中,包括视频编码层(Video Coding Layer,VCL)NAL单元和非VCL NAL单元。VCL NAL单元包括编码的图片数据的一个条带或条带段(如下描述),非VCL NAL单元包括关于一个或多个编码的图片的控制信息。HEVC AU包括VCL NAL单元和非VCL NAL单元,VCL NAL单元包含编码的图片数据,非VCL NAL单元(如果有的话)对应于编码的图片数据。
NAL单元可以包含形成视频数据的编码表示(coded representation)(例如编码的视频比特流、比特流的CVS等)的比特序列,诸如视频中的图片的编码表示。编码器引擎106通过将每个图片分割成多个条带而生成图片的编码表示。条带独立于其他条带,使得条带中的信息在不依赖于来自同一图片内的其他条带的数据的情况下被编解码。条带包括一个或多个条带段,条带段包括独立条带段和(如果有的话)取决于先前条带段的一个或多个相关条带段。然后条带被分割成亮度样点和色度样点的编码树块(Coding Tree Block,CTB)。亮度样点的CTB和色度样点的一个或多个CTB连同样点的语法被称为编码树单元(Coding Tree Unit,CTU)。CTU是HEVC编码的基本处理单元。CTU可以被划分成具有不同大小的多个编码单元(Coding Unit,CU)。CU包含被称为编码块(Coding Block,CB)的亮度和色度样点阵列。
亮度和色度CB可以进一步被划分成预测块(Prediction Block,PB)。PB是使用用于帧间预测的相同运动参数的亮度或色度分量的样点的块。亮度PB和一个或多个色度PB连同相关联的语法形成预测单元(Prediction Unit,PU)。在比特流中针对每个PU信令通知运动参数集,且该运动参数集用于亮度PB和一个或多个色度PB的帧间预测。CB也可以被分割成一个或多个变换块(Transform Block,TB)。TB表示颜色分量的样点的正方形块,对该正方形块应用相同二维变换以对预测残差信号进行编码(code)。变换单元(Transform Unit,TU)表示亮度和色度样点的TB以及对应的语法元素。
CU的大小对应于编码节点(coding node)的大小,且为正方形形状。例如,CU的大小可以为8×8样点、16×16样点、32×32样点、64×64样点或直到对应CTU的大小的任何其他适当的大小。本文中使用的表达“NxN”指的是视频块就垂直尺寸和水平尺寸而言的像素尺寸(例如8像素×8像素)。可以按行和列来排列块中的像素。在一些实施例中,块在水平方向上可以具有与在垂直方向上不同数量的像素。与CU相关联的语法数据可以描述例如将CU分割成一个或多个PU。分割模式在CU被帧内预测模式编码或被帧间预测模式编码之间可以不同。PU可以被分割成非正方形形状。与CU相关联的语法数据也可以描述例如根据CTU将CU分割成一个或多个TU。TU可以是正方形或非正方形形状。
根据HEVC标准,可以使用变换单元(TU)来执行变换。TU可以针对不同CU而变化。可以基于给定CU内的PU的大小来设置TU的大小。TU可以与PU大小相同或小于PU。在一些示例中,可以使用被称为残差四叉树(RQT)的四叉树结构将对应于CU的残差样点再分成更小的单元。RQT的叶节点可以对应于TU。可以变换与TU相关联的像素差值以产生变换系数。然后变换系数可以由编码器引擎106量化。
一旦视频数据的图片被分割成CU,编码器引擎106就使用预测模式来预测每个PU。然后从原始视频数据中减去预测以得到残差(下文描述)。对于每个CU,可以使用语法数据在比特流内部信令通知预测模式。预测模式可以包括帧内预测(或图片内预测)或帧间预测(或图片间预测)。使用帧内预测时,使用例如直流(DC)预测来发现PU的平均值、使用平坦预测使平坦表面拟合于PU、使用方向预测来从临近数据外插、或使用任何其他合适类型的预测,以从同一图片中的临近图像数据预测每个PU。使用帧间预测时,使用运动补偿预测来从一个或多个参考图片(按输出次序在当前图片之前或之后)中的图像数据预测每个PU。可以(例如)在CU级别决定使用图片间预测还是图片内预测来对图片区域进行编码(code)。
在一些示例中,可以执行使用单向预测的帧间预测,在此情况下每个预测块可以使用一个运动补偿的预测信号,且生成P预测单元。在一些示例中,可以执行使用双向预测的帧间预测,在此情况下每个预测块使用两个运动补偿的预测信号,且生成B预测单元。
PU可以包括与预测处理相关的数据。例如,当使用帧内预测对PU编码时,PU可以包括描述用于PU的帧内预测模式的数据。作为另一示例,当使用帧间预测对PU编码时,PU可以包括定义用于PU的运动矢量的数据。定义用于PU的运动矢量的数据可以描述,例如,运动矢量的水平分量、运动矢量的垂直分量、运动矢量的分辨率(例如四分之一(one-quarter)像素精度或八分之一像素精度)、运动矢量指向的参考图片、和/或运动矢量的参考图片列表(例如,列表0、列表l或列表C)。
编码器104然后可以执行变换和量化。例如,在预测之后,编码器引擎106可以计算对应于PU的残差值。残差值可以包含像素差值。在预测执行之后可能剩余的任何残差数据使用块变换进行变换,该块变换可以基于离散余弦变换、离散正弦变换、整数变换、小波变换或其他合适的变换函数。在一些情况下,一个或多个块变换(例如,大小为32×32、16×16、8×8、4×4等)可以应用于每个CU中的残差数据。在一些实施例中,TU可以用于由编码器引擎106实施的变换及量化处理。给定的具有一个或多个PU的CU也可以包括一个或多个TU。如下文进一步详细描述地,可以使用块变换将残差值变换成变换系数,然后可以使用TU来量化及扫描残差值以产生用于熵编码的串行化变换系数。
在一些实施例中,在使用CU的PU进行帧内预测编码(intra-prediction coding)或帧间预测编码(inter-prediction coding)之后,编码器引擎106可以计算CU的TU的残差数据。PU可以包含空域(或像素域)中的像素数据。在应用块变换之后,TU可以包含变换域中的系数。如先前所提及的,残差数据可以对应于未编码图片的像素和对应于PU的预测值之间的像素差值。编码器引擎106可以形成包括CU的残差数据的TU,并且然后可以变换TU以产生CU的变换系数。
编码器引擎106可以执行变换系数的量化。量化通过量化变换系数以减少用于表示系数的数据量而提供进一步的压缩。例如,量化可以减少与系数中的一些或全部相关联的比特深度。在一个示例中,具有n比特值的系数可以在量化期间向下舍入到m比特,其中n大于m。
一旦量化被执行,编码的比特流(coded bitstream)就包括量化后的变换系数、预测信息(例如预测模式、运动矢量等)、分割信息、以及任何其他合适的数据,诸如其他语法数据。然后可以由编码器引擎106对编码的比特流的不同元素进行熵编码。在一些示例中,编码器引擎106可以利用预定义扫描次序扫描量化后的变换系数以产生可以被熵编码的串行化矢量。在一些示例中,编码器引擎106可以执行自适应扫描。在扫描量化后的变换系数以形成一维矢量之后,编码器引擎106可以对该一维矢量熵编码。例如,编码器引擎106可以使用上下文自适应性可变长度编码、上下文自适应二进制算术编码、基于语法的上下文自适应性二进制算术编码、概率区间分割熵编码或另外合适的熵编码技术。
如先前所描述的,HEVC比特流包括NAL单元的组。形成编码的视频比特流(codedvideo bitstream)的比特序列存在于VCL NAL单元中。除了其他信息以外,非VCL NAL单元也可以包含具有与编码的视频比特流相关的高级别信息的参数集。例如,参数集可以包括视频参数集(Video Parameter Set,VPS)、序列参数集(Sequence Parameter Set,SPS)和图片参数集(Picture Parameter Set,PPS)。参数集的目标为比特率效率、误差恢复、以及提供系统层接口。每个条带参考单个活动的PPS、SPS和VPS以存取解码设备112可以用于解码条带的信息。可以针对每个参数集编码(code)标识符(ID),包括VPS ID、SPS ID和PPSID。SPS包括SPS ID和VPS ID。PPS包括PPS ID和SPS ID。每个条带标头包括PPS ID。使用ID,可以标识针对给定条带的活动的参数集。
PPS包括适用于给定图片中的所有条带的信息。因此,图片中的所有条带参考相同的PPS。不同图片中的条带也可以参考相同的PPS。SPS包括应用于同一编码的视频序列(CVS)或比特流中的所有图片的信息。如先前所描述的,编码的视频序列为一系列的接入单元(AU),其从在基础层中且具有某些属性的随机接入点图片(例如,瞬时解码参考(Instantaneous Decode Reference,IDR)图片或断链接入(Broken Link Access,BLA)图片或其他适当的随机接入点图片)的AU开始(上文所描述),直到不包括具有在基础层中且具有某些属性的随机接入点图片的下一个AU(或比特流的末端)。SPS中的信息可以在编码的视频序列内的图片间不改变。编码的视频序列中的图片可以使用相同的SPS。VPS包括适用于编码的视频序列或比特流内的所有层的信息。VPS包括具有适用于整个编码的视频序列的语法元素的语法结构。在一些实施例中,可以与编码的比特流一起带内传输VPS、SPS或PPS。在一些实施例中,可以在与包含编码的视频数据(coded video data)的NAL单元分开的传输中带外传输VPS、SPS或PPS。
编码设备104的输出110可以通过通信链路120将构成编码的视频数据的NAL单元发送到接收设备的解码设备112。解码设备112的输入114可以接收NAL单元。通信链路120可以包括使用无线网络、有线网络或有线网络与无线网络的组合传输的信号。无线网络可以包括任何无线接口或无线接口的组合,并且可以包括任何适合的无线网络(例如,互联网或其他广域网、基于分组的网络、WiFiTM、射频(RF)、UWB、WiFi直连、蜂窝式、长期演进(LTE)、WiMaxTM等)。有线网络可以包括任何有线接口(例如,光纤、以太网、电力线以太网、通过同轴电缆形成的以太网、数字信号线(DSL)等)。可以使用各种装备来实施有线和/或无线网络,该装备诸如基站、路由器、接入点、网桥、网关、交换机等。可以根据通信标准(诸如,无线通信协议)来调制编码的视频数据,并将其传输到接收设备。
在一些示例中,编码设备104可以将编码的视频数据存储在存储装置108中。输出110可以从编码器引擎106或从输出110检索编码的视频数据。存储装置108可以包括多种分布式或本地存取的数据存储介质中的任何一个。例如,存储装置108可以包括硬盘、存储光盘、闪存、易失性或非易失性存储器或用于存储编码的视频数据的任何其他合适的数字存储介质。
输入114接收编码的视频数据并且可以将视频数据提供给解码器引擎116或存储装置118以便后续供解码器引擎116使用。解码器引擎116可以通过熵解码(例如,使用熵解码器)和提取构成编码的视频数据的编码的视频序列的元素而解码编码的视频数据。解码器引擎116然后可以重新缩放编码的视频数据并对编码的视频数据执行反变换。残差然后被传递到解码器引擎116的预测阶段。解码器引擎116然后预测像素的块(例如,PU)。在一些示例中,将预测添加到反变换的输出。
解码设备112可以将解码的视频输出到视频目的地设备112。视频目的地设备可以包括用于将解码的视频数据显示给内容的消费者的显示器或其他输出设备。在一些方面中,视频目的地设备122可以是包括解码设备112的接收设备的一部分。在一些方面中,视频目的地设备122可以是除接收设备以外的单独设备的一部分。
在一些实施例中,视频编码设备104和/或视频解码设备112可以分别与音频编码设备及音频解码设备集成。视频编码设备104和/或视频解码设备112也可以包括实施上文所描述的编解码技术所必要的其他硬件或软件,诸如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)、离散逻辑、软件、硬件、固件、或其任何组合。视频编码设备104和视频解码设备112可以集成为相应设备中的组合式编码器/解码器(编解码器)的一部分。下文参考图12描述编码设备104的具体细节的示例。下文参考图13描述解码设备112的具体细节的示例。
对HEVC标准的扩展包括多视图视频编解码扩展(被称为MVHEVC)和可缩放视频编解码扩展(被称为SHVC)。MV-HEVC和SHVC扩展共享分层编解码的概念,其中不同的层被包括在编码的视频比特流中。编码的视频序列中的每个层由唯一的层标识符(ID)寻址。层ID可以存在于NAL单元的标头中以标识NAL单元所相关联的层。在MV-HEVC中,不同的层通常表示视频比特流中的相同场景的不同视图。在SHVC中,提供以不同的空域分辨率(或图片分辨率)或不同的重构保真度表示视频比特流的不同的可缩放层。可缩放层可以包括基础层(层ID=O)及一个或多个增强层(层ID=l,2,...n)。基础层可以符合第一版本的HEVC的档次(profile),并且表示比特流中的最低可用层。与基础层相比,增强层具有增加的空域分辨率、时域分辨率或帧率和/或重构保真度(或质量)。增强层是分级组织的并且可以(或可以不)取决于更低层。在一些示例中,可以使用单个标准编解码器对不同的层进行编解码(例如,使用HEVC、SHVC或其他编解码标准对所有层编码)。在一些示例中,可以使用多标准编解码器对不同的层进行编解码。例如,可以使用AVC对基础层进行编解码,同时可以使用HEVC标准的SHVC和/或MV-HEVC扩展对一个或多个增强层进行编解码。
块伪影(blocking artifact)是图片最初被静态或视频相机捕获时并不存在于图片中的水平及垂直不连续性。块伪影可以由中等至高压缩引起,并且可能引起图片的重构版本具有由片构成的外观。在具有高对比度的图片区域中,平铺效应(tiling effect)可能被屏蔽,但在图片的平坦或均匀区域中,平铺可能是特别明显的。在视频中,块伪影可能由于在相继帧中的不同位置中的不连续性而被观察为移动或闪烁。
块伪影的一个来源是对帧内预测和帧间预测误差的基于块的变换编解码(其可以包括变换和量化)。变换系数的粗略量化可能引起块边界处的视觉上干扰不连续性。对于视频,运动补偿的预测是块伪影的另一潜在来源。运动补偿的块是通过复制来自可能不同参考帧的不同位置的插值的像素数据而生成。正被复制的像素数据可能并不是正生成的像素的完美匹配,因此,所复制的数据块的边界上的不连续性可能会出现。
去方块可以在图片被重构之后执行,以便减少块伪影。例如,去方块通过滤波、裁剪(clip)、其组合和/或任何其他方式修改位于接近每个块边界的样点的值,使得不连续性被平滑并因此不可见。
在视频压缩中,去方块可以在预测环路外部执行,在此情况下去方块可以针对显示器缓冲器操作。可替换地或附加地,去方块可以在预测环路中执行,使得去方块的帧用作用于将来帧的运动补偿的参考帧。两种方法提供所显示视频的更好的主观质量,同时随后也提供客观性能的益处,因为通过使用去方块的参考帧改善了帧间预测的准确度。
例如,HEVC中的去方块为环路内处理。在一些示例中,当边界:(1)为编码单元(CU)、预测单元(PU)或变换单元(TU)的边界,以及(2)具有为八的倍数的x坐标和y坐标时,去方块应用于块之间的边界。第二个条件意味着待去方块的两个平行临近边界的最小距离为八个像素,其促进更好的并行处理。待处理的边界可以分成多个不重叠的四样点段,其然后作为去方块所应用的数据单元。
在以下讨论中,将讨论对段的去方块操作,其中段假设是垂直的。下文讨论的去方块技术也可以对水平段执行,且这些技术基本遵循下文针对垂直段所讨论的相同处理。
图2包括可以作为编码的视频帧的一部分的块的组200的图。块的组200包括第一块(其将被称为左侧块或P 202块)和第二块(其将被称为右侧块或Q 204块)。P 202块及Q204块表示彼此相邻的编码的视频帧中的块,并且因此共享边界206。在一些示例中,P 202块和Q 204块为相同的大小,并且在一些示例中,诸如图2所示,P 202块和Q 204块大小不同。应注意“P”和“Q”是针对邻近块的一般通用术语,且其他标记(诸如左侧和右侧)可以用于指块。
段210是可以边界206的比边界206的全长短的区段。例如,段210在长度上可以为四个像素(也可以被称为样点)。当处理段210时,可以检验P202及Q 204块的编解码条件,诸如运动矢量、参考索引和/或非零变换系数的存在以及其他示例。然后可以基于编解码条件确定边界强度。边界强度表示强的块伪影沿段210可能出现的可能性。作为示例,边界强度值可以是0,意味着P 202及Q 204块的编解码条件不引起块伪影,且不必执行针对段210的去方块。作为另一示例,边界强度值可以是2,这意味着P 202和Q 204块中的编解码条件可能引起严重的块伪影,并且应该应用强滤波。作为又一示例,边界强度值可以是1,这意味着可能沿段210存在一些块伪影。在斯普林格国际出版公司(Springer InternationalPublishing)于2014年8月出版的V.Sze,M.Budagavi,G.Sullivan著的“High efficiencyvideo coding(HEVC):algorithms and architectures”的章节7.2.2.1中进一步讨论了边界强度的确定。
与用于样点的亮度分量相比,不同的边界强度值可以用于色度分量。例如,对于色度分量,当P 202块或Q 204块被帧内编码(intra-coded)时,边界强度值等于2,否则,边界强度值等于0。
亮度分量可以以不同于色度分量的方式处理。例如,如上文所讨论的,段210具有块伪影的可能性可以基于P 202和Q 204块的编解码条件来估计的。但编解码条件仅仅能提供块伪影的严重度的近似。去方块是否应该应用于段210以及应该应用的去方块滤波的量可以通过分析靠近段210的样点的值来更精确地确定。
图3包括示出沿左侧(或P 302)块与右侧(或Q 304)块之间的边界的段310的像素或样点的示例的图。在该示例中,段310的长度为四个样点。也在该示例中,来自P 302块的远离段310的最多三个位置的p样点312和来自Q 304的远离段310的最多三个位置的q样点314正被分析。在其他示例中,可以考虑更多或更少的样点。在图3的示例中,样点的位置相对于段310来指示,其中更接近段310的位置具有更低值,并且更接近段310的顶部的位置具有更低值。
是否对段310执行去方块首先可以通过计算靠近段310的四个样点的二次导数来确定。在图3中,可以用于计算二次导数的四个样点已带圆圈(p1,0、p1,3、q1,0和q1,3)。在其他示例中,可以使用靠近段310的其他样点。二次导数的和(与阈值β相比,以下等式(1)中示出的)可以用于确定去方块是否应该应用于段310。
|p2,0-2p1,0+p0,0|+|p2,3-2p1,3+p0,3|+|q2,0-2q1,0+q0,0|+|q2,3-2q1,3+q0,3|<β (1)
如等式(1)中所提供的,如果所选样点的四个二次导数的和小于阈值β,则将对段执行去方块。当该和大于或等于阈值时,则段310可能处于颜色和/或纹理非均匀的图片区域(例如区域外观不平坦)中。在这种区域中,块伪影可能由局部样点的非均匀性屏蔽,因此可以并不需要去方块。应该注意,即使先前确定的边界段值为非零,仍可以进行不执行去方块的决定。
当段310将被去方块时,可以使用强滤波或正常滤波。以下等式(2-1)至(2-6)可以用于确定滤波模式。当所有六个等式为真时,则围绕段310的区域可能非常均匀(例如,外观平滑)并且因此块伪影可能高度可见。因此,当所有六个等式为真时,使用强滤波模式。否则,使用正常滤波模式。
|p2,0-2p1,0+p0,0|+|q2,0-2q1,0+q0,0|<β/8 (2-1)
|p2,3-2p1,3+p0,3|+|q2,3-2q1,3+q0,3|<β/8 (2-2)
|p3,0-p0,0|+|q0,0-q3,0|<β/8 (2-3)
|p3,3-p0,3|+|q0,3-q3,3|<β/8 (2-4)
|p0,0-q0,0|<2.5tC (2-5)
|p0,3-q0,3|<2.5tC (2-6)在等式(2-1)至(2-6)中,tC为裁剪参数,其在下文被进一步讨论。
在各种示例中,以上讨论的边界强度确定和基于等式(1)以及等式(2-1)至(2-6)进行的决定是在段级别进行的。一旦已经选择了滤波模式(强或正常),对于诸如图3中示出的垂直段310,就逐线(line)应用虑波(对于水平段,逐列应用滤波)。
图4包括示出来自沿左侧(或P 402)块与右侧(或Q 404)块之间的边界的段410的四条样点线(在该示例中)中的一条像素或样点线的图。样点线包括来自P 402块的p样点422的集合和来自Q 404块的q样点424的集合。在其他示例中,可以考虑一条线中的更多或更少的样点。在图4的示例中,关于段410的样点的位置由下标指示。
在以下讨论中,描述对于一条线的操作,假设对沿段410的附加的线可以执行相同操作。
在一些示例中,当强滤波模式应用于亮度分量上时,段410的任一侧的三个样点被处理。例如,对于来自P 402块的样点p0、p1和p2,更新的(例如滤波后的)值p0’、p1’、和p2’可以使用低通滤波来计算,如以下等式(3-1)至(3-3)中所示。
p′0=(p2+2p1+2p0+2q0+q1+4)>>3 (3-1)
p′1=(p2+p1+p0+q0+2)>>2 (3-2)
p′2=(2p3+3p2+p1+p0+q0+4)>>3 (3-3)
在一些示例中,滤波后的样点值pi’(i=0、1、2)被裁剪至范围[pi–2tC,pi+2tC]内。当变化大于tC时,裁剪可以将变化限制于样点。
来自Q 404块的样点q0、q1和q2也可以使用等式(3-1)至(3-3),通过分别用q0、q1和q2替代p0、p1和p2来处理。
在一些示例中,当使用正常滤波模式时,段410的任一侧的一个或两个样点被处理。对于段410的左侧的样点,可以检查以下等式(4-1)中的条件。当条件为真时,将处理p0和p1,否则将仅处理p0。对于段410的右侧的样点,以下等式(4-2)的条件可以用于确定q0和q1是否将被处理,或者仅q0将被处理。因为在段410的一侧哪些样点将被处理是独立于段的另一侧哪些样点将被处理来确定的,所以有可能段410的任一侧的不同数量的样点被处理。
|p2,0-2p1,0+p0,0|+|p2,3-2p1,3+p0,3|<(3/16)β (4-1)
|q2,0-2q1,0+q0,0|+|q2,3-2q1,3+q0,3|<(3/16)β (4-2)
为了处理p0和q0,如等式(5)中所提供的,首先计算中间值δ
δ=(9(q0-p0)-3)q1-p1)+8)>>4 (5)
当δ的绝对值大于或等于十倍tC时,边界被视为自然边缘,其应该被保留。在此情况下,不对当前线执行去方块。当δ小于十倍tC时,δ被裁剪至-tC至tC的范围内,如等式(6)中所示。
Δ0=Clip3(-tC,tC,δ) (6)
p0和q0的更新的或滤波后的值p0′和q0′可以通过加上或减去Δ0来计算,如以下等式(7-1)及(7-2)所示:
p′0=p00 (7-1)
q′0=q00 (7-2)
以下等式(8-1)及(8-2)可以用于处理p1和q1样点以产生更新的或滤波后的版本p1′和q1′。
Figure BDA0002713568030000161
Figure BDA0002713568030000162
在一些示例中,色度分量的去方块可以基于边界段值,而无需对样点进行分析。可以使用以上等式(7-1)和(7-2)来处理在段410的任一侧的第一样点p0和q0。对于色度分量,Δ0可以如以下等式(9)中提供的来计算:
Δ0=Clip3(-tC,tC,(((q0-p0)<<2)+p1-q1+4)>>3) (9)
现将描述阈值β和tC。为避免过多滤波,参数β和tC用于去方块处理,如上文所述。阈值β用于控制应该执行去方块的方式。例如,β可以用于确定段是否应该被去方块、应该使用强去方块还是正常去方块、段的一侧的一个还是两个样点应该被处理等。当β或被缩放的β被达到或超过(参见例如等式(1)、(2)及(4))时,局部样点值改变较大量,且更保守的去方块被应用以保留原始图片中的细节。当β未被超过时,局部样点值具有较小的变化(例如样点更平滑),并且可以更积极地执行去方块。
裁剪值tC主要用于控制样点量值(magnitude)的最大变化(除等式(2-5)和(2-6)中之外)。在正常滤波模式或用于色度的滤波中,样点量值的变化对于段的一侧的第一样点(适用于亮度及色度)不应超过±tC,或者对于第二样点(仅仅适用于亮度)不应超过±tC/2。在强滤波模式中,其中暗示了量值的较大变化,对于在段的任一侧处理的三个样点,最大变化为±2tC
β和tC的值主要取决于来自左侧块P 402和右侧块Q404的QP值。例如,来自P 402和Q 404的QP的平均值(记为QPave=(QPP+QPQ+1)>>1)可以用作搜寻两个一维查找表(LUT)的索引,一个查找表用于β和tC中的一个。尽管用于发现tC值的索引可以通过加上2(例如QPave+2)来调整,但是当边界强度值等于2时,确定β和tC的值的主导因子将是QPave。在两个LUT中,条目值随搜寻索引的值单调增加,这意味着较高的QPave与β和tC的较大值相关。因此更强去方块可能出现在QPave为高时,且允许更大的变化量值。另一方面,较低的QP值可能引起β和tC的较小或可能为零的值。利用低QP值进行编解码的块可能具有很少的块伪影,因此去方块几乎不需要用于这些块之间的边界。
在一些示例中,用于发现LUT中的β和tC的索引(记为idxβ和idxtc)可以分别由两个参数beta_offset_div2和tc_offset_div2调整,如以下等式(10-1)及(10-2)所示:
idxβ=QPave+2×beta_offset_div2 (10-1)
idxtc=QPave+2×(BS-1)+2×tc_offset_div2 (10-2)
参数beta_offset_div2和tc_offset_div2可以在条带标头中或在图片参数集(PPS)中发送。这种柔性给予编码器取决于序列特性、编码模式和其他因子适配去方块强度的能力。
在HEVC中,可以在两个阶段中执行去方块:首先,图片中的所有垂直块边界被滤波;然后,所有水平块边界被滤波。在第二阶段中,用于模式决定和滤波的样点是已被第一阶段修改的样点。在每个阶段中,边界被至少八个样点间隔。去方块中所涉及的样点可以包括边界的每一侧的最多四个样点,要被滤波的三个加上用于滤波和模式决定进行的一个。对邻近边界进行去方块中所涉及的样点因此不重叠,且可以独立及并行于其他边界对每个边界进行去方块。
在HEVC中,去方块操作可以包括对靠近块边界的样点进行滤波和裁剪样点量值的变化。可以使用滤波器强度的三个级别中的一个:强、正常或零(例如无滤波),其中被选择的滤波器是基于靠近块边界的样点的局部活动性(例如当存在较小局部活动性时应用较强的滤波,并且当存在较多活动性时应用较弱的滤波;参见等式(1)和(2))。对于强滤波模式,使用低通滤波器对块边界的每一侧的三个样点进行滤波(参见等式(3))。对于正常滤波模式,至少最靠近边界的样点被滤波,并且如果更靠近边界的样点平滑,则在任一侧的次最接近样点可以被滤波(参见等式(4))。裁剪由参数tC控制。当应用强滤波时,样点量值的改变不大于t2C,并且当应用正常滤波时,来自边界的第一和第二样点的量值的改变分别不大于tC和tC/2(参见等式(6)至(8))。不同的边界强度值可以改变tC;例如,边界强度值为2的段可以具有比边界强度值为1的段更大的tC
HEVC方案去方块基本上遵循H.264/AVC去方块的框架。HEVC方案由此继承H.264/AVC的主要特征,诸如基于编解码条件的边界强度、自强向下至零的多级别滤波强度、以及为相关参数β和tC的QP和边界强度以及其他示例。与H.264/AVC去方块相比,HEVC去方块中的新的设计组件实现更容易的并行处理和与HEVC的更大的块大小编解码结构的更好的拟合,但不太专用于改善编解码效率。因此,HEVC去方块(其被视为2013年HEVC的最后定案的计算复杂度与编解码效率之间的良好折衷)就自2013年以来在硬件方面的改善而言,可以说是过度简化的。计算硬件的计算资源可以被利用以显著改善编解码效率,同时仍维持可以并行化的去方块方案。HEVC去方块中可以被进一步改善的方面的示例列举如下。
作为第一示例,使用仅三个级别(对应于滤波强度的三个级别)来表示边界区域的平滑度(例如像素的均匀性)可能太粗略。
作为第二示例,段的四条线中的仅两条用于确定去方块模式和选择滤波器,且在每条线中,来自段的任一侧的仅四个样点被使用。由于一些视频编解码器中的块大小可以为最大128×128,所以使用样点的这种小的部分用于模式决定可能不能非常好地反映边界区域的真实活动性,并且可能使决定处理对噪声敏感。
作为第三示例,段的任一侧的待滤波的样点可以最多三个,但可以少到一个,此可能并不足以对大块进行去方块。
作为第四示例,当使用强滤波模式时,五个预定义4抽头或5抽头滤波器被预先指派给三个样点(参见等式(3))。在正常滤波模式中,相同的五个预定义滤波器被预先指派给两个样点(参见等式(5)至(8))。滤波器的有限的数量、其短的长度以及滤波器可以被选择的不柔性可能导致去方块处理中的较低编解码效率。
作为第五示例,具有不同边界强度的段可以具有非常不同的局部活动性,但共享相同的去方块滤波器(尽管裁剪值对于等于2的边界强度值更大)
作为第六示例,HEVC去方块方案在P块与Q块之间不区分。滤波强度由P及Q的平均二次导数确定(参见等式(1)及(2)),且参数β和tC的值取决于P和Q的平均QP。以相同方式处理P及Q块可能提供不良结果,特别是在其中一个非常平滑而另一个具有高细节度的情况下。
本文描述的系统及技术可以解决上文提及的与去方块相关联的问题,同时仍友好并行化并且具有合理的计算复杂度。系统和技术可以将滤波处理应用于由于压缩、模糊或其他缺陷而失真的视频帧,以便改善重构的视频的客观和主观质量。系统和技术可以应用于现有视频编解码器(例如,高级视频编解码(AVC)、高效视频编解码(HEVC)或任何其他合适的视频编解码器)中的任何一个,或者可以被提议作为未来视频编解码标准的编解码工具。系统及技术也可以作为后处理方法用于自标准或专有编解码器输出的视频帧上。本文所描述的系统及技术的特征的示例如下。
作为第一示例,P块和Q块的局部活动性的平均值或差异可以联合地用于决定用于段的滤波模式。在一个示例中,平均值和/或差异被量化成七个级别,从而形成28个可能的组合。段因此可以被分类成28个类别中的一个,其中每类别具有不同的去方块操作。
作为第二示例,段的任一侧的更多样点可以用于确定局部活动性。因此可以进行更好的分类和滤波模式决定。例如,可以使用段的所有四条线,并且在每条线中,可以使用边界的任一侧的最多八个样点。
作为第三示例,当处理段的一条线时,段的任一侧的最多四个样点可以被滤波。
作为第四示例,边界强度值得以简化。例如,在被帧间编码的条带(例如B条带及P条带)中,边界强度值可以仅仅为1或0。在这些示例中,边界强度值2仅仅出现在被帧内编码的条带中。
作为第五示例,滤波器候选者可以基于边界强度值。所允许的滤波器的数量也可以取决于边界强度值。在一个示例中,四个滤波器被预定义用于具有等于2的边界强度的段;对于等于1的边界强度,存在十五个滤波器。应该注意用于等于2的边界强度的四个滤波器的集合为用于等于1的边界强度的十五个滤波器的子集。所有滤波器为11抽头长。
作为第六示例,滤波器并未被指派给类别。最佳滤波器替代地可以在条带/片/图片/序列级别从滤波器池中选择。
可以关于边界和段应用本文描述的去方块方案。在下一代视频编解码标准中,CU、PU及TU的概念可以视为是相同的(例如,CU并不进一步划分成PU或TU)。由于柔性的块划分结构,CU的形状不一定必须是如HEVC中那样的正方形;替代地,CU可以是具有长如128个样点以及短如4个样点的边的矩形。
本文描述的所提议的去方块方案可以应用于CU的边界,其可以不被至少八个样点间隔。然而,允许临近边界更靠近不会损失并行化的优点,如以下进一步讨论的。待处理的边界(不管多长)可以被划分成多个非重叠的4-样点段,其中每个段然后作为待处理的最小单元。
在以下讨论中,将讨论对垂直段的去方块操作。水平段的处理基本上相同。
可以基于条带是被帧内编码还是被帧间编码来确定边界强度。对于被帧内编码的条带,边界强度推导处理与HEVC去方块中的处理相同:所有段具有等于2的边界强度并且应该被滤波。对于被帧间编码的条带,边界强度推导被简化,并且边界强度可以仅为0或1。当满足以下条件中的至少一个时,边界强度等于1,否则边界强度等于0。
1.邻近块中的至少一个被帧内编码;
2.邻近块中的至少一个具有非零变换系数;
3.邻近块的运动矢量之间的绝对差值大于或等于一个整数亮度样点;或
4.邻近块中的运动预测参考不同参考图片或运动矢量的数量是不同的。
当边界强度为0时,对于该段跳过去方块操作(例如不执行去方块)。否则,应用下文讨论的操作。
如上文所提及,段的局部活动性可以用于确定滤波模式。局部活动性测量靠近块边界的区域的平滑度(例如均匀性)或复杂度。局部活动性可以以不同方式计算,诸如使用一次导数或二次导数。二次导数可以对噪声较不敏感,并且因此二次导数用于以下等式。
如图5(其示出计算二次导数中所涉及的样点)中所示,使用等式(11)计算虚线框中的每个样点的二次导数的绝对值:
|p″i,j|=|pi-1,j-2pi,j+pi+1,j|或|q″i,j|=|qi-1,j-2qi,j+qi+1,j| (11)
因此,块P的内部活动性(记为PA)被表示为虚线框中的所有|p″i,j|的平均值,如等式(12)中所示,
Figure BDA0002713568030000211
其中N为所涉及的样点的总数量,即在此情况下,为24。类似地,块Q的内部活动性(记为QA)可以使用等式(13)来计算。
Figure BDA0002713568030000212
应该注意最靠近块边界的样点(p0,j和q0,j)不被包括在计算PA或QA之内,因为这些样点的二次导数被跨边界的样点支持并且可能不能精确地反映任一侧的内部活动性。
还考虑其中块P或块Q为不足够宽的情况。例如,当P或Q的宽度(记为WP及WQ)为4或8时,在计算二次导数中使用的远程样点(诸如p7,j和q7,j)跨越或靠近临近边界。在这些情况下,等式(12)和(13)中的i坐标对于PA不应超过WP/2或对于QA不应超过WQ/2,即坐标i对于PA为最大min(6,WP/2)以及对于QA为最大min(6,W Q/2)。
可以执行段分类。例如,段可以基于PA和QA的值被分类为类别。如已经描述的,PA和QA的平均值和差异(记为avePQ和diffPQ)被联合地用于分类:
avePQ=(PA+QA)/2n (14)
diffPQ=|PA-QA|/2n (15)
在等式(14)及(15)中,n为表示avePQ和diffPQ在其用于分类之前被量化何种程度的变量,并且可以被定制。在一个说明性示例中,n被设置为1。
由于PA和QA都具有非负值,所以diffPQ不能大于avePQ。因此,(avePQ,diffPQ)的所有可能的组合位于在图6的阴影区域,其示出(avePQ,diffPQ)的可能的组合)。
然而,(avePQ,diffPQ)的分布实际上是远远不均匀的。组合的大部分出现在低avePQ和低diffPQ区域(图6中的曲线的左下方区域)中,在图6中的曲线的右上方区域中的情况可能非常稀疏。应用此观测,该技术不对(avePQ,diffPQ)执行均匀2-D量化,而是在如例如图7(其示出log域中的量化(avePQ,diffPQ))中所示的对数(log)域中进行量化(avePQ,diffPQ)。尽管区域对于不同类别是非常不同的,但与通过使用均匀量化相比,(avePQ,diffPQ)可以更均匀地分布至每个类别中。可能期望在log2域中执行量化,并且量化的具体示例在等式(16)和(17)中示出,
levelave=floor(log2(avePQ+offsetave))-1 (16)
leveldiff=floor(log2(diffPQ+offsetdiff))-1 (17)
其中offsetave和offsetdiff为用于调整比特起点的两个参数。在一个示例中,offsetave和offsetdiff两者被设置成2。可能期望将levelave和leveldiff值两者裁剪至6。因为在范围0至6之外的levelave和leveldiff是非常罕见的。考虑到leveldiff不大于levelave,可以容易地发现存在(levelave,leveldiff)的总共28个不同的组合。待去方块的每个段具有其自身的levelave和leveldiff组合,其用于将该段与类别关联。
也可以执行滤波器选择。类似于HEVC去方块,通过逐线地滤波来对段进行去方块。这里,仅仅描述如何对一条线进行滤波。给定待滤波的线,块边界的任一侧的最多M(例如M=4)个样点可以通过滤波来修改(对于示例,参见图4)。然而,在一侧的待滤波的样点不应跨越块宽度的一半,因为否则一个段的滤波后的样点将与临近段的那些样点重叠,这可能使并行处理复杂化。例如,如果块P的宽度为4,则对块P侧的仅仅两个样点进行滤波。更具体地,待滤波的样点的数量对于块P为min(M,WP/2),对于块Q为min(M,WQ/2)。
在HEVC去方块中,用于样点(图4中的p0至p3和q0至q3)的滤波器选择取决于其距段的距离,这意味着pi和qi共享同一个滤波器。假设块P和块Q的局部活动性相似。然而,基于研究,假设不始终保持。相反,块P和块Q可能常常具有极其不同的局部活动性(即,levelave等于leveldiff),并且由此原因,两个块可以通过智能编码策略划分。
在本申请中,比较块P和块Q的局部活动性(PA和QA)(参见等式(12)和(13))。如果PA小于QA,意味着块P较平滑,则块P中的样点将具有类型0滤波,而块Q中的样点将具有类型1滤波,反之亦然。对于每个滤波类型,4个样点(或如果块宽度为4,则2个样点)具有其自己的滤波器,因此最多8个不同的滤波器可以用于对一条线去方块。
总而言之,可以在选择右滤波器用于样点之前确定四个自变量:(1和2)段的类别,其是二维的,具有levelave和leveldiff,(3)滤波类型(即,类型0或类型1),和(4)距段的距离(即,最接近、次最接近等),记为pos。四个自变量的所有可能组合的总数量为224(28×2×4)。可以由编码器确定、编码(code)和传输的224-条目的4-D LUT存储所有可能情况的滤波器索引(例如,每个条目存储对应组合的一个滤波器索引),并且采用这四个自变量作为搜寻的索引。
在一些情况下可以定义和使用预定义滤波器。不同于HEVC去方块(其中不同边界强度仅仅形成裁剪值的差异),使用本文描述的技术的边界强度值对于滤波器选择具有直接影响。由于靠近BS2段和BS1段的区域的局部活动性可能非常不同,因此11抽头的FIR滤波器的两个集合被预定义用于它们,分别记为用于BS2段的FilterSetBS2和用于BS1段的FilterSetBS1。由于BS2段仅在被帧内编码的条带中并且BS1段仅在被帧间编码的条带中,因此滤波器的一个集合(FilterSetBS1或FilterSetBS2)用于对某条带去方块。
一个或多个(例如所有)预定义滤波器可以通过离线训练而获得。对于FilterSetBS2,尝试若干不同的集合大小,例如,滤波器集合包括4、8、16、或64个预定义滤波器,且发现性能并不随滤波器集合大小的增加而按比例改善。考虑用于信令通知滤波器索引的附加开销比特,大小较大的滤波器集合在性能和开销大小之间可能不是良好的折衷,在此情况下,在FilterSetBS2中可以预定义4个滤波器。包括恒等滤波器(其等效于无滤波),FilterSetBS2包括5个滤波器。图14至图16分别给出具有大小为16、8和4的FilterSetBS2的示例。在一些示例中,可以使用图16中的FilterSetBS2。
对于FilterSetBS1,发现性能对滤波器集合大小的增加稍微更敏感,尤其当滤波器集合大小小于16时。因此,可以确定选择在FilterSetBSl中预定义15个滤波器。包括恒等滤波器,FilterSetBSl包括16个滤波器,如图17中所示。应注意FilterSetBS2是FilterSetBS1的子集(比较图16与图17中的前四个滤波器),因为具有帧内邻近块的BSl段可以具有与BS2段相似的局部活动性,并且可以由来自FilterSetBS2的滤波器更好地去方块。
应注意在图14至图17中,滤波器可以直接用于对块P中的样点滤波,但在用于滤波块Q中的样点之前需要左右翻转。给定滤波器,突出显示的抽头(在图14至图18中粗体字和带下划线表示的抽头)为滤波器中心,其应该乘以待滤波的样点。如可见的,这些预定义滤波器被设计为与远离段相比具有更多接近段和甚至跨越段的支持样点。
现在描述滤波处理。首先描述如何对块P中的样点pi滤波,并且该滤波器被记为矢量h={h-4,h-3,…,h0,h1,…,h6}。滤波后的样点pi′可以通过使用如下等式(18)而获得。
Figure BDA0002713568030000241
如可见的,滤波器pi的支持样点包括pi自身、来自左侧的四个样点和来自右侧的六个样点。然而,如果块P或块Q不足够宽,则支持样点可以定位在两个块的外部。图8(其示出支持样点位于P或Q外部的示例)给出p0将被滤波且P和Q的宽度均为4的示例。可能期望避免这种情形,因为块Q右侧的样点(诸如图8中的p5和p6)可能尚未重构,并且块P左侧的样点(诸如图8中的p-4)(尽管其可能已重构)可能在条带或片边界外部,因此也不可用。为解决这个问题,11-点缓冲器可以被创建来存储用于滤波pi的所有支持样点,记为buf(元素为buf(j),j=-4,-3,…,6)。如果pi-4,pi-3,…,pi,pi+1,…,pi+6全部在块P或块Q内部,则buf为{pi-4,pi-3,…,pi,pi+1,…,pi+6};否则,位于P和Q外部的样点可以通过填充而获得。在图8的示例中,buf为{p-3,p-3,p-2,p-1,p0,p1,p2,p3,p4,p4,p4}。因此,等式(18)被重新写成等式(19)。
Figure BDA0002713568030000242
除了预定义的滤波器应该在被使用之前左右翻转以外,用于块Q中的样点qi的滤波处理是相似的。
在实践中,滤波处理可以以整数算术来实施。因此,图17中的实值的滤波器系数可以通过将滤波器系数乘以2N并取整(round)而转换为整数,并且结果可以被人工调整以确保滤波器增益恰好为2N。这里,N可以设置为9,使得与使用原始实值滤波器系数相比,滤波可以以32比特的宽度来实施而没有任何明显的性能降级。将整数滤波器记为f={f-4,f-3,…,f0,f1,…,f6},并且等式(19)被重写为等式(20)。图18示出FilterSetBS1的整数表示,其中N为9。
Figure BDA0002713568030000243
在另一实施例中,比较块P和块Q的局部活动性。如果块P的局部活动性更小,则应用如上文所述的滤波处理。否则,支持样点(即,buf)在使用之前左右翻转。然后,滤波被应用于翻转后的样点。滤波的输出再次反向左右翻转,并且变为去方块的输出。
现在描述裁剪和最终输出。可以如等式(21)计算由滤波引起的样点量值的变化,
Δp=p′-p (21)
其中p和p′分别是滤波之前和之后的样点值。Δp的值不应超过范围,以避免过多的滤波,并且因此应被裁剪。不同于HEVC去方块,其中范围±tc取决于QP和边界强度,使用本文描述的技术,tc是在图片/条带/片级别被信令通知的。tc的值可以独立于边界强度和类别索引。另外,对于滤波水平和垂直边界,tc可以是不同的。在一个示例中,两个裁剪值tC,VER和tC,HOR是在图片级别被信令通知的。在第一阶段中,当所有垂直边界被滤波时,tC,VER用于裁剪,如等式(22)中所示。
pout=p+Clip3(-tC,VER,tC,VER,Δp) (22)
在第二阶段中,当所有水平边界被滤波时,tC,HOR用于裁剪,如等式(23)中所示。
pout=p+Clip3(-tC,HOR,tC,HOR,Δp) (23)
编码器具有发现最佳tC,VER和tC,HOR的自由,并且将其编码(code)到比特流中。在一个实施例中,编码器可以通过求解如等式(24)中的优化问题来最小化pout与原始样点之间的MSE,
Figure BDA0002713568030000251
其中tc是分别用于阶段1和阶段2的tC,VER和tC,HOR;i为去方块中所涉及的任何样点;s(i)为样点的i的原始值。
在另一实施例中,pout和p的加权和用作最终输出,如等式(25)所示,
pfinal=wpout+(1-w)p (25)
其中w为非负加权因子,范围介于0到1,并且由编码器确定并在比特流中传输。
可以使用并行化。如上文所描述,HEVC去方块对于并行处理非常友好,因为在每个阶段中,对一个边界进行去方块所涉及的样点不与对任何其他边界进行去方块所涉及的样点重叠。为达成此目标,应满足以下三个条件:
1.一个段的待滤波样点不与任何其他段的待滤波样点重叠,因为在重叠位置处的样点可以另外被多次重复写入,并且最终输出取决于临近边界的处理次序;
2.一个边界的滤波后的样点不应该用作对任何其他段的样点进行滤波的支持样点;以及
3.一个边界的滤波后的样点不应该用于任何其他段的去方块评级决定(诸如分类、局部活动性计算和滤波器选择)。
本文描述的技术满足全部三个条件,即使待去方块的边界可能并非被至少八个样点间隔(参见以上关于本文描述的技术的发明内容)。因此,其也允许并行化的容易的方式,如HEVC去方块进行的那样。细节说明如下。
关于条件1,如上文关于滤波器选择所讨论的,待滤波的样点的数量对于块P为min(4,WP/2),对于块Q为min(4,WQ/2)。出于此原因,条件1满足。
关于条件2,如上文关于等式(18)和(19)所讨论的,存储于buf中的支持样点全部从当前去方块阶段的输入获得。换言之,在阶段l中,buf使用重构的样点,在阶段2中,buf使用阶段l的输出样点。由于buf未曾使用当前阶段中的滤波后的样点,所以条件2也满足。
以与条件2相同的方式满足条件3。如上文关于计算局部活动性所介绍的,用于局部活动性计算和分类的样点全部为先前阶段的输出。
在一些情况下可以执行开销最优化。对图片或条带进行正确的去方块所需的开销可以包括存储用于类别、类型和位置的所有可能组合的224个滤波器索引的4-D LUT(参见上文关于滤波器选择)和分别用于水平和垂直去方块的两个裁剪值(参见上文关于裁剪和最终输出)。对开销进行直接编码(code)和在比特流中传输其可能花费数百比特,其对于图片或条带可能代价太大。本文描述的技术以三种有损方式(默认合并、柔性合并和暂时开销预测)压缩开销。
关于默认合并,给定类别、类型和位置的情况下,对于如何选择滤波器进行了一些研究,并且得到了以下观测:
1.位置2和位置3处的样点(参见图4,p3和q3在位置3上;p2和q2在位置2上)极可能选择相同的滤波器索引。因此在这些两个位置处的样点可以被强迫共享相同的滤波器索引,并且用于信令通知位置3的滤波器索引(56个索引)的比特被节省;
2.当边界强度等于1并且levelave为6(这意味着靠近段的样点方差极大)时,不管leveldiff、类型和位置是什么,主要选择恒等滤波器(即,无滤波)。该选择是适当的,因为块伪影被很好屏蔽并且不需要去方块。因此当边界强度等于1并且levelave为6时,滤波器索引被强制为0,并且不需要信令,这节省了56个索引;和
3.不区分块P和块Q,这意味着给定某个levelave,具有不同leveldiff的类别被合并(参见图9),并且类型0和类型l也被合并。通过这样做,本文描述的技术具有类似于HEVC去方块的简化模式,其不区分块P和Q。在该简化模式中,编解码具有用于被帧间编码的条带的18个条目(6个levelave级别乘以3个不同位置)或21个条目(7个levelave级别乘以3个不同位置)的2-D LUT,这是轻量级的并且在大部分编解码条件中负担得起。
也可以执行柔性合并。本文描述的具有上文所描述的默认合并的技术显著胜过HEVC去方块。然而,如果比特的较大预算是可用的,则可能的组合不必如此大的合并。相反,编码器具有以更柔性方式对其进行合并的自由以尽其可能发送少的滤波器索引,同时仍维持良好的率-失真(R-D)性能。然而,在此模式下,不仅包括比特流中被编码(code)的滤波器索引,而且也应该包括表示组合如何合并的信息。以下实施例示出在一个说明性实施方案中可以如何进行。
首先,不区分块P和块Q,仅当leveldiff不超过阈值时,对于相对较小的leveldiff意味着两个块中的相似局部活动性并且因此该两个块可以共享滤波器索引的相同集合。图10(其示出对于每个levelave,合并具有不超过2的不同leveldiff的类别)给出阈值等于2的示例。阈值被编码(code)到比特流中。图9示出对于每个levelave,合并具有不同leveldiff的类别。
其次,对于具有不超过阈值的leveldiff的组合,对于被帧间编码的条带,其滤波器索引被存储在具有18个条目2-D LUT中,对于被帧内编码的条带,其滤波器索引被存储在具有21个条目2-D LUT中。2-D LUT大小可以被进一步减小,因为位置2的样点和位置1的样点有时可以共享相同的滤波器索引。因此对于每个levelave级别,标志被信令通知,以指示位置2的样点和位置1的样点是否共享相同的滤波器索引。如果其为真,则可以节省用于多个滤波器索引的开销比特。
最后,具有超过阈值的leveldiff的组合也可以被合并。在一个实施例中,类别被合并。例如,(levelave,leveldiff)=(4,3)与(levelave,leveldiff)=(5,6)合并。对于另一示例,等于(3,4)、(4,3)和(4,4)的(levelave,leveldiff)全部被合并。被合并的类别的总数量(记为M)被信令通知。在合并之前所有类别被指派整数数字(范围0至M-1),指示其属于的哪个合并后的类别。这些整数数字也被信令通知。对于每个合并后的类别,一个标志被信令通知以指示类型0和类型l是否被合并。如果是,则指示位置2的样点和位置1的样点是否被合并的又一个标志被信令通知。否则,又两个标志被信令通知以指示位置2的样点和位置1的样点是否被分别合并用于类型0和类型l。
如上文所提及的,也可以使用暂时开销预测。先前编码的图片的4-D LUT和裁剪值被存储并允许被再用于对当前图片去方块。在编码器侧,当前图片可以选择使用所存储4-DLUT和裁剪值的一个集合,并且仅信令通知所选集合的索引。如果编码器选择不再次使用先前开销,而是发送当前图片的开销,则所发送的开销可以并且可能需要被存储以供未来使用。指示这种暂时开销预测是否用于当前图片的标志首先被信令通知。解码器首先接收知晓是否使用暂时开销预测的标志。如果是,则然后接收索引,并且对应于索引的4-DLUT和裁剪值的集合被提取以对当前图片去方块。否则,解码器接收一个4-D LUT和两个裁剪值的集合,其用于对当前图片去方块并存储为一个预测以供未来使用。
在另一实施例中,其可以被称为部分暂时预测,仅4-DLUT(其与裁剪值相比在传输中代价更高)可以以如上文所描述的相同方式暂时地再使用,并且裁剪值在每个图片的比特流中传输。
在一个示例中,对于当前图片/条带,所选集合的索引可以仅指具有相同和/或更小时域层索引的、来自先前编码的图片的4-DLUT。
在另一示例中,对于当前图片/条带,所选集合的索引可以仅指来自被包括在当前参考图片列表中的先前编码的图片的4-D LUT。
图11包括示出用于对视频数据进行编解码的示例处理1100的流程图。处理1100可以,例如,由包括存储器和处理器的编解码设备(例如能够编码和/或解码的设备)实施。在该示例中,存储器可以被配置为存储视频数据,并且处理器可以被配置为执行图11的处理1100的步骤。例如,编解码设备可以包括可以存储指令的非暂时性计算机可读介质,该指令在由处理器执行时可以使处理器执行处理1100的步骤。可替换地或附加地,非暂时性计算机可读介质可以在其上存储有指令,该指令在由一个或多个处理器执行时使该一个或多个处理器执行处理1100的步骤。在一些示例中,编解码设备可以包括用于捕获视频数据的相机和/或用于显示视频数据的显示器。
在步骤1102处,处理1100包括获得包括多个编码的视频帧的视频数据。视频数据可以作为编码处理或解码处理的一部分而获得。
在步骤1104处,处理1100包括为来自多个编码的视频帧中的编码的视频帧的第一块,确定第一块中的像素中的第一活动性。
在步骤1106处,处理1100包括为来自编码的视频帧的第二块确定第二块中的像素中的第二活动性,其中第二块在视频帧内紧接于第一块的右侧。
活动性是像素之间的相似性的测量。第一活动性和第二活动性可以使用应用于第一块中的像素和第二块中的像素的值的导数函数来确定。在一些示例中,第一块中的像素和第二块中的像素沿边界的段,该段小于边界的全长。在这些示例中,第一块中的像素和第二块中的像素可以远离边界最多八个像素。
在步骤1108处,处理1100包括使用第一活动性和第二活动性确定第一块和第二块的平均活动性。
在步骤1100处,处理1100包括使用第一活动性和第二活动性确定第一块与第二块之间的活动性差异。在一些示例中,处理1100还可以包括将非均匀量化应用于平均活动性和活动性差异。非均匀量化产生级别化(leveled)平均活动性和级别化活动性差异。例如,平均活动性和活动性差异可以各自被量化成0与6之间的值(包括0和6)。选择分类因此可以包括使用级别化平均活动性和级别化活动性差异。
在步骤1112处,处理1100包括使用平均活动性和活动性差异选择第一块与第二块之间的边界的分类。
在步骤1114处,处理1100包括使用分类来选择滤波器。在一些示例中,处理1100还可以包括确定用于该第一块的类型,该类型指示该第一块中的像素相似或相异。在这些示例中,选择滤波器还包括使用该类型。在一些示例中,处理1100可以包括基于第二块为不同于第一块的类型而选择不同的滤波器用于第二块。
在一些示例中,处理1100还可以包括为来自第一块中的像素的特定像素确定特定像素距边界的距离。在这些示例中,还可以基于该距离来选择滤波器。在一些示例中,处理1100还可以包括基于来自第一块中的像素的第二像素相比于特定像素具有距边界不同的距离而选择不同滤波器用于第二像素。
可以通过使用来自多个滤波器索引中的滤波器索引来选择滤波器。在一些示例中,具有不同分类、类型或距边界的距离的像素可以使用相同的滤波器,即具有相同的滤波器索引。例如,距边界第一距离的像素可以被强制具有与距边界第二距离的像素相同的滤波器索引,第二距离不同于第一距离。
在步骤1116处,处理1100包括将滤波器应用于第一块中的像素或第二块中的像素以使这些像素之间的转变平滑。
在步骤1118处,处理1100包括在应用滤波器之后输出要添加到重构的视频帧的第一块和第二块。
在一些示例中,滤波器的索引被包括在编码的视频数据中。例如,当编码时,滤波器索引可以被包括在编码的比特流中。作为另一示例,当解码时,滤波器索引可以从编码的比特流中读取。附加地或可替换地,可能期望编码的比特流包括用于裁剪滤波后的像素值的一个或多个值(例如用于对垂直边界进行滤波的裁剪值和用于对水平边界进行滤波的裁剪值),如本文所公开。
在一些示例中,边界强度值确定处理1100的步骤是否被执行用于特定边界段。当条带为被帧间编码的条带时,边界强度值等于零或一。值为零意味着将不应用去方块(例如处理1100不必被执行),值为一指示可以使用滤波器的第一集合应用去方块。当包括第一块和第二块的条带为被帧内编码的条带时,边界强度值等于二。值为二意味着可以使用滤波器的第二集合应用去方块。在一个示例中,滤波器的第一集合为滤波器的集合(例如16个滤波器的集合),滤波器的第二集合为滤波器少于第一集合的集合(例如五个滤波器的集合),第二集合是第一集合的子集。
本文所讨论的编解码技术可以在示例视频编码和解码系统(例如,系统100)中实施。在一些示例中,系统包括提供稍后由目的地设备解码的编码的视频数据的源设备。具体地,源设备可以经由计算机可读介质将视频数据提供给目的地设备。源设备和目的地设备可以包含广泛范围的设备中的任何一个,包括桌上型计算机、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、诸如所谓的“智能”电话的电话手机、所谓的“智能”平板、电视、相机、显示设备、数字介质播放器、视频游戏控制面板、视频流式传输设备等。在一些情况下,源设备和目的地设备可以被装备用于无线通信。
目的地设备可以经由计算机可读介质接收待解码的编码的视频数据。计算机可读介质可以包含能够将编码的视频数据从源设备移动到目的地设备的任何类型的介质或设备。在一个示例中,计算机可读介质可以包含通信介质,使得源设备能够实时地将编码的视频数据直接传输到目的地设备的通信介质。可以根据通信标准(诸如,无线通信协议)调制编码的视频数据,并且将编码的视频数据传输到目的地设备。通信介质可以包含任何无线或有线通信介质,诸如射频(RF)频谱或或多个实体传输线。通信介质可以形成基于分组的网络(诸如,局域网络、广域网或诸如互联网的全局网络)的一部分。通信介质可以包括路由器、交换器、基站或可以用于促进从源设备到目的地设备的通信的任何其他装备。
在一些示例中,编码的数据可以从输出接口输出到存储设备。类似地,可以由输入接口从存储设备存取编码的数据。存储设备可以包括多种分布式或本地存取的数据存储介质中的任何一个,诸如,硬驱动、Blu-ray光盘、DVD、CD-ROM、闪存、挥发性或非挥发性内存或用于存储编码的视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备可以对应于文件服务器或可以存储由源设备产生的编码的视频的另一中间存储设备。目的地设备可以经由流式传输或下载而从存储设备存取所存储的视频数据。文件服务器可以为能够存储编码的视频数据并且将编码的视频数据传输到目的地设备的任何类型的服务器。示例文件服务器包括网页服务器(例如,用于网站)、FTP服务器、网络附加存储(NAS)设备或本地磁盘驱动器。目的地设备可以通过任何标准数据连接(包括互联网连接)存取编码的视频数据。此连接可以包括无线通道(例如Wi-Fi连接)、有线连接(例如DSL、电缆调制解调器等),或适于存取存储于文件服务器上的编码的视频数据的这两者的组合。从存储设备的编码的视频数据的传输可以是流式传输、下载传输或其组合。
本公开的技术不限于无线应用或设定。该技术可以应用于支持多种多介质应用中的任何一个的视频编解码,诸如,空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(诸如,通过HTTP进行的动态自适应流式传输(DASH))、被编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码或其他应用。在一些示例中,系统可以被配置为支持单向或双向视频传输从而支持诸如视频流、视频播放、视频广播和/或视频电话的应用。
在一个示例中,源设备包括视频源、视频编码器和输出接口。目的地设备可以包括输入接口、视频解码器和显示设备。源设备的视频编码器可以被配置为应用本文公开的技术。在其他示例中,源设备和目的地设备可以包括其他组件或配置。例如,源设备可以从外部视频源(诸如,外部相机)接收视频数据。同样,目的地设备可以与外部显示设备接口,而非包括集成式显示设备。
上述示例系统仅为一个示例。用于并行地处理视频数据的技术可以由任何数字视频编码和/或解码设备执行。尽管本公开的技术通常由视频编码设备执行,但该技术也可以由视频编码器/解码器(通常被称为“CODEC”)执行。此外,本公开的技术也可以由视频预处理器执行。源设备和目的地设备仅为源设备生成编码的视频数据以传输到目的地设备的这种编解码设备的示例。在一些示例中,源设备和目的地设备可以以基本上对称的方式操作,使得设备中的每一个包括视频编码和解码组件。因此,示例系统可以支持视频设备之间的单向或双向视频传输,例如用于视频流式传输、视频回放、视频广播或视频电话。
视频源可以包括视频捕获设备,诸如视频相机、包含先前捕获的视频的视频档案和/或用于自视频内容提供商接收视频的视频馈送界面。作为另一替代方案,视频源可以生成基于计算机图形的数据作为源视频,或实况视频、档案视频和计算机生成的视频的组合。在一些情况下,如果视频源是视频相机,则源设备和目的地设备可以形成所谓的相机电话或视频电话。然而,如上文所提及的,本发明中描述的技术通常可以适用于视频编解码,并且可以适用于无线和/或有线应用。在每一种情况下,可以由视频编码器编码所捕获、被预捕获或计算机生成的视频。编码的视频信息可以然后由输出界面输出至计算机可读介质上。
如所提及的,计算机可读介质可以包括瞬时介质,诸如无线广播或有线网络传输;或存储介质(即,非暂时性存储介质),诸如硬盘、闪存盘、紧凑型光盘、数字视频光盘、Blu-ray光盘或其他计算机可读介质。在一些示例中,网络服务器(图中未示)可以从源设备接收编码的视频数据并例如经由网络传输将该编码的视频数据提供给目的地设备。类似地,诸如光盘冲压设施的介质生产设施的计算设备可以从源设备接收编码的视频数据并且产生包含编码的视频数据的光盘。因此,在各种示例中,计算机可读介质可以理解为包括各种形式的或多个计算机可读介质。
目的地设备的输入接口从计算机可读介质接收信息。计算机可读介质的信息可以包括由视频编码器定义的语法信息,语法信息也由视频解码器使用,语法信息包括描述块和其他编解码的单元(例如,图片组(GOP))的特性和/或处理的语法元素。显示设备将被解码视频数据显示给用户,并且可以包含多种显示设备中的任何一个,诸如阴极射线管(CRT)、液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示设备。已描述本申请的各种实施例。
编码设备104和解码设备112的具体细节分别在图12和图13中示出。图12是示出可以实施本公开中描述的技术中的一个或多个的示例编码设备104的框图。编码设备104可以,例如,生成本文描述的语法结构(例如,VPS、SPS、PPS或其他语法元素的语法结构)。编码设备104可以执行视频条带内的视频块的帧内预测编码和帧间预测编码。如先前所描述的,帧内编码至少部分地依赖于空域预测以减少或移除给定视频帧或图片内的空域冗余。帧间编码至少部分地依赖于时域预测以减少或移除视频序列的邻近或周围帧内的时域冗余。帧内模式(I模式)可以指如果若干基于空域的压缩模式中的任何一个。帧间模式(诸如,单向预测(P模式)或双向预测(B模式))可以指如果若干基于时域的压缩模式中的任何一个。
编码设备104包括分割单元35、预测处理单元41、滤波器单元63、图片存储器64、求和器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41包括运动估计单元42、运动补偿单元44和帧内预测处理单元46。对于视频块重构,编码设备104还包括反量化单元58、反变换处理单元60和求和器62。滤波器单元63旨在表示一个或多个环路滤波器,诸如去方块滤波器、自适应环路滤波器(Adaptive Loop Filter,ALF)和样点自适应偏移(Sample Adaptive Offset,SAO)滤波器。尽管滤波器单元的在图12中示出为环路滤波器,但在其他配置中,滤波器单元的可以被实施为后环路滤波器。后处理设备57可以对由编码设备104生成的编码的视频数据执行附加处理。本发明的技术可以在一些情况下由编码设备104实施。然而,在其他情况下,本发明的技术中的一个或多个可以由后处理设备57实施。
如图12所示,编码设备104接收视频数据,并且分割单元35将数据分割成视频块。分割也可以包括,例如,根据LCU和CU的四叉树结构分割成条带、条带段、片或其他较大单元,以及视频块分割。编码设备104通常示出对待编码的视频条带内的视频块进行编码的组件。条带可以被分成多个视频块(并且可能被分成被称为片的视频块集合)。预测处理单元41可以基于误差结果(例如,编码率(coding rate)和失真等级等)选择多个可能的编码模式(coding pattern)中的一个(诸如,多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个)用于当前视频块。预测处理单元41可以将得到的被帧内编码或被帧间编码的块提供给求和器50以生成残差块数据并且提供给求和器62,以重构编码的块以用作参考图片。
预测处理单元41内的帧内预测处理单元46可以相对于与待编码(code)的当前块处于相同的帧或条带中的一个或多个临近块执行当前视频块的帧内预测编码,以提供空域压缩。预测处理单元41内的运动估计单元42和运动补偿单元44相对于一个或多个参考图片中的一个或多个预测块执行当前视频块的帧间预测编码,以提供时域压缩。
运动估计单元42可以被配置为根据视频序列的预定模式来确定用于视频条带的帧间预测模式。预定模式可以将序列中的视频条带指定为P条带、B条带或GPB条带。运动估计单元42和运动补偿单元44可以高度集成,但为概念目的而单独说明。由运动估计单元42执行的运动估计是生成运动矢量的处理,该运动矢量估计视频块的运动。运动矢量例如可以指示当前视频帧或图片内的视频块的预测单元(PU)相对于参考图片内的预测性(predictive)块的位移。
预测性块是就像素差而言发现的与待编码(code)的视频块的PU紧密匹配的块,该像素差可以由绝对差和(SAD)、平方差和(SSD)或其他差量度确定。在一些示例中,编码设备104可以计算存储在图片存储器中的参考图片的子整数像素位置的值。例如,编码设备104可以插值参考图片的四分之一像素位置、八分之一像素位置或其他分数像素位置的值。因此,运动估计单元42可以执行相对于全像素位置和分数像素位置的运动搜寻并且输出具有分数像素精度的运动矢量。
运动估计单元42通过比较PU的位置与参考图片的预测性块的位置来计算被帧间编码的条带中的视频块的PU的运动矢量。参考图片可以从第一参考图片列表(列表0)或第二参考图片列表(列表1)中选择,每个列表都标识存储在图片存储器64中的一个或多个参考图片。运动估计单元42将所计算的运动矢量发送到熵编码单元56和运动补偿单元44。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计(可能执行插值,到子像素精度)确定的运动矢量提取或生成预测性块。当接收到当前视频块的PU的运动矢量时,运动补偿单元44可以在参考图片列表中定位运动矢量所指向的预测性块。编码设备104通过从正被编码(code)的当前视频块的像素值中减去预测性块的像素值而形成像素差值来形成残差视频块。像素差值形成块的残差数据,并且可以包括亮度和色度差分量两者。求和器50表示执行此减法运算的一个或多个组件。运动补偿单元44也可以生成与视频块和视频条带相关联的语法元素,以供解码设备112在对视频条带的视频块进行解码时使用。
作为由运动估计单元42和运动补偿单元44执行的帧间预测的替代方案,帧内预测处理单元46可以帧内预测当前块,如上所述。具体地,帧内预测处理单元46可以确定用于对当前块进行编码的帧内预测模式。在一些示例中,帧内预测处理单元46可以例如在单独的编码通道(pass)期间使用各种帧内预测模式对当前块进行编码,并且帧内预测处理单元46可以从所测试的模式中选择适当的帧内预测模式来使用。例如,帧内预测处理单元46可以使用对各种所测试的帧内预测模式的率-失真分析来计算率-失真值,并且可以在所测试的模式中选择具有最佳率-失真特性的帧内预测模式。率-失真分析总体上确定编码的块与原始未编码的块(其被编码以产生编码的块)之间的失真(或误差)量,以及用于产生编码的块的比特率(即,比特的数量)。帧内预测处理单元46可以从各种编码的块的失真和率中计算比率,以确定哪个帧内预测模式展示该块的最佳率-失真值。
在任何情况下,在选择用于块的帧内预测模式之后,帧内预测处理单元46可以将指示块的所选帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以对指示所选帧内预测模式的信息进行编码。编码设备104可以将各种块的编码上下文的定义以及待用于上下文中的每一个的最可能的帧内预测模式、帧内预测模式索引表和修改后的帧内预测模式索引表的指示包括在被传输的比特流配置数据中。比特流配置数据可以包括多个帧内预测模式索引表和多个修改后的帧内预测模式索引表(也被称为码字映射表)。
在预测处理单元41经由帧间预测或帧内预测生成当前视频块的预测性块之后,编码设备104通过从当前视频块中减去预测性块而形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个TU中并且被应用于变换处理单元52。变换处理单元52使用诸如离散余弦变换(DCT)或概念上相似的变换的变换将残差视频数据变换成残差变换系数。变换处理单元52可以将残差视频数据从像素域转换至变换域(诸如,频域)。
变换处理单元52可以将得到的变换系数发送到量化单元54。量化单元54量化变换系数以进一步减少比特率。量化处理可以减小与系数中的一些或全部相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54然后可以执行对包括量化后的变换系数的矩阵的扫描。替代性地,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56对量化后的变换系数进行熵编码。例如,熵编码单元56可以执行上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或其他熵编码技术。在由熵编码单元56进行熵编码之后,编码的比特流可以传输到解码设备112,或被存档以供稍后传输或由解码设备112检索。熵编码单元56也可以对正被编码的当前视频条带的运动矢量和其他语法元素进行熵编码。
反量化单元58和反变换处理单元60分别应用反量化和反变换来重构像素域中的残差块以供稍后用作参考图片的参考块。运动补偿单元44可以通过将残差块添加到参考图片列表内的参考图片之一的预测性块来计算参考块。运动补偿单元44也可以将一个或多个插值滤波器应用于重构的残差块以计算用于用于运动估计的子整数像素值。求和器62将重构的残差块添加到由运动补偿单元44产生的运动补偿预测块以产生用于存储在图片存储器64中的参考块。参考块可以由运动估计单元42和运动补偿单元44用作参考块以帧间预测后续视频帧或图片中的块。
以此方式,图12的编码设备104表示被配置为生成编码的视频比特流的语法的视频编码器的示例。编码设备104可以例如生成如上所述的VPS、SPS和PPS参数集。编码设备104可以执行本文描述的技术中的任何一个,包括以上描述的处理。本公开的技术已总体上关于编码设备104进行描述,但是如上提及的,本公开的技术中的一些也可以由后处理设备57实施。
图13是示出示例解码设备112的框图。解码设备112包括熵解码单元80、预测处理单元81、反量化单元86、反变换处理单元88、求和器90、滤波器单元91和图片存储器92。预测处理单元81包括运动补偿单元82和帧内预测处理单元84。在一些示例中,解码设备112以执行总体上与关于来自图13的编码设备104描述的编码通道互逆的解码通道。
在解码处理期间,解码设备112接收表示由编码设备104发送的编码的视频条带的视频块和相关联语法元素的编码的视频比特流。在一些实施例中,解码设备112可以从编码设备104接收编码的视频比特流。在一些实施例中,解码设备112可以从网络实体79(诸如,服务器、介质感知网络组件(MANE)、视频编辑器/编接器(sPlicer)或被配置为实施上述技术中的一个或多个的其他这种设备)接收编码的视频比特流。网络实体79可以包括或可以不包编码设备104。在网络实体79将编码的视频比特流传输到解码设备112之前,本发明中描述的技术中的一些可以由网络实体79实施。在一些视频解码系统中,网络实体79和解码设备112可以是独立设备的一部分,而在其他实例中,关于网络实体79描述的功能性可以由包含解码设备112的同一设备执行。
解码设备112的熵解码单元80对比特流进行熵解码以生成量化后的系数、运动矢量和其他语法元素。熵解码单元80将运动矢量和其他语法元素转发到预测处理单元81。解码设备112可以接收视频条带级别和/或视频块级别的语法元素。熵解码单元80可以处理并解析诸如VPS、SPS和PPS的一个或多个参数集中的固定长度语法元素和可变长度语法元素两者。
当视频条带被编码(code)为被帧内编码(I)的条带时,预测处理单元81的帧内预测处理单元84可以基于被信令通知的帧内预测模式和来自当前帧或图片的先前被解码的块的数据而生成当前视频条带的视频块的预测数据。当视频帧被编码(code)为被帧间编码(即,B、P或GPB)的条带时,预测处理单元81的运动补偿单元82基于运动矢量和从熵解码单元80接收到的其他语法元素产生当前视频条带的视频块的预测性块。预测性块可以从参考图片列表内的参考图片中的一个产生。解码设备112可以基于存储在图片存储器92中的参考图片使用默认建构技术来建构参考帧列表,列表0和列表1。
运动补偿单元82通过解析运动矢量和其他语法元素来确定用于当前视频条带的视频块的预测信息,并使用该预测信息产生正被解码的当前视频块的预测性块。例如,运动补偿单元82可以使用参数集中的一个或多个语法元素来确定用于对视频条带的视频块进行编码(code)的预测模式(例如,帧内预测或帧间预测)、帧间预测条带类型(例如,B条带、P条带或GPB条带)、条带的一个或多个参考图片列表的建构信息、条带的每个被帧间编码的视频块的运动矢量、条带的每个被帧间编码的视频块的帧间预测状态、以及用于解码当前视频条带中的视频块的其他信息。
运动补偿单元82也可以执行基于插值滤波器的插值。运动补偿单元82可以使用如在编码视频块期间由编码设备104使用的插值滤波器来计算参考块的子整数像素的插值的值。在此情况下,运动补偿单元82可以从接收到的语法元素中确定由编码设备104使用的插值滤波器,并且可以使用插值滤波器来产生预测性块。
反量化单元86反量化或解量化比特流中提供的并且由熵解码单元80解码的量化后的变换系数。反量化处理可以包括使用由编码设备104针对视频条带中的每个视频块计算的量化参数来确定量化程度和同样应该被应用的反量化程度。反变换处理单元88将反变换(例如,反DCT或其他合适的反变换)、反整数变换或概念上相似的反变换处理应用于变换系数,以在像素域中产生残差块。
在运动补偿单元82基于运动矢量和其他语法元素生成当前视频块的预测性块之后,解码设备112通过将来自反变换处理单元88的残差块与由运动补偿单元82生成的对应预测性块求和来形成解码的视频块。求和器90表示执行此求和运算的一个或多个组件。如果需要,也可以使用环路滤波器(在编解码环路中或在编解码环路后)以使像素转变平滑,或以其他方式改善视频质量。滤波器单元91旨在表示一个或多个环路滤波器,诸如,去方块滤波器、自适应环路滤波器(ALF)和样点自适应偏移(SAO)滤波器。尽管滤波器单元91在图13中示出为环路滤波器,但在其他配置中,滤波器单元91可以实施为后环路滤波器。给定帧或图片中的解码的视频块然后被存储在图片存储器92中,图片存储器92存储用于后续运动补偿的参考图片。图片存储器92也存储解码的视频以供稍后呈现在显示设备(诸如,图l中示出的视频目的地设备122)上。
在前述描述中,本申请的各方面条参考特定实施例而描述,但本领域技术人员将认识到本申请不限于此。因此,尽管本文中已详细描述本申请的说明性实施例,但应理解,本发明概念可以以其他方式不同地体现并使用,并且所附申请专利范围旨在解释为包括除了先前技术所限制之外的这些改变。上文所描述的主题的各种特征和方面可以单独地或联合地使用。另外,实施例可以用于超出本文所描述的那些环境和应用的任何数量的环境和应用,而不脱离本说明书的更广泛精神和范围。因此,本说明书和附图被视为说明性而非限定性。为说明的目的,以特定次序描述方法。应理解,在替代实施例中,可以以与所描述的次序不同的次序来执行该方法。
在组件被描述为“被配置为”执行某些操作的情况下,例如通过设计电子电路或其他硬件来执行操作、通过对可编程电子电路(例如,微处理器或其他合适的电子电路)编程来执行操作、或其任何组合,这种配置可以实现。
结合本文所公开的实施例而描述的各种说明性逻辑块、模块、电路和算法步骤可以被实施为电子硬件、计算机软件、固件或其组合。为了清楚地说明硬件与软件的该可互换性,各种说明性组件、块、模块、电路和步骤已在上文总体上按其功能性进行了描述。这种功能性被实施为硬件还是软件取决于特定应用和强加于整个系统的设计约束。本领域技术人员可以针对每个特定应用而以改变的方式实施所描述的功能性,但不应该将这些实施决定解析为使得脱离本发明的范围。
本文描述的技术也可以以电子硬件、计算机软件、固件或其任何组合中。这些技术可以实施在多种设备的任何一个中,诸如,通用计算机、无线通信设备手机或具有多种用途(包括在无线通信设备手机和其他设备中的应用)的集成电路设备。可以将描述为模块或组件的任何特征共同实施在集成式逻辑设备中或分开实施为离散但可以互操作的逻辑设备。如果以软件实施,则该技术可以至少部分地由包含程序代码的计算机可读数据存储介质实现,该程序代码包括当被执行时执行以上描述的方法中的一个或多个的指令。计算机可读数据存储介质可以形成计算机程序产品的一部分,计算机程序产品可以包括封装材料。计算机可读介质可以包含存储器或数据存储介质,诸如,随机存取存储器(RAM),诸如,同步动态随机存取存储器(SDRAM)、只读存储器(ROM)、非易失性随机存取存储器(NVRAM)、电可擦除可编程只读存储器(EEPROM)、闪存、磁性或光学数据存储介质等。附加地或可替换地,该技术可以至少部分地由计算机可读通信介质实现,该计算机可读通信介质承载或传达以指令或数据结构的形式并且可以由计算机存取、读取和/或执行的程序代码,诸如,传播的信号或波。
程序代码可以由可以包括或多个处理器的处理器执行,诸如,一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、场可编程逻辑数组(FPGA)或其他等效集成或分立逻辑电路。该处理器可以被配置为执行本公开所描述的技术中的任何一个。通用处理器可以为微处理器;但在替代方案中,处理器可以为任何常规处理器、控制器、微控制器或状态机。处理器也可以实施为计算设备的组合,例如DSP与微处理器的组合、多个微处理器、结合DSP核心的一个或多个微处理器,或任何其他这种配置。因此,如本文中使用的术语“处理器”可以指前述结构中的任何一个、前述结构的任何组合或适合于实施本文描述的技术的任何其他结构或装置。此外,在一些方面中,本文描述的功能性可以提供在被配置用于编码和解码的专用软件模块或硬件模块,或并入组合的视频编码器-解码器(CODEC)中。

Claims (30)

1.一种对视频数据编解码的计算机实施的方法,包括:
在视频编解码设备处获得包括多个编码的视频帧的视频数据;
为来自所述多个编码的视频帧中的编码的视频帧的第一块,确定第一块中的像素中的第一活动性;
为来自所述编码的视频帧的第二块,确定第二块中的像素中的第二活动性,其中所述第二块在所述视频帧内紧接于所述第一块的右侧;
使用所述第一活动性和所述第二活动性确定所述第一块和所述第二块的平均活动性;
使用所述第一活动性和所述第二活动性确定所述第一块与所述第二块之间的活动性差异;
使用所述平均活动性和所述活动性差异选择所述第一块与所述第二块之间的边界的分类;
使用所述分类选择滤波器;
将所述滤波器应用于所述第一块中的像素或所述第二块中的像素,以使这些像素之间的转变平滑;以及
在应用所述滤波器之后输出要添加到重构的视频帧的第一块和第二块。
2.如权利要求l所述的计算机实施的方法,还包括:
将非均匀量化应用于所述平均活动性和所述活动性差异,其中所述非均匀量化产生级别化平均活动性和级别化活动性差异,并且其中选择所述分类还包括使用所述级别化平均活动性和所述级别化活动性差异。
3.如权利要求l所述的计算机实施的方法,还包括:
确定所述第一块的类型,所述类型指示所述第一块中的像素相似或者相异,其中选择所述滤波器还包括使用所述类型。
4.如权利要求3所述的计算机实施的方法,还包括:
基于所述第二块是不同于所述第一块的类型而选择不同的滤波器用于所述第二块。
5.如权利要求l所述的计算机实施的方法,还包括:
为来自所述第一块中的像素的特定像素,确定所述特定像素距所述边界的距离,其中所述滤波器还基于所述距离来选择。
6.如权利要求5所述的计算机实施的方法,还包括:
基于来自所述第一块的像素的第二像素相比于所述特定像素具有距所述边界的不同距离而选择不同的滤波器用于所述第二像素。
7.如权利要求l所述的计算机实施的方法,其中所述滤波器的索引被包括在所述编码的视频数据中。
8.如权利要求l所述的计算机实施的方法,其中所述第一块中的像素和所述第二块中的像素沿所述边界的段,所述段小于所述边界的全长,并且其中所述第一块中的像素和所述第二块中的像素远离所述边界最多八个像素。
9.如权利要求l所述的计算机实施的方法,其中所述方法包括在应用所述滤波器之后和在输出第一块和第二块之前,将至少一个裁剪值应用于由所述滤波器产生的像素值。
10.如权利要求l所述的计算机实施的方法,其中当包括所述第一块和所述第二块的条带是被帧内编码的条带时,边界强度值等于二,并且其中当所述条带是被帧间编码的条带时,所述边界强度值等于零或一。
11.如权利要求l所述的计算机实施的方法,其中所述滤波器是使用来自多个滤波器索引中的滤波器索引来选择的,并且其中所述选择包括强制使所述第一块的第一像素具有与所述第一块的第二像素相同的滤波器索引。
12.一种视频编解码设备,其包括:
存储器,被配置为存储视频数据,所述视频数据包括多个编码的视频帧;和
处理器,被配置为:
为来自所述多个编码的视频帧中的编码的视频帧的第一块,确定所述第一块中的像素中的第一活动性;
为来自所述编码的视频帧的第二块,确定所述第二块中的像素中的第二活动性,其中所述第二块在所述视频帧内紧接于所述第一块的右侧;
使用所述第一活动性和所述第二活动性确定所述第一块和所述第二块的平均活动性;
使用所述第一活动性和所述第二活动性确定所述第一块与所述第二块之间的活动性差异;
使用所述平均活动性和所述活动性差异选择所述第一块与所述第二块之间的边界的分类;
使用所述分类选择滤波器;
将所述滤波器应用于所述第一块中的像素或所述第二块中的像素,以使这些像素之间的转变平滑;以及
在应用所述滤波器之后输出要添加到重构的视频帧的第一块和第二块。
13.如权利要求12所述的视频编解码设备,其中所述处理器还被配置为:
将非均匀量化应用于所述平均活动性和所述活动性差异,其中所述非均匀量化产生级别化平均活动性和级别化活动性差异,并且其中选择所述分类还包括使用所述级别化平均活动性和所述级别化活动性差异。
14.如权利要求12所述的视频编解码设备,其中所述处理器还被配置为:
确定所述第一块的类型,所述类型指示所述第一块中的像素相似或者相异,其中选择所述滤波器还包括使用所述类型。
15.如权利要求14所述的视频编解码设备,其中所述处理器还被配置为:
基于所述第二块是不同于所述第一块的类型而选择不同的滤波器用于所述第二块。
16.如权利要求12所述的视频编解码设备,其中所述处理器还被配置为:
为来自所述第一块中的像素的特定像素,确定所述特定像素距所述边界的距离,其中所述滤波器还基于所述距离来选择。
17.如权利要求16所述的视频编解码设备,其中所述处理器还被配置为:
基于来自所述第一块的像素的第二像素相比于所述特定像素具有距所述边界的不同距离而选择不同的滤波器用于所述第二像素。
18.如权利要求12所述的视频编解码设备,其中所述滤波器的索引被包括在所述编码的视频数据中。
19.如权利要求12所述的视频编解码设备,其中所述第一块中的像素和所述第二块中的像素沿所述边界的段,所述段小于所述边界的全长,并且其中所述第一块中的像素和所述第二块中的像素远离所述边界最多八个像素。
20.如权利要求12所述的视频编解码设备,其中所述处理器还被配置为在应用所述滤波器之后和在输出第一块和第二块之前,将至少一个裁剪值应用于由所述滤波器产生的像素值。
21.如权利要求12所述的视频编解码设备,其中当包括所述第一块和所述第二块的条带是被帧内编码的条带时,边界强度值等于二,并且其中当所述条带是被帧间编码的条带时,所述边界强度值等于零或一。
22.如权利要求12所述的视频编解码设备,其中所述滤波器是使用来自多个滤波器索引中的滤波器索引来选择的,并且其中所述选择包括强制使所述第一块的第一像素具有与所述第一块的第二像素相同的滤波器索引。
23.如权利要求12所述视频编解码设备,还包括:
相机,其用于捕获视频数据。
24.如权利要求12所述的视频编解码设备,还包括:
显示器,其用于显示解码的视频数据。
25.一种非暂时性计算机可读介质,其上储存有指令,当所述指令由视频编解码设备的一个或多个处理器执行时,使得所述一个或多个处理器执行包括以下各项的操作:
获得包括多个编码的视频帧的视频数据;
为来自所述多个编码的视频帧中的编码的视频帧的第一块,确定第一块中的像素中的第一活动性;
为来自所述编码的视频帧的第二块,确定第二块中的像素中的第二活动性,其中所述第二块在所述视频帧内紧接于所述第一块的右侧;
使用所述第一活动性和所述第二活动性确定所述第一块和所述第二块的平均活动性;
使用所述第一活动性和所述第二活动性确定所述第一块与所述第二块之间的活动性差异;
使用所述平均活动性和所述活动性差异选择所述第一块与所述第二块之间的边界的分类;
使用所述分类选择滤波器;
将所述滤波器应用于所述第一块中的像素或所述第二块中的像素,以使这些像素之间的转变平滑;以及
在应用所述滤波器之后输出要添加到重构的视频帧的第一块和第二块。
26.如权利要求25所述的非暂时性计算机可读介质,其中所述操作还包括:
将非均匀量化应用于所述平均活动性和所述活动性差异,其中所述非均匀量化产生级别化平均活动性和级别化活动性差异,并且其中选择所述分类还包括使用所述级别化平均活动性和所述级别化活动性差异。
27.如权利要求25所述的非暂时性计算机可读介质,其中所述操作还包括:
确定所述第一块的类型,所述类型指示所述第一块中的像素相似或者相异,其中选择所述滤波器还包括使用所述类型。
28.如权利要求25所述的非暂时性计算机可读介质,其中所述操作还包括:
为来自所述第一块中的像素的特定像素,确定所述特定像素距所述边界的距离,其中所述滤波器还基于所述距离来选择。
29.一种装置,包括:
用于获得包括多个编码的视频帧的视频数据的部件;
用于为来自所述多个编码的视频帧的编码的视频帧的第一块,确定所述第一块中的像素中的第一活动性的部件;
用于为来自所述编码的视频帧的第二块,确定所述第二块中的像素中的第二活动性的部件,其中所述第二块在所述视频帧内紧接于所述第一块的右侧;
用于使用所述第一活动性和所述第二活动性确定所述第一块和所述第二块的平均活动性的部件;
用于使用所述第一活动性和所述第二活动性确定所述第一块与所述第二块之间的活动性差异的部件;
用于使用所述平均活动性和所述活动性差异选择所述第一块与所述第二块之间的边界的分类的部件;
用于使用所述分类选择滤波器的部件;
用于将所述滤波器应用于所述第一块中的像素或所述第二块中的像素,以使这些像素之间的转变平滑的部件;以及
用于在应用所述滤波器之后输出要添加到重构的视频帧的第一块和第二块的部件。
30.如权利要求29所述的装置,其中用于选择滤波器的部件包括:如果所述分类具有第一值则选择滤波器的第一集合的装置,和如果所述分类具有不同于所述第一值的第二值则选择滤波器的第二集合的装置,
其中所述滤波器的第二集合是滤波器少于所述第一集合的集合,并且是所述第一集合的子集。
CN201980024417.2A 2018-04-02 2019-04-02 用于视频编解码和处理的去方块滤波器 Active CN112313953B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862651703P 2018-04-02 2018-04-02
US62/651,703 2018-04-02
US16/372,180 2019-04-01
US16/372,180 US10708592B2 (en) 2018-04-02 2019-04-01 Deblocking filter for video coding and processing
PCT/US2019/025289 WO2019195215A1 (en) 2018-04-02 2019-04-02 Deblocking filter for video coding and processing

Publications (2)

Publication Number Publication Date
CN112313953A true CN112313953A (zh) 2021-02-02
CN112313953B CN112313953B (zh) 2024-01-16

Family

ID=68054042

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980024417.2A Active CN112313953B (zh) 2018-04-02 2019-04-02 用于视频编解码和处理的去方块滤波器

Country Status (5)

Country Link
US (1) US10708592B2 (zh)
EP (1) EP3772261B1 (zh)
CN (1) CN112313953B (zh)
TW (1) TW202002631A (zh)
WO (1) WO2019195215A1 (zh)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20240056759A (ko) * 2018-01-08 2024-04-30 삼성전자주식회사 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
US11956452B2 (en) * 2018-04-11 2024-04-09 Rockchip Electronics Co., Ltd. System and method for H.265 encoding
GB2588003B (en) 2018-06-05 2023-04-19 Beijing Bytedance Network Tech Co Ltd Interaction between pairwise average merging candidates and IBC
WO2019244118A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Component-dependent sub-block dividing
WO2019244117A1 (en) 2018-06-21 2019-12-26 Beijing Bytedance Network Technology Co., Ltd. Unified constrains for the merge affine mode and the non-merge affine mode
KR102598746B1 (ko) * 2018-07-02 2023-11-07 후아웨이 테크놀러지 컴퍼니 리미티드 비디오 코딩에서의 필터링을 위한 장치 및 방법
WO2020065518A1 (en) 2018-09-24 2020-04-02 Beijing Bytedance Network Technology Co., Ltd. Bi-prediction with weights in video coding and decoding
CN112970262B (zh) 2018-11-10 2024-02-20 北京字节跳动网络技术有限公司 三角预测模式中的取整
WO2020249124A1 (en) 2019-06-14 2020-12-17 Beijing Bytedance Network Technology Co., Ltd. Handling video unit boundaries and virtual boundaries based on color format
CN114868391A (zh) 2019-08-23 2022-08-05 北京字节跳动网络技术有限公司 编解码块或子块边界处的去方块滤波
WO2021051047A1 (en) 2019-09-14 2021-03-18 Bytedance Inc. Chroma quantization parameter in video coding
BR112022005046A2 (pt) 2019-09-18 2022-07-05 Beijing Bytedance Network Tech Co Ltd Método de processamento de dados de vídeo, aparelho para processar dados de vídeo, meio de armazenamento não transitório legível por computador e meio de gravação não transitório legível por computador
EP4018652A4 (en) 2019-09-22 2022-11-02 Beijing Bytedance Network Technology Co., Ltd. FILLING METHOD IN AN ADAPTIVE LOOP FILTER
CN114450954A (zh) 2019-09-27 2022-05-06 北京字节跳动网络技术有限公司 不同视频单元之间的自适应环路滤波
CN114651442A (zh) 2019-10-09 2022-06-21 字节跳动有限公司 视频编解码中的跨分量适应性回路滤波
WO2021068906A1 (en) 2019-10-10 2021-04-15 Beijing Bytedance Network Technology Co., Ltd. Padding process at unavailable sample locations in adaptive loop filtering
KR20220073746A (ko) 2019-10-14 2022-06-03 바이트댄스 아이엔씨 비디오 처리에서 크로마 양자화 파라미터 사용
EP4042684A4 (en) 2019-10-29 2022-11-30 Beijing Bytedance Network Technology Co., Ltd. SIGNALING AN ADAPTIVE CROSS-COMPONENT LOOP FILTER
CN114788279A (zh) 2019-12-09 2022-07-22 字节跳动有限公司 视频编解码中使用的量化组
MX2022006734A (es) 2019-12-11 2022-06-09 Beijing Bytedance Network Tech Co Ltd Relleno de muestra para filtrado de circuito adaptivo de componente cruzado.
CN115643402B (zh) * 2019-12-28 2023-09-19 北京达佳互联信息技术有限公司 用于对视频数据进行编码的方法、设备和介质
WO2021134393A1 (en) * 2019-12-31 2021-07-08 Huawei Technologies Co., Ltd. Method and apparatus of deblocking filtering between boundaries of blocks predicted using weighted prediction and non-rectangular merge modes
WO2021138293A1 (en) 2019-12-31 2021-07-08 Bytedance Inc. Adaptive color transform in video coding
KR20220127351A (ko) * 2020-02-04 2022-09-19 후아웨이 테크놀러지 컴퍼니 리미티드 하이 레벨 신택스를 시그널링하는 것에 관한 인코더, 디코더 및 대응하는 방법
WO2021170036A1 (en) * 2020-02-26 2021-09-02 Mediatek Inc. Methods and apparatuses of loop filter parameter signaling in image or video processing system
JP2023531223A (ja) 2020-06-30 2023-07-21 北京字節跳動網絡技術有限公司 適応ループフィルタリングのための境界位置
EP4315851A1 (en) * 2021-03-31 2024-02-07 Telefonaktiebolaget LM Ericsson (publ) Extra-long tap deblocking
WO2024002552A1 (en) * 2022-06-30 2024-01-04 Telefonaktiebolaget Lm Ericsson (Publ) Decision process for extra-long deblocking filters

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013064547A1 (en) * 2011-11-04 2013-05-10 Panasonic Corporation Deblocking filtering with modified image block boundary strength derivation
EP2713336A1 (en) * 2008-06-25 2014-04-02 Cisco Technology, Inc. Combined deblocking and denoising filter
CN106105201A (zh) * 2014-03-14 2016-11-09 高通股份有限公司 使用像素距离的解块滤波
CN106464866A (zh) * 2014-05-29 2017-02-22 佳能株式会社 用于对视频样本的块进行去块的方法、设备和系统
US20180091812A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI103003B1 (fi) * 1997-06-13 1999-03-31 Nokia Mobile Phones Ltd Suodatusmenetelmä, suodatin ja matkaviestinpääte
US8761538B2 (en) * 2008-12-10 2014-06-24 Nvidia Corporation Measurement-based and scalable deblock filtering of image data
US10212456B2 (en) * 2017-06-02 2019-02-19 Apple Inc. Deblocking filter for high dynamic range (HDR) video

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2713336A1 (en) * 2008-06-25 2014-04-02 Cisco Technology, Inc. Combined deblocking and denoising filter
WO2013064547A1 (en) * 2011-11-04 2013-05-10 Panasonic Corporation Deblocking filtering with modified image block boundary strength derivation
CN106105201A (zh) * 2014-03-14 2016-11-09 高通股份有限公司 使用像素距离的解块滤波
CN106464866A (zh) * 2014-05-29 2017-02-22 佳能株式会社 用于对视频样本的块进行去块的方法、设备和系统
US20180091812A1 (en) * 2016-09-23 2018-03-29 Apple Inc. Video compression system providing selection of deblocking filters parameters based on bit-depth of video data

Also Published As

Publication number Publication date
EP3772261B1 (en) 2024-04-24
US20190306503A1 (en) 2019-10-03
TW202002631A (zh) 2020-01-01
CN112313953B (zh) 2024-01-16
WO2019195215A1 (en) 2019-10-10
EP3772261A1 (en) 2021-02-10
US10708592B2 (en) 2020-07-07

Similar Documents

Publication Publication Date Title
CN112313953B (zh) 用于视频编解码和处理的去方块滤波器
JP7422684B2 (ja) ブロックベースの適応ループフィルタ(alf)の設計およびシグナリング
US10412419B2 (en) Adaptive filtering in video coding
US9906790B2 (en) Deblock filtering using pixel distance
US9432696B2 (en) Systems and methods for low complexity forward transforms using zeroed-out coefficients
US10638133B2 (en) Delta quantization parameter (QP) coding options for video
TW201711461A (zh) 片級內部區塊複製及其他視訊寫碼改善
US11303892B2 (en) Adaptive rounding for loop filters
KR20190089890A (ko) 비디오 코딩에서의 양방향 필터 사용의 표시
US11356662B2 (en) Simplification of clipping value calculation for adaptive loop filters
US20170347126A1 (en) Video debanding using adaptive filter sizes and gradient based banding detection
JP2019534631A (ja) ピークサンプル適応オフセット
WO2019010315A1 (en) BILATERAL FILTER WITHOUT DIVISION
JP2023521969A (ja) 色フォーマットサポートのための適応ループフィルタ処理
KR20220032016A (ko) 래스터-스캔 슬라이스들에 걸친 적응적 루프 필터링
TW201921938A (zh) 具有在用於視訊寫碼之隨機存取組態中之未來參考訊框之可調適圖像群組結構
RU2783335C2 (ru) Устройство и сигнализация адаптивного контурного фильтра (alf) на блочной основе
WO2024039803A1 (en) Methods and devices for adaptive loop filter
EP4260559A1 (en) Low complexity history usage for rice parameter derivation for high bit-depth video coding

Legal Events

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