專利名稱:可變長度譯碼裝置及譯碼方法
技術(shù)領(lǐng)域:
本發(fā)明涉及對例如動圖象信號等由在壓縮編碼中采用的可變長碼構(gòu)成的編碼數(shù)據(jù)進(jìn)行譯碼的可變長度譯碼裝置及譯碼方法。
背景技術(shù):
可變長碼,是根據(jù)符號的發(fā)生頻度分別對頻繁出現(xiàn)的符號分配代碼長度短的代碼、而對只是很少出現(xiàn)的符號分配代碼長度長的代碼從而平均地生成代碼長度短的代碼的代碼序列。因此,當(dāng)采用可變長碼時,與編碼前的數(shù)據(jù)相比,可以大幅度地壓縮數(shù)據(jù)量。由于上述原因,可變長碼作為用于信息壓縮的代碼獲得廣泛應(yīng)用。
對于動圖象編碼方式,也在MPEG1、MPEG2、H.261、H.263等一般的標(biāo)準(zhǔn)方式中采用著可變長碼。
作為可變長碼的一般問題,可以舉出這樣一點(diǎn),即當(dāng)因傳輸線路差錯或其他原因而在編碼數(shù)據(jù)中混入了差錯時,由于其影響的傳播,將使譯碼裝置不能對混入了差錯的以后的數(shù)據(jù)進(jìn)行正確的譯碼。為避免這種問題,一般采用當(dāng)在傳輸線路中有可能發(fā)生差錯時在數(shù)據(jù)中按一定間隔插入同步碼借以防止差錯傳播的方法。對同步碼分配在可變長碼的組合中不出現(xiàn)的位模式。按照這種方法,即使在編碼數(shù)據(jù)中發(fā)生差錯因而已不能譯碼,也可以找到下一個同步碼并從該處重新開始譯碼,所以能防止差錯的傳播,并可以繼續(xù)進(jìn)行譯碼。
但是,即使采用了同步碼,對從發(fā)生差錯而不能正確譯碼的位置起到發(fā)現(xiàn)下一個同步碼的位置之間的編碼數(shù)據(jù),也仍然不能進(jìn)行譯碼。
因此,在本申請人的專利申請(特愿平7-260383號及特愿平9-81614號)中提出了一種可變長度編碼/譯碼裝置,采用可在正向和反向兩個方向上譯碼的可變長碼從下一個同步碼起進(jìn)行反向譯碼,從而減少不能譯碼的部分。
但是,即使在采用了這種可變長度編碼/譯碼裝置的情況下,可以檢出編碼數(shù)據(jù)差錯的條件也是出現(xiàn)了不是作為可變長碼的代碼字使用的位模式,所以有時不是在實際混入差錯的位置而是在其相當(dāng)靠后的位置發(fā)現(xiàn)差錯。其原因是,即使是實際混入了差錯的位置,在該位置上也不一定必然出現(xiàn)不是作為可變長碼的代碼字使用的位模式,因此只要符合作為可變長碼的代碼字使用的位模式,就可以繼續(xù)進(jìn)行譯碼處理。因此,就產(chǎn)生了將本來不正確的代碼字錯誤地當(dāng)作正確的代碼字而進(jìn)行譯碼的問題。
另一方面,迄今為止,作為動圖象編碼·譯碼裝置的傳輸線路差錯的對策,已探討了各種各樣的方法。例如,在文獻(xiàn)(″圖象編碼技術(shù)″,黑田英夫著,昭晃堂,1996)中,作為傳輸線路差錯的對策公開了若干種方法。其中,作為在譯碼器側(cè)進(jìn)行的技術(shù),介紹了一種隱誤技術(shù)。隱誤技術(shù),是當(dāng)編碼數(shù)據(jù)發(fā)生短缺時使用畫面上周圍的動矢量等使差錯的影響盡可能不出現(xiàn)在畫面上的技術(shù)。
但是,在將本來不正確的代碼字錯誤地當(dāng)作正確的代碼字而進(jìn)行譯碼的情況下,存在著不能采用像上述隱誤技術(shù)之類的使差錯的影響盡可能不出現(xiàn)的技術(shù)因而差錯的影響仍會在畫面上出現(xiàn)的問題。
特別是,存在著幀內(nèi)編碼(INTRA)模式下的差錯影響比幀間預(yù)測編碼(INTER)模式的影響大因而在畫面上出現(xiàn)顏色不自然的圖塊的問題。
如上所述,在現(xiàn)有的可變長度譯碼裝置中,當(dāng)對可變長碼進(jìn)行譯碼時,有時會將本來不正確的代碼字錯誤地當(dāng)作正確的代碼字而進(jìn)行譯碼,因此,在應(yīng)用于進(jìn)行了可變長度編碼的動圖象信號的譯碼時,存在著差錯的影響在畫面上出現(xiàn)的問題。
本發(fā)明的目的是,提供一種能夠減少將本來不正確的代碼字錯誤地當(dāng)作正確的代碼字而進(jìn)行譯碼的情況的發(fā)生從而可實現(xiàn)足夠抗錯性的可變長度譯碼裝置及譯碼方法。
發(fā)明的公開本發(fā)明提供的可變長度譯碼裝置,備有輸入部,用于接受由可變長碼構(gòu)成的編碼數(shù)據(jù),該可變長碼由包含在正向或反向都能進(jìn)行譯碼的代碼字的代碼字構(gòu)成;正向譯碼部,從正向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;反向譯碼部,從反向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;及譯碼值決定部,根據(jù)上述正向譯碼部和反向譯碼部的譯碼結(jié)果輸出最終譯碼結(jié)果;上述正向譯碼部及反向譯碼部,分別具有對上述編碼數(shù)據(jù)的差錯進(jìn)行檢測的部,上述譯碼值決定部,利用指示由上述正向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置、及指示由上述反向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置,決定譯碼值。
在該可變長度譯碼裝置中,當(dāng)由上述正向譯碼部及反向譯碼部分別發(fā)現(xiàn)了差錯時,將該差錯發(fā)現(xiàn)位置作為位上的位置和語法上的位置的兩種位置信息通知譯碼值決定部。因此,就能以位上的差錯發(fā)現(xiàn)位置和語法上的差錯發(fā)現(xiàn)位置對實際的差錯位置進(jìn)行雙重檢查,并能以相當(dāng)大的概率僅利用只與正確的代碼字對應(yīng)的譯碼結(jié)果,從而可以減少將本來不正確的代碼字錯誤地當(dāng)作正確的代碼字而進(jìn)行譯碼的情況。
另外,作為譯碼值決定部的譯碼值決定方法,最好是,(a)當(dāng)正向譯碼部和反向譯碼部中的差錯發(fā)現(xiàn)位置無論在位上的位置還是在語法上的位置都不交叉時,將正向的譯碼結(jié)果用作與在正向譯碼部的位上或語法上的差錯發(fā)現(xiàn)位置的一定量之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與在反向譯碼部的位上或語法上的差錯發(fā)現(xiàn)位置的一定量之后的代碼字對應(yīng)的譯碼值,并將其余的編碼數(shù)據(jù)廢棄;(b)當(dāng)正向譯碼部和反向譯碼部中的差錯發(fā)現(xiàn)位置在位上的位置不交叉而在語法上的位置交叉時,將正向的譯碼結(jié)果用作與緊接在反向譯碼部的語法上的差錯發(fā)現(xiàn)位置之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在正向譯碼部的語法上的差錯發(fā)現(xiàn)位置之后的代碼字對應(yīng)的譯碼值,并將語法上的差錯發(fā)現(xiàn)位置交叉部分的編碼數(shù)據(jù)廢棄;(c)當(dāng)正向譯碼部和反向譯碼部中的差錯發(fā)現(xiàn)位置在位上的位置交叉而在語法上的位置不交叉時,將正向的譯碼結(jié)果用作與緊接在反向譯碼部的位上的差錯發(fā)現(xiàn)位置之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在正向譯碼部的位上的差錯發(fā)現(xiàn)位置之后的代碼字對應(yīng)的譯碼值,并將位上的差錯發(fā)現(xiàn)位置交叉部分的編碼數(shù)據(jù)廢棄;(d)當(dāng)正向譯碼部和反向譯碼部中的差錯發(fā)現(xiàn)位置無論在位上的位置還是在語法上的位置都交叉時,選擇交叉部分為最大的位置為差錯發(fā)現(xiàn)位置,而將正向的譯碼結(jié)果用作與緊接在反向譯碼部的差錯發(fā)現(xiàn)位置之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部中的差錯發(fā)現(xiàn)位置之后的代碼字對應(yīng)的譯碼值,并將差錯位置交叉部分的編碼數(shù)據(jù)廢棄。
按照如上方式,可以考慮可變長碼的差錯發(fā)現(xiàn)位置比本來混入差錯的位置相當(dāng)靠后的情況,并在差錯發(fā)現(xiàn)位置在正向或反向都不交叉的(a)的情況下,可以使用一直回溯到其位置與差錯發(fā)現(xiàn)位置相距一定量的代碼字,對于正向和反向差錯發(fā)現(xiàn)位置以任何形式交叉的(b)~(d)的情況,通過將交叉范圍寬的部分廢棄,可以有效地防止發(fā)生將本來出錯的部分判斷為正確的情況。
本發(fā)明提供的動圖象譯碼裝置,備有輸入部,用于接受包含可變長碼的動圖象信號的編碼數(shù)據(jù),該編碼數(shù)據(jù),通過用在正向或反向都能譯碼的代碼字對變換系數(shù)進(jìn)行編碼生成,該變換系數(shù),通過對動圖象信號進(jìn)行正交變換而求得;同步區(qū)間檢測部,用于檢測上述編碼數(shù)據(jù)的同步區(qū)間;正向譯碼部,從正向?qū)τ缮鲜鐾絽^(qū)間檢測部檢測出的規(guī)定同步區(qū)間的編碼數(shù)據(jù)進(jìn)行譯碼;反向譯碼部,從反向?qū)τ缮鲜鐾絽^(qū)間檢測部檢測出的規(guī)定同步區(qū)間的編碼數(shù)據(jù)進(jìn)行譯碼;及譯碼值決定部,根據(jù)正向譯碼部和反向譯碼部的譯碼結(jié)果輸出最終譯碼結(jié)果;上述正向譯碼部及反向譯碼部,分別具有對上述編碼數(shù)據(jù)的差錯進(jìn)行檢測的差錯檢測部,上述譯碼值決定部,利用指示由上述正向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置、及指示由上述反向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置,決定譯碼值。
一般說來,在動圖象編碼方式的性質(zhì)上,與將本來正確的部分廢棄的影響相比,將本來錯誤的部分判斷為正確的影響對顯示畫面造成的影響大。因此,通過以位上的差錯發(fā)現(xiàn)位置和語法上的差錯發(fā)現(xiàn)位置進(jìn)行雙重檢查,可以大幅度地減低因?qū)⒈緛礤e誤的部分判斷為正確而對顯示畫面造成的影響。
另外,作為該動圖象譯碼裝置的譯碼值決定部的譯碼值決定方法,最好是,(a)當(dāng)正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置無論在位上的位置還是在語法上的位置都不交叉時,將正向的譯碼結(jié)果用作與在正向譯碼部的位上或語法上的差錯發(fā)現(xiàn)位置的一定量之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與在反向譯碼部的位上或語法上的差錯發(fā)現(xiàn)位置的一定量之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由其余的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄;(b)當(dāng)正向譯碼部和反向譯碼部中的差錯發(fā)現(xiàn)位置在位上的位置不交叉而在語法上的位置交叉時,將正向的譯碼結(jié)果用作與緊接在反向譯碼部的語法上的差錯發(fā)現(xiàn)位置之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在正向譯碼部的語法上的差錯發(fā)現(xiàn)位置之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由語法上的差錯發(fā)現(xiàn)位置交叉的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄;(c)當(dāng)正向譯碼部和反向譯碼部中的差錯發(fā)現(xiàn)位置在位上的位置交叉而在語法上的位置不交叉時,將正向的譯碼結(jié)果用作與緊接在反向譯碼部的位上的差錯發(fā)現(xiàn)位置之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在正向譯碼部的位上的差錯發(fā)現(xiàn)位置之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由位上的差錯發(fā)現(xiàn)位置交叉的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄;(d)當(dāng)正向譯碼部和反向譯碼部中的差錯發(fā)現(xiàn)位置無論在位上的位置還是在語法上的位置都交叉時,選擇交叉部分最大位置為差錯發(fā)現(xiàn)位置,并將正向的譯碼結(jié)果用作與緊接在反向譯碼部的差錯發(fā)現(xiàn)位置之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部中的差錯發(fā)現(xiàn)位置之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由差錯發(fā)現(xiàn)位置交叉的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄。
按照如上方式,可以考慮可變長碼的差錯發(fā)現(xiàn)位置比本來混入差錯的位置相當(dāng)靠后的情況,并在差錯發(fā)現(xiàn)位置在正向或反向都不交叉的(a)的情況下,可以使用一直回溯到其位置與差錯發(fā)現(xiàn)位置相距一定量的微數(shù)據(jù)塊,對于正向和反向差錯發(fā)現(xiàn)位置以任何形式交叉的(b)~(d)的情況,通過將交叉范圍寬的部分廢棄,可以有效地防止發(fā)生將本來出錯的部分判斷為正確的情況。
進(jìn)一步,當(dāng)在同步區(qū)間內(nèi)的編碼數(shù)據(jù)中檢出差錯時,譯碼值決定部,在未檢出差錯的微數(shù)據(jù)塊內(nèi),將由進(jìn)行了幀內(nèi)編碼的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)的一部分或全部廢棄。
幀內(nèi)編碼模式,當(dāng)發(fā)生差錯時對畫面造成的影響大。具體地說,由于顯示出錯的系數(shù)而發(fā)生在畫面內(nèi)出現(xiàn)顏色不自然的圖塊的現(xiàn)象。因此,如果判明至少在同步區(qū)間內(nèi)發(fā)生差錯,則將幀內(nèi)編碼模式的微數(shù)據(jù)塊廢棄可以減小對畫面的影響。
另外,譯碼值決定部,對已將編碼數(shù)據(jù)廢棄的微數(shù)據(jù)塊,在幀內(nèi)編碼模式的情況下顯示前面的畫面或作為不進(jìn)行編碼的模式處理,并在幀間預(yù)測編碼模式的情況下進(jìn)行動態(tài)補(bǔ)償。
當(dāng)已將DCT系數(shù)廢棄時,在幀內(nèi)編碼模式的情況下,由于沒有動矢量,所以顯示前一個畫面或作為不進(jìn)行編碼的模式處理,在幀間編碼的情況下,由于有上層(upper layer)的動矢量,可利用其進(jìn)行動態(tài)補(bǔ)償,所以,即使沒有DCT系數(shù),也能生成相當(dāng)自然的圖象。即,DCT系數(shù)是下層(lower layer),動矢量是上層。因此,即使沒有下位的DCT系數(shù),但如果有上位的動矢量,就可以生成圖象。
另外,本發(fā)明提供的可變長度譯碼裝置,備有輸入部,用于接受由可變長碼構(gòu)成的編碼數(shù)據(jù),該可變長碼由包含在正向或反向都能進(jìn)行譯碼的代碼字的代碼字構(gòu)成;正向譯碼部,從正向?qū)幋a數(shù)據(jù)進(jìn)行譯碼;反向譯碼部,從反向?qū)幋a數(shù)據(jù)進(jìn)行譯碼;及譯碼值決定部,根據(jù)正向譯碼部和反向譯碼部的譯碼結(jié)果輸出最終譯碼結(jié)果;正向譯碼部及反向譯碼部,分別具有對編碼數(shù)據(jù)的差錯進(jìn)行檢測的差錯檢測部,譯碼值決定部,根據(jù)由正向和反向譯碼部檢出的編碼數(shù)據(jù)的差錯檢測位置、傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率、各代碼字的發(fā)生概率、及代碼字表中的代碼字的位模式,推斷差錯的存在范圍,從而決定最終的譯碼值。
在該可變長度譯碼裝置中,根據(jù)傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率及代碼字的性能,以一定的概率從差錯發(fā)現(xiàn)位置推斷實際的差錯存在位置,所以能夠使將本來不正確的代碼字錯誤地當(dāng)作正確的代碼字而進(jìn)行譯碼的情況減低到一定的概率以下。
附圖的簡單說明圖1是用于說明可逆碼的代碼字的第1構(gòu)成方法的圖。
圖2A和圖2B是分別表示正向碼樹及反向碼樹的圖。
圖3是用于說明可逆碼的代碼字的第2構(gòu)成方法的圖。
圖4是用于說明可逆碼的代碼字的第3構(gòu)成方法的圖。
圖5是表示采用了本發(fā)明第1實施形態(tài)的可變長度譯碼裝置的編碼譯碼系統(tǒng)的結(jié)構(gòu)的框圖。
圖6A和圖6B是表示在第1實施形態(tài)的可變長度譯碼裝置中采用的編碼數(shù)據(jù)的語法例的圖。
圖7A和圖7B是用于說明第1實施形態(tài)的可變長度譯碼裝置的第1譯碼值判斷方法的原理的圖。
圖8A和圖8B是用于說明第1實施形態(tài)的可變長度譯碼裝置的第2譯碼值判斷方法的原理的圖。
圖9是說明第1實施形態(tài)的可變長度譯碼裝置的譯碼值判斷方法的步驟的流程圖。
圖10是表示采用了本發(fā)明第2實施形態(tài)的動圖象譯碼裝置的動圖象編碼/譯碼系統(tǒng)的結(jié)構(gòu)的框圖。
圖11是表示第2實施形態(tài)的動圖象譯碼裝置的動圖象多路分離器的結(jié)構(gòu)的框圖。
圖12A和圖12B是表示在第2實施形態(tài)的動圖象譯碼裝置中采用的編碼數(shù)據(jù)的語法的圖。
圖13是表示在第2實施形態(tài)的動圖象譯碼裝置中所設(shè)有的下層可變長度譯碼器的結(jié)構(gòu)的框圖。
圖14是表示在第2實施形態(tài)的動圖象譯碼裝置中所設(shè)有的信息源譯碼器的結(jié)構(gòu)的框圖。
圖15A和圖15B是用于說明第2實施形態(tài)的動圖象譯碼裝置的第1譯碼值判斷方法的原理的圖。
圖16A和圖16B是用于說明第2實施形態(tài)的動圖象譯碼裝置的第2譯碼值判斷方法的原理的圖。
圖17是用于說明第2實施形態(tài)的動圖象譯碼裝置的第3譯碼值判斷方法的原理的圖。
圖18是說明第2實施形態(tài)的動圖象譯碼裝置的譯碼值判斷方法的步驟的流程圖。
圖19是說明圖10的動圖象編碼/譯碼系統(tǒng)的編碼器采用可逆碼對動圖象信號的DCT系數(shù)進(jìn)行可變長度編碼的步驟的流程圖。
圖20是說明圖10的動圖象編碼/譯碼系統(tǒng)的正向譯碼器對包含可逆碼編碼數(shù)據(jù)進(jìn)行可變長度譯碼的步驟的流程圖。
圖21是說明圖10的動圖象編碼/譯碼系統(tǒng)的反向譯碼器對包含可逆碼的編碼數(shù)據(jù)進(jìn)行可變長度譯碼的步驟的流程圖。
圖22是表示在圖10的動圖象編碼/譯碼系統(tǒng)的編碼器中為從INTRA模式的非LAST系數(shù)的RUN及LEVEL值檢索代碼字表的INDEX值而采用的INDEX表的圖。
圖23是表示在圖10的動圖象編碼/譯碼系統(tǒng)的編碼器中為從INTER模式的非LAST系數(shù)的RUN及LEVEL值檢索代碼字表的INDEX值而采用的INDEX表的圖。
圖24是表示在圖10的動圖象編碼/譯碼系統(tǒng)的編碼器中為從LAST系數(shù)的RUN及LEVEL檢索代碼字表的INDEX值而采用的INDEX表的圖。
圖25是表示在圖10的動圖象編碼/譯碼系統(tǒng)中使用的代碼字表的一部分的圖。
圖26是表示在圖10的動圖象編碼/譯碼系統(tǒng)中使用的代碼字表的其余部分的圖。
圖27是表示在圖10的動圖象編碼/譯碼系統(tǒng)中使用的RUN用固定長度代碼字表的圖。
圖28是表示在圖10的動圖象編碼/譯碼系統(tǒng)中使用的LEVEL用固定長度代碼字表的圖。
圖29是表示在圖10的動圖象編碼/譯碼系統(tǒng)中使用的固定長度可逆碼的數(shù)據(jù)形式的圖。
圖30是表示在圖10的動圖象編碼/譯碼系統(tǒng)的譯碼器中使用的代碼字表的一部分的圖。
圖31是表示在圖10的動圖象編碼/譯碼系統(tǒng)的譯碼器中使用的代碼字表的其余部分的圖。
圖32是表示在第2實施形態(tài)的動圖象譯碼裝置中根據(jù)不在代碼字中使用的位模式的出現(xiàn)檢測差錯的方法的步驟的流程圖。
圖33是表示在第2實施形態(tài)的動圖象譯碼裝置中根據(jù)語法上不可能有的狀態(tài)的出現(xiàn)檢測差錯的方法的步驟的流程圖。
圖34是表示LEVEL用固定長度代碼字表的其他結(jié)構(gòu)例的圖。
圖35是表示在兩端附加了ESCAPE碼的編碼數(shù)據(jù)串的其他結(jié)構(gòu)例的圖。
圖36是表示在兩端附加了ESCAPE碼的編碼數(shù)據(jù)串的另一種結(jié)構(gòu)例的圖。
圖37是表示使用了圖35或圖36的編碼數(shù)據(jù)串時的編碼處理步驟的流程圖。
圖38是表示使用了圖35或圖36的編碼數(shù)據(jù)串時的正向譯碼處理步驟的流程圖。
圖39是表示使用了圖35或圖36的編碼數(shù)據(jù)串時的反向譯碼處理步驟的流程圖。
圖40是表示使用了圖35或圖36的編碼數(shù)據(jù)串時所采用的差錯檢測處理步驟的流程圖。
圖41是表示使用了二進(jìn)制補(bǔ)碼表示的LEVEL固定長度代碼字表的結(jié)構(gòu)例的圖。
圖42是表示使用了圖41的LEVEL固定長度代碼字表時的編碼數(shù)據(jù)串的結(jié)構(gòu)例的圖。
圖43是表示使用了圖41的LEVEL固定長度代碼字表時的編碼數(shù)據(jù)串的其他結(jié)構(gòu)例的圖。
圖44是表示編碼數(shù)據(jù)串的其他結(jié)構(gòu)例的圖。
圖45是表示使用了圖41的LEVEL固定長度代碼字表時的編碼數(shù)據(jù)串的又一種結(jié)構(gòu)例的圖。
圖46是表示使用了圖41的LEVEL固定長度代碼字表時的編碼數(shù)據(jù)串的另一結(jié)構(gòu)例的圖。
圖47是表示使用了圖42、圖43或圖46的編碼數(shù)據(jù)串時所采用的正向譯碼處理步驟的流程圖。
圖48是表示使用了圖42、圖43或圖46的編碼數(shù)據(jù)串時所采用的反向譯碼處理步驟的流程圖。
圖49是表示使用了圖45的編碼數(shù)據(jù)串時所采用的正向譯碼處理步驟的流程圖。
圖50是表示使用了圖45的編碼數(shù)據(jù)串時所采用的反向譯碼處理步驟的流程圖。
圖51是表示本發(fā)明第3實施形態(tài)的可變長度譯碼裝置的結(jié)構(gòu)的框圖。
圖52是表示不能以等號滿足Kraft不等式的代碼的圖。
圖53是表示不能以等號滿足Kraft不等式的代碼的碼樹的圖。
圖54是說明二進(jìn)制對稱通信線路的圖。
圖55是二進(jìn)制對稱通信線路上的代碼字的狀態(tài)遷移圖的例。
圖56是二進(jìn)制對稱通信線路上的代碼字的狀態(tài)遷移表。
圖57A、57B和57C是表示出該第3實施形態(tài)的譯碼值決定部的譯碼動作的圖。
圖58A、58B和58C是表示出該第3實施形態(tài)的譯碼值決定部的另一種譯碼動作的圖。
圖59是表示組裝了本發(fā)明的可變長度譯碼裝置的系統(tǒng)一例的圖。
用于實施發(fā)明的最佳形態(tài)以下,參照
本發(fā)明的實施形態(tài)。
本發(fā)明,將可在正向和反向兩個方向上譯碼的可逆碼(ReversibleVLC)用作可變長碼,所以在說明本發(fā)明的實施形態(tài)前先參照圖1~圖4說明可逆碼。
圖1示出可逆碼的代碼字的第1構(gòu)成方法。首先,如圖1的左側(cè)所示,按代碼長度短的順序以各序列的權(quán)重(在該情況下,為″1″的數(shù))為定值的形式生成具有不同權(quán)重的2個二進(jìn)制序列(在該情況下,權(quán)重為0個和1個)。接著,如圖1的中央所示,在該二進(jìn)制序列的開頭和末尾分別追加″1″并使權(quán)重為1的二進(jìn)制序列的位反轉(zhuǎn),然后,如圖1的右側(cè)所示,將這2個二進(jìn)制序列合成。
在該可變長碼中,通過對位于各代碼開頭的符號的個數(shù)進(jìn)行計數(shù)而得知代碼的長度。在圖1的例中,代碼的結(jié)構(gòu)為,當(dāng)開頭為″0″時,如果″0″出現(xiàn)了3個就可以得知代碼的分界(代碼長度),當(dāng)開頭為″1″時,如果″1″出現(xiàn)了2個就可以得知代碼的分界。此外,該圖1中示出的可變長碼,無論對圖2A所示的正向譯碼樹的葉部還是對圖2B所示的反向譯碼樹的葉部都分配了與所有信息符號A~J對應(yīng)的代碼字,所以可以看出在正向或反向都可以進(jìn)行譯碼。
圖3示出可逆碼的代碼字的第2構(gòu)成方法。首先,如圖3的左側(cè)所示,準(zhǔn)備好第1可逆碼及第2可逆碼。其次,如圖3的中央所示,在第1可逆碼的所有代碼字的末尾追加第2可逆碼的開頭的一個代碼字。接著,同樣地在第1可逆碼的所有代碼字的末尾逐個地追加第2可逆碼的所有代碼字,然后,如圖3的右側(cè)所示,進(jìn)行重新排列,從而構(gòu)成新的可逆碼。按照這種構(gòu)成方法,可以構(gòu)成將第1可逆碼的代碼字?jǐn)?shù)A(在本例中A=9)與第2可逆碼的代碼字?jǐn)?shù)B(在本例中B=3)相乘后的個數(shù)為A×B個(在本例中為27個)的新的可逆碼。
當(dāng)對本構(gòu)成方法的可逆碼進(jìn)行譯碼時,如從正向譯碼,則首先對第1可逆碼譯碼,然后對第2可逆碼進(jìn)行譯碼。當(dāng)從反向譯碼時,首先對第2可逆碼譯碼,然后對第1可逆碼進(jìn)行譯碼。因此,可以看出在正向或反向都可以進(jìn)行譯碼。
另外,在本例中,在第1可逆碼的代碼字末尾追加了第2可逆碼,但也可以將第2可逆碼追加在第1可逆碼的開頭,還可以在第1可逆碼的代碼字的末尾和開頭兩邊都追加固定長度碼。此外,在本例中,采用了不同的第1可逆碼和第2可逆碼,但也可以使用同一個可逆碼。進(jìn)一步,在本實施形態(tài)中,第1可逆碼或第2可逆碼都采用了可變長碼,但也可以將其中任何一個變更為固定長度碼。
圖4示出可逆碼的第3代碼構(gòu)成方法。首先,如圖4的左側(cè)所示,準(zhǔn)備好可變長度的可逆碼及固定長度的可逆碼。其次,如圖4的右側(cè)所示,在可逆碼的代碼字的各位的后面追加固定長度的可逆碼。按照這種構(gòu)成方法,當(dāng)采用K位的固定長度可逆碼時,可以使H位的代碼字變?yōu)?K+1)H位,并使代碼字?jǐn)?shù)變?yōu)?KH倍。
另外,在本例中,在可逆碼的代碼字的每個位的后面追加了固定長度代碼,但也可以將固定長度碼追加在各位的前面,還可以在前面和后面兩邊都追加固定長度碼。
以下,說明按照本發(fā)明的實施形態(tài)的可變長度編碼/譯碼裝置的結(jié)構(gòu)。
(第1實施形態(tài))在圖5中,示出本發(fā)明第1實施形態(tài)的可變長度編碼/譯碼裝置的結(jié)構(gòu)。該可變長度編碼/譯碼裝置,執(zhí)行可變長度編碼數(shù)據(jù)的生成及其譯碼。在可變長度編碼數(shù)據(jù)中按一定間隔插入同步碼,并將如上所述的可在正向和反向兩個方向上譯碼的可逆碼(Reversible VLC)用作可變長碼。
可變長度譯碼裝置11,如圖5所示,由編碼器111、代碼字表112、及同步區(qū)間設(shè)定部113構(gòu)成。在代碼字表112內(nèi),以與各信息符號對應(yīng)的方式存儲著根據(jù)參照圖1~圖4說明過的可逆代碼字的構(gòu)成方法預(yù)先生成的可變長度代碼字。在該代碼字表112中,還與各信息符號對應(yīng)地存儲著在正向或反向都能譯碼的可逆碼。編碼器111,參照代碼字表112將信息符號編碼為可變長度代碼字,并從存儲在代碼字表112內(nèi)的代碼字中選擇和輸出與所輸入的信息符號對應(yīng)的代碼字。在同步區(qū)間設(shè)定部113中,按每個同步區(qū)間匯集由編碼器111選定的代碼字,進(jìn)一步插入在正向或反向都能譯碼的填充代碼,并按每個同步區(qū)間輸出編碼數(shù)據(jù)。該編碼數(shù)據(jù),通過傳輸系統(tǒng)或存儲系統(tǒng)13傳送到可變長度譯碼器12。
可變長度譯碼器12,包括同步區(qū)間檢測部121、緩沖器122、2個開關(guān)S和T、正向譯碼器123、正向代碼字表124、譯碼值決定部125、反向譯碼器126、及反向代碼字表127。
在可變長度譯碼器12中,由同步區(qū)間檢測部106檢測從傳輸系統(tǒng)或存儲系統(tǒng)13輸入的編碼數(shù)據(jù)的同步區(qū)間,并按該每個同步區(qū)間進(jìn)行編碼數(shù)據(jù)的譯碼處理。
當(dāng)從傳輸系統(tǒng)或存儲系統(tǒng)13輸入的編碼數(shù)據(jù)為只能正向譯碼的可變長碼時,開關(guān)S連接在A側(cè),由正向譯碼器123使用正向代碼字表124進(jìn)行通常的正向譯碼。由正向譯碼器123譯碼后的編碼數(shù)據(jù)傳送到譯碼值決定部125。
當(dāng)編碼數(shù)據(jù)為可雙向譯碼的可變長碼時,開關(guān)S連接在B側(cè),并將同步區(qū)間內(nèi)的所有編碼數(shù)據(jù)暫時存儲在緩沖器122內(nèi)。由正向譯碼器123等通過對存儲在緩沖器122內(nèi)的編碼數(shù)據(jù)的位數(shù)進(jìn)行計數(shù)等檢查由可雙向譯碼的可變長碼構(gòu)成的編碼數(shù)據(jù)的總位數(shù)。然后,從緩沖器122讀出編碼數(shù)據(jù),并由正向譯碼器123開始使用正向代碼字表124的通常的正向譯碼。該正向譯碼,一面檢查編碼數(shù)據(jù)是否含有差錯一面進(jìn)行譯碼處理。
具體地說,當(dāng)出現(xiàn)了在正向代碼字表124內(nèi)不存在的位模式時,或在譯碼后的編碼數(shù)據(jù)的位長合計值尚未達(dá)到上述總位數(shù)的狀態(tài)下已經(jīng)沒有了應(yīng)進(jìn)行譯碼的數(shù)據(jù)時,或者,發(fā)生了語法(編碼數(shù)據(jù)的文法上的規(guī)則)上不可能有的狀態(tài)時,在上述狀態(tài)的發(fā)現(xiàn)位置檢測發(fā)生差錯的情況。所謂語法上不可能有的狀態(tài),例如,意味著當(dāng)由上層編碼數(shù)據(jù)指定著下層的對應(yīng)各編碼數(shù)據(jù)所含有的代碼字?jǐn)?shù)時,該指定的代碼字?jǐn)?shù)與各編碼數(shù)據(jù)所含有的代碼字?jǐn)?shù)不一致的狀態(tài)等。
無論在什么樣的條件下發(fā)現(xiàn)了編碼數(shù)據(jù)的差錯,都要將發(fā)現(xiàn)差錯前正常完成譯碼的正向譯碼結(jié)果與位上的差錯發(fā)現(xiàn)位置及語法上的差錯發(fā)現(xiàn)位置一起作為指示發(fā)現(xiàn)了該差錯的位置的信息傳送到譯碼值判定部125。這里,位上的差錯發(fā)現(xiàn)位置,指示檢出差錯的位置從同步位置開始數(shù)起是第幾位的編碼數(shù)據(jù)。而語法上的差錯發(fā)現(xiàn)位置,例如,指示檢測出該同一差錯的位置從同步位置開始數(shù)起是第幾個代碼字的編碼數(shù)據(jù)等。
當(dāng)由正向譯碼器123發(fā)現(xiàn)了差錯時,開關(guān)T被接通,存儲在緩沖器122內(nèi)的編碼數(shù)據(jù)這次是傳送到反向譯碼器126,由此開始使用反向代碼字表127從反向進(jìn)行譯碼。該反向譯碼,也是一面檢查編碼數(shù)據(jù)是否含有差錯一面進(jìn)行譯碼處理。差錯檢測的條件,與正向譯碼器123時相同,當(dāng)由反向譯碼發(fā)現(xiàn)了差錯時,將發(fā)現(xiàn)差錯前正常完成譯碼的反向譯碼結(jié)果與位上的差錯發(fā)現(xiàn)位置及語法上的差錯發(fā)現(xiàn)位置一起作為指示發(fā)現(xiàn)了該差錯的位置的信息傳送到譯碼值判定部125。
在譯碼值決定部125中,將正向譯碼器123的譯碼結(jié)果與反向譯碼器126的譯碼結(jié)果進(jìn)行對照,以決定最終的譯碼結(jié)果。即,根據(jù)從正向譯碼器123和反向譯碼器126分別通知的位上和語法上的兩方面的差錯發(fā)現(xiàn)位置,對正確代碼字與不正確代碼字的邊界進(jìn)行雙重判斷,并僅對以相當(dāng)大的概率估計為正確代碼字的代碼字將來自正向的譯碼結(jié)果和來自反向的譯碼結(jié)果有選擇地作為其譯碼值,而將除此以外的代碼字廢棄。
圖6A和圖6B,是表示本實施形態(tài)的編碼數(shù)據(jù)的語法一例的圖。
如圖6A所示,編碼數(shù)據(jù)被分成上層的D信息和下層的G信息兩層信息,并進(jìn)行編碼使G的代碼字相對于1個D的代碼字連續(xù)存在m個,當(dāng)D信息由n個代碼字構(gòu)成時,在該D信息的后面G信息由n×m個代碼字構(gòu)成。這里,以D信息及接在其后的G信息為單位設(shè)定同步區(qū)間,并在其中插入再同步標(biāo)記(RM1)。此外,在D信息與G信息之間也設(shè)定再同步標(biāo)記(RM2)。
另外,D信息,以只能進(jìn)行通常的正向譯碼的可變長碼進(jìn)行編碼,G信息則以可雙向譯碼的可變長碼進(jìn)行編碼。因此,在該語法中,G信息的總代碼字?jǐn)?shù),在對D信息進(jìn)行譯碼的時刻判明,已知為n×m個。該G信息的總代碼字?jǐn)?shù)的值,用于以語法上的位置表示差錯發(fā)現(xiàn)位置,就是說,用于判斷在屬于從同步開始位置到結(jié)束位置的代碼字中的第幾個代碼字上發(fā)生了差錯等。
圖7和圖8,是表示對由可雙向譯碼的可變長碼構(gòu)成的G信息的編碼數(shù)據(jù)進(jìn)行譯碼時的譯碼值決定部304的動作的圖。
首先,對G信息定義如下的函數(shù)。
L ...總位數(shù)W ...總代碼字?jǐn)?shù)(=n×m)W1...正向譯碼后的代碼字?jǐn)?shù)W2...反向譯碼后的代碼字?jǐn)?shù)L1...正向譯碼后的位數(shù)L2...反向譯碼后的位數(shù)f_code(L1)...正向L1位譯碼后的代碼字?jǐn)?shù)b_code(L2)...反向L2譯碼后的代碼字?jǐn)?shù)圖7A示出當(dāng)正向譯碼器123和反向譯碼器126各自的差錯發(fā)現(xiàn)位置與位上的位置或代碼字上的位置都不交叉(不交錯)時即L1+L2<L、且W1+W2<W時的情況。在這種情況下,使用回溯了T代碼字的位置之前的編碼數(shù)據(jù),從正向使用W1-T個代碼字,從反向使用W2-T個代碼字,而將其余的代碼字廢棄。
這里,規(guī)定了回溯T代碼字,但也可以將G信息回溯T位或T數(shù)據(jù)塊。
圖7B示出當(dāng)正向譯碼器123和反向譯碼器126各自的差錯發(fā)現(xiàn)位置與位上的位置不交叉但與代碼字上的位置交叉時即L1+L2<L、且W1+W2≥W時的情況。這種狀況,例如在從實際混入差錯的位置起很小的間隔內(nèi)將編碼數(shù)據(jù)所含有的各代碼字作為具有位數(shù)比其本來的位數(shù)少的位模式的代碼字進(jìn)行譯碼等情況下發(fā)生。
在這種情況下,從正向使用W-W2個代碼字,從反向使用W-W1個代碼字,而將其余的代碼字廢棄。
圖7A示出當(dāng)正向譯碼器123和反向譯碼器126各自的差錯發(fā)現(xiàn)位置與位上的位置交叉但與代碼字上的位置不交叉時即L1+L2≥L、且W1+W2<W時的情況。這種狀況,例如在從實際混入差錯的位置起很小的間隔內(nèi)將編碼數(shù)據(jù)所含有的各代碼字作為具有比其本來的位數(shù)多的位數(shù)的位模式的代碼字進(jìn)行譯碼等情況下發(fā)生。
在這種情況下,從正向使用W-b_code(L2)微數(shù)據(jù)塊的代碼字,從反向使用W-f_code(L1)微數(shù)據(jù)塊的代碼字,而將其余的代碼字廢棄。
圖7B示出當(dāng)正向譯碼器123和反向譯碼器126各自的差錯發(fā)現(xiàn)位置與位上的位置或代碼字上的位置都交叉時即L1+L2≥L、且W1+W2≥W時的情況。在這種情況下,從正向使用min{W-b_code(L2),W-W2}個代碼字,從反向使用min{W-f_code(L1),W-W1}個代碼字,而將其余的代碼字廢棄。
這里,通過使用圖2的語法判明G信息的總代碼字?jǐn)?shù)并將代碼字的位置用作語法上的位置,但除此以外,只要是采用利用了語法的邏輯位置,則無論什么樣的情況都可以適用。
以下,說明本實施形態(tài)的可變長度譯碼器12的譯碼處理方法的步驟。
本譯碼處理方法,如圖5所述,基本上是在采用了可從兩個方向譯碼的可變長碼的編碼數(shù)據(jù)中檢出差錯前從正向進(jìn)行譯碼處理,而當(dāng)從該正向的譯碼處理中檢出差錯時,開始從反向的譯碼處理,直到下一次在該編碼數(shù)據(jù)中檢出差錯為止。并利用從正向和反向的譯碼結(jié)果、及在從正向和反向的譯碼中分別檢出的編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置及語法上的差錯發(fā)現(xiàn)位置決定譯碼值。
圖9是表示由可逆碼構(gòu)成的可變長度編碼數(shù)據(jù)的譯碼處理方法的步驟的流程圖。
首先,定義上述的函數(shù)L、W、W1、W2、L1、L2、f_code(L1)、b_code(L2),然后,從同步區(qū)間開頭的G信息開始進(jìn)行正向譯碼(步驟S101)。如果在該正向的譯碼處理中在同步區(qū)間內(nèi)沒有發(fā)現(xiàn)任何差錯,則結(jié)束譯碼處理(步驟S102)。另一方面,當(dāng)在該正向的譯碼處理中發(fā)現(xiàn)了差錯時,從同步區(qū)間末尾的G信息開始進(jìn)行反向譯碼(步驟S103)。當(dāng)在正向的譯碼處理中發(fā)現(xiàn)了差錯時,通常,在反向的譯碼處理中也會發(fā)現(xiàn)差錯。
如果差錯發(fā)現(xiàn)位置與位上的位置或代碼字上的位置都不交叉時,即當(dāng)L1+L2<L、且W1+W2<W時(步驟S104),使用回溯了T代碼字的位置之前的編碼數(shù)據(jù),從正向使用W1-T個代碼字、從反向使用W2-T個代碼字,而將其余的代碼字廢棄(步驟S105)。
如果差錯發(fā)現(xiàn)位置與位上的位置不交叉但與代碼字上的位置交叉時,即當(dāng)L1+L2<L、且W1+W2≥W時(步驟S106),從正向使用W-W2個代碼字,從反向使用W-W1個代碼字,而將其余的代碼字廢棄(步驟S107)。
如果差錯發(fā)現(xiàn)位置與位上的位置交叉但與代碼字上的位置不交叉時,即當(dāng)L1+L2≥L、且W1+W2<W時(步驟S108),從正向使用W-b_code(L2)微數(shù)據(jù)塊的代碼字,從反向使用W-f_code(L1)微數(shù)據(jù)塊的代碼字,而將其余的代碼字廢棄(步驟S109)。
如果差錯發(fā)現(xiàn)位置是除上述以外的情況,具體地說,當(dāng)與位上的位置或代碼字上的位置都交叉時,即當(dāng)L1+L2≥L、且W1+W2≥W時,從正向使用min{W-b_code(L2),W-W2}個代碼字,從反向使用min{W-f_code(L1),W-W1}個代碼字,而將其余的代碼字廢棄(步驟S110)。
(第2實施形態(tài))在圖10中,示出本第2實施形態(tài)的動圖象信號可變長度編碼/譯碼裝置的結(jié)構(gòu)。
該動圖象編碼/譯碼裝置,由動圖象編碼器(視頻編碼器)21、動圖象譯碼器22、及傳輸系統(tǒng)或存儲系統(tǒng)23構(gòu)成。
在動圖象編碼器21中,由信息源編碼器202編碼后的數(shù)據(jù),用動圖象多路化器203分成上層和下層而分別進(jìn)行可變長度編碼,并進(jìn)行該上層數(shù)據(jù)和下層數(shù)據(jù)的多路化及同步區(qū)間的設(shè)定等。該數(shù)據(jù)由發(fā)送緩沖器204平滑化后,作為編碼數(shù)據(jù)輸送到傳輸系統(tǒng)或存儲系統(tǒng)23。編碼控制部201,通過考慮發(fā)送緩沖器204的緩沖量,對信息源編碼器202及動圖象多路化器203進(jìn)行控制。
另一方面,在動圖象譯碼器22中,來自傳輸系統(tǒng)或存儲系統(tǒng)23的數(shù)據(jù)存儲在接收緩沖器205內(nèi),并由動圖象多路化分離器206按編碼數(shù)據(jù)的每個同步區(qū)間進(jìn)行上層和下層的多路分離及其可變長度譯碼,然后,傳送到信息源譯碼器207,對動圖象信息進(jìn)行最終的譯碼。
這里,在動圖象多路化器203及動圖象多路化分離器206中,應(yīng)用著在第1實施形態(tài)中說明過的可變長度編碼/譯碼裝置。
圖11是表示本第2實施形態(tài)的動圖象多路化分離器206的框圖。
由接收緩沖器205接收到的編碼數(shù)據(jù),傳送到多路化分離器501,由多路化分離器501檢測同步區(qū)間后,按每個同步區(qū)間分離上層和下層的編碼數(shù)據(jù),并分別傳送到上層可變長度譯碼器502、下層可變長度譯碼器503,進(jìn)行可變長度譯碼。
圖12A和圖12B,示出在本第2實施形態(tài)中使用的動圖象編碼數(shù)據(jù)的語法。
編碼數(shù)據(jù),按每個視頻信息包分層為上層(圖12A)和下層(圖12B)。在上層數(shù)據(jù)和下層數(shù)據(jù)中,分別由再同步標(biāo)記(RM)及運(yùn)動標(biāo)記(MM)設(shè)定同步區(qū)間。此外,下層的ST是填充代碼。
在該語法中,用作動圖象信號的預(yù)測編碼單位的微數(shù)據(jù)塊的模式信息的一部分及動矢量信息為上層,模式信息的一部分、INTRA DC(幀內(nèi)編碼的DCT系數(shù)的DC值)、及DCT系數(shù)信息為下層。在這些信息間也設(shè)定著表示其分界的同步碼。此外,在DCT系數(shù)信息中采用著可逆碼。
通常,視頻信息包,包含多個微數(shù)據(jù)塊,在上層的標(biāo)題信息中,設(shè)定著該視頻信息包所含有的開頭的微數(shù)據(jù)塊編號。此外,上層的模式信息1及動矢量信息按每個微數(shù)據(jù)塊進(jìn)行設(shè)定,模式信息1及動矢量信息的循環(huán)數(shù),僅相當(dāng)于該視頻信息包所含有的微數(shù)據(jù)塊的個數(shù)。
圖13是表示本第2實施形態(tài)的下層可變長度譯碼器503的結(jié)構(gòu)的框圖。
如上所述,由圖11的多路化分離器501按每個同步區(qū)間分離為上層和下層編碼數(shù)據(jù)后的數(shù)據(jù)中的下層編碼數(shù)據(jù),被傳送到下層可變長度譯碼器503。
在該下層可變長度譯碼器503中,在語法上變?yōu)镈CT系數(shù)信息之前,開關(guān)S連接在A側(cè),并由正向譯碼器704使用正向代碼字表703進(jìn)行通常的正向譯碼。由正向譯碼器704譯碼后的編碼數(shù)據(jù)傳送到譯碼值決定部705。當(dāng)發(fā)現(xiàn)了差錯時,通過與上層可變長度譯碼器502的譯碼結(jié)果進(jìn)行比較而決定譯碼結(jié)果。
當(dāng)編碼數(shù)據(jù)為DCT系數(shù)信息時,開關(guān)S連接在B側(cè),并將同步區(qū)間內(nèi)的所有DCT系數(shù)信息存儲在緩沖器702內(nèi)。由正向譯碼器704等通過對存儲在緩沖器702內(nèi)的編碼數(shù)據(jù)的位數(shù)進(jìn)行計數(shù),檢查由可雙向譯碼的可變長碼構(gòu)成的DCT系數(shù)信息的總位數(shù)。然后,從緩沖器702讀出編碼數(shù)據(jù),并由正向譯碼器704開始使用正向代碼字表703的通常的正向譯碼。該正向譯碼,一面檢查編碼數(shù)據(jù)是否含有差錯一面進(jìn)行譯碼處理。
具體地說,當(dāng)出現(xiàn)了在正向代碼字表703內(nèi)不存在的位模式時,或在譯碼后的編碼數(shù)據(jù)的位長合計值尚未達(dá)到上述總位數(shù)的狀態(tài)下已經(jīng)沒有了應(yīng)進(jìn)行譯碼的數(shù)據(jù)時,或者,發(fā)生了語法上不可能有的狀態(tài)時,在上述狀態(tài)的發(fā)現(xiàn)位置檢測發(fā)生差錯的情況。所謂語法上不可能有的狀態(tài),例如,意味著在8×8的DCT系數(shù)的各數(shù)據(jù)塊中的連″0″的個數(shù)與非零系數(shù)的個數(shù)的合計值大于64個的狀態(tài)等。
無論在什么樣的條件下發(fā)現(xiàn)了編碼數(shù)據(jù)的差錯,都要將發(fā)現(xiàn)差錯前正常完成譯碼的正向譯碼結(jié)果與位上的差錯發(fā)現(xiàn)位置及語法上的差錯發(fā)現(xiàn)位置一起作為指示發(fā)現(xiàn)了該差錯的位置的信息傳送到譯碼值決定部705。這里,位上的差錯發(fā)現(xiàn)位置,指示檢出差錯的位置從DCT系數(shù)信息的同步開始數(shù)起是第幾位的編碼數(shù)據(jù)。而語法上的差錯發(fā)現(xiàn)位置,例如,對于該同一差錯,指示檢出該差錯的位置是從同步位置開始數(shù)起是第幾個微數(shù)據(jù)塊等。
當(dāng)由正向譯碼器704發(fā)現(xiàn)了差錯時,開關(guān)T被接通,存儲在緩沖器122內(nèi)的編碼數(shù)據(jù)這次是傳送到反向譯碼器708,由反向譯碼器708開始使用反向代碼字表707從反向進(jìn)行譯碼。該反向譯碼,也是一面檢查在由可雙向譯碼的DCT系數(shù)信息構(gòu)成的編碼數(shù)據(jù)中是否含有差錯一面進(jìn)行譯碼處理。差錯檢測的條件,與正向譯碼器704時相同,當(dāng)在反向譯碼中發(fā)現(xiàn)了差錯時,將發(fā)現(xiàn)差錯前正常完成譯碼的反向譯碼結(jié)果與位上的差錯發(fā)現(xiàn)位置及語法上的差錯發(fā)現(xiàn)位置一起作為指示發(fā)現(xiàn)了該差錯的位置的信息傳送到譯碼值決定部705。
在譯碼值決定部705中,將正向譯碼器704的譯碼結(jié)果與反向譯碼器708的譯碼結(jié)果進(jìn)行對照,以決定最終的譯碼結(jié)果。即,根據(jù)從正向譯碼器704和反向譯碼器708分別通知的位上和語法上的兩方面的差錯發(fā)現(xiàn)位置,對正確微數(shù)據(jù)塊與不正確微數(shù)據(jù)塊的邊界進(jìn)行雙重判斷,并僅對以相當(dāng)大的概率估計為所有代碼字都正確的微數(shù)據(jù)塊將來自正向的譯碼結(jié)果和來自反向的譯碼結(jié)果有選擇地作為其譯碼值,而將除此以外的微數(shù)據(jù)塊廢棄。
圖14示出信息源譯碼器207的結(jié)構(gòu)的一例。
在信息源譯碼器207上,輸入由動圖象多路化分離器206分離并進(jìn)行了可變長度譯碼后的模式信息、動矢量信息、DCT系數(shù)信息等。
輸入了模式信息的模式判定電路804,當(dāng)模式信息為INTRA時,有選擇地使模式切換開關(guān)805斷開,從而切斷與幀存儲器806的連接,而由反量化電路801對DCT系數(shù)信息進(jìn)行反量化,并由IDCT電路802進(jìn)行反離散余弦變換處理。由此,生成再生圖象信號。該再生圖象信號,作為參照圖象存儲在幀存儲器806內(nèi),另一方面,作為再生圖象信號輸出到顯示裝置。
如果模式信息為INTER,則使模式切換開關(guān)805接通,從而將加法器803與幀存儲器806連接。因此,由反量化電路801對DCT系數(shù)信息進(jìn)行反量化,并由IDCT電路802進(jìn)行反離散余弦變換處理,然后通過加法器803與根據(jù)動矢量信息對幀存儲器806的參照圖象進(jìn)行動態(tài)補(bǔ)償后所得到的信息相加,以生成再生圖象信號。該再生圖象信號,作為參照圖象存儲在幀存儲器806內(nèi),另一方面,作為再生圖象信號輸出。
圖15A~圖16B,是表示對由可雙向譯碼的可變長碼構(gòu)成的DCT系數(shù)信息的編碼數(shù)據(jù)進(jìn)行譯碼時譯碼值決定部705的動作。
首先,對DCT系數(shù)信息定義如下的函數(shù)。
L ...總位數(shù)N ...總微數(shù)據(jù)塊數(shù)N1 ...正向譯碼后的微數(shù)據(jù)塊數(shù)N2 ...反向譯碼后的微數(shù)據(jù)塊數(shù)L1 ...正向譯碼后的位數(shù)L2 ...反向譯碼后的位數(shù)f_mb(L)...正向L位譯碼后的微數(shù)據(jù)塊數(shù)b_mb(L)...反向L位譯碼后的微數(shù)據(jù)塊數(shù)圖15A示出當(dāng)正向譯碼器704和反向譯碼器708各自的差錯發(fā)現(xiàn)位置與位上的位置或代碼字上的位置都不交叉時,即L1+L2<L、且N1+N2<N時的情況。在這種情況下,使用回溯了T位的位置之前的位,從正向使用f_mb(L1-T)微數(shù)據(jù)塊的系數(shù)信息,從反向使用b_mb(L2-T)微數(shù)據(jù)塊的系數(shù)信息,而將其余的系數(shù)信息廢棄。
這里,規(guī)定了回溯T位,但也可以回溯T代碼字、或T數(shù)據(jù)塊、或T微數(shù)據(jù)塊。
圖15B示出當(dāng)正向譯碼器704和反向譯碼器708各自的差錯發(fā)現(xiàn)位置與位上的位置不交叉但與代碼字上的位置交叉時,即L1+L2<L、且N1+N2≥N時的情況。在這種情況下,從正向使用N-N2-1微數(shù)據(jù)塊的系數(shù)信息,從反向使用N-N1-1微數(shù)據(jù)塊的系數(shù)信息,而將其余的系數(shù)信息廢棄。
圖16A示出當(dāng)正向譯碼器704和反向譯碼器708各自的差錯發(fā)現(xiàn)位置與位上的位置交叉但與代碼字上的位置不交叉時,即L1+L2≥L、且N1+N2<N時的情況。在這種情況下,從正向使用N-b_mb(L2)微數(shù)據(jù)塊的系數(shù)信息,從反向使用N-f_mb(L1)微數(shù)據(jù)塊的系數(shù)信息,而將其余的系數(shù)信息廢棄。
圖16B示出當(dāng)正向譯碼器704和反向譯碼器708各自的差錯發(fā)現(xiàn)位置與位上的位置或代碼字上的位置都交叉時,即L1+L2≥L、且N1+N2≥N時的情況。在這種情況下,從正向使用min{N-b_mb(L2),N-N2-1}微數(shù)據(jù)塊的系數(shù),從反向使用min{N-f_mb(L1),N-N1-1}微數(shù)據(jù)塊的系數(shù),而將其余的系數(shù)廢棄。
這里,對于廢棄了DCT系數(shù)的微數(shù)據(jù)塊,在INTRA模式的情況下,照原樣顯示前面的畫面,或作為不進(jìn)行編碼的模式處理,在INTER模式的情況下,利用上層的動矢量(MV)決定譯碼值,以便通過動態(tài)補(bǔ)償(MC)進(jìn)行顯示。
另外,在變?yōu)閳D15A、15B、16A、16B的任何一種狀態(tài)的情況下,如圖17所示,即使沒有發(fā)現(xiàn)差錯,也要將同步區(qū)間內(nèi)的一部分或全部的INTRA模式的微數(shù)據(jù)塊的DCT系數(shù)廢棄,對于該部分,可以照原樣顯示前面的畫面,或作為不進(jìn)行編碼的模式處理。INTRA模式,在發(fā)生差錯時,對畫面造成的影響較大。具體地說,由于顯示出錯的系數(shù)而發(fā)生在畫面內(nèi)出現(xiàn)顏色不自然的圖塊的現(xiàn)象。因此,如果判明至少在同步區(qū)間內(nèi)發(fā)生差錯,則將INTRA模式的微數(shù)據(jù)塊廢棄可以減小對畫面的影響。
另外,在本第2實施形態(tài)中,以微數(shù)據(jù)塊為單位進(jìn)行了DCT系數(shù)的廢棄,但當(dāng)然也可以以數(shù)據(jù)塊為單位進(jìn)行。
其次,說明本第2實施形態(tài)的下層可變長度譯碼器503的譯碼處理方法的步驟。
本譯碼處理方法,如圖13所述,基本上是在由可從兩個方向譯碼的可變長度代碼字構(gòu)成的DCT系數(shù)信息中檢出差錯前從正向進(jìn)行譯碼處理,而當(dāng)從該正向的譯碼處理中檢出差錯時,開始從反向的譯碼處理,直到這次在該DCT系數(shù)信息中檢出差錯為止。并利用從正向和反向的譯碼結(jié)果、及在從正向和反向的譯碼中分別檢出的位上的差錯發(fā)現(xiàn)位置及語法上的差錯發(fā)現(xiàn)位置決定譯碼值。
以下,參照圖18的流程圖,說明與AC分量的DCT系數(shù)部對應(yīng)的譯碼處理步驟。
首先,定義上述的函數(shù)L、N、N1、N2、L1、L2、f_mb(L)、b_mb(L),然后,開始進(jìn)行正向譯碼處理(步驟S201)。如果在該正向的譯碼處理中沒有發(fā)現(xiàn)差錯,則結(jié)束譯碼處理(步驟S202)。而當(dāng)在該正向的譯碼處理中發(fā)現(xiàn)了差錯時,開始進(jìn)行反向譯碼處理(步驟S203)。當(dāng)在正向的譯碼處理中發(fā)現(xiàn)了差錯時,通常,在反向的譯碼處理中也會發(fā)現(xiàn)差錯。
如果差錯發(fā)現(xiàn)位置與位上的位置或代碼字上的位置都不交叉時,即當(dāng)L1+L2<L、且N1+N2<N時(步驟S204),使用回溯了T位的位置之前的位,從正向使用f_mb(L1-T)微數(shù)據(jù)塊的系數(shù)信息,從反向使用b_mb(L2-T)微數(shù)據(jù)塊的系數(shù)信息,而將其余的系數(shù)信息廢棄(步驟S205)。
如果差錯發(fā)現(xiàn)位置與位上的位置不交叉但與代碼字上的位置交叉時,即當(dāng)L1+L2<L、且N1+N2≥N時(步驟S206),從正向使用N-N2-1微數(shù)據(jù)塊的系數(shù)信息,從反向使用N-N1-1微數(shù)據(jù)塊的系數(shù)信息,而將其余的系數(shù)信息廢棄(步驟S207)。
如果差錯發(fā)現(xiàn)位置與位上的位置交叉但與代碼字上的位置不交叉時,即當(dāng)L1+L2≥L、且N1+N2<N時(步驟S208),從正向使用N-b_mb(L2)微數(shù)據(jù)塊的系數(shù)信息,從反向使用N-f_mb(L1)微數(shù)據(jù)塊的系數(shù)信息,而將其余的系數(shù)信息廢棄(步驟S209)。
如果差錯發(fā)現(xiàn)位置是除上述以外的情況,具體地說,當(dāng)與位上的位置或代碼字上的位置都交叉時,即當(dāng)L1+L2≥L、且N1+N2≥N時,從正向使用min{N-b_mb(L2),N-N2-1}微數(shù)據(jù)塊的系數(shù),從反向使用min{N-f_mb(L1),N-N1-1}微數(shù)據(jù)塊的系數(shù),而將其余的系數(shù)廢棄(步驟S210)。
當(dāng)發(fā)現(xiàn)差錯時,將該同步區(qū)間內(nèi)的全部INTRA模式的微數(shù)據(jù)塊的DCT系數(shù)廢棄,照原樣顯示前面的畫面,或作為不進(jìn)行編碼的模式處理(步驟S211)。
對于廢棄了DCT系數(shù)的微數(shù)據(jù)塊,在INTRA模式的情況下,照原樣顯示前面的畫面,或作為不進(jìn)行編碼的模式處理,在INTER模式的情況下,利用上層的動矢量(MV)決定譯碼值,以便通過動態(tài)補(bǔ)償(MC)進(jìn)行顯示(步驟S212)。
以下,說明在本第2實施形態(tài)的動圖象編碼/譯碼裝置中采用的代碼字表的具體構(gòu)成例及使用該表的可逆碼的編碼/譯碼動作。
在圖10的信息源編碼器202中,通過對量化后的每個8×8的DCT系數(shù)的數(shù)據(jù)塊進(jìn)行塊內(nèi)掃描,求得LAST(0不是塊的最后的非零系數(shù),1塊的最后的非零系數(shù))、RUN(非零系數(shù)前的連″0″個數(shù))及LEVEL(系數(shù)的量化值),并傳送到動圖象多路化部203。
動圖象多路化部203,包含上層可變長度編碼部和下層可變長度編碼部,在采用可逆碼進(jìn)行可變長度編碼的下層可變長度編碼部的代碼字表中,包含著在圖22~圖26中示出的4個表。圖22是用于從INTRA(幀內(nèi)編碼)的非LAST系數(shù)的RUN及LEVEL檢索圖25、26的代碼字表的INDEX值的INDEX表。圖23是用于從INTER(幀間編碼)的非LAST系數(shù)的RUN及LEVEL,檢索圖25、26的代碼字表的INDEX值的INDEX表。圖24是用于從INTRA及INTER共用的LAST系數(shù)的RUN及LEVEL,檢索圖25、26的代碼字表的INDEX值的INDEX表。圖25和圖26,是使INDEX值與可逆可變長度代碼字(VLC-CODE)相互對應(yīng)的代碼字表。此外,還采用圖27的RUM固定長度代碼字表及圖28的LEVEL固定長度代碼字表,作為用于變換為固定長度的可逆代碼字的表。
以下,參照圖19的流程圖,說明采用這些表的下層可變長度編碼部的可變長度編碼處理的步驟。
首先,按照由上層的模式信息指定的預(yù)測模式選擇應(yīng)使用的INDEX表(步驟S301)。在這種情況下,如果預(yù)測模式是INTRA,則選擇圖22的INDEX表及圖24的INDEX表,如果預(yù)測模式是INTER,則選擇圖23的INDEX表及圖24的INDEX表。
然后,檢查應(yīng)進(jìn)行編碼的DCT系數(shù)的RUN和LEVEL的值是否在應(yīng)使用的INDEX表所定義的RUN和LEVEL的最大值以下(步驟S302)。如果在應(yīng)使用的INDEX表所定義的RUN和LEVEL的最大值以下,則使用該RUN和LEVEL的值檢索INDEX表,并求得用于檢索圖25和圖26的代碼字表的INDEX值(步驟S303)。接著,判斷從INDEX表求得的INDEX值是否為″0″(步驟S304)。如果是″0″以外的值,則對圖25和圖26的代碼字表進(jìn)行檢索,并輸出與INDEX值對應(yīng)的可逆代碼字(步驟S305)。這里,圖25和圖26的代碼字表中的可逆代碼字的最末位″s″表示LEVEL的正負(fù)符號,當(dāng)″s″為″0″時,LEVEL的符號為正,當(dāng)″s″為″1″時,LEVEL的符號為負(fù)。
另一方面,當(dāng)應(yīng)進(jìn)行編碼的RUN和LEVEL的值超過應(yīng)使用的INDEX表所定義的RUN和LEVEL的最大值時,或如果從INDEX表求得的INDEX值為″0″,則對(LAST、RUN、LEVEL)進(jìn)行固定長度編碼,并在其兩端附加ESCAPE碼(轉(zhuǎn)義碼)后輸出(步驟S306)。即,根據(jù)圖27的RUN固定長度代碼字表及圖28的LEVEL固定長度代碼字表,將RUN和LEVEL的值分別變換為6位和7位的固定長度碼,并如圖29所示,在該固定長度碼的開頭附加與LAST的值對應(yīng)的1位。進(jìn)一步,在該代碼串的兩端附加ESCAPE碼。開頭的ESCAPE碼為″00001″,末尾的ESCAPE碼,為按照圖25和圖26的代碼字表的INDEX值=″0″檢索的可逆碼″0000s″。該可逆碼″0000s″的最末位″s″表示LEVEL的正負(fù)符號,當(dāng)″s″為″0″時,LEVEL的符號為正,當(dāng)″s″為″1″時,LEVEL的符號為負(fù)。
其次,說明由正向譯碼器704和反向譯碼器708分別執(zhí)行的可逆碼譯碼處理的方法。
在正向代碼字表703及反向代碼字表707中,除上述圖25和圖26的代碼字表、圖27的RUN固定長度代碼字表、圖28的LEVEL固定長度代碼字表以外,還分別預(yù)先準(zhǔn)備如圖30和圖31所示的譯碼值表作為代碼字表。在圖30和圖31的譯碼值表內(nèi),分別對INTRA和INTER模式設(shè)定著與INDEX值對應(yīng)的(LAST、RUN、LEVEL)的譯碼值。
先參照圖20所示的流程圖,說明正向譯碼處理。
首先,進(jìn)行編碼數(shù)據(jù)的譯碼處理,使用圖25和圖26的代碼字表求取與可逆代碼字對應(yīng)的INDEX值(步驟S401)。然后,檢查INDEX值是否為″0″(步驟S402)。如果是″0″以外的值,則根據(jù)INDEX值和模式檢索圖30和圖31的譯碼值表,求得與所使用的預(yù)測模式及INDEX值對應(yīng)的(LAST、RUN、LEVEL)的譯碼值(步驟S403)。當(dāng)INDEX值為″0″時,由于是ESCAPE碼,所以用圖27和圖28的固定長度代碼字表對接在該ESCAPE碼后面的(LAST、RUN、LEVEL)的固定長度碼進(jìn)行譯碼(步驟S404)。接著,對末尾的ESCAPE碼進(jìn)行譯碼(步驟S405)。用代碼字的最后1位進(jìn)行LEVEL的正負(fù)判定(步驟S406)。
以下,參照圖21的流程圖,說明反向譯碼處理。
首先,由代碼字的開頭的1位決定LEVEL的正負(fù)(步驟S501)。然后,使用圖25和圖26的代碼字表求取與可逆代碼字對應(yīng)的INDEX值(步驟S502)。接著,檢查INDEX值是否為″0″(步驟S503)。如果是″0″以外的值,則根據(jù)INDEX值和預(yù)測模式檢索圖30和圖31的譯碼值表,求得與所使用的預(yù)測模式及INDEX值對應(yīng)的(LAST、RUN、LEVEL)的譯碼值(步驟S504)。當(dāng)INDEX值為″0″時,由于是ESCAPE碼,所以用圖27和圖28的固定長度代碼字表對接在其后的(LAST、RUN、LEVEL)的固定長度碼進(jìn)行譯碼(步驟S505)。然后,對開頭的ESCAPE碼進(jìn)行譯碼(步驟S506)。
其次,說明本第2實施形態(tài)的在正向和反向的各譯碼處理中進(jìn)行的差錯發(fā)現(xiàn)處理的步驟。
圖32是以在編碼數(shù)據(jù)中出現(xiàn)了在正向代碼字表124內(nèi)不存在的位模式為依據(jù)發(fā)現(xiàn)差錯時的流程圖。
首先,確認(rèn)在上述的編碼數(shù)據(jù)的譯碼處理中求得的INDEX值是否存在,以便確認(rèn)與在正向或反向譯碼處理中所采用的代碼字表相當(dāng)?shù)拇a字是否存在(步驟S601)。如果INDEX值不存在,則判定出現(xiàn)了不存在的代碼字模式,并由此發(fā)現(xiàn)差錯(步驟S606)。
另一方面,當(dāng)INDEX值存在時,首先,檢查該INDEX值是否為″0″(步驟S602)。當(dāng)INDEX值為″0″時,由于在該情況下是以ESCAPE碼進(jìn)行編碼,所以檢查(LAST、RUN、LEVEL)的組合在代碼字表中是否存在(步驟S603)。當(dāng)該組合在代碼字表中存在時,判定出現(xiàn)了不存在的代碼字模式,并由此發(fā)現(xiàn)差錯(步驟S606)。而當(dāng)(LAST、RUN、LEVEL)的組合在代碼字表中不存在時,確認(rèn)在固定長度碼的后面是否存在ESCAPE碼(步驟S604)。如果ESCAPE碼不存在,則判定出現(xiàn)了不存在的代碼字模式并由此發(fā)現(xiàn)差錯(步驟S606)。而如果ESCAPE碼存在,則判定為正確的編碼位模式,并進(jìn)行正確的譯碼處理(步驟S605)。
另一方面,當(dāng)在代碼字表內(nèi)存在INDEX值、且INDEX值為″0″以外的值時,判定為正確的編碼位模式,并進(jìn)行正確的譯碼處理(步驟S605)。
圖33是以發(fā)生語法上不可能有的狀態(tài)為依據(jù)發(fā)現(xiàn)差錯時的流程圖。在本例中,對8×8的DCT系數(shù)的各數(shù)據(jù)塊中的連″0″個數(shù)與零以外的非零系數(shù)的個數(shù)的合計值是否大于64個進(jìn)行檢查。
即,首先,檢查在AC分量的DCT系數(shù)部的編碼數(shù)據(jù)中是否含有8×8的DCT系數(shù)中的直流分量(步驟S701),如果含有,則對表示連″0″個數(shù)與非零系數(shù)的個數(shù)的合計值的變量SUM設(shè)定″0″作為初始值(步驟S702),如果不含,則對變量SUM設(shè)定″1″作為初始值(步驟S703)。
然后,反復(fù)執(zhí)行由(LAST、RUN、LEVEL)提供的各DCT系數(shù)的編碼數(shù)據(jù)的可變長度譯碼,直到LAST=″1″為止(步驟S704~S707),但在該處理中,每當(dāng)在步驟S704中進(jìn)行(LAST、RUN、LEVEL)的可變長度譯碼時,都要對表示非零系數(shù)前的連″0″個數(shù)的RUN的值加1,就是說,將RUN+1的值與變量SUM相加(步驟S705)。這里,之所以對RUN的值加1,是因為無論是零系數(shù)和非零系數(shù)中的哪一個都對該一個系數(shù)進(jìn)行了譯碼處理。檢查變量SUM的值是否大于64(步驟S706),如果變量SUM的值大于64,則此時將檢測出在語法上發(fā)生了錯誤(步驟S709)。
如果在LAST系數(shù)變?yōu)椤?″之前的期間沒有發(fā)現(xiàn)語法錯誤,則該數(shù)據(jù)塊的譯碼處理正常結(jié)束(步驟S708)。
(在兩端附加ESCAPE碼時的其他構(gòu)成例)圖34和圖35是在兩端附加ESCAPE碼時的其他結(jié)構(gòu)。RUN和LEVEL的值,分別根據(jù)圖23的RUN固定長度代碼字表及圖34的LEVEL固定長度代碼字表變換為6位和11位的固定長度碼。這時,為限制連″0″的個數(shù),在LEVEL的兩端設(shè)置″1″的標(biāo)記位。在該代碼串的開頭,如圖35所示,附加與LAST的值對應(yīng)的1位。進(jìn)一步,在該代碼串的兩端附加ESCAPE碼。開頭的ESCAPE碼,為″00001″,末尾的ESCAPE碼,為按照圖25和圖26的代碼字表的INDEX值=″0″檢索的可逆碼″0000s″。該可逆碼″0000s″的最末位″s″表示LEVEL的正負(fù)符號,當(dāng)″s″為″0″時,LEVEL的符號為正,當(dāng)″s″為″1″時,LEVEL的符號為負(fù)。
圖37示出與圖19對應(yīng)的下層可變長度編碼的可變長度編碼處理步驟。
步驟S801~S805,分別與圖19的步驟S301~S305相同,與圖19的不同之處是步驟S806部分。在該步驟中,在LEVEL的兩端設(shè)置標(biāo)記位。
圖38和圖39,分別示出正向譯碼器704和反向譯碼器708的可逆碼的譯碼處理方法。
圖38的正向譯碼處理的步驟S901、S902、S903、S905、S906,與圖20的構(gòu)成正向譯碼處理的步驟S401、S402、S403、S405、S406相同,與圖20的不同之處是步驟S904。在步驟S904中,不只是對接在ESCAPE碼后面的(LAST、RUN、LEVEL)的固定長度碼進(jìn)行譯碼,而是對接在ESCAPE碼后面的(LAST、RUN、LEVEL)和標(biāo)記位的固定長度碼進(jìn)行譯碼。
同樣,圖39的反向譯碼處理的步驟S1001、S1002、S1003、S1005、S1006,與圖21的構(gòu)成反向譯碼處理的步驟S501、S502、S503、S505、S506相同,與圖21的不同之處是步驟S1005。這里,不只是對(LAST、RUN、LEVEL)的固定長度碼進(jìn)行譯碼,而且對(LAST、RUN、LEVEL)和標(biāo)記位的固定長度碼進(jìn)行譯碼。
另外,在本例中,作為在兩端附加ESCAPE碼時的結(jié)構(gòu),示出了RUN為6位、LEVEL的固定代碼長度為7位的情況和11位的情況,但當(dāng)然也可以是其他的位數(shù)。
圖36是在兩端附加ESCAPE碼時的另一種結(jié)構(gòu)。例如,當(dāng)LEVEL的固定代碼長度長、并超過連″0″的個數(shù)限制時,如圖36所示,最好在LEVEL的固定長度碼之間插入標(biāo)記位。例如,當(dāng)再同步標(biāo)記等同步碼的碼長為17位(16位的″0″游程+1;″00000000000000001″)時,為避免同步碼與其他代碼字的混同,將連″0″的個數(shù)限制在15位以下。在這種情況下,當(dāng)LEVEL的固定代碼長度長、其連″0″的個數(shù)有可能超過16位時,如圖36所示,在LEVEL的固定長度碼之間插入標(biāo)記位。因此,即使是在LEVEL的固定代碼長度長的情況下,也能避免與同步碼混同。
圖40是表示AC-DCT部的不存在的代碼字模式的檢測方法的流程圖。該圖與圖32相對應(yīng)。
首先,確認(rèn)INDEX值是否存在,以便確認(rèn)代碼字在代碼字表中是否存在(步驟S1101)。如果INDEX值不存在,則判定產(chǎn)生了不存在的代碼字模式(步驟S1107)。
如INDEX值存在時,確認(rèn)INDEX值是否為″0″(步驟S1102)。如INDEX值為″0″時,由于是以ESCAPE碼進(jìn)行編碼,所以對(LAST、RUN、LEVEL)的組合進(jìn)行譯碼,并檢查其在代碼字表中是否存在(步驟S1103)。當(dāng)該組合在代碼字表中存在時,判定產(chǎn)生了不存在的代碼字模式(步驟S1107)。
另外,確認(rèn)標(biāo)記位是否正確(步驟S1104)。如標(biāo)記位不正確時,判定產(chǎn)生了不存在的代碼字模式(步驟S1107)。
如INDEX值為″0″以外的值時,進(jìn)行正確的譯碼(S1106)。
如組合在代碼字表中不存在、而標(biāo)記位正確時,確認(rèn)在固定長度碼的后面是否存在ESCAPE碼(步驟S1105)。如ESCAPE碼不存在時,判定產(chǎn)生了不存在的代碼字模式(步驟S1107)。而如ESCAPE碼存在時,進(jìn)行正確的譯碼(步驟S1106)。
這樣,在由本例的正向和反向的各譯碼處理所進(jìn)行的差錯檢測處理中加入了標(biāo)記位是否正確的判定處理。
(在兩端附加ESCAPE碼時的另一構(gòu)成例)圖41和圖42,是在兩端附加ESCAPE碼時的另一種結(jié)構(gòu)。這里,假定為以二進(jìn)制補(bǔ)碼形式表示LEVEL值的情況。在這種情況下,由LEVEL的代碼字特定其正負(fù),所以代碼串末尾的ESCAPE碼為″00001″,不使用指示LEVEL正負(fù)的代碼″s″。
RUN和LEVEL的值,分別根據(jù)圖27的RUN固定長度代碼字表及圖41的LEVEL固定長度代碼字表變換為固定長度碼。這時,為限制連″0″的個數(shù),在LEVEL的兩端設(shè)置″1″的標(biāo)記位。在該代碼串的開頭,如圖42所示,附加與LAST的值對應(yīng)的1位。進(jìn)一步,在該代碼串的兩端附加ESCAPE碼。
另外,根據(jù)LEVEL的固定代碼長度,可以將LEVEL與末尾的ESCAPE碼之間的標(biāo)記位的插入省略。該例示于圖43。在圖43中,示出LEVEL的固定代碼長度為12位的情況。
LEVEL的連″0″的個數(shù),為LEVEL的固定代碼長度-2位,所以,如果LEVEL的固定代碼長度在13位以下,則即使加上末尾的ESCAPE碼的4位″0″游程,合計的連″0″個數(shù)也小于同步碼為17位時的限制值(16位)。
另外,如上所述,連″0″的個數(shù)限制由同步碼的位數(shù)決定,所以當(dāng)同步碼的代碼長度設(shè)定得長時,如圖44和圖45所示,作為LEVEL的代碼字無論采用絕對值和二進(jìn)制補(bǔ)碼表示的值中的哪一個,都可以將標(biāo)記位的插入省略。
相反,當(dāng)作為LEVEL的代碼字用二進(jìn)制補(bǔ)碼表示時,也可以與圖36一樣,在LEVEL的代碼字內(nèi)插入標(biāo)記位,以便不超出連″0″個數(shù)的限制。圖46示出該例。
圖47示出當(dāng)作為LEVEL的代碼字用二進(jìn)制補(bǔ)碼表示且插入了標(biāo)記位時、即當(dāng)使用了圖42、圖43或圖46的編碼數(shù)據(jù)串時的正向譯碼處理的步驟。
與作為LEVEL的代碼字使用絕對值的圖38的正向譯碼處理不同之處在于,省略了步驟S906的處理。就是說,當(dāng)作為LEVEL的代碼字用二進(jìn)制補(bǔ)碼表示時,也可以通過步驟S204中的(LAST、RUN、LEVEL)和標(biāo)記位的固定長度碼的譯碼處理判定LEVEL的代碼的正負(fù)。
圖48示出當(dāng)作為LEVEL的代碼字用二進(jìn)制補(bǔ)碼表示且插入了標(biāo)記位時、即當(dāng)使用了圖42、圖43或圖46的編碼數(shù)據(jù)串時的反向譯碼處理的步驟。
與作為LEVEL的代碼字使用絕對值的圖39的反向譯碼處理不同之處在于,省略了步驟S1301的處理。就是說,當(dāng)作為LEVEL的代碼字用二進(jìn)制補(bǔ)碼表示時,也可以通過步驟S1304中的(LAST、RUN、LEVEL)和標(biāo)記位的固定長度碼的譯碼處理判定LEVEL的代碼的正負(fù)。
圖49示出當(dāng)作為LEVEL的代碼字用二進(jìn)制補(bǔ)碼表示且不使用標(biāo)記位時、即當(dāng)使用了圖45的編碼數(shù)據(jù)串時的正向譯碼處理的步驟。與圖47的不同之處在于,在步驟S1204中只對(LAST、RUN、LEVEL)的固定長度碼進(jìn)行譯碼處理。
圖50示出當(dāng)作為LEVEL的代碼字用二進(jìn)制補(bǔ)碼表示且不使用標(biāo)記位時、即當(dāng)使用了圖45的編碼數(shù)據(jù)串時的反向譯碼處理的步驟。與圖48的不同之處在于,在步驟S1504中只對(LAST、RUN、LEVEL)的固定長度碼進(jìn)行譯碼處理。
(第3實施形態(tài))其次,作為本發(fā)明的第3實施形態(tài),說明可以應(yīng)用于第1和第2實施形態(tài)的譯碼值決定處理的差錯范圍的推斷方法。
圖51是表示本發(fā)明第3實施形態(tài)的可變長度譯碼器109的結(jié)構(gòu)的框圖。
可變長度譯碼器109,以與第1和第2實施形態(tài)同樣的方式按每個同步區(qū)間對包含可變長碼的編碼數(shù)據(jù)進(jìn)行譯碼,其基本結(jié)構(gòu)與第1和第2實施形態(tài)相同。
即,在可變長度譯碼器109中,當(dāng)編碼數(shù)據(jù)為只能進(jìn)行正向譯碼的可變長碼時,開關(guān)S連接在A側(cè),由正向譯碼器104進(jìn)行通常的正向譯碼。由正向譯碼器104譯碼后的編碼數(shù)據(jù)傳送到譯碼值決定部105。
當(dāng)編碼數(shù)據(jù)為可雙向譯碼的可變長碼時,開關(guān)S101連接在B側(cè),將編碼數(shù)據(jù)存儲在緩沖器102內(nèi),并在檢查了編碼數(shù)據(jù)的總位數(shù)后,由正向譯碼器104進(jìn)行譯碼。
當(dāng)由正向譯碼器104發(fā)現(xiàn)了差錯時,開關(guān)T105被接通,由反向譯碼器108對存儲在緩沖器102內(nèi)的編碼數(shù)據(jù)從反向進(jìn)行譯碼。
當(dāng)在正向譯碼器104和反向譯碼器108中出現(xiàn)了不存在的代碼字時,判斷為發(fā)生了差錯。
在譯碼值決定部105中,將正向譯碼器104的譯碼結(jié)果與反向譯碼器108的譯碼結(jié)果進(jìn)行對照,以決定最終的譯碼結(jié)果。
以下,說明當(dāng)編碼數(shù)據(jù)為可雙向譯碼的可變長碼時譯碼值決定部105的動作。
在本第3實施形態(tài)中,根據(jù)由正向和反向譯碼處理檢出的編碼數(shù)據(jù)的差錯檢測位置、傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率、各代碼字的發(fā)生概率、及代碼字表中的各代碼字的位模式,推斷差錯的存在范圍,從而決定最終的譯碼值。就是說,如上所述,在第1和第2實施形態(tài)中,將與檢出差錯的位置相距一定量(T代碼字)的范圍固定地特定為差錯傳播范圍,但在本第3實施形態(tài)中,通過差錯傳播范圍的推斷求取最佳的T值。
在二進(jìn)制的情況下,已知作為無存儲信息源的最佳編碼的霍夫曼碼的代碼長度,在二進(jìn)制的情況下,能以等號滿足如下的Kraft不等式。Σx∈X2-1(x)=1···(1)]]>式中,x為代碼X的代碼字,l(x)為x的代碼長度。
但是,在按本發(fā)明設(shè)定同步區(qū)間并插入同步碼時,所進(jìn)行的是不能與同步碼的模式(例如,000...01)沖突的設(shè)計,所以采用不能以等號滿足Kraft不等式的代碼。Σx∈X2-1(x)<1···(2)]]>例如,在如圖56和圖57A、57B、57C所示的代碼的情況下,為了不與同步碼發(fā)生沖突,將″0000″作為禁止代碼字。在這樣的代碼中,當(dāng)因混入差錯而不能對可變長碼進(jìn)行正確的譯碼時,如產(chǎn)生不出現(xiàn)的模式″0000″,則可以檢測出發(fā)生了差錯。
如假定圖58所示的誤碼率為ε、(0<ε<1)的二進(jìn)制通信線路,則作為傳輸或存儲編碼數(shù)據(jù)的傳輸系統(tǒng)或存儲系統(tǒng)的通信線路模型,由于不考慮位的插入、短缺,所以發(fā)送代碼字x并對接收序列y進(jìn)行接收的條件概率P(y|P(x|y)x)為
式中,d(x,y)為序列x與序列y的哈明間距。
其結(jié)果是,接收序列y的概率P(y)為P(y)=Σx∈XP(x)P(y·|x)····(4)]]>這里,假定代碼X的代碼字?jǐn)?shù)為有限值,對所有的x為P(x)>0。
但是,為了分析從差錯混入位流的狀態(tài)到檢出差錯的狀態(tài),首先,至少必須考慮1位混入差錯的狀態(tài)(初始狀態(tài)I)。
另外,由于代碼字x的1個位也不出錯的概率為(1-ε)l(x),所以,如考慮各代碼字中至少1位混入差錯的條件概率,則為
P′(y)=Σx∈XP(x)P′(y|x)]]>這里,當(dāng)作為對象的是可瞬時譯碼的代碼時,無差錯時的接收序列y,從代碼樹的根部開始并必然能到達(dá)葉部。
但是,當(dāng)有差錯時,接收序列y,由于存在著不僅在代碼樹的葉部而且在節(jié)點(diǎn)的狀態(tài)開始或被接收的可能性,所以,可以用如圖55所示的狀態(tài)遷移圖表示。對各狀態(tài)的遷移概率tij,可以按下式求出從狀態(tài)i向狀態(tài)j遷移時的狀態(tài)遷移概率tij。
式中,函數(shù)V(y,i→j),如果在狀態(tài)i時以接收序列y遷移到狀態(tài)j,則其值為1,否則其值為0。
這里,將各狀態(tài)定義如下。
I初始狀態(tài)S同步狀態(tài)Ui 非同步狀態(tài) i=1、...、N-2E差錯檢出狀態(tài)圖55是代碼字的狀態(tài)遷移圖的例,圖56是代碼字的狀態(tài)遷移表。
行列式T,是狀態(tài)遷移表中將從各狀態(tài)檢出差錯的概率除去后的部分,定義為
另一方面,矢量D,假定為從各狀態(tài)遷移到差錯檢出狀態(tài)E的概率。D=(t1N+1,t2N+1,···tNN+1)T···(8)]]>由于從初始狀態(tài)I開始,所以除差錯檢出狀態(tài)E外各狀態(tài)概率的初始概率設(shè)置為(0)=(1,0,···0)···(9)]]>因此,i代碼字后的除差錯檢出狀態(tài)E外各狀態(tài)的概率,可以按下式計算。Q(i)=Q(0)Ti-1···(10)]]>因此,i代碼字后檢出差錯的概率,對i-1代碼字后的各狀態(tài)是其下一次檢測的概率,所以,其概率為R(i)=Q(i-1)D=Q(0)Ti-1D,i=1,2,······(11)]]>但是,T0,為單位行列式I。
通過設(shè)定推斷概率a,可以計算能以該概率檢出差錯的代碼字?jǐn)?shù)。a<Σi=1jR(i)···(12)]]>求出滿足上式的最小的j并設(shè)定F(a),即可按一定的概率推斷差錯的存在范圍。該F(a)相當(dāng)于如上所述的第1和第2實施形態(tài)中的T。
也就是說,在從可以檢出差錯的位置回溯F(a)代碼字的范圍內(nèi)以概率a存在著差錯。另外,如從譯碼處理的角度考慮,則根據(jù)該值從可以檢出差錯的位置回溯F(a)代碼字,就能以概率a將差錯有可能傳播的部分排除。
譯碼值決定部105,根據(jù)正向代碼字表103、反向代碼字表108、代碼字發(fā)生概率、通信線路的誤碼率ε、及推斷概率a,計算正向的差錯存在范圍F1(a)及反向的差錯存在范圍F2(a),并根據(jù)與差錯檢出位置的關(guān)系決定廢棄的部分。
如圖57A所示,當(dāng)正向的差錯發(fā)現(xiàn)位置與反向的差錯發(fā)現(xiàn)位置不交叉時,從各自的檢出位置回溯與差錯存在范圍F1(a)、F2(a)相當(dāng)?shù)牟糠?,使?yīng)廢棄的范圍增加。
如圖57B所示,當(dāng)正向的差錯發(fā)現(xiàn)位置與反向的差錯發(fā)現(xiàn)位置交叉、且交叉的范圍大于差錯存在范圍時,將交叉的范圍作為應(yīng)廢棄的范圍。
如圖57C所示,當(dāng)正向的差錯發(fā)現(xiàn)位置與反向的差錯發(fā)現(xiàn)位置交叉、且交叉的范圍小于差錯存在范圍時,將差錯存在范圍作為應(yīng)廢棄范圍。
另外,也可以將F(a)乘以平均代碼長度,從而按位數(shù)進(jìn)行推斷。B(a)=F(a)Σx∈XP(x)l(x)···(13)]]>在這種情況下,譯碼值決定部105,執(zhí)行如圖58A~58C所示的動作。與圖57A~57C時相同,如圖58A所示,當(dāng)正向的差錯發(fā)現(xiàn)位置與反向的差錯發(fā)現(xiàn)位置不交叉時,從各自的檢出位置回溯與差錯存在范圍B1(a)、B2(a)相當(dāng)?shù)牟糠?,使?yīng)廢棄的范圍增加。
如圖58B所示,當(dāng)正向的差錯發(fā)現(xiàn)位置與反向的差錯發(fā)現(xiàn)位置交叉、且交叉的范圍大于差錯存在范圍時,將交叉的范圍作為應(yīng)廢棄范圍。
如圖58C所示,當(dāng)正向的差錯發(fā)現(xiàn)位置與反向的差錯發(fā)現(xiàn)位置交叉、且交叉的范圍小于差錯存在范圍時,將差錯存在范圍作為應(yīng)廢棄范圍。
在本第3實施形態(tài)中,示出了可雙向譯碼的可變長度譯碼器時的例,但在通常的只能進(jìn)行正向譯碼的可變長度譯碼器的情況下也可以應(yīng)用。
在如上所述的第3實施形態(tài)的可變長度譯碼裝置中,按如下步驟進(jìn)行譯碼處理1)在編碼數(shù)據(jù)中檢出差錯前從正向?qū)υ摼幋a數(shù)據(jù)進(jìn)行譯碼,2)當(dāng)從正向譯碼時如在編碼數(shù)據(jù)中檢測出差錯,則從反向?qū)幋a數(shù)據(jù)進(jìn)行譯碼,3)根據(jù)從正向和反向的譯碼結(jié)果、在從正向和反向譯碼中分別檢出的編碼數(shù)據(jù)的差錯檢出位置、傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率、各代碼字的發(fā)生概率、及代碼字表中各代碼字的位模式,推斷差錯存在的范圍,從而決定最終的譯碼值。按這樣的步驟進(jìn)行譯碼處理。
按如上方式,根據(jù)傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率及代碼字的性能從差錯發(fā)現(xiàn)位置以一定的概率推斷實際的差錯存在位置,就能使將本來不正確的代碼字錯誤地當(dāng)作正確的代碼字而進(jìn)行譯碼的情況減小到一定的概率以下。
另外,如上所述的第1~第3實施形態(tài)的可變長度譯碼裝置的譯碼處理步驟,也可以按照存儲在CD-ROM、DVD-RAM等記錄媒體內(nèi)的可由計算機(jī)讀取的計算機(jī)程序?qū)崿F(xiàn)。因此,即使是不具備用于可變長度譯碼的專用硬件的計算機(jī)等,也可以進(jìn)行由編碼數(shù)據(jù)所含差錯造成的影響小的譯碼處理。此外,也可以安裝第1~第3實施形態(tài)的可變長度譯碼裝置的一部分或全部的硬件,并按照計算機(jī)程序?qū)ζ鋭幼鬟M(jìn)行控制。
(第4實施形態(tài))其次,參照圖59說明安裝了本發(fā)明第1~第3實施形態(tài)的可變長度編碼譯碼裝置的動圖象編碼/譯碼系統(tǒng)的例。由個人計算機(jī)(PC)1001所裝有的攝像機(jī)1002輸入的圖象信號,由組裝在PC1001內(nèi)的動圖象編碼器或動圖象編碼軟件進(jìn)行編碼。編碼后的數(shù)據(jù),進(jìn)行與其他聲音或數(shù)據(jù)信息的多路化處理后,由無線機(jī)1003以無線方式發(fā)送,并由另一無線機(jī)1004接收。由無線機(jī)1004接收到的信號被分解為圖象信號的編碼數(shù)據(jù)及聲音數(shù)據(jù)。其中的圖象信號的編碼數(shù)據(jù),由組裝在工作站(EWS)1005內(nèi)的動圖象譯碼器或動圖象譯碼軟件進(jìn)行譯碼,并顯示在EWS1005的顯示器上。
另一方面,由EWS1005所裝有的攝象機(jī)1006輸入的圖象信號,由組裝在EWS1005內(nèi)的編碼器或編碼軟件進(jìn)行與上述同樣的編碼。編碼數(shù)據(jù),進(jìn)行與其他聲音或數(shù)據(jù)信息的多路化處理后,由無線機(jī)1004以無線方式發(fā)送,并由無線機(jī)1003接收。由無線機(jī)1003接收到的信號被分解為圖象信號的編碼數(shù)據(jù)及聲音數(shù)據(jù)信息。其中的圖象信號的編碼數(shù)據(jù),由組裝在PC1001內(nèi)的動圖象譯碼器或動圖象譯碼軟件進(jìn)行譯碼,并顯示在PC1001的顯示器上。
動圖象譯碼軟件,由用于在計算機(jī)中執(zhí)行在上述各實施形態(tài)中說明過的可變長度譯碼處理步驟的程序?qū)崿F(xiàn)。
另外,如上所述的各實施形態(tài)1~3的結(jié)構(gòu)及編碼數(shù)據(jù)串的結(jié)構(gòu),可以適當(dāng)組合后使用。
如上所述,按照本發(fā)明,通過利用編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置及編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置,能夠減少將本來不正確的代碼字當(dāng)作正確的代碼字而進(jìn)行譯碼的情況,從而能實現(xiàn)可以抑制傳輸線路的差錯影響的可變長度譯碼裝置及方法。特別是,通過將本發(fā)明的可變長度譯碼裝置及方法應(yīng)用于動圖象的譯碼處理,即使是將編碼后的動圖象信號通過無線通信線路等傳輸線路差錯多的環(huán)境發(fā)送時,也可以減低傳輸線路差錯對顯示畫面的影響。通過推斷差錯傳播范圍,可以進(jìn)一步減低將本來不正確的代碼字當(dāng)作正確的代碼字而進(jìn)行譯碼的概率。產(chǎn)業(yè)上的可應(yīng)用性上述的本發(fā)明的動圖象譯碼裝置,適用于對以可雙向譯碼的可變長碼進(jìn)行編碼并記錄在記錄媒體內(nèi)或被傳送的動圖象等可變長度編碼信息進(jìn)行譯碼。
權(quán)利要求
1.一種可變長度譯碼裝置,備有輸入部,用于接受由可變長碼構(gòu)成的編碼數(shù)據(jù),該可變長碼由在正向或反向都能進(jìn)行譯碼的代碼字構(gòu)成;正向譯碼部,按每個規(guī)定區(qū)間從正向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;反向譯碼部,按每個規(guī)定區(qū)間從反向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;及譯碼值決定部;根據(jù)上述正向譯碼部和反向譯碼部的譯碼結(jié)果輸出最終譯碼結(jié)果;上述正向譯碼部及反向譯碼部,分別具有對上述編碼數(shù)據(jù)的差錯進(jìn)行檢測的檢測部,上述譯碼值決定部,利用指示由上述正向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置、及指示由上述反向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置,決定譯碼值。
2.根據(jù)權(quán)利要求1所述的可變長度譯碼裝置,其特征在于上述譯碼值決定部,將指示在上述同步區(qū)間內(nèi)的第幾個代碼字上發(fā)生了差錯的代碼字上的差錯發(fā)現(xiàn)位置用作上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置
3.根據(jù)權(quán)利要求1所述的可變長度譯碼裝置,其特征在于當(dāng)上述正向譯碼部及反向譯碼部的差錯發(fā)現(xiàn)位置在上述位上及上述語法上的任何一個位置上交叉時,上述譯碼值決定部,將屬于交叉量較多的差錯發(fā)現(xiàn)位置間的編碼數(shù)據(jù)廢棄,并將正向譯碼結(jié)果用作與緊接在該廢棄數(shù)據(jù)區(qū)域前面的代碼字對應(yīng)的譯碼值,將反向譯碼結(jié)果用作與緊接在該廢棄數(shù)據(jù)區(qū)域后面的代碼字對應(yīng)的譯碼值。
4.根據(jù)權(quán)利要求1所述的可變長度譯碼裝置,其特征在于上述譯碼值決定部,(a)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置無論在位上還是在語法上都不交叉時,將正向的譯碼結(jié)果用作與在上述正向譯碼部的上述位上或語法上的差錯發(fā)現(xiàn)位置的一定量之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與在上述反向譯碼部的上述位上或語法上的差錯發(fā)現(xiàn)位置的一定量之后的代碼字對應(yīng)的譯碼值,并將其余的編碼數(shù)據(jù)廢棄;(b)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置在位上不交叉而在語法上交叉時,將正向的譯碼結(jié)果用作與緊接在上述反向譯碼部的語法上的差錯發(fā)現(xiàn)位置之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部的語法上的差錯發(fā)現(xiàn)位置之后的代碼字對應(yīng)的譯碼值,并將語法上的差錯發(fā)現(xiàn)位置交叉部分的編碼數(shù)據(jù)廢棄;(c)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置在位上交叉而在語法上不交叉時,將上述正向的譯碼結(jié)果用作與緊接在上述反向譯碼部的位上的差錯發(fā)現(xiàn)位置之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部的位上的差錯發(fā)現(xiàn)位置之后的代碼字對應(yīng)的譯碼值,并將位上的差錯發(fā)現(xiàn)位置交叉部分的編碼數(shù)據(jù)廢棄;(d)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置無論在位上還是在語法上都交叉時,選擇交叉部分最大的位置作為差錯發(fā)現(xiàn)位置,而將上述正向的譯碼結(jié)果用作與緊接在上述反向譯碼部的差錯發(fā)現(xiàn)位置之前的代碼字對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部的差錯發(fā)現(xiàn)位置之后的代碼字對應(yīng)的譯碼值,并將差錯位置交叉部分的編碼數(shù)據(jù)廢棄。
5.一種動圖象譯碼裝置,備有輸入部,用于接受包含可變長碼的動圖象信號的編碼數(shù)據(jù),該編碼數(shù)據(jù),通過用在正向或反向都能譯碼的代碼字對變換系數(shù)進(jìn)行編碼生成,該變換系數(shù),通過對上述動圖象信號進(jìn)行正交變換而求得;同步區(qū)間檢測部,用于檢測上述編碼數(shù)據(jù)的同步區(qū)間;正向譯碼部,從正向?qū)τ缮鲜鐾絽^(qū)間檢測部檢測出的規(guī)定同步區(qū)間的編碼數(shù)據(jù)進(jìn)行譯碼;反向譯碼部,從反向?qū)τ缮鲜鐾絽^(qū)間檢測部檢測出的規(guī)定同步區(qū)間的編碼數(shù)據(jù)進(jìn)行譯碼;及譯碼值決定部,根據(jù)正向譯碼部和反向譯碼部的譯碼結(jié)果輸出最終譯碼結(jié)果;上述正向譯碼部及反向譯碼部,分別具有對上述編碼數(shù)據(jù)的差錯進(jìn)行檢測的差錯檢測部,上述譯碼值決定部,利用指示由上述正向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置、及指示由上述反向譯碼部檢出的上述編碼數(shù)據(jù)的差錯位置的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置,決定譯碼值。
6.根據(jù)權(quán)利要求5所述的動圖象譯碼裝置,其特征在于當(dāng)在上述同步區(qū)間內(nèi)的編碼數(shù)據(jù)中檢出差錯時,上述譯碼值決定部,在未檢出差錯的微數(shù)據(jù)塊內(nèi),將由進(jìn)行了幀內(nèi)編碼的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)的一部分或全部廢棄。
7.根據(jù)權(quán)利要求5所述的動圖象譯碼裝置,其特征在于上述譯碼值決定部,對已將編碼數(shù)據(jù)廢棄的微數(shù)據(jù)塊,在幀內(nèi)編碼模式的情況下顯示前面的畫面或作為不進(jìn)行編碼的模式處理,并在幀間預(yù)測編碼模式的情況下進(jìn)行動態(tài)補(bǔ)償。
8.根據(jù)權(quán)利要求5所述的動圖象譯碼裝置,其特征在于上述同步區(qū)間內(nèi)的編碼數(shù)據(jù),包含用作各動圖象信號的預(yù)測編碼單位的多個微數(shù)據(jù)塊的變換系數(shù),上述譯碼值決定部,將指示在上述同步區(qū)間內(nèi)的第幾個微數(shù)據(jù)塊上發(fā)生了差錯的微數(shù)據(jù)塊上的差錯發(fā)現(xiàn)位置用作上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置。
9.根據(jù)權(quán)利要求5所述的動圖象譯碼裝置,其特征在于上述同步區(qū)間內(nèi)的編碼數(shù)據(jù),包含用作各動圖象信號的預(yù)測編碼單位的多個微數(shù)據(jù)塊的變換系數(shù),上述譯碼值決定部,(a)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置無論在位上的位置還是在語法上的位置都不交叉時,將正向的譯碼結(jié)果用作與在上述正向譯碼部的位上或語法上的差錯發(fā)現(xiàn)位置的一定量之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與在上述反向譯碼部的位上或語法上的差錯發(fā)現(xiàn)位置的一定量之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由其余的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄;(b)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置在位上的位置不交叉而在語法上的位置交叉時,將正向的譯碼結(jié)果用作與緊接在上述反向譯碼部的語法上的差錯發(fā)現(xiàn)位置之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部的語法上的差錯發(fā)現(xiàn)位置之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由語法上的差錯發(fā)現(xiàn)位置交叉的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄;(c)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置在位上的位置交叉而在語法上的位置不交叉時,將正向的譯碼結(jié)果用作與緊接在上述反向譯碼部的位上的差錯發(fā)現(xiàn)位置之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部的位上的差錯發(fā)現(xiàn)位置之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由位上的差錯發(fā)現(xiàn)位置交叉的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄;(d)當(dāng)上述正向譯碼部和反向譯碼部的差錯發(fā)現(xiàn)位置無論在位上的位置還是在語法上的位置都交叉時,選擇交叉部分最大的位置為差錯發(fā)現(xiàn)位置,并將正向的譯碼結(jié)果用作與緊接在反向譯碼部的差錯發(fā)現(xiàn)位置之前的微數(shù)據(jù)塊對應(yīng)的譯碼值,將反向的譯碼結(jié)果用作與緊接在上述正向譯碼部中的差錯發(fā)現(xiàn)位置之后的微數(shù)據(jù)塊對應(yīng)的譯碼值,并將由差錯發(fā)現(xiàn)位置交叉的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)廢棄。
10.根據(jù)權(quán)利要求9所述的動圖象譯碼裝置,其特征在于當(dāng)在上述同步區(qū)間內(nèi)的編碼數(shù)據(jù)中檢出差錯時,上述譯碼值決定部,在未檢出差錯的微數(shù)據(jù)塊內(nèi),將由進(jìn)行了幀內(nèi)編碼的微數(shù)據(jù)塊的變換系數(shù)構(gòu)成的編碼數(shù)據(jù)的一部分或全部廢棄。
11.根據(jù)權(quán)利要求9所述的動圖象譯碼裝置,其特征在于上述譯碼值決定部,對已將編碼數(shù)據(jù)廢棄的微數(shù)據(jù)塊,在幀內(nèi)編碼模式的情況下顯示前面的畫面或作為不進(jìn)行編碼的模式處理,并在幀間預(yù)測編碼模式的情況下進(jìn)行動態(tài)補(bǔ)償。
12.一種可變長度編碼數(shù)據(jù)的譯碼方法,其特征在于按每個規(guī)定同步區(qū)間從正向?qū)τ煽勺冮L碼構(gòu)成的編碼數(shù)據(jù)進(jìn)行譯碼,直到在該編碼數(shù)據(jù)中檢出差錯為止,該可變長碼由包含在正向或反向都能譯碼的代碼字的代碼字構(gòu)成;當(dāng)從上述正向譯碼時如在上述編碼數(shù)據(jù)中檢測出差錯,則按每個規(guī)定同步區(qū)間從反向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;利用從上述正向和反向的譯碼結(jié)果、及在從上述正向和反向的譯碼中分別檢出的上述編碼數(shù)據(jù)的位上的差錯檢出位置和上述編碼數(shù)據(jù)的語法上的差錯檢出位置,決定譯碼值。
13.根據(jù)權(quán)利要求12所述的譯碼方法,其特征在于當(dāng)上述從正向的譯碼及從反向的譯碼的差錯發(fā)現(xiàn)位置在上述位上的差錯發(fā)現(xiàn)位置及上述語法上的差錯發(fā)現(xiàn)位置中任何一個上交叉時,將屬于交叉量較多的差錯發(fā)現(xiàn)位置間的編碼數(shù)據(jù)廢棄,并將正向譯碼結(jié)果用作與緊接在該廢棄數(shù)據(jù)區(qū)域前面的代碼字對應(yīng)的譯碼值,將反向譯碼結(jié)果用作與緊接在該廢棄數(shù)據(jù)區(qū)域后面的代碼字對應(yīng)的譯碼值。
14.一種記錄媒體,用于記錄包含如下步驟的計算機(jī)程序,即按每個規(guī)定區(qū)間從正向?qū)τ煽勺冮L碼構(gòu)成的編碼數(shù)據(jù)進(jìn)行譯碼直到在該編碼數(shù)據(jù)中檢出差錯為止的步驟,該可變長碼由包含在正向或反向都能譯碼的代碼字的代碼字構(gòu)成;當(dāng)從上述正向譯碼時如在上述編碼數(shù)據(jù)中檢測出差錯則從反向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼的步驟;及利用從上述正向和反向的譯碼結(jié)果、及從上述正向和反向的譯碼中分別檢出的上述編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和上述編碼數(shù)據(jù)的語法上的差錯發(fā)現(xiàn)位置決定譯碼值的步驟。
15.一種可變長度譯碼裝置,備有輸入部,用于接受由可變長碼構(gòu)成的編碼數(shù)據(jù),該可變長碼由包含在正向或反向都能進(jìn)行譯碼的代碼字的代碼字構(gòu)成;正向譯碼部,按每個規(guī)定同步區(qū)間從正向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;反向譯碼部,按每個規(guī)定同步區(qū)間從反向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;及譯碼值決定部,根據(jù)正向譯碼部和反向譯碼部的譯碼結(jié)果輸出最終譯碼結(jié)果;上述正向譯碼部及反向譯碼部,分別具有對上述編碼數(shù)據(jù)的差錯進(jìn)行檢測的差錯檢測部,上述譯碼值決定部,根據(jù)由上述正向和反向譯碼部檢出的編碼數(shù)據(jù)的差錯檢測位置、傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率、各代碼字的發(fā)生概率、及代碼字表中的各代碼字的位模式,推斷差錯的存在范圍,從而決定最終的譯碼值。
16.一種可變長度譯碼方法,其特征在于按每個規(guī)定同步區(qū)間從正向?qū)τ煽勺冮L碼構(gòu)成的編碼數(shù)據(jù)進(jìn)行譯碼,直到在該編碼數(shù)據(jù)中檢出差錯為止,該可變長碼由包含在正向或反向都能譯碼的代碼字的代碼字構(gòu)成;當(dāng)從上述正向譯碼時如在上述編碼數(shù)據(jù)中檢測出差錯,則按每個規(guī)定同步區(qū)間從反向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼;根據(jù)從上述正向和反向的譯碼中分別檢出的上述編碼數(shù)據(jù)的差錯檢測位置、傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率、各代碼字的發(fā)生概率、及代碼字表中的各代碼字的位模式,推斷差錯的存在范圍,從而決定最終的譯碼值。
17.一種存儲媒體,用于存儲包含如下步驟的計算機(jī)程序,即按每個規(guī)定同步區(qū)間從正向?qū)τ煽勺冮L碼構(gòu)成的編碼數(shù)據(jù)進(jìn)行譯碼直到在該編碼數(shù)據(jù)中檢出差錯為止的步驟,該可變長碼由包含在正向或反向都能譯碼的代碼字的代碼字構(gòu)成;當(dāng)從上述正向譯碼時如在上述編碼數(shù)據(jù)中檢測出差錯則按每個規(guī)定區(qū)間從反向?qū)ι鲜鼍幋a數(shù)據(jù)進(jìn)行譯碼步驟;及利用從上述正向和反向的譯碼結(jié)果、從上述正向和反向的譯碼中分別檢出的上述編碼數(shù)據(jù)的差錯檢出位置、傳輸系統(tǒng)或存儲系統(tǒng)的誤碼率、各代碼字的發(fā)生概率、代碼字表中的各代碼字的位模式,推斷差錯的存在范圍從而決定最終譯碼值的步驟。
全文摘要
首先將采用了可從雙向譯碼的可變長度代碼字的編碼數(shù)據(jù)輸入到正向譯碼器(123),由其從正向進(jìn)行譯碼處理。在從該正向的譯碼處理中,如在編碼數(shù)據(jù)內(nèi)發(fā)現(xiàn)差錯,則接著由反向譯碼器(126)開始從反向進(jìn)行譯碼處理。由譯碼值決定部(125)利用分別從正向和反向的譯碼結(jié)果、及從正向和反向的譯碼中分別發(fā)現(xiàn)的編碼數(shù)據(jù)的位上的差錯發(fā)現(xiàn)位置和語法上的差錯發(fā)現(xiàn)位置決定譯碼值。
文檔編號H03M13/00GK1246990SQ98802246
公開日2000年3月8日 申請日期1998年10月2日 優(yōu)先權(quán)日1997年10月2日
發(fā)明者中條健, 渡邊敏明 申請人:株式會社東芝