双去块滤波阈值

文档序号:1559843 发布日期:2020-01-21 浏览:30次 >En<

阅读说明:本技术 双去块滤波阈值 (Dual deblocking filter threshold ) 是由 韩敬宁 许耀武 于 2018-05-08 设计创作,主要内容包括:使用双去块滤波阈值的视频代码化包括通过对编码比特流进行解码而生成重构帧并且输出该重构帧。解码可以包括通过对编码比特流的一部分进行解码而生成解码块,从编码比特流中识别第一去块阈值索引,从编码比特流中识别第二去块阈值索引,基于该解码块来生成重构块,并且将该重构块包括在重构帧中。生成该重构块可以包括基于该第一去块阈值索引和该第二去块阈值索引进行去块。(Video coding using the dual deblocking filtering threshold includes generating a reconstructed frame by decoding an encoded bitstream and outputting the reconstructed frame. Decoding may include generating a decoded block by decoding a portion of the encoded bitstream, identifying a first deblocking threshold index from the encoded bitstream, identifying a second deblocking threshold index from the encoded bitstream, generating a reconstructed block based on the decoded block, and including the reconstructed block in a reconstructed frame. Generating the reconstructed block may include deblocking based on the first deblocking threshold index and the second deblocking threshold index.)

双去块滤波阈值

背景技术

数字视频例如可以被用于经由视频会议进行的远程商务会晤、高清视频娱乐、视频广告或者用户所生成视频的共享。由于视频数据中涉及大量数据,所以高性能压缩对于传输和存储会是有利的。因此,提供在具有有限带宽的通信信道上传送的高分辨率视频将会是有利的,诸如使用双去块滤波阈值的视频代码化。

发明内容

本申请涉及到用于传输或存储的视频流数据的编码和解码。本文公开了用于使用双去块滤波阈值的编码和解码的系统、方法和装置的多个方面。

一个方面是一种用于使用双去块滤波阈值的视频解码的方法。使用双去块滤波阈值的视频解码可以包括通过对编码比特流进行解码而生成重构帧并且输出该重构帧。解码可以包括通过对编码比特流的一部分进行解码而生成解码块,从编码比特流中识别第一去块阈值索引,从编码比特流中识别第二去块阈值索引,基于该解码块生成重构块,并且将该重构块包括在重构帧中。生成该重构块可以包括基于该第一去块阈值索引和该第二去块阈值索引的去块。

另一个方面是一种用于使用双去块滤波阈值的视频编码的方法。使用双去块滤波阈值的视频编码可以包括通过对输入帧进行编码而生成编码帧并且将输出比特流进行输出。编码可以包括通过对编码帧进行解码而生成解码帧,通过重构该解码帧而生成重构帧,并且生成包括该编码帧、对第一去块阈值索引的指示和对第二去块阈值索引的指示的输出比特流。重构该解码帧可以包括从用于对解码帧进行去块的多个去块阈值索引中识别联合去块阈值索引,从该多个去块阈值索引中识别第一去块阈值索引,其中识别该第一去块阈值索引包括使用该联合去块阈值索引作为用于对该解码帧进行去块的第二去块阈值索引,并且从该多个去块阈值索引中识别第二去块阈值索引,其中识别该第二去块阈值索引包括使用该第一去块阈值索引对该解码帧进行去块。

另一个方面是一种用于使用双去块滤波阈值的视频编码的方法。使用双去块滤波阈值的视频编码可以包括通过对编码比特流的一部分进行解码而生成包括解码块的解码帧来生成重构帧,从该编码比特流中识别第一去块阈值索引,从该编码比特流中识别第二去块阈值索引,该第二去块阈值索引不同于该第一去块阈值索引,通过基于该第一去块阈值索引在第一方向对该解码帧进行去块而生成部分去块帧,并且基于该第二去块阈值索引在第二方向对该部分去块帧进行去块而生成重构帧。该方法可以包括输出该重构帧。

下文将更加详细地描述这些和其它方面中的变化形式。

附图说明

本文的描述参考附图,其中除非有所指出,否则同样的附图标记贯穿多个视图而指代同样的部分。

图1是依据本公开实施方式的计算设备的示图。

图2是依据本公开实施方式的计算和通信系统的示图。

图3是依据本公开实施方式的用于在编码和解码中使用的视频流的示图。

图4是依据本公开实施方式的编码器的框图。

图5是依据本公开实施方式的解码器的框图。

图6是依据本公开实施方式的帧的一部分的表示形式的框图。

图7示出了依据本公开实施方式的包括块边界的输入帧的一部分的示例。

图8示出了依据本公开实施方式的包括块伪像的重构帧的一部分的示例。

图9示出了依据本公开实施方式的包括具有针对一行像素的像素粒度的块伪像的重构帧的一部分的示例。

图10示出了依据本公开实施方式的包括具有针对一列像素的像素粒度的块伪像的重构帧的一部分的示例。

图11是依据本公开实施方式的使用双去块滤波阈值的编码的示例的流程图。

图12是依据本公开实施方式的识别去块阈值索引的示例的流程图。

图13是依据本公开实施方式的识别去块阈值索引的示例的流程图。

图14是依据本公开实施方式的确定当前误差测度的示例的流程图。

图15是依据本公开实施方式的对当前块进行去块的示例的流程图。

图16是依据本公开实施方式的使用双去块滤波阈值的解码的示例的流程图。

具体实施方式

视频压缩方案可以包括将每个图像或帧拆分为诸如块的较小部分,并且使用技术生成输出比特流来限制针对输出中每个块所包括的信息。在一些实施方式中,可以通过减少空间冗余度、减少时间冗余度或者它们的组合来限制针对输出中的每个块所包括的信息。例如,可以通过基于编码器和解码器二者可用的信息来预测帧并且包括表示预测帧和原始帧之间的差异或残差的信息来减少时间或空间冗余度。可以通过将残差信息变换为变换系数,量化该变换系数并且对经量化的变换系数进行熵代码化来进一步压缩该残差信息。

经编码的比特流可以被解码以便从该受限信息重建块和源图像。解码帧可能包括伪像,诸如量化所导致的块状伪像或交叉块边界。为了减少伪像,可以诸如使用去块滤波器沿着块边界(诸如垂直块边界和水平块边界)对解码帧进行滤波。为了保留来自输入图像的与块边界对齐的边缘内容,诸如对象边缘,该滤波可以识别阈值的值以便确定是否滤波相应块边界以及识别相对应的滤波参数。使用一个阈值集合对垂直块边界和水平块边界滤波可能会限制滤波的准确性并且降低编码质量。

使用双去块滤波阈值的视频代码化可以通过在诸如沿垂直块边界的第一方向识别用于滤波的第一最优滤波阈值集合以及在诸如沿水平块边界的第二方向识别用于滤波的第二最优滤波阈值集合而提高准确性和编码质量。编码器可以识别对应于被识别用于对垂直块边界进行滤波的滤波阈值集合的去块阈值索引以及对应于被识别用于对水平块边界进行滤波的滤波阈值集合的另一个去块阈值索引。该编码器可以将指示去块阈值索引的信息包括在编码比特流中。解码器可以从编码比特流中提取指示去块阈值索引的信息,识别相对应的滤波阈值,并且在第一方向使用第一滤波阈值集合以及在第二方向使用第二滤波阈值集合对解码帧进行去块。

图1是依据本公开实施方式的计算设备100的示图。所示的计算设备100包括存储器110、处理器120、用户接口(UI)130、电子通信单元140、传感器150、电源160和总线170。如本文所使用的,术语“计算设备”包括能够执行本文所公开的任意方法或者其任意一个或多个部分的任意单元或单元组合。

计算设备100可以是静态计算设备,诸如个人计算机(PC)、服务器、工作站、小型计算机或大型计算机;或者是移动计算设备,诸如移动电话、个人数字助理(PDA)、膝上计算机或平板PC。虽然被示为单个单元,但是计算设备100中的任意一个或多个部件都能够被整合为任意数量的单独物理单元。例如,UI 130和处理器120能够被整合在第一物理单元中,存储器110则能够被整合在第二物理单元中。

存储器110可以包括任意的非瞬态计算机可用或计算机可读介质,诸如例如能够包含、存储、传送或传输数据112、指令116、操作系统116或与之相关联的任意信息以便由计算设备100的其它组件所使用或结合其使用的任意的有形设备。所述非瞬态计算机可用或计算机可读介质例如可以是固态驱动器、存储卡、可移除介质、只读存储器(ROM)、随机访问存储器(RAM),包括硬盘、软盘、光盘在内的任意类型的盘,磁性或光学卡、专用集成电路(ASIC),或者适于存储信息的任意类型的非瞬态介质,或者它们的任意组合。

虽然示出了单个单元,但是存储器110可以包括多个物理单元,诸如一个或多个诸如随机访问存储器单元的主存储单元,一个或多个诸如磁盘的辅数据存储单元,或者它们的组合。例如,数据112或其一部分、指令114或其一部分,或者它们二者可以被存储在辅存储单元中,并且可以结合对相应数据112的处理、对相应指令114的执行或者其二者而被加载或以其它方式传输至主存储单元。在一些实施方式中,存储器110或者其一部分可以是可移除存储器。

数据112可以包括诸如输入音频数据、编码音频数据、解码音频数据等的信息。指令114可以包括诸如代码的指示,所述指示用于执行本文所公开的任意方法或者其任意一个或多个部分。指令114能够在硬件、软件或者它们的任意组合中实现。例如,指令114可以被实施为存储在存储器110中的信息,诸如计算机程序,其可以被处理器120所执行从而实行如本文所描述的任意的相应方法、算法、方面或者它们的组合。

虽然被示为包括在存储器110中,但是在一些实施方式中,指令114或者其一部分可以被实施为可以包括用于实施如本文所描述的任意方法、算法、方面或者它们的组合的特殊硬件的专用处理器或电路。指令114的部分能够跨相同机器或不同机器上的多个处理器或者跨网络进行分布,所述网络诸如局域网、广域网、互联网或者它们的组合。

处理器120可以包括能够操控或处理现有或日后开发的数字信号或其它电子信息的任意设备或系统,包括光学处理器、量子处理器、分子处理器,或者它们的组合。例如,处理器120可以包括专用内处理器、中央处理器(CPU)、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、可编程逻辑阵列、可编程逻辑控制器、伪代码、固件、任意类型的集成电路(IC)、状态机,或者它们的任意组合。如本文所使用的,术语“处理器”包括单个处理器或多个处理器。

