CN111971970B - 用于视频编译码的多变换调整阶段 - Google Patents

用于视频编译码的多变换调整阶段 Download PDF

Info

Publication number
CN111971970B
CN111971970B CN201980022137.8A CN201980022137A CN111971970B CN 111971970 B CN111971970 B CN 111971970B CN 201980022137 A CN201980022137 A CN 201980022137A CN 111971970 B CN111971970 B CN 111971970B
Authority
CN
China
Prior art keywords
transform
block
adjustment operation
video data
residual
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
CN201980022137.8A
Other languages
English (en)
Other versions
CN111971970A (zh
Inventor
A.塞德
H.E.埃吉尔梅兹
M.卡泽维茨
V.塞雷金
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of CN111971970A publication Critical patent/CN111971970A/zh
Application granted granted Critical
Publication of CN111971970B publication Critical patent/CN111971970B/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/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/146Data rate or code amount at the encoder output
    • H04N19/147Data rate or code amount at the encoder output according to rate distortion criteria
    • 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/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/18Methods 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 a set of transform coefficients
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

设备可以对第一视频数据块执行第一预测处理以产生第一残差。该设备可以对第一残差应用第一变换处理以生成第一视频数据块的第一变换系数,并且对第一变换系数编码。该设备可以对第二视频数据块执行第二预测处理以产生第二残差。该设备可以确定包括预调整操作或后调整操作中的至少一个和第一变换处理的第二变换处理将被应用于第二残差。该设备可以将第一变换处理和预调整操作或后调整操作应用于第二残差以生成第二块的第二变换系数。编码设备可以对第一和第二变换系数编码。

Description

用于视频编译码的多变换调整阶段
相关申请的交叉引用
本申请要求2019年3月28日提交的第16/368,455号美国专利申请的优先权,该申请要求2018年3月30日提交的第62/650,953号美国临时申请和2018年5月7日提交的第62/668,097号美国临时申请的权益,每个申请的全部内容通过引用结合于此。
技术领域
本公开涉及视频编码和视频解码。
背景技术
数字视频能力可以被合并到广泛的设备中,包括数字电视、数字直接广播系统、无线广播系统、个人数字助理(personal digital assistant,PDA)、膝上型或桌上型计算机、平板计算机、电子书阅读器、数字相机、数字记录设备、数字媒体播放器、视频游戏设备、视频游戏控制台、蜂窝或卫星无线电话、所谓的“智能电话”、视频电话会议设备、视频流设备等。数字视频设备实施视频编码技术,诸如由MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4第10部分高级视频编码(Advanced Video Coding,AVC)、ITU-T H.265、高效视频编码(High Efficiency Video Coding,HEVC)和这些标准的扩展定义的标准中描述的那些技术。通过实施这种视频编译码技术,视频设备可以更高效地发送、接收、编码、解码和/或存储数字视频信息。
视频编译码技术包括空间(帧内画面)预测和/或时间(帧间画面)预测,以减少或移除视频序列中固有的冗余。对于基于块的视频编译码,视频切片(例如,视频帧或视频帧的一部分)可以被划分成视频块,这些视频块也可以被称为树块、编码单元(coding unit,CU)和/或编码节点。画面可以称为帧,参考画面可以称为参考帧。
空间或时间预测产生待编码的块的预测块。残差数据表示待编码的原始块和预测块之间的像素差异。为了进一步压缩,可以将残差数据从像素域变换到变换域,从而产生可以之后被量化的残差变换系数。可以应用熵编码来实现更多的压缩。
发明内容
总的来说,本公开描述了用于减少存储在视频编译码器的存储器中的数据量并提高对视频数据进行编译码的计算效率并且被编译码视频数据的质量降低得最小的技术。在一些示例中,本公开描述了使用近似来代替一些复杂的变换处理以实现本公开的存储器减少和计算效率益处的技术。
在一个示例中,视频编码设备对视频数据编码,以用于预测第一视频数据块的第一残差和第二视频数据块的第二残差。对于第一残差,视频编码设备确定第一变换处理将被应用于第一残差,并且随后将第一变换处理应用于第一残差以生成第一变换系数。对于第二残差,视频编码设备确定第二变换处理将被应用于第二残差。然而,第二变换处理可以是第一变换处理添加预调整操作或后调整操作中的至少一个,而不是不同的、复杂的变换处理。视频编码设备然后可以将第一变换处理和预调整或后调整处理的组合应用于第二残差,以获得第二变换系数。第一变换处理和预调整或后调整处理的组合近似于不同的第二变换。视频编码设备然后可以对第一和第二变换系数编码。
类似地,当对视频数据解码时,对于第一块,视频解码设备可以确定第一逆变换处理将被应用于第一块,然后随后应用第一逆变换处理来生成第一残差。视频解码设备可以对第一残差解码以产生第一解码块。对于第二块,视频解码设备可以确定第二逆变换处理将被应用于第二残差,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理,然后随后将第一逆变换处理和预调整或后调整处理的组合应用于第二块以获得第二残差。视频解码设备可以对第二残差解码以产生第二解码块,并且至少部分地基于第一解码块和第二解码块对视频数据解码。
在一个示例中,本公开涉及一种对视频数据编码的方法,包括对第一视频数据块执行第一预测处理以产生第一残差;确定多个变换处理中的第一变换处理将被应用于第一残差;对第一残差应用第一变换处理,以生成第一视频数据块的第一变换系数;对第一变换系数编码;对第二视频数据块执行第二预测处理以产生第二残差;确定第二变换处理将被应用于第二残差,其中第二变换处理包括第一变换处理和除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个;将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差,以生成第二视频数据块的第二变换系数,其中如果应用第一预调整操作,则在应用第一变换处理之前应用第一预调整操作,并且其中如果应用第一后调整操作,则在应用第一变换处理之后应用第一后调整操作;以及对第二变换系数编码。
在另一示例中,本公开涉及一种视频编码设备,包括:被配置成存储视频数据的存储器;以及以电路实施的一个或多个处理器,该处理器被配置成:对第一视频数据块执行第一预测处理以产生第一残差;确定多个变换处理中的第一变换处理将被应用于第一残差;将第一变换处理应用于第一残差以生成第一视频数据块的第一变换系数;对第一变换系数编码;确定第二变换处理将被应用于第二残差,其中第二变换处理包括第一变换处理和除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个;将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数,其中如果应用第一预调整操作,则在应用第一变换处理之前应用第一预调整操作,并且其中如果应用第一后调整操作,则在应用第一变换处理之后应用第一后调整操作;以及对第二变换系数编码。
在另一示例中,本公开涉及一种其上存储有指令的计算机可读存储介质,该指令在被执行时使得视频编码设备的一个或多个处理器:对第一视频数据块执行第一预测处理以产生第一残差;确定多个变换处理中的第一变换处理将被应用于第一残差;对第一残差应用第一变换处理以生成第一视频数据块的第一变换系数;对第一变换系数编码;对第二视频数据块执行第二预测处理以产生第二残差;确定第二变换处理将被应用于第二残差,其中第二变换处理包括第一变换处理和除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个;以及将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数,其中如果应用第一预调整操作,则在应用第一变换处理之前应用第一预调整操作,并且其中如果应用第一后调整操作,则在应用第一变换处理之后应用第一后调整操作;以及对第二变换系数编码。
在另一示例中,本公开涉及一种用于对视频数据编码的装置,该装置包括:用于对第一视频数据块执行第一预测处理以产生第一残差的部件;用于确定多个变换处理中的第一变换处理将被应用于第一残差的部件;用于将第一变换处理应用于第一残差以生成第一视频数据块的第一变换系数的部件;用于对第一变换系数编码的部件;用于确定第二变换处理将被应用于第二残差的部件,其中第二变换处理包括第一变换处理和除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个;用于将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数的部件,其中如果应用第一预调整操作,则在应用第一变换处理之前应用第一预调整操作,并且其中如果应用第一后调整操作,则在应用第一变换处理之后应用第一后调整操作;以及用于对第二变换系数编码的部件。
在另一示例中,本公开涉及一种对视频数据解码的方法,包括:确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块;将第一逆变换处理应用于第一块的第一变换系数以生成第一残差;对第一残差解码以产生第一解码块;确定第二逆变换处理将被应用于多个视频数据块中的第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理;将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差,其中如果应用预调整操作,则在应用第一逆变换处理之前应用预调整操作,并且其中如果应用后调整操作,则在应用第一逆变换处理之后应用后调整操作;对第二残差解码以产生第二解码块;以及至少部分基于第一解码块和第二解码块对视频数据解码。
在另一示例中,本公开涉及一种视频解码设备,包括:被配置成存储视频数据的存储器;以及以电路实施的一个或多个处理器,该处理器被配置成:确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块;将第一逆变换处理应用于第一块的第一变换系数以生成第一残差;对第一残差解码以产生第一解码块;确定第二逆变换处理将被应用于多个视频数据块中的第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理;将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差,其中如果应用预调整操作,则在应用第一逆变换处理之前应用预调整操作,并且如果应用后调整操作,则在应用第一逆变换处理之后应用后调整操作;解码第二残差以产生第二解码块;并且至少部分基于第一解码块和第二解码块对视频数据解码。
在另一示例中,本公开涉及其上存储有指令的计算机可读存储介质,当该指令被执行时,使得视频解码设备的一个或多个处理器:确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块;将第一逆变换处理应用于第一块的第一变换系数以生成第一残差;对第一残差解码以产生第一解码块;确定第二逆变换处理将被应用于多个视频数据块中的第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理;将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差,其中如果应用预调整操作,则在应用第一逆变换处理之前应用预调整操作,并且其中如果应用后调整操作,则在应用第一逆变换处理之后应用后调整操作;对第二残差解码以产生第二解码块;并且至少部分基于第一解码块和第二解码块对视频数据解码。
在另一示例中,本公开涉及一种用于对视频数据解码的装置,该装置包括:用于确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块的部件;用于将第一逆变换处理应用于第一块的第一变换系数以生成第一残差的部件;用于对第一残差解码以产生第一解码块的部件;用于确定第二逆变换处理将被应用于多个视频数据块中的第二块的部件,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理;用于将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差的部件,其中如果应用预调整操作,则在应用第一逆变换处理之前应用预调整操作,并且其中如果应用后调整操作,则在应用第一逆变换处理之后应用后调整操作;用于对第二残差解码以产生第二解码块的部件;以及用于至少部分基于第一解码块和第二解码块对对视频数据解码的部件。
本公开的一个或多个示例的细节在附图和以下描述中阐述。根据说明书和附图以及权利要求,本公开的其他特征、目的和优点将变得显而易见。
附图说明
图1是示出被配置成实施本公开的技术的示例视频编码和解码系统的框图。
图2是示出用于具有变换选择的混合视频编码的示例系统的框图。
图3A是示出用于计算二维像素残差块中的可分离变换的示例选项的概念图。
图3B是示出用于计算二维像素残差块中的不可分离变换的示例选项的概念图。
图4A和图4B是示出使用矩阵分解的示例离散三角计算的概念图。
图5A和图5B是示出根据本文描述的一种或多种技术的示例低复杂度变换调整阶段的概念图。
图6A和图6B是示出根据本文描述的一种或多种技术的两个不同的离散正弦变换矩阵之间的比较的概念图。
图7A和图7B是示出根据本文描述的一种或多种技术的示例带状对角稀疏正交矩阵和块状对角稀疏正交矩阵的概念图。
图8是表示根据本文描述的一种或多种技术的Givens正交变换的概念“蝴蝶”图。
图9是表示根据本文描述的一种或多种技术的由用于变换调整的并行Givens旋转组成的示例结构的概念图。
图10A和图10B是表示根据本文描述的一种或多种技术的仅用离散余弦变换2变换和低复杂度自适应状态来替换多个离散三角变换的示例的概念图。
图11是示出用于计算可分离变换的示例系统的框图。
图12是示出用于使用低复杂度变换调整阶段来计算可分离变换的示例系统的框图。
图13A和图13B是示出可分离变换的水平通道(pass)的示例的概念图。
图14是示出被配置成执行本文描述的一种或多种技术的视频编码器的示例的框图。
图15是示出被配置成执行本文描述的一种或多种技术的视频解码器的示例的框图。
图16是示出可以实施本公开中描述的技术的视频数据的第一示例解码的流程图。
图17是示出可以实施本公开中描述的技术的视频数据的第一示例编码的流程图。
具体实施方式
本公开描述了可以解决变换编译码问题的技术,变换编译码是视频压缩标准的基本部分。本公开的技术可以降低大量不可分离变换的存储和计算复杂度,潜在地能够以合理的成本实施大的编译码增益。
本文描述的技术可以显著降低最适合视频编译码的变换的计算复杂度,并且无论在算术运算的数量方面,还是在用于存储变换参数的存储器方面,压缩性能几乎没有损失。本公开的技术可以利用每次变换的这些存储节省,因为存储节省使得能够使用显著更大数量的变换来提高编译码增益。本公开描述了如何将这些技术用于实践的视频编译码系统。
根据本文描述的技术,视频编译码器不使用一个或多个复杂变换处理,而是可以向不太复杂的变换处理添加预调整或后调整操作,以创建与该一个或多个复杂变换处理的结果近似的变换序列。虽然在这些技术中可能会应用更多的处理,但是通过使用更少的复杂处理,可以更高效地处理视频块和残差数据,尤其是当块的大小大于8×8时。这是因为不太复杂的处理可能应用得更快,在某些情况下呈指数增长。此外,得到的视频数据在视觉质量上仍然可以近似等于在已经应用了一个或多个复杂的变换处理的情况下所得到的视频数据,从而在不损失视频质量的情况下实现更高效的处理。
一些示例视频编译码标准仅使用一种类型的变换(离散余弦变换),但是其他标准,例如HEVC,采用不止一种类型的变换来改善压缩(参见M.Wien的High EfficiencyVideo Coding:Coding Tools and Specification,Springer-Verlag,Berlin,2015,以及J.Han,A.Saxena、V.Melkote和K.Rose的“Jointly optimized spatial prediction andblock transform for video and image coding,”IEEE Trans.on Image Processing,2012年4月第21卷第1874-1884页,它们的全部内容通过引用结合于此)。在开放媒体联盟视频1(Alliance for Open Media Video 1,AV1)标准和最新的国际电信联盟/运动图像专家组(International Telecommunication Union/Moving Pictures Expert Group,ITU/MPEG)标准中,这种方法通过允许几种类型的离散正弦和余弦变换(DST和DCT)而得到进一步扩展。采用多个变换可能会引起显著的压缩改善(编译码增益超过2%),但也会产生与计算复杂度相关的几个实践问题,包括(i)存储关于所有变换的信息所需的存储量,(ii)每个变换的不相等的计算要求,以及(iii)导致需要多个实施优化。
本公开的技术通过用预定义的低复杂度变换集合来替换多个变换,从而解决上述问题中的一些或全部,这些低复杂度变换集合可以与新的计算结构(例如,由稀疏矩阵和类似技术表示)相结合,该新的计算结构允许对最初提出的变换进行高效且足够精确的近似。实验模拟表明,仅使用众所周知的和高度优化的DCT类型II,加上新提出的近似阶段,这种方法可以用可忽略的编译码损失代替联合探索模型(Joint Exploration Model,JEM)软件上的五个附加的三角变换。
图1是示出被配置成实施本公开的技术的示例视频编码和解码系统10的框图。如图1所示,系统10包括源设备12,源设备12提供编码的视频数据,以便稍后由目的地设备14解码。具体地,源设备12经由计算机可读介质16向目的地设备14提供视频数据。源设备12和目的地设备14可以包括多种设备中的任何一种,包括台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、诸如所谓的“智能”电话的电话手机、平板计算机、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。在一些情况下,源设备12和目的地设备14可以被装备用于无线通信。因此,源设备12和目的地设备14可以是无线通信设备。源设备12是示例视频编码设备(即,用于对视频数据编码的设备)。目的地设备14是示例视频解码设备(即,用于对视频数据解码的设备)。
在图1的示例中,源设备12包括视频源18、被配置成存储视频数据的存储介质19、视频编码器20和输出接口24。目的地设备14包括输入接口26、被配置成存储编码的视频数据的存储介质28、视频解码器30和显示设备32。在其他示例中,源设备12和目的地设备14包括其他组件或布置。例如,源设备12可以从外部视频源(例如外部相机)接收视频数据。同样,目的地设备14可以与外部显示设备接口连接,而不包括集成的显示设备。
图1所示的系统10仅仅是一个示例。用于处理视频数据的技术可以由任何数字视频编码和/或解码设备执行。尽管本公开的技术通常由视频编码设备执行,但这些技术也可以由通常被称为“编解码器(CODEC)”的视频编码器/解码器执行。源设备12和目的地设备14仅仅是这种编解码设备的示例,其中源设备12生成编码的视频数据以传输到目的地设备14。在一些示例中,源设备12和目的地设备14可以以基本对称的方式操作,使得源设备12和目的地设备14中的每一个都包括视频编码和解码组件。因此,系统10可以支持源设备12和目的地设备14之间的单向或双向视频传输,例如用于视频流、视频回放、视频广播或视频电话。
源设备12的视频源18可以包括诸如摄像机的视频捕获设备,包含先前捕获的视频的视频存档、和/或从视频内容提供商接收视频数据的视频馈送接口。作为进一步的替代,视频源18可以生成基于计算机图形的数据作为源视频,或者实时视频、存档视频和计算机生成视频的组合。源设备12可以包括被配置成存储视频数据的一个或多个数据存储介质(例如,存储介质19)。本公开中描述的技术一般可应用于视频编解码,并且可应用于无线和/或有线应用。在每种情况下,捕获的、预捕获的或计算机生成的视频可以由视频编码器20编码。输出接口24可以将编码的视频信息输出到计算机可读介质16。
目的地设备14可以经由计算机可读介质16接收待解码的编码的视频数据。计算机可读介质16可以包括能够将编码的视频数据从源设备12移动到目的地设备14的任何类型的介质或设备。在一些示例中,计算机可读介质16包括通信介质,以使得源设备12能够实时地将编码的视频数据直接传输到目的地设备14。编码的视频数据可以根据诸如无线通信协议的通信标准进行调制,并且被传输到目的地设备14。通信介质可以包括任何无线或有线通信介质,诸如射频(radio frequency,RF)频谱或一条或多条物理传输线。通信介质可以形成基于分组的网络的一部分,诸如局域网、广域网或诸如互联网的全球网络。通信介质可以包括路由器、交换机、基站或有助于从源设备12到目的地设备14的通信的任何其他设备。目的地设备14可以包括被配置成存储编码的视频数据和解码的视频数据的一个或多个数据存储介质。
在一些示例中,编码的数据可以从输出接口24输出到存储设备。类似地,可以通过输入接口从存储设备访问编码的数据。存储设备可以包括各种分布式或本地访问的数据存储介质中的任何一种,诸如硬盘驱动器、蓝光光盘、DVD、CD-ROM、闪存、易失性或非易失性存储器,或者用于存储编码的视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备可以对应于文件服务器或者可以存储由源设备12生成的编码的视频的其他中间存储设备。目的地设备14可以经由流式传输或下载从存储设备访问存储的视频数据。文件服务器可以是能够存储编码的视频数据并将该编码的视频数据传输到目的地设备14的任何类型的服务器。示例文件服务器包括网络服务器(例如,用于网站)、FTP服务器、网络附接存储(NAS)设备或本地磁盘驱动器。目的地设备14可以通过包括互联网连接的任何标准数据连接来访问码的视频数据。这可以包括无线信道(例如,Wi-Fi连接)、有线连接(例如,DSL、电缆调制解调器等),或者适于访问存储在文件服务器上的编码的视频数据的这两者的组合。来自存储设备的编码的视频数据的传输可以是流式传输、下载传输或其组合。
本公开的技术可以应用于视频编译码,以支持各种多媒体应用中的任何一种,诸如空中电视广播、有线电视传输、卫星电视传输、互联网流式视频传输(诸如通过HTTP进行的动态自适应流式传输(dynamic adaptive streaming,DASH))、编码到数据存储介质上的数字视频、存储在数据存储介质上的数字视频的解码、或其他应用。在一些示例中,系统10可以被配置成支持单向或双向视频传输,以支持诸如视频流、视频回放、视频广播和/或视频电话的应用。
计算机可读介质16可以包括诸如无线广播或有线网络传输的瞬态介质,或者诸如硬盘、闪存驱动器、光盘、数字视频盘、蓝光光盘的存储介质(即,非暂时性存储介质),或者其他计算机可读介质。在一些示例中,网络服务器(未示出)可以从源设备12接收编码的视频数据,并且例如经由网络传输将编码的视频数据提供给目的地设备14。类似地,媒体生产设施(诸如盘压印设施)的计算设备可以从源设备12接收编码的视频数据,并生产包含该编码的视频数据的盘。因此,在各种示例中,计算机可读介质16可以被理解成包括各种形式的一个或多个计算机可读介质。
目的地设备14的输入接口26从计算机可读介质16接收信息。计算机可读介质16的信息可以包括由视频编码器20的视频编码器20定义的、也由视频解码器30使用的语法信息,该语法信息包括描述块和其他编码单元(例如画面组(groups of picture,GOP))的特性和/或处理的语法元素。存储介质28可以存储由输入接口26接收的编码的视频数据。显示设备32向用户显示解码的视频数据,并且可以包括各种显示设备中的任何一种,诸如阴极射线管(cathode ray tube,CRT)、液晶显示器(liquid crystal display,LCD)、等离子显示器、有机发光二极管(organic light emitting diode,OLED)显示器或其他类型的显示设备。
虽然在图1中未示出,但是在一些示例中,视频编码器20和视频解码器30可以各自与音频编码器和/或音频解码器集成,并且可以包括适当的MUX-DEMUX单元或其他硬件和/或软件,以处理包括公共数据流中的音频和视频两者的多路复用流。如果适用,MUX-DEMUX单元可以符合ITU H.223多路复用器协议,或者诸如用户数据报协议(UDP)的其他协议。
视频编码器20和视频解码器30均可以实施为各种合适的固定功能和/或可编程电路中的任何一种,诸如一个或多个微处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)、分立逻辑、软件、硬件、固件或其任意组合。当这些技术在软件中部分地实施时,设备可以将用于软件的指令存储在合适的非暂时性计算机可读介质中,并且使用一个或多个处理器在硬件中执行这些指令以执行本公开的技术。视频编码器20和视频解码器30中的每一个可以被包括在一个或多个编码器或解码器中,其中的任何一个可以被集成为相应设备中的组合编码器/解码器(CODEC)的一部分。
在一些示例中,视频编码器20和视频解码器30可以根据诸如现有或未来标准的视频编译码标准来操作。示例视频编译码标准包括但不限于ITU-T H.261、ISO/IEC MPEG-1Visual、ITU-T H.262或ISO/IEC MPEG-2Visual、ITU-T H.263、ISO/IEC MPEG-4Visual和ITU-T H.264(也称为ISO/IEC MPEG-4AVC),包括其可缩放视频编码(Scalable VideoCoding,SVC)和多视图视频编码(Multi-View Video Coding,MVC)扩展。此外,最近已经由ITU-T视频编码专家组(Video Coding Experts Group,VCEG)和ISO/IEC运动图像专家组(Motion Picture Experts Group,MPEG)的视频编码联合协作小组(Joint CollaborationTeam on Video Coding,JCT-VC)开发了一种新的视频编码标准,即高效视频编码(HighEfficiency Video Coding,HEVC)或ITU-T H.265,包括其范围和屏幕内容编码扩展、3D视频编码(3D video coding,3D-HEVC)和多视图扩展(multiview extension,MV-HEVC)以及可缩放扩展(scalable extension,SHVC)。可替换地,视频编码器20和视频解码器30可以根据其他专用或行业标准操作,诸如联合探索测试模型(JEM)或ITU-T H.266,也被称为通用视频编码(VVC)。然而,本公开的技术不限于任何特定的编译码标准。
在HEVC和其他视频编译码规范中,视频序列通常包括一系列画面。画面也可以称为“帧”。画面可能包括三个样点阵列,分别表示为SL、SCb和SCr。SL是亮度样点的二维阵列(即块)。SCb是Cb色度样点的二维阵列。SCr是Cr色度样点的二维阵列。色度(Chrominance)样点在本文也可以称为“色度(chroma)”样点。在其他实例中,画面可以是单色的,并且可以仅包括亮度样点的阵列。
为了生成画面的编码表示,视频编码器20可以生成一组编码树单元(CTU)。CTU中的每一个可以包括亮度样点的编码树块、色度样点的两个对应的编码树块和用于对编码树块的样点编码的语法结构。在单色画面或具有三个独立颜色平面的画面中,CTU可以包括单个编码树块和用于对编码树块的样点编码的语法结构。编码树块可以是NxN的样点块。CTU也可以被称为“树块”或“最大的编码单元”(largest coding unit,LCU)。HEVC的CTU可以与诸如H.264/AVC的其他标准的宏块大致类似。然而,CTU不一定限于特定的大小,并且可以包括一个或多个CU。切片可以包括以光栅扫描顺序连续排列的整数个CU。
本公开可以使用术语“视频单元”或“视频块”或“块”来指代一个或多个样点块以及用于对该一个或多个样点块的样点编码的语法结构。视频单元的示例类型可以包括CTU、CU、PU、变换单元(transform unit,TU)、宏块、宏块分割等。在一些情况下,对PU的讨论可以与对一个或多个宏块分割的讨论互换。视频块的示例类型可以包括编码树块、编码块和其他类型的视频数据块。
为了生成编码的CTU,视频编码器20可以递归地对CTU的编码树块执行四叉树分割,以将编码树块划分成编码块,因此命名为“编码树单元”。编码块是NxN的样点块。CU可以包括具有亮度样点阵列、Cb样点阵列和Cr样点阵列、以及用于对编码块的样点编码的语法结构的画面的亮度样点的编码块和色度样点的两个对应的编码块。在单色画面或具有三个独立颜色平面的画面中,CU可以包括单个编码块和用于对编码块的样点编码的语法结构。
视频编码器20可以将CU的编码块划分割一个或多个预测块。预测块是可以对其应用相同预测的样点的矩形(即正方形或非正方形)块。CU的预测单元(PU)可以包括亮度样点的预测块、色度样点的两个对应的预测块、以及用于预测预测块的语法结构。在单色画面或具有三个独立颜色平面的画面中,PU可以包括单个预测块和用于预测该预测块的语法结构。视频编码器20可以为CU的每个PU的预测块(例如,亮度、Cb和Cr预测块)生成预测块(例如,亮度、Cb和Cr预测块)。
视频编码器20可以使用帧内预测或帧间预测来生成PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可以基于包括PU的画面的解码样点来生成PU的预测块。
在视频编码器20为CU的一个或多个PU生成预测块(例如,亮度、Cb和Cr预测块)之后,视频编码器20可以为CU生成一个或多个残差块。例如,视频编码器20可以为CU生成亮度残差块。CU的亮度残差块中的每个样点指示CU的预测亮度块之一中的亮度样点与CU的原始亮度编码块中的对应样点之间的差。此外,视频编码器20可以为CU生成Cb残差块。CU的Cb残差块中的每个样点可以指示CU的预测Cb块之一中的Cb样点与CU的原始Cb编码块中的对应样点之间的差。视频编码器20还可以为CU生成Cr残差块。CU的Cr残差块中的每个样点可以指示CU的预测Cr块之一中的Cr样点与CU的原始Cr编码块中的对应样点之间的差。
此外,视频编码器20可以将残差块分解成一个或多个变换块。例如,视频编码器20可以使用四叉树分割来将CU的残差块(例如,亮度、Cb和Cr残差块)分解成一个或多个变换块(例如,亮度、Cb和Cr变换块)。变换块是对其应用相同变换的样点的矩形(例如,正方形或非正方形)块。CU的变换单元(TU)可以包括亮度样点的变换块、色度样点的两个对应的变换块、以及用于对变换块样点进行变换的语法结构。因此,CU的每个TU可以具有亮度变换块、Cb变换块和Cr变换块。TU的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色画面或具有三个独立颜色平面的画面中,TU可以包括单个变换块和用于对变换块的样点进行变换的语法结构。
作为另一示例,视频编码器20和视频解码器30可以被配置成根据JEM或VVC操作。根据JEM或VVC,视频编译码器(诸如视频编码器20)将画面分割成多个编码树单元(CTU)。视频编码器20可以根据树结构对CTU进行分割,诸如四叉树(quadtree-binary tree,QTBT)结构或多类型树(Multi-Type Tree,MTT)结构。QTBT结构移除了多个分割类型的概念,诸如HEVC的CU、PU和TU之间的分离。QTBT结构包括两个级别:根据四叉树分割进行分割的第一级别,以及根据二叉树分割进行分割的第二级别。QTBT结构的根节点对应于CTU。二叉树的叶节点对应于编码单元(CU)。
在一些示例中,视频编码器20和视频解码器30可以使用单个QTBT结构来表示亮度和色度分量中的每一个,而在其他示例中,视频编码器20和视频解码器30可以使用两个或更多个QTBT结构,诸如一个QTBT结构用于亮度分量,而另一QTBT结构用于两个色度分量(或者两个QTBT结构用于相应的色度分量)。
视频编码器20和视频解码器30可以被配置成使用每HEVC进行的四叉树分割、QTBT分割、MTT分割、或者其他分割结构。出于解释的目的,本公开的技术的描述是针对QTBT分割来呈现的。然而,应当理解,本公开的技术也可以应用于被配置成使用四叉树分割或其他类型的分割的视频编译码器。
本公开可以互换地使用“NxN”和“N乘N”来指代块(诸如CU或其他视频块)在垂直和水平维数方面的样点维数,例如16x 16样点或16乘16样点。一般来说,16x16 CU在垂直方向上有16个样点(y=16),在水平方向上有16个样点(x=16)。同样,NxN CU通常在垂直方向上具有N个样点,在水平方向上具有N个样点,其中N表示非负整数值。CU中的样点可以按行和列排列。此外,CU不一定需要在水平方向和垂直方向上具有相同数量的样点。例如,CU可以包括NxM个样点,其中M不一定等于N。
视频编码器20对表示预测和/或残差信息以及其他信息的CU的视频数据编码。预测信息指示CU要被如何预测,以便为CU形成预测块。残差信息通常表示编码之前的CU的样点和预测块之间的逐样点(sample-by-sample)的差。
为了预测CU,视频编码器20通常可以通过帧间预测或帧内预测来形成CU的预测块。帧间预测通常是指根据先前编码的画面的数据来预测CU,帧内预测通常是指根据相同画面的先前编码的数据来预测CU。为了执行帧间预测,视频编码器20可以使用一个或多个运动向量来生成预测块。视频编码器20通常可执行运动搜索以识别与CU紧密匹配(例如,在CU和参考块之间的差的方面)的参考块。视频编码器20可使用绝对差之和(sum ofabsolute difference,SAD)、平方差之和(sum of squared differen,SSD)、平均绝对差(mean absolute difference,MAD)、均方差(mean squared difference,MSD)或其它这种差计算来计算差度量,以确定参考块是否与当前CU紧密匹配。在一些示例中,视频编码器20可以使用单向预测或双向预测来预测当前CU。
JEM和VVC也提供仿射运动补偿模式,其可以被认为是帧间预测模式。在仿射运动补偿模式中,视频编码器20可以确定表示非平移运动的两个或多个运动向量,非平移运动诸如放大或缩小、旋转、透视运动或其他不规则运动类型。
为了执行帧内预测,视频编码器20可以选择帧内预测模式来生成预测块。JEM和VVC提供六十七种帧内预测模式,包括各种方向模式,以及平面模式和DC模式。通常,视频编码器20选择帧内预测模式,该模式描述当前块(例如,CU的块)的相邻样点,其中根据该相邻样点预测当前块的样点。假设视频编码器20以光栅扫描顺序(从左到右、从上到下)对CTU和CU编码,则在与当前块相同的画面中,这种样点通常可以在当前块的上方、左上方或左方。
视频编码器20可以将一个或多个变换应用于TU的变换块以生成TU的系数块。例如,视频编码器20可以将一个或多个变换应用于TU的亮度变换块,以生成TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于TU的Cb变换块,以生成TU的Cb系数块。视频编码器20可以将一个或多个变换应用于TU的Cr变换块以生成TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以量化系数块。量化通常是指量化变换系数以尽可能减少用于表示变换系数的数据量,从而提供进一步压缩的处理。在视频编码器20量化系数块之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行上下文自适应二进制算术编码(Context-Adaptive Binary ArithmeticCoding,CABAC)。
视频编码器20可以输出比特流,该比特流包括形成编码画面和相关联的数据的表示的比特序列。因此,比特流包括视频数据的编码表示。比特流可以包括网络抽象层(network abstraction layer,NAL)单元的序列。NAL单元是一种语法结构,其包含对NAL单元中的数据类型的指示和字节,该字节包含以原始字节序列有效载荷(raw byte sequencepayload,RBSP)形式的数据,该字节在必要时穿插(intersperse)仿真防止比特(emulationprevention bit)。NAL单元中的每一个可以包括NAL单元标头(header)并封装RBSP。NAL单元标头可以包括指示NAL单元类型代码的语法元素。由NAL单元的NAL单元标头指定的NAL单元类型代码表示NAL单元的类型。RBSP可以是包含被封装在NAL单元内的整数个字节的语法结构。在某些情况下,RBSP包括零比特。
视频解码器30可以接收由视频编码器20生成的比特流。此外,视频解码器30可以解析比特流以从比特流中获得语法元素。视频解码器30可以至少部分基于从比特流获得的语法元素来重构视频数据的画面。重构视频数据的处理通常可以与视频编码器20执行的处理相反。例如,视频解码器30可以使用PU的运动向量来确定当前CU的PU的预测块。此外,视频解码器30可以逆量化当前CU的TU的系数块。视频解码器30可以对系数块执行逆变换,以重构当前CU的TU的变换块。视频解码器30可以通过将当前CU的PU的预测块的样点添加到当前CU的TU的变换块的对应样点来重构当前CU的编码块。通过为画面的每个CU重构编码块,视频解码器30可以重构画面。
变换编码是所有现代视频编码标准(如高效视频编码(HEVC))的基础部分。众所周知,最佳变换编码应该采用基于矩阵的Karhunen-Loève变换(KLT)(或类似的自适应变换),因为这种变换可以针对特定的信号统计被优化。然而,矩阵实施往往需要相对高的计算量和相对高的存储量。在实践中,像离散余弦变换(DCT)这样的固定可分离变换使用更少的计算和更少的存储来实施变换,因此被广泛采用。
根据本文描述的技术,视频编码器20可对第一视频数据块执行第一预测处理,并且对第二视频数据块执行第二预测处理,以分别产生第一残差和第二残差。对于第一残差,视频编码器20可以确定多个变换处理中的第一变换处理将被应用于第一残差。视频编码器20然后可以将第一变换处理应用于第一残差以生成第一视频数据块的第一变换系数。对于第二残差,视频编码器20可以确定第二变换处理将被应用于第二残差,其中第二变换处理包括要应用于第二残差的预调整操作或后调整操作中的至少一个和第一变换处理。视频编码器20可将预调整操作或后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数。如果应用预调整操作,则变换处理单元252在应用第一变换处理之前应用预调整操作。如果应用后调整操作,则变换处理单元252在应用第一变换处理之后应用后调整操作。通过组合第一变换处理和预调整和/或后调整操作,第二变换处理可以是更复杂的三角变换的近似和替代,而不需要执行复杂三角变换的计算量大的操作,也不需要将全部矩阵存储在存储器中。视频编码器20然后可以对第一变换系数和第二变换系数进行熵编码。
此外,根据本文描述的技术,对于多个视频数据块的第一块,视频解码器30可以确定多个逆变换处理中的第一逆变换处理将被应用于第一块。视频解码器30然后可以将第一逆变换处理应用于第一块的第一变换系数以生成第一残差。视频解码器30可以对第一残差解码以产生第一解码块。对于第二块,视频解码器30可以确定第二逆变换处理将被应用于第二块,其中预调整操作或后调整操作中的至少一个和第一逆变换处理。视频解码器30可将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差。如果应用预调整操作,视频解码器30在应用第一逆变换处理之前应用预调整操作。如果应用后调整操作,则视频解码器30在应用第一逆变换处理之后应用后调整操作。视频解码器30可以解码第二残差以产生第二解码块。通过组合第一变换处理和预调整和/或后调整操作,该操作组合可以是更复杂的三角变换的近似和替代,而不需要执行复杂三角变换的计算量大的操作,也不需要将全部矩阵存储在存储器中。视频解码器30然后可以至少部分地基于第一解码块和第二解码块来对视频数据进行解码。
图2是示出用于具有变换选择的混合视频编码的示例系统40的框图。本公开的技术适用于图2所示的自适应变换编码的框架,其中对于预测残差的每个块,编码器可以选择不同的变换,并且变换的选择被编码为边信息(side information)。
图2示出视频编码系统40(即示例视频编码器,诸如视频编码器20)的图,其中视频帧首先被划分成像素块(块分离42)。像素块的示例类型可以包括CU的编码块。此外,在图2中,对于每个块,视频编码系统40从其预测值中减去每个像素值(44)。视频编码器使用线性运算对差(即,残差)的块进行数字变换(块变换46)。在图2的示例中,r表示残差数据,Ttr表示变换后的残差数据,t表示对残差应用了哪个变换以生成Ttr的指示。
线性变换可以通过矩阵向量乘法来实施,但是视频编译码应用一直在使用一些特殊的快速变换,这些变换具有从三角函数导出的固定系数,可以比等效的矩阵向量乘积更高效地计算这些系数。然而,在本公开的上下文中,重要的是注意到计算效率的概念随着新硬件技术的出现而改变。例如,在一些应用中,减少计算延迟可能比减少作为计算复杂度的常规度量的算术运算的数量更重要。
在图2中,视频编码器可以量化变换后的残差数据(量化48),并且对量化的变换后的残差数据进行逆量化(逆量化50)。视频编码器可以将逆变换应用于逆量化的变换后的残差数据(逆变换52)以恢复残差数据。视频编码器的帧缓冲器54,也称为解码画面缓冲器(decoded picture buffer,DPB),存储基于残差数据确定的重构像素块。视频编码器可以使用存储在帧缓冲器54中的重构像素块来预测其他像素块(块预测56)。在图2的示例中,视频编码器应用于变换后的残差数据的逆变换可以基于先前被应用来生成变换后的残差数据的变换来确定。可以向视频编码器的熵编码单元58提供哪个变换被应用来生成变换后的残差数据的指示。熵编码单元58可以对指示变换的语法元素连同指示量化的变换后的残差数据的语法元素进行熵编码。
较旧的视频编译码标准仅使用一种类型的块变换。为了改进压缩,更新的标准越来越多地使用多变换。这在图2的图中由将块变换46连接到熵编码58和变换组(transformbank)47的虚线表示,变换组47表示编码器用来向解码器传达在解码期间要应用哪个逆变换的边信息。
为了降低计算复杂度,块变换通常以可分离的方式计算,即样点(例如,亮度样点和色度样点)的水平线和垂直线被独立地变换,如图3A和图3B所示。在自适应变换方案中,在变换方向通道(pass)期间,用于选择不同变换的两个可能的选择可以包括在水平方向和垂直方向上完成的一组变换(分别是水平和垂直变换通道)。
图3A和图3B示出了用于对二维视频残差块应用变换的示例选项。图3A是示出用于计算二维像素残差块中的可分离变换的示例选项的概念图。图3B是示出用于计算二维像素残差块中的不可分离变换的示例选项的概念图。
在称为可分离变换的第一选项(例如,图3A)中,残差被分别变换,首先在行中变换,然后在列中变换(反之亦然),如图3A中的箭头所示。更具体地,对于WxH输入块60的每个相应行,视频编码器/解码器(一般称为视频编译码器)通过将由相应行的元素构成的向量乘以WxH变换矩阵来产生中间块62的行。对于中间块62的每个相应列,视频编译码器通过将由相应列的元素构成的向量乘以WxH变换矩阵来产生输出块的一列。为了降低计算复杂度,通常以可分离方式计算块变换,即独立地变换水平线和垂直线,如图3A所示。
在被称为不可分离变换的第二种类型的块变换(例如,图3B)中,所有残差被放在一起成为单个向量,如图3B所示,并且被一起变换。该选项不利用二维像素块结构,但是该选项更通用和强大,并且可以利用不同于水平和垂直的方向特征。例如,对于由WxH个值组成的输入块64,变换矩阵为W2xH2。为了确定输出块或向量66,视频编译码器将输入块64乘以变换矩阵。
在一些示例视频编译码标准中,使用了可分离的固定通道。此外,相同的变换用于水平和垂直变换通道两者。在ITU-T SG 16WP 3和ISO/IEC JTC 1/SC 29/WG 11、JEM软件的联合视频专家小组(JVET)的JEM中采用了每个通道有不同变换的可分离的固定通道。测试已经表明,通过可分离的可变通道可以获得更好的压缩。然而,对于可分离的可变通道,编译码处理可能具有更大的计算复杂度。
为了最小化计算复杂度,一些示例视频编译码标准仅使用一种块大小和一种类型的可分离变换(DCT)。随着最近HEVC的采用,为几种块大小定义可分离变换,并且已经采用了离散正弦变换(DST)。
用N维向量x和y分别表示变换的输入和输出向量,任何N维的线性变换都可以表示为
y=Tx,
其中T是N×N变换矩阵。除非另有说明,在本公开中,符号N用于表示变换的维数。为了简化量化处理,变换矩阵通常由正交矩阵导出,即那些满足以下的矩阵:
T-1=Tt
在实践中,计算是通过正交变换的一种版本来完成的,该版本的正交变换已经被缩放并且其元素被转换为整数。
有许多组正交变换可以用三角函数来定义,但有一组在证明三角函数对媒体压缩有用之后变得更广为人知。这些离散三角变换(DTT)是不同类型的离散余弦变换(DCT)和离散正弦变换(DST),并且这两种类型都被转换编号为1到8之间。可以使用两个缩放函数来构造变换:
Figure BDA0002700728770000191
Figure BDA0002700728770000201
使用这些缩放函数,定义离散余弦变换的矩阵是:
DCT-1:
Figure BDA0002700728770000202
DCT-2:
Figure BDA0002700728770000203
DCT-3:
Figure BDA0002700728770000204
DCT-4:
Figure BDA0002700728770000205
DCT-5:
Figure BDA0002700728770000206
DCT-6:
Figure BDA0002700728770000207
DCT-7:
Figure BDA0002700728770000211
DCT-8:
Figure BDA0002700728770000212
使用与用于DCT定义相同的缩放函数bN(n),离散正弦变换的矩阵定义为:
DST-1:
Figure BDA0002700728770000213
DST-2:
Figure BDA0002700728770000214
DST-3:
Figure BDA0002700728770000215
DST-4:
Figure BDA0002700728770000216
DST-5:
Figure BDA0002700728770000217
DST-6:
Figure BDA0002700728770000218
DST-7:
Figure BDA0002700728770000221
DST-8:
Figure BDA0002700728770000222
连接上面列出的十六种离散三角变换有许多数学属性。给定变换矩阵T,最重要的关系中的一些由矩阵转置来定义,矩阵转置对应于逆变换。这是因为所有的离散三角变换都被定义为正交的。FTS和STF的“反射”运算示出了DTT矩阵的正交性质,其中F和S是由下式定义的正交对合矩阵:
Figure BDA0002700728770000223
Figure BDA0002700728770000224
表I包含这些关系的列表。
T T<sup>t</sup> FTS STF FT<sup>t</sup>S ST<sup>t</sup>F
T<sup>(C1)</sup> T<sup>(C1)</sup> T<sup>(C1)</sup> T<sup>(C1)</sup> T<sup>(C1)</sup> T<sup>(C1)</sup>
T<sup>(C2)</sup> T<sup>(C3)</sup> T<sup>(S2)</sup> T<sup>(C2)</sup> T<sup>(C3)</sup> T<sup>(S3)</sup>
T<sup>(C3)</sup> T<sup>(C2)</sup> T<sup>(C3)</sup> T<sup>(S3)</sup> T<sup>(S2)</sup> T<sup>(C2)</sup>
T<sup>(C4)</sup> T<sup>(C4)</sup> T<sup>(S4)</sup> T<sup>(S4)</sup> T<sup>(S4)</sup> T<sup>(S4)</sup>
T<sup>(C5)</sup> T<sup>(C5)</sup> T<sup>(C7)</sup> T<sup>(C6)</sup> T<sup>(C7)</sup> T<sup>(C6)</sup>
T<sup>(C6)</sup> T<sup>(C7)</sup> T<sup>(S8)</sup> T<sup>(C5)</sup> T<sup>(C5)</sup> T<sup>(S8)</sup>
T<sup>(C7)</sup> T<sup>(C6)</sup> T<sup>(C5)</sup> T<sup>(S8)</sup> T<sup>(S8)</sup> T<sup>(C5)</sup>
T<sup>(C8)</sup> T<sup>(C8)</sup> T<sup>(S6)</sup> T<sup>(S7)</sup> T<sup>(S6)</sup> T<sup>(S7)</sup>
T<sup>(S1)</sup> T<sup>(S1)</sup> T<sup>(S1)</sup> T<sup>(S1)</sup> T<sup>(S1)</sup> T<sup>(S1)</sup>
T<sup>(S2)</sup> T<sup>(S3)</sup> T<sup>(C2)</sup> T<sup>(S2)</sup> T<sup>(S3)</sup> T<sup>(C3)</sup>
T<sup>(S3)</sup> T<sup>(S2)</sup> T<sup>(S3)</sup> T<sup>(C3)</sup> T<sup>(C2)</sup> T<sup>(S2)</sup>
T<sup>(S4)</sup> T<sup>(S4)</sup> T<sup>(C4)</sup> T<sup>(C4)</sup> T<sup>(C4)</sup> T<sup>(C4)</sup>
T<sup>(S5)</sup> T<sup>(S5)</sup> T<sup>(S7)</sup> T<sup>(S6)</sup> T<sup>(S7)</sup> T<sup>(S6)</sup>
T<sup>(S6)</sup> T<sup>(S7)</sup> T<sup>(C8)</sup> T<sup>(S5)</sup> T<sup>(S5)</sup> T<sup>(C8)</sup>
T<sup>(S7)</sup> T<sup>(S6)</sup> T<sup>(S5)</sup> T<sup>(C8)</sup> T<sup>(C8)</sup> T<sup>(S5)</sup>
T<sup>(S8)</sup> T<sup>(S8)</sup> T<sup>(C6)</sup> T<sup>(C7)</sup> T<sup>(C6)</sup> T<sup>(C7)</sup>
表I:由转置和反射变换定义的离散三角变换之间的关系。T(Ci)和T(Sj)分别表示DCT-i和DST-j。
转置和反射变换(或变换转换)在实践中是有用的,因为变换表示可以用几乎可以忽略的额外计算复杂度和存储来实施的操作,因此由那些变换获得的所有变换实践上具有相同的计算复杂度。
例如,有几种方法可以高效地计算DCT-2。由于变换DCT-3、DST-2和DST-3都可以通过那些转置和反射变换转换成DCT-2(参见表I),所以这些变换中的每一个都可以使用同等高效的方法来高效地计算。本文描述的技术利用了这一事实。
在一些实例中,诸如图4A的一般情况68A示例,单个变换矩阵,诸如DTT变换中的任何一个,可以应用于视频数据(例如,解码处理中的变换系数或编码处理的残差)。
由于线性变换可以表示为矩阵向量乘积,因此离散三角变换的最大计算复杂度(每次计算的运算次数和用于其表示的存储器)与N2成比例。
由于它们与离散傅里叶变换(DFT)类似,所以那些变换可以使用快速傅里叶变换(FFT)算法来高效地计算,其复杂度与N×F成比例,其中F取决于N或N-1的素因子分解。例如,如果N=2K,那么F=K,并且复杂度与Nlog2N成比例,这通常比N2低得多。由于对于不同的N值,复杂度可能有很大的不同,所以在压缩应用中通常选择N=2K的情况。
对于使用其特定属性的DTT,已经提出了几种可替换的快速方法,但是这些替换方法在复杂度方面也有很大的差异,因为如表II所示,定义复杂度的因子并不是对于所有DTT都等于N。
DTT DCT-1 DCT-2 DCT-3 DCT-4 DCT-5 DCT-6 DCT-7 DCT-8
DFT因子 N–1 N N N 2N–1 2N–1 2N–1 2N+1
DTT DST-1 DST-2 DST-3 DST-4 DST-5 DST-6 DST-7 DST-8
DFT因子 N+1 N N N 2N+1 2N+1 2N+1 2N–1
表II:定义离散三角变换的复杂度的因子。
几种高效的变换计算算法是基于将变换矩阵分解成稀疏因子。本文描述的技术的焦点是基于对这个事实的采用,即当N为偶数时,DCT-1、DCT-2、DST-1和DCT-2的矩阵具有偶数行,其元素具有偶数对称性,奇数行含有具有奇数对称性的元素。
那些对称性允许使用图4B所示的方案68B以大约一半的复杂度来计算变换,其中A和B是预处理/后处理低复杂度变换,而R和S是N/2×N/2矩阵。
一些DTT的一个特征是这种分解能够进一步降低复杂度。例如,对于DCT-2,矩阵R对应于维数为N/2的DCT-2。因此,细分处理可以以递归方式继续,进一步降低了计算复杂度。此外,矩阵S对应于维数为N/2的DCT-4,其可以被高效地计算。通过简单地改变矩阵A和B,可以从DCT-2计算DST-2。可以使用类似的处理从DCT-2计算DCT-3和DST-3,矩阵R用其转置替换,并且还改变矩阵A和B。
为了简化这种表示,那些特征可能没有被明确提及,但是那些特征应该在图4B和涉及“快速三角变换”的其他类似的图中被隐含地考虑。
在ITU/MPEG JVET标准化的JEM(联合实验模型)的一个示例中使用的自适应多变换(Adaptive Multiple Transform,AMT)采用三角变换。AMT编译码方法采用以下三角变换:DCT-2(仅编码器)、DCT-3(仅解码器,是DCT-2的逆)、DCT-5、DCT-8、DST-1、DST-6(仅解码器,是DST-7的逆)和DST-7(仅编码器)。
当N≤8时,当前的计算资源可能能够处理多个变换,但是越来越大的块正被用于视频编译码。新标准可能要求对等于64,甚至可能高达128的块维数进行变换。
对于定制的硬件实施方式,具有不同形式的复杂度降低技术的变换可能需要针对每种情况进行单独的硬件设计。硬件和开发成本也很大程度上取决于最复杂的情况(即最坏的情形),而不是平均复杂度。通过实现单一的优化的实施方式,为变换计算提供统一的方法是有利的。
针对JEM的一些提议的AMT方法违反了所有上述要求,因为一些示例AMT方法具有不同的变换,这些变换具有非常不同的最小计算要求。用于最小化计算复杂度的方法在变换之间是不同的,甚至对于相同的变换,针对不同的变换维数也是不同的。对于一些变换和维数,没有已知的高效的计算方法(比直接的矩阵向量计算更好)。最后一个问题对于更大的变换维数尤其显著,使得在大的块中使用这些变换非常昂贵。
AMT方法族的一个难点是AMT方法应该解决两个冲突的目标。需要各种变换来提高压缩效率。例如,使用Karhunen-Loève变换(KLT)可以获得更高的多样性和更好的结果,但是没有方法可以显著降低一般变换的计算复杂度。能够以最小计算复杂度计算的DTT不能提供实现最大编译码增益所需的多样性。考虑到至少它们中的一些可以用比N2更小的复杂度来计算,所以采用了附加的DTT。
本公开的技术可以提供由多个DTT提供的相同或几乎相同水平的多样性,但是计算复杂度与最高效的DTT相当(对于所有变换类型和维数)。这些技术基于这样的认识,即提供更多的多样性和最小化计算复杂度所需的属性并不相互排斥。这是因为编译码增益主要由变换矩阵的第一行定义,它应该类似于KLT矩阵的第一行,而其他行不太重要。从数学上讲,这意味着,如果已经存在可以以低复杂度计算的变换,则可以在低维度的子空间中进行某种形式的低复杂度“调整”,以获得改善压缩所需的各种变换。
图5A和图5B是示出根据本文描述的一种或多种技术的示例低复杂度变换调整阶段的概念图。图5A示出了一般方法70A,其中由P和Q表示的可选预处理和后处理阶段“调整”由矩阵T定义的变换,该矩阵T可以以低复杂度计算。这种方法需要定义前处理阶段P和后处理阶段Q,它们被称为低复杂度变换调整阶段(Low-Complexity Transform AdjustmentStage,LCTAS),也可以以低复杂度计算。以下章节定义了满足这些要求的矩阵族。图5B中示出了快速三角变换示例70B。
一个发现是,调整阶段可能与近似其他变换相关,但是调整阶段可能不适合通常所知的近似。例如,为了确定能够使用DST-3近似DST-7的压缩性能的调整阶段,创建了将DST-3“调整”为更类似于DST-7的变换。然而,并不是变换矩阵中的所有行都需要等同的类似。
图6A和图6B示出了针对维数N=16的变换,这个示例的实际结果。图6A示出了曲线图72A-72P,其中矩阵的行对应于每个变换(DST-7、调整后的、和DST-3)。为了更容易识别近似误差,图6B示出了矩阵差的图74A-74P,其中可以观察到,对应于最重要的变换分量的第一行比最后一行被更好地近似。
图7A和图7B是示出根据本文描述的一种或多种技术的示例带状对角稀疏正交矩阵和块状对角稀疏正交矩阵的概念图76A和图76B。如果已知矩阵是稀疏的(即,当矩阵的大多数项为零时),则可以以相对低的复杂度计算矩阵向量乘积。一般来说,可以使用任何处理稀疏矩阵的技术。然而,对于变换矩阵不是很大并且计算成本很高的视频编译码应用,最好使用具有预定义稀疏图案的矩阵。这避免了用于表示稀疏图案的额外存储器,并且需要更简单的定制硬件设计。
两种有用类型的稀疏变换是带状矩阵,其仅在主对角线周围具有非零元素,如图7A和图7B的示例所示。对于这些情况,矩阵向量乘积的计算复杂度是N×B,其中B是矩阵带宽(matrix band width),即每行非零元素的数量的上限。图7A和图7B中的示例是用带宽等于4的矩阵获得的。变换矩阵的带状结构很容易解释,但是就计算复杂度而言,非零元素的数量明显小于N2的任何矩阵都以固定且容易的方式实施可以用于预处理/后处理的图案。
图8是表示根据本文描述的一种或多种技术的Givens正交变换的概念“蝴蝶”图。变换计算也可以使用已经被分解成并行的Givens旋转的集合的矩阵来最小化。这些成对变换具有图8所示的结构,因此通常称为计算“蝴蝶”。
因此,在图8的示例中,蝴蝶接收rn和rm作为输入,并且还接收参数θ作为输入。蝴蝶的输出是tn和tm。tm计算为cos(θ)rm–sin(θ)rn。tn计算为cos(θ)rn+sin(θ)rm。当应用逆变换时,视频解码器30可以将rm计算为tmcos(θ)+tnsin(θ)并且将rn计算为-tmsin(θ)+tncos(θ)。尽管图8和本公开的其他示例是关于Givens旋转描述的,但是可以使用其他变换来代替Givens旋转,例如Householder变换、具有3个或更多角度的Euler旋转以及其他变换。
图9是表示根据本文描述的一种或多种技术的由用于变换调整的并行Givens旋转组成的示例结构的概念图。在维数为N的变换中,最多可以并行计算N/2个旋转,形成并行的Givens通道。图9示出了维数为N=16的变换的示例,使用四个这样的通道来实施。图9上的配置对应于带状矩阵,其中带宽等于两倍的通道数量。与稀疏矩阵的情况类似,使用明显小于N2个旋转(蝴蝶)数量的任何实施方式都可以用于调整。
图10A和图10B是根据本文描述的一种或多种技术的表示仅用DCT-2变换族和低复杂度自适应状态来替换多个离散三角变换的示例的概念图78A和78B。其应用的一个更具体的示例是其用于消除AMT视频编译码方法中更高复杂度的变换。为此,使用DCT-2、DCT-3、DST-2和DST-3是有利的,因为这些特定的DTT函数对应于相同类型的变换(参见表I),这是研究最广泛的并且具有低复杂度的实施方式。此外,从表II中可以看出,它们的复杂度因子与用于视频编译码的维数非常匹配。
实验结果表明,仅使用预处理调整阶段(例如,不需要图5A和图5B中的后调整矩阵Q),所有剩余的DTT可以用那些变换之一来替换。下面的表III示出了应该使用哪种变换(即需要调整的“基”变换)。图10A和图10B示出了本文描述的技术如何能够被用来替换AMT编译码方法中的多个DTT,仅使用DCT-2变换族加上作为正交带状矩阵的调整阶段。实验结果表明,当调整矩阵P的每一行中的非零元素的数量上限为4时,本文描述的技术具有非常小的损失。
DTT DCT-1 DCT-4 DCT-5 DCT-6 DCT-7 DCT-8
DCT-2 DCT-3 DCT-2 DCT-2 DCT-3 DCT-3
DTT DST-1 DST-4 DST-5 DST-6 DST-7 DST-8
DST-2 DST-3 DST-2 DST-2 DST-3 DST-3
表III:从DCT-2、DCT-3、DST-2和DST-3中选择的基变换,可用于替换其他离散三角变换。
图11中示出了用于实施可分离变换的系统,诸如视频编码器20的视频编码器可以操作该系统。视频编码器20可以在编码处理期间使用图11所示的各种组件,组件块预测单元80、残差缓冲器82、水平变换单元84、变换存储器86、变换选择88、垂直变换单元90以及量化和编码单元92。为了比较不同的变换方案,可以考虑每个变换的计算复杂度。变换的计算复杂度可以取决于:(1)每当计算变换(如图11中的线77和79所示)时,可以访问和复制的包含变换参数的存储量;和/或(2)计算每个变换所需的运算数量,通常以每像素的运算来归一化。
这些复杂度度量取决于所采用的变换类型和方向通道的类型。表IV示出了不同情况的比较。前两行对应于一组四个离散余弦和正弦变换(DCT、DST),包含DCT-2和DCT-3,以及DST-2和DST-3。这个组可以被称为DCT-2“族”(因为每个变换都可以用基本上相同的算法来计算复杂度降低),并将其表示为DCT-2F。
Figure BDA0002700728770000281
表IV:对于维数为N的一组L个变换,基于变换类型和方向通道类型的不同可分离变换计算的计算复杂度,并且B作为LCTAS方法中使用的稀疏矩阵的带宽。
接下来的两行表示使用矩阵向量乘积直接计算的变换。由于DCT-2F变换的局限性,这种方法已用于自适应变换方法,既用于固定方向的通道,也用于自适应方向的通道。如表IV所示,以前只有两个冲突的选项:
(1)DCT-F2变换:计算效率高,但多样性非常有限,这强烈限制了编译码增益。
(2)基于矩阵的变换:可以表示任何类型的线性变换,因此可以导致显著的编译码增益,但是计算复杂度随着块维数而快速增长。
如下一节所示,本公开的技术可以极大地减少这种折衷,允许一组更灵活的变换,其复杂度略大于DCT-2F。
上述用于低复杂度变换调整阶段(LCTAS)的技术使得视频编译码系统10能够采用自适应变换编译码,其中DCT-2族的变换之一被用于大多数变换计算,同时能够实现更好压缩的多样性被低复杂度计算(其可以称为变换调整阶段)提供。
在下面的讨论中,请注意,就算术运算和用于存储调整阶段的参数的存储二者而言,调整阶段的复杂度都是低的。LCTAS在可分离变换用例中特别有用的一个属性是调整阶段可以使用变换的相同的DCT-2族。调整阶段可以使用相同的参数集合,因此,只需要复杂度非常低的一些修正(例如,很少的算术运算,并且没有附加的参数)。
本公开的技术基于这样的认识,即提供更多的多样性和最小化计算复杂度所需的属性并不相互排斥。这是因为编译码增益主要由变换矩阵的第一行定义,其应该与KLT矩阵的第一行类似。变换矩阵的其他行在提供编译码增益方面不太重要。
从数学上来说,这意味着,如果可以以低复杂度计算变换,则视频编码器20和视频解码器30可以在低维度的子空间中配置有某种形式的低复杂度“调整”,以获得各种变换,这然后可以改善压缩。如上面的表IV所示,假设带宽值B与N相比相对较小(这通常成立,因为矩阵是稀疏的),则本公开的LCTAS技术的复杂度几乎与DCT-2F相同,同时提供更大的灵活性。因此,这些技术可以改善诸如视频编码器和解码器等计算设备的功能。
图12示出本发明的实施方式的示意图。在一个示例中,视频编码器20和视频解码器30可以被配置成使用DCT-2族的变换之一来执行主要计算。例如,视频编码器20可以在编码处理期间使用图12所示的各种组件,这些组件包括块预测单元94、残差缓冲器96、水平变换调整单元98、水平DCT-2F变换单元100、垂直变换调整单元102、变换存储器104、变换选择106、垂直DCT-2F变换单元108以及量化和编码单元110。如图12中的虚线81和83所示,单个信号(例如,使用2个比特)可用于选择使用哪种形式的DCT-2F,而如线85和87所示,仅需要从变换存储器复制调整阶段的参数。
该方案的复杂度在上面表IV的最后两行中示出,其中与全矩阵方案相比,本公开的LCTAS技术提供了多样性,同时存储器访问显著减少。
本公开的技术可以以几种方式实施。图13A和图13B示出了16×8块中的可分离变换的水平通道的示例,示出了不同变换调整阶段如何被分配给块线的变化。例如,图13A示出了对块中变换的每条线使用不同调整的示例。图13B示出了使用相同调整的线对,并因此将存储器访问减少一半。可以采用更通用的方案,其中针对不同的情形定义调整的数量。
例如,编码树单元可以包括八行编码单元和八列编码单元(总共六十四个编码单元)。在一些示例中,编码树单元中的每个编码单元都经历相同的变换处理。在其他示例中,编码单元中的每行都可以经历相同的变换处理,但是对每行和每列应用不同的预调整和/或后调整操作(即,多达16种不同的变换处理和调整的组合),以在存储器中存储更多数据为代价来在解码之后产生更高质量的视频数据。在其他示例中,每个列对和行对可以经历不同的预调整和/或后调整操作,以提供中等水平的质量/存储器折衷。
图14是示出可以实施本公开的技术的示例视频编码器20的框图。图11是出于解释的目的而提供的,并且不应被认为是对本公开中广泛示例和描述的技术的限制。本公开的技术可以适用于各种编译码标准或方法。
处理电路包括视频编码器20,并且视频编码器20被配置成执行本公开中描述的一个或多个示例技术。例如,视频编码器20包括集成电路,并且图11所示的各种单元可以形成为与电路总线互连的硬件电路块。这些硬件电路块可以是单独的电路块,或者单元中的两个或更多个可以组合成公共硬件电路块。硬件电路块可以形成为电子组件的组合,这些电子组件形成运算块,诸如算术逻辑单元(arithmetic logic unit,ALU)、基本功能单元(elementary function unit,EFU)以及逻辑块,诸如与(AND)、或(OR)、与非(NAND)、或非(NOR)、异或(XOR)、异或非(XNOR)和其它类似的逻辑块。
在一些示例中,图14所示的单元中的一个或多个可以是在处理电路上执行的软件单元。在这种示例中,这些软件单元的目标代码被存储在存储器中。操作系统可以使视频编码器20取得目标代码并执行该目标代码,这使得视频编码器20执行操作来实施示例技术。在一些示例中,软件单元可以是视频编码器20在启动时执行的固件。因此,视频编码器20是具有执行示例技术的硬件的结构组件或者具有在硬件上执行以使硬件专用于执行示例技术的软件/固件。
在图14的示例中,视频编码器20包括模式选择单元240、残差生成单元250、变换处理单元252、量化单元254、逆量化单元258、逆变换处理单元260、重构单元262、滤波器单元114、参考画面存储器264和熵编码单元256。模式选择单元240包括运动估计单元242、运动补偿单元244、分割单元248和帧内预测单元246。
视频数据存储器238可以被配置成存储要由视频编码器20的组件编码的视频数据。存储在视频数据存储器238中的视频数据可以例如从视频源18获得。参考画面存储器264也可以被称为解码画面缓冲器。参考画面存储器264存储参考视频数据,以用于由视频编码器20对视频数据编码,例如,以帧内或帧间编码模式编码。视频数据存储器238和参考画面存储器264可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其他类型的存储器设备。视频数据存储器238和参考画面存储器264可以由同一的存储设备或分离的存储设备提供。在各种示例中,视频数据存储器238可以与视频编码器20的其他组件一起在芯片上,或者相对于这些组件在芯片外。视频数据存储器238可以与图1的存储介质19相同或者是其一部分。
视频编码器20接收视频数据。视频编码器20可以对视频数据的画面的切片中的每个CTU编码。CTU中的每个可以与等同大小的亮度编码树块(CTB)和画面的对应的CTB相关联。作为对CTU编码的一部分,模式选择单元240可以执行分割,以将CTU的CTB划分成逐渐变小的块。更小的块可以是CU的编码块。例如,模式选择单元240可以根据树结构分割与CTU相关联的CTB。
视频编码器20可以对CTU的CU编码,以生成CU的编码表示(即,编码的CU)。作为对CU编码的一部分,分割单元248可以在CU的一个或多个PU中分割与CU相关联的编码块。因此,每个PU可以与亮度预测块和对应的色度预测块相关联。视频编码器20和视频解码器30可以支持各种大小的PU。如上所述,CU的大小可以指CU的亮度编码块的大小,PU的大小可以指PU的亮度预测块的大小。假设特定CU的大小为2Nx2N,则视频编码器20和视频解码器30可支持2Nx2N或NxN的PU大小以用于帧内预测,以及支持2Nx2N、2NxN、Nx2N、NxN或类似的对称的PU大小以用于帧间预测。视频编码器20和视频解码器30还可以支持2NxnU、2NxnD、nLx2N和nRx2N的PU大小的非对称分割以用于帧间预测。
运动估计单元242和运动补偿单元244可以通过对CU的每个PU执行帧间预测来生成用于PU的预测数据。用于PU的预测数据可以包括PU的预测块和PU的运动信息。帧内预测单元246可以通过对PU执行帧内预测来生成用于PU的预测数据。用于PU的预测数据可以包括PU的预测块和各种语法元素。帧内预测单元246可以对I切片、P切片和B切片中的PU执行帧内预测。
为了对PU执行帧内预测,帧内预测单元246可以使用多个帧内预测模式来生成用于PU多组预测数据。帧内预测单元246可以使用来自相邻PU的样点块的样点来生成用于PU的预测块。假设PU、CU和CTU的从左到右、从上到下的编码顺序,则相邻PU可以位于PU的上方、右上方、左上方或者左方。帧内预测单元246可以使用各种数量的帧内预测模式,例如33种方向帧内预测模式。在一些示例中,帧内预测模式的数量可以取决于与PU相关联的区域的大小。
模式选择单元240可以从由运动估计单元242和运动补偿单元244生成的用于PU的预测数据或由帧内预测单元246生成的用于PU的预测数据中选择用于CU的PU的预测数据。在一些示例中,模式选择单元240基于预测数据集的率/失真度量来选择用于CU的PU的预测数据。所选择的预测数据的预测块在本文可以被称为所选择的预测块。
残差生成单元250可以基于CU的编码块(例如,亮度、Cb和Cr编码块)和CU的PU的预测块(例如,预测亮度、Cb和Cr块)来生成CU的残差块(例如,亮度、Cb和Cr残差块)。例如,残差生成单元250可以生成CU的残差块,使得残差块中的每个样点的值等于CU的编码块中的样点与CU的PU的对应的所选择的预测块中的对应样点之间的差。
变换处理单元252可以执行四叉树分割,以将与CU相关联的残差块分割成与CU的TU相关联的变换块。因此,TU可以与亮度变换块和两个色度变换块相关联。CU的TU的亮度和色度变换块的大小和位置可以基于也可以不基于该CU的PU的预测块的大小和位置。被称为“残差四叉树”(residual quad-tree,RQT)的四叉树结构可以包括与区域中的每一个相关联的节点。CU的TU可以对应于RQT的叶节点。
变换处理单元252可以通过将一个或多个变换应用到TU的变换块来为该CU的每个TU生成变换系数块。变换处理单元252可以将各种变换应用于与TU相关联的变换块。例如,变换处理单元252可以对变换块应用离散余弦变换(DCT)、方向变换或概念上类似的变换。在一些示例中,变换处理单元252不对变换块应用变换。在这种示例中,变换块可以被视为变换系数块。
根据本公开的技术,变换处理单元252可以实施在本公开别处描述的技术。例如,在残差生成单元250对第一视频数据块执行第一预测处理以产生第一残差之后,变换处理单元252可以针对第一残差确定多个变换处理中的第一变换处理将被应用于第一残差。变换处理单元252然后可以将第一变换处理应用于第一残差以生成第一视频数据块的第一变换系数。例如,在测试处理期间,变换处理单元可以确定DCT-2变换是要应用于第一残差的最佳变换处理,并且因此可以将DCT-2变换应用于第一残差。在一些实例中,第一变换处理是离散三角变换矩阵。在一些这种实例中,多个变换处理中的每个变换处理是离散三角变换矩阵。在一些实例中,第一变换处理是DCT-2矩阵、DCT-3矩阵、DST-2矩阵或DST-3矩阵中的一个。熵编码单元256可以对第一变换系数进行熵编码。
在残差生成单元250对第二视频数据块执行第二预测处理以产生第二残差之后,变换处理单元252可以确定第二变换处理将被应用于第二残差,其中第二变换处理是第一变换处理以及除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个。例如,如果针对第二残差测试了每个DTT,则变换处理单元252可以确定最佳变换处理是DCT-6变换处理。然而,使用本文描述的技术,可以通过应用具有预调整操作或后调整操作中的至少一个的DCT-2变换处理来紧密地近似DCT-6变换处理。因此,变换处理单元不是将DCT-6矩阵存储在存储器中并在测试阶段执行复杂的DCT-6变换,而是可以替代地测试DCT-2变换处理和预调整和/或后调整操作的组合来作为替换。如果DCT-6的这种近似是第二残差的最佳变换处理,则变换处理单元252可以选择这种组合作为第二变换处理。本质上,应用DCT-2变换处理和预调整和/或后调整操作而产生的第二变换系数将近似等于将DCT-6变换处理应用于第二残差而产生的变换系数。
在一些实例中,预调整操作或后调整操作中的至少一个和第一变换处理各自是相应的稀疏矩阵,如上所定义的。在一些示例中,第一变换处理的稀疏矩阵是带状对角矩阵。在其他示例中,第一变换处理的稀疏矩阵是块对角矩阵。在一些其他示例中,预调整操作或后调整操作中的至少一个是一个或多个Givens旋转的相应集合。
变换处理单元252可将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数。如果应用第一预调整操作,则变换处理单元252在应用第一变换处理之前应用第一预调整操作。如果应用第一后调整操作,则变换处理单元252在应用第一变换处理之后应用第一后调整操作。视频编码器20然后可以对第二变换系数编码,诸如通过对第一变换系数和第二变换系数进行熵编码。
为了描述上述测试处理的示例,在下面的描述中使用了通用块。当确定上述第一或第二变换处理将被应用时,变换处理单元252可以遵循类似的处理。在残差生成单元250预测视频数据块的残差之后。变换处理单元252可以从多个变换处理中确定变换处理的子集,该子集包括比多个变换处理更少的变换处理。变换处理的子集还包括第一变换处理。
变换处理单元252还可以确定调整操作的集合,其中每个调整操作包括要应用于被评估的残差的预调整操作或后调整操作中的至少一个。当结合变换处理的子集中的变换处理应用每个调整操作时,得到的变换系数近似等于将多个变换处理中的不被包括在变换处理的子集中的变换处理应用到被评估的残差而得到的变换系数。调整操作的集合中的每个调整操作都与变换处理的子集中的特定变换处理相关联。来自变换处理的子集的一些变换处理可以与多个调整操作相关联。
变换处理单元252可以确定变换处理的子集中的每个变换处理的率失真特性,以及每个调整操作的率失真特性和调整操作的相关联的变换处理。基于这些确定的率失真特性,变换处理单元252可以从变换处理的子集中选择变换处理、或从调整操作的集合中选择调整操作以及从变换处理的子集中选择与所选择的调整操作相关联的变换处理,作为完整的变换处理以应用于被评估的残差。变换处理单元252可以将该完整的变换处理应用于被评估的残差,以生成该视频数据块的变换系数,并对所述变换系数编码。
在一些示例中,变换处理可以被实施为可分离的固定通道,这意味着在所有一维的变换期间应用相同的变换,尽管变换可以在垂直和水平通道之间变化。在这样的示例中,第一块可以是第一编码树单元,第二块可以是不同的第二编码树单元。
在其他示例中,变换处理可以被实施为可分离的可变通道,其中单个编码树单元内的编码单元的每行(对于水平通道)或每列(对于垂直通道)、或者行对或列对可以使用不同的变换。在这样的示例中,第一块可以是编码树单元的第一行或列中的第一编码单元,第二块可以是同一编码树单元的不同行或列中的第二编码单元。在行/列对使用相同变换处理的示例中,残差生成单元250可以对编码树单元的第三编码单元执行第三预测处理以产生第三残差,其中第三编码单元在编码树单元的第三行中,并且其中第二行和第三行是连续的行。因此,变换处理单元252可以确定第二变换处理将被应用于第三残差,并且将第二变换处理应用于第三残差以生成第三编码单元的第三变换系数。变换处理单元252然后可以对第三变换系数编码。
量化单元254可以量化系数块中的变换系数。量化处理可以减少与变换系数中的一些或全部相关联的比特深度。例如,在量化期间,n比特的变换系数可以下舍入(rounddown)成m比特的变换系数,其中,n大于m。量化单元254可以基于与CU相关联的量化参数(QP)值来量化与CU的TU相关联的系数块。视频编码器20可以通过调整与CU相关联的QP值来调整应用于与CU相关联的系数块的量化程度。量化可能会导致信息丢失。因此,量化的变换系数可能具有比原始系数更低的精度。
逆量化单元258和逆变换处理单元260可以分别对系数块应用逆量化和逆变换以从系数块重构残差块。逆量化可以恢复变换系数的比特深度。重构单元262可以将重构的残差块添加到由模式选择单元240生成的一个或多个预测块的对应样点中以产生与TU相关联的重构变换块。通过以这种方式重构CU的每个TU的变换块,视频编码器20可以重构CU的编码块。
滤波器单元114可以执行一个或多个去块(deblock)操作以减少与CU相关联的编码块中的块效应(blocking artifacts)。在滤波器单元114对重构的编码块执行一个或多个去块操作之后,参考画面存储器264可以存储重构的编码块。运动估计单元242和运动补偿单元244可以使用包含重构的编码块的参考画面来对其他画面的PU执行帧间预测。此外,帧内预测单元246可以使用参考画面存储器264中的重构的编码块来对与CU相同的画面中的其他PU执行帧内预测。
熵编码单元256可以从视频编码器20的其他功能组件接收数据。例如,熵编码单元256可以从量化单元254接收系数块,并且可以从模式选择单元240接收语法元素。熵编码单元256可以对数据执行一个或多个熵编码操作以生成熵编码的数据。例如,熵编码单元256可以对数据执行CABAC操作、上下文自适应可变长度编码(context-adaptive variablelength coding,CAVLC)操作、可变到可变(variable-to-variable,V2V)长度编码操作、基于语法的上下文自适应二进制算术编码(syntax-based context-adaptive binaryarithmetic coding,SBAC)操作、概率区间划分熵(Probability Interval PartitioningEntropy,PIPE)编码操作、指数-哥伦布(Exponential-Golomb)编码操作或其他类型的熵编码操作。视频编码器20可以输出包括由熵编码单元256生成的熵编码数据的比特流。例如,比特流可以包括表示CU的RQT的数据。
图15是示出被配置成实施本公开的技术的示例视频解码器30的框图。图15是出于解释的目的而提供的,并不限制本公开中广泛示例和描述的技术。出于解释的目的,本公开在HEVC编译码的背景下描述视频解码器30。然而,本公开的技术可以适用于其他编译码标准或方法。
处理电路包括视频解码器30,并且视频解码器30被配置成执行本公开中描述的示例技术中的一个或多个。例如,视频解码器30包括集成电路,并且图15所示的各种单元可以形成为与电路总线互连的硬件电路块。这些硬件电路块可以是单独的电路块,或者单元中的两个或更多个可以组合成公共硬件电路块。硬件电路块可以形成为电子组件的组合,这些电子组件形成运算块,诸如算术逻辑单元(arithmetic logic unit,ALU)、基本功能单元(elementary function unit,EFU)以及逻辑块,诸如与(AND)、或(OR)、与非(NAND)、或非(NOR)、异或(XOR)、异或非(XNOR)和其它类似的逻辑块。
在一些示例中,图15所示的单元中的一个或多个可以是在处理电路上执行的软件单元。在这样的示例中,这些软件单元的目标代码被存储在存储器中。操作系统可以使视频解码器30取得目标代码并执行目标代码,这使得视频解码器30执行操作来实施示例技术。在一些示例中,软件单元可以是视频解码器30在启动时执行的固件。因此,视频解码器30是具有执行示例技术的硬件的结构组件或者具有在硬件上执行以使硬件专用于执行示例技术的软件/固件。
在图15的示例中,视频解码器30包括熵解码单元270、视频数据存储器268、预测处理单元271、逆量化单元276、逆变换单元278、重构单元280、滤波器单元281和参考画面存储器282。预测处理单元271包括运动补偿单元272和帧内预测处理单元274。在其他示例中,视频解码器30可以包括更多、更少或不同的功能组件。
视频数据存储器268可以存储要由视频解码器30的组件解码的编码的视频数据,诸如编码的视频比特流。存储在视频数据存储器268中的视频数据可以例如从计算机可读介质16获得,例如,经由视频数据的有线或无线网络通信,或者通过访问物理数据存储介质,从诸如相机的本地视频源获得。视频数据存储器268可以形成编码画面缓冲器(codedpicture buffer,CPB),其存储来自编码的视频比特流的编码的视频数据。参考画面存储器282也可以被称为参考画面存储器。参考画面存储器282存储参考视频数据,用于由视频解码器30对视频数据解码时使用(例如,在帧内编码模式或帧间编码模式下)或者用于输出。视频数据存储器268和参考画面存储器282可以由各种存储器设备中的任何一种形成,诸如动态随机存取存储器(DRAM),包括同步DRAM(SDRAM)、磁阻RAM(MRAM)、电阻RAM(RRAM)或其他类型的存储器设备。视频数据存储器268和参考画面存储器282可以由同一的存储设备或分离的存储设备提供。在各种示例中,视频数据存储器268可以与视频解码器30的其他组件一起在芯片上,或者相对于那些组件在芯片外。视频数据存储器268可以与图1的存储介质28相同或者是其一部分。
视频数据存储器268接收并存储比特流的编码视频数据(例如,NAL单元)。熵解码单元270可以从视频数据存储器268接收编码的视频数据(例如,NAL单元),并且可以解析NAL单元以获得语法元素。熵解码单元270可以对NAL单元中的熵编码的语法元素进行熵解码。预测处理单元271、逆量化单元276、逆变换单元278、重构单元280和滤波器单元281可以基于从比特流提取的语法元素来生成解码的视频数据。熵解码单元270可以执行通常与熵编码单元256的处理相反的处理。
除了从比特流中获得语法元素之外,视频解码器30还可以对未分割的CU执行重构操作。为了对CU执行重构操作,视频解码器30可以对CU的每个TU执行重构操作。通过对CU的每个TU执行重构操作,视频解码器30可以重构CU的残差块。
作为对CU的TU执行重构操作的一部分,逆量化单元276可以逆量化(即,去量化)与TU相关联的系数块。在逆量化单元276逆量化系数块之后,逆变换单元278可以对系数块应用一个或多个逆变换以生成与TU相关联的残差块。例如,逆变换单元278可以对系数块应用逆DCT、逆整数变换、逆Karhunen-Loeve变换(KLT)、逆旋转变换、逆方向变换或其他逆变换。
根据本公开的技术,逆变换单元278可以实施本公开别处描述的技术。例如,对于第一视频数据块,逆变换单元278可以确定多个逆变换处理中的第一逆变换处理将被应用于该第一块。逆变换单元278然后可以将第一逆变换处理应用于第一块的第一变换系数以生成第一残差,并且对第一残差解码以产生第一解码块。在一些实例中,第一逆变换处理是离散三角变换矩阵。在一些这样的实例中,多个逆变换处理中的每个逆变换处理是离散三角逆变换矩阵。在一些实例中,第一逆变换处理是DCT-2矩阵、DCT-3矩阵、DST-2矩阵或DST-3矩阵之一。例如,第一逆变换处理可以是作为逆变换处理的DST-3矩阵。
对于第二视频数据块,逆变换单元278可以确定第二逆变换处理将被应用于该第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理。逆变换单元278可以将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差。如果应用预调整操作,则逆变换处理单元156在应用第一逆变换处理之前应用预调整操作。如果应用后调整操作,则逆变换处理单元156在应用第一逆变换处理之后应用后调整操作。视频解码器30可以对第二残差解码以产生第二解码块。视频解码器30然后可以至少部分地基于第一解码块和第二解码块来对视频数据解码。
本质上,第二残差近似等于通过将更复杂的变换处理应用于第二块的第二变换系数而得到的残差。在该示例中,DST-3逆变换处理与预调整或后调整处理中的至少一个相结合,可以产生近似等于应用DST-4逆变换处理所产生的残差的残差。
在一些实例中,如上所述,预调整操作或后调整操作中的至少一个和第一逆变换处理各自是相应的稀疏矩阵。在一些示例中,第一逆变换处理的稀疏矩阵是带状对角矩阵。在其他示例中,第一逆变换处理的稀疏矩阵是块对角矩阵。在一些示例中,预调整操作或后调整操作中的至少一个是一个或多个Givens旋转的相应集合。
在确定将哪个逆变换处理应用于第二变换系数时,逆变换单元278可以分析索引值。例如,逆变换单元278可以读取指示将哪个变换处理应用于第二变换系数的第一索引值,并且确定第一索引的值指示将第一逆变换应用于第二编码块。此外,逆变换处理单元157可以读取第二索引值,该第二索引值指示除了逆变换处理之外,预调整和/或后调整操作是否将被应用于第二编码块,并且逆变换处理单元157可以确定第二索引的值指示除了第一逆变换之外,预调整操作和后调整操作中的至少一个将被应用于第二块。
在一些示例中,变换处理可以被实施为可分离的固定通道,这意味着尽管变换可以在垂直和水平通道之间变化,在所有一维变换期间也应用相同的变换。在这样的示例中,第一块可以是第一编码树单元,第二块可以是不同的第二编码树单元。
在其他示例中,变换处理可以被实施为可分离的可变通道,其中单个编码树单元内的编码单元的每行(对于水平通道)或每列(对于垂直通道)、或者行对或列对可以使用不同的变换。在这样的示例中,第一块可以是编码树单元的第一行或列中的第一编码单元,第二块可以是同一编码树单元的不同行或列中的第二编码单元。在行/列对使用相同变换处理的示例中,逆变换单元278可以确定预调整操作或后调整操作中的至少一个和第一逆变换处理将被应用于第三编码单元,其中第三编码单元在与第二行连续的编码树单元的第三行中。逆变换单元278然后可以将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第三编码单元的第三变换系数以生成第三残差,对第三残差解码以产生第三解码的编码单元,并且至少部分地基于第三解码块来对视频数据解码。
如果使用帧内预测对PU编码,则帧内预测处理单元274可以执行帧内预测以生成PU的预测块。帧内预测处理单元274可以使用帧内预测模式来基于空间相邻块的样点生成PU的预测块。帧内预测处理单元274可以基于从比特流获得的一个或多个语法元素来确定PU的帧内预测模式。
如果使用帧间预测对PU编码,则熵解码单元270可以确定PU的运动信息。运动补偿单元272可以基于PU的运动信息来确定一个或多个参考块。运动补偿单元272可以基于一个或多个参考块来生成PU的预测块(例如,预测亮度、Cb和Cr块)。
重构单元280可以使用CU的TU的变换块(例如,亮度、Cb和Cr变换块)和CU的PU的预测块(例如,亮度、Cb和Cr块)(即,视情况而定的帧内预测数据或帧间预测数据)来重构CU的编码块(例如,亮度、Cb和Cr编码块)。例如,重构单元280可以将变换块(例如,亮度、Cb和Cr变换块)的样点添加到预测块(例如,亮度、Cb和Cr预测块)的对应样点以重构CU的编码块(例如,亮度、Cb和Cr编码块)。
滤波器单元281可以执行去块操作以减少与CU的编码块相关联的块效应。视频解码器30可以将CU的编码块存储在参考画面存储器282中。参考画面存储器282可以为随后的运动补偿、帧内预测和在显示设备(诸如图1的显示设备32)上的呈现提供参考画面。例如,视频解码器30可以基于参考画面存储器282中的块,对其他CU的PU执行帧内预测或帧间预测操作。
为了说明的目的,已经针对HEVC标准的扩展描述了本公开的某些方面。然而,本公开中描述的技术对其他视频编译码处理有用,包括尚未开发的其他标准或专有视频编译码处理。
如本公开中所描述的,视频编译码器可以指视频编码器或视频解码器。类似地,视频编译码单元可以指视频编码器或视频解码器。同样,视情况而定,视频编译码(videocoding)可指视频编码(video encoding)或视频解码。
图16是示出可以实施本公开中描述的技术的视频数据的第一示例解码的流程图。图13的示例技术可以由视频解码器30来执行。在图13的示例中,解码器(例如,视频解码器30)可以确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块(300)。视频解码器30然后可以将第一逆变换处理应用于第一块的第一变换系数以生成第一残差(310)。视频解码器30可以对第一残差解码以产生第一解码块(320)。对于多个视频数据块中的第二块,视频解码器30可以确定第二逆变换处理将被应用于多个视频数据块中的第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理(330)。视频解码器30可将预调整操作或后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差(340)。如果应用预调整操作,视频解码器30在应用第一逆变换处理之前应用预调整操作。如果应用后调整操作,则视频解码器30在应用第一逆变换处理之后应用后调整操作。视频解码器30可以对第二残差解码以产生第二解码块(350)。视频解码器30然后可以至少部分地基于第一解码块和第二解码块对视频数据解码(360)。
在一些示例中,变换处理可以被实施为可分离的固定通道,这意味着在所有一维变换期间应用相同的变换,尽管变换可以在垂直和水平通道之间变化。在这样的示例中,第一块可以是第一编码树单元,第二块可以是不同的第二编码树单元。在其他示例中,变换处理可以被实施为可分离的可变处理,其中单个编码树单元内的编码单元的每行(对于水平通道)或每列(对于垂直通道)、或者行对或列对可以使用不同的变换。在这样的示例中,第一块可以是编码树单元的第一行或第一列中的第一编码单元,第二块可以是同一编码树单元的不同行或列中的第二编码单元。
图17是示出可以实施本公开中描述的技术的视频数据的第一示例编码的流程图。图14的示例技术可以由视频编码器20执行。在图14的示例中,编码器(例如,视频编码器20)可以对第一视频数据块执行第一预测处理以产生第一残差(400)。视频编码器20可以确定多个变换处理中的第一变换处理将被应用于第一块(410)。视频编码器20然后可以将第一变换处理应用于第一残差以生成第一视频数据块的第一变换系数(420)。视频编码器20然后可以对第一变换系数进行熵编码(430)。视频编码器20可以对第二视频数据块执行第二预测处理以产生第二残差(440)。视频编码器20可以确定第二变换处理将被应用于第二块(450)。第二变换处理可以包括第一变换处理以及除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个。视频编码器20可将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数(460)。如果应用第一预调整操作,则视频编码器20在应用第一变换处理之前应用第一预调整操作。如果应用第一后调整操作,则视频编码器20在应用第一变换处理之后应用第一后调整操作。视频编码器20然后可以对第二变换系数进行熵编码(470)。
在一些示例中,变换处理可以被实施为可分离的固定通道,这意味着在所有一维变换期间应用相同的变换,尽管变换可以在垂直和水平通道之间变化。在这样的示例中,第一块可以是第一编码树单元,第二块可以是不同的第二编码树单元。在其他示例中,变换处理可以被实施为可分离的可变通道,其中单个编码树单元内的编码单元的每行(对于水平通道)或每列(对于垂直通道)、或者行对或列对可以使用不同的变换。在这样的示例中,第一块可以是编码树单元的第一行或列中的第一编码单元,第二块可以是同一编码树单元的不同行或列中的第二编码单元。
应当认识到,根据示例,本文描述的任何技术的某些动作或事件可以以不同的顺序执行,可以被添加、合并或一起省略(例如,并非所有描述的动作或事件对于技术的实践都是必要的)。此外,在某些示例中,动作或事件可以同时执行,例如通过多线程处理、中断处理或多个处理器执行,而不是顺序执行。
在一个或多个示例中,所描述的功能可以在硬件、软件、固件或其任意组合中实施。如果以软件实施,则这些功能可以作为一个或多个指令或代码存储在计算机可读介质上或通过其传输,并且由基于硬件的处理单元执行。计算机可读介质可以包括与诸如数据存储介质的有形介质对应的计算机可读存储介质、或者包括例如根据通信协议便于将计算机程序从一个地方传送到另一地方的任何介质的通信介质。以这种方式,计算机可读介质通常可以对应于(1)非暂时性的有形计算机可读存储介质,或者(2)诸如信号或载波的通信介质。数据存储介质可以是可由一个或多个计算机或一个或多个处理器访问以取得指令、代码和/或数据结构来实施本公开中描述的技术的任何可用介质。计算机程序产品可以包括计算机可读介质。
作为示例而非限制,这种计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储装置、磁盘存储装置、或其他磁存储设备、闪存、或可以用于以指令或数据结构的形式存储期望的程序代码并且可以由计算机访问的任何其他介质。此外,任何连接都被适当地称为计算机可读介质。例如,如果使用同轴电缆、光纤电缆、双绞线、数字用户线路(DSL)或无线技术(诸如红外线、无线电和微波)从网站、服务器或其他远程源传输指令,则同轴电缆、光纤电缆、双绞线、DSL或无线技术(诸如红外线、无线电和微波)被包括在介质的定义中。然而,应当理解,计算机可读存储介质和数据存储介质不包括连接、载波、信号或其他暂时介质,而是指向非暂时的有形存储介质。本文使用的磁盘和光盘包括紧凑型光盘(CD)、激光盘、光学盘、数字多功能盘(DVD)、软盘和蓝光光盘,其中磁盘通常磁性地再现数据,而光盘用激光光学地再现数据。上述的组合也应该包括在计算机可读介质的范围内。
指令可以由一个或多个处理器执行,诸如一个或多个数字信号处理器(DSP)、通用微处理器、专用集成电路(ASIC)、现场可编程逻辑阵列(FPGA)或其他等效的集成或分立的逻辑电路。因此,本文使用的术语“处理器”可以指前述结构中的任何一个或者适合于实施本文描述的技术的任何其他结构。此外,在一些方面中,本文描述的功能可以在被配置用于编码和解码的专用硬件和/或软件模块中提供,或者结合在组合的编解码器中。同样,这些技术可以完全在一个或多个电路或逻辑元件中实施。
本公开的技术可以在多种设备或装置中实施,包括无线手机、集成电路(IC)或一组IC(例如,芯片组)。在本公开中描述了各种组件、模块或单元,以强调被配置成执行所公开的技术的设备的功能方面,但是不一定需要通过不同的硬件单元来实现。相反,如上所述,各种单元可以组合在编解码器硬件单元中,或者由包括如上所述的一个或多个处理器的互操作硬件单元的集合结合合适的软件和/或固件来提供。
已经描述了本公开的各种示例。所描述的系统、操作或功能的任何组合是预期的。这些和其他示例在所附权利要求的范围内。

