CN108513138A - 视频处理装置及相应视频处理方法 - Google Patents
视频处理装置及相应视频处理方法 Download PDFInfo
- Publication number
- CN108513138A CN108513138A CN201710969540.4A CN201710969540A CN108513138A CN 108513138 A CN108513138 A CN 108513138A CN 201710969540 A CN201710969540 A CN 201710969540A CN 108513138 A CN108513138 A CN 108513138A
- Authority
- CN
- China
- Prior art keywords
- count
- entropy
- engine
- hardware
- processing
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/28—Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供一种视频处理装置及相应视频处理方法。视频处理装置包括外部存储设备;在外部存储设备外部的硬件熵引擎,其中硬件熵引擎被布置为执行当前图像的熵处理,并且还被布置成在当前图像的熵处理期间将计数信息输出到外部存储设备;以及在外部存储设备外部的软件执行引擎,其中当软件执行引擎装载和执行时,软件程序指令软件执行引擎将计数信息转换为多个计数表内容,并且至少根据多个计数表内容在外部存储设备中生成计数表,其中,引用计数表来对由硬件熵引擎选择性地使用的概率表应用后向适应来执行下一图像的熵处理。本发明的视频处理装置及相应视频处理方法可以降低硬件的内部存储设备的成本。
Description
【交叉引用】
本申请要求2016.2.24提交的美国临时申请号为62299067的美国临时申请案的优先权,其全部内容也一并引用于此。
【技术领域】
本发明涉及熵编码/解码,更具体地,涉及用于在硬件熵引擎(例如,硬件熵编码器/解码器)的外部存储设备中生成计数表(count table)的视频处理装置(例如,视频编码器/解码器)和相关的视频处理方法。
【背景技术】
传统的视频编解码标准通常采用基于块的编解码技术来利用空间和时间冗余。例如,基本方法是将整个源帧划分为多个块,对每个块执行帧内预测/帧间预测(intraprediction/inter prediction),对每个块的残差进行变换,并执行量化和熵编码。此外,在编解码循环(coding loop)中生成重建帧(reconstructed frame)以提供用于编解码后面的块的参考像素数据。对于某些视频编解码标准,可以使用环路滤波器(in-loopfilter)来增强重构帧的图像质量。
视频解码器用于执行由视频编码器执行的视频编码操作的逆操作。例如,视频编码器中的熵编码器用于生成编码比特流,而视频解码器中的熵解码器用于解码编码比特流。算术编解码可以由熵编码器使用。因此,熵编码器参考概率表执行熵编码,并且视频解码器也参考相同的概率表来执行熵解码。由于视频内容本质上是不稳定的,对于视频编码器和视频解码器中的每一个,概率表的适应性对于统计数据的变化至关重要。
【发明内容】
依据本发明的示范性实施例,提出一种视频处理装置及相应视频处理方法以解决上述问题。
依据本发明的一个实施例,提出一种视频处理装置,包括外部存储设备;在外部存储设备外部的硬件熵引擎,其中硬件熵引擎被布置为执行当前图像的熵处理,并且还被布置成在当前图像的熵处理期间将计数信息输出到外部存储设备;以及在外部存储设备外部的软件执行引擎,其中当软件执行引擎装载和执行时,软件程序指令软件执行引擎将计数信息转换为多个计数表内容,并且至少根据多个计数表内容在外部存储设备中生成计数表,其中,引用计数表来对由硬件熵引擎选择性地使用的概率表应用后向适应来执行下一图像的熵处理。
依据本发明的另一实施例,提出一种视频处理方法,包括通过硬件熵引擎执行当前图像的熵处理,并且在当前图像的熵处理期间将计数信息输出到硬件熵引擎的外部存储设备;以及执行软件程序以将计数信息转换为多个计数表内容,并且至少根据多个计数表内容在外部存储设备中产生计数表,其中引用计数表来对由硬件熵引擎选择性地使用的概率表应用后向适应来执行下一图像的熵处理。
本发明的视频处理装置及相应视频处理方法可以降低硬件的内部存储设备的成本。
【附图说明】
图1是根据本发明的实施例的视频处理系统的框图示意图。
图2是根据本发明的实施例的硬件熵引擎的框图的示意图。
图3是根据本发明的实施例为一组符号创建的二叉树的示意图。
图4是根据本发明的实施例的第一后向概率表更新方法的流程图。
图5是示出根据本发明的实施例的第二后向概率表更新方法的流程图。
图6是基于硬件的计数表维护设计的后向概率表更新操作与使用所提出的混合计数表维护设计的后向概率表更新操作之间的比较的示意图。
图7是根据本发明的实施例的将由标识符组成的计数信息转换为计数表的操作的示意图。
图8是根据本发明的实施例的将由坐标组成的计数信息转换为计数表的操作的示意图。
图9是根据本发明的实施例的第一后向适应设计的示意图。
图10是根据本发明的实施例的第二后向适应设计的示意图。
图11是根据本发明的实施例的概率表加载方法的流程图。
图12是根据本发明的实施例的完整概率表和部分概率表的示意图。
图13是根据本发明的实施例的另一概率表加载方法的流程图。
【具体实施方式】
在说明书及权利要求书当中使用了某些词汇来指称特定的组件。所属领域中的技术人员应可理解,制造商可能会用不同的名词来称呼同样的组件。本说明书及权利要求书并不以名称的差异异来作为区分组件的方式,而是以组件在功能上的差异异来作为区分的基准。在通篇说明书及权利要求书当中所提及的「包含」是开放式的用语,故应解释成「包含但不限定于」。另外,「耦接」一词在此包含任何直接及间接的电气连接手段。因此,若文中描述第一装置耦接于第二装置,则代表第一装置可直接电气连接于第二装置,或透过其它装置或连接手段间接地电气连接至第二装置。
图1是根据本发明的实施例的视频处理系统的框图示意图。视频处理系统100包括软件执行引擎(例如,中央处理单元(CPU)102)、多个视频处理装置(例如,视频解码器104和视频编码器106)、存储控制器(例如,存储器控制器)108和显示引擎(例如,显示驱动电路)110。视频解码器104、视频编码器106、存储控制器108和显示引擎110可以经由CPU总线120与CPU 102通信。CPU 102、视频解码器104、视频编码器106和显示引擎110可以经由存储数据总线130与存储控制器108进行通信。视频解码器104支持熵解码功能,视频编码器106支持熵编码功能。在该示例中,视频解码器104具有硬件熵引擎(例如,硬件熵解码器)113和可由硬件熵引擎113访问的内部存储设备(例如,片上静态随机存取存储器(static randomaccess memory,简写为SRAM))112,并且视频编码器106具有硬件熵引擎(例如,硬件熵编码器)115和可由硬件熵引擎115访问的内部存储设备(例如,片上SRAM)114。例如,硬件熵引擎113及其内部存储设备112可以在相同的芯片中实现,并且硬件熵引擎115及其内部存储设备114可以在相同的芯片中实现。外部存储设备116可以是CPU 102,视频解码器104和视频编码器106外部的片外(off-chip)动态随机存取存储器(dynamic random access memory,简写为DRAM)。因此,关于视频解码器104和视频编码器106,硬件熵引擎113和115可经由存储控制器108访问外部存储设备116。
关于视频解码器104,硬件熵引擎113被布置为执行当前图像的熵处理(即,熵解码),并且还被布置为在当前图像的熵处理(即熵解码)期间将计数信息输出到外部存储设备116。CPU 102用作软件执行引擎。当CPU102装载并执行时,软件程序PROG指示CPU102将计数信息转换为计数表内容,并根据至少计数表内容在外部存储设备116中生成计数表。在本实施例中,参考为当前图像的熵解码生成的计数表,以对硬件熵引擎113选择性地使用的概率表应用后向适应(backward adaptation),以执行下一图像的熵处理(即熵解码)。
关于视频编码器106,硬件熵引擎115被布置为执行当前图像的熵处理(即,熵编码),并且还被布置为在当前图像的熵处理(即熵编码)期间将计数信息输出到外部存储设备116。如上所述,CPU 102用作软件执行引擎。当CPU102装载并执行时,软件程序PROG指示CPU 102将计数信息转换为计数表内容,并且至少根据计数表内容在外部存储设备116中生成计数表。在本实施例中,参考为当前图像的熵编码生成的计数表,以对硬件熵引擎115选择性地使用的概率表应用后向适应,以执行下一图像的熵处理(即熵编码)。
简而言之,硬件熵引擎115/113不创建并存储计数表(其被引用为对熵编码/解码使用的概率表应用后向适应)在内部存储设备114/112中。使用内部存储设备114/112来存储概率表的后向适应所需的计数表是相当昂贵的。例如,当计数表存储在内部存储设备114/112中时,分配存储空间以存储可能具有12.2K字节(即3066×32比特)的表大小的计数表。因此,本发明提出了硬件和软件分区优化,使得软件引擎(例如,CPU 102)可以根据由硬件引擎(例如,硬件熵引擎115/113)提供的提议的计数信息创建和存储计数表(其被引用以对熵编码/解码使用的概率表应用后向适应)在外部存储设备116中。稍后将描述计数信息的更多细节。
图2是根据本发明的实施例的硬件熵引擎的框图的示意图。硬件熵引擎113和115中的每一个可以被配置为采用与图2所示相同的硬件结构。在本实施例中,硬件熵引擎115/113包括多个电路,例如熵处理单元202、流量控制单元204、相邻数据更新单元206、概率表选择单元208、概率表访问单元210、计数信息收集单元212和直接存储器访问(directmemory access,简写为DMA)单元214。专用于对应的硬件熵引擎115/113的内部存储设备114/112可以具有分配在其中的相邻数据缓冲器216和概率表缓冲器218。外部存储设备116用于存储由硬件熵引擎115/113提供的计数信息CNT_info和由软件执行引擎(例如,CPU102)生成的计数表CNT_table,该计数表基于从计数信息CNT_info转换的计数表内容。
VP9是由开发的开放及免版税视频编解码标准。为了清楚和简单起见,假定硬件熵引擎115/113被配置为执行符合VP9编解码标准的熵编码/解码。然而,这仅仅是为了说明的目的,并不意味着对本发明的限制。使用硬件熵引擎115/113的任何视频编码器/解码器(特别是所提出的计数信息收集单元212)都属于本发明的范围。
概率表缓冲器218用于存储用于语法编码/解码的概率表Prob_table。相邻数据缓冲器216用于存储为概率表Prob_table的概率模型选择而引用的上相邻块的信息。存储在外部存储设备116中的计数表CNT_table基于当前图像的熵处理(例如布尔(boolean)编码/解码)期间由计数信息收集单元212收集的计数信息CNT_info而生成。例如,计数表CNT_table记录当前图像中所有编码/解码语法的实际计数,并被引用用于概率表Prob_table的后向适应。在当前图像的熵编码/解码期间,DMA单元214可以将由计数信息收集单元212收集的计数信息CNT_info发送到外部存储设备116。
流量控制单元204控制整个图像编码/解码流程。熵处理单元202是硬件熵引擎115/113的核心部分。例如,熵处理单元202可以执行模式处理、运动向量差(motion vectordifference,简写为MVD)处理、令牌处理等。模式处理用于对模式相关的语法元素进行编码/解码。MVD处理用于对运动矢量差进行编码/解码。令牌处理用于执行系数编码/解码,从而对令牌进行编码/解码。概率表访问单元210是用于访问存储在概率表缓冲器218中的概率表Prob_table的接口模块。相邻数据更新单元206用于根据当前块的语法类型和一些语法元素执行相邻数据选择。概率表选择单元208用于参考相邻数据更新单元206提供的相邻信息,以执行用于确定语法熵编码/解码(例如模式处理、MVD处理和令牌处理)所使用的概率模型的概率模型选择。
在外部存储设备116中可获得用于当前图像的熵编码/解码产生的最终计数表CNT_table之后,CPU 102(特别是在CPU 102上运行的软件程序PROG)根据语法边信息(sideinformation)(例如,语法类型)、旧概率表(即,使用的当前概率表Prob_table)和计数表CNT_table执行后向概率更新功能来生成新的概率表(即,更新的概率表)。
除了被直接编码为原始值(raw value)的很少的报头位(header bit)之外,大部分压缩的VP9数据值是使用布尔算术编码器进行编码的,该算术编码器充当底层的二进制算术编码器。一般来说,给定任何n字母(n-ary alphabet)的符号,使用(n-1)非叶(non-leaf)节点(或称为父节点)和(n)叶节点来构造静态二叉树(binary tree),并且当树被遍历时,二进制算术编码器在每个非叶节点上进行操作以对特定符号(其可以是语法类型的一个上下文的一个语法设置)进行编码。图3是根据本发明的实施例为一组符号创建的二叉树(binary tree)的示意图。在这个例子中,有四个非叶节点NP_0、NP_1、NP_2、NP_3由圆圈表示,5个叶节点NL_0、NL_1、NL_2、NL_3、NL_4用方形表示。字母表中的任何符号可以由通过从根节点NP_0到相应的叶节点遍历二叉树生成的一系列二进制值来表示。二叉树中的每个非叶节点具有基于采用左(0)分支进行遍历的可能性分配的概率(例如,P0、P1、P2、P3)。将用于编码特定语法的可能符号的概率P0-P3的集合称为要编码的特定语法的熵编解码上下文(或称为概率模型)。视频内容本质上是非固定的,并且任何视频编码器/解码器的关键元素是用于跟踪各种符号的统计信息并更新概率表中符号的熵编解码上下文(概率模型),以匹配符号的实际分配的机制。例如,可以采用后向适应来在每个图像的编码/解码结束时更新熵编解码上下文(概率模型)。换句话说,一旦当前图像中的所有符号已被处理(例如,编码或解码),则进行后向适应步骤,以根据当前图像中的每个符号的实际计数进一步更新下一图像中使用的概率。基于这些实际计数,可以获得相应二叉树中各种非叶节点的概率。取图3所示的二叉树为例。对于每个非叶节点NP_0-NP_3,记录在计数表中的信息可以指示0的发生次数和1的发生次数。因此,基于与所有非叶节点NP_0-NP_3相关联的计数表信息,可以获得概率集合P0-P3的新值,然后由后向适应步骤使用以设置概率集合P0-P3的更新值,其可以被选择用于对下一个图像进行编码/解码。
如上所述,计数信息收集单元212收集与由熵处理单元202执行的语法编码/解码相关联的计数信息CNT_info,并且经由DMA单元214将收集的计数信息CNT_info输出到外部存储设备116;并且基于从计数信息CNT_info转换的计数表内容生成计数表CNT_table(其用于概率表Prob_table的后向适应)。在一个示例性设计中,软件执行引擎(例如,CPU 102)不开始将计数信息CNT_info转换为计数表内容,直到当前图像被熵处理(即,熵编码/解码)完全处理,其中计数信息CNT_info是当前图像的整个熵处理过程(即,熵编码/解码过程)由计数信息收集单元212收集的当前图像的全部计数信息。
图4是根据本发明的实施例的第一后向概率表更新方法的流程图。如果结果基本相同,则不需要按照图4所示的确切顺序执行步骤。在步骤402,硬件熵引擎115/113被触发以启动图像的熵处理。因此,流量控制单元204指示熵处理单元202开始图像的熵处理。在步骤404中,熵处理单元202执行图像的熵处理,并且计数信息收集单元212在图像的熵处理期间收集从熵处理单元202生成的计数信息CNT_info。在步骤406,检查图像的熵处理是否完成。也就是说,步骤406检查图像是否被完全熵编码/解码。如果图像没有被完全熵编码/解码,则流程进行到步骤404,使得熵处理单元202继续执行图像的熵处理,并且计数信息收集单元212继续收集与图像的熵处理相关联的计数信息CNT_info。如果图像被完全熵编码/解码,则流程进行到步骤408。在步骤408,CPU 102(特别地,在CPU 102上运行的软件程序PROG)开始将存储在外部存储设备116中的计数信息CNT_info(其是图像的全部计数信息)转换成存储在外部存储设备116中的计数表CNT_table。换句话说,CPU 102(特别是在CPU102上运行的软件程序PROG)仅执行计数信息转换操作一次,从而获得图像的完整计数表CNT_table。在步骤410,CPU102(特别是在CPU102上运行的软件程序PROG)至少根据计数表CNT_table执行概率表Prob_table的后向适应。例如,外部存储设备116可以具有分配在其中的工作缓冲器,使得后向概率表更新可以使用工作缓冲器基于旧概率表(即,目前使用的概率表Prob_table)和计数表CNT_table来计算新的概率表(即,更新的概率表)。在更新概率表被计算之后,更新的概率表可以被选择性地加载到内部存储设备114/112的概率表缓冲器218中,以对下一个图像进行熵处理。
在另一个示例性设计中,软件执行引擎(例如,CPU 102)在当前图像被完全熵处理之前开始将计数信息CNT_info转换为计数表内容,其中计数信息CNT_info是当前图像的部分计数信息,并且由计数信息收集单元212收集用于当前图像的一部分的熵处理(即,熵编码/解码)。
图5是示出根据本发明的实施例的第二后向概率表更新方法的流程图。如果结果基本相同,则不需要按照图5所示的确切顺序执行步骤。在步骤502,控制参数PIC_END被初始化为第一值。例如,PIC_END=0。在步骤504,硬件熵引擎115/113被触发以开始当前图像的熵处理。因此,流量控制单元204指示熵处理单元202开始当前图像的熵处理。在步骤506,熵处理单元202执行图像的熵处理,并且还输出计数信息CNT_info。此外,计数信息收集单元212收集计数信息CNT_info,并且在当前图像的熵处理期间将收集的计数信息CNT_info转移到外部存储设备116。在步骤508,检查当前图像的熵处理是否结束。也就是说,步骤508检查当前图像是否被完全熵编码/解码。如果当前图像未被完全熵编码/解码,则控制参数PIC_END保持不变(即,PIC_END=0)。如果当前图像被完全熵编码/解码,则控制参数PIC_END被更新为第二值。例如,PIC_END=1。在步骤514,CPU 102(特别是CPU102上运行的软件程序PROG)从硬件熵引擎115/113(特别是熵处理单元202)获得硬件状态,其中硬件状态指示要转换的计数信息CNT_info的数量。
在一个示例性设计中,CPU 102(特别是在CPU 102上运行的软件程序PROG)在当前图像的熵处理期间执行多个转换迭代(conversion iteration)。在PIC_END=0的情况下,CPU 102(特别是CPU102上运行的软件程序PROG)检查硬件状态,判定要转换的计数信息CNT_info的数量是否达到预定值,并在当计数信息CNT_info的量达到预定值时,执行转换迭代之一以将计数信息CNT_info转换为计数表内容。因此,当PIC_END=0时,在一个转换迭代(不是最后的转换迭代)中要转换的计数信息的总数N等于预定值,其中在步骤514由N设置控制参数CNT。
在PIC_END=1的另一情况下,CPU 102(特别是CPU 102上运行的软件程序PROG)检查硬件状态以确定要转换的剩余计数信息CNT_info的量,并执行最后的迭代转换,以将剩余计数信息CNT_info转换为计数表内容。因此,当PIC_END=1时,在最后的转换迭代中要转换的计数信息的总数N等于待转换的剩余计数信息CNT_info的量,其中在步骤514中控制参数CNT由N设置。
关于当前图像的计数表的生成,执行除了最后的转换迭代之外的所有转换迭代以转换等于预定值的相同数目的计数信息CNT_info,并且执行最后的转换迭代以转换尚未转换的剩余计数信息CNT_info。控制参数CNT初始化为N,用于指示是否完成了一次转换迭代的计数信息CNT_info的转换。在步骤516,检查控制参数CNT是否等于零。如果控制参数CNT不等于零,则流程继续步骤518。在步骤518,CPU102(特别是在CPU102上运行的软件程序PROG)通过尚未转换的计数信息CNT_info之一的转换结果来更新外部存储设备116中的计数表CNT_table。在步骤520,将控制参数CNT减1,以反映外部存储设备116中可用的计数信息CNT_info中的一个的转换的完成,并且流程进行到步骤516以检查是否已经执行将N个计数信息CNT_info转换为计数表内容的N个转换迭代。如果控制参数CNT等于零,则流程继续步骤522以检查控制参数PIC_END是否被设置为第二值(例如,PIC_END=1)。当控制参数PIC_END仍然被设置为第一值(例如,PIC_END=0)时,这意味着该图像尚未被完全熵编码/解码。因此,流程继续步骤506。当控制参数PIC_END被设置为第二值(例如,PIC_END=1)时,这意味着图像被完全熵编码/解码。因此,流程继续步骤524。在步骤524,CPU 102(特别是在CPU 102上运行的软件程序PROG)获得硬件熵引擎115/113当前使用的概率表Prob_table,并且根据通过当前图像的熵编码/解码产生的计数表CNT_table对概率表Prob_table执行后向适应,使得可以通过对下一图像的熵编码/解码来选择性地使用更新的概率表Prob_table。
在另一示例性设计中,CPU 102(特别是在CPU 102上运行的软件程序PROG)在当前图像的熵处理期间执行多次转换迭代。在每次转换迭代期间,不管当前可用于转换迭代的计数信息CNT_info的数量,CPU 102(特别是在CPU 102上运行的软件程序PROG)将计数信息CNT_info转换为计数表内容。例如,CPU102(特别是CPU102上运行的软件程序PROG)周期性地执行一次转换迭代,使得在每次转换迭代中要转换的计数信息CNT_info的量可以变化。在步骤514,CPU 102(特别是在CPU 102上运行的软件程序PROG)检查硬件状态以确定当前转换迭代可用的计数信息CNT_info的量。当PIC_END=0时,在一次转换迭代(不是最后一次转换迭代)中要转换的计数信息的总数N等于由当前转换迭代检查的硬件状态指示的计数信息CNT_info的数量,其中在步骤514由N设置控制参数CNT。当PIC_END=1时,在最后一次转换迭代中要转换的计数信息的总数N等于由当前转换迭代(其是最后的转换迭代)检查的硬件状态指示的计数信息CNT_info的量,其中在步骤514由N设置控制参数CNT。
关于生成当前图像的计数表,可以通过用于不同转换迭代(包括最后的转换迭代)的不同值来初始化控制参数CNT。控制参数CNT由N初始化,用于指示是否完成了一次转换迭代的计数信息CNT_info的转换。在步骤516,检查控制参数CNT是否等于零。如果控制参数CNT不等于零,则流程继续步骤518。在步骤518,CPU102(特别是在CPU102上运行的软件程序PROG)通过尚未转换的计数信息CNT_info之一的转换结果来更新外部存储设备116中的计数表CNT_table。在步骤520,将控制参数CNT减1,以反映外部存储设备116中可用的计数信息CNT_info中的一个的转换的完成,并且流程进行到步骤516以检查是否已经执行N个转换迭代,以将N个计数信息CNT_info转换为计数表内容。如果控制参数CNT等于零,则流程继续步骤522以检查控制参数PIC_END是否被设置为第二值(例如,PIC_END=1)。当控制参数PIC_END仍然被设置为第一值(例如,PIC_END=0)时,这意味着该图像尚未被完全熵编码/解码。因此,流程继续步骤506。当控制参数PIC_END被设置为第二值(例如,PIC_END=1)时,这意味着图像被完全熵编码/解码。因此,流程继续步骤524.在步骤524,CPU 102(特别是在CPU 102上运行的软件程序PROG)获得硬件熵引擎115/113当前使用的概率表Prob_table,并且根据通过当前图像的熵编码/解码产生的计数表CNT_table,对概率表Prob_table执行后向适应,使得可以通过对下一图像的熵编码/解码来选择性地使用更新的概率表Prob_table。
图6是基于硬件的计数表维护设计的后向概率表更新操作与使用所提出的混合计数表维护设计的后向概率表更新操作之间的比较的示意图。为了清楚和简单起见,假设在视频解码器处执行后向概率表更新。图6的顶部S1显示了基于硬件的计数表维护设计的后向概率表更新操作。因此,软件(SW)执行语法解析(由“SP”表示),然后硬件(HW)执行熵解码。应当注意,HW还负责根据熵解码在HW的内部存储设备中生成和存储计数表。在完成图像的熵解码之后,在HW的内部存储设备中可以看到图像的计数表。SW从HW获得旧概率表(由“PT”表示)和计数表(由“CT”表示),然后根据获得的旧的概率表和计数表生成新概率表(由“NPT”表示)。
图6的中间部分S2示出了图4所示的提出的混合计数表维护设计的后向概率表更新操作。软件(SW)执行语法解析(syntax parsing)(用“SP”表示),然后硬件(HW)执行熵解码。应该注意的是,HW还负责在熵解码期间向HW的外部存储设备生成计数信息(countinformation)(由“CI”表示)。
在图6的中间部分S2所示的一个示例性设计中,HW不需要在HW的内部存储设备中生成并存储计数表。以这种方式,可以有效地降低HW的成本(特别是HW的内部存储设备的成本)。在图像的熵解码完成之后,SW从外部存储设备获取计数信息(由“CI”表示),并且根据计数信息在外部存储设备中生成图像的计数表(由“CT”表示)到。接下来,SW从HW获得旧概率表(由“PT”表示),然后根据旧概率表和计数表生成新概率表(由“NPT”表示)。
在替代设计中,HW可以保留用于存储计数表的一部分的内部存储设备的一部分(例如,由少量对应于上下文的计数值和用于某些语法类型(例如MVD和/或模式)的相关语法设置组成的一个部分计数表,),而计数表的剩余部分(例如,由对应于上下文的大量计数值和用于剩余语法类型(例如系数)的相关语法设置组成的另一个部分计数表,)不需要存储在内部存储设备中。由于内部存储设备仅需要存储小型部分计数表而不是整个计数表,所以可以降低HW的内部存储设备的成本。在图像的熵解码完成之后,小型部分计数表被存储在内部存储设备中。因此,SW从内部存储设备获取小型部分计数表,从外部存储设备获取计数信息,并根据小型部分计数表以及计数信息在外部存储设备中生成图像的计数表,其中通过组合小型部分计数表和基于计数信息生成的大型部分计数表来获得计数表。接下来,SW从HW获得旧概率表,然后根据旧概率表和计数表生成新的概率表。
图6的底部S3示出了图5所示的提出的混合计数表维护设计的后向概率表更新操作。与图4所示的混合计数表维护设计相比,图5所示的提出的混合计数表维护设计具有较短的处理时间。理想地,利用图5所示的所提出的混合计数表维护设计,通过使用后向概率表更新操作来生成计数表所需的处理时间等于通过使用基于硬件的计数表维护设计的后向概率表更新操作来生成计数表所需的处理时间。如图6所示,软件(SW)执行语法解析,然后硬件(HW)执行熵解码。应该注意的是,HW还负责在熵解码期间向HW的外部存储设备生成计数信息(由“CI”表示)。具体地说,在一个图像的熵解码期间,SW执行多次转换迭代,其中在除了最后的转换迭代之外的所有转换迭代中转换的计数信息的量可以相同,或者在不同的转换迭代(包括最后的转换迭代)中转换的计数信息的量可能会有所不同。
在图6的底部S3所示的一个示例性设计中,HW不需要在HW的内部存储设备中生成并存储计数表。在每个转换迭代中,计数表(由“CT”表示)由计数信息(由“CI”表示)更新。以这种方式,由于基于HW的熵解码和基于SW的计数表更新的并行处理,生成一个图像的计数表所需的处理时间可以减少。如图6所示,在图像的熵解码完成之后,计数表即将准备就绪。接下来,SW从HW获得旧概率表(由“PT”表示),然后根据旧概率表和计数表生成新概率表(由“NPT”表示)。
在替代设计中,HW可以保留内部存储设备的一部分以存储计数表的一部分(例如,由对应于上下文的少量计数值和对于某些语法类型(例如MVD和/或模式)的相关联的语法设置组成的一个部分计数表),以及计数表的剩余部分(例如,由对应于上下文的大量计数值和对于剩余语法类型(例如系数)的相关联的语法设置组成的另一个部分计数表)不需要存储在内部存储设备中。由于内部存储设备仅需要存储小型部分计数表而不是整个计数表,所以可以降低HW的内部存储设备的成本。每个转换迭代中的计数信息更新大型部分计数表。以这种方式,由于基于HW的熵解码和基于SW的部分计数表更新的并行处理,可以减少生成大型部分计数表所需的处理时间。在图像的熵解码完成之后,大型部分计数表即将准备就绪。SW从内部存储设备获取小型部分计数表,并通过组合小型部分计数表和大型部分计数表,在外部存储设备中生成图像的计数表。接下来,SW从HW获得旧概率表,然后根据旧概率表和计数表生成新的概率表。
如上所述,图2所示的计数信息收集单元212收集从熵处理单元202生成的计数信息CNT_info,其中计数信息CNT_info被转换为用于生成计数表CNT_table的计数表内容。在该实施例中,计数表CNT_table记录分别对应于不同上下文和不同语法类型的相关联的不同语法设置的多个计数值,其中每个计数值记录一个对应上下文的发生次数和一个相应的语法类型的一个对应的相关语法设置。在该实施例中,计数信息CNT_info被设计为包括指示一个上下文的指示值和一个语法类型的一个相关联的语法设置。在一个示例性计数信息实现中,包括在计数信息CNT_info中的每个指示值由一个标识符(ID)设置。因此,当生成计数信息CNT_info时,硬件熵引擎115/113的熵处理单元202为不同的语法类型分别分配不同的上下文和不同的相关语法设置。
应当注意,术语“语法设置”可以意味着一个特定语法值,或者可以表示特定语法值范围内的任何语法值,这取决于实际的设计考虑。为了清楚和简单起见,在以下计数信息转换示例中提到的一个“语法设置”可以是一个特定的语法值。然而,这仅仅是为了说明的目的,并不意味着对本发明的限制。
图7是根据本发明的实施例的将由标识符组成的计数信息转换为计数表的操作的示意图。假设不同语法类型之一是inter_mode。因此,用于inter_mode语法类型的计数表CNT_table具有多个帧间模式(inter mode)上下文[0,1,2,3,4,5,6],每个帧间模式上下文与多个帧间模式值[0,1,2,3]相关联。在该示例中,硬件熵引擎115/113的熵处理单元202将7×4标识符分配给inter_mode语法类型的7×4上下文和语法设置组合,其中7×4上下文和语法设置组合被inter_mode[Inter_mode_context][Inter_mode_value]索引。例如,将inter_mode[0][0]的上下文和语法设置组合分配给标识符“0”,将inter_mode[0][1]的上下文和语法设置组合分配给标识符“1”,将inter_mode[0][2]的上下文和语法设置组合分配给标识符“2”,将inter_mode[0][3]的上下文和语法设置组合分配为标识符“3”,依此类推。考虑其中inter_mode[2][2]、inter_mode[3][0]、inter_mode[3][3]、inter_mode[5][0]、inter_mode[5][0]、inter_mode[2][3]、inter_mode[3][1]、inter_mode[0][0]、inter_mode[0][0]、inter_mode[0][2]、inter_mode[0][2]、inter_mode[0][3]以及inter_mode[5][0]的上下文和语法设置组合由硬件熵引擎115/113的熵处理单元202进行熵处理(例如,熵编码/解码)的情况,从熵处理单元202生成并由计数信息收集单元212收集的计数信息CNT_info包括标识符“10”、“12”、“15”、“20”、“20”、“11”、“13”、“0”、“0”、“2”、“2”、“3”及“20”。在获得计数信息CNT_info之后,CPU 102(特别是在CPU 102上运行的软件程序PROG)将计数信息CNT_info转换为计数表CNT_table的计数表内容。
每个计数表内容是计数值,其记录一个对应的上下文的出现次数和一个对应的语法类型的相应的一个语法设置。具体地,记录在计数表CNT_table中的一个计数值根据包含在计数信息CNT_info中的相同标识符的数量来设置。由于计数信息CNT_info包含两个标识符“0”,因此将inter_mode[0][0]的计数值设置为2。由于计数信息CNT_info包括两个标识符“2”,所以inter_mode[0][2]的计数值被设置为2。由于计数信息CNT_info包括一个标识符“3”,所以inter_mode[0][3]的计数值被设置为1。由于计数信息CNT_info包括一个标识符“10”,所以inter_mode[2][2]的计数值被设置为1。由于计数信息CNT_info包括一个标识符“11”,所以计数值inter_mode[2][3]设置为1。由于计数信息CNT_info包含一个标识符“12”,因此将inter_mode[3][0]的计数值设置为1。由于计数信息CNT_info包含一个标识符“13”,所以将inter_mode[3][1]的计数值设置为1。由于计数信息CNT_info包含一个标识符“15”,因此inter_mode[3][3]设置为1。由于计数信息CNT_info包括三个标识符“20”,所以inter_mode[5][0]的计数值被设置为“3”。由于没有对应的上下文和语法设置进行编码/解码,计数表CNT_table的剩余计数值由0设置。
在图7所示的示例中,包含在计数信息CNT_info中的指示值是标识符。然而,这仅仅是为了说明的目的,并不意味着对本发明的限制。在另一示例性计数信息实现中,包括在计数信息CNT_info中的每个指示值由一个坐标设置。图8是根据本发明的实施例的将由坐标组成的计数信息转换为计数表的操作的示意图。硬件熵引擎115/113的熵处理单元202将7×4坐标(例如,(x,y)=(Inter_mode_value,Inter_mode_context))分配给inter_mode语法类型的7×4上下文和语法设置组合,其中7×4上下文和语法设置组合由inter_mode[Inter_mode_context][Inter_mode_value]索引。例如,inter_mode[0][0]的上下文和语法设置组合被分配一个坐标(0,0),inter_mode[0][1]的上下文和语法设置组合被分配一个坐标(1,0),inter_mode[0][2]的上下文和语法设置组合被分配一个坐标(2,0),inter_mode[0][3]的上下文和语法设置组合被分配一个坐标(3,0),等等。考虑其中inter_mode[2][2]、inter_mode[3][0]、inter_mode[3][3]、inter_mode[5][0]、inter_mode[5][0]、inter_mode[2][3]、inter_mode[3][1]、inter_mode[0][0]、inter_mode[0][0]、inter_mode[0][2]、inter_mode[0][2]、inter_mode[0][3]及inter_mode[5][0]的上下文和语法设置组合由硬件熵引擎115/113的熵处理单元202进行熵处理(例如,熵编码/解码)的情况,从熵处理单元202生成的计数信息CNT_info由计数信息收集单元212收集,包括坐标(2,2)、(0,3)、(3,3)、(0,5)、(0,5)、(3,2)、(1,3)、(0,0)、(0,0)、(2,0)、(2,0)、(3,0)和(0,5)。在获得计数信息CNT_info之后,CPU 102(特别是在CPU 102上运行的软件程序PROG)将计数信息CNT_info转换为计数表CNT_table的计数表内容。
每个计数表内容是记录一个对应上下文的出现次数和一个对应的语法类型的一个对应的相关语法设置的计数值。具体地,记录在计数表CNT_table中的一个计数值根据包含在计数信息CNT_info中的相同坐标数来设定。由于计数信息CNT_info包含两个坐标(0,0),所以将inter_mode[0][0]的计数值设置为2。由于计数信息CNT_info包含两个坐标(2,0),因此inter_mode[0][2]的计数值设置为2。由于计数信息CNT_info包括一个坐标(3,0),所以inter_mode[0][3]的计数值被设置为1。由于计数信息CNT_info包括一个坐标(2,2),所以inter_mode[2][2]的计数值设置为1。由于计数信息CNT_info包括一个坐标(3,2),所以将inter_mode[2][3]的计数值设置为1。由于计数信息CNT_info包括一个坐标(0,3),将inter_mode[3][0]的计数值设置为1。由于计数信息CNT_info包括一个坐标(1,3),所以将inter_mode[3][1]的计数值设置为1。由于计数信息CNT_info包含一个坐标(3,3),因此将inter_mode[3][3]的计数值设置为1。由于计数信息CNT_info包含三个标识符(0,5),所以将inter_mode[5][0]的计数值设置为“3”。由于没有对应的上下文进行编码/解码,计数表CNT_table的剩余计数值设置为0。
如图2所示,概率表Prob_table存储在分配在内部存储设备114/112中的概率表缓冲器218中,计数表CNT_table存储在外部存储设备116中。当执行基于软件的后向概率表更新时,需要将概率表Prob_table加载到外部存储设备116中进行处理。图9是根据本发明的实施例的第一后向适应设计的示意图。CPU 102可以将内部存储设备114/112的概率表缓冲器218中的概率表Prob_table直接读取到外部存储设备116,其中当前使用的概率表Prob_table可以作为要更新的旧概率表Prob_table_old。后向更新器902是软件程序PROG的模块。当由CPU 102执行后向更新器902时,根据外部存储设备116中的计数表CNT_table和语法边信息(例如语法类型),对外部存储设备116中的旧概率表Prob_table_old执行后向适配,使得在外部存储设备116中生成新的概率表Prob_table_new,并且可以由硬件熵引擎115/113选择性地使用用于下一图像的熵处理(例如,熵编码/解码)的新概率表Prob_table_new。
图10是根据本发明的实施例的第二后向适应设计的示意图。视频处理装置(例如,视频编码器106/视频解码器104)还可以包括直接存储器访问(DMA)电路1002。DMA电路1002被布置为从内部存储设备114/112的概率表缓冲器218发送概率表Prob_table到外部存储设备116,而不需要CPU 102的干预。当前使用的概率表Prob_table可以作为要更新的旧概率表Prob_table_old。后向更新器902是软件程序PROG的模块。当由CPU 102执行后向更新器902时,根据外部存储设备116中的计数表CNT_table和语法边信息(例如语法类型),对外部存储设备116中的旧概率表Prob_table_old执行后向适应,使得在外部存储设备116中生成新的概率表Prob_table_new,并且可以由硬件熵引擎115/113选择性地使用新概率表Prob_table_new用于下一图像的熵处理(例如,熵编码/解码)。
在本发明的一些实施例中,概率表Prob_table被完全加载到内部存储设备114/112中用于熵编码/解码。将整个概率表Prob_table加载到内部存储设备114/112可能需要较大的缓冲区大小。然而,可能的是,一个图像的熵编码/解码不需要概率表Prob_table中的所有表内容。本发明还提出仅将概率表Prob_table的所需部分加载到内部存储设备114/112中用于熵编码/解码。以这种方式,当一个图像被熵编码/解码时,可以减少分配在内部存储设备114/112中的概率表缓冲区的大小,从而允许内部存储设备114/112具有可用于视频编码器106/视频解码器104的其他功能的更多空闲存储空间。
图11是根据本发明的实施例的概率表加载方法的流程图。在步骤1102,检查当前图像是否为key_frame或intra_only。当当前帧不是key_frame或intra_only时,流程继续步骤1106。在步骤1106,加载完整概率表。当当前帧是key_frame或intra_only时,流程继续步骤1104。在步骤1104,加载部分概率表(例如,仅包含帧内语法的概率表)。图12(A)和图12(B)是根据本发明的实施例的完整概率表和部分概率表的示意图。图12(A)示出了包括帧内语法和帧间语法的概率内容的完整概率表Prob_table,例如“partition_mode”、“tx_related”、“intra_mode”、“inter_mode相关”、“filter_mode”、“ref_frame_mode”和“运动矢量相关”。图12(B)示出了仅包含诸如“partition_mode”,“tx_mode”和“intra_mode”的帧内语法的概率内容的部分概率表Prob_table_intra。当当前图像是帧内图像时,加载部分概率表Prob_table_intra用于帧内图像(intra picture)的熵编码/解码。由于不需要为帧内图像的熵编码/解码而加载完整概率表Prob_table,所以可以减少对帧内图像熵编码/解码的概率表存储要求。
如图12(B)所示,部分概率表Prob_table_intra是完整概率表Prob_table的一部分。然而,这仅仅是为了说明的目的,并不意味着对本发明的限制。例如,仅包含帧内语法的概率表可以具有不包括在仅包含帧间语法的概率表中的表内容。对于另一示例,仅包含帧间语法的概率表可以具有不包括在仅包含帧内语法的概率表中的表内容。对于另一个示例,仅包含帧内语法的概率表和仅包含帧间语法的概率表可以是部分相同的并且部分地不同。图13是根据本发明的实施例的另一概率表加载方法的流程图。在步骤1302,检查当前图像是否是帧内图像。当当前帧是帧内图像时,流程进行到步骤1304。在步骤1304,加载仅包含帧内语法的概率表,用于帧内图像的熵编码/解码。当当前帧是帧间图像时,流程进行到步骤1306。在步骤1306,加载仅包含帧间语法的概率表,用于帧间图像的熵编码/解码。
简而言之,可以检查帧类型和/或帧级语法以决定熵编码/解码当前图像实际需要的概率表内容。因此,基于帧类型和/或帧级语法,加载仅包含对当前图像进行熵编码/解码所需的概率表内容的概率表。由于没有加载包含熵编码/解码当前图像所需的概率表内容的完整概率表和对当前图像进行熵编码/解码所不需要的概率表内容,所以对当前图像的熵编码/解码的概率表存储要求可以减少。
文中描述的主题有时示出了包含在其它不同部件内的或与其它不同部件连接的不同部件。应当理解:这样描绘的架构仅仅是示例性的,并且,实际上可以实施实现相同功能的许多其它架构。在概念意义上,实现相同功能的部件的任何布置是有效地“相关联的”,以使得实现期望的功能。因此,文中被组合以获得特定功能的任意两个部件可以被视为彼此“相关联的”,以实现期望的功能,而不管架构或中间部件如何。类似地,这样相关联的任意两个部件还可以被视为彼此“可操作地连接的”或“可操作地耦接的”,以实现期望的功能,并且,能够这样相关联的任意两个部件还可以被视为彼此“操作上可耦接的”,以实现期望的功能。“操作上可耦接的”的具体示例包含但不限于:实体地可联结和/或实体地相互、作用的部件、和/或无线地可相互作用和/或无线地相互作用的部件、和/或逻辑地相互作用的和/或逻辑地可相互作用的部件。
此外,关于文中基本上任何复数和/或单数术语的使用,只要对于上下文和/或应用是合适的,本领域普通技术人员可以将复数变换成单数,和/或将单数变换成复数。
本领域普通技术人员将会理解,通常,文中所使用的术语,特别是在所附权利要求(例如,所附权利要求中的主体)中所使用的术语通常意在作为“开放性”术语(例如,术语“包含”应当被解释为“包含但不限干”,术语“具有”应当被解释为“至少具有”,术语“包含”应当被解释为“包含但不限干”等)。本领域普通技术人员还将理解,如果意在所介绍的权利要求陈述对象的具体数目,则这样的意图将会明确地陈述在权利要求中,在缺乏这样的陈述的情况下,不存在这样的意图。例如,为了帮助理解,所附权利要求可以包含使用介绍性短语“至少一个”和“一个或更多个”来介绍权利要求陈述对象。然而,这样的短语的使用不应当被解释为:用不定冠词“一个(a或an)”的权利要求陈述对象的介绍将包含这样介绍的权利要求陈述对象的任何权利要求限制为只包含一个这样的陈述对象的发明,即使在同一权利要求包含介绍性短语“一个或更多个”或“至少一个”以及诸如“一个(a)”或“一个(an)”之类的不定冠词的情况下(例如,“一个(a)”和/或“一个(an)”应当通常被解释为意味着“至少一个”或“一个或更多个”)也如此;上述对以定冠词来介绍权利要求陈述对象的情况同样适用。另外,即使明确地陈述了介绍的权利要求陈述对象的具体数目,但本领域普通技术人员也会认识到:这样的陈述通常应当被解释为意味着至少所陈述的数目(例如,仅有“两个陈述对象”而没有其他修饰语的陈述通常意味着至少两个陈述对象,或两个或更多个陈述对象)。此外,在使用类似于“A、B和C中的至少一个等”的惯用语的情况下,通常这样的结构意在本领域普通技术人员所理解的该惯用语的含义(例如,“具有A、B和C中的至少一个的系统”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。在使用类似于“A、B或C中的至少一个等”的惯用语的情况下,通常这样的结构意在本领域普通技术人员所理解的该惯用语的含义(例如,“具有A、B或C中的至少一个的系统”将包含但不限于具有单独的A、单独的B、单独的C、A和B—起、A和C一起、B和C一起和/或A、B和C一起的系统等)。本领域普通技术人员将进一歩理解,不管在说明书、权利要求书中还是在附图中,表示两个或更多个可替换的术语的几乎任意析取词和/或短语应当理解成考虑包含术语中的一个、术语中的任一个或所有两个术语的可能性。例如,短语“A或B”应当被理解成包含“A”、“B”、或“A和B”的可能性。
尽管已经在文中使用不同的方法、设备以及系统来描述和示出了一些示例性的技术,但是本领域普通技术人员应当理解的是:可以在不脱离所要求保护的主题的情况下进行各种其它修改以及进行等同物替换。此外,在不脱离文中描述的中心构思的情况下,可以进行许多修改以使特定的情况适应于所要求保护的主题的教导。因此,意在所要求保护的主题不限制于所公开的特定示例,而且这样的要求保护的主题还可以包含落在所附权利要求的范围内的所有实施及它们的等同物。
Claims (22)
1.一种视频处理装置,其特征在于,包括:
外部存储设备;
在所述外部存储设备外部的硬件熵引擎,其中所述硬件熵引擎被布置为执行当前图像的熵处理,并且还被布置成在所述当前图像的所述熵处理期间将计数信息输出到所述外部存储设备;以及
在所述外部存储设备外部的软件执行引擎,其中当所述软件执行引擎装载和执行时,软件程序指令所述软件执行引擎将所述计数信息转换为多个计数表内容,并且至少根据所述多个计数表内容在所述外部存储设备中生成计数表,其中,引用所述计数表来对由所述硬件熵引擎选择性地使用的概率表应用后向适应来执行下一图像的熵处理。
2.根据权利要求1所述的视频处理装置,其特征在于,所述软件执行引擎不开始将所述计数信息转换为所述计数表内容,直到所述当前图像被所述熵处理完全处理为止;所述计数信息是所述当前图像的全部计数信息。
3.根据权利要求1所述的视频处理装置,其特征在于,所述软件执行引擎在通过所述熵处理完全处理所述当前图像之前开始将所述计数信息转换为所述计数表内容;所述计数信息是所述当前图像的部分计数信息。
4.根据权利要求3所述的视频处理装置,其特征在于,所述软件程序进一步指示所述软件执行引擎从所述硬件熵引擎获得硬件状态,其中所述硬件状态指示所述计数信息的量;并且所述软件执行引擎根据所述硬件状态将所述计数信息转换为所述计数表内容。
5.根据权利要求4所述的视频处理装置,其中,所述软件执行引擎在当前图像的熵处理期间执行多个转换迭代;软件执行引擎检查硬件状态以确定计数信息的数量是否达到预定值;并且当计数信息的量达到预定值时,软件执行引擎执行转换迭代之一以将计数信息转换为计数表内容。
6.根据权利要求4所述的视频处理装置,其特征在于,所述软件执行引擎在所述当前图像的所述熵处理期间执行多个转换迭代;并且在每次转换迭代期间,所述软件执行引擎将所述计数信息转换为所述计数表内容,而不管可用于所述转换迭代的所述计数信息的数量。
7.根据权利要求1所述的视频处理装置,其特征在于,所述计数表的每个计数值对应于一个语法类型采用一个上下文时解出来的语法设置,其中每个计数值记录一个对应上下文的发生次数和一种对应的语法类型的一个相应的相关语法设置;并且所述计数信息包括每个指示值指示一个上下文和一个语法类型的一个相关联的语法设置的多个指示值。
8.根据权利要求7所述的视频处理装置,其特征在于,所述硬件熵引擎分别为不同的上下文和不同语法类型的相关联的不同语法设置分配不同标识符;并且每个所述指示值是一个标识符。
9.根据权利要求1所述的视频处理装置,其特征在于,所述硬件熵引擎具有布置成存储所述概率表的内部存储设备;并且所述软件执行引擎直接从所述内部存储设备读取所述概率表到所述外部存储设备,并根据所述计数表对所述外部存储设备中的所述概率表上执行所述后向适应。
10.根据权利要求1所述的视频处理装置,其特征在于,所述硬件熵引擎具有布置成存储所述概率表的内部存储设备;所述视频处理装置还包括:
直接存储器访问电路,被布置为将所述概率表从所述内部存储设备传输到所述外部存储设备;以及
所述软件执行引擎根据所述计数表对所述外部存储设备中的所述概率表执行所述后向适应。
11.根据权利要求1所述的视频处理装置,其特征在于,所述硬件熵引擎还被布置为在所述硬件熵引擎可访问的内部存储设备中生成并存储第一部分计数表;并且所述软件程序进一步指示所述软件执行引擎通过组合所述第一部分计数表和第二部分计数表来生成所述计数表,其中基于从所述计数信息转换的所述多个计数表内容生成所述第二部分计数表。
12.一种视频处理方法,其特征在于,包括:
通过硬件熵引擎执行当前图像的熵处理,并且在所述当前图像的熵处理期间将计数信息输出到硬件熵引擎的外部存储设备;以及
执行软件程序以将所述计数信息转换为多个计数表内容,并且至少根据所述多个计数表内容在所述外部存储设备中产生计数表,其中引用所述计数表来对由所述硬件熵引擎选择性地使用的概率表应用后向适应来执行下一图像的熵处理。
13.根据权利要求12所述的视频处理方法,其特征在于,所述软件程序的执行不开始将所述计数信息转换为所述多个计数表内容,直到所述当前图像被所述熵处理完全处理为止;所述计数信息是所述当前图像的全部计数信息。
14.根据权利要求12所述的视频处理方法,其特征在于,在通过所述熵处理完全处理所述当前图像之前,所述软件程序的执行开始将所述计数信息转换为所述多个计数表内容;所述计数信息是所述当前图像的部分计数信息。
15.根据权利要求14所述的视频处理方法,其特征在于,所述软件程序的执行还从所述硬件熵引擎获取硬件状态,其中所述硬件状态指示所述计数信息的量;并且所述软件程序的执行根据所述硬件状态将所述计数信息转换为所述多个计数表内容。
16.根据权利要求15所述的视频处理方法,其特征在于,所述软件程序的执行在所述当前图像的所述熵处理期间执行多次转换迭代,检查所述硬件状态以确定所述计数信息的所述量是否达到预定值,并且当所述计数信息的所述量达到所述预定值时,执行所述多个转换迭代之一以将所述计数信息转换为所述多个计数表内容。
17.根据权利要求15所述的视频处理方法,其特征在于,所述软件程序的执行在所述当前图像的所述熵处理期间执行多个转换迭代;并且在每个转换迭代期间,所述软件程序的执行将所述计数信息转换为所述多个计数表内容,而不管可用于所述转换迭代的所述计数信息的数量。
18.根据权利要求12所述的视频处理方法,其特征在于,所述计数表的每个计数值对应于一个语法类型采用一个上下文时解出来的语法设置,其中每个计数值记录一个对应上下文的发生次数以及一种对应的语法类型的一个相应的相关语法设置;并且所述计数信息包括每个指示值指示一个上下文和一个语法类型的一个相关联的语法设置的多个指示值。
19.根据权利要求18所述的视频处理方法,其特征在于,所述硬件熵引擎分别为不同的上下文和不同语法类型的相关联的不同语法设置分配不同标识符;并且每个指示值是一个标识符。
20.根据权利要求12所述的视频处理方法,其特征在于,所述硬件熵引擎具有布置成存储所述概率表的内部存储设备;并且所述视频处理方法还包括:
执行所述软件程序以直接从所述内部存储设备读取所述概率表到所述外部存储设备,并且根据所述计数表对所述外部存储设备中的所述概率表执行所述后向适应。
21.根据权利要求12所述的视频处理方法,其特征在于,所述硬件熵引擎具有布置成存储所述概率表的内部存储设备;所述视频处理方法还包括:
通过直接存储器访问传送方式将所述概率表从所述内部存储设备发送到所述外部存储设备;以及
执行所述软件程序以根据所述计数表对所述外部存储设备中的所述概率表执行所述后向适应。
22.根据权利要求12所述的视频处理方法,其特征在于,还包括:
通过所述硬件熵引擎生成和存储所述硬件熵引擎可访问的内部存储设备中的第一部分计数表;
其中所述软件程序通过组合所述第一部分计数表和第二部分计数表来生成所述计数表,并且基于从所述计数信息转换的所述多个计数表内容生成所述第二部分计数表。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662299067P | 2016-02-24 | 2016-02-24 | |
US15/439,964 | 2017-02-23 | ||
US15/439,964 US10375395B2 (en) | 2016-02-24 | 2017-02-23 | Video processing apparatus for generating count table in external storage device of hardware entropy engine and associated video processing method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108513138A true CN108513138A (zh) | 2018-09-07 |
CN108513138B CN108513138B (zh) | 2020-11-20 |
Family
ID=59630430
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710969540.4A Active CN108513138B (zh) | 2016-02-24 | 2017-10-18 | 视频处理装置及相应视频处理方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10375395B2 (zh) |
CN (1) | CN108513138B (zh) |
TW (1) | TWI620434B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111757119A (zh) * | 2020-05-21 | 2020-10-09 | 福州瑞芯微电子股份有限公司 | 一种软硬件协同工作实现vp9 prob更新的方法和存储设备 |
CN114025162A (zh) * | 2021-11-12 | 2022-02-08 | 安谋科技(中国)有限公司 | 熵解码方法、介质、程序产品和电子设备 |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10848386B2 (en) * | 2015-12-08 | 2020-11-24 | Siemens Aktiengesellschaft | Method and apparatus for automatic identification of an outage of a network node |
US10922026B2 (en) * | 2018-11-01 | 2021-02-16 | Fungible, Inc. | Data processing unit having hardware-based range encoding and decoding |
DE102021106883A1 (de) * | 2021-03-19 | 2022-09-22 | Infineon Technologies Ag | Komprimierung in der gitterbasierten Kryptografie |
US11638020B2 (en) * | 2021-03-30 | 2023-04-25 | Qualcomm Incorporated | Video processing using multiple bitstream engines |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728377B1 (en) * | 1998-07-09 | 2004-04-27 | Ricoh Company, Ltd. | Coding apparatus and an information processing apparatus provided with the coding apparatus |
CN101383968A (zh) * | 2008-09-27 | 2009-03-11 | 北京创毅视讯科技有限公司 | 视频解码器、视频解码方法和移动多媒体终端芯片 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和系统 |
CN105874774A (zh) * | 2014-05-19 | 2016-08-17 | 联发科技股份有限公司 | 用于在帧的处理过程中保持计数表的计数表保持装置以及相关的保持方法 |
CN106358043A (zh) * | 2015-07-15 | 2017-01-25 | 联发科技股份有限公司 | 混合视频解码装置和相关的混合视频解码方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI428850B (zh) | 2006-06-08 | 2014-03-01 | Via Tech Inc | 解碼方法 |
US8174532B2 (en) | 2006-12-10 | 2012-05-08 | Apusone Technology Inc. | Programmable video signal processor for video compression and decompression |
GB2496197A (en) | 2011-11-07 | 2013-05-08 | Sony Corp | Frequency Domain Video Data Reordering for Encoding |
US20140205012A1 (en) | 2013-01-21 | 2014-07-24 | Mediatek Inc. | Method and apparatus using software engine and hardware engine collaborated with each other to achieve hybrid video encoding |
-
2017
- 2017-02-23 US US15/439,964 patent/US10375395B2/en active Active
- 2017-02-24 TW TW106106266A patent/TWI620434B/zh not_active IP Right Cessation
- 2017-10-18 CN CN201710969540.4A patent/CN108513138B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6728377B1 (en) * | 1998-07-09 | 2004-04-27 | Ricoh Company, Ltd. | Coding apparatus and an information processing apparatus provided with the coding apparatus |
CN101383968A (zh) * | 2008-09-27 | 2009-03-11 | 北京创毅视讯科技有限公司 | 视频解码器、视频解码方法和移动多媒体终端芯片 |
CN101710986A (zh) * | 2009-11-18 | 2010-05-19 | 中兴通讯股份有限公司 | 基于同构多核处理器的h.264并行解码方法和系统 |
CN105874774A (zh) * | 2014-05-19 | 2016-08-17 | 联发科技股份有限公司 | 用于在帧的处理过程中保持计数表的计数表保持装置以及相关的保持方法 |
CN106358043A (zh) * | 2015-07-15 | 2017-01-25 | 联发科技股份有限公司 | 混合视频解码装置和相关的混合视频解码方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111757119A (zh) * | 2020-05-21 | 2020-10-09 | 福州瑞芯微电子股份有限公司 | 一种软硬件协同工作实现vp9 prob更新的方法和存储设备 |
CN114025162A (zh) * | 2021-11-12 | 2022-02-08 | 安谋科技(中国)有限公司 | 熵解码方法、介质、程序产品和电子设备 |
CN114025162B (zh) * | 2021-11-12 | 2024-04-09 | 安谋科技(中国)有限公司 | 熵解码方法、介质、程序产品和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
TWI620434B (zh) | 2018-04-01 |
CN108513138B (zh) | 2020-11-20 |
US20170244967A1 (en) | 2017-08-24 |
US10375395B2 (en) | 2019-08-06 |
TW201740732A (zh) | 2017-11-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108513138A (zh) | 视频处理装置及相应视频处理方法 | |
US7769088B2 (en) | Context adaptive binary arithmetic code decoding engine | |
CN104584560B (zh) | 在去块时使用色度量化参数偏移 | |
US20080240234A1 (en) | High speed context memory implementation for h.264 | |
CN101040535B (zh) | 转换成中间格式的两步算术解码 | |
JP5172945B2 (ja) | ビットストリーム復号化装置及び方法 | |
WO2007014509A1 (fr) | Système et appareil de décodage arithmétique adaptatif basé sur le contexte | |
CN101401428B (zh) | 用于编码/解码视频数据的装置和方法 | |
US9001882B2 (en) | System for entropy decoding of H.264 video for real time HDTV applications | |
CN107395212A (zh) | 熵编码设备和方法、熵解码设备和方法、及存储介质 | |
CN104350751B (zh) | 扩展数据处理 | |
CN109672893A (zh) | 一种视频解码方法、装置、设备和存储介质 | |
CN106488232A (zh) | 编码和解码图像的方法、编码和解码设备 | |
US20090103631A1 (en) | Device and method for unified codes | |
CN106358043A (zh) | 混合视频解码装置和相关的混合视频解码方法 | |
CN103873872B (zh) | 参考图像管理方法及装置 | |
CN106358042A (zh) | 使用视频图像的帧间预测的并行解码器 | |
KR101372418B1 (ko) | 비트스트림 디코딩 장치 및 방법 | |
WO2008123709A1 (en) | Bitstream decoding device and method having decoding solution | |
KR100970145B1 (ko) | 부호화/복호화 방법 및 장치 | |
WO2009005225A1 (en) | Device and method for encoding/decoding video data | |
KR20100115238A (ko) | 코덱 설계 방법 및 장치 | |
KR101396560B1 (ko) | 동영상 데이터의 부호화/복호화 방법 및 장치 | |
CN105847801B (zh) | 具有新颖的二进制元素译码多标准视频译码器 | |
KR20080006243A (ko) | 통합 코덱 장치 및 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220218 Address after: ottawa Patentee after: Xueshan Technology Co.,Ltd. Address before: Hsinchu Science Park Road, Taiwan city of Hsinchu China Dusing 1 Patentee before: MEDIATEK Inc. |
|
TR01 | Transfer of patent right |