專利名稱:數據編碼裝置、解碼裝置、以及數據編碼方法、解碼方法
技術領域:
本發明涉及把數據劃分成可變長度碼部分和固定長度碼部分來進行編碼或解碼的數據編碼裝置、數據解碼裝置、數據編碼方法以及數據解碼方法。
背景技術:
在數字照相機等的攝像裝置中,例如在單鏡頭反光式機型等中進行把被稱為RAW數據的攝像數據記錄在記錄介質內。該RAW數據僅是在對從攝像元件所得到的圖像信號實施了簡單的模擬處理之后轉換成數字數據的數據。然而,近年來,由于數字照相機的攝像元件正在進行高像素化,因而這種RAW數據的數據量增大起來。因此,也存在對RAW數據進行壓縮處理來實現數據量縮小的數字照相機。不過,RAW數據是假定由用戶修改的數據,在進行壓縮處理的情況下,期望的是無損(Lossless)壓縮。
壓縮方式一般期望的是壓縮率高,然而在應用于數字照相機等攝像裝置的壓縮方式的情況下,與應用于單體個人計算機等的壓縮方式的情況不同,由于規格上的限制等,因而還有若干期望條件,例如以下所述。
(1)處理時間短;(2)處理所需緩沖量小。
其中的條件(1)例如是與連拍性能、電池消耗等相關聯的條件。并且,條件(2)是與數字照相機的成本、尺寸、重量等相關聯的條件。
然而,要全都滿足條件(1)和條件(2),會使壓縮性能下降的可能性增高。
作為以往提出的壓縮技術,列舉有例如美國專利5764374號記載的方法,即根據編碼對象像素的周邊像素的梯度,對狀態進行分類,在各個狀態下的Golomb-Rice編碼中設定k參數。
專利文獻1美國專利5764374號然而,在上述美國專利5764374號記載的技術中,由于必須針對各狀態生成出現頻度和累積誤差的表格,然后進行計算處理,因而緩沖使用量增加,即,沒有充分滿足上述條件(2)。而且,由于針對編碼對象像素進行周邊像素的狀態分類,因而伴隨處理的增加,對于條件(1)也不能說充分滿足。
發明內容
本發明就是鑒于上述情況而提出的,本發明的目的是提供處理時間短、必要存儲量小、能發揮高壓縮性能的數據編碼裝置和數據編碼方法。
并且,本發明的目的是提供能將上述所壓縮的數據以較短的處理時間和較小的必要存儲量進行解碼的數據解碼裝置和數據解碼方法。
為了達到上述目的,第1發明的數據編碼裝置預測數據以轉換成預測誤差數據,并把該預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼,其特征在于,具有數據轉換部,其自適應預測數據以轉換成預測誤差數據;游程(run)計數器,其用于檢測上述預測誤差數據連續小于等于規定閾值的數;碼長設定部,其根據由上述游程計數器所檢測的數,設定上述預測誤差數據的固定長度碼部分的碼長;以及編碼部,其把上述預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼。
并且,第2發明的數據編碼裝置的特征在于,在上述第1發明的數據編碼裝置中,上述碼長設定部在由上述游程計數器所檢測的數大于等于規定的游程長度的情況下,與小于規定的游程長度的情況相比,把上述碼長設定得更短。
而且,第3發明的數據編碼裝置的特征在于,在上述第1發明的數據編碼裝置中,上述閾值可設定多種;上述游程計數器針對所設定的多種閾值的各方,檢測預測誤差數據連續小于等于該閾值的數。
第4發明的數據編碼裝置的特征在于,在上述第3發明的數據編碼裝置中,上述碼長設定部把在針對第1閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第1碼長設定得比在針對大于該第1閾值的第2閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第2碼長短。
第5發明的數據編碼裝置的特征在于,在上述第4發明的數據編碼裝置中,還具有動態范圍算出部,其用于把上述預測誤差數據的有效位數作為動態范圍來檢測;上述碼長設定部把如下得到的值設定為上述預測誤差數據的固定長度碼部分的碼長在上述第1碼長和上述第2碼長中取不大的一方,在上述不大的一方和上述動態范圍中取不小的一方。
第6發明的數據編碼方法用于預測數據以轉換成預測誤差數據,并把該預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼,其特征在于,具有如下的步驟自適應預測數據以轉換成預測誤差數據的步驟;檢測上述預測誤差數據連續小于等于規定閾值的數的步驟;根據上述所檢測的數,設定上述預測誤差數據的固定長度碼部分的碼長的步驟;以及把上述預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼的步驟。
第7發明的數據解碼裝置把編碼數據劃分成可變長度碼部分和固定長度碼部分來進行解碼,其特征在于,具有預測誤差數據解碼部,其通過把編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出預測誤差數據;注目數據解碼部,其根據由上述預測誤差數據解碼部所解碼的預測誤差數據自適應地求出注目數據;游程計數器,其用于針對由上述預測誤差數據解碼部所解碼的與注目數據的前一個數據相關的預測誤差數據,檢測該預測誤差數據連續小于等于規定閾值的數;以及碼長設定部,其根據由上述游程計數器所檢測的數,設定上述編碼數據的固定長度碼部分的碼長;上述預測誤差數據解碼部根據由上述碼長設定部所設定的碼長,把上述編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出上述預測誤差數據。
第8發明的數據解碼裝置的特征在于,在上述第7發明的數據解碼裝置中,上述碼長設定部在由上述游程計數器所檢測的數大于等于規定的游程長度的情況下,與小于規定的游程長度的情況相比,把上述碼長設定得更短。
第9發明的數據解碼裝置的特征在于,在上述第7發明的數據解碼裝置中,上述閾值可設定多種;上述游程計數器針對所設定的多種閾值的各方,檢測預測誤差數據連續小于等于該閾值的數。
第10發明的數據解碼裝置的特征在于,在上述第9發明的數據解碼裝置中,上述碼長設定部把在針對第1閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第1碼長設定得,比在針對大于該第1閾值的第2閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第2碼長短。
第11發明的數據解碼裝置的特征在于,在上述第10發明的數據解碼裝置中,還具有動態范圍算出部,其用于把上述預測誤差數據的有效位數作為動態范圍來檢測;上述碼長設定部把如下得到的值設定為上述預測誤差數據的固定長度碼部分的碼長在上述第1碼長和上述第2碼長中取不大的一方,在上述不大的一方和上述動態范圍中取不小的一方。
第12發明的數據解碼方法把編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼,其特征在于,具有如下的步驟通過把編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出預測誤差數據的步驟;根據上述所解碼的預測誤差數據自適應地求出注目數據的步驟;針對上述所解碼的與注目數據的前一個數據相關的預測誤差數據,檢測該預測誤差數據連續小于等于規定閾值的數的步驟;以及根據上述所檢測的數,設定上述編碼數據的固定長度碼部分的碼長的步驟;求出上述預測誤差數據的步驟是根據由設定上述固定長度碼部分的碼長的步驟所設定的碼長,把上述編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出上述預測誤差數據的步驟。
根據本發明的數據編碼裝置和數據編碼方法,能以較短的處理時間和較小的必要存儲量發揮高的壓縮性能。
并且,根據本發明的數據解碼裝置和數據解碼方法,可將上述所壓縮的數據以較短的處理時間和較小的必要存儲量進行解碼。
圖1是示出本發明的實施方式1中的數據編碼裝置的結構的方框圖。
圖2是示出上述實施方式1中的數據解碼裝置的結構的方框圖。
圖3是示出上述實施方式1中的平坦度檢測部的結構的方框圖。
圖4是示出上述實施方式1的數據編碼裝置的壓縮處理流程概要的流程圖。
圖5是示出上述實施方式1的數據解碼裝置的解壓縮處理流程概要的流程圖。
圖6是示出上述實施方式1的數據編碼裝置的壓縮處理詳情的流程圖。
圖7是示出在上述實施方式1中,以像素單位進行的平坦度檢測1的處理的流程圖。
圖8是示出在上述實施方式1中,以像素單位進行的平坦度檢測2的處理的流程圖。
圖9是示出在上述實施方式1中,以行單位進行的平坦度檢測1的處理的流程圖。
圖10是示出在上述實施方式1中,以行單位進行的平坦度檢測2的處理的流程圖。
圖11是示出在上述實施方式1中,注目像素和在注目像素以前所讀出的附近像素的配置的圖。
圖12是示出上述實施方式1中的絕對值化的另一例的圖表。
圖13是示出在上述實施方式1的像素單位的平坦度檢測中使用的各閾值和設定值的圖表。
圖14是示出上述實施方式1中的與閾值對應的k參數的設定例的圖表。
圖15是示出上述實施方式1中的Golomb-Rice編碼例的圖。
圖16是示出在上述實施方式1中,成為數據編碼裝置的處理對象的1行圖像數據的示例、而且是隨機性較高的示例的圖。
圖17是示出由上述實施方式1的數據編碼裝置根據圖16的圖像數據所算出的預測誤差值的圖。
圖18是示出由上述實施方式1的數據編碼裝置根據圖17的預測誤差值所取得的絕對值化后的預測誤差值的圖。
圖19是示出圖16的圖像數據的像素值和圖17的預測誤差值的狀態的線圖。
圖20是示出在上述實施方式1中,根據圖18所示的絕對值化后的預測誤差數據設定游程計數器和k參數的狀態的圖表。
圖21是將采用實施方式1的技術對圖16所示的圖像數據進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
圖22是示出在上述實施方式1中,成為數據編碼裝置的處理對象的1行圖像數據的示例、而且是隨機性較低的示例的圖。
圖23是示出由上述實施方式1的數據編碼裝置根據圖22的圖像數據所算出的預測誤差值的圖。
圖24是示出由上述實施方式1的數據編碼裝置根據圖23的預測誤差值所取得的絕對值化后的預測誤差值的圖。
圖25是示出圖22的圖像數據的像素值和圖23的預測誤差值的狀態的線圖。
圖26是示出在上述實施方式1中,根據圖24所示的絕對值化后的預測誤差數據設定游程計數器和k參數的狀態的圖表。
圖27是將針對圖22所示的圖像數據使用實施方式1的技術所進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
圖28是示出本發明的實施方式2中的數據編碼裝置的結構的方框圖。
圖29是示出上述實施方式2中的數據解碼裝置的結構的方框圖。
圖30是示出上述實施方式2的數據編碼裝置的壓縮處理詳情的流程圖。
圖31是示出在上述實施方式2中,根據圖18所示的絕對值化后的預測誤差數據設定游程計數器和k參數的狀態的圖表。
圖32是將針對圖16所示的圖像數據使用實施方式2的技術所進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
圖33是示出在上述實施方式2中,根據圖24所示的絕對值化后的預測誤差數據設定游程計數器和k參數的狀態的圖表。
圖34是將針對圖22所示的圖像數據使用實施方式2的技術所進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
具體實施例方式
以下,參照附圖對本發明的實施方式進行說明。
圖1至圖27示出本發明的實施方式1,圖1是示出數據編碼裝置的結構的方框圖,圖2是示出數據解碼裝置的結構的方框圖。
如圖1所示,數據編碼裝置1構成為包含預測部11、減法器12、絕對值化部13、平坦度檢測部14、k參數決定部15、以及Golomb-Rice編碼部16。在其中的預測部11和減法器12內輸入有圖像數據,從絕對值化部13輸出正負數據,從Golomb-Rice編碼部16輸出編碼數據。關于該數據編碼裝置1的詳情,在后面參照圖4、圖6~圖10等按照作用進行說明。
并且,由該數據編碼裝置1所壓縮的數據由圖2所示的數據解碼裝置2解碼。即,數據解碼裝置2構成為包含Golomb-Rice解碼部21、平坦度檢測部22、k參數決定部23、正負轉換部24、加法器25、以及預測部26。在其中的Golomb-Rice解碼部21內輸入有編碼數據,在正負轉換部24內輸入有正負數據,從加法器25輸出圖像數據。關于該數據解碼裝置2的詳情,在后面參照圖5等按照作用進行說明。
另外,在圖1和圖2中,各方框間的相互動作定時的調整由未作圖示的定時調整電路來進行。
然后,數據編碼裝置1的平坦度檢測部14或數據解碼裝置2的平坦度檢測部22按圖3所示構成。圖3是示出平坦度檢測部的結構的方框圖。
平坦度檢測部14、22構成為包含比較部31、游程計數器32、比較部33、以及k參數下限值決定部34。在其中的比較部31內輸入有絕對值化后的預測誤差數據和閾值th,在游程計數器32內輸入有外部計數復位信號,在比較部33內輸入有閾值th_run,在k參數下限值決定部34內輸入有k_low和k_high。關于該平坦度檢測部14、22的詳情,在后面按照作用進行說明。
然后,圖4是示出數據編碼裝置1的壓縮處理流程概要的流程圖。
數據編碼裝置1的壓縮處理基本上通過進行該圖4所示的一系列處理來進行。
即,首先,根據已讀出的像素數據,預測處理對象的像素數據(步驟S1)。
然后,通過取得處理對象的像素數據的實際值與在步驟S1中所預測的預測值的差,生成預測誤差值(步驟S2)。
接下來,對預測誤差值進行絕對值化(步驟S3),使絕對值化后的預測誤差值延遲1個像素之后,進行后述的平坦度檢測處理(步驟S4)。
然后,根據平坦度檢測結果,決定表示在進行Golomb-Rice編碼時的固定長度碼部分的碼長的k參數(步驟S5),根據所決定的k參數,對絕對值化后的預測誤差值進行Golomb-Rice編碼(步驟S6),結束。
參照圖6~圖15對按照這種流程的壓縮處理的詳情進行說明。圖6是示出數據編碼裝置1的壓縮處理詳情的流程圖,圖7是示出以像素單位進行的平坦度檢測1的處理的流程圖,圖8是示出以像素單位進行的平坦度檢測2的處理的流程圖,圖9是示出以行單位進行的平坦度檢測1的處理的流程圖,圖10是示出以行單位進行的平坦度檢測2的處理的流程圖,圖11是示出注目像素和在注目像素以前所讀出的附近像素的配置的圖,圖12是示出絕對值化的另一例的圖表,圖13是示出在像素單位的平坦度檢測中使用的各閾值和設定值的圖表,圖14是示出與閾值對應的k參數的設定例的圖表,圖15是示出Golomb-Rice編碼例的圖。
開始圖6所示的處理,首先,算出預測值(步驟S21)(與圖4的步驟S1對應的處理)。該預測值的算出是根據已掃描的像素數據來預測注目像素的像素值,這里,使用圖11所示的注目像素附近的像素值。這里,在圖11中,注目像素由x表示,注目像素的左鄰像素由a表示,注目像素的上鄰像素由b表示,注目像素的左上鄰像素由c表示。然后,把各像素a、b、c的像素值設為Ra、Rb、Rc,把注目像素x的預測值設為Px,則預測值Px根據這種像素數據的空間相關性,由作為數據轉換單元一部分的預測部11使用例如以下數式1所示的預測式來算出。
Px=max(Ra,Rb) (Rc<min(Ra,Rb)時)Px=min(Ra,Rb) (Rc>max(Ra,Rb)時)Px=Ra+Rb-Rc(其他時)這里,右邊符號max(x,y)意味著取x和y的不小的一方的值,符號min(x,y)意味著取x和y的不大的一方的值,以下也一樣使用。
另外,這里,使用數式1所示的適于邊緣檢測的預測式,然而可應用的預測式不限于此,也能使用其他各種預測式。例如,列舉以下數式2~數式8作為預測式的若干示例。首先,數式2把注目像素的左鄰像素a的像素值Ra作為注目像素x的預測值Px。這是考慮到,在水平方向的像素之間的相關性高的情況下,可取得精度良好的預測值。
Px=Ra然后,數式3把注目像素的上鄰像素b的像素值Rb作為注目像素x的預測值Px。這是考慮到,在垂直方向的像素之間的相關性高的情況下,可取得精度良好的預測值。
Px=Rb而且,數式4把注目像素的左上鄰像素c的像素值Rc作為注目像素x的預測值Px。這是考慮到,在從左上到右下的傾斜方向的像素之間的相關性高的情況下,可取得精度良好的預測值。
Px=Rc
然后,數式5把注目像素x的左鄰像素a的像素值Ra和注目像素x的上鄰像素b的像素值Rb相加,并從其中減去注目像素x的左上鄰像素c的像素值Rc,得到注目像素x的預測值Px。這是考慮到,在從左上到右下的傾斜方向的像素的像素值的變化率有規則性的情況下,可取得精度良好的預測值。
Px=Ra+Rb-Rc而且,數式6把從注目像素x的上鄰像素b的像素值Rb中減去注目像素x的左上鄰像素c的像素值Rc并除以2后的結果與注目像素x的左鄰像素a的像素值Ra相加,得到注目像素x的預測值Px。這是考慮到,在水平方向的像素的像素值的變化率有規則性的情況下,可取得精度良好的預測值。
Px=Ra+{(Rb-Rc)/2}并且,數式7把從注目像素x的左鄰像素a的像素值Ra中減去注目像素x的左上鄰像素c的像素值Rc并除以2后的結果與注目像素x的上鄰像素b的像素值Rb相加,得到注目像素x的預測值Px。這是考慮到,在垂直方向的像素的像素值的變化率有規則性的情況下,可取得精度良好的預測值。
Px=Rb+{(Ra-Rc)/2}而且,數式8把注目像素x的左鄰像素a的像素值Ra和注目像素x的上鄰像素b的像素值Rb的平均值作為注目像素x的預測值Px。這是考慮到,在與周邊像素的相關性高的情況(例如,比較平坦的情況)下,可取得精度良好的預測值。
Px=(Ra+Rb)/2另外,上述各預測式不限于針對1個圖像數據僅使用1個,也能進行組合來使用。即,例如,假定基本上使用數式2所示的預測式,當行上的左端像素是注目像素時,由于在其更左側不存在像素,因而可考慮使用數式3所示的預測式等的組合。并且,不限于上述各預測式,只要是在注目像素前讀出的像素,而且是空間距離接近注目像素的像素,就能使用任意1個或1個以上的像素的像素數據來算出預測值。
然后,作為數據轉換單元的一部分的減法器12,如數式9所示,通過從注目像素的實際像素值Rx中減去預測值Px,算出預測誤差值pred_diff(步驟S22)(與圖4的步驟S2對應的處理)。
Pred_diff=Rx-Px接下來,絕對值化部13對預測誤差值pred_diff進行絕對值化,算出絕對值化后的預測誤差值abs_pred_diff(步驟S23)(與圖4的步驟S3對應的處理)。該絕對值化有各種方法,例如,列舉按以下數式10所示進行算出的方法。
abs_pred_diff=pred_diff(pred_diff≥0時)abs_pred_diff=abs(pred_diff)-1 (pred_diff<0時)這里,第2式右邊的abs()表示取絕對值。
然后,絕對值化部13在通過該數式10所示的運算進行絕對值化的情況下,如圖1等所示,另行輸出表示碼的數據(正負數據)。
并且,作為絕對值化的另一方法,如圖12所示,列舉有依次進行以下等動作的方法,即把絕對值化數據“0”賦予給預測誤差值“0”,把絕對值化數據“1”賦予給預測誤差值“1”,把絕對值化數據“2”賦予給預測誤差值“-1”,把絕對值化數據“3”賦予給預測誤差值“2”,把絕對值化數據“4”賦予給預測誤差值“-2”。
另外,不限于此,可以使用其他方法進行絕對值化。
這樣進行了絕對值化的預測誤差值abs_pred_diff是成為Golomb-Rice編碼對象的數據,在后面說明的步驟S28的處理中使用,并且為了決定上述k參數,按以下說明來使用。
這樣算出的絕對值化后的預測誤差值abs_pred_diff為了進行決定k參數的處理,首先延遲1個像素(步驟S24)。
然后,根據按照掃描順序的1個像素前的絕對值化后的預測誤差值abs_pred_diff,進行基于與第1閾值的比較的像素單位的平坦度檢測1的處理(步驟S25)、以及基于與第2閾值的比較的像素單位的平坦度檢測2的處理(步驟S26)。
這里,步驟S25中的像素單位的平坦度檢測1的處理按圖7所示進行。
即,開始該處理,首先,比較部31判定絕對值化后的預測誤差值abs_pred_diff是否小于等于規定閾值th1(步驟S41a)。
這里,在小于等于閾值th1的情況下,對配備在游程計數器32內的游程計數器run_count1進行遞增計數(在圖7中,遞增計數由符號“run_count1+1”表示)(步驟S42a)。該游程計數器run_count1是用于對小于等于閾值th1的絕對值化后的預測誤差值abs_pred_diff連續幾個像素進行計數的計數器。
然后,比較部33判定游程計數器run_count1是否大于等于表示規定的游程長度的閾值th_run1(步驟S43a)。
這里,在大于等于閾值th_run1的情況下,k參數下限值決定部34把規定的k參數設定值k_low1存儲在k參數候選k_param1內(步驟S44a)。
并且,當在步驟S41a中判定為絕對值化后的預測誤差值abs_pred_diff大于規定閾值th1的情況下,游程計數器32將游程計數器run_count1初始化(即,存儲“0”)(步驟S45a)。
在該步驟S45a結束或者在步驟S43a中判定為游程計數器run_count1小于閾值th_run1的情況下,k參數下限值決定部34把規定的k參數設定值k_high1(這里,k_high1>k_low1)存儲在k參數候選k_param1內(步驟S46a)。
這樣,在步驟S44a或步驟S46a結束之后,從該處理返回到圖6所示的處理。
而且,步驟S26中的像素單位的平坦度檢測2的處理如圖8所示。該圖8所示的處理與圖7所示的處理相比,除了以下點,即閾值th1為閾值th2(fth2>th1),游程計數器run_count1為游程計數器run_count2,表示規定的游程長度的閾值th_run1為閾值th_run2,規定的k參數設定值k_low1為規定的k參數設定值k_low2(k_low2>k_low1),規定的k參數設定值k_high1為規定的k參數設定值k_high2(k_high2>k_low2),以及k參數候選k_param1為k參數候選k_param2以外,步驟S41a~S46a的各處理與步驟S41b~S46b的各處理各自對應。
另外,在圖7所示的像素單位的平坦度檢測1的處理和圖8所示的像素單位的平坦度檢測1的處理中使用的各閾值和設定值,具體地說,例如按圖13所示設定。
即,閾值th1是“15”,閾值th2是“31”,閾值th_run1是“2”,閾值th_run2是“2”,k參數設定值k_low1是“2”,k參數設定值k_low2是“4”,k參數設定值k_high1是“5”,以及k參數設定值k_gigh2是“5”。
并且,上述步驟S24~S26的處理與圖4的步驟S4的處理的一部分對應。
之后,根據上述步驟S25、S26的各處理的結果,即,由步驟S25所算出的k參數候選k_param1、以及由步驟S26所算出的k參數候選k_param2,作為碼長設定單元的k參數決定部15如以下數式11所示決定k參數k_param(步驟S27)(與圖4的步驟S5對應的處理)。
k_param=min(k_param1,k_param2)通過進行該處理,具體地說,如圖14所示決定k參數k_param。即,在如圖13所示,表示規定的游程長度的閾值th_run1和th_run2全都是“2”,并如該圖13所示提供了k參數設定值k_low1、k_low2、k_high1以及k_high2的情況下,k參數k_param在前像素以前(包含前像素)的2個像素小于等于閾值th1時是“2”,在前像素以前(包含前像素)的2個像素大于閾值th1且小于等于閾值2時是“4”,除此以外是“5”。
然后,根據所算出的k參數k_param,作為編碼單元的Golomb-Rice編碼部16對在上述步驟S23中進行了絕對值化的預測誤差值abs_pred_diff進行Golomb-Rice編碼(步驟S28)(與圖4的步驟S6對應的處理)。作為具體例,如圖15所示,絕對值化后的預測誤差值abs_pred_diff用2進制數表示,為“000001110110”,在k參數k_param是“5”的情況下,低5位“10110”是固定長度碼部分,剩余的高位“0000011”用十進制數表示,為“3”,因而可變長度碼部分是“000”,在該可變長度碼部分的后面附加分隔碼“1”而為“0001”。然后,通過將其合成,由Golomb-Rice編碼所取得的碼是“000110110”。這樣,可知,12位的信息被壓縮為9位。
這樣,在1個像素的Golomb-Rice編碼結束之后,判定該像素是否是1行中的最后像素,即1行的編碼是否結束(步驟S29),這里,在判定為1行的編碼還未結束的情況下,回到步驟S21,對同一行內的下一個像素重復進行上述處理。
另一方面,當在步驟S29中判定為1行的編碼結束的情況下,進行行單位的平坦度檢測1的處理(步驟S30)(與圖4的步驟S4的一部分對應的處理)、以及行單位的平坦度檢測2的處理(步驟S31)(與圖4的步驟S4的一部分對應的處理)。
即,步驟S30中的行單位的平坦度檢測1的處理,如圖9所示,是通過由游程計數器32根據外部計數復位信號使游程計數器run_count1初始化(即,存儲“0”)來進行的(步驟S51a)。
同樣,步驟S31中的行單位的平坦度檢測2的處理,如圖10所示,是通過由游程計數器32根據外部計數復位信號使游程計數器run_count2初始化(即,存儲“0”)來進行的(步驟S51b)。
在這些步驟S30和步驟S31的處理結束之后,判定是否進行了針對圖像數據的所有行的處理,即圖像數據整體的處理是否已結束(步驟S32),在未結束的情況下,回到上述步驟S21,對下一行的像素重復進行上述處理。
并且,當在步驟S32中判定為圖像數據整體的處理結束的情況下,結束該處理。
接下來,參照圖16至圖21,說明對隨機性較高的1行的圖像數據進行編碼的具體的一例。
這里,圖16是示出成為數據編碼裝置1的處理對象的1行圖像數據的示例、而且是隨機性較高的示例的圖,圖17是示出由數據編碼裝置1根據圖16的圖像數據所算出的預測誤差值的圖,圖18是示出由數據編碼裝置1根據圖17的預測誤差值所取得的絕對值化后的預測誤差值的圖,圖19是示出圖16的圖像數據的像素值和圖17的預測誤差值的狀態的線圖,圖20是示出根據圖18所示的絕對值化后的預測誤差數據來設定游程計數器和k參數的狀態的圖表,圖21是將使用本實施方式的技術對圖16所示的圖像數據進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
首先,假定圖16所示的由32個像素構成的1行的圖像數據被輸入到數據編碼裝置1中。
這樣,預測部11使用過去讀出的像素值,例如如數式2所示預測注目像素的像素值。然而,由于只有行開頭的像素不能進行使用數式2的預測,因而把預測值設定為“0”。
然后,減法器12根據數式9,算出圖17所示的預測誤差值。
這里,圖16所示的像素數據的像素值和圖17所示的預測誤差值呈圖19所示的分布,這里列舉隨機性較高的數據為例。
而且,絕對值化部13根據數式10,算出圖18所示的絕對值化后的預測誤差值。
在使該絕對值化后的預測誤差值延遲1個像素之后,如圖20所示,利用平坦度檢測部14進行把閾值th1設定為“15”的平坦度檢測1的處理、以及把閾值th2設定為“31”的平坦度檢測2的處理。
例如,由于絕對值化后的預測誤差值從第2像素到第6像素連續小于等于15,在第7像素超過15,因而在與該第7像素相關的平坦度檢測1(由于延遲了1個像素,因而使用第6像素的絕對值化后的預測誤差值)中,游程計數器run_count1是“5”,在與第8像素相關的平坦度檢測1中,游程計數器run_count1被復位為“0”。
因此,由于從第1像素到第3像素,游程計數器run_count1小于2,因而k參數候選k_param1是5(=k_high1),然而由于從第4像素到第7像素,游程計數器run_count1大于等于2,因而k參數候選k_param1是2(=k_low1)。
同樣,由于絕對值化后的預測誤差值從第2像素到第8像素連續小于等于31,在第9像素超過31,因而在與該第9像素相關的平坦度檢測2(由于延遲了1個像素,因而使用第8像素的絕對值化后的預測誤差值)中,游程計數器run_count2是“7”,在與第10像素相關的平坦度檢測2中,游程計數器run_count2被復位為“0”。
因此,由于從第1像素到第3像素,游程計數器run_count2小于2,因而k參數候選k_param2是5(=k_high2),然而由于從第4像素到第9像素,游程計數器run_count2大于等于2,因而k參數候選k_param2是4(=k_low2)。
然后,由于k參數決定部15如數式11所示,把k參數候選k_param1和k參數候選k_param2的任意不大的一方的值設定為k參數k_param,因而k參數k_param從第1像素到第3像素是5,從第4像素到第7像素是2,從第8像素到第9像素是4等。
通過從第1像素到第32像素進行這種處理,可取得圖20所示的各個值。
這樣,當把通過Golomb-Rice編碼部16,使用自適應算出的k參數k_param進行編碼的結果與使k參數k_param固定而由Golomb-Rice編碼部16進行編碼的情況相比較時,如圖21所示。
這里,采用像素值的動態范圍是0~255的情況,即是以8位表現的像素值的情況為例。此時,32個像素的數據量是256位。
然后,將k參數固定為例如2時的碼量是277位,與進行編碼前相比碼量增加,壓縮率是108。并且,將k參數固定為例如5時的碼量是203位,壓縮率是79。這考慮到是因為,由于圖像數據的隨機性高,因而作為預測值和像素值的偏差的預測誤差值的大小大,把k參數設定得較大可取得高的壓縮率。
相比之下,當使用本實施方式的上述自適應k參數時可知,碼量是204,壓縮率是80,可取得與將k參數固定為5時大致相同的較高的壓縮率。
下面,參照圖22至圖27對把隨機性較低的1行的圖像數據進行編碼的具體的另一例進行說明。
這里,圖22是示出成為數據編碼裝置1的處理對象的1行圖像數據的示例、而且是隨機性較低的示例的圖,圖23是示出由數據編碼裝置1根據圖22的圖像數據所算出的預測誤差值的圖,圖24是示出由數據編碼裝置1根據圖23的預測誤差值所取得的絕對值化后的預測誤差值的圖,圖25是示出圖22的圖像數據的像素值和圖23的預測誤差值的狀態的線圖,圖26是示出根據圖24所示的絕對值化后的預測誤差數據設定游程計數器和k參數的狀態的圖表,圖27是把使用本實施方式的技術對圖22所示的圖像數據進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
另外,在該圖22至圖27所示的示例中,假定與上述圖16至圖21所示的示例一樣,使用圖13所示的各閾值和設定值。
這里,假定圖22所示的由32個像素構成的1行的圖像數據被輸入到數據編碼裝置1中。
這樣,預測部11使用過去讀出的像素值,如數式2所示預測注目像素的像素值,減法器12根據數式9,算出圖23所示的預測誤差值。
這里,圖22所示的像素數據的像素值和圖23所示的預測誤差值呈圖25所示的分布,與圖19所示的分布進行比較,成為隨機性低的數據例。
而且,絕對值化部13根據數式10,算出圖24所示的絕對值化后的預測誤差值。
在使該絕對值化后的預測誤差值延遲了1個像素之后,利用平坦度檢測部14進行把閾值th1設定為“15”的平坦度檢測1的處理、以及把閾值th2設定為“31”的平坦度檢測2的處理。
在該情況下,由于絕對值化后的預測誤差值僅第1像素超過15,從第2像素到第32像素連續小于等于15,因而在平坦度檢測1中,如圖26所示,k參數候選k_param1從第1像素到第3像素是5(=k_high1),從第4像素到第32像素連續是2(=k_low1)。
同樣,由于絕對值化后的預測誤差值僅第1像素超過31,從第2像素到第32像素連續小于等于31,因而在平坦度檢測2中,如圖26所示,k參數候選k_param2從第1像素到第3像素是5(=k_high2),從第4像素到第32像素連續是4(=k_low2)。
因此,k參數決定部15根據數式11,把k參數k_param從第1像素到第3像素設定為5,從第4像素到第32像素設定為2。
這樣,當把通過Golomb-Rice編碼部16,使用自適應算出的k參數k_param進行編碼的結果與使k參數k_param固定而由Golomb-Rice編碼部16進行編碼的情況相比較時,如圖27所示。
首先,32個像素的數據量是256位,這與上述一樣。
然后,將k參數固定為2時的碼量是117位,壓縮率是46。并且,將k參數固定為5時的碼量是193位,壓縮率是75。這考慮到是因為,由于圖像數據的隨機性較低,作為預測值和像素值的偏差的預測誤差值的大小小,因而把k參數設定得較小可取得高的壓縮率。
相比之下,當使用本實施方式的上述自適應k參數時可知,碼量是112,壓縮率是44,可取得比將k參數固定為2時還稍高的壓縮率。
然后,把圖21所示的結果和圖27所示的結果進行比較,在將k參數固定的情況下,對于隨機性高的數據,k=5可取得高壓縮率,對于隨機性低的數據,k=2可取得高壓縮率,反過來說,對于隨機性高的數據,k=2的壓縮率超過100,對于隨機性低的數據,k=5還不太能說是高壓縮率。相比之下,根據本實施方式,無論是隨機性高的數據還是隨機性低的數據,都能穩定地達到高壓縮率。
然后,圖5是示出數據解碼裝置2的解壓縮處理流程概要的流程圖。
開始該處理,作為預測誤差數據解碼單元的Golomb-Rice解碼部21根據與在圖6的步驟S28中所說明的相反的過程,進行Golomb-Rice解碼,算出絕對值化后的預測誤差值abs_pred_diff(步驟S11)。另外,該絕對值化后的預測誤差值abs_pred_diff,如后所述,也在下一個像素的k參數的決定中使用。
然后,正負轉換部24使用正負數據,根據絕對值化后的預測誤差值abs_pred_diff算出預測誤差值pred_diff(步驟S12)。
接下來,作為注目數據解碼單元的一部分的預測部26使用已算出的像素值,根據上述數式1~數式8的任意一方生成預測值Px(步驟S13)。
然后,作為注目數據解碼單元的一部分的加法器25使用以下數式12,根據預測值Px和預測誤差值pred_diff算出像素值Rx(步驟S14)。
Rx=Px+pred_diff這樣算出的像素值Rx成為來自數據解碼裝置2的輸出數據。
并且,從Golomb-Rice解碼部21輸出的絕對值化后的預測誤差值abs_pred_diff在延遲了1個像素之后,由平坦度檢測部22根據2種閾值th1和th2,如上所述地算出k參數候選k_param1、k_param2(步驟S15)。
然后,根據這些算出結果,作為碼長設定單元的k參數決定部23如數式11所示決定k參數(步驟S16)。
根據該實施方式1,由于調查注目像素附近的平坦性,根據平坦度自適應地設定k參數,因而可發揮高的壓縮性能。
而且,把鄰接像素的像素值與規定閾值進行比較,當連續小于等于該閾值時,進行游程計數器的計數,當計數數大于等于規定的游程長度時,判斷為是平坦的,因而可減小必要的存儲量。
然后,由于作為判斷平坦性時的規定閾值設定了多種(在上述例中,是th1和th2的2種,然而不限于2種),因而可高精度地判斷平坦性。
除此之外,可將所壓縮的數據以短的處理時間和小的必要存儲量進行解碼。
圖28至圖34示出本發明的實施方式2,圖28是示出數據編碼裝置的結構的方框圖,圖29是示出數據解碼裝置的結構的方框圖。在該實施方式2中,對與上述實施方式1相同的部分附上同一符號并省略說明,主要僅對不同點進行說明。
圖28所示的本實施方式的數據編碼裝置1A與圖1所示的數據編碼裝置1的結構大致相同,然而不同點是,與平坦度檢測部14并列設置有動態范圍算出部17,k參數決定部15A使用平坦度檢測部14的檢測結果和動態范圍算出部17的算出結果的雙方來決定k參數。然后,動態范圍算出部17算出從絕對值化部13輸出的絕對值化后的預測誤差值abs_pred_diff的動態范圍,并把算出結果輸出給k參數決定部15A。關于該數據編碼裝置1A的詳情,在后面參照圖30等按照作用進行說明。
然后,由該數據編碼裝置1A所壓縮的數據由圖29所示的數據解碼裝置2A解碼。即,本實施方式的數據解碼裝置2A與圖2所示的數據解碼裝置2的結構大致相同,然而不同點是,與平坦度檢測部22并列設置有動態范圍算出部27,k參數決定部23A使用平坦度檢測部22的檢測結果和動態范圍算出部27的算出結果的雙方來決定k參數。然后,動態范圍算出部27算出從Golomb-Rice解碼部21輸出的絕對值化后的預測誤差值abs_pred_diff的動態范圍,并把算出結果輸出給k參數決定部23A。
另外,在圖28和圖29中,各方框間的相互的動作定時的調整由未作圖示的定時調整電路來進行。
接下來,圖30是示出數據編碼裝置1A的壓縮處理詳情的流程圖。在該圖30所示的處理中,對與上述實施方式1的圖6所示的處理相同的部分附上同一符號并省略說明,主要僅對不同點進行說明。
在該處理中,在通過步驟S24的處理使絕對值化后的預測誤差值abs_pred_diff延遲了1個像素之后,進行步驟S25中的像素單位的平坦度檢測1的處理、以及步驟S26中的像素單位的平坦度檢測2的處理,并與這些處理同時進行前像素動態范圍算出的處理(步驟S33)。
在該步驟S33的處理中,算出前像素的有效像素值部分的位數。即,作為動態范圍算出單元的動態范圍算出部17進行以下處理,即當對前像素的像素值從高位向低位側一位一位地進行檢測時,求出得到最初不是“0”的比特值(即,比特值“1”)的位的位數。把此時求出的動態范圍設定為pre_range。
接下來,根據步驟S25、S26以及S33的各處理的結果,即,通過步驟S25所算出的k參數候選k_param1、通過步驟S26所算出的k參數候選k_param2、以及通過步驟S33所算出的動態范圍pre_range,作為碼長設定單元的k參數決定部15A如以下數式13所示決定k參數k_param(步驟S27A)。
k_param=max(pre_range,min(k_param1,k_param2))即,這里,把k參數候選k_param1和k參數候選k_param2中的任意不大的一方與動態范圍pre_range中的任意不小的一方設定為k參數k_param。
其他處理與上述實施方式1的圖6所示的處理相同。
接下來,參照圖31和圖32,說明對隨機性較高的1行的圖像數據進行編碼的具體一例。
這里,圖31是示出根據圖18所示的絕對值化后的預測誤差數據設定游程計數器和k參數的狀態的圖表,圖32是把使用本實施方式的技術對圖16所示的圖像數據進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
這里,對以下示例進行說明,即根據圖16所示的圖像數據,算出圖17所示的預測誤差值,算出圖18所示的絕對值化后的預測誤差值,根據由本實施方式的方法所算出的k參數對該絕對值化后的預測誤差值進行壓縮。并且,在由平坦度檢測部14檢測平坦度時使用的各閾值和設定值與圖13所示相同。
在該圖31所示的各值中,絕對值化后的預測誤差數據、游程計數器run_count1、游程計數器run_count2、k參數候選k_param1以及k參數候選k_param2與圖20所示相同。
然后,在本實施方式中,除了上述值之外,還算出動態范圍pre_range。首先,在注目像素是行開頭的像素(第1像素)的情況下,由于不存在前像素,因而把動態范圍pre_range例如設定為預定的規定值“5”。
然后,在第2像素中,由于作為延遲了1個像素的前像素的第1像素的絕對值化后的預測誤差數據是“49”,即利用8位可表示為“00110001”,因而有效位部分是“110001”的6位,作為動態范圍pre_range設定為6。之后也同樣依次設定動態范圍pre_range,然而當絕對值化后的預測誤差數據是“0”時,作為動態范圍pre_range設定為“1”。
這樣,當k參數候選k_param1、k參數候選k_param2以及動態范圍pre_range齊全時,根據數式13,決定k參數k_param。例如,在第6像素中,由于k參數候選k_param1是“2”,k參數候選k_param2是“4”,因而在上述實施方式1中,作為k參數k_param被設定為“2”,然而在本實施方式中,由于動態范圍pre_range是“3”,因而作為k參數k_param被設定為“3”。
這樣,當把通過Golomb-Rice編碼部16,使用自適應算出的k參數k_param進行編碼的結果與使k參數k_param固定而由Golomb-Rice編碼部16進行編碼的情況相比較時,如圖32所示。
首先,32個像素的數據量是256位,這與上述一樣,將k參數固定為2時的碼量和壓縮率、以及將k參數固定為5時的碼量和壓縮率也與圖21所示相同。
相比之下,當使用本實施方式的上述自適應k參數時可知,碼量是207,壓縮率是81,可取得與將k參數固定為5時、以及使用實施方式1的自適應求出的k參數時大致相同的較高的壓縮率。
然后,參照圖33和圖34,說明對隨機性較低的1行的圖像數據進行編碼的具體另一例。
這里,圖33是示出根據圖24所示的絕對值化后的預測誤差數據設定游程計數器和k參數的狀態的圖表,圖34是把使用本實施方式的技術對圖22所示的圖像數據進行的壓縮率與使k參數固定時的壓縮率進行對比示出的圖表。
這里,對以下示例進行說明,即根據圖22所示的圖像數據,算出圖23所示的預測誤差值,算出圖24所示的絕對值化后的預測誤差值,根據由本實施方式的方法所算出的k參數對該絕對值化后的預測誤差值進行壓縮。并且,在由平坦度檢測部14檢測平坦度時使用的各閾值和設定值與圖13所示相同。
在該圖33所示的各值中,絕對值化后的預測誤差數據、游程計數器run_count1、游程計數器run_count2、k參數候選k_param1以及k參數候選k_param2與圖26所示相同。
然后,與上述一樣,算出動態范圍pre_range。
這樣,當k參數候選k_param1、k參數候選k_param2以及動態范圍pre_range齊全時,根據數式13,決定k參數k_param。
這樣,當把通過Golomb-Rice編碼部16,使用自適應算出的k參數k_param進行編碼的結果與使k參數k_param固定而由Golomb-Rice編碼部16進行編碼的情況相比較時,如圖34所示。
首先,32個像素的數據量是256位,這與上述一樣,將k參數固定為2時的碼量和壓縮率、以及將k參數固定為5時的碼量和壓縮率也與圖27所示相同。
相比之下,當使用本實施方式的上述自適應k參數時可知,碼量是118,壓縮率是46,可取得與將k參數固定為2時、以及使用實施方式1的自適應求出的k參數時大致相同的較高壓縮率。
然后,把圖32所示的結果和圖34所示的結果進行比較可知,與將k參數固定的情況相比,根據本實施方式,無論是隨機性高的數據還是隨機性低的數據,都能穩定地達到高壓縮率。
并且,當由數據解碼裝置2A進行解碼時,作為動態范圍算出單元的動態范圍算出部27在使由Golomb-Rice解碼部21所解碼的絕對值化后的預測誤差值延遲了1個像素之后,與上述動態范圍算出部17一樣進行動態范圍的算出。
然后,作為碼長設定單元的k參數決定部23A與上述的k參數決定部15A一樣,根據數式13決定k參數。
數據解碼裝置2A的其他作用與上述實施方式1的數據解碼裝置2相同。
根據該實施方式2,取得與上述實施方式1大致相同的效果,并且除了平坦度檢測以外,還算出前像素的動態范圍,并根據所檢測的平坦度和所算出的動態范圍來決定k參數,因而可應對能取得圖像的更多方式,發揮高的壓縮性能。
此時,由于動態范圍的算出僅檢測前像素的有效位數,因而可減小必要的存儲量,并可進行高速處理。
然后,可將所壓縮的數據以短的處理時間和小的必要存儲量進行解碼。
另外,如上所述,作為成為處理對象的數據列舉了圖像數據為例,然而可由數據編碼裝置和數據解碼裝置處理的數據當然不限于此。
并且,如上所述,使用數據編碼裝置和數據解碼裝置進行了處理,然而可以通過把數據編碼方法和數據解碼方法應用于現有的運算器等來進行處理。或者,可以使用用于進行與數據編碼裝置和數據解碼裝置同等的處理的程序,在計算機上進行處理。
而且,如上所述,作為編碼例列舉了Golomb-Rice編碼為例,作為解碼例列舉了Golomb-Rice解碼為例,然而不限于此,更一般地說,只要是將數據劃分成可變長度碼部分和固定長度碼部分來進行編碼的方法就行。因此,成為編碼對象的不限于進行了絕對值化后的預測誤差值。
另外,本發明不限于上述實施方式,當然可在不背離發明主旨的范圍內進行各種變形和應用。
本發明可適合利用于將數據劃分成可變長度碼部分和固定長度碼部分來進行編碼或解碼的數據編碼裝置、數據解碼裝置、數據編碼方法以及數據解碼方法。
權利要求
1.一種數據編碼裝置,預測數據以轉換成預測誤差數據,并把該預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼,其特征在于,具有數據轉換部,其自適應預測數據以轉換成預測誤差數據;游程計數器,其用于檢測上述預測誤差數據連續小于等于規定閾值的數;碼長設定部,其根據由上述游程計數器所檢測的數,設定上述預測誤差數據的固定長度碼部分的碼長;以及編碼部,其把上述預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼。
2.根據權利要求1所述的數據編碼裝置,其特征在于,上述碼長設定部在由上述游程計數器所檢測的數大于等于規定的游程長度的情況下,與小于規定的游程長度的情況相比,把上述碼長設定得更短。
3.根據權利要求1所述的數據編碼裝置,其特征在于,上述閾值可設定多種;上述游程計數器針對所設定的多種閾值的各方,檢測預測誤差數據連續小于等于該閾值的數。
4.根據權利要求3所述的數據編碼裝置,其特征在于,上述碼長設定部把在針對第1閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第1碼長、設定得比在針對大于該第1閾值的第2閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第2碼長短。
5.根據權利要求4所述的數據編碼裝置,其特征在于,還具有動態范圍算出部,其用于把上述預測誤差數據的有效位數作為動態范圍來檢測;上述碼長設定部把如下得到的值設定為上述預測誤差數據的固定長度碼部分的碼長在上述第1碼長和上述第2碼長中取不大的一方,在上述不大的一方和上述動態范圍中取不小的一方。
6.一種數據編碼方法,預測數據以轉換成預測誤差數據,并把該預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼,其特征在于,具有如下的步驟自適應預測數據以轉換成預測誤差數據的步驟;檢測上述預測誤差數據連續小于等于規定閾值的數的步驟;根據上述所檢測的數,設定上述預測誤差數據的固定長度碼部分的碼長的步驟;以及把上述預測誤差數據劃分成可變長度碼部分和固定長度碼部分來進行編碼的步驟。
7.一種數據解碼裝置,把編碼數據劃分成可變長度碼部分和固定長度碼部分來進行解碼,其特征在于,具有預測誤差數據解碼部,其通過把編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出預測誤差數據;注目數據解碼部,其根據由上述預測誤差數據解碼部所解碼的預測誤差數據自適應地求出注目數據;游程計數器,其用于針對由上述預測誤差數據解碼部所解碼的與注目數據的前一個數據相關的預測誤差數據,檢測該預測誤差數據連續小于等于規定閾值的數;以及碼長設定部,其根據由上述游程計數器所檢測的數,設定上述編碼數據的固定長度碼部分的碼長;上述預測誤差數據解碼部根據由上述碼長設定部所設定的碼長,把上述編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出上述預測誤差數據。
8.根據權利要求7所述的數據解碼裝置,其特征在于,上述碼長設定部在由上述游程計數器所檢測的數大于等于規定的游程長度的情況下,與小于規定的游程長度的情況相比,把上述碼長設定得更短。
9.根據權利要求7所述的數據解碼裝置,其特征在于,上述閾值可設定多種;上述游程計數器針對所設定的多種閾值的各方,檢測預測誤差數據連續小于等于該閾值的數。
10.根據權利要求9所述的數據解碼裝置,其特征在于,上述碼長設定部把在針對第1閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第1碼長、設定得比在針對大于該第1閾值的第2閾值而由上述游程計數器所檢測的數大于等于規定的游程長度的情況下的第2碼長短。
11.根據權利要求10所述的數據解碼裝置,其特征在于,還具有動態范圍算出部,其用于把上述預測誤差數據的有效位數作為動態范圍來檢測;上述碼長設定部把如下得到的值設定為上述預測誤差數據的固定長度碼部分的碼長在上述第1碼長和上述第2碼長中取不大的一方,在上述不大的一方和上述動態范圍中取不小的一方。
12.一種數據解碼方法,把編碼數據劃分成可變長度碼部分和固定長度碼部分來進行解碼,其特征在于,具有如下的步驟通過把編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出預測誤差數據的步驟;根據上述所解碼的預測誤差數據自適應地求出注目數據的步驟;針對上述所解碼的與注目數據的前一個數據相關的預測誤差數據,檢測該預測誤差數據連續小于等于規定閾值的數的步驟;以及根據上述所檢測的數,設定上述編碼數據的固定長度碼部分的碼長的步驟;求出上述預測誤差數據的步驟是根據由設定上述固定長度碼部分的碼長的步驟所設定的碼長,把上述編碼數據劃分成可變長度碼部分和固定長度碼部分進行解碼來求出上述預測誤差數據的步驟。
全文摘要
本發明提供處理時間短、必要存儲量小、能發揮高壓縮性能的數據編碼裝置等。數據編碼裝置(1)具有預測部(11),其根據已讀出的數據算出注目數據的預測值;減法器(12),其運算作為注目數據和預測值的誤差的預測誤差值;絕對值化部(13),其對預測誤差值進行絕對值化;平坦度檢測部(14),其針對多個閾值的各方檢測絕對值化后的預測誤差值連續小于等于規定閾值的數,并根據所檢測的數是否大于等于規定的游程長度來設定各閾值的碼長候選;k參數決定部(15),其根據各閾值的碼長候選決定固定長度碼部分的碼長;以及Golomb-Rice編碼部(16),其根據所決定的碼長把絕對值化后的預測誤差值劃分成可變長度碼部分和固定長度碼部分進行編碼。
文檔編號H03M7/30GK1870440SQ20061008096
公開日2006年11月29日 申請日期2006年5月23日 優先權日2005年5月23日
發明者石川隆志 申請人:奧林巴斯映像株式會社