国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      運動補償分割的制作方法

      文檔序號:11162260閱讀:453來源:國知局
      運動補償分割的制造方法與工藝

      數(shù)字視頻可以用于例如經(jīng)由視頻會議的遠(yuǎn)程商務(wù)會議、高清視頻娛樂、視頻廣告、或者用戶生成的視頻的共享。由于視頻數(shù)據(jù)中所涉及到的大量數(shù)據(jù),需要高性能壓縮來進行傳輸和存儲。因此,提供通過具有有限帶寬的通信信道傳輸?shù)母咔逡曨l是有利的。



      技術(shù)實現(xiàn)要素:

      本申請涉及對輸視頻流數(shù)據(jù)進行編碼和解碼以便進行傳輸或者存儲。本文公開了用于通過使用運動補償分割來進行編碼和解碼的系統(tǒng)、方法和設(shè)備的方面。

      本發(fā)明所描述的一種用于通過使用運動補償分割來進行視頻編碼的方法包括:識別輸入視頻流的當(dāng)前幀的當(dāng)前塊,通過使用運動補償分割對當(dāng)前塊進行編碼來生成編碼塊,以及傳送或者存儲編碼塊。通過使用運動補償分割來對當(dāng)前塊進行編碼包括:為當(dāng)前塊生成粗略運動估計信息,對當(dāng)前塊進行分割,以及為當(dāng)前塊生成精細(xì)運動估計信息。

      本發(fā)明所描述的另一種用于通過使用運動補償分割來進行視頻編碼的方法包括:識別輸入視頻流的當(dāng)前幀的當(dāng)前塊,通過對當(dāng)前塊進行編碼來生成編碼塊,以及傳送或者存儲編碼塊。對當(dāng)前塊進行編碼可以包括對當(dāng)前塊進行運動補償分割。

      本發(fā)明所描述的另一種用于通過使用運動補償分割來進行視頻編碼的方法包括:識別輸入視頻流的當(dāng)前幀的當(dāng)前塊,通過對當(dāng)前塊進行編碼來生成編碼塊,以及傳送或者存儲編碼塊。對當(dāng)前塊進行編碼可以包括:為當(dāng)前塊生成粗略運動估計信息,其中,當(dāng)前塊是大小為N×N的塊,以及其中,為當(dāng)前塊生成粗略運動估計信息包括:將當(dāng)前塊劃分為多個K×K基本塊,其中,N是K的倍數(shù);以及通過針對每個相應(yīng)基本塊執(zhí)行粗略運動搜索,為來自多個基本塊的每個相應(yīng)基本塊生成運動信息和預(yù)測誤差信息。對當(dāng)前塊進行編碼可以包括從多個候選分割方案確定分割方案,其中,來自多個候選分割方案的每個候選分割方案包括來自當(dāng)前塊的多個候選分割的至少一個候選,其中,確定分割方案包括生成包括多個節(jié)點的分割決策樹,其中,來自多個節(jié)點的每個節(jié)點表示來自多個候選分割的候選分割;以及按照深度優(yōu)先的次序遍歷分割決策樹,其中,按照深度優(yōu)先的次序遍歷分割決策樹包括識別來自多個節(jié)點的第一節(jié)點,第一節(jié)點具有來自多個節(jié)點的多個子節(jié)點,其中,每個子節(jié)點是葉節(jié)點,每個葉節(jié)點表示來自多個分割的相應(yīng)基本塊大小分割;通過基于來自多個子節(jié)點的每個子節(jié)點評估多個分割準(zhǔn)則,來確定第一節(jié)點的節(jié)點信息;以及修剪分割決策樹,其中,修剪分割決策樹包括在第一節(jié)點的分割信息指示沒有對第一節(jié)點進行分割的條件下,移除第一節(jié)點的子節(jié)點。對當(dāng)前塊進行編碼可以包括通過使用分割方案來對當(dāng)前塊進行分割,以及為當(dāng)前塊生成精細(xì)運動估計信息,其中,為當(dāng)前塊生成精細(xì)運動估計信息包括為來自分割方案的每個分割生成子像素運動信息,以及確定來自分割方案的每個分割的預(yù)測模式。

      下文將更加詳細(xì)地描述在這些和其它方面中的變型。

      附圖說明

      本文參考附圖進行描述,其中,貫穿多個視圖,相似的參考標(biāo)號指相似的部件,以及其中:

      圖1是根據(jù)本公開的實施方式的計算設(shè)備的示意圖;

      圖2是根據(jù)本公開的實施方式的計算和通信系統(tǒng)的示意圖;

      圖3是根據(jù)本公開的實施方式的用于編碼和解碼的視頻流的示意圖;

      圖4是根據(jù)本公開的實施方式的編碼器的框圖;

      圖5是根據(jù)本公開的實施方式的解碼器的框圖;

      圖6是根據(jù)本公開的實施方式的幀的一部分的表示的框圖;

      圖7是根據(jù)本公開的實施方式的分割決策樹的示例的示意圖;

      圖8是根據(jù)本公開的實施方式的使用運動補償分割的視頻編碼的示例的示意圖;

      圖9是根據(jù)本公開的實施方式的針對塊的修剪過的分割決策樹的示例的示意圖;以及

      圖10是根據(jù)本公開的實施方式的按照光柵掃描次序進行分割的塊的示例的示意圖。

      具體實施方式

      數(shù)字視頻流可以表示使用幀或者圖像的序列的視頻。每個幀可以包括許多塊,所述塊可以包括指示像素屬性(諸如,顏色值或者亮度)的信息。視頻的傳輸和存儲可能使用大量計算或者通信資源??梢允褂脡嚎s和其它編碼技術(shù)來減少視頻流中的數(shù)據(jù)量。

      對視頻流或者其部分(諸如,幀或者塊)進行編碼可以包括在視頻流中使用時間和空間相似性以提高編碼效率。例如,視頻編碼可以包括基于像素之間的時間和空間相似性來預(yù)測像素值。一種預(yù)測形式為幀間預(yù)測,該幀間預(yù)測包括通過執(zhí)行運動搜索以發(fā)現(xiàn)在參考幀中的相似部分,基于一個或者多個參考幀來預(yù)測當(dāng)前幀的一部分的值。在預(yù)測編碼的某些實施方式中,可以將視頻序列的一個或者多個幀分割為多個分割,并且可以針對每個相應(yīng)分割執(zhí)行運動搜索。在某些實施方式中,可以對多個分割方案進行評估,并且可以將生成最少誤差的分割方案視為最優(yōu)分割方案,并且可以將該分割方案用于對幀進行編碼。

      在運動補償分割的某些實施方式中,可以通過使用兩階段過程來識別最優(yōu)分割方案,該兩階段過程可以包括基本塊運動搜索、后序深度優(yōu)先遍歷次序分割決策、和選擇性的子像素運動搜索?;緣K運動搜索可以包括為在幀或者幀的一部分中的每個基本塊生成運動信息和預(yù)測誤差信息。后序深度優(yōu)先遍歷次序分割決策可以包括生成分割樹、以及遍歷該分割樹以生成表示最優(yōu)分割方案的修剪的分割樹。子像素運動搜索可以包括按照深度優(yōu)先次序遍歷修剪過的分割樹,以生成子像素運動信息并且識別相應(yīng)分割的最優(yōu)編碼模式。

      圖1是根據(jù)本公開的實施方式的計算設(shè)備100的示意圖。計算設(shè)備100可以包括通信接口110、通信單元120、用戶接口(UI)130、處理器140、存儲器150、指令160、電源170、或者其組合。如本文所使用的,術(shù)語“計算設(shè)備”包括能夠執(zhí)行本文所公開的任何方法或者其任何部分或多個部分的任何單元或者單元的組合。

      計算設(shè)備100可以是固定計算設(shè)備,諸如,個人計算機(PC)、服務(wù)器、工作站、小型計算機、或者大型計算機,或者可以是移動計算設(shè)備,諸如,移動電話、個人數(shù)字助理(PDA)、膝上型計算機、或者平板PC。雖然被示出為單個單元,但是通信設(shè)備100的任何一個或者多個元件可以被集成為任何數(shù)量的單獨物理單元。例如,UI 130和處理器140可以被集成為第一物理單元,并且存儲器150可以被集成為第二物理單元。

      通信接口110可以是如圖所示的無線天線、有線通信端口(諸如,以太網(wǎng)端口)、紅外端口、串行端口、或者能夠與有線或者無線電子通信介質(zhì)180交互的任何其它有線或者無線單元。

      通信單元120可以配置為經(jīng)由有線或者無線電子通信介質(zhì)180發(fā)送或者接收信號。例如,如圖所示,通信單元120操作地連接至配置為經(jīng)由無線信號進行通信的天線。雖然在圖1中未明確示出,但是通信單元120可以配置為經(jīng)由任何有線或者無線通信介質(zhì)(諸如,射頻(RF)、紫外線(UV)、可見光、光纖、電纜線、或者其組合)進行發(fā)送、接收或者兩者。雖然圖1示出了單個通信單元120和單個通信接口110,但是可以使用任何數(shù)量的通信單元和任何數(shù)量的通信接口。

      UI 130可以包括能夠與用戶交互的任何單元,諸如,虛擬或者物理小鍵盤、觸摸板、顯示器、觸摸顯示器、揚聲器、麥克風(fēng)、視頻攝像機、傳感器、或者其任何組合。如圖所示,UI 130可以與處理器操作地耦合,或者與通信設(shè)備100的任何其它元件(諸如,電源170)操作地耦合。雖然被示出為單個單元,但是UI 130可以包括一個或者多個物理單元。例如,UI 130可以包括用于與用戶執(zhí)行音頻通信的音頻接口、以及用于與用戶執(zhí)行基于視覺和觸摸的通信的觸摸顯示器。雖然被示出為單獨單元,但是通信接口110、通信單元120和UI 130、或者其部分可以配置為組合單元。例如,通信接口110、通信單元120和UI 130可以實施為能夠與外部觸摸屏設(shè)備交互的通信端口。

      處理器140可以包括能夠操縱或者處理信號或其它信息的目前存在的或者以后開發(fā)的任何設(shè)備或者系統(tǒng),包括光學(xué)處理器、量子處理器、分子處理器、或者其組合。例如,處理器140可以包括通用處理器、專用處理器、傳統(tǒng)處理器、數(shù)字信號處理器(DSP)、多個微處理器、與DSP核心相關(guān)聯(lián)的一個或者多個微處理器、控制器、微控制器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、可編程邏輯陣列、可編程邏輯控制器、微代碼、固件、任何類型的集成電路(IC)、狀態(tài)機、或者其任何組合。如本文所使用的,術(shù)語“處理器”包括單個處理器或者多個處理器。處理器140可以與通信接口110、通信單元120、UI 130、存儲器150、指令160、電源170、或者其任何組合操作地耦合。

      存儲器150可以包括任何非暫時性計算機可用或者計算機可讀介質(zhì),諸如,能夠例如包含、存儲、傳遞、或者傳送指令160或者與其相關(guān)聯(lián)的任何信息以由處理器140使用或者與該處理器140結(jié)合使用的任何有形設(shè)備。非暫時性計算機可用或者計算機可讀介質(zhì)可以是例如固態(tài)驅(qū)動器、存儲器卡、可移動介質(zhì)、只讀存儲器(ROM)、隨機存取存儲器(RAM)、包括硬盤、軟盤、光盤、磁卡或者光卡的任何類型的盤、專用集成電路(ASIC)、或者適合于存儲電子信息的任何類型的非暫時性介質(zhì)、或者其任何組合。存儲器150可以通過例如存儲總線(未明確示出)連接至例如處理器140。

      指令160可以包括用于執(zhí)行本文所公開的任何方法、或者其任何部分(多個)的指示。指令160可以用硬件、軟件、或者其任何組合來實現(xiàn)。例如,指令160可以實施為存儲在存儲器150中的信息,諸如,計算機程序,該計算機程序可以由處理器140執(zhí)行以執(zhí)行本文所描述的相應(yīng)方法、算法、方面、或者其組合中的任何一種。指令160或者其部分可以實施為專用處理器、或者電路系統(tǒng),該電路系統(tǒng)可以包括用于執(zhí)行本文所描述的方法、算法、方面、或者其組合中的任何一種的專用硬件。指令160的部分可以跨越在相同的機器或者不同的機器上的多個處理器中或者跨越諸如局域網(wǎng)、廣域網(wǎng)、互聯(lián)網(wǎng)或者其組合等的網(wǎng)絡(luò)而分布。

      電源170可以是用于為通信設(shè)備110供電的任何合適的設(shè)備。例如,電源170可以包括有線電源、一個或者多個干電池(諸如,鎳鎘(NiCd)、鎳鋅(NiZn)、鎳金屬氫化物(NiMH)、鋰離子(Li離子))、太陽能電池、燃料電池、或者為通信設(shè)備110供電的任何其它設(shè)備。通信接口110、通信單元120、UI 130、處理器140、指令160、存儲器150、或者其任何組合可以與電源170操作地耦合。

      雖然被示出為單獨元件,但是通信接口110、通信單元120、UI 130、處理器140、指令160、電源170、存儲器150、或者其任何組合可以被集成為一個或者多個電子單元、電路、或者芯片。

      圖2是根據(jù)本公開的實施方式的計算和通信系統(tǒng)200的示意圖。計算和通信系統(tǒng)200可以包括一個或者多個計算和通信設(shè)備100A/100B/100C、一個或者多個接入點210A/210B、一個或者多個網(wǎng)絡(luò)220、或者其組合。例如,計算和通信系統(tǒng)200可以是多址系統(tǒng),所述多址系統(tǒng)將諸如語音、數(shù)據(jù)、視頻、消息、廣播或者其組合等的通信提供至一個或者多個有線或者無線通信設(shè)備(諸如,計算和通信設(shè)備100A/100B/100C)。雖然圖2示出了三個計算和通信設(shè)備100A/100B/100C、兩個接入點210A/210B和一個網(wǎng)絡(luò)220,但是為了簡單起見,可以使用任何數(shù)量的計算和通信設(shè)備、接入點和網(wǎng)絡(luò)。

      每個計算和通信設(shè)備100A/100B/100C可以是例如計算設(shè)備100(如圖1所示)。例如,如圖所示,計算和通信設(shè)備100A/100B可以是用戶設(shè)備,諸如,移動計算設(shè)備、膝上型計算機、廋客戶端、或者智能手機,并且計算和通信設(shè)備100C可以是服務(wù)器,諸如,主機或者集群。雖然將計算和通信設(shè)備100A/100B描述為用戶設(shè)備,并且將計算和通信設(shè)備100C描述為服務(wù)器,但是任何計算和通信設(shè)備可以執(zhí)行服務(wù)器的功能中的一些或者全部、用戶設(shè)備的功能中的一些或者全部、或者服務(wù)器和用戶設(shè)備的功能中的一些或者全部。

      每個計算和通信設(shè)備100A/100B/100C可以配置為執(zhí)行有線或者無線通信。例如,計算和通信設(shè)備100A/100B/100C可以配置為發(fā)送或者接收有線或者無線通信信號,并且可以包括用戶設(shè)備(UE)、移動電臺、固定或者移動訂戶單元、蜂窩電話、個人計算機、平板計算機、服務(wù)器、計算機電子設(shè)備、或者任何相似的設(shè)備。雖然將每個計算和通信設(shè)備100A/100B/100C示出為單個單元,但是計算和通信設(shè)備可以包括任何數(shù)量的互連元件。

      每個接入點210A/210B可以是配置為經(jīng)由有線或者無線通信鏈路180A/180B/180C與計算和通信設(shè)備100A/100B/100C、網(wǎng)絡(luò)220或者兩者通信的任何類型的設(shè)備。例如,接入點210A/210B可以包括基站、基地收發(fā)站(BTS)、節(jié)點B、增強節(jié)點B(eNode-B)、家庭節(jié)點B(HNode-B)、無線路由器、有線路由器、集線器、中繼、交換機、或者任何相似的有線或者無線設(shè)備。雖然將接入點210A/210B示出為單個單元,但是接入點可以包括任何數(shù)量的互連元件。

      網(wǎng)絡(luò)220可以是配置為通過有線或者無線通信鏈路提供服務(wù)(諸如,語音、數(shù)據(jù)、應(yīng)用、互聯(lián)網(wǎng)協(xié)議語音(VoIP)、或者任何其它通信協(xié)議或者通信協(xié)議的組合)的任何類型的網(wǎng)絡(luò)。例如,網(wǎng)絡(luò)220可以是局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、虛擬專用網(wǎng)絡(luò)(VPN)、移動或者蜂窩電話網(wǎng)絡(luò)、互聯(lián)網(wǎng)、或者電子通信的任何其它裝置。網(wǎng)絡(luò)220可以使用通信協(xié)議,諸如,傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)、互聯(lián)網(wǎng)協(xié)議(IP)、實時傳輸協(xié)議(RTP)、超文本傳輸協(xié)議(HTTP)、或者其組合。

      計算和通信設(shè)備100A/100B/100C可以通過使用一個或者多個有線或者無線通信鏈路經(jīng)由網(wǎng)絡(luò)220、或者經(jīng)由有線和無線通信鏈路的組合彼此通信。例如,如圖所示,計算和通信設(shè)備100A/100B可以經(jīng)由無線通信鏈路180A/180B進行通信,并且計算和通信設(shè)備100C可以經(jīng)由有線通信鏈路180C進行通信。計算和通信設(shè)備100A/100B/100C中的任何一個可以通過使用任何有線或者無線通信鏈路(或多個鏈路)來進行通信。例如,第一計算和通信設(shè)備100A可以通過使用第一類型的通信鏈路經(jīng)由第一接入點210A進行通信,第二計算和通信設(shè)備100B可以通過使用第二類型的通信鏈路經(jīng)由第二接入點210B進行通信,并且第三計算和通信設(shè)備100C可以通過使用第三類型的通信鏈路經(jīng)由第三接入點(未示出)進行通信。相似地,接入點210A/210B可以經(jīng)由一種或者多種類型的有線或者無線通信鏈路230A/230B與網(wǎng)絡(luò)220通信。雖然圖2示出了經(jīng)由網(wǎng)絡(luò)220進行通信的計算和通信設(shè)備100A/100B/100C,但是計算和通信設(shè)備100A/100B/100C可以經(jīng)由任何數(shù)量的通信鏈路(諸如,直接有線或者無線通信鏈路)彼此通信。

      計算和通信系統(tǒng)200的其它實施方式是可能的。例如,在一種實施方式中,網(wǎng)絡(luò)220可以是ad-hock網(wǎng)絡(luò)并且可以省略接入點210A/210B中的一個或者多個。計算和通信系統(tǒng)200可以包括在圖2中未被示出的設(shè)備、單元或者元件。例如,計算和通信系統(tǒng)200可以包括更多通信設(shè)備、網(wǎng)絡(luò)和接入點。

      圖3是根據(jù)本公開的實施方式的用于編碼和解碼的視頻流300的示意圖。視頻流300(諸如,由視頻攝像頭捕捉到的視頻流或者由計算設(shè)備生成的視頻流)可以包括視頻序列310。視頻序列310可以包括一系列的相鄰幀320。雖然示出了三個相鄰幀320,但是視頻序列310可以包括任何數(shù)量的相鄰幀320。來自相鄰幀320的每個幀320可以表示來自視頻流300的單個圖像。幀330可以包括塊340。雖然未在圖3中示出,但是塊可以包括像素。例如,塊可以包括16×16像素組、8×8像素組、8×16像素組、或者任何其它像素組。除非本文另有規(guī)定,否則術(shù)語“塊”可以包括超級塊、宏塊、段、片、或者幀的任何其它部分。幀、塊、像素或者其組合可以包括顯示信息,諸如,亮度信息、色度信息、或者可以用于存儲、修改、傳遞、或者顯示視頻流或者其部分的任何其它信息。

      圖4是根據(jù)本公開的實施方式的編碼器400的框圖;編碼器400可以實現(xiàn)在設(shè)備(諸如,圖1所示的計算設(shè)備100或者圖2所示的計算和通信設(shè)備100A/100B/100C)中,作為例如存儲在諸如圖1所示的存儲器150等的數(shù)據(jù)存儲單元中的計算機軟件程序。計算機軟件程序可以包括機器指令,該機器指令可以由諸如圖1所示的處理器160等處理器執(zhí)行,并且可以使設(shè)備如本文所描述地對視頻數(shù)據(jù)進行編碼。編碼器400可以實現(xiàn)為包括例如在計算設(shè)備100中的專用硬件。

      編碼器400可以對輸入視頻流402(諸如,圖3所示的視頻流300)進行編碼以生成編碼(壓縮)比特流404。在某些實施方式中,編碼器400可以包括用于生成壓縮比特流404的前向路徑。前向路徑可以包括幀內(nèi)/幀間預(yù)測單元410、變換單元420、量化單元430、熵編碼單元440、或者其任何組合。在某些實施方式中,編碼器400可以包括重構(gòu)路徑(由斷開連接線指示)以重構(gòu)幀以對進一步的塊進行編碼。重構(gòu)路徑可以包括解量化單元450、反變換單元460、重構(gòu)單元470、環(huán)路濾波單元480、或者其組合??梢允褂镁幋a器400的其它結(jié)構(gòu)變型來對輸入視頻流402進行編碼。

      為了對輸入視頻流402進行編碼,可以將在輸入視頻流402內(nèi)的每個幀按照塊單元進行處理。因此,可以從幀中的塊識別當(dāng)前塊,并且可以對當(dāng)前塊進行編碼。

      在幀內(nèi)/幀間預(yù)測單元410處,可以通過使用可以在單個幀內(nèi)的幀內(nèi)預(yù)測或者可以是從幀到幀的幀間預(yù)測來對當(dāng)前塊進行編碼。幀內(nèi)預(yù)測可以包括從當(dāng)前幀中在先前已經(jīng)被編碼和重構(gòu)的采樣生成預(yù)測塊。幀間預(yù)測可以包括從在一個或者多個先前構(gòu)造的參考幀中的采樣生成預(yù)測塊。為在當(dāng)前幀中的當(dāng)前塊生成預(yù)測塊可以包括執(zhí)行運動估計以生成指示在參考幀中的適當(dāng)?shù)膮⒖級K的運動矢量。

      幀內(nèi)/幀間預(yù)測單元410可以從當(dāng)前塊(原始塊)減去預(yù)測塊以產(chǎn)生殘差塊。變換單元420可以執(zhí)行基于塊的變換,該基于塊的變換可以包括將殘差塊變換為在例如頻域中的變換系數(shù)?;趬K的變換的示例包括卡洛變換(KLT)、離散余弦變換(DCT)和奇異值分解變換(SVD)。在一個示例中,s DCT可以包括將塊變換為頻域。S DCT可以包括使用基于空間頻率的變換系數(shù)值,其中最低頻率(即,DC)系數(shù)在矩陣的左上方且最高頻率系數(shù)在矩陣的右下方。

      量化單元430可以將變換系數(shù)轉(zhuǎn)換為離散量子值,該離散量子值可以被稱為量化變換系數(shù)或者量化等級。熵編碼單元440可以對量化變換系數(shù)進行熵編碼以產(chǎn)生熵編碼系數(shù)。熵編碼可以包括使用概率分布測度??梢詫⒖梢园ㄋ褂玫念A(yù)測類型、運動矢量和量化器值的用于對塊進行解碼的熵編碼系數(shù)和信息輸出至壓縮比特流404。可以通過使用各種技術(shù)(諸如,運行長度編碼(RLE)和零運行代碼)來使壓縮比特流404格式化。

      重構(gòu)路徑可以用于維持在編碼器400與對應(yīng)的解碼器(諸如,圖5所示的解碼器500)之間的參考幀同步。重構(gòu)路徑可以與下面所討論的解碼過程相似,并且可以包括在解量化單元450處對量化變換系數(shù)進行解量化,并且在反變換單元460處對解量化變換系數(shù)進行反變換以產(chǎn)生衍生殘差塊。重構(gòu)單元470可以將由幀內(nèi)/幀間預(yù)測單元410生成的預(yù)測塊添加至衍生殘差塊以創(chuàng)建重構(gòu)塊。環(huán)路濾波單元480可以應(yīng)用于重構(gòu)塊以減少失真,諸如,塊偽影。

      編碼器400的其它變型可以用于對壓縮比特流404進行編碼。例如,基于非變換的編碼器400可以在沒有變換單元420的情況下直接對殘差塊進行量化。在某些實施方式中,量化單元430和解量化單元450可以結(jié)合為單個單元。

      圖5是根據(jù)本公開的實施方式的解碼器500的框圖。解碼器500可以實施在設(shè)備(諸如,圖1所示的計算設(shè)備100或者圖2所示的計算和通信設(shè)備100A/100B/100C)中,作為例如存儲在諸如圖1所示的存儲器150等數(shù)據(jù)存儲單元中的計算機軟件程序。計算機軟件程序可以包括機器指令,該機器指令可以由諸如圖1所示的處理器160等處理器執(zhí)行,并且可以使設(shè)備對視頻數(shù)據(jù)進行解碼,如本文所描述的。解碼器500可以實施為包括例如在計算設(shè)備100中的專用硬件。

      解碼器500可以接收壓縮比特流502,諸如,圖4所示的壓縮比特流404,并且可以對壓縮比特流502進行解碼以生成輸出視頻流504。解碼器500可以包括熵解碼單元510、解量化單元520、反變換單元530、幀內(nèi)/幀間預(yù)測單元540、重構(gòu)單元550、環(huán)路濾波單元560、解塊濾波單元570、或者其任何組合。解碼器500的其它結(jié)構(gòu)變型可以用于對壓縮比特流502進行解碼。

      熵解碼單元510可以通過使用例如上下文自適應(yīng)二進制算術(shù)編碼來對在壓縮比特流502內(nèi)的數(shù)據(jù)元素進行解碼,以產(chǎn)生量化變換系數(shù)集。解量化單元520可以對量化變換系數(shù)進行解量化,并且反變換單元530可以對解量化變換系數(shù)進行反變換以產(chǎn)生衍生殘差塊,該衍生殘差塊可以與由圖4所示的反變換單元460生成的衍生殘差塊對應(yīng)。通過使用由壓縮比特流502解碼的報頭信息,幀內(nèi)/幀間預(yù)測單元540可以生成與用編碼器400創(chuàng)建的預(yù)測塊對應(yīng)的預(yù)測塊。在重構(gòu)單元550處,可以將預(yù)測塊添加至衍生殘差塊以創(chuàng)建重構(gòu)塊。環(huán)路濾波單元560可以應(yīng)用于重構(gòu)塊以降低塊偽影。解塊濾波單元570可以應(yīng)用于重構(gòu)塊以減少塊失真,并且可以輸出結(jié)果作為輸出視頻流504。

      解碼器500的其它變型可以用于解碼壓縮比特流502。例如,解碼器500可以在沒有解塊濾波單元570的情況下產(chǎn)生輸出視頻流504。

      圖6是根據(jù)本公開的實施方式的幀(諸如,圖3所示的幀330)的部分600的表示的框圖。如圖所示,部分600包括在矩陣或者笛卡爾(Cartesian)平面中呈兩行和兩列排列的四個64×64塊610。在某些實施方式中,64×64塊可以是最大編碼單位,N=64。一個或者多個64×64塊可以包括四個32×32塊620。一個或者多個32×32塊620可以包括四個16×16塊630。一個或者多個16×16塊630可以包括四個8×8塊640。一個或者多個8×8塊640可以包括四個4×4塊650。每個4×4塊650包括在笛卡爾平面或者矩陣中的每個相應(yīng)塊中表示為四行和四列的16個像素。像素通常包括表示在幀中捕捉到的圖像的信息,諸如,亮度信息、顏色信息、和位置信息。在某些實施方式中,塊(諸如,如圖所示的16×16像素塊)可以包括亮度塊660,該亮度塊660包括亮度像素662;和兩個色度塊670/680,諸如,U或者Cb色度塊670、和V或者Cr色度塊680。色度塊670/680可以包括色度像素690。例如,亮度塊660包括16×16亮度像素662,并且每個色度塊670/680包括如圖所示的8×8色度像素690。雖然示出了塊的一種布置,但是可以使用任何布置。雖然圖6示出了N×N塊,但是在某些實施方式中,可以使用N×M塊,其中,N≠M。例如,可以使用32×64塊,64×32塊、16×32塊、32×16塊或者任何其它大小的塊。在某些實施方式中,可以使用N×2N塊、2N×N塊、或者其組合。

      在某些實施方式中,視頻編碼可以包括有序的塊級編碼。有序的塊級編碼包括按照一定次序(諸如,光柵掃描次序)對幀的編碼塊進行編碼,其中,可以對塊進行識別和處理,從在幀的左上角的塊或者幀的部分開始,并且沿從左到右和從頂行到底行的行進行,依次識別每個塊以進行處理。例如,在幀的頂行和左列中的64×64塊可以是編碼的第一塊,并且緊鄰第一塊右邊的64×64塊可以是編碼的第二塊。從頂部的第二行可以是編碼的第二行,從而在第一行的最右邊的列中的64×64塊之后,可以對在第二行的左列中的64×64塊進行編碼。

      在某些實施方式中,對塊進行編碼可以包括使用四叉樹編碼,該四叉樹編碼包括按照光柵掃描次序?qū)υ趬K內(nèi)的更小的塊進行編碼。例如,可以通過使用四叉樹編碼來對在圖6所示的幀的部分的左下角中示出的64×64塊進行編碼,其中,對左上方的32×32塊進行編碼,然后對右上方的32×32塊進行編碼,再然后對左下方的32×32塊進行編碼,最后對右下方的32×32塊進行編碼。可以通過使用四叉樹編碼來對每個32×32塊進行編碼,其中,對左上方的16×16塊進行編碼,然后對右上方的16×16塊進行編碼,再然后對左下方的16×16塊進行編碼,最后對右下方的16×16塊進行編碼??梢酝ㄟ^使用四叉樹編碼來對每個16×16塊進行編碼,其中,對左上方的8×8塊進行編碼,然后對右上方的8×8塊進行編碼,再然后對左下方的8×8塊進行編碼,最后對右下方的8×8塊進行編碼??梢酝ㄟ^使用四叉樹編碼來對每個8×8塊進行編碼,其中,對左上方的4×4塊進行編碼,然后對右上方的4×4塊進行編碼,再然后對左下方的4×4塊進行編碼,最后對右下方的4×4塊進行編碼。在某些實施方式中,對于16×16塊,可以省略8×8塊,并且可以通過使用四叉樹編碼來對16×16塊進行編碼,其中,對左上方的4×4塊進行編碼,然后按照光柵掃描次序?qū)υ?6×16塊中的其它4×4塊進行編碼。

      在某些實施方式中,視頻編碼可以包括通過例如省略在來自對應(yīng)的編碼幀的原始幀中的信息中的一些,來壓縮包括在原始的或者輸入的幀中的信息。例如,編碼可以包括減少頻譜冗余、減少空間冗余、減少時間冗余、或者其組合。

      在某些實施方式中,減少頻譜冗余可以包括使用基于亮度分量(Y)和兩個色度分量(U和V或者Cb和Cr)的顏色模型,該顏色模型可以被稱為YUV或者YCbCr顏色模型、或者顏色空間。使用YUV顏色模型可以包括使用數(shù)量較大的信息來表示幀的部分的亮度分量,并且使用數(shù)量較小的信息來表示幀的部分的每個對應(yīng)的色度分量。例如,幀的部分可以由高分辨率亮度分量表示,該高分辨率亮度分量包括16×16像素塊,并且由兩個較低分辨率色度分量表示,該兩個較低分辨率色度分量中的每一個將幀的部分表示為8×8像素塊。像素可以指示一個值,例如,在0到255的范圍內(nèi)的值,并且可以通過使用例如8個比特來存儲或者發(fā)送。雖然參照YUV顏色模型描述了本公開,但是可以使用任何顏色模型。

      在某些實施方式中,減少空間冗余可以包括通過使用例如離散余弦變換(DCT)或者其它變換來將塊變換為頻域。例如,編碼器的單元(諸如,圖4所示的變換單元420)可以基于空間冗余,通過使用變換系數(shù)值來執(zhí)行DCT。

      在某些實施方式中,減少時間冗余可以包括基于一個或者多個參考幀,使用幀之間的相似性,通過使用數(shù)量較小的數(shù)據(jù)來對幀進行編碼,該一個或者多個參考幀可以是視頻流的先前被編碼、解碼和重構(gòu)的幀。例如,當(dāng)前幀的塊或者像素可以與參考幀的在空間上對應(yīng)的塊和像素相似。在某些實施方式中,當(dāng)前幀的塊或者像素可以與參考幀的在不同的空間位置處的塊或者像素相似,并且減少時間冗余可以包括生成運動信息,該運動信息指示塊或者像素在當(dāng)前幀中的位置與塊或者像素在參考幀中的對應(yīng)位置之間的空間差異或者轉(zhuǎn)換。

      在某些實施方式中,減少時間冗余可以包括識別與當(dāng)前幀的當(dāng)前塊或者像素對應(yīng)的在參考幀中的塊或者像素、或者參考幀的部分。例如,在可以存儲在存儲器中的參考幀或者參考幀的部分中搜索最優(yōu)塊或者像素來用于對當(dāng)前幀的當(dāng)前塊或者像素進行編碼。例如,搜索識別參考幀的使在參考塊與當(dāng)前塊之間的像素值差最小化的塊,并且被稱為運動搜索。在某些實施方式中,搜索的參考幀的部分可能是有限的。例如,通常被稱為搜索區(qū)域的搜索的參考幀的部分可以包括參考幀的數(shù)量有限的行。在示例中,識別參考塊包括在搜索區(qū)域中的塊的像素與當(dāng)前塊的像素之間計算成本函數(shù),諸如,絕對差和(SAD)。

      在某些實施方式中,可以將在參考塊在參考幀中的位置與當(dāng)前塊在當(dāng)前幀中的位置之間的空間差異表示為運動矢量。在參考塊與當(dāng)前塊之間的像素值差被稱為差分?jǐn)?shù)據(jù)、殘差數(shù)據(jù)、或者被稱為殘差塊。在某些實施方式,生成運動矢量被稱為運動估計,并且可以基于通過使用笛卡爾坐標(biāo)作為fx,y的位置來指示當(dāng)前塊的像素。相似地,可以基于通過使用笛卡爾坐標(biāo)作為rx,y的位置來指示參考幀的搜索區(qū)域的像素??梢曰诶缭诋?dāng)前值的像素與參考幀的對應(yīng)像素之間的SAD來確定當(dāng)前塊的運動矢量(MV)。

      雖然為了清楚起見,本文參考幀的矩陣或者笛卡爾表示描述了運動補償分割,但是可以用任何數(shù)據(jù)結(jié)構(gòu)來對幀進行存儲、發(fā)送、處理、或者其任何組合,從而可以針對幀或者圖像有效地預(yù)測像素值。例如,可以用二維數(shù)據(jù)結(jié)構(gòu)(諸如,如圖所示的矩陣)、或者用一維數(shù)據(jù)結(jié)構(gòu)(諸如,矢量陣列)來對幀進行存儲、傳送、處理、或者其任何組合。在實施方式中,幀的表示(諸如,如圖所示的二維表示)與在渲染為圖像的幀中的物理位置對應(yīng)。例如,在幀的左上角的塊的左上角的位置與渲染為圖像的幀的左上角的物理位置對應(yīng)。

      在某些實施方式中,在塊內(nèi)捕捉到的內(nèi)容可以包括表現(xiàn)出不同的空間特性和時間特性的兩個或者更多個區(qū)域。例如,幀捕捉在各個方向上并且以各種速度移動的多個對象,并且塊可以包括邊緣或者對象邊界。在某些實施方式中,可以通過將包括具有不同特性的多個區(qū)域的塊分割為可以是與不同內(nèi)容對應(yīng)的矩形(包括正方形)分割的一個或者多個分割,并且對分割進行編碼,而不是對每個最小編碼單位進行獨立編碼,來提高基于塊的編碼效率。

      在某些實施方式中,使用分割的視頻編碼可以包括從多個候選分割方案當(dāng)中選擇一個分割方案。例如,在某些實施方式中,針對64×64編碼單位的候選分割方案包括大小范圍從4×4到64×64(諸如,4×4、4×8、8×4、8×8、8×16、16×8、16×16、16×32、32×16、32×32、32×64、64×32、或者64×64)的矩形大小分割。在某些實施方式中,使用分割的視頻編碼可以包括全分割搜索,該全分割搜索包括通過使用每個可用候選分割方案對編碼單位進行編碼,并且選擇最優(yōu)方案(諸如,產(chǎn)生最少的速率失真誤差的方案)來選擇分割方案。在使用分割的視頻編碼(諸如,離線雙步編碼)的某些實施方式中,在第一編碼過程中,可以生成有關(guān)在幀之間的運動的信息,并且在第二編碼過程中,可以利用該信息來選擇分割方案。針對每個候選分割方案的技術(shù)(諸如,進行離線雙步編碼和對速率失真誤差進行評估)或者其它相似的測度可能非常耗時,并且可能利用超過編碼時間的一半。在某些實施方式中(諸如,視頻會議或者包括靜止背景的其它內(nèi)容),可以基于在先前的源幀與當(dāng)前源幀之間的差異來選擇分割方案。在某些實施方式中,與全分割搜索、離線雙步編碼、或者基于幀間分割來進行的分割相比較,通過使用運動補償分割來對視頻幀進行編碼更有效地識別分割方案。

      在某些實施方式中,通過使用運動補償分割來對視頻幀進行編碼包括識別用于對當(dāng)前塊(諸如,塊610)進行編碼的分割方案。在某些實施方式中,識別分割方案可以包括確定是否將塊編碼為最大編碼單位大小(其是如圖所示的64×64)的單個分割,或者是否將塊分割為對應(yīng)于子塊(諸如,如圖所示的32×32塊620、16×16塊630、或者8×8塊640)的多個分割,并且可以包括確定是否分割為一個或者多個更小的分割。例如,可以將64×64塊分割為四個32×32分割。可以將四個32×32分割中的三個編碼為32×32分割,并且可以將第四個32×32分割進一步分割為四個16×16分割。可以將四個16×16分割中的三個編碼為16×16分割,并且可以將第四個16×16分割進一步分割為四個8×8分割,將該四個8×8分割中的每一個編碼為8×8分割。在某些實施方式中,識別分割方案可以包括使用分割決策樹。

      圖7是根據(jù)本公開的實施方式的分割決策樹的示例的示意圖。在某些實施方式中,分割決策樹700表示針對塊(諸如,圖6所示的64×64塊610)的多個候選分割方案。雖然圖7所示的分割決策樹包括僅僅表示正方形分割的節(jié)點,但是在某些實施方式中,分割決策樹可以表示塊的所有可能的矩形(包括正方形)分割。

      如圖7所示,分割決策樹700可以包括表示塊的每個候選分割的由圓指示的節(jié)點710/720/730。例如,如圖所示,圖7包括第一或者根節(jié)點710,該第一或者根節(jié)點710表示N×N分割,該N×N分割可以與當(dāng)前編碼單位或者塊對應(yīng)。在某些實施方式中,根節(jié)點710可以是分割級0節(jié)點。在分割決策樹700中可以將N×N根分割分割為表示為級1、或者中間節(jié)點720的多個分割(諸如,N/2×N/2分割)。例如,根節(jié)點710可以表示64×64塊,該64×64塊可以被分割為四個32×32分割,該四個32×32分割由如圖所示的四個級1節(jié)點720表示。在分割方案中的可以是基本塊的最小分割可以是K×K分割并且由葉節(jié)點730表示。例如,可以在分割決策樹700中將由每個N/2×N/2中間節(jié)點720表示的分割分割為由葉節(jié)點730表示的K×K分割。

      圖8是根據(jù)本公開的實施方式的使用運動補償分割的視頻編碼的示例的示意圖。運動補償分割可以實現(xiàn)在系統(tǒng)(諸如,圖2所示的系統(tǒng)200)中。例如,運動補償分割可以實現(xiàn)為由計算設(shè)備(諸如,圖2所示的計算和通信設(shè)備100A/100B/100C)執(zhí)行的軟件程序。軟件程序可以包括存儲在諸如存儲器150等存儲器中的機器可讀指令,該機器可讀指令在諸如由處理器140執(zhí)行時可以使計算設(shè)備執(zhí)行運動補償分割。運動補償分割也可以通過使用硬件來全部或者部分地實現(xiàn)。如上面所闡釋的,一些計算設(shè)備可以包括多個存儲器和多個處理器,并且可以通過使用在一個或者多個物理設(shè)備上的一個或者多個處理器或者一個或者多個存儲器來分布運動補償分割。在某些實施方式中,運動補償分割可以包括在810中的粗略運動估計、在820中的分割、在830中的精細(xì)運動估計、或者其組合。在某些實施方式中,視頻編碼(諸如,圖4所示的視頻編碼)包括運動補償分割。例如,圖4所示的幀內(nèi)/幀間預(yù)測單元410可以包括運動補償分割。

      在某些實施方式中,在810中執(zhí)行粗略運動估計。在某些實施方式中,可以針對當(dāng)前幀中的每個塊執(zhí)行粗略運動估計。例如,當(dāng)前幀的當(dāng)前塊可以是64×64塊(N=64),諸如,圖6所示的塊610。在某些實施方式中,粗略運動估計可以包括將當(dāng)前塊劃分為多個子塊,該多個子塊可以是K×K基本塊。在某些實施方式中,基本塊的大小可以與最小的可用分割大小對應(yīng)。例如,對高清視頻(諸如,720p視頻)進行編碼可以包括使用K=16的基本塊大小,諸如,圖6所示的塊630。在另一示例中,對標(biāo)準(zhǔn)清晰度視頻進行編碼可以包括使用K=8的基本塊大小。

      雖然為了簡單起見,本文描述了正方形塊和子塊,但是可以使用非正方形塊和子塊、或者兩者。可以使用子塊大小和形狀的任何組合。在某些實施方式中,可以將每個子塊包括在一個和僅僅一個父子塊中,并且可以將塊的所有像素包括在至少一個子塊中。在某些實施方式中,可以用諸如enum等數(shù)據(jù)結(jié)構(gòu)指示可用塊和子塊大小。例如,描述了一組可用塊大小的enum數(shù)據(jù)結(jié)構(gòu)或者類型可以如下文由表達(dá)式1表示:

      typedef enum BLOCK_SIZE{

      4×4,

      4×8,

      8×4,

      8×8,

      8×16,

      16×8,

      16×16,

      16×32,

      32×16,

      32×32,

      32×64,

      64×32,

      64×64

      }BLOCK_SIZE.

      在某些實施方式中,粗略運動估計包括為每個基本塊生成運動信息(諸如,一個或者多個運動矢量)和預(yù)測誤差(或殘差)信息。在某些實施方式中,粗略運動估計可以包括生成全像素分辨率的運動和預(yù)測誤差信息??梢园凑展鈻艗呙璐涡蜥槍Ξ?dāng)前視頻幀的當(dāng)前N×N塊的每個K×K基本塊執(zhí)行粗略運動估計。在某些實施方式中,粗略運動估計可以包括執(zhí)行運動搜索以從在一個或者多個參考幀中的搜索區(qū)域發(fā)現(xiàn)最優(yōu)匹配塊。可以使用來自相鄰塊或者子塊的運動矢量來識別搜索區(qū)域,以便針對當(dāng)前塊執(zhí)行粗略運動估計。在某些實施方式中,粗略運動估計可以包括通過使用諸如中心偏置十六進制搜索或者菱形模式搜索等搜索方法,針對當(dāng)前編碼單位(其可以是K×K基本塊)執(zhí)行全像素運動搜索。粗略運動估計也可以包括比全像素運動搜索更精細(xì)的搜索。在某些實施方式中,預(yù)測誤差信息是由運動信息指示的在當(dāng)前塊與在參考幀中的參考塊之間的差的衡量(諸如,絕對值差和(SAD)或者差方和(SSD))。在810中的粗略運動估計可以可選地包括存儲當(dāng)前幀的當(dāng)前塊的每個基本塊的運動信息和預(yù)測誤差信息。

      在某些實施方式中,在820中,可以對當(dāng)前塊進行分割。在某些實施方式中,對當(dāng)前塊進行分割包括生成分割決策樹,諸如,圖7所示的分割決策樹700。

      在某些實施方式中,可以用數(shù)據(jù)結(jié)構(gòu)(諸如,struct)表示節(jié)點。在某些實施方式中,將有關(guān)節(jié)點的節(jié)點信息包括在節(jié)點的數(shù)據(jù)結(jié)構(gòu)中。例如,節(jié)點信息可以包括節(jié)點的分割大小(BlockSize),該分割大小可以是來自表達(dá)式1中所示的數(shù)據(jù)結(jié)構(gòu)的值。在某些實施方式中,節(jié)點信息包括運動信息,諸如,在810中生成的運動信息。例如,節(jié)點信息包括運動矢量的x、水平、或者行分量(MV_Row),運動矢量的y、垂直、或者列分量(MV_Col),或者兩者。在另一示例中,節(jié)點信息包括由節(jié)點表示的分割的預(yù)測誤差信息(PredErr),其可以是SAD或者SSD。在某些實施方式中,節(jié)點信息包括指示是否對由節(jié)點表示的分割進行分割的分割信息(PatitionDecision)。在某些實施方式中,表示基本塊大小分割的葉節(jié)點的分割信息指示未對節(jié)點進行分割(NON-SPLIT)。在某些實施方式中,節(jié)點信息包括將節(jié)點與另一節(jié)點(諸如,子節(jié)點)相關(guān)聯(lián)的信息。例如,節(jié)點信息可以包括子節(jié)點數(shù)據(jù)結(jié)構(gòu)(ChildNodes[]),該子節(jié)點數(shù)據(jù)結(jié)構(gòu)包括對表示子節(jié)點的數(shù)據(jù)接口的參考或者到該數(shù)據(jù)結(jié)構(gòu)的指針。描述了節(jié)點的節(jié)點信息(node_info)struct數(shù)據(jù)結(jié)構(gòu)可以由表達(dá)式2表示:

      struct node_info{

      BLOCK_SIZE BlockSize;

      short MV_Row;

      short MV_Col;

      uint64_t PredErr;

      DECISION_TYPE PartitionDecision;

      struct node_info*ChildNodes[4];

      }。

      在某些實施方式中,分割信息(PartitionDecision)可以由數(shù)據(jù)結(jié)構(gòu)表示。例如,分割信息enum數(shù)據(jù)結(jié)構(gòu)或者類型可以由表達(dá)式3表示:

      typedef enum DECISION_TYPE{

      NONSPLIT,

      SPLIT

      }DECISION_TYPE。

      在某些實施方式中,生成分割決策樹包括遍歷分割決策樹。例如,可以按照遍歷次序(諸如,后序深度優(yōu)先遍歷次序)遍歷分割決策樹。按照后序深度優(yōu)先遍歷次序,在相應(yīng)父節(jié)點之前,可以從表示基本塊分割的葉節(jié)點開始,對每個子節(jié)點進行評估。例如,參照圖7,可以在節(jié)點720A之前對節(jié)點730A-D進行評估,并且可以在節(jié)點710之前對節(jié)點720A-D進行評估。

      在某些實施方式中,遍歷分割決策樹包括對每個節(jié)點的分割準(zhǔn)則進行評估。例如,分割準(zhǔn)則可以包括允許較大分割準(zhǔn)則、有效預(yù)測準(zhǔn)則、運動相似性準(zhǔn)則、或者其組合。在某些實施方式中,可以針對分割決策樹的每個節(jié)點自下而上地對分割準(zhǔn)則進行遞歸評估。

      在某些實施方式中,對分割準(zhǔn)則進行評估包括對允許較大分割準(zhǔn)則進行評估。對允許較大分割準(zhǔn)則進行評估可以包括確定當(dāng)前節(jié)點的每個子節(jié)點的分割信息(PartitionDecision)是否指示沒有對子節(jié)點進行分割(NON-SPLIT)。每個子節(jié)點的分割信息可以指示無分割,并且允許較大分割準(zhǔn)則可能為真。例如,節(jié)點可以具有四個子節(jié)點,四個子節(jié)點中的三個的分割信息指示無分割,第四個子節(jié)點的分割信息可以指示分割(SPLIT),并且將允許較大分割準(zhǔn)則評估為假。

      在某些實施方式中,對分割準(zhǔn)則進行評估包括對有效預(yù)測準(zhǔn)則進行評估。對有效預(yù)測準(zhǔn)則進行評估包括確定當(dāng)前節(jié)點的每個子節(jié)點的預(yù)測誤差信息(PredErr)是否在相應(yīng)分割級的預(yù)測誤差閾值(T_err_level_i)內(nèi)。例如,級i-1節(jié)點可以具有四個級i子節(jié)點,四個子節(jié)點中的三個的預(yù)測誤差信息可以在級i的預(yù)測誤差閾值內(nèi),第四個子節(jié)點的分割信息可以超過級i的預(yù)測誤差閾值,并且將有效預(yù)測準(zhǔn)則評估為假。

      在某些實施方式中,對分割準(zhǔn)則進行評估包括對運動相似性準(zhǔn)則進行評估。對運動相似性準(zhǔn)則進行評估可以包括確定當(dāng)前節(jié)點的每個子節(jié)點的運動差是否在相應(yīng)分割級的運動相似性閾值或者全像素運動矢量閾值(T_mv_level_i)內(nèi)。

      子節(jié)點的運動差可以是在子節(jié)點的行運動矢量分量(MV_Row)與子節(jié)點的平均行運動矢量分量(AVG_MV_Row)之間的差的絕對值,并且可以由表達(dá)式4表示:

      |MV_Row-AVG_MV_Row|<T_mv_level_i.

      在其它實施方式中,子節(jié)點的運動差是在子節(jié)點的列運動矢量分量(MV_Col)與子節(jié)點的平均列運動矢量分量(AVG_MV_Col)之間的差的絕對值,并且可以由表達(dá)式5表示:

      |MV_Col-AVG_MV_Col|<T_mv_level_i.

      在某些實施方式中,確定當(dāng)前節(jié)點的每個子節(jié)點的運動差是否在運動相似性閾值內(nèi)包括:確定行運動差是否在閾值內(nèi),確定列運動差是否在閾值內(nèi),或者確定行運動差和列運動差兩者是否在閾值內(nèi)。例如,級i-1節(jié)點可以具有四個級i子節(jié)點,四個子節(jié)點中的三個的行運動矢量分量和列運動矢量分量可以在級i的運動相似性閾值內(nèi),第四個子節(jié)點的行運動矢量分量可以在級i的運動相似性閾值內(nèi),第四個子節(jié)點的列運動矢量分量可以超過級i的運動相似性閾值,并且將運動相似性準(zhǔn)則評估為假。

      遍歷分割決策樹可以包括基于對分割準(zhǔn)則的評估來填充或者更新當(dāng)前節(jié)點的節(jié)點信息。例如,分割準(zhǔn)則中的每一個可以評估為真,這指示包括在每一個子分割中的內(nèi)容與由視頻流捕捉到的移動對象的相鄰部分對應(yīng)的高可能性,并且可以將由子節(jié)點表示的分割合并,從而使由當(dāng)前節(jié)點表示的分割大小成為分割決策樹的相應(yīng)分支的最小分割大小。在某些實施方式中,填充或者更新當(dāng)前節(jié)點的節(jié)點信息包括指示當(dāng)前節(jié)點的塊大小(BlockSize)信息、行運動分量(MV_Row)信息、列運動分量(MV_Col)信息、預(yù)測誤差(PredErr)信息、分割(PatitionDecision)信息、或者其組合。

      例如,處于級i-1的當(dāng)前節(jié)點具有四個處于級I的子節(jié)點,分割準(zhǔn)則評估為真,當(dāng)前節(jié)點的塊大小(BlockSize)信息設(shè)定為(N/2i-1)×(N/2i-1),當(dāng)前節(jié)點的行運動分量(MV_Row)信息設(shè)定為子節(jié)點的平均行運動矢量分量(AVG_MV_Row),當(dāng)前節(jié)點的列運動分量(MV_Col)信息設(shè)定為子節(jié)點的平均列運動矢量分量(AVG_MV_Row),當(dāng)前節(jié)點的預(yù)測誤差(PredErr)信息設(shè)定為子節(jié)點的預(yù)測誤差信息的和或者平均值,并且當(dāng)前節(jié)點的分割(PatitionDecision)信息設(shè)定為指示未對當(dāng)前節(jié)點進行分割(NON-SPLIT)。

      在另一示例中,分割準(zhǔn)則中的一個或者多個評估為假,塊大小(BlockSize)信息設(shè)定為(N/2i-1)×(N/2i-1),當(dāng)前節(jié)點的行運動分量(MV_Row)信息設(shè)定為無效值或者假值(INVALID),當(dāng)前節(jié)點的列運動分量(MV_Col)信息設(shè)定為無效值或者假值,當(dāng)前節(jié)點的預(yù)測誤差(PredErr)信息設(shè)定為無效值或者假值,并且當(dāng)前節(jié)點的分割(PatitionDecision)信息設(shè)定為指示對當(dāng)前節(jié)點進行分割(SPLIT)。

      在某些實施方式中,遍歷分割決策樹包括修剪分割決策樹。修剪分割決策樹包括確定當(dāng)前節(jié)點的分割信息是否指示未對當(dāng)前節(jié)點進行分割(NON-SPLIT),以及從分割決策樹移除自當(dāng)前節(jié)點下降的任何節(jié)點。在遍歷分割決策樹之后,可以從根節(jié)點到頁節(jié)點自上而下地執(zhí)行修剪分割決策樹。在某些實施方式中,修剪過的分割決策樹可以指示當(dāng)前塊的選擇的分割方案,該選擇的分割方案可以是最優(yōu)分割方案。

      在830中執(zhí)行精細(xì)運動估計。例如,精細(xì)運動估計可以包括子像素運動估計,諸如,子像素運動搜索,該子像素運動搜索可以識別在選擇的分割方案中的每個分割的高精度匹配塊。在某些實施方式中,對當(dāng)前塊的子像素運動搜索包括對當(dāng)前塊的選擇的分割方案進行深度優(yōu)先遍歷??梢园凑展鈻艗呙璐涡驁?zhí)行對兄弟節(jié)點(其可以是具有共同級i-l父節(jié)點的級i節(jié)點)的子像素運動估計,從而可以在當(dāng)前分割之前對在當(dāng)前分割之上或者左邊的塊進行搜索。例如,參照圖7所示的分割決策樹700,根節(jié)點710表示64×64分割,中間節(jié)點720A表示在64×64分割的左上角的32×32分割,葉節(jié)點730A表示在32×32分割的左上角的16×16分割,葉節(jié)點730B表示在32×32分割的右上角的16×16分割,葉節(jié)點730C表示在32×32分割的左下角的16×16分割,葉節(jié)點730D表示在32×32分割的右下角的16×16分割,并且在由葉節(jié)點730A表示的分割執(zhí)行子像素運動估計之后,對由葉節(jié)點730B表示的分割執(zhí)行子像素運動估計,之后對由葉節(jié)點730C表示的分割執(zhí)行子像素運動估計,之后對由葉節(jié)點730D表示的分割執(zhí)行子像素運動估計。

      在某些實施方式中,對當(dāng)前分割的子像素運動估計包括:處理表示當(dāng)前分割的節(jié)點的節(jié)點信息,基于節(jié)點信息來使在參考幀中像素運動搜索網(wǎng)格居中,以及識別參考幀的與當(dāng)前分割最佳匹配的部分。使子像素運動搜索網(wǎng)格居中可以包括基于分割的全像素運動信息(MV_Row、MV_Col)來使子像素運動搜索網(wǎng)格居中。在某些實施方式中,子像素運動搜索可以在1/2、1/4或者1/8像素精度,在分割與參考幀的部分之間找到最接近匹配。

      精細(xì)運動估計可以包括識別當(dāng)前分割的選擇的預(yù)測模式。例如,可以從一個或者多個候選幀內(nèi)預(yù)測模式、一個或者多個候選幀間預(yù)測模式、或者幀內(nèi)預(yù)測模式和幀間預(yù)測模式的組合識別選擇的預(yù)測模式。在某些實施方式中,識別選擇的預(yù)測模式包括為候選預(yù)測模式中的一種或者多種生成預(yù)測模式測度。例如,預(yù)測模式測度可以是速率失真(RD)誤差測度,并且具有最低RD誤差的預(yù)測模式是選擇的預(yù)測模式。在某些實施方式中,識別選擇的預(yù)測模式可以與子像素運動估計并行執(zhí)行。塊的預(yù)測誤差(PredErr)可以低于幀間模式閾值(T_inter_mode)(其可以是較小值)。然后,可以省略幀內(nèi)預(yù)測模式,并且從候選幀間預(yù)測模式識別選擇的預(yù)測模式。

      本文所公開的運動補償分割的方面可以使視頻流的實時編碼加速,并且特別適合于在移動設(shè)備上的視頻會議應(yīng)用的實時編碼。

      運動補償分割的其它實施方式也是可用的。在這種實施方式中,可以添加運動補償分割的附加元素,可以將某些元素組合在一起,并且/或者可以移除某些元素。例如,可以在執(zhí)行粗略運動估計之前生成分割決策樹,或者修剪分割決策樹可以獨立于生成分割預(yù)測樹執(zhí)行。

      圖9和圖10示出了分割決策樹和按照光柵掃描次序?qū)εc分割決策樹對應(yīng)的分割塊進行的處理的示例。如圖所示,編碼塊大小是64×64(N=64),并且基本塊大小是8×8(K=8)。

      圖9是根據(jù)本公開的實施方式的針對塊的修剪過的分割決策樹900的示例的示意圖。如圖所示,修剪過的分割決策樹900包括N×N(N=64)根節(jié)點910。根節(jié)點910的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且根節(jié)點910包括四個級1 32×32中間節(jié)點920。第一級1中間節(jié)點920A的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且第一級1中間節(jié)點920A包括四個級2 16×16中間節(jié)點930A-D。第二和第三級1中間節(jié)點920B-C的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT)。第四級1中間節(jié)點920D的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且第四級1中間節(jié)點920D包括四個級2 16×16中間節(jié)點930E-H。第一、第二和第三級2中間節(jié)點930A-C的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT)。第四級2中間節(jié)點920D的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且第四級2中間節(jié)點920D包括四個級3K×K(K=8)葉節(jié)點940A-D。第五、第六和第七級2中間節(jié)點930E-C的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT)。第八級2中間節(jié)點920H的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且第八級2中間節(jié)點920H包括四個級3K×K(K=8)葉節(jié)點940E-H。級3葉節(jié)點940A-H的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT)。

      圖10是根據(jù)本公開的實施方式的按照光柵掃描次序進行分割的塊的示例的示意圖。可以按照從左到右和從上到下的光柵掃描次序來處理分割方案。如圖10所示,對可以由圖9所示的根節(jié)點910表示的64×64分割1010進行處理。

      可以是編碼單位分割的分割1010的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且對分割1010進行處理包括例如按照光柵掃描次序?qū)υ诋?dāng)前分割內(nèi)的每個子節(jié)點1020進行處理。例如,可以首先對可以與第一級1中間節(jié)點920A對應(yīng)的在左上角的32×32分割進行處理。

      在左上角的32×32分割的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且對分割1020進行處理包括例如按照光柵掃描次序?qū)υ诜指?020內(nèi)的每個子節(jié)點1030進行處理。例如,可以首先對可以與第一級2中間節(jié)點930A對應(yīng)的在左上角的16×16分割1030進行處理。

      在左上角的16×16分割1030的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置1中完成對分割進行處理。可以與第二級2中間節(jié)點930B對應(yīng)的在右上角的16×16分割1030的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置2中完成對分割進行處理??梢耘c第三級2中間節(jié)點930C對應(yīng)的在左下角的16×16分割1030的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置3中完成對分割進行處理。可以與第四級2中間節(jié)點930D對應(yīng)的在右下角的16×16分割1030的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且對分割1030進行處理包括按照光柵掃描次序?qū)υ诜指?030內(nèi)的每個子分割1040進行處理。例如,可以首先對可以與第一級3中間節(jié)點940A對應(yīng)的在左上角的8×8分割1040進行處理。

      在左上角的8×8分割1040的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置4中完成對分割進行處理??梢耘c第二級3中間節(jié)點940B對應(yīng)的在右上角的8×8分割1030的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置5中完成對分割進行處理??梢耘c第三級3中間節(jié)點930C對應(yīng)的在左下角的8×8分割1040的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置6中完成對分割進行處理??梢耘c第四級3中間節(jié)點930D對應(yīng)的在右下角的8×8分割1040的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置7中完成對分割進行處理。

      可以與第二級1中間節(jié)點920B對應(yīng)的在右上角的32×32分割的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置8中完成對分割進行處理。

      可以與第三級1中間節(jié)點920C對應(yīng)的在左下角的32×32分割的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置9中完成對分割進行處理。

      可以與第四級1中間節(jié)點920D對應(yīng)的在右下角的32×32分割的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且對分割1020進行處理包括按照光柵掃描次序?qū)υ诜指?020內(nèi)的每個子分割進行處理。例如,可以首先對可以與第五級2中間節(jié)點930E對應(yīng)的在左上角的16×16分割1030進行處理。

      在左上角的16×16分割1030的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置10中完成對分割進行處理??梢耘c第六級2中間節(jié)點930F對應(yīng)的在右上角的16×16分割1030的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置11中完成對分割進行處理??梢耘c第七級2中間節(jié)點930G對應(yīng)的在左下角的16×16分割1030的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置12中完成對分割進行處理??梢耘c第八級2中間節(jié)點930H對應(yīng)的在右下角的16×16分割1030的節(jié)點信息可以包括指示分割的分割信息(SPLIT),并且對分割1030進行處理包括按照光柵掃描次序?qū)υ诜指?030內(nèi)的每個子分割1040進行處理。例如,首先對可以與第五級3中間節(jié)點940E對應(yīng)的在左上角的8×8分割1040進行處理。

      在左上角的8×8分割1040的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置13中完成對分割進行處理??梢耘c第六級3中間節(jié)點940F對應(yīng)的在右上角的8×8分割1040的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置14中完成對分割進行處理??梢耘c第七級3中間節(jié)點930G對應(yīng)的在左下角的8×8分割1040的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置15中完成對分割進行處理。可以與第八級3中間節(jié)點940H對應(yīng)的在右下角的8×8分割1040的節(jié)點信息可以包括指示無分割的分割信息(NON-SPLIT),并且在光柵掃描次序位置16中完成對分割進行處理。

      本文所使用的詞語“示例”意謂充當(dāng)示例、實例或者圖示。本文作為“示例”描述的任何方面或者設(shè)計不一定需要理解為比其它方面或者設(shè)計優(yōu)選或者有益。相反,詞語“示例”的使用旨在具體地呈現(xiàn)構(gòu)思。如在本應(yīng)用中所使用的,術(shù)語“或者”是指包容性的“或者”而不是排斥性的“或者”。即,除非另外規(guī)定,否則從上下文可以清楚,“X包括A或者B”是指任何自然的包容性排列。即,如果X包括A、X包括B、或者X包括A和B,那么在前面的任何實例下都滿足“X包括A或者B”。此外,在本申請和隨附權(quán)利要求書中所使用的冠詞“一”和“一個”應(yīng)該被一般地解釋為意味著“一個或者多個”,除非另有規(guī)定或者從上下文中明確得知其指的是單數(shù)形式。此外,貫穿上下文的術(shù)語“實施例”或者“一個實施例”或者“實施方式”或者“一種實施方式”并不意謂相同的實施例或者具體實施方式,除非如此描述。如本文所使用的,術(shù)語“確定”和“識別”、或者其任何變型包括通過使用圖1所示的設(shè)備中的一個或者多個進行的選擇、查明、計算、查找、接收、確定、建立、獲得、或者另外以任何方式進行識別或者確定。

      進一步地,為了說明的簡單性,雖然本文所描述的附圖和描述可以包括步驟或者階段的序列或系列,但是本文所公開的方法的元素可以按照各種次序和/或并行地發(fā)生。另外,本文所公開的方法的元素可以與本文未明確呈現(xiàn)和描述的其它元素一起發(fā)生。此外,并不是需要本文所描述的方法的所有元素來實施根據(jù)所公開的主題的方法。

      站100A、100B和/或100C(和存儲在其上并且/或者由其執(zhí)行的算法、方法、指令等)的實施方式可以用硬件、軟件、或者其任何組合來實現(xiàn)。硬件可以包括例如計算機、知識產(chǎn)權(quán)(IP)核心、專用集成電路(ASIC)、可編程邏輯陣列、光學(xué)處理器、可編程邏輯控制器、微代碼、微控制器、服務(wù)器、微處理器、數(shù)字信號處理器或者任何其它合適的電路。在權(quán)利要求書中,應(yīng)該將術(shù)語“處理器”理解為單獨地或者以結(jié)合的方式涵蓋前述硬件中的任何一種。術(shù)語“信號”和“數(shù)據(jù)”可互換使用。進一步地,站100A、100B和/或100C的部分不一定必須用相同的方式來實施。

      進一步地,在一種實施方式中,例如,站100A、100B和/或100C可以通過使用具有計算機程序的通用計算機或者通用處理器來實施,該計算機程序在被執(zhí)行時執(zhí)行本文所描述的相應(yīng)方法、算法和/或指令中的任何一種。另外或者替選地,例如,可以利用專用計算機/處理器,該專用計算機/處理器可以包含用于執(zhí)行本文所描述的相應(yīng)方法、算法和/或指令中的任何一種的專用硬件。

      站100A、100B和/或100C可以例如被實現(xiàn)在實時視頻系統(tǒng)中的計算機上。替選地,一個站(諸如,站100A)可以是實施在服務(wù)器上的發(fā)送站,且其余站(諸如,站100B、100C)可以是實施在與服務(wù)器分開的設(shè)備(諸如,手持式通信設(shè)備)上的接收站。在這種情況下,發(fā)送站100A可以通過使用編碼器400來將內(nèi)容編碼為編碼視頻信號,并且將該編碼視頻信號發(fā)送至通信設(shè)備。相反,通信設(shè)備然后可以通過使用解碼器500來對編碼視頻信號進行解碼。替選地,通信設(shè)備可以對本地存儲在通信設(shè)備上的內(nèi)容(例如,未由發(fā)送站100A發(fā)送的內(nèi)容)進行解碼。其它合適的發(fā)送站100A和接收站100B、100C實施方案也是可用的。例如,接收站100B或者100C通??梢砸话愕厥枪潭ǖ膫€人計算機,而不是便攜式通信設(shè)備,并且/或者包括編碼器400的設(shè)備也可以包括解碼器500。

      進一步地,實施方式中的全部或者部分可以采取可由例如有形計算機可用或者計算機可讀介質(zhì)訪問的計算機程序產(chǎn)品的形式。計算機可用或者計算機可讀介質(zhì)可以是能夠例如有形地包含、存儲、傳遞或者傳送由任何處理器使用或者與該處理器結(jié)合使用的程序的任何設(shè)備。介質(zhì)可以是例如電子、磁、光學(xué)、電磁、或者半導(dǎo)體設(shè)備。其它合適的介質(zhì)也是可用的。

      為了允許容易地理解本申請而已經(jīng)描述的上述實施方式并不是限制性的。相反,本申請涵蓋包括在隨附權(quán)利要求書的范圍內(nèi)的各種修改和等效布置,該權(quán)利要求書的范圍按照最廣義解釋以在法律允許的情況下涵蓋所有此類修改和等效結(jié)構(gòu)。

      當(dāng)前第1頁1 2 3 
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1