CN110268715A - 变换核选择与熵编译 - Google Patents

变换核选择与熵编译 Download PDF

Info

Publication number
CN110268715A
CN110268715A CN201780071240.2A CN201780071240A CN110268715A CN 110268715 A CN110268715 A CN 110268715A CN 201780071240 A CN201780071240 A CN 201780071240A CN 110268715 A CN110268715 A CN 110268715A
Authority
CN
China
Prior art keywords
block
transformation
candidate
transformation kernel
transform block
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.)
Pending
Application number
CN201780071240.2A
Other languages
English (en)
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 CN110268715A publication Critical patent/CN110268715A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • G06N20/10Machine learning using kernel methods, e.g. support vector machines [SVM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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/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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N11/00Colour television systems
    • H04N11/04Colour television systems using pulse code modulation
    • H04N11/042Codec means
    • H04N11/044Codec means involving transform coding
    • 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/127Prioritisation of hardware or computational resources
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Evolutionary Computation (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Discrete Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

可以对包括与垂直运动相关联的垂直变换类型和与水平运动相关联的水平变换类型的变换核候选进行编码或解码。在编码操作期间,根据所选择的变换核候选来变换当前块的残差块以产生变换块。然后,基于所述变换块的邻近变换块来识别用于编码所选择的变换核候选的概率模型。然后,根据所述概率模型来对所选择的变换核候选进行编码。在解码操作期间,使用概率模型对经编码的变换核候选进行解码。然后,根据已解码的变换核候选,通过对经编码的变换块的去量化的变换系数进行逆变换,来对经编码的变换块进行解码。

Description

变换核选择与熵编译
背景技术
数字视频流可以表示使用一系列帧或静态图像的视频。数字视频可以用于各种应用,包括例如视频会议、高清视频娱乐节目、视频广告、或用户生成的视频的分享。数字视频流可包括大量数据并且消耗计算设备的大量的计算资源或通信资源用于处理、传输或存储视频数据。已经提出了用于减少视频流中的数据量的各种方法,包括压缩和其他编码技术。
发明内容
根据本公开的一个实现的一种用于对针对视频帧的块所选择的变换核候选进行编码的方法包括选择多个变换核候选中的用于变换视频帧的当前块的残差块的一个变换核候选。所选择的变换核候选包括与残差块的垂直运动相关联的垂直变换类型和与残差块的水平运动相关联的水平变换类型。该方法进一步包括根据所选择的变换核候选来变换残差块以产生包括变换系数的变换块。该方法进一步包括量化变换系数。该方法进一步包括响应于确定量化的变换系数中的至少一个是非零系数而识别用于编码所选择的变化核候选的概率模型,该概率模型基于针对变换块的上邻近变换块所选择的第一变换核候选和针对变换块的左邻近变换块所选择的第二变换核候选来确定。该方法进一步包括根据概率模型来编码所选择的变换核候选。本公开可减少在编码和/或解码视频时的处理,发送,和存储需求。
根据本公开的另一方面的一种用于对针对视频帧的块所选择的变换核候选进行编码的装置包括被配置成执行存储在非暂时性存储介质中指令的处理器。该指令包括用于选择多个变换核候选中的用于变换视频帧的当前块的残差块的一个变换核候选的指令。所选择的变换核候选包括与残差块的垂直运动相关联的垂直变换类型和与残差块的水平运动相关联的水平变换类型。该指令进一步包括用于根据所选择的变换核候选来变换残差块以产生包括变换系数的变换块的指令。该指令进一步包括用于量化变换系数的指令。该指令进一步包括用于响应于确定量化的变换系数中的至少一个是非零系数而识别用于编码所选择的变换核候选的概率模型的指令,该概率模型基于针对变换块的上邻近变换块所选择的第一变换核候选和针对变换块的左邻近变换块所选择的第二变换核候选来识别。指令进一步包括用于根据该概率模型编码所选择的变换核候选的指令。本公开可减少在编码和/或解码视频时的处理、发送、和存储需求。
根据本公开的一个实现的一种用于对编码的视频帧的当前块的编码的变换块进行解码的方法包括识别用于对被选择用于产生编码的变换块的变换核候选进行编码的概率模型,该概率模型基于与编码的变换块的上邻近变换块相关联的第一变换核候选和与编码的变换块的左邻近变换块相关联的第二变换核候选来识别。该方法进一步包括使用概率模型对编码的变换核候选进行解码。该编码的变换核候选包括与当前块的垂直运动相关联的垂直变换类型和与当前块的水平运动相关联的水平变换类型。该方法进一步包括根据所解码的变换核候选,通过逆变换编码的变换块的去量化的变换系数来对编码的变换块进行解码。本公开可减少在编码和/或解码视频时的处理、传输、和存储需求。
可以将变换核候选编码为组合索引。编码的变换核候选可以指示其垂直和水平变换类型。例如,可以将单一索引编码为比特流以指示所选择的变换核候选的垂直和水平变换类型二者。或者,可以将垂直和水平变换类型单独地编码为比特流。例如,可以将第一索引编码为比特流以指示垂直变换类型以及可以将第二索引编码为比特流以指示水平变换类型。
变换类型可以是应用于视频帧的变换操作的类型。
概率模型可以用于确定充分的变换核候选用于对变换系数进行变换的概率。概率模型可以包括整数值,所述整数值在除以最大值时指示所选择的变换核候选是充分的概率(例如,表示为百分数或类似值)。最大值可以是本公开的技术可用的概率模型的全部或一部分所共享的全局最大值。例如如果所选择的变换核候选的垂直和水平变换类型与从其产生变换块的残差块的运动的形状对应,则可以认为所选择的变换核候选是充分的。
垂直运动和水平运动的形状可以用于识别用于选择变换核候选中的一个的垂直和水平变换类型,因为变换类型中的每一个与运动的不同形状对应。可以将块的运动的形状识别为例如关于块内的原点对称或非对称。
如果适用,上下文值可以基于针对变换块所选择的变换核候选和针对上邻近变换块和/或左邻近变换块所选择的变换核候选来计算。例如,可以为多个变换核候选中的每一个分配索引值。可以使用加权函数来计算上下文值。例如,分配给所选择的变换核候选的索引值可以被赋予比分配给用于上邻近变换块和/或左邻近变换块的变换核候选的索引值更大的加权值。
本公开的这些或其他方面在以下实施例,所附权利要求和附图的详细描述中公开。
附图说明
这里的描述参考在下面所描述的附图,其中在几个附图中相同的附图标志指代相同的部分。
图1是视频编码和解码系统的示意图。
图2是可以实现传送站或接收站的计算设备的示例的框图。
图3是要被编码并后续解码的典型视频流的示意图。
图4是根据本公开的实现的编码器的框图。
图5是根据本公开的实现的解码器的框图。
图6是被分割成变换块的残差块的示意图。
图7是用于对针对视频帧的当前块所选择的变换核候选进行编码的技术的流程图。
图8是用于对编码的视频帧的当前块的变换块进行解码的技术的流程图。
具体实施方式
视频压缩方案可以包括将相应图像或帧分割成诸如块的更小的部分,并且使用用于限制针对其中相应块所包括的信息的技术来生成编码比特流。可以对编码的比特流进行解码以从所限制的信息中重新创建源图像。例如,视频压缩方案可以包括将视频流中的当前块的预测残差变换为变换块的变换系数。将变换系数量化并熵编码为编码的比特流。解码器使用编码的变换系数以解码或解压缩编码的比特流用以准备视频流以便观看或进一步处理。
使用变换类型(例如,离散余弦变换(DCT)或非对称离散正弦变换(ADST)中的一个)对当前块的预测残差进行变换。可以基于在预测残差中所指示的运动方向来选择所使用的特定变换类型。例如,在运动关于当前块中的原点对称的情况下,可以选择DCT变换类型。在另一示例中,在运动不是对称的而是在当前块的一个区域中比在另一个区域中明显更大的情况下,可以选择ADST变换类型。然而,视频流内的运动通常是复杂的。例如,帧可以包括在其中的多个方向的和在多个位置处的运动。因此,使用一种变换类型有效地变换预测残差是不可能的。然而,选择多种变换类型可能导致对比特流的额外成本,诸如通过增加编码器和解码器之间所通信的数据量。
本公开的实现包括根据概率模型对从多个变换核候选中所选择的或以其他方式识别的变换核候选进行编码或解码。变换核候选中的每一个包括垂直变换类型和水平变换类型。变换核候选基于包括当前块的预测残差的残差块的垂直运动或水平运动来选择或以其他方式识别。在编码操作期间,残差块根据变换核候选来变换以产生变换块。量化变换块的变换系数。响应于确定量化的变换系数中的至少一个是非零系数,用于编码所选择的变换核候选的概率模型基于变换块的邻近变换块来识别。然后,根据概率模型来编码变换核候选。在解码操作期间,针对变换块选择的变换核候选基于概率模型来解码。然后,变换块被去量化并且根据变换核候选来对去量化的变换块进行逆变换以产生重构的残差块。
这里初始参考可以实现用于编码或解码变换核候选的技术的系统对他们的更进一步细节进行描述。图1是视频编码和解码系统100的示意图。传送站102可以是例如具有如在图2中所描述的那些的硬件的内部配置的计算机。然而,传送站102的其他适当的实现是可能的。例如,传送站102的处理可以分布在多个设备之中。
网络104可以连接传送站102和接收站106,用于视频流的编码和解码。具体来说,视频流可在传送站102中编码,并且编码的视频流可以在接收站106中解码。网络104可以是例如因特网。网络104也可以是局域网(LAN)、广域网(WAN)、虚拟专用网络(VPN)、移动电话网络,或用于在此示例中将视频流从传送站102传送到接收站106的任何其他手段。
在一个示例中,接收站106可以是具有如图2中所描述的那些的硬件的内部配置的计算机。然而,接收站106的其他适当的实现是可能的。例如,接收站106的处理可以分布在多个设备之中。
视频解码和编码系统100的其他实现是可能的。例如,实现可以省略网络104。在另一个实现中,视频流可以被编码并且随后被存储以用于稍后向接收站106或具有存储器的任何其他设备传输。在一个实现中,接收站106(例如经由网络104、计算机总线和/或一些通信路径)接收编码的视频流并存储该视频流以用于随后解码。在一个示例实现中,实时传输协议(RTP)用于通过网络104发送编码的视频。在另一实现中,可以使用除RTP之外的传输协议,例如,基于超文本传输协议(HTTP)的视频流协议。
当用在视频会议系统时,例如,传送站102和/或接收站106可以包括如下所述的编码并且解码视频流的能力。例如,接收站106可以是视频会议参与者,所述视频会议参与者从视频会议服务器(例如,传送站102)接收编码的视频比特流以解码和查看并进一步编码和发送他或她自己的视频比特流到视频会议服务器以便由其他参与者解码和查看。
图2是可以实现传送站或接收站的计算设备200的示例的框图。例如,计算设备200可以实现图1的传送站102和接收站106中的一个或两个。计算设备200可以是包括多个计算设备的计算系统的形式,或是一个计算设备的形式,例如,移动电话、平板电脑、膝上型计算机、笔记本电脑、台式计算机等等。
计算设备200中的处理器202可以是传统的中央处理单元。或者,处理器202可以是能够操作或处理现在存在或以后开发的信息的任何其他类型的设备或多个设备。尽管公开的实现可以用所示出的一个处理器(例如,处理器202)来实现,但可以通过使用多于一个处理器来实现速度和效率上的优势。
在一个实现中,计算设备200中的存储器204可以是只读存储器(ROM)设备或随机存取存储器(RAM)设备。任何其他适当类型的存储设备可以用作存储器204。存储器204可以包括由处理器202使用总线212访问的代码和数据206。存储器204可以进一步包括操作系统208和应用程序210,所述应用程序210包括允许处理器202执行在本文中所描述的方法的至少一个程序。例如,应用程序210可以包括应用1到N,其进一步包括执行这里所描述的方法的视频编译应用。计算设备200也可以包括二级存储设备214,所述二级存储设备214可以是例如与移动计算设备一起使用的存储卡。因为视频通信会话可能包括大量的信息,它们可以全部或部分地存储在二级存储设备214中并且根据需要加载到存储器204中以便处理。
计算设备200也可以包括一个或多个输出设备,例如显示器218。在一个示例中,显示器218可以是将显示器与可操作感测触摸输入的触敏元件组合的触摸敏感显示器。显示器218可以通过总线212耦合到处理器202。除了显示器218之外或者作为显示器218的替换,可以提供允许用户编程或以其他方式使用计算设备200的其他输出设备。在输出设备是或包括显示器时,显示器可以由多种方式实现,包括由液晶显示器(LCD)、阴极射线管(CRT)显示器、或发光二极管(LED)显示器(诸如有机LED(OLED)显示器)。
计算设备200也可以包括图像感测设备220或与图像感测设备220通信,图像感测设备220例如是相机或现在存在或以后开发的可以感测图像(诸如操作计算设备200的用户的图像)的任何其他图像感测设备220。图像感测设备220可以被定位使得它指向操作计算设备200的用户。在一个示例中,图像感测设备220的位置和光轴可以被配置使得视野包括与显示器218直接相邻的并且从其中可以看见显示器218的区域。
计算设备200也可以包括声音感测设备222或与声音感测设备222通信,声音感测设备例如是麦克风或现在存在或以后开发的可以感测计算设备200附近声音的任何其他声音感测设备。声音感测设备222可以被定位使得它指向操作计算设备200的用户并且可以被配置为接收当用户操作计算设备200时由用户产生的声音(例如语音或其他话语)。
尽管图2将计算设备200的处理器202和存储器204描述为被集成到一个单元,但是可以利用其他配置。处理器202的操作可以分布在多个机器之中(其中独立的机器可以具有一个或多个处理器),所述机器可以直接耦合或跨局域网或其他网络耦合。可以跨多个机器分布存储器204,诸如基于互联网的存储器或执行计算设备200的操作的多个机器中的存储器。尽管这里描述为一条总线,但是计算设备200的总线212可由多个总线组成。此外,二级存储设备214可以直接耦合到计算设备200的其他部件或可以经由互联网访问并且可以包括诸如存储卡的集成单元或诸如多个存储卡的多个单元。因此,计算设备200可以在多种配置中实现。
图3是待编码并后续解码的视频流300的一个示例的示意图。视频流300包括视频序列302。在下一级,视频序列302包括大量相邻帧304。尽管将三帧描述为相邻帧304,但是视频序列302可以包括任何数量的相邻帧304。然后,可以进一步将相邻帧304细分为单独的帧,例如,帧306。在下一级,可以将帧306分割为一系列平面或段308。例如,段308可以是允许并行处理的帧的子集。段308也可以是可以将视频数据分离为单独颜色的帧的子集。例如,彩色视频数据的帧306可以包括亮度平面和两个色度平面。可以以不同的分辨率对段308进行采样。
无论帧306是否被分割为段308,可以进一步将帧306细分为块310,所述块310包括与例如帧306中的16x16像素对应的数据。也可以将块310布置为包括来自像素数据的一个或多个段308的数据。块310也可以具有任何其他适当尺寸,诸如4x4像素、8x8像素、16x8像素、8x16像素、16x16像素或更大。除非另有说明,术语块和宏块在此处可互换地使用。
图4是根据本公开的实现的编码器400的框图。如上所述,编码器400可以诸如通过提供存储在如存储器204的存储器中的计算机软件程序在传送站102中实现。计算机软件程序可以包括机器指令,机器指令在被诸如处理器202的处理器执行时使得传送站102以图4中所描述的方式来编码视频数据。编码器400也可以作为包括在例如传送站102中的特定的硬件来实现。在一个特定期望的实现中,编码器400是硬件编码器。
编码器400具有使用视频流300作为输入执行(由实线连接线所示出的)正向路径中的各种功能以产生编码的或压缩的比特流420的以下阶段:帧内/帧间预测阶段402、变换阶段404、量化阶段406,以及熵编码阶段408。编码器400也可以包括(由虚线连接线所示出的)重构路径以重构用于编码后面的块的帧。在图4中,编码器400具有执行重构路径中的各种功能的以下阶段:去量化阶段410、逆变换阶段412、重构阶段414和环路滤波阶段416。可以使用编码器400的其他结构变化来编码视频流300。
当呈现视频流300以用于编码时,可以以块为单元来处理相应的相邻帧304,诸如帧306。在帧内/帧间预测阶段402,相应的块可以使用帧内预测(也称作帧内预测)或帧间预测(也称作帧间预测)来编码。在任何情况下,可以形成预测块。在帧内预测的情况下,可以从已在之前编码和重构的当前帧中的样本中形成预测块。在帧间预测的情况下,可以从一个或多个之前重构的参考帧中的样本中形成预测块。
接下来,仍参考图4,可以在帧内/帧间预测阶段402处从当前块中减去预测块以产生残差块(也称作残差)。变换阶段404使用基于块的变换在例如频域中将残差变换为变换系数。例如,变换阶段404可以包括选择用于将残差变换为变换系数的变换核候选。在下面参照图6和图7例如基于帧内/帧间预测阶段402所产生的残差块的垂直运动和水平运动来讨论用于选择变换核候选的实现。量化阶段406使用量化器值或量化级将变换系数转换为离散量子值,所述离散量子值被称作量化的变换系数。例如,变换系数可以除以量化器值并被截断。然后,由熵编码阶段408对量化的变换系数进行熵编码。将熵编码的系数与用于对块进行解码的其他信息(所述信息可以包括例如所使用的预测类型、变换类型、运动矢量和量化器值)一起输出到压缩的比特流420。可以使用各种技术(诸如可变长度编译(VLC)或算术编译)来格式化压缩的比特流420。也可以将压缩的比特流420称作编码的视频流或编码的视频比特流,并且术语在此处可互换地使用。
图4中的(由虚线连接线所示出的)重构路径可用于确保(以下所描述的)编码400和解码器500使用相同的参考帧解码压缩的比特流420。重构路径执行与在(以下所描述的)解码处理期间发生的功能类似的功能,包括在去量化阶段410处去量化经量化的变换系数并且在逆变换阶段412处逆变换去量化的变换系数以产生导数残差块(也称作导数残差)。在重构阶段414处,可以将在帧内/帧间预测阶段402处所预测的预测块添加到导数残差以创建重构块。可将环路滤波阶段416应用于重构块以减少诸如块伪像的失真。
可以使用编码器400的其他变化编码压缩的比特流420。例如,基于非变换的编码器可以针对某些块或帧无需变换阶段404而直接量化残差信号。在另一实现中,编码器可以具有组合到共同阶段中的量化阶段406和去量化阶段410。
图5是根据本公开的实现的解码器500的框图。解码器500可以例如通过提供存储在存储器204中的计算机软件程序在接收站106中实现。计算机软件程序可以包括机器指令,该机器指令在被诸如处理器202的处理器执行时使得接收站106以图5中所描述的方式解码视频数据。解码器500也可以在包括在例如传送站102或接收站106中的硬件中实现。
与上面所描述的编码器400的重构路径类似,在一个示例中,解码器500包括从压缩的比特流420执行各种功能以产生输出视频流516的以下阶段:熵解码阶段502、去量化阶段504、逆变换阶段506、帧内/帧间预测阶段508、重构阶段510、环路滤波阶段512、和去块滤波阶段514。可以使用解码器500的其他结构变化解码压缩的比特流420。
当呈现压缩的比特流420以用于解码时,可以通过熵解码阶段502来解码压缩的比特流420中的数据元素以产生量化的变换系数的集合。去量化阶段504对该量化的变换系数进行去量化(例如,通过将量化的变换系数乘以量化器值),并且逆变换阶段506对该去量化的变换系数进行逆变换以产生可以与编码器400中的逆变换阶段412所创建的导数残差相同的导数残差。参照图6和图8在下面讨论使用编码的变换核候选来解码变换块的实现,例如,通过使用基于与变换块相关联的当前块的垂直运动和水平运动所识别的概率模型来解码该编码的变换核候选。使用从压缩的比特流420解码的报头信息,解码器500可以使用帧内/帧间预测阶段508创建预测块,所述预测块与在编码器400中例如在帧间/帧内预测阶段402处所创建的预测块相同。在重构阶段510,将预测块添加到导数残差以创建重构块。可以将环路滤波阶段512应用于重构块以减少块伪像。
可以将其他滤波应用于重构块。在此示例中,将去块滤波阶段514应用于重构块以减少块失真,并且结果作为输出视频流516输出。也可以将输出视频流516称作解码的视频流,并且该术语在此处可互换地使用。解码器500的其他变化可以用于解码压缩的比特流420。例如,解码器500可以无需去块滤波阶段514而产生输出视频流516。
图6是被划分为变换块602、604、608和610的残差块600的示意图。残差块600包括从帧内或帧间预测操作中产生的预测残差。例如,在图4所示的帧内/帧间预测阶段402处,使用一个或多个运动矢量可以生成,计算或以其他方式识别预测残差。预测残差的系数可以表示正在被编码的当前块与由帧内或帧间预测操作所生成的预测之间的差。响应于生成,计算或以其他方式识别预测残差,可以将残差块600分割为一个或多个变换块(例如,变换块602、604、606、608和610)。
尽管将变换块602、604、606、608和610称作变换块,但是它们是残差块600的子块并且因此包括残差块600的部分直到那些系数被变换的时间为止。因此,也可以或替代性地将变换块602、604、606、608和610称为残差块、残差子块等等。因此,在(例如,在图4中所示的变换阶段404处)对其中变换系数执行变换操作之前和之后,可将变换块602、604、606、608和610称为变换块。
变换块602、604、606、608和610的系数根据从多个变换核候选中所选择的变换核候选来变换。多个候选中的每一个候选包括垂直变换类型和水平变换类型。垂直变换类型是与垂直运动方向相关联的变换类型。水平变换类型是与水平运动方向相关联的变换类型。垂直变换类型和水平变换类型中的每个都是DCT、ADST、翻转ADST或恒等变换中的一种。因此,多个变换核候选可以包括表示垂直和水平变换类型的可用组合的十六种变换核候选。
可以从多个变换核候选中选择变换核候选,用于变换残差块600中的每一个变换块602、604、606、608、610的系数。例如,可以选择变换核候选DCT_翻转ADST(例如,指示DCT作为垂直变换类型以及翻转ADST作为水平变换类型)用于变换变换块602、604、606、608、610中的每一个的系数。或者,可以从多个变换核候选中选择变换核候选用于残差块600中的每一个变换块。例如,可以选择变换核候选DCT_翻转ADST用于变换变换块602的系数,可以选择变换核候选ADST_IDX用于变换变换块604的系数,等等。然而,仍然可以选择相同的变换核候选用于多个变换块。
可以将残差块600的变换块分割为不同尺寸。例如,残差块600可以是64x64块。变换块602、604和606每一个都可以是16x16块。然而,一些变换块可以是更大或更小。例如,变换块608可以是32x32块,而变换块610可以是8x8块。从残差块600中所分割的变换块的尺寸可以取决于在残差块600的预测残差中所指示的运动。
如下面参照图7和图8所将要讨论的,可以使用概率模型对被选择用于变换残差块600的全部或一部分(例如,变换块602、604、606、608或610中的一个或多个)的变换核候选进行编码或解码。可以用针对一个或多个邻近变换块(诸如上邻近变换块或左邻近变换块中的一个或两个)选择的参考变换核候选来识别概率模型。例如,变换块602可以是将要被编码的当前变换块。变换块604是变换块602的上邻近变换块。变换块606是变换块602的左邻近变换块。因此,可以基于与变换块604或变换块606中的一个或两个相关联的信息来识别用于编码与变换块602相关联的变换核候选的概率模型。
在图6中所描述的残差块600和变换块602、604、606、608和610的实现可以包括与上面所描述的功能相比较附加的,更少的或组合的功能,或除上面所描述的功能以外的功能,或其组合。在一些实现中,可以将多个变换核候选限制为DCT、ADST、翻转ADST或恒等变换的可用组合的子集。例如,用于生成残差块600的预测残差的一个或多个运动矢量可以指示残差块600不包括具有关于原点像素位置对称的幅度的运动。在这种情况下,多个变换核候选可以包括九个候选,例如,其中每一个垂直变换类型和水平变换类型是ADST、翻转ADST或恒等变换中的一个。
图7是用于对针对视频帧的当前块选择的变换核候选进行编码的技术700的流程图。图8是用于对编码的视频帧的当前块的变换块进行解码的技术800的流程图。可以将技术700或技术800中的一个或两个实现为例如可以由诸如传送站102或接收站106的计算设备所执行的软件程序。例如,软件程序可以包括可存储在诸如存储器204或二级存储设备214的存储器中的机器可读指令,并且所述指令在被诸如处理器202的处理器执行时可以使得计算设备执行技术700或技术800中的一个或两个。可以使用特定的硬件或固件来实现技术700或技术800中的一个或两个。如上所述,一些计算设备可以具有多个存储器或处理器,并且,可以使用多个处理器、存储器或两者来分配在技术700或技术800的一个或两个中所描述的操作。
为了简化说明,将技术700和技术800均描绘并描述为一系列步骤或操作。然而,根据本公开的步骤或操作可以以各种顺序发生和/或并发地同时发生。另外,可以使用这里未呈现或描述的其他步骤或操作。此外,可能不需要全部图示出的步骤或操作来实现根据所公开的内容的方法。
首先参考图7,技术700包括经由702选择多个变换核候选中的一个,经由704变换残差块,经由706量化变换块的变换系数,经由708识别用于编码所选择的变换核候选的概率模型,以及经由710根据概率模型来编码所选择的变换核候选。可以使用诸如图4中所示的编码器400的编码器来执行技术700的全部或一部分。
在702处,选择多个变换核候选中的一个变换核候选用于变换当前块的残差块。可以响应于(例如,在图4中所示的帧内/帧间预测阶段402)对当前块所执行的预测操作而生成残差块。多个变换核候选包括垂直变换类型和水平变换类型。垂直变换类型指示用于诸如残差块的垂直运动的变换类型。水平变换类型指示用于诸如残差块的水平运动的变换类型。垂直变换类型和水平变换类型中的每一个是DCT、ADST、翻转ADST或恒等变换中的一个。因此,在多个变换核候选中可能存在多达十六个变换核候选。
基于残差块的(例如,残差块中所指示的)垂直运动和水平运动来选择多个变换核候选中的一个变换核候选。例如,选择要使用的变换核候选可以包括识别残差块的垂直运动的形状和残差块的水平运动的形状。可以通过使用运动矢量预测当前块的一部分的垂直运动来识别垂直运动的形状。可以通过使用运动矢量预测当前块的同一部分的水平运动来识别水平运动的形状。用于预测垂直运动和水平运动的运动矢量可以是相同的运动矢量或不同的运动矢量。
其中预测垂直运动和水平运动的当前块的一部分可以指的是残差块(例如,图6中所示的残差块600)或变换块(例如,图6中所示的变换块602、604、606、608或610中的一个),所述变换块可以是从残差块分割的子块。例如,在702之前,技术700可以包括将残差块分割成多个子块。多个子块可以是例如图6中所示的变换块602、604、606、608和610。因此,用于在702选择变换核候选中的一个的垂直运动和水平运动可以是那些变换块602、604、606、608或610中的一个的垂直运动和水平运动。如上参照图6所述,从残差块分割的多个块中的一个块可以称作残差块、残差子块、变换块等等。
使用垂直运动和水平运动的形状来识别用于选择变换核候选中的一个的垂直和水平变换类型,因为变换类型中的每一个对应于运动的不同形状。例如,使用DCT,残差块的幅度在原点像素位置周围对称地增加或减少。使用ADST,残差块的幅度在运动的第一端处较小(例如,标度为0)并且在运动的第二端处较大(例如,标度为1)。使用翻转ADST,残差块的幅度在运动的第一端较大并且在运动的第二端较小。单独地,在垂直方向和水平方向中都不存在运动时使用恒等变换。
在704处,根据在702处所选择的变换核候选来变换残差块。变换残差块包括产生包括变换系数的变换块。应用于残差块的变换基于所选择的变换核候选的垂直和水平变换类型。例如,在所选择的变换核候选具有索引DCT_ADST(其相应地指其垂直和水平变换类型)的情况下,应用于残差块的变换是DCT和ADST的组合。在另一示例中,在所选择的变换核候选具有索引IDX_DCT的情况下,仅应用了DCT变换。这是因为恒等变换不包括将系数变换到空间域。在706处,对在704处所产生的变换块的变换系数进行量化。例如,可以使用在图4中所示的量化阶段406处所执行的操作来量化变换系数以产生量化的变换系数。
在708处,识别用于编码在702处所选择的变换核候选的概率模型。使用所识别的概率模型来确定在704处使用充分的变换核候选来对变换系数进行变换的概率。在708处识别的概率模型可以包括整数值,所述整数值当除以最大值时指示所选择的变换核候选充分的概率(例如,表示为百分比或类似的值)。最大值可以是本公开的技术的可用的概率模型的全部或一部分所共享的全局最大值。
例如,最大值可以是标度256。具有概率模型索引0的概率模型可以包括整数值119。该概率模型指示所选择的变换核候选充分的概率是119/256。该概率模型进一步指示所选择的变换核候选不充分的概率是(256-119)/256。例如,如果所选择的变换核候选的垂直和水平变换类型与从其产生变换块的残差块的运动的形状对应,则所选择的变换核候选可以被认为是充分的。
可以基于被选择用于变换该变换块的上邻近变换块的变换系数的变换核候选来识别概率模型。概率模型也可以是基于被选择用于变换该变换块的左邻近变换块的变换系数的变换核候选的或者相反基于被选择用于变换该变换块的左邻近变换块的变换系数的变换核候选来识别。其他信息可以额外用于识别概率模型。例如,可以部分地基于变换块的扫描顺序来识别概率模型。
来自上邻近变换块或左邻近变换块中的一个或两个的信息的使用可取决于这种邻近变换块的可用性。例如,图6中所示的变换块606具有上邻近变换块(未编号),但它不具有左邻近变换块。因此,针对上邻近块所选择的变换核候选将用于识别用于变换块606的概率模型。
如果适用的话,可以基于在702处针对变换块所选择的变换核候选和针对上邻近变换块和左邻近变换块所选择的变换核候选来计算上下文值。例如,可以为多个变换核候选中的每一个分配索引值。可以使用加权函数来计算上下文值。例如,分配给在702处所选择的变换核候选的索引值可以被赋予比分配给用于上邻近变换块和/或左邻近变换块的变换核候选的索引值更大的加权值。如果上邻近变换块或左邻近变换块中的任一个或两者都不可用,则其索引值将不用在加权函数中。加权函数可以取适用的索引值的平均值以计算上下文值。
可以基于垂直上下文和水平上下文来替代性地计算上下文值。例如,如果适用的话,垂直上下文可以基于由上邻近变换块所使用的变换核候选的垂直变换类型和由左邻近变换块所使用的变换核候选的垂直变换类型来确定。如果适用的话,水平上下文可以基于由上邻近变换块所使用的变换核候选的水平变换类型和由左邻近变换块所使用的变换核候选的水平变换类型来确定。相应地,在702处所选择的变换核候选的垂直变换类型和水平变换类型也可用于确定垂直上下文和水平上下文。
可以基于上下文值来识别用于编码所选择的变换核候选的概率模型。例如,可以存在与上下文值的每一个可能值相关联的概率模型。在另一示例中,一个概率模型可以与上下文值的可能值的范围相关联。
在710处,根据在706处所识别的概率模型来编码所选择的变换核候选。(例如,在图4所示的熵编译阶段408)使用熵编译处理与所识别的概率模型相关联的概率。例如,算术编译可用于使用与所识别的概率模型相关联的概率来确定所选择的变换核候选的充分性。一旦例如在编码器400的熵编译阶段408处确定所选择的变换核候选的充分性,可以将它压缩为编码的比特流。
可以将变换核候选编码为指示其垂直和水平变换类型的组合索引。例如,可以将单一索引编码为比特流以指示所选择的变换核候选的垂直和水平变换类型。或者,可以将垂直和水平变换类型单独编码为比特流。例如,可以将第一索引编码为比特流以指示垂直变换类型,并且可以将第二索引编码为比特流以指示水平变换类型。
在一些实现中,可以例如响应于编码视频帧的最后块来更新在708处所识别的概率模型。更新概率模型可以包括对在702处所选择的变换核候选被选择用于编码视频帧的块的次数计数。例如,可以响应于每个可用块被编码而更新该次数。可以基于在编码视频帧的最后块之后得到的总次数来更新概率模型。例如,如果计数高于阈值,可以更新概率模型以反映变换核候选充分的概率增加。如果计数低于阈值,可以更新概率模型以反映该概率减少。阈值可以是例如从先前视频帧中对该变换核候选的选择的总计数。
可以由编码器和解码器中的每一个独立地对概率模型进行更新。例如,根据本公开的技术,编码器(例如,执行技术700的全部或一部分)和解码器(例如,可以执行图8的技术800的全部或一部分)可以单独存储可用于编码和解码变换块的概率模型。因此,与概率模型相关联的概率在编码器处与在解码器处可能是不同的。或者,对概率模型的更新可以在编码器处被确定并传送到解码器。例如,编码器可以在编码视频帧之后更新与概率模型相关联的概率使得那些更新的概率可用于解码经编码的视频帧。
在一些实现中,响应于确定变换块的量化的变换系数中的至少一个是非零系数,可以在708处识别概率模型。例如,在706处的量化可以导致变换块的全部变换系数为零。技术700可以包括在这种情况下不继续进行到708以减少在编码器和解码器之间发送数据的附加速率成本。
例如,变换块跳过标志可用于识别在编码的比特流内不被熵编码和发送的变换块。如果量化的变换块的全部量化的系数为零,则变换块跳过标志可以具有指示跳过编码该变换块的值。然后,技术700可以相对于该变换块终止并且针对不同的变换块重新开始。然而,如果那些量化的系数中的至少一个为非零系数,则变换块跳过标志可以具有指示编码该变换块的值,诸如通过继续进行识别用于变换块的概率模型。
在一些实现中,可以对变换块跳过标志的值进行熵编码。例如,可以基于变换块跳过标志的值和用于变换块的上邻近变换块或变换块的左邻近变换块中的一个或两个的该标志的值来识别用于变换块跳过标志的概率模型。在另一示例中,可以使用其他信息,诸如变换块的尺寸或包括变换块和上邻近变换块或左邻近变换块的一个或两个的当前块的尺寸,来识别用于变换块跳过标志的概率模型。然后,可以根据该标志的概率模型对该标志的值进行熵编码。
接下来参考图8,技术800包括经由802识别用于编码变换核候选的概率模型,经由804解码该变换核候选,以及经由806通过对编码的变换块的去量化的变换系数进行逆变换来解码经编码的变换块。可以使用诸如图5中所示的解码器500的解码器,来执行技术800的全部或一部分。
在802处,识别用于对被选择用于产生编码的变换块的变换核候选进行编码的概率模型。用于在802处识别概率模型的技术可以与用于在图7中所示的技术700的708处识别概率模型的技术相同。例如,可以在802处基于与将要被解码的编码的变换块的上邻近变换块或左邻近变换块中的一个或两个相关联的信息来识别概率模型。
在804处,使用在802处所识别的概率模型来解码经编码的变换核候选。例如,可以将编码的变换核候选编码为包括正在被解码的经编码的变换块的比特流。使用概率模型来解码经编码的变换核候选可以包括解码变换核候选的第一索引和第二索引。第一索引可以对应变换核候选的垂直变换类型。第二索引可以对应变换核候选的水平变换类型。例如,可以使用在802处所识别的概率模型的垂直上下文来解码第一索引以及可以使用概率模型的水平上下文来解码第二索引。
在806处,根据在804处所解码的变换核候选,通过逆变换编码的变换块的去量化的变换系数来解码经编码的变换块。在806处解码变换块可以包括去量化编码的变换块的量化的变换系数,例如,使用在图5中所示的去量化阶段504处所执行的操作。然后,可以根据解码的变换核候选来逆变换去量化的变换系数。
在一些实现中,在806处解码经编码的变换块可以包括先于去量化编码变换块的系数而熵解码经编码的变换块的系数。例如,可以使用在图5中所示的熵解码阶段502处所执行的操作来熵解码经编码的变换块的系数。在某些实现中,在804处识别变换核候选之前,可以熵解码经编码的变换块的系数。
在一些实现中,可以响应于确定经编码的变换块的量化的变换系数中的至少一个是非零系数而在802处识别概率模型。例如,可以在经编码的比特流内传输变换块跳过标志(例如,上面参照图7所所讨论的变换块跳过标志)。如果经编码的变换块的全部量化的系数为零,变换块跳过标志可以具有指示跳过解码那个经编码的变换块的值。然后,技术800可以相对于该编码的变换块终止并针对不同的经编码的变换块重新开始。然而,如果那些量化的变换系数中的至少一个是非零系数,变换块跳过标志可以具有指示解码该经编码的变换块的值,诸如通过继续进行在802处识别概率模型。
上述编码和解码的方面示出了编码和解码技术的一些示例。然而,应该理解的是,编码和解码,如在权利要求中所使用的那些术语,可以表示压缩,解压缩,变换或任何其他的数据处理或改变的意思。
本文使用词“示例”来表示用作示例、实例或说明的意思。不必将本文描述为“示例”的任何方面或设计解释为比其他方面或设计更优选或更具优势。相反,使用词“示例”旨在以具体方式呈现概念。如在本申请中所使用的,术语“或”旨在表示包含性的“或”而不是排他性的“或”。也就是说,除非另有说明或上下文另有明确指示,否则陈述“X包括A或B”旨在表示其任何自然的包含性排列。也就是说,如果X包括A;X包括B;或者X包括A和B,那么在任何前述示例中满足“X包括A或B”。另外,本申请和所附权利要求中所使用的冠词“一”和“一个”通常应理解为表示“一个或多个”,除非另有说明或上下文明确指示为指向单数形式。此外,在整个本公开中使用术语“实现”或术语“一个实现”并不旨在表示相同的实施例或实现,除非如此描述。
传送站102和/或接收站106的实现(以及存储在其上和/或由其执行的,包括由编码器400和解码器500执行的,算法、方法、指令等)可以在硬件、软件或其任何组合中实现。硬件可包括例如计算机、知识产权(IP)核、专用集成电路(ASIC)、可编程逻辑阵列,光学处理器、可编程逻辑控制器、微代码、微控制器、服务器、微处理器、数字信号处理器或任何其他适当的电路。在权利要求中,应该将术语“处理器”理解为单独地或组合地包括任何前述硬件。术语“信号”和“数据”可互换地使用。此外,传送站102和接收站106的部分不必一定以相同的方式实现。
此外,在一个方面,例如,传送站102或接收站106可以使用通用计算机或具有计算机程序的通用处理器来实现,所述计算机程序在被执行时执行本文所描述的相应的方法、算法和/或指令中的任何一个。另外或替代地,例如,可以使用专用计算机/处理器,所述专用计算机/处理器可以包括用于执行本文所描述的方法、算法或指令的任何一个的其他硬件。
传送站102和接收站106可以例如在视频会议系统中的计算机上实现。或者,传送站102可以在服务器上实现,并且接收站106可以在与服务器分离的设备(诸如手持通信设备)上实现。在此示例中,传送站102可以使用编码器400将内容编码为编码的视频信号,并将编码的视频信号发送到通信设备。继而,通信设备然后可以使用解码器500来解码编码的视频信号。或者,通信设备可以解码在通信设备上本地存储的内容,例如,传送站102未发送的内容。其他适当的发送和接收实现方案是可用的。例如,接收站106可以是通常固定的个人计算机而不是便携式通信设备,和/或包括编码器400的设备也可以包括解码器500。
此外,本公开的实现的全部或部分可以采用可从例如计算机可用或计算机可读介质中访问的计算机程序产品的形式。计算机可用或计算机可读介质可以是任何能够例如有形地包括,存储,通信或传输程序以便由任何处理器使用或与处理器连接使用的设备。介质可以是,例如电子的,磁的,光的,电磁的或半导体的设备。其他适当的介质也是可用的。
已经描述了上述实施例,实现和方面以确保便于容易理解本公开,并且不限制本公开。相反,本公开旨在涵盖包括在所附权利要求范围内的各种修改和等同排布,所述范围应被给予法律所允许的最广泛的解释,以确保包含所有这些修改和等同排列。

Claims (20)

1.一种用于编码针对视频帧的块所选择的变换核候选的方法,所述方法包括:
选择多个变换核候选中的一个变换核候选用于变换所述视频帧的当前块的残差块,所选择的变换核候选包括与所述残差块的垂直运动相关联的垂直变换类型和与所述残差块的水平运动相关联的水平变换类型;
根据所选择的变换核候选来变换所述残差块以产生包括变换系数的变换块;
量化所述变换系数;
响应于确定经量化的变换系数中的至少一个是非零系数,识别用于编码所选择的变换核候选的概率模型,所述概率模型基于针对所述变换块的上邻近变换块所选择的第一变换核候选和针对所述变换块的左邻近变换块所选择的第二变换核候选来识别;以及
根据所述概率模型来编码所选择的变换核候选。
2.根据权利要求1所述的方法,其中,选择所述多个变换核候选中的一个变换核候选用于变换所述视频帧的所述当前块的所述残差块包括:
通过使用第一运动矢量预测所述当前块中的一部分的垂直运动来识别所述残差块的所述垂直运动的形状;
通过使用第二运动矢量预测所述当前块中的所述部分的水平运动来识别所述残差块的所述水平运动的形状;以及
基于所述残差块的所述垂直运动的形状和所述残差块的所述水平运动的形状来选择所选择的变换核候选。
3.根据权利要求1或权利要求2所述的方法,其中,识别用于编码所选择的变换核候选的概率模型包括:
基于所述第一变换核候选的第一垂直变换类型和所述第二变换核候选的第二垂直变换类型来确定垂直上下文;
基于所述第一变换核候选的第一水平变换类型和所述第二变换核候选的第二水平变换类型来确定水平上下文;以及
使用所述垂直上下文和所述水平上下文来识别所述概率模型。
4.根据权利要求1到3中任一项所述的方法,其中,所述变换块是第一变换块,所述方法进一步包括:
使用运动矢量生成所述残差块,所述残差块包括用于所述当前块的预测残差;以及
将所述残差块分割成包括第一残差子块和第二残差子块的多个子块,其中,所述第一残差子块被变换以产生所述第一变换块并且所述第二残差子块被变换以产生第二变换块。
5.根据权利要求4所述的方法,其中,所选择的变换核候选与被选择用于变换所述第二残差子块的变换核候选不同。
6.根据权利要求4或权利要求5所述的方法,其中,所选择的变换核候选也被选择用于变换所述第二残差子块。
7.根据权利要求1到6中任一项所述的方法,其中,所选择的变换核候选的所述垂直变换类型或所述水平变换类型中的至少一个是DCT、ADST、翻转ADST或恒等变换中的一个。
8.一种用于编码针对视频帧的块所选择的变换核候选的装置,所述装置包括:
处理器,所述处理器被配置成执行存储在非暂时性存储介质中的指令以:
选择多个变换核候选中的一个变换核候选用于变换所述视频帧的当前块的残差块,所选择的变换核候选包括与所述残差块的垂直运动相关联的垂直变换类型和与所述残差块的水平运动相关联的水平变换类型;
根据所选择的变换核候选来变换所述残差块以产生包括变换系数的变换块;
量化所述变换系数;
响应于确定经量化的变换系数中的至少一个是非零系数,识别用于编码所选择的变换核候选的概率模型,所述概率模型基于针对所述变换块的上邻近变换块所选择的第一变换核候选和针对所述变换块的左邻近变换块所选择的第二变换核候选来识别;以及
根据所述概率模型来编码所选择的变换核候选。
9.根据权利要求8所述的装置,其中,用于选择所述多个变换核候选中的一个变换核候选用于变换所述视频帧的所述当前块的所述残差块的所述指令包括用于以下项的指令:
通过使用第一运动矢量预测所述当前块中的一部分的垂直运动来识别所述残差块的所述垂直运动的形状;
通过使用第二运动矢量预测所述当前块中的所述部分的水平运动来识别所述残差块的所述水平运动的形状;以及
基于所述残差块的所述垂直运动的形状和所述残差块的所述水平运动的形状来选择所选择的变换核候选。
10.根据权利要求8或权利要求9所述的装置,其中,用于识别用于编码所选择的变换核候选的概率模型的所述指令包括用于以下项的指令:
基于所述第一变换核候选的第一垂直变换类型和所述第二变换核候选的第二垂直变换类型来确定垂直上下文;
基于所述第一变换核候选的第一水平变换类型和所述第二变换核候选的第二水平变换类型来确定水平上下文;以及
使用所述垂直上下文和所述水平上下文来识别所述概率模型。
11.根据权利要求8到10中任一项所述的装置,其中,所述变换块是第一变换块,其中所述指令包括用于以下项的指令:
使用运动矢量生成所述残差块,所述残差块包括用于所述当前块的预测残差;以及
将所述残差块分割成包括第一残差子块和第二残差子块的多个子块,其中,所述第一残差子块被变换以产生所述第一变换块并且所述第二残差子块被变换以产生第二变换块。
12.根据权利要求11所述的装置,其中,所选择的变换核候选与被选择用于所述第二残差子块的变换核候选不同。
13.根据权利要求11或权利要求12所述的装置,其中,所选择的变换核候选也被选择用于变换所述第二残差子块。
14.根据权利要求8到13中任一项所述的装置,其中,所选择的变换核候选的所述垂直变换类型或所述水平变换类型中的至少一个是DCT、ADST、翻转ADST或恒等变换中的一个。
15.一种用于对经编码的视频帧的当前块的经编码的变换块进行解码的方法,所述方法包括:
识别用于对被选择用于产生经编码的变换块的变换核候选进行编码的概率模型,所述概率模型基于与经编码的变换块的上邻近变换块相关联的第一变换核候选和与经编码的变换块的左邻近变换块相关联的第二变换核候选来识别;
使用所述概率模型来对经编码的变换核候选进行解码,经编码的变换核候选包括与所述当前块的垂直运动相关联的垂直变换类型和与所述当前块的水平运动相关联的水平变换类型;以及
根据已解码的变换核候选,通过对经编码的变换块的去量化的变换系数进行逆变换来对经编码的变换块进行解码。
16.根据权利要求15所述的方法,其中,识别用于对被选择用于产生经编码的变换块的变换核候选进行编码的概率模型包括:
基于所述第一变换核候选的第一垂直变换类型和所述第二变换核候选的第二垂直变换类型来确定垂直上下文;
基于所述第一变换核候选的第一水平变换类型和所述第二变换核候选的第二水平变换类型来确定水平上下文;以及
使用所述垂直上下文和所述水平上下文来识别所述概率模型。
17.根据权利要求15或权利要求16所述的方法,其中,基于所述概率模型来对经编码的变换核候选进行解码包括:
基于所述概率模型,对与经编码的变换核候选的所述垂直变换类型对应的第一索引和与经编码的变换核候选的所述水平变换类型对应的第二索引进行解码。
18.根据权利要求15到17中任一项所述的方法,其中,经编码的变换块是第一经编码的变换块并且所述当前块进一步包括第二经编码的变换块,其中经编码的变换核候选与被选择用于变换所述第二经编码的变换块的系数的变换核候选不同。
19.根据权利要求15到18中任一项所述的方法,其中,所述概率模型是响应于确定经编码的变换块的至少一个经量化的变换系数是非零系数而识别的。
20.根据权利要求15到19中任一项所述的方法,其中,经编码的变换核候选的所述垂直变换类型或所述水平变换类型中的至少一个是DCT、ADST、翻转ADST或恒等变换中的一个。
CN201780071240.2A 2017-02-28 2017-10-31 变换核选择与熵编译 Pending CN110268715A (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201762464615P 2017-02-28 2017-02-28
US62/464,615 2017-02-28
US15/630,071 US11405645B2 (en) 2017-02-28 2017-06-22 Transform kernel selection and entropy coding
US15/630,071 2017-06-22
PCT/US2017/059272 WO2018160231A1 (en) 2017-02-28 2017-10-31 Transform kernel selection and entropy coding

Publications (1)

Publication Number Publication Date
CN110268715A true CN110268715A (zh) 2019-09-20

Family

ID=63246634

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780071240.2A Pending CN110268715A (zh) 2017-02-28 2017-10-31 变换核选择与熵编译

Country Status (4)

Country Link
US (2) US11405645B2 (zh)
EP (1) EP3590258B1 (zh)
CN (1) CN110268715A (zh)
WO (1) WO2018160231A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109819250A (zh) * 2019-01-15 2019-05-28 北京大学 一种多核全组合方式的变换方法和系统
CN112969067A (zh) * 2021-05-18 2021-06-15 浙江华创视讯科技有限公司 一种视频编码方法、装置、设备和可读存储介质
WO2023044919A1 (zh) * 2021-09-27 2023-03-30 Oppo广东移动通信有限公司 视频编解码方法、设备、系统、及存储介质

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10880564B2 (en) * 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
US11405645B2 (en) * 2017-02-28 2022-08-02 Google Llc Transform kernel selection and entropy coding
US10750181B2 (en) * 2017-05-11 2020-08-18 Mediatek Inc. Method and apparatus of adaptive multiple transforms for video coding
CN109922340B (zh) * 2017-12-13 2021-10-15 华为技术有限公司 图像编解码方法、装置、系统及存储介质
CN117119195A (zh) * 2018-03-29 2023-11-24 弗劳恩霍夫应用研究促进协会 变换系数块编码
EP3806476B1 (en) * 2018-06-03 2023-05-24 LG Electronics Inc. Method and device for processing video signal by using reduced transform
KR102526578B1 (ko) * 2018-07-02 2023-04-28 엘지전자 주식회사 이차 변환을 기반으로 비디오 신호를 처리하는 방법 및 장치
EP3723376A4 (en) * 2018-09-02 2021-01-27 LG Electronics Inc. VIDEO SIGNAL CODING / DECODING PROCESS AND DEVICE FOR THE SAME
KR102366765B1 (ko) * 2018-12-21 2022-02-24 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
KR20210114386A (ko) 2019-02-08 2021-09-23 주식회사 윌러스표준기술연구소 이차 변환을 이용하는 비디오 신호 처리 방법 및 장치
CN109788291A (zh) * 2019-02-12 2019-05-21 北京大学 一种数字视频变换方法、装置、设备及存储介质
WO2020175965A1 (ko) 2019-02-28 2020-09-03 주식회사 윌러스표준기술연구소 인트라 예측 기반 비디오 신호 처리 방법 및 장치
CN111669582B (zh) 2019-03-09 2022-05-20 杭州海康威视数字技术股份有限公司 进行编码和解码的方法、编码端、解码端和系统
CN113711597B (zh) * 2019-04-23 2022-11-25 北京字节跳动网络技术有限公司 上下文建模和多重变换矩阵的选择
US11785254B2 (en) * 2020-05-29 2023-10-10 Tencent America LLC Implicit mode dependent primary transforms
WO2024039806A1 (en) * 2022-08-17 2024-02-22 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus for transform training and coding
WO2024054689A1 (en) * 2022-09-10 2024-03-14 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus for transform training and coding

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120170649A1 (en) * 2010-12-29 2012-07-05 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
CN102939755A (zh) * 2010-04-13 2013-02-20 弗兰霍菲尔运输应用研究公司 显著性图和变换系数块的编码
CN103891280A (zh) * 2011-02-16 2014-06-25 摩托罗拉移动有限责任公司 用于确定视频数据的上下文模型的方法和系统
CN104041035A (zh) * 2011-06-30 2014-09-10 华为技术有限公司 用于复合视频的无损编码及相关信号表示方法
WO2016143991A1 (ko) * 2015-03-06 2016-09-15 한국과학기술원 저 복잡도 변환에 기반한 영상 부호화 및 복호화 방법 및 이를 이용하는 장치
TW201637446A (zh) * 2015-01-26 2016-10-16 高通公司 用於預測剩餘之增強型多重轉變

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4447197B2 (ja) 2002-01-07 2010-04-07 三菱電機株式会社 動画像符号化装置および動画像復号装置
US9142024B2 (en) * 2008-12-31 2015-09-22 Lucasfilm Entertainment Company Ltd. Visual and physical motion sensing for three-dimensional motion capture
WO2011099789A2 (ko) * 2010-02-10 2011-08-18 엘지전자 주식회사 비디오 신호 처리 방법 및 장치
US8564641B1 (en) * 2010-06-11 2013-10-22 Lucasfilm Entertainment Company Ltd. Adjusting stereo images
CN107835414B (zh) * 2011-10-18 2020-11-06 株式会社Kt 视频信号解码方法
CN103813174B (zh) * 2012-11-12 2016-04-27 腾讯科技(深圳)有限公司 一种混合分辨率编解码方法和装置
US9674530B1 (en) 2013-04-30 2017-06-06 Google Inc. Hybrid transforms in video coding
EP3389274A4 (en) * 2016-02-04 2019-01-09 Samsung Electronics Co., Ltd. VIDEO CODING METHOD AND DEVICE THROUGH CHROMA MULTITRANSFORMATION AND VIDEO CODING METHOD AND APPARATUS THROUGH CHROMA MULTITRANSFORMATION
KR102434480B1 (ko) * 2016-02-12 2022-08-19 삼성전자주식회사 영상 부호화 방법 및 장치, 영상 복호화 방법 및 장치
KR102287305B1 (ko) * 2017-01-03 2021-08-06 엘지전자 주식회사 이차 변환을 이용한 비디오 신호의 인코딩/디코딩 방법 및 장치
US11405645B2 (en) * 2017-02-28 2022-08-02 Google Llc Transform kernel selection and entropy coding

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102939755A (zh) * 2010-04-13 2013-02-20 弗兰霍菲尔运输应用研究公司 显著性图和变换系数块的编码
US20120170649A1 (en) * 2010-12-29 2012-07-05 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
CN103329523A (zh) * 2010-12-29 2013-09-25 高通股份有限公司 使用经映射变换和扫描模式的视频译码
CN103891280A (zh) * 2011-02-16 2014-06-25 摩托罗拉移动有限责任公司 用于确定视频数据的上下文模型的方法和系统
CN104041035A (zh) * 2011-06-30 2014-09-10 华为技术有限公司 用于复合视频的无损编码及相关信号表示方法
TW201637446A (zh) * 2015-01-26 2016-10-16 高通公司 用於預測剩餘之增強型多重轉變
WO2016143991A1 (ko) * 2015-03-06 2016-09-15 한국과학기술원 저 복잡도 변환에 기반한 영상 부호화 및 복호화 방법 및 이를 이용하는 장치

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109819250A (zh) * 2019-01-15 2019-05-28 北京大学 一种多核全组合方式的变换方法和系统
CN112969067A (zh) * 2021-05-18 2021-06-15 浙江华创视讯科技有限公司 一种视频编码方法、装置、设备和可读存储介质
CN112969067B (zh) * 2021-05-18 2021-08-03 浙江华创视讯科技有限公司 一种视频编码方法、装置、设备和可读存储介质
WO2023044919A1 (zh) * 2021-09-27 2023-03-30 Oppo广东移动通信有限公司 视频编解码方法、设备、系统、及存储介质

Also Published As

Publication number Publication date
US20180249179A1 (en) 2018-08-30
US11405645B2 (en) 2022-08-02
WO2018160231A1 (en) 2018-09-07
EP3590258B1 (en) 2024-05-01
EP3590258A1 (en) 2020-01-08
US20220353534A1 (en) 2022-11-03

Similar Documents

Publication Publication Date Title
CN110268715A (zh) 变换核选择与熵编译
CN107027038B (zh) 动态参考运动矢量编码模式
JP6605726B2 (ja) 直前のフレームの動きベクトルパーティショニング
CN104718758B (zh) 用于对视频流中的帧进行的编码方法、解码方法及编码装置
JP6761033B2 (ja) 前フレーム残差を用いた動きベクトル予測
CN107454403A (zh) 块尺寸可调整的方向性帧内预测
CN110073663A (zh) 使用级别图的变换系数代码化
CN110169068A (zh) Dc系数符号代码化方案
CN109983770A (zh) 多级复合预测
CN107205149A (zh) 通过参考帧缓冲器跟踪的运动矢量参考选择
CN110741638B (zh) 使用残差块能量分布的运动矢量代码化
CN107302700A (zh) 自适应方向环路滤波器
CN107667532A (zh) 用于非基带信号代码化的变换选择
CN107231557A (zh) 用于在视频编码中的高级帧内预测的递归块分区中的智能重排
CN107318015A (zh) 用于视频编码的混合预测模式
EP3701722A1 (en) Same frame motion estimation and compensation
CN110169059A (zh) 视频代码化的复合预测
WO2018222238A1 (en) Improved coding of intra-prediction modes
WO2017100323A1 (en) Mixed boolean-token ans coefficient coding
CN110692247B (zh) 复合运动补偿的预测
CN110731082B (zh) 使用反向排序来压缩视频帧组
WO2024020119A1 (en) Bit stream syntax for partition types
WO2024020117A1 (en) Dependent context model for transform types
CN116830574A (zh) 具有指定比特深度精度的调色板模式代码化

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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190920