專利名稱:可變長度解碼方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種以具有規(guī)定大小的塊單位對動態(tài)圖像的圖像數(shù)據(jù)進(jìn)行頻率變換,將所得到的各塊內(nèi)的系數(shù)值進(jìn)行編碼的可變長度編碼方法、可變長度解碼方法及其裝置。
背景技術(shù):
動態(tài)圖像編碼處理一般是利用動態(tài)圖像具有的空間方向和時間方向的冗余性進(jìn)行信息量的壓縮。其中,一般利用空間方向的冗余性的方法使用向頻率區(qū)域的變換,利用時間方向的冗余性的方法使用圖像間預(yù)測編碼處理。
為了提高以往的MPEG-4動態(tài)圖像編碼方式(例如,參照非專利文獻(xiàn)1)的編碼效率,現(xiàn)在的標(biāo)準(zhǔn)化作業(yè)中的動態(tài)圖像編碼方式以大小為4×4象素的塊單位進(jìn)行頻率變換后,進(jìn)行量化,生成系數(shù)值。然后,從直流成分向高頻成分進(jìn)行掃描,作成連續(xù)數(shù)值是‘0’的系數(shù)的個數(shù)R(Run,以下也記述為‘R’)和后續(xù)的系數(shù)值L(Level,以下也記述為‘L’)的組合,形成(R、L)的組合列。使用規(guī)定的代碼表把該(R、L)變換為代碼編號后,再使用1個可變長度編碼(VLCVariable Length Coding)表,把代碼編號變換成VLC代碼,從而進(jìn)行編碼。此時的代碼表一般是發(fā)生頻度越高,所分配的代碼編號就越小。例如,R、L均小的組合的發(fā)生頻度高,所以被分配了小的代碼編號。另外,也有對小的代碼編號分配具有短的編碼長度的VLC代碼的VLC表(ISO/IEC 14496-2“Information technology--Coding ofaudio-visual objects--Part2Visual”7.4.1,pp.119-120,1999.12)。
但是,上述以往的方法,如果具有系數(shù)值‘0’的系數(shù)的連續(xù)數(shù)R及系數(shù)值L變大,則編碼長度變長,導(dǎo)致編碼效率降低。一般,由于低頻成分值的系數(shù)值L的值大,所以對低頻充分值進(jìn)行編碼時的編碼效率的降低明顯。
即,根據(jù)發(fā)生頻度,對1個VLC表的R、L對分配1個唯一的可變長度代碼,結(jié)果,為了獲得值大的系數(shù)值L,常常是被變換成了編碼長度非常長的可變長度編碼。另外,即使在對R和L分別進(jìn)行編碼的場合(L的一維編碼),在使用1個可變長度編碼表時,會產(chǎn)生和用R、L對進(jìn)行編碼時相同的問題。
發(fā)明內(nèi)容
鑒于上述問題,本發(fā)明的目的在于,提供一種對系數(shù)值L進(jìn)行編碼時可以提高編碼效率的可變長度編碼方法、可變長度解碼方法及其裝置。
為了達(dá)到上述目的,根據(jù)本發(fā)明的一個方面,提供了一種解碼方法,用于對編碼數(shù)據(jù)執(zhí)行可變長度解碼,該編碼數(shù)據(jù)通過對具有預(yù)定象素大小的塊的圖像數(shù)據(jù)執(zhí)行頻率變換而獲得的塊的系數(shù)進(jìn)行可變長度編碼而獲得,該方法包括解碼步驟,在多個編碼表之間切換編碼表的同時,從高頻成分向低頻成分對編碼數(shù)據(jù)執(zhí)行可變長度解碼,從而獲得塊的一維系數(shù);以及系數(shù)反向掃描步驟,以預(yù)定的順序?qū)λ鲆痪S系數(shù)進(jìn)行掃描,以獲得塊的二維系數(shù),其中在所述解碼步驟中,在將被解碼的當(dāng)前系數(shù)的絕對值超過閾值時,在切換為另一表之后,對該當(dāng)前系數(shù)之后的下一個將被解碼的系數(shù)執(zhí)行解碼,該另一表被分配比上述閾值大的閾值,并且在上述多個編碼表之間以一個方向執(zhí)行上述切換。
根據(jù)本發(fā)明的另一個方面,提供了一種解碼裝置,用于對編碼數(shù)據(jù)執(zhí)行可變長度解碼,該編碼數(shù)據(jù)通過對具有預(yù)定象素大小的塊的圖像數(shù)據(jù)執(zhí)行頻率變換而獲得的塊的系數(shù)進(jìn)行可變長度編碼而獲得,該裝置包括解碼單元,在多個編碼表之間切換編碼表的同時,從高頻成分向低頻成分對編碼數(shù)據(jù)執(zhí)行可變長度解碼,從而獲得塊的一維系數(shù);以及系數(shù)反向掃描單元,以預(yù)定的順序?qū)λ鲆痪S系數(shù)進(jìn)行掃描,以獲得塊的二維系數(shù),其中在所述解碼單元中,在將被解碼的當(dāng)前系數(shù)的絕對值超過閾值時,在切換為另一表之后,對該當(dāng)前系數(shù)之后的下一個將被解碼的系數(shù)執(zhí)行解碼,該另一表被分配比上述閾值大的閾值,并且在所述解碼單元中,在上述多個編碼表之間以一個方向執(zhí)行上述切換。
圖1是表示使用了本發(fā)明的實(shí)施方式1涉及的可變長度編碼方法及動態(tài)圖像編碼方法的編碼裝置的功能結(jié)構(gòu)方框圖。
圖2是表示圖1所示的可變長度編碼單元的詳細(xì)功能結(jié)構(gòu)方框圖。
圖3是說明執(zhí)行圖2所示的RL列生成單元的處理的示意圖。
圖4是說明RL列生成單元所生成的RL列及圖2所示的執(zhí)行排列更換單元的排列替換處理的示意圖。
圖5是表示圖2所示的表存儲單元保持的代碼表的一個示例圖。
圖6是表示圖2所示的表存儲單元保持的可變長度編碼表的一個示例圖。
圖7是說明RL列生成單元所生成的RL列及圖2所示的執(zhí)行排列更換單元的排列替換處理的其他示例的示意圖。
圖8是表示使用了本發(fā)明的實(shí)施方式2涉及的可變長度解碼方法及動態(tài)圖像解碼方法的解碼裝置的功能結(jié)構(gòu)方框圖。
圖9是表示圖8所示的可變長度解碼單元的詳細(xì)功能結(jié)構(gòu)方框圖。
圖10是說明代碼變換單元所生成的RL列及圖2所示的排列更換單元執(zhí)行的排列替換處理的示意圖。
圖11是說明圖9所示系數(shù)生成單元執(zhí)行的處理的示意圖。
圖12是說明代碼變換單元所生成的RL列及排列更換單元執(zhí)行的排列替換處理的其他示例的示意圖。
圖13是本發(fā)明的第3實(shí)施方式涉及的編碼裝置的結(jié)構(gòu)方框圖。
圖14是表示第3實(shí)施方式的可變長度解碼單元的內(nèi)部結(jié)構(gòu)方框圖。
圖15是表示從第3實(shí)施方式的量化單元輸出的系數(shù)塊的示意圖。
圖16是表示從第3實(shí)施方式的RL列生成單元輸出的RL列示意圖。
圖17是表示第3實(shí)施方式的概率表的切換方法的轉(zhuǎn)移圖。
圖18是表示第3實(shí)施方式的概率表內(nèi)容的示意圖。
圖19是本發(fā)明的第4實(shí)施方式涉及的圖像解碼裝置的結(jié)構(gòu)方框圖。
圖20是表示第4實(shí)施方式的可變長度解碼單元的內(nèi)部結(jié)構(gòu)方框圖。
圖21是表示二進(jìn)制表的一個示例的示意圖。
圖22是表示使用了本發(fā)明的實(shí)施方式5涉及的可變長度編碼方法及動態(tài)圖像編碼方法的編碼裝置的功能結(jié)構(gòu)方框圖。
圖23是表示圖22所示的可變長度編碼單元的詳細(xì)功能結(jié)構(gòu)方框圖。
圖24是說明圖23所示的R列·L列生成單元所生成的L列及R列的一個示例的示意圖。
圖25是表示圖23所示存儲單元保持的各個可變長度編碼表的結(jié)構(gòu)示例的示意圖。
圖26是表示圖23所示存儲單元保持的界限值表的結(jié)構(gòu)示例的示意圖。
圖27是表示圖23所示代碼分配單元執(zhí)行的可變長度編碼的分配處理的流程圖。
圖28是表示進(jìn)行編碼時使用的可變長度編碼表和界限值的關(guān)系圖。
圖29是表示代碼分配單元的編碼處理狀態(tài)的示意圖。
圖30是表示使用了本發(fā)明的實(shí)施方式6涉及的可變長度編碼方法及動態(tài)圖像解碼方法的解碼裝置的功能結(jié)構(gòu)方框圖。
圖31是表示圖30所示的可變長度解碼單元的詳細(xì)功能結(jié)構(gòu)方框圖。
圖32是使用存儲了用于執(zhí)行實(shí)施方式1、3、5的動態(tài)圖像編碼方法或?qū)嵤┓绞?、4、6的動態(tài)圖像解碼方法的程序的軟盤,利用計(jì)算機(jī)系統(tǒng)進(jìn)行實(shí)施時的說明圖。
圖33是表示用于實(shí)現(xiàn)內(nèi)容發(fā)信服務(wù)的內(nèi)容供給系統(tǒng)的整體結(jié)構(gòu)方框圖。
圖34是表示使用了本發(fā)明涉及的動態(tài)圖像預(yù)測方法、動態(tài)圖像編碼裝置及動態(tài)圖像解碼裝置的攜帶電話的示意圖。
圖35是表示本發(fā)明涉及的攜帶電話的結(jié)構(gòu)示意圖。
圖36是表示本發(fā)明涉及的數(shù)字播放系統(tǒng)的整體結(jié)構(gòu)方框圖。
具體實(shí)施例方式
以下,參照
本發(fā)明涉及的實(shí)施方式。
(實(shí)施方式1)圖1是表示使用了本發(fā)明的動態(tài)圖像編碼方法的編碼裝置的功能結(jié)構(gòu)方框圖。在該實(shí)施方式1中,圖示了利用本發(fā)明的動態(tài)圖像編碼方法對輸入圖像進(jìn)行幀內(nèi)編碼處理時的功能結(jié)構(gòu)。
如該圖所示,編碼裝置100a由塊變換單元110、頻率變換單元120、量化單元130、和可變長度編碼單元140構(gòu)成。構(gòu)成該編碼裝置100a的各部分是通過CPU、預(yù)先存儲通過CPU執(zhí)行的程序和數(shù)據(jù)的ROM、提供執(zhí)行程序時的工作區(qū)域或臨時存儲輸入圖像等的存儲器等實(shí)現(xiàn)的。
塊變換單元110把輸入圖像劃分成具有大小為水平4象素、垂直4象素的塊,并按各個象素塊將其輸出到頻率變換單元120。
頻率變換單元120對所輸入的象素塊實(shí)施頻率變換,以變換成頻率系數(shù)。頻率變換單元120把變換后的頻率系數(shù)輸出到量化單元130。
量化單元130對所輸入的頻率系數(shù)進(jìn)行量化處理。此處所說的量化處理意味著相當(dāng)于利用規(guī)定的量化值除以頻率系數(shù)值的處理。該量化值一般因塊、因頻率區(qū)域而不同。被量化后的頻率系數(shù)被輸入到可變長度編碼單元140。
可變長度編碼單元140對規(guī)定大小的塊(水平4象素、垂直4象素)的頻率系數(shù)值進(jìn)行可變長度編碼。
圖2表示可變長度編碼單元140的詳細(xì)功能結(jié)構(gòu)方框圖。
如圖2所示,可變長度編碼單元140由RL列生成單元141、排列更換單元142、代碼分配單元143、和表存儲單元144構(gòu)成。
從量化單元130輸出的被量化后的頻率系數(shù)被輸入到RL列生成單元141。
RL列生成單元141首先利用規(guī)定的掃描方法對被量化后的頻率系數(shù)值進(jìn)行一維處理。然后,RL列生成單元141對一維處理后的系數(shù)值,生成連續(xù)系數(shù)值是‘0’的個數(shù)R與其后續(xù)的‘0’以外的系數(shù)值L的組合(以下,稱為RL值)的列(以下,稱為RL列)。使用圖3、圖4說明其示例。
圖3(a)表示從量化單元130輸出的被量化后的1塊內(nèi)的頻率系數(shù)的示意圖。其中,左上系數(shù)表示直流成分,越向右水平方向的頻率成分變高,越向下垂直方向的頻率成分變高。圖3(b)表示對被量化后的頻率系數(shù)值進(jìn)行一維處理時的掃描方法的示意圖。RL列生成單元141通過從低頻區(qū)域向高頻區(qū)域掃描,進(jìn)行一維處理。
對經(jīng)由RL列生成單元141被一維處理后的系數(shù)值,生成RL列,結(jié)果如圖4(a)所示。其中,在圖4(a)中,EOB(End of Block)是表示塊中自此以后的系數(shù)值全部是‘0’的識別符。一般,越是高頻成分,系數(shù)值越容易為‘0’,所以通過從低頻區(qū)域向高頻區(qū)域掃描,可以減小RL列的信息量。所生成的RL列被輸入到排列更換單元142。
排列更換單元142把所輸入的RL列按反方向重新排列。但是,EOB從排列替換對象中除外。排列替換后的狀態(tài)如圖4(b)所示。經(jīng)過這種排列替換后的RL列被輸入到代碼分配單元143。
表存儲單元144預(yù)先保持使RL值和分配給該RL值的代碼編號相對應(yīng)的表(代碼表,參照圖5);以及使代碼編號和可變長度編碼相對應(yīng)的多種表(可變長度編碼表,圖6)。
代碼分配單元143使用表存儲單元144所保持的表,對RL列的各組分配可變長度編碼。
具體而言,代碼分配單元143首先對RL值分配代碼編號。此時,使用保持在表存儲單元144中的預(yù)先規(guī)定的代碼表(參照圖5),進(jìn)行變換為代碼編號的處理。
圖5表示代碼表的一個示例。
該代碼表一般是RL值的頻度越大,就分配越小的代碼編號,但是,一般R、L值均越小時,頻帶就變高,所以利用該性質(zhì)來構(gòu)成。使用該代碼表時,例如,最初的RL值(0、-1)的代碼編號為‘2’。第2~第5個RL值(1、1)、(0、-2)、(0、3)、(0、4)的代碼編號分別是‘3’、‘8’、‘13’、‘15’。
然后,代碼分配單元143把代碼編號變換為可變長度編碼。在變換成該可變長度編碼時,使用保持在表存儲單元144的多個可變長度編碼表(參照圖6)進(jìn)行變換為可變長度編碼的處理。
圖6表示可變長度編碼表的一個示例。
在該實(shí)施方式1中,可變長度編碼表是保持有兩種結(jié)構(gòu)。
第1可變長度編碼表1和第2可變長度編碼表2形成可變長度編碼長度隨著代碼編號的增大而增長的結(jié)構(gòu),另一方面,和可變長度編碼表2相比,可變長度編碼表1形成代碼編號小時可變長度編碼長度變短的結(jié)構(gòu),和可變長度編碼表1相比,可變長度編碼表2形成代碼編號大時可變長度編碼長度變短的結(jié)構(gòu)。即,形成可變長度編碼表1是用小的代碼編號分配短編碼,可變長度編碼表2是用大的代碼編號分配短編碼的結(jié)構(gòu)。
相對第1個RL值,使用可變長度編碼表1。該場合時,第1個RL值的代碼編號是‘2’,所以此時的可變長度編碼是‘011’。順序進(jìn)行可變長度編碼的變換,在L的絕對值超過界限值時,后續(xù)RL值以后使用可變長度編碼表2。其中,如果把相對L的絕對值的界限值設(shè)為‘2’,則在第4個RL值(0、3)超過界限值。因此,相對第1~4個RL值使用可變長度編碼表1進(jìn)行變換,對第5個以后的RL值使用可變長度編碼表2進(jìn)行變換。
其中,在第7個RL值(1、2),L的絕對值再次達(dá)到界限值以下,不進(jìn)行向可變長度編碼表1的切換,而使用可變長度編碼表2進(jìn)行變換。即,表的切換方向是一個方向。此處所說的一個方向是指不再次使用一旦已用完了的表。這樣,可以利用系數(shù)值防止頻繁切換表,減少表的切換次數(shù)。從高頻成分向低頻成分進(jìn)行一維處理時,一般L的絕對值有增加傾向。因此,在L的絕對值一度超過界限值時,即使其后的L的絕對值再次低于該界限值時,低于界限值的僅限于該系數(shù)的場合居多。所以,即使L的絕對值再次低于該界限值時,也不再次使用原來的可變長度編碼表,所以能夠提高編碼效率。例如,由于存儲器的工作空間是有限制的,所以一般僅把后續(xù)要使用的表置于工作空間。該場合時,每次切換表時,需要從ROM讀出后續(xù)的表,并展開到工作空間中,所以花費(fèi)時間,因此進(jìn)行后續(xù)的系數(shù)值的編碼就花費(fèi)時間。為此,通過作成一個方向,限制表的切換次數(shù),可以發(fā)揮整體上縮短截至到后續(xù)系數(shù)值的編碼時的時間的效果。
另外,經(jīng)由RL列生成單元141以從低頻成分向高頻成分的順序掃描系數(shù)值列的系數(shù)值,利用代碼分配單元143從系數(shù)值列的后面順序進(jìn)行編碼,使成為可變長度編碼,這是因?yàn)橛捎谙禂?shù)的絕對值從‘1’附近逐漸變大的傾向增強(qiáng),所以容易決定對塊內(nèi)的最初系數(shù)值進(jìn)行編碼所使用的表,或可以容易決定各個表的結(jié)構(gòu),或容易決定界限值。
如上所述,本實(shí)施方式1的可變長度編碼方法從低頻區(qū)域向高頻區(qū)域掃描塊內(nèi)的頻率系數(shù)值,進(jìn)行一維處理。對被一維處理后的系數(shù)值,生成連續(xù)系數(shù)值是‘0’的個數(shù)R和后續(xù)‘0’以外的系數(shù)值L的組合即RL值的列。然后,以與掃描順序相反的順序把RL值變換為可變長度編碼。即,也可以把RL值直接變換為可變長度編碼。變換為可變長度編碼時,準(zhǔn)備多個可變長度編碼表。首先,使用第1可變長度編碼表進(jìn)行變換,在L的絕對值超過界限值時,對以后的RL值使用第2可變長度編碼表進(jìn)行變換。此時,和第2可變長度編碼表相比,第1可變長度編碼表形成代碼編號小時可變長度編碼長度變短的結(jié)構(gòu),和第1可變長度編碼表相比,第2可變長度編碼表形成代碼編號大時可變長度編碼長度變短的結(jié)構(gòu)。
一般,越到低頻成分,L的絕對值越大,所以利用與從低頻區(qū)域向高頻區(qū)域掃描并生成RL值相反的順序,把RL值變換為可變長度編碼時,L的絕對值逐漸變大。
因此,在L的絕對值超過界限值之后,代碼編號大時,即L的絕對值大時,使用可變長度編碼長度變短的可變長度編碼表,從而可以減小合計(jì)編碼量。即,使用不同于R的并且是多個可變長度編碼表對L進(jìn)行編碼,也可以減小L的合計(jì)編碼量。
在本實(shí)施方式1中,說明了利用幀內(nèi)編碼對圖像進(jìn)行編碼的情況,但是,使用動態(tài)補(bǔ)償?shù)葘討B(tài)圖像輸入進(jìn)行幀間編碼時,采用本實(shí)施方式的方法也可以獲得相同效果。
另外,在本實(shí)施方式1中,說明了把輸入圖像劃分為水平4象素、垂直4象素的塊的情況,但塊的大小也可以是其他尺寸。
在本實(shí)施方式1中,作為塊內(nèi)的掃描方法,使用圖3(b)進(jìn)行了說明,但只要是從低頻區(qū)域向高頻區(qū)域的掃描,也可以使用其他掃描順序。
在本實(shí)施方式1中,作為代碼表的示例,使用圖5進(jìn)行了說明,但也可以是其他代碼表。
在本實(shí)施方式1中,作為可變長度編碼表的示例,使用圖6進(jìn)行了說明,但也可以是其他表。
另外,對使用兩個可變長度編碼表時的情況進(jìn)行了說明,但也可以使用3個以上的可變長度編碼表,使用多個界限值,在每次超過各個界限值時,切換可變長度編碼表。
在本實(shí)施方式中,說明了在L的絕對值超過界限值時切換可變長度編碼表的情況,但如果在代碼編號超過界限值時切換可變長度編碼表,也能獲得相同效果。
在本實(shí)施方式中,說明了向RL列的最后附加EOB時的情況,但也可以向RL列的最初附加RL值的個數(shù)。該情況時對應(yīng)圖4的應(yīng)編碼的RL值的個數(shù)及RL列,如圖7(a)、圖7(b)所示。另外,對圖5所示的代碼表,不需要向EOB分配代碼編號。
(實(shí)施方式2)
圖8是表示使用了本發(fā)明的實(shí)施方式涉及的可變長度解碼方法的解碼裝置的功能結(jié)構(gòu)方框圖。其中,輸入利用實(shí)施方式1說明的本發(fā)明的可變長度編碼方法所生成的編碼列。
如圖8所示,解碼裝置500a由可變長度解碼單元510、逆量化單元520、逆頻率變換單元530和幀存儲器540構(gòu)成。構(gòu)成該解碼裝置500a的各部分和編碼裝置100a相同,是通過CPU、預(yù)先存儲通過CPU執(zhí)行的程序和數(shù)據(jù)的ROM、提供執(zhí)行程序時的工作空間或臨時存儲輸入圖像等的存儲器等實(shí)現(xiàn)的。
編碼列被輸入到可變長度解碼單元510。可變長度解碼單元510對已被可變長度編碼后的編碼列進(jìn)行解碼。該編碼列如上所述,是通過以具有規(guī)定大小的塊單位劃分圖像數(shù)據(jù),按規(guī)定的掃描順序?qū)λ鰤K的頻率系數(shù)值進(jìn)行一維處理,對連續(xù)系數(shù)值是0的系數(shù)的連續(xù)數(shù)R和其后續(xù)的系數(shù)值L的組合(RL值)的列進(jìn)行編碼而生成的。
圖9表示可變長度解碼單元510的詳細(xì)功能結(jié)構(gòu)方框圖。
如圖9所示,可變長度解碼單元510由代碼變換單元511、表存儲單元512、排列更換單元513、和系數(shù)生成單元514構(gòu)成。
表存儲單元512的結(jié)構(gòu)和表存儲單元144相同,預(yù)先保持使代碼編號和可變長度編碼相對應(yīng)的多種表(可變長度編碼表,圖6);以及使RL值和分配給該RL值的代碼編號相對應(yīng)的表(代碼表,參照圖5)。
代碼變換單元511使用表存儲單元512所保持的表(多個可變長度編碼表),首先對所輸入的編碼列進(jìn)行從可變長度編碼到代碼編號的變換。向代碼編號的變換使用多個可變長度編碼表來進(jìn)行。該可變長度編碼表被保持在表存儲單元512中,通過參照表存儲單元512進(jìn)行向代碼編號的變換。
使用圖6說明可變長度編碼表的一個示例??勺冮L度編碼表保持有兩種,形成可變長度編碼表1是用小的代碼編號分配短編碼,可變長度編碼表VLC是用大的代碼編號分配短編碼的結(jié)構(gòu)。其中,輸入編碼列的前頭編碼是‘01100100000100100011100010011’。對第1個可變長度編碼使用可變長度編碼表1。參照圖6的可變長度編碼表1時,與輸入編碼列一致的是可變長度編碼‘011’,此時的代碼編號是‘2’。
然后,在代碼變換單元511把所得到的代碼編號變換為RL值。此時,使用預(yù)先規(guī)定的代碼表進(jìn)行變換。代碼表被保持在表存儲單元512中,通過參照表存儲單元512,進(jìn)行向RL值的變換。圖5表示代碼表的一個示例。此時的代碼編號是‘2’,所以RL值為(0、-1)。
同樣,順序進(jìn)行從可變長度編碼向代碼編號的變換,使用可變長度編碼表1,把可變長度編碼‘00100’變換為代碼編號‘3’,可變長度編碼‘0001001’變換為代碼編號‘8’,可變長度編碼‘0001110’變換為代碼編號‘13’,并且,各自的代碼編號被變換為RL值(1、1)、(0、-2)、(0、3)。
其中,代碼變換單元511在所得到的RL中的L的絕對值超過界限值時,在以后的可變長度編碼的變換中使用可變長度編碼表2。其中,如果把相對L的絕對值的界限值設(shè)為‘2’,則在第4個RL值(0、3)超過界限值。因此,對自此以后的RL值,使用可變長度編碼表2進(jìn)行變換。所以,后續(xù)的可變長度編碼‘0010011’被變換為代碼編號15,并被變換為RL值(0、4)。
即使在以后的解碼過程中得到的RL值中,L的絕對值再次低于界限值時,也不進(jìn)行向可變長度編碼表1的切換,而使用可變長度編碼表2進(jìn)行變換。如上所述,生成1塊的RL值時(檢測到EOB時),即被輸入到排列更換單元513。其中,生成圖10(a)所示的RL列。
排列更換單元513把所輸入的RL列按反方向重新排列。但是,EOB從排列替換對象中除外。排列替換后的狀態(tài)如圖10(b)所示。經(jīng)過這種排列替換后的RL列被輸入到系數(shù)生成單元514。
系數(shù)生成單元514把所輸入的RL列變換為系數(shù)值,按規(guī)定的掃描方法進(jìn)行二維處理,使形成系數(shù)塊。進(jìn)行向該系數(shù)值的變換時,根據(jù)規(guī)定的掃描順序,僅對用R表示的值生成系數(shù)值‘0’,然后生成用L表示的值的系數(shù)值,通過反復(fù)該過程,來進(jìn)行從RL列向系數(shù)值的變換。其中,如果從低頻區(qū)域向高頻區(qū)域進(jìn)行Z形掃描,圖10(b)的RL列即變換成圖11所示的系數(shù)塊。所生成的系數(shù)塊被輸入到逆量化單元520。
逆量化單元520對所輸入的系數(shù)塊進(jìn)行逆量化處理。此處所說的逆量化處理意味著相當(dāng)于向系數(shù)值乘以規(guī)定的量化值的處理。其中,量化值一般因塊、因頻率區(qū)域而不同,可以從編碼列中獲得,或使用規(guī)定值。被逆量化后的系數(shù)塊被輸入到頻率變換單元530。
頻率變換單元530對被逆量化后的系數(shù)塊實(shí)施逆頻率變換,變換為象素塊。所變換的象素塊被輸入到幀存儲器540。
被解碼后的象素塊被順序累積在幀存儲器540中,在累積了一個畫面的象素塊時,即作為輸出圖像進(jìn)行輸出。
如上所述,本發(fā)明的可變長度解碼方法首先使用第1可變長度編碼表對輸入編碼列進(jìn)行解碼,生成連續(xù)系數(shù)值是0的個數(shù)R和其后續(xù)的0以外的系數(shù)值L的組合即RL列的值。在L的絕對值超過界限值時,使用第2可變長度編碼表進(jìn)行其后的可變長度編碼的解碼。在逆序排列替換RL值之后,根據(jù)塊內(nèi)的規(guī)定掃描順序,把RL值變換為系數(shù)值。
根據(jù)以上動作,通過使用本發(fā)明的可變長度解碼方法,可以對用本發(fā)明的可變長度編碼方法所編碼后的編碼列進(jìn)行正確解碼。
在本實(shí)施方式2中,說明了對利用幀內(nèi)編碼所生成的編碼列進(jìn)行解碼時的情況,但是,使用動態(tài)補(bǔ)償?shù)葘討B(tài)圖像輸入進(jìn)行幀間編碼所生成的編碼列進(jìn)行解碼時,采用本實(shí)施方式的方法也可以獲得相同效果。
另外,在本實(shí)施方式2中,說明了把輸入圖像劃分為水平4象素、垂直4象素的塊進(jìn)行編碼時的情況,但塊的大小也可以是其他尺寸。
在本實(shí)施方式2中,作為塊內(nèi)的掃描方法,使用圖11進(jìn)行了說明,但只要和編碼時使用的掃描方法相同,也可以使用其他掃描順序。
在本實(shí)施方式2中,作為代碼表的示例,使用圖5進(jìn)行了說明,但只要和編碼時使用的代碼表相同,也可以是其他代碼表。
在本實(shí)施方式2中,作為可變長度編碼表的示例,使用圖6進(jìn)行了說明,但只要和編碼時使用的可變長度編碼表相同,也可以是其他表。另外,對使用兩個可變長度編碼表時的情況進(jìn)行了說明,但也可以使用3個以上的可變長度編碼表,使用多個界限值,在每次超過各個界限值時,切換可變長度編碼表。但此時的可變長度編碼表的結(jié)構(gòu)和界限值必須和編碼時使用的可變長度編碼表的結(jié)構(gòu)和界限值相同。
在本實(shí)施方式2中,說明了在L的絕對值超過界限值時切換可變長度編碼表的情況,但如果在代碼編號超過界限值時切換可變長度編碼表,也能獲得相同效果。
在本實(shí)施方式2中,說明了對向RL列的最后附加EOB進(jìn)行編碼的編碼列進(jìn)行解碼時的情況,但也可以對向RL列的最初附加RL值的個數(shù)進(jìn)行編碼的編碼列進(jìn)行解碼。該情況時對應(yīng)圖10的通過解碼得到的RL值的個數(shù)及RL列,如圖12(a)、圖12(b)所示。另外,對圖5所示的代碼表,不需要向EOB分配代碼編號。
以上說明的本發(fā)明的可變長度編碼方法從低頻區(qū)域向高頻區(qū)域掃描塊內(nèi)的頻率系數(shù)值并進(jìn)行一維處理。對經(jīng)過一維處理后的系數(shù)值,生成連續(xù)系數(shù)值是0的個數(shù)R和其后續(xù)的0以外的系數(shù)值L的組合即RL值的列。以與掃描順序相反的順序把RL值變換為可變長度編碼。在變換為可變長度編碼時,準(zhǔn)備多個可變長度編碼表。首先,使用第1可變長度編碼表進(jìn)行變換,在L的絕對值或代碼編號超過界限值時,對以后的RL值使用第2可變長度編碼表進(jìn)行變換。此時,和第2可變長度編碼表相比,第1可變長度編碼表形成代碼編號小時可變長度編碼長度變短的結(jié)構(gòu),和第1可變長度編碼表相比,第2可變長度編碼表形成代碼編號大時可變長度編碼長度變短的結(jié)構(gòu)。
一般,越到低頻成分,L的絕對值和代碼編號越大,所以利用與從低頻區(qū)域向高頻區(qū)域掃描并生成RL值相反的順序,把RL值變換為可變長度編碼時,L的絕對值逐漸變大。因此,在L的絕對值超過界限值之后,代碼編號大時,使用可變長度編碼長度變短的可變長度編碼表,從而可以減小合計(jì)編碼量。
本發(fā)明的可變長度解碼方法首先使用第1可變長度編碼表對輸入編碼列進(jìn)行解碼,生成連續(xù)系數(shù)值是0的個數(shù)R和其后續(xù)的0以外的系數(shù)值L的組合即RL值的列。在L的絕對值或代碼編號超過界限值時,使用第2可變長度編碼表進(jìn)行其后面的可變長度編碼的解碼。然后,在把RL值逆序排列替換后,根據(jù)塊內(nèi)的規(guī)定掃描順序,把RL值變換為系數(shù)值。
根據(jù)以上動作,通過使用本發(fā)明的可變長度解碼方法,可以對使用本發(fā)明的可變長度編碼方法所編碼后的編碼列進(jìn)行正確解碼。
(實(shí)施方式3)以下,參照
本發(fā)明的第3實(shí)施方式的編碼裝置。
圖13表示本發(fā)明的第3實(shí)施方式的編碼裝置100b的結(jié)構(gòu)方框圖。
該編碼裝置100b用于提高對輸入圖像(圖像數(shù)據(jù))的編碼效率,并進(jìn)行圖像內(nèi)編碼處理,由塊變換單元101、頻率變換單元102、量化單元103、和可變長度編碼單元150構(gòu)成。
塊變換單元101把輸入圖像劃分成大小為水平4×垂直4象素的象素塊,并將其輸出到頻率變換單元102。
頻率變換單元102對所劃分的上述各象素塊實(shí)施頻率變換,生成頻率系數(shù)。頻率變換單元102把生成的頻率系數(shù)輸出到量化單元103。
量化單元103對從頻率變換單元102輸出的頻率系數(shù)進(jìn)行量化處理。此處所說的量化處理意味著相當(dāng)于利用規(guī)定的量化值除以頻率系數(shù)的處理。該量化值一般因象素塊、因頻率區(qū)域而不同。量化單元103把被量化后的頻率系數(shù)輸入到可變長度編碼單元150。
可變長度編碼單元150對經(jīng)由量化單元103量化后的頻率系數(shù)進(jìn)行可變長度編碼。
圖14表示可變長度編碼單元150的內(nèi)部結(jié)構(gòu)方框圖。
如圖14所示,可變長度編碼單元150由RL列生成單元201、排列更換單元202、二進(jìn)制單元203、表存儲單元204、和算術(shù)編碼單元205構(gòu)成。
RL列生成單元201利用規(guī)定的掃描方法對從量化單元103輸出的被量化后的頻率系數(shù)(以下,略稱為‘系數(shù)’)進(jìn)行一維處理。然后,RL列生成單元201對一維處理后的系數(shù),生成連續(xù)系數(shù)值是‘0’的個數(shù)R與其后續(xù)的‘0’以外的系數(shù)值L的組合(以下,稱為RL值)的列(以下,稱為RL列)。使用圖15、圖16說明其示例。
圖15(a)表示由從量化單元103輸出的被量化后的多個系數(shù)構(gòu)成的系數(shù)塊。其中,系數(shù)塊內(nèi)的左上頻率系數(shù)表示直流成分,越向右水平方向的頻率成分變高,越向下垂直方向的頻率成分變高。
圖15(b)是用于說明對系數(shù)塊內(nèi)的多個系數(shù)進(jìn)行一維處理時的掃描方法的示意圖。RL列生成單元201按圖15(b)的箭頭所示,通過從低頻區(qū)域向高頻區(qū)域掃描系數(shù)塊內(nèi),進(jìn)行系數(shù)的一維處理。
圖16(a)表示從RL列生成單元201輸出的RL列。
在該圖16(a)中,最初數(shù)字表示系數(shù)的個數(shù)。一般,越是高頻區(qū)域,系數(shù)值越容易為‘0’,所以通過從低頻區(qū)域向高頻區(qū)域掃描,可以減小RL列的信息量(中的個數(shù)R的信息量)。所生成的RL列被輸入到排列更換單元202。
排列更換單元202把所輸入的RL列按反方向重新排列。但是,系數(shù)的個數(shù)從排列替換對象中除外。
圖16(b)表示經(jīng)由排列更換單元202排列替換后的RL列。通過這種排列替換,盡管按上面所述減小了信息量,但結(jié)果形成從高頻區(qū)域向低頻區(qū)域掃描系數(shù)塊內(nèi),進(jìn)行系數(shù)的一維處理。經(jīng)過這種排列替換后的RL列被輸入到二進(jìn)制單元203。
二進(jìn)制單元203對系數(shù)的個數(shù)和各個RL值進(jìn)行二進(jìn)制,即變換為由‘0’和‘1’構(gòu)成的二進(jìn)制數(shù)據(jù)。在此,個數(shù)R和系數(shù)值L分別被二進(jìn)制。
圖16(c)僅表示經(jīng)由排列更換單元202排列替換后的RL列的系數(shù)值L。對這些系數(shù)值L,其絕對值和正負(fù)代碼是另外處理的。二進(jìn)制單元203例如使用圖21所示的預(yù)先規(guī)定的二進(jìn)制表,對個數(shù)R和系數(shù)值L的絕對值進(jìn)行二進(jìn)制。然后,二進(jìn)制單元203把對它們實(shí)施了二進(jìn)制后的二進(jìn)制數(shù)據(jù)輸出到算術(shù)編碼單元205。
算術(shù)編碼單元205對作為二進(jìn)制數(shù)據(jù)所表示的個數(shù)R值和系數(shù)值L的絕對值進(jìn)行2值算術(shù)編碼,同時對系數(shù)值L的正負(fù)代碼進(jìn)行編碼。這里,說明對系數(shù)值L的絕對值的算術(shù)編碼。算術(shù)編碼單元205對作為二進(jìn)制數(shù)據(jù)所表示的系數(shù)值L的絕對值實(shí)施算術(shù)編碼時,切換使用多個概率表。這些多個概率表被存儲在表存儲單元204中。
圖17是表示概率表的切換方法的轉(zhuǎn)移圖。
如該圖17所示,算術(shù)編碼單元205使用4個概率表,對前頭的系數(shù)值L的絕對值使用概率表1對其進(jìn)行算術(shù)編碼。對其后的系數(shù)值L的絕對值,算術(shù)編碼單元205根據(jù)對前面的系數(shù)值L的絕對值進(jìn)行編碼時使用的概率表的表序號及其絕對值,切換要使用的概率表。其中,4個概率表是概率表1、概率表2、概率表3、概率表4,概率表1的表序號是‘1’,概率表2的表序號是‘2’,概率表3的表序號是‘3’,概率表4的表序號是‘4’。
具體而言,前面的系數(shù)值L的絕對值是使用概率表1進(jìn)行編碼,并且其絕對值為‘1’時,或緊前面的系數(shù)值L的絕對值是使用概率表2進(jìn)行編碼,并且其絕對值為‘1’時,使用概率表2。前面的系數(shù)值L的絕對值是使用概率表1進(jìn)行編碼,并且其絕對值為‘2’時,或前面的系數(shù)值L的絕對值是使用概率表2進(jìn)行編碼,并且其絕對值為‘2’時,或前面的系數(shù)值L的絕對值是使用概率表3進(jìn)行編碼,并且其絕對值為‘2以下’時,使用概率表3。前面的系數(shù)值L的絕對值是‘3以上’時,或前面的系數(shù)值L的絕對值是使用概率表4進(jìn)行編碼時,使用概率表4。
這種概率表的切換,從表序號小的概率表到表序號大的概率表是一個方向,即使前面的系數(shù)值L的絕對值達(dá)到規(guī)定界限值以下時,也不進(jìn)行反方向的切換。這點(diǎn)不同于以往的實(shí)施例。
圖18是表示上述4個概率表1~4的內(nèi)容的概率表內(nèi)容示意圖。
概率表1~4分別如圖18所示,由產(chǎn)生‘0’的概率和產(chǎn)生‘1’的概率構(gòu)成。
例如,概率表1由產(chǎn)生‘0’的概率‘0.1’和產(chǎn)生‘1’的概率‘0.9’構(gòu)成,概率表2由產(chǎn)生‘0’的概率‘0.2’和產(chǎn)生‘1’的概率‘0.8’構(gòu)成。
即,如果系數(shù)值L的絕對值是‘2’,該‘2’被二進(jìn)制后是‘01’,算術(shù)編碼單元205使用概率表1對其進(jìn)行算術(shù)編碼時,使用對應(yīng)上述‘01’的‘0’的概率‘0.1’和對應(yīng)上述‘01’的‘1’的概率‘0.9’,對該‘01’進(jìn)行算術(shù)編碼。
其中,產(chǎn)生‘0’的概率和產(chǎn)生‘1’的概率的合計(jì)是1.0,所以沒必要保持兩者的概率,可以僅保持一方概率。
以下,說明圖16(c)所示的系數(shù)值L的絕對值(被二進(jìn)制后的值)被編碼時的概率表的切換示例。
算術(shù)編碼單元205對最初的系數(shù)值L(-2)的絕對值使用概率表1。此處的系數(shù)值L的絕對值是2,所以算術(shù)編碼單元205把使用的概率表從概率表1轉(zhuǎn)移為概率表3。這樣,算術(shù)編碼單元205使用概率表3對第2個系數(shù)值L(3)的絕對值進(jìn)行算術(shù)編碼。此處的系數(shù)值L的絕對值是3,所以算術(shù)編碼單元205把使用的概率表從概率表3轉(zhuǎn)移為概率表4。這樣,算術(shù)編碼單元205使用概率表4對第3個系數(shù)值(6)的絕對值進(jìn)行算術(shù)編碼。此處使用的概率表被轉(zhuǎn)移為概率表4,所以算術(shù)編碼單元205對以后的系數(shù)值L的絕對值全部使用概率表4進(jìn)行算術(shù)編碼。例如,第5個系數(shù)值L的絕對值時‘2’,和以往的示例不同,算術(shù)編碼單元205對第6個以后的系數(shù)值L的絕對值進(jìn)行算術(shù)編碼時,不轉(zhuǎn)移概率表而使用概率表4。
另外,各個概率表根據(jù)輸入是‘0’還是‘1’而隨時更新,所以被更新為與輸入相適應(yīng)的概率表。
如上所述,本發(fā)明涉及的圖像編碼裝置100b的可變長度編碼單元150的可變長度編碼方法,從低頻區(qū)域向高頻區(qū)域掃描系數(shù)塊內(nèi)并進(jìn)行一維處理。對經(jīng)過一維處理后的系數(shù)值,生成連續(xù)系數(shù)值是0的個數(shù)R和其后續(xù)的0以外的系數(shù)值L的組合即RL值的列(RL列)。以與掃描順序相反的順序把RL值變換為可變長度編碼。在變換為可變長度編碼時,分別變換個數(shù)R、系數(shù)值L的絕對值、系數(shù)值L的正負(fù)代碼。進(jìn)行這些變換時,首先進(jìn)行二進(jìn)制,然后實(shí)施算術(shù)編碼。對系數(shù)值L的絕對值實(shí)施算術(shù)編碼時,切換多個概率表。切換概率表時,根據(jù)當(dāng)前概率表的表序號和系數(shù)值L的絕對值,決定對后面的系數(shù)值L的絕對值進(jìn)行編碼時的概率表。概率表的轉(zhuǎn)移僅是在一個方向進(jìn)行,在系數(shù)值L的絕對值超過規(guī)定值一次時,其后面的算術(shù)編碼全部使用相同概率表進(jìn)行。
一般,越到低頻區(qū)域,系數(shù)值L的絕對值越大,所以以從高頻區(qū)域向低頻區(qū)域的順序進(jìn)行掃描時,系數(shù)值L的絕對值順序變大的場合居多。因此,在系數(shù)值L的絕對值超過規(guī)定值一次時,即使其后面的系數(shù)值L的絕對值小于規(guī)定值,變小的僅是其系數(shù)值L的絕對值的可能性非常高,使用相同概率表進(jìn)行算術(shù)編碼,從而使概率表的更新容易與輸入相適應(yīng),由此各個概率表的碼元(二進(jìn)制數(shù)據(jù)的‘0’或‘1’)的發(fā)生概率容易產(chǎn)生偏移(即,‘0’或‘1’中任一方的發(fā)生概率成為接近1.0的值)。算術(shù)編碼具有概率表內(nèi)的概率值越產(chǎn)生偏移,編碼效率就越高的特征。因此,通過使用本發(fā)明的可變長度編碼方法,可以實(shí)現(xiàn)編碼效率的改善。
以上,使用本實(shí)施方式說明了本發(fā)明涉及的圖像編碼裝置,但本發(fā)明不限定于此。
例如,在本實(shí)施方式中,說明了利用圖像內(nèi)編碼對圖像進(jìn)行編碼的情況,但是,使用動態(tài)補(bǔ)償?shù)葘討B(tài)圖像輸入進(jìn)行圖像間編碼時,也可以獲得相同效果。
另外,在本實(shí)施方式中,說明了把輸入圖像劃分為水平4×垂直4象素的象素塊的情況,但該象素塊的大小也可以是其他尺寸。
在本實(shí)施方式中,作為系數(shù)塊內(nèi)的掃描方法,使用圖15(b)進(jìn)行了說明,但只要是從低頻區(qū)域向高頻區(qū)域的掃描,也可以使用其他掃描順序。
在本實(shí)施方式中,說明了以下情況,RL列生成單元201利用規(guī)定的掃描方法對被量化后的頻率系數(shù)進(jìn)行一維處理,然后對一維處理后的系數(shù)值,生成連續(xù)系數(shù)值是‘0’的個數(shù)R與其后續(xù)的‘0’以外的系數(shù)值L的組合的列(RL列),但是也可以分別生成個數(shù)R的列和系數(shù)值L的列。例如,生成系數(shù)值L的列時,如果從高頻區(qū)域向低頻區(qū)域進(jìn)行掃描,通過選擇系數(shù)值是0的以外的系數(shù)來進(jìn)行生成,則可以省略排列更換單元202。
在本實(shí)施方式中,說明了使用4個概率表,根據(jù)圖17所示的轉(zhuǎn)移圖來轉(zhuǎn)移概率表的情況,但概率表的數(shù)目和圖17中的轉(zhuǎn)移時相對系數(shù)值L的絕對值的界限值也可以是其他值。
在本實(shí)施方式中,作為二進(jìn)制表的示例,使用圖21進(jìn)行了說明,但也可以是其他表。
另外,在本實(shí)施方式中,說明了算術(shù)編碼單元進(jìn)行2值算術(shù)編碼時的情況,但也可以進(jìn)行多值算術(shù)編碼。該場合時,可以省略二進(jìn)制單元203。
(實(shí)施方式4)以下,參照
本發(fā)明的第4實(shí)施方式的圖像解碼裝置。
圖19表示本發(fā)明的第4實(shí)施方式的解碼裝置500b的結(jié)構(gòu)方框圖。
該解碼裝置500b用于對圖像數(shù)據(jù)被進(jìn)行了圖像內(nèi)編碼處理后的編碼列,進(jìn)行圖像內(nèi)解碼處理,由可變長度解碼單元601、逆量化單元602、逆頻率變換單元603和幀存儲器604構(gòu)成。其中,所輸入的上述編碼列,例如是利用實(shí)施方式3的編碼裝置100b的可變長度編碼方法所生成的,可變長度解碼單元601首先獲取該編碼列。
可變長度解碼單元601獲取編碼列,并對該編碼列進(jìn)行可變長度解碼,從而作成由圖15(a)所示的多個系數(shù)構(gòu)成的系數(shù)塊。
逆量化單元602從可變長度解碼單元601獲取上述系數(shù)塊,對該系數(shù)塊進(jìn)行逆量化處理。此處所說的逆量化處理意味著向系數(shù)塊的各個系數(shù)乘以規(guī)定的量化值。此處的量化值一般因各個系數(shù)塊和頻率區(qū)域而不同,可以從編碼列中得到。逆量化單元602把逆量化后的系數(shù)塊輸出到逆頻率變換單元603。
逆頻率變換單元603對逆量化后的系數(shù)塊實(shí)施逆頻率變換,把系數(shù)塊變換為象素塊。逆頻率變換單元603把變換后的象素塊輸出到幀存儲器604。
被解碼后的象素塊被順序累積在幀存儲器604中,在累積了一個畫面的象素塊時,把這些象素塊作為輸出圖像進(jìn)行輸出。
下面詳細(xì)說明可變長度解碼單元601。
圖20表示可變長度解碼單元601的內(nèi)部結(jié)構(gòu)方框圖。
如圖20所示,可變長度解碼單元601由算術(shù)解碼單元701、多值化單元702、表存儲單元703、排列更換單元704、和系數(shù)生成單元705構(gòu)成。
表存儲單元703中保持有例如圖18所示的4個概率表1~4。
算術(shù)解碼單元701獲取編碼列,首先對該編碼列進(jìn)行算術(shù)解碼。下面,說明對編碼列中包含的被編碼后的系數(shù)值L的絕對值(被二進(jìn)制后的值)的2值算術(shù)解碼。
算術(shù)解碼單元701對編碼后的系數(shù)值L的絕對值進(jìn)行算術(shù)解碼時,從多值化單元702獲取已被解碼并多值化的前面系數(shù)值L的絕對值,根據(jù)該系數(shù)值L的絕對值,按圖17所示切換使用保持在表存儲單元703中的概率表1~4,對編碼后的各系數(shù)值L的絕對值進(jìn)行2值算術(shù)解碼,輸出與它們對應(yīng)的二進(jìn)制數(shù)據(jù)。
多值化單元702對從算術(shù)解碼單元701輸出的二進(jìn)制數(shù)據(jù),例如使用圖21所示的二進(jìn)制表進(jìn)行多值化,作為系數(shù)值L的絕對值。多值化單元702把系數(shù)值L的絕對值輸出到算術(shù)解碼單元701和排列更換單元704。
下面,說明算術(shù)解碼單元701和多值化單元702的具體動作。
首先,算術(shù)解碼單元701使用概率表1對編碼后的前頭系數(shù)值L的絕對值進(jìn)行算術(shù)解碼。算術(shù)解碼單元701把通過算術(shù)解碼所得到的二進(jìn)制數(shù)據(jù)輸出到多值化單元702。多值化單元702使用二進(jìn)制表進(jìn)行從二進(jìn)制數(shù)據(jù)到系數(shù)值L的絕對值的變換,把該絕對值輸出到算術(shù)解碼單元701和排列更換單元704。
然后,算術(shù)解碼單元701對在此之后被編碼后的系數(shù)值L的絕對值,利用把前面被編碼后的系數(shù)值L的絕對值進(jìn)行2值算術(shù)解碼時使用的概率表的表序號和從多值化單元702獲取的前面的系數(shù)值L的絕對值,切換使用的概率表。如圖17所示,前面被編碼后的系數(shù)值L的絕對值是使用概率表1進(jìn)行算術(shù)解碼,并且從多值化單元702獲取的前面的系數(shù)值L的絕對值是‘1’時,或前面被編碼后的系數(shù)值L的絕對值是使用概率表2進(jìn)行算術(shù)解碼,并且從多值化單元702獲取的前面的系數(shù)值L的絕對值是‘1’時,使用概率表2。前面被編碼后的系數(shù)值L的絕對值是使用概率表1進(jìn)行算術(shù)解碼,并且從多值化單元702獲取的前面的系數(shù)值L的絕對值是‘2’時,或前面被編碼后的系數(shù)值L的絕對值是使用概率表2進(jìn)行算術(shù)解碼,并且從多值化單元702獲取的前面的系數(shù)值L的絕對值是‘2’時,或前面被編碼后的系數(shù)值L的絕對值是使用概率表3進(jìn)行算術(shù)解碼,并且從多值化單元702獲取的前面的系數(shù)值L的絕對值是‘2以下’時,使用概率表3。從多值化單元702獲取的前面的系數(shù)值L的絕對值是‘3以上’時,或前面被編碼后的系數(shù)值L的絕對值是使用概率表4進(jìn)行算術(shù)解碼時,使用概率表4。這種概率表1~4的切換,從表序號小的概率表到表序號大的概率表是一個方向,即使從多值化單元702獲取的前面的系數(shù)值L的絕對值達(dá)到規(guī)定界限值以下時,也不進(jìn)行反方向的切換。這點(diǎn)不同于以往的實(shí)施例。
以下,說明解碼成圖16(c)所示系數(shù)值L的絕對值時的概率表的切換示例。
算術(shù)解碼單元701對最初被編碼后的系數(shù)值L(-2)的絕對值,使用概率表1進(jìn)行算術(shù)解碼,使成為二進(jìn)制數(shù)據(jù)‘01’。算術(shù)解碼單元701從多值化單元702獲取對該二進(jìn)制數(shù)據(jù)‘01’進(jìn)行多值化后的‘2’,所以把使用的概率表從概率表1轉(zhuǎn)移到概率表3。這樣,算術(shù)解碼單元701使用概率表3對第2個被編碼后的系數(shù)值L(3)的絕對值算術(shù)解碼為二進(jìn)制數(shù)據(jù)‘001’。算術(shù)解碼單元701從多值化單元702獲取對該二進(jìn)制數(shù)據(jù)‘001’進(jìn)行多值化后的‘3’,所以把使用的概率表從概率表3轉(zhuǎn)移到概率表4。這樣,算術(shù)解碼單元701使用概率表4將第3個被編碼后的系數(shù)值L(6)的絕對值算術(shù)解碼為二進(jìn)制數(shù)據(jù)‘000001’。此處使用的概率表被轉(zhuǎn)移為概率表4,所以算術(shù)解碼單元701對以后被編碼后的系數(shù)值L的絕對值全部使用概率表4進(jìn)行算術(shù)解碼。例如,第5個被編碼后的系數(shù)值L的絕對值經(jīng)過解碼并多值化后的結(jié)果為‘2’,但和以往示例不同,算術(shù)解碼單元701對第6個以后的被編碼后的系數(shù)值L的絕對值進(jìn)行算術(shù)解碼時,不轉(zhuǎn)移概率表而使用概率表4。
通過以上的動作,生成1個系數(shù)塊的系數(shù)值L的絕對值以及個數(shù)R和系數(shù)值L的正負(fù)代碼,并將它們作為RL列輸入排列更換單元704。
排列更換單元704把所輸入的RL列按反方向重新排列。但是,系數(shù)的個數(shù)從排列替換對象中除外。排列替換后的狀態(tài)如圖16(a)所示。排列更換單元704把經(jīng)過這種排列替換后的RL列輸入到系數(shù)生成單元705。
系數(shù)生成單元705把所輸入的RL列變換為系數(shù)塊。此時,系數(shù)生成單元705根據(jù)規(guī)定的掃描順序生成僅對用個數(shù)R表示的個數(shù)值‘0’的系數(shù),然后生成用系數(shù)值L表示的值的系數(shù)值,通過反復(fù)該過程,來進(jìn)行從RL列向系數(shù)塊的變換。其中,系數(shù)生成單元705如圖15(b)所示,從低頻區(qū)域向高頻區(qū)域進(jìn)行Z形掃描,把圖16(a)所示的RL列變換成圖15(a)所示的系數(shù)塊。系數(shù)生成單元705把這樣生成的系數(shù)塊輸入到逆量化單元602。
如上所述,本發(fā)明涉及的解碼裝置500b的可變長度解碼單元601的可變長度解碼方法,進(jìn)行輸入編碼列中的系數(shù)值L的絕對值的算術(shù)解碼時,切換多個概率表。切換多個概率表時,利用當(dāng)前的概率表的表序號以及通過解碼所得到的系數(shù)值L的絕對值,決定對后續(xù)的系數(shù)值L的絕對值進(jìn)行解碼時使用的概率表。此時的概率表的轉(zhuǎn)移僅是在一個方向進(jìn)行,在通過解碼所得到的系數(shù)值L的絕對值超過規(guī)定值一次時,自此以后全部使用相同概率表進(jìn)行算術(shù)解碼。
這樣,通過使用本發(fā)明的可變長度解碼方法,可以對使用本發(fā)明的可變長度編碼方法所編碼后的編碼列進(jìn)行正確解碼。
以上,使用本實(shí)施方式說明了本發(fā)明涉及的圖像解碼裝置,但本發(fā)明不限定于此。
例如,在本實(shí)施方式中,說明了利用圖像內(nèi)編碼對所生成的編碼列進(jìn)行解碼的情況,但是,使用動態(tài)補(bǔ)償?shù)葘討B(tài)圖像輸入進(jìn)行圖像間編碼所生成的編碼列進(jìn)行解碼時,也可以獲得相同效果。
另外,在本實(shí)施方式中,說明了把圖像數(shù)據(jù)劃分為水平4×垂直4象素的象素塊進(jìn)行編碼的編碼列的情況,但該象素塊的大小也可以是其他尺寸。
在本實(shí)施方式中,說明了使用4個概率表,根據(jù)圖17所示的轉(zhuǎn)移圖來轉(zhuǎn)移概率表的情況,但概率表的數(shù)目和圖17中的轉(zhuǎn)移時相對系數(shù)值L的絕對值的界限值也可以是其他值。
在本實(shí)施方式中,作為系數(shù)塊內(nèi)的掃描方法,使用圖15(b)進(jìn)行了說明,但是只要與進(jìn)行編碼時使用的掃描方法相同,也可以使用其他掃描順序。
在本實(shí)施方式中,作為二進(jìn)制的示例,使用圖21進(jìn)行了說明,但是只要與進(jìn)行編碼時使用的二進(jìn)制表相同,也可以是其他表。
另外,在本實(shí)施方式中,說明了算術(shù)解碼單元701進(jìn)行2值算術(shù)解碼時的情況,但也可以進(jìn)行多值算術(shù)解碼。該場合時,可以省略多值化單元702。
下面,參照
本發(fā)明涉及的其他實(shí)施方式。
(實(shí)施方式5)圖22表示本發(fā)明的可變長度編碼方法以及使用了該方法的動態(tài)圖像編碼方法所適用的編碼裝置的功能結(jié)構(gòu)方框圖。在該實(shí)施方式5中,圖示了與實(shí)施方式1、3的編碼裝置100a、100b相同、利用本發(fā)明的動態(tài)圖像編碼方法對輸入圖像進(jìn)行幀內(nèi)編碼處理時的功能結(jié)構(gòu)。構(gòu)成該編碼裝置100c的各部分是通過CPU、預(yù)先存儲通過CPU執(zhí)行的程序和數(shù)據(jù)的ROM、提供執(zhí)行程序時的工作空間或臨時存儲輸入圖像等的存儲器等實(shí)現(xiàn)的。
如圖22所示,該實(shí)施方式5涉及的編碼裝置100c由塊變換單元110、頻率變換單元120、量化單元130、和可變長度編碼單元160構(gòu)成。
其中,上述實(shí)施方式1涉及的編碼裝置100a的結(jié)構(gòu)是使用多個可變長度編碼表(VLC表)對R和L對進(jìn)行編碼,上述實(shí)施方式3涉及的編碼裝置100b的結(jié)構(gòu)是使用多個概率表分別對R和L進(jìn)行算術(shù)編碼,該實(shí)施方式5涉及的編碼裝置100c的結(jié)構(gòu)是使用不同于R的多個可變長度編碼表對L進(jìn)行編碼,這點(diǎn)不同于編碼裝置100a、100b。因此,編碼裝置100c使用可變長度編碼單元160來代替編碼裝置100a、100b的可變長度編碼單元140、150。關(guān)于其他結(jié)構(gòu)和編碼裝置100a、100b相同,所以省略其說明,而詳細(xì)說明可變長度編碼單元160。
該可變長度編碼單元160根據(jù)利用量化單元130所量化后的頻率系數(shù)分別生成L列和R列,利用一維VLC切換方式生成系數(shù)的絕對值|L|等編碼列。
圖23表示可變長度編碼單元160的詳細(xì)功能結(jié)構(gòu)方框圖。
如圖23所示,可變長度編碼單元160由R列·L列生成單元161、代碼分配單元163和表存儲單元164構(gòu)成。
R列·L列生成單元161從頻率低的一方向高的一方Z形掃描被量化后的頻率系數(shù)(以下,稱為‘系數(shù)’),分別生成L列和R列。
具體而言,在輸入了圖3(a)所示的塊系數(shù)時,R列·L列生成單元161按圖3(b)所示進(jìn)行Z形掃描。R列·L列生成單元161按圖24(a)所示,首先對L列獲取系數(shù)值是‘0’的以外的L的個數(shù)m、其系數(shù)的絕對值|L|的列、和其系數(shù)的編碼列。這是因?yàn)镽依賴于L,而L不依賴R,可以獨(dú)立獲取。然后,R列·L列生成單元161按圖24(b)所示,生成R的列(R列)。
表存儲單元164保持有多個用于對L列的各系數(shù)的絕對值|L|進(jìn)行可變長度編碼的多個(例如,8個)可變長度編碼表1641a~1641g、和相對系數(shù)的絕對值|L|的界限值,保持用于根據(jù)系數(shù)的絕對值|L|而適宜切換各可變長度編碼表1641a~1641g的界限值表1642等。
圖25表示各可變長度編碼表1641a~1641g的結(jié)構(gòu)示例圖。各可變長度編碼表1641a~1641g實(shí)際上是使系數(shù)的絕對值|L|和其二進(jìn)制代碼分別相對應(yīng)而構(gòu)成的,但在該圖中是用1個表進(jìn)行圖示。
系數(shù)的絕對值|L|的出現(xiàn)頻度越高,就分配越小的代碼編號,但一般是系數(shù)的絕對值|L|的值越小,出現(xiàn)頻度就越高。這是因?yàn)橄禂?shù)的絕對值|L|的最大值在映象中、畫面中,其值分散,相同值的出現(xiàn)頻度少,而系數(shù)的絕對值|L|的最小值、即高頻成分基本集中為‘1’和‘2’的傾向較強(qiáng),所以相同值的出現(xiàn)頻度變多。另一方面,如果僅使系數(shù)的絕對值|L|和二進(jìn)制代碼和1個可變長度編碼表相對應(yīng),系數(shù)的絕對值|L|越大,其編碼長度就變得非常長。為此,預(yù)先準(zhǔn)備與系數(shù)的絕對值|L|相適用的可變長度編碼表1641a~1641g,以便即使系數(shù)的絕對值|L|變大時,其編碼長度也不會太長。
各可變長度編碼表1641a~1641g的結(jié)構(gòu)是,使相對系數(shù)值的編碼長度的變化率不同,以使系數(shù)值的最小值的編碼長度以分別賦予給各個所述表的序號k的順序變長,系數(shù)值的最大值的編碼長度以序號k的順序變短。
具體而言,在各個表中,可變長度編碼表1641a是當(dāng)系數(shù)的絕對值|L|小時,其編碼長度最短,系數(shù)的絕對值|L|大時,其編碼長度最長的表。即,在各可變長度編碼表1641a~1641g中,可變長度編碼表1641a是編碼長度的變化率相對于系數(shù)的絕對值|L|最大的表,適合適用于系數(shù)的絕對值|L|小(例如是‘1’~‘3’)的場合。
在各個表中,可變長度編碼表1641g是當(dāng)系數(shù)的絕對值|L|小時,其編碼長度最長,系數(shù)的絕對值|L|大時,其編碼長度最短的表。即,在各可變長度編碼表1641a~1641g中,可變長度編碼表1641g是編碼長度的變化率相對系數(shù)的絕對值|L|最小的表,適合適用于系數(shù)的絕對值|L|大(例如是‘193’~)的場合。
中間的可變長度編碼表1641b~1641f是按照1641b~1641f的順序,當(dāng)系數(shù)的絕對值|L|小時,其編碼長度逐漸變長,系數(shù)的絕對值|L|大時,其編碼長度逐漸變短的表。即,可變長度編碼表1641b~1641f是按照1641b~1641f的順序,編碼長度的變化率相對系數(shù)的絕對值|L|逐漸變小的表,它們分別適用于以下場合,即,可變長度編碼表1641b在系數(shù)的絕對值|L|例如是‘4’~‘6’的場合時使用,可變長度編碼表1641c在系數(shù)的絕對值|L|例如是‘7’~‘12’的場合時使用,……。
這樣,可以使編碼長度與系數(shù)值相適應(yīng)的可變長度編碼適應(yīng)于各個表,所以能夠提高編碼效率。即,在系數(shù)值小時,利用某個表進(jìn)行編碼,使編碼長度短于其他表的可變長度編碼,在系數(shù)值大時,利用其他的某個表進(jìn)行編碼,使編碼長度短于其他表的可變長度編碼,根據(jù)系數(shù)值切換表,從而可以飛躍性地縮短編碼長度。另外,可以對每個表分配編碼長度變短的范圍,所以能夠?qū)崿F(xiàn)編碼效率的提高。編碼是非算術(shù)編碼,即VLC方式,所以不用類似算術(shù)編碼那樣的復(fù)雜處理,在進(jìn)行編碼使用的表一決定,即可僅參照該表,就能簡單地編碼成可變長度編碼。
圖26是表示界限值表1642的結(jié)構(gòu)示例圖。
該界限值表1642是根據(jù)可變長度編碼表1641a~1641g的特性而預(yù)先設(shè)定的,保持有切換各個可變長度編碼表1641a~1641f時使用的多個界限值。例如,分別設(shè)定為相對于可變長度編碼表1641a、1641b的切換的界限值是‘4’,相對于可變長度編碼表1641b、1641c的切換(轉(zhuǎn)移)的界限值是‘7’,……,相對于可變長度編碼表1641f、1641g的切換的界限值是‘193’。這樣,可以簡單判斷表的切換時間,可以切換成與系數(shù)的絕對值|L|相適應(yīng)的最佳的表。
代碼分配單元163使用表存儲單元164保持的可變長度編碼表1641a~1641g以及界限值表1642,對從R列·L列生成單元161輸出的系數(shù)的絕對值|L|進(jìn)行不同于R列的可變長度編碼,分配2值代碼。即,代碼分配單元163對系數(shù)的絕對值|L|進(jìn)行一維編碼。
下面,說明編碼裝置100c的編碼動作。關(guān)于塊變換單元110~量化單元130的動作,和上述的編碼裝置100a、100b的動作相同,所以省略其動作說明,而詳細(xì)說明可變長度編碼單元160的可變長度編碼動作。
通過量化單元130被量化后的頻率系數(shù)被輸入到可變長度編碼單元160的R列·L列生成單元161。
R列·L列生成單元161首先和上述圖3(b)所示相同,通過從直流成分的區(qū)域向高頻成分區(qū)域Z形掃描塊內(nèi)被量化后的頻率系數(shù)值,對頻率系數(shù)值進(jìn)行一維處理。然后,R列·L列生成單元161分別生成‘0’以外的系數(shù)值L的列(以下,稱為‘L列’)、和連續(xù)系數(shù)值是‘0’的個數(shù)R的列(以下,稱為‘R列’)。所生成的L列和R列的示例如圖24所示。L列被劃分為系數(shù)的個數(shù)m、系數(shù)的絕對值|L|、和系數(shù)的正負(fù)號等。另外,系數(shù)的正負(fù)號,例如使正對應(yīng)‘0’,負(fù)對應(yīng)‘1’。
一般越是高頻成分,系數(shù)值越容易變?yōu)椤?’,所以通過從低頻區(qū)域向高頻區(qū)域掃描,L列的系數(shù)值接近‘1’。
代碼分配單元163對經(jīng)由R列·L列生成單元161所生成的L列的各L值,以與Z形掃描相反的順序即從頻率高的一方順序進(jìn)行編碼。即,代碼分配單元163從L列的后面起順序使用可變長度編碼表1641a~1641g,依次求出對應(yīng)系數(shù)的絕對值|L|的霍夫曼編碼(可變長度編碼)。
采用與Z形掃描相反的順序的理由是,容易決定聚集在高頻區(qū)域中‘0’以外的系數(shù)值‘1’附近、進(jìn)行編碼時使用的最初的表,容易作成可變長度編碼表1641a~1641g,并且容易決定界限值。
代碼分配單元163使用保持在表存儲單元164中的各種表,對L列的L和R列的各R分配可變長度編碼。代碼分配單元163對系數(shù)的個數(shù)m也分配可變長度編碼,下面說明對系數(shù)的絕對值|L|分配可變長度編碼的處理。
圖27表示代碼分配單元163執(zhí)行的可變長度編碼的分配處理流程圖。
代碼分配單元163開始塊內(nèi)系數(shù)值(系數(shù)的絕對值|L|)的編碼時,設(shè)定從R列·L列生成單元161輸出的系數(shù)值的個數(shù)m(S101)。然后,代碼分配單元163向表序號k設(shè)定‘0’,作為將要參照的可變長度編碼表的初始值(S102)。之后,代碼分配單元163參照界限值表1642,設(shè)定界限值=4(S103)。
系數(shù)的個數(shù)m、可變長度編碼表的參照目標(biāo)(此時是可變長度編碼表1641a)及界限值的設(shè)定一結(jié)束,代碼分配單元163從后面讀出從R列·L列生成單元161輸出的系數(shù)的絕對值|L|(S104),使用所設(shè)定序號的可變長度編碼表,對所讀出的系數(shù)的絕對值|L|進(jìn)行編碼,使成為可變長度編碼(S105)。編碼一結(jié)束,代碼分配單元163把通過編碼所得到的二進(jìn)制代碼存儲在未圖示的緩沖器(例如,F(xiàn)IFO緩沖器)中(S106),把系數(shù)的個數(shù)m減‘1’(S107),判斷減量后的個數(shù)m是否是‘0’,即判斷L列中包含的系數(shù)是否全部完成編碼(S108)。
如果系數(shù)的個數(shù)m不是‘0’(S108判斷為No),判斷緊前面的系數(shù)的絕對值|L|是否超過界限值(S109)。如果未超過(S109判斷為No),代碼分配單元163從后面讀出后續(xù)的系數(shù)的絕對值|L|(S104),執(zhí)行步驟S105~S108等。即,使用和前面相同的可變長度編碼表對后續(xù)的系數(shù)的絕對值|L|進(jìn)行編碼。
緊前面的系數(shù)的絕對值|L|超過界限值時(S109判斷為No),代碼分配單元163使表序號k增‘1’(S110)。這樣,進(jìn)行后續(xù)的系數(shù)的絕對值|L|的編碼時,參照編碼長度的變化率更少的、適合于編碼長度長的系數(shù)的絕對值|L|的編碼的可變長度編碼表(例如,如果前面的可變長度編碼表是k=0的1641a,則k=1的1641b)。
表序號k的增量一結(jié)束,代碼分配單元163參照界限值表1642,更新為后續(xù)的界限值(例如,如果前面的界限值是‘4’,則更新為‘7’)(S111)。這樣,可以僅在系數(shù)的絕對值|L|超過新界限值時,轉(zhuǎn)移為編碼長度的變化率更少的、適合于編碼長度長的系數(shù)的絕對值|L|的編碼的后續(xù)可變長度編碼表。
具體而言,緊前面的系數(shù)的絕對值|L|超過表序號是‘0’的可變長度編碼表1641a和表序號是‘1’的可變長度編碼表1641b之間的界限值‘4’時,如圖28所示,作為進(jìn)行后續(xù)的系數(shù)的絕對值|L|的編碼時的參照目標(biāo),參照目標(biāo)從可變長度編碼表1641a切換為可變長度編碼表1641b,界限值被設(shè)定為‘7’。
即使在緊前面的系數(shù)的絕對值|L|超過表序號是‘1’~‘6’的可變長度編碼表1641b~1641g之間的界限值‘7’~‘193’時,和超過界限值‘4’時相同,作為進(jìn)行后續(xù)的系數(shù)的絕對值|L|的編碼時的參照目標(biāo),順序從表序號是‘1’的可變長度編碼表1641b切換為表序號是‘2’的可變長度編碼表1641c,……,可變長度編碼表1641g。此時的切換狀態(tài)如圖28所示。
其中,表的切換方向是一個方向,不返回。這樣,利用系數(shù)值防止頻繁切換表,減少表的切換次數(shù)。因此,可以提高編碼效率。例如,存儲器的工作空間是有限制的,所以一般僅把后續(xù)使用的表置于工作空間中。該場合時,每次切換表時,從ROM讀出后續(xù)的表并展開到工作空間需要花費(fèi)時間,所以界限后續(xù)的系數(shù)值的編碼需要花費(fèi)時間。為此,通過使形成一個方向,限制表的切換次數(shù),可以發(fā)揮從整體上縮短界限后續(xù)的系數(shù)值的編碼時的時間的效果。
這種表序號的增量和界限值的更新一結(jié)束,代碼分配單元163從后面讀出后續(xù)的系數(shù)的絕對值|L|(S104),執(zhí)行步驟S105~S108等。即,使用適合于系數(shù)的絕對值|L|比前面的大的可變長度編碼表進(jìn)行編碼。
通過反復(fù)執(zhí)行這種處理(S104~S111),直到系數(shù)的個數(shù)m是‘0’,在系數(shù)的個數(shù)m是‘0’時,即結(jié)束該塊內(nèi)的系數(shù)的絕對值|L|的編碼。
具體而言,塊內(nèi)的系數(shù)的絕對值|L|的列從后面起是‘1’、‘1’、‘2’、‘3’、‘4’、‘12’、‘2’、‘3’、‘31’、‘22’、‘5’、‘9’、‘38’時,代碼分配單元163按圖29所示,首先使用可變長度編碼表1641a分別把‘1’、‘1’、‘2’、‘3’、‘4’、‘12’順序編碼為2值代碼‘1’、‘1’、‘010’、‘011’、‘00100’、‘0001100’。由于在進(jìn)行系數(shù)的絕對值|L|=‘12’的代碼化時超過了界限值‘4’,所以代碼分配單元163把編碼時使用的表切換為表序號k=1的可變長度編碼表1641b。
然后,代碼分配單元163使用切換后的可變長度編碼表1641b分別把后續(xù)的系數(shù)的絕對值|L|=‘2’、‘3’、‘31’順序編碼為2值代碼‘11’、‘0100’、‘0000100000’。由于在進(jìn)行系數(shù)的絕對值|L|=‘31’的代碼化時超過了界限值‘7’,所以代碼分配單元163把編碼時使用的表切換為表序號k=2的可變長度編碼表1641c。
代碼分配單元163使用切換后的可變長度編碼表1641c把后續(xù)的系數(shù)的絕對值|L|=‘22’編碼為2值代碼‘0011001’。由于在進(jìn)行系數(shù)的絕對值|L|=‘22’的代碼化時超過了界限值‘13’,所以代碼分配單元163把編碼時使用的表切換為表序號k=3的可變長度編碼表1641d。
然后,代碼分配單元163使用切換后的可變長度編碼表1641d分別把后續(xù)的系數(shù)的絕對值|L|=‘5’、‘9’、‘38’順序編碼為2值代碼‘1100’、‘010000’、‘00101101’。
這樣,2值代碼‘1101001100100000110011010000001000000011001110001000000101101’存儲在緩沖器中。
被編碼后的L列的系數(shù)的個數(shù)m和系數(shù)的正負(fù)號、R列的R值2值代碼也被存儲在該緩沖器中,存儲在緩沖器中的編碼后的L列的系數(shù)的個數(shù)m、系數(shù)的絕對值|L|的2值代碼、系數(shù)的正負(fù)號、R列的R值2值代碼通過CD等記錄介質(zhì)和因特網(wǎng)、衛(wèi)星播放等傳送介質(zhì)被發(fā)送到解碼裝置。
其中,假定僅使用可變長度編碼表1641a對上述L列的系數(shù)的絕對值|L|‘1’、‘1’、‘2’、‘3’、‘4’、‘12’、‘2’、‘3’、‘31’、‘22’、‘5’、‘9’、‘38’進(jìn)行編碼時,其2值代碼為‘1’、‘1’、‘0 10’、‘011’、‘00100’、‘0001100’、‘010’、‘011’、‘000011111’、‘000010110’、‘00101’、‘001001’、‘00000100110’,成為64比特編碼長度。
與此相對,本實(shí)施方式5的編碼方法即使在塊內(nèi)的系數(shù)的絕對值|L|的最大值較低、而且系數(shù)的絕對值|L|不緩緩上升的場合,也能形成61比特編碼長度,可以提高編碼效率。這在系數(shù)的絕對值|L|例如是‘22’、‘38’時,如果僅使用可變長度編碼表1641a,則分別需要‘000010110’9比特、‘00000100110’11比特,而本方式使用‘0011001’7比特、‘00101101’8比特即可解決。所以,在通常的塊內(nèi)的系數(shù)的絕對值|L|的最大值較高,系數(shù)的絕對值|L|緩緩上升的場合,可以飛越性地提高編碼效率。
另外,在上述實(shí)施方式5中,緊前面的系數(shù)的絕對值|L|超過界限值(S109判斷為Yes)時,將表序號增1(S110),使用后面序號的可變長度編碼表進(jìn)行編碼(參照圖28),但也可以根據(jù)超過了界限值的前面的系數(shù)的絕對值|L|,跳越切換到與其系數(shù)的絕對值|L|相適應(yīng)的可變長度編碼表。即,參照序號k=1的表進(jìn)行編碼的前面的系數(shù)的絕對值|L|是‘20’時,其后面的系數(shù)的絕對值|L|大于‘20’的可能性高,所以進(jìn)行其后面的系數(shù)的絕對值|L|的編碼時,也可以參照k=3的表進(jìn)行編碼。該場合時,只要把界限值設(shè)定為與其可變長度編碼表相吻合的界限值(例如是25)即可。
以上說明了使用8個可變長度編碼表時的情況,但也可以使用2個~7個可變長度編碼表,或使用8個以上,使用多個界限值,在每次超過各界限值時切換可變長度編碼表。
另外,在本實(shí)施方式5中,把系數(shù)值分為絕對值和正負(fù)代碼進(jìn)行編碼,利用不帶正負(fù)代碼形式(絕對值)構(gòu)成系數(shù)值的絕對值用各個可變長度編碼表,但也可以利用帶正負(fù)代碼形式對系數(shù)值進(jìn)行編碼,該場合時,利用帶正負(fù)代碼形式構(gòu)成2值代碼即可。此時,例如,向可變長度編碼的LSB比特附加1比特正負(fù)代碼即可。
另外,在本實(shí)施方式5中,說明了利用幀內(nèi)編碼對圖像進(jìn)行編碼時的情況,但是,使用動態(tài)補(bǔ)償?shù)葘討B(tài)圖像輸入進(jìn)行幀間編碼時,采用本實(shí)施方式的方法也可以獲得相同效果。
在本實(shí)施方式5中,說明了把輸入圖像劃分為水平4象素、垂直4象素的塊的情況,但塊的大小也可以是其他尺寸。
在本實(shí)施方式5中,作為塊內(nèi)的掃描方法,使用圖3(b)進(jìn)行了說明,但只要是從低頻區(qū)域向高頻區(qū)域的掃描,也可以使用其他掃描順序。
在本實(shí)施方式5中,作為可變長度編碼表的示例,使用圖25進(jìn)行了說明,但也可以是其他表。
在本實(shí)施方式5中,說明了向L列的最初附加L值的個數(shù)的情況,但也可以向L列的最后附加EOB。
(本實(shí)施方式6)圖30是表示使用了本發(fā)明的實(shí)施方式涉及的可變長度解碼方法以及使用了該方法的動態(tài)圖像解碼方法所適用的解碼裝置的功能結(jié)構(gòu)方框圖。在此,說明輸入利用實(shí)施方式5說明的本發(fā)明的可變長度編碼方法所生成的編碼列時的情況。
如圖30所示,解碼裝置500c由可變長度解碼單元560、逆量化單元520、逆頻率變換單元530和幀存儲器540構(gòu)成。構(gòu)成該解碼裝置500c的各部分和編碼裝置100c相同,是通過CPU、預(yù)先存儲通過CPU執(zhí)行的程序和數(shù)據(jù)的ROM、提供執(zhí)行程序時的工作空間或臨時存儲輸入編碼列等的存儲器等實(shí)現(xiàn)的。逆量化單元520、逆頻率變換單元530和幀存儲器540和上述的解碼裝置500a、500b相同,所以省略其說明,而詳細(xì)說明可變長度解碼單元560的結(jié)構(gòu)。
可變長度解碼單元560由代碼變換單元561、表存儲單元562、和系數(shù)生成單元564構(gòu)成。
表存儲單元562預(yù)先保持使可變長度編碼和系數(shù)的絕對值|L|相對應(yīng)的多種(8個)可變長度編碼(解碼)表5621a~5621g和界限值表5622等。該可變長度編碼表5621a~5621g的結(jié)構(gòu)分別和圖25所示的可變長度編碼表1641a~1641g相同,界限值表5622和圖26所示的界限值表1642相同。
代碼變換單元561使用表存儲單元562所保持的表(可變長度編碼表5621a~5621g、界限值表5622),對所輸入的編碼列進(jìn)行從可變長度編碼到L列系數(shù)的個數(shù)m、系數(shù)的絕對值|L|、R列的R值的變換。向系數(shù)的絕對值|L|的變換使用可變長度編碼表5621a~5621g進(jìn)行。
系數(shù)生成單元564根據(jù)所輸入的L列和R列,變換為系數(shù)值,按規(guī)定的掃描方法進(jìn)行二維處理。進(jìn)行該系數(shù)值的變換時,根據(jù)規(guī)定的掃描順序生成僅用R表示的值的系數(shù)值‘0’,然后生成用L表示的值的系數(shù)值,通過反復(fù)該過程,來進(jìn)行從L列和R列向系數(shù)值的變換。其中,如果從低頻區(qū)域向高頻區(qū)域進(jìn)行Z形掃描,則變換成上述圖11所示的系數(shù)塊。所生成的系數(shù)塊被輸入到逆量化單元520。
下面,說明可變長度編碼單元560的各部分的解碼動作。
以下說明輸入到代碼變換單元561的2值代碼輸入編碼列的編碼從前頭順序是‘1’、‘1’、‘010’、‘011’、‘00100’、‘0001100’、‘11’、‘0100’‘0000100000’、‘0011001’、‘1100’、‘010000’、‘00101101’時的情況。
代碼變換單元561開始可變長度編碼的解碼時,對從編碼裝置100c輸出的系數(shù)的個數(shù)m進(jìn)行解碼,設(shè)定解碼后的系數(shù)的個數(shù)m。然后,代碼變換單元561把表序號k設(shè)定為‘0’,作為需要參照的可變長度編碼表的初始值。之后,代碼分配單元163參照界限值表5622,設(shè)定界限值=4(S103)。系數(shù)的個數(shù)m、可變長度編碼表的參照目標(biāo)(此時是可變長度編碼表5621a)以及界限值的設(shè)定一結(jié)束,代碼變換單元561以從編碼裝置100c的輸出順序從前面(即高頻側(cè))讀出系數(shù)的絕對值|L|,使用所設(shè)定序號的可變長度編碼表,對所讀出的可變長度編碼進(jìn)行可變長度解碼,使成為系數(shù)的絕對值|L|。解碼一結(jié)束,代碼變換單元561把通過解碼所得到的系數(shù)的絕對值|L|存儲在未圖示的緩沖器(例如FILO緩沖器)中,把系數(shù)的個數(shù)m減‘1’,判斷減量后的個數(shù)m是否是‘0’,即L列中包含的系數(shù)是否全部解碼結(jié)束。
如果系數(shù)的個數(shù)m不是‘0’,判斷被可變長度解碼后的前面的系數(shù)的絕對值|L|是否超過界限值。如果未超過,代碼變換單元561從前面讀出后續(xù)的可變長度編碼,使用和前面相同的可變長度編碼表進(jìn)行解碼,使成為系數(shù)的絕對值|L|。
被可變長度解碼后的緊前面的系數(shù)的絕對值|L|超過界限值時,代碼變換單元561使表序號k增‘1’。這樣,進(jìn)行后續(xù)的系數(shù)的絕對值|L|的編碼時,參照編碼長度的變化率更少的適合于編碼長度長的系數(shù)的絕對值|L|的編碼的可變長度編碼表(例如,如果前面的可變長度編碼表是5621a,則參照5621b)。表序號k的增量一結(jié)束,代碼變換單元561參照界限值表5622,更新為后續(xù)的界限值(例如,如果前面的界限值是‘4’,則更新為‘7’)。這樣,可以僅在系數(shù)的絕對值|L|超過新界限值時,轉(zhuǎn)移為編碼長度的變化率更少的適合于編碼長度長的系數(shù)的可變長度編碼的解碼的后續(xù)可變長度編碼表。
具體而言,對第1個可變長度編碼,參照k=0的可變長度編碼表5621a。在參照了可變長度編碼表5621a時,與輸入編碼列相一致的是可變長度編碼‘1’,此時的系數(shù)的絕對值|L|變?yōu)椤?’。同樣,使用可變長度編碼表5621a,如果順序進(jìn)行從可變長度編碼向系數(shù)的絕對值|L|的變換,則可變長度編碼‘1’被變換為系數(shù)的絕對值|L|=‘1’,可變長度編碼‘010’被變換為系數(shù)的絕對值|L|=‘3’,可變長度編碼‘00100’被變換為系數(shù)的絕對值|L|=‘4’,可變長度編碼‘0001100’被變換為系數(shù)的絕對值|L|=‘12’。
其中,當(dāng)相對系數(shù)的絕對值|L|的界限值為‘4’時,第6個系數(shù)的絕對值|L|=‘12’,超過界限值。因此,代碼變換單元561在進(jìn)行向以后的可變長度編碼的系數(shù)的絕對值|L|的變換時,使用k=1的后續(xù)可變長度編碼表5621b,把界限值設(shè)定為7,變換為系數(shù)的絕對值|L|。因此,后面的第7個可變長度編碼‘11’被變換為系數(shù)的絕對值|L|=‘2’。
后面的第8個可變長度編碼‘0100’被變換為系數(shù)的絕對值|L|=‘3’,第9個可變長度編碼‘000010000’被變換為系數(shù)的絕對值|L|=‘31’。其中,當(dāng)相對系數(shù)的絕對值|L|的界限值為‘7’時,第9個系數(shù)的絕對值|L|=‘31’,超過界限值。因此,代碼變換單元561在進(jìn)行向以后的可變長度編碼的系數(shù)的絕對值|L|的變換時,使用k=2的后續(xù)可變長度編碼表5621b,把界限值設(shè)定為13,變換為系數(shù)的絕對值|L|。即使進(jìn)行向第7個系數(shù)的絕對值|L|的解碼時得到的系數(shù)的絕對值|L|再次達(dá)到界限值7以下時,也不進(jìn)行向可變長度編碼表5621a的切換,使用可變長度編碼表5621b進(jìn)行變換。
反復(fù)以上的處理,在生成1塊(m個)系數(shù)的絕對值|L|時,通過FILO緩沖器按先入后出的逆順序?qū)λ鼈冞M(jìn)行排列替換。即使對系數(shù)的正負(fù)號,也通過FILO緩沖器按先入后出的逆順序進(jìn)行排列替換。但是,個數(shù)從排列替換對象中除外。此時,生成和順序(即,從低頻到高頻的順序)圖24(a)所示L列相同的列。經(jīng)過這種排列替換后的L列的各系數(shù)的絕對值|L|被輸入到系數(shù)生成單元564。代碼變換單元561對R列的R也利用與系數(shù)的絕對值|L|相同的處理進(jìn)行解碼,把圖24(a)所示R列輸出到系數(shù)生成單元564。
系數(shù)生成單元564根據(jù)所輸入的L列和R列,變換為系數(shù)值。此時,根據(jù)規(guī)定的掃描方法生成僅用R表示的值的系數(shù)值‘0’,然后附加正負(fù)代碼生成用L表示的值的系數(shù)值,通過反復(fù)該過程,進(jìn)行從L列和R列向系數(shù)值的變換。其中,按圖11所示,從低頻區(qū)域向高頻區(qū)域進(jìn)行Z形掃描時,圖24(a)所示的L列和圖24所示的R列被變換為系數(shù)塊。所生成的系數(shù)塊被輸入到逆量化單元520。
如上所述,本發(fā)明的實(shí)施方式6涉及的可變長度解碼方法,首先在解碼步驟以一個方向切換解碼時使用的多個可變長度編碼(解碼)表,同時使用切換后的可變長度編碼表以規(guī)定順序把算術(shù)編碼列的可變長度編碼解碼為頻率區(qū)域涉及的‘0’以外的系數(shù)值。然后,在系數(shù)值變換步驟,根據(jù)所生成的系數(shù)值變換為塊內(nèi)的系數(shù)值。其中,所述各表的結(jié)構(gòu)是使相對系數(shù)值的編碼長度的變化率不同,以使最小系數(shù)值的編碼長度以分別賦予給所述各表的序號順序變長,最大系數(shù)值的編碼長度以所述序號順序變短。所述界限值是根據(jù)對應(yīng)系數(shù)值的編碼長度短于其他表的各個表的適應(yīng)特性而設(shè)定的。所述編碼列的可變長度編碼以從高頻成分到低頻成分的順序排列,所述解碼步驟以所述編碼列的排列順序解碼為系數(shù)值,從編碼列的排列后端順序輸出解碼后的系數(shù)值,從而生成系數(shù)值的系數(shù)值列,所述系數(shù)生成步驟以所述系數(shù)值列的排列順序掃描系數(shù)值。
所述編碼步驟在解碼后的系數(shù)的絕對值超過界限值時,從進(jìn)行解碼對象的可變長度編碼的解碼時使用的表切換為序號大于賦予給該表的序號的表,把后續(xù)的可變長度編碼解碼為系數(shù)值。
通過以上動作,通過使用本發(fā)明的可變長度解碼方法,可以對使用本發(fā)明的可變長度編碼方法所編碼后的編碼列進(jìn)行正確解碼。
在上述實(shí)施方式6中,結(jié)合實(shí)施方式5,在同樣被解碼后的前面的系數(shù)的絕對值|L|超過界限值時,將表序號k增1,使用后面序號的可變長度編碼表界限解碼,但只要與編碼時使用的表的切換方法相同,也可以跳越切換為與其系數(shù)的絕對值|L|相適應(yīng)的可變長度編碼表。該場合時,只要把界限值設(shè)定為與其可變長度編碼表相吻合的界限值即可。
在本實(shí)施方式6中,作為可變長度編碼表的示例,使用圖25進(jìn)行了說明,但只要是與編碼時使用的表相同,也可以是其他表。另外,說明了使用8個可變長度編碼表時的情況,但也可以使用2個~6個可變長度編碼表,或使用8個以上,使用多個界限值,在每次超過各界限值時切換可變長度編碼表。但是,此時的可變長度編碼表的結(jié)構(gòu)和界限值必須和編碼時使用的相同。
另外,在本實(shí)施方式6中,把系數(shù)值分為絕對值和正負(fù)代碼進(jìn)行編碼,利用不帶正負(fù)代碼形式(絕對值)構(gòu)成系數(shù)值的絕對值用各個可變長度編碼表,但也可以利用帶正負(fù)代碼形式對系數(shù)值進(jìn)行編碼,該場合時,利用帶正負(fù)代碼形式構(gòu)成2值代碼即可。此時,例如,向可變長度編碼的LSB比特附加1比特正負(fù)代碼即可。
另外,在本實(shí)施方式6中,在L值超過界限值時,切換可變長度編碼表,但在以系數(shù)的絕對值|L|大的順序(即從高頻側(cè)起的順序)進(jìn)行解碼時,使用序號大的可變長度編碼表,在解碼后的系數(shù)的絕對值|L|小于界限值時,也可以切換為序號小的可變長度編碼表。
在本實(shí)施方式6中,說明了對利用幀內(nèi)編碼所生成的編碼列進(jìn)行解碼的情況,但是,使用動態(tài)補(bǔ)償?shù)葘討B(tài)圖像輸入進(jìn)行幀間編碼所生成的編碼列進(jìn)行解碼時,采用本實(shí)施方式的方法也可以獲得相同效果。
在本實(shí)施方式6中,說明了把輸入圖像劃分為水平4象素、垂直4象素的塊進(jìn)行編碼時的情況,但塊的大小也可以是其他尺寸。
在本實(shí)施方式6中,作為塊內(nèi)的掃描方法,使用圖11進(jìn)行了說明,但只要和編碼時使用的掃描方法相同,也可以使用其他掃描順序。
(實(shí)施方式7)下面,說明用其他方式實(shí)現(xiàn)本發(fā)明涉及的可變長度編碼方法、可變長度解碼方法、可變長度編碼裝置、可變長度解碼裝置、動態(tài)圖像編碼方法、動態(tài)圖像解碼方法、動態(tài)圖像編碼裝置以及動態(tài)圖像解碼裝置的示例。
把用于實(shí)現(xiàn)上述各實(shí)施方式所示的編碼裝置或解碼裝置的程序記錄在軟盤等存儲介質(zhì)中,從而可以利用獨(dú)立的計(jì)算機(jī)系統(tǒng)容易實(shí)施上述各實(shí)施方式所示的處理。
圖32是說明使用存儲了程序的軟盤、利用計(jì)算機(jī)系統(tǒng)進(jìn)行實(shí)施時的示意圖,其中,該程序用于執(zhí)行上述實(shí)施方式1、3、5的動態(tài)圖像編碼方法或?qū)嵤┓绞?、4、6的動態(tài)圖像解碼方法的處理。
圖32(b)表示從軟盤正面觀看時的外觀、剖面結(jié)構(gòu)以及軟盤,圖32(a)表示記錄介質(zhì)主體即軟盤的物理格式的一個示例。軟盤FD內(nèi)置于軟盤盒F中,在該軟盤表面從外周向內(nèi)周形成有多個同心圓狀的磁道Tr,各個磁道在角度方向上被劃分成16個扇區(qū)Se。因此,存儲了上述程序的軟盤中,在上述軟盤中被分配的區(qū)域記錄著作為上述程序的動態(tài)圖像編碼裝置。
圖32(c)表示在軟盤FD上用于執(zhí)行上述程序的記錄重放的結(jié)構(gòu)。把上述程序記錄在軟盤FD上時,從計(jì)算機(jī)系統(tǒng)Cs通過軟盤寫入作為上述程序的動態(tài)圖像編碼裝置或動態(tài)圖像解碼裝置。利用軟盤內(nèi)的程序在計(jì)算機(jī)系統(tǒng)中構(gòu)筑上述動態(tài)圖像編碼裝置時,利用軟盤驅(qū)動器從軟盤讀出程序,轉(zhuǎn)送到計(jì)算機(jī)系統(tǒng)。
在上述說明中,說明了把軟盤用作記錄介質(zhì)時的情況,但同樣也可以使用光盤。另外,記錄介質(zhì)不限定于此,只要能記錄程序,IC卡、ROM存儲器等均可以實(shí)施。
下面,說明上述實(shí)施方式所示的動態(tài)圖像預(yù)測方法、動態(tài)圖像編碼裝置、動態(tài)圖像解碼裝置的應(yīng)用示例和使用了它們的系統(tǒng)。
圖33表示用于實(shí)現(xiàn)內(nèi)容發(fā)信服務(wù)的內(nèi)容供給系統(tǒng)ex100的整體結(jié)構(gòu)方框圖。把通信服務(wù)的提供區(qū)間劃分為所期望的大小,在各個單元內(nèi)分別設(shè)置作為固定無線局的基地局ex107~ex110。
該內(nèi)容供給系統(tǒng)ex100,例如,通過因特網(wǎng)服務(wù)供應(yīng)者ex102及電話網(wǎng)ex104以及基地局ex107~ex110,把計(jì)算機(jī)ex111、PDA(Personal digital assistant)ex112、照相機(jī)ex113、攜帶電話ex114、帶照相機(jī)的攜帶電話ex115等各個機(jī)器連接到因特網(wǎng)ex101。
但是,內(nèi)容供給系統(tǒng)ex100不限定于圖33所示組合,可以進(jìn)行任何組合連接。另外,也可以不通過作為固定無線局的基地局ex107~ex110,而直接向電話網(wǎng)ex104連接各個機(jī)器。
照相機(jī)ex113是可以進(jìn)行數(shù)字?jǐn)z像機(jī)等動態(tài)拍攝的機(jī)器。攜帶電話可以是任何方式的攜帶電話機(jī),例如,PDC(Personal DigitalCommunications)方式、CDMA(Code Division Multiple Access)方式、W-CDMA(Wideban-Code Division Multiple Access)方式、或GSM(Global System for Mobile Communications)方式、PHS(Personal Handyphone system)等。
流線服務(wù)器ex103從照相機(jī)ex113通過基地局ex109、電話網(wǎng)ex104而連接,使用照相機(jī)ex113可以進(jìn)行基于用戶發(fā)送的被編碼處理后的數(shù)據(jù)的有效發(fā)信等。所拍攝的數(shù)據(jù)的編碼處理可以通過照相機(jī)ex113進(jìn)行,也可以通過進(jìn)行數(shù)據(jù)的發(fā)送處理的服務(wù)器等進(jìn)行。另外,也可以通過計(jì)算機(jī)ex111把用照相機(jī)116拍攝的動態(tài)數(shù)據(jù)發(fā)送到流線服務(wù)器ex103。照相機(jī)ex116是可以拍攝靜止圖像、動態(tài)圖像的數(shù)字照相機(jī)等機(jī)器。該場合時,動態(tài)圖像數(shù)據(jù)的編碼可以利用照相機(jī)ex116進(jìn)行,也可以利用計(jì)算機(jī)ex111進(jìn)行。編碼處理是在計(jì)算機(jī)ex111和照相機(jī)ex116具有的LSIex117進(jìn)行處理。另外,也可以把圖像編碼·解碼用軟件裝配到計(jì)算機(jī)ex111等可以讀取的記錄介質(zhì)的任何存儲介質(zhì)中(CD-ROM、軟盤、硬盤等)。另外,也可以用帶照相機(jī)的攜帶電話ex115發(fā)送動態(tài)圖像數(shù)據(jù)。此時的動態(tài)圖像數(shù)據(jù)是攜帶電話ex115具有經(jīng)由LSI被編碼處理后的數(shù)據(jù)。
該內(nèi)容供給系統(tǒng)ex100對用戶使用照相機(jī)ex113、照相機(jī)ex116等拍攝的內(nèi)容(例如,拍攝了音樂實(shí)況的圖像等)進(jìn)行和上述實(shí)施方式相同的編碼處理,并發(fā)送到流動服務(wù)器ex103,另一方面,流動服務(wù)器ex103向有要求的客戶端發(fā)送上述內(nèi)容數(shù)據(jù)。作為客戶端,有可以對上述編碼處理后的數(shù)據(jù)進(jìn)行解碼的計(jì)算機(jī)ex111、PDAex112、照相機(jī)ex113、攜帶電話ex114等。這樣,內(nèi)容供給系統(tǒng)ex100是可以在客戶端接收被編碼后的數(shù)據(jù)并重放,通過在客戶端進(jìn)行實(shí)時接收、解碼及重放,可以實(shí)現(xiàn)個人播放的系統(tǒng)。
構(gòu)成該系統(tǒng)的各個機(jī)器進(jìn)行的編碼、解碼,使用上述各實(shí)施方式所示的圖像編碼裝置或圖像解碼裝置即可。
利用攜帶電話來說明其一個示例。
圖34表示使用了在上述實(shí)施方式說明的動態(tài)圖像預(yù)測方法、動態(tài)圖像編碼裝置及動態(tài)圖像解碼裝置的攜帶電話ex115的示意圖。攜帶電話ex115具有與基地局ex110之間接收發(fā)送電波的天線ex201;可以拍攝CCD照相機(jī)等的映像、靜止圖像的攝像單元ex203;用于表示利用攝像單元ex203拍攝的映像和利用天線ex201接收的映像等被解碼后的數(shù)據(jù)的液晶顯示器等顯示單元ex202;由操作鍵ex204組構(gòu)成的主體單元;用于輸出聲音的揚(yáng)聲器等聲音輸出單元ex208;用于輸入聲音的傳聲器等聲音輸入單元ex205;用于保存所拍攝的動態(tài)圖像或靜止圖像的數(shù)據(jù)等、被編碼后的數(shù)據(jù)或被解碼后的數(shù)據(jù)的記錄介質(zhì)ex207;和可以向攜帶電話ex115安裝記錄介質(zhì)ex207的插槽單元ex206。記錄介質(zhì)ex207中儲存有快速存儲元件,該快速存儲元件是可以在SD卡等塑料盒內(nèi)進(jìn)行電氣改寫和擦除的不易消失性存儲器EEPROM(Electrically Erasable and Programmable Read OnlyMemory)的一種。
下面,使用圖35說明攜帶電話ex115。攜帶電話ex115中對具有顯示單元ex202及操作單元ex204的主體單元的各部分進(jìn)行統(tǒng)一控制的主控制單元ex311,通過同步總線ex313,相互連接電源電路單元ex310、操作輸入控制單元ex304、圖像編碼單元ex312、照相機(jī)接口單元ex303、LCD(Liquid Crystal Display)控制單元ex302、圖像解碼單元ex309、多路分離單元ex308、記錄重放單元ex307、調(diào)制解調(diào)電路單元ex306以及聲音處理單元ex305。
電源電路單元ex310在通過用戶的操作處于通話結(jié)束及電源鍵接通狀態(tài)時,從電池組件向各部分供給電力,從而將帶照相機(jī)的數(shù)字?jǐn)y帶電話ex115起動成可以動作狀態(tài)。
攜帶電話ex115根據(jù)由CPU、ROM及RAM等形成的主控制單元ex311的控制,在語音通話模式時,通過聲音處理單元ex305把由聲音輸入單元ex205集音的聲音信號變換為數(shù)字聲音數(shù)據(jù),并利用調(diào)制解調(diào)電路單元ex306對其進(jìn)行頻譜擴(kuò)散處理,通過發(fā)送接收電路單元ex301實(shí)施數(shù)字模擬變換處理和頻率變換處理之后,通過天線ex201進(jìn)行發(fā)送。另外,攜帶電話ex115在把語音通話模式時通過天線ex201接收的信號進(jìn)行放大,實(shí)施頻率變換處理和模擬數(shù)字變換處理,利用調(diào)制解調(diào)電路單元ex306對其進(jìn)行逆頻譜擴(kuò)散處理,通過聲音處理單元ex305變換為模擬聲音信號后,通過聲音輸出單元ex208將其輸出。
另外,在數(shù)據(jù)通信模式下發(fā)送電子郵件時,通過操作主體單元的操作鍵ex204所輸入的電子郵件的文本數(shù)據(jù)通過操作輸入控制單元ex304發(fā)送到主控制單元ex311。主控制單元ex311通過調(diào)制解調(diào)電路單元ex306對文本數(shù)據(jù)進(jìn)行頻譜擴(kuò)散處理,通過接收發(fā)送電路單元ex301實(shí)施數(shù)字模擬變換處理和頻率變換處理后,通過天線ex201發(fā)送到基地局ex110。
在數(shù)據(jù)通信模式下發(fā)送圖像數(shù)據(jù)時,把利用攝像單元ex203拍攝的圖像數(shù)據(jù)通過攝像接口單元ex203供給圖像編碼單元ex312。不發(fā)送圖像數(shù)據(jù)時,可以通過攝像接口單元ex203和LCD控制單元ex302在顯示單元ex202直接顯示用攝像單元ex203拍攝的圖像數(shù)據(jù)。
圖像編碼單元ex312具有本發(fā)明中說明的圖像編碼裝置,通過把從攝像單元ex203供給的圖像數(shù)據(jù)利用上述實(shí)施方式所示的圖像編碼裝置所使用的編碼方法進(jìn)行壓縮編碼,變換為編碼圖像數(shù)據(jù),并將其發(fā)送到多路分離單元ex308。與此同時,攜帶電話機(jī)ex115把用攝像單元ex203進(jìn)行攝像時通過聲音輸入單元ex205集音的聲音,作為數(shù)字音頻數(shù)據(jù)通過聲音處理單元ex305發(fā)送給多路分離單元ex308。
多路分離單元ex308利用規(guī)定方式對從圖像編碼單元ex312供給的編碼圖像數(shù)據(jù)和從聲音處理單元ex305供給的音頻數(shù)據(jù)進(jìn)行多路復(fù)用,利用調(diào)制解調(diào)電路單元ex306將所得的多路復(fù)用數(shù)據(jù)進(jìn)行頻譜擴(kuò)散處理,通過接收發(fā)送電路單元ex301進(jìn)行數(shù)字模擬變換處理和頻率變換處理后,通過天線ex201進(jìn)行發(fā)送。
在數(shù)據(jù)通信模式下接收鏈接主頁等的動態(tài)圖像文件的數(shù)據(jù)時,利用調(diào)制解調(diào)電路單元ex306將通過天線ex201從基地局ex110接收的接收信號進(jìn)行頻譜擴(kuò)散處理,把所得到多路復(fù)用數(shù)據(jù)發(fā)送到多路分離單元ex308。
對通過天線ex201所接收的多路復(fù)用數(shù)據(jù)進(jìn)行解碼時,多路分離單元ex308通過對多路復(fù)用數(shù)據(jù)進(jìn)行分離將其分為圖像數(shù)據(jù)的編碼比特流和音頻數(shù)據(jù)的編碼比特流,通過同步總線ex313把該編碼圖像數(shù)據(jù)供給圖像解碼單元ex309,同時把該音頻數(shù)據(jù)供給聲音處理單元ex305。
圖像解碼單元ex309具有本發(fā)明中說明的圖像解碼裝置,利用與上述實(shí)施方式所示編碼方法對應(yīng)的解碼方法對圖像數(shù)據(jù)的編碼比特流進(jìn)行解碼,生成重放動態(tài)圖像數(shù)據(jù),通過LCD控制單元ex302將其供給顯示單元ex202,由此可以顯示例如鏈接了主頁的動態(tài)圖像文件中包含的動態(tài)圖像數(shù)據(jù)。與此同時,聲音處理單元ex305把音頻數(shù)據(jù)變換為模擬聲音信號后,將其供給聲音輸出單元ex208,從而可以重放例如鏈接了主頁的動態(tài)圖像文件中包含的聲音數(shù)據(jù)。
但不限定于上述系統(tǒng)示例,最近利用衛(wèi)星、地表面波進(jìn)行的數(shù)字播放成為話題,如圖36所示,數(shù)字播放用系統(tǒng)也可以裝配上述實(shí)施方式的圖像編碼裝置或圖像解碼裝置的至少一種。具體而言,播放局ex409對映像信息的編碼比特流通過電波進(jìn)行通信或轉(zhuǎn)送到播放衛(wèi)星ex410。接收到該信息的播放衛(wèi)星ex410發(fā)送播放用電波,具有衛(wèi)星播放接收設(shè)備的家庭天線ex406接收該電波,利用電視機(jī)(接收機(jī))ex401或機(jī)頂盒(STB)ex407等裝置對編碼比特流進(jìn)行解碼及重放。另外,讀取記錄在作為記錄介質(zhì)的CD和DVD等存儲介質(zhì)ex402的編碼比特流并進(jìn)行解碼的重放裝置ex403也可以安裝上述實(shí)施方式所示的圖像解碼裝置。該場合時,所重放的映像信號顯示在監(jiān)視器ex404上。還可以考慮在連接了有線電視用電纜ex405或衛(wèi)星/地表面波播放的天線ex406的機(jī)頂盒ex407內(nèi)安裝圖像解碼裝置,利用電視機(jī)的監(jiān)視器ex408將其重放的結(jié)構(gòu)。此時也可以不安裝機(jī)頂盒,而在電視機(jī)內(nèi)安裝圖像解碼裝置。另外,具有天線ex411的車輛ex412從衛(wèi)星ex410或基地局ex107等接收信號,可以在車輛ex412具有的汽車導(dǎo)航系統(tǒng)ex413等的顯示裝置上重放動態(tài)圖像。
此外,也可以利用上述實(shí)施方式所示的圖像編碼裝置對圖像信號進(jìn)行編碼,并記錄在記錄介質(zhì)中。作為具體示例,有在DVD盤ex421記錄圖像信號的DVD記錄裝置和記錄在硬盤上的盤記錄裝置等記錄裝置ex420。也可以記錄在SD卡ex422上。如果記錄裝置ex420具有上述實(shí)施方式所示的圖像解碼裝置,則可以重放記錄在DVD盤ex421和SD卡ex422上的圖像信號,并利用監(jiān)視器ex408進(jìn)行顯示。
汽車導(dǎo)航系統(tǒng)ex413的結(jié)構(gòu)可以考慮,例如圖36所示的結(jié)構(gòu)中,將攝像單元ex203和攝像接口單元ex303、圖像編碼單元ex312除外的結(jié)構(gòu),同樣也可以考慮計(jì)算機(jī)ex111和電視機(jī)(接收機(jī))ex401等。
上述攜帶電話ex411等的終端,除具有編碼 器·解碼器雙方的接收發(fā)送型終端外,也可以考慮只有編碼器的發(fā)送終端、只有解碼器的接收終端這三種實(shí)施方式。
這樣,上述實(shí)施方式所示的可變長度編碼方法??勺冮L度解碼方法。使用這些方法的可變長度編碼裝置、可變長度解碼裝置、動態(tài)圖像編碼方法、動態(tài)圖像解碼方法、動態(tài)圖像編碼裝置和圖像解碼裝置可以應(yīng)用于上述的任一機(jī)器·系統(tǒng),由此可以獲得在上述實(shí)施方式中說明的效果。
關(guān)于本發(fā)明的所有實(shí)施方式,本發(fā)明并不限定于上述實(shí)施方式,只要不脫離本發(fā)明范圍的各種變形或修改都是可行的。
另外,上述實(shí)施方式1~6的可變長度編碼裝置、可變長度解碼裝置是以從低頻成分向高頻成分的順序掃描系數(shù)值,但作為本發(fā)明的變形示例,也可以是以從高頻成分向低頻成分的順序掃描系數(shù)值的結(jié)構(gòu)。該場合時,可以省略系數(shù)值的替換等處理。
工業(yè)應(yīng)用性本發(fā)明涉及的可變長度編碼方法和可變長度解碼方法適用于攜帶電話、攜帶信息終端、電視播放裝置、電視接收機(jī)或機(jī)頂盒等計(jì)算機(jī)裝置以具有規(guī)定大小的塊單位對動態(tài)圖像的圖像數(shù)據(jù)進(jìn)行頻率變換后的各塊內(nèi)的系數(shù)值進(jìn)行編碼或解碼。
權(quán)利要求
1.一種解碼方法,用于對編碼數(shù)據(jù)執(zhí)行可變長度解碼,該編碼數(shù)據(jù)通過對具有預(yù)定象素大小的塊的圖像數(shù)據(jù)執(zhí)行頻率變換而獲得的塊的系數(shù)進(jìn)行可變長度編碼而獲得,該方法包括解碼步驟,在多個編碼表之間切換編碼表的同時,從高頻成分向低頻成分對編碼數(shù)據(jù)執(zhí)行可變長度解碼,從而獲得塊的一維系數(shù);以及系數(shù)反向掃描步驟,以預(yù)定的順序?qū)λ鲆痪S系數(shù)進(jìn)行掃描,以獲得塊的二維系數(shù),其中在所述解碼步驟中,在將被解碼的當(dāng)前系數(shù)的絕對值超過閾值時,在切換為另一表之后,對該當(dāng)前系數(shù)之后的下一個將被解碼的系數(shù)執(zhí)行解碼,該另一表被分配比上述閾值大的閾值,并且在上述多個編碼表之間以一個方向執(zhí)行上述切換。
2.一種解碼裝置,用于對編碼數(shù)據(jù)執(zhí)行可變長度解碼,該編碼數(shù)據(jù)通過對具有預(yù)定象素大小的塊的圖像數(shù)據(jù)執(zhí)行頻率變換而獲得的塊的系數(shù)進(jìn)行可變長度編碼而獲得,該裝置包括解碼單元,在多個編碼表之間切換編碼表的同時,從高頻成分向低頻成分對編碼數(shù)據(jù)執(zhí)行可變長度解碼,從而獲得塊的一維系數(shù);以及系數(shù)反向掃描單元,以預(yù)定的順序?qū)λ鲆痪S系數(shù)進(jìn)行掃描,以獲得塊的二維系數(shù),其中在所述解碼單元中,在將被解碼的當(dāng)前系數(shù)的絕對值超過閾值時,在切換為另一表之后,對該當(dāng)前系數(shù)之后的下一個將被解碼的系數(shù)執(zhí)行解碼,該另一表被分配比上述閾值大的閾值,并且在所述解碼單元中,在上述多個編碼表之間以一個方向執(zhí)行上述切換。
全文摘要
本發(fā)明提供可變長度解碼方法及裝置,用于對編碼數(shù)據(jù)執(zhí)行可變長度解碼,該編碼數(shù)據(jù)通過對具有預(yù)定象素大小的塊的圖像數(shù)據(jù)執(zhí)行頻率變換而獲得的塊的系數(shù)進(jìn)行可變長度編碼而獲得,該方法包括解碼步驟,在多個編碼表之間切換編碼表的同時,從高頻成分向低頻成分對編碼數(shù)據(jù)執(zhí)行可變長度解碼,從而獲得塊的一維系數(shù);以及系數(shù)反向掃描步驟,以預(yù)定的順序?qū)λ鲆痪S系數(shù)進(jìn)行掃描,以獲得塊的二維系數(shù),其中在所述解碼步驟中,在將被解碼的當(dāng)前系數(shù)的絕對值超過閾值時,在切換為另一表之后,對該當(dāng)前系數(shù)之后的下一個將被解碼的系數(shù)執(zhí)行解碼,該另一表被分配比上述閾值大的閾值,并且在上述多個編碼表之間以一個方向執(zhí)行上述切換。
文檔編號H04N7/50GK101035288SQ20071009705
公開日2007年9月12日 申請日期2003年4月16日 優(yōu)先權(quán)日2002年4月26日
發(fā)明者近藤敏志, 角野真也, 羽飼誠, 安倍清史 申請人:松下電器產(chǎn)業(yè)株式會社