首页> 中国专利> 用于计算表示视频画面块中包含的像素值的量化变换系数的游程-幅度表示的方法、设备和计算机可读介质

用于计算表示视频画面块中包含的像素值的量化变换系数的游程-幅度表示的方法、设备和计算机可读介质

摘要

一种用于计算量化变换系数的游程-幅度表示的处理,包括通过把所有大于Max的量化变换系数设置为等于Max并且将所有小于Min的量化变换系数设置为等于Min而把每个量化变换系数紧缩在值区间(Max,Min);对所述量化变换系数重新排序以产生重新排序的量化变换系数的阵列C;通过生成阵列M来掩蔽C,M在与C的具有非零值的位置相对应的位置中包含1并且在与C的具有零值的位置相对应的位置中包含0;以及对M中每个包含1的位置,通过把幅度值设置为等于C中相应位置出现的值并且把游程值设置为等于自M中前次出现1之后相对于M中当前位置的前面位置的数目而生成游程-幅度表示。

著录项

  • 公开/公告号CN102273204A

    专利类型发明专利

  • 公开/公告日2011-12-07

    原文格式PDF

  • 申请/专利权人 坦德伯格电信公司;

    申请/专利号CN200980153613.6

  • 发明设计人 拉斯·皮特·恩勒森;

    申请日2009-12-28

  • 分类号H04N7/26;H04N7/50;

  • 代理机构中原信达知识产权代理有限责任公司;

  • 代理人张焕生

  • 地址 挪威吕萨科

  • 入库时间 2023-12-18 04:04:27

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-12-09

    未缴年费专利权终止 IPC(主分类):H04N19/122 专利号:ZL2009801536136 申请日:20091228 授权公告日:20140514

    专利权的终止

  • 2014-05-14

    授权

    授权

  • 2012-05-23

    专利申请权的转移 IPC(主分类):H04N7/26 变更前: 变更后: 登记生效日:20120413 申请日:20091228

    专利申请权、专利权的转移

  • 2012-01-25

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20091228

    实质审查的生效

  • 2011-12-07

    公开

    公开

说明书

相关申请的交叉引用

本申请要求于2009年1月6日提交的美国临时申请No.61/142648的 权益,以及于2008年12月30日提交的挪威专利申请No.20085407的优先 权,这二者的全部主题通过引用结合于此。

技术领域

本公开涉及计算机设备或系统中的视频压缩系统的变换系数数据 的熵编码/解码的实施方式。

背景技术

运动画面的实时传输在多种应用中得以采用,诸如但不限于视频 会议、网络会议、电视(TV)广播和视频电话。表示运动画面需要大 量的信息,因为通常通过用8个比特(bit)即一个字节表示画面中每个 像素来描述数字视频。这种未压缩的视频数据导致大的比特量,并且 由于有限的带宽而无法在常规通信网络和传输线路上传输。

因此,使得能够实时视频传输需要进行大程度的数据压缩。然而, 数据压缩会影响画面质量。因此,已经投入巨大努力来研发压缩技术, 使得可通过带宽有限的数据连接进行高质量视频的实时传输。在视频 压缩系统中,主要的目标在于利用尽可能小的容量表示视频信息。容 量用比特来定义,或为恒定值或是比特/时间单位。在两种情况下,目 标是减少比特的数目。

在运动图像专家组(MPEG)和H.26标准中描述了传统的视频编码 方法。视频数据在传输之前经历四种主要处理(即,预测处理、变换 处理、量化处理和熵编码)。

预测处理减少待传输的视频序列中每幅画面所需的比特数量。该 处理利用了序列的某些部分与该序列的其他部分的相似性。由于预测 器部分对于编码器和解码器都是已知的,所以仅需传输差异。这种差 异通常需要少很多的容量用于其表示。预测主要是基于表示运动的矢 量。传统上,对方块尺寸(例如,16×16像素)执行预测处理。注意, 在一些情况下,像素的预测是基于使用相同画面中的相邻像素而不是 先前画面的像素。这被称作帧内预测(不要与帧间预测相混淆)。

表示为数据块(例如,4×4像素)的残差(residual)仍然包含内 部相关性。传统方法利用了这一点并且执行二维块变换。在H.263中, 使用8×8的离散余弦变换(DCT),而在H.264中,则使用4×4的整数 型变换。这将4×4像素变换为较之像素表示通常可由更少的比特来表 示的4×4的变换系数。具有内部相关性的4×4像素阵列的变换可以产 生较之原始4×4像素块具有更少非零值的4×4变换系数块。

