掌桥专利:专业的专利平台
掌桥专利
首页

用于组合无损和有损编解码的方法和系统

文献发布时间:2023-06-19 19:28:50


用于组合无损和有损编解码的方法和系统

相关申请的交叉引用

本申请要求于2021年4月30日提交的题为″METHODS AND SYSTEMS FOR COMBINEDLOSSLESS AND LOSSY CODING″的美国非临时申请序列号17/245,073的优先权权益,其全部内容通过引用并入本文。本申请要求于2020年5月1日提交的题为″METHODS AND SYSTEMSFOR COMBINED LOSSLESS AND LOSSY CODING″的美国临时专利申请序列号63/018,629的优先权权益,其全部内容通过引用并入本文。

技术领域

本发明一般涉及视频压缩领域。具体地,本发明指向用于组合无损和有损编解码的方法和系统。

背景技术

视频编解码器可以包括压缩或解压缩数字视频的电子电路或软件。它可以将未压缩的视频转换为压缩格式,或反之亦然。在视频压缩的上下文中,压缩视频(和/或执行其某种功能)的设备通常可以被称为编码器,并且解压缩视频(和/或执行其某种功能)的设备可以被称为解码器。

压缩数据的格式可以符合标准视频压缩规范。压缩可能是有损的,因为压缩视频缺少原始视频中存在的一些信息。其结果可能包括解压缩视频可能具有比原始未压缩视频更低的质量,因为没有足够的信息来准确地重构原始视频。

在视频质量、用于表示视频的数据量(例如,由比特率确定)、编码和解码算法的复杂性、对数据丢失和错误的敏感性、编辑的容易性、随机访问、端到端延迟(例如,等待时间)等之间可能存在复杂的关系。

运动补偿可以包括通过考虑视频中的相机和/或对象的运动来预测给定参考帧(诸如先前和/或未来帧)的视频帧或其一部分的方法。它可以在用于视频压缩的视频数据的编码和解码中使用,例如在使用运动图像专家组(MPEG)的高级视频编解码(AVC)标准(也称为H.264)的编码和解码中使用。运动补偿可以关于参考图片到当前图片的变换来描述图片。在与当前图片比较时,参考图片可以在时间上是先前的,在与当前图片比较时是未来的。当可以从先前发送和/或存储的图像精确地合成图像时,可以提高压缩效率。

发明内容

在一方面,一种编码器包括电路,该电路被配置为接收输入视频,选择当前帧,识别要使用第一无损编码协议进行编码的当前帧的第一区域,以及编码当前帧,其中编码当前帧还包括使用第一无损编码协议编码第一区域。

一种组合无损和有损编解码的方法包括:由编码器接收输入视频,由编码器选择当前帧,由编码器识别要使用第一无损编码协议进行编码的当前帧的第一区域,以及由编码器编码当前帧,其中编码当前帧还包括使用第一无损编码协议编码第一区域。

在附图和下面的描述中阐述了本文描述的主题的一个或更多个变型的细节。根据该描述和附图以及权利要求,本文描述的主题的其他特征和优点将是显而易见的。

附图说明

出于说明本发明的目的,附图示出了本发明的一个或多个实施例的各方面。然而,应当理解,本发明不限于附图中所示的精确布置和手段,其中:

图1是示出具有多个子图片的帧的示例性实施例的框图;

图2是具有两个子图片的帧的示例性实施例的图示;

图3是示出根据当前主题的一些实施方式的用于解码视频的示例过程的过程流程图;

图4是示出根据当前主题的一些实施方式的能够对比特流进行解码的示例解码器的系统框图;

图5是示出根据当前主题的一些实施方式的用于对视频进行编码的示例过程的过程流程图;

图6是示出根据当前主题的一些实施方式的对视频进行编码的示例过程的过程流程图;以及

图7是可以用于实现本文公开的方法中的任何一种或多种及其任何一个或多个部分的计算系统的框图。

附图不一定按比例绘制,并且可以通过虚线、图解表示和局部视图来示出。在某些情况下,可能已经省略了对于理解实施例不是必需的或使得其他细节难以感知的细节。在各附图中相同的附图标记表示相同的元件。

具体实施方式

在传统的视频编解码系统中,视频序列被划分为图片组(GOP)。在时间和空间预测的意义上,每个GOP是自包含的。通常,组中的第一图片被用作后续图片的参考图片。图片之间的时间和空间关系允许使用预测编解码进行非常有效的压缩。

过去的编解码系统通常使用有损编解码来操作,其中来自编码帧的一些信息在编码过程期间被省略并且在解码期间未被恢复。这种有损过程可能牺牲解码帧和/或视频图片中的一定程度的细节和/或分辨率以实现更高程度的效率,例如但不限于通过减少在比特流中从编码器发送到解码器的数据量、用于编码和/或解码图片帧或图片组的处理时间和/或存储器资源等。

上述过程的替代方法可以包括无损编码,其中帧被编码和解码而没有信息丢失或具有可忽略的信息丢失;这可以在输出帧和/或视频图片中产生更大的分辨率和/或其他细节。然而,虽然无损编码和解码对于某些种类的图像处理可能偶尔更有效,如下面进一步详细描述的,但是无损编码在存储器资源和处理时间方面也可能非常昂贵。这在超高清(UHD)视频编解码中特别明显,其中图片或图像尺寸可以高达8K×4K(7680×4320);大的图片尺寸可能对芯片和/或模块设计提出巨大的挑战。对此,一个原因是UHD在运动估计和片上或其他处理存储器中需要更大的搜索范围,用于缓冲用于运动估计和补偿的参考块。由于涉及更大的图片尺寸,UHD处理甚至可能对有损编码和解码提出挑战。

本文公开的实施例使用组合的无损和有损视频压缩编解码来实现更有效的信令、解码和编码。在实施例中,可以首先基于质量和计算要求将图片划分为子图片。编码器可以创建与CPU或执行图片和/或GOP的编码和/或解码的其他设备、电路或组件上的处理核(或硬件线程)一样多的子图片。由于每个子图片可以被独立地编解码,因此这种形式的任务划分可以允许通过有效地使用所有可用的计算资源来进行有效的编码和/或解码。此外,无损编码可以提供比使用变换和量化的有损编解码更好的压缩,例如对于整个帧的某些子图片;因此,组合的无损和有损编解码可以产生优于单独的无损编解码的性能。

在一些实施方式中,使用样本块作为基本单元来执行图片分段。样本块可以具有均匀的样本块尺寸,其可以是边长,以像素正方形的像素为单位;例如但不限于,本文公开的实施例可以使用作为基本单元的4×4样本块以及包括计算4×4样本块的频率分量的空间活动的测量。通过利用4×4块作为基本分段尺寸,当前主题的一些实施方式可以允许编码器的更精细的粒度,并且这种尺寸与建立的变换块尺寸对准,使得能够利用标准和定义的变换矩阵,这可以提高编码效率。此外,这种方法可以与使用相对大尺寸的固定块结构的一些现有编码方法形成对比。本领域技术人员在阅读本公开的全部内容时将理解,虽然为了简洁起见,在许多随后的示例中描述了4×4样本块,但是通常根据任何测量方法的任何尺寸或形状的样本块可以用于图片分割和/或分段。

现在参考图1,示出了被划分为多个子图片的当前帧的示例性实施例。子图片可以包括小于当前帧的当前帧的任何部分;当前帧的子图片可以组合以覆盖所有当前帧。尽管图1示出了被划分为两个或四个子图片的示例性当前帧,但是已经查看了本公开的全部内容的本领域技术人员将理解,对于分辨率、效率或任何其他考虑,可以适当地使用任何数量的子图片。

仍然参考图1,子图片可以具有任何合适的形状,包括但不限于正方形和/或矩形形状、由具有正方形和/或矩形形状的两个或更多个块的组合定义的形状等。可以使用块的一个或多个部分和/或特征的坐标来识别和/或用信号通知每个块,其中坐标可以指示从帧和/或图片的一个或多个角和/或边测量的跨帧和/或图片的像素数量。例如但不限于,可以使用顶点的坐标来识别块,例如用于识别矩形块的两个x坐标和两个y坐标。可替代地或附加地,可以使用点、线和/或形状的任何合适的几何描述来识别子图片和/或其部分,包括但不限于使用如由线性方程或数学上等效的表达式(例如线段端点)定义的一个或多个线段的、使用例如但不限于使用指数或其他曲线定义的一个或多个弯曲边缘的几何分割等。

继续参考图1,子图片可彼此分开地被编解码。例如但不限于,可以使用第一处理器线程对多个子图片的第一区域进行编码和/或解码,并且可以使用第二处理器线程对第二区域元素进行解码。如本文所使用的″处理器线程″可以包括任何处理器核和/或本领域技术人员在阅读本公开的全部内容时可以想到的、能够执行多线程并行过程的线程的其他硬件元件。在实施例中,在每个子图片被独立地编解码的情况下,这种形式的任务分割可以允许通过有效地使用所有可用的计算资源来进行高效编码。

仍然参考图1,无损编解码可以选择性地应用于图片的块的子集,其中出于上述一个或多个原因,期望在没有任何损失的情况下保留源视频。作为非限制性示例,可以出于编解码效率的原因来选择用于无损编解码的图片的子集。在此类情况下,可以在评估以有损模式和无损模式编解码CTU的速率失真(RD)成本之后做出无损编解码模式决策。在某些用例中,出于由应用指定的原因,视频的部分可以由用户选择以无损模式进行编码。非限制性示例可以包括其中用户期望源质量保持的帧的部分的情况。当做出这样的用户选择时,整个区域可以被标记为使用无损编解码而不执行任何RD分析。

可替代地或附加地,并且进一步参考图1,子图片可以由编码器和/或其他硬件和/或软件组件和/或过程识别为图片的分区、区域和/或细分,其中检测到和/或存在更大量的运动量;这样的区域可以被识别为子图片可以被认为是重要的并且使用无损编解码来编码,而具有很少或没有运动的子图片可以使用有损编解码来编解码。图2中示出了示例,其中图片200被划分为两个子图片:具有运动的第一区域204,以及没有运动的第二和/或第三区域208。如上所述,在一些情况下,与使用变换和量化的有损编解码相比,无损编解码可以给出更好的压缩。在替代或额外示例中,图片200可以被划分成使用第一无损协议编码的第一区域204、使用第二无损协议编码的第二区域(未示出)及使用有损协议编码的第三区域。

再次参看图1,图片可以被划分成子图片、切片及图块。块(CTU)可为可在帧内或帧间编解码模式中被编解码的编解码单元。子图片可包含单个CTU及/或多个CTU。在实施例中,CTU子集中的每个CTU可用信号通知在CTU中是否使用无损编解码;可替代地或附加地,可一起用信号通知CTU的集合,例如但不限于连续定位的CTU的集合。无损和/或有损编解码可以在提供给比特流的一个或多个报头中用信号通知。例如而非限制,可通过在CTU报头中用信号通知无损及/或有损编解码模式而在无损编解码模式中编解码CTU。可替代地或附加地,可以在较高级语法单元处用信号通知用于块子集(CTU)的无损编解码的选择性使用。例如,图块、切片及/或子图片报头可用信号通知无损编解码模式用于该语法单元中的所有CTU。子图片报头可以显式地存在,或者使用诸如另一报头(诸如先前用信号通知的图片报头)的标识符的机制通过引用被包括。

作为非限制性示例,且继续参考图1,子图片报头、CTU报头和/或其它报头内的数据和/或逻辑可包括(但不限于)第一比特,其指示是否启用无损模式信令,或换句话说,编码器和/或解码器是否应用信号通知和/或接收指示无损和/或有损模式是否正用于相关CTU、子图片等的信号。子图片报头、CTU报头和/或其他报头内的数据和/或逻辑可以包括但不限于第二比特,其指示无损和/或有损模式,其中无损模式是使用如上所述的无损编码和解码协议对相关CTU、子图片等进行编码和解码的模式。以下是可以采用的逻辑和数据的非限制性和说明性示例。

Sub_picture_header{

..

..

..

lossless_mode_signaling[1-bit]

if(lossless_mode_signaling){

lossless_mode[1bit];

}

..

..

...

}

仍然参考图1,经配置以执行本公开中所描述的过程的编码器及/或解码器可经配置以发信号通知及/或检测所使用的无损编码协议,例如使用对应于无损编码协议的标识符及/或比特。可替代地或附加地,编码器和/或解码器可以被配置为操作特定的无损编码和解码协议,例如与给定标准、版本或采用统一标准的其他方法一致。可以存在两个或更多个标准协议,可以使用足够数量的比特对两个或更多个潜在选择进行编码,以在比特流中用信号通知对其的选择。

继续参考图1,无损编解码协议可以包括用于图像、视频、帧、图片、子图片等的无损编码的任何协议。作为非限制性示例,编码器和/或解码器可以实现无损编解码以绕过变换编解码阶段并直接编码残差。在本公开中可被称作″变换跳过残差编解码″的此方法可通过应用来自离散余弦变换(DCT)族的变换来跳过从空间域到频域的残差的变换(如下文进一步详细描述的)来完成,如例如以某些形式的基于块的混合视频编解码执行的。无损编码和解码可以根据一个或多个替代过程和/或协议来执行,包括但不限于如在JVET-Q00069的核心实验CE3-1中提出的过程和/或协议,其涉及用于无损编解码的rregular和TS残差编解码(RRC,TSRC),以及用于无损和有损操作模式的RRC和TSRC的修改;JVET-Q0080的核心实验CE3-2,其涉及启用用于无损编解码的块差分脉冲编解码调制(BDPCM)和高级技术;以及BDPCM与不同RRC/TSRC技术的组合等。

进一步参考图1,如本公开中所描述的编码器可以被配置为使用TS残差编解码来编码一或多个字段,其中一或多个字段可包括但不限于任何图片、子图片、编解码单元、编解码树单元、树单元、块、切片、图块和/或其任何组合。如本公开中所描述的解码器可以被配置为根据和/或使用TS残差编解码来解码一个或多个字段。在变换跳过模式中,字段的残差可以给定尺寸(例如但不限于四像素乘四像素的尺寸)的非重叠子块或其它细分的单位进行编解码。可以对要变换的字段中的每个扫描位置的量化索引进行编解码,而不是对最后有效扫描位置进行编解码;可以基于先前细分的级别来推断最终子块和/或细分位置。TS残差编解码可以以前向方式而不是反向方式执行对角线扫描。可以应用前向扫描顺序来扫描变换块内的子块以及子块和/或细分内的位置;在实施例中,可以不存在最终(x,y)位置的信令。作为非限制性示例,当所有先前标志都等于0时,可以针对除最终子块之外的每个子块对coded_sub_block_flag进行编解码。sig_coeff_flag上下文建模可以使用简化的模板。sig_coeff_flag的上下文模型可以取决于顶部和左侧相邻值;abs_level_gt1标志的上下文模型也可以取决于左侧和顶部的sig_coeff_flag值。

仍然参考图1,并且作为非限制性示例,在TS残差编解码过程中的第一扫描遍历(pass)期间,可以对显著性标志(sig_coeff_flag)、符号标志(coeff_sign_flag)、大于1的绝对等级标志(abs_level_gtx_flag[0])和奇偶性(parlevel_flag)进行编解码。对于给定的扫描位置,如果sig_coeff_flag等于1,则可以对coeff_sign_flag进行编解码,然后对abs_level_gtx_flag[0](其指定绝对等级是否大于1)进行编解码。如果abs_level_gtx_flag[0]等于1,则附加地对parlevel_flag进行编解码以指定绝对等级的奇偶性。在第二次或随后的扫描遍历中,对于绝对等级大于1的每个扫描位置,可以对i=1...4的多达四个abs_level_gtx_flag[i]进行编解码,以指示给定位置处的绝对等级是否分别大于3、5、7或9。在第三次或最后一次″余数″扫描遍历中,可以在旁路模式下对可以被存储为绝对等级abs_remainder的余数进行编解码。绝对等级的余数可以使用固定的米参数值1进行二值化。

进一步参考图1,第一扫描遍历和第二或″大于-x″扫描遍历中的箱可以被上下文编解码,直到字段中的上下文编解码箱(例如但不限于TU)的最大数量已经用尽。在非限制性示例中,残差块中的上下文编解码箱的最大数量可以被限制为1.75*block_width*block_height,或者等效地,平均每个样本位置1.75个上下文编解码箱。最后一次扫描遍历(如上文所述的余数扫描遍历)中的箱可以被旁路编解码。变量,例如但不限于RemCcbs,可以首先被设置为块或其他字段的上下文编解码箱的最大数量,并且可以在每次对上下文编解码箱进行编解码时减少一个。在非限制性示例中,当RemCcbs大于或等于4时,可以使用上下文编解码箱对第一编解码遍历中的语法元素进行编解码,该语法元素可以包括sig_coeff_flag、coeff_sign_flag,abs_level_gtl_flag和parlevel_flag。在一些实施例中,如果在对第一遍历进行编解码时RemCcbs变得小于4,则可以在剩余扫描遍历和/或第三遍历中对尚未在第一遍历中编解码的剩余系数进行编解码。

仍然参考图1,在完成第一遍历编解码之后,如果RemCcbs大于或等于四,则可以使用上下文编解码箱对第二编解码遍历中的语法元素进行编解码,该语法元素可以包括abs_level_gt3_flag、abs_level_gt5_flag,abs_level/gt7_flag和abs_level-gt9_flag。如果在编解码第二遍历时RemCcbs变得小于4,则在第二遍历中尚未编解码的剩余系数可以在余数和/或第三扫描遍历中编解码。在一些实施例中,使用TS残差编解码进行编解码的块可以不使用BDPCM编解码进行编解码。对于未在BDPCM模式中编解码的块,可以将等级映射机制应用于变换跳过残差编解码,直到已经达到上下文编码箱的最大数量。等级映射可以使用顶部和左侧相邻系数等级来预测当前系数等级,以便降低信令成本。对于给定的残差位置,absCoeff可以被表示为映射前的绝对系数等级,而absCoeffMod可以被表示为映射后的系数等级。作为非限制性示例,其中X0表示左相邻位置的绝对系数等级,而X1表示上相邻位置的绝对系数等级,可以如下执行等级映射:

pred=max(X

=(absCoeffMod<pred)?absCoeff+1:absCoeff

然后可以如上所述对absCoeffMod值进行编解码。在耗尽所有上下文编码箱之后,可以对当前块和/或字段和/或细分中的所有剩余扫描位置禁用等级映射。如果coded_subblock_flag等于1,则可以针对每个子块和/或其他细分执行如上所述的三次扫描遍历,这可以指示子块中存在至少一个非零量化残差。

在一些实施例中,且仍参考图1,当变换跳过模式用于大块时,可使用整个块而不使任何值归零。另外,可在变换跳过模式中移除变换移位。TS残差编解码中的信号的统计特性可以与变换系数的统计特性不同。用于变换跳过模式的残差编解码可以指定最大亮度和/或色度块尺寸;作为非限制性实例,设置可准许变换跳过模式用于尺寸高达MaxTsSize乘MaxTsSize的亮度块,其中MaxTsSize的值可在PPS中用信号通知且可具有全局最大可能值,例如但不限于32。当以变换跳过模式对CU进行编解码时,其预测残差可使用变换跳过残差编解码过程来量化及编解码。

继续参考图1,如本公开中所描述的编码器可经配置以使用BDPCM对一或多个字段进行编码,其中一或多个字段可包括(但不限于)任何图片、子图片、编解码单元、编解码树单元、树单元、块、切片、图块和/或其任何组合。如本公开中所描述的解码器可以被配置为根据和/或使用BDPCM来解码一个或多个字段。BDPCM可以在像素级保持完全重构。作为非限制性示例,具有BDPCM的每个像素的预测过程可以包括四个主要步骤,其可以使用每个像素的块内参考来预测每个像素,然后将其重构以用作块的其余部分中的后续像素的块内参考:(1)块内像素预测,(2)残差计算,(3)残差量化,以及(4)像素重构。

仍然参考图1,块内像素预测可以使用多个参考像素来预测每个像素;作为非限制性示例,多个参考像素可以包括待预测像素p左侧的像素α,p上方的像素β以及p上方和左侧的像素γ。p的预测可以被公式化如下,但不限于:

仍然参考图1,一旦计算出预测值,就可以计算其残差。由于该阶段的残差可以是无损的并且在解码器侧不可访问,因此可以将其表示为

进一步参考图1,可以通过跳过残差变换并对空间域量化进行积分来实现像素级独立性。这可以由线性量化器Q执行以如下计算量化残差值r:

为了适应由量化器参数(QP)施加的正确的速率失真比,BDPCM可以采用在传输-跳过模式方法中使用的空间域归一化,例如但不限于如上所述。经量化残差值r可由编码器发送。

仍然参考图1,BDPCM的另一状态可以包括使用来自先前步骤的p和r的像素重构,其可以例如但不限于在解码器处或由解码器执行,如下:

c=p+r

一旦被重构,当前像素就可用作同一块内的其它像素的块内参考。

当原始像素值远离其预测时,可以在存在相对大的残差的情况下使用BDPCM算法中的预测方案。在屏幕内容中,这可在块内参考属于背景层而当前像素属于前景层的情况下发生,或反之亦然。在这种情况下,其可以被称为″层转换″情况,参考中的可用信息可能不足以进行准确预测。在序列等级,可以在SPS中用信号通知BDPCM启用标志;此标志标可以但不限于仅在SPS中启用变换跳过模式(例如且不限于如上文所描述)的情况下用信号通知。当启用BDPCM时,如果CU尺寸在亮度样本方面小于或等于MaxTsSize乘MaxTsSize且如果CU经帧内编解码,那么可在CU等级发送标志,其中MaxTsSize为允许变换跳过模式的最大块尺寸。该标志可以指示是使用常规帧内编解码还是BDPCM。如果使用BDPCM,则可以发送BDPCM预测方向标志以指示预测是水平的还是垂直的。接着,可使用具有未经滤波参考样本的常规水平或垂直帧内预测过程来预测块。

现在参考图3,示出了组合的无损和有损编解码的方法300的示例性实施例。在步骤305处,解码器接收比特流。在步骤310处,解码器识别比特流中的当前帧。当前帧可以包括第一区域、第二区域和第三区域,其中任何区域可以包括如上所述的任何区域;区域可使用帧报头信息进行标志及/或使用坐标、几何信息、包含于每一区域中的块及/或CTU的标识或类似物来描绘或以其它方式描述。在实施例中,解码器可仅识别当前帧中的第一区域、第二区域及第三区域中的两个区域,而剩余区域可经识别为当前帧的剩余图块、切片、块、CTU等。可以存在多于三个区域;方法300可以包括关于任何附加区域执行的如本公开中所描述的任何处理步骤。

在步骤315处,并且继续参考图3,解码器在比特流中检测第一区域是根据块差分脉冲编解码调制来编码的指示;这可以如上面参考图1至图2所描述的那样执行,但不限于此。检测可以包括块差分脉冲编解码调制被启用的检测和/或在块差分脉冲编解码调制被启用的检测之前,例如如上所述。在实施例中,比特流可以包括与第一区域相对应的子图片报头。检测可以包括检测在子图片和/或区域特定报头中至少第一区域是根据块差分脉冲编解码调制进行编码的指示。子图片报头可以显式地包括在对应于当前帧的数据中。例如但不限于,如果针对序列启用bdpcm,则可以在SPS和/或其他报头中将sps_bdpcm_enabled_flag设置为1。等于1的sps_bdpcm_enabled_flag可以指定intra_bdpcm_luma_flag和/或intra_bdpcm_chroma_flag可以存在于编解码单元和/或用于帧内编解码单元和/或其他字段的其他字段特定语法中。等于0的sps_ndpcm_enabled_fag可以指定在编解码单元和/或用于帧内编解码单元和/或其他字段的其他字段特定语法中不存在intra_bdpcm_luma_flag和/或intra_bdpcm_chroma_flag。当不存在时,可推断sps_bdpcm_enabled_flag的值等于0。在实施例中,等于1的gci_no_bdpcm_constraint_flag可指定给定集合中的所有图片的sps_bdpcm_enabled_flag应等于0,该给定集合可由OlsInScope参数定义但不限于此。等于0的gci_no_bdpcm_constraint_flag可以不施加这样的约束。作为另一非限制性示例,等于1的intra_bdpcm_luma_flag可以指定BDPCM可以应用于位置(x0,y0)处的当前亮度编解码块和/或其他字段,即,变换被跳过;亮度帧内预测模式可以由intra_bdpcm_luma_dirflag指定。例如但不限于,等于0的intra_bdpcm_luma_flag可以指定BDPCM不应用于位置(x0,y0)处的当前亮度编解码块和/或其他字段。当intra_bdpcm_luma_flag不存在时,可推断其等于0。对于x=x0..x0+cbWidth-1,y=y0..y0+cbHeight-1且cIdx=0,可将变量BdpcmFlag[x][y][cIdx]设置为等于intra_bdpcm_luma_flag。intra_bdpem_luma_dir_flag等于0可以指定BDPCM预测方向是水平的。intra_bdpem_luma_dir_flag等于1可以指定BDPCM预测方向是垂直的。对于x=x0..x0+cbWidth-1,y=y0..y0+cbHeight-1且cIdx=0.,可以将变量BdpcmDir[x][y][cIdx]设置为等于intra_bdpcm_luma_dir_flag。可以通过参考与第三子图片和/或当前帧的其他元素相对应的子图片报头的标识符来包括子图片和/或区域。

在步骤320处,并且继续参考图3,解码器在比特流中检测根据传输跳过残差编解码对第二区域进行编码的指示;这可以如上面参考图1至图2所描述的那样执行,但不限于此。检测可以包括检测到启用传输跳过残差编解码和/或在检测到启用传输跳过残差编解码之前,例如如上所述。在实施例中,比特流可以包括与第一区域相对应的子图片报头。检测可以包括:检测子图片报头中的至少第一区域是根据传输跳过残差编解码协议进行编码的指示;这可以包括变换跳过启用标志。例如而非限制,等于1的sh_ts_residual_coding_disabled_flag可指定residual_coding语法结构可用以解析当前切片和/或其它字段的变换跳过块的残差样本。等于0的sh_ts_residual_coding_disabled_flag可指定residual_ts_coding语法结构可用以解析当前切片的变换跳过块的残差样本。当sh_ts_residual_coding_disabled_flag不存在时,可推断其等于0。transform_skip_flag[x0][y0][cIdx]可以指定变换是否可以应用于相关联的变换块。阵列索引x0,y0可以指定所考虑的变换块的左上亮度样本相对于图片的左上亮度样本的位置(x0,y0)。阵列索引cIdx可以指定颜色分量的指示符;例如,它可以对于Y等于0,对于Cb等于1,并且对于Cr等于2。等于1的transform_skip_flag[x0][y0][cIdx]可指定不可将变换应用于相关联的变换块。等于0的transform_skip_flag[x0][y0][cIdx]可指定是否将变换应用于相关联的变换块的决策取决于其它语法元素。变换跳过模式可替代地或附加地被隐式地用信号通知。例如,当transform_skip_flag[x0][y0][cIdx]不存在时,其可如下推断:如果BdpcmFlag[x0][y0][cIdx]等于1,那么可推断transform_skip_flag[x0][y0][cidx]等于1;否则,在BdpcmFlag[x0][y0][cIdx]等于0的情况下,可推断transform_skip_flag[x0][y0][cIdx]等于0。子图片和/或区域特定报头可以被显式地包括在对应于当前帧的数据中。可以通过参考与第三子图片和/或当前帧的其他元素相对应的子图片报头的标识符来包括子图片和/或区域。

在步骤325处,并且继续参考图3,解码器检测第三区域是根据有损编码协议编码的,根据与无损编码协议对应的有损解码协议解码第三区域;这可以根据本文描述的任何有损解码过程来执行,包括包含DCT的过程和如下所述的其他过程。比特流可以包括与第三区域相对应的子图片和/或区域特定报头,并且检测可以在子图片报头中包括第三区域是根据有损编码协议编码的指示。子图片和/或区域特定报头可以被显式地包括在对应于当前帧的数据中。可以通过参考与第三子图片相对应的子图片和/或区域特定报头的标识符来包括子图片和/或区域特定报头,例如如上所述。在实施例中,解码器可以被配置为使用第一处理器线程对第一区域进行解码,如上文所定义的,并且使用第二处理器线程对第三区域元素进行解码。

继续参考图3,解码器可以解码当前帧。解码当前帧可以包括使用与BDPCM编码协议相对应的BDPCM解码协议来解码第一区域。解码当前帧可以包括使用与传输跳过残差编码协议相对应的传输跳过残差解码协议来解码第二区域。解码当前帧可以包括使用对应于有损编码协议的有损解码协议来解码第三区域。

仍然参考图3,解码器可以包括被配置为接收比特流并将比特流解码为量化系数的熵解码器处理器、被配置为处理量化系数(包括执行逆离散余弦)的逆量化和逆变换处理器、解块滤波器、帧缓冲器和帧内预测处理器。第一区域、第二区域和第三区域中的至少一个可以形成四叉树加二叉决策树的一部分。第一区域、第二区域和第三区域中的至少一个包括编解码树单元。在一些实施方式中,第一区域、第二区域和第三区域中的至少一个可以包括编解码树单元、编解码单元或预测单元。

图4是示出能够使用组合的有损和无损编解码协议对比特流428进行解码的示例解码器400的系统框图。解码器400可以包括熵解码器处理器404、逆量化和逆变换处理器408、解块滤波器412、帧缓冲器416、运动补偿处理器420和/或帧内预测处理器424。

在操作中,并且仍然参考图4,比特流428可以由解码器400接收并输入到熵解码器处理器404,熵解码器处理器404可以将比特流的部分熵解码成量化系数。量化系数可以被提供给逆量化和逆变换处理器408,逆量化和逆变换处理器408可以执行逆量化和逆变换以创建残差信号,残差信号可以根据处理模式被添加到运动补偿处理器420或帧内预测处理器424的输出。运动补偿处理器420和帧内预测处理器424的输出可以包括基于先前解码的块的块预测。预测和残差的总和可以由解块滤波器412处理并存储在帧缓冲器416中。

继续参考图4,解码器400可以被设计和/或配置为以任何顺序并以任何重复程度执行本公开中描述的任何实施例中的任何方法、方法步骤或方法步骤序列。例如,解码器400可以被配置为重复执行单个步骤或序列,直到实现期望或命令的结果;可以迭代地和/或递归地执行步骤或步骤序列的重复,使用先前重复的输出作为后续重复的输入,聚合重复的输入和/或输出以产生聚合结果,减少或削减诸如全局变量的一个或多个变量,和/或将较大处理任务划分成一组迭代解决的较小处理任务。解码器400可以并行地执行如本公开中描述的任何步骤或步骤序列,诸如使用两个或更多个并行线程、处理器核等同时和/或基本上同时执行步骤两次或更多次;可以根据适合于在迭代之间划分任务的任何协议来执行并行线程和/或过程之间的任务划分。本领域技术人员在阅读本公开的全部内容时将意识到可以使用迭代、递归和/或并行处理来细分、共享或以其他方式处理步骤、步骤序列、处理任务和/或数据的各种方式。

现在参考图5,示出了组合无损和有损编解码的方法的示例性实施例。在步骤505处,编码器接收输入视频。这可以以适合于从任何设备和/或输入端口接收以流式传输和/或文件形式的视频的任何方式来实现。接收视频可以包括从编码器和/或与编码器通信、合并编码器和/或合并在编码器中的计算设备的存储器中检索一个或多个帧。接收可以包括通过网络从远程设备接收一个或多个帧。接收视频可以包括接收组合以构成一个或多个视频的多个视频帧。

在步骤510处,并且继续参考图5,编码器选择当前帧;这可以但不限于适合于选择构成视频的—个或多个帧中的当前帧的任何方式来实现。编码器可以将视频帧分段和/或分割成块。块可具有任何合适的形状或尺寸,包括4像素乘4像素(4×4)的尺寸。4×4尺寸可以与许多标准视频分辨率兼容,这些标准视频分辨率可以被划分成整数个4×4块。

在步骤515处,并且仍然参考图5,编码器识别要使用无损编码协议进行编码的当前帧的第一区域。在实施例中,这可以通过接收第一区域的用户标识来执行,例如通过选择帧的分区、帧的多个块等。可替代地或附加地,可以通过接收关于帧的一个或多个块和/或部分的语义信息并使用语义信息来识别帧的块和/或部分以包括在第一区域中,来执行第一区域的标识。语义信息可以包括但不限于表征面部检测的数据。面部检测和/或其他语义信息可以由自动面部识别过程和/或程序执行,和/或可以通过从用户接收面部数据、语义信息等的标识来执行。可替代地或附加地,可以使用如下所述的显著性分数来计算语义重要性。

仍然参考图5,编码器可以通过确定多个块的平均信息测量并使用平均信息测量识别第一区域,来识别第一区域。识别可以包括例如平均信息测量与阈值的比较。平均信息测量可以通过计算多个块的多个信息测量的和来确定,该和可以乘以显著性系数。显著性系数可以基于第一分区的特性来确定。可替代地,可以从用户接收显著性系数。信息的测量可以包括例如当前帧的分区的细节等级。例如,平滑分区或高度纹理化分区可以包含不同的信息量。

仍然参考图5,作为非限制性示例,可以根据分区内的各个块的信息测量的和来确定平均信息测量,其可以被加权和/或乘以显著性系数,例如在以下和中示出的:

其中N是第一分区的顺序号,S

其中a为1/2,b为

在一些实施方式中,且仍参考图5,可以利用变换矩阵的整数近似,其可用于高效硬件及软件实施方式。例如,在如上所述的块是4×4像素块的情况下,广义离散余弦变换矩阵可以包括采用以下形式的广义离散余弦变换II矩阵:

对于块B

F

其中T′是余弦传输矩阵T的横截面,B

继续参考图5,其中编码器被进一步配置为确定视频帧内的第二分区,如下文进一步详细描述的,编码器可被配置为确定第二分区的第二平均信息测量;确定第二平均信息测量可以如上文针对确定第一平均信息测量所描述的那样完成。

仍然参考图5,显著性系数S

进一步参考图5,识别第一区域可以包括确定多个块中的每个块的空间活动性测量,并且使用空间活动性测量来识别第一区域。如本公开中所使用的,″空间活动性测量″是指示帧的块、块集合和/或分区内的纹理变化的频率和幅度的量。换句话说,平坦分区(诸如天空)可以具有低的空间活动性测量,而复杂分区(诸如草)将接收高的空间活动性测量。相应空间活动性测量的确定可以包括使用变换矩阵(例如但不限于离散余弦变换矩阵)的确定。确定每个块的相应空间活动性测量可以包括使用广义离散余弦变换矩阵的确定,广义离散余弦变换矩阵可以包括但不限于如上所述的任何离散余弦变换矩阵。例如,确定每个块的相应空间活动性测量可以包括使用广义离散余弦变换矩阵、广义离散余弦变换II矩阵和/或离散余弦变换矩阵的整数近似。

仍然参考图5,根据本公开中描述的任何方法识别的用于无损编码的多个块和/或其他分区可以组合和/或融合在一起作为第一区域;例如但不限于,如此识别的多个连续块可以组合和/或融合在一起。块融合可以包括确定视频帧内的第一分区,该第一分区包括块的第一子集的第一分组。在块融合中,每个块可以被分配给一分区。分配逻辑,诸如但不限于语义信息,可以从外部源获得,该语义信息可以在130处接收;作为非限制性示例,语义信息可以包括从面部检测器提供的信息,使得语义信息包括表征面部检测的数据。因此,可以基于所接收的语义信息来确定第一分组。在一些实施方式中,分配逻辑可以例如根据多个聚类或分组算法来预定义。编码器可进一步经配置以确定视频帧内包括块的第二子集的第二分组的第二分区。

继续参考图5,具有属于感兴趣对象的至少一个像素的任何块(例如但不限于面部,如例如经由接收到的语义信息识别的)可以例如根据接收到的语义信息被分配给阴影分区(A2),并且与该分区中的其他块融合。

在一些实施方式中,并且仍然参考图5,可以使用空间活动性测量来执行块融合。在块融合中,每个块可以被分配给一分区。例如,可以确定包括块的子集的第一分组的视频帧内的第一分区。第一分组可以基于相应的空间活动性测量。块可以被分组成具有相似频率内容的分区,从而表示具有相似空间活动性的分区。例如,确定第一分区可以包括在多个块中的每一个上迭代,并且对于每个当前块,将当前块的空间活动性测量与先前块的空间活动性测量进行比较,并确定差异是否低于预定阈值,并将当前块分配给第一分区。响应于或基于确定差异高于预定义阈值,可将当前块分配给第二分区。本领域技术人员在审阅本公开的全部内容时将意识到可以执行阈值比较的各种方式,包括可以替代地或附加地通过确定相似度超过阈值来完成对第一块的分配、和/或可以通过确定差异度超过阈值来完成对不同组的分配。阈值可以存储在存储器中和/或使用先前或同时接收和/或计算的值来生成,该值可以包括本公开中描述的任何数值和/或测量值。用于第一帧的无损编码协议可以包括上述任何编码协议,包括但不限于BDPCM。

在步骤520处,并且继续参考图5,编码器对当前帧进行编码,其中对当前帧进行编码还包括使用无损编码协议对第一区域进行编码。对当前帧进行编码还可以包括:在子图片报头中插入至少第一区域是根据无损编码协议编码的指示,将子图片报头与至少第一区域相关联,以及将子图片报头包括在比特流中;这可以如上面参考图1至图4所描述的那样实现,但不限于此。在比特流中包括子图片报头还包括在对应于当前帧的数据中显式地包括子图片报头。可替代地或附加地,在比特流中包括子图片报头可以在比特流中包括子图片报头,还包括:包括对与第三子图片相对应的子图片报头的标识符的参考。编码可以包括在比特流字段中指示无损编码协议的类型。

在实施例中,并且仍然参考图5,编码器可以识别要根据无损编码协议编码的第二区域,并根据无损编码协议对第二区域进行编码。可以使用用于识别第一区域的任何过程和/或过程步骤来执行该识别。无损编码协议可以包括但不限于上述任何编码协议,包括但不限于变换跳过残差编解解码。

在实施例中,并且仍然参考图5,编码器可以识别要根据有损编码协议编码的第三区域,并且根据有损编码协议编码第三区域。这可以使用上述任何形式的确定和/或阈值比较来执行,但不限于此,其中未能满足或超过指示包括在第一分区中的阈值可以指示包括在第二区域中和/或要采用有损编码协议。识别可以包括例如平均信息测量与阈值的比较、空间活动性测量与阈值的比较、显著性分数与阈值的比较等。识别第三区域可以包括接收第三区域的用户标识,其可以如上面用于接收第一区域的用户标识描述的那样被执行,但不限于此。

继续参考图5,编码器可以在子图片报头中插入第三区域是根据无损编码协议编码的指示,将子图片报头与第三区域相关联,并且将子图片报头包括在比特流中;这可以如上面进一步详细描述的那样执行。例如但不限于,编码器可以在与当前帧相对应的数据中显式地包括子图片报头。可替代地或附加地,编码器可以通过参考与第三子图片相对应的子图片报头的标识符来包括子图片报头。

仍然参考图5,如上所述,编码器可以使用子图片的多线程和/或并行处理,以提高编码过程的效率。例如,编码器可以使用第一处理器线程对第一区域进行编码,并且使用第二处理器线程对第三区域元素进行编码。

图6是示出视频编码器600的示例性实施例的系统框图,该视频编码器600能够构造运动矢量候选列表,包括将单个全局运动矢量候选添加到运动矢量候选列表。示例视频编码器600可以接收输入视频604,输入视频604可以根据诸如树结构宏块分割方案(例如,四叉树加二叉树)的处理方案被初始分段和/或划分。树结构宏块分割方案的示例可以包括将图片帧分割成被称为编解码树单元(CTU)的大块元素。在一些实施方式中,每个CTU可进一步被一或多次地分割成被称为编解码单元(CU)的若干个子块。此分割的最终结果可包括可被称作预测性单元(PU)的子块群组。也可利用变换单元(TU)。

仍然参考图6,示例视频编码器600可以包括帧内预测处理器608、能够构造运动矢量候选列表(包括将单个全局运动矢量候选添加到运动矢量候选列表)的运动估计/补偿处理器612(也称为帧间预测处理器)、变换/量化处理器616、逆量化/逆变换处理器620、环路滤波器624、解码图片缓冲器628和/或熵编码处理器632。比特流参数可以被输入到熵编码处理器632以包括在输出比特流636中。

在操作中,并且继续参考图6,对于输入视频604的帧的每个块,可以确定是经由图片内预测还是使用运动估计/补偿来处理块。块可以被提供给帧内预测处理器608或运动估计/补偿处理器612。如果要经由帧内预测来处理块,则帧内预测处理器608可以执行处理以输出预测器。如果要经由运动估计/补偿来处理块,则运动估计/补偿处理器612可以执行包括构造运动矢量候选项列表的处理,构造运动矢量候选项列表包括将单个全局运动矢量候选添加到运动矢量候选列表(如果适用的话)。

仍然参考图6,可以通过从输入视频中减去预测值来形成残差。残差可以由变换/量化处理器616接收,变换/量化处理器616可以执行变换处理(例如,离散余弦变换)以产生可以被量化的系数。量化系数和任何相关联的信令信息可以被提供给熵编码处理器632,以用于熵编码并包括在输出比特流636中。熵编码处理器632可以支持与编码当前块相关的信令信息的编码。另外,量化系数可被提供给逆量化/逆变换处理器620,逆量化/逆变换处理器620可再现像素,像素可与预测器组合并由环路滤波器624处理,环路滤波器624的输出可被存储在解码图片缓冲器628中以供运动估计/补偿处理器612使用,运动估计/补偿处理器612能够构造运动矢量候选列表,包括将单个全局运动矢量候选添加到运动矢量候选列表。

进一步参考图6,尽管上面已经详细描述了一些变型,但是其他多改或添加是可能的。例如,在一些实施方式中,当前块可以包括任何对称块(8×8、16×16、32×32、64×64、128×128等)以及任何不对称块(8×4、16×8等)。

在一些实施方式中,且仍参考图6,可实施四叉树加二叉决策树(QTBT)。在QTBT中,在编解码树单元级,可以动态地导出QTBT的分割参数以适应局部特性而不发送任何开销。随后,在编解码单元级,联合分类器决策树结构可以消除不必要的迭代并控制错误预测的风险。在一些实施方式中,LTR帧块更新模式可以用作在QTBT的每个叶节点处可用的附加选项。

在一些实施方式中,且仍参考图6,可在比特流的不同层次等级处用信号通知附加的语法元素。例如,可以通过包括被编解码在序列参数集(SPS)中的启用标志来为整个序列启用标志。此外,CTU标志可以在编解码树单元级被编解码。

继续参考图6,非暂时性计算机程序产品(即,物理地体现的计算机程序产品)可以存储指令,该指令在由一个或多个计算系统的一个或多个数据处理器执行时使得至少一个数据处理器执行本公开中描述的操作和/或其步骤,包括但不限于上述400和/或编码器600可以被配置为执行的任何操作。类似地,还描述了计算机系统,其可以包括一个或多个数据处理器和耦合到一个或多个数据处理器的存储器。存储器可以临时或永久地存储使至少一个处理器执行本文描述的一个或多个操作的指令。另外,方法可以由单个计算系统内或分布在两个或更多个计算系统之间的一个或多个数据处理器实现。这样的计算系统可以被连接并且可以经由一个或多个连接(包括通过网络(例如,互联网、无线广域网、局域网、广域网、有线网络等)的连接)、经由多个计算系统中的一个或多个之间的直接连接等交换数据和/或命令或其他指令等。

继续参考图5,编码器500、解码器400和/或其电路可以被设计和/或配置为以任何顺序并以任何重复程度执行本公开中描述的任何实施例中的任何方法、方法步骤或方法步骤序列。例如,编码器500、解码器400和/或其电路可以被配置为重复执行单个步骤或序列,直到实现期望或命令的结果;可以迭代地和/或递归地执行步骤或步骤序列的重复,使用先前重复的输出作为后续重复的输入,聚合重复的输入和/或输出以产生聚合结果,减少或削减诸如全局变量的一个或多个变量,和/或将较大处理任务划分成一组迭代解决的较小处理任务。编码器500、解码器400和/或其电路可以并行地执行如本公开中描述的任何步骤或步骤序列,诸如使用两个或更多个并行线程、处理器核等同时和/或基本上同时执行步骤两次或更多次;可以根据适合于在迭代之间划分任务的任何协议来执行并行线程和/或过程之间的任务划分。本领域技术人员在阅读本公开的全部内容时将意识到可以使用迭代、递归和/或并行处理来细分、共享或以其他方式处理步骤、步骤序列、处理任务和/或数据的各种方式。

应当注意,本文描述的任何一个或多个方面和实施例可以使用根据本说明书的教导编程的一个或多个机器(例如,用作用于电子文档的用户计算设备的一个或多个计算设备、诸如文档服务器的一个或多个服务器设备等)来方便地实现,如对于计算机领域的普通技术人员来说显而易见的。如对于软件领域的普通技术人员将显而易见的,熟练的程序员可以基于本公开的教导容易地准备适当的软件编码。上面讨论的采用软件和/或软件模块的方面和实现方式还可以包括用于辅助实现软件和/或软件模块的机器可执行指令的适当硬件。

这样的软件可以是采用机器可读存储介质的计算机程序产品。机器可读存储介质可以是能够存储和/或编码用于由机器(例如,计算设备)执行的、并且使机器执行本文描述的方法和/或实施例中的任何一个的指令序列的任何介质。机器可读存储介质的示例包括但不限于磁盘、光盘(例如,CD、CD-R、DVD、DVD-R等)、磁光盘、只读存储器″ROM″设备、随机存取存储器″RAM″设备、磁卡、光卡、固态存储器设备、EPROM、EEPROM及其任何组合。如本文所使用的,机器可读介质旨在包括单个介质以及物理上分离的介质的集合,诸如例如压缩盘或一个或多个硬盘驱动器与计算机存储器相组合的集合。如本文所使用的,机器可读存储介质不包括瞬时形式的信号传输。

这样的软件还可以包括在诸如载波的数据载体上作为数据信号携带的信息(例如,数据)。例如,机器可执行信息可以被包括作为体现在数据载体中的数据承载信号,其中信号对用于由机器(例如,计算设备)执行的指令序列或其部分以及使机器执行本文描述的方法和/或实施例中的任何一个的任何相关信息(例如,数据结构和数据)进行编码。

计算设备的示例包括但不限于电子书阅读设备、计算机工作站、终端计算机、服务器计算机、手持设备(例如,平板计算机、智能电话等)、网络设备、网络路由器、网络交换机、网桥、能够执行指定该机器要采取的动作的指令序列的任何机器及其任何组合。在一个示例中,计算设备可以包括自助服务终端和/或被包括在自助服务终端中。

图7示出了以计算机系统700的示例性形式的计算设备的一个实施例的图形表示,其中可以执行用于使控制系统执行本公开的方面和/或方法中的任何一个或多个的指令集。还可以设想,可以利用多个计算设备来实现专门配置的指令集,用于使一个或多个设备执行本公开的方面和/或方法中的任何一个或多个。计算机系统700包括经由总线712彼此通信并且与其他组件通信的处理器704和存储器708。总线712可以包括几种类型的总线结构中的任何一种,包括但不限于使用各种总线架构中的任何一种的存储器总线、存储器控制器、外围总线、本地总线及其任何组合。

处理器704可以包括任何合适的处理器,例如但不限于并入用于执行算术和逻辑运算的逻辑电路的处理器,例如算术和逻辑单元(ALU),其可以用状态机调节并由来自存储器和/或传感器的操作输入引导;作为非限制性示例,处理器704可以根据冯诺依曼和/或哈佛架构来组织。处理器704可以包括、并入和/或被并入但不限于微控制器、微处理器、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、图形处理单元(GPU)、通用GPU、张量处理单元(TPU)、模拟或混合信号处理器、可信平台模块(TPM)、浮点单元(FPU)和/或片上系统(SoC)。

存储器708可以包括各种组件(例如,机器可读介质),包括但不限于随机存取存储器组件、只读组件及其任何组合。在一个示例中,包括诸如在启动期间帮助在计算机系统700内的元件之间传送信息的基本例程的基本输入/输出系统716(BIOS)可以存储在存储器708中。存储器708还可以包括(例如,存储在一个或多个机器可读介质上)体现本公开的方面和/或方法中的任何一个或多个的指令(例如,软件)720。在另一示例中,存储器708还可以包括任何数量的程序模块,包括但不限于操作系统、一个或多个应用程序、其他程序模块、程序数据及其任何组合。

计算机系统700还可以包括存储设备724。存储设备(例如,存储设备724)的示例包括但不限于硬盘驱动器、磁盘驱动器、与光学介质组合的光盘驱动器、固态存储器设备及其任何组合。存储设备724可以通过适当的接口(未示出)连接到总线712。示例性接口包括但不限于SCSI、高级技术附件(ATA)、串行ATA、通用串行总线(USB)、IEEE 1394(FIREWIRE)、以及它们的任何组合。在一个示例中,存储设备724(或其一个或多个组件)可以与计算机系统700可移除地接口连接(例如,经由外部端口连接器(未示出))。特别地,存储设备724和相关联的机器可读介质728可以为计算机系统700提供机器可读指令、数据结构、程序模块和/或其他数据的非易失性和/或易失性存储。在一个示例中,软件720可以完全或部分地驻留在机器可读介质728内。在另一示例中,软件720可以完全或部分地驻留在处理器704内。

计算机系统700还可以包括输入设备732。在一个示例中,计算机系统700的用户可以经由输入设备732将命令和/或其他信息输入到计算机系统700中。输入设备732的示例包括但不限于字母数字输入设备(例如,键盘)、指向设备、操纵杆、游戏手柄、音频输入设备(例如,麦克风、语音响应系统等)、光标控制设备(例如,鼠标)、触摸板、光学扫描仪、视频捕获设备(例如,静态相机、摄像机)、触摸屏及其任何组合。输入设备732可以经由各种接口(未示出)中的任何一种接口到总线712,包括但不限于串行接口、并行接口、游戏端口、USB接口、FIREWIRE接口、到总线712的直接接口及其任何组合。输入设备732可以包括触摸屏接口,其可以是显示器736的一部分或与显示器736分离,下面进一步讨论。输入设备732可以用作用户选择设备,用于在如上所述的图形接口中选择一个或多个图形表示。

用户还可以经由存储设备724(例如,可移动磁盘驱动器、闪存驱动器等)和/或网络接口设备740向计算机系统700输入命令和/或其他信息。网络接口设备(诸如网络接口设备740)可以用于将计算机系统700连接到各种网络中的一个或多个(诸如网络744)以及与其连接的一个或多个远程设备748。网络接口设备的示例包括但不限于网络接口卡(例如,移动网络接口卡、LAN卡)、调制解调器及其任何组合。网络的示例包括但不限于广域网(例如,互联网、企业网络)、局域网(例如,与办公室、建筑物、校园或其他相对小的地理空间相关联的网络)、电话网络、与电话/语音提供商相关联的数据网络(例如,移动通信提供商数据和/或语音网络)、两个计算设备之间的直接连接及其任何组合。诸如网络744的网络可以采用有线和/或无线通信模式。通常,可以使用任何网络拓扑。信息(例如,数据、软件720等)可以经由网络接口设备740被传送到计算机系统700和/或从计算机系统700传送。

计算机系统700还可以包括视频显示适配器752,用于将可显示图像传送到显示设备,例如显示设备736。显示设备的示例包括但不限于液晶显示器(LCD)、阴极射线管(CRT)、等离子显示器、发光二极管(LED)显示器及其任何组合。显示适配器752和显示设备736可以与处理器704结合使用,以提供本公开的各方面的图形表示。除了显示设备之外,计算机系统700可以包括一个或多个其他外围输出设备,包括但不限于音频扬声器、打印机及其任何组合。这样的外围输出设备可以经由外围接口756连接到总线712。外围接口的示例包括但不限于串行端口、USB连接、FIREWIRE连接、并行连接及其任何组合。

前面已经是本发明的说明性实施例的详细描述。在不脱离本发明的精神和范围的情况下,可以进行各种修改和添加。上述各种实施例中的每一个的特征可以适当地与其他描述的实施例的特征组合,以便在相关联的新实施例中提供多种特征组合。此外,虽然前面描述了多个单独的实施例,但是本文描述的内容仅仅是对本发明原理的应用的说明。另外,尽管本文的特定方法可以被示出和/或描述为以特定顺序执行,但是该顺序在普通技术范围内是高度可变的,以实现根据本公开的方法、系统和软件。因此,本描述旨在仅作为示例,而不是以其他方式限制本发明的范围。

上面已经公开了示例性实施例并且在附图中示出了示例性实施例。本领域技术人员将理解,在不脱离本发明的精神和范围的情况下,可以对本文具体公开的内容进行各种改变、省略和添加。

相关技术
  • 用于组合的无损和有损编码的方法和系统
  • 发送用于具有无损编码和有损编码的视频系统的无损模式的信号的方法
技术分类

06120115921600