算术译码的方法及设备的制造方法

文档序号:10539287阅读:283来源:国知局
算术译码的方法及设备的制造方法
【专利摘要】一种在一视频译码器中具高吞吐量的熵译码的设备和方法被揭露。上述设备包括一算术译码处理电路及一可变长度译码器。上述算术译码处理电路通过一位元串流接收一视频位元串流,应用算术译码至上述视频位元串流至少一部分以推导一或多个算术译码二进制字符串,其中上述算术译码二进制字符串不包含算术编码二进制字符串,接着储存上述算术译码二进制字符串至一储存装置。上述可变长度译码器耦接至上述算术译码处理电路、上述储存装置及一可变长度译码器输出。当储存在上述储存装置中的算术译码位元串流对一选择影像单元为完整时,上述可变长度译码器接收算术译码位元串流至少一部分,译码上述算术译码位元串流至少一部分为一或多个译码语法元素,并通过上述可变长度译码器输出提供上述一或多个译码语法元素。
【专利说明】
算术译码的方法及设备
技术领域
[0001] 发明是关于用于压缩数据的熵译码器。特别地,本发明是有关于由算术编码所产 生熵编码位元串流的高吞吐量算术译码设计。
【背景技术】
[0002] 视频数据需要大量的储存空间来储存或一宽的频宽来传输。随着日益增长的高分 辨率和高帧率,如果视频数据以未压缩的形式被储存或传输,将会需要巨大的储存或传输 频宽的需求。因此,视频数据通常由使用一视频编码技术以一压缩格式被储存或被传输。编 码效率已通过使用较新的视频编码标准,像是H.264/AVC及新兴的HEVC(High Efficiency Video Coding)(高效视频编码)标准而大幅改善。为了维持可管理的复杂性,一影像常被分 为多个区块,例如宏块(Macroblock,MB)或最大编码单元(Largest Coding Unit,IXU)/编 码单元(Coding Unit,⑶)以应用视频编码。视频编码标准通常在一区炔基础上采用自适应 的帧间/帧内预测。
[0003] 图1为显示一支援HEVC视频标准的视频译码器100的一示例性的系统方块图。HEVC (High Efficiency Video Coding)(高效视频编码)由视频编码的联合协作小组(Joint Collaborative Team on Video Coding,JCT_VC)所研发的一种新的国际视频编码标准。 HEVC系基于混合区炔基础的运动补偿DCT-型(DCT-like)变换的编码架构。压缩的基本单 位,称为编码单元(coding unit,CU),是一2NX2N的平方区块。一编码单元可开始于一最大 编码单元(large st QJ,IXU),其在HEVC中也被称为编码树单元(coded tree unit,CTU), 且每一编码单元可递回地分割成四个更小的编码单元,直到达到一个预定义的最小尺寸为 止。一旦编码单元分层树的分割完成后,每一编码单元进一步根据预测类型及预测单元分 割被分成的一或多个预测单元(prediction unit,PU)。每一编码单元或每一编码单元的残 值被分为一转换单元(Transform units,TUs)树,以应用二维(two-dimensional,2D)转换。
[0004] 在图1中,首先通过使用可变长度译码器(variable length decoder,VLD)110处 理输入视频位元串流以执行可变长度译码及语法分析。经分析的语法可对应外部/内部残 值信号(来自可变长度译码器110中较上方的输出路径)或运动信息(来自可变长度译码器 110中较下方的输出路径)。在熵编码位元串流间,一些二进制(bin)可由算术编码来编码。 算术编码元素将需要一算术译码器以恢复编码数据。如图1所示,算术译码引擎132被用作 熵译码引擎110的一部分。此外,算术译码操作通常较其它类型的熵译码,如可变长度编码, 更为复杂。因此,相对于其他译码过程,算术译码可能相对缓慢,因而成为整体译码器吞吐 量的瓶颈。残余信号通常被转换编码。因此,编码残值信号是通过逆扫描(inverse scan, IS)/逆量化(inverse quantization,IQ)方块112,以及逆转换(inverse transform,IT)方 块114所处理。逆转换(inverse transform,IT)方块114的输出对应重建残值信号。重建残 值信号连同与通过帧间/帧内选择方块122来自帧内预测方块118中用于一帧内编码区块的 帧内预测或来自运动补偿方块120中用于一帧间编码区块的帧间预测被加到重建方块116 中。帧间/帧内选择方块122选择用于重建视频信号的帧内预测或帧间预测取决于上述区是 否为帧间或帧内编码。对于运动补偿,上述处理将存取储存在已编码图像缓冲器124中的一 或多个参考区块及由运动矢量(motion vector,MV)产生方块126所决定的运动矢量。为了 改善视觉质量,去块滤波器128及取样自适应偏移(Sample Adaptive 0ffset,SA0)滤波器 (130)被用以在已重建视频被储存在译码图像缓冲器124之前处理已重建视频。在Η. 264/ AVC的标准中,只有使用去块滤波器(deblocking filter,DF),而无需取样自适应偏移滤波 器。
[0005] 图2为显示一具有内建音频/视频译码器的一典型的电子系统,如一电视。如图2所 示,该系统使用一CPU总线及动态随机存取存储器(dynamic random access memory,DRAM) 总线。外部存储器储存器(210)用于储存用于视频译码的参考图像、用于显示的译码图像以 及其它数据的译码图像。外部存储器储存器通常使用动态随机存取存储器(dynamic random access memory,DRAM)。外部存储器存取引擎(220)被用以连接外部存储器储存器 至数据总线。该系统可包括一 CPU(230)、一视频译码器(240)、一音频引擎(250)和一显示引 擎(260)。视频译码器240将执行压缩视频数据的视频译码任务。音频引擎250将已压缩音频 数据的进行音频译码。音频引擎250还可以支援其他音频任务,像是产生用于使用者界面的 音频提示。显示引擎260负责处理视频显示及产生显示信息。举例来说,该显示引擎260可以 产生用于使用者界面的图形或文字信息。该显示引擎也负责合并用于主视窗及副视窗口显 示、或分割荧幕显示的两个已译码视频数据。该CPU230可被用以初始化系统、控制其他子系 统、或提供用于该电子系统的使用者界面。
[0006] 算术编码系为高效率熵编码工具且已被广泛用于先进视频编码系统中,上述操作 为高数据相关。图3显示基于上下文自适应性二进制算术编码(context-based adaptive binary arithmetic coding,CABAC)过程的一示例性方块图。由于CABAC引擎中算术编码器 可以仅编码二进制符元值,CABAC过程需转换语法元素值为使用二值化器(binarizer) (310)的一二进制字符串。此转换过程通常称为二值化。在编码过程中,机率模型逐渐从不 同上下文中的编码符号中建立起来。上下文建模器(320)用于建立模型目的且模型使用译 码输出数据进行更新。因此,来自常规编码引擎(330)的上下文建模器(320)输出的一路径 335被提供。在正常基于上下文编码间,常规编码引擎(330)被使用,其对应一二进制算术编 码器。用于编码下一二进制符元的建模上下文的选择可以由编码信息来决定。符元也可无 须上下文建模阶段而编码并假定相等的机率分布,其通常被称为旁路(bypass)模式,用以 降低复杂性。对于旁路符元,一旁路编码引擎(340)可以被使用。如图3所示,开关(S1、S2及 S3)被用以指引在常规CABA模式与旁路模式之间的数据流。当常规CABAC模式被选择时,开 关被转至与上方接触。当旁路模式被选择时,开关被转至与下方接触。
[0007] 对于算术编码,上下文形成和上下文更新为高数据相关。上下文模型可涉及多个 相邻重建样本。此外,上下文更新必须等待直到所涉及样本为可用时。算术译码器可成为在 译码过程中吞吐量的瓶颈。因此,开发高吞吐量算术译码器是值得期待的。