Claims (55)

1.一种对视频数据编码的方法,包括:
对第一视频数据块执行第一预测处理以产生第一残差;
确定多个变换处理中的第一变换处理将被应用于第一残差;
对第一残差应用第一变换处理以生成第一视频数据块的第一变换系数;
对第一变换系数编码;
对第二视频数据块执行第二预测处理以产生第二残差;
确定第二变换处理将被应用于第二残差,其中第二变换处理包括第一变换处理和除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个,其中第一预调整操作或第一后调整操作中的至少一个包括一个或多个Givens旋转的集合;
将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数,其中如果应用第一预调整操作,则在应用第一变换处理之前应用第一预调整操作,并且其中如果应用第一后调整操作,则在应用第一变换处理之后应用第一后调整操作;和
对第二变换系数编码。
2.根据权利要求1所述的方法,还包括:
对第三视频数据块执行第三预测处理以产生第三残差;
从多个变换处理中确定变换处理的子集,其中所述变换处理的子集包括比所述多个变换处理更少的变换处理,并且其中所述变换处理的子集包括第一变换处理;
确定调整操作的集合,其中每个调整操作包括要被应用于第三残差的预调整操作或后调整操作中的至少一个,并且其中当结合所述变换处理的子集中的变换处理应用每个调整操作时,产生近似等于应用所述多个变换处理中的不被包括在所述变换处理的子集中的变换处理而产生的变换系数的变换系数,并且其中所述调整操作的集合中的每个调整操作与所述变换处理的子集中的变换处理相关联;
对于所述变换处理的子集中的每个变换处理,确定相应变换处理的率失真特性;
对于所述调整操作的集合中的每个调整操作,确定相应调整操作的率失真特性和相应调整操作的相关联的变换处理;
基于所确定的率失真特性,从所述变换处理的子集中选择变换处理、或者从所述调整操作的集合中选择调整操作以及从所述变换处理的子集中选择与所选择的调整操作相关联的变换处理,作为完整的变换处理以应用于第三残差;
对第三残差应用所述完整的变换处理以生成第三视频数据块的第三变换系数;和
对第三变换系数编码。
3.根据权利要求2所述的方法,其中所述变换处理的子集包括DCT-2矩阵、DCT-3矩阵、DST-2矩阵或DST-3矩阵中的一个或多个。
4.根据权利要求2所述的方法,还包括:
在比特流中对指示从所述变换处理的子集中选择的变换处理的一个或多个索引编码;和
如果选择了调整操作,则在比特流中对指示从所述调整操作的集合中选择的调整操作的一个或多个索引编码。
5.根据权利要求1所述的方法,其中对第一变换系数编码和对第二变换系数编码包括对第一变换系数熵编码和对第二变换系数熵编码。
6.根据权利要求1所述的方法,其中第一变换处理包括离散三角变换矩阵。
7.根据权利要求5所述的方法,其中所述多个变换处理中的每个变换处理包括离散三角变换矩阵。
8.根据权利要求1所述的方法,其中第一预调整操作或第一后调整操作中的至少一个和第一变换处理各自包括相应的稀疏矩阵。
9.根据权利要求7所述的方法,其中第一变换处理的稀疏矩阵包括带状对角矩阵。
10.根据权利要求7所述的方法,其中第一变换处理的稀疏矩阵包括块对角矩阵。
11.根据权利要求1所述的方法,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,并且其中所述第一行不同于所述第二行。
12.根据权利要求1所述的方法,其中第一视频数据块包括编码树单元的第一列中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二列中的第二编码单元,并且其中所述第一列不同于所述第二列。
13.根据权利要求1所述的方法,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,其中所述第一行不同于所述第二行,并且其中所述方法还包括:
对编码树单元的第三编码单元执行第三预测处理以产生第三残差,其中第三编码单元在编码树单元的第三行中,其中所述第二行和所述第三行是连续的行;
确定第二变换处理将被应用于第三残差;
将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第三残差以生成第三编码单元的第三变换系数;和
对第三变换系数编码。
14.根据权利要求1所述的方法,其中第一视频数据块包括第一编码树单元,并且其中第二视频数据块包括不同于第一编码树单元的第二编码树单元。
15.一种视频编码设备,包括:
存储器,被配置成存储视频数据;和
以电路实施的一个或多个处理器,被配置成:
对第一视频数据块执行第一预测处理以产生第一残差;
确定多个变换处理中的第一变换处理将被应用于第一残差;
将第一变换处理应用于第一残差以生成第一视频数据块的第一变换系数;
对第一变换系数编码;
对第二视频数据块执行第二预测处理以产生第二残差;
确定第二变换处理将被应用于第二残差,其中第二变换处理包括第一变换处理和除了第一变换处理之外要应用于第二残差的第一预调整操作或第一后调整操作中的至少一个,其中第一预调整操作或第一后调整操作中的至少一个包括一个或多个Givens旋转的集合;
将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第二残差以生成第二视频数据块的第二变换系数,其中如果应用第一预调整操作,则在应用第一变换处理之前应用第一预调整操作,并且其中如果应用第一后调整操作,则在应用第一变换处理之后应用第一后调整操作;和
对第二变换系数编码。
16.根据权利要求15所述的视频编码设备,其中所述一个或多个处理器还被配置成:
对第三视频数据块执行第三预测处理以产生第三残差;
从多个变换处理中确定变换处理的子集,其中所述变换处理的子集包括比所述多个变换处理更少的变换处理,并且其中所述变换处理的子集包括第一变换处理;
确定调整操作的集合,其中每个调整操作包括要被应用于第三残差的预调整操作或后调整操作中的至少一个,并且其中当结合所述变换处理的子集中的变换处理应用每个调整操作时,产生近似等于应用多个变换处理中的不被包括在所述变换处理的子集中的变换处理而产生的变换系数的变换系数,并且其中所述调整操作的集合中的每个调整操作与所述变换处理的子集中的变换处理相关联;
对于所述变换处理的子集中的每个变换处理,确定相应变换处理的率失真特性;
对于所述调整操作的集合中的每个调整操作,确定相应调整操作的率失真特性和相应调整操作的相关联的变换处理;
基于所确定的率失真特性,从所述变换处理的子集中选择变换处理、或者从所述调整操作的集合中选择调整操作以及从所述变换处理的子集中选择与所选择的调整操作相关联的变换处理,作为完整的变换处理以应用于第三残差;
对第三残差应用所述完整的变换处理以生成第三视频数据块的第三变换系数;和
对第三变换系数码。
17.根据权利要求16所述的视频编码设备,其中所述变换处理的子集包括DCT-2矩阵、DCT-3矩阵、DST-2矩阵或DST-3矩阵中的一个或多个,其中所述一个或多个处理器还被配置成:
在比特流中对指示从所述变换处理的子集中选择的变换处理的一个或多个索引编码;和
如果选择了调整操作,则在比特流中对指示从所述调整操作的集合中选择的调整操作的一个或多个索引编码。
18.根据权利要求15所述的视频编码设备,其中对第一变换系数编码和对第二变换系数编码包括对第一变换系数熵编码和对第二变换系数熵编码。
19.根据权利要求15所述的视频编码设备,其中所述第一变换处理包括离散三角变换矩阵,并且其中所述多个变换处理中的每个变换处理包括离散三角变换矩阵。
20.根据权利要求15所述的视频编码设备,其中第一预调整操作或第一后调整操作中的至少一个和第一变换处理各自包括相应的稀疏矩阵,其中第一变换处理的稀疏矩阵包括带状对角矩阵或块对角矩阵中的一个。
21.根据权利要求15所述的视频编码设备,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,并且其中所述第一行不同于所述第二行。
22.根据权利要求15所述的视频编码设备,其中第一视频数据块包括编码树单元的第一列中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二列中的第二编码单元,并且其中所述第一列不同于所述第二列。
23.根据权利要求15所述的视频编码设备,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,其中所述第一行不同于所述第二行,并且其中所述一个或多个处理器还被配置成:
为编码树单元的第三编码单元预测第三残差,其中第三编码单元在编码树单元的第三行中,其中所述第二行和所述第三行是连续的行;
确定第二变换处理将被应用于第三残差;
将第一预调整操作或第一后调整操作中的至少一个和第一变换处理应用于第三残差以生成第三编码单元的第三变换系数;和
对第三变换系数编码。
24.根据权利要求15所述的视频编码设备,其中第一视频数据块包括第一编码树单元,并且其中第二视频数据块包括不同于第一编码树单元的第二编码树单元。
25.根据权利要求15所述的视频编码设备,还包括:
配置成捕获视频数据的相机。
26.一种对视频数据解码的方法,包括:
确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块;
将第一逆变换处理应用于第一块的第一变换系数以生成第一残差;
对第一残差解码以产生第一解码块;
确定第二逆变换处理将被应用于所述多个视频数据块的第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理,其中所述预调整操作或所述后调整操作中的至少一个包括一个或多个Givens旋转的集合;
将所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差,其中如果应用所述预调整操作,则在应用第一逆变换处理之前应用所述预调整操作,并且其中如果应用所述后调整操作,则在应用第一逆变换处理之后应用所述后调整操作;
对第二残差解码以产生第二解码块;和
至少部分基于第一解码块和第二解码块对所述视频数据解码。
27.根据权利要求26所述的方法,还包括:
基于第一索引的值确定第一逆变换将被应用于第二编码块;和
基于第二索引的值确定除了第一逆变换之外所述预调整操作和所述后调整操作中的至少一个也将被应用于第二块。
28.根据权利要求26所述的方法,其中第一逆变换处理包括离散三角变换矩阵。
29.根据权利要求28所述的方法,其中所述多个逆变换处理中的每个逆变换处理包括离散三角变换矩阵。
30.根据权利要求26所述的方法,其中第二残差近似等于将来自所述多个逆变换处理的第二逆变换处理应用于第二块的第二变换系数而得到的残差。
31.根据权利要求26所述的方法,其中所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理各自包括相应的稀疏矩阵。
32.根据权利要求31所述的方法,其中第一逆变换处理的稀疏矩阵包括带状对角矩阵。
33.根据权利要求31所述的方法,其中第一逆变换处理的稀疏矩阵包括块对角矩阵。
34.根据权利要求26所述的方法,其中第一逆变换处理包括DCT-2矩阵、DCT-3矩阵、DST-2矩阵或DST-3矩阵中的一个。
35.根据权利要求26所述的方法,还包括:
在无线通信设备的接收器处接收视频数据;
将所述视频数据存储在无线通信设备的存储器中;和
在无线通信设备的一个或多个处理器上处理所述视频数据。
36.根据权利要求35所述的方法,其中所述无线通信设备包括电话手机,并且其中在所述无线通信设备的接收器处接收所述视频数据包括根据无线通信标准解调包括所述视频数据的信号。
37.根据权利要求26所述的方法,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,并且其中所述第一行不同于所述第二行。
38.根据权利要求26所述的方法,其中第一视频数据块包括编码树单元的第一列中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二列中的第二编码单元,并且其中所述第一列不同于所述第二列。
39.根据权利要求26所述的方法,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,其中所述第一行不同于所述第二行,其中所述方法还包括:
确定所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理将被应用于第三编码单元,其中第三编码单元在编码树单元的第三行中,其中所述第二行和所述第三行是连续的行;
将所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理应用于第三编码单元的第三变换系数以生成第三残差;
对第三残差解码以产生第三解码的编码单元;和
至少部分基于第三解码块对所述视频数据解码。
40.根据权利要求26所述的方法,其中第一视频数据块包括第一编码树单元,并且其中第二视频数据块包括不同于第一编码树单元的第二编码树单元。
41.一种视频解码设备,包括:
存储器,被配置成存储视频数据;和
以电路实施的一个或多个处理器,被配置成:
确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块;
将第一逆变换处理应用于第一块的第一变换系数以生成第一残差;
对第一残差解码以产生第一解码块;
确定第二逆变换处理将被应用于所述多个视频数据块的第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理,其中所述预调整操作或所述后调整操作中的至少一个包括一个或多个Givens旋转的集合;
将所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差,其中如果应用所述预调整操作,则在应用第一逆变换处理之前应用所述预调整操作,并且其中如果应用所述后调整操作,则在应用第一逆变换处理之后应用所述后调整操作;
对第二残差解码以产生第二解码块;和
至少部分基于第一解码块和第二解码块对所述视频数据解码。
42.根据权利要求41所述的视频解码设备,其中所述一个或多个处理器还被配置成:
基于第一索引的值确定第一逆变换将被应用于第二编码块;和
基于第二索引的值确定除了第一逆变换之外所述预调整操作和所述后调整操作中的至少一个也将被应用于第二块。
43.根据权利要求41所述的视频解码设备,其中第一逆变换处理包括离散三角变换矩阵,其中所述多个逆变换处理中的每个逆变换处理包括离散三角变换矩阵。
44.根据权利要求41所述的视频解码设备,其中第二残差近似等于将来自所述多个逆变换处理的第二逆变换处理应用于第二块的第二变换系数而得到的残差。
45.根据权利要求41所述的视频解码设备,其中所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理各自包括相应的稀疏矩阵,其中第一逆变换处理的稀疏矩阵包括带状对角矩阵或块对角矩阵中的一个。
46.根据权利要求41所述的视频解码设备,其中第一逆变换处理包括DCT-2矩阵、DCT-3矩阵、DST-2矩阵或DST-3矩阵中的一个。
47.根据权利要求41所述的视频解码设备,其中所述设备包括无线通信设备,还包括被配置成接收编码的视频数据的接收器。
48.根据权利要求47所述的视频解码设备,其中所述无线通信设备包括电话手机,并且其中所述接收器被配置成根据无线通信标准解调包括编码的视频数据的信号。
49.根据权利要求47所述的视频解码设备,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,并且其中所述第一行不同于所述第二行。
50.根据权利要求47所述的视频解码设备,其中第一视频数据块包括编码树单元的第一列中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二列中的第二编码单元,并且其中所述第一列不同于所述第二列。
51.根据权利要求47所述的视频解码设备,其中第一视频数据块包括编码树单元的第一行中的第一编码单元,其中第二视频数据块包括所述编码树单元的第二行中的第二编码单元,其中所述第一行不同于所述第二行,其中所述一个或多个处理器还被配置成:
确定所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理将被应用于第三编码单元,其中第三编码单元在编码树单元的第三行中,其中所述第二行和所述第三行是连续的行;
将所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理应用于第三编码单元的第三变换系数以生成第三残差;
对第三残差解码以产生第三解码的编码单元;和
至少部分基于第三解码块对所述视频数据解码。
52.根据权利要求47所述的视频解码设备,其中第一视频数据块包括第一编码树单元,并且其中第二视频数据块包括不同于第一编码树单元的第二编码树单元。
53.根据权利要求41所述的视频解码设备,还包括:
显示器,被配置成显示解码的视频数据。
54.一种其上存储有指令的计算机可读存储介质,所述指令在被执行时使得视频解码设备的一个或多个处理器:
确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块;
将第一逆变换处理应用于第一块的第一变换系数以生成第一残差;
对第一残差解码以产生第一解码块;
确定第二逆变换处理将被应用于所述多个视频数据块的第二块,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理,其中所述预调整操作或所述后调整操作中的至少一个包括一个或多个Givens旋转的集合;
将所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差,其中如果应用所述预调整操作,则在应用第一逆变换处理之前应用所述预调整操作,并且其中如果应用所述后调整操作,则在应用第一逆变换处理之后应用所述后调整操作;
对第二残差解码以产生第二解码块;和
至少部分基于第一解码块和第二解码块对视频数据解码。
55.一种用于对视频数据解码的装置,该装置包括:
用于确定多个逆变换处理中的第一逆变换处理将被应用于多个视频数据块中的第一块的部件;
用于将第一逆变换处理应用于第一块的第一变换系数以生成第一残差的部件;
用于对第一残差解码以产生第一解码块的部件;
用于确定第二逆变换处理将被应用于所述多个视频数据块的第二块的部件,其中第二逆变换处理包括预调整操作或后调整操作中的至少一个和第一逆变换处理,其中所述预调整操作或所述后调整操作中的至少一个包括一个或多个Givens旋转的集合;
用于将所述预调整操作或所述后调整操作中的至少一个和第一逆变换处理应用于第二块的第二变换系数以生成第二残差的部件,其中如果应用所述预调整操作,则在应用第一逆变换处理之前应用所述预调整操作,并且其中如果应用所述后调整操作,则在应用第一逆变换处理之后应用所述后调整操作;
用于对第二残差解码以产生第二解码块的部件;和
用于至少部分基于第一解码块和第二解码块对所述视频数据解码的部件。
CN201980022137.8A 2018-03-30 2019-03-29 用于视频编译码的多变换调整阶段 Active CN111971970B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862650953P 2018-03-30 2018-03-30
US62/650,953 2018-03-30
US201862668097P 2018-05-07 2018-05-07
US62/668,097 2018-05-07
US16/368,455 2019-03-28
US16/368,455 US11647214B2 (en) 2018-03-30 2019-03-28 Multiple transforms adjustment stages for video coding
PCT/US2019/024899 WO2019191626A1 (en) 2018-03-30 2019-03-29 Multiple transforms adjustment stages for video coding