变换系数的直接表示对于许多应用而言成本过高。为了进一步减 小数据表示,执行量化处理。因此,变换系数要经历量化。一种量化 方式是参数值除以一个数,产生可以由较少比特表示的较小数字。这 种量化处理导致与未压缩序列稍有不同的重构视频序列。这种现象被 称作“有损编码”。来自量化部分的结果被称作量化变换系数。

熵编码是一种特殊形式的无损数据压缩。熵编码包括利用将相似 频率聚集成组的游程长度编码(RLE)算法以“之字形”顺序布置图像 成分,插入编码0的长度,并且接着对剩下的部分使用Huffman编码。

在H.264编码中,对块的DCT系数进行重新排序以把阵列中的非零 系数聚集在一起,使得能够有效表示其余的零值系数。图1示出之字形 的重新排序路径100(即,扫描顺序)。之字形扫描100的顺序图案根 据每个位置的非零系数的概率来构造。由于先前DCT的特性,块中非 零系数的概率沿着DCT块的向右下的对角方向降低。如图1所示,当以 之字形图案100对系数重新排序时,非零系数通常趋于集中在阵列的开 头的各位置。

重新排序处理的输出包括一维阵列,其包含开头附近的一个或多 个非零系数聚簇,随后为零系数串。由于大量的零值,所以该阵列被 进一步表示为一系列(游程,幅度)对,其中“游程(run)”指示一个非 零系数前面的零的数目,而“幅度(level)”则指示该非零系数的量 值。例如,输入阵列16、0、0、-3、5、6、0、0、0、0、-7将具有以下 相应的游程-幅度值:(0,16),(2,-3),(0,5),(0,6),(4,-7)。当把所述之字 形阵列变换为游程-幅度值时,对所有系数做循环并检查它们是否非零, 这在计算上是高成本的。

发明内容

本公开描述了一种方法、系统和计算机可读介质。例如,有一种 方法,用于计算表示视频画面块中所包含像素值的量化变换系数的游 程-幅度表示,所述方法包括:在视频处理设备,通过把所有大于Max 的量化变换系数设置为等于Max并且把所有小于Min的量化变换系数 设置为等于Min而把每个量化变换系数紧缩在值区间[Max,Min];在所 述视频处理设备,根据依赖块中各位置的预定顺序对所述量化变换系 数重新排序以产生重新排序的量化变换系数的阵列C;在所述视频处理 设备,通过生成阵列M来掩蔽C,所述M在对应于C的具有非零值的位 置的位置包含1并且在对应于C的具有零值的位置的位置具有0;在所述 视频处理设备,对于M中包含1的每个位置,通过把幅度值设置为等于 C的相应位置中出现的值而生成游程-幅度表示;以及在所述视频处理 设备,对于M中每个包含1的位置,将游程值设置为等于自M中前次出 现1之后相对于M中当前位置的前面位置的数目。

应当显而易见,通过所公开的实施例及其扩展可以获得多种有利 特征和效果。应该理解,可以构造任意实施例包括这里所公开实施例 中的一个或多个特征和有益效果,而非其他。因此,应该理解,这里 所讨论的实施例是作为示例被提供而并非为限制,特别是可以形成实 施例以实践本发明而不必包括所公开示例的每个特征。

附图说明

通过阅读随后的描述以及研究附图,将更好地理解本公开。这些 仅被提供作为实施例的非限制性示例。其中:

图1示出在熵编码之前用于对变换系数排序的传统之字形图案;

图2是图示游程-幅度编码的传统实施方式的流程图;

图3是图示本发明的游程-幅度编码实施例的流程图;

图4是本公开的不同步骤期间的变换系数的比特掩蔽的示例;

图5图示了可以在其上实施本公开实施例的计算机系统。

具体实施方式

