專利名稱::視頻編碼系統(tǒng)中的vlc編碼方法和裝置的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般涉及視頻編碼。更具體地,本發(fā)明涉及視頻編碼系統(tǒng)中的VLC編碼方法和裝置。
背景技術(shù):
:視頻壓縮用在許多當(dāng)前和新興的產(chǎn)品中,例如數(shù)字電視機頂盒(STB)、高清晰電視(HDTV)解碼器、數(shù)字通用盤(DVD)播放器、BLU-RAY盤播放器、數(shù)字攝錄像機(camcorder)、個人計算機等。沒有視頻壓縮的話,數(shù)字視頻內(nèi)容可能極大,這使得難以或者甚至不可能有效地存儲、發(fā)送或觀看數(shù)字視頻內(nèi)容。存在對數(shù)字視頻內(nèi)容進行壓縮的許多視頻編碼方法。因此,開發(fā)出了視頻編碼標(biāo)注來使各種視頻編碼方法標(biāo)準(zhǔn)化,以使得經(jīng)壓縮的數(shù)字視頻內(nèi)容以大多數(shù)視頻解碼器可以識別的格式來呈現(xiàn)。例如,運動圖像專家組(MPEG)和國際電信聯(lián)盟(ITU-T)已開發(fā)出了廣泛使用的視頻編碼標(biāo)準(zhǔn)。這些標(biāo)準(zhǔn)的示例包括MPEG-1、MPEG-2(ITU-TH.264)、MPEG-4、ITU-TH.261以及ITU-TH.263標(biāo)準(zhǔn)。諸如MPEG之類的視頻壓縮利用基于塊的頻率變換編碼(例如,離散余弦變換(DCT))和運動補償預(yù)測來處理輸入視頻信息,以產(chǎn)生頻率系數(shù)和運動向量。頻率系數(shù)塊被量化并以經(jīng)定義的掃描順序被掃描以產(chǎn)生串行流的頻率系數(shù)。然后,利用可變長碼(VLC)編碼對頻率系數(shù)以及運動向量進行處理,以產(chǎn)生經(jīng)編碼的視頻流。VLC是向頻繁事件指派較短碼字并且向不太頻繁事件指派較長碼字的編碼方案。特別地,頻率系數(shù)塊通常包括一個或多個非零系數(shù)以及許多零值系數(shù)。當(dāng)被掃描時,頻率系數(shù)產(chǎn)生由一系列零系數(shù)分隔的非零系數(shù)。在MPEG術(shù)語中,"連零數(shù)"(nm)被定義為掃描順序中在非零系數(shù)之前的零值系數(shù)的個數(shù)。"位階"(level)被定義為在連零數(shù)之后出現(xiàn)的非零系數(shù)的絕對值。針對每個連零數(shù)和位階的組合生成VLB碼字。在MPEG中,連零數(shù)值可以在0與63之間的范屈內(nèi),而位階值可以在1與2047之間的范圍內(nèi)。MPEG標(biāo)準(zhǔn)特別針對統(tǒng)計上頻繁出現(xiàn)的連零數(shù)/位階組合定義了一些VLC碼字(例如,MPEG-2定義了用于特定連零數(shù)/位階組合的113個VLC碼字)。對于不具有特別定義的碼字的連零數(shù)/位階組合,VLC碼字是包括一連串經(jīng)定義的轉(zhuǎn)義(escape)序列、連零數(shù)和位階的固定碼字。在一些應(yīng)用中,例如在數(shù)字攝錄像機和個人計算機中,至少部分地利用基于處理器的編碼算法來執(zhí)行視頻壓縮。例如,可以利用執(zhí)行指令的處理器來執(zhí)行VLC編碼。基于處理器的編碼算法通常采用利用查找表的VLC編碼。例如,圖1示出了典型的MPEG-2VLC編碼算法。在步驟102,連零數(shù)和位階被確定。在步驟104,對連零數(shù)是否大于最大連零數(shù)進行判斷。在MPEG-2中,特定VLC碼字被提供給0和31之間的連零數(shù)。利用轉(zhuǎn)義碼來對大于31的任何連零數(shù)值進行編碼。因此,如果連零數(shù)大于最大連零數(shù),則方法100前進到步驟106,在步驟106中生成轉(zhuǎn)義碼。否則,方法100前進到步驟108,在步驟108,將連零數(shù)用來質(zhì)詢查找表以獲得連零數(shù)的最大位階。在步驟110,對位階是否大于連零數(shù)的最大位階進行判斷。如果是,則方法100前進到步驟106,在步驟106,生成轉(zhuǎn)義碼。否則,方法100前進到步驟112。在步驟112,通過首先選擇與連零數(shù)相對應(yīng)的查找表(有多個查找表,一個針對每個連零數(shù)值),然后向所選查找表質(zhì)詢位階值以獲得VLC碼字,從而選出VLC碼字。圖1中的VLC編碼方法的問題在于該方法需要處理器執(zhí)行三條載入指令一條載入指令用于在步驟108獲取最大位階,并且兩條載入指令用于在步驟112選擇針對連零數(shù)的查找表并且用于載入給定位階時的VLC碼字。在典型的處理器環(huán)境中,載入指令可能花費兩個時鐘周期,因此三條載入指令需要六個時鐘周期。為了舉例說明該問題,假設(shè)每秒30幀的720x480像素的標(biāo)準(zhǔn)清晰(SD)視頻具有平均50%的非零系數(shù)并且以4:2:0色度格式表示。由于有720x480x1.5x30x50%=7,776,000個系數(shù),因此,處理器將需要7,776,000x6=46,656,000個時鐘周期僅用于對一令。注意,因子1.5是由于4:2:0的色度格式,并且對于其它色度格式(例如,4:2:2或4:4:4)甚至更高。因此,圖1中的VLC編碼方法在處理器周期方面表現(xiàn)出了高成本并且是低效率的。因此,在技術(shù)上存在對減少所需載入指令的數(shù)目的視頻編碼系統(tǒng)中的VLC編碼方法和裝置的需求。
發(fā)明內(nèi)容本發(fā)明的一個方面涉及用于在視頻編碼系統(tǒng)中對具有連零數(shù)和位階的頻率變換值的符號進行可變長碼(VLC)編碼的方法。在一些實施例中,該方法包括在處理器中,基于連零數(shù)和位階生成針對存儲在存儲器中的査找表的地址,査找表存儲針對從最小連零數(shù)到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小位階到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目,每個VLC條目包括指示轉(zhuǎn)義碼的標(biāo)志。利用地址從査找表讀取VLC條目。如果VCL條目中的標(biāo)志是第一值,則從VLC條目獲取VLC碼和比特長度。如果VCL條目中的標(biāo)志是第二值,則根據(jù)轉(zhuǎn)義碼、連零數(shù)和位階生成固定長度VLC碼。本發(fā)明的另一方面涉及用于在視頻編碼系統(tǒng)中對具有連零數(shù)和位階的頻率變換值的符號進行VLC編碼的裝置。在一些實施例中,設(shè)置了具有査找表的存儲器,查找表被配置為存儲針對從最小連零數(shù)到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小位階到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目,每個VLC條目包括指示轉(zhuǎn)義碼的標(biāo)志。提供了耦合到存儲器的處理器并且處理器被配置為基于連零數(shù)和位階生成針對存儲在存儲器中的查找表的地址,利用地址從査找表讀取VLC條目,如果VCL條目中的標(biāo)志是第一值,則從VLC條目獲取VLC碼和比特長度;而如果VCL條目中的標(biāo)志是第二值,則根據(jù)轉(zhuǎn)義碼、連零數(shù)和位階生成固定長度VLC碼。本發(fā)明的另一方面涉及視頻壓縮系統(tǒng)。在一些實施例中,提供了被配置為從視頻數(shù)據(jù)產(chǎn)生頻率變換值的頻率變換/運動預(yù)測邏輯。提供了耦合到7數(shù)和位階的頻率變換值的符號進行編碼。VLC編碼器包括査找表,被配置為存儲針對從最小連零數(shù)到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小位階到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目,每個VLC條目包括指示轉(zhuǎn)義碼的標(biāo)志;以及處理器,被配置為針對所述符號中的每個符號基于符號的連零數(shù)和位階生成針對査找表的地址,利用地址從査找表讀取VLC條目,如果VCL條目中的標(biāo)志是第一值,則從VLC條目獲取VLC碼和比特長度;并且如果VCL條目中的標(biāo)志是第二值,則根據(jù)轉(zhuǎn)義碼、符號的連零數(shù)和符號的位階來生成固定長度VLC碼。以可以詳細理解本發(fā)明的上述特征的方式,可以參考實施例(一些實施例在附圖中示出)對上面簡要概述的本發(fā)明進行更詳細的描述。然而,將注意到,附圖僅圖示出了本發(fā)明的典型實施例,因此不認為是對其范圍的限制,因為本發(fā)明可以允許其它等效實施例。圖1示出了典型MPEG-2可變長碼(VLC)編碼算法;圖2是示出根據(jù)本發(fā)明一個或多個方面的視頻編碼系統(tǒng)的示例性實施例的框圖;圖3是示出根據(jù)本發(fā)明一個或多個方面的VLC編碼器的示例性實施例的框圖;圖4是示出根據(jù)本發(fā)明一個或多個方面的用于對具有連零數(shù)和位階的頻率變換值的符號進行VLC編碼的方法的示例性實施例的流程圖;圖5示出了根據(jù)本發(fā)明一個或多個方面的VLC條目的示例性實施例;圖6示出了根據(jù)本發(fā)明一個或多個方面的查找表的一個示例性實施例;以及圖7示出了根據(jù)本發(fā)明一個或多個方面的査找表的另一示例性實施例。具體實施例方式圖2是示出根據(jù)本發(fā)明一個或多個方面的視頻編碼系統(tǒng)200的示例性實施例的框圖。視頻編碼系統(tǒng)200包括耦合到可變長碼(VLC)編碼器204的頻率變換/運動預(yù)測邏輯202。頻率變換/運動預(yù)測邏輯202被配置為接收包括圖像(例如幀)序列的視頻數(shù)據(jù)。頻率變換/運動預(yù)測邏輯202執(zhí)行基于塊的頻率變換編碼(例如,離散余弦變換(DCT)等)和運動補償預(yù)測,以產(chǎn)生頻率系數(shù)塊和運動向量。頻率變換/運動預(yù)測邏輯202量化頻率系數(shù),以經(jīng)定義的掃描順序?qū)λ鼈冞M行掃描,并且將頻率系數(shù)流與運動向量一起輸出。頻率變換/運動預(yù)測邏輯202可以包括用于根據(jù)諸如MPEG、MPEG-2、MPEG-4等的各種標(biāo)準(zhǔn)執(zhí)行上述功能的公知邏輯。VLC編碼器204從頻率變換/運動預(yù)測邏輯202接收頻率系數(shù)和運動向量。VLC編碼器204對頻率系數(shù)和運動向量進行編碼以產(chǎn)生VCL碼流作為輸出。具體地,VLC編碼器204對至少一部分頻率系數(shù)進行連零數(shù)長度的編碼,以產(chǎn)生符號序列。符號是包括連零數(shù)和位階的事件。如上所述,"連零數(shù)"被定義為掃描順續(xù)中在非零系數(shù)之前的零值系數(shù)的個數(shù)。"位階"被定義為在連零數(shù)之后出現(xiàn)的非零系數(shù)的絕對值。然后,對符號進行編碼以產(chǎn)生VLC碼。如本領(lǐng)域公知的,諸如MPEG標(biāo)準(zhǔn)之類的一些標(biāo)準(zhǔn)產(chǎn)生幀內(nèi)預(yù)測幀和幀間預(yù)測幀,每個幀都包括DC系數(shù)以及多個AC系數(shù)。在一些情況中,幀內(nèi)預(yù)測中的DC系數(shù)未經(jīng)連零數(shù)長度編碼,而是包括預(yù)定義的VLC碼。例如,如在ISO/IEC13818-2中定義的MPEG-2在表B.12和B.13中指定了用于幀內(nèi)預(yù)測幀中的DC系數(shù)的VLC碼。此外,如上所述,一些符號包括預(yù)定義的VLC碼。例如,如在ISO/IEC13818-2中定義的MPEG-2在表B.14和B.15中指定了用于特定連零數(shù)/長度組合的VLC碼。利用固定長度碼來對沒有特定經(jīng)定義VLC碼的具有連零數(shù)/長度組合的每個符號進行編碼。固定長度碼包括一連串的預(yù)定義的轉(zhuǎn)義碼、連零數(shù)和位階。下面描述用于對具有連零數(shù)和位階的頻率變換值的符號進行VLC編碼的方法的示例性實施例。雖然將MPEG-2描述為示例,然而,本領(lǐng)域技術(shù)人員將理解,包括MPEG-1和MPEG-4標(biāo)準(zhǔn)在內(nèi)的其它標(biāo)準(zhǔn)也包括用于特定系數(shù)/符號的類似預(yù)定義VLC碼。圖3是示出了根據(jù)本發(fā)明一個或多個方面的VLC編碼器204的一個示例性實施例的框圖。VLC編碼器204包括處理器302、存儲器304、支持電路306、1/0接口308。處理器302可以包括本領(lǐng)域公知的一個或多個微處理器、微控制器、專用處理器等等。用于處理器302的支持電路306包括傳統(tǒng)的緩存、電源、時鐘電路、數(shù)據(jù)寄存器、1/0接口等等。1/0接口308可以直接耦合到存儲器304或者通過處理器302耦合到存儲器304。I/O接口308被配置為接收將經(jīng)VLC編碼的頻率變換值,并且輸出VLC碼。存儲器304可以包括隨機存取存儲器、只讀存儲器、磁讀/寫存儲器等??梢岳弥T如分立組件之類的各種配置,或者利用諸如專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)等之類的一個或多個集成電路來實現(xiàn)VLC編碼器204。處理器302被配置為執(zhí)行例程(routine)310,例程310使得VLC編碼器204對輸入頻率變換值執(zhí)行VLC編碼。存儲器304被配置為存儲査找表312,查找表312被配置為與圖1描述的使用多個查找表相比,減少處理器302所需的載入指令的數(shù)目。一般地,査找表312存儲針對從最小連零數(shù)到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小位階到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目??梢愿鶕?jù)所采用的特定視頻編碼標(biāo)準(zhǔn)來指定最小和最大的連零數(shù)和位階值。給定特定連零數(shù)/位階組合,可以對查找表312尋址以讀取相對應(yīng)的VLC條目。每個VLC條目包括指示轉(zhuǎn)義模式的轉(zhuǎn)義標(biāo)志。對于查找表312中的給定VLC條目,如果轉(zhuǎn)義標(biāo)志是第一值,則VLC條目包括針對特定連零數(shù)/位階組合的有效VLC碼和比特長度。如果轉(zhuǎn)義標(biāo)志是第二值,則VLC條目不包括有效VLC碼和比特長度。而是,必須利用根據(jù)轉(zhuǎn)義碼、連零數(shù)和位階形成的固定長度VLC碼來對該特定連零數(shù)/位階組合進行編碼。每個VLC條目可以包括表示VLC碼的第一字(第一組比特),以及表示VLC碼的比特長度的第二字(第二組比特)。如下所述,標(biāo)志可以包括每個VLC條目的第二字中的比特。圖4是示出了根據(jù)本發(fā)明一個或多個方面用于對具有連零數(shù)和位階的頻率變換值的符號進行VLC編碼的方法400的示例性實施例的流程圖??梢岳脠D2和圖3所示的VLC編碼器204來執(zhí)行方法400。方法400開始于步驟402,在步驟402,VLC編碼器204確定頻率變換值的特定符號的連零數(shù)和位階。在步驟404,判斷連零數(shù)是否大于最大連零數(shù)值或者位階是否大于最大位階值。如上所提到的,最大連零數(shù)和位階值可由所采用的特定視頻標(biāo)準(zhǔn)來定義。如果連零數(shù)或者位階大于各自的最大連零數(shù)值或最大位階值,則方法400前進到步驟406,在步驟406,根據(jù)轉(zhuǎn)義碼、連零數(shù)和位階生成固定長度VLC碼。方法400從步驟406前進到步驟416。如果在步驟404中連零數(shù)小于或等于最大連零數(shù)值并且位階小于或等于最大位階值,則方法400前進到步驟408。在步驟408,處理器302基于連零數(shù)和位階生成針對存儲器304中的査找表312的地址。在步驟410,處理器302利用所生成的地址從查找表312讀取VLC條目。在步驟412,判斷VLC條目中的標(biāo)志是否指示需要轉(zhuǎn)義。如上面所提到的,標(biāo)志可以具有指示VLC條目包括有效VLC碼和比特長度的第一值,或者具有指示需要轉(zhuǎn)義的第二值。如果需要轉(zhuǎn)義,則方法400前進到上述的步驟406。否則,方法400前進到步驟414。在步驟414,從VLC條目獲取VLC碼和比特長度。在步驟416,輸出特定符號的VLC碼和比特長度。方法400可以被重復(fù)以處理另外的頻率變換系數(shù)的符號,以使得VLC編碼器204產(chǎn)生VLC碼流??梢韵鄬τ谙旅娴氖纠齺砝斫獗景l(fā)明的各方面。假設(shè)視頻編碼系統(tǒng)200采用如在ISO/IEC13818(ITU-TH.262)中定義的用于編碼的MPEG-2標(biāo)準(zhǔn)。在MPEG-2中,產(chǎn)生了8X8塊頻率變換系數(shù),因此連零數(shù)值可以在0和63之間的范圍內(nèi)。MPEG-2中的量化使得位階值在1禾Q2047之間。MPEG-2定義了針對特定連零數(shù)/位階組合的特定VLC碼。最小連零數(shù)值為0,而最大連零數(shù)值為31。最小位階值為1。最大位階值基于特定連零數(shù)值是可變的。下面定義了最大位階值表l<table>tableseeoriginaldocumentpage11</column></row><table><table>tableseeoriginaldocumentpage12</column></row><table>VLC條目組602包括VLC條目604-0至604-40(總稱為VLC條目604)。對于每個VLC條目組602,VLC條目604-0至604-40對應(yīng)于位階值1至40。未使用VLC條目604-0,這是因為位階值不能為零。因此,查找表312可以存儲總計1312個VLC條目,SP,41X32個VLC條目。每個VLC條目604可以根據(jù)圖5的VLC條目500而被格式化。特別地,在如上所述的MPEG-2中,對于一些連零數(shù)值,不是1和40之間的每個位階值都具有經(jīng)定義的VLC碼和比特長度。如上面所提到的,MPEG-2僅定義了113個VLC碼和比特長度分別用于113個不同的(連零數(shù),位階)組合。因此,在査找表312中僅U3個VLC條目包括有效VLC碼和比特長度。例如,對于連零數(shù)值1,僅位階1至18定義了VLC碼和比特長度。因此,對于VLC條目組602-1,僅VLC條目604-1至604-18包括有效VLC碼和比特長度。因此,針對VLC條目組602-1中的VLC條目604-1至604-18的轉(zhuǎn)義標(biāo)志被設(shè)置為指示有效數(shù)據(jù)(不需要轉(zhuǎn)義)。對于VLC條目組602-1中的VLC條目604-19至604-40,轉(zhuǎn)義標(biāo)志被設(shè)為指示無效數(shù)據(jù),即需要轉(zhuǎn)義碼。即,MPEG-2未定義用于連零數(shù)值1以及19和40之間的位階值的VLC碼,因此,需要轉(zhuǎn)義碼。在另一示例中,VLC條目組602-17僅包括一個有效VLC條目604-1(連零數(shù)值17,位階值1)。VLC條目組602-17中的VLC條目604-2至604-40是無效的,并且它們的轉(zhuǎn)義標(biāo)志被設(shè)為指示所需要的轉(zhuǎn)義碼。根據(jù)前面所闡述的表l來類似地配置余下的VLC條目組602。以這種方式,單個查找表可以用來保存經(jīng)定義的VLC碼,而不用多個査找表。查找表312的地址可以通過生成相對于存儲器304中的基址的偏移來確定?;房梢允荲LC條目組602-0中的VLC條目604-0(即,査找表312中的第一VLC條目)的地址。偏移可以通過如下計算來確定計算(1)連零數(shù)與(ii)最大位階加1的乘積;并且將該乘積與位階相加來確定偏移。S卩,偏移=(連零數(shù)X41)+位階??紤]下面的示例假設(shè)頻率系數(shù)的符號具有連零數(shù)值2和位階值3。首先,判斷連零數(shù)值和位階值是否超過了最大連零數(shù)或位階值(步驟404)。在MPEG-2的本示例中,最大連零數(shù)值為31并且最大位階值為40,因此本連零數(shù)和位階值滿足該約束。然后,處理器302生成給定(2,3)的特定(連零數(shù),位階)組合時的查找表312的地址(步驟408)。假設(shè)査找表312被配置為如圖6所示的那樣。處理器302可以根據(jù)上面的偏移等式,即偏移=(2X41)+3=85來生成查找表312的地址。因此,(連零數(shù),位階)組合(2,3)的VLC條目的地址為基址加上85個地址,即VLC條目組602-2中的VLC條目604-3的地址。然后,處理器302根據(jù)所生成的地址讀取數(shù)據(jù),以獲取VLC條目組602-2中的VLC條目604-3(步驟410)。由于MPEG-2定義了(連零數(shù),位階)組合(2,3)的VLC碼,因此,VLC條目組602-2中的VLC條目604-3包括指示有效數(shù)據(jù)的轉(zhuǎn)義標(biāo)志(步驟412)。因此,處理器302可以從已獲得的VLC條目獲取有效VLC碼和比特長度(步驟414),即10比特長度的VLC碼0000001011(從ISO/IEC13818-2中的表B.14取得)。有利地,僅需要處理器302執(zhí)行單條載入指令用于基于所生成地址從查找表312讀取VLC條目。考慮另一示例假設(shè)頻率系數(shù)的符號具有連零數(shù)值19和位階值10。首先,判斷連零數(shù)值是否超過了最大連零數(shù)值(步驟404)。在MPEG-2的本示例中,最大連零數(shù)值為31,因此本連零數(shù)滿足該約束。然后,處理器302生成給定(19,10)的特定(連零數(shù),位階)組合時的査找表312的地址(步驟408)。假設(shè)查找表312被配置為如圖6所示的那樣。處理器302可以根據(jù)上面的偏移等式,即偏移=(19X41)+10=789來生成査找表312的地址。因此,(連零數(shù),位階)組合(19,10)的VLC條目的地址為基址加上789個地址,即VLC條目組602-19中的VLC條目604-10的地址。然后,處理器302根據(jù)所生成的地址讀取數(shù)據(jù),以獲取VLC條目組602-19中的VLC條目604-10(步驟410)。由于MPEG-2未定義(連零數(shù),位階)組合(19,10)的VLC碼,因此,VLC條目組602-19中的VLC條目604-10包括指示無效數(shù)據(jù)的轉(zhuǎn)義標(biāo)志(步驟412)。因此,處理器302根據(jù)轉(zhuǎn)義碼、連零數(shù)和位階生成固定VLC碼,目卩,本示例中的0x0005300A(步驟406)。同樣,僅需要處理器302執(zhí)行單條載入指令用于基于所生成地址從査找表312讀取VLC條目。圖7示出了根據(jù)本發(fā)明一個或多個方面的查找表312的另一示例性實施例。在圖6的實施例中,當(dāng)尋址查找表312時,需要乘法操作來計算從基址起的偏移,即,(連零數(shù)X(max位階+l))+位階。圖7中的查找表312的實施例免除了對計算地址的乘法操作的需要。特別地,查找表312包括VLC條目組702-0至702-61(總稱為VLC條目組702)。VLC條目組702-0至702-61分別對應(yīng)于連零數(shù)值0至31。每個VLC條目組702包括VLC條目704-0至704-63(總稱為VLC條目704)。對于每個VLC條目組702,VLC條目704-1至704-40對應(yīng)于位階值1至40。所有VLC條目組702中的VLC條目704-41至704-63從未被尋址,這是因為針對大于最大位階值(例如,40)的任何位階自動生成了轉(zhuǎn)義碼。所有VLC條目組702中的VLC條目704-41至704-63可以被設(shè)為任意數(shù)據(jù)或者可以保持不設(shè)置。因此,査找表312可以存儲總計2048個VLC條目,即64X32個VLC條目。每個VLC條目704可以根據(jù)圖5的VLC條目500而被格式化。然而,由于VLC條目組702的每個為64地址長,因此,可以利用簡單的位移指令而不用乘法指令來計算偏移。利用上述方法,可以將處理器302執(zhí)行的載入指令數(shù)目減少為僅單條載入指令。如上面所提到的,當(dāng)使用圖1的方法100時,具有平均50%的非零系數(shù)的并以4:2:0色度格式表示的、每秒30幀的720x480像素的標(biāo)準(zhǔn)清晰(SD)視頻需要46,656,000個處理器時鐘周期來對一秒的視頻進行VLC編碼。利用本發(fā)明,相同的配置導(dǎo)致720x480x1.5x30x50%=7,776,000個系數(shù)x2周期/載入指令=15,552,000個處理器時鐘周期用來對一秒的視頻進行VLC編碼。因此,與圖1的方法100相比,本發(fā)明的VLC編碼處理提供了對效率和處理成本的改善。己相對于利用耦合到存儲器的處理器來實現(xiàn)VLC編碼器(其中,處理器執(zhí)行例程以執(zhí)行所述VLC編碼功能)描述了本發(fā)明的各方面。僅需要處理器執(zhí)行來自存儲器的單條載入指令,以便對給定的頻率變換值的符號進行VLC編碼。本領(lǐng)域技術(shù)人員將理解,本發(fā)明還可以與VLC編碼器的不同實施方式一起使用,不同實施方式包括VLC編碼器包含除了執(zhí)行例程的處理器之外的專用集成電路的實施方式。即,VLC編碼器204可以被實現(xiàn)以使得處理器302是被設(shè)計來執(zhí)行上述VLC編碼功能的專用電路。雖然VLC編碼器204的這種專用電路實施方式不使處理器302執(zhí)行指令,然而,本發(fā)明仍然提供了用于VLC編碼的更有效方案,這是因為針對給定頻率變換值的符號,僅需要處理器302訪問查找表一次。為了通過示例清楚地闡述,相對于MPEG-2視頻編碼描述了上面的實施例。本領(lǐng)域技術(shù)人員將會理解,方法400、VLC條目500以及查找表600和700可以被修改來與采用包括其它MPEG標(biāo)準(zhǔn)(例如,MPEG-1和MPEG-4)在內(nèi)的其它編碼標(biāo)準(zhǔn)的視頻編碼系統(tǒng)一起使用。雖然上面描述了各個實施例,然而,應(yīng)當(dāng)明白,這些實施例僅是以示例的方式而非限制的方式呈現(xiàn)的。因此,優(yōu)選實施例的寬度和范圍不應(yīng)當(dāng)受任何上述示例性實施例的限制,而應(yīng)當(dāng)僅根據(jù)下面的權(quán)利要求及其等同物來限定。權(quán)利要求1.一種用于在視頻編碼系統(tǒng)中對具有連零數(shù)和位階的頻率變換值的符號進行可變長碼VLC編碼的方法,包括在處理器中,基于所述連零數(shù)和所述位階生成針對存儲在存儲器中的查找表的地址,所述查找表存儲從最小連零數(shù)到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小位階到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目,每個VLC條目包括指示轉(zhuǎn)義碼的標(biāo)志;利用所述地址從所述查找表讀取VLC條目;如果所述VCL條目中的所述標(biāo)志是第一值,則從所述VLC條目獲取VLC碼和比特長度;以及如果所述VCL條目中的所述標(biāo)志是第二值,則根據(jù)轉(zhuǎn)義碼、所述連零數(shù)和所述位階生成固定長度VLC碼。2.如權(quán)利要求1所述的方法,其中,所述最小連零數(shù)為0,所述最大連零數(shù)為31,所述最小位階為l,并且所述最大位階為40,并且其中,所述査找表存儲1312個VLC條目。3.如權(quán)利要求2所述的方法,其中,所述生成地址的步驟包括通過計算(i)所述連零數(shù)與(ii)所述最大位階加上一的乘積,并且將所述乘積與所述位階相加,來生成相對于基址的偏移。4.如權(quán)利要求1所述的方法,其中,所述最小連零數(shù)為0,所述最大連零數(shù)為31,所述最小位階為l,并且所述最大位階為40,并且其中,所述査找表存儲總計2048個VLC條目中針對0和31之間的每個連零數(shù)值的64個VLC條目。5.如權(quán)利要求4所述的方法,其中,所述生成地址的步驟包括通過位移所述連零數(shù)并且將經(jīng)位移的連零數(shù)與所述位階相加來生成相對于基址的偏移。6.如權(quán)利要求l-5中的任一項所述的方法,其中,每個VLC條目包括用于表示VLC碼的第一比特以及用于表示比特長度的第二比特,并且其中,所述標(biāo)志包括所述第二比特中的比特。7.如權(quán)利要求l-6中的任一項所述的方法,還包括在生成所述地址之前,判斷所述連零數(shù)是否大于所述最大連零數(shù)或者所述位階是否大于所述最大位階;如果所述連零數(shù)大于所述最大連零數(shù)或者所述位階大于所述最大位階,則根據(jù)所述轉(zhuǎn)義碼、所述連零數(shù)和所述位階生成所述固定長度VLC碼;以及如果所述連零數(shù)小于或等于所述最大連零數(shù)并且所述位階小于或等于所述最大位階,則執(zhí)行生成所述地址、讀取所述VLC條目以及獲取所述VLC碼或生成所述固定長度VLC碼的步驟。8.—種用于在視頻壓縮系統(tǒng)中對具有連零數(shù)和位階的頻率變換值的符號進行可變長碼VLC編碼的裝置,包括具有查找表的存儲器,所述査找表被配置為存儲針對從最小連零數(shù)到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小位階到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目,每個所述VLC條目包括指示轉(zhuǎn)義碼的標(biāo)志;以及耦合到所述存儲器的處理器,所述處理器被配置為基于所述連零數(shù)和所述位階生成針對查找表的地址,利用所述地址從所述査找表讀取VLC條目,如果所述VCL條目中的所述標(biāo)志是第一值,則從所述VLC條目獲取VLC碼和比特長度;并且如果所述VCL條目中的所述標(biāo)志是第二值,則根據(jù)轉(zhuǎn)義碼、所述連零數(shù)和所述位階生成固定長度VLC碼。9.如權(quán)利要求8所述的裝置,其中,所述最小連零數(shù)為0,所述最大連零數(shù)為31,所述最小位階為l,并且所述最大位階為40,并且其中,所述查找表存儲1312個VLC條目。10.如權(quán)利要求9所述的裝置,其中,所述處理器被配置為通過生成相對于基址的偏移來生成所述地址,所述偏移是通過計算(i)所述連零數(shù)與(ii)所述最大位階加上一的乘積,并且將所述乘積與所述位階相加而生成的。11.如權(quán)利要求8所述的裝置,其中,所述最小連零數(shù)為O,所述最大連零數(shù)為31,所述最小位階為l,并且所述最大位階為40,并且其中,所述查找表存儲總計2048個VLC條目中針對0和31之間的每個連零數(shù)值的64個VLC條目。12.如權(quán)利要求ll所述的裝置,其中,所述處理器被配置為通過生成相對于基址的偏移來生成所述地址,所述偏移是通過位移所述連零數(shù)并且將經(jīng)位移的連零數(shù)與所述位階相加而生成的。13.如權(quán)利要求8-12中的任一項所述的裝置,其中,每個所述VLC條目包括用于表示VLC碼的第一比特以及用于表示比特長度的第二比特,并且其中,所述標(biāo)志包括所述第二比特中的比特。14.如權(quán)利要求8-13中的任一項所述的裝置,其中,所述處理器被配置為僅執(zhí)行一條載入指令來從所述查找表讀取所述VLC條目。15.—種視頻壓縮系統(tǒng),包括頻率變換/運動預(yù)測邏輯,被配置為從視頻數(shù)據(jù)產(chǎn)生頻率變換值;以及可變長碼VLC編碼器,其被耦合到編碼器邏輯,并且被配置為對具有連零數(shù)和位階的頻率變換值的符號進行編碼,所述VLC編碼器包括查找表,被配置為存儲針對從最小連零數(shù)到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小位階到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目,每個所述VLC條目包括指示轉(zhuǎn)義碼的標(biāo)志;以及處理器,被配置為針對所述符號中的每個符號基于所述符號的所述連零數(shù)和所述位階生成針對所述査找表的地址,利用所述地址從所述查找表讀取VLC條目,如果所述VCL條目中的所述標(biāo)志是第一值,則從所述VLC條目獲取VLC碼和比特長度;并且如果所述VCL條目中的所述標(biāo)志是第二值,則根據(jù)轉(zhuǎn)義碼、所述符號的所述連零數(shù)和所述符號的所述位階來生成固定長度VLC碼。全文摘要本發(fā)明涉及視頻編碼系統(tǒng)中的VLC編碼方法和裝置。描述了可變長碼(VLC)編碼的方法和裝置。在一些示例中,對具有連零數(shù)和位階的頻率變換值的符號進行VLC編碼。在處理器中,基于連零數(shù)和位階生成針對存儲器中的查找表(LUT)的地址,LUT存儲針對從最小到最大連零數(shù)范圍內(nèi)的連零數(shù)值與從最小到最大位階范圍內(nèi)的位階值的所有可能組合的VLC條目,每個VLC條目包括指示轉(zhuǎn)義碼的標(biāo)志。利用地址從LUT讀取VLC條目。如果VCL條目中的標(biāo)志是第一值,則從VLC條目獲取VLC碼和比特長度。如果VCL條目中的標(biāo)志是第二值,則根據(jù)轉(zhuǎn)義碼、連零數(shù)和位階生成固定長度VLC碼。文檔編號H04N7/36GK101674484SQ20091016873公開日2010年3月17日申請日期2009年9月7日優(yōu)先權(quán)日2008年9月8日發(fā)明者宮城建介申請人:索尼株式會社;索尼電子有限公司