交叉引用本申请要求于2018年9月21号在美国专利商标局提交的美国临时专利申请no.62/734,996和于2018年11月23日在美国专利商标局提交的美国专利申请no.16/198,951的优先权,其全部内容通过引用并入本文中。与实施例一致的方法和装置涉及视频处理,更具体地,涉及用于帧内模式编码的方法和装置。
背景技术:
::高效视频编码(highefficiencyvideocoding,hevc)中使用的帧内预测模式如图1所示。在hevc中,总共有35个帧内预测模式,其中模式10(101)是水平模式,模式26(102)是垂直模式,以及模式2(103)、模式18(104)和模式34(105)是对角线模式。帧内预测模式由三个最可能模式(mostprobablemode,mpm)和其余32个模式以信号发送。为了编码帧内模式,基于相邻块的帧内模式来建立大小为3的最可能模式(mpm)列表。该mpm列表将被称为mpm列表或主mpm列表。一个mpm标记被以信号发送,以指示当前模式是否属于mpm列表。如果mpm标记为真(true),则使用一元码来以信号发送mpm索引。如果mpm标记为假(false),则使用5位固定长度编码来以信号发送其余模式。生成mpm列表的过程如下所示。在此,leftintradir表明左侧的块中的模式,并且upperintradir表明上方的块中的模式。如果左侧的块或上方的块当前不可用,则将leftintradir或aboveintradir设置为索引dc_idx。另外,变量“offset(偏移)”和“mod”是常数值,将“offset”设置为29,并且将“mod”设置为32。·如果(leftintradir==aboveintradir&&leftintradir>dc_idx),则οmpm[0]=leftintradir;οmpm[1]=(((leftintradir+offset)%mod)+2;οmpm[2]=(((leftintradir-1)%mod)+2;·否则,如果(leftintradir==aboveintradir),则οmpm[0]=planar_idx;οmpm[1]=dc_idx;οmpm[2]=ver_idx;·否则,如果(leftintradir!=aboveintradir),则οmpm[0]=leftintradir;οmpm[1]=aboveintradir;ο如果(leftintradir>0&&aboveintradir>0)■mpm[2]=planar_idx;ο其他■mpm[2]=(leftintradir+aboveintradir)<2?ver_idx:dc_idx。技术实现要素:根据实施例,由至少一个处理器执行一种控制帧内预测以对视频序列进行解码的方法,该方法包括确定编码单元的宽度与高度的比率,并基于所确定的比率不等于1,向包括与帧内预测角相对应的多个帧内预测模式的表中,添加朝向编码单元的左下边缘的第一宽角、朝向编码单元的右上边缘的第二宽角和分别与该第一宽角和该第二宽角相对应的附加帧内预测模式。该方法还包括从该多个帧内预测模式和添加到该表中的附加帧内预测模式中,选择一个帧内预测模式,以对视频序列进行解码。根据实施例,一种用于控制帧内预测以对视频序列进行解码的装置包括至少一个存储器和至少一个处理器,该至少一个存储器配置为存储计算机程序代码,以及该至少一个处理器配置为访问该至少一个存储器并且根据该计算机程序代码进行操作。该计算机程序代码包括确定代码,配置为使至少一个处理器确定编码单元的宽度与高度的比率,和添加代码,配置为使至少一个处理器基于所确定的比率不等于1,向包括与帧内预测角相对应的多个帧内预测模式的表中,添加朝向该编码单元的左下边缘的第一宽角、朝向该编码单元的右上边缘的第二宽角和分别与该第一宽角和该第二宽角相对应的附加帧内预测模式。该计算机程序代码还包括选择代码,配置为使至少一个处理器从该多个帧内预测模式和添加到该表中的附加帧内预测模式中,选择一个帧内预测模式,以对视频序列进行解码。根据实施例,一种非暂时性计算机可读存储介质存储指令,该指令使处理器确定编码单元的宽度与高度的比率,并基于所确定的比率不等于1,向包括与帧内预测角相对应的多个帧内预测模式的表中,添加朝向编码单元的左下边缘的第一宽角、朝向编码单元的右上边缘的第二宽角和分别与该第一宽角和该第二宽角相对应的附加帧内预测模式。该指令还使处理器从该多个帧内预测模式和添加到该表中的附加帧内预测模式中,选择一个帧内预测模式,以对视频序列进行解码。附图说明图1是hevc中的帧内预测模式的图。图2是根据实施例的通信系统的简化框图。图3是根据实施例的在流式传输环境中的视频编码器和视频解码器的放置的图。图4是根据实施例的视频解码器的功能框图。图5是根据实施例的视频编码器的功能框图。图6是通用视频编码(versatilevideocoding,vvc)草案2中的帧内预测模式的图。图7是示出了根据实施例的一种控制帧内预测以对视频序列进行解码的方法的流程图。图8是根据实施例的一种控制帧内预测以对视频序列进行解码的装置的简化框图。图9是适用于实施实施例的计算机系统的图。具体实施方式图2是根据实施例的通信系统(200)的简化框图。通信系统(200)可以包括经由网络(250)互连的至少两个终端(210-220)。对于数据的单向传输,第一终端(210)可以在本地位置对视频数据进行编码,以通过网络(250)传输到另一终端(220)。第二终端(220)可以从网络(250)接收另一终端的已编码视频数据,对该已编码数据进行解码,并显示恢复的视频数据。单向数据传输在媒体服务应用等中可能是常见的。图2示出了被提供用于支持已编码视频的双向传输的第二对终端(230、240),该双向传输可以在例如视频会议期间发生。对于数据的双向传输,每个终端(230、240)可以对在本地位置捕获的视频数据进行编码,以经由网络(250)传输到另一终端。每个终端(230、240)还可以接收由另一终端传输的已编码视频数据,可以对已编码数据进行解码,并且可以在本地显示设备上显示恢复的视频数据。在图2中,终端(210-240)可以被示出为服务器、个人计算机和智能电话,但是实施例的原理不限于此。实施例适用于膝上型计算机、平板计算机、媒体播放器和/或专用视频会议设备。网络(250)表示在终端(210-240)之间传送已编码视频数据的任何数目的网络,包括例如有线通信网络和/或无线通信网络。通信网络(250)可以在电路交换信道和/或分组交换信道中交换数据。代表性的网络包括电信网络、局域网、广域网和/或互联网。为了本讨论的目的,除非在下文中有所解释,否则网络(250)的架构和拓扑对于本公开的操作可能是不重要的。图3是根据实施例的在流式传输环境中的视频编码器和解码器的放置的图。所公开的主题可以同等地适用于其他支持视频的应用,包括例如视频会议、数字电视、在包括cd、dvd、内存条等的数字介质上存储压缩视频,等等。流式传输系统可以包括采集子系统(313),该采集子系统(313)可以包括视频源(301),例如数字相机,该视频源创建例如未压缩的视频样本流(302)。相较于已编码的视频码流,被描绘为粗线以强调高数据量的样本流(302)可以由耦合至照相机(301)的编码器(303)来处理。编码器(303)可以包括硬件、软件或软硬件组合,以实现或实施如下文更详细地描述的所公开主题的各方面。相较于样本流,被描绘为细线以强调较低数据量的已编码视频码流(304)可以存储在流式传输服务器(305)上以供将来使用。一个或多个流式传输客户端(306、308)可以访问流式传输服务器(305)以检索已编码视频码流(304)的副本(307、309)。客户端(306)可以包括视频解码器(310),该视频解码器(310)对已编码视频码流的输入副本(307)进行解码,并创建可以在显示器(312)或其他呈现设备(未示出)上呈现的输出视频样本流(311)。在一些流式传输系统中,可以根据某些视频编码/压缩标准来对视频码流(304、307、309)进行编码。这些标准的示例包括itu-th.265建议书。正在开发的是一种非正式地称为“通用视频编码(vvc)”的视频编码标准。所公开的主题可以在vvc的上下文中使用。图4是根据实施例的视频解码器(310)的功能框图。接收器(410)可以接收将由解码器(310)解码的一个或多个已编码视频序列;在同一实施例或另一实施例中,一次接收一个已编码视频序列,其中每个已编码视频序列的解码独立于其他已编码视频序列。可以从信道(412)接收已编码视频序列,该信道(412)可以是通向存储已编码视频数据的存储设备的硬件/软件链接。接收器(410)可以接收可转发到它们各自的使用实体(未示出)的已编码视频数据以及其他数据,例如已编码的音频数据和/或辅助数据流。接收器(410)可以将已编码视频序列与其他数据分开。为了防止网络抖动,缓冲存储器(415)可以耦接在接收器(410)和熵解码器/解析器(420)(此后称为“解析器”)之间。当接收器(410)正从具有足够带宽和可控性的存储/转发设备接收数据或正从等时同步网络接收数据时,可能不需要缓冲存储器(415),或该缓冲存储器可以较小。为了在互联网等业务分组网络上使用,可能需要缓冲器(415),该缓冲器可以相对大并且可以有利地具有适应性的大小。视频解码器(310)可以包括解析器(420),以从熵编码视频序列重建符号(421)。这些符号的类别包括用于管理解码器(310)的操作的信息,以及用于控制诸如显示器(312)之类的呈现装置的潜在信息,该呈现装置不是解码器的组成部分,但是可以耦接到解码器,如图4所示。用于呈现装置的一个(多个)控制信息可以是辅助增强信息(sei消息)或视频可用性信息(vui)参数集片段(未示出)。解析器(420)可以对接收到的已编码视频序列进行解析/熵解码。已编码视频序列的编码可以根据视频编码技术或标准,并且可以遵循本领域技术人员众所周知的原理,包括可变长度编码、霍夫曼编码、具有或不具有环境敏感性的算术编码,等等。解析器(420)可以基于对应于群组的至少一个参数,从已编码视频序列中提取用于视频解码器中的像素子群中的至少一个子群的子群参数集。子群可包括图片群组(groupofpictures,gop)、图片、图块、切片、宏块、编码单元(codingunit,cu)、块、变换单元(transformunit,tu)、预测单元(predictionunit,pu)等等。熵解码器/解析器还可以从已编码视频序列中提取诸如变换系数、量化器参数(qp)值、运动矢量之类的信息。解析器(420)可以对从缓冲器(415)接收的视频序列执行熵解码/解析操作,从而创建符号(421)。解析器(420)可以接收已编码数据,并且选择性地解码特定符号(421)。此外,解析器(420)可以确定是否将特定符号(421)提供给运动补偿预测单元(453)、缩放器/逆变换单元(451)、帧内预测单元(452)或环路滤波器单元(454)。取决于已编码视频图片或其部分的类型(例如,帧间和帧内图片,帧间和帧内块)以及其他因素,符号(421)的重建可涉及多个不同的单元。涉及哪些单元以及涉及方式可以由解析器(420)从已编码视频序列解析的子群控制信息来控制。为了清楚起见,未描述解析器(420)与下文的多个单元之间的此类子群控制信息流。除了已经提及的功能块以外,解码器(310)可以在概念上细分为如下文所描述的多个功能单元。在商业约束下运行的实际实施例中,这些单元中的许多单元彼此紧密交互,并且可以至少部分地彼此集成。然而,出于描述所公开主题的目的,将概念细分为多个功能单元是适当的。第一单元是缩放器/逆变换单元(451)。缩放器/逆变换单元(451)从解析器(420)接收作为一个(多个)符号(421)的量化变换系数以及控制信息,包括使用哪种变换、块大小、量化因子、量化缩放矩阵等。缩放器/逆变换单元(451)可以输出包括样本值的块,该样本值可以输入到聚合器(455)中。在一些情况下,缩放器/逆变换(451)的输出样本可以属于帧内编码块,即,不使用来自先前重建的图片的预测信息,但是可以使用来自当前图片的先前重建部分的预测信息的块。此类预测信息可以由帧内图片预测单元(452)提供。在一些情况下,帧内图片预测单元(452)使用从当前(部分重建)图片(456)提取的周围已重建信息,来生成与正在重建的块具有相同大小和形状的块。在一些情况下,聚合器(455)基于每个样本将帧内预测单元(452)已经生成的预测信息添加到由缩放器/逆变换单元(451)提供的输出样本信息中。在其他情况下,缩放器/逆变换单元(451)的输出样本可以属于帧间编码的并且可能运动补偿的块。在这种情况下,运动补偿预测单元(453)可以访问参考图片存储器(457)以提取用于预测的样本。在根据与该块相关的符号(421)对提取的样本进行运动补偿之后,这些样本可以由聚合器(455)添加到缩放器/逆变换单元的输出中(在这种情况下称为残差样本或残差信号),以生成输出样本信息。参考图片存储器内的地址(运动补偿单元从中获取预测样本)可以由运动矢量控制,该运动矢量可以以符号(421)的形式而供运动补偿单元使用,该符号(421)可以具有例如x、y和参考图片分量。运动补偿还可以包括当使用子样本精确运动矢量时从参考图片存储器中提取的样本值的内插、运动矢量预测机制等。聚集器(455)的输出样本可以在环路滤波器单元(454)中经受各种环路滤波技术。视频压缩技术可以包括环路内滤波技术,该环路内滤波技术由包括在已编码视频码流中的参数控制,并且该参数可以作为来自解析器(420)的符号(421)而用于环路滤波单元(454)。但是,视频压缩技术也可以响应于在对已编码图片或已编码视频序列的先前(按解码顺序)部分进行解码期间获得的元信息,以及响应于先前重建且环路滤波的样本值。环路滤波器单元(454)的输出可以是样本流,该样本流可以被输出到呈现装置(312),并且可以被存储在参考图片存储器(456)中,以用于后续的图片间预测。某些已编码图片一旦完全重建,就可以用作参考图片,以用于将来预测。一旦完全重建了已编码图片并且已将该已编码图片(例如,通过解析器(420))识别为参考图片,当前参考图片(456)就可以变为参考图片缓冲器(457)的一部分,并且可以在开始重建后续的已编码图片之前重新分配新的当前图片存储器。视频解码器(310)可以根据预定的视频压缩技术执行解码操作,该预定的视频压缩技术可能记录在诸如itu-th.265建议书之类的标准中。在遵循如视频压缩技术文档或标准(特别是其中的配置文件)中所指定的视频压缩技术或标准的语法的意义上,已编码视频序列可以符合所使用的视频压缩技术或标准所指定的语法。对于合规性,还要求已编码视频序列的复杂度处于视频压缩技术或标准的层级所限定的范围内。在一些情况下,层级限制最大图片大小、最大帧率、最大重建取样率(以例如每秒兆(mega)个样本为单位进行测量)、最大参考图片大小等。在一些情况下,由层级设定的限制可以通过假想参考解码器(hypotheticalreferencedecoder,hrd)规范和在已编码视频序列中用信号表示的hrd缓冲器管理的元数据来进一步限定。在一个实施例中,接收器(410)可以连同已编码视频一起接收附加(冗余)数据。附加数据可以是一个(多个)已编码视频序列的一部分。视频解码器(310)可以使用附加数据来对数据进行适当解码和/或较准确地重建原始视频数据。附加数据可以以例如时间、空间或信噪比(signalnoiseratio,snr)增强层、冗余切片、冗余图片、前向纠错码等形式呈现。图5是根据实施例的视频编码器(303)的功能框图。编码器(303)可以从视频源(301)(并非编码器的一部分)接收视频样本,视频源(301)可以采集将由编码器(303)编码的一个(多个)视频图像。视频源(301)可以提供将由视频编码器(303)编码的呈数字视频样本流形式的源视频序列,该数字视频样本流可以具有任何合适的位深度(例如,8位、10位、12位等)、任何色彩空间(例如,bt.601ycrcb、rgb等)和任何合适的取样结构(例如,ycrcb4:2:0、ycrcb4:4:4)。在媒体服务系统中,视频源(301)可以是存储先前已准备的视频的存储装置。在视频会议系统中,视频源(301)可以是采集本地图像信息作为视频序列的相机。可以将视频数据提供为多个单独的图片,当按顺序观看时,这些图片被赋予运动。图片自身可以构建为空间像素阵列,其中取决于所用的取样结构、色彩空间等,每个像素可包括一个或多个样本。本领域技术人员可以很容易理解像素与样本之间的关系。下面的描述侧重于样本。根据实施例,编码器(303)可以实时地或在由应用所要求的任何其它时间约束下,将源视频序列的图片编码且压缩成已编码视频序列(543)。施行适当的编码速度是控制器(550)的一个功能。控制器控制如下文所描述的其它功能单元,且在功能上耦接到这些单元。为了清楚起见,图中未标示耦接。由控制器设置的参数可以包括速率控制相关参数(图片跳过、量化器、率失真优化技术的λ值等)、图片大小、图片群组(groupofpictures,gop)布局,最大运动矢量搜索范围等。本领域技术人员可以容易地识别控制器(550)的其他功能,因为这些功能可能涉及针对某一系统设计优化的视频编码器(303)。一些视频编码器以本领域技术人员容易识别为“编码环路”的方式进行操作。作为简单的描述,编码循环可以由编码器(530)的编码部分(此后称为“源编码器”)(负责基于待编码的输入图片和一个(多个)参考图片创建符号)和嵌入在编码器(303)中的(本地)解码器(533)组成,该(本地)解码器(533)重建符号以创建(远程)解码器也将创建的样本数据(因为在本公开主题所考虑的视频压缩技术中,符号与已编码视频码流之间的任何压缩是无损的)。将重建的样本流输入到参考图片存储器(534)。由于符号流的解码产生与解码器位置(本地或远程)无关的位精确结果,因此参考图片缓冲器内容在本地编码器与远程编码器之间也是按比特位精确对应的。换句话说,编码器的预测部分“看到”的参考图片样本与解码器将在解码期间使用预测时所“看到”的样本值完全相同。该参考图片同步性基本原理(以及在例如因信道误差而无法维持同步性的情况下产生的漂移)对于本领域技术人员而言是众所周知的。“本地”解码器(533)的操作可以与已在上文结合图4详细描述的“远程”解码器(310)的操作相同。但是,另外简要参考图4,当符号可用且熵编码器(545)和解析器(420)能够无损地将符号编码/解码为已编码视频序列时,包括信道(412)、接收器(410)、缓冲器(415)和解析器(420)在内的解码器(310)的熵解码部分可能无法完全在本地解码器(533)中实施。此时可以观察到,除了存在于解码器中的解析/熵解码之外的任何解码器技术,也必需以基本上相同的功能形式存在于对应的编码器中。编码器技术的描述可以被缩减,因为编码器技术与全面地描述的解码器技术互逆。仅在某些区域中需要更详细的描述,并且在下文提供。作为操作的一部分,源编码器(530)可以执行运动补偿预测编码。参考来自视频序列中被指定为“参考帧”的一个或多个先前已编码帧,所述运动补偿预测编码对输入帧进行预测性编码。以此方式,编码引擎(532)对输入帧的像素块与一个(多个)参考帧的像素块之间的差异进行编码,该参考帧可以被选作该输入帧的一个(多个)预测参考。本地视频解码器(533)可以基于源编码器(530)创建的符号,对可指定为参考帧的帧的已编码视频数据进行解码。编码引擎(532)的操作可以有利地是有损过程。当已编码视频数据可以在视频解码器(图4中未示出)处被解码时,重建的视频序列通常可以是具有一些误差的源视频序列的副本。本地视频解码器(533)复制解码过程,该解码过程可以由视频解码器对参考帧执行,并且可以使重建的参考帧存储在参考图片高速缓存(534)中。以此方式,编码器(303)可以在本地存储重建的参考帧的副本,该副本与将由远端视频解码器获得的重建参考帧具有共同内容(不存在传输误差)。预测器(535)可以针对编码引擎(532)执行预测搜索。即,对于待编码的新帧,预测器(535)可以在参考图片存储器(534)中搜索可作为新图片的适当预测参考的样本数据(作为候选参考像素块)或某些元数据(例如参考图片运动矢量、块形状等)。预测器(535)可以基于样本块逐像素块操作,以找到合适的预测参考。在一些情况下,如由预测器(535)获得的搜索结果所确定的,输入图片可以具有从参考图片存储器(534)中存储的多个参考图片取得的预测参考。控制器(550)可以管理源编码器(530)的编码操作,包括例如设置用于对视频数据进行编码的参数和子群参数。可以在熵编码器(545)中对所有上述功能单元的输出进行熵编码。熵编码器(545)根据本领域技术人员已知的技术(例如霍夫曼编码、可变长度编码、算术编码等)对各种功能单元生成的符号进行无损压缩,从而将该符号转换成已编码视频序列。传输器(540)可以缓冲由熵编码器(545)创建的已编码视频序列,从而为通过通信信道(560)进行传输做准备,该通信信道(560)可以是通向可以存储已编码视频数据的存储装置的硬件/软件链路。发射器(540)可以将来自视频编码器(530)的已编码视频数据与待传输的其它数据合并,该其它数据例如是已编码音频数据和/或辅助数据流(未示出来源)。控制器(550)可以管理编码器(303)的操作。在编码期间,控制器(550)可以为每个已编码图片分配某一已编码图片类型,这可能影响可应用于相应的图片的编码技术。例如,通常可将图片分配为以下任一种帧类型:帧内图片(i图片),其可以是不将序列中的任何其它帧用作预测源就可被编码和解码的图片。一些视频编解码器容许不同类型的帧内图片,包括例如独立解码器刷新(independentdecoderrefresh,idr)图片。本领域技术人员了解i图片的变体及其相应的应用和特征。预测性图片(p图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多一个运动矢量和参考索引来预测每个块的样本值。双向预测性图片(b图片),其可以是可使用帧内预测或帧间预测进行编码和解码的图片,该帧内预测或帧间预测使用至多两个运动矢量和参考索引来预测每个块的样本值。类似地,多个预测性图片可以使用多于两个参考图片和相关联元数据以用于重建单个块。源图片通常可以在空间上细分成多个样本块(例如,每个4×4、8×8、4×8或16×16个样本的块),并且逐块进行编码。可以参考其它(已编码)块对这些块进行预测编码,该其他块是根据应用于块的相应图片的编码分配来确定的。例如,可以对i图片的块进行非预测编码,或可以参考同一图片的已经编码的块来对这些块进行预测编码(空间预测或帧内预测)。可以参考一个先前编码的参考图片通过空间预测或通过时域预测对p图片的像素块进行预测编码。可以参考一个或两个先前编码的参考图片通过空间预测或通过时域预测对b图片的块进行预测编码。视频编码器(303)可以根据例如itu-th.265建议书的预定视频编码技术或标准执行编码操作。在操作中,视频编码器(303)可以执行各种压缩操作,包括利用输入视频序列中的时间和空间冗余的预测编码操作。因此,已编码视频数据可以符合所用视频编码技术或标准指定的语法。在一个实施例中,发射器(540)可以连同已编码视频一起传输附加数据。视频编码器(530)可以将此类数据作为已编码视频序列的一部分。附加数据可以包括时间/空间/snr增强层、诸如冗余图片和切片之类的其它形式的冗余数据、sei消息、vui参数集片段等。图6是vvc草案2中的帧内预测模式的图。如图6所示,在vvc草案2中,共有87种帧内预测模式。其中,模式18(601)是水平模式,模式50(602)是垂直模式,模式2(603)、模式34(604)和模式66(605)是对角线模式。模式-1至模式10和模式67至模式76称为宽角帧内预测(waip)模式。vvc草案2中包含35种hevc帧内预测模式,该35种hevc模式的模式编号是0、1、2、4、6、8、10、12、14、16、18、20、22、24,26、28、30、32、34、36、38、40、42、44、46、48、50、52、54、56、58、60、62、64和66。在vvc草案2中,mpm列表的大小仍为3,并且mpm列表的生成过程与hevc相同。一个区别是,由于vvc草案2中有67个信号模式,因此将“offset”更改为61,并且将变量“mod”更改为64。对于模式编码,首先,一个mpm标记被以信号发送,以指示当前模式是否属于mpm列表。如果mpm标记为true(真),则使用截断一元码来以信号发送mpm索引。如果mpm标记为false(假),则使用6位固定长度编码来以信号发送其余模式。vvc草案2中的以下子句(clause)描述了亮度帧内模式编码过程。1、将相邻位置(xnba,ynba)和(xnbb,ynbb)分别设置为等于(xpb-1,ypb)和(xpb,ypb-1)。2、对于被a或b替换的x,变量candintrapredmodex的推导如下:–以设置为等于(xpb,ypb)的位置(xcurr,ycurr)和设置为等于(xnbx,ynbx)的相邻位置(xnby,ynby)作为输入来调用[ed.(bb):相邻块可用性检查过程tbd]的第6.4.x条款中规定的针对块的可用性推导过程,并且将输出分配给availablex。–候选帧内预测模式candintrapredmodex的推导如下:–如果以下条件中的一个或多个条件为真,则将candintrapredmodex设置为等于intra_dc。–变量availablex等于false。–cupredmode[xnbx][ynbx]不等于mode_intra。–x等于b并且ypb-1小于((ypb>>ctblog2sizey)<<ctblog2sizey)。–否则,将candintrapredmodex设置为等于intrapredmodey[xnbx][ynbx]。3、具有x=0..2的candmodelist[x]的推导如下:–如果candintrapredmodeb等于candintrapredmodea,则适用以下处理:–如果candintrapredmodea小于2(即等于intra_planar或intra_dc),则具有x=0..2的candmodelist[x]的推导如下:candmodelist[0]=intra_planar(8-1)candmodelist[1]=intra_dc(8-2)candmodelist[2]=intra_angular50(8-3)–否则,具有x=0..2的candmodelist[x]的推导如下:candmodelist[0]=candintrapredmodea(8-4)candmodelist[1]=2+((candintrapredmodea+61)%64)(8-5)candmodelist[2]=2+((candintrapredmodea-1)%64)(8-6)–否则(candintrapredmodeb不等于candintrapredmodea),则适用以下处理:–candmodelist[0]和candmodelist[1]的推导如下:candmodelist[0]=candintrapredmodea(8-7)candmodelist[1]=candintrapredmodeb(8-8)–如果candmodelist[0]和candmodelist[1]都不等于intra_planar,则将candmodelist[2]设置为等于intra_planar,–否则,如果candmodelist[0]和candmodelist[1]都不等于intra_dc,则将candmodelist[2]设置为等于intra_dc,–否则,将candmodelist[2]设置为等于intra_angular50。4、通过应用以下过程推导intrapredmodey[xpb][ypb]:–如果intra_luma_mpm_flag[xpb][ypb]等于1,则将intrapredmodey[xpb][ypb]设置为等于candmodelist[intra_luma_mpm_idx[xpb][ypb]]。–否则,通过应用以下有序步骤来推导intrapredmodey[xpb][ypb]:1、通过以下有序步骤对具有x=0..2的阵列candmodelist[x]进行修改:i、当candmodelist[0]大于candmodelist[1]时,对两个值进行交换(swap)如下:(candmodelist[0],candmodelist[1])=swap(candmodelist[0],candmodelist[1])ii、当candmodelist[0]大于candmodelist[2]时,对两个值进行交换如下:(candmodelist[0],candmodelist[2])=swap(candmodelist[0],candmodelist[2])iii、当candmodelist[1]大于candmodelist[2]时,对两个值进行交换如下:(candmodelist[1],candmodelist[2])=swap(candmodelist[1],candmodelist[2])2、通过以下有序步骤推导intrapredmodey[xpb][ypb]:i、将intrapredmodey[xpb][ypb]设置为等于intra_luma_mpm_remainder[xpb][ypb]。ii、对于等于0至2的i(含0和2),当intrapredmodey[xpb][ypb]大于或等于candmodelist[i]时,intrapredmodey[xpb][ypb]的值增加1。将具有x=xpb..xpb+cbwidth-1和y=ypb..ypb+cbheight-1的变量intrapredmodey[x][y]设置为等于intrapredmodey[xpb][ypb]。在vvc草案2的开发中,提出了具有大小为6的mpm列表。平面模式和dc模式包括在mpm列表中。使用两个相邻模式(左侧的模式和上方的模式)来生成其余4个mpm。但是,在vvc草案2中,可用的帧内预测模式的数量多于67,这消耗了很多位来以信号发送。当前块与其相邻块之间存在很强的相关性,这可以用于减少当前块的以信号发送的帧内预测模式的数量。下面提出的方法可以单独使用,也可以以任何顺序组合使用。在下面的描述中,如果一种模式不是平面模式或dc模式,或者一种模式正在根据给定的预测方向生成预测样本,例如vvc草案2中定义的帧内预测模式2至76和-1至-10,则该模式称为角度模式。在下面的描述中,将允许的帧内预测模式(allowedintrapredictionmode,aipm)集合定义为具有可用于当前块的帧内预测的模式的一个模式集合,并且将不允许的帧内预测模式(disallowedintrapredictionmode,dipm)集合定义为具有无法被以信号发送的或无法用于当前块的帧内预测的模式的一个模式集合。本文中使用了两个变量:offset和mod。这两个变量的值可以具有以下两组:1)offset=61,mod=64;或2)offset=62,mod=65。在一个实施例中,对于每个块,存在两个帧内预测模式集合,该两个帧内预测模式集合是aipm集合和dipm集合。对于每个块,该两个模式集合中的模式可以根据相邻块和/或当前块的编码信息而不同,并且可以包括但不限于相邻块的帧内预测模式、当前块的帧内预测模式、宽高比、已编码块标记(codedblockflag,cbf)、主变换类型和/或次变换类型、相邻的重构样本等。在一个实施例中,aipm集合和dipm集合中的模式取决于相邻块的帧内预测模式。在一个实施例中,相邻模式包括在aipm集合中,但是不包括在dipm集合中。在一个实施例中,具有相同宽高比或相同宽度和/或相同高度的块可以具有不同的aipm集合和/或不同的dipm集合。在一个实施例中,对于每个角相邻模式(由ang_mode表示),可以通过以下等式1和等式2来推导出某些模式,并且所推导出的模式包括在aipm集合中但不包括在dipm集合中。(ang_mode+offset-diff)%mod+2(等式1)(ang_mode–1+diff)%mod+2(等式2)在等式1和等式2中,diff是变量,并且是正整数或零。在一个示例中,diff可以是等于或小于6的任何值。在另一示例中,diff可以是等于或小于3的任何值。在又一示例中,diff可以是集合{0,1,2,3,5,7}中的任何值。在一个实施例中,为了降低重建aipm集合的复杂性,许多推导出的模式受阈值(由thres表示)限制。thres可以是任何正整数,例如16、32或48。在一个实施例中,aipm集合和dipm集合中的模式取决于相邻块的帧间预测模式。在一个实施例中,aipm集合和dipm集合中的模式取决于相邻块是否被帧内编码、或帧间编码、或由块内复制(ibc)模式编码、或由合并(merge)模式编码、或由跳过(skip)模式编码,或由其他编码模式编码。在一个实施例中,使用相邻块的重构像素来推导允许的和不允许的帧内预测模式集合。在一个实施例中,使用相邻重建样本的梯度来推导aipm集合和dipm集合中的模式。可以通过以下方法之一来计算梯度,该方法包括但不限于一阶梯度方法、二阶梯度方法和双共轭梯度方法。在一个实施例中,可以使用边缘检测方法或图像特征检测方法来推导aipm集合和dipm集合中的模式。边缘检测方法包括但不限于以下之一:sobel算子、laplace算子、canny边缘检测器、kayyali算子、susan角点检测器等。在一个实施例中,对于所有块,aipm集合和dipm集合包括的模式的数量是预定义的并且是固定的。在一个实施例中,aipm集合包括的模式的数量由s表示,并且s等于m加2的幂,例如,s=m+2k,其中m和k是正整数,例如m=6且k=5。m可以是不大于7。示例值包括但不限于3、4、5、6和7。在一个实施例中,aipm集合的大小由s表示,并且s等于m加2的幂的多个水平,例如s=m+2k+2l,其中m、k和l是正整数,例如m=6、k=4、l=5。m可以是不大于7。示例值包括但不限于3、4、5、6和7。在一个实施例中,对于每个块大小或每个块宽高比或每个块形状,aipm集合和dipm集合包括的模式的数量是预定义的并且是固定的。但是,对于不同的块大小或不同的块宽高比或不同的块形状,aipm集合和dipm集合包括的模式的数量是不同的。在一个实施例中,当aipm集合的大小是s并且从相邻模式推导的帧内预测模式的数量小于s时,使用默认模式来填充aipm集合。在一个实施例中,所有hevc帧内预测模式都包括在默认模式中。在一个示例中,s等于或大于35。在一个实施例中,与偶数模式索引相关联的所有帧内预测模式都包括在默认模式中。在一个示例中,s等于或大于35。在一个实施例中,在已经包括hevc帧内预测模式之后,将与奇数模式索引相关联的角度模式包括在默认模式中。在一个实施例中,当aipm集合的大小是38时,默认模式被预定义为{0,1,2,50,18,34,66,10,26,42,58,6,14,22,30,38,46,54,62,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60,64,17,19,49}。在一个实施例中,当aipm集合的大小大于35时,所有hevc帧内预测模式、或与偶数模式索引相关联的所有帧内预测模式、或与奇数模式索引相关联的所有帧内预测模式,总是被包括在aipm集合中,但不包括在dipm集合中。在一个实施例中,对于aipm集合,可以将aipm集合进一步划分为两个列表(即主mpm列表和非mpm列表),并且非mpm列表的大小为2的幂。在一个实施例中,为了对aipm集合中的模式进行编码,首先,以信号发送一个mpm标记以指示当前模式是否属于主mpm列表。如果mpm标记为true,则使用截断一元码来以信号发送mpm索引。否则,使用固定长度编码来以信号发送非mpm列表中的模式。根据当前块的宽高比,将二十八个或三十个宽角以及相应的宽角帧内预测模式添加到原始角以及相应的原始角帧内预测模式的表中。在一个实施例中,将14个或15个宽角以及相应的宽角帧内预测模式添加到当前块的左下方向(例如,图6的底边缘606),并且将另外14个或15个宽角以及相应的宽角帧内预测模式添加到当前块的右上方向(例如,图6的右边缘607)。示例的实现示出在下面的表1至表2中。宽角和原始角的角度表如下所示。在示例中,32个角的角度表(angtable[32])可以包括角{0,1,2,3,4,6,8,10,12,14,16,18,20,23,26,29,32,35,39,45,51,57,64,73,86,102,128,171,256,341,512,1024},其中角为{0,1,2,3,4,6,8,10,12,14,16,18,20,23,26,29,32}是原始角,以及角{35,39,45,51,57,64,73,86,102,128,171,256,341,512,1024}是宽角。换句话说,角度中的每一个可以具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/29,32/32,35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32,1024/32}。表1可以是这样一个角度表的示例,该角度表具有vvc中的各帧内预测模式,该vvc具有67个原始角和67个相应的原始角度帧内预测模式,并且向该vvc中添加了30个宽角和30个相应的宽角帧内预测模式。表1–intrapredangle规范predmodeintra表示vvc中的帧内预测模式,以及intrapredangle表示帧内预测角。在另一示例中,31个角的角度表(angtable[31])可以包括角{0,1,2,3,4,6,8,10,12,14,16,18,20,23,26,29,32,35,39,45,51,57,64,73,86,102,128,171,256,341,512},其中角为{0,1,2,3,4,6,8,10,12,14,16,18,20,23,26,29,32}是原始角,以及角{35,39,45,51,57,64,73,86,102,128,171,256,341,512}是宽角。换句话说,角度中的每一个可以具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/29,32/32,35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32}。表2可以是这样一个角度表的示例,该角度表具有vvc中的各帧内预测模式,该vvc具有67个原始角和67个相应的原始角度帧内预测模式,并且向该vvc中添加了28个宽角和28个相应的宽角帧内预测模式。表2–intrapredangle规范下文描述了使用上述实施例对vvc草案2进行的文本更改(带有删除线和下划线):8.2.4.2.7intra_angular2…intra_angular66帧内预测模式的规范该过程的输入是:–帧内预测模式predmodeintra,–具有x=-1,y=-1…refh-1以及x=0…refw-1,y=-1的相邻样本p[x][y],–表明变换块的宽度的变量ntbw,–表明变换块的高度的变量ntbh,–表明参考样本的宽度的变量refw,–表明指定参考样本的高度的变量refh。该过程的输出是修改后的帧内预测模式predmodeintra和具有x=0…ntbw+1,y=0…ntbh+1的预测样本predsamples[x][y]。将变量whratio设置为等于min(abs(log2(ntbw/ntbh)),2)。对于非正方形块(ntbw不等于ntbh),对帧内预测模式predmodeintra进行修改如下:–如果以下所有条件为true,则将predmodeintra设置为等于(predmodeintra+65)。–ntbw大于ntbh–predmodeintra大于或等于2–predmodeintra小于(whratio>1)?12:8–否则,如果以下所有条件为true,则将predmodeintra设置为等于(predmodeintra-67)。–ntbh大于ntbw–predmodeintra小于或等于66–predmodeintra大于(whratio>1)?56:60表8-5表明predmodeintra和角度参数intrapredangle之间的映射表,并且图8-3表明每个角度参数的帧内预测角。表8-5–intrapredangle的规范表9-4–语法元素和相关联的二值化图7是示出了根据实施例的一种控制帧内预测以对视频序列进行解码的方法(700)的流程图。在一些实现方式中,图7的一个或多个处理框可以由解码器(310)执行。在一些实现方式中,图7的一个或多个处理框可以由与解码器(310)分离或包括解码器(310)的另一设备或一组设备(例如,编码器(303))执行。参考图7,在第一框(710)中,方法(700)包括确定编码单元的宽度与高度的比率。在第二框(720)中,该方法(700)包括基于所确定的比率不等于1,向包括与帧内预测角相对应的多个帧内预测模式的表中,添加朝向所述编码单元的左下边缘的第一宽角、朝向所述编码单元的右上边缘的第二宽角和分别与所述第一宽角和所述第二宽角相对应的附加帧内预测模式。添加到该表中的第一宽角的数量是14。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第一宽角中的每一个具有角度方向α,其中tan(α)等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32}。添加到该表中的第二宽角的数量是14。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第二宽角中的每一个具有角度方向α,其中tan(α)等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32}。添加到该表中的第一宽角的数量是15。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第一宽角中的每一个具有角度方向α,其中tan(α)等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32,1024/32}。添加到该表中的第二宽角的数量是15。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第二宽角中的每一个具有角度方向α,其中tan(α)等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32,1024/32}。该表包括的多个帧内预测模式的第一数量可以是67,添加到该表中的附加帧内预测模式的第二数量可以是28,并且该表可以包括上面的表2。在第三框(730)中,该方法(700)包括从该多个帧内预测模式和添加到该表中的附加帧内预测模式中,选择一个帧内预测模式,以对视频序列进行解码。虽然图7示出了方法(700)的示例框,在一些实现方式中,方法(700)可以包括比图7中所描绘的框更多的框、更少的框、与图7中所描绘的框不同的框或不同地布置的框。附加地或可替代地,可以并行地执行方法(700)的框中的两个或更多个。此外,可以通过处理电路(例如,一个或多个处理器,或一个或多个集成电路)来实现所提出的方法。在一个示例中,一个或多个处理器执行存储在非暂时性计算机可读介质中的程序以执行所提出的方法中的一个或多个。图8是根据实施例的一种控制帧内预测以对视频序列进行解码的装置(800)的简化框图。参考图8,装置(800)包括确定代码(810)、添加代码(820)和选择代码(830)。该确定代码(810)配置为确定编码单元的宽度与高度的比率。该添加代码(820)配置为基于所确定的比率不等于1,向包括与帧内预测角相对应的多个帧内预测模式的表中,添加朝向所述编码单元的左下边缘的第一宽角、朝向所述编码单元的右上边缘的第二宽角和分别与所述第一宽角和所述第二宽角相对应的附加帧内预测模式。添加到该表中的第一宽角的数量是14。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第一宽角中的每一个具有角度方向α,其中tan(α)等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32}。添加到该表中的第二宽角的数量是14。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第二宽角中的每一个具有角度方向α,其中tan(α))等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32}。添加到该表中的第一宽角的数量是15。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第一宽角中的每一个具有角度方向α,其中tan(α)等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32,1024/32}。添加到该表中的第二宽角的数量是15。该表中包括的帧内预测角中的每一个具有角度方向α,其中tan(α)等于{0/32,1/32,2/32,3/32,4/32,6/32,8/32,10/32,12/32,14/32,16/32,18/32,20/32,23/32,26/32,29/32,32/32},并且添加到该表中的第二宽角中的每一个具有角度方向α,其中tan(α)等于{35/32,39/32,45/32,51/32,57/32,64/32,73/32,86/32,102/32,128/32,171/32,256/32,341/32,512/32,1024/32}。该表包括的多个帧内预测模式的第一数量可以是67,添加到该表中的附加帧内预测模式的第二数量可以是28,并且该表可以包括上面的表2。该选择代码(830)配置为从该多个帧内预测模式和添加到该表中的附加帧内预测模式中,选择一个帧内预测模式,以对视频序列进行解码。可以将上述技术实现为计算机软件,该计算机软件使用计算机可读指令,并且物理存储在一个或多个计算机可读介质中。图9是适用于实现实施例的计算机系统(900)的图。可以使用任何合适的机器代码或计算机语言对计算机软件进行编码,任何合适的机器代码或计算机语言可以经受汇编、编译、链接或类似的机制以创建包括指令的代码,该指令可以由计算机中央处理单元(cpu)、图形处理单元(gpu)等直接执行或通过译码、微码执行等执行。指令可以在各种类型的计算机或其组件上执行,例如包括个人计算机、平板计算机、服务器、智能电话、游戏装置、物联网装置等。图9所示的计算机系统900的组件本质上是示例性的,并且不旨在对实施实施例的计算机软件的用途或功能的范围提出任何限制。组件的配置也不应被解释为具有与计算机系统(900)的示例性实施例中所示的组件中的任何一个组件或组件的组合有关的任何依赖或要求。计算机系统(900)可以包括某些人机接口输入装置。此类人机接口输入装置可以响应于一个或多个人类用户通过例如下述的输入:触觉输入(例如:击键、划动,数据手套移动)、音频输入(例如:语音、拍手)、视觉输入(例如:手势)、嗅觉输入(未示出)。人机接口装置还可以用于捕获不一定与人的意识输入直接相关的某些介质,例如音频(例如:语音、音乐、环境声音)、图像(例如:扫描的图像、从静止图像相机获取摄影图像)、视频(例如二维视频、包括立体视频的三维视频)等。输入人机接口装置可以包括下述中的一个或多个(每种中仅描绘一个):键盘(901)、鼠标(902)、触控板(903)、触摸屏(910)、数据手套(904)、操纵杆(905)、麦克风(906)、扫描仪(907)、相机(908)。计算机系统(900)也可以包括某些人机接口输出装置。这样的人机接口输出装置可以例如通过触觉输出、声音、光和气味/味道来刺激一个或多个人类用户的感官。此类人机接口输出装置可以包括触觉输出装置(例如触摸屏(910)的触觉反馈、数据手套(904)或操纵杆(905),但也可以是不作为输入装置的触觉反馈装置)、音频输出装置(例如:扬声器(909)、耳机(未示出))、视觉输出装置(例如包括阴极射线管(crt)屏幕、液晶显示(lcd)屏幕、等离子屏幕、有机发光二极管(oled)屏幕的屏幕(910),每种屏幕有或没有触摸屏输入功能,每种屏幕都有或没有触觉反馈功能,其中的一些屏幕能够通过诸如立体图像输出之类的装置、虚拟现实眼镜(未示出)、全息显示器和烟箱(未示出)以及打印机(未示出)来输出二维视觉输出或超过三维的输出。计算机系统(900)也可以包括人类可访问存储装置及其关联介质:例如包括具有cd/dvd等介质(921)的cd/dvdrom/rw(920)的光学介质、指状驱动器(922)、可拆卸硬盘驱动器或固态驱动器(923)、诸如磁带和软盘之类的传统磁性介质(未示出)、诸如安全软件狗之类的基于专用rom/asic/pld的装置(未示出)等。本领域技术人员还应该理解,结合当前公开的主题使用的所术语“计算机可读介质”不涵盖传输介质、载波或其他暂时性信号。计算机系统(900)还可以包括到一个或多个通信网络的接口。网络可以例如是无线网络、有线网络、光网络。网络可以进一步地是本地网络、广域网络、城域网络、车辆和工业网络、实时网络、延迟容忍网络等。网络的示例包括诸如以太网之类的局域网、无线lan、包括全球移动通信系统(gsm)、第三代(3g)、第四代(4g)、第五代(5g)、长期演进(lte)等的蜂窝网络、包括有线电视、卫星电视和地面广播电视的电视有线或无线广域数字网络、包括canbus的车辆和工业用电视等等。某些网络通常需要连接到某些通用数据端口或外围总线(949)的外部网络接口适配器(例如计算机系统(900)的通用串行总线(usb)端口);如下所述,其他网络接口通常通过连接到系统总线而集成到计算机系统(900)的内核中(例如,连接到pc计算机系统中的以太网接口或连接到智能手机计算机系统中的蜂窝网络接口)。计算机系统(900)可以使用这些网络中的任何一个网络与其他实体通信。此类通信可以是仅单向接收的(例如,广播电视)、仅单向发送的(例如,连接到某些canbus装置的canbus)或双向的,例如,使用局域网或广域网数字网络连接到其他计算机系统。如上所述,可以在那些网络和网络接口的每一个上使用某些协议和协议栈。上述人机接口装置、人机可访问的存储装置和网络接口可以附接到计算机系统(900)的内核(940)。内核(940)可以包括一个或多个中央处理单元(cpu)(941)、图形处理单元(gpu)(942)、现场可编程门区域(fpga)(943)形式的专用可编程处理单元、用于某些任务的硬件加速器(944)等。这些装置以及只读存储器(rom)(945)、随机存取存储器(ram)(946)、诸如内部非用户可访问的硬盘驱动器、固态驱动(ssd)等之类的内部大容量存储器(947)可以通过系统总线(948)连接。在一些计算机系统中,可以以一个或多个物理插头的形式访问系统总线(948),以能够通过附加的cpu、gpu等进行扩展。外围装置可以直接连接到内核的系统总线(948)或通过外围总线(949)连接到内核的系统总线(948)。外围总线的体系结构包括外围部件互连(pci)、usb等。cpu(941)、gpu(942)、fpga(943)和加速器(944)可以执行某些指令,这些指令可以组合来构成上述计算机代码。该计算机代码可以存储在rom(945)或ram(946)中。过渡数据也可以存储在ram(946)中,而永久数据可以例如存储在内部大容量存储器(947)中。可以通过使用高速缓存来进行到任何存储装置的快速存储及检索,该高速缓存可以与下述紧密关联:一个或多个cpu(941)、gpu(942)、大容量存储(947)、rom(945)、ram(946)等。计算机可读介质可以在其上具有执行各种由计算机实现的操作的计算机代码。介质和计算机代码可以是出于实施例的目的而专门设计和构造的介质和计算机代码,或者介质和计算机代码可以是计算机软件领域的技术人员公知且可用的类型。作为非限制性示例,可以由于一个或多个处理器(包括cpu、gpu、fpga、加速器等)执行包含在一种或多种有形的计算机可读介质中的软件而使得具有架构(900),特别是内核(940)的计算机系统提供功能。此类计算机可读介质可以是与如上所述的用户可访问的大容量存储相关联的介质,以及某些非暂时性内核(940)的存储器,例如内核内部大容量存储器(947)或rom(945)。可以将实施本公开的各种实施例的软件存储在此类装置中并由内核(940)执行。根据特定需要,计算机可读介质可以包括一个或多个存储装置或芯片。软件可以使得内核(940),特别是其中的处理器(包括cpu、gpu、fpga等)执行本文所描述的特定过程或特定过程的特定部分,包括定义存储在ram中的数据结构(946)以及根据由软件定义的过程来修改此类数据结构。附加地或替换地,可以由于硬连线或以其他方式体现在电路(例如,加速器(944))中的逻辑而使得计算机系统提供功能,该电路可以替换软件或与软件一起运行以执行本文描述的特定过程或特定过程的特定部分。在适当的情况下,提及软件的部分可以包含逻辑,反之亦然。在适当的情况下,提及计算机可读介质的部分可以包括存储用于执行的软件的电路(例如集成电路(ic))、体现用于执行的逻辑的电路或包括两者。实施例包括硬件和软件的任何合适的组合。尽管本公开已经描述了多个示例性实施例,但是存在落入本公开的范围内的改变、置换和各种替代等同物。因此,应当理解,本领域技术人员将能够设计出许多系统和方法,这些系统和方法虽然未在本文中明确示出或描述,但是体现了本公开的原理,并因此属于本公开的精神和范围内。当前第1页12当前第1页12