UI 130可以包括能够与用户对接的任意单元,诸如虚拟或物理键盘、触摸板、显示器、触摸显示器、扬声器、麦克风、视频相机、传感器,或者它们的任意组合。例如,UI 130可以是音频-视觉显示设备,并且计算设备100可以使用诸如音频-视觉显示设备的UI 130诸如结合显示诸如解码视频之类的视频来呈现诸如解码音频的音频。虽然被示为单个单元,UI 130可以包括一个或多个物理单元。例如,UI 130可以包括用于执行与用户的音频通信的音频接口,和用于执行与用户的基于视觉和触摸的通信的触摸显示器。

电子通信单元140能够经由有线或无线电子通信介质180传送、接收或者传送及接收信号,所述电子通信介质180诸如射频(RF)通信介质、紫外(UV)通信介质、可见光通信介质、光纤通信介质、线路通信介质,或者它们的组合。例如,如所示出的,电子通信单元140操作连接至被配置为经由无线信号进行通信的电子通信接口142,诸如天线。

虽然电子通信接口142在图1中被示为无线天线,但是电子通信接口142可以是如所示出的无线天线,诸如以太网端口、红外端口、串行端口的有线通信端口,或者能够与有线或无线电子通信介质180进行对接的任意其它有线或无线单元。虽然图1示出了单个电子通信单元140以及单个电子通信接口142,但是能够使用任意数量的电子通信单元和任意数量的电子通信接口。

传感器150例如可以包括音频感应设备、可见光感应设备、运动感应设备,或者它们的组合。例如,100传感器150可以包括诸如麦克风的声音感应设备,或者现有或日后开发的能够感应接近计算设备100的声音的任意其它声音感应设备,所述声音诸如操作计算设备100的用户所进行的演讲或其它话语。在另一个示例中,传感器150可以包括相机,或者现有或日后开发的能够感应诸如操作计算设备的用户的图像的图像的任意其它图像感应设备。虽然示出了单个传感器150,但是计算设备100可以包括多个传感器150。例如,计算设备100可以包括以方向朝向计算设备100的用户的视场进行定向的第一相机以及以方向远离计算设备100的用户的视场进行定向的第二相机。

电源160可以是用于为计算设备100供电的任意适当设备。例如,电源160可以包括有线外部电源接口;一个或多个干电池,诸如镍镉(NiCd)、镍锌(NiZn)、镍氢(NiMH)、锂离子(Li-ion);太阳能电池;燃料电池;或者能够为计算设备100供电的任意其它设备。虽然图1中示出了单个电源160,但是计算设备100可以包括多个电源160,诸如电池和有线外部电源接口。

虽然被示为分立的单元,但是电子通信单元140、电子通信接口142、UI 130、电源160或者它们的一部分可以被配置为组合单元。例如,电子通信单元140、电子通信接口142、UI 130和电源160可以被实施为能够与外部显示设备对接、提供通信、电力或其二者的通信端口。

存储器110、处理器120、UI 130、电子通信单元140、传感器150或电源160中的一个或多个可以经由总线170操作耦合。虽然图1中示出了单个总线170,但是计算设备100可以包括多个总线。例如,存储器110、处理器120、UI 130、电子通信单元140、传感器150和总线170可以经由总线170从电源160接收电力。在另一个示例中,存储器110、处理器120、UI130、电子通信单元140、传感器150、电源160或者它们的组合可以诸如通过经由总线170发送和接收电子信号来传送数据。

虽然图1中并未单独示出,但是处理器120、UI 130、电子通信单元140、传感器150或电源160中的一个或多个可以包括内部存储器,诸如内部缓冲器或寄存器。例如,处理器120可以包括内部存储器(未示出)并且可以将数据112从存储器110读入到所述内部存储器(未示出)中以便进行处理。

虽然被示为分立的部件,但是存储器110、处理器120、UI 130、电子通信单元140、传感器150、电源160和总线170或者它们的组合可以被整合在一个或多个电子单元、电路或芯片中。

图2是依据本公开实施方式的计算和通信系统200的示意图。所示出的计算和通信系统200包括计算和通信设备100A、100B、100C,接入点210A、210B,以及网络220。例如,计算和通信系统200可以是向诸如计算和通信设备100A、100B、100C的一个或多个有线或无线通信设备提供诸如语音、音频、数据、视频、消息、广播或它们的组合的通信的多个接入系统。虽然图2为了简明而示出了三个计算和通信设备100A、100B、100C,两个接入点210A、210B,以及一个网络220,但是能够使用任意数量的计算和通信设备、接入点和网络。

例如,计算和通信设备100A、100B、100C可以是诸如图1所示的计算设备100的计算设备。例如,计算和通信设备100A、100B可以是用户设备,诸如移动计算设备、膝上计算机、瘦客户端或智能电话,而计算设备100C可以是服务器,诸如大型机或集群。虽然计算和通信设备100A与计算和通信设备100B被描述为用户设备以及计算和通信设备100C被描述为服务器,但是任何计算和通信设备都可以执行服务器的一些或全部功能、用户设备的一些或全部功能,或者服务器和用户设备的一些或全部功能。例如,服务器计算和通信设备100C可以对音频数据进行接收、编码、处理、存储、传送或者它们的组合,并且计算和通信设备100A和计算和通信设备100B之一或二者可以对音频数据进行接收、编码、处理、存储、呈现或者它们的组合。

可以包括用户设备(UE)、移动站点、固定或移动订户单元、蜂窝电话、个人计算机、平板计算机、服务器、消费者电器或者任意类似设备的每个计算和通信设备100A、100B、100C可以被配置为诸如经由网络220来执行有线或无线通信。例如,计算和通信设备100A、100B、100C能够被配置为传送或接收有线或无线通信信号。虽然每个计算和通信设备100A、100B、100C被示为单个单元,但是计算和通信设备可以包括任意数量的互连部件。

每个接入点210A、210B可以是被配置为经由有线或无线通信链路180A、180B、180C与计算和通信设备100A、100B、100C,网络220或者它们二者进行通信的任意类型的设备。例如,接入点210A、210B可以包括基站、收发器基站(BTS)、节点B、增强型节点B(e节点B)、家用节点B(HNode-B)、无线路由器、有线路由器、集线器、中继器、交换机,或者任意的类似有线或无线设备。虽然每个接入点210A、210B被示为单个单元,但是接入点可以包括任意数量的互连部件。

网络220可以是被配置为通过有线或无线通信链路提供诸如语音、数据、应用、互联网语音协议(VoIP)或者任意其它通信协议或通信协议组合的服务的任意类型的网络。例如,网络220可以是局域网(LAN)、广域网(WAN)、虚拟私人网络(VPN)、移动或蜂窝电话网络、互联网,或者任意其它的电子通信手段。所述网络能够使用通信协议,诸如传输控制协议(TCP)、用户数据报协议(UDP)、互联网协议(IP)、实时传输协议(RTP)、超文本传输协议(HTTP),或者它们的组合。

计算和通信设备100A、100B、100C能够使用一个或多个有线或无线通信链路经由网络220或者经由有线和无线通信链路的组合互相通信。例如,如所示出的,计算和通信设备100A、100B能够经由无线通信链路180A、180B进行通信,并且计算和通信设备100C能够经由有线通信链路180C进行通信。计算和通信设备100A、100B、100C中的任一个都可以使用任何一个或多个有线或无线通信链路进行通信。例如,第一计算和通信设备100A能够使用第一类型的通信链路经由第一接入点210A进行通信,第二计算和通信设备100B能够使用第二类型的通信链路经由第二接入点210B进行通信,以及第三计算和通信设备100C能够使用第三类型的通信链路经由第三接入点(未示出)进行通信。类似地,接入点210A、210B能够经由一种或多种类型的有线或无线通信链路230A、230B与网络220进行通信。虽然图2示出了经由网络220进行通信的计算和通信设备100A、100B、100C,但是计算和通信设备100A、100B、100C能够经由任意数量的诸如直接有线或无线通信链路之类的通信链路互相通信。

在一些实施方式中,计算和通信设备100A、100B、100C中的一个或多个之间的通信可以省略经由网络220的通信,并且可以包括经由诸如数据存储设备的另一种介质(未示出)传输数据。例如,服务器计算和通信设备100C可以将诸如编码音频数据的音频数据存储在诸如便携式数据存储单元的数据存储设备中,并且计算和通信设备100A或计算和通信设备100B之一或二者可以存储所述数据存储单元访问、读取或获取所存储的音频数据,诸如通过将数据存储设备从服务器计算和通信设备100C物理断开连接并且将所述数据存储设备物理连接至计算和通信设备100A或计算和通信设备100B之一或二者。

计算和通信系统200的其它实施方式是可能的。例如,在一种实施方式中,网络220可以是专设网络并且可以省略接入点210A、210B中的一个或多个。计算和通信系统200可以包括图2中并未示出的设备、单元或部件。例如,计算和通信系统200可以包括许多另外的通信设备、网络和接入点。

图3是依据本公开实施方式的用于在编码和解码中使用的视频流300的示意图。诸如视频相机所捕捉的视频流或者计算设备所生成的视频流的视频流300可以包括视频序列310。视频序列310可以包括一系列相邻帧320。虽然示出了三个相邻帧320,但是视频序列310可以包括任意数量的相邻帧320。

来自相邻帧320中的每个帧330可以表示来自视频流的单个图像。虽然并未在图3中示出,但是帧330可以包括一个或多个分段、瓦片(tile)或平面,它们被单独(诸如并行地)代码化或以其它方式处理。帧330可以包括块340。虽然并未在图3中示出,但是块可以包括像素。例如,块可以包括16×16的像素群组、8×8的像素群组、8×16的像素群组,或者任意其它像素群组。除非本文以其它方式指出,否则术语“块”可以包括超块、宏块、分段、片段,或者帧的任意其它部分。帧、块、像素或者它们的组合可以包括显示信息,诸如亮度信息、色度信息,或者能够被用来存储、修改、通信或显示视频流或其一部分的任意其它信息。

图4是依据本公开实施方式的编码器400的框图。编码器400可以在诸如图1所示的计算设备100或者图2所示的计算和通信设备100A、100B、100C中实施,例如被实施为存储在诸如图1所示的存储器110的数据存储单元中的计算机软件程序。计算机软件程序可以包括机器指令,所述机器指令可以由诸如图1所示的处理器120的处理器所执行,并且使得设备如本文所描述的编码视频数据。编码器400可以被实施为例如包括在计算设备100中的专用硬件。

编码器400能够对诸如图3所示的视频流300的视频流402进行编码以生成编码(压缩)比特流404。在一些实施方式中,编码器400可以包括用于生成压缩比特流404的正向路径。该正向路径可以包括帧内/帧间预测单元410、变换单元420、量化单元430、熵编码单元440,或者它们的任意组合。在一些实施方式中,编码器400可以包括重构路径(由虚线连接线所指示)以重构帧以便对另外的块进行编码。该重构路径可以包括去量化单元450、逆变换单元460、重构单元470、滤波单元480,或者它们的任意组合。可以使用编码器400的其它结构变化形式来编码视频流402。

