CN116847082A - 视频编码方法和装置 - Google Patents

视频编码方法和装置 Download PDF

Info

Publication number
CN116847082A
CN116847082A CN202210605177.9A CN202210605177A CN116847082A CN 116847082 A CN116847082 A CN 116847082A CN 202210605177 A CN202210605177 A CN 202210605177A CN 116847082 A CN116847082 A CN 116847082A
Authority
CN
China
Prior art keywords
block
absolute
hadamard
period
satd
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
CN202210605177.9A
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.)
MediaTek Inc
Original Assignee
MediaTek 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 MediaTek Inc filed Critical MediaTek Inc
Publication of CN116847082A publication Critical patent/CN116847082A/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/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
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/635Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by filter definition or implementation details
    • 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/132Sampling, masking or truncation of coding units, e.g. adaptive resampling, frame skipping, frame interpolation or high-frequency transform coefficient masking
    • 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/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/423Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

用于通过折叠式Hadamard变换电路计算绝对变换差值和(Sum of AbsoluteTransformed Difference,简称SATD)的视频编码方法和装置包括将当前块分割成SATD块,在第一周期内接收与第一SATD块的第一块相关联的输入数据以及在第二周期内接收与第一SATD块的第二块相关联的输入数据,以及在第一周期内由共用的Hadamard变换电路执行第一块的计算和在第二周期内由共用的Hadamard变换电路执行第二块的计算。每个共用的Hadamard变换电路是每个折叠式Hadamard变换电路的第一部分。视频编码方法和装置还通过每个折叠式Hadamard变换电路的最终部分执行整个SATD块的计算,以生成用于编码的第一SATD块的最终SATD结果。

Description