图2是示出在传统实施方式中如何计算根据运动图像专家组 (MPEG-4)和H.264的run-level代码的流程图。在对块中的变换系数 进行量化之后(Quant C)201,将Run变量和位置标号(I)设置为零 203。接着,根据图1所示的前面所提到的之字形图案100,将量化系 数重新排序205为一维阵列。该处理接着进入循环来解析所述阵列以 确定run-level值。首先,检查是否超出阵列中位置的数目(即,I>16) 207。如果否,则接着检查阵列中的当前位置是否包含零209。如果是, 则在步骤217和219处递增Run变量和位置标号(I),并且该处理进 行至循环的开始处。如果当前位置包含非零值,则在步骤211和213, 将当前的Run变量和当前位置的值存储为Run-Level值。接着在步骤 217和219递增Run变量和位置标号(I)之前,对Run变量清零215, 并且该处理进行至循环的开始。该处理在位置标号(I)超出阵列的最 大尺寸时结束,所述阵列的最大尺寸在图2所示的示例中为16。

如能够从图2所示的传统实施方式所看到的,所述处理总是必须 进行阵列中的位置数那么多次(即,图2的示例中的16次)的run-level 编码循环。这由于C中的大多数系数为零而变得非常低效,并且在所 有系数上进行循环以及检查它们是否为零在计算上是昂贵的。

图3是图示根据本公开的实施例的流程图。根据该实施例,使用 比特掩蔽和比特扫描指令,使得可以有效跳过所有零值系数。首先, 在步骤301处对块中的变换系数进行量化。在图3的示例中,如图4 的401所示,在矢量C中存储十六个(16)系数。

所述处理接着进行至步骤303,其中对所有量化系数进行紧缩。 在该示例中,通过C++指令PACKUSWB实现紧缩303,如图4的403 所示,其将十六个(16)有符号字变换为无符号整数并且做饱和。换 句话说,如果系数大于和小于无符号字节的范围,则分别将该系数设 置为所述范围的Max或Min值,在该示例中为255和0。因此,用于 存储每个系数的存储器大小从通常用于存储每个系数所需存储器数量 的两个(2)字节减少为一个(1)字节。

当使用非常低的量化参数时,这是一种近似并且会导致不同的结 果。然而,针对各种视频会议情形的这种近似的广泛监视已经表明这 种近似在任何情况下不会劣化人眼所看到的视频质量。

紧缩步骤303使得能够用一个函数执行系数的重新排序305,而 不必解析循环十六次(16)。这可以通过使用C++函数PSHUFB实现。 该函数有效地以任意顺序精确重排十六个(16)字节。使用PSHUFB 指令对C进行重新排序的示例在图4的405中示出。在图3的示例中, 输入是十六个(16)系数以及如图1所示的之字形顺序100。

下一个步骤是对经量化、紧缩和重新排序的系数进行掩蔽307。 掩蔽通过应用C++函数PCMPGTB和PMOVMSKB来实现。如图4的 409所示,PCMPGTB函数在所有非零值的位置中填入整字节的一(1), 而零值的位置则保持为零(0)不变。注意,一个字节等于8比特,因 此八个(8)二进制的一(1)是一个字节的最大容量。在图4的409 中,十六进制数“ff”表示八个(8)二进制的一(1)(即,如以上所 提到的一个整字节)。如图4的411所示,PMOVMSKB函数根据十六 个(16)字节的最高有效比特产生16比特掩码(即,C的掩码)。当 这两个函数施加在经量化、紧缩和重新排序的系数(C)时,产生的结 果是16比特阵列(M),其中一(1)指示C的非零值的相应位置。

从C导出M,计算run-level值的步骤变得计算量更低并且不需要 针对零值做循环。如以上所提到的,在掩码M中,对C的每个非零值 设置一个比特。因此,在步骤309,当16比特的阵列(M)为零时, 则所有系数为零并且针对该阵列完成run-level编码。

如果阵列M是非零的,则可以在步骤311使用C++函数BSF来计 算C的第一个非零值的标号。BSF或比特前向扫描(Bit Scan Forward) 扫描等于一(1)的第一个比特并且将该第一设置比特的标号存储在寄 存器中。BSF返回整数的最低有效比特的比特标号(即,在M的情况 下,从右侧开始的一(1)的第一个位置)。

因此,当BSF对M应用时,BSF在步骤311所返回的标号等于“游 程(run)”,并且被直接用作C阵列中的查找号以确定“幅度(level)”。 由于已经使用PSHUFB指令重排C,所以这是可能的。

接着在步骤315存储如BSF函数所指示的Run值,并且在查找之 后位于C阵列中该位置的值在步骤313被存储为Level值。

