译码装置和译码方法

文档序号:7963731阅读:93来源:国知局
专利名称:译码装置和译码方法
技术领域
本发明涉及通过无线传输线路这样的误码率高的媒体传输/存储信息的系统,将利用高效率压缩编码而得到的压缩代码串进行纠错/检出编码并进行传输/存储的译码装置/译码方法。
背景技术
例如,如无线电视(TV)电话、便携式信息终端、数字TV广播系统那样,在进行高效率地压缩编码并通过无线传输线路等进行传输以使图像及声音的信息成为尽可能少的信息量的系统中,由于传输线路的误码率高,所以,如何高品质底传输所得到的代码串就成了重要的课题。
通过这种误码率高的媒体进行代码串的传输/存储时,作为降低误码率的方法,多数是使用BCH(Bose-Chaudhuri-Hocquenghem)码、RS(RecommendedStandard)码、卷积码等纠错码。另外,在接收一侧,作为可以检错的方法,是使用检查和及CRC(cyclic redundancy check)等检错码。这些纠错/检出,是根据一定的规则将多余的位(冗长性)附加到传输/存储的信息上,在译码时检查传输/存储的代码串是否符合该规则,根据该结果进行纠错或检错。
但是,这种将利用高效率压缩编码而得到的代码串进行纠错/检出编码后进行传输/存储的方法,难于与恢复由于传输线路/媒体的代码字错误而发生的同步偏离的同步恢复方法组合。作为同步恢复方法,多数是使用插入唯一可以译码的称为同步码的代码,在发生同步偏离时从检测到同步码的时刻再次开始进行译码的方法。
为了使同步码成为唯一可以译码的代码字,在其他代码字的组合中必须构成不会发生与同步码相同的位组合格式的代码字。但是,通常在纠错/检出编码中,难于构成避免出现某一特定的位组合格式的代码字,在出现与同步码相同的位组合格式时,由于同步码的误检测,将引起伪同步。
为了避免这一问题,是使用在进行纠错/检出编码后,判断代码串中是否存在与同步码相同的位组合格式,存在相同的位组合格式时,就按照某一规则将哑数据位插入到该组合格式中,在译码装置中通过按照相同的规则删除哑数据位来防止伪同步的方法。但是,通过容易发生误码的媒体传输/存储代码串时,在该插入位也可能发生错误,从而引起新的同步偏离或伪同步。
另外,在对代码串进行纠错/检出编码并插入同步码时,以往,在夹在同步码与同步码之间的同步区间的最后的部分,为了补充应进行纠错/检出编码的信息位的剩余部分,必须将很多插入位附加到代码串上,所以,编码效率将降低。
另一方面,为了提高纠错/检出能力,可以提高传输/存储的信息的冗长度,但是,如果提高冗长度,则传输相同的信息所需要的位数将增加。因此,提高纠错/检出能力时,就需要传输速率更高的传输线路,或者必须存储的信息的位数将增加。另外,如果传输速率或存储容量相同,冗长度越高,则只能传输/存储少的信息。高效率地将图像或声音进行压缩编码并进行传输/存储时,为了提高耐错性而附加冗长性,如果传输/存储速率相同,则必须对少的信息量进行压缩编码,从而将招致画质或音质下降。
因此,作为以更少的冗长度而具有高耐错性的方法,有称为层次编码的方法。这是根据错误对画质或音质影响的大小将高效率压缩编码的信息分类、通过对错误的影响大的信息使用冗长度更高的纠错/检出能力高的纠错/检出编码,而对错误的影响不太大的信息使用纠错/检出能力不太高但冗长度小的纠错/检出编码,以相同的平均冗长度比全体使用相同的纠错/检出编码时提高耐错性的方法。
例如,在将多数用于运动图象的高效率压缩编码的运动补偿预测与正交变换组合的编码方式即对输入的运动图象信号进行运动补偿预测并利用DCT(离散余弦变换-Discrete Cosine Transform-)等对该预测残差进行正交变换的方式中,发生错误时,对于发生大的画质劣化的运动矢量信息或预测残差信号的正交变换系数中的低次系数使用纠错/检出能力强的纠错/检出编码,对错误的影响小的预测残差信号的正交变换系数中的高次系数使用纠错/检出能力弱的纠错/检出编码。
为了实现这种层次编码,在输出的代码串的途中,必须切换纠错/检出能力不同的纠错/检出编码。作为切换纠错/检出能力不同的纠错/检出编码的方法,有将表示纠错/检出编码的种类的标题信息附加到代码串上的方法。图11是表示附加标题信息后切换纠错/检出编码的代码串的例子,在该例中,是切换2种纠错/检出编码FEC1和FEC2。在标题1101~1104中,插入表示纠错/检出编码的种类进代码字的数的标题信息。在编码装置中,将进行了纠错/检出编码的代码字排列在这些标题信息之后,在译码装置中,将标题信息进行译码,然后进行纠错/检出编码的译码。
但是,在通过附加这种标题信息切换纠错/检出编码的方法中,由于附加标题信息,将增加必须传输/存储的代码串的位数。在对图像及声音进行高效率压缩编码并传输/存储时,给标题信息分配位数,将减少图像及声音的高效率压缩编码所使用的位数,结果,将招致画质及音质的劣化。
如上所述,对于将运动图象信号等进行高效率压缩编码的代码串进行纠错/检出编码时,由于发生任意的位组合格式,所以,在将纠错/检出编码与使用唯一可以译码的同步代码的同步恢复方法组合时,存在由于同步代码的误检测而引起的伪同步,即使通过插入哑数据位进行避免伪同步的操作,也会由于插入位的错误而发生新的同步偏离或伪同步。
另外,在将代码串进行纠错/检出编码并插入同步代码时,以往,在同步区间的最后部分为了补足应进行纠错/检出编码的信息位的剩余部分,必须使用很多插入位,所以,编码效率将降低。
此外,在通过附加标题信息切换纠错/检出能力不同的纠错/检出编码的编码/译码装置中,由于附加标题信息将增加必须传输/存储的位数,所以,在将图像及声音进行高效率压缩编码并传输/存储时,分配给图像及声音的信息的信息量将减少,从而将招致画质及音质的降低。