视频编码方法和装置
技术领域
本发明涉及用于视频编码方法和装置,更具体地,本发明涉及用于视频编码中的失真计算的硬件设计。
背景技术
通用视频编码(Versatile Video Coding,简称VVC)标准是由来自ITU-T研究组的视频编码专家组成的视频编码联合协作组(Joint Collaborative Team on VideoCoding,简称JCT-VC)组开发的最新视频编码标准。VVC标准继承了以前的高效视频编码(High Efficiency Video Coding,简称HEVC)标准,该标准依赖于基于块的编码结构,其中每个视频图片包含一个或一组片段,每个片段被划分为整数个编码树单元(Coding TreeUnits,简称CTU)。片段中的各个CTU根据光栅扫描顺序进行处理。每个CTU进一步递归地划分为一个或多个编码单元(Coding Unit,简称CU),以适应各种局部运动和纹理特征。预测决策是在CU级别做出的,其中每个CU根据根据率失真优化(Rate DistortionOptimization,简称RDO)技术选择的最佳编码模式进行编码。视频编码器在最大化编码质量和最小化比特率方面详尽地尝试所有模式组合,选择每个CU的最佳编码模式。指定的预测阶段被用来预测CU内相关像素样本的值。在得到预测阶段产生的残差信号后,属于CU的残差信号的残差数据被变换为变换系数,用于紧凑的数据表示。这些变换系数被量化以及被传送到解码器。术语编码树块(Coding Tree Block,简称CTB)和编码块(Coding Block,简称CB)被定义为分别指定与CTU和CU相关联的一种颜色分量的二维样本数组。例如,一个CTU由一个亮度(luma,Y)CTB、两个色度(chroma,Cb和Cr)CTB及其相关的语法元素组成。
CU中的视频数据可以由低复杂度RDO阶段随后是高复杂度RDO阶段来计算。例如,预测在低复杂度RDO阶段执行,而差分脉冲编码调制(Differential Pulse CodeModulation,简称DPCM)在高复杂度RDO阶段执行。在低复杂度RDO阶段,与应用于块的编码模式相关联的绝对变换差值和(Sum of Absolute Transform Difference,简称SATD)或绝对差值和(Sum of Absolute Difference,简称SAD)被计算,以确定块的最佳编码模式。SATD是一种块匹配标准,广泛用于视频压缩的分数运动估计(Motion Estimation,简称ME)。它的工作原理是对原始块中的像素与用于比较的块中的相应像素之间的差值进行频率变换,通常是Hadamard变换。与SAD相比,SATD更准确地模拟了传输残差信号所需的比特数。为了计算经编码模式编码的CU的SATD,CU被分割成具有变换大小的更小的分区,以及CU的SATD等于CU内每个分区的失真值之和。例如,SATD计算的变换大小可以是4x4、4x8或4x16。实验结果证明,SATD计算的变换大小越大,压缩损失越小(例如,BD率越低),但是,SATD计算的变换大小越大,硬件成本就会增加并导致利用率低的问题。图1显示4x4的SATD、4x8的SATD和4x16的SATD的硬件利用率,假设预测阶段的吞吐量为4x4样本。处理4x4的SATD块12的硬件利用率接近100%,处理4x8的SATD块14的硬件利用率约为50%,因为编码器有一半时间空闲以等待整个4x8的SATD块,处理4x16的SATD块16的硬件利用率仅为25%,因为编码器有四分之三的时间处于空闲状态以等待整个4x16的SATD块。设计用于处理大于预测阶段吞吐量的SATD块的SATD硬件电路可能不是一个好的权衡。
发明内容
在用于通过视频编码***中的折叠式Hadamard变换电路计算当前块的绝对变换差值和(SATD)的视频编码方法的一些实施例中,该方法包括将当前块分割成一个或多个SATD块,在第一周期内接收与第一SATD块的第一块相关联的输入数据,和在第一周期之后的第二周期内接收与第一SATD块的第二块相关联的输入数据,以及在第一周期内由共用的Hadamard变换电路执行第一块的计算和在第二周期内由共用的Hadamard变换电路执行第二块的计算。每个共用的Hadamard变换电路是每个折叠式Hadamard变换电路的第一部分。该视频编码方法还包括通过每个折叠式Hadamard变换电路的最后部分执行整个第一SATD块的计算以产生第一SATD块的最终SATD结果,以及累加当前块中的一个或多个SATD块的最终SATD结果以生成当前块的最终SATD结果。当前块的最终SATD结果用于对当前块进行编码。
在一些实施例中,每个SATD块是4x8块,其中第一块是4x8块的顶部4x4块以及第二块是4x8块的底部4x4块。以生成第一SATD块的最终SATD结果的整个第一SATD块的计算在第二周期内执行。折叠式Hadamard变换电路为折叠8点Hadamard变换电路,以及共用的Hadamard变换电路为4点Hadamard变换电路。在一些其他实施例中,每个SATD块是4x16块,其中第一块是4x16块的顶部4x4块,第二块是4x16块的第二4x4块。视频编码方法进一步接收与4x16块的第三4x4块相关联的输入数据,以及在第二周期之后的第三周期内由共用的Hadamard变换电路执行第三4x4块的计算,以及接收与4x16块的第四4x4块相关联的输入数据,和在第三周期之后的第四周期内由共用的Hadamard变换电路执行第四4x4的块的计算。整个第一SATD块的计算以生成最终的SATD结果在第四周期内执行。在一些实施例中,第二周期紧接在第一周期之后或在第一周期之后。例如,第一周期是偶数或奇数周期,第二周期是偶数周期之后的奇数周期或奇数周期之后的偶数周期。
折叠式Hadamard变换电路中的计算顺序允许在第一周期内计算与第一SATD块的第一块相关的计算。该编码方法还包括将由共用的Hadamard变换电路计算的第一SATD块的第一块的临时结果缓存在多个寄存器中。在本发明的一个实施例中,通过每个折叠式Hadamard变换电路的最后部分执行整个第一SATD块的计算包括:将由共用的Hadamard变换电路计算的SATD块的第二块的临时结果与存储在寄存器的数据进行组合。
根据一些实施例,每个折叠式Hadamard变换电路的最后部分包括多个绝对值运算和寄存器。每个绝对值操作由多个输入共用。例如,每个绝对值运算都有两个输入用于处理4x8的SATD块。通过每个折叠式Hadamard变换电路的最后部分执行整个第一SATD块的计算包括:将多个绝对值运算的输入中的一些存储到寄存器中以及以时间交织方式通过绝对值运算处理多个输入。根据一些实施例,寄存器在偶数周期内缓存共用的Hadamard变换电路的临时结果以及在奇数周期内缓存多个绝对值运算输入中的一些输入。
在本发明的一些实施例中,用于计算SATD的折叠式Hadamard变换电路被重复用于绝对差值和(Sum of Absolute Difference,简称SAD)计算。
在一个实施例中,与当前块相关联的输入数据包括原始样本和当前块的预测子之间的差值,以及执行计算以生成最终SATD结果,该最终SATD结果包括将Hadamard变换应用于差值以生成当前块的变换差值。在另一实施例中,当前块由编码单元级权重双向预测(Bi-prediction with Coding Unit level Weights,简称BCW)候选编码,该BCW双向预测候选具有一组权重,当前块的输入数据包括当前块的列表0(L0)预测子、列表1(L1)预测子和原始样本。执行计算的步骤包括将Hadamard变换应用于L0预测子,将Hadamard变换应用于L1预测子,以及将Hadamard变换应用于原始样本。BCW双向预测候选编码当前块的最终SATD结果通过将L0预测子的Hadamard变换和L1预测子的Hadamard变换乘以权重集合,以及原始样本的Hadamard变换得到。L0预测子的Hadamard变换、L1预测子的Hadamard变换和原始样本的Hadamard变换被重复用于计算由具有相同或不同L0和L1预测子的另一BCW双向预测候选编码当前块的最终SATD结果。
本公开的多个方面还提供一种用于视频编码***通过折叠式Hadamard变换电路计算当前块的SATD的装置。该装置包括一个或多个电子电路,其被配置为将当前块分成一个或多个SATD块,在第一周期内接收与第一SATD块的第一块相关联的输入数据,以及在第二周期内接收与第一SATD块的第二块相关联的输入数据,以及在第一周期内由共用的Hadamard变换电路执行第一块的计算,和在第二周期内由共用的Hadamard变换电路执行第二块的计算。每个共用的Hadamard变换电路是每个折叠式Hadamard变换电路的第一部分。该装置通过每个折叠式Hadamard变换电路的最后部分执行整个第一SATD块的计算,以生成第一SATD块的最终SATD结果,以及累加当前块的一个或多个SATD块的最终SATD结果以生成当前块的最终SATD结果。当前块根据当前块的最终SATD结果被编码。在阅读以下具体实施例的描述后,本发明的其他方面和特征对于所属技术领域的技术人员将变得显而易见。
附图说明
将参考以下附图详细描述作为示例提出的本公开的各种实施例,其中相同的标号指代相同的元件,以及其中:
图1示出当预测阶段的吞吐量为4x4样本时三种SATD变换大小的硬件利用率。
图2示出用于计算4x4的SATD块的SATD的电路的硬件设计以及形成该电路的4点Hadamard变换电路的图标。
图3示出用于计算4x8的SATD块的一部分SATD的普通8点Hadamard变换电路。
图4示出8点Hadamard变换电路的第一部分的计算顺序的变化,其中第一部分等效于两个4点Hadamard变换电路。
图5示出根据本发明实施例的用于计算4x8的SATD块的一部分SATD的折叠式8点Hadamard变换电路。
图6示出根据本发明实施例的实现用于计算4x8的SATD块的SATD的折叠式8点Hadamard变换电路的硬件设计。
图7示出共用用于计算4x8的SATD块的SATD的电路的寄存器的实施例。
图8示出根据本发明的实施例的重用用于计算4x4的SATD块的SATD的电路来计算偶数行(row)SAD。
图9示出用于通过使用折叠式Hadamard变换电路计算当前块的SATD来对当前块进行编码的视频编码方法的实施例的流程图。
图10示出根据本发明一些实施例的结合一种视频编码方法或组合多种视频编码方法的视频编码***的示例性***框图。
具体实施方式
将容易理解的是,如本文附图中大体描述和图标的本发明的元件可被布置和设计成多种不同的配置。因此,如附图中所表示的本发明的***和方法的实施例的以下更详细的描述并不旨在限制所要求保护的本发明的范围,而仅代表本发明的选定实施例。
在整个说明书中对“一个实施例”、“一些实施例”或类似语言的引用意味着结合实施例描述的特定特征、结构或特性可以包括在本发明的至少一个实施例中。因此,贯穿本说明书的各个地方出现的短语“在一个实施例中”或“在一些实施例中”不一定都指同一实施例,这些实施例可以单独实施,也可以结合一个或多个其他实施例实施。此外,所描述的特征、结构或特性可以在一个或多个实施例中以任一合适的方式组合。然而,所属技术领域的技术人员将认识到,本发明可以在没有一个或多个具体细节的情况下,或使用其他方法、元件等来实践。在其他情况下,众所周知的结构或操作未示出或未被详细描述以避免模糊本发明的方面。
绝对变换差值和计算在低复杂度(Low-Complexity,简称LC)率失真优化(RateDistortion Optimization,简称RDO)阶段,视频编码器通过将CU分割成更小的SATD块以及累加更小的SATD块的SATD结果来计算CU的SATD。例如,一个64x64 CU被分成128个4x8的SATD块,64x64的CU的SATD结果是128个SATD块的SATD结果之和。64x64的CU可被拆分为64个4x16的SATD块,以及64x64的CU的SATD结果是64个SATD块的SATD结果之和。较大的SATD块的编码损失通常小于较小的SATD块的编码损失,但是,计算较大的SATD块所需的编码时间要长得多。编码效率和计算复杂度之间的良好折衷由视频编码器决定。在VVC测试模型(VVCTest Model,简称VTM)中,为了计算宽度为w和高度为h的当前块的SATD,当前块的原始样本Sourcew*h和当前块的预测子Predw*h的差值Dw*h被计算,差值Dw*h由Hadamard变换进行变换得到变换后的差值D′w*h。当前块的SATD根据以下等式使用该变换差值D′w*h进行计算。
Dw*h=Predw*h-Sourcew*h;D′w*h=Hw*wDw*hHh*h
其中Hw*w为具有大小w*w的Hadamard變换。
4x4的SATD块的变换后的差值D′w*h由差值Dw*h和Hadamard变换矩阵的矩阵乘法来计算,如下所示。
Hadamard变换和SATD计算可以通过硬件电路实现,该硬件电路将当前块的4x4差值D4*4或4x8差值D4*8变换为变换后的差值D′4*4或D′4*8。然后硬件电路累加变换差值的绝对值以产生当前块的SATD结果。图2示出用于计算4x4的SATD的电路的硬件设计,由于Hadamard变换中的矩阵项为1或-1,因此用于SATD计算的硬件设计通过加减运算实现,无需任何乘法运算。计算4x4的SATD的电路由8个4点Hadamard变换电路组成,以及每个4点Hadamard变换电路内的计算操作如图2所示。当前块,例如当前的编码单元(Coding Unit,简称CU)被分割成一个或多个SATD块,以及SATD累加器用于累加当前块内SATD块的SATD。图3示出通过矩阵乘法计算的4x8的SATD块的变换后的差值D′4*8,以及用于计算4x8的SATD块的一部分4x8的SATD的8点Hadamard变换电路。如果计算4x8的SATD的硬件设计直接使用图3所示的普通8点Hadamard变换电路实现的电路,硬件利用率约为50%。硬件利用率只有一半,因为编码器需要等待4x8的SATD块的底部4x4块(例如图3中的d4到d7)计算整个4x8的SATD块的SATD。
折叠式8点Hadamard变换电路由于Hadamard矩阵的规律性,8点Hadamard变换中的计算顺序可以稍微改变,以便在接收4x8的SATD块的底部4x4块之前对4x8的SATD块执行一些计算。图4示出在8点Hadamard变换电路中改变计算顺序的实施例,因此8点Hadamard变换电路的第一部分等效于两个4点Hadamard变换电路。在每个周期内,仅4个输入样本被接收,例如图4所示的d0到d3在偶数周期(例如周期0)内被接收,d4到d7在偶数周期之后的奇数周期内被接收(例如周期1)。在另一示例中,如图4所示的d0到d3在奇数周期(例如周期1)内被接收,以及d4到d7在奇数周期之后的偶数周期(例如周期2)内被接收。通过改变8点Hadamard变换电路中的计算顺序,所有与4个输入样本d0到d3相关的计算首先被计算,然后与接下来的4个输入样本d4到d7相关的计算可以在下一个周期内计算。8点Hadamard变换电路第一部分的硬件设计可以使用用于计算4x4的SATD的一个4点Hadamard变换电路来代替。在接收到第二个4个输入样本d4到d7之后,8点Hadamard变换电路的最后部分可以在偶数周期之后的奇数周期(例如周期1)或奇数周期之后的偶数周期(例如周期2)内计算。
用于计算4x8的SATD的电路面积可以通过折叠技术来减小。8点Hadamard变换电路的第一部分被折叠,这意味着一个4点Hadamard变换电路用于以时间交织的方式计算每个4x8块的顶部4x4块和底部4x4块。通过增加一些寄存器来缓存临时数据,在每个折叠式8点Hadamard变换电路中,仅一个4点Hadamard变换电路被需要用来计算偶数周期内与顶部4x4块相关的临时结果和计算奇数周期内与底部4x4块相关的临时结果。图5示出根据本发明实施例的折叠式8点Hadamard变换电路。例如,对于每个偶数周期的数据,例如周期0、2或4,由4点Hadamard变换电路计算的4点临时结果被存储在寄存器中。对于每个奇数周期的数据,例如周期1、3或5,由4点Hadamard变换电路计算的4点临时结果将与存储在寄存器中的数据相结合,生成8点的Hadamard变换电路的结果。与图3所示的每个偶数周期空闲的普通8点Hadamard变换电路相比,折叠式8点Hadamard变换电路中的4点Hadamard变换电路在每个周期进行计算。也就是说,整个普通8点Hadamard变换电路的硬件利用率只有50%,而折叠式8点Hadamard变换电路的第一部分(即4点Hadamard变换电路)的硬件利用率是100%,以及折叠式8点Hadamard变换电路的最后部分的硬件利用率是50%。折叠式8点Hadamard变换电路的电路面积也小于普通8点Hadamard变换电路,因为相比在普通8点Hadamard变换电路中的24个加法运算,折叠式8点Hadamard变换电路中只有16个加法运算和4个寄存器。折叠式Hadamard变换电路的上述示例用于计算4x8的SATD,折叠式Hadamard变换电路可以类似的方式设计用于计算具有其他变换大小的SATD块的SATD。
SATD电路中的进一步硬件减少8点Hadamard变换电路或折叠式8点Hadamard变换电路每2个周期输出1个结果,硬件成本可通过缓存一半内部结果进一步被降低。这样,8点Hadamard变换电路或折叠式8点Hadamard变换电路的整体硬件利用率也可以被提高。图6示出根据本发明实施例的采用折叠式8点Hadamard变换电路来计算4×8的SATD块的SATD的SATD电路。每个折叠式8点Hadamard变换电路的最后部分仅在每个第二周期内计算一次,每个折叠式8点Hadamard变换电路的最后部分的利用率为50%。在本发明的一些实施例中,根据Hadamard变换电路的最后部分的硬件利用率,每个绝对值运算可以由多个输入共用,因此SATD电路累加所需的绝对值运算的数量被减少。绝对值运算的数量可通过将一些输入存储在寄存器中减少。例如,通过在如图6所示的折叠式8点Hadamard变换电路中包含16个寄存器,绝对值运算的数量从32减少到16。根据该实施例,对于SATD电路中的累加,用于接收绝对值运算的输出的32-输入加法器,也被简化为16-输入加法器。在另一示例中,采用折叠式16点Hadamard变换电路来计算4x16的SATD的SATD电路中所需的绝对值运算数量被减少到四分之一。这种硬件电路的减少可以在采用普通或折叠式Hadamard变换电路的SATD电路中实现,因为整个普通Hadamard变换电路的利用率与折叠式Hadamard变换电路的最后部分相同。例如,普通8点Hadamard变换电路的利用率为50%,普通16点Hadamard变换电路的利用率为25%。根据一个实施例,采用普通8点Hadamard变换电路来计算4x8的SATD的SATD电路中的绝对值运算数量减少了一半,以及根据另一实施例,采用普通16点Hadamard变换电路来计算4x16的SATD的SATD电路中的绝对值运算数量被减少到四分之一。
在一些其他实施例中,通过图7所示的方式共用寄存器,采用折叠式Hadamard变换电路的SATD电路中的寄存器数量进一步被减少。采用如图6所示的折叠式8点Hadamard变换电路的SATD电路中有两组寄存器。第一组寄存器用于缓存4点临时结果,第二组寄存器用于缓存一半的8点临时结果。根据实施例,第一组寄存器在每个偶数周期内被存取,而第二组寄存器在每个奇数周期内被存取。在另一实施例中,第一组寄存器在每个奇数周期内被存取,而第二组寄存器在每个偶数周期内被存取。在图7中用于计算Hadamard矩阵列的示例性折叠式8点Hadamard变换电路示出在采用折叠式8点Hadamard变换电路的SATD电路中共用寄存器的实施例,其中仅需要一组寄存器。这组寄存器包含4个寄存器,用于计算Hadamard矩阵的一列,以及4个寄存器在偶数周期内缓存4点临时结果,在奇数周期内缓存一半的8点临时结果。由于LC RDO阶段需要大量的SATD电路,减少每个SATD电路中的一些寄存器可以大大节省视频编码器的硬件成本。
SATD和SAD的共用电路在VVC标准中,解码器侧运动向量细化(Decoder sideMotion Vector Refinement,简称DMVR)模式使用偶数行(row)SAD来计算失真。如果SATD电路可以重复用于计算SAD值,则DMVR模式可被轻松地将添加到任一处理元件(ProcessingElement,简称PE),只需稍微更改硬件即可。本发明的实施例将SATD电路重复用于SAD计算。例如,偶数行输入数据绕过Hadamard变换电路,直接进入SATD电路的偶数行绝对值电路,0被馈入每个奇数行SATD电路的绝对值电路而不是将奇数行数据馈入奇数行绝对值电路。由普通Hadamard变换电路或折叠式Hadamard变换电路实现的SATD电路可以重复用于计算偶数行SAD。图8示出根据本发明实施例的重复使用4x4的SATD电路来计算DMVR模式的偶数行SAD值的示例。在一些其他实施例中,4x8的SATD电路或4x16的SATD电路可以被重复用于计算DMVR模式的偶数行SAD值。不仅DMVR模式的偶数行SAD可以由SATD电路计算,SATD电路可被重复用于计算任一类型的SAD。
BCW Hadamard变换重复使用具有CU级权重的双向预测(Bi-Prediction with CU-level Weights,简称BCW)是一种编码工具,允许双向预测中对列表0(L0)和列表1(L1)预测子使用不同权重。以BCW编码的CU的双向预测预测子Pbi-pred由以下等式生成,其中一个权重参数w被发送用于CU。
Pbi-pred=((8-w)*P0+w*P1+4)>>3;
其中P0是CU的L0预测子,P1是CU的L1预测子。低延迟图片有5个w选项{-2,3,4,5,10},非低延迟图片有3个w选项{3,4,5}。BCW双向预测候选的SATD的Hadamard变换等于BCW双向预测预测子与CU的原始数据之间的差值的Hadamard变换,如下式所示。
H(Pbi-pred–orig)=H(((8-w)P0+w P1+4)>>3–orig);
其中orig是CU的原始样本。这个等式可以根据Hadamard变换的线性特性改写如下。
H(Pbi-pred–orig)=((8-w)H(P0)+w H(P1))>>3–H(orig)。
根据本发明的一个实施例,Hadamard变换应用于CU的L0预测子、L1预测子和原始样本,分别得到H(P0)、H(P1)和H(orig),然后通过将不同的权重集合与L0预测子和L1预测子相乘,共用相同预测子和CU原始样本的所有BCW双向预测候选的Hadamard变换可以很容易地被生成。在普通的硬件实现中,低延迟情况下五个Hadamard电路被需要用来计算五个候选BCW的SATD,而随机存取情况下三个Hadamard电路被需要用来计算三个候选BCW的SATD。在重复使用L0预测子、L1预测子和原始样本的Hadamard变换结果的实施例中,无论在LC RDO阶段测试的BCW权重选项的数量如何,仅三个Hadamard电路被需要用于具有相同L0和L1预测子和不同的加权参数的所有BCW候选。
在LC RDO阶段,当前CU的多个双向预测候选同时进行测试,以便选择用于编码当前CU的最佳候选,这些双向预测候选使用相同的原始样本。根据本发明的实施例,原始样本H(orig)的Hadamard变换进一步由当前CU的所有双向预测候选共用。该共用原始样本的Hadamard变换的实施例与将Hadamard变换应用于BCW双向预测候选的L0预测子、L1预测子和原始样本的实施例相结合。例如,在LC RDO阶段有50个BCW双向预测候选要测试,对于随机存取情况,普通硬件实现所需的Hadamard变换电路的数量等于3*50=150,或在低延迟情况下等于5*50=250。这是基于这样一个事实,即在每个BCW双向预测候选中应用的每个加权参数都需要一个Hadamard变换电路。根据本发明的该实施例,随机存取和低延迟情况所需的Hadamard变换电路的数量为2*50+1=101。对于50个BCW双向预测候选中的每一个候选,一个Hadamard变换电路用于计算L0预测子的Hadamard变换,另一个Hadamard变换电路用于计算L1预测子的Hadamard变换。这两个Hadamard变换电路由应用于BCW双向预测候选的所有不同BCW加权参数共用。一个用于计算原始样本的Hadamard变换的Hadamard变换电路由所有50个BCW双向预测候选和相应不同的加权参数共用。无论在LC RDO阶段测试的BCW加权参数的数量如何,50个BCW双向预测候选所需的Hadamard变换电路的数量都是相同的。
用于视频编码中的SATD计算的代表性流程图图9示出在视频编码***中实现的折叠式Hadamard变换电路的示例性实施例的流程图。在步骤S902中,视频编码***将当前编码单元(Coding Unit,简称CU)拆分为一个或多个SATD块以供折叠式Hadamard变换电路处理,以及将当前CU中的第一SATD块设置为当前SATD块。在步骤S904中,折叠式Hadamard变换电路在第一周期内接收当前SATD块的第一块的输入数据,以及在步骤S906中,折叠式Hadamard变换电路的共用的Hadamard变换电路在第一周期内执行当前SATD块的第一块的计算。在步骤S908中,折叠式Hadamard变换电路在第一周期之后的第二周期内接收当前SATD块的第二块的输入数据,以及在步骤S910中,共用的Hadamard变换电路在第二周期内执行第二块的计算。在本实施例中,每个SATD块中有两个块,共用的Hadamard变换电路在一个周期内处理这两个块之一。在另一实施例中,每个SATD块中有四个块,编码处理还包括接收当前SATD块的第三块和第四块的步骤,以及在后续的第三和第四周期内由共用的Hadamard变换电路分别执行第三块和第四块的计算的步骤。在步骤S912中,每个折叠式Hadamard变换电路的最后部分执行整个SATD块的计算以产生当前SATD块的最终SATD结果。在步骤S914中,当前CU中的SATD块的SATD结果被累加,得出当前CU的累加SATD结果。在步骤S916中,视频编码***检查当前SATD块是否是当前CU中的最后一个SATD块,如果当前SATD块不是最后一个SATD块,则在步骤S918中,当前CU中的下一个SATD块被设置为当前SATD块,以及当前SATD块由步骤S904到步骤S914处理。如果当前SATD块是当前CU中的最后一个SATD块,则在步骤S920中,当前CU根据当前CU的累加SATD结果进行编码。在一些实施例中,步骤S914中的累加步骤可以与步骤S916并行执行,或与用于下一个SATD块的步骤S904至S914中的任一并行执行,本发明对此不作限制。
代表性***框图图10示出用于实现折叠式Hadamard变换电路的一个或多个实施例的视频编码器1000的示例性***框图。帧内预测模块1010基于当前图片的重构视频数据提供帧内预测子。帧间预测模块1012执行运动估计(Motion Estimation,简称ME)和运动补偿(Motion Compensation,简称MC)以基于参考来自其他图片的视频数据来提供预测子。根据率和失真优化(Rate and Distortion Optimization,简称RDO)技术做出的编码决策,帧内预测模块1010或帧间预测模块1012将选择的预测子提供至加法器1016以形成残差。编码决策基于由折叠式Hadamard变换电路实现的SATD电路的实施例计算的SATD结果或SAD结果做出。当前块的残差由变换模块(Transformation module,简称T)1018和量化模块(Quantization module,简称Q)1020进一步处理。量化模块1020从变换模块1018接收每个变换块的变换系数,以及应用量化处理以生成经变换和量化的残差信号。然后经变换和量化的残差信号由熵编码器1030进行编码以形成视频比特流。然后视频比特流与辅助信息(side information)一起打包。当前块的经变换和量化的残差信号由逆量化模块(InverseQuantization module,简称IQ)1022和逆变换模块(Inverse Transformation module,简称IT)1024处理以恢复预测残差。如图10所示,残差通过加回到重构模块(Reconstructionmodule,简称REC)1026处的所选择的预测子来恢复,以产生重构的视频数据。重构的视频数据可被存储在参考图片缓存器(Reference Picture Buffer,简称Ref.Pict.Buffer)1032中并用于其他图片的预测。由于编码处理,来自REC模块1026的重构视频数据可能会受到各种损害,因此,在重构的视频数据被存储到参考图片缓存器1032之前,环路处理滤波器(InLoop Processing Filter,简称ILPF)1028被用于该重构的视频数据,以进一步提高图像质量。语法元素被提供至熵编码器1030以结合到视频比特流中。
图10中的视频编码器1000的各种元件可以由硬件元件、被配置为执行存储在内存中的程序指令的一个或多个处理器、或硬件和处理器的组合来实现。例如,处理器执行程序指令来执行SATD块的计算以生成SATD结果。处理器配备单个或多个处理核心。在一些示例中,处理器执行程序指令以执行编码器1000中的一些元件中的功能,以及与处理器电耦合的内存用于存储程序指令、与块的重构图像相对应的信息,和/或编码过程中的中间数据。在一些实施例中,内存包括非瞬态计算机可读介质(non-transitory computre readablemedium),例如半导体或固态内存、随机存取内存(Random Access Memory,简称RAM)、只读存储器(Read-Only Memory,简称ROM)、硬盘、光盘或其他合适的存储介质。内存也可以是上面列出的两种或更多种非暂时性计算机可读介质的组合。
在视频编码***中对当前片段执行特定处理的视频数据处理方法的实施例可以在集成到视频压缩芯片中的电路或集成到视频压缩软件中以执行上述处理的程序代码中实现。例如,当前变换块中的变换系数级别可以在将在计算机处理器、数字信号处理器(Digital Signal Processor,简称DSP)、微处理器或现场可程序设计门阵列(FieldProgrammable Gate Array,简称FPGA)上执行的程序代码中实现。这些处理器可以被配置为通过执行定义本发明所体现的特定方法的机器可读软件代码或固件代码来执行根据本发明的特定任务。
在不背离其精神或基本特征的情况下,本发明可以以其他特定形式体现。所描述的示例在所有方面都仅被认为是说明性的而不是限制性的。因此,本发明的范围由所附权利要求而不是由前述描述指示。在权利要求的等效含义和范围内的所有变化都应包含在其范围内。