为了对视频流402进行编码,可以以块为单位处理视频流402内的每一帧。因此,可以从帧中的块识别出当前块并且对当前块进行编码。

在帧内/帧间预测单元410,可以使用帧内预测(其可能处于单一帧内)或帧间预测(其可以是逐帧的)对当前块进行编码。帧内预测可以包括从之前已经被编码并重构的当前帧中的样本生成预测块。帧间预测可以包括从一个或多个之前所构建的基准帧中的样本生成预测块。生成用于当前帧中的当前块的预测块可以包括执行运动估计以生成指示基准帧的适当基准部分的运动矢量。

帧内/帧间预测单元410可以包括从当前块(原始块)中减去该预测块以产生残差块。变换单元420可以执行基于块的变换,这可以包括将残差块变换为例如频域中的变换系数。基于块的变换的示例包括Karhunen-Loève变换(KLT)、离散余弦变换(DCT)、奇异值分解变换(SVD)和非对称离散正弦变换(ADST)。在一个示例中,DCT可以包括将块变换至频域。DCT可以包括使用基于空间频率的变换系数值,其中最低频率(即,DC)系数处于矩阵的左上方而最低频率系数则处于该矩阵的右下方。

量化单元430可以将该变换系数转换为离散量子值,其可以被称作量化变换系数或量化水平。该量化变换系数可以被熵编码单元440进行熵编码从而产生熵编码系数。熵编码可以包括使用概率分布测度。该熵编码系数以及被用来对块解码的信息(其可以包括所使用预测的类型、运动矢量和量化器值)可以被输出至压缩比特流404。压缩比特流404可以使用诸如行程编码(RLE)和零长代码化(zero-run coding)之类的各种技术被格式化。

该重构路径可以被用来保持编码器400和对应的解码器(诸如图5所示的解码器500)之间的基准帧同步。该重构路径可以类似于下文所讨论的解码处理,并且可以包括对编码帧或其一部分进行解码,这可以包括对编码块进行解码,其可以包括在去量化单元450对量化变换系数进行去量化以及在逆变换单元460将去量化变换系数进行逆变换从而产生衍生残差块。重构单元470可以将帧内/帧间预测单元410所生成的预测块添加至该衍生残差块以创建解码块。滤波单元480能够被应用于该解码块以生成重构块,其可以减少诸如成块伪像之类的失真。虽然图4中示出了一个滤波单元480,但是对解码块进行滤波可以包括循环滤波、去块滤波,或者其它类型的滤波或滤波类型的组合。重构块可以被存储或者以其它方式能够作为重构块被访问,其可以是基准帧的一部分,以用于对当前帧的另一部分、另一个帧或者此二者进行编码,如482处的虚线所示。针对帧的诸如去块阈值索引值的代码化信息可以被编码,包括在压缩比特流404中,或者上述二者,如484处的虚线所示。

编码器400的其它变化形式可以被用来对压缩比特流404进行编码。例如,非基于变换的编码器400可以在没有变换单元420的情况下直接量化残差块。在一些实施方式中,量化单元430和去量化单元450可以被组合为单个单元。

图5是依据本公开实施方式的解码器500的框图。解码器500可以在诸如图1所示的计算设备100或者图2所示的计算和通信设备100A、100B、100C中实施,例如被实施为存储在诸如图1所示的存储器110的数据存储单元中的计算机软件程序。计算机软件程序可以包括机器指令,所述机器指令可以由诸如图1所示的处理器120的处理器所执行,并且使得设备如本文所描述的编码视频数据。解码器500可以被实施为例如包括在计算设备100中的专用硬件。

解码器500可以接收诸如图4所示的压缩比特流404的压缩比特流502,并且可以将压缩比特流502解码以生成输出视频流504。解码器500可以包括熵解码单元510、去量化单元520、逆变换单元530、帧内/帧间预测单元540、重构单元550、滤波单元560,或者它们的任意组合。可以使用解码器500的其它结构变化形式来对压缩比特流502进行解码。

熵解码单元510可以例如使用上下文自适应二进制算术解码对压缩比特流502内的数据元素进行解码,从而产生量化变换技术的集合。去量化单元520可以对该量化变换系数进行去量化,并且逆变换单元530可以对该去量化的变换系数进行逆变换以产生衍生残差块,其可以对应于图4所示的逆变换单元460所生成的衍生残差块。使用从压缩比特流502所解码的头部信息,帧内/帧间预测单元540可以生成与编码器400中所创建的预测块相对应的预测块。在重构单元550,该预测块可以被添加至该衍生残差块以创建解码块。过滤单元560可以被应用于解码块以减少诸如成块伪像之类的伪像,其可以包括循环滤波、去块滤波,或者其它类型的滤波或滤波类型的组合,并且可以包括生成可作为输出视频流504被输出的重构块。

可以使用解码器500的其它变化形式来解码压缩比特流502。例如,解码器500可以在没有滤波单元560的情况下产生输出视频流504。

图6是依据本公开实施方式的帧(诸如图3所示的帧330)的一部分的表示形式的框图。如所示出的,该帧的部分600包括矩阵或笛卡尔平面中的两行两列的四个64×64的块610。在一些实施方式中,64×64的块可以是最大代码化单元,N=64。每个64×64的块可以包括四个32×32的块620。每个32×32的块可以包括四个16×16的块630。每个16×16的块可以包括四个8×8的块640。每个8×8的块640可以包括四个4×4的块650。每个4×4的块650可以包括16个像素,它们可以在笛卡尔平面或矩阵中的每个相应块中以四行四列来表示。像素可以包括表示在帧中捕捉的图像的信息,诸如亮度信息、颜色信息和位置信息。在一些实施方式中,诸如所示出的16×16像素块的块可以包括亮度块660,其可以包括亮度像素662;以及两个色度块670、680,诸如U或Cb色度块670以及V或Cr色度块680。色度块670、680可以包括色度像素690。例如,亮度块660可以包括16×16个亮度像素662,并且每个色度块670、680可以包括如所示出的8×8个色度像素690。虽然示出了一种块的排列形式,但是可以使用任意的排列形式。虽然图6示出了N×N的块,但是在一些实施方式中可以使用N×M的块。例如,可以使用32×64的块、64×32的块、16×32的块、32×16的块,或者任意其它大小的块。在一些实施方式中,可以使用N×2N的块、2N×N的块,或者它们的组合。

在一些实施方式中,视频代码化可以包括有序块层级代码化。有序块层级代码化可以包括按照诸如光栅扫描顺序的顺序对帧中的块进行代码化,其中块可以从帧的左上角的块或者帧的一部分开始被识别并处理,并且从顶部行到底部行从左至右沿行继续进行,依次识别每个块以便处理。例如,帧中的顶部行和左侧列中的64×64的块可以是被代码化的第一块,并且紧靠该第一块右侧的64×64的块可以是被代码化的第二块。从顶端起的第二行可以是被代码化的第二个行,从而该第二行的左侧列中的64×64的块可以在第一行的最右侧列中的64×64的块之后被代码化。

在一种实施方式中,对块进行代码化可以包括使用四叉树代码化,其可以包括以光栅扫描顺序对块内的最小块单元进行代码化。例如,图6所示的帧的该部分的左下角中所示的64×64的块可以使用四叉树代码化被代码化,其中,左上方的32×32的块可以被代码化,接着右上方的32×32的块可以被代码化,接着左下方的32×32的块可以被代码化,并且接下来右下方的32×32的块可以被代码化。每个32×32的块可以使用四叉树代码化被代码化,其中,左上方的16×16的块可以被代码化,接着右上方的16×16的块可以被代码化,接着左下方的16×16的块可以被代码化,并且接下来右下方的16×16的块可以被代码化。每个16×16的块可以使用四叉树代码化被代码化,其中,左上方的8×8的块可以被代码化,接着右上方的8×8的块可以被代码化,接着左下方的8×8的块可以被代码化,并且接下来右下方的8×8的块可以被代码化。每个8×8的块可以使用四叉树代码化被代码化,其中,左上方的4×4的块可以被代码化,接着右上方的4×4的块可以被代码化,接着左下方的4×4的块可以被代码化,并且接下来右下方的4×4的块可以被代码化。在一些实施方式中,可以针对16×16的块省略8×8的块,并且16×16的块可以使用四叉树代码化被代码化,其中,左上方的4×4的块可以被代码化,接着该16×16的块中的其它4×4的块可以以光栅扫描顺序被代码化。

在一些实施方式中,视频代码化可以包括例如通过从对应的编码帧中省略原始帧中的一些信息而压缩原始或输入帧中所包括的信息。例如,代码化可以包括减少谱冗余度、减少空间冗余度、减少时间冗余度,或者它们的组合。

在一些实施方式中,减少谱冗余度可以包括使用基于亮度分量(Y)和两个色度分量(U和V或者Cb和Cr)的颜色模型,其可以被称作YUV或YCbCr颜色模型或颜色空间。使用YUV颜色模型可以包括使用相对大量的信息来表示帧的一部分的亮度分量,并且使用相对少量的信息来表示帧的该部分的每个相对应色度分量。例如,帧的一部分可以由可包括16×16的像素块的高分辨率亮度分量以及两个较低分辨率的色度分量所表示,所述两个较低色度分量中的每一个将帧的该部分表示为8×8的像素块。像素可以指示值,例如从0至255范围内的值,并且例如可以使用8位来存储或传送。虽然本公开参考YUV颜色模型进行了描述,但是任何的颜色模型都可以被使用。

在一些实施方式中,减少空间冗余度可以包括例如使用离散余弦变换(DCT)将块变换至频域。例如,编码器的单元(诸如图4所示的变换单元420)可以使用基于空间频率的变换系数值来执行DCT。

在一些实施方式中,减少时间冗余度可以包括使用帧之间的相似度而基于一个或多个基准帧使用相对少量的数据来对帧进行编码,所述基准帧可以是视频流中的之前被编码、解码和重构的帧。例如,当前帧的块或像素可能类似于基准帧中的空间上对应的块或像素。在一些实施方式中,当前帧的块或像素可能类似于基准帧中处于不同空间位置的块或像素,并且减少时间冗余度可以包括生成指示当前帧中的块或像素的位置与基准帧中的块或像素的对应的位置之间的空间差异或转变的运动信息。

