TW201315237A - 用於視訊寫碼之以運行模式為基礎的係數寫碼 - Google Patents
用於視訊寫碼之以運行模式為基礎的係數寫碼 Download PDFInfo
- Publication number
- TW201315237A TW201315237A TW101119857A TW101119857A TW201315237A TW 201315237 A TW201315237 A TW 201315237A TW 101119857 A TW101119857 A TW 101119857A TW 101119857 A TW101119857 A TW 101119857A TW 201315237 A TW201315237 A TW 201315237A
- Authority
- TW
- Taiwan
- Prior art keywords
- coefficient
- data
- value
- codeword
- video
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/93—Run-length coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
一種視訊寫碼器件經組態以寫碼視訊資料之殘餘區塊之係數。當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位有效係數時,該視訊寫碼器件可執行一函數以判定該係數之資料與一碼字索引值之間的一映射,且使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料。在一些實例中,該視訊寫碼器件可包含一視訊編碼器或一視訊解碼器。
Description
本發明係關於視訊寫碼,且更特定而言係關於寫碼視訊資料之殘餘區塊的係數。
本申請案主張2011年6月3日申請之美國臨時申請案第61/493,337號,2011年7月5日申請之美國臨時申請案第61/504,673號及2011年9月23日申請之美國臨時申請案第61/538,658號的權利,該兩案中之每一者的全部內容特此以引用之方式併入。
數位視訊能力可併入至廣泛範圍之器件中,該等器件包括數位電視、數位直播系統、無線廣播系統、個人數位助理(PDA)、膝上型或桌上型電腦、數位相機、數位記錄器件、數位媒體播放器、視訊遊戲器件、視訊遊戲控制台、蜂巢式或衛星無線電電話、視訊電傳會議器件及其類似者。數位視訊器件實施視訊壓縮技術(諸如,由MPEG-2、MPEG-4、ITU-T H.263或ITU-T H.264/MPEG-4第10部分進階視訊寫碼(AVC)定義之標準及此等標準之擴展中所描述的視訊壓縮技術)以較有效地傳輸及接收數位視訊資訊。
視訊壓縮技術執行空間預測及/或時間預測以減少或移除視訊序列中所固有之冗餘。對於基於區塊之視訊寫碼而言,可將一視訊圖框或片段分割為巨集區塊。可進一步分割每一巨集區塊。使用關於相鄰巨集區塊之空間預測來編碼經框內寫碼(I)之圖框或片段中的巨集區塊。經框間寫碼
(P或B)之圖框或片段中的巨集區塊可使用關於同一圖框或片段中之相鄰巨集區塊的空間預測或關於其他參考圖框之時間預測。
大體而言,本發明描述用於寫碼視訊資料之區塊之係數的技術。視訊資料之區塊(諸如,變換單元(TU))可包括複數個經量化之變換係數。視訊寫碼器件可使用運行-位準(run-level)模式來寫碼係數,其中藉由一「運行」值共同地寫碼非零係數之資料,該「運行」值描述當前非零係數與掃描次序中之後續非零係數之間的零值係數之數目。具體而言,非零係數之資料可包含一指示該非零係數是否具有等於「1」或大於一之絕對值的值,其中此資料可包含一位準ID值。該視訊寫碼器件可使用一碼字來寫碼{運行,位準ID}對,其中可使用一碼字映射表來選擇該碼字,該碼字映射表提供對應於該{運行,位準ID}對之碼字的碼字索引。該碼字可包含一可變長度碼字或一經二進位化之值,該經二進位化之值可使用二進位算術寫碼來進一步寫碼。通常,寫碼器件使用二維查找表以判定碼字索引,其中維度包括當前非零係數之掃描次序中的一位置及運行中之零值係數的數目以判定碼字索引。本發明提議使用一維表或近似此一維表之函數,以判定該掃描中之某些位置之碼字索引。
在一個實例中,一種寫碼視訊資料之方法包括:當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位
有效係數時:執行一函數以判定該係數之資料與一碼字索引值之間的一映射,且使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料。
在另一實例中,一種用於寫碼視訊資料之器件,該器件包括一視訊寫碼器,該視訊寫碼器經組態以:當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的一映射,且使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料。
在另一實例中,一種器件包括:用於當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位有效係數時執行一函數以判定該係數之資料與一碼字索引值之間的一映射的構件;及用於當該係數具有該掃描次序值時且當該係數為該變換單元中之該掃描次序中的該末位有效係數時使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料的構件。
在另一實例中,一種電腦程式產品包括一電腦可讀媒體,該電腦可讀媒體具有儲存於其上之指令,該等指令在被執行時使用於寫碼視訊資料之一器件的一處理器在視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索
引值之間的一映射,且使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料。
一或多個實例之細節闡述於隨附圖式及以下描述中。其他特徵、目標及優點將自該描述及該等圖式以及自申請專利範圍顯而易見。
大體而言,本發明描述用於寫碼視訊資料之區塊之係數的技術。視訊資料包括迅速連續地播放以模擬運動的圖框(或圖像)之序列。可將該等圖框中之每一者劃分為區塊。
視訊編碼器試圖藉由利用空間及時間冗餘來壓縮視訊資料。舉例而言,視訊編碼器可藉由相對於相鄰之先前寫碼之區塊來寫碼一區塊而利用空間冗餘。同樣,視訊編碼器可藉由相對於先前寫碼之區塊之資料來寫碼一區塊而利用時間冗餘。特定而言,視訊編碼器可自空間相鄰者之資料或自先前寫碼之圖框之資料來預測當前區塊,接著可按照該區塊之實際值與該區塊之所預測值之間的差來計算該區塊之殘餘值。一區塊之殘餘包括像素(或空間)域中的逐個像素差值。
視訊編碼器可接著將一變換應用於該殘餘(亦稱作變換單元(TU))之值以試圖將該等值之能量壓縮為變換域(例如,頻域)中的相對較小數目個係數。視訊編碼器可接著量化變換係數。視訊編碼器可進一步掃描經量化之變換係數以將經量化之變換係數的二維矩陣轉換為包括經量化之變換係數的一維向量。掃描係數之程序有時稱作將係數串
行化。
視訊編碼器可接著應用一熵寫碼程序以熵編碼經掃描係數。熵寫碼大體上包括上下文自適應性可變長度寫碼(CAVLC)及上下文自適應性二進位算術寫碼(CABAC)。CAVLC大體上包括可變長度碼字(VLC)表的選擇,其中碼字表將待編碼之值映射至可變長度碼字。大體而言,VLC表經建構以使得較短長度之碼字指派給具有較高機率之符號或值,而較長長度之碼字指派給具有較低機率之符號或值。在CAVLC中,通常以自最高頻率至最低頻率之次序來掃描係數。在CABAC,待寫碼之資料可首先經二進位化,從而形成經二進位化之值,且該經二進位化之值可接著經二進位算術寫碼。二進位化表可提供經二進位化之值與待二進位化之資料(或者,對於解碼器而言,經二進位化之值與對應資料)之間的映射。
替代直接寫碼係數之值(亦即,位準),視訊寫碼器件可寫碼表示一對值之一值,該對值指示:在下一非零係數與當前非零係數之間的該掃描中的零值係數之數目(稱為術語「運行」或「零運行長度」);及當前係數是否具有等於一或大於一之絕對值的指示符(稱為術語「位準ID」)。此對值可映射至碼字索引(稱作「cn」),且該碼字索引可對應於選定表中之碼字之索引。亦即,碼字映射表可將{運行,位準ID}對映射至碼字索引值cn,且該值cn可對應於表中之碼字。舉例而言,值cn可對應於VLC表中之VLC碼字或二進位化表中之經二進位化之值。
視訊寫碼器件可基於該掃描中之當前係數之位置來判定{運行,位準ID}對至cn之映射。令值k對應於當前係數與反向掃描次序之末位係數(亦即,反向掃描中之最後係數)之間的係數之數目。另外,令E(運行,k)表示傳回待在判定位置k處{運行,位準ID}對之cn值時使用之值的函數。是否使用E(運行,k)可基於k是否小於一臨限值。
本發明提供用於針對某些特殊情況使用一函數而非二維表的技術。舉例而言,一函數可用於如下特殊情況:對於當前係數而言,k小於該臨限值,運行=k+1且位準ID=0。令E1(k)表示此函數。此為一特殊情況,因為其對應於反向掃描中的末位有效(亦即,為非零值)係數。以下假碼提供用於使用經修改之E1(k)函數之實例基於編碼器的方法。
編碼器: if(k<T){ if(levelID==0){ if(run==k+1) cn=E1(k); else{ if(run<E1(k)) cn=run; else cn=run+1; } } else if(levelID==1){ cn=k+2+run; } else if(k>=T){ if(levelID==0) cn=run; else if(levelID==1) cn=k+run+2; }
以上假碼之實施及執行表示寫碼(亦即,編碼)資料之方法之實例,該方法包括:當視訊資料之變換單元之係數具有小於臨限值(T)之掃描次序值(k)時且當該係數為變換單元中之掃描次序中的末位有效係數(亦即,run==k+1)時,執行函數(E1(k))以判定該係數之資料與一碼字索引值(cn=E1(k))之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。
以下假碼提供一實例基於解碼器之方法,其與以上所論述之方法互逆。
解碼器: if(k<T){ if(cn>k+1){ levelID=1; run=cn-k-2; } else{ levelID=0; if(cn==E1(k)) run=k+1 else if(cn<E1(k)) run=cn; else if(cn>E1(k)) run=cn-1; } else if(k>=T){ if(cn<k+2){ level_ID=0; run=cn; } else{ level_ID=1; run=cn-k-2; } }
以上假碼之實施及執行表示寫碼(亦即,解碼)視訊資料之方法之實例,該方法包括:當視訊資料之變換單元之係數具有小於臨限值(T)之掃描次序值(k)時且當該係數為變換單元中之掃描次序中的末位有效係數(cn==E1(k))時,執
行函數(E1(k))以判定該係數之資料與一碼字索引值(cn)之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。
以此方式,以上假碼之兩個集合表示一種方法之實例,該方法包括:當視訊資料之變換單元之係數具有小於臨限值之掃描次序值時且當該係數為變換單元中之掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。亦即,根據本發明之技術,編碼器及解碼器兩者可經組態以執行類似方法以寫碼某些掃描次序位置之{運行,位準ID}對。
在以上所論述之實例中,E1(k)用於如下特殊情況:對於當前係數而言,運行=k+1且位準ID=0。可向其他特殊情況指派用於判定碼字索引之函數。舉例而言,令runLeft(k)定義為在掃描次序位置k及緊接掃描次序位置k左側的位置處之係數之間的掃描次序中之係數的數目。換言之,若掃描次序位置k處之係數具有位置(x,y),則runLeft(k)傳回到達位置(x-1,y)的掃描次序中之係數之數目。對於具有{運行,位準ID}之掃描位置k處的給定係數而言,當運行等於runLeft(k)時,函數E2(k)可用以判定{運行,位準ID}之碼字索引。
類似地,當運行等於runTop(k)時,函數E3(k)可用以判定位置k處的{運行,位準ID}之碼字索引,其中runTop(k)傳回到達當前係數位置上方的位置的掃描次序中之係數之
數目。亦即,假設掃描次序位置k中的當前係數具有位置(x,y),則runTop(k)傳回到達位置(x,y-1)的掃描次序中之係數之數目。
替代僅使用一個臨限值,在一些實例中,可使用兩個臨限值來判定k是否在三個範圍中之一者內:k<T0,T0<=k<T1或T1<=k。以此方式,以上所論述之實例可僅在T0<=k<T1時適用(例如,可使用E1(k));在其他情況下,可使用用於選擇碼字索引cn之習知方法。
在以上實例中,該(等)臨限值可由使用者(諸如,設計者或管理者)或視訊編碼器選擇。可用信號發送該(等)選定之臨限值,例如,在圖像參數集合(PPS)、片段參數集合(SPS)或自適應參數集合(APS)中用信號發送。或者,該(等)臨限值之值可基於旁側資訊而自適應性地判定,該旁側資訊例如為圖像大小、圖像類型、區塊大小、預測模式(例如,框間、框內)、QP(量化參數)、分割模式(例如,2N×2N、N×N)、運動向量值、運動向量預測子值中的一或多者。該旁側資訊可為當前區塊之可用旁側資訊,或可為來自已編碼/解碼之區塊的旁側資訊。
圖1為說明可利用用於寫碼視訊資料之區塊之係數的技術之實例視訊編碼及解碼系統10的方塊圖。如圖1所示,系統10包括源器件12,該源器件12經由通信頻道16將經編碼之視訊傳輸至目的地器件14。源器件12及目的地器件14可包含廣泛範圍之器件中的任一者。在一些情況下,源器件12及目的地器件14可包含無線通信器件,諸如,無線手
機、所謂的蜂巢式或衛星無線電電話,或可經由通信頻道16傳達視訊資訊之任何無線器件,在此情況下,通信頻道16為無線的。然而,涉及寫碼視訊資料之區塊之係數的本發明之技術未必限於無線應用或設定。舉例而言,此等技術可應用於空中電視廣播、有線電視傳輸、衛星電視傳輸、網際網路視訊傳輸、編碼至儲存媒體上之經編碼之數位視訊,或其他情形。相應地,通信頻道16可包含適合於經編碼之視訊資料的傳輸或儲存之無線、有線或儲存媒體的任何組合。
在圖1之實例中,源器件12包括視訊源18、視訊編碼器20、調變器/解調變器(數據機)22及傳輸器24。目的地器件14包括接收器26、數據機28、視訊解碼器30及顯示器件32。根據本發明,源器件12之視訊編碼器20可經組態以應用用於寫碼視訊資料之區塊之係數的技術。在其他實例中,源器件及目的地器件可包括其他組件或配置。舉例而言,源器件12可自外部視訊源18(諸如,外部攝影機)接收視訊資料。同樣,目的地器件14可與外部顯示器件介接,而非包括整合式顯示器件。
圖1所說明之系統10僅為一個實例。可藉由任何數位視訊編碼及/或解碼器件來執行用於寫碼視訊資料之區塊之係數的技術。儘管一般藉由視訊編碼器件來執行本發明之技術,但亦可藉由視訊編碼器/解碼器(通常被稱為「編解碼器」)來執行該等技術。此外,亦可藉由視訊預處理器來執行本發明之技術。源器件12及目的地器件14僅為此等
寫碼器件之實例,在該等寫碼器件中,源器件12產生用於傳輸至目的地器件14之經寫碼之視訊資料。在一些實例中,器件12、14可按實質上對稱之方式進行操作,使得器件12、14中之每一者包括視訊編碼及解碼組件。因此,系統10可支援視訊器件12、14之間的單向或雙向視訊傳輸,例如,用於視訊串流、視訊播放、視訊廣播或視訊電話。
源器件12之視訊源18可包括諸如視訊攝影機之視訊攝取器件、含有先前攝取之視訊之視訊封存檔及/或來自視訊內容提供者之視訊饋入。作為另一替代,視訊源18可產生作為源視訊的基於電腦圖形之資料,或直播視訊、封存視訊及電腦產生之視訊的組合。在一些情況下,若視訊源18為視訊攝影機,則源器件12及目的地器件14可形成所謂的攝影機電話或視訊電話。然而,如上文所提及,本發明中所描述之技術一般適用於視訊寫碼,且可應用於無線及/或有線應用。在每一情況下,可藉由視訊編碼器20編碼經攝取之視訊、經預攝取之視訊或電腦產生之視訊。可接著藉由數據機22根據通信標準調變經編碼之視訊資訊,且經由傳輸器24將經編碼之視訊資訊傳輸至目的地器件14。數據機22可包括各種混頻器、濾波器、放大器或經設計以用於信號調變之其他組件。傳輸器24可包括經設計以用於傳輸資料的電路,包括放大器、濾波器及一或多個天線。
目的地器件14之接收器26經由頻道16接收資訊,且數據機28解調變該資訊。再者,視訊編碼程序可實施本文中所描述之技術中之一或多者以寫碼視訊資料之區塊的係數。
經由頻道16傳達之資訊可包括由視訊編碼器20定義之語法資訊,該語法資訊亦可由視訊解碼器30使用,包括描述區塊及其他經寫碼之單元(例如,GOP)之特性及/或處理的語法元素。顯示器件32向使用者顯示經解碼之視訊資料,且可包含多種顯示器件中之任一者,諸如,陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器或另一類型之顯示器件。
在圖1之實例中,通信頻道16可包含任何無線或有線通信媒體,諸如,射頻(RF)頻譜或一或多個實體傳輸線、或無線及有線媒體之任何組合。通信頻道16可形成基於封包之網路(諸如,區域網路、廣域網路或諸如網際網路之全球網路)的一部分。通信頻道16大體上表示用於將視訊資料自源器件12傳輸至目的地器件14之任何合適通信媒體或不同通信媒體之集合,包括有線或無線媒體之任何合適組合。通信頻道16可包括路由器、交換器、基地台,或可用於促進自源器件12至目的地器件14之通信的任何其他設備。在其他實例中,源器件12可將經編碼之資料儲存至儲存媒體上,而非傳輸該資料。同樣,目的地器件14可經組態以自儲存媒體擷取經編碼之資料。
視訊編碼器20及視訊解碼器30可根據諸如ITU-T H.264標準(或者被稱作MPEG-4第10部分(進階視訊寫碼(AVC)))的視訊壓縮標準進行操作。然而,本發明之技術不限於任何特定寫碼標準。其他實例包括MPEG-2及ITU-T H.263。雖然未展示於圖1中,但在一些態樣中,視訊編碼器20及
視訊解碼器30可各自與音訊編碼器及解碼器整合,且可包括適當多工-解多工單元或其他硬體及軟體以處置共同資料串流或獨立資料串流中之音訊及視訊兩者的編碼。若適用,多工-解多工單元可符合ITU H.223多工器協定或諸如使用者資料報協定(UDP)之其他協定。
ITU-T H.264/MPEG-4(AVC)標準由ITU-T視訊寫碼專家群(VCEG)連同ISO/IEC動畫專家群(MPEG)一起制定以作為被稱為聯合視訊小組(JVT)之集體合作之產物。在一些態樣中,本發明中所描述之技術可應用於大體符合H.264標準之器件。H.264標準由ITU-T研究小組2005年3月描述於ITU-T建議H.264(用於一般視聽服務之進階視訊寫碼)中,其在本文中可被稱作H.264標準或H.264規範或H.264/AVC標準或規範。聯合視訊小組(JVT)繼續致力於對H.264/MPEG-4 AVC之擴展。
視訊編碼器20及視訊解碼器30可各自實施為多種合適編碼器電路中之任一者,諸如,一或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、離散邏輯、軟體、硬體、韌體或其任何組合。視訊編碼器20及視訊解碼器30中之每一者可包括於一或多個編碼器或解碼器中,該一或多個編碼器或解碼器中之任一者可在各別攝影機、電腦、行動器件、用戶器件、廣播器件、機上盒、伺服器或其類似者中作為組合式編碼器/解碼器(編解碼器)之一部分整合。
一視訊序列通常包括一系列視訊圖框。圖像群組(GOP)
大體上包含一系列一或多個視訊圖框。GOP可在GOP之標頭、GOP之一或多個圖框之標頭中或在別處包括語法資料,該語法資料描述包括於GOP中之圖框的數目。每一圖框可包括描述各別圖框之編碼模式的圖框語法資料。視訊編碼器20通常對個別視訊圖框內之視訊區塊進行操作,以便編碼視訊資料。視訊區塊可對應於區塊或區塊之分割區。視訊區塊可具有固定或變化大小,且可根據指定寫碼標準而大小不同。每一視訊圖框可包括複數個片段。每一片段可包括可配置為分割區(亦稱作子區塊)之複數個區塊。
作為一實例,ITU-T H.264標準支援各種區塊大小(諸如,針對明度分量之16×16、8×8或4×4及針對色度分量之8×8)之框內預測,以及各種區塊大小(諸如,針對明度分量之16×16、16×8、8×16、8×8、8×4、4×8及4×4以及針對色度分量之對應的按比例調整之大小)之框間預測。在本發明中,可根據垂直及水平尺寸互換地使用「N×N」及「N乘N」來指代區塊之像素尺寸,例如,16×16像素或16乘16像素。大體而言,16×16區塊將在垂直方向上具有16個像素(y=16)且在水平方向上具有16個像素(x=16)。同樣,N×N區塊大體上在垂直方向上具有N個像素且在水平方向上具有N個像素,其中N表示非負整數值。可將區塊中之像素配置成列及行。此外,區塊未必需要在水平方向上與在垂直方向上具有相同數目個像素。舉例而言,區塊可包含N×M像素,其中M未必等於N。
小於16乘16之區塊大小可稱作16乘16區塊的分割區。視訊區塊可包含像素域中的像素資料之區塊,或變換域中的變換係數之區塊,例如,在利用諸如以下變換之變換之後:離散餘弦變換(DCT)、整數變換、小波變換或對表示經寫碼之視訊區塊與預測性視訊區塊之間的像素差的冗餘視訊區塊資料進行的概念上類似之變換。在一些情況下,視訊區塊可包含變換域中之經量化之變換係數的區塊。
較小視訊區塊可提供較佳解析度,且可用於包括高級別細節的視訊圖框之位置。大體而言,可將區塊及各分割區(有時稱作子區塊)視為視訊區塊。另外,可將一片段視為複數個視訊區塊,諸如,區塊及/或子區塊。每一片段可為視訊圖框之可獨立解碼單元。或者,圖框自身可為可解碼單元,或圖框之其他部分可被定義為可解碼單元。術語「寫碼單元」可指代視訊圖框之任何可獨立解碼單元,諸如,整個圖框、圖框之片段、亦稱作序列之圖像群組(GOP),或根據適用寫碼技術定義之另一可獨立解碼單元。
當前正努力開發新的視訊寫碼標準,當前稱作高效率視訊寫碼(HEVC)。該即將到來之標準亦稱作H.265。該等標準化努力係基於稱作HEVC測試模型(HM)的視訊寫碼器件之模型。該HM假定視訊寫碼器件相比根據(例如)ITU-T H.264/AVC之器件提供若干能力。舉例而言,鑒於H.264提供九個框內預測編碼模式,HM提供多達三十四個框內預測編碼模式。
HEVC將視訊資料之區塊稱作寫碼單元(CU),其可包括一或多個預測單元(PU)及/或一或多個變換單元(TU)。位元串流內之語法資料可定義最大寫碼單元(LCU),其為根據像素之數目而言的最大寫碼單元。大體而言,CU具有與H.264之巨集區塊類似之目的,除了CU不具有大小區別以外。因此,CU可分裂為子CU。大體而言,本發明中對CU的引用可指代圖像之最大寫碼單元或LCU之子CU。LCU可分裂為子CU,且每一子CU可進一步分裂為子CU。位元串流之語法資料可定義可分裂LCU之最大次數,稱作CU深度。因此,位元串流亦可定義最小寫碼單元(SCU)。本發明亦使用術語「區塊」以指代CU、PU或TU中之任一者。
LCU可與四分樹資料結構相關聯。大體而言,四分樹資料結構包括每一CU一個節點,其中根節點對應於LCU。若一CU分裂為四個子CU,則對應於該CU之節點包括四個葉節點,其中每一者對應於該等子CU中之一者。四分樹資料結構之每一節點可提供對應CU之語法資料。舉例而言,四分樹中之一節點可包括一分裂旗標,其指示對應於該節點之CU是否分裂為子CU。CU之語法元素可遞歸地進行定義,且可取決於CU是否分裂為子CU。若CU未進一步分裂,則其稱作葉CU。在本發明中,葉CU之4個子CU將被稱作葉CU,但是不存在原始葉CU之明確分裂。舉例而言,若16×16大小之CU不進一步分裂,則四個8×8子CU將亦稱作葉CU,但是該16×16 CU從未分裂過。
此外,葉CU之TU亦可與各別四分樹資料結構相關聯。亦即,葉CU可包括四分樹,其指示該葉CU如何分割為TU。本發明將指示LCU如何分割之四分樹稱作CU四分樹,且將指示葉CU如何分割為TU之四分樹稱作TU四分樹。TU四分樹之根節點大體上對應於葉CU,而CU四分樹之根節點大體上對應於LCU。未分裂之TU四分樹之TU稱作葉TU。
葉CU可包括一或多個預測單元(PU)。大體而言,PU表示對應CU之全部或其一部分,且可包括用於擷取PU之參考樣本(亦即,參考像素值)的資料。舉例而言,當PU得以框間模式編碼時,PU可包括定義PU之運動向量的資料。定義運動向量之資料可描述(例如)運動向量之水平分量、運動向量之垂直分量、運動向量之解析度(例如,四分之一像素精度或八分之一像素精度)、運動向量所指向之參考圖框及/或運動向量之參考清單(例如,清單0或清單1)。定義PU之葉CU之資料亦可描述(例如)將CU分割為一或多個PU。分割模式可取決於CU是未經寫碼、經框內預測模式編碼或是經框間預測模式編碼而不同。對於框內寫碼而言,可將PU視為與以下所描述之葉變換單元相同。
葉CU可包括一或多個變換單元(TU)。如以上所論述,可使用TU四分樹結構來指定變換單元。亦即,分裂旗標可指示葉CU是否分裂為四個變換單元。接著,每一變換單元可進一步分裂為4個子TU。當TU不進一步分裂時,其可稱作葉TU。大體而言,對於框內寫碼而言,屬於一葉
CU之所有葉TU共用相同框內預測模式。亦即,相同框內預測模式大體上適用於計算葉CU之所有TU的所預測值。對於框內寫碼而言,視訊編碼器可使用框內預測模式來計算每一葉TU之殘餘值,作為對應於TU之預測性值之部分與原始區塊之間的差。該殘餘值可得以變換、量化且掃描。對於框間寫碼而言,視訊編碼器可在PU層級執行預測,且可計算每一PU之殘餘。對應於葉CU之殘餘值可得以變換、量化且掃描。對於框間寫碼而言,葉TU可大於或小於PU。對於框內寫碼而言,PU可與對應葉TU並列。在一些實例中,葉TU之最大大小可為對應葉CU之大小。
大體而言,除非另外指出,否則本發明分別使用術語CU及TU來指代葉CU及葉TU。大體而言,本發明之技術關於變換、量化、掃描及熵編碼CU之資料。作為一實例,本發明之技術包括基於用以預測一經框內預測之區塊的框內預測模式來選擇用以變換該區塊之殘餘值的變換。本發明亦使用術語「定向變換」或「經設計變換」來指代取決於框內預測模式方向之此變換。亦即,視訊編碼器可選擇一定向變換以應用於變換單元(TU)。如以上所註明,框內預測包括自一圖像之先前寫碼之CU及TU來預測同一圖像之當前CU的TU。更具體而言,視訊編碼器可使用特定框內預測模式來框內預測圖像之當前TU。
在用以產生預測性資料及殘餘資料之框內預測性或框間預測性寫碼之後,且在用以產生變換係數之任何變換(諸如,H.264/AVC中所使用之4×4或8×8整數變換或離散餘弦
變換(DCT)或其他概念上類似之變換)之後,可執行變換係數之量化。量化大體上指代將變換係數量化以可能地減少用以表示該等係數之資料之量的程序。該量化程序可減小與該等係數中之一些或全部相關聯的位元深度。舉例而言,可在量化期間將n位元值降值捨位至m位元值,其中n大於m。
在量化之後,可(例如)根據內容自適應性可變長度寫碼(CAVLC)、上下文自適應性二進位算術寫碼(CABAC)或另一熵寫碼方法來執行經量化之資料之熵寫碼。視訊編碼器20可使用VLC在運行模式下寫碼經量化之變換係數。替代直接寫碼係數之值,視訊寫碼器件可寫碼表示一對值之一值,該對值指示:在末位非零係數與當前係數之間的掃描中的零值係數之數目(稱為術語「運行」或「零運行長度」);及當前係數是否具有等於一或大於一之絕對值的指示符(稱為術語「位準ID」)。
在HEVC測試模型中,針對係數位置k之每一值來指定{位準ID,運行}與碼字號cn之間的映射。在當前測試模型(HM 3.0)中,存在兩種不同方法,且此兩種方法之間的選擇取決於比較當前非零係數位置k與臨限值T。詳細程序如下:
編碼器:if k<T,then cn=E(run,k),for levelID==0 cn=k+E(run,k)+1,for levelID==1 else if k>=T,then cn=run,for levelID==0 cn=k+run+2,for levelID==1
解碼器:if k<T,then if(cn<k+2){ level_ID=0; run=D(cn); } else{ level_ID=1; run=D(cn-k-1); } else if k>=T,then if(cn<k+2){ level_ID=0;run=cn; } else{ level_ID=1; run=cn-k-2; }
對於k<T,當前HEVC方案在編碼器處儲存二維表E(運行,k)且在解碼器處儲存二維表D(運行,k)。表之大小取
決於臨限值T之值。當T=28時,編碼器及解碼器兩者儲存434個元素。
根據本發明之技術,對於在特定掃描次序位置處之係數而言,視訊編碼器20可判定碼字索引(稱作「cn」),且該碼字索引可對應於選定表(例如,VLC表或二進位化表)中的碼字之索引。亦即,碼字映射表可將{運行,位準ID}對映射至碼字索引值cn,且該值cn可對應於表中之一碼字,其中該碼字可包含VLC碼字或可隨後經二進位算術寫碼的經二進位化之值。
視訊編碼器20可基於該掃描中之當前係數之位置來判定{運行,位準ID}對至cn之映射。令值k對應於當前係數與反向掃描次序之末位係數(亦即,反向掃描中之最後係數)之間的係數之數目。另外,令E(運行,k)表示傳回待在判定位置k處{運行,位準ID}對之cn值時使用之值的函數。是否使用E(運行,k)可基於k是否小於一臨限值。
本發明提供用於針對某些特殊情況使用一函數而非二維表的技術。舉例而言,視訊編碼器20可執行一可用於如下特殊情況的函數:對於當前係數而言,k小於該臨限值,運行=k+1且位準ID=0。令E1(k)表示此函數。此為一特殊情況,因為其對應於反向掃描中的末位有效(亦即,為非零值)係數。以下假碼提供用於使用經修改之E1(k)函數之實例基於編碼器的方法。
編碼器:if(k<T){ if(levelID==0){ if(run==k+1) cn=E1(k); else{ if(run<E1(k)) cn=run; else cn=run+1; } } else if(levelID==1){ cn=k+2+run; } else if(k>=T){ if(levelID==0)cn=run; else if(levelID==1)cn=k+run+2; }
以此方式,視訊編碼器20表示寫碼器件之一實例,其經組態以:當視訊資料之變換單元之係數具有小於一臨限值之掃描次序值時且當該係數為變換單元中之掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。
視訊編碼器20可(例如)在圖框標頭、區塊標頭、片段標
頭或GOP標頭中進一步將語法資料(諸如,基於區塊之語法資料、基於圖框之語法資料及基於GOP之語法資料)發送至視訊解碼器30。GOP語法資料可描述各別GOP中之眾多圖框,且圖框語法資料可指示用以編碼對應圖框之編碼/預測模式。
視訊解碼器30可經組態以執行一類似於以上所描述之用於解碼經量化之變換係數之方法的方法。舉例而言,視訊解碼器30可根據以下假碼來執行一方法:解碼器:if(k<T){ if(cn>k+1){ levelID=1; run=cn-k-2; } else{ levelID=0; if(cn==E1(k)) run=k+1 else if(cn<E1(k)) run=cn; else if(cn>E1(k)) run=cn-1; } else if(k>=T){ if(cn<k+2){ level_ID=0; run=cn; } else{ level_ID=1; run=cn-k-2; } }
以此方式,視訊解碼器30亦表示寫碼器件之一實例,其經組態以:當視訊資料之變換單元之係數具有小於一臨限值之掃描次序值時且當該係數為變換單元中之掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。
在一些實例中,可基於以上所描述之技術(例如,針對特定位置使用一函數或一維表)來判定針對k<T在cn與{運行,位準ID}之間的映射。在一些實例中,針對k>=T之映射可按與習知HEVC相同之方式進行判定。
根據一些實例,碼字號係基於以下規則導出:
1.對於任何可能之i,j,cn(運行_i,位準ID=0)<cn(運行_j,位準ID=1)。
2.除了運行=k+1之情況以外,若i>j,則cn(運行_i,位準ID)>cn(運行_j,位準ID)。
關於以上兩個規則,規則1指示,向與位準ID 0相關聯的每一運行指派小於與位準ID 1相關聯之任何運行之碼號的碼號。
可運行2,以使得在給定位準ID的情況下,向較短運行指派小於較長運行之碼號的碼號,除了具有值k+1之運行的情況以外。
可見,基於該兩個規則,取決於將何碼號指派給具有值k+1之運行的情況,每一{運行,位準ID}之碼號得以判定。歸因於具有值k+1之運行之情況的高的出現可能性,發現基於運行值的碼號指派對於此情況而言並非如此最佳。可基於值k(亦即,當前係數位置)針對此情況提供特殊碼號。
根據一些實例,在將碼號指派給每一{運行,位準ID}對時,僅具有值k+1之運行的情況需要特殊碼號,而對於其他情況而言,碼號的指派遵循以上兩個規則1及2。
根據一些實例,針對具有值k+1之運行之情況的碼號可保存於一維表E1(k)中。當T=28時,儲存了28個元素。應注意,將此等特殊碼號保存於一表中僅為一個實例。在一些實例中,E1(k)之值亦可經由一公式獲得,以使得不需要明確地儲存E1(k)之元素。
可基於以上兩個編碼規則及映射表E1(k)簡單地導出解碼規則。表E1(k)之大小為T。當T=28時,僅儲存了28個元素。再者,在一些實例中,E1(k)之值亦可經由一公式獲得,以使得不需要明確地儲存E1(k)之元素。
可如下描述編碼及解碼程序之細節:在編碼器側,藉由E1(k)函數及預定義之兩個規則,根據下文重寫之以上編碼器假碼,碼號cn可由視訊編碼器20如下導出(基於E1(k)、運行、位準ID及位置索引值k)。
編碼器:if(k<T) { if(levelID==0) { if(run==k+1) cn=E1(k); else { if(run<E1(k)) cn=run; else cn=run+1; } } else if(levelID==1) { cn=k+2+run; } } else if(k>=T) { ... }
在解碼器側,可執行如下互逆操作以藉由視訊解碼器30根據下文重寫之以上解碼器假碼基於碼號cn之值及當前係數之位置索引值k導出運行及位準ID值。
解碼器:if(k<T) { if(cn>k+1) { levelID=1; run=cn-k-2; } else { levelID=0; if(cn==E1(k)) run=k+1 else if(cn<E1(k)) run=cn; else if(cn>E1(k)) run=cn-1; } else if(k>=T) { ... }
作為另一實例,以上所描述之方法可應用於T1>k>=T0(實例1為當T0=T及T1=0時之特殊情況)。當k<T0或k>=T1時,使用不同方法。在此實例中,T1及T0表示不同臨限值。視訊編碼器20可根據以下實例假碼來執行一方法:編碼器:if(k<T0) { cn=E(run,k),for levelID==0 cn=k+E(run,k)+1,for levelID==1 } else if(T1>k>=T0) { if(levelID==0) { if(run==k+1) cn=E1(k); else { if(run<E1(k)) cn=run; else cn=run+1; } } else if(levelID==1) { cn=k+2+run; } } else if(k>=T1) { ... }
視訊解碼器30可經組態以執行一類似但互逆的方法。
作為又一實例,由使用者或編碼器選擇T0及/或T1及/或一維映射表E1(k)之值,且將選定值傳輸至解碼器作為附加資訊。舉例而言,該等選定值可在PPS(圖像參數集合)、SPS(片段參數集合)或APS(自適應參數集合)中傳輸。
在一些實例中,T0及/或T1及/或一維映射表E1(k)之值可基於旁側資訊而自適應性地判定,該旁側資訊例如為圖像大小、圖像類型、區塊大小、預測模式(例如,框間、框
內)、QP(量化參數)、分割模式(2N×2N、N×N)、運動向量值、運動向量預測子值。該旁側資訊可為當前區塊之可用旁側資訊,或可為來自已編碼/解碼之區塊的旁側資訊。
在一些實例中,使用一維表E2(k)來指定cn與(運行,位準ID)=(運行0,位準0)之間的映射。運行0之一些實例值為運行_l、運行_t及k+1,其中運行_l對應於反向鋸齒形掃描中之先前非零係數的左側位置,且運行_t對應於先前係數的上側位置。以下更詳細描述之圖4提供掃描之實例及此等位置。舉例而言,在4×4區塊中,當k=7時,先前係數在位置8(圖4中之102J)處。位置8之左側位置為位置3(圖4中之102I),其對應於運行=4,因此運行_l=4。位置8之上側位置為位置4(圖4中之102F),其對應於運行=3,因此運行_t=3。編碼器使用映射表E2(k)以將(運行,位準ID)映射至碼號cn,且解碼器執行反向映射。
在一些實例中,使用若干一維表Ei(k)來定義(運行,位準ID)與cn之間的映射。舉例而言,E1(k)定義cn與(運行,位準ID)=(k+1,0)之間的映射;E2(k)定義cn與(運行,位準ID)=(運行_l,0)之間的映射;且E3(k)定義cn與(運行,位準ID)=(運行_t,0)之間的映射。對於其他(運行,位準ID)而言,可使用其他方法來定義其至cn之映射。
視訊編碼器20及視訊解碼器30可各自實施為多種合適編碼器或解碼器電路中之任一者(在適用時),諸如,一或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、離散邏輯電路、軟
體、硬體、韌體或其任何組合。視訊編碼器20及視訊解碼器30中之每一者可包括於一或多個編碼器或解碼器中,該一或多個編碼器或解碼器中之任一者可作為組合式視訊編碼器/解碼器(編解碼器)之一部分整合。包括視訊編碼器20及/或視訊解碼器30之裝置可包含積體電路、微處理器及/或無線通信器件(諸如,蜂巢式電話)。
使用一函數或一維表以(例如)基於掃描次序中之特定位置來判定特定{運行,位準ID}對之碼字索引可提供各種益處。舉例而言,以一維表或函數來替換二維表可減少視訊寫碼器件之記憶體儲存要求。在一些實例中,相比於使用二維表,使用一函數或一維表可較快地執行碼字索引值之查找。
圖2為說明可實施用於寫碼視訊資料之區塊之係數的技術之視訊編碼器20之實例的方塊圖。視訊編碼器20可執行視訊圖框內之區塊(包括巨集區塊,或巨集區塊之分割區或子分割區)的框內及框間寫碼。框內寫碼依賴於空間預測以減少或移除給定視訊圖框內之視訊之空間冗餘。框間寫碼依賴於時間預測以減少或移除一視訊序列之鄰近圖框內的視訊之時間冗餘。框內模式(I模式)可指代若干基於空間之壓縮模式中的任一者,且諸如單向預測(P模式)或雙向預測(B模式)之框間模式可指代若干基於時間之壓縮模式中的任一者。
典型視訊編碼器將原始視訊序列之每一圖框分割為稱為「區塊」之相連矩形區域。此等區塊以「框內模式」(I模
式)或以「框間模式」(P模式或B模式)進行編碼。
對於P模式而言,編碼器(且更特定而言,運動估計單元42)可首先搜尋類似於在先前寫碼之「參考圖框」(表示為F ref )中編碼之區塊的區塊。大體上將搜尋限制為與待編碼之區塊相距不超過特定空間移位。當已識別最佳匹配或「預測」時,其以二維(2D)運動向量(△x,△y)之形式表達,其中△x為水平移位且△y為垂直移位。該等運動向量連同參考圖框可用以建構所預測區塊F pred :F pred (x,y)=F ref (x+△x,y+△y)
圖框內之像素之位置係以(x,y)表示。
對於以I模式編碼之區塊而言,所預測區塊係使用空間預測自同一圖框內之先前編碼之相鄰區塊形成。視訊編碼器20之框內預測單元46可按I模式編碼區塊。
對於I模式及P模式兩者而言,將預測誤差(亦即,正編碼區塊與所預測區塊之間的差)表示為某一離散變換之加權基底函數之集合。變換通常(例如)藉由變換處理單元52基於32×32、16×16、8×8或4×4區塊來執行。如32×16/16×32、32×8/8×32...之其他變換亦為可能的。權重(變換係數)隨後(例如)由量化單元54進行量化。量化引入了資訊損耗,因此經量化之係數具有比原始係數低之精度。
經量化之變換係數及運動向量為「語法元素」之實例。此等經量化之變換係數及運動向量加上某些控制資訊形成
了視訊序列之完整的經寫碼之表示。在自編碼器傳輸至解碼器之前,所有語法元素皆得以熵寫碼(例如,藉由熵寫碼單元56),藉此進一步減少了其表示所需要之位元之數目。熵寫碼為無損耗操作,其旨在藉由利用需要用以表示所傳輸或所儲存符號(語法元素)之位元之分佈的性質(一些符號比另一些更頻繁地出現)而使得該等位元之數目最小。
視訊寫碼器所使用之熵寫碼的一種方法為可變長度碼(VLC)。在VLC寫碼之情況下,可首先向經寫碼之符號中之每一者指派一碼字號。當存在待寫碼之n個符號時,每一符號可具有所指派之碼字號,其範圍為0至n-1。在此等碼字號中之每一者之後,指派一碼字(0及1之串流)。可將較短碼字指派給具有較高機率之符號。此外,該等碼字必須可唯一地解碼,亦即,若解碼器接收有限長度之位元之有效序列,則必須存在當被編碼時本應產生位元之所接收之序列的輸入符號之僅有的一個可能序列。
熵寫碼之另一方法為上下文自適應性二進位算術寫碼(CABAC)。在CABAC中,可向待編碼之值(諸如,變換係數或{運行,位準ID}對)指派經二進位化之值。該等經二進位化之值可接著經算術寫碼。根據本發明之技術,碼字可對應於經二進位化之值。因此,視訊編碼器20可藉由判定經二進位化之值的碼字索引來判定係數之經二進位化之值。因此,在本發明中對判定碼字之引用應被理解為包括VLC碼字之判定及經二進位化之值之判定兩者,VLC碼字
及經二進位化之值可使用(例如)諸如CABAC之算術寫碼進一步寫碼。
為了正確地解碼位元串流,編碼器及解碼器兩者使用碼字之同一集合(例如,同一表)及符號至碼字之相同指派。如之前所提及,為了將壓縮最大化,應向最頻繁出現之符號指派最短碼字。然而,不同符號之頻率(機率)可取決於經編碼之影像之類型而改變。使用碼字之單一集合及符號至彼等碼字之單一指派(符號至碼字號之映射)將因此降低寫碼效率。
為了矯正此問題,使用不同自適應方法。對於符號之集合而言,碼字之眾多集合可為可用的。使用此等集合中之哪一者可取決於編碼器及解碼器兩者已知之資訊(諸如,經寫碼之區塊之類型(I型區塊、P型區塊或B型區塊)、分量(明度或色度)或QP值)。效能取決於用以在碼字之間切換的參數特性化符號統計多麼好。
可藉由在量化變換係數時調整量化參數(QP)之值來控制壓縮比(亦即,用以表示原始序列與經壓縮之序列的位元之數目的比率)。壓縮比亦取決於所使用之熵寫碼之方法。在一些實例中,模式選擇單元40藉由執行多個寫碼遍次(每一遍次使用不同QP)來判定待使用之QP,且選擇最佳平衡用以寫碼視訊資料之位元的數目與引入至視訊資料中之失真量(例如,在稱作位元率失真最佳化(RDO)的程序中)的QP。
如圖2中所示,視訊編碼器20接收待編碼之視訊圖框內
之當前視訊區塊。在圖2之實例中,視訊編碼器20包括運動補償單元44、運動估計單元42、參考圖框記憶體64、求和器50、變換處理單元52、量化單元54及熵寫碼單元56。對於視訊區塊重建構而言,視訊編碼器20亦包括反量化單元58、反變換單元60及求和器62。亦可包括解區塊濾波器(圖2中未圖示)以對區塊邊界進行濾波,從而自經重建構之視訊來移除區塊效應假影。需要時,解區塊濾波器將通常對於求和器62之輸出進行濾波。
在編碼程序期間,視訊編碼器20接收待寫碼之視訊圖框或片段。可將該圖框或片段劃分為多個視訊區塊。運動估計單元42及運動補償單元44相對於一或多個參考圖框中之一或多個區塊執行所接收之視訊區塊之框間預測性寫碼,以提供時間壓縮。框內預測單元46亦可相對於與待寫碼之區塊相同之圖框或片段中的一或多個相鄰區塊來執行所接收之視訊區塊的框內預測性寫碼,以提供空間壓縮。
模式選擇單元40可(例如)基於誤差結果而選擇寫碼模式(框內或框間)中之一者,且將所得經框內寫碼之區塊或經框間寫碼之區塊提供至求和器50以產生殘餘區塊資料,且提供至求和器62以重建構經編碼之區塊以用作參考圖框。如以上所解釋,模式選擇單元40可使用位元率失真最佳化來選擇適當寫碼模式連同其他寫碼特性(諸如,QP)。
運動估計單元42及運動補償單元44可極其整合,但出於概念性目的而獨立地進行說明。運動估計為產生運動向量之程序,該等運動向量估計視訊區塊之運動。舉例而言,
運動向量可指示相對於當前圖框(或其他經寫碼之單元)內之經寫碼之當前區塊的預測性參考圖框(或其他經寫碼之單元)內之預測性區塊的移位。預測性區塊為依據像素差被發現緊密地匹配待寫碼之區塊之區塊,該像素差可藉由絕對差和(SAD)、平方差和(SSD)或其他差量度予以判定。運動向量亦可指示巨集區塊之分割區的移位。運動補償可涉及基於藉由運動估計判定之運動向量來獲取或產生預測性區塊。再者,在一些實例中,運動估計單元42及運動補償單元44可在功能上整合。
運動估計單元42藉由比較經框間寫碼之圖框之視訊區塊與參考圖框記憶體64中之參考圖框的視訊區塊而計算該經框間寫碼之圖框之視訊區塊的運動向量。運動補償單元44亦可內插參考圖框(例如,I圖框或P圖框)之子整數像素。作為實例,ITU H.264描述兩個清單:清單0,其包括具有早於正編碼之當前圖框之顯示次序的參考圖框;及清單1,其包括具有晚於正編碼之當前圖框之顯示次序的參考圖框。因此,可根據此等清單來組織儲存於參考圖框記憶體64中之資料。
運動估計單元42比較來自參考圖框記憶體64之一或多個參考圖框之區塊與當前圖框(例如,P圖框或B圖框)之待編碼之區塊。當參考圖框記憶體64中之參考圖框包括子整數像素之值時,藉由運動估計單元42計算之運動向量可指代參考圖框之子整數像素位置。運動估計單元42及/或運動補償單元44亦可經組態以在無子整數像素位置之值儲存於
參考圖框記憶體64中的情況下計算儲存於參考圖框記憶體64中之參考圖框之子整數像素位置的值。運動估計單元42將所計算之運動向量發送至熵寫碼單元56及運動補償單元44。藉由運動向量識別之參考圖框區塊可稱作預測性區塊。
運動補償單元44可基於預測性區塊而計算預測資料。視訊編碼器20藉由自經寫碼之原始視訊區塊減去來自運動補償單元44之預測資料而形成殘餘視訊區塊。求和器50表示執行此減法運算之一或多個組件。變換處理單元52將變換(諸如,離散餘弦變換(DCT)或概念上類似之變換)應用於殘餘區塊,從而產生包含殘餘變換係數值之視訊區塊。變換處理單元52可執行概念上類似於DCT之其他變換,諸如,由H.264標準定義之變換。
亦可使用小波變換、整數變換、子頻帶變換或其他類型之變換。在任一情況下,變換處理單元52皆將該變換應用於殘餘區塊,從而產生殘餘變換係數之一區塊。該變換可將來自像素域(亦稱作空間域)之殘餘資訊轉換至諸如頻域之變換域。量化單元54量化該等殘餘變換係數以進一步降低位元率。該量化程序可減小與該等係數中之一些或全部相關聯的位元深度。可藉由調整量化參數來修改量化程度。
在量化之後,熵寫碼單元56對經量化之變換係數熵寫碼。舉例而言,熵寫碼單元56可執行內容自適應性可變長度寫碼(CAVLC)、上下文自適應性二進位算術寫碼
(CABAC)或另一熵寫碼技術。在藉由熵寫碼單元56進行之熵寫碼之後,可將經編碼之視訊傳輸至另一器件或經封存以供稍後傳輸或擷取。在上下文自適應性二進位算術寫碼之情況下,上下文可基於相鄰巨集區塊。
根據本發明之技術,熵寫碼單元56可經組態以執行一函數以判定係數(亦即,經量化之變換係數)之資料與碼字索引值之間的映射。舉例而言,對於VLC而言,熵寫碼單元56可判定一係數之VLC碼字。作為另一實例,對於CABAC而言,熵寫碼單元56可判定一係數之經二進位化之值,且可進一步熵編碼該經二進位化之值。以此方式,對於CABAC而言,經二進位化之值可對應於碼字。特定言之,當使用CABAC寫碼時,熵寫碼單元56可按類似於在VLC中判定對應於一碼字索引值之碼字之描述的方式判定對應於該碼字索引值之經二進位化之值。
熵寫碼單元56可使用本發明之技術來寫碼{運行,位準ID}對。舉例而言,熵寫碼單元56可經組態以根據以上所描述之編碼器假碼來執行。亦即,對於一些係數而言,熵寫碼單元56可經組態以執行一函數以判定碼字索引值與當前係數之資料之間的映射。舉例而言,熵寫碼單元56可在該係數具有小於一臨限值之掃描次序值時且在該係數為變換單元中之掃描次序中的末位有效係數時執行該函數。
作為另一實例,熵寫碼單元56可針對具有一{運行,位準ID}對以使得運行值等於到達變換單元中之第一係數左側之第二係數的掃描次序中之係數之數目的係數且在第二
係數具有大於零之絕對值時執行一不同函數。作為又一實例,熵寫碼單元56可針對具有一{運行,位準ID}對以使得運行值等於到達變換單元中之第一係數上方之第二係數的掃描次序中之係數之數目的係數且在第二係數具有大於零之絕對值時執行又一不同函數。以下參看圖4更詳細描述在當前係數上方及左側之係數的實例。
另外,在一些實例中,熵寫碼單元56可經組態以在係數之掃描次序值在兩個臨限值之間時執行一函數以判定係數之資料與碼字索引值之間的映射。亦即,熵寫碼單元56可在掃描次序值小於第一臨限值且大於第二臨限值時執行該函數以判定該映射,其中該第二臨限值小於該第一臨限值。舉例而言,假設T 1 表示第一臨限值,T 2 表示第二臨限值,且k表示係數之掃描次序值。熵寫碼單元56可經組態以在T 2 <k<T 1 時執行該函數以判定該映射。熵寫碼單元56或視訊編碼器20之另一單元可經組態以在一參數集合中寫碼表示第一及/或第二臨限值的發信號資料,該參數集合例如為序列參數集合(SPS)、圖像參數集合(PPS)、自適應參數集合(APS)、片段標頭、圖框標頭、序列標頭或其他資料結構。同樣,視訊編碼器20可寫碼表示一臨限值之值的發信號資料,其中僅一個臨限值用以判定是否判定係數之資料與碼字索引值之間的映射。
在熵寫碼單元56經組態以使用CAVLC寫碼資料的情況下,熵寫碼單元56可使用碼字索引值自VLC表選擇一VLC碼字。舉例而言,VLC表可包括根據特定次序(例如,最
短至最長)配置之碼字,且碼字索引值可對應於VLC表中之一條目。舉例而言,假設碼字索引值為n,則熵寫碼單元56可自VLC表選擇第n個VLC碼字。
在熵寫碼單元56經組態以使用CABAC寫碼資料的情況下,熵寫碼單元56可使用碼字索引值來選擇待使用CABAC寫碼之經二進位化之值。舉例而言,熵寫碼單元56可按類似於以上所描述之VLC碼字之選擇的方式自二進位化表選擇一經二進位化之值。舉例而言,假設碼字索引值為n,則熵寫碼單元56可自二進位化表選擇第n個經二進位化之值。此外,熵寫碼單元56可根據CABAC使用算術寫碼來編碼經二進位化之值。亦即,熵寫碼單元56可初始化用於寫碼當前語法元素之上下文以判定當前上下文狀態,接著寫碼經二進位化之值的每一位元(其中在CABAC中將位元稱作「二進位(bin)」)。在寫碼經二進位化之值的每一二進位之後,熵寫碼單元56可基於最近寫碼之二進位的值來更新當前上下文狀態。
在一些情況下,熵寫碼單元56或視訊編碼器20之另一單元可經組態以除了執行熵寫碼以外亦執行其他寫碼功能。舉例而言,熵寫碼單元56可經組態以判定巨集區塊及分割區之CBP值。熵寫碼單元56亦可藉由適當語法元素來建構標頭資訊,以用於在經編碼之視訊位元串流中傳輸。
反量化單元58及反變換單元60分別應用反量化及反變換以在像素域中重建構殘餘區塊(例如)以供稍後用作參考區塊。運動補償單元44可藉由將殘餘區塊與參考圖框記憶體
64之圖框中之一者的預測性區塊相加而計算參考區塊。運動補償單元44亦可將一或多個內插濾波器應用於經重建構之殘餘區塊,以計算子整數像素值以用於運動估計中。求和器62將經重建構之殘餘區塊與藉由運動補償單元44產生之經運動補償的預測區塊相加,以產生經重建構之視訊區塊以用於儲存於參考圖框記憶體64中。經重建構之視訊區塊可由運動估計單元42及運動補償單元44用作參考區塊,以框間寫碼後續視訊圖框中之區塊。
以此方式,視訊編碼器20表示視訊寫碼器之一實例,其經組態以:當視訊資料之變換單元之係數具有小於一臨限值之掃描次序值時且當該係數為變換單元中之掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。特定言之,在此實例中,視訊寫碼器為視訊編碼器。為了寫碼該係數之資料,視訊編碼器20可經組態以在視訊編碼程序期間使用碼字來編碼該係數之{運行,位準ID}對。同樣,該碼字可包含經二進位化之值,且為了寫碼該資料,視訊編碼器20可經組態以使用上下文自適應性二進位算術寫碼(CABAC)來寫碼該經二進位化之值。
圖3為說明可實施用於寫碼視訊資料之區塊之係數的技術之視訊解碼器30之實例的方塊圖。在圖3之實例中,視訊解碼器30包括熵解碼單元70、運動補償單元72、框內預測單元74、反量化單元76、反變換單元78、參考圖框記憶
體82及求和器80。在一些實例中,視訊解碼器30可執行與關於視訊編碼器20(圖2)所描述之編碼遍次大體上互逆的解碼遍次。運動補償單元72可基於自熵解碼單元70接收之運動向量產生預測資料。
根據本發明之技術,熵解碼單元70可解碼對應於當前係數之資料(例如,當前係數之{運行,位準ID})的碼字索引值。舉例而言,在CAVLC中,熵解碼單元70可接收一VLC碼字且自VLC表判定碼字索引值。作為另一實例,在CABAC中,熵解碼單元70可解碼經CABAC編碼之資料以再生經二進位化之值。亦即,熵解碼單元70可藉由轉變遍歷上下文狀態(類似於以上關於熵寫碼單元56所描述的轉變)而逐個位元地(或逐個二進位地)再生經二進位化之值,且基於當前狀態及正解碼之當前值來判定當前位元之值。以此方式,熵解碼單元70可再生經二進位化之值。熵解碼單元70可接著自二進位化表判定經二進位化之值的碼字索引值。
在任一情況下,在判定當前係數之資料的碼字(例如,VLC碼字或經二進位化之值)之後,在一些實例中,熵解碼單元70可使用一函數以判定碼字索引值與該資料(例如,{運行,位準ID}對)之間的映射。舉例而言,熵解碼單元70可執行一函數以在視訊資料之變換單元之係數具有小於臨限值之掃描次序值時且當該係數為該變換單元中之掃描次序中的末位有效係數時判定該映射。
作為另一實例,熵解碼單元70可針對一係數執行一不同
函數以判定該係數是否具有一{運行,位準ID}對以使得運行值等於到達變換單元中之第一係數左側的第二係數的掃描次序中之係數之數目及判定該第二係數何時具有大於零之絕對值。作為又一實例,熵解碼單元70可針對一係數執行又一不同函數以判定該係數是否具有一{運行,位準ID}對以使得運行值等於到達變換單元中之第一係數上方的第二係數的掃描次序中之係數之數目及判定該第二係數何時具有大於零之絕對值。
另外,在一些實例中,熵解碼單元70可經組態以在一係數之掃描次序值在兩個臨限值之間時執行一函數以判定該係數之資料與碼字索引值之間的映射。亦即,熵解碼單元70可在掃描次序值小於第一臨限值且大於第二臨限值時執行該函數以判定該映射,其中該第二臨限值小於該第一臨限值。舉例而言,假設T 1 表示第一臨限值,T 2 表示第二臨限值,且k表示係數之掃描次序值。熵解碼單元70可經組態以在T 2 <k<T 1 時執行該函數以判定該映射。熵解碼單元70或視訊解碼器30之另一單元可經組態以在一參數集合中寫碼(亦即,解碼)表示第一及/或第二臨限值的發信號資料,該參數集合例如為序列參數集合(SPS)、圖像參數集合(PPS)、自適應參數集合(APS)、片段標頭、圖框標頭、序列標頭或其他資料結構。同樣,視訊解碼器30可寫碼表示一臨限值之值的發信號資料,其中僅一個臨限值用以判定是否判定係數之資料與碼字索引值之間的映射。亦即,視訊解碼器30可接收此資料結構且解碼該資料結構,以判
定該(等)臨限值之值。
以此方式,視訊解碼器30可判定變換單元之當前係數的{運行,位準ID}對的值。視訊解碼器30可進一步解碼係數之其他語法資料(例如,實際位準值),且藉此重建構變換單元。舉例而言,當位準ID值指示係數具有大於一之絕對值時,視訊解碼器30可解碼指示係數之實際值的額外語法資料。藉由針對變換單元之每一係數執行此操作,根據掃描次序在零之運行之後按次序置放非零值之係數的位準值,視訊解碼器30可再生當前寫碼單元之變換單元。此外,反量化單元76可反量化該變換單元,且反變換單元78可反變換該變換單元,以在空間域中再生殘餘值。
在視訊解碼器30中,當前圖框中之區塊係藉由首先以與編碼器中相同之方式建構其預測及藉由將經壓縮之預測誤差與該預測相加而獲得。該經壓縮之預測誤差係藉由使用經量化之係數來加權變換基底函數而找到。經重建構之圖框與原始圖框之間的差稱為重建構誤差。
運動補償單元72可使用在位元串流中接收之運動向量以識別參考圖框記憶體82中之參考圖框中的預測區塊。框內預測單元74可使用在位元串流中接收之框內預測模式以自空間上鄰近之區塊形成一預測區塊。反量化單元76反量化(亦即,解量化)提供於位元串流中且由熵解碼單元70解碼之經量化之區塊係數。反量化程序可包括(例如)如由H.264解碼標準所定義之習知程序。反量化程序亦可包括針對每一巨集區塊使用藉由編碼器50計算之量化參數QPY,以判
定量化程度且同樣地判定應被應用之反量化程度。
反變換單元58將反變換(例如,反DCT、反整數變換或概念上類似之反變換程序)應用於變換係數,以便在像素域中產生殘餘區塊。運動補償單元72產生經運動補償之區塊,從而有可能基於內插濾波器來執行內插。待以子像素精度用於運動估計之內插濾波器的識別符可包括於語法元素中。運動補償單元72可在視訊區塊之編碼期間使用如由視訊編碼器20使用之內插濾波器,以計算參考區塊之子整數像素的經內插之值。運動補償單元72可根據所接收之語法資訊來判定由視訊編碼器20使用之內插濾波器,且使用該等內插濾波器來產生預測性區塊。
運動補償單元72使用語法資訊中之一些來判定用以編碼經編碼之視訊序列之圖框的巨集區塊的大小、描述如何分割經編碼之視訊序列的圖框之每一巨集區塊的分割區資訊、指示如何編碼每一分割區之模式、用於每一經框間編碼之巨集區塊或分割區的一或多個參考圖框(及參考圖框清單),及用以解碼經編碼之視訊序列的其他資訊。
求和器80對殘餘區塊與藉由運動補償單元72或框內預測單元產生之對應預測區塊求和以形成經解碼之區塊。需要時,亦可應用解區塊濾波器來對經解碼之區塊濾波以便移除區塊效應假影。接著將經解碼之視訊區塊儲存於參考圖框記憶體82中,參考圖框記憶體82提供參考區塊以用於後續運動補償,且亦產生經解碼之視訊以用於呈現於顯示器件(諸如,圖1之顯示器件32)上。
視訊解碼器30可經組態以執行本發明之技術中的任一者或全部,諸如,使用一函數或一維表來解碼TU之所接收之係數。如以上所論述,視訊解碼器30可經組態以實施以上所論述之解碼器假碼,或針對編碼器假碼之互逆方法。
以此方式,視訊解碼器30表示視訊寫碼器之一實例,其經組態以:當視訊資料之變換單元之係數具有小於一臨限值之掃描次序值時且當該係數為變換單元中之掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。特定言之,在此實例中,視訊寫碼器為視訊解碼器。為了寫碼係數之資料,視訊解碼器30可經組態以使用碼字來判定該係數之{運行,位準ID}對。此外,視訊解碼器30可經組態以在解碼該碼字之後執行函數以自碼字索引值判定該係數之資料。
圖4為說明係數120A至120P(係數120)之實例鋸齒形掃描的概念圖。儘管圖4說明了4×4區塊之實例,但其他區塊大小亦為可能的。係數120大體上對應於由於TU之像素之變換及量化而產生的經量化之變換係數。在此實例中,鋸齒形掃描可在係數120A處開始,接著進行至係數120B,接著進行至係數120E,接著進行至係數120I,接著進行至係數120F,接著進行至係數120C,接著進行至係數120D,接著進行至係數120G,接著進行至係數120J,接著進行至係數120M,接著進行至係數120N,接著進行至係數120K,接著進行至係數120H,接著進行至係數120L,接
著進行至係數120O,且最後進行至係數120P。
藉由執行此掃描,可將像素之係數的二維配置轉換為包括係數120中每一者之值的一維陣列。此等值可按掃描之次序配置於陣列中。舉例而言,係數120A之值可首先在陣列中,繼之以係數120B、120E、120I、120F等之值。
給定區塊中之係數以特定次序(掃描)配置,從而導致一維有序係數向量。一種廣泛使用之掃描為鋸齒形掃描。4×4區塊之實例鋸齒形掃描展現於圖4中。亦可存在一些其他掃描,如水平掃描、垂直掃描、波前掃描。在本發明中,使用鋸齒形掃描來解釋所提議之方案。應理解,本發明之所提議方案亦可對其他掃描起作用。
鋸齒形掃描假定在應用了2維(2D)變換之後,具有最多能量之變換係數(亦即,較高值之係數)對應於低頻變換函數且如圖4中所描繪朝向區塊之左上方定位。相比而言,較高頻率之較低能量的變換係數朝向區塊之右下方駐存。因此,在經由鋸齒形掃描而產生之係數向量中,較高量值之係數將最可能朝向著向量之開始出現。在量化之後,大多數低能量係數變得等於0。亦有可能在係數寫碼使係數掃描自適應。舉例而言,可將該掃描中之較低編號指派給非零係數較時常出現的彼等位置。
作為實例,使用VLC在HEVC測試模型中熵編碼單一4×4區塊涉及以下步驟:
1.結合指示該掃描中之末位非零係數的絕對值|位準|是否為1或>1的位準ID來編碼此係數的位置。以反向掃描次
序來寫碼4×4區塊之剩餘係數且以運行模式或位準模式來寫碼。基於已寫碼之係數的量值來決定用以自運行模式切換至位準模式的程序。
2.運行模式寫碼。在此模式下,自先前非零係數開始,用信號發送零係數之數目。語法元素isLevelOne_run共同地寫碼運行及位準ID。運行之值等於當前非零係數與反向掃描次序中之下一非零係數之間的零係數之數目,而位準ID指示該下一非零係數之|位準|是否為1或>1。若當前非零係數在位置k中,則運行值可在自0至k之範圍中。等於k之運行值意謂在此區塊中不再存在非零係數。{位準ID,運行}與碼字號cn之間的映射取決於值k。
3.位準模式寫碼。使用VLCx來解碼|位準|之值,其中對於在位準模式下寫碼之第一係數而言,x為0。在每一係數之位準模式解碼之後,若|位準|>vlc_level_table[x],則VLC表索引x遞增1。
當使用CABAC來寫碼{運行,位準ID}對時,可執行類似程序。然而,如本發明中所註明,當使用CABAC寫碼語法元素時,替代選擇VLC碼字,視訊寫碼器可選擇經二進位化之值,且接著進一步二進位算術寫碼該等經二進位化之值。
如以上所註明,可針對掃描次序中之一或多個特殊位置提供一維表及近似一維表之等式。對於VLC而言,可按反向掃描次序(例如,自係數120P至係數120A)來執行運行模式寫碼。因此,為了達成運行模式寫碼(亦即,當寫碼{運
行,位準ID}對時),可將係數120A視為掃描次序中之「末位」係數。如以上所註明,掃描次序中之特殊位置的一個實例為值k小於一臨限值且運行等於k+1的位置。舉例而言,若係數120D為反向掃描次序中之末位係數,則係數120D可具有運行值6及為k值7。因此,視訊編碼器20或視訊解碼器30可使用一維表或函數來判定碼字索引與係數120D之{運行,位準ID}對之間的映射。
如以上所論述,可將可被提供一維表或函數的其他位置視為特殊位置。其他特殊位置之實例包括運行_l及運行_t。作為一實例,當係數120D及120C為零值且係數120F具有非零值時,可將係數120G視為在運行_l位置中。如以上所論述,運行_l位置(稱作「向左運行」或「runLeft(k)」位置)為緊接當前位置之左側的位置,使得在當前位置與運行_l位置之間的掃描次序中之所有係數皆為零值。作為另一實例,當係數120D為零值且係數120C具有非零值時,可或者將係數120G視為在運行_t位置中。如以上所論述,運行_t位置(稱作「向上運行」或「runTop(k)」位置)為緊接當前位置之上方的位置,使得在當前位置與運行_t位置之間的掃描次序中之所有係數皆為零值。
圖5為說明用於編碼當前區塊之實例方法的流程圖。當前區塊可包含一當前CU或該當前CU之一部分。儘管參考視訊編碼器20(圖1及圖2)進行描述,但應理解,其他器件可經組態以執行類似方法。
在此實例中,視訊編碼器20最初預測當前區塊(150)。
舉例而言,視訊編碼器20可計算當前區塊之一或多個預測單元(PU)之像素值。舉例而言,運動估計單元42可計算PU之一運動向量,其指向先前寫碼之圖像中之一參考區塊,且運動補償單元44可自參考區塊提取像素值以用作預測單元之像素值。或者,框內預測單元46可使用框內預測來計算所預測之像素值。
視訊編碼器20可接著計算當前區塊之殘餘區塊以(例如)產生一變換單元(TU)(152)。為了計算該殘餘區塊,視訊編碼器20可計算當前區塊的原始之未經寫碼之區塊與所預測區塊之間的差。舉例而言,求和器50可計算原始區塊之像素值與並列之所預測像素值之間的差。視訊編碼器20可接著變換及量化殘餘區塊之係數(154)。此可產生包括經量化之變換係數的一變換單元。
接下來,視訊編碼器20可掃描變換單元之經量化之變換係數(156)。在掃描期間,或在掃描之後,視訊編碼器20可在運行模式下編碼該等係數(158)。舉例而言,視訊編碼器20可判定表示該等係數之{運行,位準ID}對的碼字(諸如,VLC碼字或經二進位化之值)。對於VLC寫碼而言,視訊編碼器20可使用對應於經判定以用於{運行,位準ID}對之碼字號的VLC碼字來寫碼該{運行,位準ID}對。對於CABAC寫碼而言,視訊編碼器20可CABAC寫碼對應於經判定以用於{運行,位準ID}對之碼字號的經二進位化之值。
特定言之,視訊編碼器20可按反向掃描次序來寫碼係數
的{運行,位準ID}對。對於每一{運行,位準ID}對而言,視訊編碼器20可判定一碼字號(cn),其表示用於編碼該{運行,位準ID}的表中之碼字(例如,VLC表中之VLC碼字或二進位化表中之經二進位化之值)的索引。以下參看圖6來論述關於執行步驟158之一些實例的額外細節。以此方式選擇碼字,視訊編碼器20可輸出區塊之係數的經寫碼之資料(160)。舉例而言,對於VLC而言,視訊編碼器20可輸出VLC碼字,而對於CABAC而言,視訊編碼器20可輸出經二進位化之值的經CABAC寫碼之資料。
圖6為說明用於編碼當前區塊之係數之碼字索引的實例方法的流程圖。特定言之,圖6之方法更詳細地說明用於執行圖5之步驟158之方法的實例。圖6之方法係關於單一係數進行描述,對於該單一係數而言,寫碼單一{運行,位準ID}對。
最初,視訊編碼器20掃描(使用反向掃描次序)位置k處之係數(180)。在此實例中,假設係數具有小於對應臨限值之k值。視訊編碼器20接著判定係數之運行及位準ID的值(182)。特定言之,視訊編碼器20可判定運行等於當前係數與下一非零值係數或反向掃描中之末位係數(若無剩餘之非零值係數)之間的零值係數之數目。同樣,視訊編碼器20可在係數具有絕對值「1」時判定位準ID具有值「0」,或在係數具有大於1之絕對值時判定位準ID具有值「1」。換言之,令位置k處之係數稱為「A」,且掃描次序中之下一非零值係數稱為「B」。等於0之位準ID可指示B之絕對
值為1,且等於1之位準ID可指示B之絕對值大於1。
視訊編碼器20可接著判定位準ID是否具有值「0」(183)。若位準ID不具有值「0」(183之「否」分支)(例如,具有值「1」),則視訊編碼器20可將cn之值設定為等於k+2+運行(184)。另一方面,若位準ID等於「0」(183之「是」分支),則視訊編碼器20可進一步判定運行是否等於k+1(185)。特定言之,視訊編碼器20可判定當前係數是否為反向掃描次序中之末位非零值係數。
當視訊編碼器20判定運行等於k+1時(185之「是」分支),視訊編碼器20可使用一維表計算{運行,位準ID}對之cn的值(例如,索引至值k)(186)。或者,視訊編碼器20可執行近似該一維表之一函數,從而使值k通過該函數。該函數可基於值k傳回cn之值。以此方式,視訊編碼器20可執行一函數以判定係數之資料與碼字索引值之間的映射,其中在此實例中cn為碼字索引值。
另一方面,若運行不等於k+1(185之「否」分支),則視訊編碼器20可判定運行是否小於E1(k)(亦即,針對值k由一維表傳回之值)(188)。若運行小於E1(k)(188之「是」分支),則視訊編碼器20可判定cn具有等於運行之值(190)。另一方面,若運行大於E1(k)(188之「否」分支),則視訊編碼器20可判定cn具有等於運行+1之值(192)。視訊編碼器20可接著選擇映射至cn之所判定值的碼字(194),例如,來自VLC表之VLC碼字或來自用於CABAC之二進位化表的經二進位化之值。另外,對於CABAC而言,視訊編碼器20
可熵編碼選定之經二進位化之值。
以此方式,圖5及圖6表示寫碼視訊資料之方法的實例,其包括:當視訊資料之變換單元之係數具有小於一臨限值之掃描次序值時且當該係數為變換單元中之掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。
圖7為說明用於解碼視訊資料之當前區塊之實例方法的流程圖。當前區塊可包含一當前CU或該當前CU之一部分。儘管關於視訊解碼器30(圖1及圖3)進行了描述,但應理解,其他器件可經組態以執行類似方法。
視訊解碼器30可預測當前區塊(200),例如,使用框內或框間預測模式以計算當前區塊之所預測區塊。視訊解碼器30亦可接收對應於用於對應於當前區塊之殘餘區塊之係數的碼字的經寫碼之資料(202)。舉例而言,在VLC中,該經寫碼之資料可為其自身之VLC碼字,而對於CABAC而言,該經寫碼之資料可包含對應於經二進位化之值的經CABAC寫碼之資料,視訊解碼器30可CABAC解碼該經CABAC寫碼之資料以再生經二進位化之值(亦即,碼字)。
視訊解碼器30可判定碼字所映射至之碼字索引,且使用運行模式來解碼自該等碼字映射之碼字索引以再生該等係數之資料(204)。當然,如以上所論述,該等係數之資料對應於{運行,位準ID}對。儘管圖7中未圖示,但當位準ID指示位準值大於一時,視訊解碼器30可進一步解碼指示該
等係數之實際位準值的該等係數之位準資料。視訊解碼器30亦可反向掃描所再生係數(206),以產生經量化之變換係數的區塊。視訊解碼器30可接著反量化及反向掃描該等係數以產生一殘餘區塊(208)。該殘餘區塊可包括像素域中之殘餘係數。視訊解碼器30可最終藉由組合所預測區塊與殘餘區塊來解碼當前區塊(210)。亦即,視訊解碼器30可將殘餘值與所預測值相加以再生對應區塊之個別像素值。
圖8為說明用於解碼碼字索引之實例方法的流程圖。特定言之,圖8之方法為用於更詳細執行圖7之步驟204之方法的實例。圖8之實例係關於單一係數之單一碼字索引值cn進行描述,且假設此係數具有小於一臨限值之k值。
在一些實例中,視訊解碼器30可接收一VLC碼字,而在其他實例中,視訊解碼器30可解碼所接收之經CABAC寫碼之資料以再生一經二進位化之值(亦即,碼字)。在任一情況下,視訊解碼器30皆可自位置k處之係數之碼字來判定該係數的碼字索引值(220)。舉例而言,視訊解碼器30可自VLC表判定所接收之VLC碼字所映射至之碼字索引值。或者,視訊解碼器30可再生經二進位化之值且使用二進位化表判定碼字索引。以此方式,視訊解碼器30可使用與碼字索引值相關聯之碼字(例如,VLC碼字或經二進位化之值)來寫碼係數之資料。
視訊解碼器30可接著判定cn是否大於k+1(222)。若cn大於k+1(222之「是」分支),則視訊解碼器30可判定該係數之位準ID具有值「1」(224),且該係數之運行值具有值
cn-k-2(226)。以此方式,當cn大於k+1時,視訊解碼器30可重建構該係數之{運行,位準ID}對。
另一方面,當cn不大於k+1時(222之「否」分支),視訊解碼器30可判定位準ID具有值「0」(228)。此外,視訊解碼器30可判定cn是否等於由E1(k)傳回之值(亦即,由對值k執行之函數傳回的值),其中該函數近似一維表(230)。或者,視訊解碼器30可使用實際一維表來判定此值。若由E1(k)傳回之值等於cn(230之「是」分支),則視訊解碼器30可判定運行具有值k+1(232)。以此方式,當該係數為掃描次序中之末位有效係數時,視訊解碼器30可執行一函數以判定該係數之資料(例如,運行值)與碼字索引值cn之間的映射。
另一方面,若由E1(k)傳回之值不等於cn(230之「否」分支),則視訊解碼器30可判定cn是否小於由E1(k)傳回之值(234)。若cn小於由E1(k)傳回之值(234之「是」分支),則視訊解碼器30可判定運行具有等於cn之值(236)。然而,若cn大於由E1(k)傳回之值(234之「否」分支),則視訊解碼器30可判定運行具有等於cn減1之值(238)。視訊解碼器30可接著使用所判定之{運行,位準ID}對來解碼該係數(240)。
以此方式,圖7及圖8之實例表示用於寫碼資料之方法的實例,該方法包括:當視訊資料之變換單元之係數具有小於一臨限值之掃描次序值時且當該係數為變換單元中之掃描次序中的末位有效係數時,執行一函數以判定該係數之
資料與一碼字索引值之間的映射,且使用與該碼字索引值相關聯之碼字來寫碼該係數之該資料。
儘管在圖5至圖8之實例中未圖示,但對於其他情況而言,視訊編碼器20及視訊解碼器30可經組態以使用其他函數來判定係數之資料與碼字索引值之間的映射。舉例而言,視訊編碼器20及視訊解碼器30可經組態以針對具有一{運行,位準ID}對以使得運行值等於以到達變換單元中之第一係數左側的第二係數的掃描次序中之係數之數目的係數且在第二係數具有大於零之絕對值時執行一不同函數以判定映射。作為另一實例,視訊編碼器20及視訊解碼器30可經組態以針對具有一{運行,位準ID}對以使得運行值等於到達變換單元中之第一係數上方的第二係數的掃描次序中之係數之數目的係數且在第二係數具有大於零之絕對值時執行又一不同函數以判定映射。
此外,如以上所註明,假設在執行圖5至圖8之方法中,k值小於對應臨限值。然而,在其他實例中,視訊編碼器20及視訊解碼器30可在係數之k值在兩個臨限值之間時執行此等方法。舉例而言,視訊編碼器20可在k小於第一臨限值T1且大於第二臨限值T2時執行圖5及圖6之方法。同樣,視訊解碼器30可在k小於第一臨限值T1且大於第二臨限值T2時執行圖7及圖8之方法。然而,在此等實例中,當k大於T1或小於T2時,視訊編碼器20及視訊解碼器30可執行替代方法。另外,該等方法可另外包括寫碼發信號資料以判定該等臨限值之值。
應認識到,取決於實例,可按不同順序來執行或可添加、合併或一起省去本文中所描述之方法中之任一者的某些動作或事件(例如,並非所有所描述之動作或事件為該方法之實踐所需)。此外,在某些實例中,動作或事件可(例如)經由多執行線緒處理、中斷處理或多個處理器同時地而非順序地執行。
在一或多個實例中,所描述功能可按硬體、軟體、韌體或其任何組合予以實施。若以軟體實施,則該等功能可作為一或多個指令或程式碼而儲存於電腦可讀媒體上或經由電腦可讀媒體進行傳輸,且由基於硬體之處理單元執行。電腦可讀媒體可包括電腦可讀儲存媒體(其對應於諸如資料儲存媒體之有形媒體)或通信媒體(其包括(例如)根據通信協定促進電腦程式自一處至另一處之傳送之任何媒體)。以此方式,電腦可讀媒體大體上可對應於(1)非暫時之有形電腦可讀儲存媒體或(2)諸如信號或載波之通信媒體。資料儲存媒體可為可由一或多個電腦或一或多個處理器存取以擷取指令、程式碼及/或資料結構來實施本發明中所描述之技術的任何可用媒體。電腦程式產品可包括電腦可讀媒體。
舉例而言而非限制,此等電腦可讀媒體可包含RAM、ROM、EEPROM、CD-ROM或其他光碟儲存器件、磁碟儲存器件或其他磁性儲存器件、快閃記憶體,或可用以儲存呈指令或資料結構之形式之所要程式碼且可由電腦存取的任何其他媒體。亦將任何連接適當地稱為電腦可讀媒體。
舉例而言,若使用同軸電纜、光纖纜線、雙絞線、數位用戶線(DSL),或諸如紅外線、無線電及微波之無線技術而自網站、伺服器或其他遠端源傳輸指令,則同軸電纜、光纖纜線、雙絞線、DSL或諸如紅外線、無線電及微波之無線技術包括於媒體之定義中。然而,應理解,電腦可讀儲存媒體及資料儲存媒體不包括連接、載波、信號或其他暫時性媒體,而是針對非暫時性有形儲存媒體。如本文中所使用,磁碟及光碟包括緊密光碟(CD)、雷射光碟、光學光碟、數位多功能光碟(DVD)、軟磁碟及藍光光碟,其中磁碟通常以磁性方式再生資料,而光碟藉由雷射以光學方式再生資料。以上各物之組合亦應包括於電腦可讀媒體之範疇內。
可由一或多個處理器(諸如,一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、場可程式化邏輯陣列(FPGA)或其他等效之整合式或離散邏輯電路,或以上各者之組合)來執行指令。因此,如本文中所使用,術語「處理器」可指代上述結構或適合於實施本文中所描述之技術的任何其他結構中之任一者。另外,在一些態樣中,本文中所描述之功能性可提供於經組態以編碼及解碼的專用硬體及/或軟體模組內或併入於組合之編解碼器中。該等技術亦可完全實施於一或多個電路或邏輯元件中。
本發明之技術可實施於多種器件或裝置中,該等器件或裝置包括無線手機、積體電路(IC)或IC之集合(例如,晶片
組)。在本發明中描述了各種組件、模組或單元以強調經組態以執行所揭示之技術之器件的功能態樣,但未必需要藉由不同硬體單元來實現。實情為,如以上所描述,各種單元可組合於一編解碼器硬體單元中或由交互操作性硬體單元之集合結合合適之軟體及/或韌體來提供,該等交互操作性硬體單元包括如以上所描述之一或多個處理器。
已描述各種實例。此等及其他實例屬於隨附申請專利範圍之範疇內。
10‧‧‧實例視訊編碼及解碼系統/系統/所說明系統
12‧‧‧源器件/器件/視訊器件
14‧‧‧目的地器件/器件/視訊器件
16‧‧‧通信頻道/頻道
18‧‧‧視訊源
20‧‧‧視訊編碼器
22‧‧‧調變器/解調變器(數據機)
24‧‧‧傳輸器
26‧‧‧接收器
28‧‧‧數據機
30‧‧‧視訊解碼器
32‧‧‧顯示器件
40‧‧‧模式選擇單元
42‧‧‧運動估計單元
44‧‧‧運動補償單元
46‧‧‧框內預測單元
50‧‧‧求和器
52‧‧‧變換處理單元
54‧‧‧量化單元
56‧‧‧熵寫碼單元
58‧‧‧反量化單元
60‧‧‧反變換單元
62‧‧‧求和器
64‧‧‧參考圖框記憶體
70‧‧‧熵解碼單元
72‧‧‧運動補償單元
74‧‧‧框內預測單元
76‧‧‧反量化單元
78‧‧‧反變換單元
80‧‧‧求和器
82‧‧‧參考圖框記憶體
120A‧‧‧係數
120B‧‧‧係數
120C‧‧‧係數
120D‧‧‧係數
120E‧‧‧係數
120F‧‧‧係數
120G‧‧‧係數
120H‧‧‧係數
120I‧‧‧係數
120J‧‧‧係數
120K‧‧‧係數
120L‧‧‧係數
120M‧‧‧係數
120N‧‧‧係數
120O‧‧‧係數
120P‧‧‧係數
圖1為說明可利用用於寫碼視訊資料之區塊之係數的技術之實例視訊編碼及解碼系統的方塊圖。
圖2為說明可實施用於寫碼視訊資料之區塊之係數的技術之視訊編碼器之實例的方塊圖。
圖3為說明可實施用於寫碼視訊資料之區塊之係數的技術之視訊解碼器之實例的方塊圖。
圖4為說明視訊資料之區塊之係數的實例鋸齒形掃描的概念圖。
圖5為說明用於編碼當前區塊之實例方法的流程圖。
圖6為說明用於編碼當前區塊之係數之碼字索引的實例方法的流程圖。
圖7為說明用於解碼視訊資料之當前區塊之實例方法的流程圖。
圖8為說明用於解碼當前區塊之係數之碼字索引的實例方法的流程圖。
Claims (44)
- 一種寫碼視訊資料之方法,該方法包含:當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位有效係數時:執行一函數以判定該係數之資料與一碼字索引值之間的一映射;及使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料。
- 如請求項1之方法,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,且其中該係數包含一第一係數,該方法進一步包含當該第一係數之該資料包含一{運行,位準ID}對以使得該運行值等於到達該變換單元中之該第一係數左側之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時:執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射;及使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料。
- 如請求項1之方法,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,且其中該係數包含一第一係數,該方法進一步包含當該第一係數之該資料包含一{運行,位準ID} 對以使得該運行值等於到達該變換單元中之該第一係數上方之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時:執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射;及使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料。
- 如請求項1之方法,其中該臨限值包含一第一臨限值,且其中執行該函數及寫碼該資料包含當該掃描次序值小於該第一臨限值且大於一第二臨限值時執行該函數及寫碼該資料,其中該第二臨限值小於該第一臨限值。
- 如請求項1之方法,其進一步包含在用於包括該變換單元之一片段的一片段參數集合(SPS)、用於包括該變換單元之該片段的一自適應參數集合(APS)及用於包括該變換單元之一圖像的一圖像參數集合(PPS)中的至少一者中寫碼指示該臨限值之一發信號值。
- 如請求項1之方法,其中寫碼該係數之該資料包含在一視訊編碼程序期間使用該碼字來編碼該係數之一{運行,位準ID}對。
- 如請求項1之方法,其中寫碼該係數之該資料包含在一視訊解碼程序期間使用該碼字來判定該係數之一{運行,位準ID}對。
- 如請求項1之方法,其中該碼字包含一經二進位化之值,且其中寫碼該資料進一步包含使用上下文自適應性 二進位算術寫碼(CABAC)熵寫碼該經二進位化之值。
- 如請求項1之方法,其中寫碼該資料包含解碼該碼字以再生該碼字索引值,且其中執行該函數包含在解碼該碼字之後執行該函數以自該碼字索引值判定該係數之該資料。
- 如請求項9之方法,其中解碼該碼字包含:熵解碼資料以再生一經二進位化之值,其中該經二進位化之值包含該碼字;及判定該經二進位化之值所對應的該碼字索引值。
- 如請求項9之方法,其進一步包含:判定對應於該變換單元之預測性資料;再生該變換單元之殘餘資料;及組合該預測性資料與該殘餘資料。
- 如請求項1之方法,其中寫碼該係數之該資料包含在執行該函數之後使用該碼字編碼該資料。
- 一種用於寫碼視訊資料之器件,該器件包含一視訊寫碼器,該視訊寫碼器經組態以:當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位有效係數時,執行一函數以判定該係數之資料與一碼字索引值之間的一映射,且使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料。
- 如請求項13之器件,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,其中該係數包含一第一係數,且其中該視 訊寫碼器經進一步組態以當該第一係數之該資料包含一{運行,位準ID}對以使得該運行值等於到達該變換單元中之該第一係數左側之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時,執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射,且使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料。
- 如請求項13之器件,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,其中該係數包含一第一係數,且其中該視訊寫碼器經進一步組態以當該第一係數之該資料包含一{運行,位準ID}對以使得該運行值等於到達該變換單元中之該第一係數上方之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時,執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射,且使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料。
- 如請求項13之器件,其中該臨限值包含一第一臨限值,且其中該視訊寫碼器經組態以當該掃描次序值小於該第一臨限值且大於一第二臨限值時執行該函數且寫碼該資料,其中該第二臨限值小於該第一臨限值。
- 如請求項13之器件,其中該視訊寫碼器經進一步組態以在用於包括該變換單元之一片段的一片段參數集合(SPS)、用於包括該變換單元之該片段的一自適應參數集 合(APS)及用於包括該變換單元之一圖像的一圖像參數集合(PPS)中的至少一者中寫碼指示該臨限值之一發信號值。
- 如請求項13之器件,其中該視訊寫碼器包含一視訊解碼器。
- 如請求項18之器件,其中為了寫碼該係數之該資料,該視訊解碼器經組態以使用該碼字來判定該係數之一{運行,位準ID}對。
- 如請求項18之器件,其中該視訊解碼器經組態以解碼該碼字以再生一碼字索引值,且其中為了執行該函數,該視訊解碼器經組態以在解碼該碼字之後執行該函數以自該碼字索引值判定該係數之該資料。
- 如請求項13之器件,其中該視訊寫碼器包含一視訊編碼器。
- 如請求項21之器件,其中為了寫碼該係數之該資料,該視訊編碼器經組態以在一視訊編碼程序期間使用該碼字來編碼該係數之一{運行,位準ID}對。
- 如請求項13之器件,其中該碼字包含一經二進位化之值,且其中為了寫碼該資料,該視訊寫碼器經組態以使用上下文自適應性二進位算術寫碼(CABAC)寫碼該經二進位化之值。
- 一種寫碼視訊資料之器件,該器件包含:用於當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一 掃描次序中的末位有效係數時執行一函數以判定該係數之資料與一碼字索引值之間的一映射的構件;及用於當該係數具有該掃描次序值時且當該係數為該變換單元中之該掃描次序中的該末位有效係數時使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料的構件。
- 如請求項24之器件,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,且其中該係數包含一第一係數,該器件進一步包含:用於當該第一係數之該資料包含一{運行,位準ID}對以使得該運行值等於到達該變換單元中之該第一係數左側之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射的構件;及用於當該第一係數之該資料包含該{運行,位準ID}對時且當該第二係數具有大於零之該值時使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料的構件。
- 如請求項24之器件,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,且其中該係數包含一第一係數,該器件進一步包含: 用於當該第一係數之該資料包含一{運行,位準ID}對以使得該運行值等於到達該變換單元中之該第一係數上方之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射的構件;及用於當該第一係數之該資料包含該{運行,位準ID}對時且當該第二係數具有大於零之該值時使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料的構件。
- 如請求項24之器件,其中該臨限值包含一第一臨限值,且其中用於執行該函數的該構件及用於寫碼該資料的該構件包含在該掃描次序值小於該第一臨限值且大於一第二臨限值時用於執行該函數的構件及用於寫碼該資料的構件,其中該第二臨限值小於該第一臨限值。
- 如請求項24之器件,其進一步包含用於在用於包括該變換單元之一片段的一片段參數集合(SPS)、用於包括該變換單元之該片段的一自適應參數集合(APS)及用於包括該變換單元之一圖像的一圖像參數集合(PPS)中的至少一者中寫碼指示該臨限值之一發信號值的構件。
- 如請求項24之器件,其中用於寫碼該係數之該資料的該構件包含用於在一視訊解碼程序期間使用該碼字來判定該係數之一{運行,位準ID}對的構件。
- 如請求項29之器件,其中用於寫碼該資料的該構件包含 用於解碼該碼字以再生該碼字索引值的構件,且其中用於執行該函數的該構件包含用於在解碼該碼字之後執行該函數以自該碼字索引值判定該係數之該資料的構件。
- 如請求項24之器件,其中用於寫碼該係數之該資料的該構件包含用於在一視訊編碼程序期間使用該碼字來編碼該係數之一{運行,位準ID}對的構件。
- 如請求項24之器件,其中該碼字包含一經二進位化之值,且其中用於寫碼該資料的該構件進一步包含用於使用上下文自適應性二進位算術寫碼(CABAC)熵寫碼該經二進位化之值的構件。
- 一種電腦程式產品,其包含一電腦可讀媒體,該電腦可讀媒體具有儲存於其上之指令,該等指令在被執行時,使用於寫碼視訊資料之一器件的一處理器當視訊資料之一變換單元之一係數具有小於一臨限值之一掃描次序值時且當該係數為該變換單元中之一掃描次序中的末位有效係數時:執行一函數以判定該係數之資料與一碼字索引值之間的一映射;且使用與該碼字索引值相關聯之一碼字來寫碼該係數之該資料。
- 如請求項33之電腦程式產品,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,且其中該係數包含一第一係數,該電腦程式產品進一步包含使該處理器當該第一係數之 該資料包含一{運行,位準ID}對以使得該運行值等於到達該變換單元中之該第一係數左側之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時進行如下操作的指令:執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射;且使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料。
- 如請求項33之電腦程式產品,其中該函數包含一第一函數,其中該映射包含一第一映射,其中該碼字索引值包含一第一碼字索引值,且其中該係數包含一第一係數,該電腦程式產品進一步包含使該處理器當該第一係數之該資料包含一{運行,位準ID}對以使得該運行值等於到達該變換單元中之該第一係數上方之一第二係數的該掃描次序中之係數之一數目時且當該第二係數具有大於零之一絕對值時進行如下操作的指令:執行一第二函數以判定該第一係數之該資料與一第二碼字索引值之間的一第二映射;且使用與該第二碼字索引值相關聯之一碼字來寫碼該第一係數之該資料。
- 如請求項33之電腦程式產品,其中該臨限值包含一第一臨限值,且其中使該處理器執行該函數的該等指令及使該處理器寫碼該資料的該等指令包含當該掃描次序值小於該第一臨限值且大於一第二臨限值時使該處理器執行 該函數的指令及使該處理器寫碼該資料的指令,其中該第二臨限值小於該第一臨限值。
- 如請求項33之電腦程式產品,其進一步包含使該處理器在用於包括該變換單元之一片段的一片段參數集合(SPS)、用於包括該變換單元之該片段的一自適應參數集合(APS)及用於包括該變換單元之一圖像的一圖像參數集合(PPS)中的至少一者中寫碼指示該臨限值之一發信號值的指令。
- 如請求項33之電腦程式產品,其中使該處理器寫碼該係數之該資料的該等指令包含使該處理器解碼該係數之該資料的指令。
- 如請求項38之電腦程式產品,其中使該處理器寫碼該係數之該資料的該等指令包含使該處理器使用該碼字判定該係數之一{運行,位準ID}對的指令。
- 如請求項38之電腦程式產品,其中使該處理器寫碼該資料的該等指令包含使該處理器解碼該碼字以再生該碼字索引值的指令,且其中使該處理器執行該函數的該等指令包含使該處理器在解碼該碼字之後執行該函數以自該碼字索引值判定該係數之該資料的指令。
- 如請求項38之電腦程式產品,其中使該處理器解碼該碼字的該等指令包含:使該處理器熵解碼資料以再生一經二進位化之值的指令,其中該經二進位化之值包含該碼字;及使該處理器判定該經二進位化之值所對應之該碼字索引值的指令。
- 如請求項33之電腦程式產品,其中使該處理器寫碼該係數之該資料的該等指令包含使該處理器解碼該係數之該資料的指令。
- 如請求項42之電腦程式產品,其中使該處理器寫碼該係數之該資料的該等指令包含使該處理器使用該碼字編碼該係數之一{運行,位準ID}對的指令。
- 如請求項33之電腦程式產品,其中該碼字包含一經二進位化之值,且其中使該處理器寫碼該資料的該等指令進一步包含使該處理器使用上下文自適應性二進位算術寫碼(CABAC)熵寫碼該經二進位化之值的指令。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201161493337P | 2011-06-03 | 2011-06-03 | |
US201161504673P | 2011-07-05 | 2011-07-05 | |
US201161538658P | 2011-09-23 | 2011-09-23 | |
US13/484,068 US9491491B2 (en) | 2011-06-03 | 2012-05-30 | Run-mode based coefficient coding for video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201315237A true TW201315237A (zh) | 2013-04-01 |
Family
ID=46319890
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101119857A TW201315237A (zh) | 2011-06-03 | 2012-06-01 | 用於視訊寫碼之以運行模式為基礎的係數寫碼 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9491491B2 (zh) |
EP (1) | EP2754294A1 (zh) |
JP (1) | JP5937205B2 (zh) |
KR (1) | KR101539169B1 (zh) |
CN (1) | CN103563371A (zh) |
TW (1) | TW201315237A (zh) |
WO (1) | WO2012166963A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8891888B2 (en) * | 2012-09-05 | 2014-11-18 | Google Inc. | Entropy coding for recompression of images |
US9621906B2 (en) * | 2012-12-10 | 2017-04-11 | Lg Electronics Inc. | Method for decoding image and apparatus using same |
CN108259900B (zh) * | 2013-01-16 | 2021-01-01 | 黑莓有限公司 | 针对视频的上下文自适应二进制熵编码的变换系数编码 |
US10356426B2 (en) * | 2013-06-27 | 2019-07-16 | Google Llc | Advanced motion estimation |
US10291940B2 (en) | 2014-05-23 | 2019-05-14 | Qualcomm Incorporated | Coding runs with escape in palette-based video coding |
US10382749B2 (en) * | 2014-05-23 | 2019-08-13 | Qualcomm Incorporated | Coding run values based on palette index in palette-based video coding |
US11323733B2 (en) | 2014-05-23 | 2022-05-03 | Qualcomm Incorporated | Predictor palette initialization in palette-based video coding |
KR102661759B1 (ko) * | 2018-09-24 | 2024-04-30 | 프라운호퍼-게젤샤프트 추르 푀르데룽 데어 안제반텐 포르슝 에 파우 | 종속 스칼라 양자화를 사용하거나 이와 조합하는 데에 적합한 변환 계수의 효율적인 코딩 |
EP4000266A4 (en) * | 2019-08-20 | 2022-10-26 | Beijing Bytedance Network Technology Co., Ltd. | RESIDUAL CODING FOR TRANSFORM SKIP BLOCKS |
US11695965B1 (en) | 2022-10-13 | 2023-07-04 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. | Video coding using a coded picture buffer |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7116829B1 (en) * | 1996-11-06 | 2006-10-03 | Matsushita Electric Industrial Co., Ltd. | Image coding and decoding methods, image coding and decoding apparatuses, and recording media for image coding and decoding programs |
US6414608B1 (en) * | 1999-06-09 | 2002-07-02 | Matsushita Electric Industrial Co., Ltd. | Variable length code decoding device, digital broadcast receiving apparatus, and DVD reproducing apparatus |
JP4527474B2 (ja) | 2004-08-27 | 2010-08-18 | パナソニック株式会社 | 可変長符号化装置、撮像装置 |
EP1755341A1 (en) | 2005-08-19 | 2007-02-21 | Texas Instruments Incorporated | Method of quantization of transform coefficients |
KR100772870B1 (ko) * | 2005-12-12 | 2007-11-02 | 삼성전자주식회사 | Fgs 계층의 블록에 포함되는 계수의 특성에 따라 비디오신호를 부호화하고 복호화하는 방법 및 장치 |
US20070286277A1 (en) | 2006-06-13 | 2007-12-13 | Chen Xuemin Sherman | Method and system for video compression using an iterative encoding algorithm |
US8467449B2 (en) | 2007-01-08 | 2013-06-18 | Qualcomm Incorporated | CAVLC enhancements for SVC CGS enhancement layer coding |
EP2018070A1 (en) * | 2007-07-17 | 2009-01-21 | Thomson Licensing | Method for processing images and the corresponding electronic device |
US8036471B2 (en) | 2007-10-02 | 2011-10-11 | Cisco Technology, Inc. | Joint amplitude and position coding of coefficients for video compression |
CN101222637A (zh) | 2008-02-01 | 2008-07-16 | 清华大学 | 具有特征标志的编码方法 |
KR101375668B1 (ko) * | 2008-03-17 | 2014-03-18 | 삼성전자주식회사 | 변환 계수의 부호화, 복호화 방법 및 장치 |
US8737613B2 (en) * | 2008-11-20 | 2014-05-27 | Mediatek Inc. | Scanning methods of transform-based digital data processing that conditionally adjust scan order according to characteristics information and related apparatus thereof |
BRPI0922846A2 (pt) | 2008-12-03 | 2018-01-30 | Nokia Corp | alternando entre modos de codificação do coeficiente dct |
US9094691B2 (en) * | 2010-03-15 | 2015-07-28 | Mediatek Singapore Pte. Ltd. | Methods of utilizing tables adaptively updated for coding/decoding and related processing circuits thereof |
US8410959B2 (en) | 2010-04-09 | 2013-04-02 | Qualcomm, Incorporated | Variable length codes for coding of video data |
US8942282B2 (en) | 2010-04-12 | 2015-01-27 | Qualcomm Incorporated | Variable length coding of coded block pattern (CBP) in video compression |
US20120027081A1 (en) * | 2010-07-30 | 2012-02-02 | Cisco Technology Inc. | Method, system, and computer readable medium for implementing run-level coding |
US8976861B2 (en) | 2010-12-03 | 2015-03-10 | Qualcomm Incorporated | Separately coding the position of a last significant coefficient of a video block in video coding |
US9490839B2 (en) | 2011-01-03 | 2016-11-08 | Qualcomm Incorporated | Variable length coding of video block coefficients |
-
2012
- 2012-05-30 US US13/484,068 patent/US9491491B2/en not_active Expired - Fee Related
- 2012-05-31 EP EP12728335.6A patent/EP2754294A1/en not_active Withdrawn
- 2012-05-31 CN CN201280026338.3A patent/CN103563371A/zh active Pending
- 2012-05-31 KR KR1020137034044A patent/KR101539169B1/ko not_active IP Right Cessation
- 2012-05-31 JP JP2014513709A patent/JP5937205B2/ja not_active Expired - Fee Related
- 2012-05-31 WO PCT/US2012/040272 patent/WO2012166963A1/en unknown
- 2012-06-01 TW TW101119857A patent/TW201315237A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
JP5937205B2 (ja) | 2016-06-22 |
JP2014519762A (ja) | 2014-08-14 |
KR20140016983A (ko) | 2014-02-10 |
CN103563371A (zh) | 2014-02-05 |
EP2754294A1 (en) | 2014-07-16 |
US9491491B2 (en) | 2016-11-08 |
WO2012166963A1 (en) | 2012-12-06 |
KR101539169B1 (ko) | 2015-07-23 |
US20120307888A1 (en) | 2012-12-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6672226B2 (ja) | 大型マクロ・ブロックを用いたビデオ・コーディング | |
US9807399B2 (en) | Border pixel padding for intra prediction in video coding | |
JP6165798B2 (ja) | イントラ予測を使用したビデオ符号化 | |
TWI419567B (zh) | 使用大的巨區塊之視訊編碼 | |
US9172963B2 (en) | Joint coding of syntax elements for video coding | |
US8913662B2 (en) | Indicating intra-prediction mode selection for video coding using CABAC | |
KR101387255B1 (ko) | 비디오 코딩을 위한 적응적 모션 분해능 | |
JP5788517B2 (ja) | ジョイントコンテキストモデルを使用した係数のエントロピーコード化 | |
TWI392370B (zh) | 使用大的巨區塊之視訊編碼 | |
US20170238015A1 (en) | Signaling selected directional transform for video coding | |
TWI520584B (zh) | 用信號發送用於一葉層級編碼單元之子集的轉換係數的語法元素 | |
TW201818720A (zh) | 使用解耦樹結構之視訊內寫碼 | |
US20110310976A1 (en) | Joint Coding of Partition Information in Video Coding | |
US20120082224A1 (en) | Intra smoothing filter for video coding | |
TW201315237A (zh) | 用於視訊寫碼之以運行模式為基礎的係數寫碼 | |
TW201352004A (zh) | 轉換係數寫碼 | |
JP2013539940A (ja) | ビデオコーディングのためのイントラ予測モード選択の指示 | |
KR20130095311A (ko) | 변환 계수들에 대한 함수-기반의 스캐닝 순서를 이용한 비디오 코딩 |