背景技術:
視頻編碼器壓縮視頻信息以便更多的信息能夠在給定的帶寬上發送或以給定的文件大小存儲。被壓縮的信號或文件可以被發射到接收機或對用于向用戶播放的信號或文件進行解碼或解壓縮的視頻解碼器。這樣的視頻編碼-解碼器系統可以跟隨格式或標準。例如,由iso/iec運動圖像專家組(mpeg,movingpictureexpertgroup)和itu-t視頻編碼專家組(vceg,videocodingexpertgroup)共同提出的高效視頻編碼(hevc,highefficiencyvideocoding)就是一種這樣的視頻編碼標準。與之前的視頻編碼標準相同,hevc包括諸如幀內/幀間預測、變換、量化、環內濾波和熵編碼的基本功能模塊。hevc定義了劃分為編碼單元(codingunit)的用于圖像的編碼樹單元(ctu,codingtreeunit),所述cu采用具有可變大小的矩形塊的形式。在每個lcu中,基于四叉樹的劃分方案(splittingscheme)規定cu劃分模式。hecv還定義了規定為了預測和變換的目的給定的cu如何分別被劃分的預測單元(pu,predictionunit)和變換單元(tu,transformunit)。cu通常包括一個亮度編碼塊(cb,codingblock)和兩個飽和度cb以及相關語法,并且pu進一步被劃分為范圍大小從64×64樣本到4×4樣本的預測塊(pb,predictionblock)。在幀內或幀間預測后,對剩余塊使用變換操作以生成系數。系數隨后被量化、掃描為一維順序,并且最終被熵編碼以便生成hevc兼容比特流。
hevc和其他新的編碼工具引入以相較于之前的標準非常高的計算復雜度來提高壓縮的幀內預測技術。例如,hevc編碼器使用35種幀內預測模式(例如,平面模式、dc模式和33種角模式),其可以為每個編碼單元和/或變換單元(例如,依靠hevc模式)來規定。在某些hevc實施方式中,編碼器可以執行在幾個階段用于編碼單元(和變換單元)的幀內預測模式決定以降低計算復雜度。例如,在開始階段,所有的35種幀內預測模式可以被估算,并且最佳模式的選擇數量包括在用于精度增加的后續估算的候選列表中,直到確定用于編碼單元的最佳模式。同樣地,如所述,這樣的編碼單元可以劃分為變換單元。在估算的隨后階段,該編碼器會估算每個后續幀內預測模式,而不僅僅是以更高的精度,還要用于編碼單元的許多后續劃分(例如,編碼單元可以很多方式劃分,并且每個都可以被估算以確定用于編碼所述編碼單元的最終的最佳的幀內預測模式)。
這樣的多個階段的技術可以提供有效性,但計算復雜度還是高。這樣,現有技術不能提供降低的計算復雜度,而保持壓縮效率。隨著對壓縮高質量視頻的需求變得更廣泛,這樣的問題變得重要。
附圖說明
通過示例,而不是通過附圖的限制來顯示這里描述的材料。為了闡述的簡明和清晰,在圖中所示的元件不必按照尺寸來繪制。例如,為了清晰,某些元件的尺寸相對于其他元件被放大。進一步,在考慮適當的地方,圖中重復的參考標簽指示相應或相似的元件。在圖中:
圖1為顯示了提供候選幀內預測模式的示例過程的流程圖;
圖2為顯示了包括示例可用幀內預測角模式的幀內預測角模式的圖;
圖3為顯示了包括可用幀內預測角模式的示例子集的幀內預測角模式的圖;
圖4為顯示了包括示例被選的幀內預測角模式的幀內角模式的圖;
圖5為顯示了包括示例被選的幀內預測角模式和示例相鄰幀內預測角模式的幀內預測角模式的圖;
圖6為顯示了包括示例候選幀內預測角模式的幀內預測角模式的圖;
圖7顯示了示例編碼器的框圖;
圖8顯示了示例幀內預測模式預選擇模塊的框圖;
圖9顯示了示例編碼后比特流;
圖10為顯示了用于視頻編碼的示例過程的流程圖;
圖11為用于視頻編碼的示例系統的展示圖;
圖12為示例系統的展示圖;和
圖13顯示了完全與本發明的至少某些實施方式一致配置的示例設備。
具體實施方式
現在參考附圖來描述一個或多個實施例或實施方式。當討論特定的配置和安排時,應當知道這僅僅是為了展示的目的。相關領域技術人員會意識到在不脫離說明書精神和范圍的情況下可以使用其他配置和安排。這里描述的技術和/或安排還可以應用在除了這里描述的各種其他系統和應用中,這對于本領域技術人員來說是顯而易見的。
當以下說明闡述了在諸如片上系統(soc)的結構中顯示各種實施方式時,這里描述的技術和/或配置的實施方式不應限制為特定結構和/或計算系統,并且可以由用于類似目的的其任何結構和/或計算系統來實施。例如,使用多個集成電路(ic)芯片和/或軟件包、和/或不同計算設備和/或諸如機頂盒、智能電話等的消費電子(ce,consumerelectronic)設備的不同結構可以執行這里所述的技術和/或安排。進一步,當下文闡述許多諸如邏輯實施方式、系統組件的類型和內部關系、邏輯劃分/集成時機的特定細節時,可以實現所要求保護的主題,而不需要這些特定細節。在其他例子中,諸如控制結構和全部軟件指令序列的某些材料不會詳細展示,以免模糊這里公開的材料。
這里公開的材料可以硬件、固件、軟件或其中的任意組合來實現。這里公開的材料還可以執行為在機器可讀介質上實施,其可以由一個或多個處理器讀取和執行。機器可讀介質包括用于以機器(例如,計算設備)可讀形式的存儲或發送信息的任何介質和/或機制。例如,機器可讀介質包括只讀存儲器(rom)、隨機接入存儲器(ram)、磁盤存儲介質、光存儲介質、閃存設備、以電、光、聲或其他形式的傳播信號(例如,載波、紅外信號、數字信號等)及其他。
在說明書中的參考“一個實施方式”、“某實施方式”、“示例實施方式”等指示所述實施方式包括特定特征、結構或特性,但是不一定每個實施例都要包含該特定特征、結構或特性。而且,這些短語也不一定指同一個實施方式。而且,當結合實施例描述特定特征、結構或特性時,提出這是在本領域技術人員的知識范圍內結合其他實施方式影響這樣的特征、結構或特性,不論是否在這里清晰描述。
這里將描述涉及視頻編碼,特別是涉及選擇用于編碼的幀內預測模式的方法、設備、裝置、計算平臺和物品。
如上所述,當前的編碼器以計算復雜度為代價提高壓縮。例如,高效視頻編碼(hevc,highefficiencyvideocoding)標準提供35種幀內預測模式,其中的每個都可以為編碼單元以及編碼單元的不同變換單元劃分來估算。在所有可用編碼單元劃分的這樣的幀內預測的整個估算具有非常高的計算量。這里所述的技術會降低這樣的計算復雜度,而對編碼效率只有很少的降低。在這里所述的某些實施例中,編碼損耗僅被確定用于可用幀內模式的子集。在hevc的示例中,可用幀內預測模式可以包括dc(例如,平滑)模式、平面(例如,曲面擬合)模式和33種角模式。在實施例中,幀內預測模式的子集可以包括dc模式、平面模式、和每第n個角模式(例如,每隔一個角模式、每第三個角模式等)。基于編碼損耗,可選擇最佳的模式的數量(例如,3種、4種或8種模式或類似)。對于被選中的角模式,為被選中的角模式相鄰模式確定編碼損耗。在實施例中,被選中的角模式的直接相鄰的兩個角模式可以被估算。基于所有確定的編碼損耗(例如,對于子集和相鄰模式),可以更新最佳的模式。最佳模式候選的第二或最終列表用于進一步目的。
例如,所述編碼損耗(encodingcosts)以相對低的精度來確定以節約計算損耗(computationalcosts)。例如,基于將當前編碼單元的原始像素數據(例如,當前幀的原始像素)與幀內預測模式有關的合適參考編碼單元的預測像素數據進行比較來確定的編碼損耗選擇候選的最佳模式。并且,這樣的節約計算損耗的編碼損耗決定不會考慮將編碼單元劃分為更小的變換單元的可用劃分。
最佳模式候選列表進一步如討論的那樣處理,包括經由全速率失真優化算法(例如,執行全部預測以確定剩余、變換、量化,和比特流編碼以確定用于所述候選的比特數量,和反量化、反變換和失真計算以便可以估算全部比特損耗和失真)以更高的精度估算所述候選的編碼損耗。而且,這樣的編碼損耗估算可以包括估算編碼單元的所有潛在劃分,其隨后考慮所有的最佳模式候選和編碼單元劃分候選。這樣的處理可以被用于為編碼單元選擇編碼模式(例如,假如僅一種模式正用于編碼單元)或多種模式(假如,多種模式正用于編碼單元)。這樣的處理計算量很大,但是從所有可用的候選到最佳模式候選列表的候選的減少本質上會降低處理時間,同時僅僅導致壓縮效率的微不足道的損失。
圖1為顯示與本發明的至少某些實施方式一致配置的提供候選幀內預測模式的示例過程100的流程圖。過程100包括在圖1中所示的一個或多個操作101-108。過程100由設備(例如,這里所述編碼器700)執行以確定候選幀內預測模式,其進一步被估算以確定用于對視頻幀的編碼單元進行編碼的幀內預測編碼模式。過程100可以編碼單元水平來執行,并且過程100可以重復任意數量的編碼單元。
例如,在高效編碼視頻(hevc)的上下文中,hevc標準定義了隨后被劃分為采用具有可變大小的矩形塊形式的編碼單元(cu)的圖片(例如,視頻序列的視頻幀)的編碼樹單元(ctu)。在每個ctu中,基于四叉樹的劃分方案規定了cu劃分方式。hevc還定義了預測單元(pu)和變換單元(tu),其規定了為了預測和變換的目的如何分別劃分給定的cu。cu通常包括一個亮度編碼塊(cb)和兩個飽和度cb以及相關語法,并且pu進一步分為范圍從64×64樣本到4×4樣本的預測塊(pb)。在幀內或幀間預測之后,變換操作應用到剩余塊以生成系數。這些系數隨后被量化、掃描為一維順序,并且最終熵編碼以生成hevc兼容比特流。
盡管這里對hevc進行了討論,上述技術可以用于任何合適的視頻編碼系統或標準等的上下文。例如,如這里所用,術語編碼單元意味著包括可使用幀內預測技術進行預測的圖片或視頻幀的任何片段。這樣的片段可以描述為單元、塊等,并且這樣的片段可以是正方形、矩形、或任何其他合適的形狀。并且,上述技術可以應用到亮度(luma)單元和/或飽和度(chroma)單元。
如圖1所示,過程100可在操作101,“估算幀內dc模式損耗”;操作102,“估算幀內平面模式損耗”;和操作103,“估算每n個幀內角模式損耗”開始。這些操作可以任何順序或并行執行。例如,在操作101,幀內預測dc模式的編碼損耗由編碼單元確定。幀內預測dc模式包括基于具有與當前編碼單元的邊緣樣本的均值匹配的平滑表面的預測。在操作102,幀內預測模式的編碼損耗由編碼單元確定。例如,幀內預測平面模式包括基于具有由當前編碼單元的邊緣樣本確定的水平和垂直斜率的假定振幅表面的預測。在操作103,確定可用幀內預測角模式子集的編碼損耗。
可以使用任何合適的技術來確定在操作101、102、103確定的編碼損耗。在某些示例中,確定編碼損耗要排除這里所述的編碼單元的潛在劃分,以節約計算復雜度。在實施例中,確定編碼損耗包括所述編碼單元的原始視頻幀像素與幀內預測模式(例如,針對每個幀內預測模式)相關的編碼單元的預測像素之間的比較。例如,確定幀內預測角模式的編碼損耗包括編碼單元的原始視頻幀像素(例如,諸如亮度數據的像素數據)與被估算的角模式有關的編碼單元的預測像素之間的比較。并且,確定幀內預測dc或平面模式的編碼損耗包括所述編碼單元的原始像素(例如,諸如亮度數據的像素數據)分別與dc或平面模式有關的近似像素數據之間的比較。這樣的編碼損耗估算技術提供相對低的計算損耗,其對于幀內預測模式的早期處理和估算非常有效。
如所述,在操作103,僅確定可用幀內預測角模式的編碼消耗。例如,在hevc編碼中,33種幀內預測角模式可對編碼是可用的。
圖2為顯示與本發明的至少某些實施方式一致配置的包括示例可用幀內預測角模式的幀內預測角模式200的圖。如圖2所示,視頻編碼結構或標準可以提供可用的幀內預測角模式201(僅一種模式為了清楚的目的被標記),以模式2-34為標引。例如,在本文中,模式0為平面模式,模式1為dc模式。可用幀內預測角模式201與諸如之前被解碼的編碼單元的預測方向相關,并且參考當前編碼單元的左邊用于對當前編碼單元進行解碼。這樣的預測方向可以參考之前解碼的像素數據或基于這樣之前解碼的像素數據的內插像素數據。如所述,圖2顯示了示例可用幀內預測角模式201。
圖3為顯示了與本發明的至少某些實施方式一致配置的包括可用幀內預測角模式的示例子集的幀內預測角模式300的圖。如圖3所示,確定可用角編碼模式的子集301。例如,包括由實線表示的角模式的子集301(例如,模式2、4、6、8、10、12、14、16、18、20、22、24、26、28、30、32和34)可以被估算以估計與上述操作103有關的編碼損耗。同樣如圖3所示,包括使用虛線表示的角模式的剩余子集302可以是可用角編碼模式,而不是當前用于編碼損耗估算的那些。
如圖3所示,在示例中,每隔一個(例如,每第二個;n=2)可用角編碼模式包含在子集301中,然而,任何合適數量的可用角編碼模式可以包括在子集301中。在其他示例中,每第三個(例如,n=3)、每第四個(例如,n=4)、每第五個(n=5)或每第六個(n=6)模式可以被包括。并且,在展示的示例中,子集301在可用的角編碼模式中平均分布。在其他示例中,可以建立跳過模式,以便子集301包括在可用角編碼模式的不同區域(例如,角模式18左邊、上邊或朝向角模式18)集中的角模式。并且,在某些示例中,基于編碼的模式(例如,低的、中間的、高的質量以便給子集301的更多角模式提供更高質量)、幀復雜度(例如,更高復雜度可以給子集301提供更多角模式)、或當前編碼單元的大小或復雜度(例如,更大和/或更多復雜編碼單元可以提供子集301中更多角模式)等來改變子集301的數量或方式。在其他示例中,子集301的數量或方式可以被預確定。
回到圖1,過程100繼續于操作104,“選擇最佳的k個模式”,其中基于經由操作101、102、103確定的編碼損耗來確定候選幀內預測模式的數量。例如,最佳k模式可以選擇為具有最低編碼損耗的模式。在操作104中可以選擇任意數量的模式,例如2個模式、3個模式、4個模式、8個模式或10個模式等。在某些示例中,基于編碼的模式(例如,低的、中間的、高的質量以便給子集301的更多角模式提供更高質量)、幀復雜度(例如,使得更高復雜度可以給子集301提供更多角模式)、或當前編碼單元的大小或復雜度等改變被選中的模式數量。
圖4為顯示了與本發明的某些實施方式一致配置的包括示例被選中的幀內預測角模式的幀內預測角模式400的圖。如圖4所示,可估算可用角編碼模式的子集301(例如,實線所示),并且可不估算子集302(如虛線所示)或跳過了這樣的模式。并且,圖4顯示了被選中的幀內預測角模式401、402、403(如粗實線所示)。例如,假如在操作104中被選中模式的數量為四個(例如,k=4),并且被選中的模式之一為幀內預測平面模式(例如,模式0),那么圖4顯示了在操作中被選中的剩余三種模式為幀內預測角模式401(例如,模式4)、幀內預測角模式402(例如,模式16)、和幀內預測角模式403(例如,模式22)。盡管顯示了在操作104中選中的四種模式,如所述,可以選中任意合適數量的模式,并且子集302的任意合適數量可提供為被選中的幀內預測角模式。
回到圖1,過程100繼續于決定操作105,“選中至少一種角模式?”,其中在操作104中確定是否選中了至少一種角模式。例如,假如使用兩種最佳的模式(例如,k=2),并且在操作104選擇了幀內預測平面模式和幀內預測dc模式,那么就沒有角模式被選中。如所示,假如在操作104中沒有選中角模式,那么過程100繼續于操作108,“進入下一個決定階段”,其中基于候選幀內預測模式繼續進行處理,正如這里進一步將討論的。
如果在操作104選中至少一個角模式,那么過程100繼續于操作106“估算與選中的角模式相鄰的角模式的損耗”,其中選中的角模式的相鄰角模式的編碼損耗將被確定。使用諸如在有關上述操作101、102、103討論的任何合適的技術來確定在操作106中確定的編碼損耗。
圖5為顯示了與本發明的至少某些實施方式一致配置的包括示例幀內預測角模式和示例相鄰幀內預測角模式的幀內預測角模式500的圖。如圖5所示,被選中的幀內預測角模式401、402、403的一個或多個相鄰角模式在操作104中被估算,例如,幀內預測角模式501、502(例如,被選中幀內預測角模式401的相鄰角模式)、幀內預測角模式503、504(例如,被選中的幀內預測角模式402的相鄰角模式)、和幀內預測角模式505、506(例如,被選中的幀內預測角模式403的相鄰角模式)。
在圖5的示例中,與之前被選中的幀內預測角模式直接相鄰的兩個角模式被估算。在其他示例中,僅估算一個相鄰角模式。例如,估算的相鄰角模式具有一個比之前選擇的幀內預測角模式更大或更小的索引。并且,在之前選擇的模式2或模式34的示例中,僅一個相鄰角模式可用于估算。在其他示例中,估算沒有直接相鄰的角模式。例如,直接相鄰角模式和一個或更多額外擴展的相鄰角模式還可以被估算。例如,當n=3或更大時,這樣的擴展的相鄰角模式可用于估算。(在n=2的示例中,這樣的擴展相鄰角模式已經被估算,請參考圖3)。被估算的相鄰角模式數量的確定(例如,僅一個、兩個直接相鄰的角模式、或直接和擴展的相鄰角模式)可以平衡增加的編碼效率(例如,更大的壓縮率),而不是增加計算損耗(例如,正如估算更多的相鄰角模式一樣)。
回到圖1,處理進行到操作107,“從所有被估算的模式中選擇最佳的k個模式”,其中基于經由操作101、102、103、106確定的編碼損耗來確定候選幀內預測模式的數量。例如,選擇具有最低編碼損耗的那些作為最佳的k個模式。如操作104所述,在操作107選擇任意數量的模式,例如2種模式、3種模式、4種模式、8種模式或10種模式等。在某些示例中,基于編碼的模式(例如,低的、中間的、高的質量以便給子集301的更多角模式提供更高質量)、幀復雜度(例如,使得更高復雜度可以給子集301提供更多角模式)、或當前編碼單元的大小或復雜度(例如,使得更大或更多復雜編碼單元提供更多被選模式)等來改變被選中的模式的數量。如所示,在某些示例中,在操作107中被選中的候選模式的數量與在操作104中被選中的候選模式的數量相同。在其他示例中,在操作107中被選中的候選模式的數量不同于在操作104中被選中的候選模式的數量。
圖6為顯示了與本發明的至少某些實施方式一致配置的包括示例候選幀內預測角模式的幀內預測角模式600的圖。圖6顯示了被選中的候選幀內預測角模式601、602、603、604。例如,圖6顯示了如果在操作107中被選中的模式的數量為四(例如,k=4),之前選中的幀內預測平面模式和幀內預測角模式22在操作中107中沒有被選擇(請參考圖4),并且之前選中的幀內預測角模式4和16以及最新選中的幀內預測角模式5和15在操作107中被選中的結果。盡管顯示了在操作104中選中四種模式,如所述,任意合適數量的模式可以被選中,并且子集302的任意合適數量被提供為在操作107中選中的幀內預測角模式。并且,參考圖4-6討論的選中的、相鄰的和候選的角模式的組合僅僅是為了闡述的目的,并不意味著限制。
返回圖1,處理可以從操作107或從決定操作105在操作108,“進行下一個決定階段”處繼續,其中基于選中的候選幀內預測模式繼續處理。例如,在操作104確定候選最佳模式的第一集合或初步集合,以及在操作107確定候選最佳模式的第二集合或最終集合。這樣的候選最佳模式的第二集合或最終集合提供給其他處理,以便選擇一個或多個編碼模式用于編碼單元。這樣的其他處理包括估算用于候選編碼模式的更精確的編碼損耗和/或用于所述編碼單元的可用劃分的編碼損耗。如所述,其他處理包括全速率失真優化算法,例如,執行所述編碼單元的全預測以便確定剩余、變換、量化;和比特流編碼以便確定候選模式和/或劃分的比特數量;和反量化、反變換和失真算法,以便估算全部比特損耗和失真。如所述,使用消除并精簡可用幀內預測模式到候選幀內預測模式列表的預選擇或預置處理的編碼的計算損耗基本小于估算所有可用幀內預測模式的計算損耗。
圖7顯示了與本發明的至少某些實施方式一致配置的示例編碼器700的方框圖。如所示,編碼器700包括幀內預測模式預選擇模塊702、編碼控制器703、變換和量化模塊704、反量化和變換模塊705、去區塊和濾波模塊706、圖片緩沖器707、幀內預測模塊708、幀間預測模塊709和熵編碼器710。編碼器700包括為了清晰的目的沒有顯示的其他模塊和/或內部連接。
如這里所述,提供預選擇或預置處理以選擇候選幀內預測模式。這樣的預選擇可以使用更低精度的編碼損耗計算,并且不會估算編碼單元的所有可能劃分。同樣如所述,這樣的候選幀內預測模式可以使用更精確(和更大計算復雜度)編碼損耗計算進一步被估算和/或估算編碼單元的所有可能劃分。例如,幀內預測模式預選擇模塊702可生成候選模塊714,其進一步經由編碼控制器703和/或如這里進一步討論的編碼器700的其他模塊來估算。
如圖7所示,編碼器700可接收輸入視頻701。輸入視頻701為任意合適的格式,并且可以經由諸如視頻捕獲的任何合適的技術或經由存儲器等來接收。并且,處理輸入視頻701(未示出)以確定編碼單元、處理單元、變換單元或這里所述其他。如所示,提供輸入視頻701給幀內預測模式預選擇模塊702、編碼控制器703、幀內預測模塊708和幀間預測模塊709。如所示,可以經由開關713進行幀內預測模塊708或幀間預測模塊709的耦合。幀間預測模塊709經由幀間預測技術執行輸入視頻709的圖片或幀的運動估計和/或運動補償。幀內預測模塊708執行輸入視頻701的圖片或幀的幀內預測。如這里進一步所述,提供重建像素716從加法器712到幀內預測模塊708和幀內預測模式預選擇模塊702。例如,重建像素716包括用于當前編碼單元的相鄰區塊或編碼單元的重建像素。例如,來自幀內預測模塊708的幀間預測編碼單元經由區分器711與用于編碼單元的原始像素數據區分,以便生成經由變換和量化模塊704變換和量化的剩余編碼單元,并且隨后經由反量化和變換模塊705進行反變換和反量化,并且經由加法器712添加到幀內預測編碼單元以生成重建像素716。這樣的重建像素716(例如,與當前編碼單元相鄰)用于預測當前編碼大院。幀內預測模式預選擇模塊702生成這里所述的幀內預測候選模式714,并且提供這樣的候選模式作為候選列表等給編碼控制器703。
圖8顯示了與本發明的至少部分實施方式一致配置的示例幀內預測模式預選擇模塊702的方框圖。如圖8所示,幀內預測模式預選擇模塊702包括幀內預測dc模式損耗模塊801、幀內預測平面模式損耗模塊802、幀內預測角模式損耗模塊803、最佳模式選擇模塊805、控制器804。如所示,幀內預測預選擇模塊702接收輸入視頻701或其一部分(例如,僅中輸入視頻的幀內)和相鄰區塊或編碼單元的重建像素716。如所示,相鄰區塊或編碼單元的輸入視頻701(或其一部分,例如幀內)和重建像素716被提供給幀內預測dc模式損耗模塊801,其可以使用這里所述任何技術生成用于編碼單元的幀內預測dc模式編碼(dc損耗)806或輸入視頻701的編碼。例如,幀內預測dc模式損耗模塊801執行關于過程100的上述操作101以生成dc模式編碼損耗806。在實施例中,幀內預測dc模式損耗模塊801基于編碼單元的像素數據與dc預測參考單元的像素數據(例如,基于具有與當前編碼單元的邊緣樣本的均值匹配的值的平滑表面的像素數據)的比較確定dc模式編碼損耗806。并且,輸入視頻701和相鄰區塊或編碼單元的重建像素716提供給幀內預測平面模式損耗模塊802,其可以使用上述任何技術生成用于編碼單元的幀內預測平面模式編碼損耗(平面損耗)807或輸入視頻701的損耗。例如,幀內預測平面模式損耗模塊802執行上述關于過程100的操作102以生成平面模式編碼損耗807。在某實施例中,幀內預測平面模式損耗模塊802基于編碼單元的像素單元與平面預測參考單元的像素數據(例如,基于具有基于當前編碼單元的邊緣樣本確定的水平和垂直斜率的假定振幅表面的像素數據)之間的比較確定平面模式編碼損耗807。
同樣如所示,輸入視頻701和相鄰區塊或編碼單元的重建像素716被提供給幀內預測角模式損耗模塊803,其可以確定上述可用幀內預測模式的子集的編碼損耗以生成幀內預測角模式編碼損耗(角損耗)808。例如,幀內預測角模式損耗模塊803可執行上述關于過程100的操作103以生成角模式編碼損耗808。在某實施例中,基于編碼損耗的像素數據與參考單元的像素數據(例如,基于相關角模式和重建像素716確定的參考編碼單元)的比較來確定角模式編碼損耗808。如所述,在不同示例中,可用角模式子集的大小或形狀(例如,請參考與圖4有關的討論)可以被預確定或其可以基于編碼模式、幀復雜度或編碼單元大小或復雜度等而變化。在這樣的示例中,經由幀內模式預選擇模塊702實施的控制器804來確定子集的大小或形狀,并經由角模式809傳送到幀內預測角模式損耗模塊803,以便角模式809包括列表索引或當前被請求的損耗的角模式的索引。在另一個示例中,由編碼控制器703(請參考圖7)確定子集的大小或形狀,并傳送到幀內預測角模式損耗模塊803和/或控制器804。
如所示,dc模塊編碼損耗806、平面模式編碼損耗807和角模式編碼損耗808可以被提供給最佳模式選擇模塊805。最佳模式選擇模塊805基于接收的損耗確定最佳模式的數量。例如,最佳模式選擇模塊805執行關于過程100所述的操作104以確定包括k個最佳模式的幀內預測模式第一候選列表。如所示,經由第一候選810為控制器804提供第一候選列表。并且,最佳模式選擇模塊805保持(例如,經由存儲器)第一候選810和他們有關的編碼損耗以用于如下文所述的進一步估算。基于第一候選810,控制器804確定用于損耗估算的選中的角模式的一個或多個相鄰角模式。例如,控制器804可以經由幀內預測角模式損耗模塊803確定將被估算的選中的角模式的相鄰角模式。控制器會經由角模式809轉移將被估算的相鄰角模式到幀內預測角模式損耗模塊803。
幀內預測角模式損耗模塊803可以確定用于相鄰角模式的編碼損耗和經由角模式編碼損耗808轉移編碼損耗到最佳模式選擇模塊805。最佳模式選擇模塊805接收用于相鄰角模式的編碼損耗和經由存儲器檢索用于第一候選810的編碼損耗。最佳選擇模塊805隨后基于用于第一候選810的編碼損耗和用于相鄰角模式的接收的編碼損耗來確定最佳模式的數量。例如,最佳模式選擇模塊805執行關于過程100所述的操作107以確定用于當前編碼單元的包括k個最佳模式的幀內預測模式的第二或最終列表。如所示,經由候選模式714(請參考圖7)將第二或最終候選列表提供給編碼控制器703。關于幀內預測模式預選擇模塊702討論的操作可以重復用于任意數量的編碼單元和/或任意數量圖片或輸入視頻701的幀。
回到圖7,編碼控制器703接收用于編碼單元的候選模式714。編碼控制器703可以執行用于候選模式714的編碼損耗的確定以便比經由幀內預測模式預選擇模塊702確定的編碼損耗更精確。而且,經由編碼控制器703和/或編碼器700的其他模塊確定的編碼損耗包括用于編碼單元的不同候選片段的編碼損耗。這樣的候選片段每個都可以被估算以便確定用于編碼單元的編碼模式和用于編碼單元的變換片段(例如,用于生成變換單元)。在某些示例中,單個幀內預測編碼模式被提供用于編碼單元以便每個變換單元必須使用指定的幀內預測編碼模式。在其他示例中,多個幀內預測編碼模式指定給編碼單元以便每個變換單元與這些模式之一關聯(并且,以便相同編碼單元的不同的變換單元具有不同的模式)。
在某實施例中,編碼控制器703經由用于每個候選幀內預測編碼模式和/或候選變換片段通過執行編碼單元的全預測(例如,假如可應用,編碼單元的變換單元片段)來確定這樣的編碼損耗。經由區分器711從原始編碼單元(例如,輸入視頻701的編碼單元)區分幀內預測編碼單元以生成剩余編碼單元。所述剩余編碼單元被傳送到變換和量化模塊704,其可以變換(例如,經由離散余弦變換等)剩余編碼單元以確定變換系數和量化變換系數。經由熵編碼器710對量化的變換系數進行編碼,并且計算比特的數量作為用于特定候選幀內預測編碼模式和/或編碼單元的片段的編碼損耗(例如,速率)。
并且,量化的變換系數可以經由反量化和變換模塊705被反量化和反變換以生成重建剩余編碼單元。重建剩余編碼單元在加法器712中與前述幀內預測編碼單元組合以形成重建編碼單元,其可選地經由去區塊和濾波模塊706進行去區塊和濾波,和/或可選地經由圖片緩沖器707進行存儲(與當前幀或圖片的其他重建編碼單元一致)。通過與原始編碼單元(例如,經由輸入視頻701)的比較來估算用于失真的合成重建編碼單元。
可以為每個候選幀內預測模式和/或變換片段重復這樣的過程,并且基于速率失真優化分析來確定最佳幀內預測模式和/或變換片段。例如,所述速率和失真的特征在于編碼損耗,并且最佳幀內預測模式的特征在于這里所述的編碼幀內預測模式。編碼單元(例如,作為視頻幀的一部分)可以基于編碼幀內預測模式來編碼,并且合成比特包含在編碼后的比特流715內。例如,幀內預測模塊708使用選中的幀內預測編碼模式和/或變換單元片段來生成幀內預測編碼單元。經由區分器711從(例如,輸入視頻701的)原始編碼單元中區分幀內預測編碼單元以生成剩余編碼單元。所述剩余編碼單元被變換以確定變換系數,其可以被量化和編碼到編碼后比特流715。例如,至少部分基于幀內預測模式來編碼輸入視頻701的視頻幀以生成編碼后比特流715。
圖9顯示了與本發明的某些實施方式一致安排的示例編碼后比特流715。在某些示例中,編碼后比特流715為高效視頻編碼(hevc)兼容比特流。盡管未在圖9中示出,在某些示例中,編碼后比特流715包括報頭部分和數據部分。編碼后比特流715包括與編碼后視頻數據相關聯的任何合適的數據。如圖9所示,編碼后比特流715包括編碼后量化變換系數901、編碼后幀內預測模式數據902和編碼后片段數據903。如所述,經由編碼器700的熵編碼器710生成編碼后比特流715。
例如,編碼后比特流715包括編碼后量化變換系數901,其包括用于編碼單元的剩余部分和/或這里所述變換單元的變換系數。例如,基于如所述選擇的編碼幀內預測模式進行編碼的編碼單元。將在預測的編碼單元與原始編碼單元之間的剩余編碼單元變換、量化、編碼和插入編碼后比特流作為編碼后量化變換系數901。編碼后比特流715還包括編碼后幀內預測模式數據902。例如,編碼后幀內預測模式數據902包括用于如所述選中的編碼單元的幀內預測模式。用于編碼單元的選中的幀內預測模式被熵編碼,并插入到編碼后比特流715作為編碼后幀內預測模式數據902。并且,編碼后比特流715包括編碼后片段數據903。如這里所述,對于編碼單元,可以幀內預測模式,以及選擇編碼單元的片段(例如,成為變換單元的)。經由為候選幀內預測模式和候選片段估算編碼損耗來為上述編碼單元確定這樣的片段數據。用于編碼單元的選中的片段可以被熵編碼和插入到編碼后比特流715作為編碼后片段數據903。如所述,編碼后比特流715經由諸如編碼器700的編碼器或編碼器系統生成。編碼后比特流715存儲(例如,作為文件或容器)到(例如,執行編碼器700的系統的)存儲器、存儲(例如,作為文件或容器)到存儲器設備(例如,磁盤、用于下載的服務器等)、或發射到遠程設備。并且,解碼器可讀取(經由讀取磁盤、流、下載等)編碼后比特流715,所述解碼器可解碼比特流和生成向用戶呈現的視頻幀的序列或視頻幀。
圖10為顯示了與本發明的至少某些實施方式一致安排的用于視頻編碼的示例過程1000的流程圖。過程1000包括如圖10所示的一個或多個操作1001-1004。過程1000可以構建視頻編碼過程的至少一部分。通過非限制的示例,過程1000可以形成用于生成諸如候選模式714的候選幀內預測模式的視頻編碼過程的一部分,正如所述編碼器700所做的一樣。并且,將參考圖11的系統1100來描述過程1000。
圖11為顯示了與本發明的至少某些實施方式一致配置的用于視頻編碼的示例系統1100的示例圖。如圖11所示,系統1100包括一個或多個中央處理單元(cpu)1101、圖像處理單元(gpu)1102、和系統存儲器1103。同樣如所示,cpu1101包括幀內預測模式預選擇模塊702、編碼控制器703、幀內預測模塊708、變換和量化模塊704、和熵編碼器710。并且,幀內預測模式預選擇模塊702包括幀內預測dc模式損耗模塊801、幀內預測平面模式損耗模塊802、幀內預測角模式損耗模塊803、控制器804、和最佳模式選擇模塊805。在系統1100的示例中,系統存儲器1103存儲諸如輸入視頻701的視頻數據;編碼損耗806、807、808;角模式809;第一候選810;候選模式714;編碼后比特流715;或諸如這里所述剩余編碼單元、變換系數、編碼參數等的其他視頻數據。
cpu1101和圖形處理單元1102包括提供上述操作的任意數量和類型的處理單元。經由軟件或硬件及其組合來執行這樣的操作。例如,圖形處理單元1102包括專用處理從系統存儲器1103或專用圖形存儲器(未示出)獲取的數據的電路。并且,中央處理單元1101包括提供與這里所述操作一樣的用于系統的1100的控制和其他高級功能的任意數量和類型的處理單元或模塊。系統存儲器1103為任意類型的存儲器,例如易失性存儲器(例如,靜態隨機接入存儲器(sram)、動態隨機接入存儲器(dram)等)、非易失性存儲器(例如,閃存等)等。在非限制示例中,系統存儲器1103由高速緩存來實施。如所示,在某實施例中,幀內預測模式預選擇模塊702、編碼控制器703、幀內預測模塊708、變換和量化模塊704、和熵編碼器710可以經由cpu1101來實施。在某些示例中,幀內預測模式預選擇模塊702、編碼控制器703、幀內預測模塊708、變換和量化模塊704、和熵編碼器710經由cpuc1101實施的軟件來提供。在其他示例中,幀內預測模式預選擇模塊702、編碼控制器703、幀內預測編碼708、變換和量化模塊704、和熵編碼器710可經由數字信號處理器等來實施。在另一個實施例中,幀內預測模式預選擇模塊702、編碼控制器703、幀內預測模塊708、變換和量化模塊704、和熵編碼器710經由圖形處理單元1102的執行單元(eu)來實施。例如,eu包括諸如可以提供廣泛陣列的可編程邏輯功能的邏輯核的可編程邏輯或電路。
回到圖10的討論,過程1000在操作1001開始,“確定用于可用幀內預測角模式子集的編碼損耗”,其中,對于視頻幀的編碼單元,僅為可用幀內預測角模式子集的每一個確定編碼損耗。例如,與幀內預測角模式子集相關聯的編碼損耗被確定。例如,如經由cpu1101所實施的一樣,經由幀內預測模式預選擇模塊702的幀內預測角模式損耗模塊803為可用幀內預測角模式201的子集301確定角模式編碼損耗808。在某些示例中,編碼損耗包括將編碼單元的視頻幀像素(例如,像素值)與幀內預測角模式的子集相關聯的參考編碼單元(例如,編碼單元的預測像素)的視頻幀像素(例如,像素值)進行比較。如所述,在不同示例中,子集包括可用幀內預測角模式的每第二個、每第三個、每第四個或更多個。可用幀內預測角模式的子集可以基于編碼模式、幀復雜度或編碼單元復雜度或大小等來預確定或確定。并且,在操作1001,如所述可以確定用于幀內預測dc模式和幀內預測平面模式的編碼損耗。
過程1000繼續到操作1002,“基于確定的編碼損耗選擇候選幀內預測模式”,其中基于確定的編碼損耗選擇第一候選幀內預測模式。例如,第一候選幀內預測模式包括幀內預測角模式子集的一個或多個。例如,如經由cpu1101所執行一樣,由幀內預測模式預選擇模塊702的最佳模式選擇模塊805確定第一候選810。在某些示例中,最佳模式與最低編碼損耗相關聯。
過程1000進行到操作1003,“為幀內預測角模式的相鄰候選幀內預測角模式確定編碼損耗”,其中為與選中的幀內預測角模式相鄰的一個或多個幀內預測角模式確定編碼損耗。例如,如經由cpu1101執行的一樣,經由幀內預測模式預選擇模塊702的幀內預測角模式損耗模塊803為相鄰幀內預測角模式確定角模式編碼損耗808。在某示例中,相鄰幀內預測角模式可以是選中的幀內預測角模式直接相鄰的兩個角模式(假如兩個可用)。
過程1000進行到操作1004,“提供候選幀內預測模式”,其中基于確定的編碼損耗選擇第二候選幀內預測模式,并提供用于進一步處理。例如,最終或第二候選幀內預測模式包括幀內預測角模式子集的一個或多個和/或相鄰幀內預測角模式的一個或多個。例如,如經由cpu1101執行一樣,由幀內預測模式預選擇模塊702的最佳模式選擇模塊805確定候選模式714,以及提供候選模式714給編碼器700的編碼控制器703。在某些示例中,最佳模式與最低編碼損耗相關聯。
過程1000可以為任意數量的編碼單元和/或視頻圖片或幀(例如,幀內)并行或串行重復任意多次。經由諸如編碼器700的設備或這里所述的任何其他系統或設備為候選幀內預測模式提供過程1000。如所述,這樣的候選幀內預測模式進一步被估算以確定編碼幀內預測模式和/或用于編碼單元的片段。例如,可以為候選幀內預測模式確定更精確的編碼損耗以通過編碼控制器703確定編碼幀內預測模式和/或片段,如經由cpu1101執行一樣。例如,編碼控制器703確定這樣的編碼損耗和經由編碼器700(如所述)的其他模塊接收的數據,選擇這樣的編碼幀內預測模式和/或片段,如經由cpu1101執行的一樣。例如,基于速率失真優化執行更精確的編碼損耗和編碼幀內預測模式選擇。基于編碼幀內預測模式和/或片段,編碼單元如所述一樣被編碼,部分地生成編碼比特流715。在某實施例中,編碼后比特流為高效視頻編碼(hevc)兼容比特流。例如,由熵控制器710對編碼單元進行編碼,如經由cpu1101執行一樣。
當這里所述示例過程的實施方式包括所有順序展示的操作實施時,本發明不限于該方面,并且在不同示例中,這里示例過程的實施方式包括僅顯示的操作的子集、以不用于闡述的方式執行的操作或其他操作。
另外,響應于一個或多個計算機程序產品提供的指令實施這里所述操作的任意一個或多個。這樣的程序產品包括提供指令的信號承載介質,當執行所述指令時,處理器提供上述功能性。計算機程序產品可以一個或多個機器可讀介質的任何形式來提供。因而,響應于程序代碼和/或指令或由一個或更多機器可讀介質傳送到處理器的指令集,包括一個或多個圖形處理單元或處理器核的處理器實施這里示例過程的一個或多個區塊。總之,機器可讀介質以程序代碼和/或指令或使得這里所述的任意設備和/或系統實施編碼器700、系統1100、或如所述的任何其他模塊或組件的至少部分的指令集的形式傳遞軟件。
如在這里所述的任意實施方式所使用的一樣,術語“模塊”指軟件邏輯、固件邏輯、硬件邏輯、和/或配置為提供這里所述功能性的電路的任意組合。軟件可體現為軟件包、代碼和/或指令集或指令,并且如這里所述的任意實施方式所使用的一樣,“硬件”包括諸如單獨或以任何組合方式的,硬件連線電路、可編程電路、狀態機器電路、固定功能電路、執行單元電路、和/或存儲由可編程電路執行的指令的固件。模塊可集體地或單獨地體現為構成更大系統一部分的電路,例如集成電路(ic)、片上系統(soc)等。
如所述,使用上述預選擇或預置處理以生成用于后續處理的候選幀內預測模式列表的編碼可以降低復雜度和節約計算損耗,而僅有微乎其微的壓縮損失。例如,幀內預測角模式消除和隨后的精煉的所述技術提供平均7.6%的編碼時間的減少,而僅有個0.04%損耗增加。表1顯示了用于不同測試視頻剪輯的結果。
表1:示例速率增加和編碼時間降低
如表1所示,示例yuv剪輯中bd-速率(例如,bjontegaarddistortion-速率)取值從-0.04%到0.12%,其具有+0.04的均值,德爾塔編碼時間取值從-6.33%到-9.63%,其具有-7.57%的均值。這樣的結果表明所述技術本質上節約了編碼時間,而速率僅有微乎其微的增加。
圖12為與本發明的至少部分實施方式一致安排的示例系統1200的展示圖。在不同實施方式中,系統1200為移動系統,盡管系統1200不限于該內容。例如,系統1200為個人計算機(pc)、膝上計算機、超級膝上計算機、手寫板、觸摸平板、便攜式計算機、手持計算機、掌上電腦、個人數字助理(pda)、蜂窩電話、組合蜂窩電話/pda、電話、智能設備(例如,智能電話、智能手寫板、智能手表、智能眼鏡或智能電視)、移動互聯網設備(mid),消息設備、數字通信設備、照相機(例如,傻瓜相機、大變焦相機、單反數碼相機(dslr,digitalsingle-lensereflex)、攝像機、攝錄機)等的一部分。
在不同實施方式中,系統1200包括耦合到顯示器1220的平臺1202。平臺1202從諸如內容服務設備1230或內容傳輸設備1240或其他類似內容源的內容設備接收內容。包括一個或多個導航特征的導航控制器1250用于與諸如平臺1202和/或顯示器1220交互。這些組件的每一個將在下文更詳細地描述。
在不同實施方式中,平臺1202包括芯片組1205、處理器1210、存儲器1212、天線1213、儲存器1214、圖形子系統1215、應用1216和/或無線電1218的任意組合。芯片組1205提供在處理器1210、存儲器1212、儲存器1214、圖形子系統1215、應用1216和/或無線電1218之間的相互通信。例如,芯片組1205包括儲存適配器(未描述),其能夠提供與儲存器1214的相互通信。
處理器1210執行為復雜指令集計算機(cisc,complexinstructionsetcomputer)或精簡指令集計算機(risc,reducedinstructionsetcomputer)處理器、x86指令集兼容處理器、多核、或任何其他微處理器或中央處理單元(cpu)。在不同實施方式中,處理器1210為雙核處理器、雙核移動處理器等。
存儲器1212執行為易失性存儲器設備,例如,但不限制于隨機接入存儲器(ram)、動態隨機接入存儲器(dram)、或靜態ram(sram)。
儲存器1214執行為非易失性儲存器設備,例如,但不限制于磁盤驅動器、光盤驅動器、磁帶驅動器、內部儲存設備、關聯儲存設備、閃存、電池備份sdram(同步dram)、和/或網絡可接入儲存設備。在不同實施方式中,儲存器1214包括當包含多個硬盤驅動時,對有用數字媒介增強保護的增加儲存性能的技術。
圖形子系統1215執行圖形處理,諸如靜止的或用于顯示的視頻。圖形子系統1215為圖形處理單元(gpu)或可視處理單元(vpu)。模擬或數字接口用于可通信地耦合圖形子系統1215和顯示器1220。例如,接口為高分辨率多媒體接口、顯示器端口、無線hdmi和/或無線hd兼容技術的任意。圖形子系統1215集成到處理器1210或芯片組1205上。在某些實施方式中,圖形子系統1215為可通信地耦合到芯片組1205的獨立設備。
這里所述圖形和/或視頻處理技術可執行在不同硬件結構下。例如,圖形和/或視頻功能可集成在芯片組內。可替代地,使用離散圖形和/或視頻處理器。如另一個實施方式一樣,由包括多核處理器的通用目的處理器提供圖形和/或視頻功能。在其他實施例中,在消費電子設備上實施這些功能。
無線電1218包括能夠使用不同合適的無線通信技術發射和接收信號的一個或多個無線電。這樣的技術包括經由一個或多個無線網絡的通信。示例無線網絡包括(但不限制)無線局域網(wlan)、無線個域網(wpan)、無線城域網(wman)、蜂窩網和衛星網。在經由這些網絡的通信中,無線電1218根據任何版本的一個或多個可應用標準進行操作。
在不同實施方式中,顯示器1220包括任何電視類型的監視器或顯示器。例如,顯示器1220包括計算機顯示屏、觸摸屏顯示器、視頻監視器、類似電視設備、和/或電視。顯示器1220可以是數字的和/或模擬的。在不同實施方式下,顯示器1220為全息顯示器。同樣地,顯示器1220為可以接收可視投影的透明表面。這樣的投影傳遞不同形式的信息、圖像、和/或物體。例如,這樣投影為用于移動增強現實(mar,mobileaugmentedreality)應用的光學顯示器。在一個或多個軟件應用1216的控制下,平臺1202在顯示器1220上顯示用戶界面1222。
在不同實施方式中,內容服務設備1230可由任何國內的、國際的和/或獨立的服務來支持,并且經由因特網接入到平臺1202。內容服務設備1230可耦合到平臺1202和/或顯示器1220上。平臺1202和/或內容服務設備1230可耦合到網絡1260以傳送(例如,發射和/或接收)媒體信息到和從網絡1260。內容傳遞設備1240還耦合到平臺1202和/或顯示器1220。
在不同實施方式中,內容服務設備1230包括有線電視盒、個人計算機、網絡、電話、使能因特網設備或能夠傳遞數字信號和/或內容的應用、以及能夠經由網絡1260或直接在內容供應商和平臺1202和/或顯示器1220之間單向或雙向傳送內容的任何其他類似設備。應當知道,該內容可經由網絡1260單向和/或雙向向和從系統1200的任意組件和內容供應商傳遞。內容的示例包括諸如,視頻、音樂、醫療和游戲信息等的任何媒體信息。
內容服務設備1230接收諸如包括媒體信息、數字信息和/或其他內容的有線電視節目的內容。內容供應商的示例包括任何有線或衛星電視或無線電或因特網內容供應商。提供的示例不是限制為以任何方式與本發明一致的實施方式。
在不同實施方式中,平臺1202從具有一個或多個導航特征的導航控制器1250接收控制信號。控制器1250的導航特征用于與用戶界面1222交互。在不同實施例中,導航控制器1250可以為計算機硬件組件(特別地,人體接口設備)的指針設備,其允許用戶輸入空間(諸如連續和多維)數據到計算機。諸如圖形用戶接口(gui)的許多系統和電視和監視器允許用戶控制和提供數據到使用物理動作的計算機或電視。
控制器1250的導航特征的移動可以通過指針、光標、聚焦環或顯示在顯示器上的其他可視指示的移動在顯示器(例如,顯示器1220)上重復。例如,在軟件應用1216的控制下,位于導航控制器1250上的導航特征映射到在用戶界面1222上顯示的虛擬導航特征。在不同實施例中,控制器1250不是獨立的組件,而是可以繼承到平臺1202和/或顯示器1220上。然而,本發明不限于這些元件,或在這里顯示或描述的內容。
在不同實施方式中,驅動器(未示出)包括當使能時,在初始啟動之后隨著按鈕的觸摸使能用戶瞬間打開和關閉類似電視的平臺1202的技術。程序邏輯允許平臺1202輸出內容到內容適配器或其他內容服務設備1230或內容傳遞設備1240,即使當平臺關閉時。另外,芯片組1205包括支持5.1環繞立體聲和/或高分辨率7.1環繞立體聲的硬件和/或軟件。驅動器包括用于集成圖形平臺的圖形驅動器。在不同實施例中,圖形驅動器包括外部控制器接口(pci)快速圖形卡。
在不同實施方式中,在系統1200中顯示的任意一個或多個組件可以集成在一起。例如,平臺1202和內容服務設備1230可被集成,或平臺1202和內容傳遞設備1240可被集成,或例如平臺1202和內容服務設備1230和內容傳遞設備1240可被集成。在不同實施例中,平臺1202和顯示器1220為集成單元。例如顯示器1220和內容服務設備1230可被集成,或顯示器1220和內容傳遞設備1240可被集成。這些示例不是為了限制本發明。
在不同實施例中,系統1200可執行為無線系統、有線系統或兩者組合。當執行為無線系統時,系統1200包括適于基于無線共享媒介通信的組件和接口,例如一個或多個天線、發射機、接收機、收發機、放大器、濾波器、控制邏輯等。無線共享媒介的示例包括無線頻譜的一部分,例如rf頻譜等。當執行為有線系統時,系統1200包括適于基于有線通信媒介通信的組件和接口,例如輸入/輸出(i/o)適配器、連接到具有相應有線連接媒介的i/o適配器的物理連接器、網絡接口卡(nic)、磁盤控制器、視頻控制器、音頻控制器等。有線通信媒介的示例包括有線、線纜、金屬頭、印刷電路板(pcb)、背板、光纖開關、半導體原料、雙絞線、同軸線纜、光纖等。
平臺1202建立一個或多個邏輯或物理通道以傳遞信息。該信息包括媒體信息和控制信息。媒體信息指向用于表現內容方式的任何數據。例如,內容的示例包括來自語音會話的數據、視頻會議、流視頻、電子郵件(“email”)消息、語音郵件消息、字母數字符號、圖形、圖像、視頻、文本等。例如,來自語音會話的數據為話語信息、靜默時間、背景噪聲、舒適噪聲、調諧音等。控制信息指表示用于自動化系統的命令、指令或控制語的任何數據。例如,控制信息被用于通過系統路由媒體信息、或指示節點以預定的方式處理媒體信息。然而,實施例不限于元件或在圖12所示或所述的內容。
如上所述,系統1200體現為在物理風格或形狀因數的改變。圖13顯示了與本發明的至少部分實施方式一致安排的示例設備。例如,圖13顯示了體現系統1200的小尺寸設備1300的實施方式。在不同實施例中,例如,設備1300執行為具有無線能力的移動計算設備。移動計算設備指具有處理系統和諸如一個或多個電池的移動電源的任何設備。
如上所述,移動計算設備的示例包括個人計算機(pc)、膝上計算機、超級膝上計算機、手寫板、觸摸板電腦、便攜計算機、手持計算機、掌上電腦、個人數字助理(pda)、蜂窩電話、組合蜂窩電話/pda、電視、智能設備(例如,智能電話、智能手寫板或智能電視)、移動互聯網設備(mid)、短消息設備、數據通信設備、照相機(例如,傻瓜相機、大變焦相機、單反數碼相機(dslr))等。
移動計算設備的示例還包括佩戴在個人身上的計算機,例如,腕部計算機、手指計算機、指環計算機、眼鏡計算機、腰帶夾計算機、臂環計算機、鞋子計算機、衣服計算機和其他可穿戴計算機。在不同實施例中,例如,移動計算設備可以執行為能執行計算機應用、以及語音通信和/或數據通信的智能電話。盡管,某些實施例使用執行為通過示例方式的智能電話的移動計算機設備來描述,應當知道,其他實施例還可以使用其他無線移動計算設備來實施。實施例不限于本文。
如圖13所示,設備1300包括外殼1302、顯示器1304、輸入/輸出(i/o)設備1306和天線1308。設備1300還包括導航功能1312。顯示器1304包括顯示適于移動計算設備的信息的任何合適的顯示單元。顯示器1304包括用于接收i/o命令的觸摸屏區域1310。在某些示例中,觸摸屏區域1310基本與顯示器1304的尺寸相當。i/o設備1306包括用于輸入信息到移動計算設備的任何合適的i/o設備。對于i/o設備1306的示例包括字母數字鍵盤、數字鍵盤、觸摸板、輸入鍵、按鈕、開關、搖桿式開關、麥克風、揚聲器、語音識別設備和軟件等。信息還通過麥克風(未示出)輸入到設備1300。這樣的信息通過語音識別設備(未示出)進行數字化。
使用硬件元件、軟件元件或兩者的組合來實施不同的實施例。硬件元件的示例包括處理器、微處理器、電路、電路元件(例如,三極管、阻抗、電容、電感等)、集成電路、特定應用集成電路(asic)、可編程邏輯設備(pld)、數字信號處理器(dsp)、現場可編程門陣列(fpga)、邏輯門、寄存器、半導體設備、芯片、微芯片、芯片組等。軟件的示例包括軟件組件、程序、應用、計算機程序、應用程序、系統程序、機器程序、操作系統軟件、中間件、固件、軟件模塊、例行程序、子程序、功能、方法、過程、軟件接口、應用程序接口(api)、指令集、計算代碼、計算機代碼、代碼段、計算機代碼段、詞語、數值、符號或其中的任意組合。確定是否使用硬件元件和/或軟件元件是依靠任意數量的因素而變化的,例如期望的計算速率、功率級別、熱耐受度、處理周期預算、輸入數據速率、輸出數據速率、存儲資源、數據總線速度和其他設計或性能抑制。
通過存儲在表示處理器內不同邏輯的機器可讀介質上的代表性指令來實施至少一個實施例的一個或多個方面,其中當由機器讀取所述指令時使得所述機器利于邏輯實施這里所述技術。已知為“ip核心”的這樣的表達存儲在有形、機器可讀介質中,并且提供給不同消費者或制造商以加載到實際制作該邏輯或處理器的加工機械。
當參考不同實施方式來描述這里闡述的某些特征時,本說明書不是為了以限制的意義來解釋。然而,對本領域技術人員顯而易見的本發明所指出的這里所述實施方式以及其他實施方式的不同修改必然落入本申請的精神和范圍內。
在一個或多個第一實施例中,用于視頻編碼的計算機實施方法包括:為視頻幀的編碼單元確定用于多個可用幀內預測角模式的僅一個子集的每一個的編碼損耗,以提供與所述幀內預測角模式的子集有關的多個第一編碼損耗;至少部分基于所述多個編碼損耗,選擇多個第一候選幀內預測模式,其中所述第一候選幀內預測模式包括來自所述幀內預測角模式子集的至少第一幀內預測角模式;為與所述第一幀內預測角模式相鄰的第二幀內預測角模式確定至少第二編碼損耗;和提供包括第一幀內預測角模式或第二幀內預測角模式中的至少一個的多個第二候選幀內預測模式。
所述第一實施例的進一步,幀內預測角模式的子集至少包括可用幀內預測角模式的每第二個、每第三個、或每第四個幀內預測角模式之一。
所述第一實施例的進一步,為與所述第一幀內預測角模式相鄰的第二幀內預測角模式確定第二編碼損耗包括:為與所述第一幀內預測角模式相鄰的第三幀內角模式確定第三編碼損耗,其中所述第二和第三幀內預測角模式為與所述第一幀內預測角模式直接相鄰的兩個角模式。
所述第一實施例的進一步,所述方法進一步包括為所述編碼單元確定用于幀內預測平面模式的第三編碼損耗和用于幀內預測dc模式的第四編碼損耗,其中候選幀內預測模式包括幀內預測平面模式或幀內預測dc模式中的至少一個。
所述第一實施例的進一步,所述方法進一步包括為所述第二候選幀內預測模式確定多個第三編碼損耗,其中所述第三編碼損耗包括比所述第一編碼損耗更精確的編碼損耗。
所述第一實施例的進一步,所述方法進一步包括為所述編碼單元確定用于所述幀內預測平面模式的第三編碼損耗和用于幀內預測dc模式的第四編碼損耗,其中所述候選幀內預測模式包括幀內預測平面模式或幀內預測dc模式;和/或確定用于所述第二候選幀內預測模式的多個第五編碼損耗,其中所述第五編碼損耗包括比所述第一編碼損耗更精確的編碼損耗。
所述第一實施例的進一步,所述第一編碼損耗包括所述編碼單元的原始視頻幀像素與用于幀內預測角模式子集的每一個的編碼單元的預測的像素的比較。
所述第一實施例的進一步,幀內預測角模式的子集包括可用幀內預測角模式的預定子集。
所述第一實施例的進一步,第一編碼損耗包括將所述編碼單元的原始視頻幀像素與用于所述幀內預測角模式子集的每一個的編碼單元的預測后像素進行比較,和/或幀內預測角模式子集包括可用幀內預測角模式的預定子集。
所述第一實施例的進一步,幀內預測角模式的子集包括可用幀內預測角模式的每隔一個幀內預測角模式,其中確定用于與所述第一幀內預測角模式相鄰的第二幀內預測角模式的至少第二編碼損耗進一步包括為第三幀內預測角模式確定第三編碼損耗,其中所述第二和第三幀內預測角模式為與所述第一幀內預測角模式直接相鄰的角模式,并且其中所述第一和第二候選幀內預測模式每個都包括三個幀內預測模式。
所述第一實施例的進一步,所述方法進一步包括為所述第二候選幀內預測模式確定多個第三編碼損耗,至少部分基于所述第三編碼損耗選擇用于編碼單元的編碼幀內預測模式,并且至少部分基于編碼幀內預測模式對所述視頻幀進行編碼以生成編碼后比特流。
所述第一實施例的進一步,所述方法進一步包括為所述第二候選幀內預測模式確定多個第三編碼損耗,至少部分基于所述第三編碼幀內預測模式為所述編碼單元選擇編碼幀內預測模式,并且至少部分基于編碼幀內預測模式為所述視頻幀進行編碼以生成編碼后比特流,其中所述編碼后比特流包括高效視頻編碼(hevc)兼容比特流。
在一個或多個第二實施例中,用于提供視頻編碼的系統包括配置為存儲視頻數據的存儲器和耦合到所述存儲器的中央處理單元,其中所述中央處理單元包括配置為為視頻幀的編碼單元確定用于具有多個可用幀內預測角模式的子集的每一個的編碼損耗以與幀內預測角模式的子集相關聯的多個第一編碼損耗的編碼損耗估算電路;和配置為至少部分基于所述多個編碼損耗,選擇多個第一候選幀內預測模式的幀內預測模式選擇電路,其中所述編碼損耗估算電路進一步配置為為與所述第一幀內預測角模式相鄰的第二幀內預測角模式至少確定第二編碼損耗,并且其中幀內預測模式選擇電路進一步配置為提供包括第一幀內預測角模式或第二幀內預測角模式的至少一個的多個第二候選幀內預測模式。
所述第二實施例的進一步,幀內預測角模式的子集包括可用幀內預測角模式的每第二個、每第三個、或每第四個幀內預測角模式。
所述第二實施例的進一步,所述編碼損耗估算電路進一步配置為為與所述第一幀內預測角模式相鄰的第三幀內預測角模式確定第三編碼損耗,其中所述第二和第三幀內預測角模式為與所述第一幀內預測角模式直接相鄰的兩個角模式。
所述第二實施例的進一步,所述編碼損耗估算電路進一步配置為為編碼單元確定用于幀內預測平面模式的第三編碼損耗,和用于幀內預測dc模式的第四編碼損耗,其中所述候選幀內預測模式包括幀內預測平面模式或幀內預測dc模式至少一個。
所述第二實施例的進一步,所述中央處理單元進一步包括配置為為所述第二候選幀內預測模式確定多個第三編碼損耗的編碼控制器電路,其中所述第三編碼損耗包括比所述第一編碼損耗更精確的編碼損耗。
所述第二實施例的進一步,所述第一編碼損耗包括所述編碼單元的原始視頻幀像素與用于幀內預測角模式的子集每一個的編碼單元的預測像素的比較。
所述第二實施例的進一步,幀內預測角模式的子集包括所述可用幀內預測角模式的預定子集。
所述第二實施例的進一步,所述第一編碼損耗包括所述編碼單元的原始視頻幀像素與用于幀內預測角模式的子集的每一個的編碼單元的預測像素的比較,和/或所述幀內預測角模式的子集包括所述可用幀內預測角模式的預定子集。
所述第二實施例的進一步,幀內預測角模式的子集包括可用預測角模式的每隔一個幀內預測角模式,其中所述編碼損耗估算電路進一步包括為第三幀內預測角模式確定第三編碼損耗,其中所述第二和第三幀內預測角模式為與所述第一幀內預測角模式直接相鄰的角模式,并且其中所述第一和第二候選幀內預測模式每個都包括三個幀內預測模式。
所述第二實施例的進一步,所述中央處理單元進一步包括配置為為所述第二候選幀內預測模式確定多個第三編碼損耗,和至少部分基于第三編碼損耗選擇用于所述編碼單元的編碼幀內預測模式的編碼控制器電路;和配置為至少部分基于編碼幀內預測模式對所述視頻幀進行編碼以生成編碼后比特流的熵編碼電路。
所述第二實施例的進一步,所述中央處理單元進一步包括配置為為所述第二候選幀內預測模式確定多個第三編碼損耗和至少部分基于所述第三編碼損耗選擇用于所述編碼單元的編碼幀內模式的編碼控制器電路;和配置為至少部分基于編碼幀內預測模式對視頻幀進行編碼以生成編碼后比特流的熵編碼電路,其中所述編碼后比特流包括高效視頻編碼(hevc)兼容比特流。
在一個或多個第三實施例中,一種用于編碼視頻的系統,其包括為視頻幀的編碼單元確定用于多個可用幀內預測角模式的僅一個子集的每一個的編碼損耗,以提供與所述幀內預測角模式的子集有關的多個第一編碼損耗的裝置;至少部分基于所述多個編碼損耗,選擇多個第一候選幀內預測模式的裝置,其中所述第一候選幀內預測模式包括來自所述幀內預測角模式子集的至少第一幀內預測角模式;為與所述第一幀內預測角模式相鄰的第二幀內預測角模式確定至少第二編碼損耗;和提供包括第一幀內預測角模式或第二幀內預測角模式中的至少一個的多個第二候選幀內預測模式的裝置。
所述第三實施例的進一步,幀內預測角模式的子集至少包括可用幀內預測角模式的每第二個、每第三個、或每第四個幀內預測角模式之一,和所述系統進一步包括為所述編碼單元確定用于幀內平面模式的第三編碼損耗和用于幀內預測dc模式的第四編碼損耗的裝置,其中候選幀內預測模式包括幀內預測平面模式或幀內預測dc模式中的至少一個。
所述第三實施例的進一步,所述系統進一步包括為所述第二候選幀內預測模式確定多個第三編碼損耗的裝置;至少部分基于所述第三編碼損耗為所述編碼單元選擇編碼幀內預測模式的裝置;和至少部分基于編碼幀內預測模式對所述視頻幀進行編碼以生成編碼后比特流的裝置。
所述第三實施例的進一步,所述系統進一步包括為所述第二候選幀內預測模式確定多個第三編碼損耗的裝置;至少部分基于所述第三編碼損耗為所述編碼單元選擇編碼幀內預測模式的裝置;和至少部分基于所述編碼幀內預測模式對所述視頻幀進行編碼以生成編碼后比特流的裝置,其中所述編碼后比特流包括高效視頻編碼(hevc)兼容比特流。
在一個或多個第三實施例中,至少一個機器可讀介質包括響應于在計算設備上執行使得計算設備提供視頻編碼的多個指令:為視頻幀的編碼單元確定用于多個可用幀內預測角模式的僅一個子集的每一個的編碼損耗,以提供與所述幀內預測角模式的子集有關的多個第一編碼損耗;至少部分基于所述多個編碼損耗,選擇多個第一候選幀內預測模式,其中所述第一候選幀內預測模式包括來自所述幀內預測角模式子集的至少第一幀內預測角模式;為與所述第一幀內預測角模式相鄰的第二幀內預測角模式確定至少第二編碼損耗;和提供包括第一幀內預測角模式或第二幀內預測角模式中的至少一個的多個第二候選幀內預測模式。
所述第四實施例的進一步,幀內預測角模式的子集至少包括可用幀內預測角模式的每第二個、每第三個、或每第四個第四幀內預測角模式之一。
所述第四實施例的進一步,為與所述第一幀內預測角模式相鄰的第二幀內預測角模式確定第二編碼損耗包括:為與所述第一幀內預測角模式相鄰的第三幀內角模式確定第三編碼損耗,其中所述第二和第三幀內預測角模式為與所述第一幀內預測角模式直接相鄰的兩個角模式。
所述第四實施例的進一步,所述至少一個機器可讀介質包括進一步指令,其響應于在計算機設備上的執行,使得所述計算設備提供:為所述編碼單元確定用于幀內平面模式的第三編碼損耗和用于幀內預測dc模式的第四編碼損耗,其中候選幀內預測模式包括幀內預測平面模式或幀內預測dc模式的至少一個。
所述第四實施例的進一步,所述至少一個機器可讀介質包括進一步指令,其響應于在計算機設備上的執行,使得所述計算設備提供:為所述第二候選幀內預測模式確定多個第三編碼損耗,其中所述第一編碼損耗包括所述編碼單元的視頻幀像素與幀內預測角模式相關聯的參考編碼單元的視頻幀像素的比較,并且其中所述第三編碼損耗包括比所述第一編碼損耗更精確的編碼損耗。
所述第四實施例的進一步,所述第一編碼損耗包括所述編碼單元的原始視頻幀像素與用于幀內預測角模式的子集的每一個的編碼單元的預測后像素的比較。
所述第四實施例的進一步,幀內預測角模式的子集包括可用幀內預測角模式的每隔一個幀內預測角模式,其中確定用于與所述第一幀內預測角模式相鄰的第二幀內預測角模式的至少第二編碼損耗進一步包括為第三幀內預測角模式確定第三編碼損耗,其中所述第二和第三幀內預測角模式為與所述第一幀內預測角模式直接相鄰的角模式。
所述第四實施例的進一步,所述至少一個機器可讀介質包括進一步指令,其響應于在計算機設備上的執行,使得所述計算設備提供:為所述第二候選幀內預測模式確定多個第三編碼損耗,至少部分基于所述第三編碼幀內預測模式為所述編碼單元選擇編碼幀內預測模式,并且至少部分基于編碼幀內預測模式為所述視頻幀進行編碼以生成編碼后比特流,其中所述編碼后比特流包括高效視頻編碼(hevc)兼容比特流。
在一個或多個第五實施例中,至少一個機器可讀介質包括多個指令,其響應于在計算設備上的執行,使得所述計算設備實施以上任何一個實施例一致的方法。
在一個或多個第六實施例中,設備包括用于執行與上述任何一個實施例一致的方法的裝置。
應當意識到,實施例不限于上述實施例,但是可以實現不脫離上述權利要求的范圍的改變和改進。例如,上述實施例包括特征的特定組合。然而,上述實施不限于該方面,并且在不同實施方式下,上述實施例包括僅實現這樣的特征的子集、實現這樣特征的不同順序、實現這樣的特征的不同組合、和/或實現除了這里明確列出的其他特征。因此,實施例的范圍應當參考附帶的權利要求根據權利要求提出的等同范圍來確定。