在一些实施方式中,减少时间冗余度可以包括识别基准帧中与当前帧的当前块或像素相对应的部分。例如,可以存储在存储器中的基准帧或者基准帧的一部分可以被搜索以识别出用于生成预测器的部分,所述预测器要用于以最大效率对当前帧的当前块或像素进行编码。例如,该搜索可以识别基准帧中的当前块与基于基准帧的该部分所生成的预测块之间的像素值差异针对其最小的部分,并且可以被称之为运动搜索。在一些实施方式中,被搜索的基准帧的部分可以被限制。例如,基准帧中的可以被称之为搜索区域的部分可以包括基准帧中的有限数量的行。在一个示例中,识别基准帧中的用于生成预测器的部分可以包括计算搜索区域的部分的像素与当前块的像素之间的成本函数,诸如绝对差值和(SAD)。

在一些实施方式中,基准帧中的用于生成预测器的部分在基准帧中的位置与当前帧中的当前块的位置之间的空间差值可以被表示为运动矢量。预测器块和当前块之间的像素值的差异可以被称作差分数据、残差数据、预测误差或残差块。在一些实施方式中,生成运动矢量可以被称作运动估计,并且当前块的像素可以基于使用笛卡尔坐标的位置而被指示为fx,y。类似地,基准帧的搜索区域中的像素可以基于使用笛卡尔坐标的位置而被指示为rx,y。当前块的运动矢量(MV)例如可以基于当前帧的像素与基准帧的对应的像素之间的SAD来确定。

虽然本文为了清楚参考帧的矩阵或笛卡尔表示形式进行描述,但是针可以以任意数据结构被存储、传送、处理或者它们的任意组合,而使得可以针对帧或图像有效地表示像素值。例如,帧可以以诸如所示出的矩阵的二维数据结构或者以诸如矢量阵列的一维数据结构而被存储、传送、处理或者它们的任意组合。在一种实施方式中,诸如所示出的二维表示形式的帧的表示形式可以对应于将该帧渲染为图像是的物理位置。例如,帧的左上角的块的左上角的位置可以与将该帧作为图像渲染的左上角中的物理位置。

在一些实施方式中,可以通过将输入块划分为一个或多个预测分区而提高基于块的代码化效率,所述预测分区可以是用于预测代码化的矩形(包括正方形)分区。在一些实施方式中,使用预测分区的视频代码化可以包括从多种候选预测分区方案中选择一种预测分区方案。例如,在一些实施方式中,用于64×64的代码化单元的候选预测分区方案可以包括以大小范围从4×4到64×64的矩形大小的预测分区,诸如4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32或64×64。在一些实施方式中,使用预测分区的视频代码化可以包括全预测分区搜索,其可以包括通过使用每种可用的候选预测分区方案对代码化单元进行编码并且选择出最佳方案来选择预测分区方案,所述最佳方案诸如产生最小速率失真误差的方案。

在一些实施方式中,对视频帧进行编码可以包括识别用于编码诸如块610的当前块的预测分区方案。在一些实施方式中,识别预测分区方案可以包括确定是将该块作为最大代码化单元大小(其可以是如所示出的64×64)的单个预测分区进行编码,还是将该块划分为多个预测分区(所述预测分区可以与子块(诸如所示出的32×32的块620、16×16的块630或8×8的块640)相对应),并且可以包括确定是否划分为一个或多个更小的预测分区。例如,64×64的块可以被划分为四个32×32的预测分区。这四个32×32的预测分区中的三个可以作为32×32的预测分区被编码,而第四个32×32的预测分区则可以进一步被划分为四个16×16的预测分区。这四个16×16的预测分区中的三个可以作为16×16的预测分区被编码,而第四个16×16的预测分区则可以进一步被划分为四个8×8的预测分区,其中的每一个可以作为8×8的预测分区被编码。在一些实施方式中,识别预测分区方案可以包括使用预测分区决策树。

在一些实施方式中,当前块的视频代码化可以包括从多种候选预测代码化模式中识别最优预测代码化模式,其可以在处置具有各种统计属性的视频信号时提供灵活度,并且可以改善压缩效率。例如,视频代码器可以评估每种候选预测代码化模式以识别最优预测代码化模式,其例如可以是针对当前块使得诸如速率失真成本之类的误差测度最小化的预测代码化模式。在一些实施方式中,可以通过基于当前块和对应的预测块之间的相似度限制可用的候选预测代码化模式的集合来降低搜索候选预测代码化模式的复杂度。在一些实施方式中,可以通过执行定向细化模式搜索来降低搜索候选预测代码化模式的复杂度。例如,可以针对诸如16×16、8×8和4×4的候选块大小的有限集合生成测度,与每个块大小相关联的误差测度可以为降序,并且可以评估诸如4×8和8×4的附加候选块大小。

在一些实施方式中,可以通过将当前残差块划分为一个或多个变换分区而改善基于块的代码化效率,所述变换分区可以是用于变换代码化的矩形(包括正方形)分区。在一些实施方式中,使用变换分区的视频代码化可以包括选择统一变换分区方案。例如,诸如块610的当前残差块可以是64×64的块并且可以使用64×64的变换在没有划分的情况下被变换。

虽然并未在图6中明确示出,但是残差块可以使用统一变换分区方案被变换划分。例如,64×64的残差块可以使用包括4个32×32的变换块的统一变换分区方案、使用包括16个16×16的变换块的统一变换分区方案、使用包括64个8×8的变换块的统一变换分区方案或者使用包括256个4×4的变换块的统一变换分区方案被变换划分。

在一些实施方式中,使用变换划分的视频代码化可以包括使用多形式变换分区代码化识别用于残差块的多种变换块大小。在一些实施方式中,多形式变换分区代码化可以包括以递归方式确定是使用当前块大小变换来变换当前块还是通过划分当前块并且对每个分区进行多形式变换分区代码化。例如,图6所示的左下方的块610可以是64×64的残差块,并且多形式变换分区代码化可以包括确定使用64×64的变换对当前64×64的残差块进行代码化还是通过将该64×64的残差块划分为分区(诸如四个32×32的块620)并且对每个分区进行多形式变换分区代码化而对当前64×64的残差块进行代码化。在一些实施方式中,确定是否对当前块进行变换划分可以是基于将使用当前块大小变换来编码当前块的成本与用于使用分区大小变换对每个分区进行编码的成本之和相比较。

图7示出了依据本公开实施方式的包括块边界的输入帧的一部分的示例。该输入帧的部分700包括处于左上方的第一块710、处于右上方的第二块720、处于左下方的第三块730和处于右下方的第四块740。该输入帧的部分700包括作为第一块710和第二块720之间的垂直块边界的第一块边界750,作为第一块710和第三块730之间的水平块边界的第二块边界760,作为第三块730和第四块740之间的垂直块边界的第三块边界770,以及作为第二块720和第四块740之间的水平块边界的第四块边界780。

第一块710和第二块720利用点描背景示出以指示第一块710和第二块720包括对应于该帧所捕捉的第一对象的内容或视觉要素。第三块730和第四块740利用白色背景示出以指示第三块730和第四块740包括对应于该帧所捕捉的第二对象的内容或视觉要素。该帧所捕捉的第一对象和第二对象之间的边缘与第二块边界760和第四块边界780相对应并且由790处的粗虚线所指示。

虽然并未在图7中明确示出,但是每个块710、720、730、740可以包括像素。例如,每个块710、720、730、740可以是8×8的像素块。

对图像或视频进行编码(诸如关于图4所描述的编码)可能引入伪像或失真,诸如块状伪像,其可能是沿着由量化所导致的块边界的失真。例如,对图7所示的输入帧的部分700进行编码可能导致如图8所示的重构图像部分中所示的块状伪像。

图8示出了依据本公开实施方式的包括块伪像的重构针对一部分的示例。图8所示的重构帧的部分800可以对应于图7所示的输入帧的部分700,区别在于图8所示的重构帧的部分800包括了块状伪像。

图8包括处于左上方的第一块810、处于右上方的第二块820、处于左下方的第三块830和处于右下方的第四块840。该输入帧的部分800包括作为第一块810和第二块820之间的垂直块边界的第一块边界850,作为第一块810和第三块830之间的水平块边界的第二块边界860,作为第三块830和第四块840之间的垂直块边界的第三块边界880,以及作为第二块820和第四块840之间的水平块边界的第四块边界880。

图8所示的第一块810对应于图7所示的第一块710,区别在于图8所示的第一块810使用暗色点描示出以指示块状量化误差。图8所示的第二块820对应于图7所示的第二块720。图8所示的第三块830对应于图7所示的第三块730。图8所示的第四块840对应于图7所示的第四块740,区别在于图8所示的第四块840使用亮色点描示出以指示块状量化误差。

类似于关于图7所描述的对象,图8所示的第一块810和第二块820包括对应于该帧所捕捉的第一对象的内容或视觉要素,并且图8所示的第三块830和第四块840包括对应于该帧所捕捉的第二对象的内容或视觉要素。该帧所捕捉的第一对象和第二对象之间的边缘与第二块边界860和第四块边界880相对应并且由890处的粗虚线所指示。

虽然并未在图8中明确示出,但是每个块810、820、830、840可以包括像素。例如,每个块810、820、830、840可以是8×8的像素块。

对图8所示的重构帧的部分800去块可以包括对沿块边界的块状伪像(诸如沿第一块边界850的块状伪像和沿第三边界871的块状伪像)进行平滑或以其它方式最小化,并且保留或最低程度地模糊沿第二块边界860和第四块边界880的对象边缘890,这可以包括区分对应于块状伪像的块之间的差异与对应于对象边缘的块之间的差异。

图9示出了依据本公开实施方式的包括具有针对一行像素的像素粒度的块伪像的重构帧的一部分的示例。图9所示的重构帧的部分900可以对应于图8所示的重构帧的部分800,区别在于图9所示的重构帧的部分900中针对一行像素明确表示出像素或像素位置并且为了清楚而省略了对块边界的引用。

图9包括对应于图8所示的第一块810的处于左上方的第一块910,对应于图8所示的第二块820的处于右上方的第二块920,对应于图8所示的第三块830的处于左下方的第三块930,以及对应于图8所示的第四块840的处于右下方的第四块940。

可作为当前块的第三块930可以包括像素,诸如沿水平跨过第三块930的行的像素,它们在图9中为了清楚从左至右被标记为c0、c1、c2、c3、c4、c5、c6和c7。可作为相邻块(诸如水平相邻的块)的第四块940可以包括像素,诸如沿水平跨过第四块940的行的像素,它们在图9中为了清楚从左至右被标记为a0、a1、a2、a3、a4、a5、a6和a7。

