深度信息編碼方法、解碼方法及裝置的制造方法
【專利摘要】本發(fā)明實施例提供一種深度信息編碼方法、解碼方法以及裝置,編碼時,計算深度值索引表中相鄰深度值的一級差值;將數(shù)值不同的一級差值按照第二順序排列,并計算排列順序中相鄰一級差值的二級差值;將數(shù)值不同的一級差值按照第二順序設(shè)置索引編號;遍歷相鄰深度值的一級差值,確定每一相鄰深度值的一級差值對應(yīng)的索引編號;將最大深度值和最小深度值中的至少一個以及最大一級差值按照第一位寬、各個二級差值及各一級差值的索引編號按照第二位寬分別進(jìn)行編碼;解碼時,根據(jù)解碼獲得的最大深度值和最小深度值中的至少一個,最大一級差值、各個二級差值及將各一級差值的索引編號,即獲得深度值索引表中的深度值。本發(fā)明減少了編碼占用的資源。
【專利說明】
深度信息編碼方法、解碼方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及視頻技術(shù)領(lǐng)域,尤其涉及一種深度信息編碼方法、解碼方法及
目.0
【背景技術(shù)】
[0002]三維視頻相較于傳統(tǒng)的二維視頻,除了包含顏色信息還包括深度信息,深度信息是指視頻圖像中物景各點到攝像機(jī)之間的距離信息,通常利用深度圖來描述深度信息,深度圖通常是一幅灰度圖,每個像素的取值范圍為O?255,深度圖中的像素值,也稱為深度值,可以用來描述視頻圖像中物景各點到攝像機(jī)之間的距離。
[0003]在進(jìn)行三維視頻編碼時,也需要對深度信息進(jìn)行編碼,現(xiàn)有技術(shù)的一種編碼方式是采用深度值索引表算法,首先建立視頻深度圖的深度值索引表,在深度值索引表中深度值是按照從小到大的順序排列,每一個深度值對應(yīng)一個索引編號,編碼端在進(jìn)行深度信息編碼時,是將索引編號進(jìn)行編碼寫入碼流中,同時將深度值索引表寫入碼流中;解碼端從碼流中可以解碼出深度值的索引編號,結(jié)合深度值索引表,即可以解碼得到深度信息。
[0004]但是,現(xiàn)有的這種編碼方式,需要編碼深度值索引表中的全部深度值的索引編號,為了適應(yīng)數(shù)值不同的索引編號,深度值的索引編號需要占用較多的比特數(shù)目,且需要寫入深度值索引表,因此導(dǎo)致編碼占用較多的資源。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實施例提供一種深度信息編碼方法、解碼方法以及裝置,用以解決現(xiàn)有技術(shù)中編碼占用資源較多的技術(shù)問題。
[0006]本發(fā)明實施例提供一種深度信息編碼方法,包括:
[0007]獲取深度值索引表;其中,所述深度值索引表中的深度值按照第一順序排列;
[0008]計算所述深度值索引表中相鄰深度值的差值,作為一級差值;
[0009]選擇數(shù)值不同的一級差值按照第二順序排列,并計算所述排列中相鄰一級差值的差值,作為二級差值;
[0010]將所述數(shù)值不同的一級差值按照所述第二順序依次設(shè)置索引編號,并遍歷各個相鄰深度值的一級差值,根據(jù)所述數(shù)值不同的一級差值設(shè)置的索引編號,確定每一個相鄰深度值的一級差值對應(yīng)的索引編號,其中,數(shù)值相同的一級差值的索引編號相同;
[0011]將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中,其中,所述第二位寬小于所述第一位寬。
[0012]本發(fā)明實施例提供一種深度信息解碼方法,編碼得到的碼流中包括最大深度值和最小深度值中的至少一個、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值時,所述方法包括:
[0013]將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號;
[0014]根據(jù)所述最大一級差值、以及所述各個二級差值,獲得數(shù)值不同的一級差值;
[0015]根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個相鄰深度值的一級差值的索引編號,獲得各個相鄰深度值的一級差值;
[0016]根據(jù)所述最大深度值和所述最小深度值中的至少一個、以及所述各個相鄰深度值之間的一級差值,獲得深度索引表中各個深度值。
[0017]本發(fā)明實施例提供一種深度信息編碼裝置,包括:
[0018]獲取模塊,用于獲取深度值索引表;其中,所述深度值索引表中的深度值按照第一順序排列;
[0019]—級計算模塊,用于計算所述深度值索引表中相鄰深度值的差值,作為一級差值;
[0020]二級計算模塊,用于選擇數(shù)值不同的一級差值按照第二順序排列,并計算所述排列順序中相鄰一級差值的差值,作為二級差值;
[0021]第一索引模塊,用于將所述數(shù)值不同的一級差值按照所述第二順序排列依次設(shè)置索引編號,并遍歷各個相鄰深度值的一級差值,根據(jù)所述數(shù)值不同的一級差值設(shè)置的索引編號,確定每一個相鄰深度值的一級差值對應(yīng)的索引編號,其中,數(shù)值相同的一級差值的索引編號相同;
[0022]第一編碼模塊,用于將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中,其中,所述第二位寬小于所述第一位寬。
[0023]本發(fā)明實施例提供一種深度信息解碼裝置,編碼得到的碼流中包括最大深度值和最小深度值中的至少一個、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值,所述裝置包括:
[0024]第一解碼模塊,用于將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號;
[0025]第一獲取模塊,用于根據(jù)所述最大一級差值、以及所述各個二級差值,獲得數(shù)值不同的一級差值;
[0026]第二獲取模塊,用于根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個相鄰深度值的一級差值的索引編號,獲得各個相鄰深度值的一級差值;
[0027]第三獲取模塊,用于根據(jù)所述最大深度值和所述最小深度值中的至少一個、以及所述各個相鄰深度值之間的一級差值,獲得深度索引表中各個深度值。
[0028]本發(fā)明實施例提供的編碼方法、解碼方法以及裝置,將深度值索引表進(jìn)行了壓縮,使得無需傳輸深度值索引表,只需編碼最大深度值和最小深度值中的至少一個、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值的索引編號即可,且由于深度圖中深度值的數(shù)值梯度比較小,因此一級差值比較相近,一級差值的索引編號會比較小,二級差值的個數(shù)也會比較少,因此使得可以采用較小的第二位寬編碼二級差值以及一級差值的索引編號,使得大大減少了編碼占用的比特數(shù)據(jù),因此減少了編碼占用的資源。
【附圖說明】
[0029]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡單地介紹,顯而易見地,下面描述中的附圖是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0030]圖1為本發(fā)明實施例提供的一種深度信息編碼方法一個實施例的流程圖;
[0031]圖2為本發(fā)明實施例提供的一種深度信息解碼方法一個實施例的流程圖;
[0032]圖3為本發(fā)明實施例提供的一種深度信息編碼方法又一個實施例的流程圖;
[0033]圖4為本發(fā)明實施例提供的一種深度信息編碼方法又一個實施例的流程圖;
[0034]圖5為本發(fā)明實施例提供的一種深度信息解碼方法又一個實施例的流程圖;
[0035]圖6為本發(fā)明實施例提供的一種深度信息解碼方法又一個實施例的流程圖;
[0036]圖7為本發(fā)明實施例提供的一種深度信息編碼方法又一個實施例的流程圖;
[0037]圖8為本發(fā)明實施例提供的一種深度信息編碼裝置一個實施例的結(jié)構(gòu)示意圖;
[0038]圖9為本發(fā)明實施例提供的一種深度信息編碼裝置又一個實施例的結(jié)構(gòu)示意圖;
[0039]圖10為本發(fā)明實施例提供的一種深度信息編碼裝置又一個實施例的結(jié)構(gòu)示意圖;
[0040]圖11為本發(fā)明實施例提供的一種深度信息編碼裝置又一個實施例的結(jié)構(gòu)示意圖;
[0041]圖12為本發(fā)明實施例提供的一種深度信息解碼裝置一個實施例的結(jié)構(gòu)示意圖;
[0042]圖13為本發(fā)明實施例提供的一種深度信息解碼裝置又一個實施例的結(jié)構(gòu)示意圖;
[0043]圖14為本發(fā)明實施例提供的一種深度信息解碼裝置又一個實施例的結(jié)構(gòu)示意圖;
[0044]圖15為本發(fā)明實施例提供的一種深度信息解碼裝置又一個實施例的結(jié)構(gòu)示意圖。
【具體實施方式】
[0045]為使本發(fā)明實施例的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0046]圖1為本發(fā)明實施例提供的一種深度信息編碼方法一個實施例的流程圖,該方法可以包括以下幾個步驟:
[0047]101:獲取深度值索引表。
[0048]其中,所述深度值索引表中的深度值按照第一順序排列。
[0049]本發(fā)明實施例中,深度值索引表是針對三維視頻的視頻圖像建立的,用于存儲視頻圖像中的深度值。通過視頻編碼以及解碼,實現(xiàn)了深度值的傳輸。
[0050]深度值索引表中存儲了數(shù)值不同,且按第一順序排列的深度值。深度值索引表的建立與現(xiàn)有技術(shù)相同,通過遍歷視頻圖像中的深度值,獲得數(shù)值不同,按照第一順序排列的深度值。
[0051]102:計算所述深度值索引表中相鄰深度值的差值,作為一級差值。
[0052]103:選擇數(shù)值不同的一級差值按照第二順序排列,并計算所述排列順序中相鄰一級差值的差值,作為二級差值。
[0053]其中,相鄰深度值的一級差值可能包括數(shù)值相同的差值,本發(fā)明實施例中,對于數(shù)值相同的一級差值,只取其中I個用于排序,將數(shù)值不同的一級差值按照第二順序進(jìn)行排列。
[0054]104:將所述數(shù)值不同的一級差值按照所述第二順序依次設(shè)置索引編號。遍歷步驟102中得到的各個相鄰深度值的一級差值,為每一個一級差值確定對應(yīng)的索引編號。
[0055]其中,各個相鄰深度值的一級差值中,數(shù)值相同的一級差值的索引編號相同。
[0056]本實施例中,第一順序、第二順序可以相同,也可以不同,可是數(shù)值從小到大的升序順序,或者數(shù)值從大到小的降序順序?!暗谝弧?、“第二”、僅是為了從描述上區(qū)分深度值以及一級差值的排列順序。
[0057]在進(jìn)行解碼時,即會解碼得到按照第二順序排列的一級差值,以及按照第一順序排列的深度值。
[0058]其中,不同索引編號用于索引數(shù)值不同的一級差值。
[0059]設(shè)置索引編號的具體過程可以是將按照所述第二順序排列的數(shù)值不同的每一個一級差值設(shè)置索引編號;
[0060]按照索引編號對應(yīng)的一級差值的數(shù)值,遍歷計算得到的各個相鄰深度值的一級差值,確定每一個相鄰深度值的一級差值對應(yīng)的索引編號。
[0061 ] 例如,數(shù)值不同一級差值包括5和6,按照從小到大的順序排列,則可以設(shè)置5對應(yīng)索引編號0、6對應(yīng)索引編號為I。若相鄰深度值的一級差值包括5、6、5、5、6、6、5 ;而索引編號O對應(yīng)的數(shù)值為5,索引編號I對應(yīng)的數(shù)值為6,則每一個一級差值對應(yīng)的索引編號即為:
0、1、0、0、1、1、0ο
[0062]105:將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬、各個相鄰一級差值的二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼,寫入碼流中。
[0063]其中,所述第二位寬小于所述第一位寬。
[0064]其中,為了降低編碼的數(shù)值數(shù)目,可以是選擇最大深度值和最小深度值中的任一個進(jìn)行編碼寫入碼流。為了減少編碼占用的比特數(shù)目,優(yōu)選的,可以選擇最小深度值進(jìn)行編碼。
[0065]現(xiàn)有技術(shù)中,編碼深度值索引表中各個深度值的索引編號,深度值個數(shù)較多時,索引編號也會很大,因此至少需要采用8位位寬進(jìn)行編碼,導(dǎo)致占用的資源較多。
[0066]而本發(fā)明實施例中,第一位寬可以是指8位位寬,最大深度值、最小深度值、最大一級差值可以按照該第一位寬進(jìn)行編碼。
[0067]由于在深度值索引表中,如果按照深度值從小到大的順序排列,相鄰深度值之間的差值非常小,且深度值幾乎成線性排列,因此相鄰深度值之間的一級差值中,數(shù)值不同的一級差值的個數(shù)會比較少,因此一級差值的最大索引編號也會比較小。
[0068]且相鄰深度值之間的一級差值可以看作一個近似值,進(jìn)而數(shù)值不同的一級差值按照第二順序排列之后,相鄰的一級差值的二級差值的數(shù)值會比較小。
[0069]由于各個二級差值的數(shù)值較小,一級差值的索引編碼也會比較小,因此,可以采用較小的第二位寬編碼各個二級差值一級各個相鄰深度值的一級差值的索引編號。使得可以占用較小的比特數(shù)目,減少了編碼占用的資源。
[0070]且本發(fā)明實施例中,并未將深度值索引表寫入碼流中,而是將深度值索引表進(jìn)行了壓縮,使得無需編碼深度值索引表,解碼端也可以得到深度值索引表中的深度值,進(jìn)一步減少了編碼占用的資源。
[0071]其中,根據(jù)第一順序以及第二順序的不同,最大深度值可以是按照第一順序排列的深度值中的第一個深度值或最后一個深度值,最小深度值也即是指按照第一順序排列的深度值中的最后一個深度值或第一個深度值。第一順序為從小到大時,最大深度值即是指最后一個深度值,最小深度值即是指第一個深度值;第一順序為從大到小時,最大深度值即是指第一個深度值,最小深度值即是指最后一個深度值。
[0072]最大一級差值可以是按照第二順序排列的一級差值中的第一個一級差值或最后一個一級差值,第二順序為從小到大時,即是指最后一個一級差值,第二順序為從大到小時,即是指第一個一級差值。
[0073]在實際編碼時,無需識別深度值、一級差值以及二級差值的具體數(shù)值,只需從按照第一順序排列的深度值中,選擇第一個深度值和最后一個深度值中的至少一個;從按照第二順序排列的一級差值中,選擇第一個或最后一個一級差值進(jìn)行編碼即可。
[0074]為了進(jìn)一步減少編碼占用的資源,第一順序以及第二順序可以優(yōu)選的為從小到大的升序順序,在寫入碼流中,具體編碼的可以是最小深度值,也即按照第一順序排列的深度值中的第一個深度值。
[0075]其中,為了方便編碼,且盡可能減少編碼占用的比特數(shù)目,一級差值的索引編號可以米用0、1、2、3......進(jìn)彳丁表不。
[0076]當(dāng)然,本發(fā)明并不對此進(jìn)行限定,還可以按照編碼端以及解碼端約定的索引規(guī)則確定索引編號。
[0077]需要說明的是,最大深度值、最小深度值、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值的索引編號的編碼時機(jī)可以相同,也可以在每一個數(shù)值確定之后即進(jìn)行編碼,本發(fā)明并不對此進(jìn)行限制。
[0078]還需要說明的是,最大深度值、最小深度值、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值的索引編號的編碼次序也可以不進(jìn)行限定,按照解碼端與編碼端的預(yù)先約定的編碼次序即可。
[0079]其中,為了方便解碼時,可以獲得第一位寬以及第二位寬,在將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中的同時,還可以:
[0080]將所述第一位寬的位寬值以及所述第二位寬的位寬值進(jìn)行編碼,寫入所述碼流中。
[0081]當(dāng)然第一位寬以及第二位寬不一定在其他數(shù)值編碼完成之后進(jìn)行編碼。
[0082]其中第一位寬的位寬值以及第二位寬的位寬值可以按照所述第一位寬進(jìn)行編碼。編碼次序可以為:第一位寬、最大深度值和最小深度值中的至少一個、最大一級差值、第二位寬、各個二級差值、各個相鄰深度值的一級差值的索引編號。從而可以優(yōu)先解碼出第一位寬,進(jìn)而按照該第一位寬解碼最大深度值和最小深度值中的至少一個、最大一級差值、第二位寬;按照解碼得到的第二位寬,解碼得到各個二級差值、各個相鄰深度值的一級差值的索引編號。
[0083]與圖1所示實施例的深度信息編碼方法相對應(yīng),參見圖2,為本發(fā)明實施例提供的一種深度信息解碼方法一個實施例的流程圖,該方法可以包括以下幾個步驟:
[0084]201:將碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號。
[0085]202:根據(jù)所述最大一級差值、以及所述各個二級差值,獲得數(shù)值不同的一級差值。
[0086]將最大一級差值與各個二級差值迭代相減,即可以得到各個數(shù)值不同的一級差值。
[0087]計算得到的數(shù)值不同的一級差值即按照第二順序排列。
[0088]203:根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個一級差值的索引編號,獲得相鄰深度值之間的一級差值。
[0089]數(shù)值不同的一級差值確定之后,將其按照第二順序排列,即可以獲得數(shù)值不同的一級差值對應(yīng)的索引編號,也即確定了每一個索引編號對應(yīng)的一級差值的數(shù)值。
[0090]而根據(jù)各個一級差值的索引編號,以及索引編號對應(yīng)的一級數(shù)值的數(shù)值,即可以得到各個相鄰深度值的一級差值。
[0091]具體的,可以是按照所述第二順序確定按照第二順序排列的所述數(shù)值不同的一級差值的索引編號;根據(jù)不同索引編號對應(yīng)的一級差值的數(shù)值,以及解碼獲得的各個相鄰深度值的一級差值的索引編號,即可以獲得各個相鄰深度值的一級差值的索引編號對應(yīng)的一級差值。
[0092]例如,按照第二順序排列的數(shù)值不同的一級差值依次為3、4。則可以確定3對應(yīng)索引編號即為0、4對應(yīng)的索引編號即為I。
[0093]若得到的各個一級差值的索引編號為0011001,則可以確定出一級差值為:3、3、
4、4、3、3、4。
[0094]204:根據(jù)所述最大深度值和最小深度值中至少一個、以及所述各個相鄰深度值之間的一級差值,獲得深度索引表中各個深度值。
[0095]若解碼得到的為最大深度值,則可以將最大深度值與各個相鄰深度值之間的一級差值迭代相減,即可以得到各個深度值。
[0096]若解碼得到的為最小深度值,則可以將最小深度值與各個相鄰深度值之間的一級差值迭代相加,即可以得到各個深度值。
[0097]其中,所述碼流即是按照圖1對應(yīng)的實施例將深度信息編碼得到的。
[0098]為了方便理解,下面舉一個例子對本發(fā)明實施例的編碼方式進(jìn)行詳細(xì)說明。
[0099]假設(shè)深度值索引表中按照第一順序,以從小到大的升序順序為例,排列的深度值為 0,4,7,11,15,18,22,26,29,33,36。
[0100]需要說明的,為了方便描述,此處只是截取了深度值索引表中的部分?jǐn)?shù)值,在實際應(yīng)用中,深度值個數(shù)并不僅限于此。
[0101]計算相鄰深度值之間的一級差值分別為:4,3,4,4,3,4,4,3,4,3??芍瑪?shù)值不同的一級差值只有3和4。
[0102]將數(shù)值不同的一級差值按照第二順序,以從小到大的升序順序排列為例,得到的排列順序為:3、4。
[0103]計算排列順序中相鄰一級差值的二級差值,即為I。
[0104]將所述數(shù)值不同的一級差值按照所述第二排列順序依次設(shè)置索引編號,并遍歷所述相鄰深度值的一級差值,根據(jù)數(shù)值不同的一級差值設(shè)置的索引編號,確定每一個一級差值對應(yīng)的索引編號。數(shù)值相同的一級差值的索引編號相同。
[0105]其中,不同索引編號用于區(qū)分?jǐn)?shù)值不同的一級差值,為減少占用的比特位,可以以阿拉伯?dāng)?shù)字進(jìn)行編號,假設(shè)設(shè)置一級差值3對應(yīng)的索引編號為0,一級差值4對應(yīng)的索引編號為I。此時,遍歷相鄰深度值的一級差值,各個一級差值的索引編號依次為:1、0、1、1、0、
1、1、0、1、0。
[0106]將最小深度值O、最大一級差值4按照第一位寬進(jìn)行編碼,各個二級差值I以及各個相鄰深度值的一級差值的索引編號1、0、1、1、0、1、1、0、1、0按照第二位寬進(jìn)行編碼,分別寫入碼流中。
[0107]其中,由于在不同情況下,按照第一順序排列的深度值中,最小深度值以及最大一級差值的數(shù)值可能會不一樣,為了適應(yīng)全部情況,第一位寬具體可以選擇8位位寬。
[0108]第二位寬的確定方式可以有多種,在下面實施例中會詳細(xì)進(jìn)行介紹,由于最大一級差值已經(jīng)進(jìn)行編碼,可以獲得最大一級差值的具體數(shù)值,第二位寬可以最大選擇最大一級差值占用的位寬,此處假設(shè)第二位寬為4位。
[0109]假設(shè)編碼次序為:最小深度值、最大一級差值、各個二級差值、各個相鄰深度值的一級差值的索引編號。因此得到的碼流為:00000000 00000100 0001 0001 0000 00010001 0000 0001 0001 0000 0001 OOOOo
[0110]在對該碼流進(jìn)行解碼時,可以包括:
[0111]將碼流進(jìn)行解碼,按照第一位寬可以解碼獲得最小深度值、最大一級差值;按照第二位寬可以解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號,因此解碼得到的數(shù)值依次為0,4,1,1,0,1,1,0,1,1,0,1,0。
[0112]根據(jù)最大一級差值4、以及所述二級差值1,可以計算得到其他一級差值3,即將最大一級差值減去二級差值,即可以得到其他一級差值3。
[0113]根據(jù)按照第二順序排序的一級差值3、4,可以確定3對應(yīng)的索引編號為0,4對應(yīng)的索引編號為I。從而根據(jù)各個相鄰深度值的一級差值的索引編號1、0、1、1、0、1、1、0、1、0,獲得相鄰深度值之間的一級差值為:4、3、4、4、3、4、4、3、4、3。
[0114]根據(jù)最小深度值0、以及各個相鄰深度值之間的一級差值,依次迭代相加,即可以計算獲得深度索引表中各個深度值:0、4、7、11、15、18、22、26、29、33、36。
[0115]通過本發(fā)明實施例,實現(xiàn)了深度信息的編碼以及解碼,編碼數(shù)值減少,可以占用較小的位寬資源,且無需編碼深度值索引表,進(jìn)一步的減少了資源的占用。
[0116]作為又一個實施例,如圖3所示提供的深度信息編碼方法中,與圖1所示實施例不同之處在于,步驟105中將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中,可以包括以下幾個步驟:
[0117]301:將最大深度值和最小深度值中的至少一個,按照第一位寬進(jìn)行編碼,寫入碼流中。
[0118]302:將最大一級差值按照所述第一位寬進(jìn)行編碼,寫入碼流中。
[0119]303:計算所述最大一級差值的位寬,作為第二位寬。
[0120]304:將各個相鄰一級差值的二級差值以及各個相鄰深度值的一級差值的索引編號分別按照所述第二位寬進(jìn)行編碼,寫入所述碼流中。
[0121]其中,第一位寬具體可以為8位,以滿足不同數(shù)值大小的深度值和最大一級差值的要求。
[0122]在進(jìn)行編碼時,為了減少編碼占用的比特,可以選擇最小深度值進(jìn)行編碼,也即先將最小深度值、以及最大一級差值按照第一位寬進(jìn)行編碼。
[0123]將最大一級差值進(jìn)行編碼之后,即可以獲得該最大一級差值的數(shù)值,進(jìn)而可以計算最大一級差值占用的有效位寬,作為第二位寬。
[0124]由于且一級差值之間的數(shù)值非常近似,二級差值的數(shù)值會比較小,數(shù)值不同的一級差值個數(shù)比較小,因此一級差值的索引編號數(shù)值也會比較小。
[0125]因此根據(jù)最大一級差值自身占用的有效位寬,得到的第二位寬可以滿足后續(xù)數(shù)值的編碼需求。且由于最大一級差值的數(shù)值也比較小,因此得到的第二位寬也將小于第一位寬。
[0126]各個相鄰一級差值的二級差值以及各個相鄰深度值的一級差值的索引編號即可以按照該第二位寬進(jìn)行編碼,從而可以進(jìn)一步減少編碼占用的位寬,節(jié)省了編碼占用的資源。
[0127]其中,計算所述最大一級差值的位寬,作為第二位寬可以下述公式計算得到:
[0128]W2= log 2max+l ;
[0129]其中,max表示最大一級差值。第二位寬^也即為最大一級差值的位寬。
[0130]比如最大一級差值為4時,則計算得到的第一位寬W2= log 24+1 = 3。
[0131]另外,在進(jìn)行編碼時,還可以將最小一級差值進(jìn)行編碼,從而在解碼時,可以利用最小一級差值以及各個二級差值,迭代相加,得到其他的一級差值。
[0132]該最小一級差值可以按照第三位寬進(jìn)行編碼,其中第三位寬小于第一位寬,從而可以減少編碼占用的位寬。
[0133]第三位寬可以與第二位寬相同,優(yōu)選地,第二位寬可以小于該第三位寬。
[0134]作為又一個實施例,如圖4所示提供的深度信息編碼方法中,提供了另一種第二位寬的確定方式。與圖1所示實施例不同之處在于,步驟105中將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中可以包括以下幾個步驟:
[0135]401:將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬進(jìn)行編碼,寫入碼流中。
[0136]402:計算所述最大一級差值的位寬,作為第三位寬。
[0137]403:將最小一級差值按照第二位寬進(jìn)彳丁編碼,與入碼流中。
[0138]404:計算最大一級差值和最小一級差值相減得到的差值的位寬,獲得第二位寬。
[0139]405:將各個二級差值以及各個一級差值的索引編號按照第二位寬進(jìn)行編碼,寫入所述碼流中。
[0140]本實施例中,計算最大一級差值的位寬,也即占用的有效位寬,作為第三位寬,并利用第二位寬對最小一級差值進(jìn)行編碼,與入碼流中。
[0141]然后利用最大一級差值和最小一級差值相減得到的差值的位寬,也即占用的有效位寬,作為第二位寬,從而使得第二位寬小于第三位寬,進(jìn)一步的使得二級差值以及一級差值的索引編號編碼占用的比特數(shù)目減少,進(jìn)一步的減少了資源的占用。
[0142]第三位寬可以按照下述公式計算得到:
[0143]W3= log 2max+l ;
[0144]其中,max表示最大一級差值。第三位寬^也即為最大一級差值的位寬。
[0145]第二位寬可以按照下述公式計算得到:
[0146]W3= log 2 (max-min) +1 ;
[0147]其中,min表示最小一級差值。
[0148]例如,最大一級差值為4,最小一級差值為3,則第二位寬W3= log 2 (4-3) +1 = I。
[0149]從而二級差值以及各個索引編號即可以采用一位位寬進(jìn)行編碼。仍以上述例子為例,最大一級差值為4,最小一級差值為3,二級差值為I,索引編號為1、0、1、1、0、1、1、0、1、0,一位位寬即可以滿足二級差值和一級差值的索引編號的編碼,進(jìn)一步的降低了編碼占用的資源。
[0150]其中,為了避免解碼時,一直解碼導(dǎo)致死循環(huán),在進(jìn)行編碼時,在碼流中可以加入相應(yīng)的標(biāo)志位,或者提示信息,以方便解碼時確定解碼數(shù)值的個數(shù)或者解碼完成。
[0151]作為一種可能的實現(xiàn)方式,可以在深度信息編碼時,統(tǒng)計深度值索引表中的深度值個數(shù),以及按照第二順序排列的數(shù)值不同的一級差值的個數(shù)。可以將深度值個數(shù)以及數(shù)值不同的一級差值的個數(shù)進(jìn)行編碼,寫入碼流中。
[0152]從而在解碼時可以按照解碼得到深度值個數(shù)以及數(shù)值不同的一級差值個數(shù),解碼出對應(yīng)數(shù)量的深度值以及數(shù)值不同的一級差值。
[0153]寫入碼流中各個數(shù)值可以按照預(yù)設(shè)的編碼次序進(jìn)行編碼,該預(yù)設(shè)的編碼次序編碼端以及解碼端均已知。
[0154]該預(yù)設(shè)的編碼次序可以是:深度值個數(shù)、最大深度值和最小深度值的至少一個、最大一級差值、數(shù)值不同的一級差值個數(shù)、最小一級差值、各個相鄰一級差值之間的二級差值以及各個相鄰深度值的一級差值的索引編號。從而在解碼時,可以依次得到按照該預(yù)設(shè)的編碼次序排列的各個數(shù)值。
[0155]其中,該深度值個數(shù)具體是按照第一位寬進(jìn)行編碼,數(shù)值不同的一級差值個數(shù)按照第二位寬進(jìn)行編碼。
[0156]與圖3所示實施例的深度信息編碼方法相對應(yīng),在碼流中最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬編碼;各個相鄰一級差值的二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬編碼時,參見圖5提供的深度信息解碼方法又一個實施例中,與圖2提供的實施例不同之處在于,步驟201將碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號可以進(jìn)一步包括以下幾個步驟:
[0157]501:按照第一位寬,解碼獲得碼流中的最大深度值和最小深度值的至少一個以及最大一級差值。
[0158]502:計算所述最大一級差值的位寬,作為第二位寬。
[0159]503:按照所述第二位寬,解碼獲得所述碼流中的各個二級差值以及各個相鄰深度值的一級差值的索引編號。
[0160]與圖4所示實施例的深度信息編碼方法相對應(yīng),當(dāng)碼流中最大深度值和最小深度值的至少一個、以及最大一級差值按照第一位寬編碼時;最小一級差值按照第三位寬編碼各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬編碼時,參見圖6提供的深度信息解碼方法又一個實施例中與圖2提供的實施例不同之處在于,步驟201將碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號可以進(jìn)一步包括以下幾個步驟:
[0161]601:按照第一位寬,解碼獲得碼流中的最大深度值和最小深度值中的至少一個、以及最大一級差值。
[0162]602:計算所述最大一級差值的位寬,作為第三位寬。
[0163]603:按照所述第三位寬解碼獲得所述碼流中的最小一級差值。
[0164]604:計算最大一級差值和最小一級差值相減得到的差值的位寬,作為第二位寬。
[0165]605:按照所述第三位寬解碼獲得所述碼流中的各個二級差值以及各個相鄰深度值的一級差值的索引編號。
[0166]作為又一個實施例,當(dāng)編碼時將第一位寬、第二位寬以及第三位寬進(jìn)行編碼,寫入碼流中時,則可以根據(jù)解碼得到的第一位寬、第二位寬以及第三位寬分別進(jìn)行編碼。此時碼流中寫入到各個數(shù)值可以按照預(yù)設(shè)編碼次序依次進(jìn)行編碼寫入,從而解碼時,可以根據(jù)預(yù)設(shè)編碼次序獲知各個數(shù)值的類型,類型即是指深度值、一級差值、二級差值、索引編號或者位寬等。
[0167]其中,在進(jìn)行深度信息編碼時,寫入碼流中的還包括按照第一位寬編碼的深度值個數(shù)以及數(shù)值不同的一級差值個數(shù)時,則對碼流進(jìn)行解碼時,還可以解碼獲得深度值個數(shù)以及數(shù)值不同的一級差值個數(shù)。
[0168]則步驟202中根據(jù)所述最大一級差值、以及各個二級差值,獲得數(shù)值不同的一級差值可以包括:
[0169]根據(jù)最大一級差值、以及各個二級差值,獲得所述數(shù)值不同的一級差值個數(shù)的一級差值。
[0170]步驟204中,根據(jù)所述最大深度值和最小深度值的至少一個、以及各個相鄰深度值的一級差值,獲得深度索引表中各個深度值可以進(jìn)一步包括:
[0171]根據(jù)最大深度值和/或最小深度值,以及所述各個相鄰深度值的一級差值,獲得所述深度值個數(shù)的深度值。
[0172]為了方便理解,仍以上述例子為例,來詳細(xì)描述本發(fā)明實施例的技術(shù)方案,深度值索引表中按照從小到大的升序順序排列的深度值依次為0,4,7,11,15,18,22,26,29,33,36 ο
[0173]統(tǒng)計深度值個數(shù)為11。
[0174]相鄰深度值之間的一級差值分別為:4,3,4,4,3,4,4,3,4,3。
[0175]可知,數(shù)值不同的一級差值只有3和4。
[0176]統(tǒng)計數(shù)值不同的一級差值個數(shù)為2。
[0177]將數(shù)值不同的一級差值按照第二順序,以從小到大的升序順序排列為例,得到的排列順序為:3、4。
[0178]計算排列順序中相鄰一級差值的二級差值,即為I。
[0179]遍歷所述相鄰深度值的一級差值,確定每一個一級差值的索引編號,其中,不同索引編號用于區(qū)分?jǐn)?shù)值不同的一級差值,為減少占用的比特位,可以以阿拉伯?dāng)?shù)字進(jìn)行編號,假設(shè)一級差值3對應(yīng)的索引編號為0,一級差值4對應(yīng)的索引編號為I。此時,遍歷相鄰深度值的一級差值,各個一級差值的索引編號依次為:1、0、1、1、0、1、1、0、1、0。
[0180]將深度值個數(shù)49、第一順序中的第一個深度值也即最小深度值O以及第二順序中的最后一個一級差值也即最大一級差值4、按照第一位寬進(jìn)行編碼,得到0011000100000000 00000100,其中第一位寬為8位。
[0181]根據(jù)最大一級差值4的位寬,更新得到第三位寬為:3。
[0182]將數(shù)值不同的一級差值個數(shù)2、最小一級差值3,按照第一位寬進(jìn)行編碼得到:010,011。
[0183]根據(jù)最大一級差值4和最小一級差值3的差值I位寬,更新得到第二位寬為:1。
[0184]將二級差值I以及各個以及差值的索引編號1、0、1、1、0、1、1、0、1、0按照第二位寬進(jìn)行編碼,得到:11011011010。
[0185]則最終得到碼流即為:0011000100000000 00000100 010011 110 11011010。
[0186]該碼流在進(jìn)行解碼時,可以包括:
[0187]按照第一位寬從碼流中解碼出深度值個數(shù)49、最小深度值O以及最大一級差值4 ;
[0188]根據(jù)最大一級差值4的位寬,計算得到第一位寬為3:
[0189]按照第一位寬解碼出數(shù)值不同的一級差值個數(shù)2以及最小一級差值3 ;
[0190]根據(jù)最大一級差值4和最小一級差值3的差值I的位寬,計算得到第二位寬為:1。
[0191]按照所述第二位寬解碼出二級差值I以及索引編號1、0、1、1、0、1、1、0、1、0。
[0192]根據(jù)最小一級差值3、一級差值個數(shù)2以及二級差值1,得到按照第二順序排列的數(shù)值不同的一級差值為3和4 ;此處,由于一級差值只有兩個,且最大一級差值以及最小一級差值已經(jīng)解碼得出,因此在該例中,該步驟可以省略;
[0193]根據(jù)一級差值3和4,可以確定得到一級差值3對應(yīng)的索引編號為0、一級差值4對應(yīng)的索引編號為I ;
[0194]根據(jù)索引編號1、0、1、1、0、1、1、0、1、0,可以得到各個相鄰深度值之間的一級差值,即:4,3,4,4,3,4,4,3,4,3 ;
[0195]利用最小深度值0,以及各個相鄰深度值之間的一級差值,既可以迭代相加,計算得到深度值索引表中的深度值,依次為:0,4,7,11,15,18,22,26,29,33,36。
[0196]另外,當(dāng)數(shù)值不同的二級差值的個數(shù)也可能較多時,編碼的數(shù)值也會較多,因此為了進(jìn)一步的減少編碼占用的資源,如圖7所示,提供了本發(fā)明實施例深度信息編碼方法的又一個實施例,該方法可以包括以下幾個步驟:
[0197]701:獲取深度值索引表。
[0198]其中,所述深度值索引表中的深度值按照第一順序排列。
[0199]702:計算所述深度值索引表中相鄰深度值的差值,作為一級差值。
[0200]703:選擇數(shù)值不同的一級差值按照第二順序排列,并計算所述排列順序中相鄰一級差值的差值,作為二級差值。
[0201]704:將所述數(shù)值不同的一級差值按照所述第二順序排列依次設(shè)置索引編號,并根據(jù)所述數(shù)值不同的一級差值的索引編號,遍歷各個相鄰深度值的一級差值,確定每一相鄰深度值的一級差值對應(yīng)的索引編號。
[0202]705:判斷所述二級差值的個數(shù)是否小于一級差值個數(shù)的二分之一,如果是,執(zhí)行步驟706 ;如果否,執(zhí)行步驟707。
[0203]706:將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中。
[0204]其中,所述第二位寬小于所述第一位寬。
[0205]具體的編碼方式與上述實施例中相似,再次不再贅述。
[0206]707:選擇數(shù)值不同的二級差值按照第三順序排列,并計算所述排列順序中相鄰二級差值的差值,作為三級差值;所述第三順序為數(shù)值從小到大或者從大到小。
[0207]需要說明的是,第一順序、第二順序、第三順序可以相同,也可以不同,可以是數(shù)值從小到大的升序順序,或者數(shù)值從大到小的降序順序?!暗谝弧?、“第二”、“第三”僅是為了從描述上區(qū)分深度值以及一級差值的排列順序。
[0208]708:將所述數(shù)值不同的二級差值按照所述第三順序排列依次設(shè)置索引編號,并根據(jù)所述數(shù)值不同的二級差值的索引編號,遍歷相鄰一級差值的二級差值,確定每一個相鄰一級差值的二級差值對應(yīng)的索引編號。
[0209]709:將最大深度值和最小深度值至少一個以及最大一級差值按照第一位寬、各個相鄰深度值的一級差值的索引編號以及最大二級差值按照第二位寬、各個二級差值的索引編號以及各個三級差值按照第四位寬,分別進(jìn)行編碼寫入碼流中。
[0210]其中,還可以編碼最小一級差值以及最小二級差值。
[0211]最小一級差值按照第三位寬進(jìn)行編碼,該第三位寬可以是最大一級差值的位寬,即其占用的有效位寬。
[0212]第二位寬為最大一級差值和最小一級差值相減得到的差值的位寬。
[0213]最小二級差值可以按照第五位寬進(jìn)行編碼,該第五位寬可以是最大二級差值的位寬。
[0214]第四位寬為最大二級差值和最小二級差值相減得到的差值的位寬。
[0215]為了避免解碼時的死循環(huán),在碼流中還可以按照第一位寬編碼深度值個數(shù)、一級差值個數(shù)以及二級差值的個數(shù),從而解碼出對應(yīng)個數(shù)的值。
[0216]其中,如果三級差值的個數(shù)大于等于二級差值個數(shù)的二分之一,則還可以將數(shù)值不同的三級差值按照第第四順序排列,并計算所述排列順序中相鄰三級差值的差值,作為四級差值;所述第四順序為數(shù)值從小到大或者從大到小。然后將數(shù)值不同的三級差值按照所述第四順序排列依次設(shè)置索引編號,并遍歷相鄰二級差值的三級差值,確定每一相鄰二級差值的三級差值對應(yīng)的索引編號。
[0217]則在進(jìn)行編碼時,具體是將最大深度值和最小深度值中的至少一個、最大一級差值、最大二級差值、最大三級差值,各個一級差值的索引編號、各個二級差值的索引編號、各個三級差值的索引編碼以及各個相鄰三級差值的四級差值進(jìn)行編碼,寫入碼流中。
[0218]以此類推,若四級差值的個數(shù)大于等于三級差值個數(shù)的二分之一時,可以按照本發(fā)明實施例所述的編碼方式繼續(xù)進(jìn)行編碼,將四級差值類似與二級差值,三級差值類似與一級差值,既可以按照一級差值和二級差值的編碼過程進(jìn)行編碼等。
[0219]當(dāng)然,在步驟702計算所述深度值索引表中相鄰深度值的差值,作為一級差值之后,還可以包括:
[0220]判斷所述一級差值的個數(shù)是否小于深度值索引表中深度值個數(shù)的二分之一;
[0221]如果是,則執(zhí)行步驟703的操作;
[0222]如果否,則將最大深度值和最小深度值中的至少一個、以及各個相鄰深度值之間的一級差值按照第一位寬進(jìn)行編碼,寫入碼流中。
[0223]基于圖7對應(yīng)實施例的深度信息編碼方法,在進(jìn)行具體解碼時:如果碼流中是包括編碼的最大深度值和最小深度值中的至少一個、最大一級差值、各個相鄰一級差值的二級差值以及各個相鄰深度值的一級差值的索引編號時,可以參照上述實施例提供的解碼方法進(jìn)行解碼。
[0224]如果碼流中包括編碼的最大深度值和最小深度值中的至少一個、最大一級差值、最大二級差值、各個一級差值的索引編號、各個二級差值的索引編號以及各個三級差值時,則對應(yīng)解碼過程可以如下所述:
[0225]將碼流進(jìn)行解碼,按照第一位寬解碼獲得獲得最大深度值和最小深度值的至少一個、以及最大一級差值;按照第二位寬解碼獲得最大二級差值、各個一級差值的索引編號、按照第四位寬解碼獲得各個二級差值的索引編號以及所述各個三級差值。
[0226]根據(jù)最大二級差值,以及所述各個三級差值,獲得按照第三順序排列的數(shù)值不同的二級差值;
[0227]根據(jù)各個二級差值的索引編號,以及解碼獲得數(shù)值不同的二級差值,獲得各個相鄰一級差值之間的二級差值;
[0228]根據(jù)最大一級差值、以及解碼計算得到的各個相鄰一級差值之間的二級差值,獲得數(shù)值不同的一級差值;
[0229]根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個一級差值的索引編號,獲得相鄰深度值之間的一級差值;
[0230]根據(jù)所述最大深度值和最小深度值中的至少一個、以及各個所述相鄰深度值之間的一級差值,獲得深度索引表中各個深度值。
[0231]本發(fā)明實施例中,編碼數(shù)值減少,且無需編碼深度值索引表,減少了資源的占用,節(jié)省了更多的比特資源。且在進(jìn)行編碼時對位寬進(jìn)行更新,降低編碼占用的位寬,使得在更大程度上減少了資源的占用。
[0232]圖8為本發(fā)明實施例提供的一種深度信息編碼裝置一個實施例的結(jié)構(gòu)示意圖,該裝置可以包括:
[0233]獲取模塊801,用于獲取深度值索引表;其中,所述深度值索引表中的深度值按照第一順序排列;
[0234]—級計算模塊802,用于計算所述深度值索引表中相鄰深度值的差值,作為一級差值;
[0235]二級計算模塊803,用于選擇數(shù)值不同的一級差值按照第二順序排列,并計算所述排列順序中相鄰一級差值的差值,作為二級差值;
[0236]第一順序、第二順序可以相同,也可以不同,可以是數(shù)值從小到大的升序順序,或者數(shù)值從大到小的降序順序?!暗谝弧?、“第二”、僅是為了從描述上區(qū)分深度值以及一級差值的排列順序。
[0237]第一索引模塊804,用于將所述數(shù)值不同的一級差值按照所述第二順序排列依次設(shè)置索引編號,并遍歷各個相鄰深度值的一級差值,根據(jù)所述數(shù)值不同的一級差值設(shè)置的索引編號,確定每一個相鄰深度值的一級差值對應(yīng)的索引編號;
[0238]第一編碼模塊805,用于將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中,其中,所述第二位寬小于所述第一位寬。
[0239]本發(fā)明實施例中,并未將深度值索引表寫入碼流中,而是將深度值索引表中相鄰的深度值相減,為了方便描述上的區(qū)分,將相鄰深度值相減得到的差值,命名為一級差值。然后將數(shù)值不同的一級差值按照第二順序排列,將相鄰的一級差值相減,得到的差值命名為二級差值。在進(jìn)行編碼時。按照第一位寬編碼最大深度值和/或者最小深度值,最大一級差值,按照第二位寬編碼各個二級差值以及各個相鄰深度值的一級差值的索引編號。第二位寬小于第一位寬,使得減少了編碼占用的比特數(shù)目,減少了編碼資源的占用,且將深度值索引表進(jìn)行了壓縮,使得無需編碼深度值索引表,解碼端也可以得到深度值索引表中的深度值,進(jìn)一步節(jié)省了編碼占用的資源。
[0240]為了進(jìn)一步減少編碼占用的資源,第一順序以及第二順序可以優(yōu)選的為從小到大的升序順序,在寫入碼流中,具體編碼的可以是最小深度值,也即按照第一順序排列的深度值中的第一個深度值。
[0241]其中,為了方便編碼,且盡可能減少編碼占用的比特數(shù)目,一級差值的索引編號可以米用0、1、2、3......進(jìn)彳丁表不。
[0242]其中,為了方便解碼時,第一編碼模塊805還可以將將所述第一位寬的位寬值以及所述第二位寬的位寬值進(jìn)行編碼,寫入所述碼流中。
[0243]其中第一位寬的位寬值以及第二位寬的位寬值可以按照所述第一位寬進(jìn)行編碼。編碼次序可以為:第一位寬、最大深度值和最小深度值中的至少一個、最大一級差值、第二位寬、各個二級差值、各個相鄰深度值的一級差值的索引編號。從而可以優(yōu)先解碼出第一位寬,進(jìn)而按照該第一位寬解碼最大深度值和最小深度值中的至少一個、最大一級差值、第二位寬;按照解碼得到的第二位寬,解碼得到各個二級差值、各個相鄰深度值的一級差值的索引編號。
[0244]當(dāng)然本發(fā)明的編碼次序并不限定于此。
[0245]作為又一個實施例,如圖9所述,所述第一編碼模塊805可以包括:
[0246]第一編碼單元901,用于將最大深度值和最小深度值中的至少一個按照第一位寬進(jìn)行編碼,寫入碼流中;
[0247]第二編碼單元902,用于將最大一級差值按照所述第一位寬進(jìn)行編碼,寫入碼流中;
[0248]第一位寬更新單元903,用于計算所述最大一級差值的位寬,作為第二位寬;
[0249]第三編碼單元904,用于將各個二級差值以及各個一級差值的索引編號分別按照所述第二位寬進(jìn)行編碼,寫入所述碼流中。
[0250]在進(jìn)行編碼時,為了減少編碼占用的比特,可以選擇最小深度值進(jìn)行編碼,也即先將最小深度值、以及最大一級差值按照第一位寬進(jìn)行編碼。
[0251]將最大一級差值進(jìn)行編碼之后,即可以獲得該最大一級差值的數(shù)值,進(jìn)而可以計算最大一級差值占用的有效位寬,作為第二位寬。
[0252]由于且一級差值之間的數(shù)值非常近似,二級差值的數(shù)值也會比較小,且數(shù)值不同的二級差值的個數(shù)也比較小,索引編號數(shù)值也會比較小。
[0253]因此根據(jù)最大一級差值自身占用的有效位寬,得到的第二位寬可以滿足后續(xù)數(shù)值的編碼需求。且由于最大一級差值的數(shù)值也比較小,因此得到的第二位寬也將小于第一位寬。
[0254]其中,計算所述最大一級差值的位寬,作為第二位寬可以下述公式計算得到:
[0255]W2= log 2max+l ;
[0256]其中,max表示最大一級差值。第二位寬^也即為最大一級差值的位寬。
[0257]另外,第一編碼模塊在進(jìn)行編碼時,還可以將最小一級差值進(jìn)行編碼,從而在解碼時,可以利用最小一級差值以及各個二級差值,迭代相加,得到其他的一級差值。
[0258]該最小一級差值可以按照第三位寬進(jìn)行編碼,其中第三位寬小于第一位寬,從而可以減少編碼占用的位寬。
[0259]第三位寬可以與第二位寬相同,優(yōu)選地,第二位寬可以小于該第三位寬。
[0260]作為又一個實施例,如圖10所示,所述第一編碼模塊805可以包括:
[0261]第一編碼單元1001,用于將最大深度值和最小深度值中的至少一個按照第一位寬進(jìn)行編碼,寫入碼流中;
[0262]第二編碼單元1002,用于將最大一級差值按照所述第一位寬進(jìn)行編碼,寫入碼流中;
[0263]第二位寬更新單元1003,用于計算所述最大一級差值的位寬,作為第三位寬;
[0264]第四編碼單元1004,用于將最小一級差值按照第三位寬進(jìn)行編碼,寫入碼流中;
[0265]第三位寬更新單元1005,用于計算最大一級差值和最小一級差值相減得到的差值的位寬,獲得第二位寬;
[0266]第五編碼單元1006,用于將各個二級差值以及各個一級差值的索引編號按照第二位寬進(jìn)行編碼,寫入所述碼流中。
[0267]第三位寬可以按照下述公式計算得到:
[0268]W3= log 2max+l ;
[0269]其中,max表示最大一級差值。第三位寬^也即為最大一級差值的位寬。
[0270]第二位寬可以按照下述公式計算得到:
[0271]W3= log 2 (max-min) +1 ;
[0272]其中,min表示最小一級差值。
[0273]其中,為了避免解碼時,一直解碼導(dǎo)致死循環(huán),在進(jìn)行編碼時,在碼流中可以加入相應(yīng)的標(biāo)志位,或者提示信息,以方便解碼時確定解碼數(shù)值的個數(shù)或者解碼完成。
[0274]作為一種可能的實現(xiàn)方式,所述第一編碼模塊905還用于將深度值個數(shù)以及數(shù)值不同的一級差值的個數(shù)進(jìn)行編碼,寫入碼流中。
[0275]從而在解碼時可以按照解碼得到深度值個數(shù)以及數(shù)值不同的一級差值個數(shù),解碼出對應(yīng)數(shù)量的深度值以及數(shù)值不同的一級差值。
[0276]第一編碼模塊寫入碼流中各個數(shù)值可以按照預(yù)設(shè)的編碼次序進(jìn)行編碼,該預(yù)設(shè)的編碼次序編碼端以及解碼端均已知。
[0277]該預(yù)設(shè)的編碼次序可以是:深度值個數(shù)、最大深度值和最小深度值的至少一個、最大一級差值、數(shù)值不同的一級差值個數(shù)、最小一級差值、各個相鄰一級差值之間的二級差值以及各個相鄰深度值的一級差值的索引編號。
[0278]另外,當(dāng)數(shù)值不同的二級差值的個數(shù)也可能較多時,編碼的數(shù)值也會較多,因此為了進(jìn)一步的減少編碼占用的資源,作為又一個實施例,如圖11所示,該裝置還可以包括:
[0279]判斷模塊1101,用于判斷數(shù)值不同的二級差值的個數(shù)是否小于數(shù)值不同的一級差值個數(shù)的二分之一;如果是觸發(fā)所述第一編碼模805 ;
[0280]三級計算模塊1102,用于在所述判斷模塊1101結(jié)果是否時,將數(shù)值不同的二級差值按照第三順序排列,并計算所述排列順序中相鄰二級差值的差值,作為三級差值;所述第三順序為數(shù)值從小到大或者從大到小;
[0281]第二索引模塊1103,用于將數(shù)值不同的二級差值按照所述第三順序排列依次設(shè)置索引編號,并遍歷各個相鄰一級差值的二級差值,確定每一相鄰一級差值的二級差值對應(yīng)的索引編號;
[0282]第二編碼模塊1104,用于將將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,將各個相鄰深度值的一級差值的索引編號以及最大二級差值按照第二位寬,各個二級差值的索引編號以及所述三級差值按照第四位寬,分別進(jìn)行編碼,寫入碼流中,其中,所述第四位寬小于所述第二位寬。
[0283]其中,還可以編碼最小一級差值以及最小二級差值。
[0284]最小一級差值按照第二位寬進(jìn)行編碼,該第二位寬可以是最大一級差值的位寬,即其占用的有效位寬。
[0285]第二位寬為最大一級差值和最小一級差值相減得到的差值的位寬。
[0286]最小二級差值可以按照第五位寬進(jìn)行編碼,該第五位寬可以是最大二級差值的位寬。
[0287]第四位寬為最大二級差值和最小二級差值相減得到的差值的位寬。
[0288]為了避免解碼時的死循環(huán),在碼流中還可以編碼深度值個數(shù)、數(shù)值不同的一級差值個數(shù)以及數(shù)值不同的二級差值的個數(shù),從而解碼出對應(yīng)個數(shù)的深度值、數(shù)值不同的一級差值以及數(shù)值不同的二級差值。
[0289]其中,如果三級差值的個數(shù)大于等于二級差值個數(shù)的二分之一,則所述解碼裝置還可以將數(shù)值不同的三級差值按照第第四順序排列,并計算所述排列順序中相鄰三級差值的差值,作為四級差值;所述第四順序為數(shù)值從小到大或者從大到小。然后將數(shù)值不同的三級差值按照所述第四順序排列依次設(shè)置索引編號,并遍歷相鄰二級差值的三級差值,確定每一相鄰二級差值的三級差值對應(yīng)的索引編號。
[0290]則在進(jìn)行編碼時,具體是將最大深度值和最小深度值中的至少一個、最大一級差值、最大二級差值、最大三級差值,各個一級差值的索引編號、各個二級差值的索引編號、各個三級差值的索引編碼以及相鄰三級差值的四級差值進(jìn)行編碼,寫入碼流中。
[0291]以此類推,若四級差值的個數(shù)大于等于三級差值個數(shù)的二分之一時,可以按照本發(fā)明實施例所述的編碼方式繼續(xù)進(jìn)行編碼,將四級差值類似與二級差值,三級差值類似與一級差值,既可以按照一級差值和二級差值的編碼過程進(jìn)行編碼等。
[0292]圖12為本發(fā)明實施例提供的一種深度信息解碼裝置一個實施例的結(jié)構(gòu)示意圖,深度信息碼流中包括最大深度值和最小深度值中的至少一個、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值。深度信息碼流的編碼方式可以參見上述實施例中所述。
[0293]本實施例中,所述裝置可以包括:
[0294]第一解碼模塊1201,用于將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號;
[0295]第一獲取模塊1202,用于根據(jù)所述最大一級差值、以及所述各個二級差值,獲得數(shù)值不同的一級差值;
[0296]第二獲取模塊1203,用于根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個相鄰深度值的一級差值的索引編號,獲得各個相鄰深度值的一級差值;
[0297]第三獲取模塊1204,用于根據(jù)所述最大深度值和所述最小深度值中的至少一個、以及所述各個相鄰深度值之間的一級差值,獲得深度索引表中各個深度值。
[0298]作為又一個實施例,如圖14所示,與圖12所示裝置不同之處,所述第一解碼模塊1201可以包括:
[0299]第一解碼單元1301,用于按照第一位寬,解碼獲得所述碼流中的最大深度值和最小深度值中至少一個、以及最大一級差值;
[0300]第一位寬更新單元1302,用于計算所述最大一級差值的位寬,作為第二位寬;
[0301]第二解碼單元1303,用于按照所述第二位寬,解碼獲得所述碼流中各個二級差值以及各個相鄰深度值的一級差值的索引編號。
[0302]作為又一個實施例,如圖14所示,與圖12所示裝置不同之處在于,所述碼流中還包括按照第三位寬編碼的最小一級差值;所述第一解碼模塊1201還用于按照第三位寬解碼獲得所述最小一級差值。
[0303]具體的,所述第一解碼模塊1201可以包括:
[0304]第一解碼單元1401,用于按照第一位寬,解碼獲得所述碼流中的最大深度值和最小深度值中至少一個、以及最大一級差值;
[0305]第二位寬更新單元1402,計算所述最大一級差值的位寬,作為第三位寬;
[0306]第三解碼單元1403,用于按照所述第三位寬,解碼獲得所述碼流中的最小一級差值;
[0307]第三位寬更新單元1404,用于計算最大一級差值和最小一級差值相減得到的差值的位寬,作為第二位寬;
[0308]第四解碼單元1405,用于按照所述第二位寬,解碼獲得所述碼流中的相鄰一級差值的二級差值以及各個一級差值的索引編號。
[0309]另外,所述碼流中還包括編碼之后的深度值個數(shù)以及數(shù)值不同的一級差值個數(shù)時;作為又一個實施例:
[0310]第一解碼模塊1201還用于解碼獲得深度值個數(shù)以及數(shù)值不同的一級差值個數(shù)。
[0311]從而第一獲取模塊1202可以具體是根據(jù)最大一級差值以及各個二級差值,獲得按照第二順序排列,與所述數(shù)值不同的一級差值個數(shù)相應(yīng)個數(shù)的一級差值。
[0312]第三獲取模塊1204可以具體是根據(jù)所述最大深度值和最小深度值中的至少一個,以及所述各個相鄰深度值的一級差值,依次獲得與所述深度值個數(shù)相應(yīng)個數(shù)的的深度值。
[0313]另外,作為又一個實施例,如果深度信息碼流中包括最大深度值和最小深度值至少一個、最大一級差值、各個相鄰深度值的一級差值的索引編號、最大二級差值、各個二級差值的索引編號以及各個三級差值時。
[0314]如圖15所示,則該解碼裝置還可以包括:
[0315]第二解碼模塊1501,用于將碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值至少一個以及最大一級差值;按照第二位寬解碼獲得各個相鄰深度值的一級差值的索引編號以及最大二級差值;按照第四位寬解碼獲得各個二級差值的索引編號以及各個二級差值。
[0316]第四獲取模塊1502,用于根據(jù)最大二級差值,以及各個三級差值,獲得數(shù)值不同的二級差值;
[0317]第五獲取模塊1503,用于根據(jù)各個二級差值的索引編號,以及解碼獲得的按照第三順序排列的的二級差值,獲得各個相鄰一級差值的二級差值;
[0318]第六獲取模塊1504,用于根據(jù)最大一級差值、以及各個相鄰一級差值的二級差值,獲得數(shù)值不同的一級差值;
[0319]第七獲取模塊1505,用于根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個相鄰深度值的一級差值的索引編號,獲得各個相鄰深度值的一級差值;
[0320]第八獲取模塊1506,用于根據(jù)所述最大深度值和最小深度值中的至少一個、以及所述各個相鄰深度值的一級差值,獲得深度索引表中各個深度值。
[0321]本發(fā)明實施例中,編碼數(shù)值減少,且無需編碼深度值索引表,減少了資源的占用,節(jié)省了更多的比特資源,且在進(jìn)行編碼時對位寬進(jìn)行更新,降低了編碼占用的位寬,使得在更大程度上減少了資源的占用。
[0322]以上所描述的裝置實施例僅僅是示意性的,其中所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個地方,或者也可以分布到多個網(wǎng)絡(luò)單元上。可以根據(jù)實際的需要選擇其中的部分或者全部模塊來實現(xiàn)本實施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動的情況下,即可以理解并實施。
[0323]通過以上的實施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實施方式可借助軟件加必需的通用硬件平臺的方式來實現(xiàn),當(dāng)然也可以通過硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說對現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來,該計算機(jī)軟件產(chǎn)品可以存儲在計算機(jī)可讀存儲介質(zhì)中,如ROM/RAM、磁碟、光盤等,包括若干指令用以使得一臺計算機(jī)設(shè)備(可以是個人計算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行各個實施例或者實施例的某些部分所述的方法。
[0324]最后應(yīng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述實施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實施例技術(shù)方案的精神和范圍。
【主權(quán)項】
1.一種深度信息編碼方法,其特征在于,包括: 獲取深度值索引表;其中,所述深度值索引表中的深度值按照第一順序排列; 計算所述深度值索引表中相鄰深度值的差值,作為一級差值; 選擇數(shù)值不同的一級差值按照第二順序排列,并計算排列順序中相鄰一級差值的差值,作為二級差值; 將所述數(shù)值不同的一級差值按照所述第二順序依次設(shè)置索引編號,并遍歷各個相鄰深度值的一級差值,根據(jù)所述數(shù)值不同的一級差值設(shè)置的索引編號,確定每一個相鄰深度值的一級差值對應(yīng)的索引編號,其中,數(shù)值相同的一級差值的索引編號相同; 將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中,其中,所述第二位寬小于所述第一位寬。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中包括: 將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬進(jìn)行編碼,寫入碼流中; 計算所述最大一級差值的位寬,作為第二位寬; 將各個二級差值以及各個一級差值的索引編號分別按照所述第二位寬進(jìn)行編碼,寫入所述碼流中。3.根據(jù)權(quán)利要求1所述的方法,其特征在于,將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬進(jìn)行編碼,寫入碼流中之后,所述方法還包括: 計算所述最大一級差值的位寬,作為第三位寬; 將最小一級差值按照第二位寬進(jìn)行編碼,與入碼流中; 所述將各個二級差值以及各個一級差值的索引編號按照第二位寬進(jìn)行編碼,寫入所述碼流中包括: 計算最大一級差值和最小一級差值相減得到的差值的位寬,獲得第二位寬; 將各個二級差值以及各個一級差值的索引編號按照第二位寬進(jìn)行編碼,寫入所述碼流中。4.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中的同時,所述方法還包括: 將所述第一位寬的位寬值以及所述第二位寬的位寬值,分別進(jìn)行編碼,寫入所述碼流中。5.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中的同時,所述方法還包括: 將統(tǒng)計得到的深度值索引表中的深度值個數(shù)以及數(shù)值不同的一級差值個數(shù),按照所述第一位寬進(jìn)行編碼,寫入所述碼流中。6.根據(jù)權(quán)利要求1?5所述的方法,其特征在于,所述將所述數(shù)值不同的一級差值按照所述第二順序排列依次設(shè)置索引編號,并遍歷計算得到的相鄰深度值的一級差值,根據(jù)所述數(shù)值不同的一級差值設(shè)置的索引編號,確定每一相鄰深度值的一級差值對應(yīng)的索引編號之后,所述方法還包括: 判斷數(shù)值不同的二級差值的個數(shù)是否小于數(shù)值不同的一級差值個數(shù)的二分之一;如果是,執(zhí)行所述將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中的步驟; 如果否,選擇數(shù)值不同的二級差值按照第三順序排列,并計算所述排列順序中相鄰二級差值的差值,作為三級差值; 將所述數(shù)值不同的二級差值按照所述第三順序依次設(shè)置索引編號,并遍歷各個相鄰一級差值的二級差值,確定每一個相鄰一級差值的二級差值對應(yīng)的索引編號; 將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,將各個相鄰深度值的一級差值的索引編號以及最大二級差值按照第二位寬,各個二級差值的索引編號以及所述三級差值按照第四位寬,分別進(jìn)行編碼,寫入碼流中,其中,所述第四位寬小于所述第二位寬。7.—種基于權(quán)利要求1?6任一項所述深度信息編碼方法的深度信息解碼方法,其特征在于,編碼得到的碼流中包括最大深度值和最小深度值中的至少一個、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值,所述方法包括: 將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號; 根據(jù)所述最大一級差值、以及所述各個二級差值,獲得數(shù)值不同的一級差值; 根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個相鄰深度值的一級差值的索引編號,獲得各個相鄰深度值的一級差值; 根據(jù)所述最大深度值和所述最小深度值中的至少一個、以及所述各個相鄰深度值之間的一級差值,獲得深度索引表中各個深度值。8.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號包括: 按照第一位寬,解碼獲得所述碼流中的最大深度值和最小深度值中至少一個、以及最大一級差值; 計算所述最大一級差值的位寬,作為第二位寬; 按照所述第二位寬,解碼獲得所述碼流中各個二級差值以及各個相鄰深度值的一級差值的索引編號。9.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述碼流中還包括按照第三位寬編碼的最小一級差值; 所述將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值之后,所述方法還包括: 計算所述最大一級差值的位寬,作為第三位寬; 按照所述第三位寬,解碼獲得所述碼流中的最小一級差值; 所述按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號包括: 計算最大一級差值和最小一級差值相減得到的差值的位寬,作為第二位寬; 按照所述第二位寬,解碼獲得所述碼流中的相鄰一級差值的二級差值以及各個一級差值的索引編號。10.根據(jù)權(quán)利要求7所述的方法,其特征在于,所述碼流中還包括按照第一位寬編碼的深度值個數(shù)以及數(shù)值不同的一級差值個數(shù); 所述將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值的同時,所述方法還包括: 按照第一位寬解碼獲得所述深度值個數(shù)以及所述數(shù)值不同的一級差值個數(shù); 所述根據(jù)所述最大一級差值、以及所述各個二級差值,獲得數(shù)值不同的一級差值包括: 根據(jù)所述最大一級差值、以及所述各個二級差值,獲得與所述數(shù)值不同的一級差值個數(shù)相應(yīng)個數(shù)的一級差值; 所述根據(jù)所述最大深度值和所述最小深度值中的至少一個、以及所述各個相鄰深度值之間的一級差值,獲得深度索引表中各個深度值包括: 根據(jù)所述最大深度值和所述最小深度值中的至少一個、以及所述各個相鄰深度值之間的一級差值,獲得與所述深度值個數(shù)相應(yīng)個數(shù)的深度值。11.一種深度信息編碼裝置,其特征在于,包括: 獲取模塊,用于獲取深度值索引表;其中,所述深度值索引表中的深度值按照第一順序排列; 一級計算模塊,用于計算所述深度值索引表中相鄰深度值的差值,作為一級差值; 二級計算模塊,用于選擇數(shù)值不同的一級差值按照第二順序排列,并計算所述排列順序中相鄰一級差值的差值,作為二級差值; 第一索引模塊,用于將所述數(shù)值不同的一級差值按照所述第二順序排列依次設(shè)置索引編號,并遍歷各個相鄰深度值的一級差值,根據(jù)所述數(shù)值不同的一級差值設(shè)置的索引編號,確定每一個相鄰深度值的一級差值對應(yīng)的索引編號,其中,數(shù)值相同的一級差值的索引編號相同; 第一編碼模塊,用于將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,各個二級差值以及各個相鄰深度值的一級差值的索引編號按照第二位寬,分別進(jìn)行編碼寫入碼流中,其中,所述第二位寬小于所述第一位寬。12.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第一編碼模塊包括: 第一編碼單元,用于將最大深度值和最小深度值中的至少一個按照第一位寬進(jìn)行編碼,寫入碼流中; 第二編碼單元,用于將最大一級差值按照所述第一位寬進(jìn)行編碼,寫入碼流中; 第一位寬更新單元,用于計算所述最大一級差值的位寬,作為第二位寬; 第三編碼單元,用于將各個二級差值以及各個一級差值的索引編號分別按照所述第二位寬進(jìn)行編碼,寫入所述碼流中。13.根據(jù)權(quán)利要求10所述的裝置,其特征在于,所述第一編碼模塊包括: 第一編碼單元,用于將最大深度值和最小深度值中的至少一個按照第一位寬進(jìn)行編碼,寫入碼流中; 第二編碼單元,用于將最大一級差值按照所述第一位寬進(jìn)行編碼,寫入碼流中; 第二位寬更新單元,用于計算所述最大一級差值的位寬,作為第三位寬; 第四編碼單元,用于將最小一級差值按照第三位寬進(jìn)行編碼,寫入碼流中; 第三位寬更新單元,用于計算最大一級差值和最小一級差值相減得到的差值的位寬,獲得第二位寬; 第五編碼單元,用于將各個二級差值以及各個一級差值的索引編號按照第二位寬進(jìn)行編碼,寫入所述碼流中。14.根據(jù)權(quán)利要求11所述的裝置,其特征在于,所述第一編碼模塊還用于: 將所述第一位寬的位寬值以及所述第二位寬的位寬值,分別進(jìn)行編碼,寫入所述碼流中。15.根據(jù)權(quán)利要求11所述的裝置,其特征在于,還包括: 判斷模塊,用于判斷數(shù)值不同的二級差值的個數(shù)是否小于數(shù)值不同的一級差值個數(shù)的二分之一;如果是觸發(fā)所述第一編碼模塊; 三級計算模塊,用于在所述判斷模塊結(jié)果為否時,選擇數(shù)值不同的二級差值按照第三順序排列,并計算所述排列順序中相鄰二級差值的差值,作為三級差值; 第二索引模塊,用于將所述數(shù)值不同的二級差值按照所述第三順序依次設(shè)置索引編號,并遍歷各個相鄰一級差值的二級差值,確定每一個相鄰一級差值的二級差值對應(yīng)的索引編號; 第二編碼模塊,用于將最大深度值和最小深度值中的至少一個、以及最大一級差值按照第一位寬,將各個相鄰深度值的一級差值的索引編號以及最大二級差值按照第二位寬,各個二級差值的索引編號以及所述三級差值按照第四位寬,分別進(jìn)行編碼,寫入碼流中,其中,所述第四位寬小于所述第二位寬。16.一種基于權(quán)利要求11?15任一項所述深度信息編碼裝置的深度信息解碼裝置,其特征在于,編碼得到的碼流中包括最大深度值和最小深度值中的至少一個、最大一級差值、各個二級差值以及各個相鄰深度值的一級差值,所述裝置包括: 第一解碼模塊,用于將所述碼流進(jìn)行解碼,按照第一位寬解碼獲得最大深度值和最小深度值中至少一個、以及最大一級差值;按照第二位寬解碼獲得各個二級差值以及各個相鄰深度值的一級差值的索引編號; 第一獲取模塊,用于根據(jù)所述最大一級差值、以及所述各個二級差值,獲得數(shù)值不同的一級差值; 第二獲取模塊,用于根據(jù)按照第二順序排列的所述數(shù)值不同的一級差值,以及各個相鄰深度值的一級差值的索引編號,獲得各個相鄰深度值的一級差值; 第三獲取模塊,用于根據(jù)所述最大深度值和所述最小深度值中的至少一個、以及所述各個相鄰深度值之間的一級差值,獲得深度索引表中各個深度值。17.根據(jù)權(quán)利要求15所述的裝置,其特征在于,所述第一解碼模塊包括: 第一解碼單元,用于按照第一位寬,解碼獲得所述碼流中的最大深度值和最小深度值中至少一個、以及最大一級差值; 第一位寬更新單元,用于計算所述最大一級差值的位寬,作為第二位寬; 第二解碼單元,用于按照所述第二位寬,解碼獲得所述碼流中各個二級差值以及各個相鄰深度值的一級差值的索引編號。18.根據(jù)權(quán)利要求15所述的方法,其特征在于,所述碼流中還包括按照第三位寬編碼的最小一級差值;所述第一解碼模塊還用于按照第三位寬解碼獲得所述最小一級差值; 所述第一解碼模塊包括: 第一解碼單元,用于按照第一位寬,解碼獲得所述碼流中的最大深度值和最小深度值中至少一個、以及最大一級差值; 第二位寬更新單元,計算所述最大一級差值的位寬,作為第三位寬; 第三解碼單元,用于按照所述第三位寬,解碼獲得所述碼流中的最小一級差值; 第三位寬更新單元,用于計算最大一級差值和最小一級差值相減得到的差值的位寬,作為第二位寬; 第四解碼單元,用于按照所述第二位寬,解碼獲得所述碼流中的相鄰一級差值的二級差值以及各個一級差值的索引編號。
【文檔編號】H04N19/597GK105915917SQ201510441354
【公開日】2016年8月31日
【申請日】2015年7月24日
【發(fā)明人】蔡硯剛, 魏偉, 白茂生, 劉陽, 祁海
【申請人】樂視云計算有限公司