CN117280682A - 用于无正则化多假设算术编码的系统和方法 - Google Patents
用于无正则化多假设算术编码的系统和方法 Download PDFInfo
- Publication number
- CN117280682A CN117280682A CN202380011581.6A CN202380011581A CN117280682A CN 117280682 A CN117280682 A CN 117280682A CN 202380011581 A CN202380011581 A CN 202380011581A CN 117280682 A CN117280682 A CN 117280682A
- Authority
- CN
- China
- Prior art keywords
- elements
- video data
- updated
- syntax element
- probability value
- 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 105
- 230000002776 aggregation Effects 0.000 claims abstract description 29
- 238000004220 aggregation Methods 0.000 claims abstract description 29
- 230000008569 process Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 23
- 230000003044 adaptive effect Effects 0.000 claims description 12
- 230000006835 compression Effects 0.000 description 21
- 238000007906 compression Methods 0.000 description 21
- 238000004891 communication Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 14
- 239000013598 vector Substances 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 238000004422 calculation algorithm Methods 0.000 description 7
- 230000002123 temporal effect Effects 0.000 description 7
- 238000013139 quantization Methods 0.000 description 5
- 230000004044 response Effects 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000007704 transition Effects 0.000 description 4
- 230000006978 adaptation Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001186 cumulative effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000005315 distribution function Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000009827 uniform distribution Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000012937 correction Methods 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000012634 fragment Substances 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- RZSCFTDHFNHMOR-UHFFFAOYSA-N n-(2,4-difluorophenyl)-2-[3-(trifluoromethyl)phenoxy]pyridine-3-carboxamide;1,1-dimethyl-3-(4-propan-2-ylphenyl)urea Chemical compound CC(C)C1=CC=C(NC(=O)N(C)C)C=C1.FC1=CC(F)=CC=C1NC(=O)C1=CC=CN=C1OC1=CC=CC(C(F)(F)F)=C1 RZSCFTDHFNHMOR-UHFFFAOYSA-N 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 230000000153 supplemental effect Effects 0.000 description 1
- 230000009466 transformation Effects 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- 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
-
- 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/90—Methods 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/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- 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/503—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
- H04N19/51—Motion estimation or motion compensation
-
- 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/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
- H04N19/61—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
-
- 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/80—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
- H04N19/82—Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本文中描述的各种实施例包括视频编码的方法和系统。在一个方面,一种方法包括获得包括语法元素的视频数据,该语法元素具有AT个元素的对应字母表;该语法元素的该AT个元素的相应出现概率的第一集合;以及该语法元素的该AT个元素的相应出现概率的第二集合。该方法还包括根据该第一集合和第二集合的聚合对该视频数据的第一部分进行熵编码;以及在对该视频数据的该第一部分进行熵编码时,遇到第一语法元素。该方法还包括以第一速率更新该第一集合和以比该第一速率快的第二速率更新该第二集合。该方法还包括对该视频数据的第二部分进行自适应熵编码。
Description
相关申请的交叉引用
本申请要求于2022年3月22日提交的标题为“Regularization-Free Multi-Hypothesis Arithmetic Coding”的第63/322,411号美国临时专利申请的优先权,该美国临时专利申请为于2023年3月14日提交的标题为“Systems and Methods forRegularization-Free Multi-Hypothesis Arithmetic Coding”的第18/121,432号美国专利申请的接续案并且要求其优先权,这两个在先申请的全部公开内容通过整体引用并入本文中。
技术领域
本文中的实施例总体上涉及视频编解码,包括但不限于用于多假设算术编码的系统和方法。
背景技术
各种电子设备都支持数字视频,诸如数字电视、膝上型或台式计算机、平板计算机、数码相机、数字记录设备、数字媒体播放器、视频游戏控制台、智能电话、视频电话会议设备、视频流式传输设备等。电子设备通过通信网络发射和接收或以其他方式传送数字视频数据,和/或将数字视频数据存储在存储设备上。由于通信网络的有限带宽容量和存储设备的有限存储资源,可以在视频数据被传送或存储之前使用视频编码以根据一个或多个视频编解码标准来压缩该视频数据。
已经开发了多种视频编解码器标准。例如,视频编解码标准包括AOMedia Video 1(AV1)、通用视频编码(Versatile Video Coding,VVC)、联合探索测试模型(JointExploration test Model,JEM)、高效视频编码(High-Efficiency Video Coding,HEVC/H.265)、高级视频编码(Advanced Video Coding,AVC/H.264)和运动图像专家组(MovingPicture Expert Group,MPEG)编码。视频编码通常使用利用视频数据中固有的冗余的预测方法(例如,帧间预测、帧内预测等)。视频编码旨在将视频数据压缩成在使用较低比特率的同时避免或最小化视频质量的下降的形式。
HEVC,也称为H.265,是设计作为MPEG-H项目的一部分的视频压缩标准。ITU-T和ISO/IEC分别于2013年(第1版)、2014年(第2版)、2015年(第3版)和2016年(第4版)发布了HEVC/H.265标准。多功能视频编码(Versatile Video Coding,VVC),也称为H.266,是用于接替HEVC的视频压缩标准。ITU-T和ISO/IEC分别于2020年(第1版)和2022年(第2版)发布了VVC/H.266标准。AV1是一种设计用于替代HEVC的开放视频编码格式。2019年1月8日,发布了一个经过验证的版本1.0.0,其中包含规范的勘误表(Errata)1。
发明内容
如上所述,编码(压缩)降低了带宽和/或存储空间需求。如下文详细描述的,可以采用无损压缩或有损压缩。无损压缩是指可以经由解码过程从压缩的原始信号中重建原始信号精确副本的技术。有损压缩是指原始视频信息在编码期间不能完全保留,并且在解码期间不能完全恢复的编码/解码过程。当使用有损压缩时,重建信号可能与原始信号不完全相同,但是原始信号和重建信号之间的失真足够小,以使得重建信号可用于预期应用。可容许失真的大小取决于应用程序。例如,某些消费者视频流式传输应用程序的用户可以比电影或电视广播应用程序的用户容忍更高的失真。可以选择或调整特定编码算法可实现的压缩比,以反映各种失真容忍度:较高的可容忍失真通常允许产生较高损耗和较高压缩比的编码算法。
视频编码器和/或解码器可利用几大类技术和步骤,例如包括:运动补偿、傅立叶变换、量化和熵编码。在熵编码期间,可将关于操作的数据发送到熵编码器。熵编码器可以输出比特流(已编码视频序列),该比特流可以经由传输信道传输到另一设备。在视频解码过程期间,可将比特流发送到熵解码器。熵解码器可以基于比特流输出关于操作的数据,该数据可以包括帧内预测信息、残差信息等。在一些实施例中,熵编码/解码利用基于符号(或字符)出现概率的算术编码算法作为算术编码的基础。在一些实施例中,在编码/解码过程期间动态地更新符号(或字符)出现概率。例如,只有两个可能的字符(“a”和“b”),“a”出现的概率表示为p_a,“b”出现的概率表示为p_b,并且p_a+p_b=1(或任何其他常数值)。因此,当在编码/解码过程中遇到“a”时,可将p_a更新为较大的值;并且可将p_b更新为较小的值,因为它们的总和可以是常数。这个概率更新过程可以被称为“概率转换过程”或“概率状态指数更新过程”。
根据一些实施例,提供了一种视频编码方法。该方法包括:(i)获得包括多个语法元素的视频数据,该多个语法元素包括具有M个元素的对应字母表的第一语法元素;(ii)获得该第一语法元素的该M个元素的相应出现概率的第一集合;(iii)获得该第一语法元素的该M个元素的相应出现概率的第二集合;(iv)根据该第一集合和第二集合的聚合对该视频数据的第一部分进行熵编码;(v)在对该视频数据的该第一部分进行熵编码时,遇到该第一语法元素;(vi)通过根据该第一语法元素确定该第一集合中的该M个元素的出现的更新概率来更新该第一集合,其中该第一集合以第一速率更新;(vii)通过根据该第一语法元素确定该第二集合中的该M个元素的出现的更新概率来更新该第二集合,其中该第二集合以比该第一速率快的第二速率更新;(viii)根据该第二集合中的该更新概率中的至少一个小于阈值概率值,根据该更新的第一集合和第二集合的第一聚合对该视频数据的第二部分进行熵编码;以及(ix)根据该第二集合中的该更新概率中的每个至少为该阈值概率值,根据该更新的第一集合和第二集合的第二聚合对该视频数据的该第二部分进行熵编码。
根据一些实施例,提供了一种计算系统,诸如流媒体系统、服务器系统、个人计算机系统、或其他电子设备。该计算系统包括控制电路和存储有一组或多组指令的存储器。该一组或多组指令包括用于执行本文所描述的任何方法的指令。在一些实施例中,该计算系统包括编码器组件和/或解码器组件。
根据一些实施例,提供了一种非暂时性计算机可读存储介质。该非暂时性计算机可读存储介质存储有由计算系统执行的一组或多组指令。该一组或多组指令包括用于执行本文所描述的任何方法的指令。
因此,本文中公开了用于执行视频编码方法的设备和系统。这种方法、设备和系统可以补充或替代用于视频编码的传统方法、设备和系统。
说明书中描述的特征和优点不一定是全面的,特别地,鉴于本申请中提供的附图、说明书和权利要求,一些附加的特征和优点对于所属领域普通技术人员来说是显而易见的。此外,应该注意的是,说明书中使用的语言主要是出于可读性和指导目的而选择的,而不一定是为了描述或限定本文中描述的主题。
附图说明
为了更详细地理解本申请,可以通过参考各种实施例的特征进行更具体的描述,其中一些实施例在附图中示出。然而,附图仅仅示出了本申请的相关特征,因此不一定被认为是限制性的,因为本领域技术人员在阅读本申请时将会理解,本申请的说明书可以包括其他有效特征。
图1是示出了根据一些实施例的示例通信系统的框图。
图2A是示出了根据一些实施例的编码器组件的示例元件的框图。
图2B是示出了根据一些实施例的解码器组件的示例元件的框图。
图3是示出了根据一些实施例的示例服务器系统的框图。
图4是示出了用于解码二元决策的示例流程的流程图。
图5A-图5B是示出了根据一些实施例的实施最小概率的示例方法的图。
图6是示出了根据一些实施例的视频编码的示例方法的流程图。
按照惯例,附图中所示的各种特征不一定是按比例绘制的,并且贯穿说明书和附图可以使用相似的附图标记来表示相似的特征。
具体实施方式
本申请描述了用于熵编码/解码的无正则化多假设算术编码。例如,定义最小概率,并且在更新每个语法元素概率时,将更新的概率与该最小概率进行比较。在本示例中,如果更新的概率小于最小概率,则使用不同的假设,或者对多个假设应用不同的权重处理。这种方式可以防止每个语法元素的最终(组合的)概率接近零,这减少了低效率编码,防止了Bjontegaard增量(Bjontegaard delta,BD)速率损失,和/或减少了建模误差。此外,本文中描述的无正则化方法减少/消除了与在正则化过程期间执行除法运算相关联的计算成本。
示例系统和设备
图1是示出了根据一些实施例的通信系统100的框图。通信系统100包括源设备102和多个电子设备120(例如,电子设备120-1至电子设备120-m),该源设备102和多个电子设备120经由一个或多个网络彼此通信地耦合。在一些实施例中,通信系统100是用于例如支持视频的应用程序的流媒体系统,该应用程序诸如视频会议应用程序、数字电视应用程序以及媒体存储器和/或分发应用程序。
源设备102包括视频源104(例如,相机组件或媒体存储器)和编码器组件106。在一些实施例中,视频源104是数码相机(例如,被配置为创建未压缩的视频样本流)。编码器组件106从视频流生成一个或多个已编码视频比特流。与由编码器组件106生成的已编码视频比特流108相比,来自视频源104的视频流可以为高数据量。由于已编码视频比特流108与来自视频源的视频流相比具有较低的数据量(较少的数据),因此与来自视频源104的视频流相比,已编码视频比特流108需要较少的带宽以传输和较少的存储空间以存储。在一些实施例中,源设备102不包括编码器组件106(例如,被配置为将未压缩的视频数据传输到(一个或多个)网络110)。
该一个或多个网络110表示在源设备102、服务器系统112和/或电子设备120之间传递信息的任意数量的网络,包括例如有线和/或无线通信网络。该一个或多个网络110可在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或因特网。
该一个或多个网络110包括服务器系统112(例如,分布式/云计算系统)。在一些实施例中,服务器系统112是或包括流媒体服务器(例如,被配置为存储和/或分发诸如来自源设备102的已编码视频流的视频内容)。服务器系统112包括编码器组件114(例如,被配置为编码和/或解码视频数据)。在一些实施例中,编码器组件114包括编码器组件和/或解码器组件。在各种实施例中,编码器组件114被实例化为硬件、软件或其组合。在一些实施例中,编码器组件114被配置为对已编码视频比特流108进行解码,并使用不同的编码标准和/或方法对视频数据进行重新编码,以生成已编码视频数据116。在一些实施例中,服务器系统112被配置为从已编码视频比特流108生成多种视频格式和/或编码。
在一些实施例中,服务器系统112用作媒体感知网络元件(Media-Aware NetworkElement,MANE)。例如,服务器系统112可被配置为修剪已编码视频比特流108,以便为一个或多个电子设备120裁剪(量身定制)可能不同的比特流。在一些实施例中,提供与服务器系统112分离的MANE。
电子设备120-1包括解码器组件122和显示器124。在一些实施例中,解码器组件122被配置为对已编码视频数据116进行解码,以生成可以在显示器或其他类型的呈现设备上呈现的传出视频流。在一些实施例中,一个或多个电子设备120不包括显示组件(例如,通信地耦合到外部显示设备和/或包括媒体存储器)。在一些实施例中,电子设备120是流媒体客户端。在一些实施例中,电子设备120被配置为访问服务器系统112以获得已编码视频数据116。
源设备和/或多个电子设备120有时被称为“终端设备”或“用户设备”。在一些实施例中,源设备102和/或一个或多个电子设备120是服务器系统、个人计算机、便携式设备(例如,智能手机、平板电脑或膝上型计算机)、可穿戴设备、视频会议设备和/或其他类型的电子设备的实例。
在通信系统100的示例操作中,源设备102将已编码视频比特流108传输到服务器系统112。例如,源设备102可以对由源设备采集的图像流进行编码。服务器系统112接收已编码视频比特流108,并且可以使用编码器组件114对已编码视频比特流108进行解码和/或编码。例如,服务器系统112可以将对于网络传输和/或存储较优的编码应用于视频数据。服务器系统112可以将已编码视频数据116(例如,一个或多个已编码视频比特流)传输到一个或多个电子设备120。每个电子设备120可以对已编码视频数据116进行解码,以恢复并可选地显示视频图像。
在一些实施例中,上文讨论的传输是单向数据传输。单向数据传输有时被用于媒体服务应用程序等。在一些实施例中,上文讨论的传输是双向数据传输。双向数据传输有时被用于视频会议应用程序等。在一些实施例中,已编码视频比特流108和/或已编码视频数据116按照本文描述的任何视频编解码/压缩标准(诸如HEVC、VVC和/或AV1)进行编码和/或解码。
图2A是示出了根据一些实施例的编码器组件106的示例元件的框图。编码器组件106从视频源104接收源视频序列。在一些实施例中,编码器组件包括接收器(例如,收发器)组件,该接收器组件被配置为接收源视频序列。在一些实施例中,编码器组件106从远程视频源(例如,作为与编码器组件106不同的设备的组件的视频源)接收视频序列。视频源104可提供呈数字视频样本流形式的源视频序列,该数字视频样本流可具有任何合适位深度(例如:8位、10位或12位)、任何色彩空间(例如BT.601Y CrCb或RGB)和任何合适的样本结构(例如Y CrCb 4:2:0或Y CrCb 4:4:4)。在一些实施例中,视频源104是存储先前已采集的/已准备的视频的存储设备。在一些实施例中,视频源104是采集本地图像信息作为视频序列的相机。可将视频数据提供为多个单独的图像,当按顺序观看时,这些图像被赋予运动。图像自身可构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。所属领域的技术人员可以很容易理解像素与样本之间的关系。下文侧重于描述样本。
编码器组件106被配置为实时或在应用所要求的任何其它时间约束下,将源视频序列的图像编码和/或压缩成已编码视频序列216。施行适当的编码速度是控制器204的一个功能。在一些实施例中,控制器204控制如下文所描述的其它功能单元且在功能上耦接到这些单元。由控制器204设置的参数可包括速率控制相关参数(例如图像跳过(skip)、量化器和/或率失真优化技术的λ值等)、图像大小、图像群组(group of pictures,GOP)布局,最大运动矢量搜索范围等。本领域普通技术人员可以容易地识别控制器204的其他功能,因为它们可能涉及针对某个系统设计而优化的编码器组件106。
在一些实施例中,编码器组件106在编码环路中进行操作。在一个简单的示例中,编码环路包括源编码器202(例如,负责基于待编码的输入图像和参考图像创建符号,诸如符号流)和(本地)解码器210。(当符号和已编码视频比特流之间的压缩无损时)解码器210以类似于(远程)解码器的方式重建符号以创建样本数据。将重建的样本流(样本数据)输入到参考图像存储器208。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图像存储器208中的内容在本地编码器与远程编码器之间也是按比特位精确对应的。这样,编码器的预测部分“解释”的参考图像样本与解码器将在解码期间使用预测时所“解释”的样本值相同。这种参考图像同步性的原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)为本领域普通技术人员所知。
解码器210的操作可与诸如在下文结合图2B详细描述的解码器组件122的远程解码器的操作相同。然而,简要参考图2B,当符号可用且熵编码器214和解析器254能够无损地将符号编码/解码为已编码视频序列时,包括缓冲存储器252和解析器254在内的解码器组件122的熵解码部分,可能无法完全在本地解码器210中实施。
此时可以观察到,除存在于解码器中的解析/熵解码之外的任何解码器技术,也必定以基本上相同的功能形式存在于对应的编码器中。出于此原因,本申请侧重于解码器操作。可简化编码器技术的描述,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。
作为操作的一部分,源编码器202可执行运动补偿预测编码。参考来自视频序列中被指定为参考帧的一个或多个先前已编码帧,该运动补偿预测编码对输入帧进行预测性编码。以此方式,编码引擎212对输入帧的像素块与参考帧的像素块之间的差异进行编码,该参考图像可被选作该输入帧的预测参考。控制器204可管理源编码器202的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。
解码器210基于源编码器202创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎212的操作可为有损过程。当已编码视频数据在视频解码器(图2A中未示出)处被解码时,重建的视频序列可以是带有一些误差的源视频序列的副本。解码器210复制解码过程,该解码过程可由远程视频解码器对参考帧执行,且可使重建的参考帧存储在参考图像存储器208中。以此方式,编码器组件106在本地存储重建的参考帧的副本,该副本与将由远程视频解码器获得的重建参考帧具有共同内容(不存在传输误差)。
预测器206可针对编码引擎212执行预测搜索。即,对于将要编码的新帧,预测器206可在参考图像存储器208中搜索可作为该新图像的适当预测参考的样本数据(作为候选参考像素块)或某些元数据,诸如参考图像运动矢量、块形状等。预测器206可基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,根据预测器206获得的搜索结果,可确定输入图像可具有从参考图像存储器208中存储的多个参考图像取得的预测参考。
可在熵编码器214中对所有上述功能单元的输出进行熵编码。熵编码器214根据本领域普通技术人员已知的技术(例如霍夫曼编码(Huffman coding)、可变长度编码和/或算术编码)对各种功能单元生成的符号进行无损压缩,从而将该符号转换成已编码视频序列。
在一些实施例中,将熵编码器214的输出耦合到传输器。传输器可被配置为缓冲由熵编码器214创建的已编码视频序列,从而为通过通信信道218进行传输做准备,该通信信道可以是通向将存储已编码视频数据的存储设备的硬件/软件链路。传输器可被配置为将来自源编码器202的已编码视频数据与要传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。在一些实施例中,传输器可在传输已编码视频时传输附加数据。源编码器202可将此类数据作为已编码视频序列的一部分。附加数据可包括时间/空间/SNR增强层、诸如冗余图像和切片的其它形式的冗余数据、补充增强信息(Supplementary Enhancement Information,SEI)消息、视觉可用性信息(VisualUsability Information,VUI)参数集片段等。
控制器204可管理编码器组件106的操作。在编码期间,控制器204可以为每个已编码图像分配某一已编码图像类型,但这可能影响应用于相应的图像的编码技术。例如,可将图像指定为帧内图像(I图像)、预测图像(P图像)或双向预测图像(B图像)。帧内图像可在不将序列中的任何其它帧用作预测源的情况下被编码和解码。一些视频编解码器容许不同类型的帧内图像,包括例如独立解码器刷新(Independent Decoder Refresh,IDR)图像。所属领域的普通技术人员了解I图像的变体及其相应的应用和特征,因此这里不再赘述。预测性图像可使用帧内预测或帧间预测进行编码和解码,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。双向预测性图像可使用帧内预测或帧间预测进行编码和解码,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图像可使用多于两个参考图像和相关联元数据以用于重建单个块。
源图像通常可在空间上细分成多个样本块(例如,4×4、8×8、4×8或16×16个样本的块),且逐块进行编码。这些块可参考其它(已编码)块进行预测编码,根据应用于块的相应图像的编码分配来确定该其它块。举例来说,I图像的块可进行非预测编码,或该块可参考同一图像的已经编码的块来进行预测编码(空间预测或帧内预测)。P图像的像素块可参考一个先前编码的参考图像通过空间预测或通过时域预测进行非预测编码。B图像的块可参考一个或两个先前编码的参考图像通过空间预测或通过时域预测进行非预测编码。
视频可被采集作为呈时间序列的多个源图像(视频图像)。帧内图像预测(常常简化为帧内预测)利用给定图像中的空间相关性,而帧间图像预测则利用图像之间的(时间或其它)相关性。在一个示例中,将正在编码/解码的特定图像分割成块,该正在编码/解码的特定图像被称作当前图像。在当前图像中的块类似于视频中先前已编码且仍被缓冲的参考图像中的参考块时,可通过称作运动矢量的矢量对当前图像中的块进行编码。该运动矢量指向参考图像中的参考块,且在使用多个参考图像的情况下,该运动矢量可具有识别参考图像的第三维度。
编码器组件106可根据诸如本文中描述的任何预定视频编码技术或标准执行编码操作。在操作中,编码器组件106可执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可符合所用视频编解码技术或标准指定的语法。
图2B是示出了根据一些实施例的解码器组件122的示例元件的框图。图2B中的解码器组件122耦合到信道218和显示器124。在一些实施例中,解码器组件122包括耦合到环路滤波器单元256并被配置为向显示器124传输数据(例如,经由有线或无线连接)的传输器。
在一些实施例中,解码器组件122包括耦合到信道218并被配置为从信道218接收数据(例如,经由有线或无线连接)的接收器。接收器可被配置为接收将由解码器组件122解码的一个或多个已编码视频序列。在一些实施例中,每个已编码视频序列的解码独立于其他已编码视频序列。可从信道218接收每个已编码视频序列,该信道218可以是通向存储已编码视频数据的存储设备的硬件/软件链路。接收器可接收已编码视频数据以及其它数据,例如,可转发到它们各自的使用实体(未标示)的已编码音频数据和/或辅助数据流。接收器可将已编码视频序列与其它数据分开。在一些实施例中,接收器在接收已编码视频时还一起接收附加(冗余)数据。该附加数据可以是已编码视频序列的一部分。该附加数据可由解码器组件122用以对数据进行解码和/或较准确地重建原始视频数据。附加数据可呈例如时间、空间或信噪比(signal noise ratio,SNR)增强层、冗余切片、冗余图像、前向纠错码等形式。
根据一些实施例,解码器组件122包括缓冲存储器252、解析器254(有时也称为熵解码器)、缩放器/逆变换单元258、图像内预测单元262、运动补偿预测单元260、聚合器268、环路滤波器单元256、参考图像存储器266和当前图像存储器264。在一些实施例中,解码器组件122被实现为集成电路、一系列集成电路和/或其他电子电路。在一些实施例中,解码器组件122至少部分地用软件实现。
缓冲存储器252耦接在信道218和解析器254之间(例如,以防止网络抖动)。在某些实施例中,缓冲存储器252与解码器组件122分离。在一些实施例中,在信道218的输出和解码器组件122之间提供单独的缓冲存储器。在一些实施例中,除了解码器组件122内部的缓冲存储器252(例如,其被配置为处理播出定时)之外,在解码器组件122外部提供单独的缓冲存储器(例如,以防止网络抖动)。而当从具有足够带宽和可控性的存储/转发设备或从等时同步网络接收数据时,也可能不需要缓冲存储器252,或可以将该缓冲存储器做得较小。当然,为了在因特网等业务分组网络上使用,也可能需要缓冲存储器252,该缓冲存储器可相对较大且可有利地具有自适应性大小,且可至少部分地在解码器组件122之外的操作系统或类似元件(未标示)中实现。
解析器254被配置为从已编码视频序列重建符号270。该符号可以包括例如,用于管理解码器组件122的操作的信息,和/或用于控制诸如显示器124的呈现设备的信息。用于呈现设备的控制信息可以是例如SEI消息或VUI参数集片段(未标示)的形式。解析器254对已编码视频序列进行解析(熵解码)。已编码视频序列的编码可根据视频编解码技术或标准进行,且可遵循所属领域技术人员已知的原理,包括可变长度编码、霍夫曼编码、具有或不具有上下文灵敏度的算术编码等等。解析器254可基于对应于群组的至少一个参数,从已编码视频序列提取用于视频解码器中的像素的子群中的至少一个的子群参数集。子群可包括GOP、图像、图块(tiles)、切片(slices)、宏块、编码单元(Coding Unit,CU)、块、变换单元(Transform Unit,TU)、预测单元(Prediction Unit,PU)等等。解析器254还可从已编码视频序列提取信息,诸如变换系数、量化器参数值、运动矢量等。
取决于已编码视频图像或一部分已编码视频图像(诸如:帧间图像和帧内图像、帧间块和帧内块)的类型以及其它因素,符号270的重建可涉及多个不同单元。涉及哪些单元以及涉及方式可由解析器254从已编码视频序列解析的子群控制信息控制。为了简洁起见,未描述解析器254与下文的多个单元之间的此类子群控制信息流。
除已经提及的功能块以外,解码器组件122可在概念上细分成如下文所描述的数个功能单元。在商业约束下运行的实际实施方式中,这些单元中的许多单元彼此紧密交互并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,维持了概念上细分成下文的功能单元。
缩放器/逆变换单元258从解析器254接收作为符号270的量化变换系数以及控制信息(诸如使用哪种变换方式、块大小、量化因子、和/或量化缩放矩阵等)。缩放器/逆变换单元258可输出包括样本值的块,该样本值可输入到聚合器268中。
在一些情况下,缩放器/逆变换单元258的输出样本属于帧内编码块;即:不使用来自先前重建的图像的预测性信息,但可使用来自当前图像的先前重建部分的预测性信息的块。此类预测性信息可由帧内图像预测单元262提供。帧内图像预测单元262可采用从来自当前图像存储器264的当前(部分重建的)图像提取的周围已重建的信息生成大小和形状与正在重建的块相同的块。聚合器268可基于每个样本,将帧内图像预测单元262生成的预测信息添加到由缩放器/逆变换单元258提供的输出样本信息中。
在其它情况下,缩放器/逆变换单元258的输出样本属于帧间编码和潜在运动补偿块。在此情况下,运动补偿预测单元260可访问参考图像存储器266以提取用于预测的样本。在根据属于块的符号270对提取的样本进行运动补偿之后,这些样本可由聚合器268添加到缩放器/逆变换单元258的输出(在这种情况下被称作残差样本或残差信号),从而生成输出样本信息。运动补偿预测单元260从参考图像存储器266内的地址获取预测样本可受到运动矢量控制。该运动矢量可以符号270的形式而供运动补偿预测单元260使用,该符号270可具有例如X、Y和参考图像分量。运动补偿还可包括在使用子样本精确运动矢量时,从参考图像存储器266提取的样本值的内插、运动矢量预测机制等等。
聚合器268的输出样本可在环路滤波器单元256中被各种环路滤波技术采用。视频压缩技术可包括环路内滤波器技术,该环路内滤波器技术受控于包括在已编码视频比特流中的参数,且该参数作为来自解析器254的符号270可用于环路滤波器单元256,但也可以响应于在解码已编码图像或已编码视频序列的先前(按解码次序)部分期间获得的元信息,以及响应于先前重建且经过环路滤波的样本值。
环路滤波器单元256的输出可以是样本流,该样本流可输出到诸如显示器124的呈现设备,以及可存储在参考图像存储器266,以用于后续的帧间图像预测。
一旦完全重建,某些已编码图像就可用作参考图像以用于将来预测。一旦已编码图像被完全重建,且已编码图像(通过例如解析器254)被识别为参考图像,则当前参考图像可变为参考图像存储器266的一部分,且可在开始重建后续已编码图像之前重新分配新的当前图像存储器。
解码器组件122可根据预定视频压缩技术执行解码操作,该技术可以记录在诸如本文中描述的任何标准的标准中。在已编码视频序列遵循视频压缩技术或标准的语法(如在视频压缩技术文档或标准中,特别是在其中的档次(profile)中所指定的)的意义上,已编码视频序列可符合所使用的视频压缩技术或标准指定的语法。此外,为了符合一些视频压缩技术或标准,已编码视频序列的复杂度可处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图像大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图像大小等。在一些情况下,由层级设定的限制可通过假想参考解码器(Hypothetical Reference Decoder,HRD)规范和在已编码视频序列中用信号表示的HRD缓冲器管理的元数据来进一步限定。
图3是示出了根据一些实施例的服务器系统112的框图。服务器系统112包括控制电路302、一个或多个网络接口304、存储器314、用户界面306和用于互连这些组件的一个或多个通信总线312。在一些实施例中,控制电路302包括一个或多个处理器(例如,CPU、GPU和/或DPU)。在一些实施例中,控制电路包括一个或多个现场可编程门阵列(field-programmable gate array,FPGA)、硬件加速器、和/或一个或多个集成电路(例如,专用集成电路)。
(一个或多个)网络接口304可以被配置为与一个或多个通信网络(例如,无线、有线、和/或光网络)进行接口。通信网络可以是本地的、广域的、城域的、车辆的和工业的、实时的、延迟容忍的等等。通信网络的示例包括诸如以太网、无线局域网(local areanetwork,LAN)、蜂窝网络(包括GSM、3G、4G、5G、LTE等)等LAN、电视有线或无线广域数字网络(包括有线电视、卫星电视、和地面广播电视)、车载和工业网络(包括CAN总线(CANBus))等等。该通信可以是单向的,仅用于接收(例如,广播电视),单向的仅用于发送(例如CANBus到某些CANBus设备),或双向的(例如使用局域或广域数字网络到其它计算机系统)。这种通信可以包括到一个或多个云计算网络的通信。
用户界面306包括一个或多个输出设备308和/或一个或多个输入设备310。(一个或多个)输入设备310可以包括键盘、鼠标、触控板、触摸屏、数据手套、操纵杆、麦克风、扫描仪、相机等中的一个或多个。(一个或多个)输出设备308可以包括音频输出设备(例如,扬声器)、视觉输出设备(例如,显示器或检测器)等中的一个或多个。
存储器314可以包括高速随机存取存储器(诸如DRAM、SRAM、DDR RAM和/或其他随机存取固态存储器设备)和/或非易失性存储器(诸如一个或多个磁盘存储设备、光盘存储设备、闪存设备和/或其他非易失性固态存储设备)。存储器314可选地包括远离控制电路302的一个或多个存储设备。存储器314,或者可替换地,存储器314内的(一个或多个)非易失性固态存储器设备,包括非暂时性计算机可读存储介质。在一些实施例中,存储器314或存储器314的非暂时性计算机可读存储介质存储以下程序、模块、指令和数据结构,或其子集或超集:
操作系统316,包括用于处理各种基本系统服务和用于执行硬件相关任务的程序;
网络通信模块318,用于经由一个或多个网络接口304(例如,经由有线和/或无线连接)将服务器系统112连接到其他计算设备;
编码模块320,用于执行关于编码和/或解码数据(诸如视频数据)的各种功能。在某些实施例中,编码模块320是编码器组件114的实例。编码模块320包括但不限于以下中的一个或多个:
解码模块322,用于执行关于解码已编码数据的各种功能,诸如先前关于解码器组件122描述的那些功能;以及
编码模块340,用于执行关于编码数据的各种功能,诸如先前关于编码器组件106描述的那些功能;以及
图像存储器352,用于存储例如用于编码模块320的图像和图像数据。在一些实施例中,图像存储器352包括以下一项或多项:参考图像存储器208、缓冲存储器252、当前图像存储器264和参考图像存储器266。
在一些实施例中,解码模块322包括解析模块324(例如,被配置为执行先前关于解析器254描述的各种功能)、变换模块326(例如,被配置为执行先前关于缩放器/逆变换单元258描述的各种功能)、预测模块328(例如,被配置为执行先前关于运动补偿预测单元260和/或图像内预测单元262描述的各种功能)和滤波器模块330(例如,被配置为执行先前关于环路滤波器单元256描述的各种功能)。
在一些实施例中,编码模块340包括编码模块342(例如,被配置为执行先前关于源编码器202、编码引擎212、和/或熵编码器214描述的各种功能)和预测模块344(例如,被配置为执行先前关于预测器206描述的各种功能)。在一些实施例中,解码模块322和/或编码模块340包括图3所示模块的子集。例如,解码模块322和编码模块340都使用共享预测模块。
存储在存储器314中的上述识别的模块中的每个对应于用于执行本文中描述的功能的一组指令。上述识别的模块(例如,一组指令)不需要被实现为单独的软件程序、过程或模块,因此在各种实施例中,这些模块的各子集可以被组合或以其他方式重新排列。例如,编码模块320可选地不包括单独的解码和编码模块,而是使用相同的模块集合来执行两组功能。在一些实施例中,存储器314存储上述模块和数据结构的子集。在一些实施例中,存储器314存储上面没有描述的附加模块和数据结构,诸如音频处理模块。
在一些实施例中,服务器系统112包括web或超文本传输协议(HypertextTransfer Protocol,HTTP)服务器、文件传输协议(File Transfer Protocol,FTP)服务器,以及使用公共网关接口(Common Gateway Interface,CGI)脚本、PHP超文本预处理器(PHPHyper-text Preprocessor,PHP)、动态服务器页面(Active Server Page,ASP)、超文本标记语言(Hyper Text Markup Language,HTML)、可扩展标记语言(Extensible MarkupLanguage,XML)、Java、JavaScript、异步JavaScript和XML(Asynchronous JavaScript andXML,AJAX)、XHP、Javelin、无线通用资源文件(Wireless Universal Resource File,WURFL)等实现的网页和应用。
尽管图3示出了根据一些实施例的服务器系统112,但是图3更多地旨在作为可存在于一个或多个服务器系统中的各种特征的功能描述,而不是本文中描述的实施例的结构示意图。实际上,如所属领域普通技术人员所认识到的,单独示出的项目可以组合,一些项目可以分离。例如,图3中单独示出的一些项目可以在单个服务器上实现,并且单个项目可以由一个或多个服务器实现。用于实现服务器系统112的服务器的实际数量以及如何在它们之间分配特征将因实施方式的变化而变化,并且可选地,部分取决于服务器系统在高峰使用期间以及在平均使用期间处理的数据流量。
熵编码
如前所述,在熵编码期间,可将关于操作的数据发送到熵编码器(例如,熵编码器214)。熵编码器可以输出比特流,该比特流可以经由传输信道传输到另一设备。在视频解码过程期间,可将比特流发送到熵解码器。熵解码器可用于根据已编码图像来重建某些符号,这些符号表示构成该已编码图像的语法元素。此类符号可包括例如用于对该块进行编码的模式(例如帧内模式、帧间模式、双向预测模式、合并子模式或另一子模式)、可识别供帧内解码器或帧间解码器用以进行预测的某些样本或元数据的预测信息(例如帧内预测信息或帧间预测信息)、呈例如量化的变换系数形式的残差信息等等。
例如,在HEVC中,熵编码器/解码器可以使用上下文自适应二进制算术编码(context adaptive binary arithmetic coding,CABAC)算法。HEVC中的CABAC引擎在64种不同的代表性概率状态之间使用基于表格的概率转换过程。
可以对描述视频帧内容的语法元素进行二进制算术编码,以获得作为二进制bin流的已编码流。在CABAC期间,初始区间[0,1)可以被整数乘法器(例如,512)拉伸,最小概率符号的概率(probability of a least probable symbol,pLPS)可以通过舍入它们的商来呈现为整数除数。然后,具有典型算术编码的区间分裂操作可以作为使用具有指定分辨率的整数算术的近似计算来执行。
对应于LPS(rLPS)的更新的区间长度可以被计算为rLPS=R*pLPS,其中R是当前区间长度的值。为了节省时间和提高效率,可以用填充有预先计算的乘法结果的查找表(lookup table,LUT)来代替上述计算密集的乘法运算;因此,可以通过两个索引pStateIdx和qRangeIdx获得对应于LPS的更新的区间长度(ivLpsRange),例如ivlLpsRange=rangeTabLps[pStateIdx][qRangeIdx]。
在编码/解码期间,每次获得待编码/解码的bin的新值(binVal)时,可以递归地更新概率值pLPS。例如,在第k步(即,在第k个bin的编码或解码期间),当binVal是LPS的值时,可将pLPS的新值计算为较大的值;或者,当binVal是最大概率符号(most probablesymbol,MPS)的值时,可将pLPS的新值计算为较小的值。
在一些实施例中,pLPS可以是按照6位pStateIdx变量索引的64个可能的值之一。可以通过更新索引pStateIdx来实现更新概率值,这可以通过从预先计算的表中查找值来执行,从而节省计算能力和/或提高效率。
在一些实施例中,在计算新的区间范围之前,可将表示编码引擎状态的范围ivlCurrRange量化为4个值的集合。可以使用包含所有64x4 8位预先计算值的表格来实现状态转换,以近似ivlCurrRange*pLPS(pStateIdx)的值。此外,可以使用预先计算的LUT来实现解码决策。首先使用LUT获得ivlLpsRange,然后,ivlLpsRange用于更新ivlCurrRange并计算输出binVal。
例如,在VVC中,概率可以由概率索引pStateIdx线性地表达。因此,所有的计算都可以用方程来完成,而不需要LUT运算。为了提高概率估计的准确性,可以使用如图4所示的多假设概率更新模型。在本示例中,二进制算术编码器中的区间细分中使用的pStateIdx是两个概率pStateIdx0和pStateIdx1的组合。这两个概率与每个上下文模型相关联,并以不同的适应率独立地更新。可以基于相关联的bin的统计数字来预训练每个上下文模型的pStateIdx0和pStateIdx1的适应率。概率估计值pStateIdx可以是两个假设的估计值的平均值。
图4是示出了用于解码单个决策(DecodeDecision)的示例流程的流程图,包括算术解码引擎(RenomD)中的重整化过程。在一些实施例中,解码决策(DecodeDecision)的输入是上下文表格(ctxTable)和上下文索引(ctxIdx)。如402所示地导出变量ivlLpsRange的值。给定ivlCurrRange的当前值,按照qRangeIdx=ivlCurrRange>>5导出变量qRangeIdx。给定与ctxTable和ctxIdx相关联的qRangeIdx、pStateIdx0和pStateIdx1,按照pState=pStateIdx1+16*pStateIdx0;valMps=pState>>14;和ivlLpsRange=(qRangeIdx*((valMps?32767-pState:pState)>>9)>>1)+4导出valMps和ivlLpsRange。变量ivlCurrRange被设置为ivlCurrRange-ivlLpsRange。
当ivlOffset大于或等于ivlCurrRange时,变量binVal被设置为等于1-valMps,ivlOffset递减ivlCurrRange,ivlCurrRange被设置为等于ivlLpsRange;否则,变量binVal被设置为等于valMps。
为了更新概率,在状态转换过程期间,该过程的输入是当前pStateIdx0和pStateIdx1,以及已解码值binVal;并且该过程的输出是与ctxTable和ctxIdx相关联的上下文变量的更新的pStateIdx0和pStateIdx1。在402中,变量shift0和shift1是从与ctxTable和ctxIdx相关联的shiftIdx值导出的:shift0=(shiftIdx>>2)+2;和shift1=(shiftIdx&3)+3+shift0;并且取决于已解码值binVal,按照pStateIdx0=pStateIdx0-(pStateIdx0>>shift0)+(1023*binVal>>shift0)和pStateIdx1=pStateIdx1-(pStateIdx1>>shift1)+(16383*binVal>>shift1)导出与ctxTable和ctxIdx相关联的两个变量pStateIdx0和pStateIdx1的更新。
例如,VVC CABAC可以具有在每个切片(slice)开始时调用的量化参数(quantization parameter,QP)相关初始化过程。给定切片的亮度QP的初始值,可以通过以下方程导出表示为preCtxState的上下文模型的初始概率状态:m=slopeIdx×5-45,n=(offsetIdx<<3)+7;还有preCtxState=Clip3(1,127,((m×(QP-32))>>4)+n)。
在一些实施例中,slopeIdx和offsetIdx被限制为3位,并且总初始化值由6位精度表示。概率状态preCtxState可以直接表示线性域中的概率。因此,preCtxState在输入到算术编码引擎之前可能只需要适当的移位操作,并且可以预定义对数到线性域映射以及256字节表格并将其存储/保存在存储器中。pStateIdx0和pStateIdx1可以通过pStateIdx0=preCtxState<<3和pStateIdx1=preCtxState<<7获得。
在一些实施例中,CABAC算法可以使用二进制基础,其包括两个可能的字符/符号(例如,“0”和“1”)。在基于二进制的算术编码算法中,这两个可能的字符/符号也可以表示为LPS和MPS。
在一些实施例中,熵编码器或解码器可以使用基于M进制的算术算法,其包括M个可能的字符/符号。例如,M可以是2到16之间的任何整数值。例如,当M等于5时,M进制包括5个可能的字符/符号,这些字符/符号可以表示为“0”、“1”、“2”、“3”和“4”。
M进制算术编码引擎用于对语法元素进行熵编码。每个语法元素都与M个元素的字母表相关联。作为编码器或解码器的输入,编码上下文可以包括具有M个概率的集合的M进制符号序列。M个概率中的每个可以对应于M进制符号中的每个;并且可以由累积分布函数(cumulative distribution function,CDF)表示。
M进制符号的CDF可以表示为C=[c0,c1,...,c(M-2),c(M-1)]。M进制符号的CDF可以由M个15位整数的阵列表示,其中c(M-1)=215,cn/32768是符号小于或等于n的概率,n是从0到M-1的整数。
在一些实施例中,在编码/解析每个语法元素之后,更新M个概率(例如,CDF的阵列)。在一些实施例中,在对每个M进制符号进行编码/解码之后,更新M个概率。例如,当M=4时,CDF的阵列包括[c0,c1,c2,c3]。
在一些实施例中,根据以下方程执行M个概率的更新:
其中symbol是目前正在被编码/解码的m进制符号,α是基于符号已经被编码或解码的次数(例如,最多32次)而适应的概率更新速率,并且m是CDF中的元素的索引。α的这种适应可以允许在开始编码/解析语法元素时较快的概率更新。例如,当M=5并且目前正被解码的M进制符号是“3”时,m∈[0,symbol)可以为m∈[0,3),其中m包括0(含0)和3(不含3)之间的任何整数;并且m∈[symbol,M-1)可以为m∈[3,4),其中m包括3(含3)和4(不含4)之间的任何整数。
在一些实施例中,M进制算术编码过程可以遵循传统的算术编码引擎设计;然而,仅将15位概率值中的最高有效9位输入到算术编码器/解码器。当解析比特流时,基于相关联的符号的出现次数计算与符号相关联的概率更新速率α,并且在帧或图块(tile)的开始处使用以下公式重置α的值。
例如,其中计数是编码/解析比特流时相关联的符号的出现次数。如以上方程所指示的,概率更新速率在开始时(当计数相对较小时,例如16)具有较大的值,然后在以后(当计数相对较大时,例如在出现32次或40次后)饱和。
更新速率α会导致强偏置分布,其中某些符号概率降低到接近零。接近零的概率会导致BD率损失。为了抵消这种影响,可以使用正则化方法,其中在每次概率更新结束时,如果概率(pm)小于阈值(Pthr),则将正则化项应用于所有概率,以便将pm移动到Pthr。正则化项可以取自均匀分布,并且可以依赖于语法元素的样本空间。
图5A-图5B是示出了根据一些实施例的实施最小概率的示例方法的图。例如,在AV1中,应用最小概率Pmin来保护馈送到算术编码的概率(有时被称为“最小保护”方法),如图5A所示。在图5A所示的最小保护方法中,随后的模型更新在阶段n中增加p2,它进一步将p1推向0,这可能在存在模型误差的情况下潜在地带来编码效率损失。
正则化可以用作最小保护方法的替代,其在图5B中示出。例如,在更新结束时,如果概率pm低于Pmin,可以应用均匀分布作为正则化项来同时调整所有概率。
可将M进制均匀分布的CDF定义为这样,正则化通过/>Pmin将pm移回Pmin,从而导致/>更新率α可以近似为MPmin,因为Pmin<<1/M,并且可以允许/>略高于Pmin。这转化为/>的CDF正则化。显而易见,使用这些方程计算α或/>涉及除法运算。
当编码器/解码器仅使用单个概率模型时,可以使用用于编码M进制符号的多假设概率模型。例如,数据自适应模型可用于概率更新,其中语法元素出现的次数越少,更新率越高,而观察次数越多,更新率越低。多假设估计中的每个语法元素保持两个或多个不同更新速率的概率表格,可以带来额外的压缩效率。多假设概率模型可使用两种更新速率,诸如α1和α2,如下。
其中α2对较快的更新建模,而α1对较慢的更新建模。概率模型可以使用α1和α2的线性组合。例如,可以使用两个假设的平均值。
图6是示出了根据一些实施例的视频编码的方法600的流程图。方法600可以在具有控制电路和存储有由控制电路执行的指令的存储器的计算系统(例如,服务器系统112、源设备102或电子设备120)处执行。在一些实施例中,方法600通过执行存储在计算系统的存储器(例如,存储器314)中的指令来执行。
该系统获得(602)包括多个语法元素的视频数据,该多个语法元素包括具有M个元素的对应字母表的第一语法元素。该系统获得(604)该第一语法元素的该M个元素的相应出现概率的第一集合。该系统获得(606)该第一语法元素的该M个元素的相应出现概率的第二集合。该系统根据该第一集合和第二集合的聚合对该视频数据的第一部分进行熵编码(608)。当对该视频数据的该第一部分进行熵编码时,该系统遇到(encounters)(610)第一语法元素。该系统通过根据该第一语法元素确定该第一集合中的该M个元素的出现的更新概率来更新(614)该第一集合,其中该第一集合以第一速率更新。该系统对该视频数据的后续部分进行自适应熵编码(616)。
自适应熵编码包括,根据该第二集合中的该更新概率中的至少一个小于阈值概率值,根据更新的第一集合对该视频数据中的后续部分进行熵编码(618)。自适应熵编码包括,根据该第二集合中的该更新概率中的每个至少为该阈值概率值,根据更新的第一集合和第二集合的第一聚合对该视频数据中的该后续部分进行熵编码(620)。
在一些实施例中,为多假设概率模型预定义了加权处理单个假设的约定。在一些实施例中,当在语法R的熵编码期间更新单个假设的概率时,测试候选概率更新,并且如果候选概率更新针对[s0,s1,......,sk,......sM]中的符号产生了概率值其中至少有一个/>低于预定义的最小概率值Pthr,该特定单个假设的权重将被分配为零,并且从此该特定单个假设将不用于编码/解码语法。
在一些实施例中,对于涉及一个更新速率较快的假设和一个更新速率较慢的假设的双假设模型,概率更新的加权平均值用于对语法R进行熵编码,直到更新速率较快的假设具有至少一个低于预定义的最小概率值Pthr。一旦满足条件,只有更新速率较慢的假设被用于语法R的熵编码。
在一些实施例中,对于涉及一个更新速率较快的假设和一个更新速率较慢的假设的双假设模型,当两个假设中的每个具有至少一个低于预定义的最小概率值Pthr时,更新速率较慢的假设不被更新,并且用于语法R的熵编码。
在一些实施例中,对于涉及一个更新速率较快的假设和一个更新速率较慢的假设的双假设模型,概率更新的加权平均值用于对语法R进行熵编码,直到更新速率较快的假设具有至少一个低于预定义的最小概率值Pthr。一旦满足条件,应用另一种不同的加权处理来导出概率更新的加权平均值。
在一些实施例中,对于涉及一个更新速率较快的假设和一个更新速率较慢的假设的双假设模型,概率更新的加权平均值用于对语法R进行熵编码,直到更新速率较快的假设具有至少一个低于预定义的最小概率值Pthr。一旦满足条件,(在第2.3节中介绍的)用于计算更新速率的计数器就会增加,从而使用较大的窗口和较慢的更新速率。
在一些实施例中,自适应熵编码仅在多个语法元素的子集上执行。在一些实施例中,仅对于选定的语法元素,当更新的概率低于预定义的最小概率时,调整概率/假设。在一些实施例中,(当更新的概率低于预定义的最小概率时)概率调整方法仅应用于具有小于或等于N个符号的语法元素。N的示例值包括但不限于2、4、6、8、10、12。
在一些实施例中,由每个语法或一组语法的标志来指定(当更新的概率低于预定义的最小概率时)是否应用概率调整方法,并且可以在高级语法中用信号通知该标志。
尽管图6示出了以特定顺序排列的数个逻辑级,但是不依赖于顺序的级可以被重新排序,并且其他级可以被组合或分解。一些未具体提及的重新排序或其他分组对于所属领域普通技术人员将是显而易见的,因此本文中呈现的排序和分组不是详尽的。此外,应该认识到,各个级可以在硬件、固件、软件或其任意组合中实现。
现在转到一些示例实施例。在下文中,R对应于符号空间为ε[s0,s1,…,sk,…sM],概率为ε[p0,p1,…,pk,…pM]的M进制语法元素。M可以取包括但不限于范围2到16和k<=M的值。
(A1)在一个方面,一些实施例包括视频编码方法(例如,方法600)。在一些实施例中,该方法在具有存储器和控制电路的计算系统(例如,服务器系统112)上执行。在一些实施例中,该方法在编码模块(例如,编码模块320)处执行。在一些实施例中,该方法在熵编码器(例如,熵编码器214)处执行。在一些实施例中,该方法在解析器(例如,解析器254)处执行。该方法包括:(i)获得包括多个语法元素的视频数据,该多个语法元素包括具有M个元素的对应字母表的第一语法元素;(ii)获得该第一语法元素的该M个元素的相应出现概率的第一集合;(iii)获得该第一语法元素的该M个元素的相应出现概率的第二集合;(iv)确定预定义的阈值概率值,其中在解码该第一语法元素期间,使用概率值小于该预定义的阈值概率值的第一假设的方式与使用概率值大于该预定义的阈值概率值的第二假设的方式不同;(vi)通过根据该第一语法元素确定该第一集合中的该M个元素的出现的更新概率来更新该第一集合,其中该第一集合以第一速率更新;(vii)通过根据该第一语法元素确定该第二集合中的该M个元素的出现的更新概率来更新该第二集合,其中该第二集合以比该第一速率较快的第二速率更新;以及(viii)对该视频数据的一部分进行自适应熵编码,包括:(a)根据该第二集合中的该更新概率中的至少一个小于该预定义的阈值概率值,根据更新的第一集合对该视频数据的该部分进行熵编码;以及(b)根据该第二集合中的该更新概率中的每个至少为预定义的阈值概率值,根据更新的第一集合和第二集合的第一聚合对该视频数据的该部分进行熵编码。在一些实施例中,M个元素的数量在2到16的范围内。在一些实施例中,M个元素的数量大于16。在一些实施例中,范围是基于编解码协议、标准和/或配置预定义的。在一些实施例中,该方法还包括根据该第一集合和第二集合的聚合对该视频数据的第一部分进行熵编码;以及在对该视频数据的该第一部分进行熵编码时,遇到第一语法元素,其中响应于遇到该第一语法元素而更新该第一集合和第二集合。
(A2)在A1的一些实施例中,根据该更新的第一集合对该视频数据中的该部分进行熵编码包括:在该更新的第一集合和第二集合的第二聚合中为更新的第二集合分配权重为零。例如,第二聚合是更新的第一集合和第二集合的加权平均值,并且分配给更新的第二集合的权重为零。
(A3)在A1或A2的一些实施例中,根据该更新的第一集合对该视频数据中的该部分进行熵编码包括:不使用该更新的第二集合对该视频数据的该部分进行熵编码。例如,仅使用更新的第一集合对该视频数据的该部分进行熵编码。
(A4)在A1-A3中任一个的一些实施例中,该阈值概率值是基于该第一语法元素的一个或多个属性从一个阈值概率值集合中选择的。例如,阈值概率值可以基于M个元素的数量。
(A5)在A1-A4中任一个的一些实施例中,该方法还包括根据该第二集合中的该更新概率中的至少一个小于该阈值概率值,并且根据该第一集合中的该更新概率中的至少一个小于该阈值概率值:(i)丢弃该更新的第一集合;以及(ii)根据该第一集合对该视频数据的该部分进行熵编码。例如,如果两个更新的集合都包括低于阈值概率值的概率,则第二编码使用第一集合而不应用任何更新。
(A6)在A1-A5中任一个的一些实施例中,根据该更新的第一集合对该视频数据中的该部分进行熵编码包括:根据该更新的第一集合和第二集合的第二聚合对该视频数据的该部分进行熵编码,其中该第二聚合涉及与该第一聚合不同的加权处理。例如,根据具有低于阈值概率值的概率的第二集合的元素之一来降低第二集合的权重值。
(A7)在A1-A6中任一个的一些实施例中,该方法还包括:根据该第二集合中的该更新概率中的至少一个小于该阈值概率值,降低该第二集合的更新速率。例如,第二集合以较低的速率更新,以防止其任何元素的概率快速接近零。
(A8)在A1-A7中任一个的一些实施例中,该多个语法元素包括具有N个元素的对应字母表的第二语法元素,并且该方法还包括:(i)获得该第二语法元素的该N个元素的相应出现概率的第一集合;(ii)获得该第二语法元素的该N个元素的相应出现概率的第二集合;(iii)当对该视频数据的第一部分进行熵编码时,遇到该第二语法元素;(iv)通过根据该第二语法元素确定该第一集合中的该N个元素的出现的更新概率来更新该N个元素的相应出现概率的该第一集合;(v)通过根据该第二语法元素确定该第二集合中的该N个元素的出现的更新概率来更新该N个元素的相应出现概率的该第二集合;以及(vi)根据该N个元素的相应出现概率的更新的第一集合和第二集合的聚合对该视频数据的第二部分进行熵编码。在一些实施例中,N大于M。在一些实施例中,N大于阈值数量(例如,16、12或10),并且M小于或等于阈值数量。
(A9)在A1-A8中任一个的一些实施例中,根据M小于阈值数量对该视频数据的该部分进行自适应熵编码。例如,M小于16、12或10。
(A10)在A9的一些实施例中,该方法还包括,根据M大于该阈值数量,放弃对该视频数据的该部分进行自适应熵编码。在一些实施例中,根据M大于阈值数量,使用更新的第一集合和第二集合的第一聚合来编码视频数据的部分。
(A11)在A1-A10中任一个的一些实施例中,根据与第一语法元素相关联的用于启用自适应熵编码的元数据对该视频数据的该部分进行自适应熵编码。例如,与第一语法元素相关联的标志指示是否使用自适应熵编码。
本文中描述的方法可以单独使用或以任何顺序组合使用。每个方法可以通过处理电路(例如,一个或多个处理器或一个或多个集成电路)来实现。在一些实施例中,该处理电路执行存储在非暂时性计算机可读介质中的程序。
术语“块”可以解释为预测块、编码块或CU。在一些实施例中,术语“块”用于指代变换块。术语“块大小”指的是块的宽度或高度、宽度和高度的最大值、宽度和高度的最小值、面积大小(宽度*高度)、和/或块的纵横比(宽度:高度、或高度:宽度)。较快的更新速率指的是较大的更新速率值和/或较小的概率更新窗口大小。较慢的更新速率指的是较小的更新速率值和/或较大的概率更新窗口大小。
在另一方面,一些实施例包括计算系统(例如,服务器系统112),该计算系统包括控制电路(例如,控制电路302)和耦接到控制电路的存储器(例如,存储器314),该存储器存储有被配置为由该控制电路执行的一组或多组指令,该一组或多组指令包括用于执行本文中描述的任何方法(例如,上文的A1-A11)的指令。
在又一方面,一些实施例包括非暂时性计算机可读存储介质,该存储介质存储有用于由计算系统的控制电路执行的一组或多组指令,该一组或多组指令包括用于执行本文中描述的任何方法(例如,上文的A1-A11)的指令。
应当理解,尽管本文中的术语“第一”、“第二”等可用于描述各种元件,这些元件不应受这些术语的限制。这些术语仅用于将一个元件与另一个元件区分开。
本文中使用的术语仅用于描述特定实施例的目的,并不旨在限制权利要求。如在实施例和所附权利要求的描述中所使用的,单数形式的“一”、“一个”和“所述”也旨在包括复数形式,除非上下文另有明确指示。还应当理解,本文中使用的术语“和/或”指的是并包含一个或多个相关联的所列出的项目的任何和所有可能的组合。还应理解,当在本说明书中使用时,术语“包括”和/或“包含”指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。
如本文所使用的,术语“如果”可以被解释为指“当......时”或“在......时”或“响应于确定”或“根据确定”或“响应于检测到”所陈述的先决条件为真,这取决于上下文。类似地,短语“如果确定【所陈述的先决条件为真】”或“如果【所陈述的先决条件为真】”或“当【所陈述的先决条件为真】时”可被解释为“在确定时”或“响应于确定”或“根据确定”或“在检测到时”或“响应检测到”所陈述的先决条件为真,这取决于上下文。
出于解释的目的,已经参照具体实施例描述了前述描述内容。然而,上文的说明性讨论并不旨在详尽地或限制权利要求于所公开的精确形式。鉴于上述教导,许多修改和变化是可能的。选择和描述实施例是为了最好地解释操作原理和实际应用,从而使本领域技术人员能够实施。
Claims (20)
1.一种在计算系统上执行的视频编码方法,所述计算系统具有存储器和一个或多个处理器,所述方法包括:
获得包括多个语法元素的视频数据,所述多个语法元素包括具有M个元素的对应字母表的第一语法元素;
获得所述第一语法元素的所述M个元素的相应出现概率的第一集合;
获得所述第一语法元素的所述M个元素的相应出现概率的第二集合;
确定预定义的阈值概率值,其中在所述第一语法元素的解码期间,使用概率值小于所述预定义的阈值概率值的第一假设的方式与使用概率值大于所述预定义的阈值概率值的第二假设的方式不同;
通过根据所述第一语法元素确定所述第一集合中的所述M个元素的出现的更新概率来更新所述第一集合,其中所述第一集合以第一速率更新;
通过根据所述第一语法元素确定所述第二集合中的所述M个元素的出现的更新概率来更新所述第二集合,其中所述第二集合以比所述第一速率快的第二速率更新;以及
对所述视频数据的一部分进行自适应熵编码,包括:
根据所述第二集合中的所述更新概率中的至少一个更新概率小于所述预定义的阈值概率值,根据更新的第一集合对所述视频数据中的所述部分进行熵编码;以及
根据所述第二集合中的所述更新概率中的每个更新概率至少为所述预定义的阈值概率值,根据更新的第一集合和第二集合的第一聚合对所述视频数据中的所述部分进行熵编码。
2.根据权利要求1所述的方法,其中,根据所述更新的第一集合对所述视频数据中的所述部分进行熵编码包括:在所述更新的第一集合和第二集合的第二聚合中为所述更新的第二集合分配权重为零。
3.根据权利要求1所述的方法,其中,根据所述更新的第一集合对所述视频数据中的所述部分进行熵编码包括:不使用所述更新的第二集合对所述部分进行熵编码。
4.根据权利要求1所述的方法,其中,所述阈值概率值是基于所述第一语法元素的一个或多个属性从一个阈值概率值集合中选择的。
5.根据权利要求1所述的方法,其中,所述方法还包括:根据所述第二集合中的所述更新概率中的至少一个小于所述阈值概率值,并且根据所述第一集合中的所述更新概率中的至少一个小于所述阈值概率值:
丢弃所述更新的第一集合;以及
根据所述第一集合对所述视频数据的所述部分进行熵编码。
6.根据权利要求1所述的方法,其中,根据所述更新的第一集合对所述视频数据中的所述部分进行熵编码包括:根据所述更新的第一集合和第二集合的第二聚合对所述视频数据的所述部分进行熵编码,其中所述第二聚合涉及与所述第一聚合不同的加权处理。
7.根据权利要求1所述的方法,其中,所述方法还包括:根据所述第二集合中的所述更新概率中的至少一个小于所述阈值概率值,降低所述第二集合的更新速率。
8.根据权利要求1所述的方法,其中,所述多个语法元素包括具有N个元素的对应字母表的第二语法元素,并且所述方法还包括:
获得所述第二语法元素的所述N个元素的相应出现概率的第一集合;
获得所述第二语法元素的所述N个元素的相应出现概率的第二集合;
通过根据所述第二语法元素确定所述第一集合中的所述N个元素的出现的更新概率来更新所述N个元素的相应出现概率的所述第一集合;
通过根据所述第二语法元素确定所述第二集合中的所述N个元素的出现的更新概率来更新所述N个元素的相应出现概率的所述第二集合;以及
根据所述N个元素的相应出现概率的更新的第一集合和第二集合的聚合对所述视频数据的所述部分进行熵编码。
9.根据权利要求1所述的方法,其中,根据M小于阈值数量对所述视频数据的所述部分进行自适应熵编码。
10.根据权利要求9所述的方法,其中,所述方法还包括:根据M大于所述阈值数量,放弃对所述视频数据的所述部分进行自适应熵编码。
11.根据权利要求1所述的方法,其中,根据与第一语法元素相关联的用于启用自适应熵编码的元数据对所述视频数据的所述部分进行自适应熵编码。
12.一种计算系统,所述计算系统包括:
控制电路;
存储器;以及
存储在所述存储器中的一组或多组指令,所述一组或多组指令被配置为由所述控制电路执行,所述一组或多组指令包括执行以下操作的指令:
获得包括多个语法元素的视频数据,所述多个语法元素包括具有M个元素的对应字母表的第一语法元素;
获得所述第一语法元素的所述M个元素的相应出现概率的第一集合;
获得所述第一语法元素的所述M个元素的相应出现概率的第二集合;
确定预定义的阈值概率值,其中在所述第一语法元素的解码期间,使用概率值小于所述预定义的阈值概率值的第一假设的方式与使用概率值大于所述预定义的阈值概率值的第二假设的方式不同;
通过根据所述第一语法元素确定所述第一集合中的所述M个元素的出现的更新概率来更新所述第一集合,其中所述第一集合以第一速率更新;
通过根据所述第一语法元素确定所述第二集合中的所述M个元素的出现的更新概率来更新所述第二集合,其中所述第二集合以比所述第一速率快的第二速率更新;
对所述视频数据的一部分进行自适应熵编码,包括:
根据所述第二集合中的所述更新概率中的至少一个更新概率小于所述预定义的阈值概率值,根据更新的第一集合对所述视频数据中的所述部分进行熵编码;以及
根据所述第二集合中的所述更新概率中的每个更新概率至少为所述预定义的阈值概率值,根据更新的第一集合和第二集合的第一聚合对所述视频数据中的所述部分进行熵编码。
13.根据权利要求12所述的计算系统,其中,根据所述更新的第一集合对所述视频数据中的所述部分进行熵编码包括:不使用所述更新的第二集合对所述部分进行熵编码。
14.根据权利要求12所述的计算系统,其中,根据所述更新的第一集合对所述视频数据中的所述部分进行熵编码包括:根据所述更新的第一集合和第二集合的第二聚合对所述视频数据的所述部分进行熵编码,其中所述第二聚合涉及与所述第一聚合不同的加权处理。
15.根据权利要求12所述的计算系统,其中,所述一组或多组指令还包括执行以下操作的指令:根据所述第二集合中的所述更新概率中的至少一个小于所述阈值概率值,降低所述第二集合的更新速率。
16.根据权利要求12所述的计算系统,其中,根据M小于阈值数量对所述视频数据的所述部分进行自适应熵编码。
17.一种非暂时性计算机可读存储介质,存储有一组或多组指令,所述一组或多组指令被配置为由具有控制电路和存储器的计算设备执行,所述一组或多组指令包括执行以下操作的指令:
获得包括多个语法元素的视频数据,所述多个语法元素包括具有M个元素的对应字母表的第一语法元素;
获得所述第一语法元素的所述M个元素的相应出现概率的第一集合;
获得所述第一语法元素的所述M个元素的相应出现概率的第二集合;
确定预定义的阈值概率值,其中在所述第一语法元素的解码期间,使用概率值小于所述预定义的阈值概率值的第一假设的方式与使用概率值大于所述预定义的阈值概率值的第二假设的方式不同;
通过根据所述第一语法元素确定所述第一集合中的所述M个元素的出现的更新概率来更新所述第一集合,其中所述第一集合以第一速率更新;
通过根据所述第一语法元素确定所述第二集合中的所述M个元素的出现的更新概率来更新所述第二集合,其中所述第二集合以比所述第一速率快的第二速率更新;
对所述视频数据的一部分进行自适应熵编码,包括:
根据所述第二集合中的所述更新概率中的至少一个更新概率小于所述预定义的阈值概率值,根据更新的第一集合对所述视频数据中的所述部分进行熵编码;以及
根据所述第二集合中的所述更新概率中的每个更新概率至少为所述预定义的阈值概率值,根据更新的第一集合和第二集合的第一聚合对所述视频数据中的所述部分进行熵编码。
18.根据权利要求17所述的非暂时性计算机可读存储介质,其中,根据所述更新的第一集合对所述视频数据中的所述部分进行熵编码包括:不使用所述更新的第二集合对所述部分进行熵编码。
19.根据权利要求17所述的非暂时性计算机可读存储介质,其中,根据所述更新的第一集合对所述视频数据中的所述部分进行熵编码包括:根据所述更新的第一集合和第二集合的第二聚合对所述视频数据的所述部分进行熵编码,其中所述第二聚合涉及与所述第一聚合不同的加权处理。
20.根据权利要求17所述的非暂时性计算机可读存储介质,其中,所述一组或多组指令还包括执行以下操作的指令:根据所述第二集合中的所述更新概率中的至少一个小于所述阈值概率值,降低所述第二集合的更新速率。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202263322411P | 2022-03-22 | 2022-03-22 | |
US63/322,411 | 2022-03-22 | ||
US18/121,432 US20230308651A1 (en) | 2022-03-22 | 2023-03-14 | Systems and methods for regularization-free multi-hypothesis arithmetic coding |
US18/121,432 | 2023-03-14 | ||
PCT/US2023/015306 WO2023183173A1 (en) | 2022-03-22 | 2023-03-15 | Systems and methods for regularization-free multi-hypothesis arithmetic coding |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117280682A true CN117280682A (zh) | 2023-12-22 |
Family
ID=88096827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202380011581.6A Pending CN117280682A (zh) | 2022-03-22 | 2023-03-15 | 用于无正则化多假设算术编码的系统和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230308651A1 (zh) |
KR (1) | KR20230152751A (zh) |
CN (1) | CN117280682A (zh) |
WO (1) | WO2023183173A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106412608B (zh) * | 2010-04-13 | 2019-10-08 | Ge视频压缩有限责任公司 | 用于解码、生成数据流的方法和解码器 |
CN106358045B (zh) * | 2010-04-13 | 2019-07-19 | Ge视频压缩有限责任公司 | 解码器、解码方法、编码器以及编码方法 |
AP2016009618A0 (en) * | 2011-06-16 | 2016-12-31 | Ge Video Compression Llc | Entropy coding of motion vector differences |
-
2023
- 2023-03-14 US US18/121,432 patent/US20230308651A1/en active Pending
- 2023-03-15 WO PCT/US2023/015306 patent/WO2023183173A1/en active Application Filing
- 2023-03-15 KR KR1020237034069A patent/KR20230152751A/ko active Search and Examination
- 2023-03-15 CN CN202380011581.6A patent/CN117280682A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
WO2023183173A1 (en) | 2023-09-28 |
KR20230152751A (ko) | 2023-11-03 |
US20230308651A1 (en) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7221390B2 (ja) | ビデオ復号及び符号化の方法、装置並びにプログラム | |
CN114270836A (zh) | 视频编解码的颜色转换 | |
CN112514385A (zh) | 用于视频编码的方法和装置 | |
JP2023542029A (ja) | 低ビット精度のニューラルネットワーク(nn)に基づくクロスコンポーネント予測のための方法、機器、及びコンピュータプログラム | |
US20240031605A1 (en) | Reducing context models for entropy coding of transform coefficients | |
JP2023542332A (ja) | 倍率を有するdnnに基づくクロスコンポーネント予測のためのコンテンツ適応型オンライントレーニング | |
CN117280682A (zh) | 用于无正则化多假设算术编码的系统和方法 | |
US20240080446A1 (en) | Systems and methods for parameterizing arithmetic coder probability update rates | |
US20230291935A1 (en) | Systems and methods for division-free probability regularization for arithmetic coding | |
US20230291905A1 (en) | Method and apparatus for adaptive multi-hypothesis probability model for arithmetic coding | |
US20240015331A1 (en) | Systems and methods including syntax design for multi-symbol arithmetic coding | |
US11652996B2 (en) | Method and apparatus for video coding | |
US20240029316A1 (en) | Systems and methods for reflection symmetry-based mesh coding | |
US20230336728A1 (en) | CABAC Inherited Context Initialization | |
US20240179304A1 (en) | Systems and methods for signaling of downsampling filters for chroma from luma intra prediction mode | |
US20240129507A1 (en) | Cabac context model grouping | |
KR20240072226A (ko) | 멀티-심볼 산술 코딩을 위한 신택스 설계를 포함하는 시스템 및 방법 | |
WO2024118114A1 (en) | Systems and methods for signaling of downsampling filters for chroma from luma intra prediction mode | |
CN117296318A (zh) | Cabac上下文初始化的ctu级别继承 | |
CN117203961A (zh) | 利用来自空间邻居的信息的cabac上下文建模 | |
CN116508319A (zh) | 神经图像压缩中的逐块熵编码方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40099679 Country of ref document: HK |