对第三块930去块可以包括基于沿着来自当前块(第三块930)的行的像素c0、c1、c2、c3、c4、c5、c6和c7中的一个或多个以及沿着来自水平相邻块(第四块940)的行的像素a0、a1、a2、a3、a4、a5、a6和a7,沿着当前块(第三块930)和水平相邻块(第四块940)之间的块边界对当前块(第三块930)的一行中的像素c0、c1、c2、c3、c4、c5、c6和c7中的一个或多个进行去块,所述块边界可以对应于图8所示的第四块边界880。

对第二块1020进行去块可以包括基于沿着来自当前块(第二块1020)的列的像素c0、c1、c2、c3、c4、c5、c6和c7中的一个或多个以及沿着来自垂直相邻块(第四块1040)的列的像素a0、a1、a2、a3、a4、a5、a6和a7,沿着当前块(第二块1020)和垂直相邻块(第四块1040)之间的块边界对当前块(第二块1020)的一列中的像素c0、c1、c2、c3、c4、c5、c6和c7中的一个或多个进行去块,所述块边界可以对应于图8所示的第三块边界870。

图10示出了依据本公开实施方式的包括具有针对一列像素的像素粒度的块伪像的重构帧的一部分的示例。图10所示的重构帧的部分1000可以对应于图8所示的重构帧的部分800,区别在于图10所示的重构帧的部分1000中针对一列像素明确表示出像素或像素位置并且为了清楚而省略了对块边界的引用。

图10包括对应于图8所示的第一块810的处于左上方的第一块1010,对应于图8所示的第二块820的处于右上方的第二块1020,对应于图8所示的第三块830的处于左下方的第三块1030,以及对应于图8所示的第四块840的处于右下方的第四块1040。

可作为当前块的第二块1020可以包括像素,诸如沿垂直跨过第二块1020的列的像素,它们在图10中为了清楚从上至下被标记为c0、c1、c2、c3、c4、c5、c6和c7。可作为相邻块(诸如垂直相邻的块)的第四块1040可以包括像素,诸如沿垂直跨过第四块1040的列的像素,它们在图9中为了清楚从上至下被标记为a0、a1、a2、a3、a4、a5、a6和a7。

对第二块1020进行去块可以包括基于沿着来自当前块(第二块1020)的列的像素c0、c1、c2、c3、c4、c5、c6和c7中的一个或多个以及沿着来自垂直相邻块(第四块1040)的列的像素a0、a1、a2、a3、a4、a5、a6和a7,沿着当前块(第二块1020)和垂直相邻块(第四块1040)之间的块边界对当前块(第二块1020)的一列中的像素c0、c1、c2、c3、c4、c5、c6和c7中的一个或多个进行去块,所述块边界可以对应于图8所示的第三块边界870。

图11是依据本公开实施方式的使用双去块滤波阈值1100的编码的示例的流程图。使用双去块滤波阈值1100的编码可以在诸如图4所示的编码器400的编码器中实施。例如,图4所示的编码器400的滤波单元480可以实施使用双去块滤波阈值1100的编码。

使用双去块滤波阈值1100的编码可以包括在1110识别输入帧,在1120编码该输入帧,在1130输出编码比特流,或者它们的任意组合。

可以在1110识别输入帧。例如,编码器可以接收或以其它方式访问输入图像或者输入视频流或信号或者其一部分,并且可以将输入图像或输入视频流的一部分识别为当前输入帧。

在1110所识别的输入帧可以在1120被编码。在1120编码该输入帧可以包括在1122生成编码帧,在1124生成重构帧,在1126识别去块阈值索引,在1128将该编码帧和去块阈值索引包括在输出比特流中,或者它们的组合。虽然在图11中被单独示出,但是在1122生成编码帧,在1124生成重构帧,在1126识别去块阈值索引,以及在1128将该编码帧和去块阈值索引包括在输出比特流中可以被组合实施。

在1122生成编码帧,其可以包括使用基于块的编码,这可以类似于关于图4所描述的编码,区别如本文所描述或者以其它方式从上下文而清楚明白。例如,编码器可以生成预测块,将相应预测块和对应的输入块之间的差异识别为残差,通过对残差进行变换而识别相应的变换系数,通过对变换系数进行量化而生成相应的量化变换系数,对相应的量化变换系数以及诸如运动信息的编码数据进行熵编码,或者它们的组合。

在1124生成重构帧可以类似于关于图4所描述的重构,区别如本文所描述或者以其它方式从上下文而清楚明白。例如,编码器可以对量化变换系数进行去量化以生成相应的去量化变换系数,对该去量化变换系数进行逆变换以生成相应的重构残差,识别相应的预测块,诸如在1122生成的预测块,生成解码帧,其可以包括通过将相应的预测块和对应的重构残差组合而生成解码帧的相应的解码块,对解码帧进行滤波(诸如循环滤波、去块滤波或其二者)以减少伪像并且生成重构帧,或者它们的组合。虽然关于在1124生成重构帧进行了描述,但是去块或者其一部分可以在生成解码帧之后或者循环滤波之后执行。该重构帧可以被存储或者以其它方式被使得能够作为重构帧或基准帧被访问以便对另一个帧进行编码。

可以在1126识别去块阈值索引。在一些实施方式中,在1126识别去块阈值索引可以在1122生成编码帧之后执行,与在1124生成重构帧同时执行——诸如与之相结合地执行,或者在1124生成重构帧之后执行。例如,虽然在图11中单独地示出了在1124生成重构帧以及在1126识别去块阈值索引,但是关于在1124生成重构帧所描述的去块可以包括识别去块阈值索引。

在1126识别去块阈值索引可以包括识别第一去块阈值索引,识别第二去块阈值索引,或者其二者。去块阈值索引可以是诸如整数值的索引,其识别定义的去块阈值的集合、群组或聚集。例如,编码器可以包括或以其它方式访问包括定义的去块阈值的集合的表格或其它数据存储结构,其中每个定义的去块阈值的集合由各自对应的去块阈值索引编索引或唯一识别。

在1126识别去块阈值索引可以包括识别用于在诸如水平或垂直的第一方向对帧进行去块的第一去块阈值索引,以及识别用于在与第一方向正交的第二方向(诸如垂直或水平)对帧进行去块的不同于该第一去块阈值索引的第二去块阈值索引。

在一个示例中,可以识别用于对来自帧的垂直块边界进行去块的第一去块阈值索引,并且可以识别用于对帧的水平块边界进行去块的第二去块阈值索引。图12中示出了识别去块阈值索引的一个示例。

在1128,该编码帧、去块阈值索引或者其二者可以被包括在输出或编码比特流中。例如,该去块阈值索引可以被包括在编码帧的帧头部之中,并且该帧头部可以被包括在输出比特流中,这可以包括对该帧头部或者其一部分进行熵代码化。

将去块阈值索引包括在输出比特流中可以包括将第一去块阈值索引的指示包括在输出比特流中,并且将第二去块阈值索引的指示单独包括在该输出比特流中。在一些实施方式中,将第二去块阈值索引的指示包括在该输出比特流中可以包括识别差分去块阈值索引值,诸如第一去块阈值索引和第二去块阈值索引之间的差值,并且将该差分去块阈值索引值或者其指示作为第二去块阈值索引包括在输出比特流中。

可以在1130输出编码比特流。例如,编码比特流或输出比特流可以作为信号而经由诸如图2所示的网络220的网络被传送,从而诸如图1所示的计算设备100或者图2所示的计算和通信设备100A、100B、100C之类的设备(其可以包括诸如图5所示的解码器500的解码器)可以经由该网络接收该信号,可以解码该编码视频比特流,并且可以生成对应于当前帧的重构帧或者重构帧的一部分。在另一个示例中,编码比特流可以作为所存储的编码视频被存储在诸如设备(诸如图1所示的计算设备100或者图2所示的计算和通信设备100A、100B、100C之类的设备)的图1中所示出的存储器110的存储器中,从而该设备或者能够访问该存储器的任意其它设备可以取回所存储的编码视频,从而诸如图5所示的解码器500的解码器可以解码该编码视频并且可以生成对应于当前帧的重构帧或者重构帧的一部分。

使用双去块滤波阈值的其它实施方式是可用的。在实施方式中,可以增加使用双去块滤波阈值的编码的附加要素,可以组合某些要素,和/或可以去除某些要素。

图12是依据本公开实施方式的识别去块阈值索引1200的示例的流程图。识别去块阈值索引1200可以在诸如图4所示的编码器400的编码器中实施。例如,图4所示的编码器400的滤波单元480可以实施识别去块阈值索引1200。

识别去块阈值索引1200可以包括识别用于对当前帧(其可以是解码帧)进行去块的去块阈值索引,并且可以类似于图11所示的识别去块阈值索引1126,区别如本文所描述或者以其它方式从上下文而清楚明白。

识别去块阈值索引1200可以包括在1210识别联合去块阈值索引,在1220识别第一特有去块阈值索引,在1230识别第二特有去块阈值索引,或者它们的任意组合。

虽然并未在图12中单独示出,但是识别去块阈值索引1200可以包括识别候选去块阈值索引。来自候选去块阈值索引的每个去块阈值索引可以对应于或者可以唯一地识别相应的定义的去块阈值的集合。例如,编码器或者编码器的去块阈值索引识别单元可以从包括候选去块阈值索引和对应的去块阈值集合的表格或其它数据存储结构读取或以其它方式对其进行访问,所述表格诸如存储在编码器的存储器中或者能够以其它方式被编码器访问的表格。在一个示例中,该候选去块阈值索引可以具有基数N,定义的去块阈值集合可以具有基数N,并且每个候选去块阈值索引可以对应于相应的定义的去块阈值集合。

在1210识别联合去块阈值索引1210可以包括识别对应于使得用于对帧进行去块的测度(诸如联合误差测度)最小化的去块阈值集合的去块阈值索引,其可以包括在诸如水平或垂直的第一方向使用该去块阈值集合对帧进行去块,并且在诸如垂直或水平的可以与第一方向正交的第二方向使用该去块阈值集合对帧进行去块。图13中示出了识别诸如联合去块阈值索引的去块阈值索引的示例。

在1220识别第一特有去块阈值索引可以包括识别对应于使得诸如联合误差测度的测度最小化的去块阈值集合的去块阈值索引以用于在第一方向使用对应于该第一特有去块阈值索引的去块阈值集合并且在第二方向使用对应于在1210识别的联合去块阈值索引的去块阈值集合对帧进行去块。图13中示出了识别诸如第一特有去块阈值索引的去块阈值索引的示例。

在1230识别第二特有去块阈值索引可以包括识别对应于使得诸如联合误差测度的测度最小化的去块阈值集合的去块阈值索引以用于在第一方向使用对应于在1220所识别的第一特有去块阈值索引的去块阈值集合并且在第二方向使用对应于该第二特有阈值索引的去块阈值集合对帧进行去块。图13中示出了识别诸如第二特有去块阈值索引的去块阈值索引的示例。

