CN107302701B - 译码插值滤波器类型 - Google Patents

译码插值滤波器类型 Download PDF

Info

Publication number
CN107302701B
CN107302701B CN201611223784.XA CN201611223784A CN107302701B CN 107302701 B CN107302701 B CN 107302701B CN 201611223784 A CN201611223784 A CN 201611223784A CN 107302701 B CN107302701 B CN 107302701B
Authority
CN
China
Prior art keywords
block
motion vector
interpolation filter
decoding
predicting
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201611223784.XA
Other languages
English (en)
Other versions
CN107302701A (zh
Inventor
许耀武
韩敬宁
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Google LLC
Original Assignee
Google LLC
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 Google LLC filed Critical Google LLC
Publication of CN107302701A publication Critical patent/CN107302701A/zh
Application granted granted Critical
Publication of CN107302701B publication Critical patent/CN107302701B/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/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/523Motion estimation or motion compensation with sub-pixel accuracy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/513Processing of motion vectors
    • H04N19/517Processing of motion vectors by encoding
    • H04N19/52Processing of motion vectors by encoding by predictive encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • 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/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/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • H04N19/577Motion compensation with bidirectional frame interpolation, i.e. using B-pictures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

Landscapes

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

Abstract

本发明涉及译码插值滤波器类型。解码视频流包括通过从编码的视频流解码第一运动向量来解码当前帧的第一块,从编码的视频流解码第一插值滤波器的标识符,以及使用第一运动向量和第一插值滤波器重构第一块。解码当前帧的第二块包括:响应于解码用于解码第二块的中间预测模式标识符,从第一块识别第一运动向量作为用于预测第二块的所选择的运动向量,响应于从第一块识别第一运动向量作为用于预测第二块的所选择的运动向量,识别第一插值滤波器作为用于预测第二块的所选择的插值滤波器,以及使用第一运动向量和第一插值滤波器重构第二块。

Description

译码插值滤波器类型
背景技术
数字视频可以用于例如经由视频会议(conference)的远程商务会议(meeting)、高清晰度视频娱乐、视频广告或用户生成的视频的共享。由于视频数据中涉及的大量数据,传输和存储需要高性能压缩。已经提出了各种方法来减少视频流中的数据量,包括压缩和其他编码(encoding)和解码(decoding)技术。这些技术可涉及用于分数运动的子像素插值。
发明内容
本申请涉及用于传输或存储的视频流数据的编码和解码。本申请公开了与将运动向量与用于视频数据帧的中间预测块的插值滤波器类型相关联有关的系统、方法和装置的方面。
一个方面是一种用于使用与解码的运动向量相关联的插值滤波器类型的视频解码的方法。解码可以包括:从编码的视频流解码当前帧的第一块;由处理器响应于存储在非暂时性计算机可读介质上的指令,从编码的视频流解码当前帧的第二块,以及输出或存储第一块和第二块。解码第一块可以包括从编码的视频流解码第一运动向量,从编码的视频流解码第一插值滤波器的标识符,以及使用第一运动向量和第一插值滤波器重构第一块。解码第二块可以包括响应于解码了用于解码第二块的中间预测模式标识符,从第一块识别第一运动向量作为用于预测第二块的选择的运动向量;响应于从第一块识别第一运动向量作为用于预测第二块的选择的运动向量,识别第一插值滤波器为选择的插值滤波器;以及使用第一运动向量和第一插值滤波器重构第二块。
另一个方面是一种用于使用与解码的运动向量相关联的插值滤波器类型的视频解码的方法。解码可以包括:处理器响应于存储在非暂时性计算机可读介质上的指令,从编码的视频流解码当前帧的当前块,以及输出或存储当前块。解码当前块可以包括:识别在空间上接近当前帧中的当前块的先前解码的块,从来自于空间上接近当前块的先前解码的块的所选择的先前解码的块识别运动向量作为用于预测当前块的所选择的运动向量,响应于识别运动向量作为用于预测当前块的所选择的插值滤波器来识别插值滤波器,以及使用所选择的运动向量和所选择的插值滤波器重构当前块。
另一个方面是一种用于使用与运动向量相关联的插值滤波器类型的视频编码的方法。编码可以包括:通过从来自输入视频流的当前帧编码第一块来生成第一编码的块;输出第一编码的块;由处理器响应于存储在非暂时性计算机可读介质上的指令,通过从当前帧编码第二块来生成第二编码的块;以及发送或存储输出比特流。编码第一块可以包括识别用于预测第一块的第一运动向量,以及识别用于预测第一块的第一插值滤波器。输出第一编码的块可以包括在输出比特流中包括第一运动向量,并且在输出比特流中包括第一插值滤波器的标识符。编码第二块可以包括识别用于预测第二块的候选运动向量。候选运动向量可以包括第一运动向量和用于预测第二块的第二运动向量,其中第二运动向量不同于第一运动向量,并且其中第二运动向量是非零运动向量。编码第二块可以包括从候选运动向量中识别用于预测第二块的所选择的运动向量,并且在所选择的运动向量是第一运动向量的条件下,识别第一插值滤波器作为用于预测第二块的所选择的插值滤波器,以及从输出比特流中省略用于预测第二块的所选择的运动向量以及用于预测第二块的所选择的插值滤波器的标识符。
以下将更详细地描述这些和其他方面的变化。
附图说明
本申请的描述参考附图,其中除非另有说明,否则相同的附图标记在几个视图中指代相同的部件。
图1是根据本公开的实施方式的计算设备的图。
图2是根据本公开的实施方式的计算和通信系统的图。
图3是根据本公开的实施方式的用于编码和解码的视频流的图。
图4是根据本公开的实施方式的编码器的框图。
图5是根据本公开的实施方式的解码器的框图。
图6是根据本公开的实施方式的具有子像素精度的运动向量的框图。
图7是根据本发明的实施方案的用于使用与编码的运动向量相关联的插值滤波器编码的过程的流程图。
图8是根据本发明的实施方案的用于使用与解码的运动向量相关联的插值滤波器解码的过程的流程图。
具体实施方式
视频压缩方案可以包括将每个图像或帧分成诸如块的较小部分,并且使用用于限制输出中的每个块所包括的信息的技术来生成输出比特流。可以解码编码的比特流以从限制的信息重新创建源图像。可以通过减少空间冗余,减少时间冗余或其组合来限制输出中的每个块所包括的信息。例如,可以通过基于对编码器和解码器都可用的信息来预测帧,并且包括表示预测帧和原始帧之间的差或残余的信息,来减少时间或空间冗余。
运动预测可包括使用中间预测模式,其中比较参考帧的部分与当前帧中的块。可定义运动向量以表示参考帧与当前帧的对应块或多个像素之间的块或像素偏移。然而,在输出比特流中指示运动向量可能增加输出比特流的大小,这可能降低编码效率。可以通过使用先前用于编码相邻块或空间接近块的运动向量编码块来提高编码效率。例如,编码器可评估相邻先前编码的块以识别用于编码当前块的候选运动向量,从相邻先前编码的块选择候选运动向量中的一个作为用于译码(coding)当前块的运动向量,在输出比特流中指示对应于所选择的运动向量的中间预测模式,并且省略指示用于预测输出比特流中的当前块的运动向量。
插值滤波器可用于调节参考帧与当前帧之间的子块或子像素运动。子像素运动也可以被称为亚像素(subpel)运动或分数像素运动。编码器可以识别用于编码块的运动向量和子像素插值滤波器,并且指示运动向量和编码的视频流中的子像素插值滤波器的标识符。例如,编码器可评估相邻先前编码的块以识别用于编码当前块的候选运动向量,从相邻先前编码的块选择候选运动向量中的一个作为用于译码当前块的运动向量,指示对应于输出比特流中的所选择的运动向量的中间预测模式,在输出比特流中省略指示用于预测当前块的运动向量,以及在输出比特流中指示用于预测当前块的子像素插值滤波器的标识符。然而,在输出比特流中指示子像素插值滤波器的标识符可增加输出比特流的大小,这降低了编码效率。
可以通过使用先前用于编码相邻块或空间接近块的插值滤波器编码块来提高编码效率。例如,编码器可评估相邻先前编码的块以识别用于编码当前块的候选运动向量,从相邻先前编码的块选择候选运动向量中的一个作为用于译码当前块的运动向量,识别用于编码与所选择的运动向量相对应的相邻先前编码的块的插值滤波器,在输出比特流中指示与所选择的运动向量相对应的中间预测模式向量和所识别的插值滤波器,并且在输出比特流中省略指示运动向量和用于预测当前块的所识别的插值滤波器。
图1是根据本公开的实施方式的计算设备100的图。所示的计算设备100包括通信接口110、通信单元120、用户界面(UI)130、处理器140、存储器150、指令160和电源170。如本申请所使用的,术语“计算设备”包括能够进行本申请所公开的任何方法或其任何部分或多个部分的任何单元或单元的组合。
计算设备100可以是固定计算设备,诸如个人计算机(PC)、服务器、工作站、小型计算机或大型计算机;或移动计算设备,诸如移动电话、个人数字助理(PDA)、膝上型计算机或平板PC。尽管被示为单个单元,但是计算设备100的任何一个或多个元件可以被集成到任何数量的分离的物理单元中。例如,UI 130和处理器140可以集成在第一物理单元中,并且存储器150可以集成在第二物理单元中。
通信接口110可以是如所示的无线天线、诸如以太网端口的有线通信端口、红外端口、串行端口或者能够与有线或无线电子通信介质180对接的任何其他有线或无线单元。
通信单元120被配置为经由有线或无线介质180发送或接收信号。例如,如所示,通信单元120可操作地连接到被配置为经由无线信号通信的天线。虽然在图1中未明确示出,通信单元120可以被配置为经由诸如射频(RF)、紫外线(UV)、可见光、光纤、有线线路或其组合的任何有线或无线通信介质发送、接收或两者。尽管图1示出了单个通信单元120和单个通信接口110,但是可以使用任何数量的通信单元和任何数量的通信接口。
UI 130包括能够与用户接口的任何单元,诸如虚拟或物理键盘、触摸板、显示器、触摸显示器、扬声器、麦克风、摄像机、传感器或其任何组合。UI 130可以可操作地耦合到所示的处理器或者诸如电源170的计算设备100的任何其他元件。尽管被示为单个单元,UI130可以包括一个或多个物理单元。例如,UI 130可以包括用于与用户进行音频通信的音频接口。UI 130可以包括用于与用户进行基于视觉和触摸的通信的触摸显示器。尽管被示出为单独的单元,但是通信接口110、通信单元120和UI 130或其部分可以是组合单元。例如,通信接口110、通信单元120和UI 130可以被实施为能够与外部触摸屏设备对接的通信端口。
处理器140包括能够操纵或处理信号或现在或将来开发的其他信息的任何设备或系统,包括光处理器、量子处理器、分子处理器或其组合。例如,处理器140可以包括专用处理器、数字信号处理器(DSP)、多个微处理器、与DSP核心相关联的一个或多个微处理器、控制器、微控制器、专用集成电路(ASIC),现场可编程门阵列(FPGA)、可编程逻辑阵列、可编程逻辑控制器、微代码、固件、任何类型的集成电路(IC)、状态机或其任何组合。如本申请所使用的,术语“处理器”包括单个处理器或多个处理器。在图1的示例中,处理器140可操作地耦合到通信接口110、通信单元120、UI 130、存储器150、指令160和电源170。
存储器150包括由处理器140使用或与处理器140连接的、任何非暂时性计算机可用或计算机可读介质,诸如可以例如包含、存储、通信或传输指令160或与其相关联的任何信息的任何有形设备。非暂时性计算机可用或计算机可读介质可以是例如固态驱动器,存储卡,可移动介质,只读存储器(ROM),随机存取存储器(RAM),包括硬盘、软盘、光盘、磁卡或光卡的任何类型的盘,专用集成电路(ASIC)或任何类型的适合于存储电子信息的非暂时性介质,或其任何组合。存储器150可以通过例如存储器总线(未明确示出)连接到例如处理器140。
指令160包括用于进行本申请公开的任何方法或其任何部分或多个部分的命令。指令160可以以硬件、软件或其任何组合来实现。例如,指令160可以被实施为存储在存储器150中的信息,诸如计算机程序,其可以由处理器140执行以进行本申请所述的任何相应方法、算法、方面或其组合。如本申请所描述,指令160或其部分可以被实施为专用处理器或电路,其可以包括用于执行任何方法、算法、方面或其组合的专用硬件。可以在同一机器或不同机器上的跨多个处理器或跨诸如局域网、广域网、互联网或其组合的网络分布指令160的部分。
电源170是用于为通信接口110供电的任何合适的设备。例如,电源170可以包括有线电源;一个或多个干电池,诸如镍镉(NiCd)、镍锌(NiZn)、镍金属氢化物(NiMH)、锂离子(Li离子);太阳能电池;燃料电池;或能够为通信接口110供电的任何其它设备。通信接口110、通信单元120、UI 130、处理器140、指令160和存储器150可操作地耦合到电源170。
虽然被示出为单独的元件,但是通信接口110、通信单元120、UI130、处理器140、指令160、电源170、存储器150或其任何组合可以集成在一个或多个电子单元、电路或芯片中。
图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被描述为服务器,但是任何计算和通信设备可以进行服务器的一些或全部功能、用户设备的一些或全部功能或服务器和用户设备的一些或全部功能。
每个计算和通信设备100A/100B/100C可以被配置为进行有线或无线通信。例如,计算和通信设备100A/100B/100C可以被配置为发送或接收有线或无线通信信号,并且可以包括用户设备(UE)、移动站、固定或移动用户单元、蜂窝电话、个人计算机、平板计算机、服务器、消费电子产品或任何类似的设备。虽然每个计算和通信设备100A/100B/100C被示出为单个单元,但是计算和通信设备可以包括任何数目的互连元件。
每个接入点210A/210B是被配置为经由有线或无线通信链路180A/180B/180C与计算和通信设备100A/100B/100C、网络220或两者通信的任何类型的设备。例如,接入点210A/210B可以包括基站、基站收发台(BTS)、节点B、增强型节点B(eNode-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可以经由诸如直接有线或无线通信链接的任何数目的通信链路彼此通信。
计算和通信系统200的其它实施是可能的。例如,网络220可以是自组织网络,并且可以省略接入点210A/210B中的一个或多个。计算和通信系统200可以包括图2中未示出的设备、单元或元件。例如,计算和通信系统200可以包括更多的通信设备、网络和接入点。
图3是根据本公开的实施方案的在编码和解码中使用的视频流300的图。诸如由视频相机捕获的视频流或由计算设备生成的视频流的视频流300包括视频序列310。视频序列310包括一系列邻近帧320。虽然示出了三个邻近帧320,视频序列310可以包括任何数目的邻近帧320。来自邻近帧320的每个帧330可以表示来自视频流的单个图像。帧330可以包括块340。尽管图3未所示,块包括像素。例如,块可以包括16×16像素组、8×8像素组、8×16像素组或任何其它像素组。除非本申请另有说明,术语“块”可以包括超级块、宏块、片段、片或帧的任何其它部分。帧、块、像素或其组合可包括显示信息,诸如亮度信息、色度信息或可用于存储、修改、传送或显示视频流或其一部分的任何其它信息。
图4是根据本公开的实施方案的编码器400的框图。编码器400可以在诸如图1所示的计算设备100或图2所示的计算和通信设备100A/100B/100C的设备中实施为例如存储在诸如图1所示的存储器150的数据存储单元中的计算机软件程序。计算机软件程序可以包括可以由诸如图1所示的处理器140的处理器执行的机器指令,并且可以使得设备对如本申请所述地编码视频数据。编码器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)。在一个示例中,DCT包括将块变换到频域。DCT包括使用基于空间频率的变换系数值,其中在矩阵的左上方具有最低频率(即,DC)系数,并且在矩阵的右下方具有最高频率系数。
量化单元430使用量化(也称为量化器)值或级将变换系数转换为离散量化值,其可被称为量化的变换系数。量化的变换系数可由熵编码单元440进行熵编码以产生经熵编码的系数。熵编码可以包括使用概率分布度量。用于解码块的熵编码的系数和信息,其可以包括所使用的预测类型、运动向量和量化器值,可以被输出到压缩的比特流404。可以使用各种技术来格式化压缩的比特流404,诸如作为游程长度编码(RLE)和零游程译码。
重构路径可以用于维持编码器400和诸如图1所示的解码器500的相应的解码器之间的参考帧同步。重建路径可以类似于下面讨论的解码过程,并且如图所示包括在去量化单元450对量化的变换系数进行去量化,并且在逆变换单元460对去量化的变换系数进行逆变换,以产生导数残余块。重建单元470将由内部/中间预测单元410生成的预测块添加到导数残余块,以创建重构块。环路滤波单元480可应用于重建块以减少诸如块伪影失真。
编码器400的其它变型可以用于编码压缩的比特流404。例如,基于非变换的编码器可以在没有变换单元420的情况下直接量化残余块。量化单元430和去量化单元450可以被组合成单个单元。
图5是根据本公开的实施方案的解码器500的框图。解码器500可以在诸如图1所示的计算设备100或图2所示的计算和通信设备100A/100B/100C的设备中实施为,例如,存储在诸如图1所示的存储器150的数据存储单元中的计算机软件程序。计算机软件程序可以包括可以由诸如图1所示的处理器160的处理器执行的机器指令,并且可以使得设备解码如本申请所述的视频数据。解码器500可以被实施为包括例如在计算设备100中的专用硬件。
解码器500接收诸如图4所示的压缩的比特流404的压缩的比特流502,并且解码压缩的比特流502以生成输出视频流504。如图所示的解码器500包括熵解码单元510、去量化单元520、逆变换单元530、内部/中间预测单元540、重构单元550、环路滤波单元560和去块滤波单元570。解码器500的其它结构变化可用于解码压缩的比特流502。
熵解码单元510使用熵译码方案来解码压缩的比特流502内的数据元素以产生量化的变换系数的集合。熵解码单元510可以使用例如场境自适应二进制算术解码。去量化单元520对量化的变换系数去量化,逆变换单元530对去量化的变换系数逆变换,以产生导数残余块,其可对应于由图4所示的逆变换单元460生成的导数残余块。使用从压缩的比特流502解码的报头信息,内部/中间预测单元540生成与在编码器400中创建的预测块相对应的预测块。在重构单元550,将预测块添加到导数残余块以创建重构块。环路滤波单元560可应用于重建块以减少块伪影。去块滤波单元570可应用于重构块以减少块失真。结果作为输出视频流504输出。
解码器500的其它变化可以用于解码压缩的比特流502。例如,解码器500可以在没有去块滤波单元570的情况下产生输出视频流504。
如上文简要提及的,减少时间冗余可以包括使用帧之间的相似性以使用基于可以是视频流的先前编码的、解码的和重建的帧的一个或多个参考帧的相对少量的数据来编码帧。例如,当前帧的块或像素可以类似于空间对应的参考帧的块或像素。当前帧的块或像素可以与不同部分处的参考帧的块或像素类似,并且减少时间冗余可以包括生成指示在当前帧中的块或像素的位置与参考帧中的块或像素的对应位置之间的空间差或转化的运动信息。
减少时间冗余可以包括识别与当前帧的当前块或像素相对应的参考帧或参考帧的部分中的块或像素。例如,为用于编码当前帧的当前块或像素的最佳块或像素搜索可以存储在存储器中的参考帧或参考帧的部分。搜索可以识别参考帧的块,其中参考块和当前块之间的像素值的差被最小化,并且可以被称为运动搜索。被搜索的参考帧的部分可以是有限的。例如,可以被称为搜索区域的被搜索的参考帧的部分可以包括参考帧的有限数目的行。识别参考块可以包括计算搜索区域中的块的像素与当前块的像素之间的成本函数,诸如绝对差之和(SAD)。可以提供多于一个参考帧。例如,可以从八个候选参考帧中选择三个参考帧。
参考帧中的参考块的位置与当前帧中的当前块的位置之间的空间差可被表示为运动向量。参考块和当前块之间的像素值的差被称为差分数据、残余数据或者残余块。生成运动向量可以被称为运动估计,并且可以使用笛卡尔坐标基于位置来指示当前块的像素为fx,y。类似地,可以使用笛卡尔坐标基于位置来指示参考帧的搜索区域的像素为rx,y。可基于例如当前帧的像素与参考帧的对应像素之间的SAD来确定用于当前块的运动向量(MV)。
虽然为了清楚起见在本申请中参考帧的矩阵或笛卡尔表示进行描述,但是帧可以在任何数据结构中被存储、传输、处理或其任何组合,使得可以针对帧或者图片有效地表示像素值。例如,帧可以在诸如矩阵的二维数据结构中或者在诸如向量数列的一维数据结构中被存储,传送,处理或其任何组合。
对于中间预测,编码器400可在块端点处传达用于预测块的编码的信息,包括,但不限于,预测模式、一个或多个预测参考帧、如果需要的一个或多个运动向量和子像素插值滤波器类型。
图6是根据本公开的实施方案的使用子像素插值滤波器的中间预测的表示的框图。使用子像素插值滤波器的中间预测可以在诸如图5所示的解码器500的解码器、诸如图4所示的编码器400的编码器、或两者中实施。
中间预测可包括参考参考帧620编码诸如块612或块614的当前帧610或其一部分。例如,运动向量632/634指示相对于当前帧610中对应块612/614的位置的参考帧622中的参考块622/624的空间位置,参考块622/624是被识别为最精确地匹配当前帧610中的对应块612/614的参考帧620的部分,并且参考块622/624用来生成用于编码当前帧610的预测块。
最精确地匹配当前帧610的当前块614的参考帧620的部分626可以是从块或像素边界的偏移。在这种情况下,中间预测可以包括使用子像素插值滤波器。例如,中间预测包括使用1/2像素,1/4像素或1/8像素的运动向量精度,并且使用子像素插值滤波器。可以使用用于子像素插值滤波器的不同像素位置。
译码当前块包括从用于译码当前块的多个候选预测模式中识别预测模式。例如,视频编码器可评估候选预测模式,包含内部预测模式,中间预测模式或两者,以识别最佳预测模式。最佳预测模式可以是例如使当前块的诸如速率失真成本的误差度量最小化的预测模式。
中间预测模式可包括新运动向量模式(NewMV)、零运动向量模式(ZeroMV)、最近运动向量模式(NearestMV)和/或近运动向量模式(NearMV)。新运动向量模式(NewMV)指示在编码的视频流中向用于当前块的新运动向量明确地或显式地发信号。可以向新运动向量差分地发信号。例如,可以使用新运动向量和诸如用于先前编码的相邻块的运动向量的参考运动向量之间的差来向新运动向量发信号。零运动向量模式(ZeroMV)指示零运动向量(0,0),其指示没有运动,被用于预测当前块。在这种情况下,可以从编码视频流中省略用于预测当前块的明确或明显运动向量。最近运动向量模式(NearestMV)可以指示用于编码被识别为最近运动向量的相邻先前编码的块的运动向量被用于预测当前块,并且从编码的视频流省略用于预测当前块的明确的或显式的运动向量。近运动向量模式(NearMV)可以指示用于编码被识别为近运动向量的相邻先前编码的块的运动向量被用于预测当前块,并且从编码的视频流中省略用于预测当前块的明确的或显式的运动向量。
编码器、解码器或两者可识别用于译码(编码或解码)当前块的候选运动向量。例如,候选运动向量包括零运动向量、新运动向量,近运动向量和最近运动向量。编码器可以评估相邻或接近的先前编码的块以识别近运动向量和最近运动向量。例如,从第一相邻或接近先前编码的块识别近运动向量,并且从第二相邻或接近先前编码的块识别最近运动向量。
译码当前块可以包括识别用于预测当前块的插值滤波器。例如,可以从候选插值滤波器中选择插值滤波器。候选插值滤波器可以是1/16像素精度滤波器。候选插值滤波器可包括双线性滤波器、8抽头滤波器(EIGHTTAP)、尖锐8抽头滤波器(EIGHTTAP_SHARP)、平滑8抽头滤波器(EIGHTTAP_SMOOTH)或其组合。
图7是根据本公开的实施方案的用于使用与运动向量相关联的插值滤波器编码的示例方法的流程图。使用与运动向量相关联的插值滤波器编码可在诸如图4中所示的编码器400的编码器中实施。
使用与运动向量相关联的插值滤波器编码包括在710编码第一块,在720输出用于第一块的运动向量和插值滤波器识别符,在730识别用于编码第二块的候选运动向量,在740识别用于编码第二块的预测模式,以及在750输出用于编码第二块的预测模式。
在710编码第一块。诸如图4中所示的编码器400的编码器可以编码当前帧的第一块,诸如图6所示的帧610的左上方的块。编码第一块可以包括识别用于编码第一块的运动向量。尽管在图7中未单独示出,识别用于编码第一块的运动向量可以包括识别用于编码第一块的候选运动向量。候选运动向量可包括新运动向量、零运动向量、近运动向量、最近运动向量或其组合。近运动向量和最近运动向量可以通过评估与当前帧中的第一块相邻或接近的先前编码的块来识别。例如,可以以光栅扫描顺序编码当前帧的块,并且与第一帧中的第一块相邻的先前编码的块可以包括第一块左侧的块、第一块上方的块、第一块左上方的块、第一块右上方的块、或其组合。可识别新运动向量以用于编码第一块,并且可识别插值滤波器以用于编码第一块。插值滤波器可以是诸如双线性滤波器、8抽头滤波器(EIGHTTAP)、尖锐8抽头滤波器(EIGHTTAP_SHARP)或平滑8抽头滤波器(EIGHTTAP_SMOOTH)的子像素插值滤波器。
基于运动向量在参考帧中识别参考块,并且使用插值滤波器从参考块生成预测块。可以在输出比特流中包括在输入或源第一块与预测块之间的残余或预测误差。
在720用于译码第一块的运动向量和插值滤波器的标识符被包括在输出比特流中,诸如在用于第一块的标头中。用于译码第一块的运动向量可以与用于译码第一块的插值滤波器相关联。
当前帧的第二或当前块可在编码当前帧的第一块之后被编码。例如,诸如图4所示的编码器400的编码器可以编码诸如来自图6所示的帧610的块614的第二块。
编码当前块包括在730识别用于编码当前块的候选运动向量。候选运动向量可包括新运动向量、零运动向量、近运动向量、最近运动向量或其组合。可以通过评估与当前帧中的当前块相邻或接近的先前编码的块来识别近运动向量和最近运动向量。例如,可以以光栅扫描顺序编码当前帧的块,并且与当前帧中的当前块相邻的先前编码的块可以包括当前块左侧的块、当前块上方的块、当前块的左上方的块,当前块的右上方的块,或其组合;然而可以使用与当前块相邻的不同的先前编码的块,或者可以使用不同的编码顺序。在710编码的第一块可以是与当前帧中的当前块相邻的先前编码的块,并且用于编码第一块的运动向量可以被识别为用于译码当前块的近运动向量或最近运动向量。
在740识别预测模式以用于编码第二块。例如,可以识别诸如新运动向量模式(NewMV)、零运动向量模式(ZeroMV)、最近运动向量模式(NearestMV)或近运动向量模式(NearMV)的中间预测模式以用于编码当前块。
可识别最近运动向量模式以用于编码当前块,并且对应的最近运动向量可被识别为用于编码当前块的运动向量。例如,第一块可以是与当前帧中的当前块相邻的先前编码的块,用于编码第一块的运动向量可以被识别为最近运动向量,用于编码当前块的预测模式可以被识别为最近运动向量模式,并且用于编码第一块的运动向量可以被识别为用于编码当前块的运动向量。类似地,近运动向量模式可以被识别以用于编码当前块,并且相应的近运动向量可以被识别为用于编码当前块的运动向量。例如,第一块可以是与当前帧中的当前块相邻的先前编码的块,用于编码第一块的运动向量被识别为近运动向量,用于编码当前块的预测模式被识别为近运动向量模式,并且用于编码第一块的运动向量被识别为用于对当前块编码的运动向量。
在740识别预测模式可包括基于被识别为用于编码当前块的运动向量来识别用于编码当前块的插值滤波器。被识别为用于编码当前块的运动向量可以是新运动向量,并且识别用于编码当前块的插值滤波器可以包括评估候选插值滤波器以识别最佳插值滤波器。被识别为用于编码当前块的运动向量可以是最近运动向量,并且用于编码与最近运动向量相对应的块的插值滤波器被识别为用于编码当前块的插值滤波器。例如,用于编码第一块的运动向量可以被识别为最近运动向量,预测模式被识别为最近运动向量模式,并且用于编码第一块的插值滤波器可以被识别为用于编码第二块的插值滤波器。被识别为用于编码当前块的运动向量可以是近运动向量,并且用于编码与近运动向量相对应的块的插值滤波器被识别为用于编码当前块的插值滤波器。例如,用于编码第一块的运动向量可以被识别为近运动向量,预测模式被识别为近运动向量模式,并且用于编码第一块的插值滤波器被识别为用于编码第二块的插值滤波器。
为了编码当前帧,可以基于所识别的运动向量在参考帧中识别参考块,并且可使用所识别的插值滤波器从参考块生成预测块。可以在输出比特流中包括在输入或源当前块与预测块之间的残差或预测误差。
在750用于译码当前块的预测模式被包括在输出比特流中,诸如在用于当前块的标头中。可以从输出比特流中省略用于译码当前块的运动向量和插值滤波器的标识符。例如,预测模式可以被识别为最近运动向量模式、近运动向量模式或零运动向量模式,并且可以从输出比特流中省略运动向量和插值滤波器的标识符。
图8是根据本公开的实施方式的用于使用与运动向量相关联的插值滤波器解码的方法的示例的流程图。使用与运动向量相关联的插值滤波器的解码可在诸如图5中所示的解码器500的解码器中实施。使用与运动向量相关联的插值滤波器的解码包括在810解码第一块,在820解码用于解码第二或当前块的预测模式,并且在830识别用于解码当前块的运动向量和相关联的插值过滤器。
在810处解码当前帧的第一块。解码第一块可包括解码用于解码第一块的预测模式,诸如新运动向量模式。预测模式可以是新运动向量模式,并且解码第一块包括解码运动向量和插值滤波器的标识符,诸如用于解码第一块的子像素插值滤波器。解码第一块可以包括解码第一块的残余或预测误差。解码第一块可以包括基于解码的运动向量来识别参考帧中的参考块;使用由解码的插值滤波器标识符指示的插值滤波器从参考块生成预测块;以及通过将解码的残余添加到预测块生成重构的块。可从用于编码的视频流中的第一块的报头解码预测模式、运动向量、插值滤波器的识别符或其组合。重构的块可以包括在输出中,诸如用于呈现的输出中。
在820识别用于解码第二或当前块的预测模式。识别用于解码第二块的预测模式可包括从编码的比特流解码预测模式。例如,可以从编码的视频流中的当前块的报头解码预测模式。用于当前块的报头可省略用于解码当前块的运动向量、插值滤波器的标识符或两者。解码的预测模式可以指示最近运动向量模式、近运动向量模式或零运动向量模式,并且编码的视频流可以省略运动向量和用于解码当前块的插值滤波器的标识符。
在830识别用于解码当前块的运动向量和相关联的插值滤波器。例如,用于解码在820识别的当前块的预测模式可以是最近运动向量模式或近运动向量模式,并且识别用于解码当前块的运动向量和相关联的插值滤波器。
识别用于解码当前块的运动向量可以包括识别用于解码当前块的候选运动向量。识别候选运动向量可以包括识别近运动向量、最近运动向量或两者。可以通过评估与当前帧中的当前块相邻或接近的先前解码的块来识别近运动向量和最近运动向量。例如,可以以光栅扫描顺序解码当前帧的块,并且当前帧中与当前块相邻的先前解码的块可以包括当前块左侧的块,当前块上方的块,当前块左上方的块,当前块右上方的块,或其组合。然而,不同的先前解码的块与当前块相邻。可以使用不同的解码顺序。在一个示例中,在810解码的第一块可以是与当前帧中的当前块相邻的先前解码的块,并且用于解码第一块的运动向量被识别为用于解码当前块的近运动向量或最近运动向量。
在820用于第二块的解码的预测模式可以是最近运动向量模式,在810解码的第一块是与当前帧中的当前块相邻的先前解码的块,以及用于解码第一块的运动向量块被识别为用于解码当前块的最近运动向量。基于用于当前块的解码的预测模式,用于解码第一块的运动向量可以被识别为用于解码当前块的所选择的运动向量。类似地,在820用于第二块的解码的预测模式可以是近运动向量模式,在810解码的第一块是与当前帧中的当前块相邻的先前解码的块,以及用于解码第一块的运动向量被识别为用于解码当前块的近运动向量。基于用于当前块的解码的预测模式,用于解码第一块的运动向量可以被识别为用于解码当前块的所选择的运动向量。
与所选择的运动向量相关联的插值滤波器可以被识别为用于编码当前块的插值滤波器。
在示例中,在820用于第二块解码的预测模式可以是最近运动向量模式,在810解码的第一块是与当前帧中的当前块相邻的先前解码的块,并且用于解码第一块所使用的运动向量被识别为用于解码当前块的最近运动向量。基于用于当前块的解码的预测模式,用于解码第一块的运动向量被识别为用于解码当前块的所选择的运动向量,并且基于所选择的运动向量,与所选择的运动向量相关联的用于解码第一块的插值滤波器块可以被识别为用于解码当前块的所选择的插值滤波器。类似地,在820用于第二块解码的预测模式可以是近运动向量模式,在810解码的第一块是与当前帧中的当前块相邻的先前解码的块,用于解码第一块的运动向量被识别为用于解码当前块的近运动向量,基于用于当前块的解码的预测模式,用于解码第一块的运动向量被识别为用于解码当前块的所选择的运动向量,并且基于所选择的运动向量,与所选择的运动向量相关联的用于对第一块解码的插值滤波器可以被识别为用于解码当前块的所选择的插值滤波器。
解码当前块可以包括基于所选择的运动向量在参考帧中识别参考块,使用所选择的插值滤波器从参考块生成预测块,以及通过将解码的残余添加到预测块来生成重构快。重构的块可以被包括在输出中,诸如用于呈现的输出中。
词语“示例”或“方面”在本申请中用于表示用作示例,实例或说明。本申请描述为“示例”或“方面”的任何方面或设计不一定被解释为相对于其它方面或设计是优选的或有利的。相反,词语“示例”或“方面”的使用旨在以具体方式呈现概念。如本申请中所使用的,术语“或者”旨在表示包括性的“或者”而不是排他性的“或者”。也就是说,除非另有说明或者从上下文中清楚,否则“X包括A或B”旨在表示任何自然的包括性排列。也就是说,如果X包括A;X包括B;或X包括A和B两者,则在任何前述实例下满足“X包括A或B”。此外,除非另有说明或从上下文中清楚地指示单数形式,否则本申请和所附权利要求中使用的冠词“一”和“一个”通常应被解释为意指“一个或多个”。此外,贯穿全文使用术语“实施例”或“实施方式”并不旨在表示相同的实施例或实施方式,除非如此描述。如本申请所使用的,术语“确定”和“识别”或其任何变化包括以任何方式使用一个或多个图1中所示的设备选择、查明、计算、查找、接收、确定、建立。
此外,为了简化说明,虽然本申请的附图和说明书可以包括步骤或阶段的序列或系列,但是本申请公开的方法的元素可以以各种顺序和/或同时发生。另外,本申请公开的方法的元素可以与本申请未明确呈现和描述的其它元素一起发生。此外,可能并非本申请所述的方法的所有元素都是实施根据所公开主题的方法所必需的。
可以以硬件、软件或其任何组合来实现发送站100A和/或接收站100B(以及其上存储的和/或由其执行的算法、方法、指令等)的实施方式。硬件可以包括例如计算机、知识产权(IP)核、专用集成电路(ASIC)、可编程逻辑阵列、光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其他合适的电路。在权利要求中,术语“处理器”应当被理解为单独地或组合地包含任何前述硬件。术语“信号”和“数据”可互换使用。此外,发送站100A和接收站100B的部分不一定必须以相同的方式实施。
此外,在一个实施中,例如,发送站100A或接收站100B可以使用计算机程序来实施,计算机程序在被执行时执行本申请所述的相应方法、算法和/或指令中的任一个。附加或替换地,例如,可以利用专用计算机/处理器,其可以包含用于执行本申请所述的任何方法、算法或指令的专用硬件。
发送站100A和接收站100B例如可以在实时视频系统中的计算机上实施。替换地,发送站100A可以在服务器上实施,并且接收站100B可以在例如手持通信设备的与服务器分离的设备上实施。在这种情况下,发送站100A可以使用编码器400将内容编码为编码视频信号,并将编码视频信号发送到通信设备。继而,通信设备然后可以使用解码器500对编码的视频信号解码。替换地,通信设备可以解码在通信设备上本地存储的内容,例如并非由发送站100A发送的内容。其他合适的发送站100A和接收站100B的实施方案是可用的。例如,接收站100B可以是通常固定的个人计算机而不是便携式通信设备,和/或包括编码器400的设备也可以包括解码器500。
此外,实施方式的全部或部分可以采取可从例如有形计算机可用或计算机可读介质访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是例如能够有形地包含、存储、通信或传输由任何处理器使用或与任何处理器连接的程序的任何设备。介质可以是例如电子、磁性、光学、电磁或半导体器件。其它适当介质也是可用的。
已经描述了上述实施以便允许容易地理解本申请而不是限制。相反地,本申请覆盖包括在所附权利要求的范围内的各种修改和等同布置,其范围符合最宽泛的解释,以便涵盖法律允许的所有这样的修改和等同结构。

Claims (17)

1.一种用于使用插值滤波器对编码的视频流解码的方法,包括:
从编码的视频流解码当前帧的第一块,其中解码所述第一块包括:
从所述编码的视频流解码第一运动向量;
从所述编码的视频流解码用于子像素插值的第一插值滤波器的标识符;以及
使用所述第一运动向量和所述第一插值滤波器重构所述第一块;
由处理器使用选择的运动向量和选择的插值滤波器,从所述编码的视频流解码所述当前帧的第二块,其中解码所述第二块包括:
解码中间预测模式;
响应于所述中间预测模式指示所述第一块的所述第一运动向量将用于重构所述第二块:
从所述第一块识别所述第一运动向量作为用于预测所述第二块的所述选择的运动向量;
省略从所述编码的视频流解码所述选择的插值滤波器;以及
识别与所述第一运动向量相关联的所述第一插值滤波器作为用于预测所述第二块的所述选择的插值滤波器;
响应于所述中间预测模式指示新运动向量模式:
从所述编码的视频流解码新运动向量作为所述选择的运动向量;
从所述编码的视频流解码所述选择的插值滤波器的标识符;以及
使用所述选择的运动向量和所述选择的插值滤波器重构所述第二块;以及
输出或存储所述第一块和所述第二块。
2.根据权利要求1所述的方法,其中,所述第一运动向量是非零运动向量。
3.根据权利要求1所述的方法,其中,解码所述第一块包括:
识别将所述第一插值滤波器与所述第一运动相关联的信息。
4.根据权利要求3所述的方法,其中,识别所述第一插值滤波器作为用于预测所述第二块的所述选择的插值滤波器包括基于将所述第一插值滤波器与所述第一运动向量相关联的所述信息来识别所述第一插值滤波器。
5.根据权利要求1所述的方法,其中,解码所述第二块是在解码所述第一块之后。
6.根据权利要求5所述的方法,其中,所述第一块在空间上接近所述当前帧中的所述第二块。
7.根据权利要求1所述的方法,进一步包括:
从所述编码的视频流解码所述当前帧的第三块,其中解码所述第三块包括:
识别在空间上接近所述当前帧中的所述第三块的先前解码的块,其中所述先前解码的块包括所述第二块并省略所述第一块;
响应于解码用于解码所述第三块的所述中间预测模式,从所述先前解码的块识别所述第二块;
响应于从所述先前解码的块识别所述第二块,从所述第一块识别所述第一运动向量作为用于预测所述第三块的选择的运动向量;
响应于从所述第一块识别所述第一运动向量作为用于预测所述第三块的所述选择的运动向量,识别所述第一插值滤波器作为用于预测所述第三块的选择的插值滤波器;以及
使用所述第一运动向量和所述第一插值滤波器重构所述第三块;以及
输出或存储所述第三块。
8.一种用于使用插值滤波器对编码的视频流解码的方法,包括:
响应于存储在非暂时性计算机可读介质上的指令,由处理器使用选择的运动向量和选择的插值滤波器,从编码的视频流解码当前帧的当前块,其中解码所述当前块包括:
从所述编码的视频流解码中间预测模式;
响应于所述中间预测模式指示所述选择的运动向量是多个先前解码的块中一个的运动向量;
从所述多个先前解码的块中的选择的先前解码的块识别所述运动向量作为用于预测所述当前块的所述选择的运动向量;
省略从所述编码的视频流解码所述选择的插值滤波器;以及
识别与来自所述选择的先前解码的块的所述运动向量相关联的插值滤波器作为用于预测所述当前块的所述选择的插值滤波器;以及
使用所述选择的运动向量和所述选择的插值滤波器重构所述当前块;以及
输出或存储所述当前块。
9.根据权利要求8所述的方法,其中,解码所述当前块包括从所述编码的视频流解码所述当前块的报头,其中所述报头包括用于解码所述当前块的所述中间预测模式,并且其中所述报头省略用于预测所述当前块的选择的插值滤波器的标识符并且省略用于预测所述当前块的选择的运动向量。
10.根据权利要求8所述的方法,其中,所述运动向量是非零运动向量。
11.根据权利要求8所述的方法,进一步包括:
从所述编码的视频流解码所述当前帧的第二块,其中解码所述第二块包括:
识别在空间上接近所述当前帧中的所述第二块的多个先前解码的块,其中空间上接近所述第二块的所述多个先前解码的块包括所述当前块,并且省略来自于空间上接近所述当前块的所述多个先前解码的块中的所述选择的先前解码的块;
响应于解码用于解码所述第二块的所述中间预测模式,从空间上接近所述第二块的所述多个先前解码的块识别所述当前块作为用于预测所述第二块的所述选择的先前解码的块;
响应于从所述多个先前解码的块识别所述当前块作为用于预测所述第二块的所述选择的先前解码的块,从空间上接近所述当前块的所述多个先前解码的块中的所述选择的先前解码的块识别所述运动向量作为用于预测所述第二块的选择的运动向量;
响应于识别所述运动向量作为用于预测所述第二块的所述选择的运动向量,识别所述插值滤波器作为用于预测所述第二块的选择的插值滤波器;以及
使用用于预测所述第二块的所述选择的运动向量和用于预测所述第二块的所述选择的插值滤波器重构所述第二块;以及
输出或存储所述第二块。
12.一种用于使用插值滤波器生成编码的视频流的方法,包括:
通过从来自于输入视频流的当前帧编码第一块来生成第一编码的块,其中编码所述第一块包括:
识别用于预测所述第一块的第一运动向量,其中,所述第一运动向量具有子像素精度;以及
识别用于预测所述第一块的第一插值滤波器;
通过以下步骤输出所述第一编码的块:
在输出比特流中包括指示所述第一运动向量的第一中间预测模式;以及
在所述输出比特流中包括所述第一插值滤波器的第一标识符;
由处理器通过从所述当前帧编码第二块来生成第二编码的块,其中,编码所述第二块包括:
识别用于预测所述第二块的候选运动向量,其中所述候选运动向量包括所述第一运动向量;
从所述候选运动向量中识别用于预测所述第二块的选择的运动向量;
响应于确定用于预测所述第二块的所述选择的运动向量是用于预测所述第一块的所述第一运动向量:
识别所述第一插值滤波器作为用于预测所述第二块的选择的插值滤波器;
使用所述第一运动向量和所述插值滤波器来预测所述第二块;以及
省略在所述输出比特流中编码用于预测所述第二块的所述选择的运动向量和用于预测所述第二块的所述选择的插值滤波器的标识符;以及
发送或存储所述输出比特流。
13.根据权利要求12所述的方法,其中,所述第一运动向量是非零运动向量。
14.根据权利要求12所述的方法,其中,在所述输出比特流中包括所述第一插值滤波器的所述第一标识符包括:在所述输出比特流中包括所述第一插值滤波器的所述第一标识符以使得所述第一运动向量与所述第一插值滤波器相关联。
15.根据权利要求12所述的方法,其中,编码所述第二块是在编码所述第一块之后。
16.根据权利要求12所述的方法,进一步包括:
通过从所述当前帧编码第三块来生成第三编码的块,其中编码所述第三块包括:
识别接近所述当前帧中的所述第三块的先前编码的块,其中接近所述第三块的所述先前编码的块包括所述第二块并且省略所述第一块;
基于所述先前编码的块来识别用于预测所述第三块的候选运动向量,其中所述候选运动向量包括所述第一运动向量;
从用于预测所述第三块的所述候选运动向量中识别用于预测所述第三块的选择的运动向量;
在用于预测所述第三块的所述选择的运动向量是所述第一运动向量的条件下:
识别所述第一插值滤波器作为用于预测所述第三块的选择的插值滤波器;以及
从所述输出比特流中省略用于预测所述第三块的所述选择的运动向量和用于预测所述第三块的所述选择的插值滤波器的标识符;以及
发送或存储所述输出比特流。
17.根据权利要求12所述的方法,进一步包括:
在所述选择的运动向量是新运动向量的条件下:
评估候选插值滤波器以识别用于编码所述第二块的第二插值滤波器;以及
编码指示与所述选择的运动向量相关联的所述第二插值滤波器的第二标识符。
CN201611223784.XA 2016-04-15 2016-12-27 译码插值滤波器类型 Active CN107302701B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/099,853 2016-04-15
US15/099,853 US10602176B2 (en) 2016-04-15 2016-04-15 Coding interpolation filter type

Publications (2)

Publication Number Publication Date
CN107302701A CN107302701A (zh) 2017-10-27
CN107302701B true CN107302701B (zh) 2020-10-16

Family

ID=57797022

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201611223784.XA Active CN107302701B (zh) 2016-04-15 2016-12-27 译码插值滤波器类型

Country Status (5)

Country Link
US (2) US10602176B2 (zh)
CN (1) CN107302701B (zh)
DE (2) DE202016008207U1 (zh)
GB (1) GB2549360B (zh)
WO (1) WO2017180203A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116320497A (zh) * 2016-11-28 2023-06-23 韩国电子通信研究院 用于滤波的方法和装置
US10555006B2 (en) * 2016-12-22 2020-02-04 Qualcomm Incorporated Deriving bilateral filter information based on a prediction mode in video coding
KR20230157529A (ko) 2019-04-01 2023-11-16 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 히스토리 기반 움직임 벡터 예측을 위한 보간 필터 사용
US11076169B2 (en) * 2019-05-14 2021-07-27 Qualcomm Incorporated Switchable interpolation filtering (SIF) for video coding
KR102635319B1 (ko) 2019-08-20 2024-02-07 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 비디오 프로세싱에서 대안적 보간 필터들의 선택적 사용

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130208795A1 (en) * 2012-02-09 2013-08-15 Google Inc. Encoding motion vectors for video compression
US20150195562A1 (en) * 2014-01-09 2015-07-09 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080165860A1 (en) 2006-08-31 2008-07-10 Zohair Sahraoui H.264 Data processing
WO2011096770A2 (ko) 2010-02-02 2011-08-11 (주)휴맥스 영상 부호화/복호화 장치 및 방법
EP2375744A1 (en) 2010-04-12 2011-10-12 Panasonic Corporation Complexity reduction for 1/8-pel interpolation
US9628821B2 (en) * 2010-10-01 2017-04-18 Apple Inc. Motion compensation using decoder-defined vector quantized interpolation filters
US8761245B2 (en) 2010-12-21 2014-06-24 Intel Corporation Content adaptive motion compensation filtering for high efficiency video coding
US9247249B2 (en) * 2011-04-20 2016-01-26 Qualcomm Incorporated Motion vector prediction in video coding
RU2609083C2 (ru) 2011-10-28 2017-01-30 Сан Пэтент Траст Способ кодирования изображений, способ декодирования изображений, устройство кодирования изображений и устройство декодирования изображений
KR20130050149A (ko) 2011-11-07 2013-05-15 오수미 인터 모드에서의 예측 블록 생성 방법
US11317101B2 (en) * 2012-06-12 2022-04-26 Google Inc. Inter frame candidate selection for a video encoder
US9344729B1 (en) * 2012-07-11 2016-05-17 Google Inc. Selective prediction signal filtering
US9485515B2 (en) * 2013-08-23 2016-11-01 Google Inc. Video coding using reference motion vectors
WO2014058796A1 (en) 2012-10-08 2014-04-17 Google Inc Method and apparatus for video coding using reference motion vectors
US9674537B2 (en) * 2014-03-27 2017-06-06 Arris Enterprises Llc Method and apparatus for encoding rate control in advanced coding schemes
EP3180917B1 (en) * 2014-09-01 2022-04-20 HFI Innovation Inc. Method of intra picture block copy for screen content and video coding
CN107072309A (zh) 2014-11-28 2017-08-18 惠州市吉瑞科技有限公司 电子烟
US10958928B2 (en) * 2018-04-10 2021-03-23 Qualcomm Incorporated Decoder-side motion vector derivation for video coding
US11019357B2 (en) * 2018-08-07 2021-05-25 Qualcomm Incorporated Motion vector predictor list generation
US10958932B2 (en) * 2018-09-12 2021-03-23 Qualcomm Incorporated Inter-prediction coding of video data using generated motion vector predictor list including non-adjacent blocks
US11601644B2 (en) * 2018-12-11 2023-03-07 Google Llc Image and video coding using machine learning prediction coding models

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130208795A1 (en) * 2012-02-09 2013-08-15 Google Inc. Encoding motion vectors for video compression
US20150195562A1 (en) * 2014-01-09 2015-07-09 Qualcomm Incorporated Adaptive motion vector resolution signaling for video coding

Also Published As

Publication number Publication date
DE202016008207U1 (de) 2017-04-28
USRE49615E1 (en) 2023-08-15
GB201621804D0 (en) 2017-02-01
CN107302701A (zh) 2017-10-27
WO2017180203A1 (en) 2017-10-19
GB2549360B (en) 2020-01-01
US20170302950A1 (en) 2017-10-19
US10602176B2 (en) 2020-03-24
DE102016125456A1 (de) 2017-10-19
GB2549360A (en) 2017-10-18

Similar Documents

Publication Publication Date Title
US10009625B2 (en) Low-latency two-pass video coding
US10694180B2 (en) Entropy coding transform partitioning information
US10104398B2 (en) Super-transform video coding
CN107027033B (zh) 一种用于使用贴片拷贝的视频编解码方法
CN110741645B (zh) 块效应减少
CN107302701B (zh) 译码插值滤波器类型
CN106664411B (zh) 运动补偿分割
US20170237939A1 (en) Loop filtering for multiform transform partitioning
US11765377B2 (en) Alpha channel prediction
US11153588B2 (en) Dual deblocking filter thresholds
US10102613B2 (en) Frequency-domain denoising
CN107079156B (zh) 用于交替块约束决策模式代码化的方法
US11665365B2 (en) Motion prediction coding with coframe motion vectors
US20240089433A1 (en) Chroma Transform Type Determination
US20230291925A1 (en) Inter-Intra Prediction With Implicit Models

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
CB02 Change of applicant information

Address after: American California

Applicant after: Google limited liability company

Address before: American California

Applicant before: Google Inc.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant