一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

视频编解码中的缩放窗口的制作方法

2023-02-06 12:12:36 来源:中国专利 TAG:

视频编解码中的缩放窗口
1.相关申请的交叉引用
2.根据巴黎公约适用的专利法和/或规则,提出本技术是为了及时要求2020年5月21日提交的国际专利申请no.pct/cn2020/091533的优先权和权益。出于法律规定的所有目的,上述申请的全部公开内容通过引用并入作为本技术的公开内容的部分。
技术领域
3.该专利文档涉及图像和视频编解码和解码。


背景技术:

4.数字视频占互联网和其他数字通信网络上最大的带宽使用。随着能够接收和显示视频的连接用户设备数量的增加,预计数字视频使用的带宽需求将继续增长。


技术实现要素:

5.本文档公开了可由视频编码器和解码器使用以使用对编解码表示的解码有用的控制信息来处理视频的编解码表示的技术。
6.在一个示例方面,公开了一种视频处理方法。该方法包括根据规则执行包括视频图片的视频和视频的比特流之间的转换,其中,该规则规定,语法元素指示视频图片的缩放窗口的第一宽度和第一高度,并且其中,该规则规定,语法元素的允许值的范围包括大于或等于视频图片的第二宽度的两倍和视频图片的第二高度的两倍的值。
7.在另一个示例方面,公开了一种视频处理方法。该方法包括为视频的视频图片和视频的比特流之间的转换,确定(1)视频的参考视频图片的第一缩放窗口的第一宽度或第一高度以及(2)当前视频图片的第二缩放窗口的第二宽度或第二高度是否或如何根据规则而被约束;并且根据确定执行转换。
8.在另一个示例方面,公开了一种视频处理方法。该方法包括执行包括包含一个或多个视频条带的视频图片的视频与视频的比特流之间的转换,其中,比特流符合规则,该规则规定,视频图片的缩放窗口的宽度和高度确定变量的值,变量指定是否为视频图片的视频条带启用对第i个参考图片列表中的第j个参考视频图片进行重采样,其中,i和j是整数。
9.在另一个示例方面,公开了一种视频处理方法。该方法包括根据格式规则执行包括一个或多个视频图片的视频与视频的比特流之间的转换,其中,格式规则规定,语法元素被包含在序列参数集中,并且其中,语法元素指示是否为参考图片启用参考图片重采样以及是否允许编解码层视频序列中的当前视频图片的一个或多个条带参考参考图片列表中的活动条目中的参考图片,并且其中,参考图片具有与当前视频图片不同的以下六个参数中的任意一个或多个:1)视频图片宽度,2)视频图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
10.在另一个示例方面,公开了一种视频处理方法。该方法包括根据格式规则执行包括一个或多个视频图片的视频与视频的比特流之间的转换,其中,格式规则规定,语法元素
被包含在序列参数集中,其中,格式规则规定,语法元素的值是基于(1)参考序列参数集的当前视频层是否不是独立的视频层和(2)与当前视频层相关联的一个或多个参考视频层的信息,其中,当视频层不依赖于一个或多个其他视频层时,视频层是独立的视频层,并且其中,当视频层依赖于一个或多个其他视频层时,视频层不是独立的视频层。
11.在另一个示例方面,公开了一种视频处理方法。该方法包括根据格式规则执行包括一个或多个视频图片的视频与视频的比特流之间的转换,其中,格式规则规定,在由一个或多个视频图片参考的序列参数集中指示语法元素;并且其中,语法元素指示是否为与一个或多个视频图片在同一层中的一个或多个参考图片启用参考图片重采样。
12.在另一个示例方面,公开了一种视频处理方法。该方法包括执行包括一个或多个视频图片的视频和视频的编解码表示之间的转换,其中,编解码表示符合格式规则;其中,格式规则规定,被包含在与缩放窗口相关的编解码表示中的一个或多个语法元素被允许具有指示缩放窗口的高度或宽度大于或等于对应视频图片的高度或宽度的值。
13.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行在一个或多个视频层中包括一个或多个视频图片的视频与视频的编解码表示之间的转换,其中,该编解码表示符合格式规则;其中,格式规则规定,与缩放窗口相关的编解码表示中包括的一个或多个语法元素的允许值受约束规则的约束,其中,该约束规则取决于当前图片的第一层和当前图片的参考图片的第二层之间的关系。
14.在另一个示例方面,公开了另一种视频处理方法。该方法包括执行在包括包含一个或多个视频图片的一个或多个视频层的视频和视频的编解码表示之间的转换,其中,编解码表示符合格式规则,其中,格式规则规定,语法元素被包括在参数集中的编解码表示,其中,语法元素指示是否为非独立的视频层启用参考图片重采样,其中,语法元素的值是非独立的视频层的参考层的函数。
15.在又一示例方面,公开了一种视频编码器装置。视频编码器包括被配置为实施上述方法的处理器。
16.在又一示例方面,公开了一种视频解码器装置。视频解码器包括被配置为实施上述方法的处理器。
17.在又一个示例方面,公开了一种其上存储有代码的计算机可读介质。该代码以处理器可执行代码的形式体现了本文描述的方法之一。
18.这些和其他特征在整个本文档中都进行了描述。
附图说明
19.图1显示了图片的光栅扫描条带分割的示例,其中,图片被划分为12个片和3个光栅扫描条带。
20.图2显示了图片的矩形条带分割的示例,其中,图片被划分为24个片(6个片列和4个片行)和9个矩形条带。
21.图3显示了分割为片和矩形条带的图片的示例,其中,图片被划分为4个片(2个片列和2个片行)和4个矩形条带。
22.图4显示了分割为15个片、24个条带和24个子图片的图片。
23.图5显示了典型的基于子图片的视口相关360
°
视频编解码方案。
24.图6显示了基于子图片和空域可缩放性的改进的视口相关360
°
视频编解码方案。
25.图7是示例视频处理系统的框图。
26.图8是视频处理装置的框图。
27.图9是视频处理的示例方法的流程图。
28.图10是示出了根据本发明的一些实施例的视频编解码系统的框图。
29.图11是示出了根据本发明的一些实施例的编码器的框图。
30.图12是示出了根据本发明的一些实施例的解码器的框图。
31.图13至图18是视频处理的示例方法的流程图。
具体实施方式
32.本文档中使用章节标题是为了易于理解并且不将各章节中公开的技术和实施例的适用性仅限制于该章节。此外,在一些描述中使用h.266术语仅仅是为了易于理解,而不是为了限制所公开技术的范围。因此,本文描述的技术也适用于其他视频编解码器协议和设计。
33.1.介绍
34.该专利文档涉及视频编解码技术。具体来说,它是关于改进对视频编解码中的参考图片重采样(referencepictureresampling,rpr)的支持,包括指定缩放窗口偏移的值范围以及在层的编解码视频序列内对rpr和分辨率变化的控制的信令通知。这些想法可以单独或以各种组合应用于支持多层视频编解码(例如,正在开发的多功能视频编解码(vvc))的任何视频编解码标准或非标准视频编解码器。
35.2.缩写
36.aps(adaptationparameterset)自适应参数集
37.au(accessunit)接入单元
38.aud(accessunitdelimiter)接入单元分隔符
39.avc(advancedvideocoding)高级视频编解码
40.clvs(codedlayervideosequence)编解码层视频序列
41.cpb(codedpicturebuffer)编解码图片缓冲器
42.cra(cleanrandomaccess)纯随机接入
43.ctu(codingtreeunit)编解码树单元
44.cvs(codedvideosequence)编解码视频序列
45.dci(decodingcapabilityinformation)解码能力信息
46.dpb(decodedpicturebuffer)解码图片缓冲器
47.eob(endofbitstream)比特流结尾
48.eos(endofsequence)序列结尾
49.gdr(gradualdecodingrefresh)逐渐解码刷新
50.hevc(highefficiencyvideocoding)高效视频编解码
51.hrd(hypotheticalreferencedecoder)假设参考解码器
52.idr(instantaneousdecodingrefresh)即时解码刷新
53.ilp(inter-layerprediction)层间预测
54.ilrp(inter-layerreferencepicture)层间参考图片
55.jem(jointexplorationmodel)联合探索模型
56.ltrp(long-termreferencepicture)长期参考图片
57.mcts(motion-constrainedtilesets)运动约束片集
58.nal(networkabstractionlayer)网络抽象层
59.ols(outputlayerset)输出层集
60.ph(pictureheader)图片标头
61.pps(pictureparameterset)图片参数集
62.ptl(profile,tierandlevel)档次、层和级别
63.pu(pictureunit)图片单元
64.rap(randomaccesspoint)随机接入点
65.rbsp(rawbytesequencepayload)原始字节序列载荷
66.se(syntaxelement)语法元素
67.sei(supplementalenhancementinformation)补充增强信息
68.sps(sequenceparameterset)序列参数集
69.strp(short-termreferencepicture)短期参考图片
70.svc(scalablevideocoding)可缩放视频编解码
71.vcl(videocodinglayer)视频编解码层
72.vps(videoparameterset)视频参数集
73.vtm(vvctestmodel)vvc测试模型
74.vui(videousabilityinformation)视频可用性信息
75.vvc(versatilevideocoding)多功能视频编解码
76.3.初步讨论
77.视频编解码标准主要是通过众所周知的itu-t和iso/iec标准的发展而得以演进。itu-t制作了h.261和h.263标准,iso/iec制作了mpeg-1和mpeg-4visual标准,并且两个组织联合制作了h.262/mpeg-2视频标准和h.264/mpeg-4高级视频编解码(avc)标准和h.265/hevc标准。从h.262开始,视频编解码标准基于混合视频编解码结构,其中,利用时域预测加变换编解码。为了探索hevc之外的未来视频编解码技术,由vceg和mpeg于2015年联合成立联合视频探索团队(jointvideoexplorationteam,jvet)。从那时起,jvet采用了许多新方法并将其纳入名为联合探索模型(jem)的参考软件。jvet会议每季度同时举行一次,新编解码标准的目标是与hevc相比降低50%比特率。新的视频编解码标准在2018年4月的jvet会议上被正式命名为多功能视频编码(vvc),并且第一版vvc测试模型(vtm)也在当时发布。随着vvc标准化的不断努力,新的编解码技术在每次jvet会议上都被采用到vvc标准中。vvc的工作草案和测试模型vtm在每次会议后都会更新。vvc项目现在的目标是在2020年7月的会议上技术完成(fdis)。
78.3.1.hevc中的图片分割方案
79.hevc包括四种不同的图片分割方案,即常规条带、非独立条带、片和波前并行处理(wavefrontparallelprocessing,wpp),这可应用于最大传输单元(maximumtransferunit,mtu)尺寸匹配、并行处理和减小端到端延迟。
80.常规条带与h.264/avc中的类似。每个常规条带都被封装在它自己的nal单元中,并且禁用了跨条带边界的图内预测(帧内样点预测、运动信息预测、编解码模式预测)和熵编解码依赖性。因此,可以独立于同一图片内的其他常规条带重建常规条带(尽管由于环路滤波操作可能仍然存在相互依赖性)。
81.常规条带是唯一可用于并行化的工具,该工具在h.264/avc中也以几乎相同的形式可用。基于常规条带的并行化不需要太多处理器间或核间通信(除了在解码预测编解码图片时用于运动补偿的处理器间或核间数据共享,由于帧内图片预测,这通常比处理器间或核间的数据共享重得多)。然而,出于同样的原因,由于条带头的比特成本以及跨条带边界的预测缺失,使用常规条带可能会产生大量的编解码开销。此外,由于常规条带的图片内独立性以及每个常规条带都封装在其自己的nal中,因此常规条带(与下面提到的其他工具相比)也可作为比特流分割以匹配mtu尺寸要求的关键机制。在许多情况下,并行化的目标和mtu尺寸匹配的目标对图片中的条带布局的要求是矛盾的。这种情况的实现导致了下面提到的并行化工具的开发。
82.非独立条带具有短条带头并且允许在树块边界处对比特流进行分割而不破坏任何图片内预测。基本上,非独立条带将常规条带分成多个nal单元,通过允许在整个常规条带的编码完成之前发送常规条带的一部分来减少端到端延迟。
83.在wpp中,图片被分割成单行的编解码树块(coding tree block,ctb)。允许熵解码和预测以使用来自其他分割中的ctb的数据。通过ctb行的并行解码可以进行并行处理,其中,ctb行的解码开始延迟两个ctb,以确保与在主体ctb上方和右侧的ctb相关的数据可以在正在解码的主体ctb之前获得。使用这种交错开始(这以图形方式表示时看起来像一个波前),可以并行化与包含有ctb行的图片一样多的处理器/核。因为允许图片内的临近树块行之间的图片内预测,所以实现图片内预测所需的处理器间/核间通信可能是大量的。与未应用wpp分割相比,wpp分割不会导致产生额外的nal单元,因此wpp不是用于mtu尺寸匹配的工具。但是,如果需要mtu尺寸匹配,则可以将常规条带与wpp一起使用,但具有一定的编解码开销。
84.片定义将图片分割为片列和片行的水平和垂直边界。片列从图片的顶部延伸到图片底部。同样,片行从图片的左侧延伸到图片的右侧。图片中的片数可以简单地通过片列数乘以片行数推导。
85.在按照图片的片光栅扫描的顺序解码下一个片的左顶ctb之前,ctb的扫描顺序被改变为片内的本地扫描顺序(按照片的ctb光栅扫描的顺序)。与常规条带类似,片打破了图片内预测依赖性以及熵解码依赖性。但是,它们不需要包含在独立的nal单元中(在这方面与wpp相同);因此片不能用于mtu尺寸匹配。每个片可由一个处理器/核处理,并且在条带跨越多个片的情况下,解码临近片的处理单元之间的图片内预测所需的处理器间/核间通信仅限于传送共享的条带头和与重建样点和元数据的共享相关的环路滤波。当条带中包含一个以上的片或wpp段时,条带中除第一个之外的每个片或wpp段的入口点字节偏移在条带头中被信令通知。
86.为简单起见,在hevc中规定了对四种不同图片分割方案的应用的限制。对于hevc中规定的大多数档次,给定的编解码视频序列不能同时包含片和波前。对于每个条带和片,必须满足以下条件之一或两者:1)条带中的所有编解码树块都属于同一个片;2)片中的所
有编解码树块属于同一个条带。最后,波前段恰好包含一个ctb行,并且当使用wpp时,如果条带在ctb行内开始,则该条带必须在同一ctb行中结束。
87.在jct-vc输出文档jctvc-ac1005、j.boyce、a.ramasubramonian、r.skupin、g.j.sullivan、a.tourapis、y.-kwang(编辑)中规定了hevc的最近修订。“hevc additional supplemental enhancement information(草稿4)”,2017年10月24日在此公开:http://phenix.intevry.fr/jct/doc_end_user/documents-/29_macau/wg11/jctvc-ac1005-v2.zip。包含此修订内,hevc规定了三个与mct相关的sei消息,即时域mcts sei消息、mcts提取信息集sei消息和mcts提取信息嵌套sei消息。
88.时域mcts sei消息指示比特流中存在mcts并信令通知mcts。对于每个mcts,运动矢量被限制为指向mcts内的全样点位置和仅需要mcts内的全样点位置进行插值的分数样点位置,并且不允许使用对于来自mcts之外的块推导的时域运动矢量预测的运动矢量候选。这样,每个mcts可以在不存在未包括在mcts中的片的情况下进行独立解码。
89.mcts提取信息集sei消息提供补充信息,该补充信息可用于mcts子比特流提取(规定为sei消息的语义的部分)以生成符合mcts组的比特流。该信息由多个提取信息集组成,每个提取信息集定义多个mcts组并包含要在mcts子比特流提取过程期间使用的替换vps、sps和pps的rbsp字节。在根据mcts子比特流提取过程提取子比特流时,参数集(vps、sps和pps)需要重写或替换,条带头需要稍微更新,因为一个或全部与条带地址相关的语法元素(包括first_slice_segment_in_pic_flag和slice_segment_address)通常需要具有不同的值。
90.3.2.vvc中图片的分割
91.在vvc中,图片被分为一个或多个片行和一个或多个片列。片是覆盖图片的矩形区域的ctu序列。片中的ctu在该片内以光栅扫描顺序进行扫描。
92.条带由图片的片内的整数个完整片或整数个连续完整ctu行组成。
93.支持两种条带模式,即光栅扫描条带模式和矩形条带模式。在光栅扫描条带模式中,条带包含图片的片光栅扫描中的完整条带序列。在矩形条带模式中,条带包含共同形成图片的矩形区域的多个完整片或共同形成图片的矩形区域的一个片的多个连续完整ctu行。矩形条带内的片在对应于该条带的矩形区域内以片光栅扫描顺序进行扫描。
94.子图片包含共同覆盖图片的矩形区域的一个或多个条带。
95.图1示出了图片的光栅扫描条带分割的示例,其中,图片被分割为12个片和3个光栅扫描条带。
96.图2示出了图片的矩形条带分割的示例,其中,图片被分割为24个片(6个片列和4个片行)和9个矩形片。
97.图3示出了被分割为片和矩形条带的图片的示例,其中,图片被分割为4个片(2个片列和2个片行)和4个矩形条带。
98.图4示出了图片的子图片分割的示例,其中,图片被分割为18个片,左侧的12个片(每个覆盖一个有4x4个ctu的条带)以及右侧的6个片(每个覆盖2个有2x2个ctu的垂直堆叠的条带),总共产生24个条带和24个不同尺寸的子图片(每个条带是子图片)。
99.3.3.序列内的图片分辨率变化
100.在avc和hevc中,图片的空域分辨率不能改变,除非使用新sps的新序列以irap图
片开始。vvc允许在不编码irap图片的位置改变序列内的图片分辨率,irap图片总是被帧内编解码。此特征有时被称为参考图片重采样(rpr),因为当参考图片具有与正在解码的当前图片不同的分辨率时,该特征需要对用于帧间预测的参考图片进行重采样。
101.缩放比率被限制为大于或等于1/2(从参考图片到当前图片的2倍下采样),并且小于或等于8(8倍上采样)。指定了具有不同频率截止的三组重采样滤波器来处理参考图片和当前图片之间的各种缩放比率。三组重采样滤波器分别应用于范围从1/2到1/1.75、从1/1.75到1/1.25和从1/1.25到8的缩放比率。每组重采样滤波器具有对于亮度的16个相位和对于色度的32个相位,这与运动补偿插值滤波器的情况相同。实际上正常的mc插值过程是重采样过程的一种特殊情况,其中缩放比率范围从1/1.25到8。水平和垂直缩放比率是基于图片宽度和高度以及为参考图片和当前图片指定的左、右、顶部和底部缩放偏移而被推导的。
102.与hevc不同的支持此功能的vvc设计的其他方面包括:i)在pps中而不是在sps中信令通知的图片分辨率和对应的一致性窗口,而在sps中信令通知最大图片分辨率。ii)对于单层比特流,每个图片存储(dpb中存储一个解码图片的槽)占用存储具有最大图片分辨率的解码图片所需的缓冲器尺寸。
103.3.4.通用和vvc中的可缩放视频编解码(svc)
104.可缩放视频编解码(svc,有时也称为视频编解码中的可缩放性)是指使用基础层(base layer,bl)(有时称为参考层(reference layer,rl))和一个或多个可缩放增强层(enhancement layer,el)的视频编解码。在svc中,基础层可以携带具有基础质量级别的视频数据。一个或多个增强层可以携带额外的视频数据以支持例如更高的空域、时域和/或信噪比(signal-to-noise,snr)级别。可以相对于先前编码的层来定义增强层。例如,底层可以用作bl,而顶层可以用作el。中间层可以用作el或rl,或两者兼而有之。例如,中间层(例如,既不是最低层也不是最高层的层)可以是中间层下方的层(例如基础层或任何居间的增强层)的el,并且同时用作中间层上方的一个或多个增强层的rl。类似地,在hevc标准的多视图(multiview)或3d扩展中,可能存在多个视图,并且一个视图的信息可以用于编解码(例如,编码或解码)另一个视图的信息(例如,运动估计、运动矢量预测和/或其他冗余)。
105.在svc中,编码器或解码器使用的参数基于它们可以在其中使用的编解码级别(例如,视频级别、序列级别、图片级别、条带级别等)被分组成参数集。例如,可以由比特流中不同层的一个或多个编解码视频序列使用的参数可以被包括在视频参数集(vps)中,并且可以由编解码视频序列中的一个或多个图片使用的参数被包含在序列参数集(sps)中。类似地,由图片中的一个或多个条带使用的参数可以被包括在图片参数集(pps)中,并且特定于单个条带的其他参数可以被包括在条带标头中。类似地,可以在各种编解码级别提供特定层在给定时间使用哪个(哪些)参数集的指示。
106.由于vvc中对参考图片重采样(rpr)的支持,可以在不需要任何额外的信令通知处理级别编解码工具的情况下设计对包含多层的比特流的支持,例如,在vvc中具有sd和hd分辨率的两个层,因为空域可缩放性支持所需的上采样可仅使用rpr上采样滤波器。然而,为了支持可缩放性,需要高级别的语法变化(与不支持可缩放性相比)。vvc版本1中规定了可缩放性支持。与任何早期视频编解码标准中的可缩放性支持不同,包括avc和hevc的扩展,vvc可缩放性的设计已尽可能地对单层解码器设计友好。多层比特流的解码能力是以好像
比特流中只有单层的方式来规定的。例如,以独立于要解码的比特流中的层的数量的方式规定诸如dpb尺寸的解码能力。基本上,为单层比特流设计的解码器不需要太多改变就能够解码多层比特流。与avc和hevc的多层扩展的设计相比,hls方面在牺牲一些灵活性的情况下得到了显著简化。例如,irap au需要包含cvs中存在的每个层的图片。
107.3.5.基于子图片的视口相关360
°
视频流
108.在360
°
视频(又称全向视频)的流式传输中,在任何特定时刻,仅向用户呈现整个全向视频球体的子集(例如,当前视口),而用户可随时转动他/她的头部以改变观看方向,从而改变当前视口。虽然希望在客户端至少有一些未被当前视口覆盖的区域的较低质量表示,并准备好呈现给用户,以防用户突然将他/她的查看方向更改为球体上的任何位置,但是全向视频的高质量表示只需要用于当前正在呈现给用户的当前视口。以适当的粒度将整个全向视频的高质量表示划分为子图片可以实现这种优化。使用vvc,这两种表示可以被编码为相互独立的两个层。
109.图5显示了典型的基于子图片的视口相关360
°
视频编解码方案。
110.典型的基于子图片的视口相关360
°
视频传输方案如图5所示,其中,完整视频的较高分辨率表示由子图片组成,而完整视频的较低分辨率表示不使用子图片,并且可使用比较高分辨率表示更低频率的随机接入点进行编解码。客户端接收较低分辨率的完整视频,而对于较高分辨率的视频,它只接收和解码覆盖当前视口的子图片。
111.最新vvc草案规范也支持改进的360
°
视频编解码方案,如图6所示。与图5所示的方法相比,唯一的区别是层间预测(ilp)被应用于图6所示的方法。
112.图6显示了基于子图片和空域可缩放性的改进的视口相关360
°
视频编解码方案。
113.3.6.参数集
114.avc、hevc和vvc指定参数集。参数集的类型包括sps、pps、aps和vps。所有avc、hevc和vvc都支持sps和pps。vps是从hevc开始被引入的,并且被包含在hevc和vvc两者中。aps未被包含在avc或hevc中,但被包含在最新的vvc草案文本中。
115.sps被设计为携带序列级别标头信息,并且pps被设计为携带不经常变化的图片级别标头信息。使用sps和pps,不需要为每个序列或图片重复不经常变化的信息,因此可以避免该信息的冗余信令通知。此外,使用sps和pps实现了重要标头信息的带外传输,从而不仅避免了冗余传输的需要,而且还提高了错误恢复能力。
116.引入vps是为了携带多层比特流中所有层共同的序列级别标头信息。
117.引入aps是为了携带这样的图片级别或条带级别信息,这些信息需要相当多的位进行编解码,可以由多个图片共享,并且在序列中可以有很多不同的变化。
118.4.公开的技术方案解决的技术问题
119.最新vvc文本(jvet-r2001-va/v10)中的现有设计存在以下问题:
120.1)在最新的vvc文本中,变量currpicscalwinwidthl和currpicscalwinheightl推导如下:
121.currpicscalwinwidthl=pps_pic_width_in_luma_samples
‑ꢀꢀ
(79)
122.subwidthc*(pps_scaling_win_right_offset pps_scaling_win_left_offset)
123.currpicscalwinheightl=pps_pic_height_in_luma_samples
‑ꢀꢀ
(80)
124.subheightc*(pps_scaling_win_bottom_offset pps_scaling_win_top_offset)
并且缩放窗口偏移语法元素的值范围指定如下:
125.subwidthc*(abs(pps_scaling_win_left_offset) abs(pps_scaling_win_right_offset))的值应小于pps_pic_width_in_luma_samples,并且subheightc*(abs(pps_scaling_win_top_offset) abs(pps_scaling_win_bottom_offset))的值应小于pps_pic_height_in_luma_samples。
126.因此,缩放窗口宽度currpicscalwinwidthl的值始终小于图片宽度的两倍,即pps_pic_width_in_luma_samples*2,并且缩放窗口高度currpicscalwinheightl始终小于图片高度的两倍,即pps_pic_height_in_luma_samples*2。
127.但是,缩放窗口宽度和高度的这种值范围太受限制。
128.例如,对于如图6所示的改进的360
°
视频编解码方案,假设每个el图片(覆盖360
°×
180
°
的整个球体)被划分成12
×
8=96个子图片,并且用户的视口是120
°×
90
°
,即每个el图片的大约4
×
4个子图片被解码器接收和解码并呈现给用户。在子比特流提取以生成发送到解码器的比特流时(即,如图6的下部所示),bl图片的pps(包含缩放窗口偏移参数)保持不变,而el图片的pps将被重写。假设在原始比特流中(在子比特流提取之前,如图6的上部所示),el图片的缩放窗口偏移都等于0,则原始比特流中的el图片的currpicscalwinwidthl和currpicscalwinheightl的值将分别与图片宽度和高度相同。然而,在由解码器接收的比特流中(在子比特流提取之后,类似于图6的下部),el图片的currpicscalwinwidthl和currpicscalwinheightl的值将需要分别等于图片宽度的三倍(pps_pic_width_in_luma_samples*3)和图片高度的两倍(pps_pic_height_in_luma_samples*2)。
129.然而,这将违反缩放窗口偏移语法元素的现有值范围。
130.2)在最新的vvc文本中,变量rprconstraintsactive[i][j]指定,对于当前条带的参考图片列表i中的第j个条目的参考图片,rpr是否开启,推导如下:
[0131]
rprconstraintsactive[i][j]=(pps_pic_width_in_luma_samples!=
[0132]
refpicwidth||pps_pic_height_in_luma_samples!=refpicheight||
[0133]
pps_scaling_win_left_offset!=refscalingwinleftoffset||
[0134]
pps_scaling_win_right_offset!=refscalingwinrightoffset||
[0135]
pps_scaling_win_top_offset!=refscalingwintopoffset||
[0136]
pps_scaling_win_bottom_offset!=refscalingwinbottomoffset)
[0137]
基本上只要当前图片的六个参数之一与参考图片的参数不同,这个变量的值就等于1,并且rpr开启:1)图片宽度,2)图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
[0138]
然而,即使当在原始比特流中(如图6的上部)el图片和bl的空域分辨率相同时,这也不允许对如图6所示的改进的360
°
视频编解码方案中的el图片使用一些编解码工具,例如dmvr、bdof、pro。
[0139]
3)sps_ref_pic_resampling_enabled_flag的语义如下:
[0140]
sps_ref_pic_resampling_enabled_flag等于1指定参考图片重采样被启用,并且clvs中的一个或多个图片条带可以参考参考图片列表的活动条目中具有不同空域分辨率的参考图片。
[0141]
sps_ref_pic_resampling_enabled_flag等于0指定禁用参考图片重采样,并且clvs中没有图片条带参考参考图片列表的活动条目中具有不同空域分辨率的参考图片。
[0142]
但是rpr是否开启取决于当前图片和当前图片的以下六个参数是否全部相同,而不仅仅是图片宽度和高度:1)图片宽度,2)图片高度,
[0143]
3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
[0144]
因此,语义与如何确定rpr开启或关闭不一致。
[0145]
4)sps_ref_pic_resampling_enabled_flag的值可能需要被指定为基于与sps相关的某个层是否不是独立层以及基于该层的参考层的信息。
[0146]
5)缺少用于启用或禁用rpl的信令通知控制,该rpl来自与当前图片在同一层中的参考图片。
[0147]
5.实施例和解决方案列表
[0148]
为了解决上述问题和其他问题,公开了如下总结的方法。本发明应被视为解释一般概念的示例,不应被狭义地解释。此外,这些发明可以单独应用或以任何方式组合应用。
[0149]
1)为了解决问题1,以这样的方式指定指示缩放窗口的se的值范围(例如pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset),使得缩放窗口宽度和高度可以分别大于或等于图片宽度的两倍和图片高度的两倍。
[0150]
a.在一个示例中,指定subwidthc*(pps_scaling_win_left_offset pps_scaling_win_right_offset)的值应大于或等于-pps_pic_width_in_luma_samples*m且小于pps_pic_width_in_luma_samples,并且subheightc*(pps_scaling_win_top_offset pps_scaling_win_bottom_offset)的值应大于或等于-pps_pic_height_in_luma_samples*n且小于pps_pic_height_in_luma_samples,其中,m和n是等于或大于2的正整数值。
[0151]
i.在一些示例中,m和n相同并且等于16、8、32或64。
[0152]
ii.在一些其他示例中,m和n被指定为取决于子图片的布局。
[0153]
a)在一个示例中,m等于ceil(pps_pic_width_in_luma_samples
÷
minsubpicwidth),其中,minsubpicwidth是参考pps的图片中所有子图片的最小子图片宽度,n等于ceil(pps_pic_height_in_luma_samples
÷
minsubpicheight),其中,minsubpicheight是参考pps的图片中所有子图片的最小子图片高度。
[0154]
2)是否和/或如何约束参考图片的缩放窗口和当前图片的缩放窗口的宽度/高度可以取决于参考图片和当前图片是否在同一层(例如是否具有相同的层id)。
[0155]
a.在一个示例中,在参考图片和当前图片在不同层的情况下,对参考图片的缩放窗口和当前图片的缩放窗口的宽度/高度没有限制。
[0156]
b.假设比特流一致性的要求是应满足以下所有条件:
[0157]

currpicscalwinwidthl*m大于或等于refpicscalwinwidthl。
[0158]

currpicscalwinheightl*m大于或等于refpicscalwinheightl。
[0159]

currpicscalwinwidthl小于或等于refpicscalwinwidthl*n。
[0160]

currpicscalwinheightl小于或等于refpicscalwinheightl*n。
[0161]

currpicscalwinwidthl*sps_pic_width_max_in_luma_samples大于或等于refpicscalwinwidthl*(pps_pic_width_in_luma_samples-max(k0,mincbsizey))。
[0162]

currpicscalwinheightl*sps_pic_height_max_in_luma_samples大于或等于refpicscalwinheightl*(pps_pic_height_in_luma_samples-max(k1,mincbsizey))。
[0163]
其中,currpicscalwinwidthl和currpicscalwinheightl分别表示当前图片的缩放窗口的宽度和高度,并且refpicscalwinwidthl和refpicscalwinheightl表示参考图片的缩放窗口的宽度和高度。假设当参考图片和当前图片在同一层时,m=m1和n=n1。当参考图片和当前图片在不同层时,m=m2和n=n2。
[0164]
i.在一个示例中,m1《=m2。
[0165]
ii.在一个示例中,n1》=n2。
[0166]
iii.在一个示例中,k0/k1是整数值。
[0167]
iv.在一个示例中,k0/k1是最小允许的图片宽度/高度,例如8。
[0168]
3)为了解决问题2,可以指定变量rprconstraintsactive[i][j]的推导仅依赖于缩放窗口的宽度和高度,该变量rprconstraintsactive[i][j]指定,对于当前条带的参考图片列表i中的第j个条目的参考图片,rpr是否开启。
[0169]
a.在一个示例中,变量rprconstraintsactive[i][j]的推导如下:
[0170]
rprconstraintsactive[i][j]=(currpicscalwinwidthl!=frefwidth||currpicscalwinheightl!=frefheight)
[0171]
其中,frefwidth和frefheight分别是参考图片的currpicscalwinwidthl和currpicscalwinheightl的值。
[0172]
b.在一个示例中,变量rprconstraintsactive[i][j]的推导可以取决于参考图片和当前图片的层信息。
[0173]
i.在一个示例中,变量rprconstraintsactive[i][j]的推导可以根据参考图片和当前图片是否在同一层中(例如是否具有相同的层id)而被不同地指定,变量rprconstraintsactive[i][j]指定,对于当前条带的参考图片列表i中的第j个条目的参考图片,rpr是否开启。
[0174]
4)为了解决问题3,sps_ref_pic_resampling_enabled_flag的语义可以改为如下:
[0175]
sps_ref_pic_resampling_enabled_flag等于1指定启用参考图片重采样,并且指定clvs中的图片的一个或多个条带可以参考参考图片列表的活动条目中的参考图片,该参考图片具有与当前图片的参数不同的以下6个参数中的一个或多个:1)图片宽度,2)图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。sps_ref_pic_resampling_enabled_flag等于0指定禁用参考图片重采样,并且指定clvs中没有图片的条带参考参考图片列表的活动条目中的参考图片,该参考图片具有与当前图片的参数不同的上述6个参数中的一个或多个。
[0176]
5)为了解决问题4,sps_ref_pic_resampling_enabled_flag的值被指定为基于与sps相关的某个层是否不是独立层以及基于该层的参考层的信息。
[0177]
a.在一个示例中,当nuh_layer_id等于sps的nuh_layer_id的层不是独立层并且当前层的至少一个参考层具有与当前层不同的空域分辨率时,约束sps_ref_pic_
resampling_enabled_flag的值应等于1。
[0178]
b.在一个示例中,当参考sps的至少一个层不是独立层并且该层的至少一个参考层具有与当前层不同的空域分辨率时,约束sps_ref_pic_resampling_enabled_flag的值应等于1。
[0179]
c.在一个示例中,当参考sps的至少一个图片currpic的至少一个条带参考参考图片列表的ilrp条目中的参考图片时,约束sps_ref_pic_resampling_enabled_flag的值应等于1,该参考图片具有与图片currpic的参数不同的以下6个参数中的一个或多个:1)图片宽度,2)图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
[0180]
6)为解决问题5,将标志sps_res_change_in_clvs_allowed_flag被重命名为sps_intra_layer_rpr_enabled_flag,并且语义改为如下:
[0181]
sps_intra_layer_rpr_enabled_flag等于1指定为clvs中的来自与当前图片在同一层中的参考图片的图片启用参考图片重采样,以进行帧间预测,即clvs中的图片的条带可以参考参考图片列表的活动条目中的参考图片,该参考图片具有与当前图片相同的nuh_layer_id值,并且具有与当前图片的参数不同的以下6个参数中的一个或多个:1)图片宽度,2)图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
[0182]
sps_intra_layer_rpr_enabled_flag等于0指定禁用来自与当前图片在同一层中的参考图片的参考图片重采样,并且指定clvs中没有图片的条带参考参考图片列表的活动条目中的参考图片,该参考图片具有与当前图片相同的nuh_layer_id值,并且具有与当前图片的参数不同的上述6个参数中的一个或多个。
[0183]
a.或者,sps_intra_layer_rpr_enabled_flag等于1指定为clvs中的来自与当前图片在同一层的参考图片的图片启用参考图片重采样,以进行帧间预测,并且参考图片与等于1的rprconstraintsactive[i][j]相关联,其中,参考图片列表i中的第j个条目用于当前条带,并且它具有与当前图片相同的nul_layer_id值。
[0184]
b.在一个示例中,sps_intra_layer_rpr_enabled_flag和sps_res_change_in_clvs_allowed_flag(具有jvet-r2001中的语义)可以被按次序地信令通知。
[0185]
i.sps_res_change_in_clvs_allowed_flag可以在sps_intra_layer_rpr_enabled_flag之后被信令通知。
[0186]
ii.如果sps_intra_layer_rpr_enabled_flag为0,则sps_res_change_in_clvs_allowed_flag不被信令通知并被推断为0。
[0187]
6.实施例
[0188]
以下是上文章节5中总结的本发明的一些方面的一些示例实施例,其可被应用于vvc规范。更改的文本基于jvet-r2001-va/v10中最新的vvc文本。已添加或修改的大部分相关部分以文本表示,并且一些被删除的部分用双括号(例如,[[]])标记,其中已删除的文本在双括号之间。可能还有其他一些属于编辑性质的更改而未被突出显示。
[0189]
6.1.第一实施例
[0190]
本实施例适用于项目1、1.a、1.a.i和4。
[0191]
7.4.3.3序列参数集rbsp语义
[0192]
...
[0193]
sps_ref_pic_resampling_enabled_flag等于1指定启用参考图片重采样,并且指定clvs中的图片的一个或多个条带可以参考参考图片列表的活动条目中的参考图片,该参考图片[[具有不同的空域分辨率]][[具有不同的空域分辨率]][[具有不同的空域分辨率]]sps_ref_pic_resampling_enabled_flag等于0指定禁用参考图片重采样,并且指定clvs中没有图片的条带参考参考图片列表的活动条目中的参考图片,该参考图片[[具有不同的空域分辨率]][[具有不同的空域分辨率]]
[0194]
注释2—当sps_ref_pic_resampling_enabled_flag等于1时,对于当前图片,对于当前图片,[[具有不同的空域分辨率]]可以属于同一层或与包含当前图片的层不同的层。
[0195]
sps_res_change_in_clvs_allowed_flag等于1指定图片空域分辨率可以在参考sps的clvs内改变。sps_res_change_in_clvs_allowed_flag等于0指定图片空域分辨率在任何参考sps的clvs内都不会改变。当不存在时,sps_res_change_in_clvs_allowed_flag的值被推断为等于0。
[0196]
...
[0197]
7.4.3.4图片参数集rbsp语义
[0198]
...
[0199]
pps_scaling_window_explicit_signalling_flag等于1指定pps中存在缩放窗口偏移参数。pps_scaling_window_explicit_signalling_flag等于0指定pps中不存在缩放窗口偏移参数。当sps_ref_pic_resampling_enabled_flag等于0时,pps_scaling_window_explicit_signalling_flag的值应等于0。
[0200]
pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset指定应用于图片尺寸以计算缩放比率的偏移。当不存在时,pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset的值被推断为分别等于pps_conf_win_left_offset、pps_conf_win_right_offset、pps_conf_win_top_offset和pps_conf_win_bottom_offset。
[0201]
subwidthc*([[abs(]]pps_scaling_win_left_offset[[)]] [[abs(]]pps_scaling_win_right_offset[[)]])的值应scaling_win_right_offset[[)]])的值应小于pps_pic_width_in_luma_samples,并且subheightc*([[abs(]]pps_scaling_win_top_offset[[)]] [[abs(]]pps_scaling_win_bottom_offset[[)]])的值应小于pps_pic_height_in_luma_samples。
[0202]
变量currpicscalwinwidthl和currpicscalwinheightl推导如下:
[0203]
currpicscalwinwidthl=pps_pic_width_in_luma_samples
‑ꢀꢀ
(79)
[0204]
subwidthc*(pps_scaling_win_right_offset pps_scaling_win_left_offset)
[0205]
currpicscalwinheightl=pps_pic_height_in_luma_samples
‑ꢀꢀ
(80)
[0206]
subheightc*(pps_scaling_win_bottom_offset pps_scaling_win_top_offset)
[0207]
假设refpicscalwinwidthl和refpicscalwinheightl分别是参考这个pps的当前图片的参考图片的currpicscalwinwidthl和currpicscalwinheightl。比特流一致性的要求是应满足以下所有条件:
[0208]