在步骤317,M最终被向右移位“Run+1”次,以从M中清除标 号比特并且为循环的下一次迭代准备M。因此,从M中去除了对应于 已计算run-level值的M的内容,并且可以按相同的方式应用循环来计 算其余的run-level值(即,通过在步骤311再次使用BSF函数扫描M, 其寻找M的下一个非零值)。

由于通过有效使用BSF指令跳过了所有的零(0),所以仅需要 非零系数游程来计算所有的“level”和“run”值。由于在量化系数的 块中许多零(0)出现的概率高,因此可以减少实施熵编码时所要解析 的循环数目。

本公开避免了间接的表查找(即,指针追踪)来确定“幅度(level)”, 并且使用单个系数BSF指令来计算“游程(run)”。

此外,本公开提供了利用非零系数游程的run-level编码。例如, 如果C中的五个(5)值是非零的,则仅需要五个(5)经由run-level 编码的游程。因此,避免了检查C的零值,否则这会导致高计算成本 的分支误预测。

图5图示了视频处理装置1201,在该装置1201可实施根据本发 明的用于计算run-level表示的方法。计算系统1201还包括耦合到总线 1202的盘控制器1206,以控制一个或多个用于存储信息和指令的存储 设备,诸如磁性硬盘1207和可拔插介质驱动器1208(例如,软盘驱动 器、只读紧致盘驱动器、读写紧致盘驱动器、紧致盘自动唱机、磁带 驱动器和可拔插磁-光驱动器)。存储设备可以使用适当的设备接口(例 如,小型计算机系统接口(SCSI)、集成电子驱动器(IDE)、增强型 IDE(E-IDE)、直接存储器存取(DMA)或高速-DMA)添加到计算 机系统1201。

计算机系统1201还可以包括专用逻辑设备(例如,专用集成电路 (ASIC))或可配置逻辑设备(例如,简单可编程逻辑设备(SPLD)、 复杂可编程逻辑设备(CPLD)和现场可编程门阵列(FPGA))。

计算机系统1201还可以包括耦合到总线1202的显示控制器1209 以控制诸如触摸面板显示器或液晶显示器(LCD)的显示器1210,用 于向计算机用户显示信息。例如,可以在显示器210上显示GUI 308。 所述计算机系统包括输入设备,诸如键盘1211和指针设备1212,用于 与计算机用户进行交互并且向处理器1203提供信息。例如,指针设备 1212可以是鼠标、轨迹球、用于触摸屏传感器的手指或者是用于向处 理器1203传达方向信息和命令选择并且控制光标在显示器1210上移 动的指示棒。此外,打印机可以提供计算机系统1201所存储和/或生成 的数据的打印列表。

计算机系统1201响应于处理器1203执行本公开的部分或全部处 理步骤,所述处理器1203执行诸如主存储器1204的存储器中所包含 的一个和多个指令的序列。这样的指令可以被从诸如硬盘1207和可移 动介质驱动器1208的另一计算机可读介质读入主存储器1204。

也可以采用多处理配置中的一个或多个处理器来执行主存储器 1204中所包含的指令序列。在可替选的实施例中,可以使用硬布线电 路来替代软件指令或者与之相结合。因此,实施例并不局限于硬布线 电路和软件的任意特定组合。

如以上所提到的,计算机系统1201包括至少一个计算机可读介质 或者存储器,用于保存根据本公开教导所编程的指令以及用于包含这 里所描述的数据结构、表、记录或其他数据。计算机可读介质的示例 为紧致盘、硬盘、软盘、磁带、磁-光盘、PROM(EPROM、EEPROM、 快闪EPROM)、DRAM、SRAM、SDRAM或者任意其他磁介质、紧 致盘(例如,CD-ROM)或者任意其他光介质、打孔卡、纸带,或者 具有孔洞图案的其他物理介质。其他实施例可以包括使用载波(以下 进行描述),或者计算机能够对其进行读取的其他介质。其他实施例 可以在信号或载波中包括根据本公开教导的指令。

本公开包括存储在任意一个计算机可读介质上或计算机可读介质 的组合上的软件,所述软件用于控制计算机系统1201,用于驱动实施 本发明的一个或多个设备,并且用于使得计算机系统1201能够与人类 用户(例如,印刷制作人员)进行交互。这样的软件可以包括设备驱 动程序、操作系统、开发工具和应用软件,但是并不局限于此。这样 的计算机可读介质进一步包括本公开的用于执行实施本发明时所执行 处理的全部或一部分(如果处理是分布式的)的计算机程序产品。

