對(duì)編碼視頻數(shù)據(jù)的變換單位的子集編碼和解碼的方法、設(shè)備和系統(tǒng)的制作方法
【專利摘要】公開了一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位(例如,400)進(jìn)行解碼的方法。確定變換單位的子集的有效殘差系數(shù)。選擇變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)。在所確定的有效殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移。使用預(yù)定Rice參數(shù)作為Golomb-Rice解碼的初始參數(shù)來對(duì)變換單位的子集進(jìn)行解碼。
【專利說明】對(duì)編碼視頻數(shù)據(jù)的變換單位的子集編碼和解碼的方法、設(shè) 備和系統(tǒng)
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明通常涉及數(shù)字視頻信號(hào)處理,尤其涉及用于對(duì)視頻數(shù)據(jù)的變換單位的子集 進(jìn)行編碼和解碼的方法、設(shè)備和系統(tǒng)。
【背景技術(shù)】
[0002] 當(dāng)前存在包括用于傳輸和存儲(chǔ)視頻數(shù)據(jù)的應(yīng)用程序的視頻編碼所用的許多應(yīng)用 程序。還開發(fā)了許多視頻編碼標(biāo)準(zhǔn)并且其它視頻編碼標(biāo)準(zhǔn)當(dāng)前正在開發(fā)中。視頻編碼標(biāo)準(zhǔn) 化的最新進(jìn)展已導(dǎo)致形成被稱為"針對(duì)視頻編碼的聯(lián)合專家小組"(JCT_VC)的組。該針對(duì) 視頻編碼的聯(lián)合專家小組(JCT-VC)包括已知為視頻編碼專家組(VCEG)的國際電信聯(lián)盟 (ITU)的電信標(biāo)準(zhǔn)化部門(ITU-T)的研究組16、問題6(SG16/Q6)的成員、以及還已知為運(yùn) 動(dòng)圖片專家組(MPEG)的國際標(biāo)準(zhǔn)化組織/國際電工委員會(huì)聯(lián)合技術(shù)委員會(huì)1/小組委員會(huì) 29/工作組 11(IS0/IEC JTC1/SC29/WG11)的成員。
[0003] 針對(duì)視頻編碼的聯(lián)合專家小組(JCT-VC)的目標(biāo)是產(chǎn)生新的視頻編碼標(biāo)準(zhǔn)以顯著 優(yōu)于目前現(xiàn)有的已知為"H. 264/MPEG-4AVC"的視頻編碼標(biāo)準(zhǔn)。該H. 264/MPEG-4AVC標(biāo)準(zhǔn)本 身是針對(duì)諸如MPEG-4和ITU-T H. 263等的以前的視頻編碼標(biāo)準(zhǔn)的大幅改進(jìn)。已將開發(fā)中的 新視頻編碼標(biāo)準(zhǔn)命名為"高效率視頻編碼(HEVC) "。針對(duì)視頻編碼的聯(lián)合專家小組JCT-VC 還考慮由于針對(duì)高效率視頻編碼(HEVC)所提出的技術(shù)而產(chǎn)生的、在對(duì)該標(biāo)準(zhǔn)的實(shí)現(xiàn)進(jìn)行 縮放從而以高分辨率或高幀頻進(jìn)行工作的情況下產(chǎn)生困難的各種實(shí)現(xiàn)挑戰(zhàn)。
[0004] H. 264/MPEG-4AVC視頻編碼標(biāo)準(zhǔn)呈現(xiàn)在對(duì)用以表示視頻數(shù)據(jù)的殘差系數(shù)進(jìn)行編碼 的情況下實(shí)現(xiàn)高壓縮效率的困難。
[0005] 視頻數(shù)據(jù)由幀序列構(gòu)成,其中各幀具有樣本的二維陣列。通常,幀包括一個(gè)亮度 (luma)通道和兩個(gè)色度(chroma)通道。通常使用諸如YUV等的顏色空間來表示顏色信息, 其中Y是亮度通道并且UV是兩個(gè)色度通道。諸如YUV等的顏色空間給出了如下優(yōu)點(diǎn):大部 分幀內(nèi)容包含在亮度通道中,并且UV通道中所存儲(chǔ)的相對(duì)較少量的內(nèi)容足以重建彩色幀。 還可以將色度通道下采樣為感知質(zhì)量損失可忽略的較低的空間分辨率。
[0006] 已知為4:2:0的通常使用的色度格式使得各色度通道具有垂直和水平方向的分 辨率的一半。將各幀分解成最大編碼單位(LCU)的陣列。這些最大編碼單位(LCU)具有諸 如64個(gè)亮度樣本等的、邊尺寸是2的冪且寬度和高度相等的固定大小。編碼樹使得能夠?qū)?各最大編碼單位(LCU)子分割成四個(gè)編碼單位(CU),其中各編碼單位(CU)的寬度和高度 是母最大編碼單位(LCU)的寬度和高度的一半。可以將各編碼單位(CU)進(jìn)一步子分割成 相等大小的四個(gè)編碼單位(⑶)??梢赃f歸地應(yīng)用這種子分割處理,直到達(dá)到最小編碼單位 (SCU)大小為止,從而使得能夠?qū)⒕幋a單位(CU)向下定義為最小支持大小。將最大編碼單 位遞歸子分割成編碼單位的層級(jí)結(jié)構(gòu)具有四叉樹結(jié)構(gòu)并且被稱為編碼樹。將該子分割處理 作為被編碼為二進(jìn)制數(shù)(bin)的標(biāo)志序列而在通信位流中編碼。因此,編碼單位具有正方 形形狀。
[0007] 在沒有進(jìn)行進(jìn)一步子分割的編碼樹中存在一組編碼單位,從而占據(jù)編碼樹的葉節(jié) 點(diǎn)。在這些編碼單位中存在變換樹。變換樹還可以使用如編碼樹所使用的四叉樹結(jié)構(gòu)來對(duì) 編碼單位進(jìn)行分解。在變換樹的葉節(jié)點(diǎn)處,使用變換單位(TU)來對(duì)殘差數(shù)據(jù)進(jìn)行編碼。與 編碼樹相對(duì)比,變換樹可以將編碼單位子分割成具有非正方形形狀的變換單位。此外,變換 樹結(jié)構(gòu)不要求變換單位(TU)占據(jù)母編碼單位所提供的所有區(qū)域。
[0008] 將編碼樹的葉節(jié)點(diǎn)處的各編碼單位子分割成各自已知為預(yù)測(cè)單位(PU)的預(yù)測(cè)數(shù) 據(jù)樣本的一個(gè)或多個(gè)陣列。各預(yù)測(cè)單位(PU)包含通過應(yīng)用幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)處理所推 導(dǎo)出的輸入視頻幀數(shù)據(jù)的一部分的預(yù)測(cè)。
[0009] 可以使用幾種方法來對(duì)編碼單位(CU)內(nèi)的預(yù)測(cè)單位(PU)進(jìn)行編碼。一個(gè)預(yù)測(cè)單 位(PU)可能占據(jù)編碼單位(CU)的整個(gè)區(qū)域,或者編碼單位(CU)可能在水平方向或垂直方 向上被分割成相等大小的兩個(gè)矩形預(yù)測(cè)單位(PU)。另外,可以將編碼單位(CU)分割成相等 大小的四個(gè)正方形預(yù)測(cè)單位(PU)。
[0010] 視頻編碼器通過將視頻數(shù)據(jù)轉(zhuǎn)換成句法元素序列來將視頻數(shù)據(jù)壓縮成位流。使 用與在MPEG4-AVC/H. 264視頻壓縮標(biāo)準(zhǔn)中所定義的算術(shù)編碼方案相同的算術(shù)編碼方案,在 開發(fā)中的高效率視頻編碼(HEVC)標(biāo)準(zhǔn)內(nèi)定義上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)。在 開發(fā)中的高效率視頻編碼(HEVC)標(biāo)準(zhǔn)中,在上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)處于使 用中的情況下,將各句法元素表示為二進(jìn)制數(shù)序列。對(duì)各二進(jìn)制數(shù)進(jìn)行旁路編碼或算術(shù)編 碼。使用二進(jìn)制數(shù)同等可能為〇或1的旁路編碼。在這種情況下,不存在可實(shí)現(xiàn)的進(jìn)一步 壓縮。對(duì)于概率分布不相等的二進(jìn)制數(shù)使用算術(shù)編碼。各算術(shù)編碼二進(jìn)制數(shù)與已知為"上 下文(context)"的信息相關(guān)聯(lián)。上下文包含可能的二進(jìn)制數(shù)值('valMPS')和概率狀態(tài) (映射到可能的二進(jìn)制數(shù)值的估計(jì)概率的整數(shù))。根據(jù)句法元素創(chuàng)建包括旁路編碼二進(jìn)制 數(shù)和算術(shù)編碼二進(jìn)制數(shù)的組合的這種二進(jìn)制數(shù)序列已知為"二進(jìn)制數(shù)產(chǎn)生(binarising) " 句法元素。
[0011] 在視頻編碼器或視頻解碼器中,由于各二進(jìn)制數(shù)可使用單獨(dú)的上下文信息,因此 二進(jìn)制數(shù)的上下文選擇提供了用以改進(jìn)編碼效率的方式。特別地,可以通過選擇特定二進(jìn) 制數(shù)來改進(jìn)編碼效率,以使得來自使用關(guān)聯(lián)的上下文信息的二進(jìn)制數(shù)的先前示例的統(tǒng)計(jì)特 性與二進(jìn)制數(shù)的當(dāng)前示例的統(tǒng)計(jì)特性相關(guān)。這種上下文選擇頻繁地利用空間本地信息以確 定最佳上下文。
[0012] 在開發(fā)中的高效率視頻編碼(HEVC)標(biāo)準(zhǔn)和H. 264/MPEG-4AVC中,基于來自其它幀 或者來自先前解碼后的當(dāng)前塊內(nèi)的鄰接區(qū)域的參考樣本數(shù)據(jù)來推導(dǎo)針對(duì)當(dāng)前塊的預(yù)測(cè)。該 預(yù)測(cè)和期望樣本數(shù)據(jù)之間的差已知為殘差。該殘差的頻域表示是殘差系數(shù)的二維陣列。按 照慣例,二維陣列的左上角包含表示低頻信息的殘差系數(shù)。
[0013] 在典型的視頻數(shù)據(jù)中,樣本值的大部分變化是逐漸的,這導(dǎo)致低頻信息在殘差內(nèi) 占主導(dǎo)。這表明位于二維陣列的左上角的殘差系數(shù)的量值較大。
【發(fā)明內(nèi)容】
[0014] 本發(fā)明的目的是大致克服或至少改進(jìn)現(xiàn)有配置的一個(gè)或多個(gè)缺點(diǎn)。
[0015] 根據(jù)本發(fā)明的一個(gè)方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的方法,所述方法包括以下步驟:
[0016] 確定所述變換單位的子集的有效殘差系數(shù);
[0017] 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的 有效殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移; 以及
[0018] 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼。
[0019] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的設(shè)備,所述設(shè)備包括:
[0020] 用于確定所述變換單位的子集的有效殘差系數(shù)的部件;
[0021] 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的部件,其中 在所確定的有效殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè) 置存在偏移;以及
[0022] 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變 換單位的子集進(jìn)行解碼的部件。
[0023] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的系統(tǒng),所述系統(tǒng)包括:
[0024] 存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)和計(jì)算機(jī)程序;
[0025] 處理器,其連接至所述存儲(chǔ)器,并且用于執(zhí)行所述計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包 括用于進(jìn)行以下操作的指令:
[0026] 確定所述變換單位的子集的有效殘差系數(shù);
[0027] 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的 有效殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移; 以及
[0028] 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼。
[0029] 根據(jù)本發(fā)明的另一方面,提供一種記錄有計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì) 算機(jī)程序用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼,所述計(jì)算機(jī)程 序包括以下代碼:
[0030] 用于確定所述變換單位的子集的有效殘差系數(shù)的代碼;
[0031] 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的代碼,其中 在所確定的有效殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè) 置存在偏移;以及
[0032] 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變 換單位的子集進(jìn)行解碼的代碼。
[0033] 根據(jù)本發(fā)明的另一方面,提供一種用于對(duì)視頻數(shù)據(jù)流進(jìn)行解碼以確定解碼視頻數(shù) 據(jù)流中的當(dāng)前殘差系數(shù)的值的方法,所述方法包括以下步驟:
[0034] 從所述視頻數(shù)據(jù)流接收殘差系數(shù)的變換單位;
[0035] 確定所述變換單位的當(dāng)前殘差系數(shù)的位置;
[0036] 在所述當(dāng)前殘差系數(shù)在所述變換單位中的位置大于預(yù)定閾值的情況下,使用 無依賴性的Golomb-Rice解碼對(duì)所述當(dāng)前殘差系數(shù)進(jìn)行解碼,其中所述無依賴性的 Golomb-Rice 使用預(yù)定 Golomb-Rice 值;
[0037] 在所述當(dāng)前殘差系數(shù)在所述變換單位中的位置小于所述預(yù)定閾值的情況下,使用 針對(duì)當(dāng)前系數(shù)的基于依賴性的Golomb-Rice解碼對(duì)所述當(dāng)前殘差系數(shù)進(jìn)行解碼,其中所述 基于依賴性的Golomb-Rice解碼使用先前解碼殘差系數(shù)值以選擇Golomb-Rice值;以及
[0038] 使用所選擇的Golomb-Rice解碼值來確定所述當(dāng)前殘差系數(shù)的值。
[0039] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的方法,所述方法包括以下步驟:
[0040] 確定所述變換單位的量化參數(shù);
[0041] 確定所述變換單位的子集的有效殘差系數(shù);
[0042] 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的 量化參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及
[0043] 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼。
[0044] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的設(shè)備,所述設(shè)備包括:
[0045] 用于確定所述變換單位的子集的有效殘差系數(shù)的部件;
[0046] 用于確定所述變換單位的量化參數(shù)的部件;
[0047] 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的部件,其中 在所確定的量化參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移; 以及
[0048] 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變 換單位的子集進(jìn)行解碼的部件。
[0049] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的系統(tǒng),所述系統(tǒng)包括:
[0050] 存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)和計(jì)算機(jī)程序;
[0051] 處理器,其連接至所述存儲(chǔ)器,并且用于執(zhí)行所述計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包 括用于進(jìn)行以下操作的指令:
[0052] 確定所述變換單位的子集的有效殘差系數(shù);
[0053] 確定所述變換單位的量化參數(shù);
[0054] 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的 量化參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及
[0055] 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼。
[0056] 根據(jù)本發(fā)明的另一方面,提供一種記錄有計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì) 算機(jī)程序用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼,所述計(jì)算機(jī)程 序包括以下代碼:
[0057] 用于確定所述變換單位的子集的有效殘差系數(shù)的代碼;
[0058] 用于確定所述變換單位的量化參數(shù)的代碼;
[0059] 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的代碼,其中 在所確定的量化參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移; 以及
[0060] 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變 換單位的子集進(jìn)行解碼的代碼。
[0061] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的方法,所述方法包括以下步驟:
[0062] 確定所述變換單位的量化參數(shù);
[0063] 確定所述變換單位的寬度和高度;
[0064] 確定所述變換單位的子集的有效殘差系數(shù);
[0065] 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定 的量化參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾值的情況 下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及
[0066] 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼。
[0067] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的設(shè)備,所述設(shè)備包括:
[0068]用于確定所述變換單位的子集的有效殘差系數(shù)的部件;
[0069] 用于確定所述變換單位的量化參數(shù)的部件;
[0070] 用于確定所述變換單位的寬度和高度的部件;
[0071] 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的部件,其中 在所確定的量化參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾 值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及
[0072] 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變 換單位的子集進(jìn)行解碼的部件。
[0073] 根據(jù)本發(fā)明的另一方面,提供一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的 變換單位進(jìn)行解碼的系統(tǒng),所述系統(tǒng)包括:
[0074] 存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)和計(jì)算機(jī)程序;
[0075] 處理器,其連接至所述存儲(chǔ)器,并且用于執(zhí)行所述計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包 括用于進(jìn)行以下操作的指令:
[0076] 確定所述變換單位的子集的有效殘差系數(shù);
[0077] 確定所述變換單位的量化參數(shù);
[0078] 確定所述變換單位的寬度和高度;
[0079] 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定 的量化參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾值的情況 下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及
[0080] 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼。
[0081] 根據(jù)本發(fā)明的另一方面,提供一種記錄有計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì) 算機(jī)程序用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼,所述計(jì)算機(jī)程 序包括以下代碼:
[0082] 用于確定所述變換單位的子集的有效殘差系數(shù)的代碼;
[0083] 用于確定所述變換單位的量化參數(shù)的代碼;
[0084] 用于確定所述變換單位的寬度和高度的代碼;
[0085] 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的代碼,其中 在所確定的量化參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾 值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及
[0086] 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變 換單位的子集進(jìn)行解碼的代碼。
[0087] 還公開了其它方面。
【專利附圖】
【附圖說明】
[0088] 現(xiàn)在將參考以下附圖來說明本發(fā)明的至少一個(gè)實(shí)施例,其中:
[0089] 圖1是示出視頻編碼器的功能模塊的示意框圖;
[0090] 圖2是示出視頻解碼器的功能模塊的示意框圖;
[0091] 圖3A和3B形成可以分別實(shí)踐圖1的編碼器和圖2的解碼器的通用計(jì)算機(jī)系統(tǒng)的 示意框圖;
[0092] 圖4A和4B示出示例變換單位的空間結(jié)構(gòu);
[0093] 圖5是示出示例變換單位的句法元素結(jié)構(gòu)的示意框圖;
[0094] 圖6A是示出對(duì)變換單位(TU)進(jìn)行編碼的方法的示意框圖;
[0095] 圖6B是示出對(duì)變換單位(TU)進(jìn)行解碼的方法的示意流程圖;
[0096] 圖7是示出圖5的示例變換單位的子集的句法元素結(jié)構(gòu)的示意框圖;
[0097] 圖8A是示出對(duì)變換單位的子集進(jìn)行編碼的方法的示意流程圖;
[0098] 圖8B是示出對(duì)變換單位的子集進(jìn)行解碼的方法的示意流程圖;
[0099] 圖9是示出利用Golomb-Rice (哥倫布-萊斯)碼字的殘差系數(shù)的二進(jìn)制表示的 表;
[0100] 圖1〇是示出利用階次為零的指數(shù)Golomb碼字的殘差系數(shù)的二進(jìn)制表示的表;
[0101] 圖11是示出用于基于Golomb-Rice參數(shù)的當(dāng)前值和先前殘差系數(shù)的值來確定 Golomb-Rice參數(shù)的值的查找表的表;
[0102] 圖12A是示出對(duì)殘差系數(shù)進(jìn)行編碼的方法的示意流程圖;
[0103] 圖12B是示出對(duì)殘差系數(shù)進(jìn)行解碼的方法的示意流程圖;
[0104] 圖13是示出用于確定如用于使用Golomb-Rice解碼對(duì)殘差系數(shù)進(jìn)行解碼的方法 所使用的參數(shù)K的值的方法的示意流程圖;
[0105] 圖14A示出用于針對(duì)變換單位(TU)的子集對(duì)其余的殘差系數(shù)量值進(jìn)行解碼的二 值化器;
[0106] 圖14B示出用于針對(duì)變換單位(TU)的子集對(duì)其余的殘差系數(shù)量值進(jìn)行解碼的另 一二值化器;以及
[0107] 圖15示出另一示例變換單位。
【具體實(shí)施方式】
[0108] 在任一個(gè)或多個(gè)附圖中參考具有相同附圖標(biāo)記的步驟和/或特征的情況下,除非 出現(xiàn)相反意圖,否則這些步驟和/或特征是為了本說明書的目的而具有相同的功能或操 作。
[0109] 可以通過二值化方案來使用在殘差系數(shù)的二維陣列的左上角占主導(dǎo)的低頻信息 的特性,以使殘差系數(shù)在位流中的大小最小。
[0110] 二值化的一個(gè)方面是選擇上下文以用于對(duì)與各個(gè)標(biāo)志相對(duì)應(yīng)的句法元素進(jìn)行編 碼。一個(gè)標(biāo)志可以使用一個(gè)以上的上下文。確定哪個(gè)上下文應(yīng)當(dāng)用于標(biāo)志的特定示例依賴 于其它已可用的信息并且已知為"上下文建模"。上下文建模是選擇最準(zhǔn)確地表示標(biāo)志的 當(dāng)前示例的統(tǒng)計(jì)特性的上下文的處理。例如,頻繁地,標(biāo)志的值受到同一標(biāo)志的鄰接示例的 值所影響,其中在這種情況下,可以基于標(biāo)志的鄰接示例的值來選擇上下文。由于大部分幀 信息包含在亮度通道中,因此相對(duì)于色度通道,上下文建模經(jīng)常針對(duì)亮度通道使用單獨(dú)的 上下文。然而,由于兩個(gè)色度通道的統(tǒng)計(jì)特性相對(duì)相似,因此通常在色度通道之間共用上下 文。
[0111] 高效率視頻編碼(HEVC)測(cè)試模型的版本6 ( "HM-6. 0")將變換單位(TU)分割成 多個(gè)子集并且對(duì)各子集中的殘差系數(shù)進(jìn)行兩遍掃描。第一遍對(duì)將殘差系數(shù)的狀態(tài)表示為非 零值(有效)或零值(無效)的標(biāo)志進(jìn)行編碼。該數(shù)據(jù)已知為有效性映射。第二遍對(duì)已知 為系數(shù)等級(jí)的有效殘差系數(shù)的量值和符號(hào)進(jìn)行編碼。
[0112] 所提供的掃描模式使得能夠?qū)埐钕禂?shù)的二維陣列掃描成一維陣列。在HM-6.0 中,使用所提供的掃描模式來對(duì)有效性映射和系數(shù)等級(jí)這兩者進(jìn)行處理。通過使用所提供 的掃描模式掃描有效性映射,可以確定最末有效系數(shù)在二維有效性映射中的位置。掃描模 式可以是水平的、垂直的或?qū)堑摹?br>
[0113] HM-6. 0提供針對(duì)(還已知為具有正方形形狀和非正方形形狀這兩者的變換單位 (TU)的)殘差塊的支持。各變換單位(TU)包含一組殘差系數(shù)。具有相等大小的邊尺寸的 殘差塊已知為正方形變換單位(TU),并且具有不等大小的邊尺寸的殘差塊已知為非正方形 變換單位(TU)。
[0114] HM-6.0 中所支持的變換單位(TU)的大小是 4X4、8X8、16X16、32X32、4X16、 16X4、8X32和32X8。通常針對(duì)亮度樣本說明變換單位(TU)的大小。然而,在使用4:2:0 的色度格式的情況下,各色度樣本占據(jù)2X2個(gè)亮度樣本的區(qū)域。因此,掃描變換單位(TU) 以對(duì)色度殘差數(shù)據(jù)進(jìn)行編碼使用了水平尺寸和垂直尺寸的一半的掃描模式,諸如針對(duì)4X4 亮度殘差塊的2X2等。為了對(duì)殘差系數(shù)進(jìn)行掃描和編碼的目的,將16X 16、32X32、4X 16、 16X4、8X32和32X8的變換單位(TU)分割成多個(gè)子塊、即大小為4X4的變換單位(TU) 掃描的下層,其中在HM-6. 0內(nèi)存在相應(yīng)的映射。
[0115] 在HM-6. 0中,上述變換單位(TU)大小的子塊與變換單位(TU)中的子集位于同一 位置處。在另一實(shí)現(xiàn)中,子集可能與大小不同于上述子塊的大小的子塊不位于同一位置處。 將位于一個(gè)子塊內(nèi)并排配置的有效性映射的一部分內(nèi)的所設(shè)置的有效系數(shù)標(biāo)志稱為有效 系數(shù)組。
[0116] 對(duì)于 16X16、32X32、4X16、16X4、8X32 和 32X8 的變換單位(TU),有效性映射 編碼利用兩級(jí)掃描。上級(jí)掃描進(jìn)行諸如后向?qū)亲笙聮呙璧鹊膾呙?,以編碼或推斷表示各 子塊的有效系數(shù)組的標(biāo)志。在這些子塊內(nèi),進(jìn)行諸如后向?qū)亲笙聮呙璧鹊膾呙瑁葬槍?duì) 具有1值的有效系數(shù)組標(biāo)志的子塊來編碼有效系數(shù)標(biāo)志。對(duì)于16 X 16變換單位(TU),使 用4X4上級(jí)掃描。對(duì)于32X32變換單位(TU),使用8X8上級(jí)掃描。對(duì)于16X4、4X16、 32X8和8X32的變換單位(TU)大小,分別使用4X1、1X4、8X2和2X8的上級(jí)掃描。
[0117] 在各變換單位(TU)中,可以將殘差系數(shù)數(shù)據(jù)編碼在位流中。各"殘差系數(shù)"是表 示頻域(DCT)的變換單位內(nèi)的圖像特征并且在該變換單位內(nèi)占據(jù)獨(dú)特位置的數(shù)字。變換單 位是可以在空間域和頻域之間進(jìn)行變換的殘差數(shù)據(jù)樣本的塊。在頻域中,變換單位(TU)將 殘差數(shù)據(jù)樣本編碼為殘差系數(shù)數(shù)據(jù)。按二(2)的冪來確定變換單位的邊尺寸的大?。ㄡ槍?duì) "亮度"通道為4個(gè)樣本?32個(gè)樣本、并且針對(duì)"色度"通道為2個(gè)樣本?16個(gè)樣本)。變 換單位(TU)樹的葉節(jié)點(diǎn)可以包含變換單位(TU)、或者在不需要?dú)埐钕禂?shù)數(shù)據(jù)的情況下可 以什么也不包含。
[0118] 由于變換單位的空間表示是殘差數(shù)據(jù)樣本的二維陣列,因此如以下詳細(xì)所述,根 據(jù)諸如改進(jìn)的離散余弦變換(DCT)等的變換所得的頻域表示還是殘差系數(shù)的二維陣列。變 換單位(TU)內(nèi)的典型樣本數(shù)據(jù)的頻譜特性使得頻域表示與空間表示相比更加緊湊。此外, 變換單位(TU)中典型的較低頻率的頻譜信息的占主導(dǎo)導(dǎo)致了較大值的殘差系數(shù)向著變換 單位(TU)的表示低頻殘差系數(shù)的左上方聚集。
[0119] 可以使用改進(jìn)的離散余弦變換(DCT)或改進(jìn)的離散正弦變換(DST)來實(shí)現(xiàn)殘差變 換。殘差變換的實(shí)現(xiàn)被配置為支持所需的各變換單位(TU)大小。在視頻編碼器中,對(duì)來自 殘差變換的殘差系數(shù)進(jìn)行縮放和量化。該縮放和量化使殘差系數(shù)的量值縮小,由此導(dǎo)致以 降低圖像質(zhì)量為代價(jià)來縮小編碼在位流中的數(shù)據(jù)的大小。
[0120] 在進(jìn)行殘差變換之后,進(jìn)行量化處理。量化處理的目的是通過降低殘差系數(shù)的量 值的精度來實(shí)現(xiàn)較高的壓縮率。量值精度的該降低是有損處理,因而會(huì)對(duì)視覺質(zhì)量產(chǎn)生影 響。利用量化參數(shù)(QP)來控制精度降低的等級(jí)。該參數(shù)的值越高,視覺質(zhì)量所受到的影響 越大。可以通過使用如以下所述的delta-qp句法元素,針對(duì)變換單位(TU)等級(jí)來修改量 化參數(shù)。
[0121] 開發(fā)中的高效率視頻編碼(HEVC)標(biāo)準(zhǔn)正尋求視頻數(shù)據(jù)的高效率壓縮。可以使用 估計(jì)和統(tǒng)計(jì)數(shù)據(jù)分析來實(shí)現(xiàn)視頻數(shù)據(jù)的高效率壓縮。開發(fā)中的高效率視頻編碼(HEVC)標(biāo) 準(zhǔn)正尋求以高的位率對(duì)視頻數(shù)據(jù)進(jìn)行編碼或解碼。開發(fā)中的高效率視頻編碼(HEVC)標(biāo)準(zhǔn) 中所采用的上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)方案支持被稱為"旁路編碼"的"等概 率"運(yùn)算模式。在該模式中,二進(jìn)制數(shù)不與來自上下文模型的上下文相關(guān)聯(lián),因而不存在上 下文模型更新步驟。在這種模式中,假定對(duì)各二進(jìn)制數(shù)進(jìn)行旁路編碼從而提高吞吐量,則可 以并行地從位流讀取多個(gè)相鄰二進(jìn)制數(shù)。例如,硬件實(shí)現(xiàn)可以并行地進(jìn)行相鄰旁路編碼數(shù) 據(jù)的組的寫入/讀取,以提高對(duì)位流進(jìn)行編碼/解碼的吞吐量。
[0122] 圖1是示出視頻編碼器100的功能模塊的示意框圖。圖2是示出相應(yīng)的視頻解碼 器200的功能模塊的示意框圖。如圖3A和3B所示,可以使用通用計(jì)算機(jī)系統(tǒng)300來實(shí)現(xiàn) 視頻編碼器100和視頻解碼器200,其中可以利用計(jì)算機(jī)系統(tǒng)300內(nèi)的專用硬件、利用計(jì)算 機(jī)系統(tǒng)300內(nèi)可執(zhí)行的軟件、或者可選地利用專用硬件和計(jì)算機(jī)系統(tǒng)300內(nèi)可執(zhí)行的軟件 的組合來實(shí)現(xiàn)各種功能模塊。
[0123] 如圖3A所示,計(jì)算機(jī)系統(tǒng)300包括:計(jì)算機(jī)模塊301 ;諸如鍵盤302、鼠標(biāo)指示器裝 置303、掃描器326、照相機(jī)327和麥克風(fēng)380等的輸入裝置;以及包括打印機(jī)315、顯示裝 置314和揚(yáng)聲器317的輸出裝置。計(jì)算機(jī)模塊301可以使用外部調(diào)制器-解調(diào)器(調(diào)制解 調(diào)器)收發(fā)器裝置316來經(jīng)由接線321與通信網(wǎng)絡(luò)320進(jìn)行通信。通信網(wǎng)絡(luò)320可以是廣 域網(wǎng)(WAN),諸如因特網(wǎng)、蜂窩電信網(wǎng)絡(luò)或私有WAN等。在接線321是電話線的情況下,調(diào)制 解調(diào)器316可以是傳統(tǒng)的"撥號(hào)上網(wǎng)"調(diào)制解調(diào)器??蛇x地,在接線321是高容量(例如, 線纜)接線的情況下,調(diào)制解調(diào)器316可以是寬帶調(diào)制解調(diào)器。還可以使用無線調(diào)制解調(diào) 器來進(jìn)行向著通信網(wǎng)絡(luò)320的無線連接。
[0124] 計(jì)算機(jī)模塊301通常包括至少一個(gè)處理器單元305和存儲(chǔ)器單元306。例如,存 儲(chǔ)器單元306可以具有半導(dǎo)體隨機(jī)存取存儲(chǔ)器(RAM)和半導(dǎo)體只讀存儲(chǔ)器(ROM)。計(jì)算機(jī) 模塊301還包括多個(gè)輸入/輸出(I/O)接口,其中這多個(gè)輸入/輸出(I/O)接口包括:音 頻-視頻接口 307,其連接至視頻顯示器314、揚(yáng)聲器317和麥克風(fēng)380 ;1/0接口 313,其 連接至鍵盤302、鼠標(biāo)303、掃描器326、照相機(jī)327以及可選的操縱桿或其它人機(jī)接口裝置 (未示出);以及外部調(diào)制解調(diào)器316和打印機(jī)315所用的接口 308。在一些實(shí)現(xiàn)中,調(diào)制 解調(diào)器316可以內(nèi)置于計(jì)算機(jī)模塊301內(nèi)、例如內(nèi)置于接口 308內(nèi)。計(jì)算機(jī)模塊301還具 有本地網(wǎng)絡(luò)接口 311,其中該本地網(wǎng)絡(luò)接口 311允許計(jì)算機(jī)系統(tǒng)300經(jīng)由接線323連接至已 知為局域網(wǎng)(LAN)的局域通信網(wǎng)絡(luò)322。如圖3A所示,局域通信網(wǎng)絡(luò)322還可以經(jīng)由接線 324連接至廣域網(wǎng)320,其中該局域通信網(wǎng)絡(luò)322通常包括所謂的"防火墻"裝置或具有相似 功能的裝置。本地網(wǎng)絡(luò)接口 311可以包括以太網(wǎng)(Ethernet?)電路卡、藍(lán)牙(Bluetooth?) 無線配置或IEEE 802. 11無線配置;然而,對(duì)于接口 311,可以實(shí)踐多種其它類型的接口。
[0125] I/O接口 308和313可以提供串行連接和并行連接中的任一個(gè)或這兩者,其中前 者通常根據(jù)通用串行總線(USB)標(biāo)準(zhǔn)來實(shí)現(xiàn)并且具有相應(yīng)的USB連接器(未示出)。設(shè)置 有存儲(chǔ)裝置309,并且存儲(chǔ)裝置309通常包括硬盤驅(qū)動(dòng)器(HDD) 310。還可以使用諸如軟盤 驅(qū)動(dòng)器和磁帶驅(qū)動(dòng)器(未示出)等的其它存儲(chǔ)裝置。通常設(shè)置有光盤驅(qū)動(dòng)器312以用作數(shù) 據(jù)的非易失性源。作為向著系統(tǒng)300的數(shù)據(jù)的適當(dāng)源,可以使用例如光盤(例如,⑶-ROM、 DVD、藍(lán)光盤(Blu-ray Disc?))、USB-RAM、便攜型外部硬盤驅(qū)動(dòng)器和軟盤等的便攜型存儲(chǔ)器 裝置。通常,HDD 310、光盤驅(qū)動(dòng)器312、網(wǎng)絡(luò)320和322或者照相機(jī)327中的任意均可用于 針對(duì)要編碼的視頻數(shù)據(jù)的源,或者連同顯示器314 -起用于要存儲(chǔ)或再現(xiàn)的解碼視頻數(shù)據(jù) 的目的地。
[0126] 計(jì)算機(jī)模塊301的組件305?313通常經(jīng)由互連總線304并且以得到相關(guān)領(lǐng)域技 術(shù)人員已知的計(jì)算機(jī)系統(tǒng)300的傳統(tǒng)操作模式的方式進(jìn)行通信。例如,處理器305使用接 線318連接至系統(tǒng)總線304。同樣,存儲(chǔ)器306和光盤驅(qū)動(dòng)器312通過接線319連接至系統(tǒng) 總線304??梢詫?shí)踐所述配置的計(jì)算機(jī)的示例包括IBM-PC和兼容機(jī)、Sun Sparcstation、 Apple Mac?或相似的計(jì)算機(jī)系統(tǒng)。
[0127] 在適當(dāng)或期望的情況下,可以使用計(jì)算機(jī)系統(tǒng)300來實(shí)現(xiàn)編碼器100和解碼器200 以及以下所述的方法,其中可以將編碼器100和解碼器200以及要說明的處理作為計(jì)算機(jī) 系統(tǒng)300內(nèi)可執(zhí)行的一個(gè)或多個(gè)軟件應(yīng)用程序333來實(shí)現(xiàn)。特別地,利用在計(jì)算機(jī)系統(tǒng)300 內(nèi)執(zhí)行的軟件333中的指令331 (參見圖3B)來實(shí)現(xiàn)編碼器100、解碼器200和所述方法的 各步驟??梢詫④浖噶?31形成為各自用于進(jìn)行一個(gè)或多個(gè)特定任務(wù)的一個(gè)或多個(gè)代碼 模塊。還可以將軟件分割成兩個(gè)單獨(dú)部分,其中第一部分和相應(yīng)的代碼模塊進(jìn)行所述方法, 并且第二部分和相應(yīng)的代碼模塊管理第一部分和用戶之間的用戶界面。
[0128] 例如,可以將軟件存儲(chǔ)在包括以下所述的存儲(chǔ)裝置的計(jì)算機(jī)可讀介質(zhì)中。將軟件 從計(jì)算機(jī)可讀介質(zhì)載入計(jì)算機(jī)系統(tǒng)300,然后由計(jì)算機(jī)系統(tǒng)300來執(zhí)行。記錄有這種軟件或 計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì)是計(jì)算機(jī)程序產(chǎn)品。優(yōu)選地,在計(jì)算機(jī)系統(tǒng)300中使用該計(jì) 算機(jī)程序產(chǎn)品實(shí)現(xiàn)了用于實(shí)現(xiàn)編碼器100、解碼器200和所述方法的有利設(shè)備。
[0129] 通常將軟件333存儲(chǔ)在HDD 310或存儲(chǔ)器306中。將該軟件從計(jì)算機(jī)可讀介質(zhì)載 入計(jì)算機(jī)系統(tǒng)300,并且由計(jì)算機(jī)系統(tǒng)300來執(zhí)行。因而,例如,可以將軟件333存儲(chǔ)在光盤 驅(qū)動(dòng)器312所讀取的光學(xué)可讀盤存儲(chǔ)介質(zhì)(例如,⑶-ROM) 325上。
[0130] 在一些示例中,將應(yīng)用程序333以編碼在一個(gè)或多個(gè)⑶-ROM 325上并且經(jīng)由相應(yīng) 的驅(qū)動(dòng)器312進(jìn)行讀取的方式供給至用戶,或者可選地,可以由用戶從網(wǎng)絡(luò)320或322讀取 應(yīng)用程序333。此外,還可以將軟件從其它計(jì)算機(jī)可讀介質(zhì)載入計(jì)算機(jī)系統(tǒng)300。計(jì)算機(jī)可 讀存儲(chǔ)介質(zhì)是指將所記錄的指令和/或數(shù)據(jù)提供至計(jì)算機(jī)系統(tǒng)300以供執(zhí)行和/或處理的 任何非瞬態(tài)有形存儲(chǔ)介質(zhì)。這種存儲(chǔ)介質(zhì)的示例包括軟盤、磁帶、CD-R0M、DVD、藍(lán)光盤、硬盤 驅(qū)動(dòng)器、ROM或集成電路、USB存儲(chǔ)器、磁光盤、或者諸如PCMCIA卡等的計(jì)算機(jī)可讀卡等,而 與這些裝置在計(jì)算機(jī)模塊301的內(nèi)部還是外部無關(guān)。還可以參與將軟件、應(yīng)用程序、指令和 /或視頻數(shù)據(jù)或編碼視頻數(shù)據(jù)提供至計(jì)算機(jī)模塊301的瞬態(tài)或非有形計(jì)算機(jī)可讀傳輸介質(zhì) 的示例包括:無線電或紅外線傳輸通道及向著其它計(jì)算機(jī)或聯(lián)網(wǎng)裝置的網(wǎng)絡(luò)接線、以及包 括電子郵件發(fā)送和網(wǎng)站上所記錄的信息等的因特網(wǎng)或內(nèi)聯(lián)網(wǎng)等。
[0131] 可以執(zhí)行上述的應(yīng)用程序333的第二部分和相應(yīng)的代碼模塊來實(shí)現(xiàn)要渲染或呈 現(xiàn)在顯示器314上的一個(gè)或多個(gè)圖形用戶界面(⑶I)。通過典型地對(duì)鍵盤302和鼠標(biāo)303 進(jìn)行操作,計(jì)算機(jī)系統(tǒng)300的用戶和應(yīng)用程序可以以在功能上可適應(yīng)的方式對(duì)界面進(jìn)行操 作,以將控制命令和/或輸入提供至與這些GUI相關(guān)聯(lián)的應(yīng)用程序。還可以實(shí)現(xiàn)在功能上 可適應(yīng)的其它形式的用戶界面,諸如利用經(jīng)由揚(yáng)聲器317所輸出的語音提示和經(jīng)由麥克風(fēng) 380所輸入的用戶聲音命令的音頻界面等。
[0132] 圖3B是處理器305和"存儲(chǔ)器"334的詳細(xì)示意框圖。存儲(chǔ)器334表示圖3A中的 計(jì)算機(jī)模塊301可以訪問的(包括HDD 309和半導(dǎo)體存儲(chǔ)器306的)所有存儲(chǔ)器模塊的邏 輯聚合。
[0133] 在初始對(duì)計(jì)算機(jī)模塊301通電的情況下,上電自檢(power-on self-test, POST) 程序350執(zhí)行。通常將POST程序350存儲(chǔ)在圖3A的半導(dǎo)體存儲(chǔ)器306的ROM 349中。有 時(shí)將諸如存儲(chǔ)有軟件的ROM 349等的硬件裝置稱為固件。POST程序350檢查計(jì)算機(jī)模塊 301內(nèi)的硬件以確保適當(dāng)工作,并且通常檢查處理器305、存儲(chǔ)器334 (309, 306)和通常還存 儲(chǔ)在ROM 349中的基本輸入-輸出系統(tǒng)軟件(BIOS)模塊351,以進(jìn)行正確操作。一旦POST 程序350成功運(yùn)行,BIOS 351啟動(dòng)圖3A的硬盤驅(qū)動(dòng)器310。啟動(dòng)硬盤驅(qū)動(dòng)器310使得經(jīng)由 處理器305執(zhí)行駐留在硬盤驅(qū)動(dòng)器310上的引導(dǎo)裝入程序352。這樣將操作系統(tǒng)353載入 RAM存儲(chǔ)器306,其中在該RAM存儲(chǔ)器306上,操作系統(tǒng)353開始工作。操作系統(tǒng)353是處 理器305可執(zhí)行的系統(tǒng)級(jí)應(yīng)用程序,以實(shí)現(xiàn)包括處理器管理、存儲(chǔ)器管理、裝置管理、存儲(chǔ) 管理、軟件應(yīng)用程序接口和通用用戶界面等的各種高級(jí)功能。
[0134] 操作系統(tǒng)353管理存儲(chǔ)器334(309, 306),以確保計(jì)算機(jī)模塊301上運(yùn)行的各處理 或應(yīng)用程序具有在不會(huì)與分配至其它處理的內(nèi)存沖突的情況下執(zhí)行的充足內(nèi)存。此外,必 須適當(dāng)使用圖3A的系統(tǒng)300中可用的不同類型的存儲(chǔ)器,以使得各處理可以高效地運(yùn)行。 因此,聚合存儲(chǔ)器334并不意圖例示如何分配存儲(chǔ)器的特定區(qū)段(除非另外說明),而是提 供計(jì)算機(jī)系統(tǒng)300可訪問的存儲(chǔ)器的概述圖以及如何使用該存儲(chǔ)器。
[0135] 如圖3B所示,處理器305包括多個(gè)功能模塊,其中這多個(gè)功能模塊包括控制單元 339、運(yùn)算邏輯單元(ALU) 340和有時(shí)稱為高速緩沖存儲(chǔ)器的本地或內(nèi)部存儲(chǔ)器348。高速緩 沖存儲(chǔ)器348在寄存器區(qū)段中通常包括多個(gè)存儲(chǔ)寄存器344?346。一個(gè)或多個(gè)內(nèi)部總線 341從功能上使這些功能模塊相互連接。處理器305通常還具有用于使用接線318來經(jīng)由 系統(tǒng)總線304與外部裝置進(jìn)行通信的一個(gè)或多個(gè)接口 342。存儲(chǔ)器334使用接線319連接 至總線304。
[0136] 應(yīng)用程序333包括可以包含條件分支指令和循環(huán)指令的指令序列331。程序333 還可以包括執(zhí)行程序333時(shí)所使用的數(shù)據(jù)332。將指令331和數(shù)據(jù)332分別存儲(chǔ)在存儲(chǔ)器 位置328、329、330和335、336、337中。根據(jù)指令331和存儲(chǔ)器位置328?330的相對(duì)大小, 如存儲(chǔ)器位置330中示出的指令所描述的,可以將特定指令存儲(chǔ)在單個(gè)存儲(chǔ)器位置中。可 選地,如存儲(chǔ)器位置328和329中示出的指令段所描述的,可以將指令分割成各自被存儲(chǔ)在 單獨(dú)的存儲(chǔ)器位置中的多個(gè)部分。
[0137] 通常,向處理器305賦予一組指令,其中在該處理器305內(nèi)執(zhí)行該組指令。處理 器305等待下一輸入,其中處理器305通過執(zhí)行另一組指令來對(duì)該下一輸入作出反應(yīng)???以從一個(gè)或多個(gè)源提供各輸入,其中該輸入包括一個(gè)或多個(gè)輸入裝置302、303所生成的數(shù) 據(jù)、從外部源經(jīng)由網(wǎng)絡(luò)320、302其中之一所接收到的數(shù)據(jù)、從存儲(chǔ)裝置306、309其中之一所 檢索到的數(shù)據(jù)或者從插入相應(yīng)的讀取器312內(nèi)的存儲(chǔ)介質(zhì)325所檢索到的數(shù)據(jù)(所有這些 組件均在圖3A中示出)。執(zhí)行一組指令在一些情況下可能會(huì)導(dǎo)致輸出數(shù)據(jù)。執(zhí)行還可能涉 及將數(shù)據(jù)或變量存儲(chǔ)至存儲(chǔ)器334。
[0138] 編碼器100、解碼器200和所述方法使用存儲(chǔ)在存儲(chǔ)器334內(nèi)的相應(yīng)存儲(chǔ)器位置 355、356、357中的輸入變量354。編碼器100、解碼器200和所述方法產(chǎn)生存儲(chǔ)在存儲(chǔ)器334 內(nèi)的相應(yīng)存儲(chǔ)器位置362、363、364中的輸出變量361??梢詫⒅虚g變量358存儲(chǔ)在存儲(chǔ)器 位置 359、360、366 和 367 中。
[0139] 參考圖3B的處理器305,寄存器344、345、346、運(yùn)算邏輯單元以1^)340和控制單 元339 -起工作以進(jìn)行微操作序列,其中這些微操作序列是針對(duì)構(gòu)成程序333的指令集中 的每個(gè)指令進(jìn)行"提取、解碼和執(zhí)行"周期所需的。各提取、解碼和執(zhí)行周期包括以下操作:
[0140] (a)提取操作,用于從存儲(chǔ)器位置328、329、330提取或讀取指令331 ;
[0141] (b)解碼操作,其中在該解碼操作中,控制單元339判斷提取了哪個(gè)指令;以及
[0142] (c)執(zhí)行操作,其中在該執(zhí)行操作中,控制單元339和/或ALU 340執(zhí)行該指令。
[0143] 之后,可以執(zhí)行針對(duì)下一指令的進(jìn)一步提取、解碼和執(zhí)行周期。同樣,可以進(jìn)行存 儲(chǔ)周期,其中在該存儲(chǔ)周期中,控制單元339將值存儲(chǔ)至或?qū)懭氪鎯?chǔ)器位置332。
[0144] 要說明的處理中的各步驟或子處理與程序333的一個(gè)或多個(gè)區(qū)段相關(guān)聯(lián),并且通 過處理器305中的寄存器部344、345、347、ALU 340和控制單元339 -起工作以針對(duì)程序 333的所述區(qū)段的指令集中的每個(gè)指令進(jìn)行提取、解碼和執(zhí)行周期,來進(jìn)行各步驟或子處 理。
[0145] 可選地,可以在諸如進(jìn)行所述方法的功能或子功能的一個(gè)或多個(gè)集成電路等的專 用硬件中實(shí)現(xiàn)編碼器1〇〇、解碼器200和所述方法。這種專用硬件可以包括圖形處理器、數(shù) 字信號(hào)處理器、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)或者一個(gè)或多個(gè)微處理器 和關(guān)聯(lián)存儲(chǔ)器。
[0146] 如上所述,可以將視頻編碼器100作為駐留在硬盤驅(qū)動(dòng)器310上并且由處理器305 控制其執(zhí)行的軟件應(yīng)用程序333的一個(gè)或多個(gè)軟件代碼模塊來實(shí)現(xiàn)。特別地,視頻編碼器 100包括各自可以作為軟件應(yīng)用程序333的一個(gè)或多個(gè)軟件代碼模塊來實(shí)現(xiàn)的模塊102? 112、114 和 115。
[0147] 盡管圖1的視頻編碼器100是高效率視頻編碼(HEVC)視頻解碼流水線的示例,但 模塊102?112、114和115所進(jìn)行的處理階段對(duì)于諸如VC-1或H. 264/MPEG-4AVC等的其 它視頻編解碼器是共通的。視頻編碼器100接收未編碼的幀數(shù)據(jù)101作為包括亮度樣本和 色度樣本的一系列幀。視頻編碼器1〇〇將幀數(shù)據(jù)101的各幀分割成例如可表示為編碼單位 (CU)樹的編碼單位(CU)的層級(jí)集合。
[0148] 視頻編碼器100通過從多路復(fù)用器模塊110輸出已知為預(yù)測(cè)單位(PU) 120的預(yù)測(cè) 數(shù)據(jù)樣本的陣列來進(jìn)行工作。差模塊115輸出預(yù)測(cè)單位(PU) 120和從幀數(shù)據(jù)101所接收到 的數(shù)據(jù)樣本的相應(yīng)陣列之間的差,其中該差已知為殘差數(shù)據(jù)樣本122。
[0149] 來自差模塊115的殘差數(shù)據(jù)樣本122被變換模塊102接收到,其中該變換模塊 102將該差從空間表示轉(zhuǎn)換為頻域表示,以針對(duì)變換樹中的各變換單位(TU)創(chuàng)建變換系數(shù) 124。針對(duì)開發(fā)中的高效率視頻編碼(HEVC)標(biāo)準(zhǔn),使用改進(jìn)的離散余弦變換(DCT)來實(shí)現(xiàn) 向著頻域表示的轉(zhuǎn)換,其中在該改進(jìn)的離散余弦變換中,對(duì)傳統(tǒng)的DCT進(jìn)行修改以使用移 位和加法來實(shí)現(xiàn)。然后將變換系數(shù)124輸入至縮放和量化模塊103,并且進(jìn)行縮放和量化以 產(chǎn)生殘差系數(shù)126。該縮放和量化處理導(dǎo)致精度損失。
[0150] 將殘差系數(shù)126視為向著逆縮放模塊105的輸入,其中該逆縮放模塊105反轉(zhuǎn)縮 放和量化模塊103所進(jìn)行的縮放以產(chǎn)生作為殘差系數(shù)126的重新縮放版本的重新縮放變換 系數(shù)128。還將殘差系數(shù)126視為向著熵編碼器模塊104的輸入,其中該熵編碼器模塊104 將殘差系數(shù)編碼在編碼位流113中。由于縮放和量化模塊103所引起的精度損失,因此重新 縮放變換系數(shù)128與原始變換系數(shù)124不一致。然后,將來自逆縮放模塊105的重新縮放 變換系數(shù)128輸出至逆變換模塊106。逆變換模塊106進(jìn)行從頻域向著空間域的逆變換,以 產(chǎn)生與在解碼器處所產(chǎn)生的空間域表示相同的重新縮放變換系數(shù)128的空間域表示130。
[0151] 運(yùn)動(dòng)估計(jì)模塊107通過將幀數(shù)據(jù)101與配置在存儲(chǔ)器306內(nèi)的幀緩沖器模塊112 中所存儲(chǔ)的先前幀數(shù)據(jù)進(jìn)行比較來產(chǎn)生運(yùn)動(dòng)矢量132。然后將這些運(yùn)動(dòng)矢量132輸入至運(yùn) 動(dòng)補(bǔ)償模塊108,其中該運(yùn)動(dòng)補(bǔ)償模塊108考慮到源自于運(yùn)動(dòng)矢量132的空間偏移,通過對(duì) 幀緩沖器模塊112中所存儲(chǔ)的樣本進(jìn)行濾波來產(chǎn)生幀間預(yù)測(cè)的參考樣本134。盡管圖1沒 有示出,但還將運(yùn)動(dòng)矢量132作為句法元素傳遞至熵編碼器模塊104以編碼在編碼位流113 中。幀內(nèi)預(yù)測(cè)模塊109使用從求和模塊114獲得的樣本138來產(chǎn)生幀內(nèi)預(yù)測(cè)的參考樣本 136,其中該求和模塊114對(duì)多路復(fù)用器模塊110的輸出120和來自逆變換模塊106的輸出 130進(jìn)行求和。
[0152] 可以使用幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)方法來對(duì)預(yù)測(cè)單位(PU)進(jìn)行編碼。根據(jù)由此得到 的編碼位流113的期望位率和由于幀內(nèi)預(yù)測(cè)或幀間預(yù)測(cè)方法而引入的圖像質(zhì)量失真量之 間的率失真權(quán)衡來判斷是使用幀內(nèi)預(yù)測(cè)還是幀間預(yù)測(cè)。如果使用幀內(nèi)預(yù)測(cè),則還根據(jù)率失 真權(quán)衡,從一組可能模式中選擇一個(gè)幀內(nèi)預(yù)測(cè)模式。針對(duì)各預(yù)測(cè)單位選擇一個(gè)幀內(nèi)預(yù)測(cè)模 式。
[0153] 多路復(fù)用器模塊110根據(jù)利用盡管未示出但本領(lǐng)域內(nèi)眾所周知的控制邏輯所確 定的當(dāng)前預(yù)測(cè)模式142,來選擇來自幀內(nèi)預(yù)測(cè)模塊109的幀內(nèi)預(yù)測(cè)的參考樣本136或來自運(yùn) 動(dòng)補(bǔ)償塊108的幀間預(yù)測(cè)的參考樣本134。還將預(yù)測(cè)模式142提供至熵編碼器104,并且如 此使用該預(yù)測(cè)模式142來確定或建立如將說明的變換單位的掃描順序。幀間預(yù)測(cè)僅使用對(duì) 角掃描順序,而幀內(nèi)預(yù)測(cè)可以使用對(duì)角掃描、水平掃描或垂直掃描順序。
[0154] 求和模塊114產(chǎn)生總和138,其中將該總和138輸入至去塊濾波器模塊111。去塊 濾波器模塊111沿著塊邊界進(jìn)行濾波,從而產(chǎn)生寫入存儲(chǔ)器306內(nèi)所配置的幀緩沖器模塊 112的去塊樣本140。幀緩沖器模塊112是具有用以保持來自多個(gè)過去幀的數(shù)據(jù)以供將來 參考的充足容量的緩沖器。
[0155] 在視頻編碼器100中,通過求出輸入幀數(shù)據(jù)101的數(shù)據(jù)樣本和輸入幀數(shù)據(jù)101的 數(shù)據(jù)樣本的預(yù)測(cè)120之間的差來確定一個(gè)變換單位(TU)內(nèi)的殘差數(shù)據(jù)樣本122。該差提供 變換單位(TU)的殘差系數(shù)的空間表示。將變換單位(TU)的殘差系數(shù)轉(zhuǎn)換成二維有效性映 射。
[0156] 然后,按已知為掃描順序的特定順序來掃描變換單位(TU)中的殘差系數(shù)的有效 性映射,以形成被稱為有效系數(shù)標(biāo)志的列表的標(biāo)志值的一維列表??梢悦枋鲈搾呙桧樞颍?者可以通過諸如利用預(yù)測(cè)模式142從幀內(nèi)預(yù)測(cè)模塊109所接收到的掃描模式等的掃描模式 來指定該掃描順序。掃描模式可以是水平、垂直、對(duì)角或折線的。
[0157] 高效率視頻編碼(HEVC)測(cè)試模型的版本6(即,"HE_6.0")進(jìn)行后向方向上的掃 描。然而,還可以進(jìn)行前向方向上的掃描。在HEVC參考模型版本6.0(即,"HE_6.0")中, 掃描操作開始最末有效系數(shù)之后(其中,"之后"是在殘差系數(shù)的后向掃描的方向上)的一 個(gè)殘差系數(shù),并且繼續(xù)直到到達(dá)有效性映射的左上位置為止。具有該特性并且符合HEVC參 考模型版本6. 0的掃描操作已知為"后向掃描"。在HEVC參考軟件版本6. 0 (即,"HE_6. 0") 中,通過對(duì)變換單位(TU)中的系數(shù)的坐標(biāo)進(jìn)行編碼來用信號(hào)通知最末有效系數(shù)的位置。該 上下文中的形容詞"最末"的使用依賴于掃描的特定順序。根據(jù)一個(gè)掃描模式可以作為"最 末的"非零殘差系數(shù)或相應(yīng)的1值有效系數(shù)標(biāo)志的內(nèi)容根據(jù)其它掃描模式可能不是"最末 的"。
[0158] 將表示最末有效系數(shù)之前的各殘差系數(shù)的有效性的有效系數(shù)標(biāo)志的列表編碼在 位流中。由于針對(duì)最末有效系數(shù)標(biāo)志的位置的先前編碼隱含表示該殘差系數(shù)是有效的,因 此不要求將最末有效系數(shù)標(biāo)志值明確編碼在位流中。
[0159] 較大值的殘差系數(shù)向著變換單位(TU)的左上方的聚集導(dǎo)致列表中較早的大部分 有效性標(biāo)志是有效的,而稍后在列表中發(fā)現(xiàn)較少的有效性標(biāo)志。
[0160] 如上所述,視頻編碼器100還包括實(shí)現(xiàn)熵編碼方法的熵編碼器模塊104。熵編碼器 模塊104根據(jù)從縮放和量化模塊103接收到的傳入殘差系數(shù)數(shù)據(jù)(或殘差系數(shù))126產(chǎn)生 句法元素。熵編碼器模塊104輸出編碼位流113,并且以下將更詳細(xì)地進(jìn)行說明。對(duì)于開發(fā) 中的高效率視頻編碼(HEVC)標(biāo)準(zhǔn),將編碼位流113描繪成網(wǎng)絡(luò)抽象層(NAL)單位。幀的各 片包含在一個(gè)NAL單位中。
[0161] 針對(duì)熵編碼器模塊104中所實(shí)現(xiàn)的熵編碼方法,存在幾個(gè)替代方案。開發(fā)中的 高效率視頻編碼(HEVC)標(biāo)準(zhǔn)支持上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC),其中在H. 264/ MPEG-4AVC中發(fā)現(xiàn)上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)的變形。替代的熵編碼方案已知 為概率區(qū)間劃分熵(PIPE)編碼器。
[0162] 對(duì)于支持多個(gè)視頻編碼方法的視頻編碼器100,根據(jù)編碼器100的結(jié)構(gòu)來選擇所 支持的熵編碼方法其中之一。此外,在對(duì)來自各幀的編碼單位進(jìn)行編碼時(shí),熵編碼器模塊 104編寫編碼位流113,以使得各幀具有一個(gè)或多個(gè)片,其中各片包含該幀的一部分的圖像 數(shù)據(jù)。針對(duì)每幀產(chǎn)生一個(gè)片,這樣減少了與描述各片邊界相關(guān)聯(lián)的開支。然而,還可以將幀 分割成多個(gè)片。
[0163] 可以將圖2的視頻解碼器200作為駐留在硬盤驅(qū)動(dòng)器310上并且由處理器305來 控制其執(zhí)行的軟件應(yīng)用程序333的一個(gè)或多個(gè)軟件代碼模塊來實(shí)現(xiàn)。特別地,視頻解碼器 200包括各自可以作為軟件應(yīng)用程序333的一個(gè)或多個(gè)軟件代碼模塊來實(shí)現(xiàn)的模塊202? 208和210。盡管參考高效率視頻編碼(HEVC)視頻解碼流水線來描述視頻解碼器200,但 模塊202?208和209所進(jìn)行的處理階段對(duì)于采用諸如H. 264/MPEG-4AVC、MPEG-2和VC-1 等的熵編碼的其它視頻編解碼器而言是共通的。
[0164] 諸如編碼位流113等的編碼位流被視頻解碼器200接收到??梢詮拇鎯?chǔ)器306、硬 盤驅(qū)動(dòng)器310、⑶-ROM、藍(lán)光(Blu-ray?)盤或其它計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)讀取編碼位流113。 可選地,可以從諸如連接至通信網(wǎng)絡(luò)320的服務(wù)器或射頻接收器等的外部源來接收編碼位 流113。編碼位流113包含表示要解碼的幀數(shù)據(jù)的編碼句法元素。
[0165] 將編碼位流113輸入至熵解碼器模塊202,其中該熵解碼器模塊202從編碼位流 113中提取句法元素,并且將這些句法元素的值傳遞至視頻解碼器200中的其它塊。可以存 在諸如參考熵編碼器模塊104所述等的在熵解碼器模塊202中所實(shí)現(xiàn)的多個(gè)熵解碼方法。 將表示殘差系數(shù)數(shù)據(jù)的句法元素?cái)?shù)據(jù)220傳遞至逆縮放和變換模塊203,并且將表示運(yùn)動(dòng) 矢量信息的句法元素?cái)?shù)據(jù)222傳遞至運(yùn)動(dòng)補(bǔ)償模塊204。逆縮放和變換模塊203對(duì)殘差系 數(shù)數(shù)據(jù)進(jìn)行逆縮放以創(chuàng)建重建變換系數(shù)。然后,諸如參考逆變換模塊106所述的逆變換等, 模塊203進(jìn)行逆變換以將重建變換系數(shù)從頻域表示轉(zhuǎn)換成空間域表示,從而產(chǎn)生殘差樣本 224。
[0166] 運(yùn)動(dòng)補(bǔ)償模塊204將來自熵解碼器模塊202的運(yùn)動(dòng)矢量數(shù)據(jù)222與來自存儲(chǔ)器 306內(nèi)所配置的幀緩沖器塊208的先前幀數(shù)據(jù)226相組合使用,以產(chǎn)生作為輸出解碼幀數(shù)據(jù) 的預(yù)測(cè)的針對(duì)預(yù)測(cè)單位(PU)的幀間預(yù)測(cè)參考樣本228。在句法元素表示使用幀內(nèi)預(yù)測(cè)對(duì)當(dāng) 前編碼單位進(jìn)行編碼的情況下,幀內(nèi)預(yù)測(cè)模塊205使用在空間上鄰接預(yù)測(cè)單位(PU)的樣本 來產(chǎn)生針對(duì)預(yù)測(cè)單位(PU)的幀內(nèi)預(yù)測(cè)的參考樣本230。根據(jù)從求和模塊210輸出的總和 232來獲得在空間上鄰接的樣本。多路復(fù)用器模塊206根據(jù)利用編碼位流113中的句法元 素所表示的當(dāng)前預(yù)測(cè)模式來選擇針對(duì)預(yù)測(cè)單位(PU)的幀內(nèi)預(yù)測(cè)參考樣本或幀間預(yù)測(cè)參考 樣本。利用求和模塊210將從多路復(fù)用器模塊206輸出的樣本陣列234與來自逆縮放和變 換模塊203的殘差樣本224相加,以產(chǎn)生總和232,然后將該總和232分別輸入至去塊濾波 器模塊207和幀內(nèi)預(yù)測(cè)模塊205。與編碼器100相對(duì)比,幀內(nèi)預(yù)測(cè)模塊205從熵解碼器202 接收預(yù)測(cè)模式236。多路復(fù)用器206從熵解碼器202接收幀內(nèi)預(yù)測(cè)/幀間預(yù)測(cè)選擇信號(hào)。 去塊濾波器模塊207沿著數(shù)據(jù)塊邊界進(jìn)行濾波以使沿著數(shù)據(jù)塊邊界可見的偽影平滑化。將 去塊濾波器模塊207的輸出寫入存儲(chǔ)器306內(nèi)所配置的幀緩沖器模塊208。幀緩沖器模塊 208提供用以保持多個(gè)解碼幀以供將來參考的充足存儲(chǔ)量。還從幀緩沖器模塊208輸出解 碼幀209。
[0167] 將參考圖4A和圖4B來說明示例的變換單位(TU) 400的空間結(jié)構(gòu)。
[0168] 圖4A示出示例的變換單位(TU) 400。變換單位400具有矩形空間結(jié)構(gòu)并且大小可 以為4X4?32X32。變換單位(TU)400的寬度和高度取作為二(2)的整數(shù)冪的值。
[0169] 如上所述,變換單位(TU)保持殘差系數(shù)??梢远x將變換單位(TU)400分割成 一個(gè)或多個(gè)子集401的集合的兩級(jí)掃描。根據(jù)最末有效系數(shù)的位置,除可能包含少于十六 (16)個(gè)殘差系數(shù)的按掃描順序的第一個(gè)子集以外,各子集包括按掃描順序403的十六(16) 個(gè)連續(xù)殘差系數(shù)。如從圖4B看出,示例的變換單位400相對(duì)于掃描順序403具有最末有效 系數(shù)位置451。
[0170] 如從圖4A看出,在變換單位400的上級(jí)處,通過使用諸如后向?qū)亲笙聮呙璧鹊?掃描來掃描各下級(jí),進(jìn)行掃描。在還已知為"子集級(jí)"的變換單位400的下級(jí)處,可以使用 諸如后向?qū)亲笙聮呙璧鹊膾呙鑱磉M(jìn)行掃描。在變換單位400的上掃描級(jí)處,如果下一子 集不包含任何有效殘差系數(shù),則可以確定不進(jìn)行下一子集的下級(jí)掃描。
[0171] 變換單位400包含不具有有效殘差系數(shù)的子集452。在該示例中,可以針對(duì)子集 452跳過下級(jí)掃描步驟,并且高級(jí)掃描按掃描順序403進(jìn)入下一子集。變換單位400的左上 子集405具有子集索引零。其它子集按與掃描順序相反的順序具有遞增索引。
[0172] 將參考圖5和圖7來說明諸如變換單位(TU)400等的變換單位(TU)的句法元素 結(jié)構(gòu)。位流113的位流部501包含變換單位(TU)400的句法元素并且包括以下句法元素。
[0173] (i) delta_qp 502 :delta_qp句法元素502包含與用于對(duì)變換單位(TU) 400進(jìn)行 量化的量化參數(shù)值和預(yù)定量化參數(shù)值之間的差有關(guān)的信息。
[0174] (ii) last_significant_xy 503 :last_significant_xy 句法兀素 503 包含與變換單 位(TU)400中的最末有效殘差系數(shù)的位置有關(guān)的信息。
[0175] (iii)子集殘差系數(shù)數(shù)據(jù)504 :子集殘差系數(shù)數(shù)據(jù)包括零個(gè)或多個(gè)塊701,并且包 含與變換單位(TU)400的殘差系數(shù)的值有關(guān)的信息。
[0176] 如圖7所示,塊701包含與變換單位(TU)的一個(gè)子集的殘差系數(shù)的值有關(guān)的信 息,并且包括以下句法元素。
[0177] (i) significant_coefT_group_flag 702 :針對(duì)各子集對(duì) significant_coeff_ gr〇Up_flag句法元素702進(jìn)行一次編碼,并且在"假"的情況下,推斷出子集中的所有殘 差系數(shù)為零,并且在塊701中不存在殘差系數(shù)數(shù)據(jù)703、704、705、706和707。否則(在 significant_coeff_group_flag句法元素702為"真"的情況下),子集中的至少一個(gè)殘差 系數(shù)具有非零值,并且在塊701中存在殘差系數(shù)數(shù)據(jù)703、704、705、706和707的一些組合。
[0178] (ii)零個(gè)或多個(gè) significant_coeff_flag 值的塊 703 :如果 significant_coeff_ group_flag 702表示塊703的存在,則存在塊703。除最末有效殘差系數(shù)以外,針對(duì)子集的 每個(gè)殘差系數(shù)在塊703中均存在significant_coeff_flag 702的值,以表不給定殘差系數(shù) 的量值是否大于零。
[0179] (iii)零個(gè)或多個(gè) coeff_abs_level_greaterl_flag 值的塊 7〇4 :如果 significant_coeff_group_flag 702表示塊704的存在,貝U存在塊704。針對(duì)子集的量值被 表不為大于零的每個(gè)殘差系數(shù),在塊703中存在coeff_abs_level_greaterl_f lag值,以表 示給定殘差系數(shù)的量值是否大于1。
[0180] (iv)零個(gè)或多個(gè) coeff_abs_level_greater2_flag 值的塊 705 :如果 significant_coeff_group_flag 702表示塊705的存在,則存在塊705。針對(duì)子集的量值被 表不為大于1的每個(gè)殘差系數(shù),在塊705中存在coeff_abs_level_greater2_flag值,以表 示給定殘差系數(shù)的量值是否大于2。
[0181] (v)零個(gè)或多個(gè) coeff_sign_flag 值的塊 706 :如果 significant_coeff_group_ flag 702表示塊706的存在,則存在塊706。針對(duì)量值被表示為大于零的每個(gè)殘差系數(shù),在 塊706中存在coeff_sign_flag值,以表示給定殘差系數(shù)的算術(shù)符號(hào)。
[0182] (vi)零個(gè)或多個(gè)coeff_abs_level_remaining值的塊707 :針對(duì)殘差系數(shù)量 值-3的給定值(即,剩余殘差系數(shù)量值),塊707的各coeff_abs_level_remaining值 是 Golomb-Rice 碼字。如果 significant_coeff_group_flag 702 表示塊 707 的存在,貝丨J存 在塊707。針對(duì)量值被表示為大于2的各殘差系數(shù),在塊707中存在C〇eff_abs_l evel_ remaining值。coeff_abs_level_remaining值針對(duì)給定殘差系數(shù)的剩余殘差系數(shù)量值,指 定Golomb-Rice碼字的值。
[0183] 現(xiàn)在將參考圖6A來說明對(duì)變換單位(TU)進(jìn)行編碼的方法650??梢詫⒎椒?50 作為編碼器100的熵編碼器模塊104的一部分來實(shí)現(xiàn)。如上所述,構(gòu)成編碼器100的軟件 代碼模塊102?112、114和115駐留在硬盤驅(qū)動(dòng)器310上,并且由處理器305控制這些模 塊的執(zhí)行。
[0184] 將參考圖5的位流部501來以示例方式說明方法650。方法650將delta_qp502、 last_significant_xy503和數(shù)據(jù)504編碼在位流部501中。
[0185] 方法650從對(duì)delta-qp值進(jìn)行編碼的步驟651開始,其中在該步驟651中,在處 理器305的執(zhí)行下,利用編碼器模塊104對(duì)delta-qp值進(jìn)行編碼,并且存儲(chǔ)在存儲(chǔ)器306 中。
[0186] 然后,在對(duì)最末有效位置進(jìn)行編碼的步驟652中,在處理器305的執(zhí)行下,利用編 碼器模塊104將最末有效殘差系數(shù)的位置編碼在位流部501中??梢詫⑽涣鞑?01存儲(chǔ)在 存儲(chǔ)器306中。使用最末有效殘差系數(shù)的位置、變換單位的寬度和高度和與掃描順序403 有關(guān)的信息來確定要編碼在變換單位(TU)中的子集的數(shù)量。
[0187] 方法650在對(duì)子集進(jìn)行編碼的步驟653中繼續(xù),其中在該步驟653中,利用編碼器 模塊104對(duì)子集數(shù)據(jù)504進(jìn)行編碼并且存儲(chǔ)在存儲(chǔ)器306內(nèi)。
[0188] 然后,在確定步驟654中,編碼器模塊104基于與變換單位(TU)中的最末有效殘 差系數(shù)的位置和所使用的掃描順序403有關(guān)的信息,判斷是否應(yīng)將更多子集504編碼在位 流部501中。如果編碼器模塊104判斷為存在要編碼的更多子集504,則方法650返回至對(duì) 子集進(jìn)行編碼的步驟653。如此,方法650迭代地進(jìn)行步驟653和654,直到處理了從包含 最末有效系數(shù)的子集到第一個(gè)子集的所有子集為止。否則,方法650結(jié)束。
[0189] 將參考圖6B來說明對(duì)變換單位(TU)進(jìn)行解碼的方法600??梢詫⒎椒?00作為 解碼器200的熵解碼器模塊202的一部分來實(shí)現(xiàn)。如上所述,構(gòu)成解碼器200的軟件代碼 模塊202?208和210駐留在硬盤驅(qū)動(dòng)器310上,并且由處理器305控制執(zhí)行這些模塊的 執(zhí)行。
[0190] 再次,將參考根據(jù)方法650進(jìn)行編碼后的圖5的位流部501來以示例方式說明方 法600。方法600從位流部501解碼數(shù)據(jù)塊502、503、504。
[0191] 該方法從對(duì)delta-qp值進(jìn)行解碼的步驟601開始,其中在該步驟601中,在處理 器305的執(zhí)行下,利用解碼器模塊202確定delta-qp標(biāo)志的值??梢詫elta-qp標(biāo)志值 存儲(chǔ)在存儲(chǔ)器306中。
[0192] 然后,在對(duì)最末有效位置進(jìn)行解碼的步驟602中,利用解碼器模塊202確定變換單 位(TU)中的最末有效殘差系數(shù)的位置。使用最末有效殘差系數(shù)的位置、變換單位的寬度和 高度以及與掃描順序403有關(guān)的信息來確定在變換單位(TU)中要解碼的子集的數(shù)量。
[0193] 方法600在對(duì)子集進(jìn)行解碼的步驟603中繼續(xù),其中在該步驟603中,在處理器 305的執(zhí)行下,利用解碼器模塊202對(duì)子集數(shù)據(jù)504進(jìn)行解碼??梢詫⒔獯a后的子集數(shù)據(jù)存 儲(chǔ)在存儲(chǔ)器306內(nèi)。
[0194] 然后,在確定步驟604中,解碼器模塊202基于與變換單位(TU)中的最末有效殘 差系數(shù)的位置和所使用的掃描順序403有關(guān)的信息,來判斷是否應(yīng)從位流部501解碼更多 子集504。
[0195] 如果解碼器模塊202判斷為存在要解碼的更多子集504,則方法600返回至子集步 驟603。否則,方法600結(jié)束。
[0196] 現(xiàn)在將參考圖8A來說明對(duì)變換單位(TU)的子集進(jìn)行編碼的方法850??梢詫⒎?法850作為編碼器100的熵編碼器模塊104的一部分來實(shí)現(xiàn)。如上所述,構(gòu)成編碼器100 的軟件代碼模塊102?112U14和115駐留在硬盤驅(qū)動(dòng)器310上,并且由處理器305控制 這些模塊的執(zhí)行。
[0197] 將參考圖7的塊701以示例方式說明方法850。方法850將塊702、703、704、705、 706、707編碼在位流部501中。
[0198] 方法850從對(duì)有效組標(biāo)志進(jìn)行編碼的步驟851開始,其中在該步驟851中,編碼器 模塊104在處理器305的執(zhí)行下,對(duì)significant_coeff_group_flag 702的值進(jìn)行編碼并 將編碼值存儲(chǔ)在存儲(chǔ)器306中。
[0199] 然后,在步驟852中,如果significant_coeff_group_flag 702的值表示子集包含 針對(duì)塊703、704、705、706、707要編碼的數(shù)據(jù),則方法850進(jìn)入步驟853。否則,方法850結(jié) 束。
[0200] 在編碼步驟853中,編碼器模塊104在處理器305的執(zhí)行下,對(duì)significant# C〇eff_flag值的塊703進(jìn)行編碼。編碼器模塊104針對(duì)子集的除變換單位(TU)的最末有 效殘差系數(shù)以外的各殘差系數(shù),確定一個(gè)significant_coeff_flag值??梢詫ignificant# coeff_f lag值存儲(chǔ)在存儲(chǔ)器306中。
[0201] 然后,在編碼步驟854中,編碼器模塊104對(duì)coeff_abs_level_greaterl_flag值 的塊704進(jìn)行編碼。編碼器模塊104針對(duì)子集的量值大于零的各殘差系數(shù),確定一個(gè)coeff_ abs_level_greaterl_flag 值??梢詫⒕幋a后的 coeff_abs_level_greaterl_flag 值存儲(chǔ) 在存儲(chǔ)器306中。
[0202] 在編碼步驟855中,編碼器模塊104對(duì)coeff_abs_level_greater2_flag值的塊 705進(jìn)行編碼。編碼器模塊104針對(duì)子集的量值大于1的各殘差系數(shù),確定一個(gè)c 〇eff_abs_ level_greater2_flag 值。可以將編碼后的 coeff_abs_level_greater2_flag 值存儲(chǔ)在存 儲(chǔ)器306中。
[0203] 然后,在編碼步驟856中,編碼器模塊104在處理器305的執(zhí)行下,對(duì)c〇eff_sign_ flag值的塊706進(jìn)行編碼。編碼器模塊104針對(duì)子集的量值大于零的各殘差系數(shù),確定一 個(gè)coeff_sign_flag值。可以將編碼后的coeff_sign_flag值存儲(chǔ)在存儲(chǔ)器306中。
[0204] 在編碼步驟857中,編碼器模塊104對(duì)coeff_abs_level_remaining值的塊707進(jìn) 行編碼。編碼器模塊104針對(duì)子集的量值大于2的各殘差系數(shù),確定一個(gè) C〇eff_abs_level_ remaining值??梢詫⒕幋a后的coeff_abs_level_remaining值存儲(chǔ)在存儲(chǔ)器306中。在 步驟857之后,方法850結(jié)束。
[0205] 將參考圖8B來說明對(duì)變換單位(TU)的子集進(jìn)行解碼的方法800??梢詫⒎椒?00 作為解碼器200的熵解碼器模塊202的一部分來實(shí)現(xiàn)。如上所述,構(gòu)成解碼器200的軟件 代碼模塊202?208和210駐留在硬盤驅(qū)動(dòng)器310上,并且由處理器305控制這些模塊的 執(zhí)行。
[0206] 將參考圖7的塊701來以示例方式說明方法800。方法800從位流部501解碼塊 702、703、704、705、706、707。
[0207] 方法800從對(duì)有效組標(biāo)志進(jìn)行解碼的步驟801開始,其中在該步驟801中,解 碼器模塊202對(duì)significant_coeff_group_flag 702的值進(jìn)行解碼??梢詫⒔獯a后的 significant_coeff_group_flag 702 值存儲(chǔ)在存儲(chǔ)器 306 中。
[0208] 然后,在步驟802中,如果解碼器模塊202判斷為significant_coeff_group_flag 702的值表示子集包含殘差系數(shù)數(shù)據(jù)塊703、704、705、706、707,則方法800進(jìn)入步驟803。 否則,方法800結(jié)束。
[0209] 在解碼步驟803中,解碼器模塊202在處理器305的執(zhí)行下,對(duì)significant# coeff_f lag值的塊703進(jìn)行解碼。解碼器模塊202針對(duì)子集的除變換單位(TU)的最末 有效殘差系數(shù)以外的各殘差系數(shù),確定一個(gè)significant_coeff_flag值??梢詫⒔獯a后的 significant_coeff_flag 值存儲(chǔ)在存儲(chǔ)器 306 中。
[0210] 然后,在解碼步驟 804 中,解碼器模塊 202 對(duì) coeff_abs_level_greaterl_flag 值的塊704進(jìn)行解碼。解碼器模塊202針對(duì)子集的在步驟803中量值被確定為大于零的 各殘差系數(shù),確定一個(gè)coeff_abs_level_greaterl_flag值??梢詫⒔獯a后的coeff_abs_ level_greaterl_f lag值存儲(chǔ)在存儲(chǔ)器306中。
[0211] 在解碼步驟805中,解碼器模塊202在處理器305的執(zhí)行下,對(duì)coeff_abs_level_ greater2_flag值的塊705進(jìn)行解碼。解碼器模塊202針對(duì)子集的在步驟804中量值被確 定為大于1的各殘差系數(shù),確定一個(gè)coeff_abs_level_greater2_flag值。可以將解碼后 的 coeff_abs_level_greater2_flag 值存儲(chǔ)在存儲(chǔ)器 306 中。
[0212] 然后,在解碼步驟806中,解碼器模塊202對(duì)coeff_sign_flag值的塊706進(jìn)行解 碼。解碼器模塊202針對(duì)子集的在步驟803中量值被確定為大于零的各殘差系數(shù),確定一 個(gè)coeff_sign_flag值??梢詫oeff_sign_flag值存儲(chǔ)在存儲(chǔ)器306中。
[0213] 方法800在步驟807中結(jié)束,其中在步驟807中,解碼器模塊202對(duì)coeff_abs_ level_remaining值的塊707進(jìn)行解碼。解碼器模塊202針對(duì)子集的在步驟805中量值被 確定為大于2的各殘差系數(shù),確定一個(gè)coeff_abs_level_remaining值。同樣在步驟807 中,解碼器模塊202針對(duì)給定殘差系數(shù)的剩余殘差系數(shù)量值,確定Golomb-Rice碼字的值。
[0214] 在步驟807之后,方法800結(jié)束。
[0215] 現(xiàn)在將參考圖9、圖10、圖14A和圖14B來說明參數(shù)化Golomb-Rice碼和這些碼在 HEVC參考模型版本6.0中的使用以及這里所述的方法。
[0216] 參數(shù)化Golomb-Rice碼是用于表示變換單位(TU)的殘差系數(shù)的剩余殘差系數(shù)量 值的一類通用前綴二進(jìn)制碼。前綴二進(jìn)制碼是每個(gè)二進(jìn)制碼字具有唯一前綴的二進(jìn)制值表 示。這種唯一前綴使得能夠?qū)⑻囟ùa字與其它碼字區(qū)分開,這是唯一地識(shí)別這些碼字所表 示的值所需的。
[0217] 參數(shù)化Golomb-Rice碼的各碼字可以包括參數(shù)化截?cái)郣ice前綴部分和可能的空 階次〇指數(shù)Golomb后綴部分這兩部分。截?cái)郣ice前綴部分依賴于可能取值0、1、2、3、4的 參數(shù)K。對(duì)于參數(shù)K的每個(gè)值,定義閾值。如果殘差系數(shù)剩余量值的編碼值小于閾值,則利 用無指數(shù)Golomb后綴的截?cái)郣ice碼來對(duì)該值進(jìn)行編碼。
[0218] 如果殘差系數(shù)剩余量值的編碼值等于或大于閾值,則對(duì)預(yù)定截?cái)郣ice碼字進(jìn)行 編碼,以表示編碼值等于或大于閾值。此外,使用階次0指數(shù)Golomb碼對(duì)與(原始編碼 值 -閾值的值)相等的值進(jìn)行編碼。
[0219] 如從圖9看出,表900包含針對(duì)值為0?15且參數(shù)K值為0和1的示例截?cái)郣ice 碼字。
[0220] 如從圖10看出,表1000包含示例的階次0指數(shù)Golomb碼字。例如,使用具有參 數(shù) K = 0 的 Golomb-Rice 碼,將利用構(gòu)成 Golomb-Rice 碼字"11111111110"的截?cái)?Rice 前 綴"11111111"和階次0指數(shù)Golomb后綴"110"來表示值十(10)。在已知參數(shù)K的值的情 況下,可以根據(jù)給定二進(jìn)制序列來唯一地識(shí)別Golomb-Rice碼字。
[0221] 參數(shù)化Golomb-Rice碼的每個(gè)碼字具有依賴于參數(shù)K和編碼值的固定長(zhǎng)度。有限 數(shù)量的碼字可以具有給定長(zhǎng)度。如此,對(duì)于編碼值的集合,利用較短的碼字來表示一些編碼 值,而利用較長(zhǎng)的碼字來表示其它編碼值。對(duì)于視頻數(shù)據(jù)編碼,可以將碼字分配至編碼值, 從而使編碼在位流113中的所有碼字的總長(zhǎng)度最小。不同的剩余殘差系數(shù)量值在變換單位 (TU)數(shù)據(jù)中的出現(xiàn)頻率不同??梢酝ㄟ^將碼字分配至編碼值、以使得碼字的長(zhǎng)度與編碼值 的出現(xiàn)頻率相對(duì)應(yīng)來實(shí)現(xiàn)總碼字長(zhǎng)度的縮減。例如,可以向殘差系數(shù)剩余量值的更頻繁值 分配較短的碼字,并且可以向頻率相同的殘差系數(shù)剩余量值的值分配長(zhǎng)度相同的碼字。
[0222] 參數(shù)化Golomb-Rice碼的參數(shù)K使得能夠在要控制的碼字中分配碼字長(zhǎng)度。值較 小的參數(shù)K將更佳的碼字分配至量值較小的值,而值較大的參數(shù)K將更佳的碼字分配至量 值較大的值。因此,為了大體分配最佳碼字,所述方法基于殘差系數(shù)剩余量值的給定值的出 現(xiàn)頻率來確定參數(shù)K的值。
[0223] 在開發(fā)中的HEVC標(biāo)準(zhǔn)中,預(yù)先并不知曉諸如剩余殘差系數(shù)量值的值等的殘差系 數(shù)剩余量值的真實(shí)頻率,因而在子集內(nèi)進(jìn)行參數(shù)K值的估計(jì)。為了確保參數(shù)化Golomb-Rice 碼字的正確解碼,編碼器100和解碼器200可被配置為使用參數(shù)K的相同值來對(duì)特定碼字 進(jìn)行解碼。如此,頻率值的估計(jì)局限于解碼器200處可利用的信息。
[0224] 頻率值的估計(jì)可以包括初始估計(jì)和自適應(yīng)這兩個(gè)階段。
[0225] 初始估計(jì)階段針對(duì)參數(shù)K提供初始估計(jì)值。由于正對(duì)剩余殘差系數(shù)量值的值進(jìn)行 解碼并且更多信息變得可用于進(jìn)行分析,因而自適應(yīng)階段提供針對(duì)參數(shù)K的值的進(jìn)一步校 正。
[0226] 初始估計(jì)確保了更佳的碼字分配。另一方面,初始估計(jì)通常難以以如可利用不對(duì) 與剩余殘差系數(shù)量值的值有關(guān)的信息進(jìn)行解碼之前那樣的高效方式實(shí)現(xiàn)。最初確定參數(shù)K 的估計(jì)的高效方法可以提供編碼效率方面的大幅改進(jìn)。
[0227] 在參數(shù)K的初始估計(jì)期間,可以檢測(cè)進(jìn)一步自適應(yīng)將不會(huì)對(duì)參數(shù)K的值產(chǎn)生明顯 影響、因此可以跳過該自適應(yīng)的情況。自適應(yīng)階段大體改進(jìn)編碼效率。然而,對(duì)于實(shí)際情況 的廣泛類別,由于初始估計(jì)提供參數(shù)K的最佳值并且無需進(jìn)一步的自適應(yīng),因此自適應(yīng)是 冗余的。自適應(yīng)階段的一個(gè)缺點(diǎn)是無法對(duì)coeff_abs_level_remaining值的連續(xù)值進(jìn)行并 行解碼,這是因?yàn)樵诓恢獣栽谙惹癱oeff_abs_level_remaining值的解碼之后自適應(yīng)地估 計(jì)出的參數(shù)K的值的情況下,無法對(duì)各值進(jìn)行解碼。
[0228] 現(xiàn)在將參考圖11和圖12A來說明對(duì)變換單位(TU)的子集的coeff_abs_level_ remaining值的塊進(jìn)行編碼的方法1250。
[0229] 可以將方法1250作為編碼器100的熵編碼器模塊104的一部分來實(shí)現(xiàn)。如上所 述,構(gòu)成編碼器100的軟件代碼模塊102?112、114和115駐留在硬盤驅(qū)動(dòng)器310上,并且 由處理器305控制這些模塊的執(zhí)行。
[0230] 將參考圖7的coeff_abs_level_remaining值的塊707通過示例來說明方法 1250。方法1250將零個(gè)或多個(gè)coeff_abs_level_remaining值編碼在位流部501的塊701 中。
[0231] 方法1250從初始化步驟1251開始,其中在該初始化步驟1251中,在處理器305 的執(zhí)行下,利用編碼器模塊104來初始估計(jì)Golomb-Rice參數(shù)K??梢詫的初始值存儲(chǔ)在 存儲(chǔ)器306中。此外,在步驟1251中,編碼器模塊104判斷編碼期間的參數(shù)K自適應(yīng)的必 要性。
[0232] 然后,在確定步驟1257中,如果編碼器模塊104判斷為需要進(jìn)行自適應(yīng),則方法 1250進(jìn)入步驟1252。以下將更詳細(xì)地說明自適應(yīng)確定步驟1257。否則,方法1250進(jìn)入步 驟 1255。
[0233] 在確定步驟1252中,如果編碼器模塊104判斷為存在更多要編碼的c〇eff_abs_ level_remaining值,則方法1250進(jìn)入步驟1253。否則,方法1250結(jié)束。
[0234] 在編碼步驟1253中,編碼器模塊104如以上參考表900和1000所述,根據(jù) Golomb-Rice參數(shù)K的初始值來將Golomb-Rice碼字編碼在塊707中。
[0235] 然后,在更新步驟1254中,編碼器模塊104進(jìn)行要用于對(duì)下一 coeff_abs_level_ remaining值進(jìn)行編碼的參數(shù)K的值的自適應(yīng)。在步驟1254中,基于參數(shù)的當(dāng)前值Kn和最 后解碼的coeff_abs_level_remaining值這兩個(gè)參數(shù)來確定參數(shù)Κ的下一值Κ η+1??梢允?用如圖11所示的查找表1100來確定步驟1254??梢詫⒉檎冶?100存儲(chǔ)在存儲(chǔ)器306和 /或硬盤驅(qū)動(dòng)器310中。查找表1100使用值Κ η作為列并使用殘差系數(shù)量值作為行來提供 κη+1的值。例如,如果參數(shù)Κ的當(dāng)前值是一(1)并且最后解碼的coeff_abs_level_remaining 值是十二(12),則參數(shù)K的下一值是三(3)。
[0236] 在確定步驟1255中,如果編碼器模塊104判斷為存在更多要編碼的c〇eff_abs_ level_remaining值,則方法1250進(jìn)入步驟1256。否則,方法1250結(jié)束。
[0237] 在編碼步驟1256中,編碼器模塊104將Golomb-Rice碼字編碼在塊707中并將編 碼后的Golomb-Rice碼字存儲(chǔ)在存儲(chǔ)器306中。
[0238] 現(xiàn)在將參考圖11和圖12B來說明對(duì)變換單位(TU)的子集的coeff_abs_level_ remaining值的塊進(jìn)行解碼的方法1200。根據(jù)使用Golomb-Rice解碼的方法1200來進(jìn)行 解碼??梢詫⒎椒?200作為解碼器200的熵解碼器模塊202?208的一部分來實(shí)現(xiàn)。如 上所述,構(gòu)成解碼器200的軟件代碼模塊202?208和210駐留在硬盤驅(qū)動(dòng)器310上,并且 由處理器305控制這些模塊的執(zhí)行。
[0239] 將參考圖7的coeff_abs_level_remaining值的塊707通過示例來說明方法 1200。方法1200從位流部501的塊707解碼零個(gè)或多個(gè)coeff_abs_level_remaining值 (即,殘差系數(shù)剩余量值的值)。
[0240] 方法1200從初始化步驟1201開始,其中在初始化步驟1201中,在處理器305的 執(zhí)行下,利用解碼器模塊202初始確定Golomb-Rice參數(shù)K。此外,在步驟1201中,解碼器 模塊202確定解碼期間的參數(shù)K自適應(yīng)的必要性。步驟1201與步驟1251相同。
[0241] 然后,在確定步驟1207中,如果解碼器模塊202判斷為需要進(jìn)行自適應(yīng),則如以下 將說明的,方法1200進(jìn)入步驟1202。否則,方法1200進(jìn)入步驟1205。
[0242] 然后,在確定步驟1202中,如果解碼器模塊202判斷為存在更多要解碼的coefT_ abs_level_remaining值,則方法1200進(jìn)入步驟1203。否則,方法1200結(jié)束。
[0243] 在解碼步驟1203中,解碼器模塊202從存儲(chǔ)器306中所存儲(chǔ)的塊707解碼 Golomb-Rice 碼字。
[0244] 然后,在更新步驟1204中,解碼器模塊202進(jìn)行要用于對(duì)子集的下一 c〇eff_abs_ level_remaining值進(jìn)行Golomb-Rice解碼的參數(shù)K的值的自適應(yīng)。步驟1204中所進(jìn)行的 自適應(yīng)的過程與以上所述的步驟1254中所使用的自適應(yīng)的過程相同。
[0245] 在確定步驟1205中,如果解碼器模塊202判斷為存在更多要解碼的c〇eff_abs_ level_remaining值,則方法1200進(jìn)入步驟1206。否貝丨J,方法1200結(jié)束。
[0246] 在解碼步驟1206中,解碼器模塊202使用Golomb-Rice解碼來從塊707解碼 Golomb-Rice碼字??梢詫⒔獯a后的Golomb-Rice碼字存儲(chǔ)在存儲(chǔ)器306中。
[0247] 現(xiàn)在將參考圖14A和圖14B來說明剩余殘差系數(shù)量值的自適應(yīng)和非自適應(yīng)解碼。
[0248] 圖14A示出coeff_abs_level_remaining二值化器1400??梢允褂糜?jì)算機(jī)系統(tǒng) 300來實(shí)現(xiàn)二值化器模塊1400,其中在該計(jì)算機(jī)系統(tǒng)300中,可以利用在計(jì)算機(jī)系統(tǒng)300內(nèi) 可執(zhí)行的軟件來實(shí)現(xiàn)各種功能模塊1414、1413、1406、1407和1410??蛇x地,可以利用計(jì)算 機(jī)系統(tǒng)300內(nèi)的專用硬件來實(shí)現(xiàn)二值化器1400。在又一替代中,可以利用專用硬件和在計(jì) 算機(jī)系統(tǒng)300內(nèi)可執(zhí)行的軟件的組合來實(shí)現(xiàn)二值化器1400。
[0249] 可以將二值化器1400作為解碼器200的解碼器模塊202的一部分來實(shí)現(xiàn)??蛇x 地,還可以將二值化器1400作為編碼器100的編碼器模塊104的一部分來實(shí)現(xiàn)。
[0250] 二值化器1400針對(duì)變換單位(TU)的子集,對(duì)剩余殘差系數(shù)量值進(jìn)行解碼。
[0251] 二值化器1400使用參數(shù)K的自適應(yīng)估計(jì)。二值化器1400包括&的初始估計(jì)模 塊1414,其中該模塊1414如上所述進(jìn)行參數(shù)K的初始估計(jì)。
[0252] 模塊1413對(duì)剩余殘差系數(shù)量值V。進(jìn)行解碼。模塊1413接受所輸入的Go lomb-Ri ce 碼字1402和參數(shù)K的初始估計(jì)值1401。一旦模塊1413完成了解碼,則如從圖14A看出,輸 出解碼剩余殘差系數(shù)量值1412。
[0253] 模塊1406基于參數(shù)Κ的初始估計(jì)值1401和如上所述利用模塊1413進(jìn)行解碼后 的值1404來進(jìn)行參數(shù)K值的自適應(yīng)。
[0254] 模塊1407對(duì)剩余殘差系數(shù)量值Vi進(jìn)行解碼。模塊1407接受Golomb-Rice碼字 1403和參數(shù)K的估計(jì)值1405作為輸入。一旦模塊1407完成了解碼,則輸出解碼剩余殘差 系數(shù)量值1411。
[0255] 模塊1410基于參數(shù)K的先前值1405和利用模塊1407進(jìn)行解碼后的值1408來進(jìn) 行參數(shù)K值的自適應(yīng)。
[0256] 可以利用下一 Golomb-Rice解碼和自適應(yīng)模塊1415來使用參數(shù)K的估計(jì)值1409。 模塊1410依賴于模塊1407所提供的數(shù)據(jù),而模塊1407依賴于模塊1406所提供的數(shù)據(jù),而 模塊1406依賴于模塊1413所提供的數(shù)據(jù)。如此,難以并行執(zhí)行解碼模塊1413和1410。此 夕卜,解碼和自適應(yīng)模塊1415也依賴于輸入數(shù)據(jù)1416和參數(shù)K的先前估計(jì)值這兩者。然而, 在參數(shù)K的值已是最佳的情況下,諸如步驟1406和1410等的自適應(yīng)步驟不會(huì)影響參數(shù)K 的實(shí)際值。避免冗余的自適應(yīng)步驟可以在不會(huì)對(duì)編碼效率產(chǎn)生大幅影響的情況下提高解碼 吞吐量。
[0257] 圖14B不出另一 coeff_abs_level_remaining二值化器1450。再次,可以使用計(jì) 算機(jī)系統(tǒng)300來實(shí)現(xiàn)二值化器模塊1450,其中在該計(jì)算機(jī)系統(tǒng)300中,可以利用在計(jì)算機(jī)系 統(tǒng)300內(nèi)可執(zhí)行的軟件來實(shí)現(xiàn)各種功能模塊1414、1413、1406、1407和1410??蛇x地,可以 利用計(jì)算機(jī)系統(tǒng)300內(nèi)的專用硬件來實(shí)現(xiàn)二值化器1450。在又一替代中,可以利用專用硬 件和在計(jì)算機(jī)系統(tǒng)300內(nèi)可執(zhí)行的軟件的組合來實(shí)現(xiàn)二值化器1450。
[0258] 再次,可以將二值化器1450作為解碼器200的解碼器模塊202的一部分來實(shí)現(xiàn)。 可選地,還可以將二值化器1450作為編碼器100的編碼器模塊104的一部分來實(shí)現(xiàn)。
[0259] 二值化器1450不使用參數(shù)K的自適應(yīng)估計(jì)。二值化器1450通過針對(duì)每個(gè)時(shí)鐘周 期對(duì)多個(gè)殘差系數(shù)進(jìn)行解碼來實(shí)現(xiàn)平行性。
[0260] 模塊1458如上所述進(jìn)行參數(shù)K的初始估計(jì)。
[0261] 模塊1454如上所述對(duì)剩余殘差系數(shù)量值%進(jìn)行解碼。
[0262] 然后,模塊1454接受所輸入的Golomb-Rice碼字1452和參數(shù)K的初始估計(jì)值 1451。模塊1456對(duì)剩余殘差系數(shù)量值Vi進(jìn)行解碼。模塊1456接受Golomb-Rice碼字1453 和參數(shù)K的初始估計(jì)值1451作為輸入。
[0263] 此外,解碼模塊1460還將接受它們相應(yīng)的輸入Golomb-Rice碼字1459和參數(shù)K 的初始估計(jì)值1451。
[0264] 模塊1454U456和所有其它解碼器模塊1460不具有任何數(shù)據(jù)依賴性并且可以并 行執(zhí)行。
[0265] 現(xiàn)在將參考圖13來說明確定用于對(duì)變換單位(TU)的子集的coeff_abs_level_ remaining值的塊進(jìn)行解碼的參數(shù)K的值的方法1300。
[0266] 方法1300由編碼器100和解碼器200這兩者所使用以確保數(shù)據(jù)的正確解碼。如 此,可以將方法1300作為編碼器100的熵編碼器模塊104的一部分來實(shí)現(xiàn)。此外,可以將 方法1300作為解碼器200的熵解碼器模塊202的一部分來實(shí)現(xiàn)。
[0267] 將參考解碼器200通過示例來說明方法1300。
[0268] 方法1300從步驟1301開始,其中在該步驟1301中,解碼器模塊202在處理器305 的執(zhí)行下,分析針對(duì)變換單位(TU)的當(dāng)前子集和先前解碼子集的先前解碼信息??梢詮拇?儲(chǔ)器306訪問針對(duì)當(dāng)前子集的先前解碼信息。以下將更詳細(xì)地說明步驟1301。
[0269] 然后,在步驟1302中,解碼器模塊202判斷解碼是否將使用自適應(yīng)并且確定參數(shù) K的值。以下將更詳細(xì)地說明步驟1302。
[0270] 在步驟1303中,利用解碼器模塊202將步驟1302中所估計(jì)出的參數(shù)K的值分配 至保持參數(shù)K的存儲(chǔ)器306內(nèi)所配置的變量。在步驟1303之后,方法1300結(jié)束。
[0271] 在一個(gè)實(shí)現(xiàn)中,步驟1301可以分析當(dāng)前子集中的非零殘差系數(shù)的數(shù)量是否大于 預(yù)定閾值T。如果非零(有效)殘差系數(shù)的數(shù)量大于預(yù)定閾值,則向參數(shù)K分配偏移值 該偏移值將導(dǎo)致具有非零值的參數(shù)K相對(duì)于零偏移了值。值可以作為 預(yù)定值并且設(shè)置為一(1)。否則,向參數(shù)K分配零設(shè)置值KZOT。。
[0272] 對(duì)于HEVC測(cè)試模型6.0( "HM-6.0"),用于作出該決定的閾值T將是十四(14)。 參數(shù)K的偏移值將是一(1),并且零設(shè)置值K_。將是零(0)。
[0273] 在另一實(shí)現(xiàn)中,在步驟1301中可以分析量化參數(shù)Q的值和當(dāng)前子集的索引I。在這 種實(shí)現(xiàn)中,如果量化參數(shù)Q的值小于預(yù)定閾值T Q并且子集索引I的值小于預(yù)定閾值Isubsrt, 則向參數(shù)K分配偏移值Kf#。否則,向參數(shù)K分配零設(shè)置值K ZOT。。
[0274] 對(duì)于HEVC測(cè)試模型6. 0 ( "HM-6. 0"),用于作出該決定的量化參數(shù)TQ的閾值將是 十(10),并且用于作出該決定的子集索引Isubsrt的值將是一(1)。參數(shù)K的偏移值1(。"^將 是一(1)并且零設(shè)置值K_。將是零(0)。
[0275] 在步驟1301中可以附加地分析變換單位的寬度和高度的值。在這種實(shí)現(xiàn)中,如果 變換單位的寬度和高度的值大于預(yù)定閾值T width和TMght,則向參數(shù)Κ分配偏移值。否 貝1J,向參數(shù)Κ分配零設(shè)置值KZOT。。
[0276] 對(duì)于HEVC測(cè)試模型6. 0( "HM-6. 0"),用于作出該決定的變換單位的寬度和高度 的閾值Twidth和TMght將是八⑶和八(8)。參數(shù)K的偏移值1(。"^將是一⑴并且零設(shè)置 值Κ ζεΜ將是零(0)。
[0277] 在步驟1302中,可以基于子集的索引來進(jìn)行與子集的編碼或解碼期間使用自適 應(yīng)有關(guān)的決定。如果索引等于或大于預(yù)定值I max,則在編碼器方法1250的步驟1257和解碼 器方法1200的步驟1207中,方法進(jìn)入解碼器的步驟1205和編碼器的步驟1255,并且不使 用參數(shù)K的自適應(yīng)。具有固定的Rice參數(shù)K可被視為無依賴性的Golomb-Rice編碼或解 碼。否則,方法進(jìn)入方法1200的步驟1202和方法1250的步驟1252,并且使用參數(shù)K的自 適應(yīng)。具有自適應(yīng)Rice參數(shù)K可被視為基于依賴性的Golomb-Rice編碼或解碼。
[0278] 對(duì)于HEVC測(cè)試模型6. 0 ( "HM-6. 0"),索引Imax的閾值將是六(6)。圖15示出示 例變換單位1500,其中在該變換單位1500中,在步驟1302中使用索引I max的閾值六(6)以 進(jìn)行與子集的編碼或解碼期間使用自適應(yīng)有關(guān)的決定。在圖15的示例中假定后向?qū)菕?描模式。將變換單位1500分割成諸如子集1510等的16個(gè)子集。利用字母"A"或字母"F" 來標(biāo)記圖15的每個(gè)子集,其中利用字母"A"所標(biāo)記的子集表示使用自適應(yīng)Rice參數(shù)K進(jìn)行 編碼和解碼后的子集;而利用"F"所標(biāo)記的子集表示在步驟1302中對(duì)索引I max使用六(6) 的閾值的情況下、使用固定Rice參數(shù)K的子集。針對(duì)索引Imax的六的值得到使用子集內(nèi)的 自適應(yīng)Ri ee參數(shù)K的"A"子集。利用字母"F"所標(biāo)記的子集表示TU 1500內(nèi)的如下位置中 的子集:針對(duì)索引的閾值六(6)得到使用固定Rice參數(shù)的子集。索引Imax的閾值對(duì)于 TU 1500中的所有子集相同,并且將TU 1500中的子集的位置與閾值進(jìn)行比較以判斷自適 應(yīng)Rice參數(shù)是否要用于進(jìn)行編碼和解碼。使用閾值索引Imax的值來選擇圖15中的自適應(yīng) 子集和固定子集之間的邊界。子集順序從左上方子集1520的零(0)開始,并且按逆向掃描 順序繼續(xù)作為一(1)的子集1530和作為子集二(2)的子集1540。
[0279] 在另一實(shí)現(xiàn)中,在步驟1302中,可以基于先前編碼或解碼子集中的大于1的殘差 系數(shù)的數(shù)量h和大于2的殘差系數(shù)的數(shù)量G 2來進(jìn)行與子集的編碼或解碼期間使用自適應(yīng) 有關(guān)的決定。然而,這種方法不適用于不存在先前編碼或解碼子集的情況。在存在先前編 碼或解碼子集的情況下,如果值(G 2_Gi)大于預(yù)定閾值T21,則在編碼器方法1250的步驟 1257中(或者在解碼器方法1200的步驟1207中),方法1250進(jìn)入編碼器方法1250的步 驟1255(或解碼器方法1200的步驟1205)并且不使用參數(shù)K的自適應(yīng)。否則,方法1250 進(jìn)入編碼器方法1250的步驟1252(或者方法1200進(jìn)入解碼器方法1200的步驟1200)并 且使用參數(shù)K的自適應(yīng)。
[0280] 對(duì)于HEVC測(cè)試模型6.0,索引的閾值T21將為四(4)。
[0281] 應(yīng)用于視頻編碼器100的情況下的方法1250和1300以及應(yīng)用于解碼器200的方 法1200和1300使得能夠進(jìn)行用以實(shí)現(xiàn)諸如幀數(shù)據(jù)101等的幀數(shù)據(jù)的更高效壓縮的實(shí)現(xiàn)。 所述方法還使得能夠進(jìn)行用以實(shí)現(xiàn)對(duì)諸如編碼位流113等的編碼位流進(jìn)行解析的吞吐量 的提高的實(shí)現(xiàn)。通過使用Golomb-Rice參數(shù)K的更好估計(jì)而發(fā)生幀數(shù)據(jù)的更高效壓縮,從 而使得能夠?qū)⑤^短的碼字分配至編碼符號(hào)??梢酝ㄟ^允許用以使用所述的對(duì)Golomb-Rice 碼字進(jìn)行解碼的方法的實(shí)現(xiàn)來實(shí)現(xiàn)較高的吞吐量,其中該方法可以通過消除碼字之間的數(shù) 據(jù)依賴性來一次對(duì)一個(gè)以上的碼字進(jìn)行解碼。
[0282] 產(chǎn)業(yè)h的可利用件
[0283] 所述的配置適用于計(jì)算機(jī)和數(shù)據(jù)處理行業(yè),特別適用于對(duì)諸如視頻信號(hào)等的信號(hào) 進(jìn)行編碼或解碼的數(shù)字信號(hào)處理。
[0284] 前述僅說明本發(fā)明的一些實(shí)施例,并且可以在沒有背離本發(fā)明的范圍和精神的情 況下對(duì)本發(fā)明進(jìn)行修改和/或改變,其中這些實(shí)施例僅是示例性而非限制性的。
[0285] 在本說明書的上下文中,詞語"包括"意味著"主要但未必僅包括"或"具有"或"包 含",而不是"僅由…組成"。詞語"包括(comprising) "的諸如"comprise"和"comprises" 等的詞尾變化具有相應(yīng)的變化含義。
【權(quán)利要求】
1. 一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的方法,所述 方法包括以下步驟: 確定所述變換單位的子集的有效殘差系數(shù); 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的有效 殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單位的 子集進(jìn)行解碼。
2. 根據(jù)權(quán)利要求1所述的方法,其中,所述預(yù)定閾值是14。
3. -種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的設(shè)備,所述 設(shè)備包括: 用于確定所述變換單位的子集的有效殘差系數(shù)的部件; 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的部件,其中在所 確定的有效殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存 在偏移;以及 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼的部件。
4. 一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的系統(tǒng),所述 系統(tǒng)包括: 存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)和計(jì)算機(jī)程序; 處理器,其連接至所述存儲(chǔ)器,并且用于執(zhí)行所述計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用 于進(jìn)行以下操作的指令: 確定所述變換單位的子集的有效殘差系數(shù); 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的有效 殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單位的 子集進(jìn)行解碼。
5. -種記錄有計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)程序用于使用Golomb-Rice 解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼,所述計(jì)算機(jī)程序包括以下代碼: 用于確定所述變換單位的子集的有效殘差系數(shù)的代碼; 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的代碼,其中在所 確定的有效殘差系數(shù)的數(shù)量高于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存 在偏移;以及 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼的代碼。
6. -種用于對(duì)視頻數(shù)據(jù)流進(jìn)行解碼以確定解碼視頻數(shù)據(jù)流中的當(dāng)前殘差系數(shù)的值的 方法,所述方法包括以下步驟: 從所述視頻數(shù)據(jù)流接收殘差系數(shù)的變換單位; 確定所述變換單位的當(dāng)前殘差系數(shù)的位置; 在所述當(dāng)前殘差系數(shù)在所述變換單位中的位置大于預(yù)定閾值的情況下,使用無依賴性 的Golomb-Rice解碼對(duì)所述當(dāng)前殘差系數(shù)進(jìn)行解碼,其中所述無依賴性的Golomb-Rice使 用預(yù)定Golomb-Rice值; 在所述當(dāng)前殘差系數(shù)在所述變換單位中的位置小于所述預(yù)定閾值的情況下,使用針對(duì) 當(dāng)前系數(shù)的基于依賴性的Golomb-Rice解碼對(duì)所述當(dāng)前殘差系數(shù)進(jìn)行解碼,其中所述基于 依賴性的Golomb-Rice解碼使用先前解碼殘差系數(shù)值以選擇Golomb-Rice值;以及 使用所選擇的Golomb-Rice解碼值來確定所述當(dāng)前殘差系數(shù)的值。
7. -種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的方法,所述 方法包括以下步驟: 確定所述變換單位的量化參數(shù); 確定所述變換單位的子集的有效殘差系數(shù); 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的量化 參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單位的 子集進(jìn)行解碼。
8. 根據(jù)權(quán)利要求7所述的方法,其中,所述預(yù)定閾值是10。
9. 一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的設(shè)備,所述 設(shè)備包括: 用于確定所述變換單位的子集的有效殘差系數(shù)的部件; 用于確定所述變換單位的量化參數(shù)的部件; 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的部件,其中在所 確定的量化參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼的部件。
10. -種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的系統(tǒng),所 述系統(tǒng)包括: 存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)和計(jì)算機(jī)程序; 處理器,其連接至所述存儲(chǔ)器,并且用于執(zhí)行所述計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用 于進(jìn)行以下操作的指令: 確定所述變換單位的子集的有效殘差系數(shù); 確定所述變換單位的量化參數(shù); 選擇所述變換單位的子集的Go 1 omb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的量化 參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單位的 子集進(jìn)行解碼。
11. 一種記錄有計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)程序用于使用 Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼,所述計(jì)算機(jī)程序包括以下代碼: 用于確定所述變換單位的子集的有效殘差系數(shù)的代碼; 用于確定所述變換單位的量化參數(shù)的代碼; 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的代碼,其中在所 確定的量化參數(shù)低于預(yù)定閾值的情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼的代碼。
12. -種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的方法,所 述方法包括以下步驟: 確定所述變換單位的量化參數(shù); 確定所述變換單位的寬度和高度; 確定所述變換單位的子集的有效殘差系數(shù); 選擇所述變換單位的子集的Go 1 omb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的量化 參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾值的情況下,所 述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單位的 子集進(jìn)行解碼。
13. 根據(jù)權(quán)利要求13所述的方法,其中,所述預(yù)定閾值是10。
14. 一種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的設(shè)備,所 述設(shè)備包括: 用于確定所述變換單位的子集的有效殘差系數(shù)的部件; 用于確定所述變換單位的量化參數(shù)的部件; 用于確定所述變換單位的寬度和高度的部件; 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的部件,其中在所 確定的量化參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾值的 情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼的部件。
15. -種用于使用Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼的系統(tǒng),所 述系統(tǒng)包括: 存儲(chǔ)器,用于存儲(chǔ)數(shù)據(jù)和計(jì)算機(jī)程序; 處理器,其連接至所述存儲(chǔ)器,并且用于執(zhí)行所述計(jì)算機(jī)程序,所述計(jì)算機(jī)程序包括用 于進(jìn)行以下操作的指令: 確定所述變換單位的子集的有效殘差系數(shù); 確定所述變換單位的量化參數(shù); 確定所述變換單位的寬度和高度; 選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù),其中在所確定的量化 參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾值的情況下,所 述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單位的 子集進(jìn)行解碼。
16. -種記錄有計(jì)算機(jī)程序的計(jì)算機(jī)可讀介質(zhì),所述計(jì)算機(jī)程序用于使用 Golomb-Rice解碼對(duì)編碼視頻數(shù)據(jù)的變換單位進(jìn)行解碼,所述計(jì)算機(jī)程序包括以下代碼: 用于確定所述變換單位的子集的有效殘差系數(shù)的代碼; 用于確定所述變換單位的量化參數(shù)的代碼; 用于確定所述變換單位的寬度和高度的代碼; 用于選擇所述變換單位的子集的Golomb-Rice解碼的預(yù)定Rice參數(shù)的代碼,其中在所 確定的量化參數(shù)低于或等于預(yù)定閾值、所述寬度大于預(yù)定閾值且所述高度高于預(yù)定閾值的 情況下,所述預(yù)定Rice參數(shù)相對(duì)于零設(shè)置存在偏移;以及 用于使用所述預(yù)定Rice參數(shù)作為所述Golomb-Rice解碼的初始參數(shù)來對(duì)所述變換單 位的子集進(jìn)行解碼的代碼。
【文檔編號(hào)】H03M7/40GK104221288SQ201380019838
【公開日】2014年12月17日 申請(qǐng)日期:2013年4月12日 優(yōu)先權(quán)日:2012年4月13日
【發(fā)明者】沃洛迪米爾·科勒斯尼科夫 申請(qǐng)人:佳能株式會(huì)社