背景技術:
本發明在其一些實施例中涉及用于數字圖像和/或視頻壓縮的系統和方法,且更具體地(但不僅限于),涉及用于生成用于處理數字圖像的塊的變換系數集的系統和方法。
數字圖像(例如,通過數碼相機獲得的靜態圖像)和數字視頻在以非壓縮方式存儲、由全數據集表示時需要相當大的存儲器資源。表示數字圖像和/或視頻的全數據集的傳輸將需要相當大的網絡資源,例如通信帶寬。視頻尤其成問題,這是因為單個視頻可包含成千上萬的個別幀。針對每一圖像的全數據集的存儲和/或傳輸在許多情形下可為不可能的,或以其它方式壓垮處理和網絡資源。
此外,隨著質量和分辨率能力在相機(靜態和視頻)和顯示屏兩者上改善,每個圖像所生成的數據量不斷增加。在依賴于視頻傳輸的移動設備(例如,智能手機和平板電腦)上運行的基于視頻的應用生成大量網絡流量,這對于無線網絡尤其成問題。
已經開發了用于靜態數字圖像和數字視頻的壓縮的不同方案以減小圖像和視頻數據的大小,且借此減少所需存儲資源和網絡資源。
例如,2012年12月sullivan等人的關于用于視頻技術的電路和系統的ieee期刊“高效率視頻編碼(hevc)標準的概述”第22卷第12號描述“高效率視頻編碼(hevc)目前被視為itu-t視頻編碼專家組和iso/iec動畫專家組的最新的視頻編碼標準。hevc標準化工作的主要目標是使得能夠相對于現有標準顯著改善壓縮性能——對于同等感知視頻質量來說比特率降低在50%的范圍內。”
技術實現要素:
本發明的目的是提供一種經改善的視頻壓縮技術。
通過獨立權利要求中所提供的方案實現此目的。在相應的從屬權利要求中進一步定義有利的實施方案。
根據第一方面,一種用于生成用于編碼幀或其中一部分中的塊的變換系數集的裝置包括:媒體編碼器,其耦合到用于接收幀或其中一部分的數據接口,媒體編碼器用于:從多個旋轉對稱掩碼中選擇用于所述塊的旋轉對稱掩碼,所述多個旋轉對稱掩碼定義了具有如所述塊的大小和形狀的多維空間中的多個不同旋轉對稱;基于所述旋轉對稱掩碼將所述塊分裂成兩個互補部分;生成旋轉對稱塊對,每一旋轉對稱塊具有兩個互補部分中的一個;計算用于所述旋轉對稱塊對的至少一個部件的至少一個變換系數。
根據第二方面,一種用于生成幀或其中一部分中的塊的變換系數集的方法包括:從旋轉對稱掩碼庫中選擇旋轉對稱掩碼,所述旋轉對稱掩碼庫包括多個不同旋轉對稱掩碼,所述多個不同旋轉對稱掩碼定義了具有如所述塊的大小和形狀的多維空間中的多個不同旋轉對稱;基于所述旋轉對稱掩碼將所述塊分裂成兩個互補部分;生成旋轉對稱塊對,每一旋轉對稱塊具有兩個互補部分中的一個;計算用于所述旋轉對稱塊對的每一部件的至少一個變換系數。所述方法可用于操作第一方面所述的裝置。
根據第三方面,一種用于解碼幀或其中一部分的塊的裝置包括:媒體解碼器,其耦合到數據接口,所述數據接口用于接收表示旋轉對稱塊對的至少一個部件的至少一個變換系數和表示相關聯的選定旋轉對稱掩碼的信號,所述旋轉對稱掩碼定義了具有如幀或其中一部分的塊的大小和形狀的多維空間中的旋轉對稱,所述媒體解碼器用于:基于所接收的至少一個變換系數的逆變換來計算所述旋轉對稱塊對,所述旋轉對稱塊對中的每一部件具有兩個互補部分中的一個;基于所述旋轉對稱掩碼從兩個互補部分重建塊。第三方面所述的裝置可用于解碼由第一方面所述的裝置編碼的幀或其中一部分的塊。
根據第四方面,一種用于重建幀或其中一部分的塊的方法包括:接收表示旋轉對稱塊對的至少一個部件的至少一個變換系數和表示相關聯的選定旋轉對稱掩碼的信號,所述旋轉對稱掩碼定義了具有如幀或其中一部分的塊的大小和形狀的多維空間中的旋轉對稱;基于所接收的至少一個變換系數的逆變換來計算所述旋轉對稱塊對,所述旋轉對稱塊對中的每一部件具有兩個互補部分中的一個;基于所述旋轉對稱掩碼從兩個互補部分重建塊。第四方面所述的方法可用于操作第三方面所述的裝置。
根據第五方面,一種計算機程序用于當在計算機上執行時執行前述方面中任一項所述的方法。所述計算機程序可經配置供媒體編碼器用于編碼幀或其中一部分中的塊,程序代碼包括:用于從旋轉對稱掩碼庫中選擇旋轉對稱掩碼的指令,所述旋轉對稱掩碼庫包括多個不同旋轉對稱掩碼,所述多個不同旋轉對稱掩碼定義了具有如所述塊的大小和形狀的多維空間中的多個不同旋轉對稱;用于基于所述旋轉對稱掩碼將所述塊分裂成兩個互補部分的指令;生成用于生成旋轉對稱塊對的指令,每一旋轉對稱塊具有兩個互補部分中的一個;用于計算用于所述旋轉對稱塊對中的每一部件的至少一個變換系數的指令。
為清楚起見,本文描述編碼裝置、編碼方法和/或編碼計算機程序產品的細節。對于每一所描述的編碼功能和/或結構,暗示了對應的解碼功能和/或結構。為簡潔且清楚起見,省略對應于所描述的編碼功能和/或結構元件的解碼功能和/或結構元件的措辭。為清楚起見,術語“媒體編碼器”也指代方法和計算機程序產品。例如,短語“媒體編碼器用于”也意指“方法還包括”和“計算機程序產品還包括用于…的指令”。
所有方面通過改善效率和/或降低用于圖像和/或視頻的壓縮的資源要求(例如,存儲器和/或處理器)來改善系統性能。
根據第一方面,在所述裝置的第一種可能實現形式中,媒體編碼器用于通過將兩個互補部分中的一個和所述兩個互補部分中的所述一個的二維(2d)鏡像相加形成所述塊大小和形狀的所述旋轉對稱塊對中的每一部件。
根據第一方面本身或根據第一種實現形式,在所述裝置的第二種可能實現形式中,所述多個旋轉對稱掩碼是在旋轉對稱掩碼庫中;其中媒體編碼器用于基于所述塊的大小和形狀中的至少一個從多個旋轉對稱掩碼庫中選擇旋轉對稱掩碼庫。
步進式選擇可通過減小供在每一步處選擇的集的大小來減小搜索范圍,從而減少用于選擇的資源和/或計算。從庫(或掩碼子集)而非從較大的候選掩碼集中選擇掩碼減少用于將所選掩碼發信至解碼器的經編碼比特的數目和/或減少計算復雜度和/或存儲器源和/或處理器資源。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第三種可能實現形式中,媒體編碼器用于基于針對所述塊的壓縮偏好從多個旋轉對稱掩碼庫中選擇旋轉對稱掩碼庫。
當壓縮參數涉及某些權衡(例如,以降低質量為代價降低大小)時,壓縮偏好可幫助掩碼選擇。具有較低經估計的復雜性測度的掩碼經估計需要較少的資源(例如,處理器和/或存儲器)。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第四種可能實現形式中,從由壓縮復雜度偏好、壓縮質量偏好和壓縮大小偏好組成的群組中選擇壓縮偏好。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第五種可能實現形式中,媒體編碼器用于通過預處理由幀或其中一部分組成的視頻數據自動生成旋轉對稱掩碼庫且根據針對壓縮復雜度偏好、壓縮大小偏好和壓縮質量偏好的預處理的結果中的至少一個從不同旋轉對稱掩碼的存儲庫中選擇所述多個不同旋轉對稱掩碼。
所生成的庫內的掩碼數目可小于生成所有可能排列,這是因為僅包含滿足壓縮準則的掩碼。
視頻數據的預處理可改善編碼器的性能。可提前而非在壓縮期間執行資源繁重計算。作為掩碼選擇的依據的數據可以是準備好的以允許塊壓縮過程期間的更快掩碼選擇而非在壓縮過程期間執行掩碼選擇計算。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第六種可能實現形式中,媒體編碼器用于根據由針對塊壓縮復雜度、塊壓縮大小和塊壓縮質量的偏好組成的群組的部件自動生成旋轉對稱掩碼庫。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第七種可能實現形式中,媒體編碼器用于基于包括幀或其中一部分的視頻數據的分類從多個旋轉對稱掩碼庫中選擇旋轉對稱掩碼庫。
經預分類的視頻數據改善了系統性能,這是因為可更高效地和/或使用基于分類的較少資源選擇掩碼。
根據第一方面或根據前述實現形式中的任一個,在所述裝置的第八種可能實現形式中,多維空間是二維空間,其中所述多個不同旋轉對稱掩碼包括多個矩陣,每一矩陣定義了不同的線,所述線連接二維空間的相對邊緣以將二維空間分裂成兩個互補部分。
旋轉對稱掩碼可用于分裂多維空間和/或數據,所述多維空間和/或數據使得能夠將本文就基于多維空間的不同圖像和/或視頻標準所描述的系統和/或方法集成在一起。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第九種可能實現形式中,根據相應線關于二維空間的邊緣的角以分層布置映射所述多個不同旋轉對稱掩碼中的每一個;其中媒體編碼器用于以根據所述分層布置所定義的次序在所述多個不同旋轉對稱掩碼中的至少一些的迭代掩碼選擇中選擇旋轉對稱掩碼。
分層布置可減少用于識別最佳掩碼的處理時間和/或資源。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十種可能實現形式中,所述多個不同旋轉對稱掩碼是具有如所述塊的大小和形狀的矩形掩碼。
處理矩形塊改善了本文就允許將幀(或其子區域)分割成矩形塊的標準所描述的系統和/或方法的兼容性。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十一種可能實現形式中,媒體編碼器用于使用至少一個空間預測器編碼至少一個變換系數,所述至少一個空間預測器用于所述塊的兩個互補部分中的至少一個。
基于預測器編碼改善了系統效率和/或利用了較少資源。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十二種可能實現形式中,媒體編碼器用于使用至少一個時間預測器編碼至少一個變換系數,所述至少一個時間預測器用于所述塊的兩個互補部分中的至少一個。
根據第一方面本身或根據前述實施方案中的任一個,在所述裝置的第十三種可能實現形式中,媒體編碼器用于使用與兩個互補部分中的相應一個相關的空間預測器編碼所述旋轉對稱塊對中的每一個的至少一個變換系數。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十四種可能實現形式中,媒體編碼器用于使用與兩個互補部分中的相應一個相關的運動向量編碼所述旋轉對稱塊對中的每一個的至少一個變換系數。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十五種可能實現形式中,媒體編碼器用于使用熵上下文模型編碼至少一個變換系數,所述熵上下文模型用于旋轉對稱掩碼。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十六種可能實現形式中,媒體編碼器用于基于變換過程的結果和/或應用于兩個旋轉對稱塊中的至少一個的變換過程的結果的估計來選擇旋轉對稱掩碼。
基于結果和/或經估計結果的掩碼選擇改善了系統效率和/或利用了較少資源。
根據第一方面或根據前述實現形式中的任一個,在所述裝置的第十七種可能實現形式中,媒體編碼器用于基于應用于所述旋轉對稱塊對的至少一個部件的至少一個變換系數的量化過程和編碼過程中的至少一個的結果和/或結果的估計來選擇旋轉對稱掩碼。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十八種可能實現形式中,所述多個不同旋轉對稱掩碼中的每一個與經估計的率測度相關聯,所述經估計的率測度指示當將所述多個掩碼中的某一相應掩碼應用于具有所述大小和形狀的示例性塊時所傳輸的比特的數目。
可關于每一掩碼存儲率測度,從而允許基于經估計的率測度值快速選擇掩碼。可針對每一掩碼提前計算率測度而非在運行時間期間重新計算,從而減少選擇所需要的計算。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第十九種可能實現形式中,所述多個不同旋轉對稱掩碼中的每一個與經估計的復雜性測度相關聯,所述經估計的復雜性測度指示將所述多個掩碼中的某一相應掩碼應用于具有所述大小和形狀的示例性塊的計算復雜度。
基于經估計的復雜性測度的掩碼選擇改善了系統效率和/或利用了較少資源。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十種可能實現形式中,所述多個不同旋轉對稱掩碼中的每一個與經估計的失真測度相關聯,所述經估計的失真測度指示從將所述多個掩碼中的某一相應掩碼應用于具有所述大小和形狀的示例性塊所產生的壓縮失真。
具有較低經估計的失真測度的掩碼經估計在實現目標壓縮假象時需要較少資源(例如,處理器和/或存儲器)。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十一種可能實現形式中,媒體編碼器用于根據所述塊中的像素值圖案選擇旋轉對稱掩碼。
基于像素值圖案的選擇生成兩個互補部分,其中每一相應部分內的像素彼此類似,例如,類似強度和/或色彩。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十二種可能實現形式中,媒體編碼器用于基于由應用所述多個不同旋轉對稱掩碼中的至少一些的訓練集記錄結果的分析所生成的統計分類器選擇旋轉對稱掩碼。
統計分類器可改善基于包含多個不同所要結果的結果的預測對掩碼的選擇。
根據第一方面本身或根據第一方面的前述實現形式中的任一個,在所述裝置的第二十三種可能實現形式中,媒體編碼器用于基于從所述塊的空間相鄰塊和所述塊的時間相鄰塊中的至少一個提取的內容來選擇旋轉對稱掩碼。
可選地,相鄰者包含先前所處理的塊。先前所處理的塊可用作用于選擇目前正處理的塊的掩碼的預測器。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十四種可能實現形式中,所提取的內容是根據空間和時間相鄰塊中的至少一個中的像素值圖案。
含有用作預測器的類似像素圖案的相鄰塊改善了系統性能和/或需要較少資源。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十五種可能實現形式中,媒體編碼器用于選擇旋轉對稱掩碼,選擇旋轉對稱掩碼是基于與所述塊的空間相鄰塊和所述塊的時間相鄰塊中的至少一個相關聯的信息來執行。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十六種可能實現形式中,與由空間和時間相鄰塊組成的群組中的至少一個相關聯的信息與預測相關。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十七種可能實現形式中,媒體編碼器用于選擇旋轉對稱掩碼,選擇旋轉對稱掩碼是基于針對所述塊的壓縮偏好來執行。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十八種可能實現形式中,壓縮偏好選自由以下各項組成的群組:壓縮復雜度偏好、壓縮質量偏好和壓縮大小偏好。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第二十九種可能實現形式中,所述旋轉對稱塊對中的每一部件由具有圍繞主對角線成2d鏡像的值的矩陣表示。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第三十種可能實現形式中,旋轉對稱掩碼用于定義線,所述線連接矩形的相對邊緣以將矩形塊分裂成兩個2d鏡像互補部分。
鏡像屬性提供塊的高效壓縮。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第三十一種可能實現形式中,連接矩形的相對邊緣的多條線用于形成旋轉對稱掩碼庫。
根據第一方面本身或根據前述實現形式中的任一個,在所述裝置的第三十二種可能實現形式中,數據接口還用于接收表示旋轉對稱塊對的至少一個部件的至少一個變換系數和表示相關聯的選定旋轉對稱掩碼的信號,旋轉對稱掩碼定義了具有如幀或其中一部分的塊的大小和形狀的多維空間中的旋轉對稱;媒體編碼器還用于:基于所接收的至少一個變換系數的逆變換來計算所述旋轉對稱塊對,所述旋轉對稱塊對中的每一部件具有兩個互補部分中的一個;基于所述旋轉對稱掩碼從兩個互補部分重建塊。
除非另有定義,否則本文所用的所有技術和/或科學術語均具有與本發明所屬領域普通技術人員通常所理解的含義相同的含義。雖然在本發明的實施例的實踐或測試中使用與本文所描述的方法和材料類似或等效的方法和材料,但下文描述示例性方法和/或材料。在沖突的情況下,將以專利說明書(包含定義)為準。另外,材料、方法和示例僅為說明性的且并非打算為必需的限制。
附圖說明
本文僅通過示例的方式參考附圖描述本發明的一些實施例。現在詳細地具體參考附圖,強調所展示的項目是作為示例,且為了說明性地討論本發明的實施例。就這一點來說,依據圖示進行描述,如何實踐本發明的實施例對本領域技術人員而言是顯而易見的。
在附圖中:
圖1是本發明的一些實施例提供的用于生成用于編碼和/或處理幀中的塊的變換系數集的方法的流程圖;
圖2是本發明的一些實施例提供的媒體編碼器的變換部分的方框圖,所述媒體編碼器用于生成用于編碼和/或處理幀中的塊的變換系數集;
圖3是本發明的一些實施例提供的繪示簡單旋轉對稱掩碼的一些示例的示意圖;
圖4是本發明的一些實施例提供的繪示用于塊的旋轉對稱掩碼的選擇的示意圖;
圖5a-5c是本發明的一些實施例提供的繪示用于定義旋轉對稱掩碼的像素2d鏡像的示意圖;
圖6a-6c是本發明的一些實施例提供的旋轉對稱掩碼庫的一些示例;
圖7是本發明的一些實施例提供的圖解性地繪示旋轉對稱掩碼的分層布置的示意圖;
圖8是本發明的一些實施例提供的繪示旋轉對稱掩碼的生成和/或表示的示意圖;
圖9是本發明的一些實施例提供的用于選擇用于分裂塊的旋轉對稱掩碼的計算機化準則和/或方法的變體的清單;
圖10是本發明的一些實施例提供的包含有基于圖1和/或圖2的系數編碼器/解碼器的用于圖像壓縮和解壓縮的示例性系統的方框圖;
圖11是本發明的一些實施例提供的用于解碼編碼幀中的塊的變換系數集的方法的流程圖;
圖12a-12i包括執行本文所描述的方法和/或系統的實驗結果的圖像和圖解。
具體實施方式
本發明的一些實施例的一方面涉及用于生成用于編碼幀或其中一部分的塊的變換系數集的方法和/或系統,對通過基于某一選定旋轉對稱掩碼分裂所述塊所獲得的兩個互補部分執行所述編碼。所述方法和/或系統在不顯著地降低圖像質量的情況下通過改善塊的壓縮率減小存儲和/或傳輸塊所需要的大小(例如,比特的數目)。任何圖像質量降低均在預定義的可接受限制內和/或在沒有本文所描述方法的情況下類似于使用標準方法的圖像質量降低,例如,峰值信噪比(psnr)可用作用以定義圖像質量的客觀測度。
如本文所描述,術語幀或圖像有時是指幀的一部分或圖像的一部分。可針對整個幀(和/或圖像)和/或針對幀(和/或圖像)的一部分計算變換系數,例如,針對切片和/或拼片計算變換系數,所述切片和/或拼片是幀的子部件,例如,如由壓縮標準所定義。
所述方法和/或系統包括編碼器,所述編碼器用于通過以下方式編碼塊:選擇用于塊的適合旋轉對稱掩碼、基于掩碼將塊分裂成兩個互補部分、由所述部分中的每一個生成旋轉對稱塊對和計算用于旋轉對稱塊中的一個或兩者的變換系數。
所述方法和/或系統包括解碼器,所述解碼器用于解碼變換系數和重建塊。變換系數經解碼以重建所述旋轉對稱塊對。所述對的每一部件往回轉換(例如,基于逆變換計算)成兩個互補部分中的相應一個。兩個互補部分重新連接在一起以形成塊,此由旋轉對稱掩碼引導。
為清楚起見,本文描述編碼器的細節。對于每一所描述的編碼功能和/或結構,暗示了對應的解碼功能和/或結構。為簡潔且清楚起見,從描述中省略對應于編碼功能和/或結構元件的解碼功能和/或結構元件。
可選地,選擇掩碼以將塊分裂成兩個互補部分,兩個互補部分與整個塊的壓縮相比或與用于塊的標準分裂方法(例如,四方塊,例如,如所定義的高效率視頻編碼(hevc)和/或h.265標準)的壓縮相比更好壓縮。
可選地,選擇掩碼以基于塊的圖像內的一個或多個視覺特征分裂塊。塊可含有由視覺特征(例如,跨越塊所繪示的拼片線或邊緣)分離的不同類型的內容。掩碼可實質上沿視覺特征分裂塊以生成比當在除視覺特征以外的位置處將塊分裂成(例如)四個相等塊(如由hevc標準所指定)時將形成的每一個彼此更均勻的兩個互補部分(即,每一個通常繪示所述類型內容中的一個)。
可選地,針對不同塊選擇不同掩碼。例如,可基于塊內的內容針對塊獨立地選擇掩碼。通過定制的掩碼選擇改善每一塊的壓縮。
應用于每一相應塊的每一相應掩碼與針對相應塊所計算的變換系數集相關聯。例如,將針對每一塊所用的掩碼連同所計算的變換系數一起傳輸,和/或傳輸指示(例如,可能掩碼的庫當中的)哪一掩碼與變換系數相關聯的信號。
掩碼具有旋轉對稱的屬性。可選地,掩碼定義將塊分裂成兩個互補部分以使得塊的形狀和分裂在塊相對于塊的中心旋轉180度以下的情況下不變。掩碼可為二進制掩碼(如本文所描述)。旋轉對稱允許使用適合的正交變換方法(例如,2d離散余弦變換(dct))在兩個維度上計算正交變換系數。正交變換系數與非正交變換系數相比起來壓縮更高效。
兩個互補部分中的每一個保持塊的相應部分內的原始圖像內容的二維拓撲結構,從而允許同一圖像的重建。
在詳細解釋本發明的至少一個實施例之前,應理解,本發明未必將其應用限制于下文描述中所陳述和/或在圖示和/或示例中所說明的組件和/或方法的布置的構建細節。本發明能夠有其它實施例或能夠以各種方式實踐或實施。
本發明可為系統、方法和/或計算機程序產品。計算機程序產品可包含計算機可讀存儲介質,其上具有計算機可讀程序指令以用于促使處理器執行本發明的各個方面。
計算機可讀存儲介質可為有形設備,有形設備可保留和存儲供指令執行設備使用的指令。計算機可讀存儲介質可為(例如,但不限于)電子存儲設備、磁性存儲設備、光學存儲設備、電磁存儲設備、半導體存儲設備或上述物的任何適合組合。計算機可讀存儲介質的更具體示例的非窮舉性清單包含以下各項:便攜式計算機磁盤、硬盤、隨機存取存儲器(ram)、只讀存儲器(rom)、可擦除可編程只讀存儲器(eprom或快閃存儲器)、靜態隨機存取存儲器(sram)、便攜式光盤只讀存儲器(cd-rom)、數字通用光盤(dvd)、記憶棒、軟盤和上述物的任何適合組合。如本文所用,計算機可讀存儲介質不應被視為暫時性信號本身,例如,無線電波或其它從由傳播的電磁波、傳播穿過波導或其它傳輸介質的電磁波(例如,穿過光纖電纜的光脈沖)或通過線傳輸的電信號。
本文所描述的計算機可讀程序指令可從計算機可讀存儲介質下載到相應計算/處理設備或經由網絡(例如,互聯網、局域網、廣域網和/或無線網絡)下載到外部計算機或外部存儲設備。網絡可包括銅傳輸電纜、光學傳輸光纖、無線傳輸、路由器、防火墻、交換機、網關計算機和/或邊緣服務器。每一計算/處理設備中的網絡適配器卡或網絡接口從網絡接收計算機可讀程序指令且轉發計算機可讀程序指令以用于存儲于相應計算/處理設備內的計算機可讀存儲介質中。
用于執行本發明的操作的計算機可讀程序指令可為匯編指令、指令集架構(isa)指令、機器指令、機器相關指令、微代碼、固件指令、狀態設定數據或者以一個或多個程序設計語言的任何組合撰寫的源代碼或目標代碼,所述程序設計語言包含面向對象的程序設計語言(例如,smalltalk、c++等)和常規程序化程序設計語言(例如,“c”程序設計語言或類似程序設計語言)。計算機可讀程序指令可全部地執行于用戶的計算機上、部分地執行于用戶的計算機上、作為獨立的軟件包部分地執行于用戶的計算機上且部分地執行于遠程計算機上或全部地執行于遠程計算機或服務器上。在后者情況下,遠程計算機可通過任何類型的網絡(包括局域網(lan)或廣域網(wan))連接到用戶的計算機,或可連接到外部計算機(例如,通過使用互聯網服務提供商的互聯網)。在一些實施例中,包含(例如)可編程邏輯電路、現場可編程門陣列(fpga)或可編程邏輯陣列(pla)的電子電路可通過利用計算機可讀程序指令的狀態信息使電子電路個性化來執行計算機可讀程序指令,以執行本發明的各個方面。
本文結合本發明實施例所述的方法、裝置(系統)和計算機程序產品的流程圖說明和/或方框圖描述本發明的各個方面。應理解,可通過計算機可讀程序指令實施流程圖說明和/或方框圖的每一方框以及流程圖說明和/或方框圖中的方框的組合。
可將這些計算機可讀程序指令提供到通用計算機、專用計算機或其它可編程數據處理裝置的處理器以生成機器,以使得經由計算機或其它可編程數據處理裝置的處理器執行的指令創建用于實施流程圖和/或方框圖方框中所指定的功能/行為的手段。也可將這些計算機可讀程序指令存儲于計算機可讀存儲介質中,所述計算機可讀存儲介質可引導計算機、可編程數據處理裝置和/或其它設備以特定方式運行,以使得其中存儲有指令的計算機可讀存儲介質包括如下制品:包含實施流程圖和/或方框圖方框中所指定的功能/行為的各個方面的指令。
也可將計算機可讀程序指令載入到計算機、其它可編程數據處理裝置或其它設備上以促使在計算機、其它可編程裝置或其它設備上執行一系列操作步驟以生成計算機實現流程,以使得在計算機、其它可編程裝置或其它設備上執行的指令實施流程圖和/或方框圖方框中所指定的功能/行為。
圖中的流程圖和方框圖說明本發明的各種實施例所述的系統、方法和計算機程序產品的可能實現形式的架構、功能性和操作。就這一點來說,流程圖或方框圖中的每一方框可表示指令的模塊、片段或部分,其包括用于實施所指定邏輯功能的一個或多個可執行指令。在一些替代性實現形式中,方框中所注釋的功能可不按照圖中所注釋的次序發生。例如,事實上,相繼展示的兩個方框可實質上同時執行,或所述方框可有時以顛倒的次序執行,這取決于所涉及的功能性。還應注意,方框圖和/或流程圖說明的每一方框以及方框圖和/或流程圖說明中的方框的組合可由執行指定功能或行為或者實施專用硬件和計算機指令的基于專用硬件的系統實施。
現在參考圖1,圖1是本發明的一些實施例提供的用于生成用于編碼幀中的塊的變換系數集的方法的流程圖。同樣將參考圖2,圖2是本發明的一些實施例提供的媒體編碼器202的變換部分的方框圖,所述媒體編碼器用于生成用于編碼幀中的塊的變換系數集。圖2的媒體編碼器用于執行圖1的方法的一個或多個方框。由圖2的媒體編碼器執行的圖1的方法在不顯著地降低圖像質量的情況下改善了數字圖像(呈視頻和/或靜態格式)的壓縮性能(例如,如參考圖12a-12i所描述)。應注意,除了所描述的編碼功能以外或替代所描述的編碼功能,編碼器202還可充當系數解碼器。解碼功能是基于所描述的編碼功能,但為清楚且簡潔起見將其省略。
應注意,為了清楚且簡潔起見,參考用于變換系數的計算的元件和/或方法描述媒體編碼器202(如本文所描述)。媒體編碼器202可包含其它編碼組件(例如,圖10的圖像編碼器/解碼器1004)和/或與其通信。
媒體編碼器202包含一個或多個處理器204,其與存儲用于由處理器204執行的程序指令的一個或多個存儲器206(或其它類型的計算機可讀存儲介質)通信。存儲器206可存儲用于在處理期間使用的數據,如本文所描述。媒體編碼器202可實現為實現于現有圖像壓縮軟件程序內的軟件模塊、實現為與用于圖像壓縮的現有硬件集成在一起的芯片、插入到現有設備中以改善圖像壓縮的單獨方框或其任何組合。處理器204可執行基于并行處理技術的方法的步驟,可使用單個處理器和/或可遠程定位處理器。可針對預定義旋轉對稱掩碼集中的各種候選掩碼使用并行處理以選擇用于分裂塊的最佳掩碼。可遠程定位存儲器206中的一個或多個。
媒體編碼器202通過改善效率和/或降低用于圖像和/或視頻的壓縮的資源要求(例如,存儲器和/或處理器)來改善系統性能。
在102處,接收幀和/或塊。媒體編碼器202耦合到輸入數據接口208,輸入數據接口208用于接收幀210和/或幀的塊。幀210可作為靜態數字圖像或作為包含多個幀的視頻的一部分接收。當從視頻接收幀210時,可應用圖像間壓縮技術,如本文所描述。
媒體編碼器202用于指定在幀中分割的塊。可選地,塊指定器模塊212a含有供媒體編碼器202執行如本文所描述的指定的程序指令。
例如,可基于視頻和/或靜態圖像標準(例如,hevc、動畫專家組(mpeg)和聯合照片專家組(jpeg))將幀劃分成多個塊。
塊可具有標準大小,例如,64x64個像素、32x32個像素、16x16個像素、8x8個像素4x4個像素或其它大小。
塊可為正方形(lxl個像素)或矩形(mxn個像素)。
塊可表示亮度和/或色度數據。
在104處,選擇旋轉對稱掩碼。掩碼選擇器模塊212b含有供媒體編碼器202執行如本文所描述的掩碼選擇的程序指令。
可選地,旋轉對稱掩碼具有相對于掩碼的塊的中心的二階旋轉對稱(本文有時稱作c2,指示旋轉對稱適用360/2=180度)。
現在參考圖3,圖3繪示本發明的一些實施例提供的旋轉對稱掩碼的一些示例(例如,直角梯形302、直角三角形304、矩形306和正方形308)的示意圖。
現在重新參考圖1,媒體編碼器用于從多個旋轉對稱掩碼中選擇用于指定塊的旋轉對稱掩碼,所述多個旋轉對稱掩碼定義了具有如所述塊的大小和形狀的多維空間中的多個不同旋轉對稱。
現在參考圖4,圖4是本發明的一些實施例提供的繪示用于幀406內的塊404的某一旋轉對稱掩碼402的選擇的示意圖。幀406含有房子的圖像。塊404含有房子的房頂的一部分和天空的另一部分。基于某一壓縮偏好測度(例如,率失真)和/或最佳地分離天空與房子的視覺特征邊界和/或邊緣從多個可用掩碼集410中選擇掩碼402。如依據非選定掩碼的視覺檢測顯而易見,與使用掩碼402相比,其它掩碼中任一個的應用將導致房頂部分內含有較多天空且天空部分內含有較多房頂。與由標準分區408或由另一掩碼壓縮整個塊404相比,由掩碼402劃分塊404改善了圖像壓縮。
現在重新參考圖2,可從存儲于旋轉對稱掩碼庫212f中、可選地存儲于存儲器206上且存儲于與處理器204通信的另一計算機可讀存儲介質上的多個掩碼中選擇旋轉對稱掩碼。
庫212f可存儲多個不同旋轉對稱掩碼庫。每一庫可基于塊的大小和/或形狀。例如,一個庫針對大小為16x16個像素的塊的掩碼,且另一庫針對大小為8x8個像素的塊。
可選地,不同旋轉對稱掩碼是具有如所述塊的大小和形狀的正方形掩碼(即,lxl個像素)。替代地,不同旋轉對稱掩碼是具有如所述塊的大小和形狀的矩形掩碼(即,mxn個像素)。
旋轉對稱掩碼用于定義連接矩形或正方形的相對邊緣的線以將對應矩形或正方形塊分裂成兩個2d鏡像互補部分。可基于二維鏡像條件定義不同的線。線可為線性或其它形式,例如,階梯或其它任意形狀。線可在從0度至359度中任何角度或其中一部分處傾斜。2d鏡像屬性提供塊的高效壓縮。
現在參考圖5a-5c,此等圖是本發明的一些實施例提供的繪示用于定義旋轉對稱掩碼的像素2d鏡像的示意圖。
圖5a繪示一般2d鏡像概念。例如,出于示例性目的展示大小為8個像素×8個像素的塊502。區域a和區域b由穿過塊502的中間水平地定位的虛擬線504分離。區域a和區域b中具有同一數目的像素是相互的2d鏡像。對于mxn矩形,可使像素2d鏡像一般化:當像素(m,n)在區域a中時,則像素(m-1-m,n-1-n)在區域b中。
應理解,2d鏡像概念可適于不同大小的其它正方形或矩形塊。應理解,可針對以不同傾斜(例如,垂直地)繪制的其它虛擬線繪示2d鏡像概念,其中由穿過塊502的中間垂直地定位的虛擬線定義且分離區域a和區域b。
連接塊502的相對邊緣且穿越塊502的中心點的多條不同線用于形成旋轉對稱掩碼庫,如圖5b和5c中所繪示。每一個別線定義個別掩碼。每一線將塊502分裂成兩個互補部分:區域a和區域b。
可選地,由相應矩陣定義不同的旋轉對稱掩碼(例如,每一像素位置由矩陣中的位置表示)。每一矩陣定義區域a和區域b的不同分離(例如,連接二維空間的相對邊緣的線)以將二維空間分裂成兩個互補部分。
應注意,可使用其它維度空間,例如,三維、四維或更多維。旋轉對稱掩碼經定義以分裂相應多維空間,例如,用于分裂三維空間的平面。
應注意,當線經過樣本的位置時,不需要子樣本,這是因為可將全樣本指派到區域a且從區域b將其移除。可通過添加到區域a且從區域b移除而非(例如)執行針對每一相應區域的完整計算集來減少計算資源(例如,處理器和/或存儲器)。
現在參考圖6a-6c,此等圖是本發明的一些實施例提供的旋轉對稱掩碼庫的一些示例。圖6a是用于分裂大小為32x32個像素的塊的掩碼庫的示例。圖6b是用于分裂大小為16x16個像素的塊的掩碼庫的示例。圖6c是用于分裂大小為8x8的塊的掩碼庫的示例。
圖6a-6c的旋轉對稱掩碼庫是基于傾斜線,所述傾斜線將塊分裂成兩個梯形區域,由掩碼的暗區域602(例如,藍色)和掩碼的亮區域(604)(例如,紅色)表示。庫中的每一掩碼具有線的稍微不同傾斜。同時,所有掩碼定義了塊內的傾斜線的所有不同排列。基于傾斜線切割,存在2x(l-1)個不同方式來分割大小為lxl的正方形。
在圖6b中,掩碼606a和606b具有穿過它們的并行線,表示從32個掩碼的集合移除掩碼606a和606b以基于上述段落中的方程式形成30個掩碼的集合。兩個掩碼由于鏡像對稱而為現有掩碼的雙倍,且因此可從所生成的集合移除。類似地,在圖6c中,兩個雙倍掩碼與并行線一起展示,表示從集合移除冗余掩碼。
可選地,不同旋轉對稱掩碼(其可存儲為一個或多個庫)中的每一個以分層布置映射。分層布置可減少用于識別最佳掩碼的處理時間和/或資源。
每一庫可單獨映射,每一相應庫的掩碼可以分層布置映射。替代地,一個或多個庫基于相同分層布置一起映射。每一庫內的掩碼基于相同共用分層布置映射。
將掩碼集劃分成單獨拆開節段。分層布置可以是根據線相對于二維空間的邊緣的角度,例如,分層布置可將圖6a-6c的線映射成(例如)0-60度、61-120度和121-180度的群組。當線是對稱和/或非對稱時,分層布置可持續映射181-240度、241-300度和301-360度。可使分層布置分成層次,例如,將0-60度的群組進一步劃分成0-15、16-30、31-45和46-60度的群組。
現在參考圖7,圖7是本發明的一些實施例提供的圖解性地繪示分層布置的示意圖。
經劃分的圓702圖解性地繪示了用于掩碼庫706的分層布置的示例。庫706包含用于大小為16x16的塊的傾斜線掩碼,如參考圖6b所描述。圓702劃分成區域704a-h,每一個表示線傾斜45度。由于傾斜線掩碼的對稱性質而簡化分層布置,將扇區704a與704e(展示為扇區708c)、704b與704f(展示為扇區708b)、704c與704g(展示為扇區708a)且704d與704h(展示為扇區708d)分組在一起。每一扇區708a-d包含具有歸屬于相應角范圍內的線傾斜角的8或7個掩碼。
可選地,媒體編碼器用于以根據所述分層布置定義的次序在不同旋轉對稱掩碼中的至少一些的迭代掩碼選擇中選擇旋轉對稱掩碼。例如,參考圖7,在由方程式22.5+45k(其中k=0、1、2、3)定義的中心角和45度的跨度的4個代表性分區708a-d當中執行搜索。可基于通過適合函數(例如,最小率失真測度)計算的最低成本選擇節段。可以類似方式選擇選定節段內的掩碼。當分層布置包含額外層級時,可以迭代方式搜索額外層級直至識別掩碼為止。
現在參考圖8,圖8是本發明的一些實施例提供的繪示旋轉對稱掩碼的生成和/或表示的示意圖。可選地,基于含有掩碼的塊內的不同排列生成掩碼庫。
出于示例目的,描述用于大小為lxl的塊的掩碼生成,這可延伸到mxn的情況。可從左上角開始、朝向塊的中心前進地生成掩碼。可使移動的組合成2d鏡像以從塊的中心至右下角地獲得其余掩碼圖案。
掩碼可由每一移動的二進制表示來表示。每一移動是水平的(即,從左至右)或垂直的(即,從頂部至底部),由1(例如,往右一步)或0(例如,往下一步)表示。二進制掩碼表示可照原樣傳輸或進一步壓縮。二進制表示提供掩碼的高效(即,在處理器和/或存儲器資源利用方面)傳輸,例如,從編碼器至解碼器。
集合中的每一排列可由總共2xl個移動來定義。
掩碼802由二進制圖案804表示。掩碼806由二進制圖案808表示。
現在參考圖9,圖9是本發明的一些實施例提供的用于選擇用于分裂塊的旋轉對稱掩碼和/或掩碼庫的計算機化方法的清單(例如,流程圖)。替代選擇和/或除選擇以外,可基于塊(例如,提前和/或動態地)生成掩碼和/或掩碼庫。媒體編碼器202用于執行方法的一個或多個方框。可針對掩碼選擇執行方法的一個或多個方框。可以任何次序和/或同時執行方框。
本文所描述(按順序和/或并行、可選地組合地執行)的一個或多個選擇方法可作為掩碼庫內的某一掩碼的選擇依據。替代地或另外,選擇方法可用于首先在多個掩碼庫當中選擇某一掩碼庫和/或在庫當中選擇掩碼子集。可在選定的庫和/或選定的子集當中選擇某一掩碼。步進式和/或分層選擇可通過減小供在每一步選擇的集合的大小來減小搜索范圍,從而減少用于選擇的資源和/或計算。
從庫(或掩碼子集)而非從較大的候選掩碼集中選擇掩碼減少了用于將所選掩碼發送至解碼器的經編碼比特的數目和/或減少計算復雜度和/或存儲器源和/或處理器資源。
可選地,在902處,基于塊的大小和/或形狀選擇庫和/或掩碼。可從如本文所描述的選定庫內選擇掩碼。
替代地或另外,在904處,媒體編碼器用于基于針對(但不限于)以下清單中的任何一個或多個的壓縮偏好從多個旋轉對稱掩碼和/或掩碼庫中選擇旋轉掩碼和/或旋轉對稱掩碼庫:塊、切片、拼片、幀和序列。
壓縮偏好包含在應用某一掩碼時定義塊壓縮性能的一個或多個參數。可按每個掩碼和/或每個掩碼庫定義壓縮偏好。
例如,可基于用于掩碼和/或庫的先前所收集的統計數據估計壓縮偏好。替代地,例如,可通過將候選掩碼中的一個或多個應用于塊來計算壓縮偏好。
當壓縮參數涉及某些權衡(例如,以降低質量為代價降低大小)時,壓縮偏好可幫助掩碼選擇。
從以下各項中的一個或多個個別地或組合地選擇壓縮偏好:
*壓縮復雜度偏好:與用于執行基于掩碼的壓縮的處理資源相關的測度,例如,計算、處理器資源和/或存儲器資源的數目。測度可取決于執行方法的具體計算機;
*壓縮質量偏好(例如,圖像失真):基于掩碼的壓縮是有損操作,導致塊的較低視覺質量。較低質量可以或不可以為人眼所辨識。可基于與由基于掩碼的壓縮所致的信息損失相關的測度(例如,峰值信噪比(psnr)和/或結構相似性(ssim))確定壓縮質量偏好;
*壓縮大小偏好:基于選定掩碼的壓縮之后的塊的大小(例如,比特的數目)。
可選地,媒體編碼器用于根據由針對以下各項的偏好組成的群組的部件自動生成旋轉對稱掩碼庫:塊壓縮復雜度、塊壓縮大小和塊壓縮質量。所生成的掩碼庫具有已知壓縮偏好準則,這允許庫的容易和/或快速選擇。所生成的庫內的掩碼的數目可小于生成所有的可能排列,這是因為僅包含滿足壓縮準則的掩碼。
每一掩碼可與以下壓縮偏好相關聯:(例如)與壓縮偏好值存儲在一起、匹配和/或標記有壓縮偏好值。每一掩碼可與用于計算壓縮復雜度偏好、壓縮質量偏好和/或壓縮大小偏好的一個或多個測度相關聯。
可選地,不同旋轉對稱掩碼中的每一個與經估計的復雜性測度相關聯,所述經估計的復雜性測度指示將相應掩碼應用于具有相應掩碼的大小和形狀的示例性塊的計算復雜度。具有較低經估計的復雜性測度的掩碼經估計需要較少資源(例如,處理器和/或存儲器)。基于經估計結果的掩碼選擇改善了系統效率和/或利用了較少資源。
可選地,不同旋轉對稱掩碼中的每一個與經估計的失真測度相關聯,所述經估計的失真測度指示從將相應掩碼應用于具有相應掩碼的大小和形狀的示例性塊所產生的壓縮失真水平。經估計的失真測度幫助基于有損壓縮權衡選擇掩碼(例如)以選擇具有也生成圖像的高度壓縮的視覺不可區分的壓縮失真水平的掩碼。具有較低經估計的失真測度掩碼經估計在實現目標壓縮失真水平時需要較少資源(例如,處理器和/或存儲器)。
可選地,媒體編碼器用于基于針對塊的壓縮偏好選擇旋轉對稱掩碼。可選地,壓縮偏好選自以下各項中的一個或多個:壓縮復雜度偏好、壓縮質量偏好和壓縮大小偏好。
替代地或另外,在906處,掩碼選擇是基于包含所接收幀的預處理的視頻數據。可由媒體編碼器、由連接到媒體編碼器的另一計算機或由獨立于媒體編碼器(例如,遠程定位的)的另一計算機執行視頻數據預處理。預處理的數據可獨立于幀和/或與幀一起(例如,標記到幀)傳輸到媒體編碼器。
預處理可基于視頻的幀的內容的一個或多個已識別特征,例如,像素圖案、邊緣、像素強度和像素色彩的統計分布。可基于預處理結果將視頻數據預分類。分類可基于用于允許掩碼和/或掩碼庫的選擇的已識別特征。經預分類的視頻數據改善了系統性能,這是因為可更高效地和/或使用基于分類的較少資源來選擇掩碼。
可選地,媒體編碼器用于基于視頻數據的分類從多個候選旋轉對稱掩碼和/或掩碼庫中選擇旋轉對稱掩碼和/或掩碼庫。例如,預處理可識別視頻含有具有許多直線的幀,例如,房子、汽車或其它人造結構的圖像。視頻數據可分類為含有直線。可選擇直線(即,不同角)的掩碼庫。在另一示例中,預處理可識別視頻含有具有許多曲線的幀,例如,樹、樹枝和陸地的圖像。視頻數據可分類為含有曲線。可選擇曲線(即,基于曲線的離散化的階梯線)的掩碼庫。
內容的預處理可提供用于基于預測進行編碼的信息,如本文所描述。
可選地,媒體編碼器用于基于預處理的視頻數據自動生成旋轉對稱掩碼和/或掩碼庫。可根據以下的一個或多個壓縮參數從不同旋轉對稱掩碼的掩碼存儲庫中選擇不同旋轉對稱掩碼:針對壓縮復雜度偏好、壓縮大小偏好和/或壓縮質量偏好的預處理的結果。可依據視頻數據預計算壓縮參數。
視頻數據的預處理可改善編碼器的性能。可提前而非在壓縮期間執行資源繁重計算。作為掩碼選擇的依據的數據可以是準備好的以允許塊壓縮過程期間的更快掩碼選擇而非在壓縮過程期間執行掩碼選擇計算。
替代地或另外,在908處,媒體編碼器用于基于變換過程的結果和/或應用于兩個互補部分中的至少一個的變換過程的結果的估計來選擇旋轉對稱掩碼。基于結果和/或經估計結果的掩碼選擇改善了系統效率和/或利用了較少資源。
變換過程的結果可包含變換過程之后的互補部分中的一個或兩者的大小(例如,高于某一閾值的變換系數的絕對值的數目和/或總和)。可選擇產生變換過程之后的部分的最小大小的掩碼。可針對一個或兩個部分計算大小,例如兩個部分的大小的總和。
對變換過程的結果的估計可包含輸入到變換過程的殘差數據的絕對差分總和(sad)。
對變換過程的結果的估計可包含沿殘差數據的水平和/或垂直方向的一階、二階和/或更高階導數的絕對值的總和。
估計可基于來自使用相同掩碼的先前編碼部分的值。
可通過已知變換過程(例如,由壓縮標準定義的變換過程)估計變換過程的結果。
替代地或另外,在910處,媒體編碼器用于基于應用于旋轉對稱塊對的至少一個部件的變換系數的量化過程和/或熵編碼過程的結果和/或結果的估計來選擇旋轉對稱掩碼。
可選擇產生量化和/或熵編碼過程之后的部分的最小大小的掩碼,例如,分別為:量化之后的非零系數的數目和/或所生成比特的大小。可針對一個或兩個部分計算大小,例如兩個部分的大小的總和。
估計可基于來自使用相同掩碼的先前量化和/或熵編碼部分的值。
替代地或另外,在912處,媒體編碼器用于根據塊中的像素值圖案選擇旋轉對稱掩碼。例如,可通過圖像分段方法(例如,用于定位邊界和/或邊緣的方法)從塊提取像素值圖案,例如,基于強度閾值化、邊緣檢測或其它適合的方法。像素值圖案可包含塊內的已識別線的方向和/或線(或曲線)的圖案。例如,可基于用于識別與所提取像素圖案最類似的圖案的掩碼的最低成本函數將所提取像素圖案匹配于某一對稱掩碼,例如具有與塊的已識別線相同的方向和/或圖案的匹配掩碼。基于像素值圖案的選擇生成兩個互補部分,其中每一相應部分內的像素相互類似,例如,類似強度和/或色彩。
例如,重新參考圖4,基于邊緣檢測方法提取塊404中的房頂與天空之間的邊緣。基于成本函數將經檢測邊緣映射至掩碼402。在掩碼庫當中,掩碼402內的圖案是最類似于所提取邊緣的圖案。
替代地或另外,在914處,基于經估計的率測度選擇旋轉對稱掩碼,所述經估計的率測度指示當將某一旋轉掩碼應用于具有正在被處理的塊的大小和形狀的示例性塊時所傳輸的比特的數目。較低的比特數目表示關于某一掩碼的更高效壓縮。不同旋轉對稱掩碼中的每一個與經估計的率測度相關聯,所述經估計的率測度指示當將掩碼應用于具有所述大小和形狀的示例性塊時所傳輸的比特的數目。
可關于每一掩碼存儲率測度,從而允許基于經估計的率測度值快速選擇掩碼。可針對每一掩碼提前計算率測度而非在運行時間期間重新計算,從而減少選擇所需要的計算。可基于示例性塊計算率測度,所述示例性塊可為基于塊的先前樣本的平均值(或其它測度)的預定義塊。可基于正在被處理的塊的類似性(例如,基于成本函數)從塊庫中選擇示例性塊。
替代地或另外,在916處,媒體編碼器用于基于統計分類器選擇旋轉對稱掩碼。通過應用不同旋轉對稱掩碼中的至少一些的訓練集記錄結果的分析來生成統計分類器。例如,(可使其加權的)結果可包含壓縮性能指標(例如,大小、復雜度、質量)、處理器資源利用率和存儲器利用率。統計分類器可改善基于包含多個不同所要結果的結果的預測對掩碼的選擇。
可基于由系統處理的實際幀的歷史記錄獲得訓練集。替代地,可基于對將處理的幀的類型的預測獲得訓練集,例如,自然頻道可訓練關于自然視頻的分類器。
分類的結果可用作用于進一步訓練和更新分類器的輸入。
可基于監督式學習和/或非監督式學習方法訓練統計分類器。
可將分類器應用于塊本身以將塊內的像素分類成兩個群組中的一個。可基于旋轉對稱掩碼的旋轉對稱約束劃分兩個群組。掩碼經選擇以匹配塊內的兩個群組的布置。從使用掩碼分裂塊生成的兩個互補部分中的每一部分包含來自相應群組的像素。
替代地或另外,在918處,媒體編碼器用于基于從塊的空間和/或時間相鄰塊提取的內容選擇旋轉對稱掩碼。相鄰者可為圖像內和/或圖像間塊。空間塊可為沿相對于塊的一個、數個或所有方向的塊的相鄰者。時間相鄰塊可來自先前幀(例如,時間上較早)和/或后續幀(例如,時間上較晚)中的相鄰塊。塊可為直接相鄰者或隔開兩個或兩個以上塊(或幀)而定位。含有用作預測器的類似像素圖案的相鄰塊改善了系統性能和/或需要較少資源。
可選地,相鄰者包含先前所處理的塊。先前所處理的塊可用作用于選擇目前正處理的塊的掩碼的預測器。可選地,基于與塊的空間和/或時間相鄰塊相關聯的信息執行旋轉對稱掩碼的選擇。可選地,與空間和/或時間相鄰塊相關聯的信息與預測相關。例如,信息可包含用于減少正在被處理的當前塊與相鄰者中的一個或多個之間的差分的數據,其中忽略冗余信息。可基于差分數據選擇掩碼。
可選地,所提取的內容是根據空間和/或時間相鄰塊中的像素值圖案。相鄰塊的像素圖案可充當用于當前塊中的掩碼的選擇的預測器。例如,像素圖案包含房頂與天空之間的邊界和/或邊緣(如參考圖4所論述)。房頂與天空之間的邊緣連續穿過數個相鄰塊。
基于預測器的編碼改善了系統效率和/或利用了較少資源。
現在重新參考圖1,在106處,基于旋轉對稱掩碼將塊分裂成兩個互補部分。可選地,塊分裂器模塊212c含有供媒體編碼器202執行如本文所描述的塊分裂的程序指令。
在108處,生成旋轉對稱塊對,每一旋轉對稱塊具有兩個互補部分中的一個。可選地,對生成器模塊212d含有供媒體編碼器202執行如本文所描述的對生成的程序指令。
媒體編碼器用于基于兩個互補部分中的一個和經添加以形成具有塊的大小和/或形狀的塊的另一部分生成所述旋轉對稱塊對中的每一部件。
可選地,所添加的部分是由其構建旋轉對稱塊的部分的2d鏡像。
可選地,所添加的部分是由其構建旋轉對稱塊但添加有負號的部分的2d鏡像。在此情況下,旋轉對稱塊含有兩個反對稱部分。
可選地,所添加的部分包含具有預定義序列的墊補,例如,全部為零。
可選地,基于由其構建旋轉對稱塊的部分的180度旋轉生成所添加的部分。
可選地,所添加的部分的維度是基于互補部分的維度,例如,二維。
所生成的旋轉對稱塊對中的每一部件由具有圍繞主對角線或基于所選掩碼的其它切割線圖案成2d鏡像的值的矩陣表示。
在110處,計算用于所述旋轉對稱塊對中的一個或兩個部件的一個或多個變換系數。可選地,針對旋轉對稱塊中的每一個計算變換系數。可選地,系數計算模塊212e含有供媒體編碼器202執行如本文所描述的變換系數計算的程序指令。
可基于一個或多個基于標準的計算方法、基于一個或多個編碼技術和/或基于專有方法執行變換系數的計算。編碼技術的示例包含二維離散余弦變換(dct),例如,當旋轉對稱塊表示為矩陣時可(例如)基于沿每一維度應用的兩個可分離快速dct計算所述二維離散余弦變換,可沿行和然后列或沿列且然后沿行計算2d-dct。變換方法的其它示例包含:2d離散正弦變換(dst)和維持鏡像條件的其它正交和/或標準正交變換方案,例如:
tp,q(m-m-1,n-n-1)=(-1)(p+q)tp,q(m,n),
其中{tp,q(m,n)}是2d變換依據;(m,n)是像素位置,m=0,1,…,m-1;n=0,1,…,n-1;p和q是空間頻率:p=0,1,…,m-1;q=0,1,…,n-1;分別對于對稱和反對稱情況,p+q是偶數或奇數。
基于標準的編碼技術的示例是對于整數變換和/或逆變換的hevc和/或h.265標準。
可選地,當2d鏡像部分添加有負號(即,反對稱)時針對兩個互補部分中的每一個計算正交變換系數集。用于變換系數的計算的對稱和反對稱變換函數的集合可以是不同的。當計算變換系數時,使用相應對稱或反對稱變換函數。
可選地,媒體編碼器用于使用一個或多個空間預測器編碼變換系數,所述一個或多個空間預測器用于旋轉對稱掩碼的相應部分。可針對預測塊、針對預測向量、針對預測誤差和/或針對預測殘差計算變換。可基于正在被處理的旋轉對稱塊中的部分與對應預測塊之間的差分針對時間和/或空間塊(即,圖像間和/或圖像內塊)計算預測殘差。
可選地,媒體編碼器用于使用一個或多個時間預測器編碼變換系數,所述一個或多個時間預測器用于旋轉對稱掩碼的相應部分。替代地或另外,媒體編碼器用于使用空間預測器編碼旋轉對稱塊中的每一個的變換系數,所述空間預測器與相應對應部分相關。替代地或另外,媒體編碼器用于使用運動向量編碼旋轉對稱塊對中的每一個的變換系數,所述運動向量與相應對應部分相關。運動向量可用于計算時間預測。
應注意,可基于用于所有變換系數的一個方法、用于不同變換系數(或變換系數集)的不同方法和/或多個方法的組合計算變換系數。
可選地,媒體編碼器用于使用熵上下文模型編碼變換系數,所述熵上下文模型用于旋轉對稱掩碼。可基于選定掩碼的知識定義熵上下文模型以(例如)基于霍夫曼(huffman)編碼和/或算術編碼來編碼具有無損數據壓縮的變換系數。由于掩碼的熵特性是編碼器提前知道的,因此可計算較簡單的代碼。
熵上下文模型可為專有指定模型和/或基于標準的模型,例如,上下文自適應二進制算術編碼(cabac)方案,例如h.265/hevc、h.264/mpeg-4或其它標準的cabac。
在112處,提供經計算的變換系數以用于進一步處理、存儲和/或傳輸。可選地,耦合到媒體編碼器202的輸出輸入接口214用于提供經計算的變換系數216,如本文所描述。
可選地,在114處,針對幀內的其它塊重復方框102-112。可針對其它幀重復方框102-112。應注意,可并行處理某一幀的塊。
現在參考圖10,圖10是本發明的一些實施例提供的包含有系數編碼器/解碼器1002的用于圖像壓縮和解壓縮的示例性系統1000的方框圖。編碼器/解碼器1002可包含如參考圖2所描述的媒體編碼器202的變換部分、編碼器202的變體(例如,不具有處理器204,使用另一編碼器/解碼器的處理器)和/或圖1的方法的另一實施方案。系統1000內編碼器1002的集成改善了圖像和/或視頻的編碼效率,例如,此通過改善壓縮性能、通過降低處理器資源要求、傳輸器/接收器要求和/或存儲器要求來改善系統1000的整體性能。系統1000內編碼器1002的集成允許較高圖像質量、較高圖像分辨率和/或待使用相同資源處理的較大數目個圖像。
系數編碼器/解碼器1002可實施于與數字圖像和/或視頻相關聯的設備和/或系統內,例如,數碼相機內、電視(例如,高清tv)內、數碼攝像機內、電視廣播單元內、智能手機(或其它移動設備)內、網頁瀏覽器內、用于觀看和/或編輯圖像和/或視頻的計算機軟件內、網絡設備內(用于改善網絡性能)、實時對話應用(例如,視頻聊天、視頻會議和智真系統)內。編碼器/解碼器1002的實現形式可通過降低資源要求(例如,存儲器)改善設備和/或系統的性能,例如,從而允許在存儲器上保存更多圖片和/或視頻、允許保存具有較高質量和/或分辨率的圖片和/或視頻且減小每一圖片和/或視頻的大小因此允許圖片和/或視頻在網絡連接上更快地傳輸。
編碼器/解碼器1002與圖像編碼器/解碼器1004集成在一起,圖像編碼器/解碼器1004用于通過壓縮和/或解壓縮來編碼和/或解碼圖像和/或視頻。編碼器/解碼器1004可以是基于標準(例如,hvec、mpeg-4、jpeg)和/或基于一個或多個專有協議。系數編碼器/解碼器1002可與圖像編碼器/解碼器1004集成在一起,例如,如集成于編碼器/解碼器1004內的硬件內的芯片或其它硬件元件、如插入到編碼器/解碼器1004中的芯片或其它硬件元件、如外部軟件模塊、如集成于編碼器/解碼器1004的代碼內的軟件模塊和/或其組合。
圖像編碼器/解碼器1004可包含編碼和/或解碼組件,例如,以下各項中的一個或多個:量化(例如,通過量化模塊)、系數掃描(例如,通過系數掃描模塊)、熵編碼(例如,通過熵編碼模塊)、圖像內和/或圖像間預測(例如,通過預測模塊)。
系統1000包含耦合到圖像編碼器/解碼器1004的數據接口1006,數據接口1006用于接收一個或多個圖像,例如,從圖像生成器1008、從傳輸器/接收器1010(例如,網絡接口、電視電纜、無線收發器)和/或從其上存儲圖像的存儲器1012。
所接收圖像由圖像編碼器/解碼器1004處理,其中針對一個或多個圖像幀的一個或多個塊生成變換系數,如參考圖1和/或圖2所描述。
經壓縮圖像可存儲于存儲器1012上和/或使用傳輸器/接收器1010傳輸。
當解碼時,可從存儲器1012上的存儲檢索和/或從傳輸器/接收器1010接收圖像。由圖像編碼器/解碼器1004進行解碼,其中由系數編碼器/解碼器1002解碼變換系數,如本文所描述。經解碼的圖像可顯示在顯示器1014上、由傳輸器接收器1010傳輸和/或存儲于存儲器1012上。
現在參考圖11,圖11是本發明的一些實施例提供的用于從變換系數集重建幀中的塊的方法的流程圖。圖11的方法是基于圖1的方法且是對圖1的方法的補充。圖1的方法繪示了變換塊,其是基于圖11的方法的逆變換。圖11的方法可由媒體編碼器的圖2變換部分202執行,所述媒體編碼器用于充當媒體解碼器的逆變換部分。可由相應變換模塊和/或用于執行逆變換處理組件中的一個或多個的其它模塊執行逆變換。
在1102處,接收表示旋轉對稱塊對中的一個或多個部件的變換系數。應注意,在一些情況下,可接收和/或不接收(例如,可跳過不具有系數的塊)不具有任何系數的一個或多個旋轉對稱塊,例如,可接收表示沒有變換系數表示旋轉對稱塊的信號。替代地或另外,應注意,在一些情況下,針對整個塊僅接收一個系數(例如,dc系數)。
可接收表示相關聯的選定旋轉對稱掩碼的信號或假定當故意不接收所述信號時知道所述信號(例如,從預測器的方向推斷掩碼)。旋轉對稱掩碼定義了具有如幀的經解碼塊的大小和/或形狀的多維空間中的旋轉對稱。
在1104處,基于所接收變換系數計算旋轉對稱塊對。旋轉對稱塊對中的每一部件包含兩個互補部分中的一個。
在1106處,從旋轉對稱塊對中的每一相應部件提取兩個互補部分中的每一部分。
在1108處,從兩個互補部分重建塊。可基于旋轉對稱掩碼引導重建。替代地,由不具有掩碼的部分重建塊,基于形成正方形或矩形塊來引導所述重建,例如,如同拼圖散片將兩個部分擬合在一起。
可選地,在幀內指定塊。
在1112處,提供經解碼塊以用于進一步處理、存儲和/或傳輸。可從經重建塊來重建幀。例如,幀可作為視頻的一部分顯示在屏幕上。
現在參考圖12a-12i,此等圖包含執行本文所描述的方法和/或系統的實驗結果的圖像和圖解。圖解表明相對于使用基于壓縮標準的方法的圖像壓縮而言使用本文所描述的系統和/或方法的性能改善。實驗是基于使用幀內編碼方法的個別幀。
實驗執行如下:
獲得來自每一yuv視頻序列的一個幀。如由不同標準所定義,使用各種幀大小,包含:共用中間格式(cif)、四等分-cif(qcif)和高清晰度(hd)。將每一幀均勻地分割成固定nxn大小的塊,包含8x8、16x16和32x32個像素的大小。
生成含有2x(n-1)個不同線定向的旋轉對稱掩碼庫以用于掩碼選擇和應用。
基于h.265標準應用整數變換、按比例縮放和量化方案。
通過將nxn變換系數矩陣細分成4x4變換系數子矩陣來執行系數掃描。在每一4x4矩陣中使用之字型掃描同時跳過零系數來執行系數掃描。
基于h.264cavlc標準編碼變換系數,所述標準也定義了用于預測模式、掩碼類型和mb類型的信號(本文定義為選擇的經編碼塊(即,標準nxn塊或分裂成兩個互補部分的塊,如本文所描述)。
針對nxn個塊的塊內部預測是基于四個模式:垂直(v)、水平(h)、dc(即,平直)、(d)和平面(p)。旋轉對稱塊對的編碼部件是基于單獨和/或共用內部預測器。共用內部預測器包含4個內部模式:v、h、d和p。單獨內部預測器包含基于4個內部模式的組合的排列的16個內部模式:vv、vh、…和pp。
基于標準nxn編碼方法編碼某一塊還是應用旋轉對稱掩碼且編碼旋轉對稱塊對(如本文所描述)的決定是基于定義如下的率失真(rd)成本函數:sse+λ*比特,其中:sse指示經重建塊與輸入塊之間的平方誤差的總和、λ指示取決于量化參數(qp)的項且比特指示包含信令比特的塊中的經編碼比特的數目。編碼決定也是基于非零系數的百分比(圖解中由pernzcoeff表示)做出的。
結果概括如下:
展示對于相同psnr而言比特率降低最高達15%。對于35個qcif序列幀(劃分成大小為16x16的塊),實現對于35-45db的psnr范圍而言比特率平均降低約7%。對于10個較大大小序列幀(劃分成大小為16x16的塊),實現平均降低約7.5%。
圖12a是作為本文所描述的實驗的一部分根據本文所描述的系統和/或方法處理圖像(即,幀)的示例。圖像對應于cif序列名稱akiyo.cif的第十幀。cif幀具有352x288個像素的大小。基于正方形nxn塊將幀均勻地分割成塊,其中n=16個像素(由1202繪示示例性塊)。使用qp=30編碼幀。含有2(n-1)=30個不同線定向的旋轉對稱掩碼庫為用于分裂塊的掩碼的選擇提供依據。圖中繪示具有帶線定向的相關聯選定掩碼的塊,例如,具有掩碼的塊1204。在許多情況下,掩碼線沿著塊內的邊緣。未選擇掩碼的塊編碼為單個nxn塊,且在圖像中繪示為無掩碼,例如,塊1202。
圖12b-i的圖解包含基于圖12a的處理的實驗結果。
圖12b是繪示在相同目標質量水平(psnr表示)下使用標準nxn變換塊在圖12a的編碼圖像上當選擇掩碼以將塊分裂成用于編碼的兩個互補部分時對于圖12a的整個幀而言在比特率方面的改善的圖解。圖解繪示了隨psnr的函數而變的比特率改善的百分率。應注意,對于圖12a的圖像而言使用本文所描述的系統和/或方法實現10%以上的比特率改善。
圖12c是在相同目標質量水平(psnr表示)下使用標準nxn變換塊在圖12a的編碼圖像上當選擇掩碼以將塊分裂成用于編碼的兩個互補部分時對于圖12a的整個幀而言在每個非零(pernz)系數方面的改善的圖解。在量化之后非零的變換系數的數目用于估計用于編碼變換系數的經編碼比特的數目。應注意,非零系數測度不包含信令比特的開銷(例如,預測模式、掩碼選擇模式和mb類型)。圖解表明了使用本文所描述的系統和/或方法在非零變換系數的百分比方面約15%的改善。
圖12d是繪示對于c2處理方案和對于nxn處理方案而言隨比特率的函數而變的y-psnr的圖解。c2處理方案是本文所描述的基于用于變換塊的兩個互補部分的掩碼選擇和生成或使用標準方法編碼nxn塊的方法和/或系統。基于掩碼的編碼或基于nxn塊的編碼的選擇是基于與每一基于掩碼的分區和每一nxn塊相關聯的某一測度。nxn處理方案是基于將每一塊編碼為單個nxn塊的標準方法。圖解表明了對于相同psnr值而言c2方法實現低于nxn方法的比特率,這表示對于相同比特率而言改善了質量。
圖12e是繪示基于c2方法和nxn方法對于整個幀而言隨非零變換系數的百分率的函數而變的y-psnr的圖解。圖解繪示了對于相同psnr而言在非零變換系數的較低百分比方面基于c2方法(即,本文所描述的系統和/或方法)的經改善壓縮性能,這表示對于非零變換系數的相同百分比而言改善了質量。
圖12f是繪示對于nxn標準情況而言內部預測模式的應用頻率的直方圖。在x軸上,1指示無預測、2指示垂直預測、3指示水平預測、4指示dc預測且5指示平面預測。
圖12g是繪示對于本文所描述的方法和/或系統的c2方案而言內部預測模式的應用頻率的直方圖,對于16個單獨預測器模式:1指示無預測、2指示vv預測、3指示vh預測、4指示vd預測、5指示vp預測、6指示hv預測、…、17指示pp預測。
圖12h是繪示30個旋轉對稱掩碼的庫的每一掩碼的應用頻率的直方圖。
圖12i是繪示隨qp的函數而變的三個變量的比率的圖解。
線1214指示對于圖像的塊而言選擇c2方法超過標準nxn方法的塊的百分比。例如,在qp=30下,基于c2方法(基于掩碼選擇和對兩個互補部分的編碼)編碼幀中的塊的約35%,而其余部分(約65%)編碼為單個16x16塊。
線1212指示基于c2方法編碼的幀的比特的百分比。例如,在qp=30下,基于c2方法編碼幀中的比特的約45%。
線1210指示使用c2方法編碼的幀的每個非零變換系數的百分比。例如,在qp=30下,使用c2方法編碼幀中的每個非零變換系數的45%以上。
已出于說明目的呈現了本發明的各種實施例的描述,但并非打算為窮舉性或限制所揭示的實施例。在不背離所描述實施例的范圍和精神的情況下,許多修改和變化對本領域的普通技術人員而言是顯而易見的。挑選本文所用的術語最佳地解釋優于市場上所發現的技術的實施例、實際應用或技術改善的原理或使得本領域的其它普通技術人員能夠理解本文所揭示的實施例。
應預計到,在從本申請案走向成熟的專利的有效期期間,將開發許多相關圖像編碼器和/或圖像解碼器且術語“編碼器”的范圍打算包含推理的所有此類新技術。
如本文所用,術語“約”是指±10%。
術語“包括”、“包含”、“具有”及其同源詞意指“包含但不限于”。此術語囊括術語“由…組成”以及“基本上由……組成”。
短語“基本上由…組成”意指組合物或方法可包含額外成分和/或步驟,但前提是,額外成分和/或步驟實質上不變更所申請組合物或方法的基本和新穎特性。
除非上下文另有明確指示,否則如本文所用,單數形式“一(a/an)”和“所述(the)”包含復數含義。例如,術語“復合物”或“至少一個復合物”可包含多個復合物,包含其混合物。
本文使用詞語“示例性”來指“充當示例、實例或說明”。描述為“示例性”的任何實施例未必理解為優先于或優越于其它實施例和/或并不排除來自其它實施例的特征的并入。
本文使用詞語“可選地”來指“在一些實施例中提供且在其它實施例中不提供”。本發明的任何特定實施例可包含多個“可選”特征,除非此類特征相互沖突。
通篇本申請案中,可以范圍格式呈現本發明的各種實施例。應理解,以范圍格式進行描述僅為方便和簡潔起見且不應視為對本發明范圍的不可變的限制。因此,范圍的描述應視為已具體地揭示所有可能子范圍以及所述范圍內的個別數值。例如,例如從1至6的范圍的描述應視為已具體地揭示例如從1至3、從1至4、從1至5、從2至4、從2至6、從3至6等子范圍以及所述范圍內的個別數字,例如,1、2、3、4、5和6。無論范圍的廣度如何此情況均適用。
每當本文指示數字范圍時,均意指包含所指示范圍內的任何所列舉的數字(分數或整數)。短語“介于第一指示數與第二指示數之間的范圍內”和“介于從第一指示數至第二指示數的范圍內”在本文中交換地使用且意指包含第一和第二指示數以及此二者之間的所有分數和整數。
應了解,也可在單個實施例中提供本發明的出于清楚起見在單獨實施例的上下文中描述的某些特征。相反地,也可單獨地或在任何適合子組合中或作為在本發明的任何其它所描述實施例中適合地提供本發明的出于簡潔起見在單個實施例的上下文中描述的各種特征。在各種實施例的上下文中所描述的某些特征不應視為所述實施例的必要特征,除非在沒有這些元件的情況下實施例無效。
盡管本發明已連同其具體實施例加以描述,但顯然,許多替代、修改和變化對本領域的技術人員而言是顯而易見的。因此,打算包含歸屬于所附權利要求書的精神和廣泛范圍內的所有此類替代、修改和變化。
本說明書中所提及的所有出版物、專利和專利申請案均以引用其全部內容的方式并入到本說明書中,同樣,每一個別出版物、專利或專利申請案也具體且個別地指示為以引用方式并入本文中。另外,對本申請案中的任何參考的引用或識別不應視為允許此類參考可用作本發明的背景技術。就使用節段標題而言,不應將節段標題視為必需的限制。