元素的流程圖;
[0048] 圖6為本發(fā)明實(shí)施例中編碼過程的執(zhí)行流程圖;
[0049] 圖7為本發(fā)明實(shí)施例中一種解碼方法的流程圖;
[0050] 圖8為本發(fā)明實(shí)施例中一種編碼裝置的結(jié)構(gòu)示意圖;
[0051] 圖9為本發(fā)明實(shí)施例中一種解碼裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0052] 在本發(fā)明實(shí)施例中提供了一種編碼方法,該方法包括:在將當(dāng)前頓圖像劃分為M 個(gè)最大編碼單元時(shí),確定M個(gè)最大編碼單元中每個(gè)最大編碼單元的指定語法元素的值,在M 個(gè)最大編碼單元中確定出連續(xù)的具有相同指定語法元素的N個(gè)最大編碼單元,在對(duì)N個(gè)最 大編碼單元進(jìn)行編碼時(shí),按照第一編碼模式,在連續(xù)的N個(gè)最大編碼單元中的第K個(gè)最大編 碼單元中添加累計(jì)語法元素,并在對(duì)第K個(gè)最大編碼單元或者第K+1個(gè)最大編碼單元至第N 個(gè)最大編碼單元進(jìn)行編碼時(shí)未添加指定語法元素。很明顯,在本發(fā)明實(shí)施例通過一個(gè)累計(jì) 語法原來代替第K個(gè)最大編碼單元或者第K+1個(gè)最大編碼單元至第N個(gè)最大編碼單元中添 加的指定語法元素,從而減少了編碼過程中所添加的語言元素的數(shù)量,送樣不僅可W提升 編碼效率,并且避免了比特率的浪費(fèi)。
[0053] 下面通過附圖W及具體實(shí)施例對(duì)本發(fā)明技術(shù)方案做詳細(xì)的說明。
[0054] 實(shí)施例一:
[0055] 如圖1所示為本發(fā)明實(shí)施例中一種編碼方法的流程圖,該方法包括:
[0056] S101,在將當(dāng)前頓圖像劃分為M個(gè)最大編碼單元時(shí),確定M個(gè)最大編碼單元中每個(gè) 最大編碼單元的指定語法元素;
[0057] 首先,如圖2所示,在進(jìn)行圖像的編碼時(shí),該電子設(shè)備將當(dāng)前頓圖像劃分為M個(gè)最 大編碼單元(英文;Large Code化it,簡(jiǎn)稱;LCU),其中,M為大于等于2的正整數(shù)。
[005引在對(duì)當(dāng)前頓圖像中的每個(gè)LCU進(jìn)行實(shí)際編碼之前,在本發(fā)明實(shí)施例中還需要對(duì)M 個(gè)最大編碼單元進(jìn)行預(yù)編碼,至少確定每個(gè)最大編碼單元的編碼模式,至少將每個(gè)最大編 碼單元的編碼模式作為對(duì)應(yīng)最大編碼單元的指定語法元素。
[0059] 具體來講,如圖3所示為本發(fā)明實(shí)施例中預(yù)編碼模式的流程圖:
[0060] S301,將一個(gè)最大編碼單元?jiǎng)澐譃樗膶?,確定每一層的臨時(shí)編碼方式,W及獲得每 一層使用臨時(shí)編碼方式進(jìn)行編碼時(shí)對(duì)應(yīng)的比特?cái)?shù);
[0061] S302,在獲得比特率中確定出最小比特?cái)?shù),將該最小比特?cái)?shù)對(duì)應(yīng)的臨時(shí)編碼方式 確定為最大編碼單元的編碼模式;
[0062] S303,依次確定M-I個(gè)最大編碼單元的編碼模式;
[0063] S304,將最小比特?cái)?shù)對(duì)應(yīng)的層數(shù)轉(zhuǎn)換為最大編碼單元的劃分層次語法元素,將編 碼模式作為最大編碼單元的編碼模式語法元素,將劃分層次語法元素、編碼模式語法元素 W及編碼參考對(duì)象語法元素作為指定語法元素;
[0064] S305,依次確定M-I個(gè)最大編碼單元的指定語法元素。
[0065] 進(jìn)一步來講:
[0066] 針對(duì)當(dāng)前頓圖像中的第一個(gè)LCU(如圖2所示)來說明預(yù)編碼過程,當(dāng)前頓圖像中 的其他LCU的預(yù)編碼過程與第一個(gè)LCU的預(yù)編碼過程相同:
[0067] 第一步:通過H種不同的編碼模式對(duì)第一個(gè)LCU的第一層進(jìn)行預(yù)編碼,送H種編 碼模式分別為:頓內(nèi)編碼、頓間編碼、Skip編碼,每一種編碼模式都會(huì)得到對(duì)應(yīng)第一個(gè)LCU 編碼后的bit數(shù),比如:頓內(nèi)編碼對(duì)應(yīng)的比特?cái)?shù)為A,頓間編碼的比特?cái)?shù)為B,Skip編碼對(duì)應(yīng) 的比特?cái)?shù)為C,得到H種不同編碼模式下的第一 LCU的清晰度,然后得到每個(gè)編碼模式下的 清晰度與bit數(shù)之間的比值,最后在H種不同的比值中確定出比特?cái)?shù)最小的比值,該最小 比值對(duì)應(yīng)的編碼模式為L(zhǎng)CU的第一層編碼模式。
[0068] 另外,第一個(gè)LCU的第一層編碼表征是未對(duì)第一個(gè)LCU進(jìn)行層次劃分的編碼,也就 是說對(duì)完整的第一個(gè)LCU進(jìn)行編碼;
[0069] 第二步:對(duì)第一個(gè)LCU進(jìn)行層次劃分(如圖4所示),得到第二層的LCU,然后通過 第一步中的處理方式對(duì)第二層的LCU中的每個(gè)部分進(jìn)行預(yù)編碼,從而得到每一個(gè)部分的編 碼模式W及每個(gè)部分對(duì)應(yīng)的比特?cái)?shù),然后將每個(gè)比特?cái)?shù)相加得到第二層的比特?cái)?shù);按照第 二步的方法繼續(xù)對(duì)該LCU進(jìn)行層次劃分,得到第H層的比特?cái)?shù);按照第二步的方法繼續(xù)對(duì) 該LCU進(jìn)行層次劃分,得到第四層的比特?cái)?shù);
[0070] 第H步;比較每一層確定出的最小比特?cái)?shù),將四層中比特?cái)?shù)最小的層對(duì)應(yīng)的編碼 模式確定為第一個(gè)LCU的編碼模式,比如說第一層的比特?cái)?shù)最小,則將第一層的編碼模式 確定為L(zhǎng)CU的編碼模式。
[0071] 第四步:在確定出該LCU的層次劃分W及對(duì)應(yīng)的編碼模式之后,就能夠?qū)哟蝿?分的值W及編碼方式轉(zhuǎn)換為第一個(gè)LCU的指定語法元素,該指定語法元素包括了;編碼模 式語法元素州_skip_flag,其中,skip就表征了編碼模式;層次劃分語法元素 split_cu_ flag狂0, Y0),其中,并且將層次劃分語法元素的值也確定為化Ise ;當(dāng)然還包括了編碼參 考對(duì)象 merge_idx。
[0072] 通過上述的四步就可W得到第一個(gè)LCU的指定語法元素,其他LCU的指定語法元 素也可W通過上述的四個(gè)步驟來得到,送樣就可W得到并記錄下每個(gè)LCU的指定語法元 素。
[0073] 通過上述的步驟可W得到當(dāng)前頓圖像中的每個(gè)LCU的指定語法元素,從而可W使 得在編碼的過程中能夠?qū)崿F(xiàn)快速的編碼,并且可W為后續(xù)添加累計(jì)語法元素提供條件。
[0074] 在對(duì)每個(gè)LCU進(jìn)行預(yù)編碼之后,則執(zhí)行S102。
[00巧]S102,在所述M個(gè)最大編碼單元中確定出連續(xù)的具有相同指定語法元素的N個(gè)最 大編碼單元;
[0076] 由于在S102中確定出了每個(gè)LCU的指定語法元素,因此在S102中就是在M個(gè)LCU 中確定出連續(xù)的具有相同指定語法元素的N個(gè)LCU,比如說;M個(gè)LCU中的第一個(gè)LCU、第二 個(gè)LCU、第H個(gè)LCU、第四個(gè)LCU的指定語法元素完全相同,則該N就等于4。
[0077] 另外,送里需要說明的是,一個(gè)LCU的指定語法元素至少是上述的H種語法元素, 即;州_31^口_'1日邑、8口1;[1:_州_巧日邑、merge_idx,當(dāng)然在實(shí)際的應(yīng)用中可W增加其他語法元 素,或者是將所有的語法元素定義為指定語法元素,在本發(fā)明實(shí)施例中并不限定語法元素 的具體個(gè)數(shù),但是在確定N值時(shí),連續(xù)的LCU的指定語法元素應(yīng)該相同。
[0078] S103,在對(duì)N個(gè)最大編碼單元進(jìn)行編碼時(shí),按照第一編碼方式,在連續(xù)的N個(gè)最大 編碼單元中的第K個(gè)最大編碼單元中添加累計(jì)語法元素,并且在對(duì)第K個(gè)最大編碼單元或 者第K+1個(gè)最大編碼單元至第N個(gè)最大編碼單元進(jìn)行編碼時(shí)未添加所述指定語法元素。
[0079] 在確定出N個(gè)連續(xù)的LCU的語法元素相同之后,在對(duì)N個(gè)LCU進(jìn)行編碼時(shí),按照第 一編碼方式,在連續(xù)的N個(gè)LCU中的第K個(gè)最大編碼單元中添加累計(jì)語法元素。
[0080] 送里需要說明的是,累計(jì)語法元素的值表征了第K個(gè)LCU之后的并且與第K個(gè)LCU 具有相同指定語法元素的LCU的個(gè)數(shù),比如說第一個(gè)LCU、第二個(gè)LCU、第H個(gè)LCU、第四個(gè) LCU相同時(shí),若是在第二個(gè)LCU中添加累計(jì)語法元素,則累計(jì)語法元素的值就為3。
[0081] 具體來講,如圖5所示為本發(fā)明實(shí)施例中添加累計(jì)語法元素的具體流程圖:
[0082] S501,在對(duì)N個(gè)最大編碼單元進(jìn)行編碼時(shí),將N個(gè)最大編碼單元中的第一個(gè)最大編 碼單元的指定語法元素添加到第一個(gè)最大編碼單元對(duì)應(yīng)的碼流中;
[0083] 首先來講,在對(duì)N個(gè)LCU進(jìn)行編碼時(shí),由于N個(gè)連續(xù)的LCU的指定語法元素相同, 若是相同的LCU中每個(gè)LCU都添加相同的指定語法元素,則對(duì)LCU進(jìn)行編碼后的碼流的比 特率較大,送樣就造成了比特率浪費(fèi)的問題。
[0084] 所W在本發(fā)明實(shí)施例中,在對(duì)N個(gè)LCU進(jìn)行編碼時(shí),首先在N個(gè)LCU中的第一個(gè) LCU中添加指定語法元素,送樣使得解碼端可W根據(jù)第一個(gè)LCU確定出該LCU的編碼模式來 進(jìn)行解碼。
[0085] S502,在N個(gè)最大編碼單元的第K個(gè)最大編碼單元中添加鍵值狂,Y)。
[0086] 送里需要說明的是,X表征第K個(gè)最大編碼單元所在位置,Y表征從處于X位置的 最大編碼單元開始連續(xù)的具有相同指定語法元素的最大編碼單元的個(gè)數(shù)。
[0087] 具體來講,若是K等于1,則是在第一個(gè)LCU中添加累計(jì)語法元素,則該則該累計(jì) 語法元素的值應(yīng)該為N,該累計(jì)語法元素說明的就是從第一個(gè)LCU至第N個(gè)LCU的指定語 法元素相同。并且在第一個(gè)LCU中添加了累計(jì)語法元素之后說明在N個(gè)LCU中從第二個(gè) LCU開始就與第一個(gè)LCU的語法元素完全相同,因此在N個(gè)LCU中的第一個(gè)LCU添加了指定 語法元素之后,在第二個(gè)LCU中就不再需要添加語法元素。此時(shí)的累計(jì)語法元素就表征為 SkipLCUNum技0] [Y閑,其中,Y就等于N。
[0088] 若K等于2,則是在第二個(gè)LCU中添加累計(jì)語法元素,則該則該累計(jì)語法元素的值 應(yīng)該為N-I,該累計(jì)語法元素說明的就是從第二個(gè)LCU至第N個(gè)LCU的指定語法元素都與 第一個(gè)LCU的指定語法元素相同。此時(shí),在對(duì)第一個(gè)LCU W及第二個(gè)LCU進(jìn)行編碼時(shí),需要 在第一個(gè)LCU W及第二個(gè)LCU中添加指定語法元素,而從第H個(gè)LCU開始至第N個(gè)LCU就 不需要添加指定語法元素。此時(shí)的累計(jì)語法元素就表征為SkipLCUNum技1] [YN-1],其中,Y 就等于N-I。
[0089] 若K等于3,則是在第H個(gè)LCU中添加累計(jì)語法元素,則該則該累計(jì)語法元素的值 應(yīng)該為N-I,該累計(jì)語法元素說明的就是從第二個(gè)LCU至第N個(gè)LCU的指定語法元素都與 第一個(gè)LCU的指定語法元素相同。此時(shí),在對(duì)第一個(gè)LCU W及第二個(gè)LCU進(jìn)行編碼時(shí),需要 在第一個(gè)LCU W及第二個(gè)LCU中添加指定語法元素,而從第H個(gè)LCU開始至第N個(gè)LC