屏幕内容的词典编码和解码的制作方法_4

文档序号:9476575阅读:来源:国知局
图片)中的先前解码的像素值(例如,先前重构的 像素值)中预测的。例如,解码器可接收指示(例如,在词典内的)偏移和(指示来自该偏 移的要被预测的像素值的数目的)长度的一个或多个代码。在直接模式中,解码器可直接 解码像素值,而无需预测。
[0106] 在非词典模式中,帧内/帧间切换选择经运动补偿的预测或图片内预测的值以供 用作给定块的预测(658)。例如,当遵循HEVC句法时,可以基于为图片中的CU编码的句法 元素来控制帧内/帧间切换,该CU可以包括帧内预测的CU和帧间预测的CU。解码器(600) 将预测(658)与重构的残留值组合以产生来自视频信号的内容的重构(638)。
[0107] 为了重构残留值,对于非词典模式,缩放器/逆变换器(635)接收并处理经量化的 变换系数数据(632)。在缩放器/逆变换器(635)中,缩放器/逆量化器对经量化的变换系 数执行逆缩放和逆量化。逆频率变换器执行逆频率变换,从而产生经重构的预测残留值或 样本值的块。例如,逆频率变换器将逆块变换应用到频率变换系数,从而产生样本值数据或 预测残留数据。逆频率变换可以是逆DCT、其整数近似或另一种类型的逆频率变换。
[0108] 对于图片内预测,重构(638)的值可以被馈送回图片内预测器(645)。对于图片间 预测,重构(638)的值可以被进一步滤波。在合并器八诸)滤波器(665)中,解码器(600) 将来自不同小块的内容合并到图片的经重构版本中。解码器(600)根据滤波器控制数据 (662)和滤波自适应规则来执行去块滤波和SA0滤波,以便自适应地平滑各帧中的各边界 上的间断。小块边界可以被选择性地滤波或根本不滤波,这取决于解码器(600)的设置或 经编码的比特流数据内的句法指示。经解码图片缓冲器(670)缓冲经重构的当前图片以供 在后续的运动补偿的预测中使用。
[0109] 解码器(600)还可包括后处理去块滤波器。后处理去块滤波器可选地平滑经重构 图片中的间断。其他滤波(诸如去振铃滤波)还可作为后处理滤波的一部分被应用。
[0110] 取决于所希望的解压缩的实现和类型,解码器的模块可以被添加、省略、拆分成多 个模块、与其他模块组合和/或用类似的模块来替代。在替换实施例中,具有不同模块和/ 或其它配置的模块的解码器执行一个或多个所描述的技术。解码器的具体实施例通常使用 解码器(600)的变型或补充版本。所示的解码器(600)内的模块之间的关系指示信息在解 码器中的一般流动;为简明起见,未示出其它关系。
[0111] VII. 1-D词典模式的创新
[0112] 该章节呈现了一维(1-D)词典模式的各创新。一些创新涉及使用偏移和长度来信 号化像素值,而其他创新涉及直接信号化像素值。又一些创新涉及垂直扫描和水平扫描。
[0113] 具体地,在编码像素值时使用1-D词典模式可改善性能并减少编码视频内容,尤 其是编码屏幕内容(例如,在执行屏幕捕捉时)时所需的比特。屏幕内容通常包括重复的 结构(例如图形、文本字符),其向各区域提供与可用预测来编码的相同的像素值,以改善 性能。
[0114] A.1-D词典模式一介绍
[0115] 在1-D词典模式中,样本值(例如像素值)是通过(使用偏移和长度)参考存储 在1-D词典中的先前样本值(例如,先前重构的样本值)来预测的。例如,视频编码或图像 编码器可参考1-D词典来编码当前样本值,该1-D词典存储用于预测和编码当前样本值的 先前样本值(例如,经重构的样本值或原始样本值)。视频解码器或图像解码器可参考1-D 词典来解码当前样本值,该1-D词典存储用于预测和解码当前样本值的先前解码的(例如, 经重构的)样本值。
[0116] 在1-D词典模式中,一个或多个当前像素值可从一个或多个先前像素值(例如,以 扫描次序)预测。预测可通过以下方式来执行:将当前像素值与先前像素值匹配,使得当前 像素值可被精确地预测(例如,无需任何残留值)。术语"匹配模式"描述使用词典中(或 来自另一源,诸如经重构的图片)的匹配像素值的编码和/或解码。在不存在匹配像素值 的情况下(例如,在帧的开始处或在没有在先前像素值的词典中发现匹配的地方),可直接 编码一个或多个当前像素值。术语"直接模式"描述直接地编码和/或解码像素值。
[0117] 在一些实现中,各像素值作为组合像素来编码和解码(像素的Y、U和V值的组合 或像素的R、G、B值的组合被一起编码/或解码)。在其他实现中,各像素值作为分开的分 量来编码和解码(例如,可为Y、U和V分量或R、G和B分量中的每一者维护分开的1-D词 典)。各像素值可用各种YUB数据格式(例如,YUV 4:4:4、YUV 4:2:2、YUV 4:2:0等)或 用各种RGB数据格式(例如,RGB、GBR、BGR等)来编码和解码。
[0118] 各像素值使用1-D词典模式的编码和/或解码可被应用于被划分成不同区域(诸 如块)的视频或图像内容。一般来说,可使用任何尺寸的块。在一些实现中,视频内容(例 如,视频图片或帧)被划分成具有64x64、32x32、16x16或8x8个像素值的尺寸的编码单元。
[0119] 在一些实现中,词典编码可与其他类型的编码组合。例如,各像素值可使用本文中 描述的词典模式之一(例如,1-D词典模式)来编码。经编码的像素值可随后使用另一编码 技术(例如,基于上下文的算法编码或另一编码技术)来编码。
[0120] B.信号化偏移和长度
[0121] 在1-D词典模式中,当存在匹配像素值时,偏移和长度值被信号化成指示1-D词 典中匹配像素值所在的用于预测当前像素值的位置。例如,一个或多个当前像素值可从存 储在1-D词典模式中的一个或多个先前像素值中预测,该一个或多个先前像素值通过偏移 (在1-D词典中从当前像素值倒退的位置)和长度(来自偏移的被预测的像素值的数目) 标识在1-D词典内。如应当理解的,为5的偏移意指在1-D词典中从当前像素值倒退5个 像素(例如,在一些实现中,负符号被添加到偏移,其在本示例中将是为-5的偏移)。
[0122] 在1-D词典模式中,在一些实现中,当前块中的像素值可(例如取决于词典的最大 尺寸)可从先前块中的像素值预测。例如,在使用64x64块编码的图片中,来自图片中的第 四个块的像素值可(例如,使用偏移和长度)从来自该图片中的第一个块的像素值(被存 储在1-D词典中)预测。
[0123] 偏移可用将可能的偏移值划分成多个范围并依据范围来编码各偏移值的格式来 编码和信号化(例如在比特流中)。通过这种方式,偏移可被编码成有两个部分的代码,其 中第一部分标识偏移范围,且第二部分指示该范围内的偏移值。
[0124] 在特定实现中,偏移值是使用以下范围来编码的。
[0125] 此外,在该实现中,应用基于零的标号,使得在编码偏移值之前将偏移值减少1,并 在解码偏移值之后将偏移值增加1。下表(表1)指示了与偏移值相对应的范围(具有其偏 移范围代码)以及比特数。
[0128] 表1-示例偏移值范围
[0129] 通过使用在以上表1中描绘的实现,偏移可被编码、信号化和解码。作为示例,为 415的偏移值(表示为416的原始偏移值,其被减少了 1以供编码)将在范围4中被编码。由 于范围4始于为276的偏移值,要被编码的值将是415-276 = 139。经编码的偏移将通过将 为"0001"的偏移范围代码(表示范围4)组合成后面是为"0000000010001011"的16比特值 (十进制数139的16比特二进制值)来生成。将该代码的两个部分(偏移范围代码和偏移 值代码)放在一起得到以下针对经编码的偏移的经组合代码:〃00010000000010001011〃。 作为另一示例,为45的偏移值(表示为46的原始偏移值,其被减少了 1以供编码)将在范 围3中被编码。由于范围3始于为20的偏移值,要被编码的值将是45-20 = 25。经编码的 偏移将通过将为"001"的偏移范围代码(表示范围3)组合成后面是为"00011001"的8比 特值(十进制数25的8比特二进制值)来生成。将该代码的两个部分(偏移范围代码和 偏移值代码)放在一起得到以下针对经编码的偏移的经组合代码:"00100011001"。
[0130] 如以上在表1中描绘的,范围5表示使用N个比特的大于65, 811的偏移值,其中 N表示表示最大偏移值所需的比特数。在一些实现中,最大偏移值是从当前词典尺寸中确 定的。例如,如果当前词典尺寸为300, 000,则N可被设为18 (即,需要18个比特来表示为 300, 000的最大偏移值),并因此65,811和300, 000之间的偏移值将使用18个比特来编码 该偏移值。应当理解,范围5的偏移值始于65, 812,因此为了表示300, 000,仅需要18个比 特来表示超过65, 811的量(即,仅需要18个比特来表示300, 000-65, 812 = 234, 188)。在 其他实现中,最大偏移值是预定的,并且不取决于当前词典尺寸。例如,如果预定的最大偏 移值为800, 000,则N可被设为20。
[0131] 在其他实现中,偏移值可使用不同数目的范围和/或覆盖不同偏移值群组的范围 来编码。
[0132] 在特定实现中,类似于偏移值,长度值是依据范围来编码的。此外,在该实现中,基 于零的标号被应用,使得在编码长度值之前将长度值减少1,并在解码长度值之后将长度值 增加1。下表(表2)指示了与长度值相对应的范围(具有其长度范围代码)以及比特数。
[0134] 表2-示例长度值范围
[0135] 通过使用在以上表2中描绘的实现,长度可被编码、信号化和解码。作为示例,为2 的长度值(表示为3的原始长度值,其被减少了 1以供编码)将在范围1中被编码。经编 码的长度将通过将为"1"的长度范围代码(表示范围1)组合成后面是为"10"的2比特值 (十进制数2的2比特二进制值)来生成。将该代码的两个部分(长度范围代码和长度值 代码)放在一起得到以下针对经编码的长度的经组合代码:〃1〇1〃。作为另一示例,为56的 长度值(表示为57的原始长度值,其被减少了 1以供编码)将在范围3中被编码。由于范 围3始于为20的偏移值,要被编码的值将是56-20 = 36。经编码的长度将通过将为"001" 的长度范围代码(表示范围3)组合成后面是为"00100100"的8比特值(十进制数36的 8比特二进制值)来生成。将该代码的两个部分(长度范围代码和长度值代码)放在一起 得到以下针对经编码的长度的经组合代码:〃〇〇 100100100〃。
[0136] 如以上在表2中描绘的,范围4表示使用N个比特的大于275的长度值,其中N表 示表示最大长度值所需的比特数。在一些实现中,最大长度值是留在当前块中的正被编码 或解码的像素数。例如,正被编码或解码的若干当前像素值是当前的64x64块(具有4, 096 个像素值的块)中的第3, 000个像素值,则最大长度值为1,096 (4, 096 - 3, 000),其可用10 个比特(N = 10)来表示。应当理解,范围4的偏移值始于276,因此为了表示1,096,仅需 要10个比特来表示超过275的量(即,仅需要10个比特来表示1,096-276 = 820)。在其 他实现中,最大长度值是预定的,并且不取决于当前词典尺寸。例如,如果预定的最大长度 值为4, 096,则N可被设为12。
[0137] 在其他实现中,长度值可使用不同数目的范围和/或覆盖不同长度值群组的范围 来编码。
[0138] 在一些实现中,最大偏移和/或最大长度是已知的。当最大偏移和/或最大长度 已知时,编码效率可被改善。例如,在编码匹配偏移的值时,最大偏移可被设为当前词典尺 度(例如,如果当前词典尺寸为10个像素,则偏移不可大于10)。在编码匹配长度的值时, 最大长度可被设为留在当前块(例如,当前编码单元(CU))中的像素数。例如,如果正被编 码或解码的当前像素值是8x8块中的第15个像素,则最大长度可被设为49。当(针对偏移 和/或长度的)最大值已知时,该最大值可被更高效地信号化。例如,编码该最大值所需的 比特数可通过计算上限(l〇g2(最大值))来确定,该比特数可用于定义以上表1和表2中 的"N"个比特。
[0139] 在一些实现中,最大偏移和长度为1,当被转换成基于零的标号时,其可被编码成 0〇
[0140] 1-D词典模式可被应用来编码和/或解码块内的像素值。例如,1-D词典模式(以 及本文中描述的其他词典模式)可被用于来编码和/或解码视频帧的块(例如,各种尺寸 的块,诸如4x4块、8x8块、16x16块、32x32块和64x64块)内的像素值。
[0141] 在一些实现中,偏移和长度可重叠在正被编码/解码的当前像素值上。作为示例, 考虑像素值[P-2, P-l,P0, Pl,P2, P3],其中P-2和P-1是该1-D词典中的最后两个像素值, P0是正被编码/解码的当前像素值,并且P1到P3是将被编码/解码的接下来的像素值。 在该情况下,为1的偏移和为3的长度(未经编码的偏移和长度值)是有效条件,其中P0 是从P-1预测的,P1是从P0预测的,并且P2是从P1预测的。如应当理解的,为1的偏移 (未经编码的值,在被编码时将为0)意指在1-D词典中从当前像素值倒退一个位置(例如, 在一些实现中,负符号被添加到偏移,其在本示例中将是为-1的偏移)。
[0142] C.水平和垂直扫描
[0143] 1-D词典模式支持水平和垂直扫描,其可被用来在1-D词典和视频或图像内容的 二维表示(例如,二维视频或图像内容的块)之间转换。例如,视频内容的块内的像素值在 编码和解码时可被水平地扫描。对于水平扫描,各像素值按水平扫描次序(例如,在像素行 中从左到右地)被添加到1-D词典。视频内容的块内的像素值还可在编码和解码时被垂直 地扫描。对于垂直扫描,各像素值按垂直扫描次序(例如,在像素列中从上到下地)被添加 至|J 1-D词典。
[0144] 在一些实现中,水平和垂直扫描两者都被支持。为了支持水平和垂直扫描两者,可 维护两个1-D词典,即按水平扫描次序存储像素值的一个1-D词典(水平扫描1-D词典) 以及按垂直扫描次序存储像素值的另一个1-D词典(垂直扫描1-D词典)。在像素值需要 被添加时,它可被添加到水平扫描1-D词典和垂直扫描1-D词典两者中。像素值的排序在 两个词典中将是不同的,因为该次序取决于哪个扫描次序被使用。
[0145] 在一些实现中,添加到1-D词典在不同时间被执行。例如,在按水平扫描模式编码 或解码块时,像素值可在其被编码或解码时被添加到水平扫描1-D词典。在当前块已经被 编码或解码时,像素值可随后被添加到垂直扫描1-D词典。
[0146] 在支持水平和垂直扫描两者的实现中,扫描次序可(例如,在逐块的基础上或在 某一其他基础上)被改变。例如,如果图片的一个块使用水平扫描,则该块的像素值将(按 水平扫描次序)被添加到水平扫描1-D词典,并且该块的像素值还将(按垂直扫描次序)被 添加到垂直扫描1-D词典。如果图片的另一个块使用垂直扫描,则该块的像素值将(按垂 直扫描次序)被添加到垂直扫描1-D词典,并且该块的像素值还将(按水平扫描次序)被 添加到水平扫描1-D词典。
[0147] D.降低
当前第4页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1