CN118077196A - 用于解码器侧帧内模式推导的方法和设备 - Google Patents
用于解码器侧帧内模式推导的方法和设备 Download PDFInfo
- Publication number
- CN118077196A CN118077196A CN202280064428.5A CN202280064428A CN118077196A CN 118077196 A CN118077196 A CN 118077196A CN 202280064428 A CN202280064428 A CN 202280064428A CN 118077196 A CN118077196 A CN 118077196A
- Authority
- CN
- China
- Prior art keywords
- video
- prediction
- block
- intra
- mode
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 89
- 238000009795 derivation Methods 0.000 title claims abstract description 15
- 238000003860 storage Methods 0.000 claims abstract description 24
- 238000007667 floating Methods 0.000 claims abstract description 11
- 238000007792 addition Methods 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 description 52
- 238000012545 processing Methods 0.000 description 40
- 230000004927 fusion Effects 0.000 description 37
- 238000005192 partition Methods 0.000 description 30
- 230000008569 process Effects 0.000 description 26
- 239000000523 sample Substances 0.000 description 25
- 241000023320 Luma <angiosperm> Species 0.000 description 23
- OSWPMRLSEDHDFF-UHFFFAOYSA-N methyl salicylate Chemical compound COC(=O)C1=CC=CC=C1O OSWPMRLSEDHDFF-UHFFFAOYSA-N 0.000 description 23
- 238000013461 design Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 19
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 18
- 238000013139 quantization Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000004458 analytical method Methods 0.000 description 14
- 238000000638 solvent extraction Methods 0.000 description 13
- 238000005516 engineering process Methods 0.000 description 8
- 230000011218 segmentation Effects 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000011664 signaling Effects 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 230000006872 improvement Effects 0.000 description 5
- 238000005070 sampling Methods 0.000 description 5
- 230000002123 temporal effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010276 construction Methods 0.000 description 4
- 238000002156 mixing Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 239000011159 matrix material Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 239000013074 reference sample Substances 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000015556 catabolic process Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000006073 displacement reaction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000007500 overflow downdraw method Methods 0.000 description 2
- 230000001131 transforming effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000009499 grossing Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012432 intermediate storage Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
- H04N19/11—Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/189—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
- H04N19/196—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding being specially adapted for the computation of encoding parameters, e.g. by averaging previously computed encoding parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/50—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
- H04N19/593—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
提供了用于视频解码的方法、装置和非暂时性计算机可读存储介质。在一种方法中,解码器识别要执行的浮点除法操作以导出解码器侧帧内模式推导(DIMD)模式或基于模板的帧内模式推导(TIMD)模式中的参数;解码器通过基于查找表(LUT)用整数加法和乘法代替浮点除法运算,来获取DIMD或TIMD中的参数。
Description
相关申请的交叉引用
本申请基于于2021年9月22日提交的临时申请第63/247,224号并要求该申请的优先权,出于所有目的,其全部内容通过引用并入本文。
技术领域
本公开涉及视频编解码和压缩。更具体地,本公开涉及解码器侧帧内模式推导(DIMD)。
背景技术
数字视频由多种电子设备支持,例如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流媒体设备等。电子设备通过通信网络发送和接收或以其他方式传送数字视频数据,和/或将数字视频数据存储在存储设备上。由于通信网络的带宽容量有限以及存储设备的存储器资源有限,在传送或存储视频数据之前,可以使用视频编解码来根据一种或多种视频编解码标准来压缩视频数据。例如,视频编解码标准包括通用视频编解码(VVC)、联合探索测试模型(JEM)、高效视频编解码(HEVC/H.265)、高级视频编解码(AVC/H.264)、运动图像专家组(MPEG)编解码等。视频编解码通常使用预测方法(例如,帧间预测、帧内预测等),预测方法利用视频数据中固有的冗余性。视频编解码旨在将视频数据压缩为使用较低比特率的形式,同时避免或最小化视频质量的下降。
发明内容
本公开的示例提供了用于使用帧内预测进行视频编解码的方法和装置。
根据本公开,提供了一种用于视频解码的方法。该方法可以包括:由解码器识别要执行的浮点除法运算,以导出解码器侧帧内模式推导(DIMD)模式或基于模板的帧内模式推导(TIMD)模式中的参数;以及由解码器通过基于查找表(LUT)用整数加法和乘法代替浮点除法运算,来获取DIMD或TIMD中的参数。
应当理解,上面的一般描述和下面的详细描述仅是示例性和解释性的,并不旨在限制本公开。
附图说明
并入本说明书并构成本说明书的一部分的附图示出了与本公开一致的示例,并且与说明书一起用于解释本公开的原理。
图1是说明根据本公开的一些实施方式的用于对视频块进行编码和解码的示范性系统的框图。
图2是说明根据本公开的一些实施方式的示范性视频编码器的框图。
图3是说明根据本公开的一些实施方式的示范性视频解码器的框图。
图4A到图4E是说明根据本公开的一些实施方式如何将帧递归地分割成不同大小和形状的多个视频块的框图。
图5A说明了根据本公开的一些实施方式的应用于预测模式的PDPC所使用的样点的定义。
图5B说明了根据本公开的一些实施方式的应用于预测模式的PDPC所使用的样点的定义。
图5C说明了根据本公开的一些实施方式的应用于预测模式的PDPC所使用的样点的定义。
图5D说明了根据本公开的一些实施方式的应用于预测模式的PDPC所使用的样点的定义。
图6说明了根据本公开的一些实施方式的允许的GPM分区的示例。
图7说明了根据本公开的一些实施方式对其执行梯度分析的所选像素的示例。
图8说明了根据本公开的一些实施方式的卷积过程。
图9说明了根据本公开的一些实施方式的通过两种HoG模式和一种平面模式的加权平均的预测融合。
图10说明了根据本公开的一些实施方式的在TIMD中使用的模板及其参考样点。
图11A是示出根据本公开的一些实施方式的利用TIMD的视频解码过程的框图。
图11B是示出根据本公开的一些实施方式的利用TIMD的视频解码过程的框图。
图11C是示出根据本公开的一些实施方式的利用TIMD的视频解码过程的框图。
图12A是示出根据本公开的一些实施方式的利用DIMD的视频解码过程的框图。
图12B是示出根据本公开的一些实施方式的利用DIMD的视频解码过程的框图。
图12C是示出根据本公开的一些实施方式的利用DIMD的视频解码过程的框图。
图13说明了根据本公开的一些实施方式的在所提出的整数化方案中使用的分数比特。
图14是说明根据本公开的一些实施方式的与用户接口耦合的计算环境的框图。
图15是示出根据本公开的一些实施方式的视频解码的框图。
具体实施方式
现在将详细参考示例实施例,其示例在附图中示出。下面的描述参考了附图,其中除非另有说明,不同附图中的相同标号表示相同或相似的元件。下述优选实施例中所阐述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅仅是与所附权利要求中记载的本公开相关的方面一致的装置和方法的示例。
本公开中使用的术语仅用于描述特定实施例的目的,并不旨在限制本公开。如本公开和所附权利要求中所使用的,单数形式“一”、“一个”和“该”也旨在包括复数形式,除非上下文另有明确指示。还应当理解,本文所使用的术语“和/或”旨在表示并包括一个或多个相关联的列出项的任何或所有可能的组合。
应当理解,尽管这里可以使用术语“第一”、“第二”、“第三”等来描述各种信息,但是信息不应受到这些术语的限制。这些术语仅用于区分一类信息与另一类信息。例如,在不脱离本公开的范围的情况下,第一信息可以被称为第二信息;类似地,第二信息也可以称为第一信息。如本文所使用的,术语“如果”可以根据上下文被理解为表示“当……时”或“在……时”或“响应于判断”。
可以使用各种视频编解码技术来压缩视频数据。根据一种或多种视频编解码标准来执行视频编解码。例如,现在一些众所周知的视频编解码标准包括通用视频编解码(VVC)、高效视频编解码(HEVC,也称为H.265或MPEG-H Part2)和高级视频编解码(AVC,也称为H.264或MPEG-4Part10),由ISO/IEC MPEG和ITU-T VECG联合开发。AOMedia Video 1(AV1)由开放媒体联盟(AOM)开发,作为其先前标准VP9的后继者。音视频编解码(AVS),全称数字音频和数字视频压缩标准,是中国音视频编解码标准工作组制定的又一个视频压缩标准系列。大多数现有的视频编解码标准都建立在著名的混合视频编解码框架之上,即使用基于块的预测方法(例如帧间预测、帧内预测)来减少视频图像或序列中存在的冗余并使用变换编解码来压缩预测误差的能量。视频编解码技术的一个重要目标是将视频数据压缩成使用较低比特率的形式,同时避免或最小化视频质量的下降。
第一代AVS标准包括中国国家标准《信息技术,高级音视频编解码,第2部分:视频(Information Technology,Advanced AudioVideo Coding,Part 2:Video)》(称为AVS1)和《信息技术,高级音视频编解码,第16部分:广播电视视频(Information Technology,Advanced AudioVideo Coding Part 16:Radio TelevisionVideo》(称为AVS+)。与MPEG-2标准相比,它可以在相同的感知质量下节省大约50%的比特率。AVS1标准视频部分于2006年2月颁布为中国国家标准。第二代AVS标准包括中国国家标准“信息技术、高效多媒体编解码(Information Technology,Efficient Multimedia Coding)”系列(简称AVS2),主要针对超高清电视节目的传输。AVS2的编解码效率是AVS+的两倍。2016年5月,AVS2作为中国国家标准发布。同时,AVS2标准视频部分由电气电子工程师协会(IEEE)提交,作为一个国际标准申请。AVS3标准是针对UHD视频应用的新一代视频编码标准,旨在超越最新国际标准HEVC的编解码效率。2019年3月,在第68届AVS会议上,AVS3-P2基线完成,比HEVC标准提供约30%的比特率节省。目前,存在一种称为高性能模型(HPM)的参考软件由AVS小组维护,用于演示AVS3标准的参考实施方式。
图1是示出了根据本公开的一些实施方式的用于并行地对视频块进行编码和解码的示例性系统10的框图。如图1中所示,系统10包括源设备12,源设备12生成并编码稍后将由目标设备14进行解码的视频数据。源设备12和目标设备14可以包括各种各样的电子设备中的任何电子设备,包括台式计算机或膝上型计算机、平板计算机、智能电话、机顶盒、数字电视、相机、显示器设备、数字媒体播放器、视频游戏机、视频流传输设备等。在一些实施方式中,源设备12和目标设备14配备有无线通信能力。
在一些实施方式中,目标设备14可以经由链路16接收待解码的编码视频数据。链路16可以包括能够将编码视频数据从源设备12移动到目标设备14的任何类型的通信介质或设备。在一个示例中,链路16可以包括使源设备12能够实时地将编码视频数据直接发送到目标设备14的通信介质。编码视频数据可以根据通信标准(例如无线通信协议)被调制,并且被发送到目标设备14。通信介质可以包括任何无线或有线通信介质,例如射频(RF)频谱或一个或多个物理传输线。通信介质可以形成基于分组的网络(例如局域网、广域网或诸如互联网的全球网)的一部分。通信介质可以包括路由器、交换机、基站或可以有利于促进从源设备12到目标设备14的通信的任何其他装置。
在其他一些实施方式中,可以将编码视频数据从输出接口22发送到存储设备32。随后,可以由目标设备14经由输入接口28访问存储设备32中的编码视频数据。存储设备32可以包括各种分布式或本地访问的数据存储介质中的任何数据存储介质,例如硬盘驱动器、蓝光光盘、数字通用盘(DVD)、压缩盘只读存储器(CD-ROM)、闪存存储器、易失性或非易失性存储器、或者用于存储编码视频数据的任何其他合适的数字存储介质。在另一示例中,存储设备32可以对应于文件服务器或可以保持由源设备12生成的编码视频数据的另一中间存储设备。目标设备14可以经由流传输或下载从存储设备32访问存储的视频数据。文件服务器可以是能够存储编码视频数据并且将编码视频数据发送到目标设备14的任何类型的计算机。示例性文件服务器包括网络服务器(例如,用于网站)、文件传输协议(FTP)服务器、网络附属存储(NAS)设备或本地磁盘驱动器。目标设备14可以通过适合于访问存储在文件服务器上的编码视频数据的任何标准数据连接来访问编码视频数据,标准数据连接包括无线信道(例如,无线保真(Wi-Fi)连接)、有线连接(例如,数字订户线(DSL)、电缆调制解调器等)或无线信道和有线连接两者的组合。编码视频数据从存储设备32的传输可以是流传输、下载传输或流传输和下载传输两者的组合。
如图1中所示,源设备12包括视频源18、视频编码器20和输出接口22。视频源18可以包括诸如以下项的源或此类源的组合:视频捕获设备(例如,摄像机)、包含先前捕获的视频的视频存档、用于从视频内容提供者接收视频的视频馈入接口、和/或用于生成作为源视频的计算机图形数据的计算机图形系统。作为一个示例,如果视频源18是安全监控系统的摄像机,则源设备12和目标设备14可以形成相机电话或视频电话。然而,本申请中所描述的实施方式通常可以适用于视频编解码,并且可以应用于无线和/或有线应用。
可以由视频编码器20对捕获、预先捕获或计算机生成的视频进行编码。可以经由源设备12的输出接口22将编码视频数据直接发送到目标设备14。还可以(或备选地)将编码视频数据存储到存储设备32上以便稍后被目标设备14或其他设备访问,以用于解码和/或回放。输出接口22可以进一步包括调制解调器和/或发送器。
目标设备14包括输入接口28、视频解码器30和显示器设备34。输入接口28可以包括接收器和/或调制解调器,并且通过链路16接收编码视频数据。通过链路16传送或在存储设备32上提供的编码视频数据可以包括由视频编码器20生成的各种语法元素以供视频解码器30在对视频数据进行解码时使用。此类语法元素可以被包括在通信介质上发送的、存储在存储介质上的或存储在文件服务器上的编码视频数据内。
在一些实施方式中,目标设备14可以包括显示器设备34,显示器设备34可以是集成显示器设备和被配置为与目标设备14通信的外部显示器设备。显示器设备34向用户显示解码视频数据,并且可以包括各种显示器设备中的任何显示器设备,诸如液晶显示器(LCD)、等离子显示器、有机发光二极管(OLED)显示器或另一类型的显示器设备。
视频编码器20和视频解码器30可以根据专有标准或行业标准(例如,VVC、HEVC、MPEG-4的第10部分、AVC)或此类标准的扩展进行操作。应当理解,本申请不限于特定的视频编码/解码标准,并且可以适用于其他视频编码/解码标准。通常认为源设备12的视频编码器20可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行编码。类似地,还通常认为目标设备14的视频解码器30可以被配置为根据这些当前标准或未来标准中的任何标准对视频数据进行解码。
视频编码器20和视频解码器30可以分别被实现为各种合适的编码器和/或解码器电路中的任何电路,例如一个或多个微处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、分立逻辑器件、软件、硬件、固件或其任何组合。当部分地以软件实现时,电子设备可以将用于软件的指令存储于合适的非暂态计算机可读介质中,并且使用一个或多个处理器执行硬件中的指令以执行本公开中所公开的视频编码/解码操作。视频编码器20和视频解码器30中的每一个可以被包括在一个或多个编码器或解码器中,编码器或解码器中的任一者可以被集成为相应设备中的组合式编码器/解码器(CODEC)的一部分。
图2是示出了根据本申请中描述的一些实施方式的示例性视频编码器20的框图。视频编码器20可以对视频帧内的视频块执行帧内预测编码和帧间预测编码。帧内预测编码依赖于空间预测以减少或移除给定视频帧或图片内的视频数据中的空间冗余。帧间预测编码依赖于时间预测以减少或移除视频序列的邻近视频帧或图片内的视频数据中的时间冗余。应当注意的是,在视频编解码领域中,术语“帧”可以用作术语“图像”或“图片”的同义词。
如图2所示,视频编码器20包括视频数据存储器40、预测处理单元41、已解码图片缓冲器(DPB)64、加法器50、变换处理单元52、量化单元54和熵编码单元56。预测处理单元41还包括运动估计单元42、运动补偿单元44、分区单元45、帧内预测处理单元46和帧内块复制(BC)单元48。在一些实施方式中,视频编码器20还包括反量化单元58、逆变换处理单元60和加法器62用于视频块重建。诸如去块滤波器的环路滤波器63可以位于加法器62和DPB 64之间以对块边界进行滤波以从重建的视频中去除块效应伪像。除了去块滤波器之外,还可以使用诸如样点自适应偏移(SAO)滤波器和/或自适应环路滤波器(ALF)之类的另一环路滤波器来对加法器62的输出进行滤波。在一些示例中,环路滤波器可以被省略,并且解码的视频块可以由加法器62直接提供给DPB 64。视频编码器20可以采用固定或可编程硬件单元的形式,或者可以被划分为一个或多个所示的固定或可编程硬件单元。
视频数据存储器40可以存储将由视频编码器20的组件编码的视频数据。可例如从图1所示的视频源18获得视频数据存储器40中的视频数据。DPB 64是存储供视频编码器20(例如,以帧内或帧间预测编码模式)在对视频数据进行编码时使用的参考视频数据(例如,参考帧或图片)的缓冲器。视频数据存储器40和DPB 64可以由各种存储器设备中的任何存储器设备形成。在各种示例中,视频数据存储器40可以与视频编码器20的其他组件一起在芯片上,或相对于那些组件在芯片外。
如图2中所示,在接收到视频数据之后,预测处理单元41内的分割单元45将视频数据分割为视频块。此分割还可以包括根据与视频数据相关联的预定义的拆分结构(例如四叉树(QT)结构)将视频帧分割为条带、瓦片(tile)(例如,视频块的集合)或其他更大的编码单元(CU)。视频帧是或可以被视为具有样点值的二维样点阵列或矩阵。阵列中的样点也可以被称为像素(pixel)或图像元素(pel)。阵列或图片的水平和垂直方向(或轴)上的样点的数量定义了视频帧的尺寸和/或分辨率。例如,可以通过使用QT分割将视频帧划分为多个视频块。视频块再次是或可以被视为具有样点值的二维样点阵列或矩阵,但是其维度小于视频帧的维度。视频块的水平和垂直方向(或轴)上的样点的数量定义了视频块的尺寸。通过例如迭代地使用QT分割、二叉树(BT)分割或三叉树(TT)分割或其任意组合,可以将视频块进一步分割为一个或多个块分区或子块(其可以再次形成块)。应注意,本文所使用的术语“块”或“视频块”可以是帧或图片的一部分,尤其是矩形(正方形或非正方形)部分。参考例如HEVC和VVC,块或视频块可以是或对应于编码树单元(CTU)、CU、预测单元(PU)或变换单元(TU)和/或可以是或对应于相应的块(例如编码树块(CTB)、编码块(CB)、预测块(PB)或变换块(TB))和/或子块。
预测处理单元41可以基于误差结果(例如,编码速率和失真等级)为当前视频块选择多个可行预测编码模式中的一个,例如多个帧内预测编码模式中的一个或多个帧间预测编码模式中的一个。预测处理单元41可以将所得的帧内预测编码块或帧间预测编码块提供给加法器50以生成残差块,并且提供给加法器62以重建编码块以用于随后作为参考帧的一部分使用。预测处理单元41还将语法元素(例如运动矢量、帧内模式指示符、分割信息和其他此类语法信息)提供给熵编码单元56。
为了选择用于当前视频块的合适的帧内预测编码模式,预测处理单元41内的帧内预测处理单元46可以与和待编码的当前块在同一帧中的一个或多个邻近块相关地执行当前视频块的帧内预测编码以提供空间预测。预测处理单元41内的运动估计单元42和运动补偿单元44与一个或多个参考帧中的一个或多个预测块相关地执行当前视频块的帧间预测编码以提供时间预测。视频编码器20可以执行多个编码遍次,例如,以为视频数据的每个块选择合适的编码模式。
在一些实施方式中,运动估计单元42通过根据视频帧序列内的预定模式生成运动矢量来确定用于当前视频帧的帧间预测模式,运动矢量指示当前视频帧内的视频块相对于参考视频帧内的预测块的位移。由运动估计单元42执行的运动估计是生成运动矢量的过程,该运动矢量估计针对视频块的运动。例如,运动矢量可以指示当前视频帧或图片内的视频块相对于与当前帧内正被编码的当前块相关的参考帧内的预测块的位移。预定模式可以将序列中的视频帧指定为P帧或B帧。帧内BC单元48可以以与由运动估计单元42确定用于帧间预测的运动矢量类似的方式确定用于帧内BC编码的矢量(例如,块矢量),或可以利用运动估计单元42确定块矢量。
在像素差方面,针对视频块的预测块可以是或可以对应于被认为与待编码视频块紧密匹配的参考帧的块或参考块,像素差可以由绝对差总和(SAD)、平方差总和(SSD)或其他差度量确定。在一些实施方式中,视频编码器20可以计算用于DPB 64中存储的参考帧的子整数像素位置的值。例如,视频编码器20可以对参考帧的四分之一像素位置、八分之一像素位置或其他分数像素位置的值进行内插。因此,运动估计单元42可以相对于全像素位置和分数像素位置执行运动搜索并且输出具有分数像素精度的运动矢量。
运动估计单元42通过以下方式来计算针对帧间预测编码帧中的视频块的运动矢量:将视频块的位置与从第一参考帧列表(列表0)或第二参考帧列表(列表1)选择的参考帧的预测块的位置进行比较,第一参考帧列表和第二参考帧列表中的每一个参考帧列表标识DPB 64中存储的一个或多个参考帧。运动估计单元42将计算出的运动矢量发送到运动补偿单元44,然后发送到熵编码单元56。
由运动补偿单元44执行的运动补偿可以涉及基于由运动估计单元42确定的运动矢量获取或生成预测块。在接收到针对当前视频块的运动矢量之后,运动补偿单元44可以在参考帧列表中的一个参考帧列表中定位运动矢量所指向的预测块,从DPB 64取回预测块,并且将预测块转发到加法器50。然后,加法器50通过从正被编码的当前视频块的像素值减去由运动补偿单元44提供的预测块的像素值来形成像素差值的残差视频块。形成残差视频块的像素差值可以包括亮度分量差或色度分量差或两者。动补偿单元44还可以生成与视频帧的视频块相关联的语法元素以供视频解码器30在对视频帧的视频块进行解码时使用。语法元素可以包括例如定义用于识别预测块的运动矢量的语法元素、指示预测模式的任何标志、或本文描述的任何其他语法信息。应注意,运动估计单元42和运动补偿单元44可以高度集成,但出于概念目的而单独说明。
在一些实施方式中,帧内BC单元48可以以与上文结合运动估计单元42和运动补偿单元44所描述的方式类似的方式生成矢量并获取预测块,但是这些预测块在与正被编码的当前块相同的帧中,并且这些矢量被称为块矢量而非运动矢量。具体地,帧内BC单元48可以确定将用于对当前块进行编码的帧内预测模式。在一些示例中,帧内BC单元48可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且通过率失真分析来测试它们的性能。接下来,帧内BC单元48可以在各种测试的帧内预测模式中选择合适的帧内预测模式来使用并相应地生成帧内模式指示符。例如,帧内BC单元48可以使用率失真分析针对各种测试的帧内预测模式计算率失真值,并且在测试的模式中选择具有最佳率失真特性的帧内预测模式作为合适的帧内预测模式来使用。率失真分析大体上确定编码块与被编码以产生编码块的原始未编码块之间的失真(或误差)量、以及用于产生编码块的比特率(即,比特数量)。帧内BC单元48可以根据针对各种编码块的失真和速率计算比率,以确定哪个帧内预测模式展现针对块的最佳率失真值。
在其他示例中,帧内BC单元48可以全部或部分地使用运动估计单元42和运动补偿单元44来执行根据本文描述的实施方式的用于帧内BC预测的此类功能。在任一情况下,对于帧内块复制,在像素差方面,预测块可以是被认为与待编码的块紧密匹配的块,像素差可以由SAD、SSD或其他差度量确定,并且识别预测块可以包括计算针对子整数像素位置的值。
无论预测块是来自根据帧内预测的同一帧还是来自根据帧间预测的不同帧,视频编码器20可以通过从正被编码的当前视频块的像素值减去预测块的像素值来形成像素差值,从而形成残差视频块。形成残差视频块的像素差值可以包括亮度分量差和色度分量差两者。
作为如上文所描述的由运动估计单元42和运动补偿单元44执行的帧间预测或由帧内BC单元48执行的帧内块复制预测的替代方案,帧内预测处理单元46可以对当前视频块进行帧内预测。具体地,帧内预测处理单元46可以确定帧内预测模式以用于对当前块进行编码。为此,帧内预测处理单元46可以例如在单独的编码遍次期间使用各种帧内预测模式来对当前块进行编码,并且帧内预测处理单元46(或在一些示例中,模式选择单元)可以从测试的帧内预测模式中选择合适的帧内预测模式来使用。帧内预测处理单元46可以将指示针对块选择的帧内预测模式的信息提供给熵编码单元56。熵编码单元56可以将指示选择的帧内预测模式的信息编码到比特流中。
在预测处理单元41经由帧间预测或帧内预测确定针对当前视频块的预测块之后,加法器50通过从当前视频块减去预测块来形成残差视频块。残差块中的残差视频数据可以被包括在一个或多个TU中并且提供给变换处理单元52。变换处理单元52使用变换(例如离散余弦变换(DCT)或概念上类似的变换)将残差视频数据变换为残差变换系数。
变换处理单元52可以将所得变换系数发送到量化单元54。量化单元54对变换系数进行量化以进一步减小比特率。量化过程还可以减小与系数中的一些或全部相关联的比特深度。可以通过调整量化参数来修改量化程度。在一些示例中,量化单元54可以随后对包括量化的变换系数的矩阵执行扫描。备选地,熵编码单元56可以执行扫描。
在量化之后,熵编码单元56使用例如上下文自适应可变长度编码(CAVLC)、上下文自适应二进制算术编码(CABAC)、基于语法的上下文自适应二进制算术编码(SBAC)、概率区间分割熵(PIPE)编码或另一熵编码方法或技术,将量化的变换系数熵编码成视频比特流。然后,可以将编码的比特流发送到如图1所示的视频解码器30,或存档于如图1所示的存储设备32中以供稍后发送到视频解码器30或由视频解码器30取回。熵编码单元56还可以对用于正被编码的当前视频帧的运动矢量和其他语法元素进行熵编码。
反量化单元58和逆变换处理单元60分别应用反量化和逆变换以在像素域中重建残差视频块以用于生成用于预测其他视频块的参考块。如上文指出的,运动补偿单元44可以从存储在DPB 64中的帧的一个或多个参考块生成运动补偿预测块。运动补偿单元44还可以将一个或多个内插滤波器应用于预测块以计算子整数像素值以用于在运动估计时使用。
加法器62将重建的残差块与由运动补偿单元44产生的运动补偿预测块相加来产生参考块以存储在DPB 64中。然后,参考块可以由帧内BC单元48、运动估计单元42和运动补偿单元44用作预测块以对后续视频帧中的另一视频块进行帧间预测。
图3是示出了根据本申请的一些实施方式的示例性视频解码器30的框图。视频解码器30包括视频数据存储器79、熵解码单元80、预测处理单元81、反量化单元86、逆变换处理单元88、加法器90和DPB 92。预测处理单元81进一步包括运动补偿单元82、帧内预测单元84和帧内BC单元85。视频解码器30可以执行与上文结合图2关于视频编码器20所描述的编码过程基本互逆的解码过程。例如,运动补偿单元82可以基于从熵解码单元80接收的运动矢量生成预测数据,而帧内预测单元84可以基于从熵解码单元80接收的帧内预测模式指示符生成预测数据。
在一些示例中,视频解码器30的单元可以被分派任务以执行本申请的实施方式。此外,在一些示例中,本公开的实施方式可以分散在视频解码器30的单元中的一个或多个单元中。例如,帧内BC单元85可以单独地或与视频解码器30的其他单元(例如运动补偿单元82、帧内预测单元84和熵解码单元80)组合地执行本申请的实施方式。在一些示例中,视频解码器30可以不包括帧内BC单元85,并且帧内BC单元85的功能可以由预测处理单元81的其他组件(例如运动补偿单元82)执行。
视频数据存储器79可以存储将由视频解码器30的其他组件进行解码的视频数据,例如编码视频比特流。可以例如从存储设备32、从本地视频源(例如相机)、经由视频数据的有线或无线网络通信、或通过访问物理数据存储介质(例如,闪存驱动器或硬盘)获得存储在视频数据存储器79中的视频数据。视频数据存储器79可以包括存储来自编码视频比特流的编码视频数据的编码图片缓冲器(CPB)。视频解码器30的DPB 92存储参考视频数据以供视频解码器30(例如,以帧内或帧间预测编码模式)在对视频数据进行解码时使用。视频数据存储器79和DPB 92可以由各种存储器设备中的任何存储器设备形成,例如动态随机存取存储器(DRAM)(包括同步DRAM(SDRAM))、磁阻式RAM(MRAM)、电阻式RAM(RRAM)或其他类型的存储器设备。出于说明性目的,视频数据存储器79和DPB 92在图3中被描绘为视频解码器30的两个不同组件。但是对于本领域的技术人员将显而易见的是,视频数据存储器79和DPB92可以由同一存储器设备或单独存储器设备提供。在一些示例中,视频数据存储器79可以与视频解码器30的其他组件一起在芯片上,或相对于那些组件在芯片外。
在解码过程期间,视频解码器30接收表示编码视频帧的视频块和相关联的语法元素的编码视频比特流。视频解码器30可以在视频帧级和/或视频块级接收语法元素。视频解码器30的熵解码单元80对比特流进行熵解码以生成量化系数、运动矢量或帧内预测模式指示符、以及其他语法元素。然后,熵解码单元80将运动矢量或帧内预测模式指示符、以及其他语法元素转发到预测处理单元81。
当视频帧被编码为帧内预测编码(I)帧或用于其他类型的帧中的帧内编码预测块时,预测处理单元81的帧内预测单元84可以基于用信号传送的帧内预测模式和来自当前帧的先前解码块的参考数据来生成用于当前视频帧的视频块的预测数据。
当视频帧被编码为帧间预测编码(即,B或P)帧时,预测处理单元81的运动补偿单元82基于从熵解码单元80接收的运动矢量和其他语法元素产生针对当前视频帧的视频块的一个或多个预测块。预测块中的每一个可以从参考帧列表中的一个参考帧列表内的参考帧产生。视频解码器30可以基于存储在DPB 92中的参考帧使用默认构建技术来构建参考帧列表,即,列表0和列表1。
在一些示例中,当根据本文描述的帧内BC模式对视频块进行编码时,预测处理单元81的帧内BC单元85基于从熵解码单元80接收的块矢量和其他语法元素产生针对当前视频块的预测块。预测块可以在由视频编码器20定义的与当前视频块相同的图片的重建区域内。
运动补偿单元82和/或帧内BC单元85通过解析运动矢量和其他语法元素来确定针对当前视频帧的视频块的预测信息,然后使用该预测信息产生针对正被解码的当前视频块的预测块。例如,运动补偿单元82使用接收到的语法元素中的一些语法元素来确定用于对视频帧的视频块进行编码的预测模式(例如,帧内预测或帧间预测)、帧间预测帧类型(例如,B或P)、用于针对帧的参考帧列表中的一个或多个的构建信息、用于帧的每个帧间预测编码视频块的运动矢量、用于帧的每个帧间预测编码视频块的帧间预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
类似地,帧内BC单元85可以使用接收到的语法元素中的一些语法元素,例如标志,以确定当前视频块是使用帧内BC模式预测的、帧的哪些视频块在重建区域内且应被存储在DPB 92中的构建信息、用于帧的每个帧内BC预测视频块的块矢量、用于帧的每个帧内BC预测视频块的帧内BC预测状态、以及用于对当前视频帧中的视频块进行解码的其他信息。
运动补偿单元82还可以使用如由视频编码器20在对视频块进行编码期间使用的内插滤波器执行内插,以计算针对参考块的子整数像素的内插值。在这种情况下,运动补偿单元82可以根据接收到的语法元素确定由视频编码器20使用的内插滤波器,并且使用这些内插滤波器来产生预测块。
反量化单元86使用由视频编码器20针对视频帧中的每个视频块计算出的用于确定量化程度的相同量化参数,对在比特流中提供且由熵解码单元80熵解码的量化的变换系数进行反量化。逆变换处理单元88将逆变换(例如,逆DCT、逆整数变换或概念上类似的逆变换过程)应用于变换系数,以便在像素域中重建残差块。
在运动补偿单元82或帧内BC单元85基于矢量和其他语法元素生成当前视频块的预测块之后,加法器90通过对来自逆变换处理单元88的残差块和由运动补偿单元82和帧内BC单元85生成的相应预测块求和来重建当前视频块的解码视频块。诸如去块滤波器、SAO滤波器和/或ALF的环路滤波器91可以位于加法器90与DPB 92之间以进一步处理解码后的视频块。在一些示例中,环路滤波器91可以被省略,并且解码后的视频块可以由加法器90直接提供给DPB 92。然后,给定帧中的解码视频块被存储在DPB 92中,DPB 92存储用于下一个视频块的后续运动补偿的参考帧。DPB 92或与DPB 92分开的存储器设备也可存储经解码的视频以供稍后在显示设备(例如图1的显示设备34)上呈现。
在典型的视频编码过程中,视频序列通常包括帧或图片的有序集合。每一帧可以包括三个样点阵列,表示为SL、SCb和SCr。SL是亮度样点的二维阵列。SCb是Cb色度样点的二维阵列。SCr是Cr色度样点的二维阵列。在其他实例中,帧可以是单色的,因此仅包括亮度样点的一个二维阵列。
如图4A中所示,视频编码器20(或更具体地,分割单元45)通过首先将帧分割为CTU的集合来生成帧的编码表示。视频帧可以包括以光栅扫描顺序从左到右和从上到下连续排序的整数个CTU。每个CTU是最大的逻辑编码单元,并且由视频编码器20在序列参数集中用信号传送CTU的宽度和高度,使得视频序列中的所有CTU具有128×128、64×64、32×32和16×16之一的相同尺寸。但是应当注意,本申请不必限于特定尺寸。如图4B中所示,每个CTU可以包括亮度样点的一个CTB、色度样点的两个对应编码树块、以及用于对编码树块的样点进行编码的语法元素。语法元素描述编码像素块的不同类型的单元的性质以及可以如何在视频解码器30处重建视频序列,包括帧间预测或帧内预测、帧内预测模式、运动矢量和其他参数。在单色图片或具有三个单独颜色平面的图片中,CTU可以包括单个编码树块和用于对该编码树块的样点进行编码的语法元素。编码树块可以是N×N的样点块。
为了实现更好的性能,视频编码器20可以对CTU的编码树块递归地执行树分割,例如二叉树分割、三叉树分割、四叉树分割或其组合,并且将CTU划分为较小的CU。如图4C中所描绘的,首先将64×64的CTU 400划分为四个较小的CU,每个CU具有32×32的块尺寸。在四个较小的CU中,将CU 410和CU 420分别划分为块尺寸为16×16的四个CU。将两个16×16的CU 430和CU 440分别进一步划分为块尺寸为8×8的四个CU。图4D描绘了示出如图4C中所描绘的CTU 400的分割过程的最终结果的四叉树数据结构,四叉树的每个叶节点与范围从32×32到8×8的相应尺寸的一个CU对应。类似于图4B中描绘的CTU,每个CU可以包括相同尺寸的帧的亮度样点的CB和色度样点的两个对应编码块、以及用于对编码块的样点进行编码的语法元素。在单色图片或具有三个单独颜色平面的图片中,CU可以包括单个编码块和用于对编码块的样点进行编码的语法结构。应注意,图4C和图4D中所描绘的四叉树分割仅用于说明性目的,并且一个CTU可以基于四叉树分割/三叉树分割/二叉树分割而被拆分为多个CU以适应于变化的局部特性。在多类型树结构中,一个CTU按照四叉树结构被分割,并且每个四叉树叶CU可以按照二叉和三叉树结构被进一步分割。如图4E所示,具有宽度W和高度H的编码块有五种可能的分割类型,即四元分割、水平二元分割、垂直二元分割、水平三元分割和垂直三元分割。
在一些实施方式中,视频编码器20可以进一步将CU的编码块分割为一个或多个(M×N个)PB。PB是被应用相同预测(帧间或帧内)的矩形(正方形或非正方形)样点块。CU的PU可以包括亮度样点的PB、色度样点的两个对应PB和用于对PB进行预测的语法元素。在单色图片或具有三个单独颜色平面的图片中,PU可以包括单个PB和用于对PB进行预测的语法结构。视频编码器20可以生成针对CU的每个PU的亮度PB、Cb PB和Cr PB的预测亮度块、预测Cb块和预测Cr块。
视频编码器20可以使用帧内预测或帧间预测来生成针对PU的预测块。如果视频编码器20使用帧内预测来生成PU的预测块,则视频编码器20可以基于与PU相关联的帧的解码样点来生成PU的预测块。如果视频编码器20使用帧间预测来生成PU的预测块,则视频编码器20可以基于除与PU相关联的帧之外的一个或多个帧的解码样点来生成PU的预测块。
在视频编码器20生成针对CU的一个或多个PU的预测亮度块、预测Cb块和预测Cr块之后,视频编码器20可以通过从CU的原始亮度编码块减去CU的预测亮度块来生成针对CU的亮度残差块,使得CU的亮度残差块中的每个样点指示CU的预测亮度块之一中的亮度样点与CU的原始亮度编码块中的对应样点之差。类似地,视频编码器20可以分别生成针对CU的Cb残差块和Cr残差块,使得CU的Cb残差块中的每个样点指示CU的预测Cb块之一中的Cb样点与CU的原始Cb编码块中的对应样点之差,并且CU的Cr残差块中的每个样点可以指示CU的预测Cr块之一中的Cr样点与CU的原始Cr编码块中的对应样点之差。
此外,如图4C中所示,视频编码器20可以使用四叉树分割将CU的亮度残差块、Cb残差块和Cr残差块分别分解成一个或多个亮度变换块、Cb变换块和Cr变换块。变换块是被应用相同变换的矩形(正方形或非正方形)样点块。CU的TU可以包括亮度样点的变换块、色度样点的两个对应变换块和用于对变换块样点进行变换的语法元素。因此,CU的每个TU可以与亮度变换块、Cb变换块和Cr变换块相关联。在一些示例中,与TU相关联的亮度变换块可以是CU的亮度残差块的子块。Cb变换块可以是CU的Cb残差块的子块。Cr变换块可以是CU的Cr残差块的子块。在单色图片或具有三个单独颜色平面的图片中,TU可以包括单个变换块和用于对该变换块的样点进行变换的语法结构。
视频编码器20可以将一个或多个变换应用于TU的亮度变换块以生成针对TU的亮度系数块。系数块可以是变换系数的二维阵列。变换系数可以是标量。视频编码器20可以将一个或多个变换应用于TU的Cb变换块以生成针对TU的Cb系数块。视频编码器20可以将一个或多个变换应用于TU的Cr变换块以生成针对TU的Cr系数块。
在生成系数块(例如,亮度系数块、Cb系数块或Cr系数块)之后,视频编码器20可以对系数块进行量化。量化通常是指变换系数被量化以可能减少用于表示变换系数的数据量从而提供进一步压缩的过程。在视频编码器20对系数块进行量化之后,视频编码器20可以对指示量化的变换系数的语法元素进行熵编码。例如,视频编码器20可以对指示量化的变换系数的语法元素执行CABAC。最后,视频编码器20可以输出包括比特序列的比特流,比特序列形成编码帧和相关联数据的表示,比特流被保存于存储设备32中或被发送到目标设备14。
在接收到由视频编码器20生成的比特流之后,视频解码器30可以解析比特流以从比特流获得语法元素。视频解码器30可以至少部分地基于从比特流获得的语法元素来对视频数据的帧进行重建。对视频数据进行重建的过程通常与由视频编码器20执行的编码过程互逆。例如,视频解码器30可以对与当前CU的TU相关联的系数块执行逆变换以重建与当前CU的TU相关联的残差块。视频解码器30还通过将针对当前CU的PU的预测块的样点与当前CU的TU的变换块的对应样点相加,来重建当前CU的编码块。在重建针对帧的每个CU的编码块之后,视频解码器30可以重建帧。
如上所述,视频编码主要使用两种模式(即,帧内部预测(或帧内预测)和帧之间预测(或帧间预测))来实现视频压缩。应注意,IBC可以被视为帧内预测或第三模式。在两种模式之间,由于使用运动矢量来根据参考视频块预测当前视频块,所以帧间预测比帧内预测对编码效率的贡献更大。
但是随着不断改进的视频数据捕获技术和用于保留视频数据中的细节的更精细的视频块尺寸,表示用于当前帧的运动矢量所需的数据量也大幅增加。克服此挑战的一种方式受益于以下事实:不仅空间域和时间域两者中的一组邻近CU具有用于预测目的的相似视频数据,而且这些邻近CU之间的运动矢量也是相似的。因此,可以通过以下方式而使用空间邻近CU和/或时间同位CU的运动信息作为当前CU的运动信息(例如,运动矢量)的近似(其也被称为当前CU的“运动矢量预测因子”(MVP)):探索它们的空间和时间相关性。
代替如上文结合图2所描述的将由运动估计单元42确定的当前CU的实际运动矢量编码到视频比特流中,从当前CU的实际运动矢量减去当前CU的运动矢量预测因子以产生针对当前CU的运动矢量差(MVD)。通过这样做,不需要将由运动估计单元42针对帧的每个CU确定的运动矢量编码到视频比特流中,并且可以显著减少用于表示视频比特流中的运动信息的数据量。
类似于在编码块的帧间预测期间选择参考帧中的预测块的过程,视频编码器20和视频解码器30两者需要采用一组规则,以用于使用与当前CU的空间邻近CU和/或时间同位CU相关联的那些潜在候选运动矢量来构建针对当前CU的运动矢量候选列表(也称为“合并列表”),然后从运动矢量候选列表中选择一个成员作为针对当前CU的运动矢量预测因子。通过这样做,不需要从视频编码器20向视频解码器30发送运动矢量候选列表本身,并且运动矢量候选列表内的所选运动矢量预测因子的索引足以使视频编码器20和视频解码器30使用运动矢量候选列表内的相同运动矢量预测因子来对当前CU进行编码和解码。
位置相关的帧内预测组合
在VVC中,通过位置相关帧内预测组合(PDPC)方法进一步修改DC、平面和若干角度模式的帧内预测的结果。PDPC是一种帧内预测方法,它调用边界参考样点和利用经滤波边界参考样点的HEVC样式帧内预测的组合。PDPC应用于以下帧内模式,无需信令:平面、DC、帧内角小于或等于水平、帧内角大于或等于垂直且小于或等于80。如果当前块是Bdpcm模式或MRL索引大于0,则不应用PDPC。
使用帧内预测模式(DC、平面、角度)和参考样点的线性组合根据如下等式来预测预测样点pred(x’,y’):
pred(x’,y’)=Clip(0,(1<<BitDepth)–1,(wL×R-1,y’+wT×Rx’,-1+(64-wL-wT)×pred(x’,y’)+32)>>6)
其中Rx,-1、R-1,y分别表示位于当前样点(x,y)的上边界和左边界的参考样点。
如果将PDPC应用于DC、平面、水平和垂直帧内模式,则不需要额外的边界滤波器,如在HEVC DC模式边界滤波器或水平/垂直模式边缘滤波器的情况下所需要的。DC和平面(Planar)模式的PDPC过程是相同的。对于角度模式,如果当前角度模式是HOR_IDX或VER_IDX,则分别不使用左侧或顶部参考样点。PDPC权重和比例因子取决于预测模式和块大小。PDPC应用于宽度和高度都大于或等于4的块。
图5A-5D示出了在各种预测模式上应用的PDPC的参考样点(Rx,-1和R-1,y)的定义。图5A示出了对角右上模式的示例。图5B示出了对角左下模式的示例。图5C示出了相邻对角右上模式的示例。图5D示出了相邻对角左下模式的示例。预测样点pred(x’,y’)位于预测块内的(x’,y’)处。作为示例,对于对角线模式,参考样点Rx,-1的坐标x由以下公式给出:x=x’+y’+1,并且参考样点R-1,y的坐标y类似地由以下公式给出:y=x’+y’+1。对于其他角度模式,参考样点Rx,-1和R-1,y可以位于分数样点位置。在这种情况下,使用最近的整数样点位置的样点值。
如前所述,帧内预测样点是从未滤波的或已滤波的邻近参考样点集合生成的,这可能沿着当前编码块与其邻居之间的块边界引入不连续性。为了解决这个问题,通过使用2抽头滤波器(对于DC模式)或基于梯度的平滑滤波器(对于水平和垂直预测模式)将DC、水平(即,模式18)和垂直(即,模式50)预测模式的预测样点的第一行/列与未滤波的参考样点相结合,在HEVC中应用边界滤波。
梯度PDPC
在VVC中,对于一些场景,由于辅助参考样点的不可用,PDPC可能不被应用。应用从水平/垂直模式扩展的基于梯度的PDPC。用于确定PDPC权重相对于距左/上边界的距离的衰减的PDPC权重(wT/wL)和nScale参数分别设置为等于水平/垂直模式下的对应参数。当辅助参考样点位于分数样点位置时,应用双线性插值。
几何分区模式(GPM)
在VVC中,支持几何分区模式用于帧间预测。几何分区模式由一个CU级标志来表示为一种特殊的合并模式。在当前的GPM设计中,对于每个可能的CU大小,GPM模式总共支持64个分区,宽度和高度均不小于8且不大于64,不包括8x64和64x8。
采用这种方式时,如图6所示,通过几何定位的直线将CU分割成两部分。分割线的位置是根据特定分区的角度和偏移参数以数学方式得出的。CU中几何分区的每个部分都使用其自己的运动进行帧间预测;每个分区只允许单预测,即每个部分有一个运动矢量和一个参考索引。应用单预测运动约束以确保与传统的双向预测相同,每个CU仅需要两个运动补偿预测。如果几何分区模式用于当前CU,则进一步用信号通知指示几何分区的分区模式(角度和偏移)的几何分区索引以及两个合并索引(每个分区一个)。最大GPM候选大小的数量在序列级别显式地用信号通知。
沿着几何分区边缘混合
在使用其自身的运动获得每个几何分区之后,将混合应用于两个单预测信号以导出几何分区边缘周围的样点。CU每个位置的混合权重是根据每个单独样点位置到对应分区边缘的距离得出的。
GPM信令设计
根据当前的GPM设计,GPM的使用通过在CU级别用信号通知一个标志来指示。仅当当前CU通过合并模式或跳过模式进行编码时,才会用信号通知该标志。具体地,当该标志等于1时,表明当前CU是由GPM预测的。否则(标志等于0),通过另一种合并模式来对CU进行编码,例如常规合并模式、利用运动矢量差的合并模式、组合的帧间和帧内预测等等。当为当前CU启用GPM时,进一步用信号通知一个语法元素,即merge_gpm_partition_idx,以指示所应用的几何分区模式(其指定将CU分割为两个分区的直线距CU中心的方向和偏移,如图6所示)。之后,用信号通知两个语法元素merge_gpm_idx0和merge_gpm_idx1以指示用于第一GPM分区和第二GPM分区的单预测合并候选的索引。更具体地,这两个语法元素用于从单预测合并列表来确定两个GPM分区的单向MV,如“单预测合并列表构造”部分中所描述的。根据目前的GPM设计,为了使两个单向MV更加不同,两个索引不能相同。基于这样的先验知识,首先用信号通知第一GPM分区的单预测合并索引并将其用作预测因子,以减少第二GPM分区的单预测合并索引的信令开销。详细地,如果第二单预测合并索引小于第一单预测合并索引,则直接用信号通知其原始值。否则(第二单预测合并索引大于第一单预测合并索引),其值在被用信号发送至比特流之前被减一。在解码器侧,第一单预测合并索引首先是解码器。然后,对于第二单预测合并索引的解码,如果解析值小于第一单预测合并索引,则设置第二单预测合并索引等于解析值;否则(解析值等于或大于第一单预测合并索引),将第二单预测合并索引设置为等于解析值加一。表1说明了当前VVC规范中用于GPM模式的现有语法元素。
表1 VVC规范的合并数据语法表中现有的GPM语法元素
另一方面,在当前的GPM设计中,截断的一元码被用于两个单预测合并索引(即,merge_gpm_idx0和merge_gpm_idx1)的二值化。另外,由于两个单预测合并索引不能相同,因此使用不同的最大值来截断两个单预测合并索引的码字,对于merge_gpm_idx0和merge_gpm_idx1将其分别设置为等于MaxGPMMergeCand–1和MaxGPMMergeCand–2。MaxGPMMergeCand是单预测合并列表中的候选数。
当应用GPM/AWP模式时,应用两种不同的二值化方法来将语法merge_gpm_partition_idx翻译成二进制比特串。具体地,语法元素分别通过VVC和AVS3标准中的定长码和截断二元码进行二值化。同时,对于AVS3中的AWP模式,使用不同的最大值来进行二值化。
空间角度加权预测(SAWP)
在AVS中,空间角度加权预测(SAWP)模式将GPM模式扩展到帧内块。在SAWP模式中,不是对两个帧间预测块进行加权,而是对两个帧内预测块进行加权。使用从帧内预测模式中选择的两种不同的帧内预测模式来预测两个帧内预测块。帧内预测模式从角度模式5到30中选择。最大尺寸为32x32。常规帧内模式的2个最可能模式(MPM)用于SAWP模式的MPM推导。
多方向帧内预测设计(MDIP)遵循与SAWP相同的设计精神,但在某些设计细节上有一些细微的差别。
解码器侧帧内模式推导(DIMD)
DIMD是一种帧内编解码工具,其中亮度帧内预测模式(IPM)不通过比特流传输。相反,它是使用先前编码/解码的像素以相同的方式在编码器和解码器处导出的。DIMD方法执行纹理梯度处理以导出2个最佳模式。然后将这两种模式和平面模式应用于块,并对它们的预测因子进行加权平均。使用标志在帧内编码块的比特流中用信号通知DIMD的选择。在解码器处,如果DIMD标志为真,则在重建过程中使用相同的先前编码的相邻像素导出帧内预测模式。如果不是,则像经典帧内编解码模式一样从比特流解析帧内预测模式。
为了导出块的帧内预测模式,我们必须首先选择一组相邻像素,我们将对其执行梯度分析。出于规范性目的,这些像素应该位于解码/重建的像素池中。如图7所示,我们选择围绕当前块向左T个像素、向上方T个像素的模板。接下来,我们对模板的像素执行梯度分析。这允许确定模板的主角度方向,我们假设(这是我们方法的核心前提)很有可能与当前块之一相同。因此,我们使用一个简单的3x3 Sobel梯度滤波器,由以下矩阵定义,这些矩阵将与模板进行卷积:
和
对于模板的每个像素,我们将这两个矩阵中的每一个与以当前像素为中心并由其8个直接邻居组成的3x3窗口逐点相乘,并对结果求和。因此,我们分别获得在水平和垂直方向上的与当前像素处的梯度相对应的两个值Gx(与Mx相乘)和Gy(与My相乘)。
图8显示了卷积过程。蓝色像素是当前像素。红色像素(包括蓝色)是可以进行梯度分析的像素。灰色像素是由于缺少一些邻居而无法对其进行梯度分析的像素。紫色像素是所考虑模板之外的可用的(重建的)像素,用于红色像素的梯度分析。如果紫色像素不可用(例如由于块太靠近图片边界),则不会执行使用该紫色像素的所有红色像素的梯度分析。对于每个红色像素,我们使用Gx和Gy计算梯度的强度(G)和方向(O),如下所示:
然后梯度的取向被转换为帧内角度预测模式,用于索引直方图(首先初始化为零)。该帧内角度模式下的直方图值增加G。处理完模板中的所有红色像素后,直方图将包含每个帧内角度模式的梯度强度的累积值。为当前块选择与两个最高的直方图条相对应的IPM。如果直方图中的最大值为0(意味着无法进行梯度分析,或者构成模板的区域是平坦的),则选择DC模式作为当前块的帧内预测模式。
对应于两个最高HoG条的两个IPM与平面模式相结合。在一个或多个示例中,预测融合被应用为上述三个预测因子的加权平均值。为此,平面的权重固定为21/64(~1/3)。然后,剩余的权重43/64(~2/3)在两个HoG IPM之间共享,与其HoG条的幅度成比例。图9可视化了这个过程。
导出的帧内模式包含在帧内最可能模式(MPM)的主要列表中,因此DIMD过程在构建MPM列表之前执行。DIMD块的主要导出帧内模式与块一起存储,并用于相邻块的MPM列表构建。
基于模板的帧内模式推导(TIMD)
对于MPM中的每个帧内模式,计算图10中所示的模板区域的预测样点和重建样点之间的绝对变换差值之和(SATD),并选择包含具有最小SATD成本的前两种模式的帧内模式,然后将它们与权重融合,并且这种加权帧内预测用于对当前CU进行编码。
将两种选定模式的成本与阈值进行比较,在测试中应用成本因子2,如下所示:
costMode2<2*costMode1。
如果此条件为真,则应用融合,否则仅使用模式1。
模式的权重根据其SATD成本计算如下:
weight1=costMode2/(costMode1+costMode2)
weight2=1-weight1。
虽然DIMD模式可以提升帧内预测效率,但其性能还有进一步提升的空间。同时,现有的DIMD模式的某些部分也需要简化以实现高效的编解码器硬件实现或改进以获得更好的编码效率。此外,其实现复杂度和编码效率效益之间的权衡需要进一步改善。
在VVC最终确定后,JVET团队继续探索VVC之外的压缩效率。JVET通过在VVC测试模型(VTM)之上集成若干个附加编码工具来维护一种称为增强压缩模型(ECM)的参考软件。在当前的ECM中,PDPC的使用取决于帧内模式。对于DIMD模式,根据每种帧内模式使用PDPC。PDPC方案的两个不同位置被使用并应用于DIMD模式中的每个帧内模式。对于在DIMD模式中使用角度模式的帧内预测,在预测融合之前应用PDPC。对于在DIMD模式中使用DC或平面模式的帧内预测,在预测融合之后应用PDPC。从标准化的角度来看,这种不统一的设计可能不是最佳的。
类似地,可以使用两种不同的融合方案设计,并分别应用于DIMD和TIMD。每个不同的融合设计都与不同的候选者和权重计算相关联。对于应用DIMD的块,选择对应于两个最高HoG条和平面模式的两个IPM进行融合。并且平面的权重固定为21/64(~1/3)。然后,剩余的权重43/64(~2/3)在两个HoG IPM之间共享,与其HoG条的幅度成比例。对于应用TIMD的块,选择包含具有最小SATD成本的前两种模式的帧内模式,并根据其SATD成本计算模式的权重。从标准化的角度来看,这种不统一的设计可能不是最佳的。除此之外,通过不同的融合方案还有进一步提高其性能的空间。
在当前的ECM设计中,从DIMD导出的帧内模式被包括到帧内最可能模式(MPM)的主要列表中,无论导出的帧内模式是否已经在DIMD中使用。其性能还有进一步提升的空间。
在现有的DIMD和TIMD设计中,涉及多次浮点运算(包括加法、乘法和除法)来计算参数,该参数用于推导最佳帧内预测模式并生成一个当前DIMD/TIMD编码块的对应的预测样点。具体来说,ECM中现有的DIMD和TIMD设计中应用了以下浮点运算:
1)DIMD中梯度取向的推导:如前所述,在DIMD模式中,基于对当前块上方及左侧的相邻重建样点(即模板)的梯度直方图(HoG)的分析,选择两种最佳帧内预测模式。在这种分析过程中,需要计算每个模板样点的梯度取向,并将其进一步转换为现有的角度帧内预测方向之一。在ECM中,对每个模板样点应用一对浮点除法和乘法,以根据其水平和垂直梯度计算该取向,即
2)DIMD中预测样点的混合:在现有的DIMD设计中,使用梯度直方图幅度最大和第二大的两种角度帧内预测模式生成的预测样点与平面模式的预测样点混合,以形成当前块的最终的预测样点。此外,两个角度帧内预测的权重是根据其梯度的直方图幅度来确定的,其中引入了一组浮点加法、乘法和除法,如下所示:
3)TIMD中预测样点的混合:在现有的TIMD设计中,当两个选定的帧内模式的SATD足够接近时,将从两个帧内模式生成的预测样点混合在一起,生成当前块的最终预测样点。根据当前的设计,应用于两种帧内模式的权重是根据它们各自的SATD值计算的,其中涉及一对浮点乘法和除法,如下所示
w2=1-w1
所有上述浮点运算对于硬件和软件中的实际编解码器实现来说都是非常昂贵的。
在本公开中,为了解决前面指出的问题,提供了简化和/或进一步改进现有的DIMD模式设计的方法。总的来说,本公开中提出的技术的主要特征总结如下。
1)通过在预测融合之前将PDPC应用于所有帧内预测,统一DIMD模式下角度模式和DC/平面模式下使用的PDPC。这种方法的一个示例在图12A的框图中示出。
2)通过在预测融合后将PDPC应用于所有帧内预测,统一DIMD模式下角度模式和DC/平面模式下使用的PDPC。这种方法的一个示例在图12B的框图中示出。
3)通过在DIMD模式下禁用所有帧内预测的PDPC,统一DIMD模式下在角度模式和DC/平面模式下使用的PDPC。这种方法的一个示例在图12C的框图中示出。
4)通过将DIMD模式下使用的融合方案应用于TIMD模式,统一DIMD模式和TIMD模式下使用的融合方案。
5)通过将TIMD模式下使用的融合方案应用于DIMD模式,统一DIMD模式和TIMD模式下使用的融合方案。
6)通过用信号通知融合方案的选择,统一DIMD模式和TIMD模式下使用的融合方案。
7)考虑导出的帧内模式是否已在DIMD中使用,将帧内模式从DIMD导出到帧内最可能模式(MPM)列表中。
8)将帧内模式从TIMD导出到帧内最可能模式(MPM)列表中。
注意,所提出的方法还可以应用于其他帧内预测编码模式,例如TIMD/MDIP。在TIMD模式中应用的另一组示例在图11A-11C的框图中示出。图11A示出了在TIMD的融合过程之前应用所有PDPC过程的示例。图11B示出了在TIMD的融合过程之后应用所有PDPC过程的示例。图11C示出了禁用TIMD中的所有PDPC过程的示例。
注意,所提出的方法还可以应用于其他组合的帧内和帧间预测编解码模式,例如组合的帧间和帧内预测(CIIP)。
应当注意的是,所公开的方法可以独立地或联合地应用。
DIMD中用于角模式和DC/平面模式的PDPC的协调
根据本公开的一或多个实施例,相同的PDPC位置应用于DIMD模式下的角度模式和DC/平面模式两者。可以使用不同的方法来实现这一目标。
在本公开的一个示例中,提出在DIMD模式中在预测融合之前应用PDPC操作,如图12A所示。换句话说,在DIMD模式中进行预测融合之前,每个帧内预测模式都基于其帧内模式应用PDPC。
在本公开的另一个示例中,提出在DIMD模式下在预测融合之后应用PDPC操作,如图12B所示。换句话说,基于特定模式(例如DC、平面)三个预测因子的加权组合应用PDPC。在一个示例中,特定模式是平面模式,然后在DIMD模式下的预测融合之后应用利用平面模式的PDPC。在另一示例中,选择与最高直方图条相对应的IPM作为特定模式,然后在DIMD模式下的预测融合之后应用利用特定模式的PDPC。在又一示例中,选择与第二最高直方图条相对应的IPM作为特定模式,然后在DIMD模式下的预测融合之后应用利用特定模式的PDPC。
在本公开的又一示例中,提出在DIMD模式下禁用PDPC操作。换句话说,在DIMD模式中不使用PDPC操作,如图12C所示。
用于DIMD模式和TIMD模式的融合方案的协调
根据本公开的一个或多个实施例,相同的融合方案被应用于DIMD模式和TIMD模式两者。可以使用不同的方法来实现这一目标。融合方案被应用为DIMD模式和TIMD模式中的预测因子的加权平均值。
在本公开的一个示例中,提出了将在DIMD模式下使用的融合方案应用于TIMD模式。换句话说,对于TIMD模式,选择SATD成本最小的前两个模式和平面模式作为融合的预测因子,并计算预测因子的加权平均值。并且平面的权重固定为21/64(~1/3)。然后,剩余权重43/64(~2/3)在其他两种模式之间共享,与其SATD成本的幅度成比例。
在本公开的另一示例中,提出将在TIMD模式下使用的融合方案应用于DIMD模式。换句话说,对于DIMD模式,选择具有最高HoG条的前两个模式作为融合的预测因子,并根据HoG IPM计算模式的权重,与其HoG条的幅度成比例。如果直方图中的最大值为0(表示无法进行梯度分析,或者组成模板的区域是平坦的),则选择一种默认模式作为当前块的帧内预测模式,例如DC、平面。
在本公开的又一示例中,提出用信号通知TIMD和/或DIMD模式中的融合方案的选择。在一个示例中,对于给定的CU,用信号向解码器通知标志以指示该块是否使用DIMD模式。如果使用DIMD模式进行编码,则还向用信号解码器通知一个标志以指示使用哪种融合方案,例如上述第一融合方法或第二融合方法。
修改MPM列表中使用的DIMD模式
在本公开的另一方面中,提出根据导出的帧内模式是否已在DIMD中使用,将帧内模式从DIMD导出到帧内最可能模式(MPM)列表中。根据本公开的一个或多个实施例,如果在DIMD模式中使用融合方案,则从DIMD导出的帧内模式可以被用作MPM列表的候选。换句话说,如果在DIMD模式中不使用融合方案,则从DIMD导出的帧内模式不能用作MPM列表的候选。
MPM列表中使用的TIMD模式
在本公开的另一方面中,提出从TIMD导出帧内模式到帧内最可能模式(MPM)列表中。一般来说,VVC中有67种帧内预测模式,包括非方向模式(平面、DC)和65种角度模式,它们可以有效地对视频和图像内容中通常存在的不同方向结构进行建模。在本公开的一个或多个实施例中,从TIMD导出的帧内模式可以被用作MPM列表的候选。在一个示例中,从DIMD导出的帧内模式不能用作MPM列表的候选,从TIMD导出的帧内模式可以用作MPM列表的候选。
在本公开的另一方面中,提出根据导出的帧内模式是否已经在TIMD中使用,将帧内模式从TIMD导出到帧内最可能模式(MPM)列表中。根据本公开的一个或多个实施例,如果在TIMD模式中使用融合方案,则从TIMD导出的帧内模式可以被用作MPM列表的候选。换句话说,如果在TIMD模式中不使用融合方案,则从TIMD导出的帧内模式不能用作MPM列表的候选。
上述方法可以使用包括一个或多个电路的装置来实现,所述电路包括专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理器件(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件。该装置可以使用电路与其他硬件或软件组件结合来执行上述方法。上面公开的每个模块、子模块、单元或子单元可以至少部分地使用一个或多个电路来实现。
具有整数运算的简化的DIMD和TIMD
如前所述,在DIMD和TIMD的现有设计中,涉及大量浮点运算(即加法、乘法和除法)来导出DIMD/TIMD参数,这对于软件和硬件的实际编解码器实现来说是不可接受的。在本节中,提出了一种基于查找表(LUT)的方案,通过用整数加法和乘法替换所有浮点运算来简化DIMD和TIMD的实现。如图15所示,在步骤1502中,解码器识别要执行的浮点除法运算以导出DIMD模式或TIMD模式中的参数。在步骤1504中,解码器通过基于查找表(LUT)用整数加法和乘法代替浮点除法运算来获得DIMD或TIMD中的参数。
具体如图13所示,提出用一个指数和K比特有效部分(包含指数后的K个最高有效位(MSB))来逼近一个整数L,如下所示
其中normMSB是MSB的值,范围从0到2K-1。相应地,除以整数L可以写为:
如果以M比特精度量化1/L的分数部分,则上式变为
其中<·>是舍入运算。进一步地,上式的舍入部分可以用一个LUT来表示,该LUT包含2K个元素,每个元素以M比特精度表示。另一方面,由于norMSB的值在[0,2K-1]的范围内,所以舍入部分始终不小于2M-1。考虑到这些先验知识,可以通过忽略每个元素的第一个MSB(始终等于1)并仅存储其其余(M-1)比特最低有效位(LSB)(即每个元素只需要(M-1)比特)来减小LUT大小。基于这样的设计,LUT的元素可以计算为:
其中
相应地,可以实现所提出的整数化方案,其中任意两个整数之间的除法(例如,)可以用一个基于LUT的整数乘法加上一个右移来代替,如下所示
exponent=Floor(Log2(denom))
normMSB=((denom<<K)>>exponent)&((1<<K)-1)
s=exponent+shift
add=(1<<(s-1))
ratio=(num·(divLut[normMSB]|(1<<(M-1)))+add)>>s
其中num表示分子的值,denom表示分母的值。在本公开的一个示例中,分母为整数值L,分子为1。
在实践中,可以应用LUT大小(即K)和参数精度(即M)的不同组合来实现导出参数的准确性和实现复杂性之间的不同权衡。例如,使用大的LUT大小和更高的参数精度有利于保持高参数准确性,但这会带来扩大存储大小以维护LUT和增加比特深度以进行对应整数运算(例如整数乘法、添加和按比特移位)的代价。基于这样的考虑,在一个具体示例中,建议将K和M的值设置为4。基于这样的设置,推导出对应的LUT为
divLut[]={0,7,6,5,5,4,4,3,3,2,2,1,1,1,0}
以DIMD推导为例,当采用上述整数化方案时(当K和M都设置为4时),每个模板样点处的梯度取向的推导可以实现为
exponent=Floor(Log2(Gx))
normMSB=((Gx<<4)>>exponent)&15
v=Gy·(divLut[normMSB]|8)
s=exponent+(normMSB≠0?4:3)-16
请注意,以上示例中使用的K和M值仅用于说明目的。实际上,所提出的使用不同的K和M值的基于LUT的方案可以应用于在其他未来编码技术的过程中将任何浮点除法转换为整数运算。
图14示出了与用户接口1650耦合的计算环境1610。计算环境1610可以是数据处理服务器的一部分。计算环境1610包括处理器1620、存储器1630和输入/输出(I/O)接口1640。
处理器1620通常控制计算环境1610的整体操作,例如与显示、数据采集、数据通信和图像处理相关联的操作。处理器1620可以包括一个或多个处理器来执行指令以执行上述方法中的所有或一些步骤。此外,处理器1620可包括促进处理器1620与其他组件之间的交互的一个或多个模块。处理器可以是中央处理单元(CPU)、微处理器、单片机、图形处理单元(GPU)等。
存储器1630被配置为存储各种类型的数据以支持计算环境1610的操作。存储器1630可以包括预定软件1632。此类数据的示例包括用于在计算环境1610上操作的任何应用程序或方法的指令、视频数据集、图像数据等。存储器1630可以通过使用任何类型的易失性或非易失性存储器设备或其组合来实现,例如静态随机存取存储器(SRAM)、电可擦除可编程只读存储器(EEPROM)、可擦除可编程只读存储器(EPROM)、可编程只读存储器(PROM)、只读存储器(ROM)、磁存储器、闪存、磁盘或光盘。
I/O接口1640提供处理器1620和外围接口模块之间的接口,例如键盘、点击轮、按钮等。这些按钮可以包括但不限于主页按钮、开始扫描按钮和停止扫描按钮。I/O接口1640可以与编码器和解码器耦合。
在一个实施例中,还提供了一种非暂时性计算机可读存储介质,包括多个程序,例如,在存储器1630中,可由计算环境1610中的处理器1620执行,用于执行上述方法。备选地,非暂时性计算机可读存储介质可以已经在其中存储了比特流或数据流,该比特流或数据流包括由编码器(例如,图2中的视频编码器20)使用例如上述编码方法生成以供解码器(例如,图3中的视频解码器30)在解码视频数据时使用的编码视频信息(例如,包括一个或多个语法元素的视频信息)。非暂时性计算机可读存储介质可以是例如ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘、光数据存储设备等。
在一个实施例中,还提供了一种计算设备,包括一个或多个处理器(例如,处理器1620);以及其中存储有多个可由一个或多个处理器执行的程序的非暂时性计算机可读存储介质或存储器1630,其中该一个或多个处理器在执行多个程序时被配置为执行上述方法。
在一个实施例中,还提供了一种计算机程序产品,包括多个程序,例如,在存储器1630中,可由计算环境1610中的处理器1620执行,用于执行上述方法。例如,计算机程序产品可以包括非暂时性计算机可读存储介质。
在一个实施例中,计算环境1610可以用一个或多个ASIC、DSP、数字信号处理设备(DSPD)、可编程逻辑设备(PLD)、FPGA、GPU、控制器、微控制器、微处理器或其他电子元件来实现,用于执行上述方法。
本公开的描述是为了说明的目的而呈现的,并且不旨在是穷举的或限制本公开。对于受益于前述描述和相关附图中呈现的教导的本领域普通技术人员来说,许多修改、变化和替代实施方式将是显而易见的。
除非另有明确说明,根据本公开的方法的步骤的顺序仅旨在是示例性的,根据本公开的方法的步骤不限于上面具体描述的顺序,而是可以根据实际情况进行更改。另外,根据本公开的方法的步骤中的至少一个步骤可以根据实际需要进行调整、组合或删除。
选择和描述示例是为了解释本公开的原理并使本领域的其他技术人员能够理解本公开的各种实施方式,并最好地利用基本原理和具有适合于预期的特定用途的各种修改的各种实施方式。因此,应当理解,本公开的范围不限于所公开的实施方式的具体示例,并且修改和其他实施方式旨在被包括在本公开的范围内。
Claims (16)
1.一种视频解码方法,包括:
由解码器识别要执行的浮点除法运算以导出解码器侧帧内模式推导(DIMD)模式或基于模板的帧内模式推导(TIMD)模式中的参数;以及
由所述解码器通过基于查找表(LUT)用整数加法和乘法代替所述浮点除法运算来获取所述DIMD或所述TIMD中的参数。
2.根据权利要求1所述的视频解码方法,还包括:
通过一个指数和K比特有效部分,对所述浮点运算中的整数L进行转换,其中K为非负整数,并且所述K比特有效部分包括所述指数之后的K个最高有效位(MSB)。
3.根据权利要求2所述的视频解码方法,其中,基于以下等式对所述整数L进行转换:
其中exponent为非负整数,normMSB为所述K比特MSB的值,范围在0到2K-1之间。
4.根据权利要求2所述的视频解码方法,还包括:
通过将所述整数L的倒数的小数部分乘以2的M次方,以M比特精度量化所述小数部分,其中M为正整数,并且所述整数L的倒数的所述小数部分包括所述K比特MSB的值。
5.根据权利要求4所述的视频解码方法,其中,基于以下等式对所述整数L的倒数的所述小数部分进行量化:
其中exponent为非负整数,normMSB为所述K比特MSB的值,范围在0到2K-1之间,<·>为舍入运算。
6.根据权利要求4所述的视频解码方法,还包括:
对所述整数L的倒数的量化后小数部分进行舍入运算,以获得舍入后的量化后小数部分;以及
基于所述K比特MSB的值和移位操作将所述舍入后的量化后小数部分转换为LUT。
7.根据权利要求6所述的视频解码方法,还包括:
通过忽略每个元素的第一MSB来减小所述LUT的大小;以及
存储每个元素的(M-1)比特最低有效位(LSB)。
8.根据权利要求6所述的视频解码方法,其中,所述LUT是基于以下等式确定的:
其中,响应于确定所述K比特MSB的值normMSB等于0,shift等于M-1;并且响应于确定所述K比特MSB的值normMSB大于0,shift等于M。
9.根据权利要求6所述的视频解码方法,还包括:
通过一次右移和一次基于LUT的整数乘法来转换所述浮点除法运算中分子和分母之间的比率。
10.根据权利要求9所述的视频解码方法,其中,所述分子的值等于1,并且所述分母的值等于所述整数L。
11.根据权利要求9所述的视频解码方法,其中,所述指数是基于对所述分母的以2为底的对数进行向下舍入来转换的;以及
所述K比特MSB的值是基于对所述分母进行移位来转换的。
12.根据权利要求9所述的视频解码方法,其中,所述右移的值是基于所述指数和获得所述LUT时的移位操作的值来确定的。
13.根据权利要求9所述的视频解码方法,其中,基于以下等式转换exponent:
exponent=Floor(Log2(denom)),并且
其中,所述K比特MSB的值基于以下等式进行转换:
normMSB=((denom<<K)>>exponent&((1<<K)-1),
其中denom是所述分母的值。
14.根据权利要求9所述的视频解码方法,其中,所述分子与所述分母之间的所述比率是基于以下等式确定的:
ratio=(num·(divLut[normMSB]|(1<<(M-1)))+add)>>s,
其中num为所述分子的值,s=exponent+shift,并且add=(1<<(s-1))。
15.一种视频解码装置,包括:
一个或多个处理器;以及
存储器,所述存储器被配置为存储能够由所述一个或多个处理器执行的指令;其中,所述一个或多个处理器在执行所述指令时被配置为执行根据权利要求1-14中的任一项所述的方法。
16.一种用于视频解码的非暂时性计算机可读存储介质,其存储计算机可执行指令,所述计算机可执行指令当由一个或多个计算机处理器执行时,使得所述一个或多个计算机处理器执行权利要求1-14中的任一项所述的方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163247224P | 2021-09-22 | 2021-09-22 | |
US63/247,224 | 2021-09-22 | ||
PCT/US2022/044441 WO2023049292A1 (en) | 2021-09-22 | 2022-09-22 | Methods and devices for decoder-side intra mode derivation |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118077196A true CN118077196A (zh) | 2024-05-24 |
Family
ID=85721125
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280064428.5A Pending CN118077196A (zh) | 2021-09-22 | 2022-09-22 | 用于解码器侧帧内模式推导的方法和设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240214561A1 (zh) |
EP (1) | EP4406223A1 (zh) |
CN (1) | CN118077196A (zh) |
WO (1) | WO2023049292A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016002577A1 (ja) * | 2014-07-03 | 2016-01-07 | ソニー株式会社 | 画像処理装置および方法 |
US10432952B2 (en) * | 2015-11-19 | 2019-10-01 | Qualcomm Incorporated | System and methods for fixed-point approximations in display stream compression (DSC) |
AU2017268705B2 (en) * | 2016-05-23 | 2022-05-19 | Kakadu R & D Pty Ltd | A method and apparatus for image compression |
CN117615132A (zh) * | 2016-10-14 | 2024-02-27 | 世宗大学校产学协力团 | 影像编码/解码方法及比特流的传送方法 |
TWI765164B (zh) * | 2018-07-06 | 2022-05-21 | 弗勞恩霍夫爾協會 | 算術編碼器、算術解碼器、視訊編碼器、視訊解碼器、編碼方法、解碼方法及電腦程式 |
-
2022
- 2022-09-22 CN CN202280064428.5A patent/CN118077196A/zh active Pending
- 2022-09-22 EP EP22873597.3A patent/EP4406223A1/en active Pending
- 2022-09-22 WO PCT/US2022/044441 patent/WO2023049292A1/en active Application Filing
-
2024
- 2024-03-08 US US18/600,563 patent/US20240214561A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023049292A1 (en) | 2023-03-30 |
EP4406223A1 (en) | 2024-07-31 |
US20240214561A1 (en) | 2024-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20240187624A1 (en) | Methods and devices for decoder-side intra mode derivation | |
US20240195957A1 (en) | Methods and devices for decoder-side intra mode derivation | |
US20240214580A1 (en) | Intra prediction modes signaling | |
CN117730535A (zh) | 视频编解码中用于仿射运动补偿预测的几何分割 | |
CN116636218A (zh) | 利用多方向帧内预测的视频编解码 | |
US20240214561A1 (en) | Methods and devices for decoder-side intra mode derivation | |
US20240298007A1 (en) | Methods and devices for decoder-side intra mode derivation | |
US20240333952A1 (en) | Methods and devices for decoder-side intra mode derivation | |
US20240244192A1 (en) | Methods and devices for decoder-side intra mode derivation | |
US20240348777A1 (en) | Methods and devices for decoder-side intra mode derivation | |
US20240283924A1 (en) | Intra prediction modes signaling | |
CN118511512A (zh) | 用于解码器侧帧内模式推导的方法和设备 | |
JP2024538561A (ja) | 復号器側イントラ・モード導出のための方法およびデバイス | |
CN118786663A (zh) | 用于解码器侧帧内模式推导的方法和设备 | |
EP4397036A1 (en) | Methods and devices for decoder-side intra mode derivation | |
WO2023154574A1 (en) | Methods and devices for geometric partitioning mode with adaptive blending | |
WO2023154359A1 (en) | Methods and devices for multi-hypothesis-based prediction | |
WO2023158765A1 (en) | Methods and devices for geometric partitioning mode split modes reordering with pre-defined modes order | |
WO2023200907A1 (en) | Methods and devices for geometric partitioning mode with adaptive blending |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination |