用于预测残差的增强型多重变换的制作方法

文档序号:11291353阅读:296来源:国知局
用于预测残差的增强型多重变换的制造方法与工艺
本申请案请求于2015年1月26日申请的美国临时申请案第62/107,996号及2015年3月23日申请的美国临时申请案第62/137,038号的权利,所述申请案的全部内容以引用的方式并入本文中。本发明涉及视频编码及解码。
背景技术
:数字视频能力可并入至广泛范围的装置中,包含数字电视、数字直播系统、无线广播系统、个人数字助理(pda)、膝上型或台式计算机、平板计算机、电子书阅读器、数字相机、数字记录装置、数字媒体播放器、视频游戏装置、视频游戏控制台、蜂窝或卫星无线电电话(所谓的“智能电话”)、视频电话会议装置、视频流式发射装置等等。数字视频装置实施视频压缩技术,例如由mpeg-2、mpeg-4、itu-th.263、itu-th.264/mpeg-4第10部分先进视频译码(avc)、itu-th.265、高效率视频译码(hevc)所定义的标准及这些标准的扩展中所描述的所述视频压缩技术。视频装置可通过实施这类视频压缩技术而更高效地发射、接收、编码、解码及/或存储数字视频信息。视频压缩技术执行空间(图片内)预测及/或时间(图片间)预测来减少或去除视频序列中固有的冗余。对于基于块的视频译码,可将视频图块(即,视频帧或视频帧的一部分)分割成视频块。图片的经帧内译码(i)图块中的视频块使用相对于同一图片中的相邻块中的参考样本的空间预测来编码。图片的经帧间译码(p或b)图块中的视频块可使用相对于同一图片中的相邻块中的参考样本的空间预测或相对于其它参考图片中的参考样本的时间预测。空间或时间预测产生待译码的块的预测性块。残差数据表示待译码的原始块与预测性块之间的像素差。经帧间译码块根据指向形成预测性块的参考样本的块的运动向量来编码,且残差数据指示经译码块与预测性块之间的差。根据帧内译码模式及残差数据来编码经帧内译码块。为进行进一步压缩,可将残差数据从像素域变换至变换域,从而产生可接着进行量化的残差变换系数。技术实现要素:本发明描述用于确定用以从变换块产生系数块而作为视频编码的一部分的变换及用以从系数块产生变换块作为视频解码的一部分的变换的技术。在一些实例中,视频编码器可确定多个变换子集。同样地,视频解码器可确定多个变换子集。视频编码器及视频解码器可使用不一定要求额外信令的隐式技术选择多个变换子集的变换子集并从所选择的变换子集确定变换。以这种方式,视频编码器及视频解码器可从具有需要信令的最小增长量的信息的相对大的变换集合进行选择。在一个实例中,本发明描述解码视频数据的方法,所述方法包括:确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;针对视频数据的当前系数块的左变换从多个变换子集选择第一变换子集;针对视频数据的当前系数块的右变换从多个变换子集选择第二变换子集;从所述经选择的第一变换子集确定左变换;从所述经选择的第二变换子集确定右变换;基于左变换、右变换及当前系数块确定当前变换块;及基于当前变换块及预测性块重建视频块。在一个实例中,本发明描述编码视频数据的方法,所述方法包括:确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;针对视频数据的视频块的当前变换块的左变换从多个变换子集选择第一变换子集;针对视频数据的视频块的变换块的右变换从多个变换子集选择第二变换子集;从所述经选择的第一变换子集确定左变换;从所述经选择的第二变换子集确定右变换;基于左变换、右变换及当前变换块确定当前系数块;及产生包含信息的视频位流,所述信息指示用于重建视频块的当前系数块的系数。在一个实例中,本发明描述用于视频解码视频数据的装置,所述装置包括:视频数据存储器,其经配置以存储视频数据及变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;及包括集成电路的视频解码器,所述视频解码器经配置以从经存储的变换子集确定多个变换子集,针对视频数据的当前系数块的左变换从多个变换子集选择第一变换子集,针对视频数据的当前系数块的右变换从多个变换子集选择第二变换子集,从经选择的第一变换子集确定左变换,从经选择的第二变换子集确定右变换,基于左变换、右变换及当前系数块确定当前变换块,且基于当前变换块及预测性块重建视频块。在一个实例中,本发明描述用于编码视频数据的装置,所述装置包括:视频数据存储器,其经配置以存储视频数据及变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;及视频编码器,其经配置以从经存储的变换子集确定多个变换子集,针对视频数据的视频块的当前变换块的左变换从多个变换子集选择第一变换子集,针对视频数据的视频块的变换块的右变换从多个变换子集选择第二变换子集,从经选择的第一变换子集确定左变换,从经选择的第二变换子集确定右变换,基于左变换、右变换及当前变换块确定当前系数,且产生包含信息的视频位流,所述信息指示用于重建视频块的当前系数块的系数。在一个实例中,本发明描述用于解码视频数据的装置,所述装置包括:用于确定多个变换子集的装置,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;用于针对视频数据的当前系数块的左变换从多个变换子集选择第一变换子集的装置;用于针对视频数据的当前系数块的右变换从多个变换子集选择第二变换子集的装置;用于从经选择的第一变换子集确定左变换的装置;用于从经选择的第二变换子集确定右变换的装置;用于基于左变换、右变换及当前系数块确定当前变换块的装置;及用于基于当前变换块及预测性块重建视频块的装置。在一个实例中,本发明描述存储指令的非暂时性计算机可读存储媒体,所述指令在执行时使得用于视频解码的装置的视频解码器进行以下操作:确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;针对视频数据的当前系数块的左变换从多个变换子集选择第一变换子集;针对视频数据的当前系数块的右变换从多个变换子集选择第二变换子集;从经选择的第一变换子集确定左变换;从经选择的第二变换子集确定右变换;基于左变换、右变换及当前系数块确定当前变换块;及基于当前变换块及预测性块重建视频块。在一个实例中,本发明描述用于编码视频数据的装置,所述装置包括:用于确定多个变换子集的装置,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;用于针对视频数据的视频块的当前变换块的左变换从多个变换子集选择第一变换子集的装置;用于针对视频数据的视频块的变换块的右变换从多个变换子集选择第二变换子集的装置;用于从经选择的第一变换子集确定左变换的装置;用于从经选择的第二变换子集确定右变换的装置;用于基于左变换、右变换及当前变换块确定当前系数块的装置;及用于产生包含信息的视频位流的装置,所述信息指示用于重建视频块的当前系数块的系数。在一个实例中,本发明描述存储指令的非暂时性计算机可读存储媒体,所述指令在执行使得用于视频编码的装置的视频编码器进行以下操作:确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换;针对视频数据的视频块的当前变换块的左变换从多个变换子集选择第一变换子集;针对视频数据的视频块的变换块的右变换从多个变换子集选择第二变换子集;从经选择的第一变换子集确定左变换;从经选择的第二变换子集确定右变换;基于左变换、右变换及当前变换块确定当前系数块;及产生包含信息的视频位流,所述信息指示用于重建视频块的当前系数块的系数。在以下附图及描述中阐述一或多个实例的细节。其它特征、目标及优势将从所述描述及图式以及权利要求书而显而易见。附图说明图1a至1f为说明变换类型的实例的表。图2为说明可利用本发明中所描述的技术的实例视频译码系统的框图。图3为说明基于高效率视频译码(hevc)中的残差四叉树的变换方案的实例的概念图。图4为说明基于hevc中的译码分组的系数扫描的实例的概念图。图5为说明可实施本发明中所描述的技术的实例视频编码器的框图。图6为说明可实施本发明中所描述的技术的实例视频解码器的框图。图7为说明根据itu-th.263标准中定义的视频译码过程的重叠块运动补偿(obmc)的实例的概念图。图8a及8b为说明用于obmc的块的部分的概念图。图9为说明解码视频数据的实例方法的流程图。图10为说明编码视频数据的实例方法的流程图。具体实施方式本发明涉及应用于帧内或帧间预测残差的多重变换。所述技术可用于先进视频编解码器的上下文中,例如高效率视频译码(hevc)标准的扩展或下一代视频译码标准。在视频译码中,视频编码器通过从预测性块的样本值减去当前块的样本值而产生残差块。视频编码器将残差块分成一或多个变换块并将变换(例如,例如离散余弦变换(dct)的离散频率变换)应用至一或多个变换块以将一或多个变换块中的残差值从像素域变换至频域。在频域中,经变换块被称为包含一或多个变换系数值的系数块。在解码期间,视频解码器执行互逆过程。举例来说,视频解码器将逆变换应用至系数块以将系数块变换至变换块(例如,从频域变换至像素域)。变换块为残差块的一个块,且视频解码器将残差块的残差值添加至预测性块的样本值以重建当前块。仅为了易于说明,本发明将视频编码器及视频解码器描述为分别确定用于编码及解码过程的变换。然而,应理解,视频编码器将变换应用至变换块以产生系数块,且视频解码器将所述变换的相逆者应用至系数块以重建变换块。因此,视频解码器应用的变换为视频编码器应用的变换的相逆者。因此,在本发明中,当视频解码器经描述为确定变换及/或应用变换时,应理解,视频解码器正确定为通过视频编码器确定的变换的相逆者的变换及/或视频解码器正应用为通过视频编码器应用的变换的相逆者的变换。本发明描述用于确定应用于用于编码变换系数的残差值的变换块或应用于用于解码残差值的变换系数的系数块的变换的实例技术。举例来说,视频编码器及视频解码器可各自构建多个变换子集,每一变换子集识别多个候选变换。候选变换指代不同类型的变换,例如,不同类型的dct及不同类型的离散正弦变换(dst)。视频编码器及视频解码器选择变换子集并从所选择的变换子集确定变换,所述所选择的变换子集用于从用于视频编码的变换块确定系数块或从用于视频解码的系数块确定变换块。以这种方式,视频编码器及视频解码器可确定从候选变换的较大集合使用哪些变换,允许对变换块的变化统计较好地适应而不过度使位流带宽负担。举例来说,一些技术约束多少变换为可用的,这可产生不良译码性能,因为变换块的统计使得可用变换中无一者良好执行。可存在其它较好变换,但由于约束条件,这些变换为不可用的。在本发明中描述的技术中,因为更多变换为可用的,视频编码器及视频解码器可使用提供比将可能具有有限集合的变换更好的译码性能的变换。此外,如更详细地描述,使用于指示将使用哪个变换的信令开销保持低,以使得当具有更多可用变换及保持对带宽低的影响时可达成译码增益。举例来说,视频解码器可基于隐式技术(例如,基于帧内预测模式、变换块的定位等)选择使用哪些变换子集,而不是依赖位流中的用信号发送的信息。视频解码器可随后可能基于在位流中用信号发送的用于所选择变换子集的相应者的一或多个变换子集索引或其它因素(包含但不限于非零系数的数目、非零系数的总和或系数块中的非零系数的位置)从所选择的变换子集确定使用哪些变换。即使针对相应变换子集用信号发送变换子集索引,但信令开销可保持低,因为索引值仅跨越变换子集的范围而不是跨越所有可能变换。举例来说,假定存在至多16个可能的变换,且变换子集包含三个候选变换。在这种情况下,索引值将在0至2的范围内,而对所有变换的列表的索引将在0至15的范围内。用信号发送的较小值(例如0至2)可需要比用信号发送的较大值更少的位。在描述构建及选择变换子集的方式之前,下文描述视频译码标准、一般dct及dst、不同类型的dct及dst以及一些现有dct及dst技术。本发明随后描述现有技术中的一些问题,接着描述可克服所述问题的实例技术。视频译码标准包含itu-th.261、iso/iecmpeg-1visual、itu-th.262或iso/iecmpeg-2visual、itu-th.263、iso/iecmpeg-4visual及itu-th.264(也称为iso/iecmpeg-4avc),包含其可调式视频译码(svc)及多视图视频译码(mvc)扩展。另外,已由itu-t视频译码专家组(vceg)及iso/iec动画专家组(mpeg)的视频译码联合协作小组(jct-vc)开发新的视频译码标准(即,高效率视频译码(hevc))。最终hevc草案说明书及下文被称作hevcwd可从http://phenix.int-evry.fr/jct/doc_end_user/documents/14_vienna/wg11/jctvc-n1003-v1.zip.获得。hevc标准的最终草案为:itu-th.265,h系列:视听及多媒体系统、移动视频的视听服务译码的基础结构、通用视听服务的先进视频译码、国际电信联盟,2014年10月,且可从http://www.itu.int/rec/t-rec-h.265-201410-i/en获得。下文为离散正弦及余弦变换的描述。变换指示导出输入信号的替代表示的过程。举例来说,变换将值从像素域转化至频域(例如,在视频编码中)或从频域转化至像素域(例如,在视频解码中)。给定n点向量x=[x0,x1,…,xn-1]t及给定向量的集合{φ0,φ1,…,φm-1},可使用φ0,φ1,…,φm-1的线性组合近似地或精确地表示x,其公式如下,其中可为x的近似值或等值,向量f=[f0,f1,f2,..,fm-1]被称作变换系数向量且{φ0,φ1,…,φm-1}为变换基础向量。在视频译码的情形中,变换系数为大致非相关的及稀疏的,即输入向量x的能量仅在几个变换系数上为紧密的,且残差大部分变换系数通常接近0。举例来说,当视频编码器将变换块变换至系数块时,系数块中的非零系数值倾向于被一起分组在系数块的左上角处,且大部分系数值为零。分组于靠近系数块的左上角的非零系数反映低频分量,而靠近系数块的右下角的系数值(倾向于零)反映高频分量。给定特定的输入数据,就能量集中性而言优化变换为所谓的karhunen-loeve变换(klt),其使用输入数据的协方差矩阵的本征向量作为变换基础向量。因此,klt实际上为数据相依的变换且不具有通用数学公式。然而,在某些假定情况下,例如,输入数据形成一阶静止马尔可夫(markov)过程,其已经在对应klt实际上为单变换的正弦家族的成员的文献中被证实,其描述于jain,a.k的单变换的正弦家族(1979年,ieeetrans,图案分析及机器智能,1,356,中)。单变换的正弦家族使用公式如下的变换基础向量指示变换:φm(k)=a·eikθ+b·e-ikθ其中e为近似等于2.71828的自然对数的底,a、b及θ通常为复数且取决于m的值。包含离散傅里叶、余弦、正弦及klt(用于一阶静止马尔可夫过程)的若干熟知变换为单变换的这个正弦家族的成员。根据s.a.martucci的“对称卷积及离散正弦与余弦变换(symmetricconvolutionandthediscretesineandcosinetransforms)”(ieeetrans.sig.processingsp-42,1038-1051(1994)),整个离散余弦变换(dct)及离散正弦变换(dst)家族包含基于不同类型(即,a、b及θ的不同值)的共计16个变换,且下文给定不同类型的dct及dst的完整定义。假定输入n点向量表示为x=[x0,x1,…,xn-1]t,且其通过乘以矩阵而变换至被表示为y=[y0,y1,…,yn-1]t的另一n点变换系数向量,其过程可根据以下变换公式中的一者进一步说明,其中包含性的k在0至n-1的范围中:dct类型-i(dct-1):其中dct类型-ii(dct-2):其中dct类型-iii(dct-3):其中dct类型-iv(dct-4):dct类型-v(dct-5):其中dct类型-vi(dct-6):其中dct类型-vii(dct-7):其中dct类型-viii(dct-8):dst类型-i(dst-1):dst类型-ii(dst-2):其中dst类型-iii(dst-3):其中dst类型-iv(dst-4):dst类型-v(dst-5):dst类型-vi(dst-6):dst类型-vii(dst-7):dst类型-viii(dst-8):其中上文提供不同dct及dst类型的实例,总体而言存在16个变换类型。变换类型由变换基底函数的数学公式来指定。不应混淆变换类型与变换大小。变换类型指基底函数,而变换大小指变换的大小。举例来说,4点dst-vii及8点dst-vii具有相同变换类型,而与n的值(例如,4点或8点)无关。在不损失一般性的情况下,所有以上变换类型可使用下文的通用公式来表示:其中t为通过一个特定变换(例如,dct类型-i至dct类型-viii,或dst类型-i至dst类型-viii)的定义所指定的变换矩阵,且t的行向量(例如,[ti,0,ti,1,ti,2,…,ti,n-1])为第i个变换基础向量。应用于n点输入向量上的变换被称作n点变换。也应注意,应用于1-d输入数据x上的以上变换公式可以下文的矩阵乘法形式来表示:y=t·x其中t指示变换矩阵,x指示输入数据向量,且y指示输出变换系数向量。举例来说,视频编码器可执行矩阵乘法y=t·x以产生变换系数向量。视频解码器可执行逆矩阵乘法以从变换系数向量产生变换向量。上文引入的变换应用于1-d输入数据上,且变换也可经扩展以用于2-d输入数据源。假设x为输入m×n数据阵列。将变换应用于2-d输入数据上的典型方法包含可分离的及非可分离的2-d变换。可分离的2-d变换将1-d变换依序应用于x的水平向量及垂直向量,公式如下:y=c·x·rt其中c及r分别指示给定的m×m及n×n变换矩阵。从所述公式可见,c将1-d变换应用于x的列向量,而r将1-d变换应用于x的行向量。在本发明的稍后部分,为简单起见,将c及r表示为左(垂直)及右(水平)变换,且其均形成变换对。存在c等于r且c为正交矩阵的情况。在这种情况下,可分离的2-d变换由仅一个变换矩阵确定。非可分离的2-d变换通过进行作为实例的以下数学映射首先将x的所有元素重组成单个向量(即x'):x′(i·n+j)=xi,j随后1-d变换t'如下应用于x':y=t′·x其中t'为(m*n)×(m*n)变换矩阵。在视频译码中,始终应用可分离的2-d变换,因为其需要比1-d变换更少的运算(加法、乘法)计数。如下文更详细地描述,本发明描述视频编码器及视频解码器选择左变换及右变换所使用的实例技术。举例来说,视频编码器及视频解码器可确定多个变换子集,每一变换子集识别多个候选变换。作为16个可能变换(例如,dct-1至dct-8及dst-1至dst-8)的实例,视频编码器及视频解码器可确定三个变换子集,且变换子集中的每一者包含16个变换中的两个或两个以上变换。视频编码器及视频解码器可选择三个变换子集中的一者并从所选择的变换子集确定左变换(例如,c)及选择三个变换子集中的一者并从所选择的变换子集确定右变换(例如,r)。所选择的变换子集可为不同子集或相同子集。下文为hevc中应用的变换类型的描述。在常规视频编解码器(例如,h.264/avc)中,4点及8点离散余弦变换(dct)类型-ii的整数近似始终应用于帧内及帧间预测残差。帧内预测残差指来自帧内预测的残差且帧间预测残差指来自帧间预测的残差。残差、帧间预测及帧内预测均在下文得以更详细地描述。通常,残差块被分成多个变换块。在视频编码中,变换应用于变换块中的每一者以产生系数块。在视频解码中,变换应用于系数块中的每一者以产生变换块及重建残差块。为更好地适应残差样本的各种统计,除dct类型-ii外的更灵活类型的变换用于新一代视频编解码器中。举例来说,在hevc中,4点类型-vii离散正弦变换(dst)的整数近似用于帧内预测残差,其在理论上证明及以实验方式证实,dst类型-vii比dct类型-ii对于沿帧内预测方向产生的残差残差向量更有效,例如,dst类型-vii比dct类型-ii对于由水平帧内预测方向产生的行残差向量更有效。参见(例如)j.han,a.saxena及k.rose的“关于视频/图像译码中的联合优化空间预测与自适应变换(towardsjointlyoptimalspatialpredictionandadaptivetransforminvideo/imagecoding)”(ieee声学语音及信号处理国际会议(icassp),2010年3月,第726-729页)。在hevc中,4点dst类型-vii的整数近似仅应用于4×4明度帧内预测残差块(下文更详细地描述明度帧内预测残差块)。用于hevc中的4点dst-vii在图1a中展示。在hevc中,对于不为4×4明度帧内预测残差块的残差块,也应用4点、8点、16点及32点dct类型-ii的整数近似。图1b说明4点dct-ii的实例;图1c说明8点dct-ii的实例;图1d说明16点dct-ii的实例;且图1e及1f说明32点dct-ii的实例。图1a至1f说明大小不同的ii型的dct的实例,且如同图1a至1f,存在不同类型的n点dct及dst的实例。图2为说明可利用本发明的技术的实例视频译码系统10的框图。如本文所使用,术语“视频译码器”大体上指视频编码器及视频解码器。在本发明中,术语“视频译码”或“译码”可大体上指视频编码或视频解码。根据本发明中描述的各种实例,视频译码系统10的视频编码器20及视频解码器30表示可经配置以执行用于预测残差的增强型多重变换的技术的装置的实例。如图1中所示,视频译码系统10包含源装置12及目的地装置14。源装置12产生经编码视频数据。因此,源装置12可被称作视频编码装置或视频编码设备。目的地装置14可解码由源装置12产生的经编码视频数据。因此,目的地装置14可被称作视频解码装置或视频解码设备。源装置12及目的地装置14可为视频译码装置或视频译码设备的实例。源装置12及目的地装置14可包括广泛范围的装置,包含台式计算机、移动计算装置、笔记型(例如,膝上型)计算机、平板计算机、机顶盒、例如所谓的“智能”电话的电话手持机、电视、相机、显示装置、数字媒体播放器、视频游戏控制台、车载计算机等等。目的地装置14可通过信道16从源装置12接收经编码视频数据。信道16可包括能够将经编码视频数据从源装置12移动至目的地装置14的一或多个媒体或装置。在一个实例中,信道16可包括使源装置12能够实时地将经编码视频数据直接发射至目的地装置14的一或多个通信媒体。在这个实例中,源装置12可根据通信标准(例如,无线通信协议)调制经编码视频数据,且可将经调制视频数据发射至目的地装置14。一或多个通信媒体可包含无线及/或有线通信媒体,例如射频(rf)频谱或一或多个实体发射线。一或多个通信媒体可形成基于数据包的网络(例如局域网、广域网或全球网络(例如,互联网))的部分。一或多个通信媒体可包含路由器、交换器、基站,或促进从源装置12至目的地装置14的通信的其它设备。在另一实例中,信道16可包含存储由源装置12所产生的经编码视频数据的存储媒体。在这个实例中,目的地装置14可(例如)通过磁盘存取或卡存取而存取存储媒体。存储媒体可包含多种本地存取的数据存储媒体,例如蓝光光盘、dvd、cd-rom、闪存,或用于存储经编码视频数据的其它合适的数字存储媒体。在另一实例中,信道16可包含存储由源装置12所产生的经编码视频数据的文件服务器或另一中间存储装置。在这个实例中,目的地装置14可通过流式发射或下载而存取存储于文件服务器或其它中间存储装置处的经编码视频数据。文件服务器可为能够存储经编码视频数据且将经编码视频数据发射至目的地装置14的类型的服务器。实例文件服务器包含网页服务器(例如,用于网站)、文件传送协定(ftp)服务器、网络附接存储(nas)装置及本地磁盘驱动器。目的地装置14可通过标准数据连接(例如,互联网连接)来存取经编码视频数据。数据连接的实例类型可包含适合于存取存储于文件服务器上的经编码视频数据的无线信道(例如,wi-fi连接)、有线连接(例如,dsl、缆线调制解调器等)或两者的组合。经编码视频数据从文件服务器的发射可为流式发射、下载发射或两者的组合。本发明的技术不限于无线应用或设定。所述技术可应用于支持多种多媒体应用(例如,(例如)通过互联网的空中电视广播、有线电视发射、卫星电视发射、流式视频发射)的视频译码、供存储于数据存储媒体上的数字视频的编码、存储于数据存储媒体上的数字视频的解码,或其它应用。在一些实例中,视频译码系统10可经配置以支持单向或双向视频发射以支持例如视频流式发射、视频播放、视频广播及/或视频电话的应用。图2中所说明的视频译码系统10仅为实例,且本发明的技术可适用于未必包含编码装置与解码装置之间的任何数据通信的视频译码设定(例如,视频编码或视频解码)。在其它实例中,从通过网络等而流式发射的区域存储器检索数据。视频编码装置可编码数据并将数据存储至存储器,及/或视频解码装置可从存储器检索数据并解码数据。在许多实例中,由并不彼此通信但简单地将数据编码至存储器及/或从存储器检索数据并解码数据的装置来执行编码及解码。在图2的实例中,源装置12包含视频源18、视频编码器20及输出接口22。在一些实例中,输出接口22可包含调制器/解调器(调制解调器)及/或发射器。视频源18可包含视频捕获装置(例如,摄像机)、含有先前所捕获的视频数据的视频存档、用以从视频内容提供者接收视频数据的视频馈入接口,及/或用于产生视频数据的计算机图形系统,或这些视频数据源的组合。视频编码器20可编码来自视频源18的视频数据。在一些实例中,源装置12通过输出接口22将经编码视频数据直接发射至目的地装置14。在其它实例中,经编码视频数据也可存储于存储媒体或文件服务器上,以供目的地装置14稍后存取以用于解码及/或播放。在图2的实例中,目的地装置14包含输入接口28、视频解码器30及显示装置32。在一些实例中,输入接口28包含接收器及/或调制解调器。输入接口28可通过信道16接收经编码视频数据。显示装置32可与目的地装置14集成或可在目的地装置14外部。一般而言,显示装置32显示经解码视频数据。显示装置32可包括各种显示装置,例如液晶显示器(lcd)、等离子显示器、有机发光二极管(oled)显示器,或另一类型的显示装置。视频编码器20及视频解码器30各自从可实施为各种合适电路中的任一者,例如一或多个微处理器、数字信号处理器(dsp)、专用集成电路(asic)、场可编程门阵列(fpga)、离散逻辑、硬件或其任何组合。如果部分地以软件来实施所述技术,那么装置可将用于软件的指令存储于合适的非暂时性计算机可读存储媒体中,且可在硬件中使用一或多个处理器来执行所述指令以执行本发明的技术。可将前述各者(包含硬件、软件、硬件与软件的组合等)中的任一者视为一或多个处理器。视频编码器20及视频解码器30中的每一者可包含于一或多个编码器或解码器中,编码器或解码器中的任一者可集成为相应装置中的组合式编码器/解码器(编解码器)的部分。本发明通常可指代视频编码器20将某一信息“用信号发送”或“发射”至另一装置,例如,视频解码器30。术语“用信号发送”或“发射”通常可指代用于解码经压缩视频数据的语法元素及/或其它数据的通信。这种通信可实时地或近乎实时地发生。替代地,这种通信可在一时间跨度内发生,例如,这种通信可能在当编码时在经编码位流中将语法元素存储至计算机可读存储媒体时发生,所述语法元素在存储至这个媒体之后接着可由解码装置在任何时间检索。在一些实例中,视频编码器20及视频解码器30根据视频压缩标准(例如,上文所提及的hevc标准、hevc的扩展或可能为开发中的下一代视频译码标准)来操作。仅为了易于理解,下文提供关于hevc标准的一些信息。然而,本发明中描述的技术不应被视为受限于hevc标准。在hevc及其它视频译码标准中,视频序列通常包含一系列图片。图片也可被称作“帧”。图片可包含三个样本阵列,表示为sl、scb及scr。sl为明度样本的二维阵列(即,块)。scb为cb色度样本的二维阵列。scr为cr色度(chrominance)样本的二维阵列。色度样本在本文中也可被称作“色度(chroma)”样本。在其它情况下,图片可为单色的,且可仅包含明度样本阵列。为了产生图片的经编码表示,视频编码器20可产生译码树型单元(ctu)的集合。ctu中的每一者可为明度样本的译码树型块、色度样本的两个对应译码树型块,及用于对译码树型块的样本进行译码的语法结构。译码树型块可为样本的n×n块。ctu也可被称作“树型块”或“最大译码单元”(lcu)。hevc的ctu可广泛地类似于例如h.264/avc的其它标准的宏块。然而,ctu未必限于特定大小,且可包含一或多个译码单元(cu)。图块可包含在光栅扫描中连续排序的整数数目个ctu。为产生经译码ctu,视频编码器20可对ctu的译码树型块递回地执行四叉树分割,以将译码树型块划分成译码块,因此命名为“译码树型单元”。译码块为样本的n×n块。cu可为图片的明度样本的译码块及色度样本的两个对应译码块,所述图片具有明度样本阵列、cb样本阵列及cr样本阵列,以及用以对译码块的样本进行译码的语法结构。视频编码器20可将cu的译码块分割为一或多个预测块。预测块可为其上应用相同预测的样本的矩形(即,正方形或非正方形)块。cu的预测单元(pu)可为图片的明度样本的预测块、色度样本的两个对应预测块,及用以对预测块样本进行预测的语法结构。视频编码器20可针对cu的每一pu的明度、cb及cr预测块产生预测性明度块、cb块及cr块。视频编码器20可使用帧内预测或帧间预测来产生(例如,确定)pu的预测性块。如果视频编码器20使用帧内预测来产生pu的预测性块,那么视频编码器20可基于与pu相关联的图片的经解码样本产生pu的预测性块。如果视频编码器20使用帧间预测来产生(例如,确定)pu的预测性块,那么视频编码器20可基于不同于与pu相关联的图片的一或多个图片的经解码样本产生pu的预测性块。视频编码器20可使用单向预测或双向预测以产生pu的预测性块。当视频编码器20使用单向预测来产生pu的预测性块时,pu可具有单一运动向量(mv)。当视频编码器20使用双向预测来产生pu的预测性块时,pu可具有两个mv。在视频编码器20产生cu的一或多个pu的预测性明度块、cb块及cr块之后,视频编码器20可产生cu的明度残差块。cu的明度残差块中的每一样本指示cu的预测性明度块中的一者中的明度样本与cu的原始明度译码块中的对应样本之间的差异。另外,视频编码器20可产生cu的cb残差块。cu的cb残差块中的每一样本可指示cu的预测性cb块中的一者中的cb样本与cu的原始cb译码块中的对应样本之间的差异。视频编码器20也可产生cu的cr残差块。cu的cr残差块中的每一样本可指示cu的预测性cr块中的一者中的cr样本与cu的原始cr译码块中的对应样本之间的差异。此外,视频编码器20可使用四叉树分割以将cu的明度残差块、cb残差块及cr残差块分解成一或多个明度变换块、cb变换块及cr变换块。变换块可为其上应用相同变换的样本的矩形块。cu的变换单元(tu)可为明度样本的变换块、色度样本的两个对应变换块,及用以对变换块样本进行变换的语法结构。因此,cu的每一tu可与明度变换块、cb变换块及cr变换块相关联。与tu相关联的明度变换块可为cu的明度残差块的子块。cb变换块可为cu的cb残差块的子块。cr变换块可为cu的cr残差块的子块。视频编码器20可将一或多个变换应用至tu的明度变换块,以产生tu的明度系数块。系数块可为变换系数的二维阵列。变换系数可为纯量。视频编码器20可将一或多个变换应用于tu的cb变换块以产生tu的cb系数块。视频编码器20可将一或多个变换应用于tu的cr变换块以产生tu的cr系数块。如更详细地描述,本发明描述视频编码器20确定用于产生系数块的变换的实例方式。在产生系数块(例如,明度系数块、cb系数块或cr系数块)之后,视频编码器20可量化所述系数块。量化通常指对变换系数进行量化以可能地减少用以表示变换系数的数据的量,从而提供进一步压缩的过程。在视频编码器20量化系数块之后,视频编码器20可熵编码指示经量化变换系数的语法元素。举例来说,视频编码器20可对指示经量化变换系数的语法元素执行上下文自适应二进制算术译码(cabac)。视频编码器20可在位流中输出经熵编码的语法元素。视频编码器20可输出包含经熵编码的语法元素的位流。位流可包含形成经译码图片及相关联数据的表示的位的序列。位流可包括网络抽象层(nal)单元的序列。nal单元中的每一者包含nal单元标头且囊封原始字节序列有效载荷(rbsp)。nal单元标头可包含指示nal单元类型码的语法元素。由nal单元的nal单元标头指定的nal单元类型码指示nal单元的类型。rbsp可为含有囊封于nal单元内的整数数目个字节的语法结构。在一些情况下,rbsp包含零个位。不同类型的nal单元可囊封不同类型的rbsp。举例来说,第一类型的nal单元可囊封图片参数集(pps)的rbsp,第二类型的nal单元可囊封经译码图块的rbsp,第三类型的nal单元可囊封sei的rbsp,等等。囊封视频译码数据的rbsp(如与参数集及sei消息的rbsp相反)的nal单元可被称作视频译码层(vcl)nal单元。视频解码器30可接收由视频编码器20产生的位流。另外,视频解码器30可剖析位流以从位流解码语法元素。视频解码器30可至少部分地基于从位流解码的语法元素而重建视频数据的图片。重建视频数据的过程通常可与由视频编码器20执行的过程互逆。举例来说,视频解码器30可使用pu的mv来确定当前cu的pu的预测性块。另外,视频解码器30可逆量化与当前cu的tu相关联的变换系数块。视频解码器30可对变换系数块执行逆变换以重建与当前cu的tu相关联的变换块。本发明描述视频解码器30确定用于对变换系数块执行逆变换的变换的方式的实例技术。通过将当前cu的pu的预测性块的样本添加至当前cu的tu的变换块的对应样本,视频解码器30可重建当前cu的译码块。通过重建图片的每一cu的译码块,视频解码器30可重建图片。如上文所描述,cu包含一或多个tu。下文描述基于hevc中的残差四叉树的变换方案。为适应残差块的各种特性,使用残差四叉树(rqt)的变换译码结构应用于hevc中,其简要地描述于http://www.hhi.fraunhofer.de/fields-of-competence/image-processing/research-groups/image-video-coding/hevc-high-efficiency-video-coding/transform-coding-using-the-residual-quadtree-rqt.html中。如上文所描述,每一图片被分成ctu,所述ctu以光栅扫描次序译码以用于特定方块或图块。ctu为方形块且表示四叉树(即,译码树)的根。ctu大小可在8×8至64×64明度样本的范围内,但通常使用64×64。每一ctu可进一步分裂成被称作译码单元(cu)的更小方形块。在ctu以回归方式分裂成cu之后,每一cu经进一步分成预测单元(pu)及变换单元(tu)。基于四叉树方法以回归方式进行cu至tu的分割,因此每一cu的残差信号通过树型结构(即,残差四叉树(rqt))来译码。rqt允许从4×4直至32×32明度样本的tu大小。图3展示其中cu包含10个tu(标记有字母“a”至“j”)及对应的块分割的实例。rqt的每一节点实际上为变换单元(tu)。以深度优先树遍历次序来处理个别tu,所述次序在图3中经说明为字母次序,所述处理在具有深度优先遍历的回归z扫描之后。四叉树方法使得能够使变换适应残差信号的变化的空间频率特性。通常,具有较大空间支持的较大变换块大小提供更好的频率分辨率。然而,具有较小空间支持的较小变换块大小提供更好的空间分辨率。两个分辨率(空间分辨率与频率分辨率)之间的折衷由编码器模式决定(例如,由视频编码器20)(例如)基于速率失真优化技术所选择。速率失真优化技术针对每一译码模式(例如,特定rqt分裂结构)计算译码位及重建失真的加权总和(即,速率失真成本),并选择具有最小速率失真成本的译码模式作为最佳模式。三个参数定义于rqt中:树的最大深度、最小允许变换大小及最大允许变换大小。最小及最大变换大小可在从4×4至32×32样本的范围内变化,其对应于先前段落中提及的所支持的块变换。rqt的最大允许深度限制tu的数目。最大深度等于零意指cb(译码块)无法经进一步分裂,如果每一cb包含tb(变换块),那么达到最大允许变换大小(例如32×32)。所有这些参数与rqt结构相互作用并影响rqt结构。考虑根cb大小为64×64,最大深度等于零及最大变换大小等于32×32的情况。在这种情况下,cb必须被分割至少一次,否则其将产生不被允许的64×64tb。在hevc中,不采用较大的大小变换(例如,64×64变换),主要因为其受限的益处考量及对于相对较小分辨率视频的相对高的复杂度。rqt参数(即,最大rqt深度、最小及最大变换大小)在位流中以序列参数集级别发射。关于rqt深度,可指定不同值并用信号发送不同值以用于经帧内及帧间译码的cu(即,经帧内预测编码的cu或经帧间预测解码的cu或经帧内预测编码的cu或经帧间预测的cu)。四叉树变换应用于帧内残差块及帧间残差块。通常,相同大小的当前残差四叉树分割区的dct-ii变换应用于残差块。然而,如果当前残差四叉树块为4×4并由帧内预测产生,那么应用以上4×4dst-vii变换。下文描述hevc中的系数译码。无论tu大小如何,使用非重叠系数群组(cg)来译码变换单元的残差,且每一者含有tu的4×4块的系数。举例来说,32×32tu具有共计64个cg,且16×16tu具有共计16个cg。根据某一预定义扫描次序来译码tu内部的cg。当译码每一cg时,根据用于4×4块的某一预定义扫描次序来扫描并译码当前cg内部的系数。图4说明用于含有4个cg的8×8tu的系数扫描。对于每一色彩分量,可首先用信号发送一个旗标以指示当前变换单元是否具有至少一个非零系数。如果存在至少一个非零系数,那么变换单元中的系数扫描次序中的最末有效系数的位置随后使用相对于变换单元的左上角的协调而经明确地译码。协调的垂直或水平分量通过其前缀及后缀表示,其中前缀经二进制化具有截断莱斯(tr),且后缀经二进制化具有固定长度。last_sig_coeff_x_prefix指定变换块内的扫描次序中的最末有效系数的列位置的前缀。last_sig_coeff_x_prefix的包含性值应在0至(log2trafosize<<1)-1的范围内。last_sig_coeff_y_prefix指定变换块内的扫描次序中的最末有效系数的行位置的前缀。last_sig_coeff_y_prefix的包含性值应在0至(log2trafosize<<1)-1的范围内。last_sig_coeff_x_suffix指定变换块内的扫描次序中的最末有效系数的列位置的后缀。last_sig_coeff_x_suffix的包含性值应在0至(1<<((last_sig_coeff_x_prefix>>1)-1))-1的范围内。变换块lastsignificantcoeffx内的扫描次序中的最末有效系数的行位置经导出如下:-如果不存在last_sig_coeff_x_suffix,那么下文适用:lastsignificantcoeffx=last_sig_coeff_x_prefix-否则(存在last_sig_coeff_x_suffix),下文适用:lastsignificantcoeffx=(1<<((last_sig_coeff_x_prefix>>1)-1))*(2+(last_sig_coeff_x_prefix&1))+last_sig_coeff_x_suffixlast_sig_coeff_y_suffix指定变换块内的扫描次序中的最末有效系数的行位置的后缀。last_sig_coeff_y_suffix的包含性值应在0至(1<<((last_sig_coeff_y_prefix>>1)-1))-1的范围内。变换块lastsignificantcoeffy内的扫描次序中的最末有效系数的行位置经导出如下:-如果不存在last_sig_coeff_y_suffix,那么下文适用:lastsignificantcoeffy=last_sig_coeff_y_prefix-否则(存在last_sig_coeff_y_suffix),下文适用:lastsignificantcoeffy=(1<<((last_sig_coeff_y_prefix>>1)-1))*(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix当scanidx等于2时,坐标如下调换:(lastsignificantcoeffx,lastsignificantcoeffy)=swap(lastsignificantcoeffx,lastsignificantcoeffy)在具有这类经译码的位置以及cg的系数扫描次序的情况下,进一步用信号发送一个旗标以用于除最末cg(在扫描次序中)外的cg,所述旗标指示其是否含有非零系数。对于可含有非零系数的所述cg,有效旗标、系数的绝对值及正负号信息可根据预定义4×4系数扫描次序针对每一系数而经进一步译码。如上文所描述,本发明中描述的技术描述了确定视频编码器20所应用来将变换块转化成系数块的变换的方式及确定视频解码器30所应用(例如,作为逆变换)来将系数块转化成变换块的变换的方式。下文描述帧内及帧间预测残差的多重变换(例如,用于当残差块从帧内预测产生时及用于当残差块从帧间预测产生时的不同变换类型)。在一些情况下,尽管dst类型-vii相较于常规dct类型-ii可有效地改善帧内译码效率,但变换效率相对受限,因为预测残差呈现各种统计,且dct类型-ii及dst类型-vii的固定使用无法有效地适应所有可能的情况。已经提出一些技术来适应不同情况。在s.-c.lim、d.-y.kim、s.jeong、j.s.choi、h.choi及y.-l.lee的“率失真优化自适应变换译码(rate-distortionoptimizedadaptivetransformcoding)”(2009年8月,opt.eng.,第48卷,第8号,第087004-1-087004-14页)中,提出适应性地采用用于预测残差的dct或dst的完整版本的新变换方案,对于每一块,用信号发送dct或dst变换是否用于预测残差。在y.ye及m.karczewicz的“基于双向帧内预测、方向性变换及自适应系数扫描的经改善h.264帧内译码(improvedh.264intracodingbasedonbidirectionalintraprediction,directionaltransform,andadaptivecoefficientscanning)”(2008年10月,第15次ieee国际会议的图像处理学报,第2116-2119页)中,已提出每一帧内预测模式可映射至经预定义为klt对的独特变换对(c及r),以使得应用模式相依变换(mddt)。以此方式,不同klt变换可用于不同帧内预测模式;然而,预定义使用哪个变换且其取决于帧内预测模式。然而,在x.zhao、l.zhang、s.w.ma及w.gao的“借助率失真优化变换的视频译码(videocodingwithrate-distortionoptimizedtransform)”(2012年1月,ieeetrans.,电路系统视频技术,第22卷,第1号,第138-151页)中,可使用更多变换且明确地用信号发送来自导出于离线训练过程的预定义变换候选集合的变换的索引。类似于mddt,每一帧内预测方向可具有其独特的变换对的集合。用信号发送索引以指定哪一变换对选自所述集合。举例来说,针对最小块大小4×4,存在至多四个垂直klt变换及至多四个水平klt变换;因此可选择16个组合。对于较大块大小,使用较少数目的组合。“借助率失真优化变换的视频译码(videocodingwithrate-distortionoptimizedtransform)”中所提出的方法适用于帧内及帧间预测残差。对于帧间预测残差,可选择klt变换的至多16个组合,且针对每一块用信号发送所述组合(四个用于4×4及十六个用于8×8)中的一者的索引。在a.saxena及f.fernandes的“用于图像/视频译码中的帧内预测的基于dct/dst的变换译码(dct/dst-basedtransformcodingforintrapredictioninimage/videocoding)”(ieeetrans.,图像处理)及c.yeo、y.h.tan、z.li及s.rahardja的“用于译码方向性帧内预测残差的模式相依变换(mode-dependenttransformsforcodingdirectionalintrapredictionresiduals)”(2012年,ieeetrans.,电路系统视频技术,第22卷,第4号,第545-554页)中,使用多重变换;然而,替代使用klt变换(通常需要经过训练),使用dct(dct-ii)或dst(dst-vii)以用于变换单元(左变换及右变换(例如,c及r)两者相同),且通过用信号发送的旗标确定使用哪一者。在f.zou、o.c.au、c.pang、j.dai及f.lu的“用于帧内块译码的基于劳埃德类型算法的率失真优化变换(rate-distortionoptimizedtransformsbasedonthelloyd-typealgorithmforintrablockcoding)”(2013年11月,信号处理中的所选择话题的ieee期刊,第7卷,第6期)中,使用若干预定义klt变换对,且针对译码单元用信号发送(而不是导出)变换对的索引,以使得译码单元的每一变换单元使用相同对的变换。在j.an、x.zhao、x.guo及s.lei的“non-ce7:用于经帧内预测残差的与边界有关的变换(non-ce7:boundary-dependenttransformforinter-predictedresidue)”(jctvc-g281)中,根据tu在cu内的位置选择多重变换以用于tu的经帧间预测残差。c及r变换两者选自dst-vii及dst-vii的倒装版本。因此,至多四个组合可能用于cu内的tu。然而,因为组合完全通过pu的位置确定,所以不需要用信号发送正在使用哪个组合。可存在与用于残差的变换相关的技术的某些问题(例如,由帧内预测所引起的经帧内预测的残差的问题,但也可适用于由帧间预测引起的经帧间预测的残差)。现有方法可使用一对dst或dct变换以用于经帧内预测的残差。然而,所述变换无法覆盖残差信号的所有可能的分布。举例来说,仅dct类型-ii应用于大于或等于hevc中的8×8的帧内预测残差块,所述dct类型-ii无法适应帧内预测残差的变化统计。仅dct类型-ii应用于hevc中的帧间预测残差,所述dct类型-ii无法适应帧间预测残差的变化统计。仅取决于变换块大小或帧内预测模式选择变换并不十分有效,因为即使在相同帧内预测模式或同一变换大小下,残差统计仍可具有大变化。本发明描述以下技术。在一些实例中,以下技术中的一或多者可解决上文所提及的问题中的一或多者。然而,并不要求以下技术解决上文所提及的问题中的一或多者。以下技术可经个别地应用。在一些情况下,可应用实例技术的任何组合。举例来说,视频编码器20及视频解码器30可个别地应用所述技术,或在一些情况下,应用所述一或多个技术的任何组合。在一些实例中,除了用于hevc中的基于dct-ii的变换之外,对于通过帧内预测模式产生的每一残差块,视频编码器20及视频解码器30可从dct及dst家族的两个或两个以上候选变换选择变换。作为一个实例,候选变换可属于基于不同类型的dct及dst家族的共计16个变换,且可包含(但不限于)dct–i至dct-viii、dst-i至dst-viii。替代地或另外,视频编码器20及视频解码器30可使用其它正弦单变换,或甚至可使用其它klt变换。对于每一tu,水平及垂直变换(例如,右变换及左变换)可为同一类型。举例来说,候选变换为dst-vii、dct-viii、dst-i及dst-v。如上文所描述,存在16个变换(例如,dct-i至dct-viii及dst-i至dst-viii)。识别使用哪些变换的一方式为使视频编码器20及视频解码器30构建这些16变换的列表。视频编码器20可随后用信号发送(例如,在位流中产生)对所述列表的第一索引以识别左变换(例如,用于方程式y=c*x*rt的变换c,其中x为变换块且y为所得系数块)并用信号发送(例如,在位流中产生)对所述列表的第二索引以识别右变换(例如,用于方程式y=c*x*rt的变换r)。视频解码器30将随后从位流接收第一索引及第二索引并确定视频解码器30将使用的变换c及r以将系数块逆变换回到变换块。在这个实例中,第一索引的值可在0至15的范围内,且第二索引的值可在0至15的范围内。通常,译码较大数字需要用信号发送比译码较小数字更多的位(例如,指示索引值15需要比指示索引值2更多的位)。在列表包含所有16个变换的情况下,可存在比所要消耗更多带宽的信令开销。然而,关于可使用哪些变换的限制选项(如hevc中所进行)可减小信令开销,但不利地影响译码效率,因为更好的变换不可用。在本发明中描述的技术中,视频编码器20及视频解码器30可能能够从对信令开销具有较少影响的相对大量的候选变换确定左变换及右变换。作为一个实例,视频编码器20及视频解码器30可各自确定多个变换子集,其中每一者变换子集识别多个候选变换。举例来说,视频编码器20及视频解码器30可各自构建以下三个变换子集并将所述变换子集存储于存储器中:变换子集0:{dst-vii,dct-viii}、变换子集1:{dst-vii,dst-i}及变换子集2:{dst-vii,dct-v}。在一些实例中,这三个变换可预存储于视频编码器20及视频解码器30的存储器中。在任何情况下,视频编码器20及视频解码器30可被视为确定这三个变换子集,其中所述三个变换子集中的每一者识别多个候选变换(例如,在这个实例中识别两个变换)。多个变换子集可包含超过或低于三个变换子集,且通常包含两个或两个以上变换子集。每一变换子集可包含一或多个候选变换,但至少一者识别多个候选变换。举例来说,一些变换子集可仅识别一个变换,且其它变换子集可识别两个或两个以上变换。在一些实例中,每一变换子集可识别相对较小数目的变换(例如,低于或等于5)。在本发明中描述的技术中,视频编码器20及视频解码器30可确定对应的变换子集。举例来说,如果视频编码器20中的所存储变换子集为变换子集0:{dst-vii,dct-viii}、变换子集1:{dst-vii,dst-i}及变换子集2:{dst-vii,dct-v},那么视频解码器30可存储逆变换子集:逆变换子集0:{idst-vii,idct-viii}、逆变换子集1:{idst-vii,idst-i}及逆变换子集2:{idst-vii,idct-v}。作为另一实例,视频解码器30可存储与视频编码器20相同的变换,且可在应用逆变换之前将其逆向。在任一实例中,视频编码器20及视频解码器30可被视为存储对应的变换子集(例如,相同子集或具有彼此的逆变换的子集)。视频编码器20及视频解码器30可利用隐式技术来选择左变换及右变换的变换子集。隐式技术意指视频编码器20不需要向视频解码器30用信号发送关于指示视频解码器30选择哪些变换子集的信息。视频编码器20及视频解码器30可经配置执行相同隐式技术以选择变换子集,从而在不对需用信号发送的信息的量进行任何增加的情况下引起视频编码器20及视频解码器30选择相同变换子集。作为一个实例,如果变换块从帧内预测产生,那么视频编码器20及视频解码器30可基于帧内预测模式确定选择哪些变换子集。举例来说,视频编码器20及视频解码器30可各自存储将帧内预测模式映射至左变换待从其确定的变换子集及映射至右变换待从其确定的变换子集的表。作为一实例,视频编码器20可在帧内预测模式x中对当前块进行帧内预测编码。在这个实例中,视频编码器20从在帧内预测模式x中对当前块进行帧内预测编码而产生的残差块来产生变换块。视频编码器20可基于帧内预测模式x选择用于左变换的变换子集及基于帧内预测模式x选择用于右变换的变换子集。如下文更详细地描述,视频编码器20可从相应所选择变换子集确定左变换及右变换,并应用变换以产生系数块。视频编码器20可产生包含信息的视频位流,所述信息指示离开系数块的系数值的信息以及指示从系数块产生的变换块用于使用帧内预测模式x经帧内预测编码的块。视频解码器30可从用信号发送的信息产生系数块并且也从用信号发送的信息确定帧内预测模式为模式x。视频解码器30可基于为模式x的帧内预测模式来选择用于左变换的变换子集(在这种情况下,其将为由视频编码器20应用的变换的相逆者)及用于右变换的变换子集(在这种情况下,其将为由视频编码器20应用的变换的相逆者)。指示哪些变换子集映射至哪些帧内预测模式的经存储映射在视频编码器20侧与视频解码器30侧上是相同的。因此,视频编码器20及视频解码器30选择对应的变换子集。如下文更详细地描述,视频解码器30可从相应所选择变换子集确定左变换及右变换,并应用变换以产生变换块。尽管关于帧内预测模式描述了以上实例,但本发明中描述的技术不如此受限。在一些实例中,视频编码器20及视频解码器30可基于其它信息(例如,rqt深度、经量化系数等等)选择相应变换子集而不是帧内预测模式。并且,尽管针对帧内预测描述以上实例,本发明中描述的技术也可经扩展至帧间预测。举例来说,类似于上文,视频编码器20及视频解码器30可确定多个变换子集。帧间预测情况的多个变换子集可与帧内预测情况的多个变换子集相同或不同。在一些情况下,帧间预测情况的多个变换子集可与帧内预测情况的多个变换子集的一些但并非全部相同。对于帧间预测,视频编码器20及视频解码器30可存储变换块相对于与其相关联的pu、cu、或lcu的位置之间的映射。举例来说,映射可指示如果变换块处于pu、cu或lcu的左边界,那么选择变换子集的第一群组(例如,用于左变换的一个变换子集及用于右变换的一个变换子集)。如果变换块处于pu、cu或lcu的右边界,那么选择变换子集的第二群组,及对于顶边界及底边界等等也是如此,其中在每一情况下,视频编码器20及视频解码器30选择用于左变换的一个变换子集及用于右变换的一个变换子集。视频编码器20及视频解码器30可以特定次序编码及解码图片的块。因此,基于刚经编码或解码块的位置,视频编码器20及视频解码器30可确定pu、cu或lcu中的变换块的位置。并且,从视频解码器30的角度,视频解码器30从系数块产生变换块。然而,基于解码次序,视频解码器30可能能够确定将从系数块产生的变换块的位置。以这种方式,在不对需用信号发送的信息的量进行任何增加的情况下,视频编码器20及视频解码器30可确定相应变换子集,将从所述相应变换子集确定左变换及右变换。在一些实例中,在视频编码器20选择变换子集之后,视频编码器20可用信号发送指示所选择变换子集中的哪些变换用于左变换及哪一变换用于右变换的信息(例如,在视频位流中产生所述信息)。视频解码器30接收用信号发送的信息并确定左变换及右变换。举例来说,视频编码器20可用信号发送(例如,在位流中产生)对经选择用于左变换的变换子集的索引及用信号发送(例如,在位流中产生)对经选择用于右变换的变换子集的索引。视频解码器30可接收对相应变换子集的相应索引,并确定左变换及右变换。在这个实例中,需用信号发送的信息可增加(例如,用信号发送确定左变换及右变换的索引)。然而,需用信号发送的信息的增加可为最小。如上文所描述,变换子集中的每一者可识别相对较小数目的变换。因此,索引值的范围可相对较小(例如,如果每一变换子集识别的变换的最大数目为5,那么索引值范围为0至4)。因此,对于信令开销的相对小的增加,本发明中描述的技术允许可被选择的变换的数目相对大的增加。举例来说,由于存在每一者包含一或多个变换的多个变换子集,16个实例变换中的许多个变换及可能所有变换可在变换中的一或多者加以识别。因为变换子集使用隐式技术所选择的,所以不存在信令开销的增加,且因为每一变换子集识别相对小数目的变换,所以识别特定变换不会大幅度地增加信令开销。在一些实例中,进一步减小信令开销的量是可能的。举例来说,在一些实例中,如上文所描述,视频编码器20及视频解码器30可选择变换子集,但随后经配置以基于某些条件而从相应变换子集中的每一者确定特定变换。在这种情况下,视频编码器20可能不需要用信号发送,且视频解码器30可能不需要接收指示使用所选择变换子集内的哪些变换的信息。作为一实例,在编码过程期间,视频编码器20可使用来自所选择变换子集的特定变换(例如,所选择变换子集中的第一经识别变换),且在应用所述变换之后,确定所得系数块中的非零系数的数目小于阈值。在这种情况下,视频解码器30可接收指示系数块的系数值的信息并类似地确定非零系数的数目小于阈值。在一些实例中,如果视频解码器30确定系数块中的非零系数的数目小于阈值(例如,1或2),那么视频解码器30可确定视频解码器30应使用来自所选择变换子集的特定变换(例如,所选择变换子集中的第一经识别变换)。举例来说,假定基于帧内预测模式,视频编码器20确定用于左变换的变换子集为子集0且用于右变换的变换子集为子集1。在这种情况下,视频编码器20可确定如果子集0中的第一经识别变换用作左变换且如果子集1中的第一经识别变换用作右变换,那么所得系数块中的非零系数的数目小于阈值。在这个实例中,视频编码器20可不用信号发送指示子集0及子集1中的第一经识别变换将分别用作左变换及右变换的信息。在其它情况下,如果子集0(或子集1)中的第一经识别变换并不用作左变换(或右变换),那么所得系数块中的非零系数的数目小于阈值。在这个实例中,视频编码器20添加子集0及子集1中的经识别变换不可用作左变换及右变换的限制。视频解码器30可接收帧内预测模式,且类似于视频编码器20而基于帧内预测模式确定变换子集0及变换子集1将经选择以分别用于左变换及右变换。并且,在从指示系数值的信息产生系数块之后,视频解码器30也可确定系数块中的非零系数的数目小于阈值。视频解码器30可确定子集0中的第一经识别变换及子集1中的第一经识别变换将分别用作左变换及右变换,而不从视频编码器20接收此信息,是因为非零系数的数目小于阈值。在以上实例中,变换子集由16个变换(即,八个dct及八个dst)形成。然而,本发明中所描述的技术不如此受限。变换的额外实例包含klt变换。因此,变换子集可包含来自八个dct、八个dst、klt变换及其它变换实例的一或多个变换。仅为了易于说明,关于八个dct及八个dst描述实例。作为概述,在本发明中描述的一些实例中,执行从三个或三个以上候选变换的预选择以制定变换的子集,且从变换的子集选择待用于当前tu的最终变换。举例来说,变换的子集可组成左变换的子集及/或右变换的子集。可通过已解码信息(例如,帧内预测模式、rqt深度、经量化系数等)来确定制定变换的子集(或左变换的子集及右变换的子集)的预选择。变换的子集的数目可限于较小整数,例如,1、2、3或4,且变换的不同子集含有不同类型的变换。在一个实例中,产生变换的三个子集(每一者含有两个变换)。基于给定帧内预测模式,左变换的子集经设定成三个子集中的一者,且右变换的子集也经设定成三个子集中的一者(可或可不与左变换的子集相同)。作为实例,变换的三个子集为:{dst-vii,dct-viii}、{dst-vii,dst-i}及{dst-vii,dct-v}。左变换的子集或右变换的子集可为以上三个子集中的一者。因此,各种帧内预测模式可对应于用于左变换及右变换的子集的至多9个不同组合。替代地或另外,左变换的子集或右变换的子集仅含有一个变换。替代地或另外,左变换的子集及右变换的子集两者可仅含有一个变换。在上文所描述的实例中,无论tu大小如何,变换子集及在变换子集中识别的变换可以是相同的,且变换子集中的变换的数目对于不同帧内预测模式可以是相同的。然而,本发明中所描述的技术不如此受限。在一些实例中,对于不同tu大小,左/右变换的子集中的变换的数目可不同,其典型数目可为(但不限于)2、3及4。对于不同帧内预测模式,左/右变换的子集中的变换的数目可不同;变换的典型数目可为(但不限于)2、3及4。如上文所描述,当已经预选择变换的子集时,待使用的最终变换可通过变换的子集的索引用信号发送。当左变换的子集(或右变换的子集)含有两个或两个以上变换时,用信号发送属于左变换的子集(或右变换的子集)的变换的索引。其意指当左变换或右变换的子集的数目等于1时,不需要用信号发送变换的索引。以上实例描述视频编码器20及视频解码器30可预选择以制定变换子集的情况。然而,本发明中所描述的实例不如此受限。替代地或另外,可能不需要进行预选择以制定变换的子集,且直接用信号发送两个或两个以上候选变换(如全集合)的一个索引以指示左变换或右变换。举例来说,在视频编码器20处,可引入可仅测试完整集合内的一些变换且不测试其它变换的约束条件以减小编码器复杂度。选择哪些变换及变换的索引可取决于帧内预测模式或其它信息。在一些实例中,对于每一tu,对于左变换(右变换),视频编码器20及视频解码器30可从候选变换的子集选择左变换及右可能是受约束的。举例来说,变换的仅一个子集含有dst-vii、dct-viii及dct-ii,且用于每一tu的左变换始终选自{dst-vii、dct-viii及dct-ii},且用于每一tu的右变换也始终选自{dst-vii、dct-viii及dct-ii}。如上文所描述,本发明中所描述的实例技术可适用于帧内预测及帧间预测。在hevc中,对于从帧间预测产生的变换块,仅基于dct-ii的变换是可用的。在一些实例中,除如hevc中的常规基于dct-ii的变换之外,对于通过帧间预测模式产生的每一残差块,除产生左变换的子集及右变换的子集之外,视频编码器20及视频解码器30可根据两个或两个以上候选变换方法从dct及dst家族或其它变换(例如,klt)选择变换。类似于用于帧内预测的以上实例,视频编码器20可用信号发送(例如,在位流中产生)及视频解码器30可在位流中接收用于每一tu的左变换的子集的索引及右变换的子集的索引以确定左变换及右变换。作为一个实例,将两个变换(例如,dst-vii及dct-viii)置于左变换的子集及右变换的子集中。这些子集中的每一者的一位索引确定当前tu的最终左变换及最终右变换。子集可为{dst-vii,dct-viii}或{dst-viii,dct-vii}。替代地或另外,执行从三个或三个以上候选变换的预选择以制定变换的子集,且从变换的子集选择待用于当前tu的最终变换。举例来说,制定变换的子集(或左变换的子集及右变换的子集)的预选择可通过当前tu对于附属pu的相对位置(即,当前tu是否位于附属pu的顶边界、左边界、右边界、底边界或其它位置处)来确定。在一个实例中,产生变换的三个子集(每一者含有两个变换)。基于当前tu对于附属pu的相对位置,左变换的子集经设定成三个子集中的一者,且右变换的子集也经设定成三个子集中的一者(可能或可能不与左变换的子集相同)。替代地或另外,左变换的子集或右变换的子集仅含有一个变换。替代地或另外,左变换的子集及右变换的子集两者可仅含有一个变换。在以上实例中,视频编码器20及视频解码器30可选择用于cu的每一tu的变换子集,且接着如上文所描述确定用于的每一tu的左变换及右变换。在这个实例中,确定使用哪些变换被视为处于tu级别。然而,本发明中所描述的实例技术不如此受限。在一些情况下,视频编码器20可确定用于cu的每一tu的左变换及右变换应为同一默认变换(例如,dct-ii作为一个实例,但其它变换类型也为可能的)。并且,可存在用于左变换的默认变换及用于右变换的默认变换,或用于左变换与右变换的默认变换可为相同的。在以下描述中,术语“默认变换”应解释为包含用于左变换及右变换的默认变换为不同的及用于左变换及右变换的默认变换为相同的两种情况。举例来说,用于左变换及右变换的默认变换(例如,在不同或相同的情况下)可经预选择,且其对于视频编码器20及视频解码器30是相同的。如果视频编码器20确定cu的每一tu应具有相同默认变换,那么视频编码器20可用信号发送如此指示的信息(例如,在视频位流中产生如此指示的信息)。在这个实例中,视频编码器20可不用信号发送变换子集中的索引,这减小需要用信号发送的信息的量,是因为视频解码器30可基于所接收信息确定默认变换将用于cu的每一tu。作为实例,视频编码器20可用信号发送(例如,在位流中产生)指示cu的每一tu是否将应用相同默认变换的旗标。如果旗标为第一值(例如,数字高),那么cu的每一tu以相同默认变换应用。如果旗标为第二值(例如,数字低),那么cu的至少一个tu以除默认变换外的变换应用。在cu的至少一个tu以不同变换应用的情况下,如果需要(例如,大于阈值的非零系数),那么视频编码器20可选择变换子集并在变换子集中用信号发送索引,如上文所描述。在cu的每一tu以相同默认变换应用的情况下,视频编码器20可在变换子集中的任一者中用信号发送任何索引,因为视频解码器30可已确定使用哪些变换。视频解码器30可接收指示cu的每一tu是否应用相同默认变换的旗标。若旗标为第一值,那么视频解码器30可确定未选择变换子集且未从位流剖析(例如,接收)变换子集的索引。在这种情况下,视频解码器30可应用默认变换至cu的每一系数块。如果旗标为第二值,那么视频解码器30可确定将选择变换子集,确定是否将接收索引(例如,基于非零系数的数目),并基于将接收索引的确定接收所选择变换子集中的索引。在以上实例中,指示每一tu是否将使用相同默认变换的旗标处于cu级别(例如,指示cu的每一tu使用相同默认变换)。在一些实例中,旗标可处于ctu级别或pu级别而不是处于cu级别。举例来说,视频编码器20可用信号发送(例如,在位流中产生)指示是否使用相同变换来变换块的所有变换块的旗标。响应于接收指示块的所有变换块并非是使用相同变换来变换的旗标,视频解码器30可选择变换子集并如上文所描述确定所选择变换中的索引。响应于接收指示块的所有变换块是使用相同变换来变换的旗标,视频解码器30可将所述变换用于块的变换块中的每一者。在这个实例中,作为几个实例,“块”可为ctu、cu或pu中的一者。作为概述,当使用当前cu利用额外变换时(例如,如上文所描述),待用于每一tu的变换的用信号发送可在tu级别中进行。举例来说,视频编码器20可对每一cu发送指示其内的tu是否使用额外变换(例如,使用除hevc中的所述变换的变换)而译码的一个旗标。替代地或另外,可在lcu级别(ctu级别)、cu级别、pu级别、tu或任何其它块级别处来用信号发送所述指示。当旗标指示未使用额外变换译码cu内的tu时,使用一个默认变换来译码所有tu。在一个实例中,默认变换为dct-ii。替代地或另外,默认变换可取决于帧内/帧间模式、帧内预测模式、块大小、pu内的tu位置、或当前tu的任何其它统计。举例来说,如上文所描述,视频编码器20及视频解码器30可确定相同默认变换,且默认变换使用的条件可基于例如帧内/帧间模式、帧内预测模式、块大小、pu内的tu位置或当前tu的任何其它统计的因素。以这种方式,通过使用默认变换,可减少需要用信号发送的信息的量。另外,指示可存在于不同阶层中。举例来说,如果一位旗标为0,那么视频编码器20可首先用信号发送(例如,在位流中产生)在lcu(ctu)级别处的所述一位旗标,视频编码器20及视频解码器30可仅对每一cu应用dct-ii,否则,如果一位旗标为1,那么视频编码器20可用信号发送在cu级别处的指定cu内的tu是否可使用多重变换或仅默认变换的另一旗标。在这个实例中,视频解码器30可在每一阶层式级别处确定特定阶层式级别内的所有tu是否使用默认变换。举例来说,如果ctu级别处的旗标指示ctu的所有tu将使用相同默认变换,那么视频解码器30可使用用于ctu的所有tu的相同默认变换。如果ctu级别处的旗标指示ctu的所有tu并非将使用相同默认变换,那么视频解码器30可选择变换子集并如上文所描述确定用于ctu的每一tu的变换。在一些情况下,可存在用于ctu的cu中的每一者的另一旗标,而不是在ctu级别处停止并确定用于每一tu的变换。举例来说,视频解码器30可接收用于ctu的每一cu的旗标,其指示cu的所有tu是否使用相同默认变换或并不使用相同默认变换。如果对于cu,视频解码器30接收指示cu的所有tu使用相同默认变换的旗标,那么视频解码器30可应用所述默认变换。如果对于cu,视频解码器30接收指示cu的所有tu并非使用相同默认变换的旗标,那么视频解码器30可选择变换子集并如上文所描述确定用于cu的每一tu的变换。在一些情况下,可存在用于cu的pu中的每一者的另一旗标,而不是在cu级别处停止并确定用于每一tu的变换。举例来说,视频解码器30可接收用于cu的每一pu的旗标,其指示pu的所有tu是否使用相同默认变换或并不使用相同默认变换。如果对于pu,视频解码器30接收指示pu的所有tu使用相同默认变换的旗标,那么视频解码器30可应用所述默认变换。如果对于pu,视频解码器30接收指示pu的所有tu并非使用相同默认变换的旗标,那么视频解码器30可选择变换子集并如上文所描述确定用于pu的每一tu的变换。替代地或另外,此外,当cu的重叠块运动补偿(obmc)旗标用信号发送为关闭时,并不针对当前cu用信号发送指示是否仅应用一个默认变换的一位旗标,且所述一位旗标经推断为指示默认变换(例如,dct-ii)经应用的默认值(例如,0)。替代地或另外,当允许obmc用于当前图块时,一个块的一位旗标(其指示是否仅应用一个默认变换)的cabac上下文模型化取决于当前块的obmc旗标(例如,取决于obmc旗标的值)。在一个实例中,当obmc旗标(经隐式导出或明确用信号发送)为真(即,等于1)时,视频编码器20及视频解码器30可使用上下文模型的一个集合以用于cabac编码或cabac解码所述一位旗标。当obmc旗标为假(即,等于0)时,上下文模型的另一集合可用于译码所述一位旗标。替代地或另外,此外,上下文模型的两个集合的初始化机率可为不同的。替代地或另外,一个块的一位旗标(其指示是否仅应用一个默认变换)的cabac上下文模型化取决于空间相邻块(例如,左相邻块及/或上相邻块)或时间相邻块(例如,参考图片中的共置块)的对应的一位旗标的值。当cu启用额外变换时(例如,意指hevc的更受限制的选择),对于每一tu,视频编码器20可用信号发送且视频解码器30可从候选变换(集合或子集)接收变换的索引,如上文所描述。替代地或另外,视频编码器20可用信号发送这类信息,且视频解码器30可在lcu级别、cu级别、pu级别或任何其它块级别处接收这类信息。当视频编码器20在lcu级别、cu级别、pu级别或任何其它块级别处用信号发送指示符时,所有包含于所述级别内的tu可使用相同变换对。举例来说,视频编码器20及视频解码器30可如上文所描述(例如,基于帧内预测模式或基于用于帧间预测的tu的位置)选择变换子集。在一些实例中,对于每一变换块,视频编码器20可用信号发送索引且视频解码器30可接收用于每一变换块的索引。然而,在一些实例中,作为几个实例,视频编码器20可用信号发送用于左变换的一个索引及用于右变换的一个索引以用于ctu的所有tu、cu的所有tu或pu的所有tu,而不是接收用于每一变换块的索引。在这个实例中,对于视频解码器30针对tu的右变换及左变换所选择的每一变换子集,视频解码器30可应用通过块(例如,cut、cu或pu)的所有tu的索引所识别的变换。换言之,在一些情况下,至变换子集的索引可被视为更“全域的”。举例来说,视频编码器20可用信号发送用于左变换及右变换的索引。在这种情况下,在索引对于块的每一tu相同而不考虑所选择的特定变换子集如何的意义上,索引可为全域的,其中块为ctu、cu或pu。在这些实例中,视频解码器30可从这些全域索引确定来自所选择变换子集的左变换及右变换。举例来说,视频解码器30可不剖析用于每一变换块的每一所选择变换子集的索引,而是基于全域索引识别用于块(例如,ctu、cu或pu)的所有变换块的变换。如上文所描述,在一些实例中,视频编码器20可不用信号发送对所选择变换子集的索引。举例来说,对于特定tu,如果残差信号的能量受到限制(例如,若不存在经发射用于当前tu的非零系数),那么可跳过额外变换的用信号发送。额外变换的用信号发送的类似跳跃可适用于lcu、cu、pu或任何其它块级别。替代地或另外,如果在某一块级别处所发射的非零系数的总数目或总绝对总和或平方值的总和小于给定阈值,那么可跳过所述某一块级别处的指示符。换言之,如果系数块的非零系数的总数目或总绝对总和或平方值的总和小于阈值,那么视频编码器20可不用信号发送对所选择变换子集的索引。在这些实例中,如果视频解码器30确定非零系数的总数目或总绝对总和或平方值的总和小于给定阈值,那么视频解码器30可确定对所选择变换子集的索引并不从位流接收(例如,剖析)。在一个实例中,非零系数的总数目的阈值为2。替代地或另外,非零系数的总数目的阈值对于不同块大小或不同帧内预测模式可以不同。在一些实例中,当lcu、cu、pu或块的大小大于或小于预定义阈值,或在给定阈值范围内时,视频编码器20可跳过指示符(例如,对变换子集的索引)的用信号发送,且视频编码器20及视频解码器30可仅应用默认变换类型。在一个实例中,默认变换为dct-ii。此外,当cu大小大于32×32时,视频编码器20可不用信号发送指示符,且视频编码器20及视频解码器30可仅应用用于每一tu的dct-ii。视频编码器20及视频解码器30可使用(例如)固定长度码、截断一元码或指数哥伦布码来二进制化指示符(例如,对变换子集的索引)。视频编码器20及视频解码器30可使用具有上下文的cabc熵译码(例如,分别编码或解码)指示符,且对于每一二进数,应用一个上下文。在一个实例中,基于二进数索引选择上下文模型。在另一实例中,此外,当选择上下文模型时也考虑帧内预测模式或tu大小或tu深度。替代地或另外,使用上下文模型译码二进数的部分,且使用旁路模式译码残差二进数。替代地或另外,指示符可经旁路译码,即,不应用上下文模型化。在实例技术中,视频编码器20可在位流中用信号发送各种信息,且视频解码器30可从位流接收这类信息。视频编码器20可用信号发送这类信息且视频解码器30可从不同位置接收这类信息。作为一个实例,与多重变换相关的语法可出现于高级语法中。视频编码器20可用信号发送(例如,在位流中产生)且视频解码器30可接收待用于图片参数集(pps)、序列参数集(sps)或任何其它位置(甚至包含图块标头处)的候选变换的数目(如上文关于选自两个或两个以上候选变换的变换所所描述)。视频编码器20可用信号发送(例如,在位流中产生)且视频解码器30可在图块标头、图片参数集(pps)、序列参数集(sps)或任何其它位置处接收每一子集中的候选变换的数目,如上文关于对三个或三个以上候选变换的预选择所描述。可在图块标头、pps、sps或任何其它位置处用信号发送旗标或索引以指示以上所提及的多重变换是否应用于块级别处。如上文所描述,这个旗标或索引的一个指定值可指示所有tu使用一个默认变换来译码。另外或替代地,这个旗标或索引的一个指定值可指示一或多个旗标/索引可在块级别处用信号发送以用于块级别处的变换选择。并且,多重变换并不适用的块的大小(当大小大于用信号发送的大小或小于用信号发送的大小或在两个用信号发送的大小的范围内时)可存在于参数集(例如,图片参数集或序列参数集)中。重申,以上描述利用术语“变换”。然而,应理解,视频编码器20利用变换以从残差块产生变换系数值的变换块。另一方面,视频解码器30利用逆变换以从变换块产生残差值的残差块。因此,在以上描述中,应理解,变换的描述同样适用于视频解码器30;然而,视频解码器30利用逆变换。图5为说明可实施本发明的技术的实例视频编码器20的框图。出于解释的目的而提供图5,且不应将所述图视为对本发明中所广泛例示及描述的技术的限制。出于解释的目的,本发明描述在hevc译码的上下文中的视频编码器20。然而,本发明的技术可适用于其它译码标准或方法。举例来说,视频编码器20可经配置以应用比hevc中提供的受限选项更多的变换至变换块。在图5的实例中,视频编码器20包含预测处理单元100、视频数据存储器101、残差产生单元102、变换处理单元104、量化单元106、逆量化单元108、逆变换处理单元110、重建单元112、滤波器单元114、经解码图片缓冲器116及熵编码单元118。预测处理单元100包含帧间预测处理单元120及帧内预测处理单元126。帧间预测处理单元120包含运动估计单元及运动补偿单元(未展示)。在其它实例中,视频编码器20可包含较多、较少或不同功能组件。视频数据存储器101可存储待由视频编码器20的组件编码的视频数据。可(例如)从视频源18获得存储于视频数据存储器101中的视频数据。经解码图片缓冲器116可为存储用于视频编码器20(例如)以帧内或帧间译码模式编码视频数据的参考视频数据的参考图片存储器。视频数据存储器101及经解码图片缓冲器116可由多种存储器装置中的任一者形成,例如,动态随机存取存储器(dram)(包含同步dram(sdram))、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。可由同一存储器装置或单独存储器装置提供视频数据存储器101及经解码图片缓冲器116。在各种实例中,视频数据存储器101可与视频编码器20的其它组件一起在芯片上,或相对于所述组件在芯片外。视频编码器20可接收视频数据。视频编码器20可编码视频数据的图片的图块中的每一ctu。ctu中的每一者可与相等大小的明度译码树型块(ctb)及图片的对应ctb相关联。作为编码ctu的部分,预测处理单元100可执行四叉树分割以将ctu的ctb划分成渐渐更小的块。较小块可为cu的译码块。举例来说,预测处理单元100可将与ctu相关联的ctb分割成四个相等大小的子块,将所述子块中的一或多者分割成四个相等大小的子块,等等。视频编码器20可编码ctu的cu以产生cu的经编码表示(即,经译码cu)。作为编码cu的部分,预测处理单元100可分割与cu的一或多个pu中的cu相关联的译码块。因此,每一pu可与明度预测块及对应的色度预测块相关联。视频编码器20及视频解码器30可支持具有各种大小的pu。如上文所指示,cu的大小可指cu的明度译码块的大小,且pu的大小可指pu的明度预测块的大小。假定特定cu的大小为2n×2n,那么视频编码器20及视频解码器30可支持用于帧内预测的2n×2n或n×n的pu大小,及用于帧间预测的2n×2n、2n×n、n×2n、n×n或类似的对称pu大小。视频编码器20及视频解码器30也可支持用于帧间预测的2n×nu、2n×nd、nl×2n及nr×2n的pu大小的不对称分割。帧间预测处理单元120可通过对cu的每一pu执行帧间预测而产生用于pu的预测性数据。用于pu的预测性数据可包含pu的预测性块及pu的运动信息。取决于pu是在i图块中、p图块中还是b图块中,帧间预测单元121可针对cu的pu执行不同操作。在i图块中,所有pu经帧内预测。因此,如果pu在i图块中,那么帧间预测单元121不对pu执行帧间预测。因此,对于在i模式中编码的块,经预测块是使用空间预测从同一帧内的先前经编码的相邻块而形成。如果pu在p图块中,那么帧间预测处理单元120的运动估计单元可在用于pu的参考区域的参考图片列表(例如,“refpiclist0”)中搜寻参考图片。用于pu的参考区域可为参考图片内含有最紧密地与pu的样本块对应的样本块的区域。运动估计单元可产生指示含有用于pu的参考区域的参考图片的refpiclist0中的位置的参考索引。另外,运动估计单元可产生指示pu的译码块与关联于参考区域的参考位置之间的空间位移的mv。举例来说,mv可为提供从当前经解码图片中的坐标至参考图片中的坐标的偏移的二维向量。运动估计单元可输出参考索引及mv作为pu的运动信息。帧间预测处理单元120的运动补偿单元可基于由pu的运动向量指示的参考位置处的实际或经内插样本而产生pu的预测性块。如果pu在b图块中,那么帧间预测处理单元120的运动估计单元可针对pu执行单向预测或双向预测。为针对pu执行单向预测,运动估计单元可搜寻refpiclist0或用于pu的参考区域的第二参考图片列表(“refpiclist1”)的参考图片。运动估计单元可输出以下各者作为pu的运动信息:指示含有参考区域的参考图片在refpiclist0或refpiclist1中的位置的参考索引、指示pu的预测块与关联于参考区域的参考位置之间的空间位移的mv,及指示参考图片是在refpiclist0中还是在refpiclist1中的一或多个预测方向指示符。帧间预测处理单元120的运动补偿单元可至少部分地基于由pu的运动向量指示的参考区域处的实际或经内插样本而产生pu的预测性块。为针对pu执行双向帧间预测,运动估计单元可在用于pu的参考区域的refpiclist0中搜寻参考图片,且也可在用于pu的另一参考区域的refpiclist1中搜寻参考图片。运动估计单元可产生指示含有参考区域的参考图片在refpiclist0及refpiclist1中的位置的参考图片索引。另外,运动估计单元可产生指示关联于参考区域的参考位置与pu的样本块之间的空间位移的mv。pu的运动信息可包含参考索引及pu的mv。帧间预测处理单元120的运动补偿单元可至少部分地基于由pu的运动向量指示的参考区域处的实际或经内插样本而产生pu的预测性块。帧内预测处理单元126可通过对pu执行帧内预测而产生用于pu的预测性数据。用于pu的预测性数据可包含pu的预测性块及各种语法元素。帧内预测处理单元126可对i图块、p图块及b图块中的pu执行帧内预测。为对pu执行帧内预测,帧内预测处理单元126可使用多个帧内预测模式以产生用于pu的预测性数据的多个集合。帧内预测处理单元126可使用来自相邻pu的样本块的样本来产生用于pu的预测性块。对于pu、cu及ctu,假定从左至右、从上而下的编码次序,那么相邻pu可在pu上方、右上方、左上方或左边。帧内预测处理单元126可使用各种数目的帧内预测模式,例如,35个方向性帧内预测模式。在一些实例中,帧内预测模式的数目可取决于与pu相关联的区域的大小。预测处理单元100可从由帧间预测处理单元120针对pu产生的预测性数据或由帧内预测处理单元126针对pu产生的预测性数据当中选择用于cu的pu的预测性数据。在一些实例中,预测处理单元100基于预测性数据的集合的速率/失真度量而选择用于cu的pu的预测性数据。所选择的预测性数据的预测性块在本文中可被称作所选择的预测性块。在本发明中描述的实例中,所述技术适用于视频块经帧内预测或帧内预测的情况。举例来说,当块经帧内预测时,帧内预测模式可用于确定变换子集。当块经帧间预测时,其位置可用于确定变换子集。因此,实例技术适用于在帧内预测模式中的任一者中经帧内预测或经单向或双向帧间预测的视频块。此外,实例技术不限于帧内预测或帧间预测,且也可经扩展至块内复制(ibc)模式。在ibc模式中,预测性块在与经编码的视频块相同的图片中,且由块向量识别。在ibc模式中,作为几个实例,变换子集可选自视频块的位置、预测性块的位置或块向量。残差产生单元102可基于cu的明度、cb及cr译码块及cu的pu的所选择的预测性明度、cb及cr块而产生cu的明度、cb及cr残差块。举例来说,残差产生单元102可产生cu的残差块,以使得残差块中的每一样本具有等于cu的译码块中的样本与cu的pu的对应所选择预测性块中的对应样本之间的差值。转换处理单元104可执行四叉树分割以将与cu相关联的残差块分割成与cu的tu相关联的转换块。因此,tu可与明度转换块及两个色度转换块相关联。cu的tu的明度转换块及色度转换块的大小及位置可能或可能不基于cu的pu的预测块的大小及位置。被称为“残差四叉树”(rqt)的四叉树结构可包含与区域中的每一者相关联的节点。cu的tu可对应于rqt的分叶节点。转换处理单元104可通过将一或多个转换应用于tu的转换块而产生用于cu的每一tu的转换系数块。转换处理单元104可将各种转换应用于与tu相关联的转换块。举例来说,转换处理单元104可将离散余弦转换(dct)、定向转换或在概念上类似的转换应用于转换块。在一些实例中,转换处理单元104并不将转换应用于转换块。在这些实例中,转换块可经处理为转换系数块。在本发明中描述的技术中,变换处理单元104可应用左变换及右变换于tu的变换块。在一些实例中,预测处理单元100可使用本发明中描述的技术确定应用哪些变换。举例来说,预测处理单元100可确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换。候选变换为不同变换类型,且在一些实例中,预测处理单元100基于经编码视频块的大小确定多个变换子集。在一些实例中,视频数据存储器101存储多个变换子集,且预测处理单元100可从所存储变换子集确定多个变换子集。在一些实例中,视频数据存储器101可存储所有变换,且预测处理单元100可以预定义方式构建变换子集。候选变换的实例包含dct-i至dct-viii、dst-i至dst-viii、klt变换等等。在一些实例中,多个变换子集包含三个或三个以上变换子集。预测处理单元100可针对视频数据的视频块的当前变换块的左变换从多个变换子集选择第一变换子集及针对视频数据的视频块的变换块的右变换从多个变换子集选择第二变换子集。当前变换块可为变换处理单元104产生的变换块且变换处理单元104将对其应用变换。预测处理单元100可从所选择第一变换子集确定左变换并从所选择第二变换子集确定右变换。举例来说,预测处理单元100可测试所选择变换子集中的变换中的每一者并确定哪一变换提供最佳视频译码。预测处理单元100可确定提供最佳视频译码的相应变换为左变换及右变换。变换处理单元104可基于左变换、右变换及当前变换块确定当前系数块。举例来说,变换处理单元104可执行以下方程式:y=c*x*rt,其中c为左变换,r为右变换,x为当前变换块,且y为所得当前系数块。如果视频块(例如,cu或pu)经帧内预测编码,那么预测处理单元100可确定视频块的帧内预测模式。预测处理单元100可基于所确定帧内预测模式选择第一变换子集,并基于所确定帧内预测模式选择第二变换子集。如果视频块(例如,cu或pu)经帧间预测编码,那么预测处理单元100可确定视频块中的当前变换块的位置(例如,确定变换块是否用于从视频块中的特定位置产生的残差)。预测处理单元100可基于所确定的当前变换块的位置选择第一变换子集,并基于所确定的当前变换块的位置选择第二变换子集。对于帧内预测或帧间预测,在一些实例中,预测处理单元100可产生熵编码单元118以用信号发送(例如,在位流中产生)对第一变换子集的第一变换子集索引以识别用于确定当前系数块的第一变换子集中的变换,并用信号发送(例如,在位流中产生)对第二变换子集的第二变换子集索引以识别用于确定当前系数块的第二变换子集中的变换。在一些实例中,预测处理单元100可确定当前系数块中的非零系数的数目。在这些实例中,预测处理单元100可使得熵编码单元118以基于大于阈值的非零系数的数目而用信号发送第一变换子集索引,并基于大于阈值的非零系数的数目用信号发送第二变换子集。如果非零系数的数目小于阈值,那么预测处理单元100可不使得熵编码单元118用信号发送第一及第二变换子集中的索引。在一些实例中,第一变换子集或第二变换子集中的至少一者包含不同于离散余弦变换(dct)-ii变换及离散正弦变换(dst)-vii变换的变换。在一些实例中,第一变换子集及第二变换子集包含不同变换(例如,第一变换子集中的至少一个变换并不在第二变换子集中,或反之亦然)。量化单元106可量化系数块中的转换系数。量化过程可减少与转换系数中的一些或全部相关联的位深度。举例来说,在量化期间,可将n位转换系数舍入至m位转换系数,其中n大于m。量化单元106可基于与cu相关联的量化参数(qp)值来量化与cu的tu相关联的系数块。视频编码器20可通过调整与cu相关联的qp值来调整应用于与cu相关联的系数块的量化程度。量化可引入信息的损失;因此,经量化转换系数相较于原始转换系数可具有较低精确度。逆量化单元108及逆转换处理单元110可分别将逆量化及逆转换应用于系数块,以从系数块重建残差块。重建单元112可将经重建的残差块添加到来自由预测处理单元100产生的一或多个预测性块的对应样本,以产生与tu相关联的经重建的转换块。通过以这种方式重建cu的每一tu的转换块,视频编码器20可重构cu的译码块。滤波器单元114可执行一或多个解块操作以减少与cu相关联的译码块中的块伪影。在滤波器单元114对经重建的译码块执行一或多个解块操作之后,经解码图片缓冲器116可存储经重建的译码块。帧间预测处理单元120可使用含有经重建的译码块的参考图片,以对其它图片的pu执行帧间预测。另外,帧内预测处理单元126可使用经解码图片缓冲器116中的经重建的译码块,以对处于与cu相同的图片中的其它pu执行帧内预测。熵编码单元118可从视频编码器20的其它功能组件接收数据。举例来说,熵编码单元118可从量化单元106接收系数块(例如,指示用于重建视频块的当前系数块的系数的信息)且可从预测处理单元100接收语法元素(例如,对第一及第二变换子集的索引)。熵编码单元118可对数据执行一或多个熵编码操作,以产生经熵编码的数据。举例来说,熵编码单元118可对数据执行上下文自适应性可变长度译码(cavlc)操作、cabac操作、可变至可变(v2v)长度译码操作、基于语法的上下文自适应二进制算术译码(sbac)操作、概率区间分割熵(pipe)译码操作、指数哥伦布编码操作或另一类型的熵编码操作。视频编码器20可输出包含通过熵编码单元118产生的经熵编码数据的位流。举例来说,位流可包含表示用于cu的rqt的数据。在实例技术中,预测处理单元100确定预测性块,且在熵编码单元118输出的视频位流中基于预测性块产生指示视频块的预测模式的信息。预测模式指示视频块是经帧内预测还是帧间预测。举例来说,预测性块为基于经帧内预测的视频块而处于与所述视频块相同的图片中或基于经帧间预测的所述视频块而处于与包含所述视频块的图片不同的图片中的块。残差产生单元102可确定当前变换块为视频块与预测性块之间的残差。图6为说明经配置以实施本发明的技术的实例视频解码器30的框图。出于解释的目的而提供图6,且其并不限制本发明中所广泛例示及描述的技术。出于解释的目的,本发明描述在hevc译码的上下文中的视频解码器30。然而,本发明的技术可适用于其它译码标准或方法。视频解码器30表示可经配置以执行根据本发明中描述的各种实例的技术的装置的实例。在图6的实例中,视频解码器30包含熵解码单元150、视频数据存储器151、预测处理单元152、逆量化单元154、逆变换处理单元156、重建单元158、滤波器单元160及经解码图片缓冲器162。预测处理单元152包含运动补偿单元164及帧内预测处理单元166。在其它实例中,视频解码器30可包括较多、较少或不同功能组件。视频数据存储器151可存储待由视频解码器30的组件解码的视频数据,例如经编码视频位流。可(例如)从计算机可读媒体16(例如,从本地视频源(例如,相机))通过视频数据的有线或无线网络通信或者通过存取实体数据存储媒体而获得存储于视频数据存储器151中的视频数据。视频数据存储器151可形成存储来自经编码视频位流的经编码视频数据的经译码图片缓冲器(cpb)。经解码图片缓冲器162可为存储用于视频解码器30(例如)以帧内或帧间译码模式解码视频数据的参考视频数据的参考图片存储器。视频数据存储器151及经解码图片缓冲器162可由多种存储器装置中的任一者形成,例如,动态随机存取存储器(dram)(包含同步dram(sdram))、磁阻式ram(mram)、电阻式ram(rram)或其它类型的存储器装置。可由同一存储器装置或单独的存储器装置提供视频数据存储器151及经解码图片缓冲器162。在各种实例中,视频数据存储器151可与视频解码器30的其它组件一起在芯片上,或相对于所述组件在芯片外。经译码图片缓冲器(cpb)可接收并存储位流的经编码视频数据(例如,nal单元)。熵解码单元150可从cpb接收经编码视频数据(例如,nal单元)并剖析nal单元以解码语法元素。熵解码单元150可熵解码nal单元中的经熵编码的语法元素。预测处理单元152、逆量化单元154、逆变换处理单元156、重建单元158及滤波器单元160可基于从位流提取的语法元素而产生经解码视频数据。位流的nal单元可包含经译码图块nal单元。作为解码位流的部分,熵解码单元150可从经译码图块nal单元提取语法元素并对所述语法元素进行熵解码。经译码图块中的每一者可包含图块标头及图块数据。图块标头可含有关于图块的语法元素。图块标头中的语法元素可包含识别与含有图块的图片相关联的pps的语法元素。除了解码来自位流的语法元素之外,视频解码器30可对未分割的cu执行重建操作。为了对未分割的cu执行重建操作,视频解码器30可对cu的每一tu执行重建操作。通过针对cu的每一tu执行重构操作,视频解码器30可重建cu的残差块。作为对cu的tu执行重建操作的部分,逆量化单元154可对与tu相关联的系数块进行逆量化(即,解量化)。逆量化单元154可使用与tu的cu相关联的qp值来确定量化程度且同样地确定逆量化单元154应用的逆量化程度。即,可通过调整在量化变换系数时使用的qp值来控制压缩比,即,用以表示原始序列及经压缩序列的位数目的比率。压缩比也可取决于所采用的熵译码的方法。在逆量化单元154对系数块进行逆量化之后,逆变换处理单元156可将一或多个逆变换应用于系数块,以便产生与tu相关联的残差块。举例来说,逆变换处理单元156可将逆dct、逆整数变换、逆karhunen-loeve变换(klt)、逆旋转变换、逆定向变换或另一逆变换应用于系数块。在本发明中描述的技术中,预测处理单元152可确定逆变换处理单元156将应用的左变换及右变换。举例来说,预测处理单元152可确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换。候选变换为不同变换类型,且在一些实例中,预测处理单元152基于经解码的视频块的大小确定多个变换子集。在一些实例中,视频数据存储器151存储多个变换子集,且预测处理单元152可从所存储变换子集确定多个变换子集。在一些实例中,视频数据存储器151可存储所有变换,且预测处理单元152可以预定义方式构建变换子集。在一些实例中,预测处理单元152可从位流接收识别变换子集的信息。候选变换的实例包含dct-i至dct-viii、dst-i至dst-viii、klt变换等等。在一些实例中,多个变换子集包含三个或三个以上变换子集。预测处理单元152可针对视频数据的当前系数块的左变换从多个变换子集选择第一变换子集,并针对视频数据的当前系数块的右变换从多个变换子集选择第二变换子集。预测处理单元152可从所选择第一变换子集确定左变换并从所选择第二变换子集确定右变换。逆变换处理单元156可基于左变换、右变换及当前系数块确定当前变换块。举例来说,逆变换处理单元156可执行以下方程式的相逆者:y=c*x*rt,其中y为系数块,c为左变换,x为变换块且r为右变换。并且,在本发明中,应理解,逆变换处理单元156应用视频编码器20所应用的变换的相逆者,但为了简单,视频解码器30经描述为应用变换。预测处理单元152可基于当前变换块及预测性块重建(例如,帧内预测或帧间预测解码)视频块。举例来说,如果使用帧内预测来编码pu,那么帧内预测处理单元166可执行帧内预测以产生pu的预测性块。帧内预测处理单元166可使用帧内预测模式以基于在空间上相邻的pu的预测块而产生pu的预测性明度、cb及cr块。帧内预测处理单元166可基于从位流解码的一或多个语法元素而确定用于pu的帧内预测模式。预测处理单元152可基于从位流提取的语法元素而构建第一参考图片列表(refpiclist0)及第二参考图片列表(refpiclist1)。此外,如果pu是使用帧间预测来编码,那么熵解码单元150可提取用于pu的运动信息。运动补偿单元164可基于pu的运动信息而确定pu的一或多个参考区域。运动补偿单元164可基于用于pu的一或多个参考块处的样本块产生用于pu的预测性明度、cb及cr块。在本发明中描述的实例中,所述技术适用于视频块经帧内预测或帧内预测的情况。举例来说,当块经帧内预测时,帧内预测模式可用于确定变换子集。当块经帧间预测时,其位置可用于确定变换子集。因此,实例技术适用于在帧内预测模式中的任一者中经帧内预测或经单向或双向帧间预测的视频块。此外,实例技术不限于帧内预测或帧间预测,且也可经扩展至块内复制(ibc)模式。在ibc模式中,用于形成预测性块的参考块在与经编码的视频块相同的图片中,且由块向量识别。在ibc模式中,作为几个实例,变换子集可选自视频块的位置、参考块的位置或块向量。重建单元158可在适用时使用与cu的tu相关联的明度变换块、cb变换块及cr变换块以及cu的pu的预测性明度块、cb块及cr块(即,帧内预测数据或帧间预测数据)来重建cu的明度译码块、cb译码块及cr译码块。举例来说,重建单元158可将明度变换块、cb变换块及cr变换块的样本添加到预测性明度块、cb块及cr块的对应样本,以重建cu的明度译码块、cb译码块及cr译码块。滤波器单元160可执行解块操作以减少与cu的明度译码块、cb译码块及cr译码块相关联的块伪影。视频解码器30可将cu的明度译码块、cb译码块及cr译码块存储于经解码图片缓冲器162中。经解码图片缓冲器162可提供参考图片以用于后续运动补偿、帧内预测及在显示装置(例如,图1的显示装置32)上呈现。举例来说,视频解码器30可基于经解码图片缓冲器162中的明度块、cb块及cr块对其它cu的pu执行帧内预测操作或帧间预测操作。在一些实例中,在视频块将经帧内预测解码的情况下,预测处理单元152可确定视频块的帧内预测模式。预测处理单元152可基于所确定的帧内预测模式选择第一变换子集,并基于所确定的帧内预测模式选择第二变换子集。在视频块将经帧间预测解码的情况下,预测处理单元152可确定视频块中的当前变换块的位置(例如,确定系数块是否用于从视频块中的特定位置产生的残差)。预测处理单元152可基于所确定的当前变换块的位置选择第一变换子集,并基于所确定的当前变换块的位置选择第二变换子集。在一些实例中,预测处理单元152可接收对第一变换子集的第一变换子集索引,并接收对第二变换子集的第二变换子集索引。在这些实例中,预测处理单元152可基于通过第一变换子集索引识别的第一变换子集中的变换来确定左变换,并基于通过第二变换子集索引识别的第二变换子集中的变换来确定右变换。然而,预测处理单元152可能不需要接收第一变换子集及第二变换子集中的索引。举例来说,预测处理单元152可确定当前系数块中的非零系数的数目小于阈值。在这些情况下,响应于确定当前系数块中的非零系数的数目小于阈值,在不接收对第一变换子集的变换子集索引的情况下,预测处理单元152可确定在第一变换子集中识别的第一变换为左变换,且响应于确定当前系数块中的非零系数的数目小于阈值,在不接收对第二变换子集的变换子集索引的情况下,确定在第二变换子集中识别的第一变换为右变换。并且,预测处理单元152可不必在所有情况下从变换子集确定变换。在一些实例中,预测处理单元152可接收指示包含当前变换块的块的所有变换块并非是使用相同变换来变换的旗标。在这些实例中,预测处理单元152可选择第一变换及第二变换,并响应于接收指示包含当前变换块的块的所有变换块并非是使用相同变换来变换的旗标,从相应第一变换及第二变换确定左变换及右变换。块的实例包含译码树型单元(ctu)、译码单元(cu)或预测单元(pu)。在一些实例中,第一变换子集或第二变换子集中的至少一者包含不同于离散余弦变换(dct)-ii变换及离散正弦变换(dst)-vii变换的变换。在一些实例中,第一变换子集及第二变换子集包含不同变换(例如,第一变换子集中的至少一个变换并不在第二变换子集中,或反之亦然)。在实例技术中,视频解码器30可从位流接收指示预测模式的信息(例如,视频块是经帧内预测还是帧间预测),并从位流接收指示当前系数块的系数的信息。预测处理单元152可基于预测模式确定预测性块,且逆变换单元156或预测处理单元152可基于所接收的指示系数的信息构建系数块。预测模式为帧间预测模式或帧内预测模式中的一者,且当前变换块为视频块及预测性块的残差。上文所描述的技术可通过视频编码器20(图4及5)及/或视频解码器30(图4及6)执行,所述两者通常可被称作视频译码器。同样地,在适用时,视频译码可指视频编码或视频解码。另外,视频编码及视频解码一般可被称作“处理”视频数据。在以下子部分中,将提供以上技术的实例。实务上,实例的任何部分的任何组合可被用作新的实例技术。下文描述构建额外候选变换列表的实例。除将dct-ii始终应用于所有所包含的tu的默认变换方法外,对于每一tu,给定所选择变换集合,可构建额外候选变换方法。在一个实例中,帧内及帧间预测残差的额外候选变换列表经构建如下:首先,变换集合被定义为变换类型的集,例如,实例变换集合可被定义为包含两个类型的变换(即,dct-ii及dst-vii)的{dct-ii,dst-vii}。基于两个给定变换集合,可通过从第一变换集合选择一个变换类型作为水平变换且从第二变换集合选择另一变换类型作为垂直变换而产生不同的变换方法。举例来说,当变换集合0{dct-ii,dst-vii}用于水平变换,且变换集合1{dct-viii,dst-vii}用于垂直变换时,可产生共计四个变换方法如下:表1:基于变换集合{dct-ii,dst-vii}的四个变换方法变换方法1变换方法2变换方法3变换方法4水平变换dct-iidct-iidst-viidst-vii垂直变换dct-viiidst-viidct-viiidst-vii对于帧内预测残差,定义共计三个变换子集,包含:变换子集0:{dst-vii,dct-viii},变换子集1:{dst-vii,dst-i}及变换子集2:{dst-vii,dct-v}。对于用于水平变换及垂直变换的变换集合的选择取决于帧内预测模式,如下表2中所示,表2:帧内预测模式与变换集合之间的映射表帧内模式012345678910111213141516171819202122232425262728293031323334righttranssubsetldx21010101000001010101010122222101010lefttranssubsetldx21010101222221010101010100000101010举例来说,对于帧内模式10,水平(右)变换的候选变换类型来自包含dst-vii及dct-viii的变换集合0,且垂直(左)变换的候选变换类型来自包含dst-vii及dct-v的变换集合2。因此,帧内模式10的额外候选变换列表最终如表3中所示构建,其中产生共计四个变换方法表3:基于表2的帧内预测模式10的四个变换方法的实例变换方法1变换方法2变换方法3变换方法4水平变换dst-viidst-viidct-viiidct-viii垂直变换dst-viidct-vdst-viidct-v根据表2,对于每一tu,给定帧内预测模式,可产生共计四个变换方法。对于帧间预测残差,同一变换集合{dst-vii,dct-viii}用于水平变换及垂直变换。因此,对于每一tu,如表4中所示构建额外候选变换列表。表4:用于帧间预测残差的四个变换方法变换方法1变换方法2变换方法3变换方法4水平变换dst-viidst-viidct-viiidct-viii垂直变换dst-viidct-viiidst-viidct-viii以下描述是指示符信号发送的实例。为适应性地适于不同内容,在cu级别及tu级别处用信号发送关于变换使用的指示符。cu级别指示符为指示默认dct-ii是否应用于包含于当前cu中的所有tu的一位旗标。如果一位旗标为0,那么仅默认dct-ii可应用于包含于当前cu中的所述tu;否则,二位tu级别指示符可针对每一tu进一步用信号发送,且第一位指定来自给定变换集合的哪一变换类型经应用为水平变换,且第二位指定来自给定变换集合的哪一变换类型经应用为垂直变换。对于帧内预测残差,在系数之后用信号发送tu级别指示符,且当tu的非零系数的总数目不大于2时,tu级别指示符未用信号发送且经导出为0。否则,tu级别指示符经明确地用信号发送。对于帧间预测残差,可在系数之前或之后用信号发送tu级别指示符,且当tu中不存在非零系数时,不用信号发送tu级别指示符。在下文中提供所提出实例的基于hevc的语法、语义。在以下语法中,分量的灰化用于指示语法中的潜在变化或以其它方式辅助理解。变换树语法替代地,add_multi_transform_flag可不依赖cbf_luma而用信号发送。这等效于发送译码单元中的旗标。变换树语义add_multi_transform_flag[x0][y0]指定增强型多重变换是否应用于包含于当前cu中的每一tu,当add_multi_transform_flag[x0][y0]为0时,dct-ii始终应用于包含于当前cu中的每一tu,否则,left_transform_flag及right_transform_flag可经进一步用信号发送以用于每一tu指定应用于属于当前变换树的tu的左变换及右变换。当不存在add_multi_transform_flag[x0][y0]时,推断其等于0。残差译码语法残差译码语义left_transform_flag[x0][y0]指定应用于当前tu的左变换的变换索引,当不存在时,left_transform_flag[x0][y0]经推断为0。right_transform_flag[x0][y0]指定应用于当前tu的右变换的变换索引,当不存在时,right_transform_flag[x0][y0]经推断为0。用于导出左变换及右变换的解码过程-如果cupredmode[x0][y0]==mode_intra,给定帧内模式值intrapredmodey[xpb][ypb],那么基于下表导出lefttranssubsetidx及righttranssubsetidx的值:帧内模式012345678910111213141516171819202122232425262728293031323334righttranssubsetldx21010101000001010101010122222101010lefttranssubsetldx21010101222221010101010100000101010-给定lefttranssubsetidx及left_tranform_flag的值,使用下表导出左变换:-给定righttranssubsetidx及right_tranform_flag的值,使用下表导出左变换:-否则(cupredmode[x0][y0]!=mode_intra),执行以下内容:-给定值left_tranform_flag,使用下表导出左变换:-给定值right_tranform_flag,使用下表导出右变换:下文为应用增强型多重变换及大变换的实例。对于通过视频编码器20执行的编码过程,在一个实例中,对于小于(或等于)32×32的每一cu,对当前cu进行两次译码。在第一遍次中,仅使用dct-ii来译码当前cu。用于译码整个cu的速率失真成本经记录为rdcost_cu_dct;及用于译码pu的每一帧内预测模式的速率失真成本经记录为rdcost_pu_dct[i][p],其中ⅰ指示当前cu内部的帧内预测模式的索引,且p指示当前cu内部的pu的索引。基于由p索引的当前pu的速率失真优化的最优帧内预测模式表示为ipm[p]。在第二遍次中,使用下文描述的多重变换再次译码当前cu。对于通过当前cu的p'所索引的每一所包含的pu,执行以下内容。对于每一候选帧内预测模式i',如果rdcost_pu_dct[i'][p']>rdcost_pu_dct[ipm[p']][p'],那么跳过帧内预测模式i'且不选择帧内预测模式i'作为当前pu的最优帧内预测模式。否则,针对包含于当前pu中的每一tu执行以下内容。对于当前pu内部的每一tu,给定当前候选帧内预测模式,根据以上实例,选择2个候选右(r)变换及2个候选左(l)变换,因此共计4个不同r及l变换组合。随后,使用速率失真成本测试每一候选r及l变换组合。在这个过程期间,如果一个r及l变换组合产生零系数(例如,零值或无系数),那么跳过残差的l及r变换组合且不选择残差的l及r变换组合作为最优r及l变换组合。选择具有最小速率失真成本的r及l变换组合作为实际变换以编码当前残差块。另外,在选择组合r及l变换的以上过程期间,如果一个候选r及l变换组合产生不超过2个的非零系数,那么不选择其作为最优变换组合,除非r变换及l变换两者为dst-vii变换。当针对当前cu内部的所有pu进行以上过程之后,那么用于译码整个cu的速率失真成本经记录为rdcost_cu_emt。如果rdcost_cu_dct小于rdcost_cu_emt,那么一个旗标add_multi_transform_flag经条件性地用信号发送为0,如以上实例中所描述,且使用dct-ii编码所有所包含的tu。否则,add_multi_transform_flag经条件性地用信号发送为1,如以上实例中所描述,且对于每一所包含的tu,当如以上实例所描述信令系数之后,条件性地用信号发送left_transform_flag及另一旗标right_transform_flag以指示选择哪些左变换及右变换以用于编码当前tu。下文描述通过视频解码器30执行的解码过程的实例。在一个实例中,对于小于(或等于)32×32的每一cu,一位旗标add_multi_transform_flag经条件性地用信号发送,如以上实例中所描述。仅当变换深度为0且明度分量的经译码块旗标(cbf)值为0时不用信号发送这个旗标,否则,始终用信号发送所述旗标。如果add_multi_transform_flag为0,那么仅dct-2应用于所有所包含的tu,否则,执行以下内容。对于每一tu,在如以上实例中所描述信令系数之后,条件性地用信号发送一位旗标left_transform_flag及另一旗标right_transform_flag。下文描述是否用信号发送left_transform_flag及right_transform_flag的条件。在当前cu经帧内译码时,非零系数的总数目小于(或等于)2时,不用信号发送left_transform_flag及right_transform_flag。否则,用信号发送left_transform_flag及right_transform_flag。否则,在当前cu不经帧内译码时,不存在非零系数时,不用信号发送left_transform_flag及right_transform_flag。否则,用信号发送left_transform_flag及right_transform_flag。对于每一tu,给定用信号发送的left_transform_flag及right_transform_flag,如以上实例中所描述导出左变换及右变换。在当前cu大于32×32时,对于具有同一64×64大小的每一tu,执行变换,如下文关于更大大小的tu的实例更详细地描述。下文为基于帧内预测模式构建额外变换列表的另一替代案的实例。除始终对所有所包含的tu应用dct-ii的默认变换方法外,对于每一tu,额外候选变换dst-vii可经应用如下。给定当前tu的帧内预测模式(表示为ipm),应用于这个tu上的左变换及右变换经指定如下。如果(ipm&1)等于1,那么dct-ii经应用为用于当前tu的左变换及右变换;否则((ipm&1等于0),dst-vii经应用为用于当前tu的左变换及右变换。上文描述用于确定待使用的变换的实例技术。下文描述用于支持较大大小的变换的实例。举例来说,支持64×64变换为有利的,尤其对于译码具有较大分辨率(例如,1080p及4k)的视频如此。为支持64×64变换,同时约束视频编码器20及视频解码器30的复杂度为重要的,且但可进行各种方式以实现所述情况,可获得更好的解决方案。实际应用的n×n变换矩阵可为缩放原始浮点变换矩阵之后的整数点近似,且缩放可大于64*log2n,包含(但不限于)s*log2n,其中s可为128或256。在一个实例中,水平变换及垂直变换之后的所得变换系数通过应用额外右位移操作保持于16位表示内。额外右位移操作包含(但不限于)将垂直及水平逆/正变换之后的所得变换系数右位移额外log2(s/64)个位。可应用大于32点变换的变换大小,包含(但不限于)残差块上的64点、128点、256点。当m点及n点变换分别应用于水平变换及垂直变换(其中m及n为整数且m可与n相同或不相同)时,仅用信号发送所得m×n系数块内部的左上x×y较低频率系数(其中x<m及y<n),且不用信号发送残差系数并导出残差系数为0。就上下文模型化而言,所得m×n系数块内部的最末非零系数的位置可通过再使用用于s×t块(其中x≤s≤m且y≤t≤n)的最末非零系数位置译码的相同逻辑而译码。为使超出x×y的系数归零,可针对lastsignificantcoeffy及lastsignificantcoeffx引入约束条件。举例来说,lastsignificantcoeffx(lastsignificantcoeffy)的值可小于x(y)。x及y的值可为常数,例如32,或取决于变换大小,例如x=m/2,y=n/2。对于64点变换,x及y的典型值为32。在一个实例中,可预定义及使用用于m×n的一或多个cg(译码分组)扫描次序。然而,对于所得m×n系数块的左上x×y区域外侧的cg,跳过用信号发送每一cg中是否存在至少一个非零系数的cg级别旗标且未译码所述旗标。替代地或另外,对于所有w×h个cg,其中w及h的典型值为4,遵循用于x×y区域的扫描次序来译码cg,所述扫描次序包含(但不限于)(m/w)×(n/h)包含对角线、曲折、水平或垂直扫描次序。替代地或另外,所有cg经分组于w'×h'单元中,其中w'为w的倍数且h'为h的倍数,所述w'×h'单元遵循扫描次序而经译码,所述扫描次序包含(但不限于)(m/w’)×(n/h’)对角线、曲折、水平或垂直扫描次序,每一w×h单元内的cg遵循扫描次序而经译码,所述扫描次序包含(但不限于)(w'/w)×(h'/h)对角线、曲折、水平或垂直扫描次序。为支持译码对应于64×64、128×128或256×256的变换大小的rqt深度,可针对对应于大于32×32的变换大小的rqt深度值共享用于译码取决于变换大小的rqt分裂旗标的cabac上下文。举例来说,对于特定rqt深度情况,包含(但不限于)对应于变换大小64×64及32×32的rqt深度值,相同cabac上下文可应用于译码rqt分裂旗标。下文为针对64×64变换执行32×32归零的实例。可存在对于最末位置的约束条件,其中last_sig_coeff_x_suffix指定变换块内的扫描次序中的最末有效系数的列位置的后缀。last_sig_coeff_x_suffix的包含性值应在0至(1<<((last_sig_coeff_x_prefix>>1)-1))-1的范围内。变换块内的扫描次序中的最末有效系数的列位置lastsignificantcoeffx经导出如下。如果不存在last_sig_coeff_x_suffix,那么以下内容适用:lastsignificantcoeffx=last_sig_coeff_x_prefix,否则(last_sig_coeff_x_suffix存在),以下内容适用:lastsignificantcoeffx=(1<<((last_sig_coeff_x_prefix>>1)-1))*(2+(last_sig_coeff_x_prefix&1))+last_sig_coeff_x_suffix。语法元素last_sig_coeff_y_suffix指定变换块内的扫描次序中的最末有效系数的行位置的后缀。last_sig_coeff_y_suffix的包含性的值应在(包含)0至(1<<((last_sig_coeff_y_prefix>>1)-1))-1的范围内。变换块内的扫描次序中的最末有效系数的行位置lastsignificantcoeffy经导出如下。如果不存在last_sig_coeff_y_suffix,那么下文使用:lastsignificantcoeffy=last_sig_coeff_y_prefix,否则(存在last_sig_coeff_y_suffix),下文适用:lastsignificantcoeffy=(1<<((last_sig_coeff_y_prefix>>1)-1))*(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix。当scanidx等于2时,坐标调换如下(lastsignificantcoeffx,lastsignificantcoeffy)=swap(lastsignificantcoeffx,lastsignificantcoeffy)。lastsignificantcoeffx或lastsignificantcoeffy的值应小于32。下文为用于用信号发送有效cg及有效系数的条件。残差译码语法下文描述重叠块运动补偿(obmc)的实例。在itu-th.263的研发中提出obmc。参见用于低位速率通信的视频译码的文件(rec.h.263,itu-t,1995年4月)。在8×8块上执行obmc,且两个已连接的相邻8×8块的运动向量用于当前块,如图8a及8b中所展示。举例来说,对于当前宏块中的第一8×8块,除其自身运动向量外,上相邻运动向量及左相邻运动向量也经应用以产生两个额外预测块。以这种方式,当前8×8块中的每一像素具有三个预测值,且这三个预测值的加权平均数用作对相应像素的最终预测。当相邻块不经译码或经译码为帧内(即,相邻块不具有可用运动向量)时,当前8×8块的运动向量用作相邻运动向量。同时,对于当前宏块的第三及第四8×8块(如图7中所展示),可不使用下相邻块(例如,总是不使用或不总是使用)。换言之,在一些实例中,对于每一mb,在obmc期间,将不使用来自其下方的mb的运动信息来重建当前mb的像素。下文描述如hevc中所提出的obmc。在hevc中,在2011年11月18日申请的美国临时申请案第61/561,783号、2012年11月15日申请的美国申请案第13/678,329号、2011年1月10日申请的美国临时申请案第61/431,480号、2011年3月8日申请的美国临时申请案第61/450,532号及2011年12月6日申请的美国申请案第13/311,834号中,也提出obmc以使pu边界平滑。图8a及8b中展示hevc中所提出的方法的实例,其中白色区域为通过pu0表示的第一预测单元(pu),且灰色区域为表通过pu1)表示的第二pu。当cu含有两个(或更多)pu时,通过obmc使靠近pu边界的行/列平滑。对于pu0或pu1中的用“a”或“b”标记的像素,产生两个预测值(即,通过分别应用pu0及pu1的运动向量),且其加权平均数用作最终预测。另外,在2015年1月26日申请的美国临时申请案第62/107,964号及2015年2月16日申请的美国临时申请案第62/116,631号中,已提出指示obmc是否应用于当前cu的cu-级别旗标(即obmc旗标)。观测到当obmc不应用于一个译码单元(例如,用信号发送的旗标为0)时,除dct-ii外的变换是无效的。因此,用于指示多重变换的使用的额外信令为冗余的。如所描述,视频编码器20可用信号发送(例如,在位流中产生)cu-级别旗标以指示是否启用obmc而用于当前cu。在一些实例中,当这个obmc旗标已用信号发送为1(指示obmc经启用而用于当前cu)时,仅默认dct-ii用于每一tu,且因此视频编码器20可不用信号发送用于变换选择的任何事物,即,既不用信号发送cu-级别旗标也不用信号发送tu-级别索引。下文描述优化视频编码器20的实例。举例来说,以下实例可用于视频编码器20。然而,对于视频解码器30而言,执行类似技术是可能的。在编码器(例如,视频编码器20)处,当所提出的多重变换应用于当前tu时,对于大于或等于m×n的变换大小,仅计算m'×n'低频系数,且其它系数经设定为0,其中(m'<=m及n'<=n及m'*n'<m*n)。在一个实例中,m及n中的每一者的值为32,且m'及n'中的每一者的值为16。在这个实例中,定位于大于m'及/或大于n'的位置处的系数可被视为较高频率系数。通常,比tu的右边更远及比tu的底部更远的系数可被视为较高频率系数。在编码器处,对于某一译码模式,如果使用默认变换(例如,dct-ii)的译码成本大于当前最小译码成本乘以给定阈值,那么跳过所提出的多重变换。译码成本可为速率失真成本、绝对预测残差的总和、平方预测残差的总和或绝对变换差的总和。阈值可取决于译码块大小。在一个实例中,阈值的值为1.1。在编码器处,对于某一帧内预测方向模式,如果使用默认变换(例如dct-ii)的译码成本大于最佳帧内预测方向模式的译码成本乘以给定阈值,那么不对这个帧内预测模式应用所提出的多重变换且跳过所述多重变换。译码成本可为速率失真成本、绝对预测残差的总和、平方预测残差的总和或绝对变换差的总和。阈值可取决于译码块大小。在一个实例中,对于4×4、8×8、16×16及32×32块大小,阈值的值分别为1.47、1.28、1.12及1.06。在编码器处,如果使用默认变换(例如,dct-ii)的n×n帧内pu分割区的译码成本大于2n×2n帧内pu分割区的译码成本乘以给定阈值,那么不对n×n帧内pu分割区应用所提出的多重变换且跳过所述多重变换。译码成本可为速率失真成本、绝对预测残差的总和、平方预测残差的总和或绝对变换差的总和。阈值可取决于译码块大小。在一个实例中,阈值的值为1.2。在编码器处,如果使用默认变换(例如,dct-ii)的2n×2n帧内pu分割区模式的译码成本大于最佳帧间译码模式的译码成本乘以给定阈值,那么不对帧内pu模式应用所提出的多重变换且跳过所述多重变换。译码成本可为速率失真成本、绝对预测残差的总和、平方预测残差的总和或绝对变换差的总和。阈值可取决于译码块大小。在一个实例中,阈值的值为1.4。在编码器处,如果使用多重变换候选中的一者产生用于当前块的全零系数,那么不对当前块应用残差变换候选且跳过所述残差变换候选。替代地或另外,如果使用默认变换(例如,dct-ii)产生用于当前块的全零系数,那么不对当前块应用多重变换候选且跳过所述多重变换候选,且仅默认变换(例如,dct-ii)用于译码当前块。在编码器处,当已用信号发送obmc旗标且其指示obmc关闭时,那么指示是否仅应用一个默认变换的一位旗标仍用信号发送为默认值(例如,0),所述旗标指示应用默认变换(例如,dct-ii),且不对当前块应用多重变换候选且跳过所述多重变换候选。图9为说明解码视频数据的实例方法的流程图。视频解码器30可确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换200。举例来说,预测处理单元152可从存储于视频数据存储器151中的变换子集检索多个变换子集。多个变换子集可经预存储于视频数据存储器151中,或可从视频编码器20接收识别如何构建变换子集的信息。视频解码器30可针对视频数据的当前系数块的左变换从多个变换子集选择第一变换子集,并针对视频数据的当前系数块的右变换从多个变换子集选择第二变换子集202。举例来说,预测处理单元152可基于在视频位流中用信号发送的帧内预测模式信息或基于以几种实例方式解码的视频块的位置来选择第一及第二变换子集从而确定变换子集。视频解码器30可从所选择的第一变换子集确定左变换,且从所选择的第二变换子集确定右变换204。举例来说,预测处理单元152可接收位流中的信息(例如,对所选择变换子集的索引)或可隐含地基于非零系数的数目确定变换。视频解码器30可基于左变换、右变换及当前系数块确定当前变换块206。举例来说,逆变换处理单元156可通过应用左变换及右变换于由逆量化单元154输出的系数块上来确定当前变换块。视频解码器30可基于当前变换块及预测性块重建(例如,帧内预测或帧间预测解码)视频块208。举例来说,重建单元158可添加当前变换块(其为视频块与预测性块之间的残差)至预测性块以重建视频块。图10为说明编码视频数据的实例方法的流程图。视频编码器20可确定多个变换子集,每一子集识别一或多个候选变换,其中至少一个变换子集识别多个候选变换300。举例来说,预测处理单元100可从存储于视频数据存储器101中的变换子集检索多个变换子集。多个变换子集可经预存储于视频数据存储器101中。视频编码器20可针对视频数据的视频块的当前变换块的左变换从多个变换子集选择第一变换子集并针对视频数据的视频块的变换块的右变换从多个变换子集选择第二变换子集302。举例来说,预测处理单元100可基于熵编码单元118在视频位流中产生的帧内预测模式信息或基于以几种实例方式编码的视频块的位置来选择第一及第二变换子集从而确定变换子集。视频编码器20可从所选择的第一变换子集确定左变换,且从所选择的第二变换子集确定右变换304。举例来说,预测处理单元100可测试各种确定变换以识别提供良好视频译码品质的变换。视频编码器20可基于左变换、右变换及当前系数块确定当前变换块306。举例来说,变换处理单元104可通过应用左变换及右变换于由重建单元102输出的变换块上来确定当前系数块。视频编码器20可产生具有指示用于重建视频块的当前系数块的系数的信息(例如,信号信息)的视频位流308。举例来说,熵编码单元118可输出视频解码器30用以重建视频块的信息。应理解,本文所描述的所有技术可单独地或以组合方式使用。本发明包含可取决于某些因素(例如,块大小、图块类型等)改变的若干用信号发送的方法。在用信号发送或推断语法元素中的这类变化事先可对编码器及解码器已知或可在视频参数集(vps)、序列参数集(sps)、图片参数集(pps)、图块标头中在图案块级别或其它处经明确地用信号发送。将认识到,取决于实例,本文中所描述的技术中的任一者的某些动作或事件可以不同序列执行,可添加、合并或完全省略所述动作或事件(例如,并非所有所描述动作或事件对于所述技术的实践都是必要的)。此外,在某些实例中,可(例如)通过多线程处理、中断处理或多个处理器同时而不是依序地执行动作或事件。另外,尽管出于清晰的目的将本发明的某些方面描述为通过单一模块或单元执行,但应理解,本发明的技术可通过与视频译码器相关联的单元或模块的组合来执行。尽管在上文描述技术的各种方面的特定组合,但提供这些组合仅为了说明本发明中所描述的技术的实例。因此,本发明的技术不应限于这些实例组合且可涵盖本发明中描述的技术的各种方面的任何可设想组合。在一或多个实例中,所描述的功能可以硬件、软件、固件或其任何组合来实施。如果以软件实施,那么所述功能可作为一或多个指令或代码而存储于计算机可读媒体上或通过计算机可读媒体发射,且由基于硬件的处理单元执行。计算机可读媒体可包含计算机可读存储媒体,其对应于例如数据存储媒体的有形媒体。以这种方式,计算机可读媒体通常可对应于非暂时性的有形计算机可读存储媒体。数据存储媒体可为可通过一或多个计算机或一或多个处理器存取以检索指令、代码及/或数据结构以用于实施本发明所描述的技术的任何可用媒体。计算机程序产品可包含计算机可读媒体。通过实例而非限制,这些计算机可读存储媒体可包括ram、rom、eeprom、cd-rom或其它光盘存储器、磁盘存储器或其它磁性存储装置、闪存或可用以存储呈指令或数据结构形式的所要代码且可由计算机存取的任何其它媒体。然而,应理解,计算机可读存储媒体及数据存储媒体不包含连接、载波、信号或其它暂时性媒体,而实情为针对非暂时性有形存储媒体。如本文中所使用,磁盘及光盘包含压缩光盘(cd)、激光盘、光学光盘、数字多功能光盘(dvd)、软盘及蓝光光盘,其中磁盘通常以磁性方式再生数据,而光盘用雷射以光学方式再生数据。以上的组合也应包含于计算机可读媒体的范围内。可通过例如一或多个数字信号处理器(dsp)、通用微处理器、专用集成电路(asic)、场可编程逻辑阵列(fpga)或其它等效集成或离散逻辑电路的一或多个处理器来执行指令。因此,如本文中所使用的术语“处理器”可指代前述结构或适合于实施本文中所描述的技术的任何其它结构中的任一者。此外,在一些方面中,本文中所描述的功能性可提供在经配置用于编码及解码的专用硬件及/或软件模块内,或并入于组合式编解码器中。并且,所述技术可完全实施于一或多个电路或逻辑元件中。本发明的技术可以多种装置或设备予以实施,所述装置或设备包含无线手机、集成电路(ic)或ic的集合(例如,芯片集合)。本发明中描述各种组件、模块或单元以强调经配置以执行所公开技术的装置的功能方面,但未必需要通过不同硬件单元来实现。确切而言,如上文所描述,可将各种单元组合于编解码器硬件单元中,或通过互操作性硬件单元(包含如上文所描述的一或多个处理器)的集合而结合合适软件及/或固件来提供所述单元。已描述各种实例。这些及其它实例在以下权利要求书的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1