电子装置上的参考画面集信令和限制的制作方法_2

文档序号:9355721阅读:来源:国知局
引之间以及在正索引之间被不同编码。因此,可能有益的是通过采用本文所公开的系 统和方法以减少用于RPS模板的比特数,来减少信令比特数。例如,这可通过减少对RPS索 引值的列表进行编码所需的比特数来实现。
[0096] 本文所公开的系统和方法可在减少RPS信号开销方面提供一个或多个附加有益 效果。在一个配置中,可采用正和负参考索引的对称特性以减少用于对正RPS索引值(例 如,参考索引)进行编码的比特。在另一配置下,可在解码器处得出部分RPS,而非在比特流 中发送部分RPS。另外地或替代地,可定义在编码器侧和解码器侧均频繁使用的RPS模板, 允许通过PPS中的简单索引来信令通知所述模板。另外地或替代地,可通过参考完整RPS 并且删除参考画面中的一些以达到部分RPS,来信令通知部分RPS。
[0097] 现在参照附图描述各种配置,其中相似标号可指示功能相似的元件。在本文附图 中大体描述并示出的系统和方法可按照各种各样不同的配置来布置和设计。因此,以下对 附图中所表示的若干配置的更详细的描述并非意在限制要求保护的范围,而是仅代表系统 和方法。
[0098] 图1是示出可实现用于减少RPS信号开销的系统和方法的一个或多个电子装置 102a-b的示例的框图。在该示例中,示出了电子装置A102a和电子装置B 102b。然而,应 当注意的是,与电子装置A 102a和电子装置B 102b相关描述的特征和功能中的一个或多 个可按照一些配置组合成单个电子装置。
[0099] 电子装置A 102a包括编码器104和RPS索引初始化器模块(初始化器模块)108。 包括在电子装置A 102a内的各个元件(例如,编码器104和初始化器模块108)可被实现 于硬件、软件或其组合中。
[0100] 电子装置A 102a可获得输入画面106。在一些配置中,输入画面106可在电子装 置A 104a上利用图像传感器来捕获、从存储器检索和/或从另一电子装置接收。
[0101] 编码器104可对输入画面106进行编码以生成编码的数据。例如,编码器104可 对一系列输入画面106 (例如,视频)进彳丁编码。在一个配置中,编码器104可以是HEVC编 码器。编码的数据可以是数字数据(例如,比特流)。编码器104可基于输入信号生成开销 信令。
[0102] 初始化器模块108可用于处理RPS索引值。例如,初始化器模块108可对用于处 理正参考画面的值进行初始化。该数据可被记录在PPS中,并且其索引可在画面的片头中 信令通知。
[0103] 下面给出可由电子装置A 102a生成的初始化类型的更多细节。应当注意的是,在 一些配置中,初始化器模块108可被包括在编码器104内。初始化器模块108可使得RPS 信令开销能够减少。
[0104] 编码器104(以及例如初始化器模块108)可生成比特流114。比特流114可包括 基于输入画面106的编码画面数据。在一些配置中,比特流114还可包括开销数据,例如片 头信息、PPS信息等。下面给出开销数据的更多细节。当附加输入画面106被编码时,比特 流114可包括一个或多个编码的画面。例如,比特流114可包括一个或多个编码的参考画 面和/或其它画面。
[0105] 比特流114可被提供到解码器112。在一个示例中,比特流114可利用有线或无 线链路来发送至电子装置B 102b。在一些情况下,这可经由诸如互联网或局域网(LAN)的 网络来进行。如图1所示,解码器112可独立于电子装置A 102a上的编码器104被实现于 电子装置B 102b上。然而,应当注意的是,在一些配置中编码器104和解码器112可被实 现于同一电子装置上。例如,在编码器104和解码器112被实现于同一电子装置上的实现 方式中,比特流114可经由总线被提供到解码器112或者被存储在存储器中以便于解码器 112检索。
[0106] 解码器112可被实现于硬件、软件或其组合中。在一个配置中,解码器112可以是 HEVC解码器。解码器112可接收(例如,获得)比特流114。解码器112可基于比特流114 生成解码的画面118 (例如,一个或多个解码的画面118)。解码的画面118可被显示、回放、 存储在存储器和/或发送到另一装置等。
[0107] 解码器112可包括部分RPS确定模块120、RPS模板模块122和/或RPS删除模块 124。部分RPS确定模块120可使得解码器112能够在解码器处生成部分RPS。例如,部分 RPS确定模块120可基于在解码器112处接收的完整RPS生成部分RPS。部分RPS确定模 块120在下面更详细地描述。
[0108] RPS模板模块122可基于在比特流114中接收的信号创建RPS模板。例如,RPS模 板模块122可使用从比特流获得的GOP大小、编码结构和规则来创建模板。RPS模板模块 122在下面更详细地描述。
[0109] 在一些配置中,RPS删除模块124可标识丢失的参考画面并且向编码器104发送 反馈,信令通知一个或多个参考画面丢失。RPS删除模块124可获得比特流中的指令以删除 当前或先前接收的RPS中的一个或多个画面。在其它配置中,可在不向编码器发送反馈的 情况下接收RPS删除指令。RPS删除模块124在下面更详细地描述。
[0110] 在另一示例中,例如可扩展编码情景,比特流可包含不同分辨率的画面。在该示例 中,参考画面收集可包括(例如,标识)同一画面的不同分辨率版本。
[0111] 图2是示出画面组(GOP) 228的一个配置的框图。在一些配置中,GOP 228可为递 阶编码结构,例如具有最小解码延迟的编码顺序的递阶B结构。例如,GOP 228可为具有四 个并矢递阶级(dyadic hierarchy stage)的递阶预测结构。应当注意的是,在一些配置中 GOP 228中的画面的数量可为八个(例如,GOP大小=8),如图2所示。
[0112] 图2示出一个或多个画面226。在一些情况下,这些画面可以是参考画面。各个画 面226可属于递阶级。例如,I帧画面226可具有基础递阶级,例如0级。在一些情况下, I帧可以是IDR画面。B帧可具有1、2或3级。在一些情况下,所述级可对应于时间可扩展 性。换言之,随着级数增加,细化当前画面的能力也增加。这样,具有较低级的画面226可 采用对应较高画面226以增加清晰度和细化程度。
[0113] GOP 228可按照显示顺序或POC 229来排序。然而,编码顺序230或者从比特流获 得画面的顺序可不同于POC 229顺序。
[0114] 在一些配置中,GOP 228中的画面226按照对称递阶模式来排序。在这种类型的 配置中,距负参考画面和正参考画面的最小距离可相同。即,RPS中的正deltaPOC和负 deltaPOC的绝对值通常相同。
[0115] 例如,假定POC 2是指示当前画面将被解码的当前POC 231。为了将当前POC 231 所指示的画面解码,必须获得RPS索引值232中的一个或多个。在此示例中,由当前POC 231 指示的画面使用由POC 2、POC 4和POC 6指示的画面来解码。不是使用绝对值,当前POC 231使用存储在RPS中的相对值来定位参考画面。在一些情况下,直接从画面226中的片头 获得RPS。在其它情况下,RPS位于从对应画面226的片头信令通知的PPS中。这里,当前 POC 231 获得 RPS 索引值[-2, 2,4]。SP,当前 POC 231 采用 deltaPOC 233a、deltaP0C 233b 和deltaP0C233c以对画面226进行解码。
[0116] 在当前POC为POC 2的该示例中,GOP 228的对称递阶性质可有益于减少RPS信令 开销。具有负deltaPOC 233a(例如,-2)的当前P0C231将可能具有对应的对称正deltaPOC 233b (例如,2)。利用该对称性,可采用减少RPS信号开销的方法。各种此类方法下面结合 图5和图6更详细地描述。
[0117] 在另一示例中,假设currentPOC为POC 4,则一个RPS索引值可为deltaPOC-4。 另外,POC 4还可在其RPS中具有索引值deltaPOC = 4,其涉及参考画面POC 8。另 外,currentPOC = POC 4的RPS参考画面可为POC 2和POC 6。因此,RPS索引值可为 [-4, -2, 2, 4]。
[0118] 在另一示例中,假设currentPOC为POC 2,则RPS可包括与P0C0和POC 4对应的 画面。另外,索引值deltaPOC = 6可被存储在其RPS中。这是因为deltaPOC = 6的RPS 索引值涉及由于可能用作未来画面的参考画面而可能需要被保持在解码器中的参考画面。 换言之,具有指示一个或多个画面的正deltaPOC值的RPS索引值可能需要被保持在解码器 中以用作可能需要被解码的未来画面的参考画面。
[0119] 图3是示出电子装置302上的编码器304的一个配置的框图。应当注意的是,被示 出为包括在电子装置302内的元件中的一个或多个可被实现于硬件、软件或其组合中。例 如,电子装置302包括编码器304,其可被实现于硬件、软件或其组合中。例如,编码器304 可被实现为电路、集成电路、专用集成电路(ASIC)、与具有可执行指令的存储器电子通信的 处理器、固件、现场可编程门阵列(FPGA)等或者其组合。在一些配置中,编码器304可以是 HEVC编码器。
[0120] 电子装置302可包括供应器334。供应器334可将画面或图像数据(例如,视频) 作为源306发送到编码器304。供应器334的示例包括图像传感器、存储器、通信接口、网络 接口、无线接收器、端口等。
[0121] 源306可被提供到帧内预测模块和重构缓冲器340。源306还可被提供到运动估 计和运动补偿模块366以及减法模块346。
[0122] 帧内预测模块和重构缓冲器340可基于源306和重构的数据380生成帧内模式信 息358和帧内信号342。运动估计和运动补偿模块366可基于源306和参考画面缓冲器396 信号398生成帧间模式信息368和帧间信号344。
[0123] 参考画面缓冲器396信号398可包括来自存储在参考画面缓冲器396中的一个或 多个参考画面的数据。参考画面缓冲器396还可包括RPS索引初始化器模块308。初始化 器模块308可处理与RPS的缓冲器和列表构造对应的参考画面226。在一些配置中,参考画 面缓冲器396信号398可包括指示与当前画面对应的一个或多个先前参考画面集(RPS)的 数据。
[0124] 编码器304可依据模式在帧内信号342和帧间信号344之间进行选择。帧内信号 342可用于在帧内编码模式下利用画面内的空间特性。帧间信号344可用于在帧间编码模 式下利用画面之间的时间特性。在帧内编码模式下时,帧内信号342可被提供到减法模块 346,帧内模式信息358可被提供到熵编码模块360。在帧间编码模式下时,帧间信号344可 被提供到减法模块346,帧间模式信息368可被提供到熵编码模块360。
[0125] 在减法模块346处从源306减去帧内信号342或帧间信号344 (取决于模式),以 便生成预测残差348。预测残差348被提供到变换模块350。变换模块350可压缩预测残 差348以生成变换的信号352,所述信号被提供到量化模块354。量化模块354将变换的信 号352量化以生成变换和量化的系数(TQC) 356。
[0126] TQC 356被提供到熵编码模块360和逆量化模块370。逆量化模块370对TQC 356 执行逆量化以生成逆量化的信号372,所述信号被提供到逆变换模块374。逆变换模块374 将逆量化的信号372解压缩以生成解压缩的信号376,所述解压缩的信号376被提供到重构 模块378。
[0127] 重构模块378可基于解压缩的信号376生成重构的数据380。例如,重构模块378 可重构(修改)画面。重构的数据380可被提供到去块滤波器382以及帧内预测模块和重 构缓冲器340。去块滤波器382可基于重构的数据380生成滤波的信号384。
[0128] 滤波的信号384可被提供到样本自适应偏移(SAO)模块386。SAO模块386可生 成被提供到熵编码模块360的SAO信息388以及被提供到自适应环路滤波器(ALF) 392的 SAO信号390。ALF 392生成被提供到参考画面缓冲器396的ALF信号394。ALF信号394 可包括来自可用作参考画面的一个或多个画面的数据。
[0129] 熵编码模块360可对TQC 356进行编码以生成比特流314。另外,熵编码模块360 可利用上下文自适应可变长度编码(CAVLC)或上下文自适应二进制算术编码(CABAC)对 TQC 356进行编码。具体地讲,熵编码模块360可基于帧内模式信息358、帧间模式信息368 和SAO信息388中的一个或多个对TQC 356进行编码。比特流314可包括编码的画面数据。
[0130] 诸如HEVC的视频压缩中所涉及的量化是通过将值的范围压缩至单个量子值而实 现的有损压缩技术。量化参数(QP)是用于基于重构的视频的质量和压缩比二者执行量化 的预定义的缩放参数。在HEVC中定义块类型以基于块大小及其颜色信息来表示给定块的 特性。可在熵编码之前确定QP、分辨率信息和块类型。例如,电子装置302 (例如,编码器 304)可确定QP、分辨率信息和块类型,其可被提供到熵编码模块360。
[0131] 熵编码模块360可基于TQC 356的块确定块大小。例如,块大小可以是沿着TQC 的块的一个维度的TQC 356的数量。换言之,TQC的块中的TQC 356的数量可等于块大小 的平方。例如,块大小可被确定为TQC的块中的TQC 356的数量的平方根。分辨率可被定 义为像素宽度X像素高度。分辨率信息可包括对于画面的宽度、对于画面的高度或者这二 者的像素的数量。块大小可被定义为沿着TQC的2D块的一个维度的TQC 356的数量。
[0132] 在一些配置中,比特流314可被发送到另一电子装置。例如,比特流314可被提供 到通信接口、网络接口、无线发送器、端口等。例如,比特流314可经由LAN、互联网、蜂窝电 话基站等发送到另一电子装置。另外地或类型地,比特流314可被存储在电子装置302上 的存储器中。
[0133] 图4是示出在电子装置302上减少RPS信号开销的方法400的一个配置的流程图。 电子装置302可获得402画面226。例如,画面226可从供应器334接收。在一些情况下, 画面226可从远程源获得。
[0134] 画面226可被编码404。这可在例如编码器304上执彳丁。编码器304可以是HEVC 型编码器304。
[0135] 可指示406基于初始化的索引值与画面226对应的RPS。例如,该指示可在画面 226的片头中和/或画面226的PPS中进行。初始化的值可帮助电子装置302处理RPS。在 一些情况下,初始化的值可帮助减少RPS信号开销。在一些情况下,使用初始化的值可导致 在比特流314中发送的较小的RPS索引值,从而减少开销。例如,较小的RPS索引值可用较 少的比特来表示,以减少开销。在其它情况下,使用初始化的索引值可导致在比特流314中 发送少一个RPS索引值,这也减少了 RPS信令开销。
[0136] 电子装置302可发送408比特流。比特流314可被发送408到同一电子装置302 和/或远程装置。比特流314可包括编码的画面和RPS。
[0137] 图5是示出在电子装置302上减少RPS信号开销的方法500的更具体的配置的流 程图。在一个配置中,电子装置302可获得502画面226并且如前所述对画面226进行编 码 504。
[0138] 电子装置302可基于相对负RPS参数将索引值初始化506。例如,电子装置302可 处理参考画面以获得负和正RPS索引值二者。正和负参考画面可被单独地处理。这些处理 示出于下面的列表(3)中。
[0139] 列表(3)示出用于对正RPS索引值进行编码的一个已知方法的语法。具体地讲, 列表(3)被设计用于在HM 5.0下处理随机访问递阶B。
[0140]
[0141] 列表(3)
[0142] "RPS_deltaP0C" 是指 RPS 索引值。RPS_deltaP0C[0]至 RPS_deltaPOC[num_ negative_pics_l]存储负 RPS 索引值。RPS_deltaPOC[num_negative_pics]至 RPS_ deltaPOC[num_negative_pics+num_positive_pics_l]存储正 RPS 索引值。
[0143] 列表(3)示出用于处理正RPS索引值的一个方法的伪码。例如,具有参考索引 [-2, _4,2]的RPS首先对负RPS画面索引进行编码。然后,正画面索引被差分编码。这得 到四个RPS索引值。在处理正和负参考RPS索引值二者时,先前索引值或"prev"被设定为 0。这在处理正RPS索引值时总是如此。prev独立于负画面的数量或者任何负RPS参数来 初始化。在此示例中,当RPS索引值为[-2, -4, 2]时,需要9比特来发送RPS索引值。
[0144] 与列表(3)相比,本文所公开的系统和方法描述了可基于相对负RPS参数将索引 值初始化506。因此,不是每次处理正RPS索引值时将prev初始化为0,而是基于负RPS参 数将prev初始化。列表(4)示出伪码的示例,其示出这种不同。依据本文所公开的系统和 方法对语法的修改以粗体表示。
[0145]
[0146] 列表(4)
[0147] 如列表(4)所示,prev可被初始化为负RPS_deltaPoc的最小绝对值减1。应当注 意的是,术语RPS_deltaP0C和RPS索引值可互换使用。负RPS_deltaPoc的最小绝对值是 存储在当前画面的RPS索引中的最小负参考画面的绝对值。例如,如果当前画面包含相对 参考RPS索引值[-4, -6, 4],则-4和-6是负RPS_deltaP〇c索引值。当取各个的绝对值时, 分别获得4和6。取最小值导致获得4。
[0148] 在已知方法中,RPS_deltaP0C值在负RPS_deltaP0C索引值内和正RPS_deltaP0C 索引值内按照绝对值的降序排列,以确保编码的差值不为负。这由于避免了负数而允许在 编码时比特较少。通常,与是相同负数的绝对值的正比特相比,负数花费更多比特来进行编 码。在该方法下,负RPS_deltaPoc的最小绝对值可位于RPS_deltaPoc (0)。
[0149] 应用该示例,prev =(负 RPS_deltaPoc 的最小绝对值)-1,prev = (4)-1 = 3。 在负RPS_deltaPoc的最小绝对值为5的另一示例中,prev将等于4。因此,prev索引值可 取决于负RPS参数值,例如负RPS_deltaPoc的最小绝对值。
[0150] 利用初始化的值,电子装置302可基于索引值处理508正数的画面。在一个示例 中,假定当前画面具有RPS参考索引值[-2, -4, 2]。当正参考画面被处理并且prev被初始化 为负RPS_deltaPoc的最小绝对值时,prev等于1 (例如,(I-2 I )-1 = 1)。为了处理第一正 值(例如,2),采用 RPS_deltaPoc(k)-prev_l。RPS_deltaPoc(k)等于待处理的第一正 RPS 索引值的值。在此示例中,RPS_deltaPoc(k)等于2。如上所示,prev等于1。因此,RPS_ deltaPoc(k)-prev-1 = 2-1-1 = 0〇
[0151] 此处理得到编码[-2,-4, 0],而非[-2,-4, 2]。因此,需要8比特,而非9比特,开 销减少。由于编码结构的对称性质,基于相对负RPS参数将索引值初始化通常将得到等于 零的第一正索引参考值。因此,随着第一正索引参考值增加,节省的比特数也增加。
[0152] 在一些情况下,电子装置302可仅基于相对负RPS参数处理RPS索引值的集合中 的第一正RPS索引值。各个后续正索引值可如列表(3)中所示处理。在这种情况下,比特 流114中发送的各个画面的各个RPS的第一正索引值减少了开销。
[0153] 电子装置302可发送510比特流114。通过应用本文所述的系统和方法,比特流 114中的RPS开销可减少。
[0154] 图6是示出在电子装置302上减少RPS信号开销的方法600的另一更具体的配置 的流程图。电子装置302可获得602画面226并且如前所述对画面226进行编码604。
[0155] 可选地,电子装置可指示606将在比特流中发送的对称标志,例如symmetric_ flag,以指示第一正RPS索引值是否可利用负RPS索引值来初始化。例如,所述对称标志可 指示索引值应当被初始化为负RPS_deltaP 〇c的最小绝对值。替代地,对称标志可指示不将 索引值初始化为负RPS_deltaP〇c的最小绝对值。在这种情况下,索引值可被初始化为零。
[0156] 电子装置302可基于索引值处理608正数的画面。在一些情况下,当索引值被初 始化时跳过所述处理。换言之,当索引值被初始化时,处理正RPS索引值的第一迭代跳过将 第一正RPS索引值写到RPS。在仅存在一个正数的情况下,则不进行正数的处理。电子装置 302还可发送610比特流314。
[0157] 列表(5)示出可应用本方法的伪码语法的一个示例。依据本文所公开的系统和方 法对语法的修改以粗体表示。
[0158]
[0159]列表(5)
[0160] 当在正RPS索引值的处理中j>0时,条件j == 0被跳过。换言之,第一正参考画 面被跳过。
[0161] 现在返回到条件j>0。在这种情况下,在处理正RPS索引值时的for循环中,j被 初始化为0。在初始化时,正RPS索引值的处理跳过第一正RPS索引值。例如,在RPS索引 值[-8, _4, 4, 6]的情况下,在处理正RPS索引值时,4将被跳过,仅6将被添加到当前画面的 RPS索引。
[0162] 在另一示例中,对于索引值[_2,-4, 2, 6],如果symmtetic_flag为真,则对于正
当前第2页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1