Claims (18)

1.一种视频编码方法,用于通过视频编码***中的多个折叠式Hadamard变换电路计算当前块的绝对变换差值和,所述方法包括:
将所述当前块拆分成一个或多个绝对变换差值和块;
在所述第一周期内接收与所述当前块的第一绝对变换差值和块的第一块相关联的输入数据,以及在所述第一周期之后的第二周期内接收与所述第一绝对变换差值和块的第二块相关联的输入数据;
在所述第一周期内由多个共用的Hadamard变换电路执行所述第一块的计算,在所述第二周期内由所述多个共用的Hadamard变换电路执行所述第二块的计算,其中所述多个共用的Hadamard变换电路中的每个是所述多个折叠式Hadamard变换电路中的每个的第一部分;
通过所述多个折叠式Hadamard变换电路中的每个的最后部分执行整个所述第一绝对变换差值和块的多个计算,以产生所述第一绝对变换差值和块的最终绝对变换差值和结果;
累加所述当前块中的一个或多个绝对变换差值和块的所述一个或多个最终绝对变换差值和结果以产生所述当前块的最终绝对变换差值和结果;以及
根据所述当前块的所述最终绝对变换差值和结果对所述当前块进行编码。
2.如权利要求1所述的视频编码方法,其特征在于,每个绝对变换差值和块是4x8块,所述第一块是所述4x8块的顶部4x4块,所述第二块是所述4x8块的底部4x4块;其中用以对整个所述第一绝对变换差值和块生成所述最终绝对变换差值和结果的多个计算在所述第二周期之后的第三周期中执行。
3.如权利要求2所述的视频编码方法,其特征在于,所述多个折叠式Hadamard变换电路是多个折叠式8点Hadamard变换电路,所述多个共用的Hadamard变换电路是多个4点Hadamard变换电路。
4.如权利要求1所述的视频编码方法,其特征在于,每个绝对变换差值和块是4x16块,所述第一块是所述4x16块的顶部4x4块,以及所述第二块是所述4x16块的第二4x4块;其中所述视频编码方法进一步接收与所述4x16块的第三4x4块相关联的输入数据以及由所述多个共用的Hadamard变换电路执行所述第三4x4块的多个计算,接收与所述4x16块的第四4x4块相关联的输入数据和执行由所述多个共用的Hadamard变换电路的所述第四4x4块的多个计算。
5.如权利要求1所述的视频编码方法,其特征在于,所述第一块和所述第二块的大小对应于预测阶段的吞吐量。
6.如权利要求1所述的视频编码方法,其特征在于,所述多个折叠式Hadamard变换电路的每个的计算顺序允许与每个绝对变换差值和块的所述第一块相关联的所述多个计算在所述第一周期内被计算。
7.如权利要求1所述的视频编码方法,其特征在于,所述方法进一步包括在多个寄存器中缓存由所述多个共用的Hadamard变换电路计算的所述第一绝对变换差值和块的所述第一块的多个临时结果。
8.如权利要求7所述的视频编码方法,其特征在于,由所述多个折叠式Hadamard变换电路中的每个的所述最后部分执行整个所述第一绝对变换差值和块的多个计算包括:将由所述多个共用的Hadamard变换电路计算的所述第一绝对变换差值和块的所述第二块的多个临时结果与存储在所述多个寄存器中的数据组合。
9.如权利要求1所述的视频编码方法,其特征在于,所述多个折叠式Hadamard变换电路中的每个的所述最后部分包括多个绝对值运算和多个寄存器,以及每个绝对值运算由多个输入共用;其中,由所述多个折叠式Hadamard变换电路中的每个的所述最后部分执行整个所述第一绝对变换差值和块的多个计算包括:将所述多个绝对值运算的所述多个输入中的一些存储到所述多个寄存器中,以及通过所述多个绝对值运算以时间交织方式处理所述多个输入。
10.如权利要求9所述的视频编码方法,其特征在于,所述多个寄存器在多个偶数周期内缓存所述多个共用的Hadamard变换电路的多个临时结果,以及在多个奇数周期内缓存所述多个绝对值运算的所述多个输入中的一些,或者所述多个寄存器在多个奇数周期内缓存所述多个共用的Hadamard变换电路的多个临时结果和在多个偶数周期内缓存所述多个绝对值运算的所述多个输入中的一些。
11.如权利要求1所述的视频编码方法,其特征在于,所述多个折叠式Hadamard变换电路被重复用于绝对差值和计算。
12.如权利要求1所述的视频编码方法,其特征在于,与所述当前块相关联的输入数据包括多个原始样本和所述当前块的预测子之间的多个差值,其中执行多个计算以生成所述最终绝对变换差值和结果包括:将Hadamard变换应用于所述多个差值以生成所述当前块的多个变换差值。
13.如权利要求1所述的视频编码方法,其特征在于,所述当前块由编码单元级权重的双向预测候选编码,所述编码单元级权重的双向预测候选具有一组权重,所述当前块的输入数据包括所述当前块的列表0预测子、列表1预测子和多个原始样本,其中执行多个计算包括:将Hadamard变换应用于所述列表0预测子,将所述Hadamard变换应用于所述列表1预测子,以及将所述Hadamard变换应用于所述多个原始样本,以及由所述编码单元级权重的双向预测候选编码所述当前块的所述最终绝对变换差值和结果,通过将所述列表0预测子的所述Hadamard变换和所述列表1预测子的所述Hadamard变换乘以所述组权重,以及所述多个原始样本的所述Hadamard变换导出。
14.如权利要求13所述的视频编码方法,其特征在于,所述列表0预测子的所述Hadamard变换、所述列表1预测子的所述Hadamard变换和所述多个原始样本的所述Hadamard变换被重复用于计算由具有相同列表0和列表1多个预测子但具有另一组权重的另一个编码单元级权重的双向预测候选对所述当前块进行编码的最终绝对变换差值和结果。
15.如权利要求13所述的视频编码方法,其特征在于,所述当前块的所述多个原始样本的所述Hadamard变换被重复用于计算由具有相同或不同的列表0和列表1的预测子的另一个编码单元级权重的双向预测候选对所述当前块进行编码的最终绝对变换差值和结果。
16.如权利要求1所述的视频编码方法,其特征在于,所述第二周期紧接在所述第一周期之后或者在所述第一周期之后。
17.如权利要求1所述的视频编码方法,其特征在于,所述第一周期是偶数或奇数周期,所述第二周期是所述偶数周期之后的奇数周期或所述奇数周期之后的偶数周期。
18.一种视频编码装置,用于通过视频编码***中的多个折叠式Hadamard变换电路计算当前块的绝对变换差值和,所述装置包括一个或多个电子电路,被设置为:
将所述当前块拆分成一个或多个绝对变换差值和块;
在所述第一周期内接收与所述当前块的第一绝对变换差值和块的第一块相关联的输入数据,以及在所述第一周期之后的第二周期内接收与所述第一绝对变换差值和块的第二块相关联的输入数据;
在所述第一周期内由多个共用的Hadamard变换电路执行所述第一块的计算,在所述第二周期内由所述多个共用的Hadamard变换电路执行所述第二块的计算,其中所述多个共用的Hadamard变换电路中的每个是所述多个折叠式Hadamard变换电路中的每个的第一部分;
通过所述多个折叠式Hadamard变换电路中的每个的最后部分执行整个所述第一绝对变换差值和块的多个计算,以产生所述第一绝对变换差值和块的最终绝对变换差值和结果;
累加所述当前块中的一个或多个绝对变换差值和块的所述一个或多个最终绝对变换差值和结果以产生所述当前块的最终绝对变换差值和结果;以及
根据所述当前块的所述最终绝对变换差值和结果对所述当前块进行编码。
CN202210605177.9A 2022-03-23 2022-05-30 视频编码方法和装置 Pending CN116847082A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/702,345 2022-03-23
US17/702,345 US11736704B1 (en) 2022-03-23 2022-03-23 Methods and apparatuses of SATD folding hardware design in video encoding systems