图13是依据本公开实施方式的识别去块阈值索引1300的示例的流程图。识别去块阈值索引1300可以在诸如图4所示的编码器400的编码器中实施。例如,图4所示的编码器400的滤波单元480可以实施识别去块阈值索引1300。

识别去块阈值索引1300可以包括在1310识别当前候选去块阈值索引,在1320确定当前误差测度,在1330识别对应于最小误差测度的候选去块阈值索引,或者它们的任意组合。

可以在1310识别当前候选去块阈值索引。识别当前候选去块阈值索引可以包括从候选去块阈值索引(诸如关于图12所描述的候选去块阈值索引)中识别当前去块阈值索引。在1310识别当前候选去块阈值索引可以包括识别对应的去块阈值集合。

例如,诸如在图12的1210所示的识别联合去块阈值索引可以包括识别去块阈值索引1300,并且在1310识别当前候选去块阈值索引可以包括识别对应于当前候选去块阈值索引的去块阈值集合,所述当前候选去块阈值索引用于在诸如水平或垂直的第一方向以及诸如垂直或水平的可以与第一方向正交的第二方向对当前帧或其一部分进行去块。

在另一个示例中,诸如在图12的1220或者图12的1230所示的识别特有去块阈值索引可以包括识别去块阈值索引1300,并且在1310识别当前候选去块阈值索引可以包括识别对应于用于在第一方向对当前帧或其一部分进行去块的当前候选去块阈值索引的去块阈值集合,并且在第二方向使用对应于不同的特有去块阈值索引(诸如单独或之前识别的特有去块阈值索引),或者在第一方向使用对应于不同特有去块阈值索引的去块阈值集合并且识别对应于用于在第二方向对当前帧或其一部分进行去块的当前候选去块阈值索引的去块阈值集合。

可以在1320针对当前候选去块阈值确定当前误差测度。确定当前误差测度可以包括在诸如水平或垂直的第一方向使用对应于当前候选去块阈值索引的去块阈值集合对当前帧或其一部分进行去块,在诸如垂直或水平的可以与第一方向正交的第二方向使用对应于当前候选去块阈值索引的去块阈值集合对当前帧或其一部分进行去块,或者在第一和第二方向使用对应于当前候选去块阈值索引的去块阈值集合对当前帧或其一部分进行去块。

例如,诸如在图12的1210所示的识别联合去块阈值索引可以包括识别去块阈值索引1300,并且在1320确定当前误差测度可以包括在第一方向和第二方向使用对应于当前候选去块阈值索引的去块阈值集合对当前帧或其一部分进行去块。在包括识别联合去块阈值索引的实施方式中,当前误差测度可以是联合误差测度。

在另一个示例中,诸如在图12的1220或者图12的1230所示的识别特有去块阈值索引可以包括识别去块阈值索引1300,并且在1320确定当前误差测度可以包括在第一方向使用对应于当前候选去块阈值索引的去块阈值集合对当前帧或其一部分进行去块,并且在第二方向使用对应于诸如单独识别的特有去块阈值索引的不同的特有去块阈值索引的去块阈值集合对当前帧或其一部分进行去块,或者在第二方向使用对应于当前候选去块阈值索引的去块阈值集合对当前帧或其一部分进行去块,并且在第一方向使用对应于不同的特有去块阈值索引的去块阈值集合对当前帧或其一部分进行去块。

在1320确定当前误差测度可以包括生成候选重构帧或其一部分,并且基于该候选重构帧或其一部分与相对应的输入帧或其相对应部分之间的差异(诸如通过确定该候选重构帧和相对应输入帧之间的绝对差值和(SAD)、平方差值和(SSD)或另一种误差率强度)识别当前误差测度。图14中示出了确定当前误差测度的示例。

如1325处的虚线箭头所指示的,可以确定相应的误差测度,它们均对应于使用来自候选去块阈值索引的相对应候选去块阈值索引在第一方向对当前帧或其一部分进行去块,在第二方向对当前帧或其一部分进行去块,或者在第一方向和第二方向对当前帧或其一部分进行去块。

例如,诸如在图12的1210所示的识别联合去块阈值索引可以包括识别去块阈值索引1300,并且在1320确定当前误差测度可以包括通过在第一方向和第二方向使用对应于相应候选去块阈值索引的相应去块阈值集合对当前帧或其一部分进行去块而使用来自候选去块阈值索引的每个相应候选去块阈值索引确定相应误差测度,其可以是联合误差测度。

在一些实施方式中,在1310识别当前候选去块阈值索引可以省略从候选去块阈值索引识别出单独识别的特有去块阈值索引(诸如被识别用于在第一方向(或第二方向)对当前帧或其一部分进行去块的特有去块阈值索引)作为用于在第二方向(或第一方向)对当前帧或其一部分进行去块的当前候选去块阈值索引,并且确定相应误差测度可以省略确定对应于对在第一方向和第二方向使用单独识别的特有去块阈值索引对当前帧或其一部分进行去块的误差测度。

例如,诸如在图12的1220或者图12的1230所示的识别特有去块阈值索引可以包括识别去块阈值索引1300,并且在1320确定当前误差测度可以包括通过在第一方向使用对应于相应当前候选去块阈值索引的相应去块阈值集合对当前帧或其一部分进行去块以及在第二方向使用对应于特有去块阈值索引的去块阈值集合对当前帧或其一部分进行去块,或者通过在第一方向使用对应于不同的特有去块阈值索引的去块阈值集合对当前帧或其一部分进行去块以及在第二方向使用对应于当前候选去块阈值索引的相应去块阈值集合对当前帧或其一部分进行去块来确定误差测度(第一误差测度),其分别对应于来自候选去块阈值索引的不同于特有去块阈值索引或其以外的每个候选去块阈值索引,诸如单独识别的特有去块阈值索引。

可以在1330识别对应于最小误差测度的去块阈值索引。识别对应于最小误差测度的去块阈值索引可以包括从误差测度集合中识别最小误差测度。来自误差测度集合中的每个误差测度可以对应于在1320所确定的相应的当前误差测度。

例如,识别去块阈值索引1300可以包括诸如在图12的1210所示的识别联合去块阈值索引,在1320确定当前误差测度可以包括确定包括相应误差测度的误差测度,所述相应误差测度对应于在第一方向和第二方向使用对应于来自候选去块阈值索引的每个相应的候选去块阈值索引的去块阈值集合对当前帧或其一部分进行去块,并且在1330识别去块阈值索引可以包括从在1320所确定的误差测度中确定最小误差测度,并且在1330将对应于最小误差测度的候选去块阈值索引识别为去块阈值索引。

在另一个示例中,诸如在图12的1200所示的识别去块阈值索引可以包括诸如在图12的1210所示的识别联合去块阈值索引,诸如在图12的1220所示的识别第一识别特有去块阈值索引,以及诸如在图12的1230所示的识别第二特有去块阈值索引。

识别联合去块阈值索引可以包括识别最小联合误差测度,其对应于在第一方向使用去块阈值集合对当前帧或其一部分进行去块以及在第二方向使用去块阈值集合对当前帧或其一部分进行去块。

识别第一特有去块阈值索引可以包括识别对应于来自包括最小联合误差测度并且包括候选误差测度的误差测度集合中的最小误差测度的去块阈值索引,所述候选误差测度对应于在第一方向使用对应于联合去块阈值索引的去块阈值集合对当前帧或其一部分进行去块以及在第二方向使用其它去块阈值集合对当前帧或其一部分进行去块。

识别第二特有去块阈值索引可以包括识别对应于来自包括对应于第一特有去块阈值测度的误差测度并且包括候选误差测度的误差测度集合中的最小误差测度的去块阈值索引,所述候选误差测度对应于在第二方向使用对应于第一特有去块阈值索引的去块阈值集合对当前帧或其一部分进行去块以及在第二方向使用其它去块阈值集合对当前帧或其一部分进行去块。

图14是依据本公开实施方式的确定当前误差测度1400的示例的流程图。确定当前误差测度1400可以在诸如图4所示的编码器400的编码器中实施。例如,图4所示的编码器400的滤波单元480可以实施确定当前误差测度1400。

确定当前误差测度1400可以包括在1410识别当前块,在1420生成重构块,在1430确定误差测度,或者它们的任意组合。

虽然并未在图14中单独示出,但是确定当前误差测度1400可以包括识别用于在诸如水平或垂直的第一方向对当前帧进行去块的第一去块阈值集合,以及识别用于在诸如垂直或水平的可以与第一方向正交的第二方向对当前帧进行去块的第二去块阈值集合。

第一去块阈值集合可以对应于联合去块阈值索引,诸如在图12的1210所示的所识别的联合去块阈值索引,或者可以对应于第一特有去块阈值索引,诸如在图12的1220所示的所识别的第一特有去块阈值索引。第二去块阈值集合可以对应于联合去块阈值索引或者可以与第二特有去块阈值索引相对应,诸如在图12的1230所示的所识别的第二特有去块阈值索引。

可以在1410识别当前帧的当前块。例如,当前帧可以包括诸如预测块的块,并且来自帧的相应当前块可以基于诸如光栅扫描的扫描顺序被识别。虽然并未在图14中单独示出,但是确定当前误差测度1400可以包括识别针对当前块、与当前块相邻的一个或多个相邻块或者其二者指示变换块大小的信息。

可以在1420生成重构块。当前帧可以是解码帧,在1410识别的当前块可以是解码块,并且在1420生成重构块可以包括对当前块进行去块。

对当前块进行去块可以包括使用用于在第一方向对当前块进行去块的第一去块阈值索引以及使用用于在第二方向对当前块进行去块的第二去块阈值索引对可作为解码块的当前块进行去块。

第一去块阈值索引和第二去块阈值索引可以是联合去块阈值索引,或者第一去块阈值索引可以不同于第二去块阈值索引。例如,所识别的去块阈值索引可以是联合去块阈值索引,并且对当前块进行取款可以包括使用所识别的去块阈值索引作为用于在水平方向对解码块进行去块的水平去块阈值索引以及作为用于在垂直方向对解码块进行去块的垂直去块阈值索引,或者使用所识别的去块阈值索引作为用于在垂直方向对解码块进行垂直去块的垂直去块阈值索引以及作为用于在水平方向对解码块进行水平去块的水平去块阈值索引。图15示出了对当前块进行去块的一个示例。