currpicscalwinwidthl*2大于或等于refpicscalwinwidthl。
[0209]

currpicscalwinheightl*2大于或等于refpicscalwinheightl。
[0210]

currpicscalwinwidthl小于或等于refpicscalwinwidthl*8。
[0211]

currpicscalwinheightl小于或等于refpicscalwinheightl*8。
[0212]

currpicscalwinwidthl*sps_pic_width_max_in_luma_samples大于或等于refpicscalwinwidthl*(pps_pic_width_in_luma_samples-max(8,mincbsizey))。
[0213]

currpicscalwinheightl*sps_pic_height_max_in_luma_samples大于或等于refpicscalwinheightl*(pps_pic_height_in_luma_samples-max(8,mincbsizey))。
[0214]
...
[0215]
图7是可实现本文中所公开的各种技术的示例视频处理系统1900的框图。各种实现方式可以包括系统1900中的一些或全部组件。系统1900可以包括用于接收视频内容的输入1902。视频内容可以以原始或未压缩的格式(例如8或10比特多分量像素值)接收,或者可以以压缩或编码的格式接收。输入1902可以代表网络接口、外围总线接口或存储接口。网络接口的示例包括有线接口(诸如以太网、无源光网络(pon)等)和无线接口(诸如wi-fi或蜂窝接口)。
[0216]
系统1900可以包括可以实现本文档中描述的各种编解码或编码方法的编解码组件1904。编解码组件1904可以减少从输入1902到编解码组件1904的输出的视频的平均比特率,以产生视频的编解码表示。因此,编解码技术有时称为视频压缩或视频转码技术。编解码组件1904的输出可以被存储或经由所连接的通信来发送,如组件1906所表示的。在输入1902处接收的视频的存储或通信的比特流(或编解码)表示可以由组件1908使用,以生成被发送到显示接口1910的像素值或可显示视频。从比特流表示中生成用户可见的视频的过程有时称为视频解压缩。此外,尽管某些视频处理操作被称为“编解码”操作或工具,但是应当理解,在编码器处使用编解码工具或操作,并且将由解码器进行反演编解码的结果的对应解码工具或操作。
[0217]
外围总线接口或显示接口的示例可以包括通用串行总线(universal serial bus,usb)或高清晰度多媒体接口(high definition multimedia interface,hdmi)或displayport等。存储接口的示例包括sata(串行高级技术附件)、pci、ide接口等。本文档中描述的技术可以实施在各种电子设备中,诸如移动电话、膝上型计算机、智能电话或其它能够进行数字数据处理和/或视频显示的装设备。
[0218]
图8是视频处理装置3600的框图。装置3600可以用于实现本文中所述的方法中的一个或多个。装置3600可以实施在智能电话、平板电脑、计算机、物联网(iot)接收器等中。
装置3600可以包括一个或多个处理器3602、一个或多个存储器3604和视频处理硬件3606。(多个)处理器3602可以配置为实现本文档中所述的一个或多个方法。(多个)存储器3604可以用于存储数据和代码,该代码用于实现本文所描述的方法和技术。视频处理硬件3606可以用于在硬件电路中实现本文档中所描述的一些技术。
[0219]
图10是示出可利用本公开的技术的示例视频编解码系统100的框图。
[0220]
如图10所示,视频编解码系统100可以包括源设备110和目标设备120。源设备110生成编码的视频数据,其可以被称为视频编码设备。目标设备120可以解码由源设备110生成的编码的视频数据,该目标设备120可以被称为视频解码设备。
[0221]
源设备110可以包括视频源112、视频编码器114和输入/输出(i/o)接口116。
[0222]
视频源112可以包括诸如视频捕获设备的源、从视频内容提供者接收视频数据的接口、和/或生成视频数据的计算机图形系统,或这些源的组合。视频数据可以包括一个或多个图片。视频编码器114对来自视频源112的视频数据进行编码以生成比特流。比特流可以包括形成视频数据的编解码表示的比特序列。比特流可以包括编解码图片和相关联的数据。编解码图片是图片的编解码表示。相关联的数据可以包括序列参数集、图片参数集和其他语法元素。i/o接口116包括调制器/解调器(调制解调器)和/或发送器。可以将编码的视频数据经由i/o接口116通过网络130a直接发送到目标设备120。还可以将编码的视频数据存储到存储介质/服务器130b上,用于由目标设备120存取。
[0223]
目标设备120可以包括i/o接口126、视频解码器124和显示设备122。
[0224]
i/o接口126可以包括接收器和/或调制解调器。i/o接口126可以从源设备110或存储介质/服务器130b获取编码的视频数据。视频解码器124可以对编码的视频数据进行解码。显示设备122可以向用户显示解码的视频数据。显示设备122可以与目标设备120集成,或可以在配置为与外置显示设备相接的目标设备120外部。
[0225]
视频编码器114和视频解码器124可以根据视频压缩标准(诸如,高效视频编解码(hevc)标准、多功能视频编解码(vvc)标准和其他当前和/或其他标准)进行操作。
[0226]
图11是示出视频编码器200的示例的框图,该视频编码器200可以是图10中示出的系统100中的视频编码器114。
[0227]
视频编码器200可以被配置为执行本公开的任何或全部技术。在图11的示例中,视频编码器200包括多个功能组件。本公开所描述的技术可以在视频编码器200的各种组件之间共享。在一些示例中,处理器可以配置为进行本公开中描述的任何或全部技术。
[0228]
视频编码器200的功能组件可以包括分割单元201、预测单元202(其可以包括模式选择单元203、运动估计单元204、运动补偿单元205和帧内预测单元206)、残差生成单元207、变换单元208、量化单元209、逆量化单元210、逆变换单元211、重建单元212、缓冲器213和熵编码单元214。
[0229]
在其他示例中,视频编码器200可以包括更多、更少或不同的功能组件。在一个示例中,预测单元202可以包括帧内块复制(intra block copy,ibc)单元。ibc单元可以以ibc模式进行预测,其中,至少一个参考图片是当前视频块所位于的图片。
[0230]
此外,诸如运动估计单元204和运动补偿单元205的一些组件可以被高度集成,但是出于解释的目的在图11的示例中分开表示。
[0231]
分割单元201可以将图片分割成一个或多个视频块。视频编码器200和视频解码器
300可以支持各种视频块尺寸。
[0232]
模式选择单元203可以例如基于错误结果选择帧内或帧间的编解码模式中的一个,并且将得到的帧内或帧间编解码块提供到残差生成单元207来生成残差块数据而且提供到重建单元212来重建编解码块以用作参考图片。在一些示例中,模式选择单元203可以选择帧内和帧间预测的组合(combination of intra and inter predication,ciip)模式,其中,预测是基于帧间预测信号和帧内预测信号。模式选择单元203还可以为帧间预测情况下的块选择运动矢量的分辨率(例如子像素或整像素精度)。
[0233]
为了对当前视频块进行帧间预测,运动估计单元204可以通过将来自缓冲器213的一个或多个参考帧与当前视频块进行比较,生成当前视频块的运动信息。运动补偿单元205可以基于来自缓冲器213的图片(而不是与当前视频块相关联的图片)的运动信息和解码样点来为当前视频块确定预测的视频块。
[0234]
运动估计单元204和运动补偿单元205可以为当前视频块进行不同操作,例如执行不同操作取决于当前视频块是在i条带、p条带还是b条带中。
[0235]
在一些示例中,运动估计单元204可以进行当前视频块的单向预测,并且运动估计单元204可以在列表0或列表1的参考图片中搜索当前视频块的参考视频块。运动估计单元204然后可以生成指示列表0或列表1的参考图片中含有参考视频块的参考索引以及指示在当前视频块与参考视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引、预测方向指示符、和运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前块的预测视频块。
[0236]
在其他示例中,运动估计单元204可以进行当前视频块的双向预测,运动估计单元204可以在列表0的参考图片中搜索当前视频块的参考视频块并且还可以在列表1的参考图片中搜索当前视频块的另一个参考视频块。运动估计单元204然后可以生成指示列表0或列表1的参考图片中含有参考视频块的参考索引以及指示在参考视频块与当前视频块之间的空域位移的运动矢量。运动估计单元204可以输出参考索引和当前视频块的运动矢量作为当前视频块的运动信息。运动补偿单元205可以基于由当前视频块的运动信息指示的参考视频块来生成当前视频块的预测视频块。
[0237]
在一些示例中,运动估计单元204可以输出运动信息的全部集合,用于解码器的解码处理。
[0238]
在一些示例中,运动估计单元204可以不输出当前视频的运动信息的全部集合。而是,运动估计单元204可以参考另一个视频块的运动信息来信令通知当前视频块的运动信息。例如,运动估计单元204可以确定当前视频块的运动信息与相邻视频块的运动信息足够相似。
[0239]
在一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中指示:向视频解码器300指示当前视频块具有与另一个视频块相同的运动信息的值。
[0240]
在另一个示例中,运动估计单元204可以在与当前视频块相关联的语法结构中标识另一个视频块和运动矢量差(motion vector difference,mvd)。运动矢量差指示当前视频块的运动矢量与指示视频块的运动矢量之间的差。视频解码器300可以使用指示视频块的运动矢量和运动矢量差来确定当前视频块的运动矢量。
[0241]
如上所讨论的,视频编码器200可以预测性地信令通知运动矢量。可以由视频编码
器200实现的预测性的信令通知技术的两个示例包括高级运动矢量预测(advanced motion vector predication,amvp)和merge模式信令通知。
[0242]
帧内预测单元206可以对当前视频块进行帧内预测。当帧内预测单元206对当前视频块进行帧内预测时,帧内预测单元206可以基于相同图片中其他视频块的解码样点来生成当前视频块的预测数据。当前视频块的预测数据可以包括预测视频块和各种语法元素。
[0243]
残差生成单元207可以通过从当前视频块中减去(例如,由减号表示)当前视频块的(多个)预测视频块来生成当前视频块的残差数据。当前视频块的残差数据可以包括对应于当前视频块中样点的不同样点分量的残差视频块。
[0244]
在其他示例中,例如在跳过模式下,对于当前视频块可能不存在当前视频块的残差数据,并且残差生成单元207可以不进行减去操作。
[0245]
变换处理单元208可以通过将一个或多个变换应用于与当前视频块相关联的残差视频块来生成当前视频块的一个或多个变换系数视频块。
[0246]
在变换处理单元208生成与当前视频块相关联的变换系数视频块之后,量化单元209可以基于与当前视频块相关联的一个或多个量化参数(quantization parameter,qp)值来量化与当前视频块相关联的变换系数视频块。
[0247]
逆量化单元210和逆变换单元211可以将逆量化和逆变换分别应用于变换系数视频块,来从变换系数视频块重建残差视频块。重建单元212可以将重建的残差视频块添加到来自由预测单元202生成的一个或多个预测视频块的对应样点,以产生与当前块相关联的重建视频块用于存储在缓冲器213中。
[0248]
在重建单元212重建视频块之后,可以进行环路滤波操作以降低视频块中视频块化伪影。
[0249]
熵编码单元214可以从视频编码器200的其他功能组件接收数据。当熵编码单元214接收数据时,熵编码单元214可以进行一个或多个熵编码操作以生成熵编码数据并且输出包括熵编码数据的比特流。
[0250]
图12是示出视频解码器300的示例的框图,该视频解码器300可以是图10中示出的系统100中的视频解码器114。
[0251]
视频解码器300可以被配置为进行本公开的任何或全部技术。在图12的示例中,视频解码器300包括多个功能组件。本公开所描述的技术可以在视频解码器300的各种组件之间共享。在一些示例中,处理器可以配置为进行本公开中描述的任何或全部技术。
[0252]
在图12的示例中,视频解码器300包括熵解码单元301、运动补偿单元302、帧内预测单元303、逆量化单元304、逆变换单元305以及重建单元306和缓冲器307。在一些示例中,视频解码器300可以进行与关于视频编码器200(图11)所描述的编码过程总体反演的解码过程。
[0253]
熵解码单元301可以检索编码比特流。编码比特流可以包括熵编解码视频数据(例如,视频数据的编解码块)。熵解码单元301可以对熵编解码视频进行解码,并且根据熵解码视频数据,运动补偿单元302可以确定包括运动矢量、运动矢量精度、参考图片列表索引和其他运动信息的运动信息。运动补偿单元302例如可以通过进行amvp和merge模式确定此类信息。
[0254]
运动补偿单元302可以产生运动补偿块,可能地基于插值滤波器进行插值。要以子
像素精度使用的插值滤波器的标识符可以包括在语法元素中。
[0255]
运动补偿单元302可以使用由视频编码器200在编码视频块的期间所使用的插值滤波器,来计算出参考块的子整数个像素的插值的值。运动补偿单元302可以根据接收的语法信息确定由视频编码器200所使用的插值滤波器并且使用插值滤波器来产生预测块。
[0256]
运动补偿单元302可以使用一些语法信息来确定:用于对编码视频序列的(多个)帧和/或(多个)条带进行编码的块的尺寸,描述编码视频序列的图片的每个宏块如何被分割的分割信息,指示如何编码每个分割的模式,每个帧间编解码块的一个或多个参考帧(和参考帧列表),以及对编码视频序列进行解码的其他信息。
[0257]
帧内预测单元303可以使用例如在比特流中接收的帧内预测模式来从空域相邻块形成预测块。逆量化单元303逆量化(即,去量化)在比特流中提供的且由熵解码单元301解码的量化的视频块系数。逆变换单元303应用逆变换。
[0258]
重建单元306可以用由运动补偿单元202或帧内预测单元303生成的对应预测块求和残差块,以形成解码块。如所期望的,去块滤波器还可以应用于滤波解码块以便移除块效应伪影。解码视频块然后存储在缓冲器307中,该缓冲器307提供用于随后的运动补偿/帧内预测的参考块,并且还产生用于在显示设备上呈现的解码视频。
[0259]
接下来提供了一些实施例优选的解决方案的列表。
[0260]
以下解决方案显示了上一章节中讨论的技术的示例实施例(例如,项目1)。
[0261]
1.一种视频处理方法(例如,图9中描绘的方法900),包括:执行(902)包括一个或多个视频图片的视频和视频的编解码表示之间的转换,其中,编解码表示符合格式规则;其中,格式规则规定,被包含在与缩放窗口相关的编解码表示中的一个或多个语法元素被允许具有指示缩放窗口的高度或宽度大于或等于对应视频图片的高度或宽度的值。
[0262]
以下解决方案显示了上一章节中讨论的技术的示例实施例(例如,项目2)。
[0263]
2.一种视频处理方法,包括:执行在一个或多个视频层中包括一个或多个视频图片的视频与视频的编解码表示之间的转换,其中,该编解码表示符合格式规则;其中,格式规则规定,与缩放窗口相关的编解码表示中包括的一个或多个语法元素的允许值受约束规则的约束,其中,该约束规则取决于当前图片的第一层和当前图片的参考图片的第二层之间的关系。
[0264]
3.如解决方案2所述的方法,其中,约束规则规定,如果该关系是第一层与第二层相同,则允许所有值。
[0265]
以下解决方案显示了上一章节中讨论的技术的示例实施例(例如,项目3)。
[0266]
4.一种视频处理方法,包括:执行包括一个或多个视频图片的视频和视频的编解码表示之间的转换,其中,该编解码表示符合格式规则,
[0267]
其中,格式规则规定,语法字段被包括在编解码表示中,该语法字段指示是否为视频条带的参考图片列表i中的第j个条目启用参考图片重采样。
[0268]
以下解决方案显示了上一章节中讨论的技术的示例实施例(例如,项目5)。
[0269]
5.一种视频处理方法,包括:执行在包括包含一个或多个视频图片的一个或多个视频层的视频和视频的编解码表示之间的转换,其中,编解码表示符合格式规则,其中,格式规则规定,语法元素被包括在参数集中的编解码表示,其中,语法元素指示是否为非独立的视频层启用参考图片重采样,其中,语法元素的值是非独立的视频层的参考层的函数。
[0270]
6.如解决方案1至5中任一项所述的方法,其中,转换包括将视频编码为编解码表示。
[0271]
7.如解决方案1至5中任一项所述的方法,其中,转换包括对编解码表示进行解码以生成视频的像素值。
[0272]
8.一种视频解码装置,包括被配置为实施解决方案1至7中的一个或多个中所述的方法的处理器。
[0273]
9.一种视频编码装置,包括被配置为实施解决方案1至7中的一个或多个中所述的方法的处理器。
[0274]
10.一种其上存储有计算机代码的计算机程序产品,该代码在由处理器执行时使该处理器实施解决方案1至7中任一项所述的方法。
[0275]
11.在本文档中描述的一种方法、装置或系统。
[0276]
在本文所述的解决方案中,编码器可通过根据格式规则产生编解码表示来符合格式规则。在本文描述的解决方案中,解码器可以使用格式规则来解析编解码表示中的语法元素,根据格式规则了解语法元素的存在和不存在,以产生解码的视频。
[0277]
图13是视频处理的示例方法1300的流程图。操作1302包括根据规则执行包括视频图片的视频和视频的比特流之间的转换,其中,规则规定,语法元素指示视频图片的缩放窗口的第一宽度和第一高度,并且其中,规则规定,语法元素的允许值的范围包括大于或等于视频图片的第二宽度的两倍和视频图片的第二高度的两倍的值。
[0278]
在方法1300的一些实施例中,语法元素的值指定应用于视频图片的尺寸以计算缩放比率的偏移。在方法1300的一些实施例中,语法元素包括pps_scaling_win_left_offset、pps_scaling_win_right_offset、pps_scaling_win_top_offset和pps_scaling_win_bottom_offset。在方法1300的一些实施例中,规则规定,subwidthc*(pps_scaling_win_left_offset pps_scaling_win_right_offset)的值大于或等于-pps_pic_width_in_luma_samples*m且小于pps_pic_width_in_luma_samples,其中,currpicscalwinwidthl是缩放窗口的第一宽度,其中,pps_pic_width_in_luma_samples是视频图片的第二宽度,其中,subwidthc是视频块的宽度并且根据包含视频块的视频图片的色度格式从表中获得,其中,currpicscalwinwidthl=pps_pic_width_in_luma_samples-subwidthc*(pps_scaling_win_right_offset pps_scaling_win_left_offset)。在方法1300的一些实施例中,m等于16、8、32或64。
[0279]
在方法1300的一些实施例中,规则规定,subheightc*(pps_scaling_win_top_offset pps_scaling_win_bottom_offset)的值大于或等于-pps_pic_height_in_luma_samples*n且小于pps_pic_height_in_luma_samples,其中,currpicscalwinheightl是缩放窗口的第一高度,其中,pps_pic_height_in_luma_samples是视频图片的第二高度,其中,subheightc是视频块的高度并且根据包含视频块的视频图片的色度格式从表中获得,其中,currpicscalwinheightl=pps_pic_height_in_luma_samples-subheightc*(pps_scaling_win_bottom_offset pps_scaling_win_top_offset)。在方法1300的一些实施例中,n等于16、8、32或64。在方法1300的一些实施例中,m和n取决于视频图片的子图片的布局。在方法1300的一些实施例中,m等于ceil(pps_pic_width_in_luma_samples
÷
minsubpicwidth),其中,minsubpicwidth是参考图片参数集的图片中所有子图片的最小子
图片宽度,其中,pps_pic_width_in_luma_samples是视频图片的第二宽度,并且其中,ceil()函数将数字取整到下一个最大整数。
[0280]
在方法1300的一些实施例中,n等于ceil(pps_pic_height_in_luma_samples
÷
minsubpicheight),其中,minsubpicheight是参考图片参数集的视频图片中所有子图片的最小子图片高度,其中,pps_pic_height_in_luma_samples是视频图片的第二高度,并且其中,ceil()函数将数字取整到下一个最大整数。
[0281]
图14是视频处理的示例方法1400的流程图。操作1402包括为视频的视频图片和视频的比特流之间的转换,确定(1)视频的参考视频图片的第一缩放窗口的第一宽度或第一高度以及(2)当前视频图片的第二缩放窗口的第二宽度或第二高度是否或如何根据规则而被约束。操作1404包括根据确定执行转换。
[0282]
在方法1400的一些实施例中,规则规定,响应于参考视频图片和当前视频图片在不同的视频层上,对第一缩放窗口的第一宽度或第一高度以及第二缩放窗口的第二宽度或第二高度没有约束。在方法1400的一些实施例中,规则规定:currpicscalwinwidthl*m大于或等于refpicscalwinwidthl,currpicscalwinheightl*m大于或等于refpicscalwinheightl,currpicscalwinwidthl小于或等于refpicscalwinwidthl*n,currpicscalwinheightl小于或等于refpicscalwinheightl*n,currpicscalwinwidthl*sps_pic_width_max_in_luma_samples大于或等于refpicscalwinwidthl*(pps_pic_width_in_luma_samples-max(k0,mincbsizey)),currpicscalwinheightl*sps_pic_height_max_in_luma_samples大于或等于refpicscalwinheightl*(pps_pic_height_in_luma_samples-max(k1,mincbsizey)),其中,currpicscalwinwidthl和currpicscalwinheightl分别是当前视频图片的第二缩放窗口的第二宽度和第二高度,其中,refpicscalwinwidthl和refpicscalwinheightl分别是参考视频图片的第一缩放窗口的第一宽度和第一高度,其中,sps_pic_width_max_in_luma_samples是参考序列参数集的每个视频图片的以亮度样点为单位的最大宽度,并且其中,pps_pic_width_in_luma_samples是参考图片参数集的每个视频图片的宽度。
[0283]
在方法1400的一些实施例中,规则规定,响应于参考视频图片和当前视频图片在同一视频层中,m=m1且n=n1,其中,规则规定,响应于参考视频图片和当前视频图片在不同的视频层上,m=m2且n=n2,其中,m1小于或等于m2,并且其中,n1大于或等于n2。在方法1400的一些实施例中,k0或k1是整数值。在方法1400的一些实施例中,k0或k1分别是最小允许视频图片宽度或最小允许视频图片高度。在方法1400的一些实施例中,k0或k1为8。
[0284]
图15是视频处理的示例方法1500的流程图。操作1502包括执行包括包含一个或多个视频条带的视频图片的视频与视频的比特流之间的转换,其中,比特流符合规则,规则规定,视频图片的缩放窗口的宽度和高度确定变量的值,变量指定是否为视频图片的视频条带启用对第i个参考图片列表中的第j个参考视频图片进行重采样,其中,i和j是整数。
[0285]
在方法1500的一些实施例中,变量是rprconstraintsactive[i][j],其中,规则规定,rprconstraintsactive[i][j]=(currpicscalwinwidthl!=frefwidth||currpicscalwinheightl!=frefheight),其中,frefwidth和frefheight分别是第j个参考视频图片的currpicscalwinwidthl和currpicscalwinheightl的值。在方法1500的一些实施例中,规则规定,变量的值基于第j个参考视频图片所属的第一视频层和当前视频图片所
属的第二视频层。在方法1500的一些实施例中,规则规定,变量的值是基于第j个参考视频图片的第一视频层和当前视频图片的第二视频层是否是相同的视频层。
[0286]
图16是视频处理的示例方法1600的流程图。操作1602包括根据格式规则执行包括一个或多个视频图片的视频与视频的比特流之间的转换,其中,格式规则规定,语法元素被包含在序列参数集中,并且其中,语法元素指示是否为参考图片启用参考图片重采样以及是否允许编解码层视频序列中的当前视频图片的一个或多个条带参考参考图片列表中的活动条目中的参考图片,并且其中,参考图片具有与当前视频图片的参数不同的以下六个参数中的任意一个或多个:1)视频图片宽度,2)视频图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
[0287]
在方法1600的一些实施例中,具有值1的语法元素指示启用参考图片重采样,并且指示允许编解码层视频序列中的当前视频图片的一个或多个条带参考参考图片列表中的活动条目中的参考图片。在方法1600的一些实施例中,具有值0的语法元素指示禁用参考图片重采样,并且指示不允许编解码层视频序列中的当前视频图片的条带参考参考图片列表的活动条目中的参考图片。
[0288]
图17是视频处理的示例方法1700的流程图。操作1702包括根据格式规则执行包括一个或多个视频图片的视频与视频的比特流之间的转换,其中,格式规则规定,语法元素被包含在序列参数集中,其中,格式规则规定,语法元素的值是基于(1)参考序列参数集的当前视频层是否不是独立的视频层和(2)与当前视频层相关联的一个或多个参考视频层的信息,其中,当视频层不依赖于一个或多个其他视频层时,视频层是独立的视频层,并且其中,当视频层依赖于一个或多个其他视频层时,视频层不是独立的视频层。
[0289]
在方法1700的一些实施例中,格式规则规定,响应于(1)具有与序列参数集相同的nuh_layer_id的当前视频层不是独立的视频层以致于当前视频层依赖于一个或多个其他视频层,以及响应于(2)当前视频层的至少一个参考视频层具有与当前视频层不同的空域分辨率,语法元素的值为1。在方法1700的一些实施例中,格式规则规定,响应于(1)参考序列参数集的至少一个视频层不是独立的视频层,以致于至少一个视频层依赖于一个或多个其他视频层,以及响应于(2)至少一个视频层的至少一个参考视频层具有与当前视频层不同的空域分辨率,语法元素的值为1。在方法1700的一些实施例中,至少一个条带被包括在至少一个视频图片中,至少一个视频图片参考序列参数集,并且其中,格式规则规定,响应于至少一个条带参考参考图片列表的层间参考图片条目中的参考图片,语法元素的值为1,参考图片具有不同于至少一个视频图片的以下六个参数中的任何一个或多个:1)视频图片宽度,2)视频图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
[0290]
图18是视频处理的示例方法1800的流程图。操作1802包括根据格式规则执行包括一个或多个视频图片的视频与视频的比特流之间的转换,其中,格式规则规定,在由一个或多个视频图片参考的序列参数集中指示语法元素;并且其中,语法元素指示是否为与一个或多个视频图片在同一层中的一个或多个参考图片启用参考图片重采样。
[0291]
在方法1800的一些实施例中,格式规则规定,语法元素的值是1,其指示:(a)为与一个或多个视频图片在同一层的一个或多个参考图片启用参考图片重采样,以及(b)编解码层视频序列中的一个或多个视频图片的一个或多个条带参考参考图片列表的活动条目
中的参考图片,参考图片(1)具有与一个或多个视频图片的当前视频图片相同的nuh_layer_id值,以及(2)具有与当前视频图片不同的以下六个参数中的任何一个或多个:1)视频图片宽度,2)视频图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。
[0292]
在方法1800的一些实施例中,格式规则规定,语法元素的值为0,其指示:(a)为与一个或多个视频图片在同一层的一个或多个参考图片禁用参考图片重采样,并且(b)编解码层视频序列中的一个或多个视频图片的条带不参考参考图片列表的活动条目中的参考图片,参考图片(1)具有与一个或多个视频图片的当前视频图片相同的nuh_layer_id值,以及(2)具有与当前视频图片不同的以下六个参数中的任何一个或多个:1)视频图片宽度,2)视频图片高度,3)缩放窗口左偏移,4)缩放窗口右偏移,5)缩放窗口顶部偏移,以及6)缩放窗口底部偏移。在方法1800的一些实施例中,格式规则规定,语法元素的值为1,其指示为与一个或多个视频图片在同一层中的参考图片启用参考图片重采样,并且其中,参考图片与等于1的rprconstraintsactive[i][j]相关联,并且其中,参考图片是当前条带的参考图片列表i中的第j个条目,并且其中,参考图片列表i中的第j个条目具有与一个或多个视频图片的当前视频图片相同的nuh_layer_id值。
[0293]
在方法1800的一些实施例中,格式规则规定,语法元素在第二语法元素之前被包括在比特流中,第二语法元素指示图片空域分辨率在参考序列参数集的编解码层视频序列内是否改变。在方法1800的一些实施例中,格式规则规定,比特流不包括第二语法元素,第二语法元素指示图片空域分辨率是否在参考序列参数集的编解码层视频序列内改变,其中,格式规则规定,第二语法元素的第二值被推断为0,并且其中,格式规则规定,响应于语法元素的值等于0,比特流不包括第二语法元素。
[0294]
在(多个)方法1300-1800的一些实施例中,执行转换包括将视频编码到比特流中。在(多个)方法1300-1800的一些实施例中,执行转换包括从视频生成比特流,并且该方法还包括将比特流存储在非暂时性计算机可读记录介质中。在(多个)方法1300-1800的一些实施例中,执行转换包括从比特流中解码视频。在一些实施例中,一种视频解码装置,包括被配置为实施(多个)方法1300-1800的一个或多个实施例中所述的方法的处理器。在一些实施例中,一种视频编解码设备,包括被配置为实施(多个)方法1300-1800的一个或多个实施例中所述的方法的处理器。在一些实施例中,其上存储有计算机指令的计算机程序产品,该指令在由处理器执行时使处理器实施(多个)方法1300-1800的实施例中所述的方法。在一些实施例中,存储根据(多个)方法1300-1800的实施例中的方法生成的比特流的非暂时性计算机可读存储介质。在一些实施例中,存储使处理器实施(多个)方法1300-1800的实施例所述的方法的指令的非暂时性计算机可读存储介质。在一些实施例中,一种比特流生成方法,包括:根据(多个)方法1300-1800的实施例中所述的方法生成视频的比特流,以及将比特流存储在计算机可读程序介质上。在一些实施例中,一种方法、装置、根据本文档中描述的公开方法或系统生成的比特流。
[0295]
在本文档中,术语“视频处理”可指视频编码、视频解码、视频压缩或视频解压缩。例如,在从视频的像素表示到对应的比特流表示的转换期间,可以应用视频压缩算法,反之亦然。如语法所定义,当前视频块的比特流表示可(例如)对应于共位或散布在比特流内不同位置的比特。例如,可以根据变换和编解码的误差残差值并且还使用头中的比特和比特
流中的其他字段,对宏块进行编码。此外,在转换期间,解码器可以基于该确定,在知道一些字段可能存在或不存在的情况下解析比特流,如以上解决方案中所述。类似地,编码器可确定包括或不包括某些语法字段,并通过从编解码表示中包括或排除语法字段来相应地生成编解码表示。
[0296]
本公开的技术的一些实施例包括决定或确定启用视频处理工具或模式。在示例中,当启用视频处理工具或模式时,编码器将使用或实现在视频块的处理过程中的工具或模式,但是不必基于工具或模式的使用来修改得到的比特流。换言之,当基于决定或确定启用视频处理工具或模式时,从视频块到视频的比特流的转换将使用视频处理工具或模式。在另一个示例中,当启用视频处理工具或模式时,解码器将利用已经基于视频处理工具或模式修改比特流的知识来处理比特流。换言之,使用基于决定或确定启用的视频处理工具或模式,将执行从视频的比特流到视频块的转换。
[0297]
本公开的技术的一些实施例包括决定或确定禁用视频处理工具或模式。在示例中,当禁用视频处理工具或模式时,编码器在视频块到视频的比特流表示的转换中将不会使用工具或模式。在另一示例中,当视频处理工具或模式被禁用时,解码器将使用尚未基于决定或确定而禁用的视频处理工具或模式来修改比特流的知识来处理比特流。
[0298]
本文档中所述的公开和其他方案、示例、实施例、模块和功能操作可以被实现在数字电子电路中或者在计算机软件、固件或硬件中,含有本文档中所公开的结构以及其结构的等同物,或者它们中的一个或多个的组合。所公开的和其他实施例可以被实现为计算机可读介质上所编码的一个或多个计算机程序产品,即一个或多个计算机程序指令模块,用于由数据处理装置执行或者控制数据处理装置的操作。该计算机可读介质可以是机器可读存储设备、机器可读存储基板、存储器设备、影响机器可读可传播信号的复合物,或其一个或多个的组合。术语“数据处理装置”涵盖用于处理数据的所有装置、设备和机器,包括例如可编程处理器、计算机或多个处理器或计算机。除了硬件之外,该装置还可以包括为所讨论的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、或者它们中的一个或多个的组合的代码。传播信号是人工生成的信号,例如,机器生成的电、光或电磁信号,其被生成来编码信息以传输到合适的接收器装置。
[0299]
计算机程序(也称为程序、软件、软件应用、脚本或代码)可以用任何形式的编程语言编写,包括编译或解释语言,并且可以以任何形式来部署计算机程序,包括独立程序或适合在计算环境中使用的模块、组件、子例程或其它单元。计算机程序不必须对应于文件系统中的文件。程序可以存储在保存其他程序或数据的文件的部分中(例如,在标记语言文档中存储的一个或多个脚本)、在专用于所讨论的程序的单个文件中、或在多个协同文件中(例如存储一个或多个模块、子程序或代码部分的文件)。计算机程序可以部署为在一个计算机上或者在多个计算机上执行,该多个计算机位于一个站点处或者分布跨多个站点并由通信网络互连。
[0300]
可以由执行一个或多个计算机程序的一个或多个可编程处理器来进行在本文档中所描述的过程和逻辑流,以通过在输入数据上操作并且生成输出来进行功能。也可以由专用逻辑电路(例如,现场可编程门阵列(field programmable gate array,fpga)或专用集成电路(application specific integrated circuit,asic))进行过程和逻辑流,并且装置可以实现为专用逻辑电路(例如fpga或asic)。
[0301]
适合于计算机程序的执行的处理器包括例如通用和专用微处理器两者,以及任何类型的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或者该两者接收指令和数据。计算机的基本元件是用于进行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个海量存储设备(例如磁、磁光盘或光盘),或者可操作地耦合以从海量存储设备(例如磁、磁光盘或光盘)接收数据或者将数据传输到海量存储设备(例如磁、磁光盘或光盘),或者以上两者。但是,计算机不必具有此类设备。适用于存储计算机程序指令和数据的计算机可读介质含有所有形式的非易失性存储器、介质和存储器设备,含有例如半导体存储器设备(例如eprom、eeprom和闪速存储器设备);磁盘(例如内部硬盘或可移动磁盘);磁光盘;和cd rom和dvd-rom磁盘。处理器和存储器可以由专用逻辑电路补充,或者合并在专用逻辑电路中。
[0302]
虽然本专利文档含有许多细节,但这些细节不应被解释为对任何主题或可要求保护的范围的限制,而是作为规定于特定技术的特定实施例的特征的描述。在本专利文档中,在单独的实施例的上下文中描述的某些特征也可以在单个实施例中组合实现。相反地,在单个实施例的上下文中所描述的各种特征还可以分别在多个实施例中来实现或者以各种合适的子组合来实现。此外,尽管特征可以如上文描述为以某些组合起作用并且甚至最初同样地要求,但是在某些情况下来自所要求保护的组合的一个或多个特征可以从组合中去除,并且所要求保护的组合可以针对子组合或子组合的变化。
[0303]
类似地,尽管在附图中以特定顺序描绘了操作,但这不应当理解为要求按所示的特定次序或顺序次序进行此类操作或者进行所有示出的操作,以实现期望的结果。此外,在本专利文档中描述的实施例中的各种系统组件的分开不应被理解为在所有实施例中都要求这种分开。
[0304]
仅描述了几个实现方式和示例,并且可以基于本专利文档中描述和示出的内容来作出其它实现方式、增强和变型。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献