【发明内容】

[0008] 一种在一视频译码器中具高吞吐量熵译码的方法及设备被揭露。上述设备包括一 算术译码处理电路及一可变长度译码器(variable-length decoder,VLD)。上述算术译码 处理电路耦接至一位元串流输入及一储存装置。上述算术译码处理电路通过上述位元串流 接收一视频位元串流,应用算术译码至上述视频位元串流至少一部分以推导出一或多个算 术译码二进制字符串,并储存上述算术译码二进制字符串至上述储存装置。上述可变长度 译码器(variable-length decoder,VLD)親接至上述算术译码处理电路、上述储存装置及 一可变长度译码器输出。当储存在上述储存装置中的算术译码位元串流对一选择影像单元 为完整时,上述可变长度译码器接收算术译码位元串流至少一部分,译码上述算术译码位 元串流至少一部分为一或多个译码语法元素 (syntax elements),并通过上述可变长度译 码器输出提供上述一或多个译码语法元素。
[0009] 上述算术译码处理电路包括一上下文二进制译码器及一上下文模型更新处理电 路,其中上述上下文二进制译码器被安排用以执行基于上下文译码以基于一上下文模型产 生一或多个译码位元(bin),以及上述上下文模型更新处理电路根据上述上下文译码位元 更新上述上下文模型。上述算术译码处理电路系耦接至一上下文储存装置及相邻数据储存 装置以取得上述基于上下文译码所需的上下文信息。上述可变长度译码器包括用于译码一 或多个相应之可变长度译码器码的一或多个可变长度译码器引擎。上述一或多个可变长度 译码器引擎包括霍夫曼译码(Huffman decoding)引擎、一元译码(Unary decoding)引擎及 指数哥伦布译码(Exp-Golomb decoding)引擎。为了更进一步改善吞吐量,上述算术译码处 理电路可包括多个算术译码处理电路以平行操作。
[0010] 上述熵译码器更可包括一错误检查电路,能检查储存在上述储存装置中用于上述 选择影像单元的上述算术译码位元串流中的任何错误。当检测到任何错误时,上述错误检 查电路提供错误信息给一之后的视频译码器用于处理错误。
[0011] 上述算术译码处理电路及上述可变长度译码器被安排用以执行在选择影像单元 中同时执行管线化算术译码和可变长度译码。上述平行处理可应用至影像单元对应编码树 单元(coding tree unit,CTU)或宏块(macroblock,MB)〇
【附图说明】
[0012] 图1显示一支援HEVC(High Efficiency Video Coding)(高效视频编码)视频标准 的一视频译码器的一示例性的系统方块图。
[0013] 图2显示一具有内建音频/视频译码器的一典型的电子系统。
[0014]图3显示基于上下文自适应性二进制算术编码过程的一示例性方块图。
[0015]图4显示根据本发明一示例性算术译码器的架构,其中,上述算术译码器包括耦接 至一储存装置的一预看位元串流重新格式化处理电路及可变长度译码器。
[0016] 图5显示根据本发明一熵译码程序的一例子,其中上述算术编码位元串流通过预 看位元串流重新格式化处理电路所处理,其储存于储存装置中且使用可变长度译码器译码 以恢复编码语法。
[0017] 图6显示根据本发明一熵译码程序的另一例子,其中上述算术编码位元串流通过 预看位元串流重新格式化处理电路所处理,其储存于储存装置中且使用可变长度译码器译 码以恢复编码语法。
[0018] 图7显示通过应用熵译码处理至对应图像、切片、编码树单元列、宏块列、编码树单 元、宏块、编码单元或一区块的影像单元使用结合本发明一实施例熵译码器架构来进行平 行处理管线的一例子。
[0019 ]图8显示预看位元串流重新格式化处理电路详细结构的一例子。
[0020] 图9显示根据本发明一实施例的包括用于译码非算术编码二进制字符串的多个可 变长度译码器引擎的可变长度译码器处理电路的一例子。
[0021] 图10显示预看位元串流重新格式化处理电路处理的一示范性流程图。
[0022] 图11显示可变长度译码器处理电路处理的一示范性流程图。
[0023]图12显示根据本发明一实施例用于影像单元与一图像相关的算术译码之错误检 测的一例子。
[0024]图13显示根据本发明一实施例结合一预看位元串流重新格式化处理电路的一熵 译码器的一示范性流程图。
[0025]图中,
[0026] 100视频译码器
[0027] 110可变长度译码器
[0028] 112逆扫描/逆量化
[0029] 114逆转换
[0030] 116 重建 [0031] 118帧内预测
[0032] 120运动补偿
[0033] 122帧间/帧内选择
[0034] 124参考帧缓冲器
[0035] 126运动矢量产生
[0036] 128去块滤波器
[0037] 130取样自适应偏移滤波器
[0038] 132算术译码引擎
[0039] 210外部存储器储存器
[0040] 220外部存储器存取引擎 [0041 ] 230 CPU
[0042] 240视频译码器
[0043] 250音频引擎
[0044] 260显示引擎
[0045] 310 二值化器
[0046] 320上下文建模器
[0047] 330常规编码引擎
[0048] 335上下文模型更新二进制值
[0049] 340旁路编码引擎
[0050] 410预看位元串流重新格式化
[0051 ] 420可变长度译码器(非算术)
[0052] 430储存装置
[0053] 510预看位元串流重新格式化
[0054] 520可变长度译码器(非算术)
[0055] 530储存装置
[0056] 610预看位元串流重新格式化
[0057] 620可变长度译码器(非算术)
[0058] 630储存装置
[0059] 800预看位元串流重新格式化处理电路
[0060] 810上下文表格储存装置
[0061 ] 820 CPU
[0062] 831上下文本地缓冲器
[0063] 832位址产生器
[0064] 833上下文模型更新单元
[0065] 834二进制译码单元
[0066] 840非算术译码位元串流储存装置
[0067] 850起始上下文单元
[0068] 860控制暂存器
[0069] 870相邻数据存取单元
[0070] 880相邻数据储存装置
[0071] 910位元串流直接记忆存取
[0072] 920霍夫曼译码引擎
[0073] 930 -元译码引擎
[0074] 940指数哥伦布译码引擎
[0075] 1010、1020、1030、1040、1050 步骤
[0076] 1110、1120、1130 步骤
[0077] 1210预看位元串流重新格式化
[0078] 1220 错误表
[0079] 1230可变长度译码器
[0080] 1310、1320、1330、1340、1350 步骤
【具体实施方式】
[0081] 后面的描述为实施本发明最佳的设想模式。给出此描述的目的是用以说明本发明 的一般性原理,且不应被理解成做出限制。本发明的范围为参照所附的申请专利范围来作 最佳地确定。
[0082] 算术编码通常用于在预测和/或量化后产生的二进制字符串。此外,各种编码参数 和系统配置信息需要被传送。这些编码参数和系统配置信息将被二值化为二进制字符串二 进制字符串。算术编码位元串流接着根据所选择的二进制码,象是一元码(Unary code)、霍 夫曼码(Huffman code)及指数哥伦布码(Exp-Golomb code),使用二值化程序进行处理。算 术编码通常适用于与某些语法元素相关的二进制字符串,象是,运动矢量差(Motion vector difference,MVD)、编码单元(coding unit,CU)分割模式预测残值量化转换系数的 符号及绝对值。
[0083]图4显示根据本发明一示例性算术译码器的架构。算术译码器包括一预看位元串 流重新格式化处理电路410、可变长度译码器(variable-length decoder,VLD)420和储存 装置430。如图4所示,来自储存装置的一算术编码位元串流被提供给预看位元串流重新格 式化处理电路410,其为一算术译码处理电路。算术编码位元串流接着被算术译码以恢复已 算术译码的一二进制字符串。此算术译码二进制字符串也被称为非算术二进制字符串或一 中间二进制字符串。算术译码二进制字符串接着储存在储存装置430中。当足够的算术译码 二进制字符串被缓冲在储存装置430中时,非算术二进制字符串接着从储存装置430中读出 且由可变长度译码器(VLD)420译码。可变长度译码器(VLD)420将非算术二进制字符串译码 成表示预测残值、各种编码参数和系统配置信息的编码符号。译码符号将提供给一译码器 中的其他处理模块以重建影像数据。
[0084]如前所提,算术编码处理非常依赖数据,且常关系到译码吞吐量。为了克服此问 题,本发明通过储存来自储存装置中算术译码器的非算术编码位元串流解耦来自可变长度 译码器(VLD)程序的算术译码。当足够的非算术编码位元串流已被缓冲时,像是编码树单 元、宏块、编码树单元列、宏块列、切片(slice)或图像的一完整单元,上述完整单元像是编 码树单元/宏块的非算术编码位元串流由储存装置中被读出并通过可变长度译码器译码。 由于可变长度译码器(VLD)420与算术译码器相比相对简单,所以系统设计只需专注在算术 译码器的吞吐量问题。当需要时,算术译码处理电路可使用多个算术译码器平行操作以增 加处理速度。
[0085]在图4中,来自预看位元串流重新格式化处理电路410的算术译码二进制字符串储 存并使用作为在输入二进制字符串之后数据算术译码的上下文。用于上下文信息的储存装 置可共享相同的储存装置430或使用个别的储存装置。对于可变长度译码器(VLC)420,当足 够的非算术编码位元串流可使用时,从储存装置接收其输入。图4显示根据本发明一实施例 的实施算术译码器所需的主要元件。一些关键元件可在一系统中的其它电路或模块共享。 举例来说,储存装置430可为一系统的一共享资源,其中象是被用以译码的二进制字符串的 其他数据及算术译码二进制字符串可储存在储存装置430中。预看位元串流重新格式化处 理电路410和可变长度译码器(VLD)420可被实现为单独的模块或数个模块。预看位元串流 重新格式化处理电路410和可变长度译码器(VLD)420也可被嵌入在一影像译码器内。举例 来说,预看位元串流重新格式化处理电路410和可变长度译码器(VLD)420两者可被嵌入一 个影像译码器内。可替代地,可变长度译码器(VLD)420可被嵌入至一影像译码器中,而预看 位元串流重新格式化处理电路410可以是一单独的模块。此外,输入位元串流至预看位元串 流重新格式化410来自储存装置430,如图4所示,输入位元串流可以是来自独立的系统储存 装置或来自系统其他程序的一输出。
[0086] 举例来说,在HEVC标准中,语法元素 last_sig_coeff_x_prefix说明在一转换方块 内一扫描顺序最后有效系数的行位前缀。根据HEVC标准,语法元素1 as t_s i g_c〇 ef f _x_ pref ix为算术编码。一元码可用于语法元素 last_sig_coef f_x_pref ix的二进制化。语法元 素 last_sig_coeff_x_prefix的一示范性一元码示于表格1中,其中一最长码有6位元且元 素位置表示为binldx。在编码器端,在扫描顺序中最后有效系数的行位前缀值被二值化为 相应的二进制字符串。举例来说,等于3的前缀值被二值化为"1110"。二值化二进制字符串 使用算术编码更进一步被编码。根据本发明的一实施例,算术编码位元串流是由预看位元 串流重新格式化处理电路510在译码器端中所处理,如图5所示。来自预看位元串流重新格 式化处理电路510的算术译码二进制字符串"1110"将储存在储存装置530。在对于一影像单 元(例如,一编码树单元或宏块)足够的二进制字符串可使用后,所储存的二进制字符串 "1110"随后将提供给可变长度译码器520以恢复编码语法,即具有值为3的last_sig_ c〇eff_x_prefiX〇
[0087] 表格 1
[0088]
[0089]
[0090] 在另一例子中,一AVS2标准的语法元素值(即,synElVal)被转换为使用一元码的 二进制字符串,如表格2所示。举例来说,等于5的语法元素值被二值化为"00000Γ。二值化 二进制字符串使用算术编码进一步编码。根据本发明的一实施例,算术编码位元串流是由 在译码器端的预看位元串流重新格式化处理电路610所处理,如图6所示。来自预看位元串 流重新格式化处理电路610的算术译码二进制字符串"000001"将储存于储存装置630。所储 存的二进制字符串"000001"接着提供给可变长度译码器620以恢复编码语法,即具有值为5 的synElVal。
[0091] 表格 2
[0092]
L〇〇94J 具有分割算木译妈功能和W变长度译妈器译妈功能的熵译妈器架构提供一有效 平行处理的优点。在算术译码后,剩余的熵译码功能只依赖于可变长度译码器模块。因此, 平行管线处理可基于结合本发明一实施例的熵译码器架构所安排。图7显示使用结合本发 明一实施例熵译码器架构来进行平行处理管线的一例子。平行处理可应用于视频数据的影 像单元。每个影像单元可对应一图像、一切片(siice)、一宏块(macroblock,MB)/编码树单 元(coding tree unit,CTU)列、一宏块/编码树单元、一区块/编码单元(coding unit,CU)。 也可以使用其他的处理单元。在一当前区块通过预看位元串流重新格式化处理电路进行算 术译码后,当前区块被提供给可变长度译码器用于之后的可变长度译码器译码,以恢复编 码语法,而下一单元被提供给预看位元串流重新格式化处理电路。因此,下一单元的算术译 码与当前单元的可变长度译码器译码可同时进行或互相重叠。
[0095]图8显示预看位元串流重新格式化处理电路800详细结构的一例子。方块830表示 为二进制译码器,其输出提供给非算术编码位元串流储存装置840,用于更进一步地译码处 理。控制暂存器860提供译码信息给二进制译码器830及相邻信息存取单元870。另一方面, 相邻信息存取单元870连接至相邻数据储存装置880及上下文模型更新单元或上下文模型 更新处理单元833,以提供上下文模型更新所需的相邻数据。CPU 820连接至控制暂存器860 以储存用于元素译码器的译码信息。CPU可以是视频译码器的一共享资源。可替代地,一专 用小型处理器可用以作为预看位元串流重新格式化处理电路800的一部分。控制暂存器860 提供初始上下文信息给初始上下文单元850,而初始上下文将被储存于上下文表格储存装 置 810。
[0096] 在图8中,上下文表格储存装置810和相邻数据储存装置880可实现为芯片上缓冲 器,以支援所需的高速和高效数据存取。另一方面,由于成本问题,非算术编码位元串流840 的储存装置可为基于芯片外的储存装置,象是动态随机存取存储器(Dynamic random access memory,DRAM)〇
[0097] 二进制译码器830包括一上下文本地缓冲器831、位址产生器832、上下文模型更新 单元833及二进制译码单元834。位址产生器832将产生位址上下文表格储存装置的位址。上 下文模型更新单元833用于产生新的上下文模型,并在二进制译码期间更新储存在上下文 本地缓冲器831的上下文模型。二进制译码单元834通过使用来自上下文模型更新单元833 的更新上下文模型执行二进制算术译码或旁路译码的任务。来自二进制译码单元834的译 码输出将被储存在非算术编码位元串流840的储存装置以更进一步进行译码处理。在图8中 预看位元串流重新格式化处理电路的详细架构用于说明根据本发明的一例子。本领域的技 术人士可采用类似的结构且不偏离本发明的实质精神来实现本发明。
[0098]图9显示根据本发明一实施例的非算术二进制字符串的可变长度译码器900的一 例子。来自预看位元串流重新格式化处理电路的算术译码二进制字符串不包括任何算术编 码数据,使得二进制字符串可使用可变长度译码器译码。可变长度译码器900包括用于快速 存取储存在储存装置840中的非算术编码位元串流直接存储器存取(direct memory access,DMA)910。在非算术编码二进制字符串中的编码语法元素可通过各种可变长度码, 如霍夫曼码(Huffman code)、一元码(Unary code)及指数哥伦布码(Exp-Golomb code)等 进行编码。因此,非算术二进制字符串将被提供给一对应的霍夫曼译码引擎920、一元译码 引擎930、指数哥伦布译码引擎940等。每一译码引擎将各自恢复编码语法元素。输出语法可 被储存于一缓冲器/存储器以用于后续处理或提供给一视频译码器中的其它处理器。
[0099]图10显示预看位元串流重新格式化处理电路处理的一示范性流程图。如图10所 示,在步骤1010中,算术编码位元串流被读取至预看位元串流重新格式化处理电路。代替全 部位元串流,每次读取算术编码位元串流的一部分。当处理单元对应于一大处理区域时,像 是一图片、一切片或一宏块/编码树单元列,特别有用。基于相邻数据和解码语法信息的上 下文模型在步骤1020中产生,以在步骤1030中执行语法元素译码。译码语法在步骤1040中 写出至储存装置。由于上下文模型依赖于译码语法,因此译码语法被用于更新语法模型,如 步骤1050所示。图10中的流程图是用于说明根据本发明实施例的算术译码处理的一例子。 本领域技术人员可修改处理步骤以实施本发明,且不脱离本发明的实质精神。例如步骤 1010和1020可以交换。而步骤1040和1050也可以交换。
[0100] 图11显示可变长度译码器处理的一示范性流程图。如图11所示,在步骤1110中,非 算术编码位元串流被读入至可变长度译码器中。代替全部的位元串流,每次可读取部分的 非算术编码位元串流。当该处理单元对应一大处理区域时,像是一图片、一切片或一宏块/ 编码树单元列,特别有用。在步骤1120中,语法译码接着被应用至使用一相应可变长度译码 器的非算术编码位元串流。译码语法接着被进行输出,如步骤1130所示。在图11中的流程图 系用以说明根据本发明实施例的可变长度译码器译码处理的一例子。
[0101] 本发明储存算术译码二进制字符串于存储器中。在一实施例中,该系统可以利用 已储存的算术译码二进制字符串并检测在算术译码二进制字符串中可能的错误。预看位元 串流重新格式化处理电路解析影像位元串流的一部分图像、一图像或多图像,并在提供可 变长度译码器处理及之后的视频译码处理的二进制字符串之前,将二进制字符串存入存储 器中。如果视频位元串流内有任何错误时,错误可由预看位元串流重新格式化处理电路来 检测,而语法解析器可以记录此错误。举例来说,一错误表可用来记录一图像中的错误信 息。图12显示结合本发明一实施例的一例子,其中每一影像单元对应一编码树单元或一宏 块。预看位元串流重新格式化处理电路1210解析视频位元串流并检测错误。在图像中的错 误被记录在一错误表1220。算术译码位元串流被提供给可变长度译码器1230用于可变长度 译码器译码以恢复语法元素。错误信息在译码编码树单元/宏块列期间将被提供至之后的 视频译码处理。如果在当前须被处理的编码树单元/宏块期间有任何错误时,视频译码器可 应用错误处理至当前的编码树单元/宏块。
[0102] 图13显示根据本发明一实施例结合一预看位元串流重新格式化处理电路的一熵 译码器的一示范性流程图。在步骤1310中该译码器接收与视频数据相关的一视频位元串流 的输入数据。在步骤1320中,算术译码被应用于视频位元串流至少一部分,以推导出一或多 个算术译码二进制字符串,其中上述一或多个算术译码二进制字符串不包括算术编码二进 制字符串。在步骤1330中,上述的存储器一或多个算术译码二进制字符串被储存在一存储 器。在步骤1340中,当储存在上述存储器中的算术译码位元串流对一选择影像单元为完整 时,从上述存储器中接收上述算术译码位元串流至少一部分,用于一可变长度译码器 (variable-length decoder,VLD),其中上述算术译码位元串流包括用于上述选择影像单 元的算术译码二进制字符串。在步骤1350中,上述算术译码位元串流至少一部分被译码为 一或多个译码语法元素。
[0103] 所示的流程图用以说明根据本发明熵译码的一例子。本领域技术人员可修改每一 步骤、重新排列上述步骤、分割一步骤、或结合步骤来实施本发明,且不脱离本发明的实质 精神。在本揭露中,特定的语法和语义已被用以说明例子来实现本发明的实施方式。本领域 技术人员可通过替换具有等效语法和语义的语法和语义且不脱离本发明精神的前提下实 现本发明。
[0104] 本发明公开了一种算术编码二进制字符串的高吞吐量熵译码器。上面的描述能够 使本领域技术人员以上文所提供的特定应用及其要求来实施本发明。各种于上述实施例的 修改对本领域技术人员将是显而易见,且此处所定义的基本原则可被应用于其它实施例 中。因此,本发明并不仅限于上面描述及显示的特定实施例,而是记载了符合本原则及新的 特征的最广范围。为提供有关本发明的全面理解,上述详细记载中描述了各种具体细节。然 而,本领域技术人员应理解本发明可以实施。
[0105] 本发明在不脱离其本质特征的情况下,可以以其它特定形式实现。所描述的实施 例在所有方面仅被认为是说明性而非限制性的。因此,本发明的范围由所附的申请专利范 围来指示而不是通过前面的描述来指示。所有落入申请专利范围的等同物的意义和范围内 的改变均被涵盖在其范围内。
【主权项】
1. 一种在一视频译码器中使用可变长度编码和算术编码所编码的二进制字符串的熵 译码的方法,上述方法包括: 接收与视频数据相关的一视频位元串流的输入数据; 应用算术译码至上述视频位元串流至少一部分以推导出一或多个算术译码二进制字 符串,其中上述一或多个算术译码二进制字符串不包括算术编码二进制字符串; 储存上述一或多个算术译码二进制字符串在一存储器中; 当储存在上述存储器中的算术译码位元串流对一选择影像单元为完整时,从上述存储 器中接收上述算术译码位元串流至少一部分,用于一可变长度译码器,其中上述算术译码 位元串流包括用于上述选择影像单元的算术译码二进制字符串;以及 译码上述算术译码位元串流至少一部分为一或多个译码语法元素。2. 如权力要求1所述的方法,其中上述算术译码包括执行基于上下文译码,以基于一上 下文模型产生一或多个译码位元(bin),以及根据上述上下文译码位元更新上述上下文模 型。3. 如权力要求1所述的方法,其中上述选择影像单元对应一图像、切片、宏块列、一编码 树单元列、一宏块、一编码树单元、一编码单元或一区块。4. 如权力要求1所述的方法,其中上述可变长度译码器能译码一或多个可变长度译码 器码。5. 如权力要求4所述的方法,其中上述一或多个可变长度译码器码包括霍夫曼码、一元 码及指数哥伦布码。6. 如权力要求1所述的方法,其中上述算术译码为平行使用多个算术译码处理电路以 被应用至于至少一部分的上述视频位元串流至少一部分的平行使用多个算术译码处理电 路。7. 如权力要求1所述的方法,更进一步包括检查储存在上述存储器中用于上述选择影 像单元的上述算术译码位元串流中的任何错误。8. 如权力要求7所述的方法,更进一步包括当检测到任何错误时,提供错误信息给一之 后的视频译码器用于处理错误。9. 如权力要求1所述的方法,其中一算术译码处理电路用于上述算术译码,以及上述算 术译码处理电路及上述可变长度译码器被安排用以执行在选择影像单元中同时执行管线 化算术译码和可变长度译码。10. 如权力要求9所述的方法,其中每一选择影像单元对应一编码树单元或一宏块。11. 一种在一视频译码器中使用可变长度编码和算术编码所编码之二进制字符串的熵 译码设备,上述设备包括: 一算术译码处理电路,耦接至一位元串流输入及一储存装置,其中上述算术译码处理 电路通过上述位元串流接收一视频位元串流,应用算术译码至上述视频位元串流至少一部 分以推导出一或多个算术译码二进制字符串,其中上述一或多个算术译码二进制字符串不 包括算术编码二进制字符串,以及 一可变长度译码器,耦接至上述算术译码处理电路、上述储存装置及一可变长度译码 器输出,其中, 当储存在上述储存装置中的算术译码位元串流对一选择影像单元为完整时,上述可变 长度译码器接收算术译码位元串流至少一部分,译码上述算术译码位元串流至少一部分为 一或多个译码语法元素,并通过上述可变长度译码器输出提供上述一或多个译码语法元 素。12. 如权力要求11所述的熵译码设备,其中上述算术译码处理电路包括一上下文二进 制译码器及一上下文模型更新处理电路,其中上述上下文二进制译码器被安排用以执行基 于上下文译码以基于一上下文模型产生一或多个译码位元,以及上述上下文模型更新处理 电路根据上述上下文译码位元更新上述上下文模型。13. 如权力要求12所述的熵译码设备,其中上述算术译码处理电路系耦接至一上下文 储存装置及相邻数据储存装置以取得上述基于上下文译码所需的上下文信息。14. 如权力要求11所述的熵译码设备,其中上述可变长度译码器包括用于译码一或多 个相应的可变长度译码器码的一或多个可变长度译码器引擎。15. 如权力要求14所述的熵译码设备,其中上述一或多个可变长度译码器引擎包括霍 夫曼译码引擎、一元译码引擎及指数哥伦布译码引擎。16. 如权力要求11所述的熵译码设备,其中上述算术译码处理电路包括多个算术译码 处理电路以平行操作。17. 如权力要求11所述的熵译码设备,更包括一错误检查电路,能检查储存在上述储存 装置中用于上述选择影像单元的上述算术译码位元串流中的任何错误。18. 如权力要求17所述的熵译码设备,其中当检测到任何错误时,上述错误检查电路提 供错误信息给一之后的视频译码器用于处理错误。19. 如权力要求11所述的熵译码设备,其中上述算术译码处理电路及上述可变长度译 码器被安排用以执行在选择影像单元中同时执行管线化算术译码和可变长度译码。20. 如权力要求19所述的熵译码设备,其中每一选择影像单元对应一图像、切片、编码 树单元列、宏块列、编码树单元、编码单元或区块。
【文档编号】H04N19/107GK105898301SQ201610084448
【公开日】2016年8月24日
【申请日】2016年2月14日
【发明人】郑佳韵, 张永昌
【申请人】联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1