如图14所示,确定当前误差测度1400可以包括如在1425处由虚线箭头所指示的针对当前帧的每个块生成相应的重构块。例如,针对当前帧的每个块,可以在1420生成相应的重构块,这可以包括在第一方向和第二方向对当前块进行去块。虽然并未在图14中单独示出,但是确定当前误差测度1400可以包括通过在第一方向对相应当前块进行去块而针对当前帧的每个块生成相应部分的重构块,以及通过在第二方向对对应部分的重构块进行去块而针对当前帧的每个块生成相应的重构块。

可以在1430确定当前误差测度。该当前误差测度可以基于当前重构帧或其一部分和对应的输入帧或其对应部分之间的差异(诸如通过确定当前重构帧和对应的输入帧之间的绝对差值和、平方差值和或另一种误差率强度)来确定。

图15是依据本公开实施方式的对当前块进行去块1500的示例的流程图。可以包括生成重构块的对当前块进行去块1500可以在诸如图4所示的编码器400的编码器中实施。例如,图4所示的编码器400的滤波单元480可以实施对当前块进行去块1500。

对当前块进行去块可以包括基于第一去块阈值索引或基于第一去块阈值索引和第二去块阈值索引对当前块进行去块。例如,第一去块阈值索引可以是联合去块阈值索引,并且对当前块进行去块可以包括在第一方向基于联合去块阈值索引对当前块进行去块,以及在第二方向基于联合去块阈值索引对当前块进行去块。另一个示例中,第一去块阈值索引可以是第一特有去块阈值索引,第二去块阈值索引可以是第二特有去块阈值索引,并且对当前块进行去块可以包括在第一方向基于第一特有去块阈值索引对当前块进行去块,以及在第二方向基于第二特有去块阈值索引对当前块进行去块。

当前块可以具有块边界、边框、边缘或侧边。例如,如图6至图10所示,当前块可以具有四个块边界,它们可以包括两个垂直方向的块边界(诸如顶部块边界和底部块边界)以及两个水平方向的块边界(诸如左侧块边界和右侧块边界)。当前块可以紧邻的相邻块,诸如可以沿顶部块边界与当前块相邻的处于当前块上方的相邻块,可以沿底部块边界与当前块相邻的处于当前块下方的相邻块,可以沿左侧块边界与当前块相邻的处于当前块左侧的相邻块,以及可以沿右侧块边界与当前块相邻的处于当前块右侧的相邻块。当前块和相邻块中的每一个都可以对应于相应的变换块。例如,当前块可以是N×N的块并且可以与N×N的变换块相对应,或者当前块可以对应于较小的变换块,诸如x2N/x×N/x的变换块。

如图15所示,对当前块进行去块1500可以包括在1510识别当前方向,在1520识别当前块边界,在1530识别当前去块阈值子集,在1540识别像素,在1550确定非平整性因数,在1560确定是否去块,在1570识别去块参数,或者它们的组合。

可以在1510识别当前方向。例如,当前方向可以被识别为诸如水平或垂直的第一方向,或者诸如垂直或水平的可以与第一方向正交的第二方向。

在1510识别当前方向可以包括识别用于在当前方向对当前帧进行去块的当前去块阈值索引。例如,用于在当前方向对当前帧进行去块的当前去块阈值索引可以如图13中的1310所示出的被识别。识别用于在当前方向对当前帧进行去块的当前去块阈值索引可以包括识别与用于在当前方向对当前帧进行去块的当前去块阈值索引相关联的去块阈值的当前集合、群组或聚集。例如,编码器可以从包括当前去块阈值索引和对应的去块阈值的表格或其它数据存储结构读取或以其它方式对其进行访问,所述表格诸如存储在编码器的存储器中或者能够以其它方式被编码器访问的表格。

可以在1520识别当前块边界。例如,当前方向可以是垂直的,并且对应于当前块的顶部侧边、边框或边缘的水平块边界可以被识别为当前块边界,或者对应于当前块的底部侧边、边框或边缘的水平块边界可以被识别为当前块边界。在另一个示例中,当前方向可以是水平的,并且对应于当前块的左侧侧边、边框或边缘的水平块边界可以被识别为当前块边界,或者对应于当前块的右侧侧边、边框或边缘的水平块边界可以被识别为当前块边界。

可以在1530识别用于对当前块边界进行去块的当前去块阈值子集。在1530识别当前去块阈值子集可以包括识别对应于在1520所识别的当前块边界的当前最小变换块大小。

在1530识别对应于当前块边界的当前最小变换块大小可以包括识别沿着当前块边界的每个变换块的变换块大小,所述变换块可以包括对应于当前块的变换块,沿着当前块边界与当前块相邻的变换块,或者其二者。

例如,参考图8,当前块可以是右上方的块820,当前方向可以是水平的,当前块边界850可以是当前块820和水平相邻块810之间的垂直边界,当前块820可以是16×16的块,当前块820的变换块大小可以是16×16,相邻块810的变换块大小可以是8×8,并且当前最小变换块大小可以是8×8。

参考图15,在1530识别当前去块阈值子集可以包括基于当前最小变换块大小识别当前去块阈值子集,这可以包括从当前去块阈值集合中识别当前去块阈值子集,所述当前去块阈值集合可以是基于当前去块阈值索引所识别的去块阈值集合。

例如,基于当前去块阈值索引所识别的当前去块阈值集合可以包括对应于每个相应的可用变换块大小的相应的去块阈值子集,并且在1530识别当前去块阈值子集可以包括从当前去块阈值集合中识别对应于当前最小变换块大小的去块阈值子集。当前去块阈值子集可以被识别为当前去块阈值。例如,一个或多个去块阈值可以与相应的最小变换块大小相关联,并且与当前最小变换块大小相关联的去块阈值子集可以被识别为当前去块阈值。

在一些实施方式中,针对当前方向的第一块边界的最小变换块大小可以匹配之前针对当前方向的当前块的相反块边界所识别的最小变换块大小,并且被识别用于对该相反块边界进行去块的去块阈值可以被识别为用于对当前块边界进行去块的去块阈值。在一些实施方式中,针对当前方向的当前块边界的最小变换块大小可能不同于之前针对当前方向的当前块的相反块边界所识别的最小变换块大小,并且用于对当前块边界去块的去块阈值可以独立于所识别的用于对该相反块边界去块的去块阈值而被识别。

在1530识别当前去块阈值子集可以包括识别用于对当前块边界进行去块的当前去块确定阈值。例如,在1530所识别的当前去块阈值子集可以包括该当前去块确定阈值,并且该当前去块确定阈值可以从当前去块阈值子集中被识别。

可以在1540识别当前像素,诸如当前像素的集合、群组或聚集。当前像素可以包括来自当前块、沿当前方向的当前块边界与当前块相邻的相邻块或者其二者的像素。例如,在1510所识别的当前方向可以是垂直的,当前块可以包括像素列,相邻块可以包括对应的像素列,并且在1540识别当前像素可以包括从当前块的当前列中识别所定义的基数、数量或计数(N)的像素,来自当前块的当前列的这样N个像素最接近于当前块边界,并且可以包括从相邻块的当前列中识别所定义基数的像素,来自相邻块的当前列的这样N个像素最接近于当前块边界。在一些实施方式中,从当前块所识别的像素的基数可以不同于从相邻块所识别的像素的基数。

可以在1550确定诸如非平整性因数的测度。非平整性因数可以针对所识别的像素集合指示平整性或非平整性。例如,当前非平整性因数可以指示从当前块所识别的像素集合(诸如在1540从当前块所识别的像素)的平整性,并且相邻非平整性因数可以指示相邻块的对应像素的平整性或非平整性。例如,平整性或非平整性测度或因数可以指示相应像素间的最大差异。

例如,参考图9,当前块可以是左下方的块930,当前块边界可以是当前块930和相邻块940(其可以是相邻的解码块)之间的垂直边界。可以针对当前块940的每一行识别相应的当前平整性因数,并且可以针对相邻块940的每一行识别相应的相邻平整性因数。在一个示例中,自当前块930顶端起第五行的当前平整性因数可以基于被标记为c0、c1、c2、c3、c4、c5、c6、c7的像素来识别,并且自相邻块940顶端起第五行的相邻平整性因数可以基于被标记为a0、a1、a2、a3、a4、a5、a6、a7的像素来识别。

在一个示例中,当前块(c)930的当前平整性或非平整性因数可以基于被标记为c4的像素和被标记为c7的像素之间的绝对差值、被标记为c5的像素和被标记为c7的像素之间的绝对差值以及被标记为c6的像素和被标记为c7的像素之间的绝对差值中的最大值而被识别,这可以被如下表示:

Nf(c)=max(|c4-c7|,|c5-c7|,|c6-c7|) [等式1]

相邻块(a)的对应的相邻平整性或非平整性因数可以基于被标记为a0的像素和被标记为a1的像素之间的绝对差值、被标记为a0的像素和被标记为a2的像素之间的绝对差值以及被标记为a0的像素和被标记为a3的像素之间的绝对差值中的最大值而被识别,这可以被如下表示:

Nf(a)=max(|a0-a1|,|a0-a2|,|a0-a3|) [等式2]

在另一个示例中,参考图10,当前块可以是右上方的块1020,当前块边界可以是当前块1020和垂直相邻块1040之间的水平边界。可以针对当前块1020的每一列识别当前平整性因数,并且可以针对相邻块1040的每一列识别相邻平整性因数。例如,自当前块1020左侧起第五列的当前平整性因数可以基于被标记为c0、c1、c2、c3、c4、c5、c6和c7的像素来识别,并且自相邻块1040左侧起第五列的相邻平整性因数可以基于被标记为a0、a1、a2、a3、a4、a5、a6和a7的像素来识别。

如图15中所示,可以在1560识别当前去块确定。例如,可以在1560基于在1530所识别的当前去块确定阈值以及在1550确定的非平整性因数来确定是否对在1540识别的像素进行去块。例如,当前块边界可以与帧所捕捉的内容中的边缘对齐,并且可以省略对沿当前块边界的像素进行去块。在另一个示例中,块边界可能与帧所捕捉的内容中的边缘未对齐,并且可以对沿当前块边界的像素进行去块。

确定是否对在1540沿当前块边界从当前块所识别的像素进行去块可以包括确定在1550针对当前块的当前行或列所识别的当前非平整性因数(Nf(c))是否小于在1530所识别的当前去块确定阈值,并且确定相邻块的相邻非平整性因数(Nf(a))是否小于当前去块确定阈值。

例如,当前块的当前行或列所识别的当前非平整性因数(Nf(a))可以小于去块确定阈值,相邻块的当前行或列所识别的相邻非平整性因数(Nf(a))可以小于去块确定阈值,并且可以识别出指示针对当前块边界的当前行或列进行去块的确定。