发明内容
本发明的主要目的旨在提供可以解决由于同步代码的误检测而引起的伪同步及同步偏离的问题的编码装置和译码装置。
本发明的更具体的目的在于,提供在将纠错/检出编码与使用同步代码的同步恢复方法组合时可以解决由于同步代码的误检测而引起的伪同步及同步偏离的问题的编码装置和译码装置。
本发明的其他目的在于,提供在将纠错/检出编码与使用同步代码的同步恢复方法组合时可以减少在同步区间的最后部分使用的插入位从而提高编码效率的编码装置和译码装置。
本发明的另一个目的旨在提供在将对图像及声音等的信息进行高效率压缩编码的代码串切换为多种纠错/检出代码进行编码并传输/存储时减少必须附加表示纠错/检出代码的种类的标题信息而进行传输/存储的代码串的位数、从而可以提高信息的品质的编码装置和译码装置。
(1)本发明的第1编码装置其特征在于具有将输入的代码串编码为由信息位和检查位构成的纠错/检出代码的编码单元和将同步代码插入到输出代码串中的预先决定的多个同步代码插入位置中的某一位置同时将上述信息位配置到该代码串中的任意的位置、将上述检查位配置到该代码串中的上述同步代码插入位置以外的位置从而组合成输出代码串的代码串组合单元。
本发明的第1译码装置其特征在于具有根据编码为由信息位和检查位构成的纠错/检出代码的代码串在预先决定的多个同步代码插入位置进行同步代码的检测的同步代码检测单元、分解上述代码串并抽出纠错/检出代码的信息位和配置在上述同步代码插入位置以外的位置的该纠错/检出代码的检查位的代码串分解单元和接收由上述代码串分解单元抽出的信息位和检查位并将上述纠错/检出代码进行译码的译码单元。
这样,在第1编码/译码装置中,同步代码只存在于输出代码串的预先决定的同步代码插入位置,纠错/检出代码的检查位存在于同步代码插入位置以外,所以,即使在检查位中包含与同步代码相同的位组合格式,也不可能将其误检测为同步代码。因此,不必使用防止发生特定的位组合格式的特殊的纠错/检出代码或在纠错/检出编码后进行用于防止同步组合格式的位插入等,于是,不仅可以增加所使用的纠错/检出代码的自由度,而且不可能发生由于错误混入插入位而引起的新的同步检测错误,从而可以提高抗错能力。
(2)本发明的第2编码装置其特征在于在第1编码装置中追加将位于输出代码串中预先决定的多个同步代码插入位置的同步代码以外的输入代码串变换为使之与该同步代码的加重平均距离大于预先决定的值的代码串变换单元,将由该代码串变换单元进行变换后的代码串输入编码单元,编码为由信息位和检查位构成的纠错/检出代码。
本发明的第2译码装置其特征在于在第1译码装置中追加了将在由译码单元所译码的代码串中存在于变换为与同步代码的加重平均距离大于预先决定的值的同步代码插入位置处的该同步代码以外的代码串变换为原来的代码串的代码串变换单元。
这样,在第2编码/译码装置中,编码装置对位于同步代码插入位置的位串进行使与同步代码的加重平均距离大于预先决定的值的变换处理;译码装置通过进行与此相反的变换,由于在位串中不包含与同步代码相同的位组合格式,所以,不会出现同步代码的误检测。另外,如果进行使同步代码与其以外的代码串的加重平均距离增大的变换,即使错误混入代码串中,也可以区别同步代码与其以外的代码串,所以,可以减少由于错误而引起的同步代码的误检测的概率。
由于该变换/逆变换处理只在同步代码插入位置进行,所以,与对代码串全体进行变换/逆变换处理的先有方法相比,减少了额外操作。另外,在向编码装置输入的输入代码串中,不必进行用以不发生与同步代码相同的位组合格式的变换处理或使用特别的代码字。特别是将切换不同的代码字表而使用的可变长编码装置作为本编码装置的输入时,如果在可变长编码装置中作成用以不发生与同步代码相同的组合格式的代码字表,将招致编码效率的降低,但是如果使用第2编码/译码装置,就不会发生这种问题。
(3)本发明的第3编码装置其特征在于具有将输入的代码串编码为纠错/检出代码的编码单元、将同步代码插入到上述代码串中的同步代码插入单元和判断应编码为上述代码串的上述同步代码之前的纠错/检出代码的信息的位数的判断单元,在上述编码单元中,根据由上述判断单元判定的位数,使上述同步代码之前的纠错/检出代码成为适应地缩退的缩退代码。
本发明的第3译码装置其特征在于具有对编码为纠错/检出代码并插入同步代码的代码串进行译码的译码单元、检测上述代码串中的同步代码的同步代码检测单元和判断编码为上述代码串中的由同步代码检测单元检测的同步代码之前的纠错/检出代码的信息的位数的判断单元,在上述译码单元中,根据上述判断单元的判断结果,识别上述同步代码之前的纠错/检出代码是否为缩退代码并进行译码。
这样,在第3编码/译码装置中,作为同步代码之前的纠错/检出代码,是使用为了将留在1个同步区间的最后的信息位进行编码而缩退到所需要的位数的缩退代码,所以,不必在同步区间的最后部分为了补足信息位的剩余部分而使用很多插入位,从而可以提高编码效率。
(4)本发明的第4编码装置其特征在于具有将包含输入的多种信息的代码串编码为纠错/检出代码的编码单元和根据上述代码串中的信息的种类切换上述纠错/检出代码的种类的切换单元。
本发明的第4译码装置其特征在于具有将根据信息的种类编码为不同种类的纠错/检出代码的代码串进行译码并生成原来的信息的译码单元和根据由上述译码单元生成的信息的种类判断上述纠错/检出代码的种类并通知上述译码单元的通知单元。
这样,在第4编码/译码装置中,根据信息的种类切换纠错/检出代码进行编码/译码时,在编码装置中,通过根据所输入的代码串的信息的种类进行纠错/检出代码的切换,同时,在译码装置中根据所译码的信息判断纠错/检出代码的种类进行与编码装置相同的切换,就不必如以往那样使用表示纠错/检出代码的种类的标题信息,从而可以消除标题信息所带来的额外的操作。
(5)本发明的第5编码装置其特征在于具有将位于输出代码中预先决定的多个同步代码插入位置及其前后的预先决定的位数的区间的同步代码以外的输入代码串变换为使与该同步代码的加重平均距离大于预先决定的值的代码串变换单元、将由上述代码串变换单元进行变换后的代码串编码为由信息位和检查位构成的纠错/检出代码的编码单元和将同步代码插入到上述输出代码串中预先决定的多个同步代码插入位置中的某一个位置同时将上述信息位配置到该输出代码串中的任意的位置而将上述检查位配置到该代码串中的上述同步代码插入位置以外的位置从而组合成该输出代码串的代码串组合单元。
本发明的第5译码装置其特征在于具有从编码为由信息位和检查位构成的纠错/检出代码并插入同步代码的代码串中在预先决定的同步代码插入位置及其倾预先决定的位数的区间进行同步代码的检测的同步代码检测单元、分解上述代码串抽出配置在纠错/检出代码的信息位和上述同步代码插入位置以外的位置的该纠错/检出代码的检查位的代码串分解单元、接收由上述代码串分解单元抽出的信息位和检查位并将上述纠错/检出代码进行译码的译码单元和将存在于由上述译码单元所译码的代码串中变换为使与同步代码的加重平均距离大于预先决定的值的上述同步代码插入位置及其前后预先决定的位数区间的该同步代码以外的代码串变换为原来的代码串的代码串变换单元。
这样,在第5编码/译码装置中,对于输入代码串,不仅在同步代码插入区间而且在其前后的预先决定的位数的区间进行使与同步代码的加重平均距离大于预先决定的值的变换,在译码装置中,通过对输入的代码串进行与此相反的变换,由于在该区间不包含与同步代码相同的位组合格式,所以,即使通过发生一部分位消失的位消失或附加多余的位的位附加的传输路线/存储媒体进行已编码的位串的传输/存储,只要消失/附加的位数小于预先决定的位数,就可以区别同步代码与其以外的代码串,从而在译码装置中可以正确地进行同步检测。
(6)本发明的第6编码装置其特征在于具有使将输入信号进行压缩编码而得到的多种压缩代码多路化并生成多路化代码串的多路化单元和将上述多路化代码串作为输入组合成输出代码串的代码串组合单元,上述代码串组合单元将同步代码插入到上述输出代码串中预先周期地决定的多个同步代码插入位置中的某一个位置。
这时,由于上述代码串组合单元将同步代码插入到上述输出代码串中预先周期地决定的多个同步代码插入位置中的某一个位置,所以,进行在该输出代码串中插入填充位或者在上述输出代码串中预先决定周期性的多个同步代码插入位置,同时插入指示上述多路化代码串的边界的信息(指针信息),将同步代码插入到上述多个同步代码插入位中的某一个位置。这样,便可将同步代码只插入到周期地决定的多个同步代码插入位置中的某一个位置。
这里,填充位最好是可以从输出代码串的反方向唯一地进行译码的代码。这样,在译码装置中,通过将填充位之前的代码串的译码结束位置与填充位的开始位置进行比较,便可很容易检测输入代码串中的错误。
此外,该填充位最好是同步代码和与其一部分之间的加重平均距离大于预先决定的值。这样,便可降低伪同步的发生概率。
本发明的第6译码装置其特征在于具有检测输入代码串中的同步代码的同步代码检测单元、以由上述同步代码检测单元从上述输入代码串中检测的同步代码的位置为基准进行逆多路化处理从而生成压缩代码的逆多路化单元和将上述压缩代码进行译码并输出再生信号的译码单元,上述同步代码检测单元在上述输入代码串中的预先周期地决定的多个同步代码插入位置检测上述同步代码。
这样,在第6编码/译码装置中,由于在编码装置中将同步代码只插入到使多种压缩代码实现多路化的多路化代码串中预先周期地决定的同步代码插入位置,所以,在译码装置中,只在该同步代码插入位置进行同步检测就可以了,与将同步代码插入到代码串中的任意的位置的先有方式相比,可以减少同步代码检测的次数,另外,由于位错误而输入译码装置的位串通过变化为与同步代码相同的位组合格式而引起的伪同步的发生概率随着该同步代码检测次数的减少而减小,所以,利用本发明可以减少发生伪同步,从而可以减少伴随同步代码检测的运算处理量。
(7)本发明的第7编码装置其特征在于除了第6编码装置的结构外,进而还具有将位于上述输出代码串中的上述同步代码插入位置的上述同步代码以外代码串变换为使之与同步代码的加重平均距离大于预先决定的值的代码串变换单元。
本发明的第7译码装置其特征在于进而还具有将在上述输入代码串的上述同步代码插入位置处已变换为使之与上述同步代码的加重平均距离大于预先决定的值的该同步代码以外的代码串变换为原来的代码串的代码串变换单元。
这样,在第7编码/译码装置中,除了第6编码/译码装置的结构外,通过对考虑了同步代码的错误的位插入即对位于同步代码插入位置的位串进行与同步代码的加重平均距离的变换,在位串中不包含与同步代码相同的位组合格式,所以,对于预想的位数以下的错误,可以保证不会发生同步代码的误检测,从而可以减小同步代码误检测的概率。
在本发明中,所谓同步代码,就是用于同步恢复而插入到代码串中的可以唯一译码的代码,例如,如果插入同步代码的代码串是使将按帧单位输入的图像信号进行压缩编码后的多种探索代码实现多路化的多路化代码串,则同步代码就是表示编码帧的分界线或多种压缩代码的分界线以及其他分界线的代码。
如上所述,如果应用本发明,则可获得如下效果。
(1)按照第1编码/译码装置,通过将同步代码只插入到每隔一定间隔的同步代码插入位置并使纠错/检出代码的检查位发生移位而存在于同步代码插入位置以外的位置,所以,即使在检查位发生与同步代码相同的位组合格式,在进行同步代码检测的同步代码插入位置也不会发生与同步代码相同的位组合格式,从而在原理上完全不存在错误地进行同步检测的可能性。
另外,对于位于同步代码插入位置的代码串,如果进行用以不发生伪同步代码的位插入,就可以克服以往那样构成用以不发生与同步位相同的位组合格式的代码字的困难。
(2)按照第2编码/译码装置,在编码装置中除了第1编码装置的结构外通过对位于考虑了同步代码的错误的位插入即同步代码插入位置的位串进行用以使与同步代码的加重平均距离大于预先决定的值的变换处理而在译码装置中进行与此相反的变换,在位串中不包含与同步代码相同的位组合格式,所以,对于预想的位数以下的错误可以保证不会发生同步代码的误检测,从而可以减小同步代码的误检测的概率。另外,如果进行了这种变换,即使错误混入到代码串中,也可以区别同步代码也其以外的代码串,所以,可以减小由于错误而引起的同步代码的误检测的概率。
此外,纠错/检出编码在通过位插入而进行代码字的变换之后进行,所以,对插入位也进行了错误保护。因此,与在进行纠错/检出编码后进行位插入的先有的方式相比,可以降低插入位发生错误的概率。而且,由于位插入只在同步代码插入位置进行,所以,与先有的在代码串全体中进行位插入的情况相比,可以减少由于位插入而引起的代码量增加,从而库体格编码效率。
(3)按照第3编码/译码装置,由于将同步代码之前的纠错/检出代码采用缩退代码,所以,与先有的编码装置相比,在同步代码之前的部分可以减少用于补足信息位的剩余部分的位插入数,从而可以提高编码效率。
(4)按照第4编码/译码装置,通过在编码装置中利用图像及声音等的高效率压缩编码装置的多路化规则根据输入的代码串的信息种类进行纠错/检出代码的切换、而在译码装置中根据译码的信息判断纠错/检出代码的种类并进行与编码装置相同的切换,就不需要附加表示纠错/检出代码的种类的标题信息,可以将其位数分配给图像及声音的高效率压缩编码,结果,便可提高画质及声音等的信息品质。
(5)按照第5编码/译码装置,通过在编码装置中对输入代码串不仅在同步代码插入区间而且在其前后的预先决定的位数的区间进行使与同步代码的加重平均距离大于预先决定的值的变换、而在译码装置中对输入的代码串进行与此相反的变换,便可使在该区间不包含与同步代码相同的位组合格式。因此,即使通过发生一部分位消失的位消失或附加多余的位的位附加的传输路线/存储媒体进行已编码的位串的传输/存储,只要消失/附加的位数小于预先决定的位数,就可以区别同步代码与其以外的代码串,从而在译码装置中可以正确地进行同步检测。
(6)按照第6编码/译码装置,由于在编码装置中将同步代码只插入到使多种压缩代码实现多路化的多路化代码串中预先周期地决定的同步代码插入位置,所以,在译码装置中只在该同步代码插入位置进行同步检测就可以了,与同步代码插入到代码串中的任意位置的先有方式相比,可以减少同步代码检测的次数。
另外,由于位错误而输入译码装置的位串通过变化为与同步代码相同的位组合格式而引起伪同步的发生的概率伴随该同步代码检测次数的减少而减小,所以,如果应用本发明,便可减少伪同步的发生,从而也可以减少伴随同步代码检测的运算处理量。
(7)按照第7编码/译码装置,除了第6编码/译码装置的结构外,通过对位于考虑了同步代码的错误的位插入即同步代码插入位置的位串进行与同步代码的加重平均距离的变换,在位串中不包含与同步代码相同的位组合格式,所以,对预想的位数以下的错误可以保证不发生同步代码的误检测,从而可以减小同步代码误检测的概率。


图1是表示本发明实施例1和2的运动图象编码装置的结构的框图。
图2是表示图1的运动图象编码装置的多路器的多路化规则的图。
图3是表示图1的运动图象编码装置的输出编码装置的结构的框图。
图4是表示图1的运动图象编码装置的输出代码串的例子的图。
图5是表示同步代码的例子的图。
图6是表示图3的输出编码装置的纠错/检出切换编码部的结构的框图。
图7是表示图3的输出编码装置的代码串组合器的结构的框图。
图8是表示本发明的实施例1和2的运动图象译码装置的结构的框图。
图9是表示图8的运动图象译码装置的输入译码装置的结构的框图。
图10是表示图9的输入译码装置的代码串分解器的结构的框图。
图11是表示用先有的纠错/检出代码切换编码装置得到的代码串的例子的图。
图12是表示用于说明本发明的实施例2的由于传输路线的位附加/消失而发生错误的同步代码的例子的图。
图13是用于说明实施例2的图3中的位插入器的动作的图。
图14是用于说明实施例2的图9中的同步检测器和插入位去除器的动作的图。
图15是表示在实施例1和2中使用帧长信息进行同步保护的代码串的例子的图。
图16是表示在实施例1和2中使用帧长信息进行同步保护的代码串的其他例子的图。
图17是表示在实施例1和2中使用帧长信息进行同步保护的代码串的又一个其他例子的图。
图18是表示本发明实施例3和4的运动图象编码装置的结构的框图。
图19是表示本发明实施例3的运动图象编码装置的输出编码装置的结构的框图。
图20是表示本发明实施例3的运动图象编码装置的输出代码串的例子的图。
图21是表示本发明实施例3和4的运动图象译码装置的结构的框图。
图22是表示本发明实施例3的运动图象译码装置的输入译码装置的结构的框图。
图23是表示本发明实施例4的运动图象编码装置的输出编码装置的结构的框图。
图24是表示本发明实施例4的运动图象译码装置的输入译码装置的结构的框图。
图25是表示本发明实施例4的运动图象编码装置的输出代码串的例子的框图。
图26是表示运动图象编码装置的多路器的多路化规则的图。
图27是表示本发明实施例5的运动图象编码装置的输出代码串的例子的框图。
图28是表示运动图象编码装置的多路器的多路化的其他例子的图。
图29是表示对图28所示的进行多路化处理时的各同步代码进行处理的输出代码串的图。
图30是表示用于说明本发明使用的填充位的例子的代码表的图。
图31是用于说明使用图30的填充位时的译码装置的处理的图。
图32是说明图30的填充位的特征的图。
图33是表示使同步代码插入间隔小于同步代码时的输出代码串的例子的图。
图34是表示使用不同长度的同步代码的例子的图。
图35是表示本发明实施例6的运动图象编码装置的输出代码串的例子的图。
具体实施例方式
下面,参照