Publications (2)

Publication Number Publication Date
CN111971970A CN111971970A (zh) 2020-11-20
CN111971970B true CN111971970B (zh) 2022-08-19

Family

ID=68054072

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980022137.8A Active CN111971970B (zh) 2018-03-30 2019-03-29 用于视频编译码的多变换调整阶段

Country Status (5)

Country Link
US (1) US11647214B2 (zh)
EP (1) EP3777186A1 (zh)
CN (1) CN111971970B (zh)
TW (1) TW201943278A (zh)
WO (1) WO2019191626A1 (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113411580B (zh) * 2016-05-13 2024-01-30 夏普株式会社 图像解码装置及其方法、图像编码装置及其方法
WO2019203569A1 (ko) * 2018-04-17 2019-10-24 엘지전자 주식회사 전처리/후처리 행렬에 기초하는 근사 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
WO2019212987A1 (en) * 2018-04-30 2019-11-07 Interdigital Vc Holdings, Inc. Flexible implementations of multiple transforms
US11166044B2 (en) * 2018-07-31 2021-11-02 Tencent America LLC Method and apparatus for improved compound orthonormal transform
US11039139B2 (en) * 2018-09-14 2021-06-15 Tencent America LLC Method and apparatus for identity transform in multiple transform selection
WO2020117011A1 (ko) * 2018-12-06 2020-06-11 엘지전자 주식회사 저복잡도를 갖는 변환을 사용하여 비디오 신호를 처리하기 위한 방법 및 장치
WO2020244662A1 (en) * 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Simplified transform coding tools
CN112135130B (zh) 2019-06-24 2024-03-22 财团法人工业技术研究院 视频编译码方法及其图像处理装置
US11277641B2 (en) * 2019-12-31 2022-03-15 Qualcomm Incorporated Chroma transform skip and joint chroma coding enabled block in video coding
US11405615B2 (en) 2020-03-26 2022-08-02 Tencent America LLC Joint transform coding of multiple color components
US11616983B2 (en) * 2020-05-05 2023-03-28 Tencent America LLC Joint component secondary transform
CN113707172B (zh) * 2021-06-02 2024-02-09 西安电子科技大学 稀疏正交网络的单通道语音分离方法、系统、计算机设备
CN116156170B (zh) * 2023-04-24 2024-04-16 北京中星微人工智能芯片技术有限公司 数据流的发送方法、装置、电子设备和存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding
CN104604224A (zh) * 2012-09-04 2015-05-06 高通股份有限公司 可缩放视频译码中的变换基底调整

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5347305A (en) * 1990-02-21 1994-09-13 Alkanox Corporation Video telephone system
US5867416A (en) * 1996-04-02 1999-02-02 Lucent Technologies Inc. Efficient frequency domain analysis of large nonlinear analog circuits using compressed matrix storage
US7242713B2 (en) * 2002-05-02 2007-07-10 Microsoft Corporation 2-D transforms for image and video coding
US8019804B2 (en) * 2007-03-26 2011-09-13 City University Of Hong Kong Method and apparatus for calculating an SSD and encoding a video signal
US8031782B2 (en) * 2008-08-29 2011-10-04 ADC2 Technologies LLC Systems and methods for compression, transmission and decompression of video codecs
US8762441B2 (en) * 2009-06-05 2014-06-24 Qualcomm Incorporated 4X4 transform for media coding
WO2011009196A1 (en) * 2009-07-20 2011-01-27 Valorbec, Societe En Commandite Finite dataset interpolation method
KR20130050403A (ko) * 2011-11-07 2013-05-16 오수미 인터 모드에서의 복원 블록 생성 방법
US20140079135A1 (en) * 2012-09-14 2014-03-20 Qualcomm Incoporated Performing quantization to facilitate deblocking filtering
KR20160072120A (ko) * 2013-10-18 2016-06-22 엘지전자 주식회사 3d 비디오 부호화/복호화 방법 및 장치
WO2016143991A1 (ko) * 2015-03-06 2016-09-15 한국과학기술원 저 복잡도 변환에 기반한 영상 부호화 및 복호화 방법 및 이를 이용하는 장치
US10681379B2 (en) 2015-09-29 2020-06-09 Qualcomm Incorporated Non-separable secondary transform for video coding with reorganizing
US10448053B2 (en) 2016-02-15 2019-10-15 Qualcomm Incorporated Multi-pass non-separable transforms for video coding
US20180288439A1 (en) * 2017-03-31 2018-10-04 Mediatek Inc. Multiple Transform Prediction
US20200186835A1 (en) 2018-12-07 2020-06-11 Qualcomm Incorporated Computation of asymmetric transform pairs for video coding using adjustment stages and dct-2

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010087807A1 (en) * 2009-01-27 2010-08-05 Thomson Licensing Methods and apparatus for transform selection in video encoding and decoding
CN104604224A (zh) * 2012-09-04 2015-05-06 高通股份有限公司 可缩放视频译码中的变换基底调整

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Maximizing compression efficiency through block rotation;Rui Guerreiro ET AL;《URL:http://arxiv.org/pdf/1411.4290v1.pdf》;20141116;全文 *
New Transforms Tightly Bounded by DCT and KLT;HAOMING CHEN ET AL;《IEEE SIGNAL PROCESSING LETTERS》;20120601;全文 *

Also Published As

Publication number Publication date
TW201943278A (zh) 2019-11-01
EP3777186A1 (en) 2021-02-17
CN111971970A (zh) 2020-11-20
US20190306522A1 (en) 2019-10-03
WO2019191626A1 (en) 2019-10-03
US11647214B2 (en) 2023-05-09

Similar Documents

Publication Publication Date Title
CN111971970B (zh) 用于视频编译码的多变换调整阶段
US10448053B2 (en) Multi-pass non-separable transforms for video coding
EP3417623B1 (en) Efficient parameter storage for compact multi-pass transforms
CN112204969B (zh) 用于视频编解码的编解码自适应多重变换信息
US10390048B2 (en) Efficient transform coding using optimized compact multi-pass transforms
US10863199B2 (en) Minimization of transform memory and latency via parallel factorizations
CN112425164B (zh) 多个可分离变换选择的变换变体
CN112385223A (zh) 取决于模式的帧内平滑(mdis)与帧内内插滤波器切换的组合
JP7455840B2 (ja) ビデオコーディングのためのツリーベース変換ユニット(tu)区分
EP3827590A1 (en) Rounding of motion vectors for adaptive motion vector difference resolution and increased motion vector storage precision in video coding
US20200186835A1 (en) Computation of asymmetric transform pairs for video coding using adjustment stages and dct-2
WO2021081302A1 (en) Parametric graph-based separable transforms for video coding

Legal Events

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