本实施例的计算机代码设备可以是任意可解释或可执行的代码机 制,包括但不限于脚本、可解释程序、动态链接库(DLL)、Java类 和完整的可执行程序。此外,本实施例的部分处理可了更好的性能、 可靠性和/或成本而可以是分布式的。

这里所使用的术语“计算机可读介质”是指参与向处理器1203提 供指令以供其执行的任意介质。计算机可读介质可以采取多种形式, 包括但不限于非易失性介质或易失性介质。例如,非易失性介质包括 例如光、磁盘和磁-光盘,诸如硬盘1207或可拔插介质驱动器1208。 易失性介质包括动态存储器,诸如主存储器1204。传输介质包括同轴 线缆、铜线和光纤,其包括构成总线1202的线。传输介质还可以采用 声波或光波的形式,诸如在无线电波和红外数据通信期间所生成的那 些。

各种形式的计算机可读介质可以涉及携带一个或多个指令的一个 或多个序列给处理器1203以供其执行。例如,最初所述指令可以被携 带在远程计算机的磁盘上。所述远程计算机可以将用于实施本公开的 全部或一部分的该指令远程地加载到动态存储器并且使用调制解调器 通过电话线路发送所述指令。对于计算机系统1201而言是本地的调制 解调器可以在电话线路上接收数据并且使用红外传送器将所述数据转 换为红外信号。耦合到总线1202的红外解码器可以接收所述红外信号 中所携带的数据并且将所述数据置于总线1202上。总线1202将所述 数据携带到主存储器1204,处理器1203从那里取得并执行所述指令。 主存储器1204所接收的指令可以在由处理器1203执行之前或之后存 储在存储设备1207或1028上。

计算机系统1201还包括耦合到总线1202的通信接口1213。通信 接口1213提供耦合到网络链接1214的双向数据通信,所述网络链接 1214例如被连接到局域网(LAN)1215或者被连接到诸如互联网的其 他通信网络1216。例如,通信接口1213可以是附着到任意分组交换 LAN的网络接口卡。如另一个示例,通信接口1213可以是向相应类型 的通信线路提供数据通信连接的非对称数字订户线路(ADSL)卡、综 合业务数字网(ISDN)卡或者调制解调器。还可以实现无线链接。在 任意这样的实施方式中,通信接口1213发送并接收携带表示各种类型 信息的数字数据流的电、电磁或光信号。

网络链接1214通常通过一个或多个网络向其他数据装置提供数 据通信。例如,网络链接1214可以通过本地网络1215(例如,LAN) 或通过服务提供商所操作的设备向另一计算机提供连接,所述服务提 供商通过通信网络1216提供通信服务。本地网络1214和通信网络1216 例如使用携带数字数据流的电、电磁或光信号以及相关联的物理层(例 如,CAT 5线缆、同轴线缆、光纤等)。携带往来于计算机系统1201 的数字数据的通过各种网络的信号以及处于网络链接1214并且通过通 信接口1213的信号可以被实现为基带信号或者基于载波的信号。基带 信号传输作为未调制电脉冲的数字数据,其表示数字数据比特流,其 中术语“比特”要被宽泛理解为表示符号,其中每个符号传输至少一 个或多个信息比特。还可以使用数字数据来对具有诸如在传导介质传 播上的振幅、相位和/或频率移动键控信号,或者作为电磁波通过传播 介质传送的载波进行调制。因此,数字数据可以作为未调制的基带数 据通过“有线”通信信道进行发送,和/或通过对载波进行调制而在预 定的不同于基带的频带内进行发送。计算机系统1201可以通过(多个) 网络1215和1216、网络链接1214和通信接口1213传送和接收包括程 序代码的数据。此外,网络链接1214可以通过LAN 1215向诸如个人 数字助理(PDA)、膝上电脑或移动电话的移动设备1217提供连接。

此外,应当理解,本发明并不局限于以上所示出和描述的示例性 实施例。虽然已经结合以上概述的示例性实施例对本发明进行了描述, 但是无论是已知的还是当前可能无法预见到的,各种替换、修改、变 化和/或改进会变得显而易见。因此,如以上所给出的本发明的示例性 实施例意在作为说明而非限制。可以进行各种变化而不背离本发明的 精神和范围。因此,本公开意在包含所有现在已知或随后开发的替换、 修改、变化和/或改进。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号