TWI705693B - 用於顯示串流壓縮之基於向量之熵寫碼的裝置及方法 - Google Patents
用於顯示串流壓縮之基於向量之熵寫碼的裝置及方法 Download PDFInfo
- Publication number
- TWI705693B TWI705693B TW106107333A TW106107333A TWI705693B TW I705693 B TWI705693 B TW I705693B TW 106107333 A TW106107333 A TW 106107333A TW 106107333 A TW106107333 A TW 106107333A TW I705693 B TWI705693 B TW I705693B
- Authority
- TW
- Taiwan
- Prior art keywords
- code
- vector
- video
- sample
- groups
- Prior art date
Links
Images
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/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/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/182—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 pixel
-
- 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/48—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本發明揭示用於對具有複數個視訊樣本之視訊資訊進行寫碼的方法及裝置。視訊樣本經分割成用於在單個時脈循環內傳輸的群組,其中該等樣本與一位元長度B及具有一群組大小K之一群組相關聯。該樣本群組映射至一碼號且經寫碼以形成一基於向量之碼,該碼包含識別用於執行該映射之查找表之一類型的一第一部分及表示該群組之該等樣本的一第二部分。該查找表可基於不同樣本群組之發生機率而予以建構。另外,可針對不同B及K值使用不同類型之查找表。
Description
本發明係關於視訊寫碼及壓縮之領域,且特定言之,係關於用於經由顯示連結之傳輸的視訊壓縮,諸如顯示串流壓縮(DSC)。
數位視訊能力可併入至廣泛範圍之顯示器中,包括數位電視、個人數位助理(PDA)、膝上型電腦、桌上型監視器、數位攝影機、數位記錄器件、數位媒體播放器、視訊遊戲器件、視訊遊戲控制台、蜂巢式或衛星無線電電話、視訊電話會議器件,及其類似者。顯示連結用於將顯示器連接至適合之源器件。顯示連結之頻寬需求與顯示器之解析度成比例,且因此,高解析度之顯示器需要大頻寬顯示連結。一些顯示連結不具有支援高解析度顯示器之頻寬。視訊壓縮可用於降低頻寬需求,使得較低頻寬顯示連結可用於將數位視訊提供至高解析度顯示器。 其他人已嘗試利用對像素資料之影像壓縮。然而,此類方案有時在視覺上並非無損,或可能在習知顯示器件中難以實施且昂貴。 視訊電子元件標準協會(VESA)已開發顯示串流壓縮(DSC)作為顯示連結視訊壓縮的標準。顯示連結視訊壓縮技術(諸如DSC)應尤其提供視覺上無損之圖像品質(例如,圖像具有使得使用者無法分辨出進行過壓縮之品質位準)。顯示連結視訊壓縮技術亦應提供可結合習知硬體即時、簡易且便宜地實施之方案。
本發明之系統、方法及器件各自具有若干創新態樣,其中無單一者單獨負責本文中所揭示之合乎需要的屬性。 在一個態樣中,揭示用於對具有複數個視訊樣本之視訊資訊進行寫碼的方法及裝置。視訊樣本經分割成用於在單個時脈循環內傳輸的群組,其中該等樣本與一位元長度B及具有一群組大小K之一群組相關聯。該樣本群組映射至一碼號且經寫碼以形成一基於向量之碼,該碼包含識別用於執行該映射之查找表之一類型的一第一部分及表示該群組之該等樣本的一第二部分。該查找表可基於不同樣本群組之發生機率而予以建構。另外,可針對不同B及K值使用不同類型之查找表。
大體而言,本發明係關於改良視訊壓縮技術(諸如,顯示串流壓縮(DSC))之技術。更具體言之,本發明係關於用於藉由將區塊值分割為樣本向量且至少部分地基於該等樣本向量之發生機率對該等樣本向量進行寫碼以在每時脈循環傳輸多個樣本值的系統及方法。 雖然本文於DSC標準之上下文中描述某些實施例,但一般熟習此項技術者應理解,本文中所揭示之系統及方法可適用於任何合適的視訊寫碼標準。舉例而言,本文中所揭示之實施例可適用於以下標準中之一或多者:國際電信聯盟(ITU)電信標準化部門(ITU-T) H.261、國際標準化組織/國際電工委員會(ISO/IEC)動畫專業團體-1 (MPEG-1) Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H.264(亦稱為ISO/IEC MPEG-4 AVC)、高效視訊寫碼(HEVC),及此類標準的任何擴展。本文所描述之技術可能特別適用於併有恆定位元率(CBR)緩衝器模型的標準。又,本發明中描述之技術可變為未來開發之標準的部分。換言之,本發明中描述之技術可適用於先前開發之視訊寫碼標準、當前正在開發之視訊寫碼標準及即將出現之視訊寫碼標準。 本發明之概念可整合於包括若干元件及/或模式之編碼解碼器(例如,DSC)中或係該編碼解碼器之一部分,該等元件及/或模式旨在以大體在視覺上無損之性能編碼/解碼各種類型的內容。本發明提供用於將視訊樣本分割為群組以用於在單個時脈循環內傳輸的系統及方法,其中該等樣本與位元長度B及具有群組大小K之群組相關聯。該樣本群組可映射至碼號且經寫碼以形成基於向量之碼,該碼包含識別用於執行該映射之查找表之一類型的第一部分及表示該群組之該等樣本的第二部分。該查找表可基於不同樣本群組之發生機率而予以建構。另外,可針對不同B及K值使用不同類型之查找表,從而允許更有效之寫碼。 視訊寫碼標準 諸如視訊影像、TV影像、靜態影像或由視訊記錄器或電腦產生之影像的數位影像可包括依水平線及豎直線配置之像素或樣本。單個影像中之像素的數目通常係數萬個。每一像素通常含有明度及色度資訊。在無壓縮之情況下,待自影像編碼器傳送至影像解碼器之資訊的絕對數量將使即時影像傳輸顯得不切實際。為了減少待傳輸之資訊的量,已開發數個不同壓縮方法,諸如JPEG、MPEG及H.263標準。 視訊寫碼標準包括ITU-T H.261、ISO/IEC MPEG-1 Visual、ITU-T H.262或ISO/IEC MPEG-2 Visual、ITU-T H.263、ISO/IEC MPEG-4 Visual、ITU-T H 264 (亦稱為ISO/IEC MPEG -4 AVC),及包括此類標準之擴展的HEVC。 另外,視訊寫碼標準(即DSC)已由VESA開發。DSC標準係可壓縮視訊以用於經由顯示連結傳輸的視訊壓縮標準。隨著顯示器之解析度增大,驅動顯示器所需之視訊資料的頻寬對應地增大。一些顯示連結可能不具有將全部視訊資料傳輸至此類解析度之顯示器的頻寬。因此,DSC標準指定用於經由顯示連結之可互操作、在視覺上無損之壓縮的壓縮標準。 DSC標準與其他視訊寫碼標準(諸如,H.264及HEVC)不同。DSC包括框內壓縮,但不包括框間壓縮,意謂時間資訊可不被DSC標準用於對視訊資料進行寫碼。相比而言,其他視訊寫碼標準可在其視訊寫碼技術中使用框間壓縮。 視訊寫碼系統 下文參考隨附圖式更充分地描述新穎系統、裝置及方法之各種態樣。然而,本發明可以許多不同形式來體現,且不應被解釋為限於貫穿本發明所呈現之任何具體結構或功能。確切而言,此等態樣經提供以使得本發明將係透徹及完整的,且將向熟習此項技術者充分傳達本發明之範疇。基於本文中之教示,熟習此項技術者應瞭解,本發明之範疇意欲涵蓋本文所揭示之新穎系統、裝置及方法之任何態樣,不管是獨立於本發明之任何其他態樣實施還是與本發明之任何其他態樣組合地實施。舉例而言,可使用本文所闡述之任何數目個態樣來實施裝置或實踐方法。另外,本發明之範疇意欲涵蓋使用除本文所闡述之本發明的各種態樣之外的或不同於本文所闡述之本發明的各種態樣的其他結構、功能性、或結構與功能性來實踐的此類裝置或方法。應理解,可藉由申請專利範圍之一或多個要素來體現本文所揭示之任何態樣。 儘管本文描述特定態樣,但此等態樣之許多變化及排列屬於本發明之範疇內。儘管提及較佳態樣之一些益處及優點,但本發明之範疇並不意欲限於特定益處、用途或目標。確切而言,本發明之態樣意欲廣泛適用於不同無線技術、系統組態、網路及傳輸協定,其中一些作為實例在圖式中及在較佳態樣之以下描述中予以說明。詳細描述及圖式僅說明本發明而非限制本發明,本發明之範疇由所附申請專利範圍及其等效物界定。 隨附圖式說明實例。隨附圖式中由參考數字指示之元件對應於以下描述中由相同參考數字指示之元件。在本發明中,具有以序數詞(例如,「第一」、「第二」、「第三」等等)開始之名稱的元件未必暗示該等元件具有特定次序。確切而言,此類序數詞僅用以指相同或類似類型之不同元件。圖 1A
係說明可利用根據本發明中描述之態樣的技術之例示性視訊寫碼系統10的方塊圖。如本文描述所使用,術語「視訊寫碼器」或「寫碼器」一般係指視訊編碼器及視訊解碼器兩者。在本發明中,術語「視訊寫碼」或「寫碼」一般可係指視訊編碼及視訊解碼。除視訊編碼器及視訊解碼器之外,本申請案中所描述之態樣可擴展至其他相關器件,諸如,轉碼器(例如,可解碼位元串流且重新編碼另一位元串流之器件)及中間體(middlebox) (例如,可修改、變換及/或以其他方式操控位元串流之器件)。 如圖 1A
中所展示,視訊寫碼系統10包括產生在稍後時間由目的地器件14解碼之經編碼視訊資料的源器件12。在圖 1A
之實例中,源器件12及目的地器件14構成單獨器件。然而,應注意,源器件12與目的地器件14可在同一器件上或係同一器件之部分,如在圖 1B
之實例中所展示。 再次參考圖 1A
,源器件12及目的地器件14可分別包含廣泛範圍之器件中之任一者,包括桌上型電腦、筆記型(例如,膝上型)電腦、平板電腦、機上盒、電話手持機(諸如,所謂的「智慧型」電話、所謂的「智慧型」平板)、電視、攝影機、顯示器件、數位媒體播放器、視訊遊戲控制台、車載電腦、視訊串流器件、可由實體(例如,人、動物及/或另一受控器件)穿戴(或可移除地可附接至該實體)的器件(諸如,護目鏡及/或可穿戴式電腦)、可被消費、攝取或置放於實體內之器件或裝置,及/或其類似者。在各種實施例中,源器件12及目的地器件14可經配備以用於無線通信。 目的地器件14可經由連結16接收待解碼之經編碼視訊資料。連結16可包含能夠將經編碼視訊資料自源器件12移動至目的地器件14之任何類型的媒體或器件。在圖 1A
之實例中,連結16可包含使源器件12能夠即時將經編碼視訊資料傳輸至目的地器件14的通信媒體。經編碼視訊資料可根據通信標準(諸如,無線通信協定)來調變,且被傳輸至目的地器件14。通信媒體可包含任何無線或有線通信媒體,諸如射頻(RF)頻譜或一或多個實體傳輸線。通信媒體可形成基於封包之網路(諸如,區域網路、廣域網路或諸如網際網路之全球網路)之部分。通信媒體可包括路由器、交換器、基地台或可適用於促進自源器件12至目的地器件14之通信的任何其他設備。 在圖 1A
之實例中,源器件12包括視訊源18、視訊編碼器20及輸出介面22。在一些情況下,輸出介面22可包括調變器/解調器(數據機)及/或傳輸器。在源器件12中,視訊源18可包括諸如視訊俘獲器件(例如,視訊攝影機)、含有先前所俘獲視訊之視訊存檔、自視訊內容提供者接收視訊之視訊饋入介面及/或用於產生電腦圖形資料作為源視訊的電腦圖形系統之源,或此類源之組合。作為一個實例,若視訊源18係視訊攝影機,則源器件12及目的地器件14可形成所謂的「攝影機電話」或「視訊電話」,如在圖 1B
之實例中所說明。然而,本發明中所描述之技術可大體適用於視訊寫碼,且可應用於無線及/或有線應用。 可由視訊編碼器20對所俘獲之、預俘獲之或電腦產生之視訊進行編碼。經編碼視訊資料可經由源器件12之輸出介面22傳輸至目的地器件14。亦可(或替代地)將經編碼視訊資料儲存至儲存器件31上以供稍後由目的地器件14或其他裝置存取以用於解碼及/或播放。圖 1A
及圖 1B
中所說明之視訊編碼器20可包含圖 2A
中所說明之視訊編碼器20或本文所描述之任何其他視訊編碼器。 在圖 1A
之實例中,目的地器件14包括輸入介面28、視訊解碼器30及顯示器件32。在一些情況下,輸入介面28可包括接收器及/或數據機。目的地器件14之輸入介面28可經由連結16及/或自儲存器件31接收經編碼視訊資料。經由連結16傳達或在儲存器件31上提供之經編碼視訊資料可包括由視訊編碼器20產生以由視訊解碼器(諸如,視訊解碼器30)用於解碼視訊資料的各種語法元素。此類語法元素可與傳輸於通信媒體之上、儲存於儲存媒體之上或儲存於檔案伺服器上之經編碼視訊資料包括在一起。圖 1A
及圖 1B
中說明之視訊解碼器30可包含圖 2B
中說明之視訊解碼器30或本文所描述之任何其他視訊解碼器。 顯示器件32可與目的地器件14整合或在該目的地器件外部。在一些實例中,目的地器件14可包括整合顯示器件,且亦經組態以與外部顯示器件介接。在其他實例中,目的地器件14可為顯示器件。大體而言,顯示器件32向使用者顯示經解碼視訊資料,且可包含多種顯示器件中之任一者,諸如,液晶顯示器(LCD)、電漿顯示器、有機發光二極體(OLED)顯示器或另一類型之顯示器件。 在相關態樣中,圖 1B
展示例示性視訊寫碼系統10',其中源器件12及目的地器件14在器件11上或為器件11之部分。器件11可為電話手機,諸如「智慧型」電話或其類似者。器件11可包括與源器件12及目的地器件14操作性通信的處理器/控制器器件13(視情況存在)。圖 1B
之視訊寫碼系統10'及其組件在其他方面類似於圖 1A
之視訊寫碼系統10及其組件。 視訊編碼器20及視訊解碼器30可根據視訊壓縮標準(諸如,DSC)來操作。或者,視訊編碼器20及視訊解碼器30可根據其他專屬或工業標準(諸如,ITU-T H.264標準(或者被稱作MPEG-4第10部分AVC)、HEVC或此類標準之擴展)而操作。然而,本發明之技術不限於任何特定寫碼標準。視訊壓縮標準之其他實例包括MPEG-2及ITU-T H.263。 儘管未在圖 1A
及圖 1B
之實例中展示,但視訊編碼器20及視訊解碼器30可各自與音訊編碼器及解碼器整合,且可包括適當MUX-DEMUX單元或其他硬體及軟體以處置共同資料串流或單獨資料串流中之音訊及視訊兩者的編碼。在一些實例中,若適用,則MUX-DEMUX單元可符合ITU H.223多工器協定或其他協定,諸如使用者資料報協定(UDP)。 視訊編碼器20及視訊解碼器30各自可實施為多種合適編碼器電路中之任一者,諸如一或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)、離散邏輯、軟體、硬體、韌體或其任何組合。當該等技術部分地在軟體中實施時,器件可將用於軟體之指令儲存於合適的非暫時性電腦可讀媒體中,且在硬體中使用一或多個處理器來執行該等指令以執行本發明之技術。視訊編碼器20及視訊解碼器30中之每一者可包括於一或多個編碼器或解碼器中,編碼器或解碼器中之任一者可整合為各別器件中之組合編碼器/解碼器的部分。 視訊寫碼程序 如以上簡要地提及,視訊編碼器20對視訊資料進行編碼。視訊資料可包含一或多個圖像。圖像中之每一者係形成視訊之部分的靜態影像。在一些情況下,圖像可被稱作視訊「框」。當視訊編碼器20對視訊資料進行編碼時,視訊編碼器20可產生位元串流。該位元串流可包括形成視訊資料之經寫碼表示的位元序列。該位元串流可包括經寫碼圖像及相關聯之資料。經寫碼圖像係圖像之經寫碼表示。 為了產生位元串流,視訊編碼器20可對視訊資料中之每一圖像執行編碼操作。當視訊編碼器20對圖像執行編碼操作時,視訊編碼器20可產生一系列經寫碼圖像及相關聯之資料。相關聯資料可包括寫碼參數(諸如,QP)之集合。為了產生經寫碼圖像,視訊編碼器20可將圖像分割為相等大小之視訊區塊。視訊區塊可為樣本之二維陣列。寫碼參數可定義視訊資料之每一區塊的寫碼選項(例如,寫碼模式)。寫碼選項可經選擇以便達成所要之速率-失真效能。 在一些實例中,視訊編碼器20可將圖像分割為複數個圖塊。圖塊中之每一者可包括影像(例如,圖框)中之空間不同區域,該區域可在無來自該影像或框中之其餘區域之資訊的情況下被獨立解碼。每一影像或視訊框可以單個圖塊予以編碼,或每一影像或視訊框可以若干圖塊予以編碼。在DSC中,經分配以編碼每一圖塊之目標位元可大體上恆定。作為對圖像執行編碼操作之部分,視訊編碼器20可對圖像之每一圖塊執行編碼操作。當視訊編碼器20對圖塊執行編碼操作時,視訊編碼器20可產生與圖塊相關聯之經編碼資料。與圖塊相關聯之經編碼資料可被稱作「經寫碼圖塊」。 DSC視頻編碼器圖 2A
係說明可實施根據本發明中描述之態樣的技術之視訊編碼器20之實例的方塊圖。視訊編碼器20可經組態以執行本發明之技術中的一些或全部。在一些實例中,本發明中描述之技術可在視訊編碼器20的各種組件之間共用。在一些實例中,另外或替代地,處理器(未展示)可經組態以執行本發明中描述之技術中的一些或全部。 出於解釋之目的,本發明在DSC寫碼之上下文中描述視訊編碼器20。然而,本發明之技術可適用於其他寫碼標準或方法。 在圖 2A
之實例中,視訊編碼器20包括複數個功能組件。視訊編碼器20之功能組件包括色彩空間轉換器105、緩衝器110、平度偵測器115、速率控制器120、預測器、量化器及重建構器組件125、線緩衝器130、索引色彩歷史135、熵編碼器140、子串流多工器145及速率緩衝器150。在其他實例中,視訊編碼器20可包括更多、更少或不同之功能組件。 色彩空間轉換器105可將輸入色彩空間轉換為用於寫碼實施的色彩空間。舉例而言,在一個例示性實施例中,輸入視訊資料之色彩空間為紅、綠及藍(RGB)色彩空間,且寫碼以明度Y、綠色色度Cg及橙色色度Co(YCgCo)色彩空間實施。色彩空間轉換可由包括移位及添加至視訊資料之方法執行。應注意,可處理其他色彩空間之輸入視訊資料,且亦可執行轉換至其他色彩空間。 在相關態樣中,視訊編碼器20可包括緩衝器110、線緩衝器130及/或速率緩衝器150。舉例而言,緩衝器110可在視頻編碼器20之其他部分使用色彩空間轉換視訊資料之前保持該色彩空間轉換視訊資料。在另一實例中,該視訊資料可以RGB色彩空間儲存,且可按需要執行色彩空間轉換,此係由於色彩空間轉換資料可能需要更多位元。 速率緩衝器150可充當視訊編碼器20中之速率控制機構之部分,下文將結合速率控制器120對此更詳細地描述。編碼每一區塊所耗費之位元可大體上基於該區塊之性質而高度變化。速率緩衝器150可平緩經壓縮視訊中之速率變化。在一些實施例中,使用其中以恆定位元率自緩衝器獲得位元的CBR緩衝器模型。在CBR緩衝器模型中,若視訊編碼器20添加過多位元至位元串流,則速率緩衝器150可能上溢。另一方面,視訊編碼器20必須添加足夠位元以便防止速率緩衝器150之下溢。 在視訊解碼器側,可以恆定位元率將位元添加至視訊解碼器30之速率緩衝器155 (見下文更詳細地描述之圖 2B
),且視訊解碼器30可去除每一區塊之可變數目個位元。為確保恰當的解碼,視訊解碼器30之速率緩衝器155不應在經壓縮位元串流之解碼期間「下溢」或「上溢」。 在一些實施例中,緩衝器充滿度(BF)可基於表示當前在緩衝器中之位元數目的值BufferCurrentSize及表示速率緩衝器150之大小的BufferMaxSize (例如,可在任何時間點儲存於速率緩衝器150中之最大位元數目)來定義。 BF可計算為: BF = ((BufferCurrentSize * 100) / BufferMaxSize) 應注意,上文計算BF之方法僅為例示性的,且該BF可視特定實施或上下文而以任何數目個不同方式來計算。 平度偵測器115可偵測自視訊資料中之複雜(例如,非平坦)區域至視訊資料中之平坦(例如,簡單或均勻)區域的變化,及/或反之亦然。術語「複雜」及「平坦」將在本文中用以大體上指視訊編碼器20編碼視訊資料之各別區域的難度。因此,本文所使用之術語複雜大體上描述視訊資料之區域對視訊編碼器20而言編碼複雜,且可(例如)包括紋理化視訊資料、高空間頻率及/或編碼複雜之其他特徵。本文所使用之術語平坦大體上描述視訊資料之區域對視訊編碼器20而言編碼簡單,且可(例如)包括視訊資料中之平滑梯度、低空間頻率及/或編碼簡單的其他特徵。自複雜區域至平坦區域之過渡可由視訊編碼器20用以減少經編碼視訊資料中之量化假影。具體而言,速率控制器120及預測器、量化器及重建構器組件125可在自複雜區域至平坦區域之過渡被識別時減少此類量化假影。類似地,自平坦區域至複雜區域之過渡可由視訊編碼器20用以增大QP,以便減小對當前區塊進行寫碼所需之預期速率。 速率控制器120判定寫碼參數(例如QP)之集合。 QP可由速率控制器120基於速率緩衝器150之緩衝器充滿度及視訊資料之影像活動(例如,自複雜區域至平坦區域之過渡、或平坦區域至複雜區域之過渡)來調整,以便使確保速率緩衝器150不上溢或下溢之目標位元率的圖像品質最大化。速率控制器120亦針對視訊資料之每一區塊選擇特定寫碼選項(例如,特定模式)以便實現最佳速率-失真效能。速率控制器120將經重建構影像之失真最小化以使得其滿足位元率約束條件(例如,整體實際寫碼速率適應目標位元率)。因此,速率控制器120之一個目的係判定寫碼參數(諸如,QP、寫碼模式等)之集合以滿足對速率之瞬時及平均約束,同時使速率-失真效能最大化。 預測器、量化器及重建構器組件125可執行視訊編碼器20之至少三個編碼操作。預測器、量化器及重建構器組件125可以數個不同模式執行預測。一個實例預測模式係中值適應性預測之經修改版本。中值適應性預測可藉由無損JPEG標準(JPEG-LS)實施。可由預測器、量化器及重建構器組件125執行之中值適應性預測經修改版本可允許三個連續樣本值之平行預測。另一實例預測模式係區塊預測。在區塊預測中,依據上方的線中或同一線中左側的先前經重建構像素預測樣本。在一些實施例中,視訊編碼器20及視訊解碼器30皆可對經重建構像素執行相同搜尋以判定區塊預測使用,且因此在區塊預測模式中不需要發送位元。在其他實施例中,視訊編碼器20可在位元串流中執行搜尋及信號區塊預測向量,使得視訊解碼器30不必執行單獨搜尋。亦可實施中點預測模式,其中使用組件範圍之中點來預測樣本。中點預測模式可實現對甚至最壞情況樣本中之經壓縮視訊所需之位元數目的限定。 預測器、量化器及重建構器組件125亦執行量化。舉例而言,可經由可使用移位器實施之2次冪量化器執行量化。應注意,可實施其他量化技術以代替2次冪量化器。由預測器、量化器及重建構器組件125執行之量化可基於由速率控制器120判定的QP。最終,預測器、量化器及重建構器組件125亦執行重建構,該重建構包括將經反量化之殘差添加至預測值及確保結果不超出樣本值之有效範圍。 應注意,上文所描述之由預測器、量化器及重建構器組件125執行之預測、量化及重建構的實例方法僅為說明性的,且可實施其他方法。亦應注意,預測器、量化器及重建構器組件125可包括用於執行預測、量化及/或重建構之子組件。應進一步注意,可由若干單獨編碼器組件代替預測器、量化器及重建構器組件125執行預測、量化及/或重建構。 線緩衝器130保持來自預測器、量化器及重建構器組件125之輸出,使得預測器、量化器及重建構器組件125及索引色彩歷史135可使用經緩衝之視訊資料。索引色彩歷史135儲存最近使用之像素值。此等最近使用之像素值可由視訊編碼器20經由專用語法直接參考。 熵編碼器140基於索引色彩歷史135及平度偵測器115所識別之平度轉變來對自預測器、量化器及重建構器組件125接收之預測殘差及任何其他資料(例如,預測器、量化器及重建構器組件125所識別之索引)進行編碼。在一些實例中,熵編碼器140可每時脈每子串流編碼器編碼三個樣本。子串流多工器145可基於無標頭封包多工方案來多工位元串流。此允許視訊解碼器30並行執行三個熵解碼器,從而促進每時脈三個像素之解碼。子串流多工器145可使封包次序最佳化,使得封包可由視訊解碼器30有效地解碼。應注意,可實施不同的熵寫碼方法,此可有助於每時脈2次冪個像素(例如,2像素/時脈或4像素/時脈)之解碼。 DSC視訊解碼器圖 2B
係說明可實施根據本發明中描述之態樣的技術之視訊解碼器30之實例的方塊圖。視訊解碼器30可經組態以執行本發明之技術中的一些或全部。在一些實例中,本發明中描述之技術可在視訊編碼器30之各種組件當中共用。在一些實例中,另外或替代地,處理器(未展示)可經組態以執行本發明中描述之技術中的一些或全部。 出於解釋之目的,本發明在DSC寫碼之上下文中描述視訊解碼器30。然而,本發明之技術可適用於其他寫碼標準或方法。 在圖 2B
之實例中,視訊解碼器30包括複數個功能組件。視訊解碼器30之功能組件包括速率緩衝器155、子串流解多工器160、熵解碼器165、速率控制器170、預測器、量化器及重建構器組件175、索引色彩歷史180、線緩衝器185及色彩空間轉換器190。所說明之視訊解碼器30的組件類似於上文結合圖 2A
中之視訊編碼器20所描述的對應組件。由此,視訊解碼器30之組件中的每一者可以與上文所描述之視訊編碼器20之對應組件類似的方式操作。 QP計算 在一個方法中,速率控制器120可基於以下方程式導出或計算當前視訊資料區塊之QP (標示為currQP): currQP = prevQ + QpAdj * (diffBits > 0 ? 1: -1), 其中prevQP係與先前區塊相關聯之QP,且QpAdj係可基於diffBits之量值計算之QP偏移值(例如,QP調整值)。 DiffBits表示previousBlockBits與targetBits之間的差值,其中previousBlockBits表示用於對先前區塊進行寫碼之位元數目,且targetBits表示藉以對當前區塊進行寫碼之目標位元數目。當previousBlockBits > targetBits時,diffBits為正,且速率控制器120可藉由將偏移值QpAdj添加至prevQP值而導出當前區塊之QP (currQP)。換言之,當diffBits為正時,QP值currQP與prevQP值相比並未在值方面減小。當previousBlockBits ≤ targetBits時,diffBits為負或零,且由速率控制器120導出之currQP與prevQP值相比並未增大。應注意,在一些實施例中,速率控制器120可計算隨diffBits而變之偏移值QpAdj,其方式為使得QpAdj隨著diffBits之量值增大而單調增大。圖 3
說明描繪用於計算QP調整值QpAdj之例示性技術的圖300。圖300說明水平軸線302,在其上標繪起始於零的diffBits值。在一些實施中,當diffBits > 0時,diffBits的值可使用K個臨限值分類為K+1個範圍。 K個臨限值在圖 3
中藉由標記臨限1、臨限2、臨限3、…及臨限K說明,而K+1個範圍藉由標記範圍1、範圍2、範圍3、…及範圍K+1說明。 K+1個範圍之每一範圍可與具體QpAdj值相關聯。舉例而言,速率控制器120可隨著diffBits之值的範圍索引增大而增大QpAdj值。在一些實施例中,當diffBits ≤ 0時,速率控制器120可使用J個臨限值(未說明)將diffBits之絕對值分類為J+1個範圍,且針對J+1個範圍中之每一者指派具體QpAdj值。 在其他態樣中,速率控制器120可基於圖 2A
中所說明之緩衝器110的充滿度來調整currQP值,以便防止緩衝器110之下溢及/或上溢。緩衝器110之充滿度可依照所計算緩衝器充滿度參數BF來表示。特定言之,當BF超出某一臨限值(例如,P1
)時,速率控制器120可依固定偏移值(例如,p1
)遞增currQP。舉例而言,currQP可調整如下:currQP+ = p1
。此外,當BF降至某一臨限值(例如,Q1
)以下時,速率控制器120可依固定值q1
遞減currQP,例如,currQP- = q1
。在某一態樣中,可使用BF之複數個臨限值,類似於在圖 3
中結合diffBits說明之臨限值及範圍。舉例而言,BF之每一臨限值可與對應之偏移值相關聯以調整currQP。 差量大小單元-可變長度寫碼 在一些實施例中,寫碼器(例如,視訊編碼器20或視訊解碼器30)可使用差量大小單元(DSU)寫碼以提供低成本、固定速率、在視覺上無損的壓縮。寫碼器可基於以區塊為基礎之方法設計(其中區塊大小P×Q)且包含眾多寫碼模式。舉例而言,針對每一視訊資料區塊之寫碼模式可包括(但不限於)變換(例如,DCT、Hadamard)、區塊預測、DPCM、圖案、中點預測(MPP)及中點預測後降(MPPF)模式。在一些實施例中,若干不同寫碼模式可藉由編碼器20實施,以便有效地壓縮不同類型之內容或圖像。舉例而言,在一些實施例中,編碼器20可使用圖案模式壓縮文字圖像,且使用變換模式壓縮自然圖像。 在一些實施例中,編碼器20基於速率控制機構(例如,如圖2A中所說明之速率控制器120)而針對每一各別視訊資料區塊自複數個寫碼模式挑選、選擇或判定寫碼模式。編碼器20亦可在視訊資料位元串流中將所選寫碼模式用信號表示,使得解碼器30在收到位元串流之後可即刻能夠判定用於寫碼該視訊資料的寫碼模式。速率控制器120可旨在藉由考慮該模式之速率及失真兩者來選擇用於每一區塊之有效寫碼模式。速率控制器120可由與緩衝器110 (如圖2A中所說明)相關聯之緩衝器模型或用於儲存傳入區塊資料之其他類型的記憶體支援。緩衝器110可(例如)根據編碼解碼器(諸如DSC)之要求而組態,使得緩衝器110從不處於下溢(例如,在緩衝器中少於零個位元)或上溢(例如,緩衝大小已增大超過設定的最大大小)狀態。 如上文所論述,編碼器20之預測器、量化器及重建構器組件125可執行量化,該量化可在經寫碼視訊資料之區塊中引起損失,其中該損失量可由該區塊之量化參數控制。舉例而言,在一些實施例中,預測器、量化器及重建構器組件125可藉由丟棄一或多個位元平面來執行量化,其中所丟棄之位元平面的數目可由與區塊之QP相關聯的量化步長指示。在一些實施例中,替代編碼器20儲存每一QP之量化步長,編碼器20可指定隨QP而變化之縮放矩陣。每一QP之量化步長可自縮放矩陣導出,且其中導出之值不必為二的冪,例如,導出之值亦可為等於非二的冪的值。在一些實施例中,編碼器20對縮放矩陣之使用可允許預測器、量化器及重建構器組件125在比簡單地去除位元平面更具粒度之情況下執行量化,從而潛在增大效能。 在一些實施例中,若給定視訊資料區塊中之單個分量(例如,特定色彩分量、明度或色度分量等)的所有值為零,則編碼器20可使用跳過模式有效地對該區塊進行寫碼。在跳過模式寫碼中,編碼器20可對可由解碼器30讀取之語法元素或指示符(例如,1位元旗標)進行寫碼,該語法元素或指示符指示當前區塊是使用跳過模式(在對於當前區塊、分量之所有值為零的情況下)還是未使用跳過模式(在該區塊中之該分量之至少一個值非零的情況下)寫碼。 在一些實施例中,編碼器20可使用差量大小單元-可變長度寫碼(DSU-VLC)而使用首碼部分及尾碼部分來對K長度樣本向量(亦稱作「群組」)之經量化殘差值進行寫碼。樣本可指單個色彩分量中之值,例如,對於RGB 444,每一像素具有三個樣本。首碼部分指示在尾碼部分後之殘差值的大小(例如,位元之長度) (該大小標示為B個位元),而尾碼部分指示該樣本向量中之所有樣本的實際殘差值。在一些實施例中,群組中之K個殘差值中的每一者使用相同的數目之位元使用二的補數來寫碼。圖 4
展示根據一些實施例之用於對具有K=4個樣本之樣本向量402進行寫碼的DSU-VLC結構404。在一些實施例中,DSU-VLC結構404可對應於如圖2A中所說明之熵編碼器140。樣本向量402可包含複數個樣本,每一樣本對應於視訊資料之特定色彩分量的殘差值。如圖4中所說明,樣本向量402可包含四個樣本(S0、S1、S2及S3)。 DSU-VLC結構404可對所接收之樣本向量402進行寫碼以形成DSU-VLC碼406 (以下稱作碼406)。碼406包括首碼408及尾碼410。尾碼410包含複數個尾碼部分(例如,尾碼1、尾碼2等),每一者對應於所接收之樣本向量402的樣本(例如,S0、S1等)。下文參考圖5描述碼406之首碼408及尾碼410的進一步描述。圖 5
說明可藉由熵編碼器140針對包含具有值[1, -2, -1, 0]之4個樣本的樣本向量(未展示)寫碼的碼502。碼502可對應於圖4中所說明之碼406。另外,碼502包含首碼504及尾碼506 (其可分別對應於圖4之首碼408及尾碼410)。尾碼506包含四個尾碼部分,每一部分對應於該樣本向量之一樣本值。 使用二的補數表示法,熵編碼器140可使用B = 2個位元來對該樣本向量之樣本中的每一者進行寫碼。在碼502中,首碼504可使用一元碼『001』表示,其指示尾碼506之經寫碼尾碼部分中的每一者之長度為2個位元。尾碼506可由值[01, 10, 11, 00] 表示,其分別表示樣本向量之實際經寫碼樣本值,每一者使用2個位元寫碼。藉由對首碼504進行解碼(其通常可在單個時脈中完成),解碼器30可能夠並行對尾碼506之所有4個符號進行解碼。 群組分割圖 6
說明根據一些實施例之將給定P×Q視訊資料區塊之樣本分割為複數個樣本向量(群組)的實例。如圖6中所說明,區塊602可為包含16個樣本的2×8區塊。區塊602之每一樣本可對應於視訊資料之特定色彩分量的經量化殘差值,該視訊資料對應於區塊602。在使用DSU-VLC結構404對樣本進行寫碼之前,編碼器20可將樣本分割為複數個群組。舉例而言,圖6說明被分割為四個樣本向量604之區塊602的16個樣本,每一樣本向量包含4個樣本(例如,樣本向量604A、604B、604C及604D)。 DSU-VLC結構404可對樣本向量604A至604D進行寫碼以產生各自具有首碼及尾碼(例如,如圖4中所說明)的碼(未展示)。如上文所描述,解碼器30 (如圖3中所說明)可能夠並行對該等碼中之每一者的首碼及尾碼進行解碼,從而允許解碼器30每時脈循環解碼4個樣本。 藉由使用編碼器20將區塊602之樣本分割為群組,解碼器30在對經寫碼之群組進行解碼時可達成每時脈多個樣本之處理量。雖然圖6說明區塊602之樣本被均勻地分割為樣本向量604,但應理解,編碼器20可能均勻地或不均勻地將樣本區塊分割為N個樣本向量。 在均勻分組方法中,所有N個樣本向量604將具有均等數目的樣本。另一方面,當使用不均勻分組方法時,每一樣本向量604中之樣本的數目可不同。 在一些實施例中,區塊602之分割均勻或是不均勻可基於與區塊602相關聯的寫碼模式。舉例而言,編碼器20可在區塊預測模式中使用均勻分組方法,而在變換模式中使用不均勻分組方法。 基於向量之熵寫碼圖 7
說明使用寫碼器702之基於向量的EC程序的例示性方塊圖,該寫碼器可對應於圖2A中所說明的熵編碼器140。寫碼器702可用於對樣本向量704進行寫碼。樣本向量704可類似如圖4中所說明之樣本向量402以及如6圖中所說明之樣本向量604。 如圖7中所說明,樣本向量704具有向量大小K (例如,[S0
, S1
, … SK-1
])。另外,樣本向量704可具有所需的B個位元之樣本大小(例如,寫碼器702可能需要每樣本B個位元以如實地表示群組中之每一樣本)。對於給定K及B值,可能的K長度樣本向量之總數目為2BK
。舉例而言,當K = 2且B = 1時,具有能夠使用1個位元表示之樣本之所有可能的2長度樣本向量集合為4,即, [-1, 0]、[-1, -1]、[0, 0]、[0, -1] (當使用2的補數表示時)。使用圖4至圖5中說明之寫碼方案時,寫碼器702可使用相同數目個位元(例如,BK個位元或2個位元)寫碼對應於此等樣本向量中之每一者的尾碼。由此,對於K及B值之給定組合,不論對2BK
個可能向量集合中之哪一K長度樣本向量進行寫碼,用於對樣本向量進行寫碼之位元的數目係相同的。此不考量集合中之每一樣本向量的發生機率。 然而,當對影像資訊進行寫碼時,某些樣本向量704相比於K長度樣本向量之集合中的其他樣本向量可往往會更具可能性。在一些實施例中,當2BK
個向量之集合中的K長度樣本向量之分佈並不均勻(例如,並非集合中之所有向量同等可能)時,寫碼器702可基於發生機率而以不同方式對K長度樣本向量704進行寫碼。舉例而言,寫碼器702可使用較少位元對與較不可能之K長度樣本向量704相比更有可能之K長度樣本向量704進行寫碼。下文所描述之技術係針對在可能的K長度樣本向量704之集合係自不均勻分佈獲取之時用於對K長度樣本向量704進行寫碼的有效寫碼策略。 在一些實施例中,寫碼器702可使用基於向量之熵寫碼(EC)方法,以便在可能的K長度樣本向量704之集合係自不均勻分佈獲取時更有效地對K長度樣本向量704進行寫碼。在一些實施例中,藉由執行轉換712以將給定K長度樣本向量704轉換為唯一單個值(例如,「索引」706),寫碼器702可對群組中之K長度樣本向量704執行基於向量的EC。K長度樣本向量704與「索引」706之間可存在一對一的對應性。 寫碼器702可使用計算之索引值706來執行將索引值706映射至「碼號」708的映射714。使用VLC碼716,寫碼器702可對「碼號」708進行寫碼以形成可作為視訊資料位元串流之部分被傳輸至解碼器165的經寫碼位元序列710。 VLC碼716可為非結構化或結構化。非結構化VLC碼716之實例包括霍夫曼(Huffman)、算術,而結構化VLC寫碼可包括指數哥倫布(Exponential-Golomb,EG)、哥倫布萊斯(Golomb-Rice,GR)或EG與GR之混合。在解碼器165處,在剖析單個經寫碼位元序列710 (通常可在單個時脈中完成)之後,樣本向量704中之所有K個樣本可即刻被重建構。因此,對基於向量之EC的使用可提供高處理量,通常K個樣本/時脈。 在一些實施例中,寫碼器702可使用可用以將計算之「索引」值706映射至「碼號」708的LUT (查找表,未展示)來執行映射714。 LUT可基於給定群組之K長度樣本向量704的機率值而建構。舉例而言,在一些實施例中,LUT可經建構以使得視為更可能之樣本向量704被映射至具有較小值或可以其他方式使用較少位元寫碼的碼號708 (例如,具有較短碼長度之碼號708)。舉例而言,較高機率之樣本向量的碼號708可使用少於BK個的位元寫碼。在一些實施例中,用於將樣本向量704映射至碼號708的LUT或資料結構可經建構以使得視為更可能之樣本向量704可被更快速存取或當在LUT或資料結構中查找樣本向量704時具有較高優先級,從而允許解碼器165更快速存取。 在一些實施例中,編碼器20可儲存用於明度及色度分量樣本兩者的同一LUT,而在其它實施例中,不同LUT可用於對明度及色度分量樣本進行寫碼。另外,解碼器30可儲存編碼器20所用之LUT或資料結構的其自身複本。舉例而言,回應於接收到經寫碼視訊資料之位元串流及解碼一或多個碼號708,解碼器30可使用其自身之LUT來判定對應的樣本向量704。 在一些實施例中,寫碼器702針對所有大小B使用單個LUT。在其他實施例中,寫碼器702可針對不同大小之B使用單獨的LUT。舉例而言,在一實施例中,寫碼器702在B = 1時可使用第一LUT1,在大小B = 2時使用第二LUT2,諸如此類。當寫碼器702基於大小B選擇特定LUT時,寫碼器702可對經寫碼之位元序列710進行寫碼,使得所用類型之LUT可明確地用信號表示(例如,當B =1時,用信號表示LUT類型= 1,當B = 2時,用信號表示LUT類型= 2,以此類推)。藉由將LUT之類型用信號表示於經寫碼位元710中,解碼器165將能夠在對該位元序列710進行解碼時識別待使用之對應的LUT。在一些實施例中,該信號發送可呈一元碼之形式。或者,將LUT類型用信號表示於經寫碼位元710中可使用固定長度碼完成。在其他實施例中,寫碼器702可使用VLC碼(諸如霍夫曼或算術)以將LUT類型用信號表示於經寫碼位元710中。圖 8
展示使用基於向量之EC來對含有K=4個樣本之樣本向量402進行寫碼以產生經寫碼位元序列806之寫碼器702的實例。經寫碼位元806 (其可對應於圖7中所說明之經寫碼位元序列710)可包含LUT類型信號808及基於向量之VLC碼810。LUT類型信號808明確地用信號表示寫碼器702用以產生經寫碼位元806之LUT的類型(例如,如圖7中所說明用於執行將索引值706映射至碼號708)。基於向量之VLC碼810表示樣本向量802中之所有四個樣本。在一些實施例中,LUT類型信號808亦可指示對樣本向量402之樣本的值進行寫碼所需的位元數目B。 在一些實施例中,當編碼器20應用不均勻分割方法(例如,不同K值)針對特定寫碼模式(例如,變換模式)建構樣本向量402時,歸因於每一樣本向量中之樣本數目K不同,單獨LUT可用於不同樣本向量大小K。由此,對應於不同B值、不同K值或不同K及B值組合,可使用不同LUT。 用於將索引值706映射至對應的碼號708之LUT的大小可隨著大小B增大而增大。由此,在一些實施例中,基於向量之EC僅在樣本向量402之大小B小於某一臨限值時由寫碼器702使用。此可藉由不使編碼器20及解碼器30儲存用於較大值之B的較大大小LUT來完成以便減小記憶體需求。舉例而言,當B超出臨限限值時,寫碼器702可使用基於非向量之寫碼技術(例如,圖4至圖5中說明之DSU-VLC寫碼方案)對樣本向量402進行寫碼。舉例而言,在臨限值為4之實施例中,寫碼器702僅在所接收之樣本向量704具有大小B = 1、2或3時使用基於向量之EC,而對於具有大小B大於或等於4之樣本向量704,使用DSU-VLC寫碼(如圖4至圖5中所說明)。 此處所揭示之技術可應用於任何用於對視訊資料區塊進行寫碼之寫碼模式,諸如區塊預測(BP)、變換模式、BP跳過模式、變換跳過、MPP或MPPF。在基於向量之熵寫碼器702針對多於一個的寫碼模式應用基於向量之EC的實施例中,每一寫碼模式可與其自身LUT相關聯,或共同LUT可與多個模式相關聯。是否使用共同LUT或單獨LUT可基於記憶體需求與效能之間的取捨而判定。舉例而言,在一些實施例中,BP與變換可使用相同的一或多個LUT或資料結構以將索引706映射至碼號708,而在其他實施例中,BP與變換可使用不同LUT或資料結構。在一些實施例中,寫碼器702可僅在具體模式(例如,BP模式)中使用基於向量之EC,而在其他模式中(例如,非BP模式)使用其他寫碼技術。另外,此處所揭示之技術可應用於任何類型之取樣格式,例如,4:4:4、4:2:2、4:2 :0。圖 9
說明其中LUT類型信號808與VLC碼810之首碼組合之經寫碼位元序列806的實例。可由寫碼器702用以對碼號708 (諸如結構化VLC碼,諸如EG、GR或EG與GR之混合)進行寫碼的一些類型之VLC碼716可產生包含首碼908及尾碼910的VLC碼810。在一些實施例中,VLC碼810之首碼908可呈一元碼或解碼器(例如解碼器165)可能要耗時處理之某一其他碼格式,而尾碼910可具有固定長度。為了減少處理時間,寫碼器702可將首碼908與LUT類型信號808組合為單個VLC碼部分912。 舉例而言,如圖9中所說明,寫碼器702可經由第二級VLC寫碼(未展示)對經寫碼位元806之可變長度部分(例如,LUT類型信號808及首碼908)進行組合及寫碼以形成VLC碼部分912。在一些實施例中,第二級VLC寫碼可由如2A圖中所說明之熵編碼器140執行。因為LUT類型信號808及VLC碼首碼908皆可呈一元碼或某一其他處理代價大之格式,所以執行第二級VLC寫碼可用於減小接收經寫碼位元806的解碼器165處理LUT類型信號808及VLC碼首碼908所需之處理量。在一些實施例中,寫碼器702可使用第二單獨LUT(未展示)來將LUT類型信號808及首碼908映射至單個碼號。寫碼器702可接著對所得碼號進行寫碼(例如,使用第二級VLC碼)以形成VLC碼部分912。當由解碼器165接收到時,解碼器165可首先對VLC碼部分912進行解碼以判定LUT類型信號808及完整VLC碼810之首碼908,以便獲得完整的經寫碼位元序列806。在一些實施例中,用於對經寫碼位元806之可變長度部分進行寫碼的第二級VLC碼可為用於對碼號708進行寫碼以形成經寫碼位元序列806的相同類型之VLC碼716。在其他實施例中,第二級VLC碼可不同於VLC碼716。正負號量值寫碼
如上文所論述,大小B可表示如實地表示給定群組(例如,樣本向量402、604或704)中之所有樣本所需之位元的數目。在一些實施例中,B之值可基於2的補數表示法來計算,其中需要B個位元來表示自−(2B − 1
)至+(2B − 1
-1)的樣本值。然而,本文中所揭示之技術不限於使用2的補數對齊之實施例,且可應用於使用其他類型之表示法計算的樣本值。舉例而言,在一些實施例中,編碼器20可使用正負號量值表示法對樣本值進行寫碼,其中需要B個位元表示介於0至2B
-1之範圍中的樣本值。圖 10A
展示使用正負號量值表示法之例示性樣本向量604 (例如,如圖6中所說明)之熵寫碼的實例。當正負號量值表示法用於某些實施例中時,寫碼器702可對樣本向量604中之樣本的絕對值(亦稱作量值或絕對部分)進行寫碼,繼之以對應於樣本向量604之樣本之正負號值的正負號位元寫碼。 寫碼器702可對樣本向量604A直至604D中之每一者進行寫碼以形成經寫碼位元之各別群組1002 (例如,群組1002A、1002B、1002C及1002D)。經寫碼位元之每一群組1002包含首碼部分1004、尾碼部分1006及零或多個正負號位元1008。首碼部分1002指示將各別樣本向量604中之樣本的最大絕對值用信號表示所需之位元的數目B。尾碼部分1006表示各別樣本向量604之每一樣本的絕對值。最終,正負號位元1008表示各別樣本向量604之非零樣本的正負號值。 舉例而言,假定樣本向量604A含有具有值[1, -3, -1, 0]之4個樣本。在此實例中,經寫碼位元1002A之首碼部分1004指示值B = 2 (其依據絕對值[1, 3, 1 0]計算)。尾碼部分1006可包含對應於樣本向量604A之絕對樣本值的部分(例如,寫碼為01、11、01、00)。正負號位元1008可指示樣本向量604A之非零樣本中之每一者的正負號值。舉例而言,正負號位元1008可用信號表示為『100』,其中『1』指示正值,『0』指示負值。樣本向量604A之具有零值的樣本之正負號並不用信號表示於正負號位元1008中。 在一些實施例中,寫碼器702可使用對樣本向量604之樣本的量值或絕對部分的基於向量之熵寫碼(例如,如圖7至圖8中所說明)來對樣本向量604A進行寫碼。樣本向量604A之樣本的絕對值可使用本文中所揭示之基於向量的技術寫碼。 舉例而言,對於包含四個樣本S0、S1、S8及S9之樣本向量604A,基於向量之熵寫碼器702可將基於向量之EC應用於群組中之樣本的絕對值(諸如|S0|、|S1|、|S8|、|S9|)以產生首碼部分1004及尾碼部分1006。首碼部分1004可指示所用之LUT類型,而尾碼部分1006可對應於碼號,樣本向量604A之所有樣本的絕對值可自該碼號判定。 另一方面,寫碼器702可在不使用基於向量之熵寫碼的情況下單獨地用信號表示樣本S0、S1、S8及S9之正負號位元1008。舉例而言,正負號位元1008可使用固定長度碼傳信,其中每非零樣本傳信1位元以指示該樣本是正值還是負值。在一些實施例中,當對應的樣本值為零時,不用信號表示正負號位元。圖 10B
說明根據一些實施例之使用正負號量值表示法對樣本向量604進行寫碼的替代配置。在一些實施例中,在複數個樣本向量604A直至604D中之每一者的首碼部分1004及尾碼部分1006已被寫碼之後,寫碼器702可對位元串流中之複數個樣本向量604A直至604D的正負號位元1008進行寫碼。舉例而言,在一些實施例中,寫碼器702可首先將所有樣本向量604A至D的首碼部分1004及尾碼部分1006寫碼於位元串流之中,而所有群組604A至D之正負號位元1008可在所有首碼部分1004及尾碼部分1006已被寫碼之後寫碼於位元串流中。 當與二的補數表示法相比時,正負號量值表示法提供之優點在於值為零之符號的正負號資訊不用信號表示。因此,正負號量值表示法例如在零值更可能之模式(諸如區塊預測及變換模式)中可產生優良寫碼效能。 如上文所描述,寫碼器702可使用正負號量值表示法對樣本向量604進行寫碼,其中樣本向量604之對應於零值之樣本的正負號位元不在正負號位元1008中用信號表示。由此,解碼器30之剖析器邏輯可能需要對樣本向量604之樣本(寫碼為尾碼部分1006)進行重建構或解碼,以知曉是否自來自位元串流之樣本向量604之樣本中的每一者之正負號位元1008讀取正負號資訊。在一些實施例中,解碼器30之剖析器可實施為子串流解多工器160之部分。 換言之,解碼器30之剖析器邏輯在其可剖析樣本向量604之正負號位元1008之前需要知曉樣本向量604之每一樣本是否具有零或非零值。若樣本值非零,則解碼器30剖析來自位元串流之樣本的作為正負號位元1008之部分的正負號資訊。否則,若樣本值為零,則不自位元串流讀取正負號位元。歸因於解碼器30之剖析與解碼功能(例如,為了解碼樣本,實施為熵解碼器165)之間的此相依性,解碼器30之最大解碼器處理量在在一些實施例中可能減小。 在一些實施例中,回應於自視訊資料位元串流接收經寫碼樣本向量,剖析器可對所接收之經寫碼樣本向量的首碼(其可為一元碼)進行解碼,以便判定該樣本向量之每一尾碼部分的長度。剖析器可接著擷取對應於該樣本向量之尾碼的固定數目個位元以用於由熵解碼器165解碼,且接著在下一時脈循環期間前進至下一樣本向量。 解碼器(例如,熵解碼器165)自剖析器接收對應於經寫碼樣本向量之尾碼的位元。解碼器165可接著對所接收之位元進行解碼以判定碼號708。解碼器165可接著使用LUT將碼號708映射至索引值706,該LUT繼而用於獲得該樣本向量之實際樣本值。在一些實施例中,此解碼可在剖析器已剖析經寫碼樣本向量之後的下一時脈循環(例如,剖析器剖析隨後樣本向量的同一時脈循環)中執行。圖 11
說明例示性圖1100,其說明根據一些實施例之對使用正負號量值寫碼之樣本向量604A至D進行剖析及解碼可能需要之數個時脈循環。在一些實施例中,解碼器30可能夠在單個時脈中剖析每一樣本向量604之首碼部分1004及尾碼部分1006 (因為首碼部分1004將直接識別尾碼部分1006中之位元數目)。考慮如圖10A中所說明之樣本向量604A至604D,在一些實施例中,解碼器30可能需要至少5個時脈循環來剖析4個樣本向量604A至604D。 在時脈循環1中,解碼器30剖析樣本向量604A首碼及尾碼部分。在時脈循環2中,解碼器30剖析樣本向量604B首碼及尾碼部分。同時,解碼器30解碼樣本向量604A之絕對樣本值,且剖析針對樣本向量604A之正負號位元。在時脈循環3中,解碼器30解碼樣本向量604B絕對樣本值,且剖析樣本向量604B正負號位元以及樣本向量604C首碼及尾碼部分。在時脈循環4中,解碼器30解碼樣本向量604C樣本值,且剖析樣本向量604C正負號位元及向量604D首碼及尾碼。解碼器30需要另一時脈循環(時脈循環5)來對樣本向量604D絕對值進行解碼,以便剖析樣本向量604D之對應的正負號資訊。因此,如圖10A中所說明之此表示法在一些實施例中可能減小解碼器20之最大可達成處理量。當每一樣本向量之絕對樣本值使用向量熵寫碼予以寫碼時可得出類似結論。 在一些實施例中,如圖10B中所說明,對應於複數個樣本向量604A至D的正負號位元1008可在位元串流中位於群組604A至D之首碼部分1004及尾碼部分1006之後。在此等情況下,解碼器30可在剖析複數個樣本向量之最末樣本向量(例如,群組604D)的首碼及尾碼之後的時脈循環剖析正負號位元1008。由此,當複數個樣本向量604A至D之所有樣本向量使用正負號量值寫碼時,解碼器30可能需要附加時脈循環(例如,時脈循環5)以在剖析樣本向量604A至D的首碼及尾碼之後剖析正負號位元1008,從而潛在減小解碼器165之最大可達成處理量。舉例而言,為了剖析n
個群組604,解碼器30可能需要n + 1
個時脈循環。圖 12
說明例示性樣本向量604 (例如,如圖6中所說明)之混合熵寫碼的實例。在一些實施例中,為了增大解碼器30之處理量,寫碼器702可使用混合方法。舉例而言,寫碼器702可使用正負號量值表示法對初始數目個樣本向量604 (例如,樣本向量604A至C)進行寫碼。另一方面,寫碼器702可使用不同表示法(諸如二的補數表示法)對其餘樣本向量(例如,樣本向量604D)進行寫碼。寫碼器702可基於DSU-VLC (如圖4至圖5中所說明)或向量EC (例如,如圖7至圖9中所說明)對該樣本向量604A至D中的每一者進行寫碼。舉例而言,針對二的補數表示法之向量EC可基於圖8,其中樣本向量604之符號被映射至單個碼號708。另一方面,在正負號量值表示法中,寫碼器702可將樣本向量604之每一符號的絕對值之集合映射至單個碼號708,而樣本向量604之正負號位元1008可針對樣本向量604之每一非零符號單獨地用信號表示。 在對四個樣本向量604A至D進行寫碼的一個例示性實施例中,正負號量值表示法係用於前3個樣本向量604A至C,而二的補數表示法係用於最末樣本向量604D。圖 13
說明例示性圖1300,其說明根據一些實施例之剖析及解碼使用圖12中所說明的混合寫碼方案所寫碼之樣本向量604A至D可能需要的數個時脈循環。藉由管線化上文所描述之剖析器及符號解碼器165,在第4時脈循環期間,樣本向量604D之樣本在樣本向量604C之樣本被解碼時由解碼器165剖析。因為樣本向量604D之樣本係由寫碼器702基於二的補數表示法編碼,所以不需要解碼器165對樣本向量604D之絕對樣本值進行解碼以剖析樣本向量604D之正負號位元。因此,使用混合方法,解碼器30可有可能在四個時脈循環中剖析所有4個樣本向量604A至D。因此,在一些實施例中,為了避免在剖析n
個樣本向量時需要附加時脈循環,寫碼器702可使用正負號量值表示法對前n-1
個樣本向量進行寫碼,同時使用不同表示法(諸如二的補數表示法)對最末樣本向量進行寫碼。因此,解碼器30可能夠在n
個時脈循環中剖析n
個樣本向量。 在一些實施例中,寫碼器702可基於具有非零樣本值之樣本向量604數目來判定是使用二的補數表示法還是使用正負號量值表示法。在一個實例中,寫碼器702可僅在先前樣本向量604A至604C中之每一者含有至少一個非零樣本值的情況下針對最末樣本向量604D使用二的補數表示法。否則,寫碼器702可使用正負號量值表示法來對最末樣本向量604D進行寫碼。在一些實施例中,使用二的補數來對最末樣本向量604D進行寫碼可引起壓縮效率上的一些損失。藉由僅在三個樣本向量604A至604C中之每一者含有至少一個非零樣本值(因此必然對正負號位元1008進行寫碼)時以二的補數對最末樣本向量604D進行寫碼,對二的補數之使用可藉由僅在必要時對其使用而減至最小,從而達成所要處理量。舉例而言,若三個樣本向量604A至604C中之一者不含有至少一個非零樣本值,則該樣本向量可使用群組跳過模式予以寫碼。解碼器30可因此能夠更快速剖析樣本向量604A至604C,從而允許所有四個樣本向量在四個時脈循環內被剖析。 在以上實例中,基於DSU-VLC之熵寫碼係用於正負號量值及二的補數表示法兩者。然而,相同的技術可延伸至用於兩個表示法的向量EC。 程序流程 應注意,本發明之態樣已自編碼器(諸如圖 2A
中之視訊編碼器20)或編碼器之部分(諸如圖 8
中所說明的基於向量之熵寫碼器804)的視角予以描述。上文所描述之內容的逆向操作可經應用以由(例如)圖 2B
中之視訊解碼器30對產生之位元串流進行解碼。 舉例而言,圖 14A
說明用於對樣本向量資料進行編碼之程序的流程圖,而圖 14B
說明用於對所接收之對應於樣本向量資料的位元序列進行解碼之程序的流程圖。舉例而言,如在圖 14A
之區塊1402處所說明,編碼器將所接收之樣本向量轉換至索引值。在一些實施例中,樣本向量與索引值之間存在一對一的對應性,使得兩個不同樣本向量不會具有相同的索引值。在區塊1404處,編碼器使用LUT將索引值映射至碼號。 LUT可至少部分地基於可能的樣本向量之群組的給定樣本向量之發生機率而建構。在一些實施例中,編碼器可基於用於對樣本向量進行寫碼的寫碼模式、表示樣本向量之每一樣本值所需的位元數目、樣本向量中之樣本值數目及/或其類似者來識別LUT。在區塊1406處,編碼器使用VLC方案對碼號進行寫碼以形成待儲存或作為位元串流之部分傳輸的經寫碼位元之序列。 如在圖 14B 之
區塊1412中所說明,解碼器使用VLC方案對所接收之位元序列(例如,來自所接收之位元串流)進行解碼以形成碼號。在區塊1414處,解碼器使用LUT將碼號映射至索引值。在一些實施例中,解碼器基於所接收之作為位元的序列之部分(例如,作為該序列之首碼部分)的指示來識別用於執行映射的LUT類型。在區塊1416處,解碼器將索引值轉換為針對樣本向量之值。圖 15
說明用於使用混合寫碼對樣本向量資料進行編碼之例示性程序的流程圖。在區塊1502處,編碼器接收複數個樣本值,且將所接收之樣本值劃分為n
個樣本向量。在區塊1504處,編碼器使用正負號量值表示法對n
個樣本向量的第一部分進行寫碼。在一些實施例中,樣本向量之第一部分可包含n
個樣本向量之前n-1
個樣本向量。在區塊1506處,編碼器使用二的補數表示法對n
個樣本向量之一或多個其餘樣本向量進行寫碼。在一些實施例中,該一或多個其餘樣本向量可包含該n
個樣本向量之最末樣本向量。在一些實施例中,編碼器僅在樣本向量之第一部分中的每一者含有至少一個具有非零值的樣本之情況下以二的補數表示法對一或多個其餘樣本向量進行寫碼。藉由使用正負號量值表示法對n
個樣本向量之樣本向量的第一部分進行寫碼以及使用二的補數表示法對其餘群組進行寫碼,可實現使用正負號量值表示法寫碼之優點,同時避免可由需要在已解碼n
個樣本向量之所有樣本值的絕對值之後對非零樣本值之正負號位元進行解碼所導致解碼器處理量之減小。 其他考慮因素 可使用多種不同技術及技藝中之任一者來表示本文中所揭示之資訊及信號。舉例而言,可由電壓、電流、電磁波、磁場或磁粒子、光場或光粒子或其任何組合表示可能貫穿以上描述所參考之資料、指令、命令、資訊、信號、位元、符號及碼片。 結合本文中所揭示之實施例而描述之各種說明性邏輯區塊及演算法步驟可實施為電子硬體、電腦軟體或兩者之組合。為了清晰地說明硬體與軟體之此可互換性,上文已大體按其功能性描述了各種說明性組件、區塊及步驟。將此功能性實施為硬體還是軟體視特定應用及施加於整個系統之設計約束而定。熟習此項技術者可針對每一特定應用而以變化之方式實施所描述之功能性,但不應將此等實施決策解釋為致使脫離本發明之範疇。 本文所描述之技術可以硬體、軟體、韌體或其任何組合來實施。此類技術可在多種器件中之任一者中實施,諸如,通用電腦、無線通信器件手持機、或具有多個用途之積體電路器件,該等用途包括無線通信器件手持機、汽車、電氣設備、可穿戴器件及/或其他器件中之應用。描述為器件或組件之任何特徵可一起實施於積體邏輯器件中或分開實施為離散但可互操作之邏輯器件。若以軟體實施,則該等技術可至少部分地由包含程式碼之電腦可讀資料儲存媒體實現,該程式碼包括在被執行時執行上文所描述之方法中之一或多者的指令。電腦可讀資料儲存媒體可形成電腦程式產品之部分,電腦程式產品可包括封裝材料。電腦可讀媒體可包含記憶體或資料儲存媒體,諸如,隨機存取記憶體(RAM),諸如,同步動態隨機存取記憶體(SDRAM)、唯讀記憶體(ROM)、非揮發性隨機存取記憶體(NVRAM)、電可抹除可程式化唯讀記憶體(EEPROM)、快閃記憶體、磁性或光學資料儲存媒體,及其類似者。另外或替代地,該等技術可至少部分地由電腦可讀通信媒體實現,該電腦可讀通信媒體載送或傳達呈指令或資料結構之形式且可由電腦存取、讀取及/或執行的程式碼,諸如,傳播之信號或波。 程式碼可由可包括一或多個處理器之處理器執行,諸如,一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、場可程式化邏輯陣列(FPGA)或其他等效積體或離散邏輯電路。此類處理器可經組態以執行本發明中所描述之技術中的任一者。通用處理器可為微處理器;但在替代方案中,處理器可為任何習知處理器、控制器、微控制器或狀態機。處理器亦可實施為計算器件之組合,例如,DSP與微處理器之組合、複數個微處理器、一或多個微處理器結合DSP核心或任何其他此類組態。因此,如本文中所使用之術語「處理器」可指前述結構、前述結構之任何組合或適合於實施本文中描述之技術的任何其他結構或裝置中之任一者。此外,在一些態樣中,本文中所描述之功能性可提供於經組態用於編碼及解碼之專用軟體或硬體內,或併入於組合式視訊編碼器-解碼器(編碼解碼器)中。又,該等技術可完全實施於一或多個電路或邏輯元件中。 本發明之技術可實施於各種器件或裝置中,包括無線手持機、IC或IC之集合(例如,晶片集合)。在本發明中描述各種組件或單元以強調經組態以執行所揭示技術之器件的功能態樣,但未必需要藉由不同硬體單元實現。確切而言,如上文所描述,各種單元可組合於編碼解碼器硬體單元中,或結合合適軟體及/或韌體而藉由互操作性硬體單元(包括如上文所描述之一或多個處理器)之集合來提供。 雖然已結合各種不同實施例描述了前文,但可在不脫離本發明之教示的情況下將來自一個實施例之特徵或元件與其他實施例組合。然而,各別實施例之間的特徵之組合未必限於此。已描述了本發明之各種實施例。此等及其他實施例係在以下申請專利範圍之範疇內。
10‧‧‧視訊寫碼系統10'‧‧‧視訊寫碼系統11‧‧‧器件12‧‧‧源器件13‧‧‧處理器/控制器器件14‧‧‧目的地器件16‧‧‧連結18‧‧‧視訊源20‧‧‧視訊編碼器22‧‧‧輸出介面28‧‧‧輸入介面30‧‧‧視訊解碼器32‧‧‧顯示器件105‧‧‧色彩空間轉換器110‧‧‧緩衝器115‧‧‧平度偵測器120‧‧‧速率控制器125‧‧‧預測器、量化器及重建構器組件130‧‧‧線緩衝器135‧‧‧索引色彩歷史140‧‧‧熵編碼器145‧‧‧子串流多工器150‧‧‧速率緩衝器155‧‧‧速率緩衝器160‧‧‧子串流解多工器165‧‧‧熵解碼器170‧‧‧速率控制器175‧‧‧預測器、量化器及重建構器組件180‧‧‧索引色彩歷史185‧‧‧線緩衝器190‧‧‧色彩空間轉換器300‧‧‧圖302‧‧‧水平軸線402‧‧‧樣本向量404‧‧‧DSU-VLC結構406‧‧‧DSU-VLC碼408‧‧‧首碼410‧‧‧尾碼502‧‧‧碼504‧‧‧首碼506‧‧‧尾碼602‧‧‧區塊604‧‧‧樣本向量604A‧‧‧樣本向量604B‧‧‧樣本向量604C‧‧‧樣本向量604D‧‧‧樣本向量702‧‧‧寫碼器704‧‧‧樣本向量706‧‧‧索引值708‧‧‧碼號710‧‧‧經寫碼位元序列712‧‧‧轉換714‧‧‧映射716‧‧‧VLC碼806‧‧‧經寫碼位元808‧‧‧LUT類型信號810‧‧‧VLC碼908‧‧‧首碼910‧‧‧尾碼912‧‧‧VLC碼部分1002A‧‧‧群組1002B‧‧‧群組1002C‧‧‧群組1002D‧‧‧群組1004‧‧‧首碼部分1006‧‧‧尾碼部分1008‧‧‧正負號位元1402‧‧‧區塊1404‧‧‧區塊1406‧‧‧區塊1412‧‧‧區塊1414‧‧‧區塊1416‧‧‧區塊1502‧‧‧區塊1504‧‧‧區塊1506‧‧‧區塊
圖 1A
係說明可利用根據本發明中描述之態樣的技術之例示性視訊編碼及解碼系統之方塊圖。圖 1B
係說明可執行根據本發明中描述之態樣的技術之另一實例視訊編碼及解碼系統之方塊圖。圖 2A
係說明可實施根據本發明中描述之態樣的技術之視訊編碼器之實例的方塊圖。圖 2B
係說明可實施根據本發明中描述之態樣的技術之視訊解碼器之實例的方塊圖。圖 3
展示判定量化參數(QP)調整值之例示性方法。圖 4
展示具有K=4個樣本之向量的DSU-VLC結構。圖 5
說明針對例示性4樣本群組的DSU-VLC碼。圖 6
說明均勻分組之實例,其中2×8區塊被分割成4個群組。圖 7
說明基於向量之EC程序的例示性方塊圖。圖 8
展示可用於對含有K=4之樣本的群組進行寫碼之基於向量的EC之結構,其中所用之LUT類型明確地用信號表示。圖 9
說明包含經組合之LUT類型信號與VLC碼首碼的碼。圖 10A
及圖 10B
說明使用正負號量值表示法對複數個樣本向量進行熵寫碼的實例。圖 11
說明例示性圖,該例示性圖說明對使用正負號量值寫碼之樣本向量進行剖析及解碼可能需要的數個時脈循環。圖 12
說明複數個樣本向量之混合熵寫碼的實例。圖 13
說明例示性圖,該例示性圖說明對使用混合寫碼方案寫碼之樣本向量進行剖析及解碼可能需要的數個時脈循環。圖 14A
及圖 14B
說明用於對樣本向量資料進行編碼/解碼之程序的流程圖。圖 15
說明用於使用混合寫碼對樣本向量資料進行編碼之例示性程序的流程圖。
702‧‧‧寫碼器
704‧‧‧樣本向量
706‧‧‧索引值
708‧‧‧碼號
710‧‧‧經寫碼位元序列
712‧‧‧轉換
714‧‧‧映射
716‧‧‧VLC碼
Claims (8)
- 一種用於對具有複數個視訊樣本之視訊資訊進行寫碼的裝置,該裝置包含:一記憶體,其經組態以儲存配置為複數個群組的複數個視訊樣本,每一視訊樣本具有一位元大小B,且該複數個群組中之一各別群組具有一群組大小K;以及一硬體處理器,該硬體處理器經組態以使用一可變長度寫碼(VLC)方案對該複數個群組中之每一群組中之該複數個該等視訊樣本之一各別K長度樣本向量進行寫碼以形成各別基於向量之碼,該等各別基於向量之碼包含識別對應於該位元大小B或該群組大小K中之至少一者的複數個類型之查找表中之查找表之一類型的至少一第一部分以及表示該各別群組中之該複數個視訊樣本的一第二部分,該硬體處理器進一步經組態以對該複數個群組中之一第一數目之群組中之正負號量值表示法(sign magnitude representation)中之該複數個視訊樣本進行寫碼;該硬體處理器進一步經組態以對該複數個群組中之一最末群組中之2的補數表示法中之該複數個視訊樣本進行寫碼;及該硬體處理器進一步經組態以輸出該等各別基於向量之碼,其中為對該各別K長度樣本向量進行寫碼以形成該等各別基於向量之碼,該硬體處理器經組態以:將該各別K長度樣本向量轉換至一索引值;使用該類型的查找表以將該索引值映射至一碼號(code number);對該各別基於向量之碼之該第一部分進行寫碼以指示該類型的查 找表;以及將該碼號進行寫碼以形成該各別基於向量之碼之該第二部分。
- 如請求項1之裝置,其中該處理器經進一步組態以:使用一可變長度寫碼(VLC)方案對該各別基於向量之碼進行解碼以形成各別碼號;使用藉由該各別基於向量之碼之該第一部分識別的該各別類型之查找表來將該各別碼號映射至各別索引值;以及將該各別索引值轉換至該各別群組的該複數個視訊樣本。
- 如請求項1之裝置,該硬體處理器經組態以在該位元大小B小於一臨限值時提供該等各別基於向量之碼。
- 如請求項1之裝置,其中該類型之查找表係至少部分地基於可能的K大小群組之一集合中的該各別群組之一發生機率。
- 一種用於對具有複數個視訊樣本之視訊資訊進行寫碼的方法,該方法包含:儲存配置為複數個群組的複數個視訊樣本,每一視訊樣本具有一位元大小B,且該複數個群組中之一各別群組具有一群組大小K;使用一可變長度寫碼(VLC)方案對該複數個群組中之每一群組中之該複數個該等視訊樣本之一各別K長度樣本向量進行寫碼以形成各別基於向量之碼,該等各別基於向量之碼包含識別對應於該位元大小B或該群組大 小K中之至少一者的複數個類型之查找表中之查找表之一類型的至少一第一部分以及表示該各別群組中之該複數個視訊樣本的一第二部分,其中該寫碼包括:對該複數個群組中之一第一數目之群組中之正負號量值表示法中之該複數個視訊樣本進行寫碼;以及對該複數個群組中之一最末群組中之2的補數表示法中之該複數個視訊樣本進行寫碼;以及其中對該各別K長度樣本向量進行寫碼以形成該等各別基於向量之碼包含:將該各別K長度樣本向量轉換至一索引值;使用該類型的查找表以將該索引值映射至一碼號;對該各別基於向量之碼之該第一部分進行寫碼以指示該類型的查找表;以及將該碼號進行寫碼以形成該各別基於向量之碼之該第二部分。
- 如請求項5之方法,其進一步包含:使用一可變長度寫碼(VLC)方案對該等各別基於向量之碼進行解碼以形成各別碼號;使用藉由該等各別基於向量之碼之該第一部分識別的該各別類型之查找表來將該各別碼號映射至各別索引值;以及將該各別索引值轉換至該各別群組的該複數個視訊樣本。
- 如請求項5之方法,其進一步包含: 在該位元大小B小於一臨限值時提供該等各別基於向量之碼。
- 如請求項5之方法,其中該類型之查找表係至少部分地基於可能的K大小群組之一集合中的該各別群組之一發生機率。
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662305380P | 2016-03-08 | 2016-03-08 | |
US62/305,380 | 2016-03-08 | ||
US201662415999P | 2016-11-01 | 2016-11-01 | |
US62/415,999 | 2016-11-01 | ||
US15/449,755 US10666984B2 (en) | 2016-03-08 | 2017-03-03 | Apparatus and method for vector-based entropy coding for display stream compression |
US15/449,755 | 2017-03-03 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201737706A TW201737706A (zh) | 2017-10-16 |
TWI705693B true TWI705693B (zh) | 2020-09-21 |
Family
ID=59787516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW106107333A TWI705693B (zh) | 2016-03-08 | 2017-03-07 | 用於顯示串流壓縮之基於向量之熵寫碼的裝置及方法 |
Country Status (9)
Country | Link |
---|---|
US (1) | US10666984B2 (zh) |
EP (1) | EP3427480B1 (zh) |
JP (1) | JP6800991B2 (zh) |
KR (1) | KR102185027B1 (zh) |
CN (1) | CN108702520B (zh) |
BR (1) | BR112018067872A2 (zh) |
CA (1) | CA3012869C (zh) |
TW (1) | TWI705693B (zh) |
WO (1) | WO2017155864A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10110931B2 (en) * | 2016-04-27 | 2018-10-23 | Aspeed Technology Inc. | Variable length coding and decoding methods and devices for grouped pixels |
US20180288439A1 (en) * | 2017-03-31 | 2018-10-04 | Mediatek Inc. | Multiple Transform Prediction |
US10855997B2 (en) * | 2017-04-14 | 2020-12-01 | Mediatek Inc. | Secondary transform kernel size selection |
US10706492B2 (en) * | 2017-09-05 | 2020-07-07 | Texas Instruments Incorporated | Image compression/decompression in a computer vision system |
KR20220090887A (ko) | 2020-12-23 | 2022-06-30 | 삼성전자주식회사 | 이미지 처리 장치 및 이미지 처리 장치의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130114669A1 (en) * | 2011-06-29 | 2013-05-09 | Qualcomm Incorporated | Vlc coefficient coding for large chroma block |
US20170228215A1 (en) * | 2016-02-05 | 2017-08-10 | Sony Corporation | System and method for processing data in an adder based circuit |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6909744B2 (en) * | 1999-12-09 | 2005-06-21 | Redrock Semiconductor, Inc. | Processor architecture for compression and decompression of video and images |
US7055018B1 (en) * | 2001-12-31 | 2006-05-30 | Apple Computer, Inc. | Apparatus for parallel vector table look-up |
CN101658042B (zh) * | 2007-03-13 | 2016-03-02 | 诺基亚技术有限公司 | 用于视频编码和解码的系统和方法 |
US20100098156A1 (en) * | 2008-10-16 | 2010-04-22 | Qualcomm Incorporated | Weighted prediction based on vectorized entropy coding |
US8301803B2 (en) * | 2009-10-23 | 2012-10-30 | Samplify Systems, Inc. | Block floating point compression of signal data |
US9877048B2 (en) * | 2014-06-09 | 2018-01-23 | Qualcomm Incorporated | Entropy coding techniques for display stream compression (DSC) |
-
2017
- 2017-03-03 US US15/449,755 patent/US10666984B2/en active Active
- 2017-03-06 CA CA3012869A patent/CA3012869C/en active Active
- 2017-03-06 JP JP2018546866A patent/JP6800991B2/ja active Active
- 2017-03-06 CN CN201780012964.XA patent/CN108702520B/zh active Active
- 2017-03-06 EP EP17711947.6A patent/EP3427480B1/en active Active
- 2017-03-06 WO PCT/US2017/020897 patent/WO2017155864A1/en active Application Filing
- 2017-03-06 BR BR112018067872A patent/BR112018067872A2/pt unknown
- 2017-03-06 KR KR1020187025188A patent/KR102185027B1/ko active IP Right Grant
- 2017-03-07 TW TW106107333A patent/TWI705693B/zh active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130114669A1 (en) * | 2011-06-29 | 2013-05-09 | Qualcomm Incorporated | Vlc coefficient coding for large chroma block |
US20170228215A1 (en) * | 2016-02-05 | 2017-08-10 | Sony Corporation | System and method for processing data in an adder based circuit |
Non-Patent Citations (1)
Title |
---|
B. J. Shieh, Y. S. Lee and C. Y. Lee, "A new approach of group-based VLC codec system with full table programmability", IEEE Trans. Circuits Syst. Video Technol., vol. 11, no. 2, pp. 210-221, Feb. 2001. * |
Also Published As
Publication number | Publication date |
---|---|
EP3427480A1 (en) | 2019-01-16 |
CN108702520A (zh) | 2018-10-23 |
EP3427480B1 (en) | 2023-09-13 |
CN108702520B (zh) | 2020-12-25 |
CA3012869A1 (en) | 2017-09-14 |
CA3012869C (en) | 2022-03-29 |
KR102185027B1 (ko) | 2020-12-01 |
US20170264918A1 (en) | 2017-09-14 |
JP6800991B2 (ja) | 2020-12-16 |
TW201737706A (zh) | 2017-10-16 |
JP2019511865A (ja) | 2019-04-25 |
BR112018067872A2 (pt) | 2019-01-02 |
KR20180118653A (ko) | 2018-10-31 |
WO2017155864A1 (en) | 2017-09-14 |
US10666984B2 (en) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3632114B1 (en) | Substream multiplexing for display stream compression | |
KR102229045B1 (ko) | 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들 | |
US10362310B2 (en) | Entropy coding techniques for display stream compression (DSC) of non-4:4:4 chroma sub-sampling | |
KR102342660B1 (ko) | 디스플레이 스트림 압축을 위한 서브스트림 멀티플렉싱 | |
TWI705693B (zh) | 用於顯示串流壓縮之基於向量之熵寫碼的裝置及方法 | |
EP3284253B1 (en) | Rate-constrained fallback mode for display stream compression | |
US10631005B2 (en) | System and method for coding in block prediction mode for display stream compression (DSC) | |
CN108702513B (zh) | 用于在显示流压缩中量化参数的适应性计算的设备及方法 | |
CN106165420B (zh) | 用于译码视频数据的方法及装置 | |
TW201703524A (zh) | 用於顯示串流壓縮之複合區域偵測 | |
JP2018538742A (ja) | ディスプレイストリーム圧縮(dsc)における固定小数点近似のためのシステムおよび方法 | |
KR20170137093A (ko) | 디스플레이 스트림 압축 (dsc) 을 위한 양자화 파라미터 (qp) 업데이트 분류 | |
CN108432249B (zh) | 用于在显示流压缩(dsc)中计算失真的系统和方法 | |
TW201739246A (zh) | 用於顯示器串流壓縮之感知量化參數(qp)加權之裝置及方法 |