CN1438613A - 编解码坐标内插符关键字数据和关键值数据的装置及介质 - Google Patents

编解码坐标内插符关键字数据和关键值数据的装置及介质 Download PDF

Info

Publication number
CN1438613A
CN1438613A CN02140026A CN02140026A CN1438613A CN 1438613 A CN1438613 A CN 1438613A CN 02140026 A CN02140026 A CN 02140026A CN 02140026 A CN02140026 A CN 02140026A CN 1438613 A CN1438613 A CN 1438613A
Authority
CN
China
Prior art keywords
data
key
dpcm
symbol
reverse
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
Application number
CN02140026A
Other languages
English (en)
Other versions
CN1294540C (zh
Inventor
李信俊
郑锡润
张义善
禹相玉
韩万镇
金道均
张敬子
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN1438613A publication Critical patent/CN1438613A/zh
Application granted granted Critical
Publication of CN1294540C publication Critical patent/CN1294540C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/25Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding with scene description coding, e.g. binary format for scenes [BIFS] compression
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • G06T13/203D [Three Dimensional] animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/124Quantisation
    • H04N19/126Details of normalisation or weighting functions, e.g. normalisation matrices or variable uniform quantisers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code

Abstract

本发明提供一种用于编码和解码坐标内插符的关键字数据和关键值数据的装置以及一种其上写入编码有坐标内插符的比特数据流的记录介质。该比特数据流包括:关键字数据编码/解码信息,其中编码有关键字数据和为了解码该关键字数据所需要的信息;和关键值数据编码/解码信息,其中编码有关键值数据和为了解码该关键值数据所需要的信息。所述关键字数据信息包括:反向DND操作信息、第一反向DPCM操作信息和第一反向量化信息。所述关键值数据编码/解码信息包括:从该比特数据流熵解码的字典解码信息、第一位置索引、字典解码模式、第二反向DPCM操作信息以及使用在反向量化中的第二反向量化信息。

Description

编解码坐标内插符关键字数据 和关键值数据的装置及介质
技术领域
本发明涉及用于编码和解码合成图像的装置和方法,尤其涉及用于编码和解码一种坐标内插符的装置和方法,该坐标内插符使用每个都包括x、y、z成分的顶点坐标表示在一个基于关键帧的图形动画中的目标的每个顶点的位置。
背景技术
三维(3D)动画技术已经广泛地采用在3D计算机游戏或虚拟现实计算机应用中。虚拟现实模型语言(VRML)是这种3D动画技术的一个典型实例。
国际多媒体标准,例如用于场景(BIFS)的MPEG-4和虚拟现实模型语言(VRML),使用一个内插符节点支持基于关键帧的3D动画。在MPEG-4BIFS和VRML中,有各种类型的内插符,包括标量内插符、位置内插符、坐标内插符、定向内插符、法线内插符和色彩内插符,这些内插符以及其功能和特性在表1中示出。
表1
内插符 特性 功能
标量内插符 标量变化的线性内插 能够表示区域、直径和亮度
位置内插符 在3D坐标上的线性内插 在3D空间中的平行移动
定向内插符 3D坐标轴和旋转量的线性内插 3D空间中的旋转
座标内插符 3D坐标中的变化的线性内插 3D图像变形
法线内插符 法线3D坐标的线性内插 能够表示法线3D矢量中的变化
色彩内插符 彩色信息的线性内插 能够表示色彩中的变化
在表1所示的内插符中,坐标内插符被用于表示在基于关键帧的动画中构成3D目标的每一顶点位置上的信息,并且包括关键字和关键值字段。关键字段使用范围在-∞和∞之间的不连续数字,表示在时间轴上每一关键帧的位置。每一个关键值字段规定了在由每一关键字表示的确定瞬时的构成3D目标的每一个顶点位置上的信息,并且包括三个成分x、y和z。每一个关键值字段包括与关键字段一样多的关键字值。在这种基于关键帧的动画中,预定的关键帧定位在一个时间轴的任意位置,并且由线性内插填充在关键帧之间的动画数据。
由于MPEG-4 BIFS和VRML中采用线性内插,所以要求相当量的关键字数据和关键值数据来使用线性内插符把一个动画表现得尽可能地自然和平滑。此外,为了存储和发送这种自然和平滑的动画,需要相当大容量的存储器和可观的时间。因此,最好是选择压缩内插符,以便使得更容易存储和发送该内插符。
在已经采用在MPEG-4 BIFS中用于编解码内插符节点的方法之一的预测MF字段编码(PMFC)中,使用量化器、差分脉码调制(DPCM)操作器和熵编码器编码坐标内插符的关键值数据,如图1所示。参考图1,量化器和DPCM操作器消除该关键值数据的冗余,该DPCM操作器把其操作的结果输出到熵编码器。然而,PMFC在对关键值数据进行编码中不是充分有效,因为其只熵编码从一般DPCM操作获得的差分数据,并且仅考虑在一个动画中构成3D目标顶点之间的空间相关性而不考虑在这种顶点之间的时间相关性,在一个基于关键帧的动画中,这种时间相关性是很重要的。
发明内容
为了解决上述和其它问题,本发明的一个方面是提供一个用于编码坐标内插符的装置,包括:一个关键字数据编码器,其以高效率压缩动画关键字数据,同时缩减在数据当中的冗余度;和一个关键值数据编码器,其考虑在关键值数据之间的时间相关性以及在关键值数据之间的空间相关而编码关键值数据。
本发明的另一方面是提供一种用于解码的装置,解码由根据本发明的用于编码坐标内插符的装置编码的一个比特数据流。
本发明的另一方面是提供一种记录介质,能够以高压缩比率提供一个高质量的动画,其上记录有由根据本发明的用于编码坐标内插符的方法和装置所编码并且由根据本发明的用于解码坐标内插符的方法和装置待解码的一个比特数据流。
因此,为了实现本发明的上述和其它方面,提供一个用于编码坐标内插符的装置,该坐标内插符包括:指示在时间轴上的每一关键帧的位置的关键字数据;以及使用每一个都包括x、y和z成分的顶点的坐标表示在每一关键帧中的一个目标的每一顶点的位置的关键字数据。该装置包括一个关键字数据编码器、一个关键值数据编码器和一个标题编码器。该关键字数据编码器包括一个第一量化器,其使用预定的量化比特量化坐标内插符的关键字数据,一个第一DPCM处理器,其产生该量化的关键字数据的差分数据,一个DND处理器,其根据在差分数据和在该差分数据当中的一个最大值和一个最小值之间的一个关系对于该差分数据执行一个DND操作,以及一个第一熵编码器,其熵编码从该DND处理器输入的该差分数据。该关键值数据编码器包括一个第二量化器,其使用预定的量化比特量化坐标内插符的关键值数据;一个第二DPCM处理器,其通过对于该量化关键值数据的每一顶点的成分执行一个预定的DPCM操作而产生基于量化关键值数据的每一顶点坐标的时间变化的差分数据和基于量化关键值数据的每一顶点坐标的空间变化的差分数据;一个字典编码器,其产生表示每一顶点的DPCM的差分数据和已经对于该差分数据执行的一个DPCM操作模式的符号以及指示该符号的位置的索引;和一个第二熵编码器,其熵编码该符号和该索引。该标题编码器,编码为了解码由该关键字数据编码器和该关键值数据编码器编码的一个比特数据流所需要的信息。
为了实现本发明的上述以及其它方面,提供有一个用于解码一个比特数据流的装置,其中编码有坐标内插符,该坐标内插符包括指示在一个时间轴上每一关键帧的位置的关键字数据和使用每一个都包括x、y和z成分的顶点坐标表示在每一关键帧中的一个目标的每一顶点的位置的关键值数据。该装置包括一个关键字数据解码器和一个关键值数据解码器。该关键字数据解码器包括一个标题解码器,其解码为了解码来自输入比特数据流的关键字数据和关键值数据所需要的标题信息并且输出该解码的标题信息;一个第一熵解码器,其熵解码该输入的比特数据流并且输出解码的关键字数据的差分数据;一个反向DND处理器,其根据由该标题解码器从该输入比特数据流读出的DND阶数,通过对于该差分数据执行一个反向DND操作而扩展该熵解码的关键字数据的差分数据的范围;一个第一反向DPCM处理器,其对于从该反向DND处理器输入的差分数据执行与从该标题解码器输入的DPCM的阶数一样多次的反向DPCM操作,并且输出量化的关键字数据;以及一个第一反向量化器,其反向量化该量化的关键字数据并且输出解码的关键字数据。该关键值数据解码器包括:一个第二熵解码器,其通过熵解码该输入的比特数据流而产生将要被字典解码的数据,包括关键值数据的差分数据的符号、指示该符号的位置的索引和一个DPCM操作模式;一个字典解码器,其根据从该标题解码器输入的一个字典解码模式信息,通过执行一个字典解码操作而产生关键值数据的差分数据;一个第二反向DPCM处理器,其根据该DPCM操作模式,通过恢复从该字典解码器输入的关键帧之间的差分数据和顶点之间的差分数据而产生量化数据;以及一个第二反向量化器,其通过反向量化该量化的数据而产生恢复的关键值数据。
为了实现本发明的上述以及其它方面,提供有一个比特数据流,其中编码有坐标内插符,该坐标内插符包括指示在一个时间轴上每一关键帧的位置的关键字数据和使用每一个都包括x、y和z成分的顶点坐标表示在每一关键帧中的一个目标的每一顶点的位置的关键值数据。该比特数据流包括:关键字数据编码/解码信息,其中编码有关键字数据和为了解码该关键字数据所需要的信息;和关键值数据编码/解码信息,其中编码有关键值数据和为了解码该关键值数据所需要的信息。该关键字数据信息包括:反向DND操作信息,包括表示将要对于由熵解码该比特数据流产生的差分数据执行的反向DND的预定的周期数的反向DND的阶数,以便扩展该差分数据的范围以及使用在反向DND操作的每一周期中的差分数据当中的最大和最小值;第一反向DPCM操作信息,包括将要对于该反向DND的差分数据执行的反向DPCM操作的阶数,以便把该反向DND的差分数据转换成被用于反向DPCM操作的每一周期的关键字数据和帧内关键字数据;和使用在反向量化中的第一反向量化信息,以便通过反向量化该量化的关键字数据而产生恢复的关键字数据。该关键值数据编码/解码信息包括:从该比特数据流熵解码的字典解码信息,包括关于表示被字典编码的关键值数据的差分数据的符号的信息;第一位置索引,指示该符号的位置;和字典解码模式,指示将要对于该第一位置索引执行的一个字典解码方法;第二反向DPCM操作信息,包括指示符号位置的第二位置索引,其被使用在把每一顶点的成分的字典解码的差分数据转换成量化关键值数据的一个反向DPCM操作中,并且对应于反向DPCM操作模式的组合;以及使用在反向量化中的第二反向量化信息,以便通过反向量化该量化的关键值数据而产生恢复的关键值数据。
附图说明
通过参照附图对优选实施例的详细描述,本发明的上述目的和优点将变得更为显见:
图1是传统坐标内插符编码器和传统坐标内插符解码器的框图;
图2是一个根据本发明一个优选实施例的用于编码坐标内插符装置的框图;
图3A是一个根据本发明一个优选实施例的关键字数据编码器的框图;
图3B是一个图3A所示的DND处理器的框图;
图4A至4G是一个按照本发明一个优选实施例用于编码关键字数据方法的流程图;
图5是一个表示函数encodeSignedAAC的一个实例的示意图;
图6A至6J是表示关键字数据的示意图,该关键字数据已经经过了一个按照本发明优选实施例的关键字数据编码操作;
图7A是一个根据本发明优选实施例的关键值数据编码器的框图,而图7B是一个根据本发明优选实施例的用于编码坐标内插符的关键值数据的一种方法的流程图;
图8A是一个在根据本发明优选实施例的关键值数据编码器中的DPCM处理器的框图,而图8B是一个根据本发明优选实施例的字典编码器的框图;
图9A是一个根据本发明优选实施例的量化操作的流程图,图9B是一个根据本发明优选实施例的DPCM操作的流程图,图9C是一个根据本发明优选实施例的字典编码操作的流程图,而图9D是一个根据本发明优选实施例的熵编码操作的流程图;
图10A至10C分别是说明量化的关键值数据、DPCM的关键值数据和循环量化的关键值数据的示意图;
图11A是一个说明根据本发明优选实施例的DPCM模式编码方法的示意图,图11B是一个说明根据本发明优选实施例的出现模式编码方法的示意图,而图11C是一个说明根据本发明优选实施例的增量模式编码方法的示意图;
图12是一个根据本发明一个优选实施例的用于解码坐标内插符的装置的框图;
图13是一个根据本发明一个优选实施例的关键字数据解码器的框图;
图14A是一个根据本发明优选实施例的用于解码关键字数据的一种方法的流程图,而图14B是图14A所示步骤S14500的详细流程图;
图15A是一个根据本发明优选实施例的用于解码关键值数据的装置的框图,而图15B是根据本发明优选实施例的用于解码关键值数据的一种方法的流程图;
图16A是一个根据本发明优选实施例的字典解码器的框图,而图16B是一个在根据本发明的一个用于解码关键值数据的装置中的反向DPCM处理器的框图;
图17A是一个根据本发明优选实施例的字典解码方法的流程图,而图17B是一个反向DPCM操作的流程图;
图18A是一个表示比特数据流的结构的示意图,该比特数据流包括坐标内插符的顶点和其成份数据;
图18B是一个表示程序代码的实例的示意图,通过该程序代码实现使用在根据本发明的一个熵解码器中的一个函数decodeSignedQuasiAAC();
图19A是一个说明根据本发明优选实施例的一种DPCM模式解码方法的示意图,图19B是一个说明根据本发明优选实施例的出现模式解码方法的示意图,而图19C是一个说明根据本发明优选实施例的增量模式解码方法的示意图;以及
图20A至20L是示出SDL程序代码的实例的示出,通过该SDL程序代码,实现根据本发明优选实施例的用于对坐标内插符的关键字数据和关键值数据进行解码的装置。
具体实施方式
下面,将参照表示本发明优选实施例的附图更详细地描述根据本发明优选实施例的用于编码坐标内插符的装置。
图2是根据本发明一个优选实施例的用于编码坐标内插符的装置的框图。参考图2,用于编码坐标内插符的装置包括:关键字数据编码器300,编码输入其中的坐标内插符的关键字数据;关键值数据编码器700,编码输入其中的坐标内插符的关键值数据;和标题编码器500,编码为了解码由关键字数据编码器300编码的关键字数据和由关键值数据编码器700编码的关键值数据所需要的信息。
下面参照图3A至6J对关键字数据编码器300进行描述。
图3A是关键字数据编码器300的一个框图。参考图3A,关键字数据编码器300包括一个线性关键字编码器310、一个量化器320、一个DPCM处理器330、一个移位器340、一个折叠处理器350、一个DND处理器360和一个熵编码器370。
线性关键字编码器310识别一个区域,其中该关键字数据在一个完整的关键字数据范围中线性地增加,并且编码该区域。量化器320使用能够最小化一个量化误差的量化方法量化输入其中的关键字数据。DPCM处理器330接收量化的关键字数据并且产生该量化的关键字数据的差分数据。移位器340从所有的差分数据减去具有最高频率的一个差分数据。折叠处理器350把所有的的差分数据变换到一个正数区域或一个负数区域。DND处理器360通过执行一个分割操作,然后有选择地对于该差分数据执行一个上分割操作或一个下分割操作,来减小关键字数据的差分数据的范围。熵编码器370使用函数SignedAAC或UnsignedAAC编码差分数据,由此在每个比特平面上编码该差分数据。
下面,参照图4A和4B描述关键字数据编码器300的操作。图4A和4B是根据本发明的用于编码关键字数据的方法的流程图。
当关键字数据被输入到关键字数据编码器300时,例如关键字数据的数量和关键字数据位数的信息被输入到标题编码器500并且随后被编码。在步骤S4000中,线性关键字编码器310首先在该输入的关键字数据中寻找一个线性关键字区域,即其中以确定的时间间隔出现关键帧、关键字数据具有相同的差值并且该关键字数据线性地关键字数据的一个区域,并且编码该搜索的线性关键字区域。
例如3DMax或Maya的著名应用软件使用在具体的区域之间具有预定的时间间隔的关键字来产生基于关键字帧的动画。在此情况中,有可能使用一个线性关键字数据区域的开始和结束关键字数据以及存在于它们之间的关键帧的数目来容易地编码关键字数据。因此,线性预测对于使用一个内插器在一个确定的区域中对关键字进行编码是非常有用的。
下面方程式被用于线性预测。 t ( i ) = t E - t S E - S + t S ( 0 &le; i &le; E - S , S < E ) . . . . ( 1 )
其中,tS表示一个局部线性区域开始之处的关键字的数据,tE表示表示一个局部线性区域结束之处的关键字的数据,S表示tS的一个索引,而E表示tE的一个索引。在从第S关键字数据到第E关键字数据的一个具体区域中的实际关键字数据之间的误差以及遵循方程式(1)线性预测的关键字数据能够使用下面的方程式计算。 e i = t ( i ) - t i + S = t E - t S E - S i + t S - t i + S . . . . ( 2 )
如果使用方程式(2)计算的误差当中的最大值不大于一个预定的临界值,则ti能够被认为是在区域[tS,tE]中或在一个确定误差范围之内的共线性的。使用下面方程式(3)确定该最大误差值ti是否具有具体的区域共线性。 E p = MAX i = 0 , . . . ( E - S ) | e i | = MAX i = 0 , . . . ( E - S ) | t E - t S E - S i + t S - t i + S | . . . ( 3 )
如果 E p &le; 1 2 nBits + 1 , ti则与区域[tS,tE]共线性。其中,nBits表示用于编码的比特的数量。
如果线性关键字编码器310寻找该局部线性区域,则该局部线性关键字数据区域的开始和结束关键字数据被输出到一个浮点数转换器315。包括在该线性关键字数据区域中的关键字的数目被输出到标题编码器500并且被编码。使用线性编码有可能显著地降低需编码的数据量。
在稍后描述的浮点数转换器315中,使用浮点数转换执行对于开始关键字数据和结束关键字数据的编码。
浮点数转换器315把二进制表示的关键字数据转换成十进制关键字数据,以便编码该开始关键字数据和结束关键字数据。
计算机以32比特的二进制数字存储浮点数字。如果给出二进制表示的一个浮点数,浮点数转换器315将把该浮点数转换成十进制的一个尾数和一个指数,此过程由随后方程式表示。
例如,一个浮点数12.34能够通过计算机转换成一个下面所示的二进制数。 0 1 10001010111000010100011 2 10000010 3
1:符号
2:二进制尾数
3:二进制指数
该二进制数能够遵循方程式(4)转换成下列所示的十进制数。 0 1 1234 2 2 3
1:符号
2:十进制尾数
3:十进制指数
为了把十进制中的尾数和指数包括在一个比特数据流中,必须计算为了表示该尾数和该指数所要求的比特数目。具有在-38和38之间的一个值的指数因此能够连同符号一起使用7比特表示。为了表示该尾数而需要的比特的数量取决于数字的位数。尾数的值和为了表示该尾数而需要的比特的数量以下表示出。
表2
    尾数值     尾数的位数     需要的比特数目
    0     0     0
    1-9     1     4
    10-99     2     7
    100-999     3     10
    1000-9999     4     14
    10000-99999     5     17
    100000-999999     6     20
    1000000-9999999     7     24
已经寻找并且使用上述处理而转换的该线性关键字数据区域的开始和结束关键字数据被遵循图4C和4D所示的编码处理编码,输出到标题编码器500,并且存储在该比特数据流中。
图4C和4D示出对输入到浮点数转换器315的两个浮点数字进行编码的一个处理。将参考图4C和4D描述浮点数转换器205编码一个浮点数的方法。
浮点数转换器315接收原始关键字数据的位数Kd、开始关键字数据S和结束E,并且在步骤S4040中遵循方程式(4)对它们转换。
浮点数转换器315首先编码S。具体地说,浮点数转换器315检验S的位数是否不同于Kd。如果位数S不同于Kd,则获得S的位数并且在步骤S4042中输出到标题编码器500。浮点数转换器315使用函数Digit()获得S的位数。
如果S的位数大于7,则在步骤4043中使用一个预定的比特数量把S输出到标题编码器500(在本发明中,按照IEEE标准754的浮点数方式使用32比特),以便在该比特数据流中能够包括该S的位数。
如果该S的位数不是0并且小于7,则浮点数转换器3 15在步骤4044中把S的符号输出到标题编码器。使用表格2获得为了编码S的尾数的绝对值需要的比特数目。随后,使用在步骤4045中用表格2获得的比特数目,把S的尾数的绝对值输出到标题编码器500。在步骤S4046中,浮点数转换器315计算S的指数,输出S的符号到标题编码器500,并且输出该指数到标题编码器500,作为例如6比特的一个预定的数量。这种关键字数据转换使得有可能显著地降低包括在比特数据流中比特的数量。
如果S的位数是0,则对于该开始关键字数据的编码结束,并且该方法转到对该结束关键字数据E进行转换的步骤,因为当该S的位数是0时,该对应浮点数也是0,不需要进行编码。
在对开始关键字数据S进行转换和编码之后,浮点数转换器315转换结束关键字数据E。E的转换几乎与S的转换相同。具体地说,在步骤S4047中验证E的指数是否与S的指数相同。如果E的指数与S的指数相同,则只有表示E的指数与S的指数是相同的一个标记位被输出到标题编码器500。如果E的指数与S的指数不相同,则在步骤S4048中以与S的指数输出到标题编码器500的同样方式把E的指数以及该标记位输出到标题编码器500。
在不属于该线性关键字区域的输入关键字数据当中的关键字数据被输入到量化器320中,然后根据一个预定的量化比特大小nKeyQBit被量化。
但是,在用一个解码器解码该量化的关键字数据的情况下,由于在原始关键字数据和该量化关键字数据之间的误差的原因,不可能的完全地恢复原始关键字数据。因此,本发明的量化器320获得在输入关键字数据当中的最大值和最小值,并且使用该最大和最小值量化该输入关键字数据。此外本发明的量化器320包括一个量化误差最小化器325,使得在原始关键字数据和其量化的关键字数据之间的误差能够使用在输入关键字数据当中的该最大和最小值被最小化。
在步骤S4100,量化误差最小化器325预先使用控制量化范围的一种方法量化或反向量化该输入的关键字数据,使得能够最小化该量化误差。
具体地说,如果用于量化的混合最大值是由Max表示,被控制用于量化的最小值由Min表示,输入值由Xi表示,用于量化的比特数目由nQuantBit,则使用下面方程式获得量化输入值
Figure A0214002600181
、反向量化值
Figure A0214002600182
和误差ei X ~ i = floor ( X i - Min Max - Min * ( 2 nQuantBit - 1 ) + 0.5 ) . . . ( 5 ) X ^ i = X ~ i * ( Max - Min ) 2 nQuantBit - 1 + Min e i = X i - X ^ i
有两种减小误差取和∑ei的方法。一种降低误差的取和的方法是通过连续控制器Min直到错误的取和被最小化。另外一种方法如下。
首先假定Xi=(i+n)Δx+εi,其中Xi表示一个输入关键字数据序列,Δx表示输入数据的一个基本步骤规模,n是一个任意的整数,而εi表示零平均随机噪声。
随后,当di≡Xi-Xi-1=Δx+(εii-1)时,Δ’x=E[di]并且Min=Max-Δ’x*(2nQuantBit-1).
有可能最小化一个量化误差的Min同Max被输入到量化器320,并且被用于关键字数据的量化。
量化器320接收最大值Max和能够最小化量化误差和的最小值Min,并且在步骤S4200中遵循方程式(6)量化关键字数据fKeyi nQK ey i = floor ( fKey i - fKeyMin fKeyMax - fKeyMin ( 2 nKeyQBit - 1 ) + 0.5 ) . . . ( 6 )
其中,i表示量化后关键字数据的一个索引,nQKeyi表示量化关键字数据的整数的一个数组,fKeyi表示量化关键字数据的浮点数字数组,fKeyMax表示从量化误差最小化器325输入的最大值,fKeyMin表示从量化误差最小化器325输入的最小值,nKeyQBit表示量化比特的大小。在方程式(6)中,函数floor(v)是一个输出不大于一个确定的浮点值v的最大整数的函数。
本发明的量化器320可以不使用降低一个量化误差的算法,这时仅使用输入关键字数据中的最大和最小值fKeyMax和fKeyMin进行量化。
参照图4E更详细地描述本发明的量化操作。
量化器320在步骤S4210中接收关键字数据,并且在步骤4220中检测是否从量化误差最小化器325输入了最大和最小值MAX和MIN。
如果输入了MAX和MIN,量化器320在步骤4230中分别把用于量化的最大和最小值fKeyMax和fKeyMin设置为MAX和MIN,并且把这新的最大和最小值fKeyMax和fKeyMin输出到浮点数转换器315。该最大和最小值fKeyMax和fKeyMin经过上述浮点数转换处理而被转换并且编码,并且被输出到标题编码器500,使得它们能够被包括在进行解码中使用的一个关键字标题中。
如果没有从该量化误差最小化器325输入的值,则在步骤S4240中,量化器320分别把第一关键字数据fKey0和最终关键字数据fKeyN-1设置为最小值fKeyMin和最大值fKeyMax。
随后,量化器320在步骤S4250中检验最大值fKeyMax是否小于1但大于0,以及最小值fKeyMin是否大于0。如果最大值fKeyMax不小于1或不大于0,则该最大和最小值fKeyMax和fKeyMin被输出到浮点数转换器315,并且经过上述浮点数转换过程被转换和编码。随后,在步骤S4260中,已经转换和编码的最大和最小值fKeyMax和fKeyMin被包括在关键字标题中,使得它们可被用于进行解码。
另一方面,如果最大值fKeyMax小于1并且最小值fKeyMin大于0,则在步骤S4270中检验的一个标志,该标志表示最大和最小值fKeyMax和fKeyMin是否将被包括在用于在进行解码使用的关键字标题中。如果该标志被设置而使得最大和最小值fKeyMax和fKeyMin能够被包括在该关键字标题中,则执行步骤S4260,以使最大和最小值fKeyMax和fKeyMin被输出到标题编码器500。如果没有设置该标志,则量化器320将不允许该最大和最小值fKeyMax和fKeyMin包含在该关键字标题中。
在该最大和最小值fKeyMax和fKeyMin不被包括在该关键字标题中的一个情况中,关键字数据编码器300和一个关键字数据解码器被分别来执行编码和解码处理,分别以1和0建立该最大和最小值fKeyMax和fKeyMin。在此情况中,量化器320在步骤S4280中分别以1和0设置该最大和最小值fKeyMax和fKeyMin。对于该关键字数据解码器来说,该最大和最小值fKeyMax和fKeyMin是已经知道的,使得fKeyMax和fKeyMin不需要包括在该关键字标题中。
通过将上述处理已经设置的最大和最小值fKeyMax和fKeyMin替代到方程式(6)中,量化器320在步骤S4290中量化该输入的关键字数据,并且把该量化的关键字数据输出到一个DPCM处理器330。
DPCM处理器330接收该量化的关键字数据,并且对于该量化的关键字数据执行预定的次数的DPCM。随后,DPCM处理器330输出DPCM的阶数以及每一个周期中获得的DPCM的帧内关键字数据到标题编码器500,通过该DPCM的阶数获得分散程度中的最小值。在步骤S4300中,DPCM处理器330把由DPCM产生的差分数据输出到移位器340。
参考图4F,在步骤S4310中,DPCM处理器330对于输入的关键字数据执行预定次数的DPCM,并且按照DPCM的阶数存储DPCM的周期数目。在本发明的一个优选实施例中,DPCM可以被执行三次。
然后,在步骤S4320中,DPCM处理器330计算DPCM的每一周期的结果的分散程度。这里,分散程度可以由分散角、标准偏差或四分位偏移表示,而在本发明的一个优选实施例中,可以使用四分位偏移。
随后,DPCM处理器330选择DPCM的一个周期,通过该DPCM周期能够获得在该分散程度中的最小值,并且把该选择的DPCM阶数的结果输出到移位器340。在步骤S4330中,DPCM的选择周期、DPCM的每一周期的帧内关键字数据以及用于DPCM所需要的信息的其它部分被输出到标题编码器500。然而在本发明的一个优选实施例中,如果关键字的数目小于5,则DPCM仅执行一次。例如,DPCM的第一周期的执行遵循方程式(7)。Δi=nQKeyi+1-nQKeyi  …(7)
其中,i表示量化后关键字数据的索引,nQKeyi表示整数数组,而Δi表示差分数据。
在步骤S4340中,DPCM处理器330计算为了对DPCM选择的周期的结果进行编码所要求的比特数目以及已经由DPCM在一个预定的存储器中产生的该关键字数据的差分数据(nQStep_DPCM)。为了进行编码所要求的比特数量的计算也可以稍后在选择将要被编码的关键字数据的随后步骤中执行,这对本专业技术人员来说是显然的。
移位器340从来自DPCM处理器330的输入差分数据当中选择具有最高频率的一个差分数据(在下文称作一个模式)。随后,在步骤S4400中,移位器340从所有的差分数据减去该模式,以使大部分将要被编码的数据围绕0排列并且用于编码所需要的比特数目能够被减少。
这种移位操作通过从量化关键字数据减去模式nKeyShift进行,由下面方程式表示。
shift(nQKeyi)=nQKeyi-nKeyShift  …(8)
其中,i表示量化后关键字数据的一个索引,nQKeyi表示整数数组,而nKeyShift表示一个模式值。作为移位操作的结果,具有最高频率的差分数据成为0,使得用于进行编码所需要的比特数目能够被显著地降低。
已经通过该移位操作的关键字数据被输出到折叠处理器350和DND处理器360,并且模式值nKeyShift被输出到标题编码器500,以使其被包括在该关键字标题中。
在步骤S4500中,折叠处理器350对于移位器340的输出执行一个折叠操作,并且该折叠操作的结果输出到DND处理器360。
该折叠操作被用于降低差分数据的范围,通过把它们集中在正或负数区域中,该差分数据广泛地散布在一个正数区域和一个负数区域之上。在本实施例中,折叠操作遵循方程式(9)执行,以便把差分数据集中在该正数区域中。
fold(nQKeyi)=2·nQKeyi(if nQKeyi≥0)  …(9)
             =2|nQKeyi|-1(ifnQKeyi<0)
其中,i表示量化后关键字数据的索引,而nQKeyi表示整数数组。作为折叠操作的结果,正差分数据被转换成偶数,而负差分数据被转换成奇数。
折叠处理器350计算为了编码已经通过该折叠操作的差分数据所需的比特数量并且将其存储在预定的存储器nQStep_fold中。在此步骤中,用于编码的所需比特数量的计算可以稍后在选择将要被熵编码的差分数据的一个随后步骤中执行,像步骤S9300那样,这对本专业人员来说是显然的。由折叠处理器350中的折叠操作产生的数据被输出到DND处理器360。
为了提高熵编码的效率,在步骤S4600中DND处理器360对于该关键字数据执行预定次数的DND操作,因此降低差分数据的范围。
参考图3B,DND处理器360包括:DND操作器362,对于差分数据执行DND操作;第一差分数据选择器364,根据用于进行编码的比特数目选择将要被熵编码的差分数据;上移操作器366:对于已经通过DND操作的差分数据执行一个上移操作;和第二差分数据选择器368,在仅通过DND操作的差分数据和已经通过上移位操作的差分数据之间选择具有较低分散程度的差分数据,并且把所选择的差分数据输出到熵编码器370。
在下面段落中将描述DND操作器362中执行的DND操作。
当该差分数据已经通过在该折叠处理器362中的折叠操作被输入到DND操作器362中时,它们被分为两组,具有比另一组差分数据更高范围的一组差分数据通过一个分割函数被移到该正数区域。该分割函数由下面方程式定义。 div ide ( nQKe y j , nKeyMax ) . . . . . . ( 10 ) = nQK ey j - ( nKeyMax + 1 ) . . . . ( if nQK ey j > nKeyMax 2 ) = nQKe y j . . . . . . ( if nQK ey j &le; nKeyMax 2 )
其中,j表示输入差分数据的一个索引,nQKeyj表示整数的一个数组,而nKeyMax表示在已经通过该折叠操作的差分数据当中的一个最大值。特别地,在大部分差分数据沿着考虑所有的差分数据的整个区域的边界密集填充情况下,则有可能使用该分割操作显著地降低所有的差分数据的整个区域。
在该分割操作之后,计算该分散程度,其中用于进行编码而需要的比特的大小被用作分散的度量,因此能够选择用于进行编码的比特大小的最小值。
DND操作之后,进一步执行不同种类的DND操作,即上分割操作或下分割操作。根据差分数据的一个正范围的大小和差分数据的一个负范围的大小确定是否将进一步执行一个上分割操作或一个下分割操作。
如果具有正值的该差分数据范围大于具有负值的该差分数据的范围,则执行通过下面方程式定义的一个下分割操作。 div ide - down ( n QKey j , nKeyMax ) . . . . . . . . ( 11 ) = - 2 ( nKeyMax - nQK ey j + 1 ) + 1 . . . ( if nQKe y j > nKeyMax 2 ) = nQK ey j . . . . . ( if 0 &le; nQK ey j &le; nKeyMax 2 ) = 2 &CenterDot; n QKey j . . . . . . . ( if nQ Key j < 0 )
另一方面,如果具有正值的差分数据的范围大于具有负值的差分数据的范围,则执行由如下方程式定义的一个上分割操作。 div ide - up ( nQK ey j , nKeyMin ) . . . . . . . ( 12 ) = nQK ey j . . . . . . ( nQK ey j &GreaterEqual; 0 ) = 2 &CenterDot; nQKey j . . . . . ( nKeyMin 2 &le; nQK ey j &le; 0 ) = 2 ( nKeyMin - nQK ey j - 1 ) + 1 . . . ( nQ Key j < nKeyMin 2 )
在方程式(11)和(12)中,j表示量化后关键字数据的一个索引,nQKeyj表示整数的一个数组,nKeyMax表示nQKeyj的一个最大值,而nKeyMin表示nQKeyj的最小值。
在下面将参照图4G描述DND操作器362的操作。
当输入的关键字数据的差分数据是来自折叠处理器350的输入,则DND操作器362在步骤S4610中获得在输入差分数据当中的最大值nKeyMax和最小值nKeyMin。随后,在步骤S4620中DND操作器362比较该nKeyMax的绝对值与nKeyMin的绝对值。如果nKeyMax不小于nKeyMin的绝对值,则在步骤S4622中DND操作器362把nKeyMax设置为在当前DND操作周期中的一个最大值。
DND操作器362检测该DND操作的阶数是否为1,换句话说,在步骤S4624中检测DND操作的阶数是否为1,并且如果其是1,则在步骤S4630中DND操作器362执行对于该输入差分数据的一个分割操作,替代方程式(10)中最大值nKeyMax。
然后,DND操作器362在步骤S4640中使用函数getQBit()测量为了编码已经使用该分割操作被减小的该差分数据范围所需要的比特的大小。如果在步骤S4650中该DND操作的阶数出现是1,则用于进行编码所需要的比特大小被存为表示为了进行编码的比特的最小大小的一个值nQBitDND,并且DND操作的阶数在步骤S4655中被增加1。
随后,该DND处理器362再一次执行步骤S4610至S4622。如果在步骤S4624中的DND操作的阶数不是1,则该DND操作器252在步骤S4634中执行一个下分割操作,代替方程式(11)中的最大值nKeyMax。在步骤S4640中,DND操作器362计算用于编码已经通过该下分割操作的该差分数据所需要的比特的数量。如果该数目小于在先前DND操作周期中存储的该最小值nQBitDND,则在步骤S4658的DND操作之后替代用于编码所需的比特的最小量。
如果在步骤S4620中该最小值nKeyMin的绝对值出现为大于最大值nKeyMax,则在步骤S4623中把DND操作的当前周期中的最大值更新为一个最小值,然后在步骤S4638中执行上分割操作,替代方程式12中的最小值nKeyMin。然后,DND操作器362在步骤S4640中计算用于编码已经通过该上分割操作的差分数据的比特的数量。如果该计算的结果是小于已经在步骤S4652中的DND操作的预先周期中存储的nQBitDND,则在步骤S4658中替代用于DND操作之后进行编码所需的该最小比特数nQBitDND。
DND处理器362执行预定次数的DND操作,并且该DND操作的执行的数量可以改变。例如在本实施例中,该DND操作被执行7次。DND操作器362输出nQBitDND和对应于nQBitDND的差分数据到第一差分数据选择器364。DND操作器362把对应已经产生的差分数据的DND的阶数输出到标题编码器500,并且使得它们被包括在该比特数据流中。
第一差分数据选择器364接收已经通过该移位操作的差分数据、已经通过折叠操作的差分数据和已经通过DND操作的差分数据,并且在这三个差分数据当中确定将被熵编码的差分数据。
参考图3A,第一差分数据选择器364选择该DPCM的结果,并且如果在该DND操作以后的用于进行编码所需的最小比特数目nQBitDND不小于在步骤S4700中的该DPCM操作之后的用于进行编码的比特大小nQStep-DPCM,在步骤S4710中对于该DPCM的结果执行一个移位操作。随后,在步骤S4710中,第一差分数据选择器364把该移位操作的结果输出到熵编码器370,并且使得它们被熵编码。在此情况下,DND操作的阶数被设置在-1,被输出到标题编码器500,并且被包括在该关键字标题中。
但是,如果在步骤S3720中结果变为该nQBitDND小于nQStep-DPCM并且不小于折叠操作之后的用于进行编码的比特的大小,则第一差分数据选择器364把已经通过该折叠操作的该差分数据输出到熵编码器370,并且使得它们在步骤S4730中被熵编码,其中DND操作的阶数被设置在0,输出到标题编码器500,并且因此被包括在该关键字标题中。
如果在DND操作之后用于编码该差分数据的比特数目是最小的,则第一差分数据选择器364把已经通过该DND操作的差分数据输出到该上移位操作器366,然后该上移位操作器366在步骤S4740中计算从第一差分数据选择器364输入的差分数据的第一分散程度。随后,该上移位操作器366在步骤S4800中对于已经通过该DND操作的该差分数据执行由下面方程式定义的一个上移位操作,并且在步骤S4810中计算该上移位结果的一个第二分散程度。
shift-up(nQKeyj,nKeyMax)  …(13)
=nQKeyj             (if nQKeyj≥0)
=nKeyMax-nQKeyj     (if nQKeyj<0)
其中,j表示量化后关键字数据的差分数据的一个索引,nQKeyj表示整数的一个数组,而nKeyMax表示在差分数据当中的一个最大值。
当已经通过DND操作的差分数据和已经通过上移位操作的差分数据被输入时,第二差分数据选择器368在步骤S4900中把该第一分散程度与该第二分散程度相比较。如果该第二分散程度小于该第一分散度,则在步骤S4910中第二差分数据选择器368把已经通过该上移位操作的差分数据输出到熵编码器370并且使得它们被熵编码。该第二差分数据选择器468把使用在该DND操作的最大和最小值nKeyMax和nKeyMin、以及使用在上移位操作中的最大值nKeyMax输出到标题编码器500,并且使得它们被包括在关键字标题中。
但是,如果该第一分散程度小于该第二分散程度,则第二差分数据选择器368把已经通过该DND操作的差分数据输出到熵编码器370,并且使得它们在步骤S4920中被熵编码。然后,第二差分数据选择器368仅把使用在该DND操作中的该最大和最小值nKeyMax和nKeyMin输出到标题编码器500。在本发明的一个优选实施例中,标准偏差可以被用作该第一和第二分散程度的一个度量。
根据差分数据的特性,熵编码器370对于差分数据执行两个不同的操作。例如,已经通过DPCM操作和一个移位操作的差分数据,以及只通过一个分割操作的差分数据既有正值又有负值,并且因此要求执行每一差分数据的符号的编码处理以及该差分数据本身的编码处理。另一方面,由于已经通过折叠操作的差分数据仅有正值,所以执行仅编码该差分数据的处理。
在本发明的一个优选实施例中,函数encodeSignedAAC被用于编码该差分数据和其符号,而函数encodeUnsignedAAC被用于仅编码差分数据。
图5是表示一个函数encodeSignedAAC的一个实例的示意图。参考图5,当一个输入值是74而用于编码该输入值的比特数目是8时,其符号是0,并且其与二进制数字1001010相同。符号以及整个比特平面以下列方式编码:
第一步骤:一个二进制数以从其最高有效比特(MSB)到其最低有效比特(LSB)的次序在每一比特平面上编码一个二进制数;
第二步骤:检验当前正被编码的比特是否为0;
第三步骤:如果当前被编码的比特不是0,则该二进制数的符号被随后编码;和
第四步骤:该二进制数的其余比特被编码。
使用关于该值的一个上下文,函数encodeUnsignedAAC把没有符号的值编码为一个自适应算法编码比特数据流。除了存在一个符号上下文之外,此函数与函数encodeSignedAAC几乎相同。
图6A至6J是表示关键字数据的曲线示意图,其关键字数据已经经过了按照本发明一个优选实施例的操作。在图6A至6J中,该X轴表示每一个关键字数据的索引,而Y轴表示该关键字数据的值。
图6A是表示输入到该本发明的编码器的原始关键字数据的一个曲线图。图6A所示的关键字数据被输出到量化器320,然后以九个量化比特量化,以便获得图6B所示的量化的关键字数据。如果对于图6B所示的量化关键字数据执行DPCM,则获得图6C所示的差分数据。
随后,使用大约7的一个模式值移位该量化关键字数据的差分数据,以便获得图6D所示的差分数据。随后,如果对于该移位的差分数据执行一个折叠操作,则可以获得如图6E所示的仅有正值的数据。
图6F至6H示出对于图6E示出的折叠数据执行一个DND操作的结果。具体地说,对于图6F示出的折叠数据执行一个分割操作的结果。如图6F所示,正关键字数据值范围从0到28,而负关键字数据值范围从29到0,其意味着负关键字数据值的范围大于正关键字数据值的范围。因此,要求对于图6F中所示数据执行一个上分割操作,而该上分割操作的结果在图6G中示出。
作为该上分割操作的结果,负关键字数据值的范围被大大降低,使得其比正关键字数据值的范围小得多。在DND操作的一个随后周期中,对于该上分割操作的结果执行一个下分割操作。图6H是表示对于图6G所示差分数据执行一个下分割操作的结果。对于图6H所示的关键字数据执行一个上移位操作的结果在图6I中示出。
如图6A至6G所示,关键字数据和差分数据的范围逐步减小。然而,如图6H和6I所示,上移位操作以后的差分数据的范围比该操作之前的范围增加得更大,这表明如图6H所示该已经通过下分割操作的差分数据是最后唯一被编码的差分数据,如图6J所示。
下面段落将描述在标题编码器500编码并且存储在关键字标题中的信息。
当输入将要被编码的关键字数据时,标题编码器500编码将要被编码的关键字数据的数字数目和关键字数目。随后,标题编码器500从线性关键字编码器310接收有关于输入的关键字数据中是否存在已经通过该线性关键字编码的一个线性关键字区域以及在该线性关键字数据区域中的关键字数据的数量的信息,并且从浮点数转换器315接收该已经通过浮点数转换的线性关键字数据区域的开始和结束关键字数据。
在浮点数转换器315接收能够实现一个最小量化误差的最大和最小值并且把它们转换成浮点数字的情况下,该转换的最大和最小值被从浮点数转换器315输入到标题编码器500,以使它们能被再一次用于进行反向量化。此外,量化比特的大小也被输入到标题编码器500并且被包括在该关键字标题中。
标题编码器500从DPCM处理器330接收DPCM的阶数以及在DPCM的每一周期中的内关键字数据,并且从移位器340接收已经用于一个移位操作的一个模式值。此外,标题编码器500从DND处理器360接收有关是否已经执行一个上移动操作的信息,能够最小化差分数据的分散程度的DND的阶数的信息以及在DND操作的每一周期中的最大和最小值信息。
最终,标题编码器500从熵编码器370接收用于进行编码的比特数目并且将其编码作为一个关键字标题。
下面,参考图7A至11C更详细地描述根据本发明一个优选实施例的用于对坐标内插符的关键值数据进行编码的一个装置和方法。
图7A是根据本发明优选实施例的关键值数据编码器的框图,而图7B是根据本发明优选实施例的用于对坐标内插符的关键值数据进行编码的一种方法的流程图。
参考图7A,关键值数据编码器700包括量化器710,使用预定的量化比特量化输入其中的坐标内插符的关键值数据每一顶点的成份的数据;DPCM处理器720,对于每一顶点的量化成分数据执行一个预定的DPCM操作;字典编码器750,将差分数据转换成符号和指示该符号的位置的索引;以及熵编码器760,熵编码输入其中的符号和差分数据的索引。
在下面的段落中,参照图7B描述用于编码坐标内插符的关键值数据的方法。参考图7B,在步骤S9000中以NXM矩阵的形式把坐标内插符的关键值数据输入到量化器710。一个输入的坐标内插符的关键值数据的实例在下列表中示出。
表3
        1         2 …j        M
1 x(1,1),y(1,1),z(1,1) x(1,2),y(1,2),z(1,2) x(1,M),y(1,M),z(1,M)
2 x(2,1),y(2,1),z(2,1) x(2,2),y(2,2),z(2,2) x(2,M),y(2,M),z(2,M)
…i x(i,j),y(i,j),z(i,j)
N x(N,1),y(N,1),z(N,1) x(N,2),y(N,2),z(N,2) x(N,M),y(N,M),z(N,M)
在表3中,N表示关键字数据(关键帧)的数目,M表示每一关键帧中的顶点的数量。
根据本发明的关键值数据编码器700以两种不同模式操作来编码坐标内插符的关键值数据。模式之一是顶点模式,而另外一个模式是转置模式。表3中,示出以顶点模式在量化器710中量化的关键值数据的结构。在量化表3所示的输入关键值数据之前,关键值数据编码器700把输入的关键值数据转置成一个MHN矩阵。在解码关键值数据过程中反向量化该转置矩阵,并且把解码的关键值数据转换成NHM矩阵,使得能够恢复与输入关键值数据一样的关键值数据。
参考图7B,在步骤S9100中,量化器710检查从外部输入的关键值数据的编码方式是否为转置模式。如果输入的关键值数据的编码模式是一个转置模式,则在步骤S9200中,输入关键值数据的NHM矩阵被转置成一个MHN矩阵。
然后,在步骤S9300中,量化器710以预定的量化比特量化输入其中的该关键值数据矩阵中的每一个成分的数据,并且在步骤S9300把每一个成分的量化的关键值数据输出到DPCM处理器720。在同一个步骤中,量化器710把在每一个成份的输入的关键值数据当中的最小值和在该成份的数据范围当中的最大范围转换成十进制数字,并且把该十进制数字输出到标题编码器500。
在步骤S9400中,DPCM处理器720对于输入其中的量化的关键值数据执行一个时间DPCM操作、一个空间DPCM操作和一个时空DPCM操作,对于该三个不同的DPCM操作的结果,即对于从该三个DPCM操作获得的每一差分数据执行一个循环量化操作,并且把在它们当中的具有最低熵值的差分数据输出到字典编码器750。
在步骤S9600中,字典编码器750产生和输出对应于从DPCM处理器720输入的差分数据的字典符号Si,j和位置索引Ii,j。具体地说,字典编码器750产生的该字典符号和该位置索引,表明已经对于该输入差分数据执行的DPCM操作的模式,把该输入的差分数据转换成对应于该输入差分数据值的符号或一个符号标志,和表示该符号的位置的位置索引,并且把该符号和位置索引输出到熵编码器760。
在步骤S9800中,熵编码器760通过对从该字典编码器750输入的该符号和位置索引进行熵编码而产生一个比特数据流。
下面,参照图8A至11C更详细地描述步骤S9300至S9800。
参考图9A,在步骤S9320中,量化器710选择在每一个成份数据当中的最大值和最小值。
在步骤S9340中,量化器710使用选择的该最大和最小值计算该成分的数据范围,并且确定在该成份的数据范围当中的一个最大范围。
在步骤S9360中,量化器710使用下面方程式所示的每一成份数据当中的最小值和各成份的整个数据范围当中的最大范围量化每一成分的关键值数据。 V ~ i , j , x = floor ( V i , j , x - fMin _ X fMax ( 2 nKVQBit - 1 ) + 0.5 ) . . . . ( 14 ) V ~ i , j , y = floor ( V i , j , y - fMin _ Y fMax ( 2 nKVQBit - 1 ) + 0.5 ) V ~ i , j , z = floor ( V i , j , z - fMin _ Z fMax ( 2 nKVQBit - 1 ) + 0.5 )
方程式(14)中,i表示关键数据,j表示一个顶点,而nKVQBit表示量化比特大小。此外,fMin_X、fMin_Y、fMin_Z表示在每一个成份的数据中的最小值,而fMax表示在该成份数据范围中的最大范围。
量化器710把每一成分的量化关键值数据输出到DPCM处理器720,并遵循方程式(4)和表2,把fMin_X、fMin_Y、fMin_Z和fMax变换成十进制数字,并且把该十进制数字输出到标题编码器500。
下面将参照图8A和9B更详细地描述该DPCM处理器720的结构和操作。
图8A是根据本发明的DPCM处理器720的一个框图。参考图8A,DPCM处理器720包括一个DPCM操作器730,对于从量化器710输入的每一成份的数据执行一个时间DPCM操作、空间DPCM操作和一个时空DPCM操作,一个循环量化器740,降低从该DPCM操作器730输入的差分数据的范围,以及一个DPCM模式选择器745,选择从循环量化器740输入的差分数据之一。DPCM操作器730包括一个时间DPCM操作器73 1,对于每一个成份的量化数据执行一个时间DPCM操作,一个空间DPCM操作器733,对于每一个成份的量化数据执行一个空间DPCM操作,以及一个时空DPCM操作器735,对于每一个成份的量化数据执行一个时空DPCM操作。
图9B是根据本发明优选实施例的一个DPCM操作的流程图。参考图9B,在步骤S9420中,每一个成分的量化数据从量化器710输入到时间DPCM操作器731、空间DPCM操作器733、和时空DPCM操作器735,然后在分别的操作器731、733以及735中对于每一个成分的量化数据执行时间DPCM操作、空间DPCM操以及时空DPCM操作。
时间DPCM操作器731计算在一个当前关键帧中的顶点的成分数据和在一个先前关键帧中的顶点的成分数据之间的差值。一个时间DPCM操作由下面方程式表示。 D i , j = V ~ i , j - V ~ i - 1 , j . . . . . . . . ( 15 )
方程式(15)中,i表示关键字数据,j表示一个顶点的位置索引。
空间DPCM操作器733计算在同一个关键帧中的顶点之间的差值。具体地说,空间DPCM操作器733使用下面方程式计算前个顶点的熵,在当前顶点受到空间DPCM操作之前已经对于该前个顶点执行了空间DPCM操作。 Entropy ( P ) = - &Sigma; i = 0 N - 1 P i log 2 P i . . . . ( 16 )
在方程式(16)中,Pi表示某符号在一个顶点产生的概率,并且等于Fi/N,其中Fi表示该符号被产生了多少次,而N表示关键字数据的数量。
空间DPCM操作器733把在该顶点中的具有该最低熵的一个顶点确定为一个参考顶点,并且计算在当前受到空间DPCM操作的一个顶点的数据和该参考顶点的数据之间差分数据。一个空间操作由下面方程式表示。 D i , j = V ~ i , j - V ~ i , Ref . . . . . ( 17 )
该时空DPCM操作器735对于该当前关键帧的顶点执行一个空间DPCM操作,使用在该先前关键帧的顶点中的一个对应于该当前关键帧的参考顶点、并作为参考顶点的顶点,对于该先前关键帧的顶点执行空间DPCM操作,并且计算在对应于该当前关键帧的顶点的差分数据和对应于该先前关键帧的顶点的差分数据之间的差分数据。换句话说,该时空DPCM操作器735对于该空间DPCM操作的结果执行一个时间DPCM操作。该时空DPCM操作由下面方程式表示。 D i , j = V ~ i , j - { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } . . . . ( 18 )
在该空间DPCM操作和该时空DPCM操作过程中,如果 { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } 小于在每一成分的量化数据中的最小值,则该最小值被用于空间DPCM操作和时空DPCM操作。另一方面,如果 { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } 大于在每一成分的量化数据中的最大值,则该最大值被用于该空间DPCM操作和该时空DPCM操作。
在步骤S9440中,DPCM操作器730把计算的差分数据输出到循环量化器740,而循环量化器740对于该时间DPCM的差分数据、空间DPCM差分数据和时空DPCM差分数据执行循环量化操作,并且把该循环量化的结果输出到DPCM模式选择器745。
图10A是量化器710的一个输出实例的曲线图,而图10B是对于图10A中所示的量化数据执行DPCM操作的结果的曲线图。如图10B所示,通过执行对于量化数据的一个DPCM操作,将要被编码的数据范围能够增加为其原数据范围的两倍。循环量化的目的是在保持量化值的数据范围的同时执行一个DPCM操作。
在本发明中,假设在DPCM的差分数据中的一个最大值被循环连接到在DPCM的差分数据中的一个最小值而执行该循环量化。如果对于两个连续量化数据执行的线性DPCM操作的结果大于在DPCM的差分数据中的最大值的一半,则从该线性DPCM的结果中减去从该DPCM的差分数据的一个最大范围值,以便产生具有较小绝对值的一个差分数据。另一方面,如果该线性DPCM的结果小于该最大范围中的一个最小值的一半,则把该最大范围值加到该线性DPCM的结果,以便产生具有较小绝对值的一个值。
通过下面的方程式表示循环量化器740的操作。
CircularQuanti zation(Xi):    …(19)
X′i=Xi-(nQMax-nQMin+1)(if Xi≥0)
X′i=Xi+(nQMax-nQMin+1)(otherwise)
=min(|Xi|,|X′i|)
在方程式(19)中,nQMax表示在DPCM的差分数据中的一个最大值,而nQMin表示在DPCM的差分数据中的一个最小值。图10C示出对于图10B所示的DPCM的差分数据执行循环量化的结果。
循环量化器740把该循环量化的差分数据输出到DPCM模式选择器745。
在步骤S9460中,DPCM模式选择器745遵循方程式(16)计算从时间DPCM操作、空间DPCM操作和时空DPCM操作获得的每一DPCM差分数据的熵。
下面,DPCM模式选择器745在步骤S9480中选择在时间DPCM操作、空间DPCM操作、时空DPCM操作的结果中具有最低熵的DPCM差分数据作为每一顶点的DPCM操作模式,并且把对应于该选择的DPCM模式的该DPCM差分数据和关于该DPCM模式的信息输出到字典编码器750。
下面,参照图8B和9C描述字典编码器750及其操作。
图8B是根据本发明的字典编码器750的一个框图。参考图8B,字典编码器750包括一个DPCM模式编码器752,编码已经对于输入其中的每一个顶点的每一成分的数据执行的DPCM的模式,一个出现模式编码器756,产生表示每一顶点的每一成分的差分数据的值的符号和表示该符号的位置的位置索引,一个增量模式编码器758,产生对应于该符号和表示该符号位置的位置索引的一个符号标志,以及一个表格大小计算器754,计算用于表示每一顶点的每一成份的差分数据的符号表格以及一个符号标志表格的大小,并且把从DPCM模式编码器752输入的该差分数据输出到该出现模式编码器756或增量模式编码器758之一。
字典编码器750检测每一顶点的每一成份的差分数据的一个量化选择标志是否为1,如果是,则执行将在下面描述的后续处理。另一方面,如果某顶点的差分数据的量化选择标志是0,即意味着该顶点整个关键帧中具有相同的量化值,则该字典编码器750将省略字典编码处理,并且把该量化值QMin编码到一个关键字值标题。
图9C是根据本发明的一个字典编码处理的流程图。参考图9C,在步骤S9620中,在DPCM处理器720中已经产生的每一顶点的每一成份的差分数据被输入到DPCM模式编码器752中,然后DPCM模式编码器752产生表示已经对于每一顶点的每一成份的数据执行的DPCM操作模式的符号,以及指示该符号的位置的位置索引。
图11A是说明根据本发明的DPCM模式编码器752中执行的编码DPCM模式的一种方法的示意图。参考图11A,DPCM模式编码器752预先制备一个表格,其中示出每一顶点的每一成份的DPCM模式和其分别的符号,如图表4所示。表4示出DPCM操作的组合以及其对应符号。表4中,时间DPCM操作、空间DPCM操作和时空DPCM操作分别表示为T、S和T+S。
表4
符号 DPCM模式 符号 DPCM模式 符号 DPCM模式
  0 (T,T,T)   9 (S,T,T)   18 (T+S,T,T)
  1 (T,T,S)   10 (S,T,S)   19 (T+S,T,S)
  2 (T,T,T+S)   11 (S,T,T+S)   20 (T+S,T,T+S)
  3 (T,S,T)   12 (S,S,T)   21 (T+S,S,T)
  4 (T,S,S)   13 (S,S,S)   22 (T+S,S,S)
  5 (T,S,T+S)   14 (S,S,T+S)   23 (T+S,S,T+S)
  6 (T,T+S,T)   15 (S,T+S,T)   24 (T+S,T+S,T)
  7 (T,T+S,S)   16 (S,T+S,S)   25 (T+S,T+S,S)
  8 (T,T+S,T+S)   17 (S,T+S,T+S)   26 (T+S,T+S,T+S)
每一顶点包括三个成分x、y和z,并且相应的DPCM操作的组合的数量是27。
如图11A所示,根据该差分数据已经通过的DPCM操作,每一个顶点的差分数据对应于表4示出的符号之一。DPCM模式编码器752使得该顶点的DPCM模式对应于表4中示出的分别的符号,并且设置标志,指示该符号存在于分别的顶点差分数据中。
DPCM模式编码器752把对应于该顶点的DPCM模式的符号排列在一个列中,并且以从用于具有较小幅值的一个符号的位置索引到用于具有最大幅值的一个符号的位置索引的次序产生用于该符号的位置索引。
如图11A所示,对应于该顶点差分数据的DPCM模式的符号的一个数组是(4,1,5,1,4,5)。在该符号当中,1是最小的符号,并且对应于(T,T,S)。DPCM模式编码器752产生用于该符号1的一个位置索引,使得符号的数组中出现1的位置由1表示。因此,该位置索引是(0,1,0,1,0,0)。
随后,DPCM模式编码器752产生用于次最小符号4的位置索引,其对应于DPCM模式(T,S,S),使得其中4所在的位置由1表示。在用于符号4的位置索引的产生中,不计算符号1的位置。因此,针对该符号4的位置索引是(1,0,1,0)。以同样方式,DPCM模式编码器752产生用于符号5的位置索引,其对应于(T,S,T+S)。用于该符号5的位置索引是(1,1)。
随后,DPCM模式编码器752把该标志和该位置索引输出到该表格大小计算器754。
再一次参考图8B和9C,表格大小计算器754计算用于编码在一个出现模式中的输入的差分数据的一个符号表的大小(A),以及用于编码在一个递增模式中的输入的差分数据的一个符号标志的大小(B),其对应于步骤S9640中在预先设置的符号表中的符号。
在步骤S9660中,表格大小计算器754把使用在该出现模式编码器756中的符号表的大小(A=S*(AQP+1),其中S表示差分数据中包括的符号的数量而AQP表示用于表示一个符号的比特的大小)与对应分别符号的符号标志的大小(B=2AQP+1-1,其中AQP表示用于表示一个符号的比特的大小)相比较。
如果A小于B,则表格大小计算器754把每一个顶点的差分数据输出到出现模式编码器756,如果B小于A,则把该差分数据输出到增量模式编码器758。
下面参照图11B描述出现模式编码器756的操作。
在步骤S9680中,出现模式编码器756产生对应于每一顶点的输入差分数据的值的符号,以及表示其各自符号的位置的位置索引。
参考图11B,当一个顶点的输入差分数据是(3,7,3,7,-4,7,3,-4,3,7,-4,-4),时,该出现模式编码器756制备一个表格,其中对应于每一顶点的差分数据的差分值的符号3,7,和-4被顺序地写入一行。
出现模式编码器756编码该符号数组中的第一个符号3并且产生针对该符号3的位置索引,以使3处在而位置由1表示而其它位置由0表示。针对该符号3的位置索引是(01000101000)。
随后,出现模式编码器756产生用于下一个符号7的位置索引。如图11B所示,在用于下一个符号的位置索引的产生中,前个符号的位置不被再次计算。因此,针对该符号7的位置索引是(1010100)。
在出现模式编码器756中,仅考虑尚未编码的符号位置产生用于符号的全部位置索引,因此用于一个符号-4的位置索引是(111)。
在图11B中,标志bSoleKV被设置为0。标志bSoleKV表示在差分数据的符号数组中一个符号是否仅出现一次。如果一个符号仅出现一次并且因此其位置索引仅包括0,则用于该对应符号的bSoleKV被设置为1,并且该对应符号的位置索引不被编码。出现模式编码器756把该输入差分数据的符号、该符号的位置索引以及bSoleKV输出到用于熵编码差分数据的熵编码器760。
下面参照图11C描述根据本发明的增量模式编码器758的操作。
在步骤S9690,增量模式编码器758产生指示包括在一个预定符号表中的符号是否存在于输入的差分数据中的一个符号标志以及用于该符号的位置索引。
增量模式编码器758预先产生用于被期望存在于输入差分数据中的符号的一个表格。在该表格中,以从具有最低绝对值的一个符号到具有最低大对值的一个符号的次序把符号排列在列中,并且在具有相同的绝对值的两个符号之间,具有正值的一个符号被放置在比另一符号更高的行中。因此,符号写入该表格中的次序是0,1,-1,2,-2,3,-3,…。对应于一个符号表中的符号的一个符号标志的大小为2AQP+1-1。例如,如果AQP是2,则能够由一个符号标志表示的符号的数量是7。如果一个值对应于存在差分数据中的一个符号,则该符号标志设置为1。仅针对其符号标志被设置为1的符号产生位置索引。
参考图11C,如果输入到增量模式编码器758的差分数据是(-1,-3,-1,-3,2,-3,-1,2,-1,-3,2,2),则存在于该差分数据中的符号是(-1,2,-3),因此确定该符号标志为(0,0,1,1,0,0,1)。
增量模式编码器758产生用于一个符号的位置索引,该符号在符号表中的定位首先在比其它符号高的行中。如图11C所示,增量模式编码器758设置一个符号-1所在的位置,在该符号表中排列该差分数据中存在的符号中的第一个以1出现的符号,并且以0设置其它放置,使得用于该符号-1的位置索引是(101000101000)。
随后,增量模式编码器758产生用于一个符号2的位置索引(00101011)而不考虑该已经编码的符号-1的位置。最后,增量模式编码器758产生用于符号3的位置索引(1111),而不考虑该已经编码的符号-1和2的位置。增量模式编码器758把用于其各自符号的符号标志和位置索引输出到熵编码器760。
由出现模式编码器756和增量模式编码器758产生的全部位置索引具有称为nTrueOne的一个标志,其指示原来的位置索引是否已经反向。具体地说,如果nTrueOne被设置为0,则认为位置索引是通过反向其原来位置索引而获得的。在位置索引包括许多1的情况中,有可能通过反向该位置索引而增强该算法编码效率,以便增加0的数量。
下面参照图9D描述熵编码器760的操作。
根据本发明的熵编码器760,使用函数enodeSignedQuasiAAC()熵编码从增量模式编码器758输入的表示该差分数据的符号的符号标志和用于该符号的位置索引,并且熵编码从出现模式编码器756输入的该差分数据的符号和其各自的位置索引。
在encodeSignedQuasiAAC中,使用涉及输入值和其符号的一个上下文产生一种自适应算法编码的比特数据流。具体地,在encodeSignedQuasiAAC()中,不为0的一个第一比特被编码,随后编码其符号,并且使用一个零上下文编码其它比特。
图9D是使用encodeSignedQuasiAAC()编码一个符号的一个处理的流程图。
在步骤S9810中,熵编码器760接收将要被编码的差分数据的符号nValue和其比特大小QBit。
在步骤S9820中,熵编码器760从nQBit减去2,并且存储该相减的结果作为可变i。
在步骤S9830中,熵编码器760把该符号nValue的绝对值存储作为变量val,并且对于val执行次数为i的右移位(SR)操作。在同一个步骤中,熵编码器760对于1和该SR操作的结果执行一个逻辑″与″操作,并且把该逻辑″与″操作的结果存储为一个变量比特。
在使用encodeSignedQuasiAAC()编码一个符号的处理的第一周期中,检测除了符号位以外的将要被熵编码的输入值中的第一比特,并且在随后的周期中逐个读出其它比特。
在步骤S9840中,熵编码器760检测val是否大于1。如果val大于1,则在步骤S9850中,在一个零上下文下使用函数qf_encode()编码该′比特′的值。另一方面,如果val不大于1,则在步骤S9860中,在一个第i上下文之下使用函数qf_encode()编码该′比特′的值。
当val不大于1时,在步骤S9870中,熵编码器760再一次检验val是否为1。如果va1是1,则在步骤S9880设置nValue的符号,并且在步骤S9890中根据其符号和一个符号上下文编码nValue。
当完成针对一个比特的编码处理时,熵编码器760在步骤S9900中把i减1,随后在步骤S9910中检测i的当前值是否小于0。通过重复地执行S9830至S9900,熵编码器760熵编码该输入值,直到i小于0为止。
因此,随着分配到该第一比特的一个上下文,熵编码器760编码输入值不是0的第一比特,并且编码跟随该零上下文的其它比特。
下面参照图7A描述在标题编码器500中的将要被编码成一个关键字值标题的信息。
标题编码器500接收一个输入的坐标协调程序并且编码一个数据模式、每一关键帧中的顶点的数目、用于该顶点数目的所需要的比特数、以及每一浮点数的有效位的最大数目。
标题编码器500编码一个量化比特数、每一顶点的每一成份的关键值数据中的最小值和每一顶点的每一成份的数据范围中的最大数据范围、以及每一顶点的每一成分的量化数据中的最大和最小值。
标题编码器500从DPCM处理器720接收已经对于每一顶点的每一成份的数据执行的一个DPCM操作的模式,从该字典编码器750接收一个字典编码模式,并且编码该DPCM操作模式和该字典编码方式。
下面参照附图更详细地描述根据本发明优选实施例的一个用于解码一个比特数据流的方法和装置,其比特数据流中编码有坐标内插符的关键字数据和关键值数据。
图12是根据本发明一个优选实施例的用于解码坐标内插符的装置的框图。参考图12,用于解码坐标内插符的装置包括:关键字数据解码器1300,从一个输入比特数据流中解码关键字数据;关键值数据解码器1500,从该输入比特数据流中解码关键值数据;以及标题解码器1800,解码标题信息并且把该解码的标题信息提供到关键字数据1300以及关键值数据解码器1500,该标题信息是用于解码来自输入比特数据流的关键字数据和关键值数据的必需的信息。
下面参照图13至14B更详细地描述关键字数据解码器1300的结构和操作。
图13是根据本发明的一个优选实施例的关键字数据解码器1300的一个框图。关键字数据解码器1300接收一个编码的比特数据流并且通过解码而将其重新构成关键字数据。
关键字数据解码器1300包括一个熵解码器1310、一个反向DND处理器1320、一个反向折叠处理器1330、一个反向移位器1340、一个反向DPCM处理器1350、一个反向量化器1360、一个线性关键字解码器1380和一个浮点数反向转换器1370。
图14A是根据本发明优选实施例的用于解码关键字数据的一种方法的流程图。参考图14A,其上压缩有关键字数据的一个比特数据流被输入到标题解码器1800和熵解码器1310。
在步骤S14000中,标题解码器1800解码为了进行解码的每一步骤所需的信息段并且将它们提供到对应解码步骤。下面按每一解码步骤描述由标题解码器1800解码的信息。
在步骤S14100中,熵解码器1310从标题解码器1800接收将要被解码的差分数据的数目以及已经用于编码的比特数量,即将要被用于进行解码的比特数目,并且解码该输入的比特数据流。差分数据的数目等于从关键字数据的数量减去通过执行DPCM获得的帧内关键字数据数目的结果。
在本实施例中,熵解码器1310根据包括在该比特数据流中的预定的信息,例如bSignedAACFlag,标识将要被解码的差分数据是否具有负值或正值。如果该编码的差分数据具有负值,则熵解码器1310使用函数decodeSignedAAC()解码该差分数据。另一方面,如果该编码的差分数据仅具有正值,则熵解码器1310使用函数decodeUnsignedAAC()解码该差分数据。随后,该解码的差分数据被发送到反向DND处理器1320。
反向DND处理器1320在每一DND的周期中从标题解码器1800接收DND的阶数以及最大值nKeyMax。
如果DND的阶数是-1,这意味着正解码的该编码的差分数据已经经历一个DPCM操作和一个移位操作而不经历DND被熵解码,并且本方法直接进入执行一个反向移位操作的步骤。如果DND的阶数是0,这意味着正解码的该编码的差分数据已经经历一个折叠操作而不经历DND被熵解码,并且因此本方法直接进入执行一个反向折叠操作的步骤。如果DND的阶数大于0,则在步骤S14200中执行一个反向DND操作。
反向DND处理器1320在步骤S14300中确定正被解码的编码的差分数据是否已经经历一个上移动操作而被编码。在本发明的一个优选实施例中,通过查验在一个比特数据流中包含的nKeyInvertDown是否大于0而确定该正解码的该编码差分数据已经经历一个上移位操作而被编码。
如果正被解码的该编码差分数据尚未通过上移位操作,则该方法进入执行一个反向DND的步骤。另一方面,如果正被解码的该编码差分数据已经通过一个上移位操作,在步骤S14400中,通过执行一个上移位,已经从一个正数区域转移到一个负数区域的差分数据被移回到该负数区域。在本发明的一个优选实施例中,通过执行由下面方程式表示的一个下移位操作(一个反向下操作)恢复已经通过上移动操作的差分数据。
invert-down(υ)                     …(20)
=v               (if v≤nKeyInvertDown)
=nKeyInvertDown-v(if v>nKeyInvertDown)
这里,nKeyInvertDown具有与使用在上移位操作中的最大值nKeyMax相同的值。作为下移位操作的结果,具有超过nKeyInvertDown值的差分数据被转换成低于-1的负值。
根据每一个DND周期中的最大值nKeyMax,对于已经通过下移位操作的差分数据有选择地执行一个反向下分割操作或反向上分割操作。
参考图14B,反向DND处理器1320执行一个次数与该差分数据在编码过程中已经通过的DND操作的次数一样多的反向DND操作。换句话说,反向DND处理器1320设置一个反向DND阶数的初始值等于DND的阶数。随后,反向DND处理器1320每次执行一个反向DND操作就从该反向DND的阶数的初始值减去1,并且保持执行该反向DND操作,直到该反向DND的阶数变成1为止。在步骤S14510中,反向DND处理器1320在DND的每一周期中搜索nKeyMax并且检验每一nKeyMax是否不小于0。
如果nKeyMax小于0,则意味着该编码处理中已经执行了上分割操作,并且因此反向DND处理器1320在步骤S14530中通过执行一个反向上分割操作而把正在解码的差分数据的范围延伸到一个负数区域。在本发明的一个优选实施例中,可以使用由方程式(21)定义的一个反向上分割操作。 inverse - div ide - up ( v ) . . . . . . ( 21 ) = v . . . . . . . ( if v &GreaterEqual; 0 ) = ( nKeyMa x i - 1 ) - v - 1 2 . . ( if v < 0 , v mod 2 &NotEqual; 0 ) = v 2 . . . . . . . ( if v < 0 , v mod 2 = 0 )
但是,如果nKeyMax不小于0,则反向DND处理器1320检测该反向DND的阶数是否为1。如果反向DND的阶数不是1,则意味着在编码处理中该正解码的差分数据已经被执行了下分割操作,因此反向DND处理器1320在步骤S14570中通过执行一个反向下分割操作把该差分数据的范围延伸到一个正数区域。
在本发明的一个优选实施例中,可以使用下面方程式定义的一个反向下分割操作。 inverse - div ide - down ( v ) . . . . . . . . . ( 22 ) = v . . . . . . . . . ( if v &GreaterEqual; 0 ) = ( nKeyMa x i + 1 ) + v - 1 2 . . . ( if v < 0 , v mod 2 &NotEqual; 0 ) = v 2 . . . . . . . . ( if v < 0 , v mod 2 = 0 )
如果nKeyMax不小于0而反向DND的阶数是1,则反向DND处理器1320在步骤S14590中执行一个反向分割操作之后完成整个反向DND操作。在本发明的一个优选实施例中,可以使用由方程式(23)定义的一个反向分割操作。
inverse-divide(v)    …(23)
=v                 (if v≥0)
=v+(nKeyMax0+1)(if v<0)
已经通过相反DND操作的关键字数据的差分数据被输入到反向折叠处理器1330,并且反向折叠处理器1330在步骤S14600中对于该差分数据执行一个反向折叠操作,使得该只被用于一个正数区域中的差分数据被分成正值和负值。在本发明的一个优选实施例中,可以使用由方程式(24)定义的一个反向折叠操作。 inverse - fold ( v ) = - ( v + 1 ) 2 ( if v mod 2 &NotEqual; 0 ) . . . . . . . ( 24 ) = v 2 . . . . . . . ( if v mod 2 = 0 ) = 0 . . . . . . . . ( if v = 0 )
已经通过反向折叠操作的差分数据被输出到反向移位器1340,在步骤S14700中,反向移位器1340把从标题解码器1800输入的、在编码处理中使用的一个模式nKeyShift加到从反向折叠处理器1340输入的差分数据。此操作由下面方程式表示。
inverse-shift(v)=v+nKeyShift  …(25)
在步骤S14800中,反向DPCM处理器1350使用从标题解码器1800输入的DPCM的阶数把从反向移位器1340输入的差分数据恢复成量化关键字数据。反向移位器1340遵循方程式(26)执行与DPCM的阶数一样多次的反向DPCM操作。
v(i+1)=v(i)+delta(i)  …(26)
其中,i表示差分数据和关键字数据的一个索引,v表示整数的一个数组,而delta(i)表示差分数据。
已经通过该反向DPCM操作的量化关键字数据被输入到反向量化器1360。随后,反向量化器1360从标题解码器1800接收有关量化比特的大小nKeyQBit和用于反向量化的最大和最小值是否由浮点数转换器315编码的信息,并且在步骤S14900中使用下面方程式把该量化的关键字数据转换成反向量化的关键字数据。 inverse - quantize ( v ) = fKeyMin + v 2 nKeyQBit - 1 &times; ( fKeyMax - fKeyMin ) . . . . . . ( 27 )
如果用于量化的最大和最小值在编码关键字数据的处理中尚未由浮点数转换器315转换,则方程式(27)所示的fKeyMin和fKeyMax被分别设置为0和1。但是,如果用于量化的最大和最小值已经由浮点数转换器315所转换,则由浮点数反向转换器1370反向转换的最大和最小值分别被用作该最大和最小值,以便反向量化。
稍后描述实现反向量化的反向DND操作的程序代码的一个实例。
从反向量化器1360输出的解码的关键字数据加到在线性关键字解码器1380中解码的关键字数据,因此构成解码的关键字数据。
下面,在下列段落中描述一个线性关键字解码过程S15000。
标题解码器1800解码来自一个比特数据流的关键字标题信息。如果在该比特数据流中存在关于一个线性关键字区域的信息,则标题解码器1800把用于解码该线性关键字数据区域的开始和结束关键字数据所需的信息输出到浮点数反向转换器1370,并且把编码为线性关键字的关键字数目输出到线性关键字解码器1380。
浮点数反向转换器1370把由十进制数表示的该线性关键字数据区域的开始和结束关键字反向地转换成二进制数字,并且把该二进制数字输出到线性关键字解码器1380。
假定将要被解码的两个浮点数称为fKeyMin和fKeyMax,则解码fKeyMin的一个处理如下。
标题解码器1800从比特数据流读出fKeyMin的位数。如果fKeyMin的位数是0,则fKeyMin被设置为0,并且从该比特数据流读出fKeyMax的位数以便解码fKeyMax。如果fKeyMax的位数不小于8,则意味着fKeyMax已经遵循IEEE标准754被编码。因此,在读出32比特的fKeyMax之后,解码该浮点数fKeyMax。
但是,如果fKeyMax的位数在1和7之间,标题解码器1800从该比特数据流读出一个符号位。在本发明的一个优选实施例中,如果符号位是1,则MinKeyMantissaSign被设置为-1。另一方面,如果符号位是0,则MinKeyMantissaSign被设置为1。然后,参考表格1获得用于进行解码所需的比特的数量,表格1示出一个尾数的位数和用于进行编码所需的比特数目之间的关系。随后,与用于进行编码所需的比特数一样多的比特数据流的比特被读出并且存储在nMinKeyMantissa中。随后,读出该比特数据流的下一个比特,并且存储在MinKeyExponentSign中,与作为尾数的符号存储在MinKeyMantissaSign中的方式相同。对应于一个指数值的该比特数据流的随后六个比特被读出并且存储在nMinKeyExponent中。
通过把从标题解码器1800输入的值替代到方程式(28)中,浮点数反向转换器1370恢复fKeyMin。 fKeyMin = MinKeyMantissaSign * nMinKeyMantissa 10 MinKeyExponentSign * nMinKeyExponent . . . ( 28 )
恢复fKeyMax的处理与恢复fKeyMin的处理相同。具体地说,在从该比特数据流读出fKeyMax的指数之前,确定是否fKeyMin指数的相同值被用作fKeyMax的指数。如果fKeyMin的指数相同的值不被用作fKeyMin的指数,则以从比特数据流读出fKeyMin的指数的同样方式从该比特数据流读出fKeyMax的指数。
线性关键字解码器1380从浮点数反向转换器1370接收该线性关键字数据区域的开始和结束关键字,并且遵循方程式(29)解码该线性关键字数据区域。 Key i = fKeyMin + ( fKeyMax - fKeyMin ) * i ( nNumberOfLinearKey - 1 ) . . . . . ( 29 ) ( i = 0 , . . . , nNumberOfLinearKey - 1 )
其中,fKeyMin和fKeyMax分别表示该线性关键字数据区域的开始和结束关键字数据。
使用上述方法解码的该线性关键字数据区域中的关键字数据被加到从相反量化器1360输出的关键字数据,然后该相加的结果被输出作为最终关键字数据。
下面将参照图15A和15B描述根据本发明的解码坐标内插符已编码的关键值数据的一个关键值数据解码器和根据本发明的用于解码坐标内插符的关键值数据的一种方法。
图15A是根据本发明优选实施例的关键值数据解码器的框图,而图15B是根据本发明优选实施例的用于解码已编码的关键值数据的一种方法的流程图。
参考图15A,关键值数据解码器1500包括:熵解码器1505,熵解码一个输入的比特数据流并且因此产生将要被字典解码的数据,包括DPCM的差分数据、符号标志、用于该符号的位置索引和一个DPCM操作模式;字典解码器1510,根据将要被字典编码的数据的符号和其位置索引产生差分数据;反向DPCM处理器1530,根据一个DPCM操作模式,通过对于差分数据执行一个预定的反向DPCM操作而产生量化数据;反向量化器1550,通过反向量化已经量化的数据而产生恢复的关键值数据;以及标题解码器1800,其解码用于从该输入比特数据流解码坐标内插符需要的信息,并且把该信息输出到字典解码器1510、反向DPCM处理器1530和反向量化器1550。
在下面将参照图15B描述根据本发明的用于解码坐标内插符的已编码的关键值数据的方法。
在步骤S1710中,其上被编码有坐标内插符的一个比特数据流被输入到熵解码器1505,然后熵解码器1505解码该输入的比特数据流。如果该输入的比特数据流已经以一个出现模式编码,则熵解码器1505在步骤S1720中把每一顶点的符号和其位置索引输出到字典解码器1510。另一方面,如果该输入的比特数据流已经以一个增量模式编码,则熵解码器1505在步骤S1720中把指示符号存在的符号标志和用于该符号的位置索引输出到字典解码器1510。
在步骤S1730中,根据该输入的字典编码模式,字典解码器1510通过解码从该熵解码器1510以出现模式输入的该符号和位置索引或通过解码从熵解码器1510以增量模式输入的符号标志和位置索引而产生差分数据,并把该产生的差分数据输出到反向DPCM处理器1530。
在步骤S1740中,反向DPCM处理器1530根据该输入差分数据的解码的DPCM工作模式,通过对于从字典解码器1510输入的该差分数据执行反向时间DPCM操作、反向空间DPCM操作以及反向时空DPCM操作之一而产生量化的关键值数据,并且把该量化的关键值数据输出到反向量化器1550。
在步骤S1750中,反向量化器1550使用从该关键字值标题解码器1800输入的每一个成份的数据中的最小值和该最大数据范围,反向量化从反向DPCM处理器1530输入的已量化的关键值数据。
在步骤S1760中,反向量化器1550检查该反向量化的关键值数据的矩阵是否已经在该编码处理过程中转换成一个转置矩阵,并且如果该反向量化的关键值数据的矩阵已经转置,则在步骤S1765中反向地转换该转置矩阵。
在步骤S1770中,反向量化器1550输出一个恢复的坐标内插符的关键值数据。
下面参照图16A至17B更详细描述该关键值数据解码器1500的结构和操作。
熵解码器1505首先从一个输入比特数据流中解码一个指示一个DPCM模式的比特数据流,然后解码包括bSelFlag、nKVACodingBit、nQMin和nQMax的数列。
在该编码处理中,首先把bSelFlag和nKVACodingBit分别设置为1和0。如果bSelFlag被解码成1,则熵解码器1505解码nKVACodingBit、nQMin和nQMax。另一方面,如果bSelFlag被解码成0,则熵解码器1505只解码nQMin。
在解码bSelFlag、nKVACodingBit、nQMin和nQMax的数列以后,熵解码器1505解码指示字典编码模式的nDicModeSelect。根据nDicModeSelect的值,将要被解码的比特数据流被分成下面段落将被描述的两个不同种类。
图18A是一个说明坐标内插符的每一顶点和每一个顶点的成分数据的比特数据流的结构的示意图。如图18A所示,如果nDicModeSelect是0,一个比特数据流包括已经在出现模式编码器中编码的符号和位置索引。另一方面,如果nDicModeSelect是1,则一个比特数据流包括已经在增加模式编码器中编码的符号标志和位置索引。
上面已经描述的根据本发明的熵解码器使用以图18B所示的程序代码实现的一个函数decodeSignedQuasiAAC()。在函数encodeSignedQuasiAA()中,使用涉及输入值及其符号的一个上下文对一种自适应算法编码的比特数据流进行编码。具体地说,在函数decodeSignedQuasiAAC()中,使用一个零上下文对跟随一个符号位后的比特解码。熵解码器1505把该解码的数据输出到字典解码器1510。
图16A是根据本发明的字典解码器1510的一个框图,而图17A是字典编码方法的流程图。
如图16A所示,字典解码器1510包括:DPCM模式解码器1512,恢复输入其中的每一顶点的一个DPCM模式;字典模式选择器1514,选择输入每一顶点的字典解码模式;出现模式解码器1516,从字典模式选择器1514接收每一顶点的每一成分的符号和针对该符号的位置索引,并且恢复差分数据;以及增量模式解码器1518,其从字典模式选择器1514接收一个符号标志和用于该符号的位置索引,并且恢复差分数据。
参考图17A,在步骤S1731中,包括该符号、符号标志和位置索引的每一顶点的熵解码的成分数据被输入到DPCM模式解码器1512。
在字典解码的差分数据被输出到反向DPCM处理器1530之前,在步骤S1732中,DPCM模式解码器1512解码一个反向DPCM操作的模式,该反向DPCM操作是在反向DPCM处理器1530中将对于每一顶点的每一成份的差分数据执行的操作。
下面参考图19A描述DPCM模式解码。
除了表示每一顶点的每一成分的DPCM模式的组合的符号数目被固定在27、因此符号表的大小也被固定在27之外,DPCM模式解码与稍后将被描述的增量模式解码相同。
DPCM模式解码器1512接收一个DPCM模式标志并且跟随输入的位置索引把对应于该DPCM模式标志的符号记录在一个数据组中。
例如,如图19A所示,对应于该输入DMCM模式标志的符号是1(TTS),4(TSS),和5(TST+S),而其各自的索引是(010100)、(1010)和(11)。因此,使用符号1和其位置索引(010100)恢复一个数据组(X1X1XX),使用符号4和其位置索引(1010)恢复一个数据组(41X14X),以及使用符号5和其位置索引(11)恢复一个数据组(415145)。
该恢复的数据组(415145)被转换成DPCM模式(TSS)(TTS)(TST+S)(TTS)(TSS)(TST+S)的组合的一个数组。因此,有可能根据恢复的数据组识别已经对于每一顶点的每一成分执行了哪一种DPCM。
DPCM模式解码器1512把每一顶点的每一成分的差分数据连同该解码的DPCM模式信息一起输出到字典模式选择器1514。
在步骤S1734中,字典模式选择器1514根据每一顶点的每一成分的nDicModeSelect的值,把从DPCM模式解码器1512输入的每一顶点的成份数据输出到出现模式解码器1516或增量模式解码器1518。
如果nDicModeSelect是0,则字典模式选择器1514把顶点的成份数据输出到出现模式解码器1516,而如果nDicModeSelect是1,则字典模式选择器1514把顶点的成份数据输出到增量模式解码器1518。
在步骤S1736中,出现模式解码器1516把每一个成分的该符号数据和位置索引恢复成差分数据。
图19B是说明出现模式解码的一个实例的示意图。参考图19B,出现模式解码器1516从字典模式选择器1514接收符号数据并且检验bSoleKV和nTrueOne。
如果bSoleKV表示在差分数据中有多个输入符号并且nTrueOne表示位置索引尚未反向,则出现模式解码器1516通过在一个数据组中在由其各自位置索引指示的各自位置上插入输入符号而恢复差分数据。
例如,出现模式解码器1516顺序地接收符号3、7和-4以及其各自的位置索引(01000101000)、(1010100)和(111)。
出现模式解码器1516在跟随位置索引(01000101000)的一个差分数据组中记录第一符号3。因此,通过把符号3插入在该差分数据组中的对应于该位置索引(01000101000)中1所处在的位置而获得(3X3XXX3X3XXX)。
出现模式解码器1516恢复该随后的符号7。在恢复该符号7的过程中,不考虑该差分数据组中的符号3的位置,使得用于该符号7的位置索引不是(0101000100),而是(1010100)。
出现模式解码器1516在该差分数据组中的没被符号3占用的位置中的第一位置记录该符号7,然后在该差分数据组中对应于位置索引(1010100)中的1处在的位置记录该符号7。因此,在恢复符号7之后,该差分数据组是(3737X73X37XX)。
出现模式解码器1516按照该索引(111)恢复该符号-4,并且因此产生差分数据组是(3737-473-4374-4)。
如果bSoleKV被设置为1,则意味着在差分数据中仅存在一个输入符号,并且没有用于该输入符号的位置索引。因此,出现模式解码器1516把该输入符号记录在一个空白差分数据组中的第一位置,并且执行用于恢复该下一个符号的处理。
在步骤S1736中,增量模式解码器1518把每一个成分的符号标志和位置索引恢复成差分数据。下面参考图19C描述增量模式解码。
增量模式解码器1518从字典模式选择器1514接收指示在差分数据中是否存在符号的符号标志、指示位置索引是否已经反向的nTrueOne以及该位置索引。
增量模式解码器1518根据该输入符号标志解码在该差分数据中包括的符号。像用于增量模式编码的符号表一样,在用于增量模式解码的一个符号表中,按照从具有最低绝对值的符号到具有最大绝对值的符号的次序把符号排列为一列,并且在具有相同绝对值的两个符号之间,具有正值的符号排列在比另外一个符号高的一行中。符号标志的大小是2nKVCodingBit+1-1,其中nKVCodingBit表示在熵解码器1505中解码的量化比特的数量。因此,如果一个符号标志是(0011001),则增量模式解码器1518解码存在于该差分数据中作为符号存在的-1,2,和-3。
符号标志之后输入的位置索引分别是(101000101000),(00101011),和(1111)并且分别对应于符号-1、2和3。
增量模式解码器1518在差分数据组中对应于该位置索引(101000101000)中1处在的位置的位置记录符号-1,使得产生的数据组是(-1X-1XXX-1X-1XXX)。
随后,增量模式解码器1518通过在该差分数据组中的对应于在该位置索引(00101011)中1处在的位置的位置中记录2而恢复该符号2。在恢复该符号2的过程中,不考虑该差分数据组中的第一个符号-1的位置,使得该产生的差分数据组是(-1X-1X2X-12-1X22)。
增量模式解码器1518通过在该差分数据组中的对应于在位置索引(1111)中的1处在的位置的位置记录-3而恢复该符号-3,使得产生的差分数据组是(-1-3-1-32-3-1-322)。
在步骤S1739中,出现模式解码器1516和增量模式解码器1518恢复每一顶点的每一成分的差分数据,并且把恢复的差分数据输出到反向DPCM处理器1530。
图16B是根据本发明的反向DPCM处理器1530的一个框图,而图17B是一个反向DPCM操作的流程图。
参考图16B,根据本发明的反向DPCM处理器1530包括:反向时间DPCM操作器1542,对于输入的差分数据执行一个反向时间DPCM操作和一个反向循环量化操作,然后输出坐标内插符的量化的关键值数据;反向空间DPCM操作器1544,对于输入的差分数据执行一个反向空间DPCM操作和一个反向循环量化操作,随后输出该量化的关键值数据;反向时空DPCM操作器1546,对于输入的差分数据执行一个反向时空DPCM操作和一个反向循环量化操作,随后输出该量化的关键值数据;以及反向DPCM模式选择器1535,把输入其中的差分数据输出到反向时间DPCM操作器1542、反向空间DPCM操作器1544和反向时空DPCM操作器1546之一。
参考图17B,在步骤S1742中,反向DPCM模式选择器1535将根据在DPCM模式解码器1512中恢复的每一顶点的每一成分的DPCM操作模式而确定将对于输入其中的差分数据执行的一个反向DPCM操作,并且按照该反向DPCM操作模式而输出每一顶点的每一成分的该输入的差分数据。
DPCM操作器1542、1542和1546的每一个同时对于输入其中的差分数据执行一个反向DPCM操作和一个反向循环量化操作。
在步骤S1744中,反向时间DPCM操作器1542遵循方程式(30)对于该输入的差分数据执行一个反向时间DPCM操作,在步骤S1746中,反向空间DPCM操作器1544遵循方程式(31)对于输入的差分数据执行一个反向空间DPCM操作,在步骤S1748中,反向时空DPCM操作器1546遵循方程式(32)对于该输入的差分数据执行一个反向时空DPCM操作。 V ~ i , j = D i , j + V ~ i - 1 , j . . . . . . . ( 30 ) V ~ i , j = D i , j + V ~ i , Ref . . . . . . ( 31 ) V ~ i , j = D i , j + { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } . . . ( 32 )
在方程式(30)至(32)中,
Figure A0214002600504
表示在第i关键帧中的第j个顶点的量化关键值数据,Di,j表示在该第i关键帧中的该第j个顶点的差分数据,而Ref表示一个参考顶点。
在方程式(31)和(32)中,如果 { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } 小于每一个成份的量化关键值数据中的最小值,则使用该最小值而不使用 { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } 。如果
Figure A0214002600509
{ V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } 大于在每一成分的量化关键值数据当中的最大值,则使用该最大值而不使用 { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } .
DPCM操作器1542、1544和1546的每一个都使用方程式(33)执行一个反向DPCM操作并且同时执行一个反向循环量化操作,以便扩展已经在该编码处理过程中降低的差分数据的范围。 InverseCircularQuantization ( X i ) : . . . . . . . . . . . ( 33 ) X &prime; i = X ~ i - ( nQMax - nQMin + 1 ) . . . . . . ( if X ~ i &GreaterEqual; 0 ) X &prime; i = X ~ i + ( nQMax - nQMin + 1 ) . . . . ( otherwise ) X ^ i = X ^ i - 1 + X ~ i . . . ( if nQMin &le; X ^ i - 1 + X ~ i &le; nQMax ) X ^ i = X ^ i - 1 + X &prime; i . . . . ( if nQMin &le; X ^ i - 1 + X &prime; i &le; nQMax )
在方程式(33)中, 是与Di,j相同的输入值,
Figure A0214002600517
是与 { V ~ i - 1 , j + ( V ~ i , Ref - V ~ i - 1 , Ref ) } 一样的一个在前反向循环量化值。nQMax和nQMin分别表示在DPCMed差分数据中的最大值和最小值。
在步骤SS1749中,反向DPCM处理器1530把已经反向DPCM的和反向循环量化的每一顶点的每一成分的关键值数据输出到反向量化器1550。
参考图15B,反向量化器1550遵循方程式(4),把在从该关键字值标题解码器1800输入的在输入成份数据中的最小值fMin_X、fMin_Y和fMin_Z以及最大范围值fMax转换成二进制数,并且通过把fMin_X、fMin_Y、fMin_Z和fMax替代到方程式(34)中而反向量化从反向DPCM处理器1530输入的量化关键值数据。 V ^ i , j , x = fMin _ X + V ~ i , j , x 2 nKVQBits - 1 &times; fMax . . . . ( 34 ) V ^ i , j , y = fMin _ Y + V ~ i , j , y 2 nKVQBits - 1 &times; fMax V ^ i , j , z = fMin _ Z + V ~ i , j , z 2 nKVQBits - 1 &times; fMax
方程式(34)中,nKVQBits表示用于反向量化的一个量化比特的大小。
反向量化器1550必须以表2示出的矩阵的形式输出每一顶点的每一成分的反向量化的关键值数据。为了实现此目的,在步骤S1760中,反向量化器1550在输出该反向量化的关键值数据之前检验该反向量化的关键值数据的模式是否为一个转置模式。如果该反向量化的关键值数据的模式是一个转置模式,则在步骤S1765中,反向量化器1550通过反向转换该转置矩阵而产生并且输出坐标内插符的解码的关键值数据。
图20A至20L是示出SDL程序代码的实例的图表,通过该SDL程序代码,实现根据本发明优选实施例的用于解码坐标内插符的关键字数据和关键值数据的装置。
图20A是说明一个类CompressedCoordinateInterpolator的示意图,它是用于读出坐标内插符的压缩比特数据流的最高类。在图20A中,KeyHeader和Key是用于从比特数据流读出关键信息的类,对应于常规CoordinateInterpolator节点中的关键字段数据。CoordIKeyValueHeader和CoordIKeyValue是用于读出对应于在常规CoordinateInterpolator结点中的keyValue字段数据的keyValue信息的类。函数qf_start()被用于在读出该比特数据流的AAC-编码的部分以前初始化一个算法解码器。
图20B是说明用于解码一个关键字标题的类的示意图,它是用于一个解码处理所需要的信息。
该关键字标题中的主信息是关键字的数目、量化比特、帧内关键字数据、用于进行解码的DND标题和实际比特。nKeyQBit是用于该反向量化以便恢复该浮点关键字值的量化比特。nNumKeyCodingBit表示关键字数据数的nNumberOfKey的比特大小,它表示关键字数据的数目。nKeyDigit表示在该原始关键字数据中的最大有效位,并且能被用于舍入该解码的值。当在该标题中包括有关线性关键字子区域的信息时,bIsLinearKeySubRegion标志设置为1。在此情况中,能够使用跟随该bIsLinearKeySubRegion标志的解码的标题信息计算在整个关键字范围之内的某一子区域中包括的关键字。bRangeFlag指示关键字数据的范围是否从0到1。如果该范围不是0到1,则从KeyMinMax类解码最小值和最大值。KeyMinMax类重建用于反向量化的最小值和最大值。每一个值能够被分成尾数和指数。nBitSize是若干关键字标题信息数据的比特量,它们是nQIntraKey、nKeyShift和nKeyMax。nQIntraKey是第一量化的帧内数据的幅值。它连同表示nQIntraKey的符号的nQIntraKeySign结合在一起。它被用作对该量化的关键字数据的剩余部分进行恢复的一个基础。对于在该内插符压缩中的所有的符号位,值0表示一个正号而1表示一个负号。nKDPCMOrder是DPCM的阶数减1。该阶数的范围可以从1到3。量化帧内数据的数目与DPCM的阶数相同。
nKeyShift,连同符号位nKeyShiftSign一起,是表明在该关键字数据解码器中移位的量的整数。如果该bShiftFlag被设置为真,则解码这两个值。nDNDOrder是DND(分割-与-分割)的阶数。DND在该关键字数据解码器中描述。如果nDNDOrder的值是7,则bNoDND被解码。此布尔值表示是否将进行反向DND处理。nKeyMax是在连续反向DND处理每一个过程中使用的最大值或最小值。nKeyCodingBit是用于编码关键字数据的比特。bSignedAACFlag表示哪个解码方法被用于AAC解码。如果该值是0,则执行无符号AAC解码。否则,执行有符号的AAC解码。bKeyInvertDownFlag是表示是否使用nKeyInvertDown的布尔值。nKeyInvertDown是整数值,使得所有的量化的高于该整数值的关键字数据被反向到从-1和低于-1开始的负值。如果nKeyInvertDown是-1,则不执行反向。图20C是说明一个类LinearKey的示意图。图20C中,nNumLinearKeyCodingBit是表示为了编码线性可预测关键字的一个预定的数量的所需比特数目的一个值。nNumberOfLinearKey是表示线性可预测关键字数目的一个值。
图20D是说明一个类KeyMinMax的示意图。图20D中,bMinKeyDigitSame是一个标志,表示全部关键字的最高有效位的数目(nKeyDigit)和在关键字当中的一个最小值的最高有效位的数量是否相同。nMinKeyDigit是表示在该关键字当中的该最小值的最高有效位数目的一个值。nMinKeyMantissaSign是表示nMinKeyMantissa的符号的一个值。
nMinKeyMantissa是表示在关键字当中的最小值的尾数的一个值。nMinKeyExponentSign是表示nMinKeyExponent的一个符号的一个值。
nMinKeyExponent是表示在关键字当中的最小值的指数的一个值。fKeyMin是表示在关键字当中的最小值的一个值。bMaxKeyDigitSame是一个标志,指示全部关键字的最高有效位的数目nKeyDigit和在关键字当中的一个最大值的最高有效位的数目是否相同。nMaxkeyDigit是表示在该关键字当中的该最大值的最高有效位数目的一个值。nMinKeyMantissaSign是表示nMaxKeyMantissa的符号的一个值。nMaxKeyMantissa是表示在该关键字当中最大值的尾数的一个值。
bSameExponent是一个标志,指示在关键字当中的最大值的指数是否nMinKeyExponent相同。nMaxKeyExponentSign是表示nMaxKeyExponent的符号的一个值。nMaxKeyExponent是表示在关键字当中的最大值的指数的一个值。FKeyMax是表示在关键字当中的最大值的一个值。
图20E是说明一个类Key的示意图。在图20E中,nQKey是从一个比特数据流解码的量化关键字数据的一个数组。KeyContext是用于读取nQKey的一个幅值的一个上下文。KeySignContext是用于读取nQKey的一个符号的一个上下文。
DecodeUnsignedAAC是一个函数,利用下面将描述的一个给出上下文执行自适应算术编码的一个无符号解码过程。DecodeSignedAAC是一个函数,利用下面将描述的一个给出上下文执行自适应算术编码的一个有符号解码过程。
图20F是说明一个类CoordIKeyValueHeader的示意图。图20F中,在解码关键字标题数据之后,解码关键字值标题数据。一个关键字值标题包括:顶点的数量、用于关键值数据的量化参数以及在将被用于量化的关键值数据当中的最小值和最大值。bTranspose是指示当前模式是否为一个转置模式或一个顶点模式的标志。如果bTranspose是1,则选择一个转置模式。否则,选择一个顶点模式。nKVQBit表示为了用于恢复浮点数字的反向量化所需的量化比特。nCoordQBit表示nNumberOfCoord的比特大小,nNumberOfCoord表示顶点数目。nKVDigit在一个反向量化之后使用,表示关键值数据的有效位的最大数目。一个类KeyValueMinMax恢复在关键值数据的每一成份的量化值和一个将用于反向量化最大关键值数据范围中的最小值。上述的值的每一个能够被分成各自的尾数和指数。标题信息的其它部分包括在该关键值数据的每一成分的量化值中的最大和最小值中的一个最大值和一个最小值。具体地说,nXQMinOfMax表示在每一个顶点的x成份的量化值中的最大值当中的一个最小值。
图20G和20H是表示程序代码的实例的示意图,借助该程序代码实现根据本发明优选实施例的一个DPCM模式解码器。参考图20G和20H,nDPCMMode是表示每一顶点的每一个成份x、y和z的一个DPCM模式的一个整数数组。nDPCMMode可以具有值:1(一个时间DPCM操作)、2(一个空间DPCM操作)或3(一个时空操作)。
bSelFlag是用于每一顶点的每一成分的选择标志。只有针对bSelFlag被设置为‘真’的具有成分的顶点才使用字典编码器340编码。selectionFlagContext是用于读出bSelFlag的一个上下文。
nKVACodingBit是一个整数数组,表示为了编码每一顶点的每一成分所需的比特。aqpXContext是用于读出nKVACodingBit的一个上下文。
nRefVertexis是表示用于全部顶点的一个参考顶点的索引的整数数组。refContext是用于读出nRefVertex的一个上下文。nQMin是一个整数数组,表示在每一顶点的每一成分的量化值中的最小值。qMinContext是用于读出nQMin的一个上下文。qMinSignContext是用于读取nQMin的符号的一个上下文。
nQMax是一个整数数组,表示在每一顶点的每一成分的量化值中的最大值。qMaxContext是用于读出nQMax的一个上下文。qMaxSignContext是用于读取nQMax的符号的一个上下文。
图20I是一个类CoordIDPCMMode的示意图,用于根据本发明优选实施例而解码一个DPCM模式。bAddressOfDPCMMode表示在DPCM字典表格中的DPCM字典符号的用法,其中每一个包括用于每一成份的DPCM模式。存在DPCM模式的三个类型:T、S和T+S,并且一个顶点包括三个成分。因此如上面表3所示,存在27个字典符号指示所有可能的DPCM模式的组合。dpcmModeDicAddressContext是用于读出bAddressOfDPCMMode的一个上下文。
bDPCMIndex指示已经用于每一个顶点的一个DPCM符号。dpcmModeDIcIndexContext是用于读出dpcmModeDicIndexContext的一个上下文。
图20J是一个类CoordIKeyValueDic的示意图,该类用于根据本发明优选实施例而解码一个字典编码模式。图20J中,nDicModeSelect指示在一个字典编码处理过程中已经使用了哪个编码模式。当nDicModeSelect设置为1时,意味着该编码模式是一个增量模式。另一方面,当nDicModeSelect是0,则意味着该字典编码模式是一个出现模式。
图20K是表示一个类CoordIIncrementalMode的示意图,通过该类实现根据本发明优选实施例的一个增量模式解码方法。图20K中,bAddress表示量化关键值数据的递增字典符号的用法。增量字典表格中的符号数目是2(nKVCodingBit+1)-1。dicAddressContext是用于读出bAddress的一个上下文。
nTrueOne是指示索引数据是否已经反向的一个值。如果nTrueOne设置为1,则在一个位置索引中的‘1’值被编译为指示一个符号的位置的真值。如果nTrueOne设置为0,则在该位置索引中的‘0’值被编译为指示该符号的位置的真值。
bAddrIndex指示哪个增量字典符号已经被用于每一顶点的每一成分。dicIndexContext是用于读出bAddrIndex的一个上下文。
图20L是表示一个类CoordIOccurrenceMode的示意图,通过该类实现根据本发明优选实施例的一个出现模式解码方法。图20L中,nQKV是包括对应于量化关键值数据的发生字典符号的一个整数数组。kvXContext、kvYContext和kvZContext是用于读出nQKV的上下文。kvSignContext是用于读取nQKV的一个符号的一个上下文。
bSoleKV表示一个符号是否仅出现一次。当一个预定符号仅出现一次时,bSoleKV设置为1。dicSoleKVContext是用于读出bSoleKV的一个上下文。bDicIndex指示哪个发生字典符号已经被用于每一顶点的每一成分。dicIndexContext是用于读出bDicIndex的一个上下文。
本发明能够实现为写在计算机可读取记录介质上的计算机可读代码。其中,计算机可读记录介质包括能够由计算机系统读出的任何种类的记录介质。例如,该计算机可读记录介质可以包括ROM、RAM、CD-ROM、磁带、软盘、光数据存储器、载波(通过互联网络发送)等。该计算机可读记录介质能够经过网络连接与计算机系统分散配置,并且一个计算机能够以分散的方法读出该记录介质。
由于根据本发明的用于编码坐标内插符的装置包括一个关键字数据编码器,该关键字数据编码器利用关键字数据单调增加的事实对关键字数据进行编码,所以该装置能够以高效率编码动画关键字数据。此外,由于根据本发明的用于编码坐标内插符的装置包括一个关键值数据编码器,其考虑了在关键值数据之间的时间相关性以及在关键值数据之间的空间相关而编码关键值数据,所以该装置能够以少量的数据来恢复高品质的动画。
虽然已经参照几个优选实施例具体地展示和描述了本发明,但是本领域技术人员将理解,在不背离由所附的权利要求书定义的本发明的精神和范围的条件下可以进行各种形式和细节上的改变。

Claims (22)

1.一种用于编码坐标内插符的装置,所述坐标内插符包括:关键字数据,指示在一个时间轴上的每一关键帧的位置;以及关键值数据,使用每一个都由x、y和z成分组成的顶点的坐标表示在每一关键帧中的目标的每一顶点的位置,
所述装置包括:
一个关键字数据编码器,其包括:
    一个第一量化器,使用预定的量化比特量化坐标内插符的关键字数据;
    一个第一DPCM处理器,产生所述量化的关键字数据的差分数据;
    一个DND处理器,根据在差分数据与该差分数据当中的最大值和最小值之间的一种关系对所述差分数据执行一个DND操作,和
    一个第一熵编码器,熵编码从所述DND处理器输入的该差分数据,
一个关键值数据编码器,其包括:
    一个第二量化器,使用预定的量化比特量化坐标内插符的关键值数据;
    一个第二DPCM处理器,通过对量化关键值数据的每一顶点的成分执行一个预定的DPCM操作,产生基于量化关键值数据的每一顶点坐标的时间变化的差分数据和基于量化关键值数据的每一顶点坐标的空间变化的差分数据;
    一个字典编码器,产生一些符号以及指示这些符号的位置的索引,所述符号表示每一顶点的DPCM的差分数据和已经对于该差分数据执行的一个DPCM操作模式;和
    一个第二熵编码器,熵编码所述符号和所述索引,以及
一个标题编码器,对为了解码由所述关键字数据编码器和所述关键值数据编码器所编码的一个比特数据流所需要的信息进行编码。
2.根据权利要求1所述的装置,其中,所述关键字数据编码器还包括一个线性关键字编码器,所述线性关键字编码器在输入其中的关键字数据当中识别一个关键字数据线性增加的区域,并且编码该区域。
3.根据权利要求1所述的装置,其中,所述关键字数据编码器还包括:
一个移位器,从第一个DPCM处理器输入的差分数据当中获得具有最高频率的一个差分数据(模式)并且从所述差分数据中减去该模式;和
一个折叠处理器,把所述移位的差分数据转换成正数或负数,并且该DND处理器根据进行编码所需的比特数量从所述移位器输入的差分数据和从所述折叠处理器输入的差分数据中选择之一,DND该差分数据并输出该选择的差分数据。
4.根据权利要求1所述的装置,其中,所述第二DPCM处理器包括:
一个DPCM操作器,对于量化的坐标内插符的每一顶点的每一成分执行一个时间DPCM操作,以便产生在一个关键帧中的顶点和另一关键帧中的顶点之间的第一差分数据;对于该量化的坐标内插符的每一顶点的每一成分执行一个空间DPCM操作,以便产生在同一个关键帧中的顶点之间的第二差分数据;并且对于该量化的坐标内插符的每一顶点的每一成分执行一个时空DPCM操作,以便产生在顶点和关键帧之间的第三差分数据;
一个循环量化器,对于从所述DPCM操作器输入的所述第一至第三差分数据执行一个循环量化操作,以便降低其范围;和
一个DPCM模式选择器,根据为了进行编码所需要的比特数目选择已经循环量化的所述第一至第三差分数据之一,并且输出所选择的差分数据。
5.根据权利要求1所述的装置,其中,所述字典编码器包括:
一个DPCM模式编码器,产生一些符号以及指示这些符号的位置的索引,所述符号表示已经对于每一顶点的每一成分的数据执行的DPCM模式的组合;和
一个出现模式编码器,产生一些对应于每一顶点的每一成分的输入差分数据的符号以及指示这些符号的位置的索引。
6.根据权利要求5所述的装置,其中所述字典编码器还包括:
一个增量模式编码器,产生指示在每一顶点的每一成分的输入差分数据中是否存在预定的符号的一个符号标志以及指示这些符号的位置的位置索引;和
一个表格大小计算器,计算由对应于所述输入差分数据的符号构成的第一符号表的大小以及所述符号标志的大小,并且根据该第一符号表和该符号标志的大小,把从所述DPCM模式编码器输入的每一顶点的每一成分的输入差分数据输出到所述出现模式编码器或所述增量模式编码器。
7.一种用于解码一个比特数据流的装置,所述比特数据流中编码有坐标内插符,该坐标内插符包括指示在一个时间轴上每一关键帧的位置的关键字数据和使用每一个都由x、y和z成分组成的顶点坐标表示在每一关键帧中的一个目标的每一顶点的位置的关键值数据,该装置包括:
一个关键字数据解码器,其包括:
    一个标题解码器,解码为了解码来自输入比特数据流的关键字数据和关键值数据所需要的标题信息并且输出该解码的标题信息;
    一个第一熵解码器,熵解码所述输入的比特数据流并且输出解码的关键字数据的差分数据;
    一个反向DND处理器,根据由所述标题解码器从所述输入比特数据流读出的DND阶数,通过对于所述差分数据执行一个反向DND操作而扩展该熵解码的关键字数据的差分数据的范围;
    一个第一反向DPCM处理器,对于从所述反向DND处理器输入的差分数据,执行与从所述标题解码器输入的DPCM的阶数一样多次的反向DPCM操作,并且输出量化的关键字数据;和
    一个第一反向量化器,反向量化所述量化的关键字数据并且输出解码的关键字数据,以及
一个关键值数据解码器,其包括:
    一个第二熵解码器,通过熵解码输入的比特数据流产生将要被字典解码的数据,包括关键值数据的差分数据的符号、指示该符号的位置的索引和一个DPCM操作模式;
    一个字典解码器,根据从所述标题解码器输入的一个字典解码模式信息,通过执行一个字典解码操作产生关键值数据的差分数据;
    一个第二反向DPCM处理器,根据所述DPCM操作模式,通过恢复从所述字典解码器输入的关键帧之间的差分数据和顶点之间的差分数据产生量化数据;和
    一个第二反向量化器,通过反向量化所述量化的数据产生恢复的关键值数据。
8.根据权利要求7所述的装置,其中,所述关键字数据解码器还包括:
一个反向折叠处理器,根据从所述标题解码器输入的DND的阶数,对于从所述反向DND处理器输入的差分数据执行一个反向折叠操作,以便把该差分数据分割成正数和负数,或者旁路该差分数据;和
一个反向移位器,通过把从所述标题解码器输入的一个预定的模式相加到所述差分数据而变换从所述反向DND处理器或所述反向折叠处理器输入的差分数据的范围,并且所述第一DPCM处理器恢复从所述反向移位器输入的差分数据并且输出量化的关键字数据。
9.根据权利要求7所述的装置,其中所述第二DPCM处理器包括:
一个反向时间DPCM操作器,对于根据时间的推移而改变的每一顶点的差分数据执行一个反向DPCM操作;
一个反向空间DPCM操作器,对于在每一个顶点和对应于一个预定时间瞬时的顶点的一个参考顶点之间的差分数据执行一个反向DPCM操作;以及
一个反向DPCM模式选择器,根据所述DPCM操作模式把输入其中的差分数据输出到所述反向时间DPCM操作器或所述反向空间DPCM操作器。
10.一种其中编码有坐标内插符的比特数据流,所述坐标内插符包括指示在一个时间轴上每一关键帧的位置的关键字数据和使用每一个都由x、y和z成分组成的顶点坐标表示在每一关键帧中的一个目标的每一顶点的位置的关键值数据,所述比特数据流包括:
关键字数据编码/解码信息,其中编码有关键字数据和为了解码该关键字数据所需要的信息;和
关键值数据编码/解码信息,其中编码有关键值数据和为了解码该关键值数据所需要的信息,
其中,所述关键字数据编码/解码信息包括:
反向DND操作信息,包括反向DND的阶数,该阶数指示将要对于由熵解码所述比特数据流产生的差分数据执行的反向DND的预定周期数,所述反向DND的目的是扩展该差分数据以及使用在反向DND操作的每一周期中的差分数据当中的最大和最小值的范围;
第一反向DPCM操作信息,包括将要对于该反向DND的差分数据执行的反向DPCM操作的阶数,所述反向DPCM的目的是把该反向DND的差分数据转换成被用于反向DPCM操作的每一周期的关键字数据和帧内关键字数据;和
使用在反向量化中的第一反向量化信息,以便通过反向量化该量化的关键字数据而产生恢复的关键字数据,以及
所述关键值数据编码/解码信息包括:
字典解码信息,包括关于表示被字典编码的关键值数据的差分数据的符号的信息(该差分数据是从所述比特数据流被熵解码的),指示所述符号的位置第一位置索引,和指示将要对于该第一位置索引执行的一个字典解码方法的字典解码模式;
第二反向DPCM操作信息,包括指示符号位置的第二位置索引,其被使用在把每一顶点的成分的字典解码的差分数据转换成量化关键值数据的一个反向DPCM操作中并且对应于反向DPCM操作模式的组合;以及
使用在反向量化中的第二反向量化信息,以便通过反向量化该量化的关键值数据而产生恢复的关键值数据。
11.根据权利要求10所述的比特数据流,其中,所述反向DND操作信息还包括一个标志,表示是否将对于受到一个反向DND操作的差分数据执行一个下移位操作。
12.根据权利要求10所述的比特数据流,其中,所述第一反向量化信息包括,当反向量化该量化的关键字数据时使用的一个反向量化比特大小以及在量化关键字数据中的最大和最小值。
13.根据权利要求12所述的比特数据流,其中,在所述量化关键字数据中的最大和最小值被调整,以便最小化该量化关键字数据的量化误差。
14.根据权利要求10所述的比特数据流,其中,所述关键字数据编码/解码信息还包括,用于解码包括在该比特数据流中的一个线性关键字区域的线性关键字解码信息,并且该线性关键字解码信息包括一个指示在该关键字数据中是否存在其中关键字数据线性增加的线性关键字区域标志、在该线性关键字区域中包括的关键字数据的数目以及该线性关键字区域的开始和结束关键字数据。
15.根据权利要求14所述的比特数据流,其中,所述线性关键字区域的开始和结束关键字数据的每一个被编码成十进制的一个尾数和一个指数。
16.根据权利要求10所述的比特数据流,其中,当该字典解码模式是一个出现模式时,所述字典解码信息包括对应于包括在该差分数据中的差分值的符号和指示这些符号的位置的位置索引;并且当该字典解码模式是一个增量模式时,所述字典解码信息包括表示包括在该差分数据中的该差分值是否存在于一个预定的符号表中的一个符号标志以及表示对应于该符号标志的符号位置的位置索引。
17.根据权利要求10所述的比特数据流,其中,所述第二反向DPCM操作信息还包括一个反向DPCM模式标志,指示对应于将要对于每一顶点的差分数据执行的一个反向DPCM操作的一个符号是否存在于包括在示出将要对于该顶点的每一成分执行的反向DPCM操作模式的组合的一个表格中的所有的符号当中。
18.根据权利要求17所述的比特数据流,其中,所述反向DPCM操作模式的组合是将对于差分数据的每一个成份执行的一个反向时间DPCM操作、一个反向空间DPCM操作和一个反向时空DPCM操作的任意组合。
19.根据权利要求18所述的比特数据流,其中,该第二反向DPCM操作信息还包括一个参考顶点标志,当将要对于差分数据执行的该反向DPCM操作由该反向DPCM模式标志确定为是一个反向空间DPCM操作或一个反向时空DPCM操作时,该参考顶点标志表示对应于受到一个反向空间DPCM操作或一个反向时空DPCM操作的顶点的一个参考顶点。
20.根据权利要求10所述的比特数据流,其中,所述第二反向量化信息包括:表示受到一个反向量化操作的关键值数据的顶点的一个顶点选择标志,由该顶点选择标志选择的该顶点的每一成分的关键值数据当中的最小值和该顶点的每一成分的关键值数据的数据范围中的最大范围,以及用于反向量化该选择的顶点的关键值数据的一个反向量化比特大小。
21.根据权利要求20所述的比特数据流,其中,所述第二反向量化信息还包括:将要反向量化的关键值数据中包括的顶点数目,该关键值数据的有效位数的最大数目,在每一顶点的每一成分的数据当中的最大值中的一个最大值和一个最小值,以及在每一顶点的每一成分的数据里最小值中的一个最大值和一个最小值。
22.根据权利要求10所述的比特数据流,其中,所述关键值数据编码/解码信息还包括一个标志,指示所述关键值数据的编码模式是否为一个转置模式或一个顶点模式。
CNB021400261A 2001-11-27 2002-11-27 编解码坐标内插符关键字数据和关键值数据的装置 Expired - Fee Related CN1294540C (zh)

Applications Claiming Priority (11)

Application Number Priority Date Filing Date Title
US33313001P 2001-11-27 2001-11-27
US60/333,130 2001-11-27
US33454101P 2001-12-03 2001-12-03
US60/334,541 2001-12-03
US34210101P 2001-12-26 2001-12-26
US60/342,101 2001-12-26
US36959702P 2002-04-04 2002-04-04
US60/369,597 2002-04-04
KR64008/02 2002-10-19
KR64008/2002 2002-10-19
KR10-2002-0073044A KR100499135B1 (ko) 2001-11-27 2002-11-22 회전 인터폴레이터 부호화/복호화 방법 및 장치

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN200610110089.2A Division CN1941910B (zh) 2001-11-27 2002-11-27 编码坐标内插符、解码比特数据流的装置及方法

Publications (2)

Publication Number Publication Date
CN1438613A true CN1438613A (zh) 2003-08-27
CN1294540C CN1294540C (zh) 2007-01-10

Family

ID=27532390

Family Applications (3)

Application Number Title Priority Date Filing Date
CNB021542430A Expired - Fee Related CN1187716C (zh) 2001-11-27 2002-11-27 用于编码和解码关键字数据的装置和方法
CNB021400261A Expired - Fee Related CN1294540C (zh) 2001-11-27 2002-11-27 编解码坐标内插符关键字数据和关键值数据的装置
CNB021611157A Expired - Fee Related CN1277239C (zh) 2001-11-27 2002-11-27 用于对定向内插器进行编码和译码的方法和装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CNB021542430A Expired - Fee Related CN1187716C (zh) 2001-11-27 2002-11-27 用于编码和解码关键字数据的装置和方法

Family Applications After (1)

Application Number Title Priority Date Filing Date
CNB021611157A Expired - Fee Related CN1277239C (zh) 2001-11-27 2002-11-27 用于对定向内插器进行编码和译码的方法和装置

Country Status (6)

Country Link
US (1) US7446771B2 (zh)
EP (2) EP1320264B1 (zh)
JP (1) JP3905834B2 (zh)
KR (8) KR100480787B1 (zh)
CN (3) CN1187716C (zh)
ES (1) ES2381777T3 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101283253B (zh) * 2005-10-05 2012-05-30 Lg电子株式会社 信号处理的方法和装置以及编码和解码方法及其装置
CN107071453A (zh) * 2011-06-28 2017-08-18 日本电气株式会社 对视频量化参数编码的方法和对视频量化参数解码的方法

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1322119B1 (en) * 2001-11-27 2013-01-09 Samsung Electronics Co., Ltd. Apparatus for encoding and decoding key data and keyvalue data of coordinate interpolator and recording medium
DE102004049156B4 (de) 2004-10-08 2006-07-13 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Codierschema für einen ein zeitlich veränderliches Graphikmodell darstellenden Datenstrom
US8090586B2 (en) 2005-05-26 2012-01-03 Lg Electronics Inc. Method and apparatus for embedding spatial information and reproducing embedded signal for an audio signal
US8214221B2 (en) 2005-06-30 2012-07-03 Lg Electronics Inc. Method and apparatus for decoding an audio signal and identifying information included in the audio signal
JP2009500657A (ja) 2005-06-30 2009-01-08 エルジー エレクトロニクス インコーポレイティド オーディオ信号をエンコーディング及びデコーディングするための装置とその方法
CA2613731C (en) 2005-06-30 2012-09-18 Lg Electronics Inc. Apparatus for encoding and decoding audio signal and method thereof
US8577483B2 (en) 2005-08-30 2013-11-05 Lg Electronics, Inc. Method for decoding an audio signal
JP4568363B2 (ja) 2005-08-30 2010-10-27 エルジー エレクトロニクス インコーポレイティド オーディオ信号デコーディング方法及びその装置
US7761303B2 (en) 2005-08-30 2010-07-20 Lg Electronics Inc. Slot position coding of TTT syntax of spatial audio coding application
US7788107B2 (en) 2005-08-30 2010-08-31 Lg Electronics Inc. Method for decoding an audio signal
AU2006291689B2 (en) * 2005-09-14 2010-11-25 Lg Electronics Inc. Method and apparatus for decoding an audio signal
KR100878833B1 (ko) * 2005-10-05 2009-01-14 엘지전자 주식회사 신호 처리 방법 및 이의 장치, 그리고 인코딩 및 디코딩방법 및 이의 장치
US7751485B2 (en) 2005-10-05 2010-07-06 Lg Electronics Inc. Signal processing using pilot based coding
US7696907B2 (en) 2005-10-05 2010-04-13 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
EP1946302A4 (en) 2005-10-05 2009-08-19 Lg Electronics Inc SIGNAL PROCESSING METHOD AND APPARATUS, ENCODING AND DECODING METHOD, AND ASSOCIATED APPARATUS
US7672379B2 (en) 2005-10-05 2010-03-02 Lg Electronics Inc. Audio signal processing, encoding, and decoding
US7646319B2 (en) 2005-10-05 2010-01-12 Lg Electronics Inc. Method and apparatus for signal processing and encoding and decoding method, and apparatus therefor
US7761289B2 (en) 2005-10-24 2010-07-20 Lg Electronics Inc. Removing time delays in signal paths
US7752053B2 (en) 2006-01-13 2010-07-06 Lg Electronics Inc. Audio signal processing using pilot based coding
WO2007114611A1 (en) * 2006-03-30 2007-10-11 Lg Electronics Inc. A method and apparatus for decoding/encoding a video signal
US20100091845A1 (en) * 2006-03-30 2010-04-15 Byeong Moon Jeon Method and apparatus for decoding/encoding a video signal
TW201028018A (en) * 2009-01-07 2010-07-16 Ind Tech Res Inst Encoder, decoder, encoding method and decoding method
US9245529B2 (en) * 2009-06-18 2016-01-26 Texas Instruments Incorporated Adaptive encoding of a digital signal with one or more missing values
US9792017B1 (en) 2011-07-12 2017-10-17 Domo, Inc. Automatic creation of drill paths
US10001898B1 (en) 2011-07-12 2018-06-19 Domo, Inc. Automated provisioning of relational information for a summary data visualization
US9202297B1 (en) * 2011-07-12 2015-12-01 Domo, Inc. Dynamic expansion of data visualizations
US9357214B2 (en) * 2012-12-07 2016-05-31 Qualcomm Incorporated Advanced merge/skip mode and advanced motion vector prediction (AMVP) mode for 3D video
CN103268067B (zh) * 2013-05-03 2016-02-10 哈尔滨工业大学 一种基于拟四元数与拟四元数运动学方程的卫星指向跟踪控制方法
SE538512C2 (sv) * 2014-11-26 2016-08-30 Kelicomp Ab Improved compression and encryption of a file
SE544304C2 (en) * 2015-04-17 2022-03-29 URAEUS Communication Systems AB Improved compression and encryption of a file
US10841595B2 (en) * 2018-11-27 2020-11-17 Semiconductor Components Industries, Llc Methods and apparatus for transform coefficient encoding and decoding
CN110688092B (zh) * 2019-09-04 2021-08-17 湖南遥昇通信技术有限公司 一种随机数生成方法、装置、设备及存储介质
US20200327454A1 (en) * 2020-06-26 2020-10-15 Intel Corporation Secured deployment of machine learning models

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4125861A (en) * 1977-08-18 1978-11-14 Bell Telephone Laboratories, Incorporated Video signal encoding
US4797836A (en) * 1986-11-19 1989-01-10 The Grass Valley Group, Inc. Image orientation and animation using quaternions
JP3048578B2 (ja) * 1988-11-17 2000-06-05 キヤノン株式会社 符号化及び復号化装置
AU9015891A (en) * 1990-11-30 1992-06-25 Cambridge Animation Systems Limited Animation
JPH0583700A (ja) * 1991-09-18 1993-04-02 Nec Corp Dpcm予測符号化回路
KR960013062A (ko) * 1994-09-30 1996-04-20 김광호 양자화 계수값 전송장치
JP3305140B2 (ja) * 1994-12-28 2002-07-22 キヤノン株式会社 符号化装置及び方法
KR0171118B1 (ko) * 1995-03-20 1999-03-20 배순훈 비디오신호 부호화 장치
JP3649469B2 (ja) * 1995-05-12 2005-05-18 株式会社ソニー・コンピュータエンタテインメント アニメーションデータの作成方法および作成装置
US5757668A (en) * 1995-05-24 1998-05-26 Motorola Inc. Device, method and digital video encoder of complexity scalable block-matching motion estimation utilizing adaptive threshold termination
JPH09182082A (ja) * 1995-12-25 1997-07-11 Nippon Telegr & Teleph Corp <Ntt> 動画像の動き補償予測符号化方法とその装置
KR970064261A (ko) * 1996-02-09 1997-09-12 모리시타 요우이치 윤곽 부호화 방법, 윤곽 복호화 방법, 및 그의 방법을 이용한 윤곽 부호화 장치, 윤곽 복호화 장치 및 그의 방법을 기록한 기록 매체
KR100197602B1 (ko) * 1996-04-29 1999-06-15 윤종용 회전 움직임 추정 방법 및 이를 이용한 영상부호화/복호화장치
KR970078657A (ko) * 1996-05-20 1997-12-12 구자홍 비디오 데이타 압축 장치
JPH09326990A (ja) * 1996-06-07 1997-12-16 Matsushita Electric Ind Co Ltd 映像編集装置
KR0182182B1 (ko) * 1996-08-30 1999-04-15 삼성전자주식회사 적응차분 펄스부호변조 압축회로
KR100212552B1 (ko) * 1996-12-23 1999-08-02 전주범 이산적 사인 변환을 이용한 윤곽선 영상 신호 부호화 방법 및 그 장치
JPH10215458A (ja) * 1997-01-31 1998-08-11 Matsushita Electric Ind Co Ltd 画像圧縮伸長装置および欠落フレーム補間方法
US5818463A (en) * 1997-02-13 1998-10-06 Rockwell Science Center, Inc. Data compression for animated three dimensional objects
JPH1198512A (ja) * 1997-09-18 1999-04-09 Sanyo Electric Co Ltd 画像符号化装置及び画像符号化方法
US6075901A (en) * 1998-12-04 2000-06-13 France Telecom Method and system for predictive encoding of arrays of data
KR20000052205A (ko) * 1999-01-30 2000-08-16 김영환 디지털 신호처리장치에서의 동화상 처리방법
KR100292803B1 (ko) * 1999-07-06 2001-06-15 정선종 3차원 메쉬모델의 정점위치 압축방법 및 장치
US6891565B1 (en) * 1999-07-16 2005-05-10 Sarnoff Corporation Bitstream testing method and apparatus employing embedded reference data
WO2001041156A1 (en) * 1999-12-01 2001-06-07 Ivast, Inc. Optimized bifs encoder
JP2001285868A (ja) * 2000-03-29 2001-10-12 Victor Co Of Japan Ltd 動画像符号列切替装置及び動画像符号列切替方法
KR100612828B1 (ko) * 2000-10-20 2006-08-18 삼성전자주식회사 오리엔테이션 보간 노드의 부호화 장치 및 방법
KR100561835B1 (ko) * 2000-11-23 2006-03-16 삼성전자주식회사 선형 근사화를 이용한 애니메이션 궤적의 압축 및 복원 방법, 이 방법을 수행하는 장치
US6559848B2 (en) * 2000-12-13 2003-05-06 Intel Corporation Coding and decoding three-dimensional data
US6704890B1 (en) * 2000-12-22 2004-03-09 Nortel Networks Limited Skew compensating interface for operation with arbitrary data
KR100580616B1 (ko) * 2001-02-28 2006-05-16 삼성전자주식회사 삼차원 객체의 형태 변형 정보에 대한 부호화 방법 및 그장치
KR100561836B1 (ko) * 2001-07-07 2006-03-16 삼성전자주식회사 3차원 애니메이션 객체의 형태 변환 정보에 대한 키 값부호화 방법 및 그 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101283253B (zh) * 2005-10-05 2012-05-30 Lg电子株式会社 信号处理的方法和装置以及编码和解码方法及其装置
CN107071453A (zh) * 2011-06-28 2017-08-18 日本电气株式会社 对视频量化参数编码的方法和对视频量化参数解码的方法

Also Published As

Publication number Publication date
EP1320264B1 (en) 2012-03-21
CN1428742A (zh) 2003-07-09
EP2278808A1 (en) 2011-01-26
KR20030043657A (ko) 2003-06-02
CN1294540C (zh) 2007-01-10
JP3905834B2 (ja) 2007-04-18
US7446771B2 (en) 2008-11-04
KR20030043621A (ko) 2003-06-02
KR20030043622A (ko) 2003-06-02
KR20030043655A (ko) 2003-06-02
KR100537500B1 (ko) 2006-01-09
CN1441387A (zh) 2003-09-10
KR100552666B1 (ko) 2006-02-20
CN1187716C (zh) 2005-02-02
EP1320264A3 (en) 2005-06-01
US20030128883A1 (en) 2003-07-10
KR20030043634A (ko) 2003-06-02
KR20030043620A (ko) 2003-06-02
JP2003248839A (ja) 2003-09-05
EP1320264A2 (en) 2003-06-18
EP2278808B1 (en) 2012-10-10
CN1277239C (zh) 2006-09-27
KR100552710B1 (ko) 2006-02-20
KR100552665B1 (ko) 2006-02-20
KR100543697B1 (ko) 2006-01-20
ES2381777T3 (es) 2012-05-31
KR20030043690A (ko) 2003-06-02
KR20050109413A (ko) 2005-11-21
KR100561875B1 (ko) 2006-03-17
KR100480787B1 (ko) 2005-04-07
KR100499135B1 (ko) 2005-07-04

Similar Documents

Publication Publication Date Title
CN1294540C (zh) 编解码坐标内插符关键字数据和关键值数据的装置
CN1272967C (zh) 视频编码方法和装置
CN1268135C (zh) 编码方法、编码装置和记录媒体、以及解码方法、解码装置和记录媒体
CN1235343C (zh) 交织方法、交织装置以及存储交织模式产生程序的媒体
CN1178458C (zh) 图象解码装置和图象解码方法
CN1918602A (zh) 多模α图像处理
CN1545813A (zh) 图象编码装置、图象译码装置、图象编码方法、图象译码方法、图象编码程序和图象译码程序
CN1640142A (zh) 对小波变换系数进行编码的方法和设备
CN1379366A (zh) 图像处理装置和方法
CN1969559A (zh) 移动图像编码装置和移动图像译码装置、其方法和程序
CN1941910A (zh) 编码坐标内插符、解码比特数据流的装置及方法
CN1926768A (zh) 信号处理装置和方法及信号处理程序和记录该程序的记录介质
CN1433164A (zh) 对数据进行编码和译码的方法和装置
CN100343879C (zh) 编码和解码坐标内插符的关键字值数据的方法和装置
CN1206613C (zh) 对定向内插器节点的关键值数据编码和译码的方法和装置
CN1310192C (zh) 对位置内插器进行编码和译码的方法和装置
CN1568012A (zh) 用于编码和解码关键字数据的装置和方法
CN1013630B (zh) 转换游程长度受限码的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070110

Termination date: 20151127

CF01 Termination of patent right due to non-payment of annual fee