在另一个示例中,当前块的当前行或列的当前非平整性因数(Nf(a))可以小于去块确定阈值,并且相邻块的当前行或列的相邻非平整性因数(Nf(a))可以至少诸如等于或大于去块确定阈值,并且可以识别出指示省略针对当前块边界的当前行或列进行去块的确定。

在另一个示例中,当前块的当前行或列的当前非平整性因数(Nf(a))可以至少诸如等于或大于去块确定阈值,并且相邻块的当前行或列的相邻非平整性因数(Nf(a))可以小于去块确定阈值,并且可以识别出指示省略针对当前块边界的当前行或列进行去块的确定。

在另一个示例中,当前块的当前行或列的当前非平整性因数(Nf(a))可以至少诸如等于或大于去块确定阈值,并且相邻块的当前行或列的相邻非平整性因数(Nf(a))可以至少诸如等于或大于去块确定阈值,并且可以识别出指示省略针对当前块边界的当前行或列进行去块的确定。

在1560所识别的去块确定可以指示针对在1540所识别的像素进行去块,并且可以在1570识别用于对在1540所识别的像素进行去块的去块参数或去块滤波参数,诸如去块滤波器、去块滤波器类型、去块滤波器强度或者它们的组合。识别去块参数可以包括从当前去块阈值子集识别一个或多个去块滤波阈值(其可能不同于去块确定阈值)以及基于所识别的去块滤波阈值识别去块参数。例如,去块滤波阈值可以基于预测模式、运动矢量一致性、变换块大小、变换块类型等而被识别或调节。

对当前块边界进行去块可以包括在1540针对当前块中的每一行或列识别像素,在1550针对当前块中的每一行或列确定非平整性因数,在1560针对当前块中的每一行或列确定是否去块,在1570针对当前块中的每一行或列识别去块参数,或者它们的组合,如1562和1572处的虚线箭头所指示。

在当前方向对当前块进行去块可以包括在1520针对当前方向识别每个块边界,并且针对每个相应的块边界,在1530针对相应块边界识别当前去块阈值子集,在1540针对相应块边界的当前块的每一行或列识别像素,在1550针对相应块边界的当前块的每一行或列确定非平整性因数,在1560针对相应块边界的当前块的每一行或列确定是否去块,在1570针对相应块边界的当前块的每一行或列识别去块参数,或者它们的组合,如1574处的虚线箭头所指示。

对当前块进行去块可以包括在1510识别每个相应方向,并且针对每个相应方向,在1520针对相应方向识别每个块边界,在1530针对相应块边界识别当前去块阈值子集,在1540针对相应块边界的当前块的每一行或列识别像素,在1550针对相应块边界的当前块的每一行或列确定非平整性因数,在1560针对相应块边界的当前块的每一行或列确定是否去块,在1570针对相应块边界的当前块的每一行或列识别去块参数,或者它们的组合,如1576处的虚线箭头所指示。

图16是依据本公开实施方式的使用双去块滤波阈值的解码1600的示例的流程图。使用双去块滤波阈值的解码1600可以在诸如图5所示的解码器500的解码器中实施。

使用双去块滤波阈值的解码1600可以包括在1610识别编码帧,在1620生成解码帧,在1630识别去块阈值索引,在1640生成重构帧,在1650输出重构帧,或者它们的任意组合。

可以在1610识别编码帧。例如,解码器可以接收或以其它方式访问编码比特流,并且可以从该编码比特流或者其一部分识别编码帧。

可以在1620生成解码帧。例如,可以通过对在1610识别的编码帧进行解码而生成解码帧。生成解码帧可以包括生成解码块。生成解码块可以包括对编码比特流的一部分进行解码。

可以在1630识别去块阈值索引。例如,可以通过从编码比特流(诸如从与当前(重构或解码)帧相关联或相对应的帧头部)解码、读取或提取去块阈值索引来识别去块阈值索引。

识别去块阈值索引可以包括从编码比特流识别第一去块阈值索引,从编码比特流识别第二去块阈值索引,或者其二者。例如,识别去块阈值索引可以包括识别用于在诸如水平或垂直的第一方向对当前帧进行去块的第一去块阈值索引,以及识别用于在诸如垂直或水平的第二方向对当前帧进行去块的第二去块阈值索引。

在一些实施方式中,识别第二去块阈值索引可以包括从编码比特流提取指示第二去块阈值索引的信息,诸如差分去块阈值索引值,并且将该差分去块阈值索引值与第一去块阈值索引之和识别为第二去块阈值索引。在一些实施方式中,识别第二去块阈值索引可以包括确定指示该第二去块阈值索引的信息包括差分去块阈值索引值。

可以在1640生成重构帧。生成重构帧可以包括对解码帧进行去块,这可以包括生成重构块,并且对该重构块进行去块。

对解码帧进行去块可以包括对来自该帧的每个解码块进行去块,这可以包括从该帧识别每个相应的解码块,并且通过对相应的解码块进行去块而生成相对应的重构块,这可以类似于图14中的1410所指示的块识别以及图14中的1420所指示的块重构,如本文所指示或者以其它方式从上下文而清楚明白的。对当前块进行去块可以类似于图15中所示的去块,区别如本文所描述或者以其它方式从上下文而清楚明白。例如,可以通过基于第一去块阈值索引和第二去块阈值索引对对应的解码块进行去块而生成每个重构块。该重构块可以被包括在重构帧中。

例如,第一去块阈值索引可以是垂直去块阈值索引,并且生成重构帧可以包括基于该第一去块阈值索引的垂直去块以及基于第二去块阈值索引的水平去块。在另一个示例中,第一去块阈值索引可以是水平去块阈值索引,并且生成重构帧可以包括基于该第一去块阈值索引的水平去块以及基于第二去块阈值索引的垂直去块。

第一方向的去块可以包括通过基于第一去块阈值索引在第一方向对解码帧进行去块而生成部分去块帧。第二方向的去块可以包括通过基于第二去块阈值索引在第二方向对该部分去块帧进行去块而生成重构帧。

第一方向或第二方向的去块可以包括基于相应的(当前)去块阈值索引从去块阈值集合中识别当前去块阈值,其可以包括去块阈值集合。例如,解码器或者解码器的去块阈值识别单元可以从包括去块阈值集合的表格或其它数据存储结构读取或以其它方式对其进行访问,所述表格诸如存储在解码器的存储器中或者能够以其它方式被解码器访问的表格,并且可以识别对应于第一去块阈值索引的第一去块阈值集合以及对应于第二去块阈值索引的第二去块阈值集合

可以在1650输出重构帧。例如,重构帧可以被包括在输出视频流中,诸如图5所示的输出视频流504,以便存储或者向用户呈现。

词语“示例”或“示例性”在这里被用来表示用作示例、实例或说明。任何在本文中被描述为“示例”或“示例性”的方面或设计并非必然被理解为相对于其它方面或设计是优选或有利的。相反,使用词语“示例”或“示例性”是为了以具体方式给出概念。如本申请中所使用的,术语“或”意在表示包含“或”而非排除“或”。也就是说,除非另外指出或者从上下文所明确,否则“X包括A或B”意在表示任意的自然包含置换形式。也就是说,如果X包括A;X包括B;或者X包括A和B二者,则“X包括A或B”就在任意上述实例下得到满足。此外,除非另外指出或者从上下文所明确为指示单数形式,否则本申请和所附权利要求汇总使用的冠词“一个”(“a”和“an”)一般应当被理解为表示“一个或多个”。此外,术语“实施例”或“一个实施例”或者“实施方式”或“一种实施方式”的使用始终都并非意在表示相同的实施例或实施方式。如本文所使用的,术语“确定”和“识别”或者其任何变化形式包括选择、确认、计算、查找、接收、确定、建立、获得,或者另外地使用图1所示的一个或多个设备以无论任何方式进行识别或确定。

另外,虽然为了解释的简明性,本文的示图和描述可以包括步骤或阶段的序列或系列,但是本文所公开的方法的要素可以以各种顺序发生和/或同时发生。此外,本文所公开的方法的要素可以随本文并未呈现并描述的其它要素一起进行。此外,可以从依据所公开主题的方法的实施方式中省略本文所描述方法的一个或多个要素。

进行传送的计算和通信设备100A和/或进行接收的计算和通信设备100B的实施方式(以及存储在其上和/或由此被执行的算法、方法、指令等)能够以硬件、软件或者它们的任意组合来实现。所述硬件例如可以包括计算机、知识产权(IP)核心、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器,或者任意其它适当电路。在权利要求中,术语“处理器”应当被理解为单独或以组合形式包含任何的上述硬件。术语“信号”和“数据”可互换使用。另外,进行传送的计算和通信设备100A与进行接收的计算和通信设备100B并非必然要以相同方式来实施。

另外,在一种实施方式中,例如,进行传送的计算和通信设备100A或进行接收的计算和通信设备100B能够使用计算机程序来实施,所述计算机程序在被执行时实行本文所描述的任意的相应方法、算法和/或指令。除此之外或可替换地,例如,可以采用专用计算机/处理器,其可以包含用于实行本文所描述的任意的相应方法、算法或指令的专用硬件。

进行传送的计算和通信设备100A与进行接收的计算和通信设备100B例如可以在实时视频系统中的计算机上实施。可替换地,进行传送的计算和通信设备100A能够服务器上实施,而进行接收的计算和通信设备100B则能够在与服务器分离的设备上实施,诸如手持通信设备。在该实例中,进行传送的计算和通信设备100A能够使用编码器400将内容编码为编码视频信号并且将该编码视频信号传送至通信设备。进而,该通信设备随后可以使用解码器500对该编码视频信号进行解码。可替换地,该通信设备能够对该通信设备上本地存储的内容进行解码,例如并非由进行传送的计算和通信设备100A所传送的内容。其它适当的进行传送的计算和通信设备100A与进行接收的计算和通信设备100B的实施方案是可行的。例如,进行接收的计算和通信设备100B可以是通常静止的个人计算机而不是便携式通信设备,和/或包括编码器400的设备也可以包括解码器500。

另外,全部或部分的实施方式可以采用例如能够从有形的计算机可用或计算机可读介质进行访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是例如能够以有形方式包含、存储、通信或传输程序以便由任意处理器使用或结合其使用的任意设备。所述介质例如可以是电子、磁性、光学、电磁或半导体设备。其它适当介质也是可用的。

已经对上述实施方式进行了描述以便允许容易地理解本申请而并非作为限制。相反地,本申请服该了包括在所附权利要求范围之内的各种修改和等同部署形式,其范围与最宽泛的解释相符从而包含法律所允许的所有这样的修改和等同结构。

44页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:图像处理方法和装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类