本发明的实施例。
(实施例1)图1是表示将具有本发明的纠错/检出代码切换功能的编码装置与使用运动补偿自适应预测和正交变换编码的一种即离散余弦变换编码的高效率压缩编码装置组合的运动图象编码装置的实施例1的框图。关于将运动补偿自适应预测与离散余弦变换编码组合的编码方式,由于例如文献1安田浩编著、“マルチメデイア符号化の国际标准”、丸善、(平成3年6月)等中有详细的说明,所以,此处只说明动作的概况。另外,在本实施例中使用的纠错/检出代码如BCH代码那样,采用分离为信息位和检查位的代码。
在图1中,以帧单位输入的编码对象的输入运动图象信号131先按宏块等小区域单位进行运动补偿自适应预测。即,在运动补偿自适应预测器101中,检测输入运动图象信号131与帧存储器102中存储的已进行了编码/局部译码的图像信号之间的运动矢量,根据该运动矢量通过运动补偿预测作成预测信号132。在该运动补偿预测器101中,选择运动补偿预测编码和将输入运动图象信号131直接进行编码的帧内编码(预测信号=0)中的极适合于编码使用的预测模式,并输出对应的预测信号132。
预测信号132输入减法器103,通过从输入运动图象信号131中将预测信号132减去,输出预测残差信号133。预测残差信号133在离散余弦变换器104中按一定大小的块单位进行离散余弦变换(DCT),生成DCT系数。该DCT系数由量化器105进行量化处理。从量化器105输出的已量化的DCT系数数据分为2个分支,1个分支由第1可变长编码器106进行可变长编码,另一个分支经逆量化器107进行逆量化处理后由逆离散余弦变换器108进行逆离散余弦变换(逆DCT)。逆离散余弦变换器108的输出在加法器109中与预测信号132相加,生成局部译码信号。该局部译码信号存储到帧存储器102中。
另一方面,在运动补偿自适应预测器101中决定的预测模式和运动矢量的信息由第2可变长编码器110进行可变长编码。从第1、第2可变长编码器106、110输出的可变长代码(压缩代码)在多路器111中实现多路化,成为多路化代码串201。
从多路器111输出多路化代码串201、表示与其对应的纠错/检出代码的种类的FEC种类识别信号202和要求同步代码的插入的同步代码插入要求信号203。
这些代码串201、FEC种类识别信号202和同步代码插入要求信号203输入将代码串201切换为纠错/检出能力不同的多种纠错/检出代码而进行编码的输出编码装置200,生成最终的输出代码串205。在本实施例中,输出编码装置200与本发明的编码装置相当。
图2是表示多路器111中实现多路化的流程的图。多路化是以编码帧为单位进行的。首先,使同步代码301实现多路化。同步代码301实现多路化时,从多路器111输出同步代码插入要求信号203,并通知编码装置200已实现多路化的代码字是同步代码。其次,使对多路化代码串201表示该编码帧的各种编码模式的图像标题203实现多路化。然后,使表示各区域的运动补偿自适应预测器MC的预测模式的预测模式信息303实现多路化,进而使运动矢量信息304和预测残差信号的DCT系数(以下,将其称为残差DCT系数)305实现多路化。使图像标题302、预测模式信息303、运动矢量信息304和残差DCT系数305实现多路化时,输出分别与它们对应的表示纠错/检出代码的种类的FEC种类识别信号202。
如果混入了错误,对于画质大大劣化的图像标题302、预测模式信息303和运动矢量信息304,使用纠错/检出能力高的纠错/检出代码。另一方面,残差DCT系数305在混入错误时通过检测该错误并使残差为0便可防止大的画质劣化,所以,纠错能力不必太高,只要能够单纯地进行检错就可以了。
图3是表示图1中的输出编码装置200的结构的框图。该输出编码装置200由位插入器211、纠错/检出切换编码器212和代码串组合器213构成。另外,图4是表示由输出编码装置200生成的输出代码串205的一例的图。在图4中,PSC是同步代码,PH是图像标题,MODE是预测模式信息,MV是运动矢量信息,CHK是纠错/检出代码的检查位,COEF是残差DCT系数,STUFF是填充位(插入位)。该输出代码串205具有以下特征。
(1)同步代码PSC只插入到由以一定间隔(每隔sync_period位)配置的箭头所示的同步代码插入位置中的某一个位置。sync_period的长度大于同步代码PSC的长度和检查位CHK的最大长度。检查位CHK移位到同步代码插入位置之前。
(2)1帧即夹在同步代码PSC与下一个PSC之间的1同步期间的最后部分的纠错/检出代码,作为只将留在最后的信息位进行编码的缩退代码,为了进行检查位CHK(在图4的例中,是CHK 6)的移位,进行所需位数的填充位STUFF的位插入。
(3)在图4的输出代码串205中不存在表示纠错/检出代码的种类及数量的FEC种类识别信号。
在该输出代码串205中,如上述(1)那样,由于进行检查位CHK的移位,所以,检查位CHK没有输入到箭头所示的同步代码插入位置,因此,完全不可能由于检查位CHK发生伪同步。另外,如上述(2)那样,进行帧的最后的纠错/检出编码时,在先有的技术中,必须插入很多插入位(哑数据位),但是,在本实施例中,由于帧的最后成为缩退代码,所以,插入位数很少就够了。另外,如上述(3)那样,由于在输出代码串205中不包含表示纠错/检出代码的种类及数量的标题信息,所以,没有由此引起代码量的增加。
下面,将从多路器111输出的图2的多路化代码串201与图4的输出代码串205对应地详细说明生成这种输出代码串205的图3的输出编码装置200的结构和动作。
同步代码301由多路器111实现了多路化时,如前所述,就输出同步代码插入要求信号203。同步代码301如图5所示的那样由例如sync_0_len位的“0”、1位的“1”和表示同步代码301的种类的sync_nb_len位的“×××××”构成。输出编码装置200接收到从多路器111输出的同步代码301和同步代码插入要求信号203时,就从代码串组合器213作为输出代码串205输出同步代码(PSC)。
这里,如图4所示,由于同步代码301只能插入到输出代码串205中的每隔sync_period位配置的同步代码插入位置,所以,此前所生成的输出代码串205的最末尾没有位于同步代码插入位置时,如后面所述的那样,就插入填充位STUFF,以使同步代码301到达同步代码插入位置。
同步代码301输出到输出代码串205中时,以后的图像标题302、预测模式信息303、运动矢量信息304、残差DCT系数305就按如下方式进行编码。首先,对于从多路器111输出的多路化代码串201,在位插入器211中进行用于防止发生伪同步的位插入。即,为了防止在输出代码串205中有与同步代码301的代码字相同的位组合格式时不能将同步代码301唯一地进行译码,根据需要进行位插入。例如,如果同步代码301如图5所示的那样成为sync_0_len位的“0”连续的代码字,只要插入“1”使在同步代码301以外的代码串中不会连续有sync_0_len位以上的0,就可以防止发生伪同步。
如前所述,由于同步代码301只插入到同步代码插入位置,所以,用于防止该伪同步发生的位插入操作只在同步代码插入位置进行就行了。因此,从代码串组合器213输出表示至此所生成的输出代码串205的总位数的计数值221,由位插入器211根据计数值221判断是否需要进行位插入。设计数值221即已生成的输出代码串205的总位数为total_len,则在0<total_len mod sync_period≤sync_0_len的区间,计数多路化代码串201中的“1”的数,如果在该区间完全没有“1”,就插入1位的“1”。这里,A mod B表示用B除A时的余数。
另外,为了降低错误引起的同步代码301的误检测的概率,可以如以下所述的那样进行位插入。
在n位错误混入同步代码301时,为了检测同步代码301,在后面所述的运动图象译码装置的输入译码装置中,必须判断与真的同步代码的加重平均距离小于等于n的代码字是同步代码。但是,如果对同步代码301以外的代码串直接进行这种判断时,在同步代码301以外的代码串中有时也存在与同步代码的加重平均距离小于等于n的位组合格式,从而将会误认为它位于同步代码插入位置,并将其判定为同步代码301。
因此,通过在位插入器211中按以下方式对多路化代码串201进行位插入,将位于多路化代码串201中的同步代码插入位置的同步代码以外的代码串变换为与同步代码301的加重平均距离成为大于等于2*n+1的值。具体而言,就是在0<total_len mod sync_period≤sync_0_len-(2*N+1)的区间,计数“1”的数(设=n0),如果n0小于等于2*n+1,就将2*n+1-n0位的“1”插入到多路化代码串201中。
这样,在位插入器211中进行位插入后的代码串222就与表示纠错/检出代码的种类的FEC种类识别信号202一起输入纠错/检出代码切换编码部212。
图6是表示图3中的纠错/检出代码切换编码部212的结构的框图。锁存电路603是锁存FEC种类识别信号202的电路,从多路器111结束同步代码向多路化代码串201的输出从而同步代码插入要求信号203停止时,将FEC种类识别信号202锁存,并将锁存的信号623供给纠错/检出编码器604。
纠错/检出编码器604根据锁存的信号623对从位插入器211输出的代码串222进行纠错/检出编码,生成并输出信息位631和检查位632。另外,纠错/检出编码器604结束1块的纠错/检出编码时,就输出指示锁存电路603锁存下一个FEC种类识别信号202的锁存指示信号625。锁存电路603按照该锁存指示信号625进行锁存,并将锁存的信号623供给纠错/检出编码器604。
在输出编码装置200中反复进行上述动作,从位插入器211输出的位插入后的代码串222由纠错/检出切换编码器212按照从多路器111输出的FEC种类识别信号202进行纠错/检出代码的切换,同时进行纠错/检出编码。FEC种类识别信号202由于只在1块的纠错/检出代码的编码结束的时刻由锁存电路603锁存,所以,在该切换点之前可以应用相同的纠错/检出代码。例如,在图像标题302使用FEC1、预测模式信息303使用FEC2这样的纠错/检出代码时,如果图像标题302的位数比FEC1的1块的信息位数少,则作为后续的预测模式信息303的纠错/检出代码,在达到FEC1的信息位数之前,可以使用FEC1。
图7是表示图3中的代码串组合器213的结构的框图。该代码串组合器213由计数输出代码串205的位数的计数器701、暂时存储检查位632及其位数的缓冲器702、切换输出代码串205的切换器703和控制切换器703的切换控制器704构成。
计数器701在输入同步代码插入要求信号203时复位为同步代码长sync_len的值,从同步代码的下一位到顺序输入下一个同步代码停止计数。在同步代码输入后,在最初的检查位632输入之前切换器动作以输出信息位631。输入检查位632时,就存储到缓冲器702中,同时将其位数(检查位数)711从缓冲器702向切换控制器704输出。
切换控制器704根据检查位数711和计数器701的计数值221,如前所述的那样控制切换器703进行用以使检查位632不会输出到同步代码插入位置的检查位移位。例如,设计数值221为bit_count、检查位数711为check_len,则在bit_count mod sync_period<sync_period-check_len
时就输出信息位631,在sync_period-check_len≤total_bits mod sync_period<sync_period时就输出缓冲器702存储的检查位713。以后,便输入信息位631和检查位632,反复进行上述处理。
输出编码装置200如前所述的那样在1帧的最后部分作为纠错/检出代码使用缩退码,为了进行检查位的移位而进行位插入,所以,进行与除此以外的部分的通常情况不同的动作。即,多路器111结束1帧的多路化代码串201的输出时,就输出下一帧的同步代码插入要求信号203。与此对应地,图6的纠错/检出切换编码部212内的纠错/检出编码器604将纠错/检出代码的信息位631的不足部分视为是从插入位发生器705输出的预先决定的位组合格式,从而进行使用缩退码的纠错/检出编码。该位组合格式可以使全部位为“1”,也可以为“0”,也可以是“0101...”那样的特定的格式的反复。不向信息位631输出该补足的插入位。
在图7的代码串组合器213中,将信息位631输出到最后之后,将切换器703从位发生器705切换到输入,进行位插入以使缓冲器702存储的检查位713配置到下一个同步代码之前。设输出1帧的最后的信息位631时的计数器701的计数值221为total_len、最后输出的检查位632的位数为last_check_len,则该插入位的数stuffing_len成为stuffing_len=sync_period-last_check_len-(total_lenmod sync_period)不使用缩退码时,就进行最后的信息位last_info_len的通常的信息位info_len的不足部分(info_len-last_info_len)位的位插入,此外,还必须进行用于使检查位移位的位插入。因此,与使用缩退码时相比,必须进行info_len-last_info_len+(info_len-last_info_len)mod sync_period位的很多位插入。
代码串组合器213在这样通过切换器703向输出代码串205输出信息位631和插入位后,最后切换到检查位713,向输出代码串205输出。
下面,说明本实施例的运动图象译码装置。
图8是表示与图1的运动图象编码装置对应的运动图象译码装置的结构的框图。从图1的运动图象译码装置输出的输出代码串205经过传输/存储系统后,作为输入代码串205’输入到输入译码装置800中。在本实施例中,输入译码装置800与本发明的译码装置相当。
在输入译码装置800中,根据从后续的逆多路器811输出的表示纠错/检出代码的种类的FEC种类识别信号802切换纠错/检出代码,输出经过纠错/检出译码的代码串801、同步代码检测信号803和检错信号804。逆多路器811输入这些代码串801、同步代码检测信号803和检错信号804,分离并输出预测残差代码841和运动补偿自适应预测信息代码842。
预测残差代码841和运动补偿自适应预测信息代码842分别输入第1和第2可变长译码器806和810。由第1可变长译码器806所译码的残差DCT系数831由逆量化器807进行逆量化处理和由逆DCT器808进行逆离散余弦变换等一系列的处理后,由加法器809与运动补偿自适应预测器801的输出即运动补偿自适应预测信号832相加,成为再生图像信号850。再生图像信号850向装置外输出,同时记录到帧存储器820中。由第2可变长译码器810所译码的运动补偿自适应预测信息输入运动补偿自适应预测器801,生成运动补偿预测信号832。
上述处理是与图1的运动图象编码装置对应地再生运动图象的处理,逆量化器807、逆DCT器808、加法器809和帧存储器820进行的处理,分别与图1的逆量化器107、逆DCT器108、加法器109和帧存储器102进行的处理的实现方法也有不同的情况,但是,基本上是相同的。另外,第1和第2可变长译码器806、810、逆多路器811和输入译码装置800的处理除了错误混入代码串的情况外,分别是与图1的可变长编码器106、110、多路器111和输出编码装置200进行的处理相反的处理。
图9是表示输入译码装置800的结构的框图。该输入译码装置800由检测输入代码串205’中的同步代码的同步检测器901、计数输入代码串205’的位数的计数器902、将输入代码串205’分解为信息位912和检查位913并输出的代码串分解器903、纠错/检出译码器904和插入位去除器905构成。
在同步检测器901中,根据计数器902的计数值911只在同步代码插入位置进行同步代码的检测。例如,设同步代码插入位置的间隔为sync_period、计数值911为bit_count、同步代码的长度为sync_len,就只进行0<bit_count%sync_period≤sync_len时的同步检测。
这里,也可以进行考虑了同步代码的错误的同步代码的检测。
在图3中的输出编码装置200内的位插入器211中,如果考虑n位以下的错误,进行以使与同步代码的加重平均距离远离为2*n+1的位插入引起的代码串变换,即使将与真的同步代码的加重平均距离小于n的代码判定为同步代码,只要是n位以下的错误混入,就不会发生误同步检测。
图10是表示代码串分解器903的结构的框图。输入代码串205’由后面所述的控制器1001控制的第1切换器1002切换为信息位1021和检查位913。从第1切换器1002输出信息位1021时,该信息位1021经过第2切换器1003只将信息位长度存储到缓冲器1004中。计数器1005计数从第2切换器1003输出的输出位数。该计数器1005的计数值1023由比较器1006与从纠错/检出代码信息输出器1007输出的信息位长度1024进行比较,两者一致时就将计数器1005复位,同时由锁存电路1008将表示纠错/检出代码的种类的FEC种类识别信号802锁存,进而从缓冲器1004输出信息位912。锁存电路1008的输出914输入纠错/检出代码信息输出电路1007,同时向图9中所示的纠错/检出译码器904输出。
如前所述,纠错/检出代码的检查位进行移位,进入代码串205中后方的纠错/检出代码的信息位之间。控制器1001进行用以将进行了移位的检查位和信息位分离的控制。1块的纠错/检出代码的信息位的输入结束时,在比较器1006中计数值1023与信息位长度1024就一致。控制器1001接收该一致信号,从纠错/检出信息输出器1007取入检查位长度1025,计算进入下一个信息位之间的检查位的位置。设由比较器1006判定为一致时的代码串205’的输入位数的计数值911为bit_count、检查位长度为check_len,则检查位开始位置check_start就成为check_start=(bit_count/sync_period+1)*sync_period-check_len,检查位结束位置check_end就成为check_end=(bit_count/sync_period+1)*sync_period。控制器1001控制切换器1002在计数值911从check_start到check_end之间输出检查位913。
由于在1帧的最后用缩退码进行纠错/检出编码,所以,进行特别的处理。在达到1帧的最后时,从同步检测器901输出表示检测下一帧的同步代码的信号803。控制器1001接收该信号803,计算1帧的最后的纠错/检出代码的检查位的位置和信息位的不足位数。设开始输入1帧的最后的纠错/检出代码时的输入的代码串205’的位数的计数值911为pre_last_count、1帧的代码串205’的输入结束时的计数值911为total_count、处理时的计数值911为bit_count、前一个纠错/检出代码的检查位长度为pre_last_check_len。首先,计算纠错代码是缩退码和进行位插入而引起的信息位的过不足部分。在1帧最后的纠错/检出代码的信息位中,包含在输出代码串205中的位数last_info_len就是last_info_len=total_count-last_check_len-pre_last_count-pre_last_check_len。在last_info_len比纠错代码的信息长度info_len短时,就判定为缩退码,计数值1023从last_info_len到info_len由切换器1021切换为从插入位发生器1015输出的位组合模式,补足由于缩退而引起的信息位的不足部分。从该插入位发生器1015输出的输出位组合格式和编码器的图7中的插入位发生器705发生的位组合格式相同。
另一方面,last_info_len比info_len长时,就判定为位插入部分,对于计数值1023成为info_len以上的部分,就不输出信息位912。对于检查位,就控制切换器1002将total_count-chrck_len<bit_count≤total_count时的输出代码串205作为检查位而输出。
纠错/检出译码器904输入从代码串分解器903输出的信息位912和检查位913,根据由图10的锁存电路1008锁存的表示纠错/检出代码的种类的FEC种类识别信号914进行纠错/检出代码的译码,并输出进行了纠错的代码串915和检错信号804。
进行了纠错的代码串915输入插入位去除器905。插入位去除器905进行去除用于防止由输出编码装置200的位插入器211插入的伪同步信号的插入位的处理。如前所述,由于位插入只在同步插入位置进行,所以,根据计数器902的计数值911判断同步插入位置。
例如,设同步代码字为图5所示的代码字,在位插入器211中向同步代码的最初的sync_len位的“0000...”部分进行位插入用以使与同步代码的加重平均距离远离2*n+1以上时,就从同步代码插入位置开始计数sync_0_len-(2*n+1)位的“1”的数(设=n0),如果n0小于2*n+1,就删除2*n+1-n0位。但是,由于插入位决定为“1”,所以,由插入位去除器905判定为插入位的位为“0”时,就认为错误混入到了同步代码插入区间,这时,就输出误检测信号804。
如上所述,由输入译码装置800译码的代码串801由逆多路器811进行逆多路化处理。这就是将图2所示的经过多路化处理的代码字分离并输出的操作。该逆多路器811与第1和第2可变长译码器806和810连动地动作。
首先,从输出译码装置800输入同步代码检测信号803时,逆多路器811就转移为帧处理的初始状态。其次,作为表示纠错/检出代码的种类的FEC种类识别信号802,输出对图像标题的纠错/检出代码的种类,输入代码串801,将图像标题302进行译码,判断图像标题中有无错误。没有错误时,作为FEC种类识别信号802就输出对预测模式信息303的纠错/检出代码的种类,输入代码串801,对预测模式信息进行逆多路化处理,并向第2可变长译码器810输出。
第2可变长译码器810将所有的预测模式信息译码时,就向逆多路器811输出表示该情况的信号。逆多路器811接收该信号,并输出表示对运动矢量信息304的纠错/检出代码的种类的FEC种类识别信号,开始进行运动矢量信息304的逆多路化处理。进行了逆多路化处理的运动矢量信息向第2可变长译码器810输出,进行译码。在所有的运动矢量信息的译码结束时,从第2可变长译码器810向逆多路器811输出表示该情况的信号,逆多路器811接收该信号,并输出表示对残差DCT系数的纠错/检出代码的种类的FEC种类识别信号,同时,对残差DCT系数305进行逆多路化处理,并向第1可变长译码器806输出。由第1可变长译码器806将该残差DCT系数305进行译码。
如上所述,纠错/检出代码的种类,在逆多路器811中根据与输出编码装置200决定的相同的多路化规则进行判断。因此,不必使表示纠错/检出代码的种类的标题信息等包含在输出代码串205中。
在纠错/检出译码器904中,有时利用检错代码检测错误混入到输入代码串205’中的情况。另外,如前所述,有时也用插入位去除器905检测插入位的错误。这时,从输入译码装置800输出检错代码804。此外,在可变长译码的处理中,在检测到可变长代码字表中没有的代码字时,也判定为混入了错误。另外,在逆多路器811的逆多路化处理中,判定有违反多路化的规则的部分时,也判定为混入了错误。这时,输入译码装置800和逆多路器811为了不使再生图像产生大的劣化而进行以下处理。
(1)在残差DCT系数中检测到错误时,就令该部分的残差为0。早预测模式选择内部编码模式时,也可以根据已再生帧及周围的区域的再生图像信号预测该区域的再生图像信号。
(2)在预测模式信息及运动矢量中检测到错误时,可以根据周围的区域的预测模式信息及运动矢量信息推断该区域的预测模式信息及运动矢量信息时就使用这些信息,不能推断时就根据已再生帧及周围的求的再生图像信号预测该区域的再生图像信号。
(3)在图像标题中检测到错误时,如果直接将其译码,就可能发生非常大的画质劣化,所以,就直接将前一帧的再生图像作为当前帧的再生图像。
在上述(1)、(2)、(3)的处理中,由于使用可变长编码而波及到下一个同步代码之前的后续的代码时,就对该部分也进行同样的处理。
在上述说明中,表示了同步代码检测器901只在同步代码插入位置(每隔sync_period位)进行同步代码的检测的例子,但是,由于传输/存储媒体的影响有时也会发生位的消失或错误位的插入。这时,也可以在同步代码插入位置以外进行同步代码的检测,并将检测到同步代码的位置判定为同步代码插入位置。
(实施例2)下面,参照图12~图14说明本发明的实施例2。本实施例的运动图象编码装置和运动图象译码装置即使使用使位串的一部分消失从而减少位数或附加多余的位从而增加位数的传输路线/存储媒体进行代码串的传输/存储,也可以可靠地进行同步检测。
图12是表示有这种位附加/消失时的同步检测的处理的原理的框图。这里,如图12(a)所示,正确的同步代码由sync_0_len位的“0”和1位的“1”构成。图12中的“×”是同步代码以外的位。
图12(b)~(e)表示由于位附加/消失而同步代码是如何变化的。这里,附加/消失的位数(Nid)最大为1位。(b)是在同步代码之前的位串中发生1位删除的情况,全体同步代码向前移1位。(c)是在同步代码之前的位串中发生1位附加的情况,全体同步代码向后移1位。(d)是在同步代码中发生位删除的情况,从图中箭头的位抽出位置开始后边的向前移1位。此外,(e)是在同步代码中发生1位附加的外科,在图中箭头的位附加位置发生1位附加,其后边的向后移1位。
为了即使发生位附加/消失也可以正确地检测同步,必须将图12(b)~(d)所示的位串也判定为同步代码。由图12可知,在正确的同步代码插入位置的±Nid位的范围内包含的“1”的位数最大为sync_0_len-3*Nid的位。因此,在译码侧在同步代码插入位置的±Nid位的范围内进行同步检测,如果包含在该区间的“1”的位数小于上述值,就可以判定为同步代码。另外,在编码装置中,进行代码串的变换用以不发生图12(b)~(d)的位组合格式。
下面,以与实施例1的差异为中心说明这种编码装置/译码装置。
实施例2的运动图象编码装置和实施例1的运动图象编码装置的全体结构是相同的,但是,图3中的位插入器211的动作不同。位插入器211的动作示于图13。即,在实施例1的位插入器211中,只在同步代码插入区间进行位插入操作,但是,在实施例2的位插入器211中,为了即使发生最大Nid位的位附加/消失也不发生与同步代码相同的位组合格式而在同步代码插入区间±Nid位的区间进行位插入。
设图3的计数值221为total_len、同步代码插入位置的间隔为sync_period,位插入器211计数从total_len mod sync_period=sync_period-Nid(mod剩余运算)到total_len mod sync_period=symc_0_len-1-3*Nid的区间的“1”的数(设=n0),如果n0不到3*Nid+1,就插入3*Nid+1-n0位的“1”。
在图13中,示出了sync_period=12、sync_0_len=9、Nid=1时的位插入器211的动作例。在该例中,由于n0=2,所以,插入3*Nid+1-n0=2位的“1”。
这样,通过进行位插入,就保证了同步代码插入区间±Nid位的“0”的数是大于3*Nid位,从而可以唯一地识别为同步代码。
另一方面,实施例2的运动图象译码装置与实施例1的全体结构是相同的,但是,图9中的同步检测器901和插入位去除器905的动作不同。插入位去除器905的动作示于图14。
即,在同步检测器901中,为了即使发生最大Nid位的位附加/消失也可以检测同步,在同步代码插入位置的前后±Nid位的范围内进行同步代码的检测。
首先,对每一同步代码插入位置判断是否存在同步代码。即,设计数器902的计数值911为bit_count,计数从bit_count mod sync_period=sync_period-Nid
到bit_count mod sync_period=sync_0_len-1+Nid之间的“0”的数(设=ns0),如果n0小于3*Nid,就判定在该区间有同步代码。
在图14的动作中,示出了sync_period=12、sync_0_len=9、Nid=1时的例子。在该例中,在(bit_count mod sync_period)从“1”到“8”之间计数“0”的数。在图14的例中,由于ns0=2,所以,判定为同步代码。
其次,在判定为有同步代码的同步代码插入区间,判断代码串由于位附加/消失而移位了几位。是图14所示的那样的sync_0_len位时,就从最后的“1”的位置判断移位量。具体而言,就是从同步代码判断区间的开始,探索从第sync_0_len+1位看位于开始的“1”,根据从该同步代码判断区间的开始位于第几位(设=first_1_pos位),求移位位数=first_1_pos-(sync_0_len+1+Nid)(等于负值时,表示向前移位,等于正值时,表示向后移位)在图14的例中,由于first_1_pos=10,所以,移位位数=10-(9+1+1)=-1由此可知,是向前移1位。
在插入位去除器905中,和实施例1不同,是在同步代码插入位置±Nid位的区间中进行插入位去除处理。即,计数从bit_count mod sync_period=sync_period-Nid到bit_count mod sync_period=sync_0_len-1-3*Nid区间的“1”的数(设=n0),如果n0小于3*Nid,就去除3*Nid+1-n0位的“1”。
在实施例2中,可以用某种形式判定在传输路线及存储媒体中的位附加/消失的区间时,考虑了位附加/消失的同步检测处理及位插入处理和位去除处理也可以只在该区间进行。
在上述实施例1的运动图象译码装置中,为了进行与传输路线/存储媒体中的位附加/消失对应的同步检测,也可以在同步检测器901中和实施例2一样在同步代码插入区间±Nid位的区间进行同步检测。这时,虽然有可能发生将同步代码以外的部分错误地判定为同步代码的伪同步,但是,在容易发生位附加/消失的传输路线/存储媒体中可以抑制由于同步检测错误而引起的译码图像的品质劣化,从而可以提高画质。
另外,在可以用某种形式判定在传输路线及存储媒体中发生位附加/消失的区间时,这一处理也可以只在该区间进行,而在除此以外的区间进行通常的同步检测。
此外,在上述实施例1和实施例2中,也可以使用表示帧的长度的信息(以下,称为帧长度信息)节约保护同步。图15、图16和图17时表示使用帧长度信息POINTER时的代码串的例子。
在图15的例中,帧长度信息POINTER和保护该帧长度信息POINTER的纠错/检出代码的检查位CHK P接续在同步代码PSC之后。在帧长度信息POINTER中记录着前一帧的位数即表示从前一帧的同步代码到当前帧的同步代码的位数的信息。
在编码装置中,计数1帧的代码串位数,将其变换为帧长度信息POINTER,进而进行纠错/检出编码,生成检查位CHK P。并且,如图15所示的那样,将它们接续到下一帧的同步代码之后,生成代码串。
另一方面,在译码装置,在用与实施例1和实施例2相同的方法进行同步代码的检测后,从代码串中取出接续在其后的帧长度信息POINTER和检查位CHK P,进行纠错/检出译码,从而将帧长度信息POINTER译码。并且,将所译码的帧长度信息POINTER与计数从前一个检测的同步代码到当前的同步代码的位置的位数而求出的值(帧长度计数值)进行比较,检查有无同步代码的误检测。
如果帧长度计数值与帧长度信息POINTER所示的前一帧的代码长不同时,有可能发生了同步代码的误检测,所以,就使用帧长度信息POINTER进行所误检测的同步代码的再检测。即,认为从当前的同步代码开始到帧长度信息POINTER所示的位数的前方有不能检测的同步代码。这时从前一个检测的同步代码到当前的同步代码的区间分割为从前一个同步代码到帧长度信息POINTER所示的位置的区间和从该处到当前的同步代码的区间的2个帧进行译码处理。
但是,由帧长度信息POINTER所示的位数比从前一个检测的同步代码到当前的同步代码的位置的位数多时,就认为帧长度信息POINTER错误了,从而不进行上述同步再检测处理。
帧长度信息POINTER和检查位CHK P的位数多时,如图16所示,同步代码PSC、帧长度信息POINTER和检查位CHK P也可以涉及多个同步区间。这时,用以使同步代码以外的代码串与同步代码保持一定的加重平均距离的编码装置中的位插入处理和译码装置中的位删除处理也可以不在帧长度信息POINTER和检查位CHK P存在的区间进行。
在图15和图16的例中,在同步代码PSC的后半部包含表示该同步代码的种类的信息(帧同步代码、GOB同步代码的区别等)时,也可以不仅用纠错代码保护帧长度信息POINTER而且可以保护同步代码PSC的后半部位。这样,不仅可以正确地检测同步代码的位置,而且可以正确地检测其种类,所以,进一步提高了抗错误性。
在图17的例中,是将帧长度信息POINTER和检查位CHK P置于帧的最后(下一个帧的同步代码之前)的例子。这时,在译码装置中,在检测到下一帧的同步代码后,就取出其之前的帧长度信息POINTER和检查位CHK P,进行纠错/检出译码,通过与图15和图16相同的处理,进行同步代码的再检测。
在图15的例中,由于同步代码只存在于同步代码插入位置,所以,帧长度信息POINTER也可以记录用同步代码插入间隔(=sync_period位)除帧的位数而得到的值。这样,便可用很少的位数表示帧长度。
另外,在实施例1和实施例2中,示出了进行根据对纠错/检出代码进行编码的信息的重要性而变化的层次编码的例子,但是,在帧内既可以使用相同的纠错/检出代码也可以不使用纠错/检出代码。这时,通过本实施例所示的用以使同步代码以外的代码串与同步代码保持大于预先决定的值的加重平均距离的位插入处理和与其对应的同步代码检测处理比先有方式提高了检测同步的能力。
另外,在上述各实施例的说明中说明了将运动图象信号进行高效率压缩编码而进行传输/存储的例子,但是,本发明也可以应用于静止图像及声音、数据等的传输/存储。例如,使用正交变换将静止图像信号进行高效率压缩编码时,可以切换使用纠错/检出代码用以更强地保护变换系数的低频成分。在将声音模型化为驱动源和声道滤波器进行编码的方法中,可以切换纠错/检出代码用以更强地保护间距周期及声道参量等。
(实施例3)下面,说明本发明的实施例3。本实施例与实施例1和实施例2的不同是不使用纠错/检出代码。
图18是本实施例的运动图象编码装置的框图。对与图1相对应的部分标以相同的符号以与实施例1的不同点为中心进行说明,在本实施例中,输出编码装置200的结构和动作不同。另外,多路器111的基本动作和图1的多路器111相同,但是,随着不使用纠错/检出代码,只输出多路化代码串201和同步代码插入要求信号203。
图19是表示图18中的输出编码装置200的结构的框图。该输出编码装置200由计数输出代码串205的位数的计数器1701、切换输出代码串205的1703、控制切换器1703的切换控制器1704和发生填充位的填充位发生器1705构成。
图20是表示由图19的输出编码装置200生成的输出代码串205的一例的图。对于与图4的输出代码串对应的代码字,使用同一符号进行标记。与图4一样,同步代码PSC只周期地插入由每隔一定区间(sync_period位)而配置的箭头所示的同步代码插入位置的某个位置。在图20中,与图4不同的是不包含纠错/检出代码的检查位CHK P。在输出代码串205的1帧的最后的部分插入填充位STUFF,用以使同步代码PSC插入到同步代码插入位置。填充位STUFF的位数小于sync_period位。
下面,详细说明生成这种输出代码串205的图19的输出编码装置200的结构和动作。
计数器1701从多路器111输入同步代码插入要求信号203,作为多路化代码串201输入同步代码301的最初的位时,置位为“1”,输入同步代码301的全部位时,就置位为同步代码长sync_len。然后,计数器1701从同步代码301的下一位顺序计数到输出下一个同步代码之前的位。
切换控制器1704作为多路化代码串201输入从同步代码的最初的位到下一个同步代码之前的位时,就将切换器1703切换到多路化代码串201一侧,控制为多路化代码串201作为输出代码串205而输出。
并且,在1帧的最后的部分,进行用以使下一个同步代码插入到同步代码插入位置的位插入(位填充)。多路器111在1帧的多路化代码串201的输出结束时输出下一帧的同步代码插入要求信号203。接收到该信号后,切换控制器1704将切换器1703切换到填充位发生器1705一侧,将填充位1223作为输出代码串205而输出。该填充位1223既可以使全部位为“1”,也可以全部为“0”,也可以采用“0101...”这样的特定的组合模式。
下面,说明本实施例的运动图象译码装置。
图21是表示与图18的运动图象编码装置对应的运动图象译码装置的结构的框图。对于与图8相对应的部分标以相同的符号,以与实施例1的不同点为中心进行说明,在本实施例中,输入译码装置800的结构和动作不同。另外,从输入译码装置800输入逆多路器811的信号只是代码串801和同步代码检测信号803,没有从逆多路器811向输入译码装置800输入的信号。
图22是表示输入译码装置800的结构的框图。该输入译码装置800由检测输入代码串205’中的同步代码的同步检测器1901和计数输入代码串205’的位数的计数器1902构成。
计数器1902在译码的最初阶段复位为“0”,输入代码串205’每输入1位,将计数值1911计数为“1”。
在同步检测器1901中,根据计数器1902的计数值1911只在同步代码插入位置进行同步代码的检测。例如,设同步代码插入间隔为sync_period、计数值1911为bit_count、同步代码的长度为sync_len,则只在0<bit_count mod sync_period≤sync_len时进行同步检测。这里,A mod B表示用B除A时的余数。同步检测器1901检测到同步代码时,就输出同步代码检测信号803。
从输入译码装置输出的代码串801是直接输出输入代码串205’,并输入逆多路器811。以后,和图21的运动图象译码装置一样进行逆多路化处理,进行译码的处理。
将帧的最后的填充位STUFF采用预先决定的位组合格式时,在逆多路器811中判断该填充位STUFF与预先决定的组合格式是否一致,不一致时就判定输入代码串205’中有错误,也可以进行用于使在实施例1所示的运动图象编码装置中所述的画质劣化不大的处理。
(实施例4)下面,说明本发明的实施例4。
本实施例的运动图象编码装置的全体结构与图18的运动图象编码装置相同,输出编码装置的动作和实施例3不同。
图23是表示图18中的输出编码装置200的结构的框图。对于与图19的输出编码装置相对应的部分标以相同的符号,以它们的差别为中心进行说明,追加了进行用于防止伪同步代码的位填充处理的位插入器1211。
在位插入器1211中,对多路化代码串201进行用于防止发生伪同步的位插入。这是由于在输出代码串205中有与同步代码相同的位组合格式时不能将同步代码唯一地译码,所以,是用于防止该情况的处理。例如,如图5所示的那样同步代码由sync_0_len位的“0”、1位的“1”和表示同步代码的种类的sync_nb_len位的“×××××”构成时,如果在同步代码以外的代码串中插入“1”用以不连续地出现sync_0_len位以上的“0”,就可以防止发生伪同步。
同步代码只插入到同步代码插入位置。因此,用于防止发生伪同步的位插入操作只能在同步代码插入位置进行。因此,根据计数输出代码串205的总位数的计数值1221判断是否必须进行位插入。设计数值1221为total_len,则在0<total_len_mod_sync_period≤sync_0_len的区间计数多路化代码串201中的“1”的数,如果在该区间完全没有“1”,就插入1位的“1”。这里,A mod B表示用B除A时的余数。
另外,为了降低由于错误而引起同步代码的误检测的概率,可以按如下方式进行位插入。
为了在n位错误混入同步代码中时也检测同步代码,在后面所述的运动图象编码装置的输入编码装置中必须判断与真的同步代码的加重平均距离小于n的代码字是同步代码。但是,如果将同步代码以外的代码串直接进行这样的判断,有时在同步代码以外的代码串中也存在与同步代码的加重平均距离小于n的位组合格式,这就误认为位于同步代码插入位置,从而将其判定为同步代码。
因此,在位插入器211中,通过按如下方式对多路化代码串201进行位插入,将位于多路化代码串201中的同步代码插入位置的同步代码以外的代码串变换为与同步代码的加重平均距离大于2×n+1的代码串。
具体而言,就是计数在0<total_len_mod_sync_period≤sync_0_len-(2×n+1)区间的“1”的数(设=n0),如果n0小于2×n+1,就将2×n+1-n0位的“1”插入到多路化代码串201中。
这样,进行了位插入后的代码串1222和图19的输出编码装置一样进行帧的最后的区间的位插入(图20中的STUFF),并作为输出代码串205而输出。
下面,说明本实施例的运动图象译码装置。运动图象译码装置的全体结构和图21的运动图象译码装置相同,输入编码装置800的动作和实施例3不同。
图24是表示输入译码装置800的结构的框图。对于与图22的输入译码装置相对应的部分标以相同的符号,以与实施例3的差异为中心进行说明,追加了位去除器1905。
输入代码串205’输入插入位去除器1905,进行去除由图23的输出编码装置的位插入器1211插入的用于防止伪同步代码的插入位的处理。如前所述,由于位插入只在同步代码插入位置进行,所以,根据计数器1902的计数值1911判断同步代码插入位置。
例如,设同步代码是图5所示的代码字,在位插入器1211中向同步代码的最初的“000...”的部分进行位插入用以使与同步代码的加重平均距离大于2×n+1时,从同步代码插入位置开始计数sync_0_len-(2×n+1)位的“1”的数,如果n0小于2×n+1,就删除2×n+1-n0位。
这里,由于插入位定为“1”,所以,在判定为插入位的位为“0”时,就认为错误混入了同步代码插入区间。这时,将图中未示出的误检测信号向逆多路器811输出,和在实施例1中所述的一样,可以进行使再生图像不发生大的劣化的处理。
在图23的位插入器1211中的位插入处理,也可以向同步代码以外的全部同步代码插入区间插入预先决定的位数的插入位。图25是表示进行这种位插入处理时输出代码串205的一例。图中,SB表示插入的位。
例如,如图5所示的那样,同步代码由sync_0_len位的“0”、1位的“1”和表示同步代码的种类的sync_nb_len位的“×××××”构成时,就从同步代码插入区间的开始向sync_0_len位的区间的预先决定的位置插入1位的插入位SB。
插入位SB可以总是采用“1”。另外,也可以从同步代码插入区间的开始根据sync_0_len位的区间的位组合格式自适应地决定插入位SB用以使该区间的“1”的个数大于1。
此外,通过从同步代码插入区间的开始将插入位SB采用sync_0_len位的区间的奇偶性,便可避免出现与同步代码相同的位组合格式,同时可以检测混入该位组合格式的错误。
图25(b)表示进行了这种位插入处理的输出代码串。在该例中,从同步代码插入位置开始向最初的部分插入1位的插入位SB。该插入位SB决定为从该位和下一位开始与sync_0_len-1位一致的区间的“1”的数一定为奇数。例如,在图25(b)的左侧的例中,插入位SB为“1”。另外,在图25(b)的右侧的例中,从插入位SB的下一位开始即使sync_0_len-1位的区间全部为“0”,由于插入位SB为“1”,所以,一定是1位以上的“1”进入同步代码插入区间,从而不会发生和同步代码相同的位组合格式。另外,由于插入位SB也起奇偶性检查的作用,所以,可以检测混入到该区间的位错误。
另外,也可以将插入位SB作为下一个同步代码插入位置之前的全部位的奇偶性检查位。但是,为了避免从插入位SB的下一位开始仅在sync_0_len-1位全部为“0”时出现与同步代码相同的位组合格式,使插入位SB一定为“1”。这样,便可利用全部位的奇偶性检查进行错误检测。
为了降低由错误而引起的同步代码的误检测的概率,希望插入更多的位数。例如,为了即使进入了n位的错误也能正确地检测同步,向该区间的预先决定的位置插入2×n+1位的“1”。
在本实施例中,与上述位插入器1211的动作对应地图24的位去除器1905的动作也不同。即,在位去除器1905中,进行删除由位插入器1211进行位插入的预先决定的位置的插入位SB的处理。
这里,将插入位SB总是采用“1”时,在位于输入代码串205’中的位插入位置的位是“0”时,就判定为位错误,将误检测信号(图中未示出)向逆多路器811输出,进行用于使译码图像不发生大的劣化的处理。
在实施例1~实施例4中,多路器111的多路化处理,如图2所示的那样,示出了以编码帧为单位将预测模式信息303、运动矢量信息304和残差DCT系数305进行多路化处理的例子,但是,也可以如图26所示的那样,按编码区域(例如,宏块、GOB等)单位将预测模式信息303、运动矢量信息304和残差DCT系数305进行多路化处理。这时,在图像标题302和除此以外的信息中可以使用不同的纠错/检出代码,也可以使用相同的纠错/检出代码。或者,可以只在图像标题中使用纠错/检出代码,也可以在各帧的预先决定的位数的一部分代码串中使用纠错/检出代码,也可以完全不使用纠错/检出代码。
另外,不仅可以按帧(图像)单位进行多路化处理,而且可以按帧的部分区域或将多个帧集中的层单位进行多路化处理,从而可以向这些各多路化单位(层单位)插入同步代码。
图28使表示这种多路化处理的例子。在图28的例中,对集中了多个编码块的宏块、集中了多个宏块的GOB、图像(帧)、集中了多个图像的会话的4个层进行多路化处理。其中,会话、图像、GOB的各层使用各自的同步代码(图中为SSC、SEC、PSC、GSC)。SSC、SEC、PSC、GSC分别使用不同的代码,可以区别检测到了哪一层的同步代码。使用图5所示的同步代码时,可以用表示同步代码的种类的sync_nb_len位的部分来区别这些同步代码。
进行这种多路化处理时,也可以对会话、图像、GOB的同步代码的一部分乃至全部进行和上述实施例的帧同步代码一样的处理。图29时表示进行这种处理的输出代码串的一例。如图所示,在PSC、GSC之前插入了填充位STUFF,SSC、PSC、GSC插入到图中箭头所示的同步代码插入位置。因此,和在上述实施例中对帧同步代码PSC说明的一样,提高了各同步代码的检测精度。
也可以将与图15、图16和图17的帧长度信息POINTER相同的长度信息附加到会话、图像、GOB的各同步代码上。如图15和图16所示,对帧长度信息POINTER进行纠错/检出代码的保护时,通过不仅对帧长度信息POINTER而且对表示同步代码的种类的sync_nb_len位的部分使用纠错/检出代码,不仅提高可以正确地检测同步代码的位置的概率,而且提高可以正确地检测其种类的概率。另外,对会话、图像、GOB的标题信息(图中为SH、PH、GF)的一部分或全部也可以使用纠错/检出代码进行保护,这样,也可以提高各标题信息的抗错误的耐性。
如本实施例那样,进行用于防止伪同步代码的填充处理时,进行以下的处理也可以使同步代码插入间隔sync_period小于同步代码的长度。
首先,说明运动图象编码装置的输出编码装置的处理。这里,如图5所示,同步代码采用由sync_0_len位的“0”和1位的“1”构成的代码字。在图23的输出编码装置中,设表示从位插入器1211输出的位数的计数值1221为total_len,用同步代码插入间隔sync_period除total_len的余数与用sync_period除从同步代码的最初的“0”的位数sync_0_len减去1的值的余数一致时,即total_len mod sync_period=(sync_0_len-1)mod sync_period(1)时,计数从该时刻的输出位到(sync_0_len-1)位前的输出位中的“1”的数(设为n1),如果完全没有“1”(即,如果n1=0),就插入1位的“1”。
图33(a)表示进行了这种处理的输出代码串的例子。图中,方向向下的箭头表示同步代码插入位置,同步代码由23位的“0”(即,sync_0_len=23)和1位的“1”构成。在图的例中,同步代码插入间隔sync_period是比同步代码的长度(=24位)短的8。
图中,区间1~4表示计数上述n1的区间。在各区间顺序计数“1”的数n1,如果n1=0,就向该区间的下一位插入填充位。在区间1中,由于n1>0,所以,就不必填充。在区间2中,由于n1=0,所以,就向该区间的下一区间插入1位的填充位3301。在区间3中,通过插入填充位3301,由于n1=1,所以,就不必插入填充位。
通过进行上述位填充处理,由于在输出代码串中的同步代码以外的部分没有与同步代码相同的位组合格式,所以,不会发生伪同步。
另一方面,为了降低由于传输路线错误而引起的同步代码的误检测的概率,可以按如下方式进行位插入。
为了即使n位错误混入同步代码时也能正确地检测同步代码,可以进行位插入处理以使在位插入1211中输出代码串中的同步代码以外的部分与同步代码的加重平均距离大于2×n+1。
用同步代码插入区间sync_period除表示图23的输出代码串205的总位数的计数值1221total_len的余数与用sync_period除从同步代码的最初的“0”的位数sync_0_len中减去2×n+1的值的余数一致时,即total_len mod sync_period=(sync_0_len-(2×n+1))mod sync_period (2)时,计数从该时刻的输出位到(sync_0_len-(2×n+1))位前的输出位中的“1”的数(设为n1),如果“1”的数小于(2×n+1),即n1<2×n+1就插入(2×n+1-n1)位的“1”。
使用从图5所示的多位的“0”开始的同步代码时,如果同步代码之前的位串中的“1”的数少,有时会发生该部分的同步误检测。为了防止发生这种误检测,可以输出帧的最后的区间的位插入(图20中为STUFF)以使从同步代码到其之前的同步代码插入位置的sync_period位的区间的“1”的位数大于2×n+1位。
为此,可以使用一定包含2×n+1位以上的“1”的STUFF,或者可以根据输出代码串决定STUFF。即,可以决定STUFF以使包含STUFF的输出代码串中的同步代码之前的sync_period位的“1”的位数大于2×n+1。
图33(b)表示进行了这种处理的输出代码串的例子。图中,区间1~4表示计数上述n1的区间。在各区间顺序计数“1”的数n1,如果n1<2×n+1,就向该区间的下一位插入填充位。在区间2中,由于n1=1,所以,在该区间的下一区间插入(2×n+1)-1=2位的填充位3311。在区间3中,由于通过插入填充位3311而n1=3,所以,不必插入填充位。
此外,为了防止在同步代码之前的部分的同步代码误检测,按以下方式决定STUFF。设STUFF之前的位为3312。由于从该温柔312之前的同步代码插入位置到其后的同步代码插入位置的sync_period位间(区间5)的“1”的数只有1位,所以,使用图5那样的多个“0”连续的同步代码时,在该部分便有可能发生同步误检测。因此,使插入同步代码的位置移位到下一个同步代码插入位置,输出包含多个“1”的STUFF3313。这样,由于同步代码之前的sync_period位区间(区间6)包含2×n+1位以上的“1”,所以,可以防止同步误检测。
通过进行上述那样的位填充处理,可以使在输出代码串中的同步代码以外的部分与同步代码的加重平均距离大于2×n+1,所以,减少了同步误检测的概率。
下面,说明运动图象译码装置的输入译码装置的处理。在图24的位去除器1905中,设表示输入的代码串的位数的计数值1911为total_len,在total_len成为满足1的条件的值时,计数从该时刻的输入位到(sync_0_len-1)位前的输入位中的“1”的数(设为n1),如果完全没有“1”,即,如果n1=0,就删除1位。
为了在n位错误混入同步代码时也可以检测同步代码,在位插入器1211中进行位插入处理以使输出代码串中的同步代码以外的部分与同步代码的加重平均距离大于2×n+1时,可以进行如下的处理。在total_len成为满足式(2)的值的时刻,计数从该时刻的输入位到(sync_0_len-(2×n+1))位之前的输出位中的“1”的数(设为n1),如果“1”的数小于(2×n+1),即,如果n1<(2×n+1)就删除(2×n+1-n1)位。
在输出编码装置和输入译码装置中,通过进行上述那样的处理将同步代码插入间隔sync_period采用小于同步代码的长度的短的位数,可以减少填充位STUFF的位数,提高编码效率。特别是在同步代码的长度长时或插入多个同步代码时,该填充位STUFF的位数减少将大大提高编码效率。例如,如运动图象编码的GOB/限幅那样,在将画面分割为1个~多个宏块、或各宏块行而按各单位插入同步代码的方式中,由于插入多个同步代码,所以,STUFF的位数减少将使编码效率更高。
另外,如图28所示的那样进行多个层结构的多路化处理时,可以根据层不同而使用不同长度的同步代码。
图34(a)时表示这种同步代码的例子。在4种同步代码中,SSC、SEC、PSC都由23位的“0”、1位的“1”和表示同步代码的种类的8位共计32位构成。另一方面,GOB层的同步代码GSC是由16位的“0”和1位的“1”构成的17位的同步代码,是比其他同步代码短的代码字。
这样,只将GSC采用短的代码字,是由于GOB是由1个~多个宏块(MB)构成的在画面内分割为小区域的编码单位,通常,GOB层的同步代码与其他同步代码相比,数量多,通过使同步代码字长度缩短,可以减少输出代码串的代码量。另外,通过这样处理,如果是相同的代码量,就可以输出更多的GSC,从而可以在画面内分割为更细的GOB区域进行编码,这样,便可提高发生传输路线错误时的再生图像的品质。
也可以进行在实施例4中说明的那样的用于防止伪同步的处理,即可以进行位填充处理以使在同步代码以外的代码串中不发生与同步代码相同的位组合格式。如果进行用于降低由于传输路线错误引起的同步代码的误检测的概率的位填充处理,例如对保证不发生与位长度长的同步代码(在图34(a)的例中为SSC、SEC、PSC)相同的位组合格式的位串也进行位填充处理以使不发生与最短的同步代码(在图34(a)的例中为GSC)相同的位组合格式,便可不发生与所有的同步代码相同的位组合格式。该处理可以对全部层的代码串进行,也可以对比使用最短的代码的层低的低位的层(在图示的例中为GOB层、宏块层)的代码串进行,也可以对比该层高一位的层以下的层(图像层、GOB层、宏块层)的代码串进行。此外,也可以只对预先决定的层的代码串进行该处理。
为了即使发生传输路线错误也容易识别长度不同的同步代码,可以按如下方式进行同步代码字及其前后的处理。
(1)使用由多位的“0”和接续其后的“1”构成的同步代码时,在长的代码字和短的代码字中,可以使从该“1”的同步代码插入位置看的相对位置不同。在图34(b)的例中,PSC的“1”3411和GSC的“1”3412位于不同的位置,其他同步代码中的相同位置的位(与3411对应的3413、与3412对应的3414)都为“0”。这样,由于同步代码和该部分串的加重平均距离增大,所以,即使发生传输路线错误,也可以很容易识别不同的同步代码。
(2)可以在长度短的同步代码之前插入填充位。例如,如图中3401所示的那样,通过在长度短的GSC之前插入由1个~多个“1”构成的填充位3401,便可增大GSC与其他同步代码的部分串的加重平均距离。
(3)可以在长度短的同步代码之后插入填充位。例如,可以在GSC之后进行位插入3402以使与识别长的同步代码中的同步代码的种类的部分的加重平均距离增大。
(实施例5)下面,说明本发明的实施例5。
本实施例的运动图象编码装置和运动图象译码装置的全体结构与实施例1相同,在输出编码装置200和输入译码装置800的1同步区间的开始和最后部分的处理与此前的实施例不同。
图27(a)、(b)、(c)使表示本实施例的运动图象编码装置的输出代码串205的一例的图。该输出代码串205在同步代码PSC之后进入前一帧(帧n-1)的代码串的一部分2701,有该代码串2701与当前帧(n帧)的代码串的边界2703(当前帧的代码串的起点),换言之,有表示多路化代码串的边界的指针信息2702(SA),与此相应地,与图4的输出代码串不同的是没有1帧的最后的填充位(在图4中为STUFF)。
在运动图象编码装置内的输出编码装置200中,在各同步代码插入位置检查该帧的其余的代码串的位数resid_bit。resid_bit和同步代码PSC以及指针信息SA的位数之和比同步代码插入间隔sync_period位少时,在向输出代码串205中输出该帧的其余的代码串之前,输出同步代码PSC。其次,输出指针信息SA(这时,表示resid_bit),然后,输出其余的代码串2701。最后,输出下一帧的代码串。
在运动图象译码装置内的输入译码装置800中,在各同步代码插入位置进行同步代码的检测,检测到同步代码时,就在其后接续上指针信息SA和帧的其余的信息进行处理。
以图27中的帧n-1与帧n的边界部为例进行说明,在同步代码PSC之前的2704的译码处理结束后,就在其后的同步代码插入区间检测同步代码,检测到同步代码时,就将指针信息2702译码,并求帧n-1的代码串还有几位。通过上述处理,从指针信息之后的代码串中取出由指针信息所示的位数(在图27中为2703之前),将其接续在2707之后,输出代码串801。其后的代码串(在图27中从2903开始)在下一帧即帧n进行处理。
在本实施例中,如图27(a)所示,可以对输出代码串的一部分或全部进行纠错/检出编码。这时,纠错/检出代码的种类可以全部相同,也可以使用不同的代码。
另外,如图27(b)所示,也可以不进行纠错/检出编码。
此外,如图27(c)所示,也可以插入图15还图16所示的表示1帧的代码串位数的帧长度信息POINTER。这时,帧长度信息POINTER也可以表示从该帧的同步代码PSC到下一帧的同步代码PSC的位数。
如图27(a)所示的那样进行纠错/检出编码时,从同步代码PSC到下一个检查位CHK的部分的纠错/检出编码,将指针信息SA、帧n-1的其余的代码串2701和2703以后的帧n的代码串集中作为1个信息位进行纠错/检出编码。
指针信息SA可以作为进行纠错/检出编码的信息。这时,也可以将同步代码PSC(或其一部分)、帧长度信息POINTER和指针信息组合进行纠错/检出编码。
下面,说明填充位STUFF的具体例子。
图30(a)、(b)是表示作为上述填充位STUFF的具体例的填充位STUFF的代码表的例子的图。图30(a)、(b)的特征是都可以从输出代码串的反方向唯一地进行译码,这样,便可唯一地特定填充位STUFF的开始位置。因此,通过将填充位STUFF之前的代码串的译码结束位置与填充位STUFF的开始位置进行比较,可以检测混入到代码串中的错误,同时,在应用于根据同步代码沿反方向进行译码的编码方式时,可以特定反方向译码的开始地点。
此外,示于图30(a)、(b)的代码表所示的填充位STUFF,其开始的位一定为“0”,可能由于后面所述的简易的译码引起误检测。
图31是表示包含图30(a)、(b)的代码表所示的填充位STUFF的代码串的译码处理的例子的图。在图31中,示出了同步代码插入位置之前的填充位的例子,但是,也可以在除此以外的任意的同步代码插入位置之前插入填充位进行同样的处理。在图31中,箭头3101~3103是按顺方向进行译码时的填充位STUFF之前的代码串(用“×××...”表示)的译码结束位置的例子,箭头的右端表示译码结束位置。错误未混入代码串,可以正常地进行译码时,如箭头3101所示的那样,填充位STUFF之前的代码串的译码结束位置与填充位STUFF的开始位置一致。
另一方面,错误混入到代码串中时,填充位STUFF之前的代码串的译码结束位置如箭头3102、3103所示的那样移位到填充位STUFF的开始位置。这时,就判定有错误混入到代码串中。
在译码装置中,填充位STUFF之前的代码串的译码结束时,在下一个同步代码插入位置之前读入填充位STUFF,并判断它与图30(a)、(b)所示的代码表的代码是否一致。如果填充位STUFF与代码表的哪一个代码都不一致时,就判定为有错误。
判定填充位STUFF与代码表一致时,也可以容许少数的位错误。这样,便可降低错误混入填充位STUFF时的错误的误检测。
图30(a)的代码表一定以“0”开始,后续的位为“1”。因此,也可以只判断填充位STUFF之前的代码串的译码结束位置的下一位是否为“0”而检测错误,或者,只根据开始的“0”和后续的几个“1”检测错误。这样,将降低若干误检测精度,从而减少译码所需要的处理量。这样,在所有的填充位STUFF使用从由特定的位乃至多个位构成的特定的位组合格式开始的代码表时,便可简化译码处理。
此外,图30(a)、(b)的代码表所示的填充位STUFF包含多个“1”的位,如图5所示的那样,由于包含多个“0”的同步代码和与其一部分的加重平均距离增大,所以,有发生伪同步的概率低的优点。具体而言,在图30(a)的代码表中,只是填充位STUFF的开始的位全部为“0”,由于除此以外的位全部为“1”,所以,全部为“0”的同步代码和与其一部分的加重平均距离成为(填充位STUFF的长度-1)。另外,在图30(b)的代码表中,只是填充位STUFF的开始和最后的位为“0”,由于除此以外的位全部为“1”,所以,同步代码和与其一部分的加重平均距离成为(填充位STUFF的长度-2)。这样,通过选择填充位STUFF和同步代码与其一部分的加重平均距离大于指定值例如大于(填充位STUFF的长度-2),即使错误混入代码串,也难于发生伪同步代码。
下面,使用图32说明该效果。图32(a-0)、(b-0)分别是表示使用通常的填充位(所有的位为“0”)和图30(a)的代码表所示的填充位STUFF时的代码串的例子,(a-1)、(b-1)分别是表示(a-0)、(b-0)中混入错误时的例子。由图32(a-1)可知,在所有的位为“0”的通常的填充位中,只混入了1位的错误,如(a-1)的虚线所示的那样,由于发生与同步代码相同的位组合格式,所以,将发生伪同步。与此相反,图30(a)的代码表所示的填充位STUFF,如图32(b-2)所示的那样,即使混入了错误,由于没有成为和同步代码相同的位组合格式,所以,不会发生伪同步。
这样,本实施例的填充位便可很容易地检测代码串的错误,同时,即使错误混入了代码串,也难于发生伪同步代码,从而具有很强的抗错误耐性的优点。
另外,本实施例的填充位可以从反方向唯一地进行译码,由于可以特定其开始位置即填充位STUFF之前的代码串的结束位置,所以,信息代码串在既可以从顺方向也可以从反方向进行译码的代码之后时,如图31的箭头3104所示的那样,可以将STUFF之前的代码串从反方向进行译码。
在上述实施例中,填充位STUFF可以按如下方式决定。
(1)如图5所示的那样同步代码包含sync_0_len位的“0”时,通过使填充位STUFF的全部乃至至少同步代码插入位置的全部位为“1”,便可增大同步代码的“0”的部分与填充位STUFF的加重平均距离。因此,通过这样处理,便可减少错误混入填充位STUFF而发生伪同步的概率。
(2)填充位STUFF也可以采用表示其长度的代码字。在译码装置中,根据填充位STUFF以外的代码串的译码结束的地点判断STUFF的长度,同时,进行STUFF的译码,并将STUFF的长度信息译码。这时,如果两者不一致时,就可以判定错误进入到了代码串中。
另外,填充位STUFF的代码字也可以用二进制数表示其长度。例如,STUFF为5位时,也可以采用二进制数表示“5”的“00101”。或者,也可以将取二进制数表示的“1”的补数或“2”的补数的值作为填充位STUFF的代码字,这样,由于减少了STUFF中的“0”的位数,所以,可以和在(1)中所述的一样抑制伪同步的发生。
(3)使用不仅可以从顺方向而且可以从反方向进行译码的代码字进行编码时,在译码装置中,就必须从帧的结束地点开始将填充位STUFF从反方向进行译码并知道其开始地点(STUFF与其他代码字的边界地点)。这时,例如可以将STUFF如“01111111”那样决定为以1位乃至多个位的“0”开始而其余的位为“1”的代码字。这样,如果将STUFF从反方向进行译码并探索有“0”的位置,就可以将该地点唯一地判定为STUFF的开始地点。另外,在该例中,填充位STUFF的开始部分以外的位为“1”,可以和在(1)中所述的一样减少发生伪同步的概率。
(4)填充位STUFF也可以采用输出代码串的一部分或全部位的纠错/检出代码的检查位或奇偶性检查位等。这样,便可进行混入到输出代码串中的位错误的纠错/检出。
如上例所述的那样,通过暗示预先决定的规则生成填充位STUFF,在译码装置中,将输入代码串中的填充位STUFF与其生成规则进行对照,如果判定违反其生成规则时,就可以判定错误混入到了输入代码串中。这样,在运动图象译码装置中,便可进行使再生图像不发生大的劣化的处理,从而可以提高错误混入输入代码串中时的再生图像的品质。
此外,在上述实施例中,同步代码插入间隔sync_period也可以按如下方式决定。
(1)使用纠错/检出代码时,如果使同步代码插入间隔sync_period大于在译码装置中进行同步检测的最小的位数即同步代码的长度与纠错/检出代码的检查位的最大值之和就足够了。由于帧的最后的填充位STUFF的位数的平均值是sync_period/2,所以,通过使sync_period成为该可以进行同步检测的最小位,便可减少填充位STUFF的位数,从而可以提高编码效率。
(2)不使用纠错/检出代码时,如果使同步代码插入间隔sync_period大于在译码装置中进行同步检测的最小的位数即同步代码的长度就足够了。由于帧的最后的填充位STUFF的位数的平均值为sync_period/2,所以,通过使sync_period成为该可以进行同步检测的最小位,便可减少填充位STUFF的位数,从而可以提高编码效率。
(3)如图15、图16、图17和图27所示的那样,使用帧长度信息POINTER时,也可以使同步代码插入间隔sync_period比同步代码的长度短。这样,便可减少填充位STUFF的位数,从而可以提高编码效率。
(4)在传输线路/存储媒体中分割为指定的间隔的包或信元进行传输/存储时,也可以使同步代码插入间隔sync_period与包或信元的间隔一致或成为该间隔的约数。这样,由于包或信元的开头一定为同步代码插入位置,所以,发生包损耗或信元损耗时也可以检测同步代码。
(5)同步代码插入间隔sync_period最好比1帧的最小需要的位数短。这样,便可减少填充位STUFF的位数,从而可以提高编码效率。
(实施例6)下面,说明本发明的实施例6。
图35是表示本实施例的运动图象编码装置的输出代码串的一例的图。在该输出代码串中,为了降低由于错误而引起的同步代码的误检测概率,进行在上述实施例中所述的位插入处理。另外,标题信息等的信息进入预先决定的位置或从同步代码相对地看预先决定的位置。
图35(a)是进行位插入处理之前的代码串,(b)是进行位插入处理后的输出代码串。图中,斜线部分3201、3202、3261、3262是进入预先决定的位置(从同步代码相对地看预先决定的位置)的信息,空心箭头3211、3212是进入该信息的位置。图35(b)中的代码串的信息3261、3262分别与(a)的代码串的信息3201、3202相当,根据情况不同从代码串(a)向代码串(b)变换时,有时对这些信息也进行变换(即,从信息3201向信息3261的变换和从信息3202向信息3262的变换)。
图35(b)中的3203是通过位插入处理而插入的位。由于通过该位插入处理而后续在插入位之后的位串向后移位了,所以,为了使进入指定的位置的信息进入恒定位置,进行使该信息之前的代码串的一部分向后移动的处理。例如,设从信息3201当前一个同步代码3205开始的插入位的数的总和为Ns1,可以将信息3201之前的图35(a)中的符号3221所示的Ns1位移动到信息3201之后的图35(b)中的符号3231的部分。
在信息3201、3202中包含表示代码串中的特定的位置的指针等信息时,也可以进行将其变换的处理。具体而言,例如在信息3201中包含表示由箭头3241所示的位置的信息时,就变换为表示信息3261中的位置的信息,用以根据该位置指示由插入位的数Ns1之后的箭头3251所示的位置。
权利要求
1.一种译码方法,包括按包含对将图像信号压缩编码后生成的多种可变长度代码进行多路化后生成的多路化代码串、并插入了8位或8位以下的填充位的输入代码串中的预先周期性确定的多个同步代码插入位置,检测出同步代码;基于由同步代码检测单元检测出的同步代码位置,对所述输入代码串中的多路化代码串进行逆多路化,生成可变长度代码;以及对所生成的可变长度代码进行译码后输出再生图像信号。
2.一种译码装置,包括同步代码检测单元,用于按包含对将图像信号压缩编码后生成的多种可变长度代码进行多路化后生成的多路化代码串、并插入了8位或8位以下的填充位的输入代码串中的预先周期性确定的多个同步代码插入位置,检测出同步代码;逆多路化单元,用于基于由所述同步代码检测单元检测出的同步代码位置,对所述输入代码串中的多路化代码串进行逆多路化,生成可变长度代码;以及译码单元,用于对所生成的可变长度代码进行译码后输出再生图像信号。
3.根据权利要求2所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的帧单位被多路化,所述逆多路化单元按所述帧单位对所述多路化代码串进行逆多路化。
4.根据权利要求2所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的一帧的部分区域单位被多路化,所述逆多路化单元按所述部分区域单位对所述多路化代码串进行逆多路化。
5.根据权利要求2所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的帧单位被多路化;所述同步代码检测单元按位于紧邻按所述多路化代码串的所述帧单位进行多路化后的各多路化单位的结尾部分之前或之后的同步代码插入位置来检测所述同步代码;以及所述逆多路化单元按所述帧单位对所述多路化代码串进行逆多路化。
6.根据权利要求2所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的一帧的部分区域单位被多路化;所述同步代码检测单元按位于紧邻按所述多路化代码串的所述部分区域单位进行多路化后的各多路化单位的结尾部分之前或之后的同步代码插入位置来检测所述同步代码;以及所述逆多路化单元按所述部分区域单位对所述多路化代码串进行逆多路化。
7.根据权利要求2所述的译码装置,进一步包括代码串变换单元,该代码串变换单元将在所述输入代码串的所述同步代码插入位置上被变换为与所述同步代码的加重平均距离等于或大于预定值的该同步代码以外的代码串变换成原代码串。
8.根据权利要求2所述的译码装置,其中,所述输入代码串可从该输入代码串的逆向进行唯一译码,并插入了与所述同步代码及其一部分之间的加重平均距离大于或等于预定值的填充位。
9.根据权利要求8所述的译码装置,其中,所述填充位被配置在紧邻所述输入代码串中的所述同步代码之前。
10.一种译码方法,包括按包含对将图像信号压缩编码后生成的多种可变长度代码进行多路化后生成的多路化代码串、并插入了具有与所述同步代码插入位置的间隔相等的最长位数的填充位的输入代码串中的预先周期性确定的多个同步代码插入位置,检测出同步代码;基于由同步代码检测单元检测出的同步代码位置,对所述输入代码串中的多路化代码串进行逆多路化,生成可变长度代码;以及对所生成的可变长度代码进行译码后输出再生图像信号。
11.一种译码装置,包括同步代码检测单元,用于按包含对将图像信号压缩编码后生成的多种可变长度代码进行多路化后生成的多路化代码串、并插入了具有与所述同步代码插入位置的间隔相等的最长位数的填充位的输入代码串中的预先周期性确定的多个同步代码插入位置,检测出同步代码;逆多路化单元,用于基于由所述同步代码检测单元检测出的同步代码位置,对所述输入代码串中的多路化代码串进行逆多路化,生成可变长度代码;以及译码单元,用于对所生成的可变长度代码进行译码后输出再生图像信号。
12.根据权利要求11所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的帧单位被多路化,所述逆多路化单元按所述帧单位对所述多路化代码串进行逆多路化。
13.根据权利要求11所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的一帧的部分区域单位被多路化,所述逆多路化单元按所述部分区域单位对所述多路化代码串进行逆多路化。
14.根据权利要求11所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的帧单位被多路化;所述同步代码检测单元按位于紧邻按所述多路化代码串的所述帧单位进行多路化后的各多路化单位的结尾部分之前或之后的同步代码插入位置来检测所述同步代码;以及所述逆多路化单元按所述帧单位对所述多路化代码串进行逆多路化。
15.根据权利要求11所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的一帧的部分区域单位被多路化;所述同步代码检测单元按位于紧邻按所述多路化代码串的所述部分区域单位进行多路化后的各多路化单位的结尾部分之前或之后的同步代码插入位置来检测所述同步代码;以及所述逆多路化单元按所述部分区域单位对所述多路化代码串进行逆多路化。
16.根据权利要求11所述的译码装置,进一步包括代码串变换单元,该代码串变换单元将在所述输入代码串的所述同步代码插入位置上被变换为与所述同步代码的加重平均距离等于或大于预定值的该同步代码以外的代码串变换成原代码串。
17.根据权利要求11所述的译码装置,其中,所述输入代码串可从该输入代码串的逆向进行唯一译码,并插入了与所述同步代码及其一部分之间的加重平均距离大于或等于预定值的填充位。
18.根据权利要求17所述的译码装置,其中,所述填充位被配置在紧邻所述输入代码串中的所述同步代码之前。
19.一种译码方法,包括按包含对将图像信号压缩编码后生成的多种可变长度代码进行多路化后生成的多路化代码串、并插入了长度小于或等于所述同步代码插入位置的周期的填充位的输入代码串中的预先周期性确定的多个同步代码插入位置,检测出同步代码;基于由同步代码检测单元检测出的同步代码位置,对所述输入代码串中的多路化代码串进行逆多路化,生成可变长度代码;以及对所生成的可变长度代码进行译码后输出再生图像信号。
20.一种译码装置,包括同步代码检测单元,用于按包含对将图像信号压缩编码后生成的多种可变长度代码进行多路化后生成的多路化代码串、并插入了长度小于或等于所述同步代码插入位置的周期的填充位的输入代码串中的预先周期性确定的多个同步代码插入位置,检测出同步代码;逆多路化单元,用于基于由所述同步代码检测单元检测出的同步代码位置,对所述输入代码串中的多路化代码串进行逆多路化,生成可变长度代码;以及译码单元,用于对所生成的可变长度代码进行译码后输出再生图像信号。
21.根据权利要求20所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的帧单位被多路化,所述逆多路化单元按所述帧单位对所述多路化代码串进行逆多路化。
22.根据权利要求20所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的一帧的部分区域单位被多路化,所述逆多路化单元按所述部分区域单位对所述多路化代码串进行逆多路化。
23.根据权利要求20所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的帧单位被多路化;所述同步代码检测单元按位于紧邻按所述多路化代码串的所述帧单位进行多路化后的各多路化单位的结尾部分之前或之后的同步代码插入位置来检测所述同步代码;以及所述逆多路化单元按所述帧单位对所述多路化代码串进行逆多路化。
24.根据权利要求20所述的译码装置,其中,所述多路化代码串中所述可变长度代码按照所述图像信号的一帧的部分区域单位被多路化;所述同步代码检测单元按位于紧邻按所述多路化代码串的所述部分区域单位进行多路化后的各多路化单位的结尾部分之前或之后的同步代码插入位置来检测所述同步代码;以及所述逆多路化单元按所述部分区域单位对所述多路化代码串进行逆多路化。
25.根据权利要求20所述的译码装置,进一步包括代码串变换单元,该代码串变换单元将在所述输入代码串的所述同步代码插入位置上被变换为与所述同步代码的加重平均距离等于或大于预定值的该同步代码以外的代码串变换成原代码串。
26.根据权利要求20所述的译码装置,其中,所述输入代码串可从该输入代码串的逆向进行唯一译码,并插入了与所述同步代码及其一部分之间的加重平均距离大于或等于预定值的填充位。
27.根据权利要求26所述的译码装置,其中,所述填充位被配置在紧邻所述输入代码串中的所述同步代码之前。
全文摘要
为了解决在将纠错/检出编码及使用同步代码的同步恢复方法进行组合使用的编码装置中由同步代码的误检测而引起的伪同步或同步偏离的问题,本发明提供一种编码装置和编码方法。具有将输入的多路化代码串(201)编码为由信息位和检查位构成的纠错/检出代码的编码部(212)和将同步代码插入到代码串(201)中预先决定的周期性的多个同步代码插入位置中的某一个位置、同时将信息位配置到代码串中的任意的位置而将检查位配置到代码串(201)中同步代码插入位置以外的位置从而组合成输出代码串(205)的代码串组合部(213)。
文档编号H04N7/64GK1913424SQ20061009389
公开日2007年2月14日 申请日期1997年3月18日 优先权日1996年3月18日
发明者菊地义浩, 渡边敏明, 驮竹健志, 中条健, 永井刚 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1