Publications (1)

Publication Number Publication Date
CN116847082A true CN116847082A (zh) 2023-10-03

Family

ID=87575751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210605177.9A Pending CN116847082A (zh) 2022-03-23 2022-05-30 视频编码方法和装置

Country Status (3)

Country Link
US (1) US11736704B1 (zh)
CN (1) CN116847082A (zh)
TW (1) TWI825751B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20240137522A1 (en) * 2022-10-12 2024-04-25 City University Of Hong Kong Processing and encoding screen content video

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7804900B2 (en) * 2006-02-23 2010-09-28 Industrial Technology Research Institute Method for fast SATD estimation
CN101277445B (zh) 2008-02-19 2010-07-14 重庆邮电大学 快速计算视频编码中绝对变换差和satd的方法
CN106488236B (zh) 2015-09-01 2019-07-12 北京君正集成电路股份有限公司 一种视频编码中绝对变换误差和的计算方法及装置
CN111836050B (zh) 2019-04-17 2023-04-18 上海富瀚微电子股份有限公司 一种视频编码中绝对变换差和的计算方法及装置

Also Published As

Publication number Publication date
US11736704B1 (en) 2023-08-22
TWI825751B (zh) 2023-12-11
TW202339506A (zh) 2023-10-01

Similar Documents

Publication Publication Date Title
RU2696252C1 (ru) Вывод опорных значений режима и кодирование и декодирование информации, представляющей режимы предсказания
US10051273B2 (en) Video decoder and video decoding method
KR101058448B1 (ko) 비디오 인코딩
JP5100015B2 (ja) 画面間又は画面内符号化モードの動画像符号化方法及び装置
CN114765688A (zh) 用于解码器侧帧内模式导出的模板的使用
CN114765686A (zh) 基于多个帧内预测模式的解码或编解码图像的技术
CA3040236A1 (en) Image decoding method and apparatus relying on intra prediction in image coding system
TWI825751B (zh) 視訊編碼方法和裝置
CN113709481A (zh) 一种编码、解码方法、装置及其设备
CN114390289A (zh) 参考像素候选列表构建方法、装置、设备及存储介质
US11856227B2 (en) Transform architecture in video encoding systems
US20230199196A1 (en) Methods and Apparatuses of Frequency Domain Mode Decision in Video Encoding Systems
CN112911312B (zh) 一种编码、解码方法、装置及其设备
KR102435445B1 (ko) 영상 부호화/복호화 방법 및 장치
Lam Improvement and Optimization of H. 264 Video Codec

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