用大宏塊進行視頻譯碼的制作方法
【專利摘要】本發(fā)明涉及用大宏塊進行視頻譯碼,描述用于使用大于由常規(guī)視頻編碼和譯碼標準規(guī)定的宏塊的宏塊來編碼和解碼數(shù)字視頻數(shù)據(jù)的技術。舉例來說,所述技術包括使用包含大于16×16像素的宏塊來編碼和解碼視頻流。在一個實例中,一種設備包括視頻編碼器,所述視頻編碼器經(jīng)配置以:編碼包含多個視頻塊的經(jīng)譯碼單元,其中所述多個視頻塊中的至少一者包含大于16×16像素的大??;以及產(chǎn)生包括最大大小值的用于所述經(jīng)譯碼單元的語法信息,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大一者的大小。所述語法信息還可包括最小大小值。以此方式,所述編碼器可向解碼器指示將應用于所述經(jīng)譯碼單元的適當語法解碼器。
【專利說明】用大宏塊進行視頻譯碼
[0001]分案申請信息
[0002]本發(fā)明專利申請是申請日為2009年9月29日,申請?zhí)枮?00980139141.9,以及發(fā)明名稱為“用大宏塊進行視頻譯碼”的發(fā)明專利申請案的分案申請。
[0003]本申請案主張2008年10月3日申請的第61/102,787號美國臨時申請案、2009年I月13日申請的第61/144,357號美國臨時申請案和2009年4月3日申請的第61/166,631號美國臨時申請案的權益,所述申請案中的每一者以全文引用的方式并入本文中。
[0004]本申請案涉及均與本申請案同一天申請、均具有相同標題“使用大宏塊的視頻譯碼(VIDEO CODING WITH LARGE MACROBLOCKS) ”的美國專利申請案(暫時通過代理人案號090033U1、090033U2、030033U3來引用),所述申請案均轉讓給本受讓人且其全文在此以引用的方式明確地并入本文中以用于所有目的。
【技術領域】
[0005]本發(fā)明涉及數(shù)字視頻譯碼,且更特定來說,涉及基于塊的視頻譯碼。
【背景技術】
[0006]可將數(shù)字視頻能力并入較廣范圍的裝置中,包括數(shù)字電視、數(shù)字直播系統(tǒng)、無線廣播系統(tǒng)、個人數(shù)字助理(PDA)、膝上型或桌上型計算機、數(shù)碼相機、數(shù)字記錄裝置、視頻游戲裝置、視頻游戲控制臺、蜂窩式或衛(wèi)星無線電電話等。數(shù)字視頻裝置實施視頻壓縮技術,例如由 MPEG-2、MPEG-4、ITU-T H.263 或 ITU-T H.264/MPEG-4 第 10 部分高級視頻譯碼(AVC)界定的標準和所述標準的擴展部分中所描述的那些視頻壓縮技術,以更有效地發(fā)射和接收數(shù)字視頻信息。
[0007]視頻壓縮技術執(zhí)行空間預測和/或時間預測以減少或移除視頻序列中所固有的冗余。對于基于塊的視頻譯碼,可將一視頻幀或切片分割成若干宏塊??蛇M一步分割每一宏塊。使用關于相鄰宏塊的空間預測編碼經(jīng)幀內(nèi)譯碼的(I)幀或切片中的宏塊。經(jīng)幀間譯碼的(P或B)幀或切片中的宏塊可使用關于同一幀或切片中的相鄰宏塊的空間預測或關于其它參考幀的時間預測。
【發(fā)明內(nèi)容】
[0008]一股來說,本發(fā)明描述用于使用大宏塊編碼數(shù)字視頻數(shù)據(jù)的技術。大宏塊大于一股由現(xiàn)有視頻編碼標準規(guī)定的宏塊。大多數(shù)視頻編碼標準規(guī)定使用16X16像素陣列的形式的宏塊。根據(jù)本發(fā)明,編碼器和解碼器可利用大小大于16X16像素的大宏塊。作為實例,大宏塊可具有32 X 32、64 X 64或更大的像素陣列。
[0009]視頻編碼依賴于空間和/或時間冗余來支持視頻數(shù)據(jù)的壓縮。以較高空間分辨率和/或較高幀速率產(chǎn)生的視頻幀可支持較多冗余。如本發(fā)明中所描述,使用大宏塊可準許視頻譯碼技術利用隨著空間分辨率和/或幀速率增加而產(chǎn)生的較大冗余度。根據(jù)本發(fā)明,視頻譯碼技術可利用多種特征來支持對大宏塊的譯碼。[0010]如本發(fā)明中所描述,大宏塊譯碼技術可將大宏塊分割成若干分區(qū),且針對選定分區(qū)使用不同分區(qū)大小和不同譯碼模式(例如,不同的空間(I)模式或時間(P或B)模式)。作為另一實例,一種譯碼技術可利用分層經(jīng)譯碼塊模式(coded block pattern, CBP)值來有效地識別大宏塊內(nèi)的具有非零系數(shù)的經(jīng)譯碼的宏塊和分區(qū)。作為另一實例,一種譯碼技術可比較通過使用大宏塊與小的宏塊進行譯碼而產(chǎn)生的速率-失真量度以選擇產(chǎn)生更有利的結果的宏塊大小。
[0011]在一個實例中,本發(fā)明提供一種方法,其包含:用視頻編碼器編碼具有大于16X16像素的大小的視頻塊;產(chǎn)生指示所述塊的所述大小的塊類型語法信息;以及產(chǎn)生用于所述經(jīng)編碼塊的經(jīng)譯碼塊模式值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù)。
[0012]在另一實例中,本發(fā)明提供一種設備,其包含視頻編碼器,所述視頻編碼器經(jīng)配置以:編碼具有大于16X 16像素的大小的視頻塊;產(chǎn)生指示所述塊的所述大小的塊類型語法信息;以及產(chǎn)生用于所述經(jīng)編碼塊的經(jīng)譯碼塊模式值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù)。
[0013]在另一實例中,本發(fā)明提供一種計算機可讀媒體,其經(jīng)編碼有用于致使視頻編碼設備執(zhí)行以下操作的指令:用視頻編碼器編碼具有大于16X16像素的大小的視頻塊;產(chǎn)生指示所述塊的所述大小的塊類型語法信息;以及產(chǎn)生用于所述經(jīng)編碼塊的經(jīng)譯碼塊模式值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù)。
[0014]在一額外實例中,本發(fā)明提供一種方法,其包含:用視頻解碼器接收具有大于16X 16像素的大小的經(jīng)編碼視頻塊;接收指示所述經(jīng)編碼塊的所述大小的塊類型語法信息;接收用于所述經(jīng)編碼塊的經(jīng)譯碼塊模式值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù);以及基于所述塊類型語法信息和用于所述經(jīng)編碼塊的所述經(jīng)譯碼塊模式值來解碼所述經(jīng)編碼塊。
[0015]在另一實例中,本發(fā)明提供一種設備,其包含視頻解碼器,所述視頻解碼器經(jīng)配置以:接收具有大于16X16像素的大小的經(jīng)編碼視頻塊;接收指示所述經(jīng)編碼塊的所述大小的塊類型語法信息;接收用于所述經(jīng)編碼塊的經(jīng)譯碼塊模式值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù);以及基于所述塊類型語法信息和用于所述經(jīng)編碼塊的所述經(jīng)譯碼塊模式值來解碼所述經(jīng)編碼塊。
[0016]在另一實例中,本發(fā)明提供一種計算機可讀媒體,其包含用以致使視頻解碼器執(zhí)行以下操作的指令:接收具有大于16X 16像素的大小的經(jīng)編碼視頻塊;接收指示所述經(jīng)編碼塊的所述大小的塊類型語法信息;接收用于所述經(jīng)編碼塊的經(jīng)譯碼塊模式值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù);以及基于所述塊類型語法信息和用于所述經(jīng)編碼塊的所述經(jīng)譯碼塊模式值來解碼所述經(jīng)編碼塊。
[0017]在另一實例中,本發(fā)明提供一種方法,其包含:用視頻編碼器接收具有大于16X16像素的大小的視頻塊;將所述塊分割成若干分區(qū);使用第一編碼模式編碼所述分區(qū)中的一者;使用不同于所述第一編碼模式的第二編碼模式編碼所述分區(qū)中的另一者;以及產(chǎn)生指示所述塊的所述大小并識別所述分區(qū)和用于編碼所述分區(qū)的所述編碼模式的塊類型語法信息。
[0018]在一額外實例中,本發(fā)明提供一種設備,其包含視頻編碼器,所述視頻編碼器經(jīng)配置以:接收具有大于16X 16像素的大小的視頻塊;將所述塊分割成若干分區(qū);使用第一編碼模式編碼所述分區(qū)中的一者;使用不同于所述第一編碼模式的第二編碼模式編碼所述分區(qū)中的另一者;產(chǎn)生指示所述塊的所述大小并識別所述分區(qū)和用于編碼所述分區(qū)的所述編碼模式的塊類型語法信息。
[0019]在另一實例中,本發(fā)明提供一種計算機可讀媒體,其經(jīng)編碼有用以致使視頻編碼器執(zhí)行以下操作的指令:接收具有大于16X 16像素的大小的視頻塊;將所述塊分割成若干分區(qū);使用第一編碼模式編碼所述分區(qū)中的一者;使用不同于所述第一編碼模式的第二編碼模式編碼所述分區(qū)中的另一者;以及產(chǎn)生指示所述塊的所述大小并識別所述分區(qū)和用于編碼所述分區(qū)的所述編碼模式的塊類型語法信息。
[0020]在另一實例中,本發(fā)明提供一種方法,其包含:用視頻解碼器接收具有大于16X 16像素的大小的視頻塊,其中將所述塊分割成若干分區(qū),使用第一編碼模式編碼所述分區(qū)中的一者且使用不同于所述第一編碼模式的第二編碼模式編碼所述分區(qū)中的另一者;接收指示所述塊的所述大小并識別所述分區(qū)和用于編碼所述分區(qū)的所述編碼模式的塊類型語法信息;以及基于所述塊類型語法信息來解碼所述視頻塊。
[0021]在另一實例中,本發(fā)明提供一種設備,其包含視頻解碼器,所述視頻解碼器經(jīng)配置以:接收具有大于16X16像素的大小的視頻塊,其中所述塊經(jīng)分割成若干分區(qū),所述分區(qū)中的一者是使用第一編碼模式而被編碼且所述分區(qū)中的另一者是使用一不同于所述第一編碼模式的第二編碼模式而被編碼;接收指示所述塊的所述大小并識別所述分區(qū)和用于編碼所述分區(qū)的所述編碼模式的塊類型語法信息;以及基于所述塊類型語法信息來解碼所述視頻塊。
[0022]在一額外實例中,本發(fā)明提供一種計算機可讀媒體,其經(jīng)編碼有用以致使視頻解碼器執(zhí)行以下操作的指令:用視頻解碼器接收具有大于16X 16像素的大小的視頻塊,其中所述塊經(jīng)分割成若干分區(qū),所述分區(qū)中的一者是使用第一編碼模式而被編碼且所述分區(qū)中的另一者是使用不同于所述第一編碼模式的第二編碼模式而被編碼;接收指示所述塊的所述大小并識別所述分區(qū)和用于編碼所述分區(qū)的所述編碼模式的塊類型語法信息;以及基于所述塊類型語法信息來解碼所述視頻塊。
[0023]在另一實例中,本發(fā)明提供一種方法,其包含:用數(shù)字視頻編碼器接收視頻譯碼單元;確定使用具有16X16像素的大小的第一視頻塊編碼所述視頻譯碼單元的第一速率-失真量度;確定使用具有大于16X16像素的大小的第二視頻塊編碼所述視頻譯碼單元的第二速率-失真量度,在所述第一速率-失真量度小于第二速率-失真量度時使用所述第一視頻塊來編碼所述視頻譯碼單元;以及在所述第二速率-失真量度小于所述第一速率-失真量度時使用所述第二視頻塊來編碼所述視頻譯碼單元。
[0024]在一額外實例中,本發(fā)明提供一種設備,其包含視頻編碼器,所述視頻編碼器經(jīng)配置以:接收視頻譯碼單元;確定使用具有16X16像素的大小的第一視頻塊編碼所述視頻譯碼單元的第一速率-失真量度;確定使用具有大于16X16像素的大小的第二視頻塊編碼所述視頻譯碼單元的第二速率-失真量度;在所述第一速率-失真量度小于第二速率-失真量度時使用所述第一視頻塊來編碼所述視頻譯碼單元;在所述第二速率-失真量度小于所述第一速率-失真量度時使用所述第二視頻塊來編碼所述視頻譯碼單元。
[0025]在另一實例中,本發(fā)明提供一種計算機可讀媒體,其經(jīng)編碼有用以致使視頻編碼器執(zhí)行以下操作的指令:接收視頻譯碼單元;確定使用具有16X 16像素的大小的第一視頻塊編碼所述視頻譯碼單元的第一速率-失真量度;確定使用具有大于16X16像素的大小的第二視頻塊編碼所述視頻譯碼單元的第二速率-失真量度;在所述第一速率-失真量度小于第二速率-失真量度時使用所述第一視頻塊來編碼所述視頻譯碼單元;以及在所述第二速率-失真量度小于所述第一速率-失真量度時使用所述第二視頻塊來編碼所述視頻譯碼單元。
[0026]在另一實例中,本發(fā)明提供一種方法,其包含:用視頻編碼器編碼包含多個視頻塊的經(jīng)譯碼單元,其中所述多個視頻塊中的至少一者包含大于16X16像素的大??;以及產(chǎn)生包括最大大小值的用于所述經(jīng)譯碼單元的語法信息,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大小。
[0027]在另一實例中,本發(fā)明提供一種設備,其包含視頻編碼器,所述視頻編碼器經(jīng)配置以:編碼包含多個視頻塊的經(jīng)譯碼單元,其中所述多個視頻塊中的至少一者包含大于16X16像素的大??;以及產(chǎn)生包括最大大小值的用于所述經(jīng)譯碼單元的語法信息,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大小。
[0028]在另一實例中,本發(fā)明提供一種設備,其包含包含以下裝置的設備:用于編碼包含多個視頻塊的經(jīng)譯碼單元的裝置,其中所述多個視頻塊中的至少一者包含大于16X16像素的大小;以及用于產(chǎn)生包括最大大小值的用于所述經(jīng)譯碼單元的語法信息的裝置,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大小。
[0029]在另一實例中,本發(fā)明提供一種計算機可讀存儲媒體,其經(jīng)編碼有用以致使可編程處理器執(zhí)行以下操作的指令:編碼包含多個視頻塊的經(jīng)譯碼單元,其中所述多個視頻塊中的至少一者包含大于16X16像素的大??;以及產(chǎn)生包括最大大小值的用于所述經(jīng)譯碼單元的語法信息,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大小。
[0030]在另一實例中,本發(fā)明提供一種方法,其包含:用視頻解碼器接收包含多個視頻塊的經(jīng)譯碼單元,其中所述多個視頻塊中的至少一者包含大于16X16像素的大小;接收包括最大大小值的用于所述經(jīng)譯碼單元的語法信息,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大小;根據(jù)所述最大大小值選擇塊類型語法解碼器;以及使用所述選定塊類型語法解碼器解碼所述經(jīng)譯碼單元中的所述多個視頻塊中的每一者。
[0031]在另一實例中,本發(fā)明提供一種設備,其包含視頻解碼器,所述視頻解碼器經(jīng)配置以:接收包含多個視頻塊的經(jīng)譯碼單元,其中所述多個視頻塊中的至少一者包含大于16X16像素的大??;接收包括最大大小值的用于所述經(jīng)譯碼單元的語法信息,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大小;根據(jù)所述最大大小值選擇塊類型語法解碼器;以及使用所述選定塊類型語法解碼器解碼所述經(jīng)譯碼單元中的所述多個視頻塊中的每一者。
[0032]在另一實例中,本發(fā)明提供:用于接收包含多個視頻塊的經(jīng)譯碼單元的裝置,其中所述多個視頻塊中的至少一者包含大于16X16像素的大?。挥糜诮邮瞻ㄗ畲蟠笮≈档挠糜谒鼋?jīng)譯碼單元的語法信息的裝置,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大小;用于根據(jù)所述最大大小值選擇塊類型語法解碼器的裝置;以及用于使用所述選定塊類型語法解碼器解碼所述經(jīng)譯碼單元中的所述多個視頻塊中的每一者的裝置。
[0033]在另一實例中,本發(fā)明提供一種計算機可讀存儲媒體,其經(jīng)編碼有用于致使可編程處理器執(zhí)行以下操作的指令:接收包含多個視頻塊的經(jīng)譯碼單元,其中所述多個視頻塊中的至少一者包含大于16X16像素的大??;接收包括最大大小值的用于所述經(jīng)譯碼單元的語法信息,其中所述最大大小值指示所述經(jīng)譯碼單元中的所述多個視頻塊中的最大者的大?。桓鶕?jù)所述最大大小值選擇塊類型語法解碼器;以及使用所述選定塊類型語法解碼器解碼所述經(jīng)譯碼單元中的所述多個視頻塊中的每一者。
[0034]在以下附圖和描述中闡述一個或一個以上實例的細節(jié)。將從所述描述和圖式并從權利要求書明白其它特征、目標和優(yōu)點。
【專利附圖】
【附圖說明】
[0035]圖1為說明使用大宏塊編碼和解碼數(shù)字視頻數(shù)據(jù)的實例視頻編碼和解碼系統(tǒng)的方框圖。
[0036]圖2為說明實施用于譯碼大宏塊的技術的視頻編碼器的一實例的方框圖。
[0037]圖3為說明實施用于譯碼大宏塊的技術的視頻解碼器的一實例的方框圖。
[0038]圖4A為說明在大宏塊的各種層級中的分割的概念圖。
[0039]圖4B為說明將不同譯碼模式指派到大宏塊的不同分區(qū)的概念圖。
[0040]圖5為說明大宏塊的各種層級的分層視圖的概念圖。
[0041]圖6為說明用于設定64X64像素的大宏塊的經(jīng)譯碼塊模式(CBP)值的實例方法的流程圖。
[0042]圖7為說明用于設定64X64像素的大宏塊的32X32像素分區(qū)的CBP值的實例方法的流程圖。
[0043]圖8為說明用于設定64X64像素的大宏塊的32X32像素分區(qū)的16X16像素分區(qū)的CBP值的實例方法的流程圖。
[0044]圖9為說明用于確定二位lumal6X8_CBP值的實例方法的流程圖。
[0045]圖10為說明64X64像素的大宏塊的一實例布置的方框圖。
[0046]圖11為說明用于計算NXN像素的大視頻塊的最佳分割和編碼方法的實例方法的流程圖。
[0047]圖12為說明具有各種分區(qū)的實例64X64像素宏塊和用于每一分區(qū)的選定編碼方法的方框圖。
[0048]圖13為說明用于確定用于編碼視頻序列的幀的宏塊的最佳大小的實例方法的流程圖。
[0049]圖14為說明實例無線通信裝置的方框圖,所述無線通信裝置包括使用大宏塊編碼數(shù)字視頻數(shù)據(jù)的視頻編碼器/解碼器(CODEC)。
[0050]圖15為說明大宏塊的分層CBP表示的實例陣列表示的方框圖。
[0051]圖16為說明對應于圖15的分層CBP表不的實例樹結構的方框圖。
[0052]圖17為說明用于使用經(jīng)譯碼單元的語法信息來指示和選擇用于所述經(jīng)譯碼單元的視頻塊的基于塊的語法編碼器和解碼器的實例方法的流程圖?!揪唧w實施方式】
[0053]本發(fā)明描述用于使用大宏塊編碼和解碼數(shù)字視頻數(shù)據(jù)的技術。大宏塊大于一股由現(xiàn)有視頻編碼標準規(guī)定的宏塊。大多數(shù)視頻編碼標準規(guī)定使用16X16像素陣列的形式的宏塊。根據(jù)本發(fā)明,編碼器和/或解碼器可利用大小大于16X16像素的大宏塊。作為實例,大宏塊可具有32X32、64X64或可能更大的像素陣列。
[0054]一股來說,如本文中所使用的術語“宏塊”可指代包含表達為NXN像素的經(jīng)界定大小的像素陣列的數(shù)據(jù)結構,其中N為正整數(shù)值。宏塊可界定:四個亮度塊,每一亮度塊包含(N/2) X (N/2)像素的陣列;兩個色度塊,每一色度塊包含NXN像素的陣列;以及標頭,其包含宏塊類型信息和經(jīng)譯碼塊模式(CBP)信息,如下文更詳細地論述。
[0055]常規(guī)視頻譯碼標準通常規(guī)定經(jīng)界定的宏塊大小為16X 16像素陣列。根據(jù)本發(fā)明中所描述的各種技術,宏塊可包含NXN像素陣列,其中N可大于16。同樣地,常規(guī)視頻譯碼標準規(guī)定經(jīng)幀間編碼的宏塊通常經(jīng)指派有單一運動向量。根據(jù)本發(fā)明中所描述的各種技術,多個運動向量可經(jīng)指派有用于NXN宏塊的經(jīng)幀間編碼的分區(qū),如下文更詳細地描述。對“大宏塊”或類似短語的引用一股指代具有大于16X16的像素陣列的宏塊。
[0056]在一些情況下,大宏塊可支持譯碼效率的改進和/或數(shù)據(jù)發(fā)射開銷的減少,同時維持或可能改進圖像質量。舉例來說,使用大宏塊可準許視頻編碼器和/或解碼器利用以增加的空間分辨率(例如,每幀1280X 720或1920X 1080像素)和/或增加的幀速率(例如,每秒30幀或60幀)產(chǎn)生視頻數(shù)據(jù)所提供的增加的冗余。
[0057]作為一說明,具有每幀1280X720像素的空間分辨率和每秒60幀的幀速率的數(shù)字視頻序列在空間上比具有每幀176 X 144像素的空間分辨率和每秒15幀的幀速率的數(shù)字視頻序列大36倍,且在時間上比具有每幀176 X 144像素的空間分辨率和每秒15幀的幀速率的數(shù)字視頻序列快4倍。通過增加的宏塊大小,視頻編碼器和/或解碼器可更好地利用增加的空間和/或時間冗余來支持視頻數(shù)據(jù)的壓縮。
[0058]而且,通過使用較大宏塊,針對給定幀或切片,可編碼較小數(shù)目個塊,從而減少需要發(fā)射的開銷信息的量。換句話說,較大宏塊可準許針對每一幀或切片譯碼的宏塊的總數(shù)目的減少。如果(例如)幀的空間分辨率增加4倍,則對于所述幀中的像素,將需要4倍的16X16宏塊。在此實例中,在64X 64宏塊的情況下,減少了處置增加的空間分辨率所需的宏塊的數(shù)目。在每一幀或切片的減少數(shù)目個宏塊的情況下,例如,可減少例如語法信息、運動向量數(shù)據(jù)等的譯碼信息的累積量。
[0059]在本發(fā)明中,宏塊的大小一股指代宏塊中所含有的像素的數(shù)目,例如,64X64、32X32、16X16等。因此,大宏塊(例如,64X64或32X32)可能在其含有比16X16宏塊的像素數(shù)目大的數(shù)目個像素的意義上是大的。然而,由大宏塊的垂直和水平尺寸界定的空間區(qū)域(即,作為由視頻幀的垂直和水平尺寸界定的區(qū)域的部分)可大于或可不大于常規(guī)16X16宏塊的區(qū)域。在一些實例中,大宏塊的區(qū)域可與常規(guī)的16X16宏塊相同或類似。然而,大宏塊具有以宏塊內(nèi)的像素的較高數(shù)目和較高空間密度為特征的較高空間分辨率。
[0060]可至少部分基于幀中的像素的數(shù)目(即,幀中的空間分辨率)來配置宏塊的大小。如果幀具有較高數(shù)目個像素,則可將大宏塊配置為具有較高數(shù)目個像素。作為一說明,視頻編碼器可經(jīng)配置以針對以每秒30幀顯示的1280X720像素幀而利用32X32像素宏塊。作為另一說明,視頻編碼器可經(jīng)配置以針對以每秒60幀顯示的1280X720像素幀而利用64X64像素宏塊。
[0061]由編碼器編碼的每一宏塊可能需要描述宏塊的一個或一個以上特性的數(shù)據(jù)。所述數(shù)據(jù)可指示(例如)用于表示宏塊的大小、分割宏塊的方式,和應用于宏塊和/或其分區(qū)的譯碼模式(空間或時間)的宏塊類型數(shù)據(jù)。另外,所述數(shù)據(jù)可包括運動向量差異(mvd)數(shù)據(jù)以及表示宏塊和/或其分區(qū)的運動向量信息的其它語法元素。而且,所述數(shù)據(jù)可包括經(jīng)譯碼塊模式(CBP)值以及表示預測后的殘余信息的其它語法元素。宏塊類型數(shù)據(jù)可提供于大宏塊的單一宏塊標頭中。
[0062]如上文所提及,通過利用大宏塊,編碼器可減少每一幀或切片的宏塊的數(shù)目,且借此減少針對每一幀或切片需要發(fā)射的凈開銷的量。而且,通過利用大宏塊,針對特定幀或切片,宏塊的總數(shù)目可減小,此可減少向用戶顯示的視頻中的塊狀假影(blocky artifact)。
[0063]本發(fā)明中所描述的視頻編碼技術可利用一個或一個以上特征來支持對大宏塊的譯碼。舉例來說,可將大宏塊分割成若干較小分區(qū)。可將不同譯碼模式(例如,不同的空間(I)或時間(P或B)譯碼模式)應用于大宏塊內(nèi)的選定分區(qū)。而且,可利用分層經(jīng)譯碼塊模式(CBP)值來有效地識別具有表示殘余數(shù)據(jù)的非零變換系數(shù)的經(jīng)譯碼的宏塊和分區(qū)。另夕卜,可比較使用大宏塊大小與小宏塊大小進行譯碼的速率-失真量度以選擇產(chǎn)生有利結果的宏塊大小。此外,包含變化大小的宏塊的經(jīng)譯碼單元(例如,幀、切片、序列,或圖片群組)可包括指示所述經(jīng)譯碼單元中的最大宏塊的大小的語法元素。如下文更詳細地描述,大宏塊包含不同于標準的16X16像素塊的塊層級語法。因此,通過指示經(jīng)譯碼單元中的最大宏塊的大小,編碼器可向解碼器發(fā)信號通知將應用于所述經(jīng)譯碼單元的宏塊的塊層級語法解碼器。
[0064]針對大宏塊中的不同分區(qū)使用不同譯碼模式可被稱作大宏塊的混合模式譯碼。代替均勻地譯碼大宏塊以使得所有分區(qū)具有相同的幀內(nèi)或幀間譯碼模式,可譯碼大宏塊以使得一些分區(qū)具有不同譯碼模式,例如不同的幀內(nèi)譯碼模式(例如,I_16X16、I_8X8、I_4X4)或幀內(nèi)和幀間譯碼模式。
[0065]如果將大宏塊劃分成兩個或兩個以上分區(qū),則(例如)可用第一模式譯碼至少一個分區(qū)且可用不同于所述第一模式的第二模式譯碼另一分區(qū)。在一些情況下,第一模式可為第一I模式且第二模式可為不同于所述第一I模式的第二I模式。在其它情況下,第一模式可為I模式且第二模式可為P或B模式。因此,在一些實例中,大宏塊可包括一個或一個以上在時間上(P或B)譯碼的分區(qū)和一個或一個以上在空間上(I)譯碼的分區(qū),或一個或一個以上具有不同I模式的在空間上譯碼的分區(qū)。
[0066]一個或一個以上分層經(jīng)譯碼塊模式(CBP)值可用于有效地描述大宏塊中的任何分區(qū)是否具有至少一個非零變換系數(shù),且如果有,則描述哪些分區(qū)具有至少一個非零變換系數(shù)。變換系數(shù)編碼大宏塊的殘余數(shù)據(jù)。大宏塊層級CBP位指示大宏塊中的任何分區(qū)是否包括非零的、經(jīng)量化的系數(shù)。如果大宏塊中的任何分區(qū)不包括非零、經(jīng)量化的系數(shù),則不需要考慮所述分區(qū)中的任一者是否具有非零系數(shù),因為已知整個大宏塊不具有非零系數(shù)。在此情況下,可使用預測宏塊來解碼不具有殘余數(shù)據(jù)的宏塊。
[0067]或者,如果宏塊層級CBP值指示大宏塊中的至少一個分區(qū)具有非零系數(shù),則可分析分區(qū)層級CBP值以識別所述分區(qū)中的哪一者包括至少一個非零系數(shù)。解碼器接著可檢索具有至少一個非零系數(shù)的分區(qū)的適當殘余數(shù)據(jù),且使用所述殘余數(shù)據(jù)和預測塊數(shù)據(jù)解碼所述分區(qū)。在一些情況下,一個或一個以上分區(qū)可具有非零系數(shù),且因此包括具有適當指示的分區(qū)層級CBP值。大宏塊與所述分區(qū)中的至少一些分區(qū)均可大于16X16像素。
[0068]為了選擇產(chǎn)生有利速率-失真量度的宏塊大小,可針對大宏塊(例如,32X32或64X64)與小宏塊(例如,16X16)兩者分析速率-失真量度。舉例來說,編碼器可比較經(jīng)譯碼單元(例如,幀或切片)的16X16宏塊、32X32宏塊與64X64宏塊之間的速率-失真量度。編碼器可接著選擇產(chǎn)生最好的速率-失真的宏塊大小,且使用所述選定宏塊大小(即,具有最好的速率-失真的宏塊大小)編碼所述經(jīng)譯碼單元。
[0069]所述選擇可基于在三個或三個以上遍次(例如,使用16X16像素宏塊的第一遍次、使用32X32像素宏塊的第二遍次,和使用64X64像素宏塊的第三遍次)中編碼幀或切片,和比較每一遍次的速率-失真量度。以此方式,編碼器可通過改變宏塊大小并選擇產(chǎn)生給定譯碼單元(例如,切片或幀)的最好的或最佳速率-失真的宏塊大小來優(yōu)化速率-失真。編碼器可進一步將用于經(jīng)譯碼單元的識別在經(jīng)譯碼單元中所使用的宏塊的大小的語法信息(例如)作為幀標頭或切片標頭的一部分進行發(fā)射。如下文更詳細地論述,用于經(jīng)譯碼單元的語法信息可包含最大大小指示符,其指示經(jīng)譯碼單元中所使用的宏塊的最大大小。以此方式,編碼器可向解碼器通知預期將哪些語法用于經(jīng)譯碼單元的宏塊。當宏塊的最大大小包含16 X 16像素時,解碼器可預期標準H.264語法且根據(jù)H.264-指定語法來解析宏塊。然而,當宏塊的最大大小大于16X16(例如,包含64X64像素)時,解碼器可預期與較大宏塊的處理有關的經(jīng)修改的語法元素和/或額外語法元素(如本發(fā)明描述),且根據(jù)所述經(jīng)修改的語法或額外語法來解析宏塊。
[0070]對于一些視頻幀或切片,在給定相對低的失真的情況下,大宏塊可呈現(xiàn)實質的位速率節(jié)省且借此產(chǎn)生最好的速率-失真結果。然而,對于其它視頻幀或切片,較小宏塊可呈現(xiàn)較少失真,從而在速率-失真成本分析中重要性超過位速率。因此,在不同情況下,(例如)視視頻內(nèi)容和復雜性而定,64 X 64、32 X 32或16 X 16可適合于不同視頻幀或切片。
[0071]圖1為說明實例視頻編碼和解碼系統(tǒng)10的方框圖,視頻編碼和解碼系統(tǒng)10可利用用于使用大宏塊(即,含有比16X16宏塊多的像素的宏塊)編碼/解碼數(shù)字視頻數(shù)據(jù)的技術。如圖1中所展示,系統(tǒng)10包括經(jīng)由通信信道16將經(jīng)編碼的視頻發(fā)射到目的地裝置14的源裝置12。源裝置12和目的地裝置14可包含較廣范圍的裝置中的任一者。在一些情況下,源裝置12和目的地裝置14可包含無線通信裝置,例如無線手持機、所謂的蜂窩式或衛(wèi)星無線電電話,或可在通信信道16上(在此情況下,通信信道16為無線的)傳送視頻信息的任何無線裝置。然而,本發(fā)明的涉及包含比由常規(guī)視頻編碼標準規(guī)定的宏塊多的像素的大宏塊的使用的技術未必限于無線應用或設定。舉例來說,這些技術可適用于空中電視廣播、有線電視發(fā)射、衛(wèi)星電視發(fā)射、因特網(wǎng)視頻發(fā)射、經(jīng)編碼到存儲媒體上的經(jīng)編碼的數(shù)字視頻,或其它情況。因此,通信信道16可包含適合于發(fā)射經(jīng)編碼的視頻數(shù)據(jù)的無線媒體或有線媒體的任何組合。
[0072]在圖1的實例中,源裝置12可包括視頻源18、視頻編碼器20、調(diào)制器/解調(diào)器(調(diào)制解調(diào)器)22和發(fā)射器24。目的地裝置14可包括接收器26、調(diào)制解調(diào)器28、視頻解碼器30,和顯示裝置32。根據(jù)本發(fā)明,源裝置12的視頻編碼器20可經(jīng)配置以應用用于在視頻編碼過程中使用具有大于由常規(guī)視頻編碼標準規(guī)定的宏塊大小的大小的大宏塊的技術中的一者或一者以上。類似地,目的地裝置14的視頻解碼器30可經(jīng)配置以應用用于在視頻解碼過程中使用大于由常規(guī)視頻編碼標準規(guī)定的宏塊大小的宏塊大小的技術中的一者或一者以上。
[0073]圖1的所說明的系統(tǒng)10僅為一個實例。如本發(fā)明中所描述的用于使用大宏塊的技術可由任何數(shù)字視頻編碼和/或解碼裝置來執(zhí)行。源裝置12和目的地裝置14僅為所述譯碼裝置(在所述譯碼裝置中,源裝置12產(chǎn)生用于發(fā)射到目的地裝置14的經(jīng)譯碼的視頻數(shù)據(jù))的實例。在一些實例中,裝置12、14可以大體上對稱的方式操作以使得裝置12、14中的每一者包括視頻編碼和解碼組件。因此,系統(tǒng)10可支持視頻裝置12、14之間的單向或雙向視頻發(fā)射,以(例如)用于視頻串流、視頻回放、視頻廣播或視頻電話。
[0074]源裝置12的視頻源18可包括視頻俘獲裝置,例如攝像機、含有先前所俘獲的視頻的視頻存檔,和/或來自視頻內(nèi)容提供者的視頻饋入(video feed)。作為另一替代方案,視頻源18可產(chǎn)生基于計算機圖形的數(shù)據(jù)作為源視頻,或產(chǎn)生實況視頻、經(jīng)存檔的視頻與計算機產(chǎn)生的視頻的組合。在一些情況下,如果視頻源18為攝像機,則源裝置12與目的地裝置14可形成所謂的相機電話或視頻電話。然而,如上文所提及,一股來說,本發(fā)明中所描述的技術可適用于視頻譯碼,且可適用于無線或有線應用。在每一情況下,可由視頻編碼器20來編碼經(jīng)俘獲的、經(jīng)預先俘獲的或計算機產(chǎn)生的視頻。經(jīng)編碼的視頻信息可接著由調(diào)制解調(diào)器22根據(jù)通信標準來調(diào)制,且經(jīng)由發(fā)射器24而發(fā)射到目的地裝置14。調(diào)制解調(diào)器22可包括各種混頻器、濾波器、放大器或經(jīng)設計以用于信號調(diào)制的其它組件。發(fā)射器24可包括經(jīng)設計以用于發(fā)射數(shù)據(jù)的電路,包括放大器、濾波器,和一個或一個以上天線。
[0075]目的地裝置14的接收器26在信道16上接收信息,且調(diào)制解調(diào)器28解調(diào)所述信息。同樣,視頻編碼過程可實施本文中所描述的技術中的一者或一者以上以將大宏塊(例如,大于16X16)用于視頻數(shù)據(jù)的幀間(B卩,時間)編碼和/或幀內(nèi)(B卩,空間)編碼。由視頻解碼器30執(zhí)行的視頻解碼過程還可在解碼過程期間使用所述技術。在信道16上傳送的信息可包括由視頻編碼器20界定的語法信息,所述語法信息還被視頻解碼器30使用,所述語法信息包括描述大宏塊的特性和/或處理的語法元素,如下文更詳細地論述。可將語法信息包括于幀標頭、切片標頭、序列標頭(例如,相對于H.264,通過使用經(jīng)譯碼的視頻序列所符合的簡檔和層級)或宏塊標頭中的任一者或全部中。顯示裝置32向用戶顯示經(jīng)解碼的視頻數(shù)據(jù),且可包含例如陰極射線管(CRT)、液晶顯示器(IXD)、等離子顯示器、有機發(fā)光二極管(OLED)顯示器或另一類型的顯示裝置的多種顯示裝置中的任一者。
[0076]在圖1的實例中,通信信道16可包含任何無線或有線通信媒體(例如,射頻(RF)頻譜或一個或一個以上物理傳輸線),或無線與有線媒體的任何組合。通信信道16可形成基于包的網(wǎng)絡(例如,局域網(wǎng)、廣域網(wǎng),或例如因特網(wǎng)等全球網(wǎng)絡)的一部分。通信信道16一股表示用于將視頻數(shù)據(jù)從源裝置12發(fā)射到目的地裝置14的任何合適的通信媒體或不同通信媒體的集合,包括有線或無線媒體的任何合適組合。通信信道16可包括路由器、交換機、基站,或可用于促進從源裝置12到目的地裝置14的通信的任何其它裝備。
[0077]視頻編碼器20和視頻解碼器30可根據(jù)例如ITU-T H.264標準(或者經(jīng)描述為MPEG-4第10部分,高級視頻譯碼(AVC))的視頻壓縮標準而操作。然而,本發(fā)明的技術不限于任何特定譯碼標準。其它實例包括MPEG-2和ITU-T H.263。雖然圖1中未展示,但在一些方面中,視頻編碼器20和視頻解碼器30可各自與音頻編碼器和解碼器集成,且可包括適當?shù)腗UX-DEMUX單元或其它硬件和軟件,以處置共同數(shù)據(jù)流或單獨數(shù)據(jù)流中的音頻與視頻兩者的編碼。如果可適用,則MUX-DEMUX單元可遵從ITUH.223多路復用器協(xié)議,或例如用戶數(shù)據(jù)報協(xié)議(UDP)等其它協(xié)議。
[0078]ITU-T H.264/MPEG-4 (AVC)標準由 ITU-T 視頻譯碼專家組(VCEG)與 IS0/IEC 動畫專家組(MPEG) —起制定,作為被稱為聯(lián)合視頻小組(JVT)的共同伙伴關系的產(chǎn)物。在一些方面中,本發(fā)明中所描述的技術可適用于一股遵從H.264標準的裝置。H.264標準描述于ITU-T研究組的2005年3月公布的ITU-T推薦H.264,用于通用視聽服務的高級視頻譯碼(Advanced Video Coding for generic audiovisual services)中,其在本文中可被稱作H.264標準或H.264規(guī)范,或H.264/AVC標準或規(guī)范。聯(lián)合視頻小組(JVT)不斷致力于對 H.264/MPEG-4AVC 的擴展。
[0079]視頻編碼器20和視頻解碼器30各自可經(jīng)實施為例如一個或一個以上微處理器、數(shù)字信號處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、離散邏輯、軟件、硬件、固件或其任何組合的多種合適編碼器電路中的任一者。視頻編碼器20和視頻解碼器30中的每一者可包括于一個或一個以上編碼器或解碼器中,視頻編碼器20和視頻解碼器30中的任一者可作為組合式編碼器/解碼器(CODEC)的一部分而集成于相應相機、計算機、移動裝置、訂戶裝置、廣播裝置、機頂盒、服務器等中。
[0080]視頻序列通常包括一系列視頻幀。視頻編碼器20對個別視頻幀內(nèi)的視頻塊操作以便編碼視頻數(shù)據(jù)。一視頻塊可對應于一宏塊或一宏塊的一分區(qū)。一視頻塊可進一步對應于一分區(qū)的一分區(qū)。視頻塊可具有固定或不同的大小,且大小可根據(jù)指定譯碼標準或根據(jù)本發(fā)明的技術而不同。每一視頻幀可包括多個切片。每一切片可包括多個宏塊,所述多個宏塊可布置成若干分區(qū),所述分區(qū)還被稱作子塊。
[0081]作為一實例,ITU-T H.264標準支持各種塊大小(例如,針對亮度分量的16乘16、8乘8或4乘4,和針對色度分量的8X8)的幀內(nèi)預測,以及各種塊大小(例如,針對亮度分量的16X16、16X8、8X16、8X8、8X4、4X8和4X4,和針對色度分量的對應縮放的大小)的幀間預測。在本發(fā)明中,“ X ”與“乘”可互換地使用,以指代依據(jù)垂直和水平尺寸的塊的像素尺寸,例如,16X16像素或16乘16像素。一股來說,16X16塊將具有在垂直方向上的16個像素和在水平方向上的16個像素。同樣地,NXN塊一股具有在垂直方向上的N個像素和在水平方向上的N個像素,其中N表示可大于16的正整數(shù)值。一塊中的像素可布置成若干行和若干列。
[0082]小于16乘16的塊大小可稱作16乘16宏塊的分區(qū)。同樣地,對于NXN塊,小于NXN的塊大小可稱作NXN塊的分區(qū)。本發(fā)明的技術描述大于常規(guī)16X 16像素宏塊的宏塊(例如,32X32像素宏塊、64X64像素宏塊,或更大宏塊)的幀內(nèi)譯碼和幀間譯碼。視頻塊可包含像素域中的像素數(shù)據(jù)的塊,或(例如)在對表示經(jīng)譯碼的視頻塊與預測視頻塊之間的像素差異的殘余視頻塊數(shù)據(jù)應用例如離散余弦變換(DCT)、整數(shù)變換、小波變換或概念上類似的變換等變換之后的在變換域中的變換系數(shù)的塊。在一些情況下,視頻塊可包含變換域中的經(jīng)量化的變換系數(shù)的塊。
[0083]較小視頻塊可提供較好的分辨率,且可用于視頻幀的包括高細節(jié)水平的位置。一股來說,可將宏塊和有時稱作子塊的各種分區(qū)視為視頻塊。另外,可將切片視為多個視頻塊,例如宏塊和/或子塊。每一切片可為視頻幀的可獨立解碼的單元?;蛘撸瑤旧砜蔀榭山獯a的單元,或可將幀的其它部分界定為可解碼的單元。術語“經(jīng)譯碼單元”或“譯碼單元”可指代視頻幀的任何可獨立解碼的單元,例如完整幀、幀的切片、圖片群組(GOP)(還稱作序列),或根據(jù)可適用的譯碼技術界定的另一可獨立解碼的單元。
[0084]在用于產(chǎn)生預測數(shù)據(jù)和殘余數(shù)據(jù)的幀內(nèi)預測或幀間預測譯碼之后,且在用于產(chǎn)生變換系數(shù)的任何變換(例如,H.264/AVC中所使用的4X4或8X8整數(shù)變換或離散余弦變換DCT)之后,可執(zhí)行對變換系數(shù)的量化。量化一股指代將變換系數(shù)量化以可能地減少用于表示系數(shù)的數(shù)據(jù)量的過程。量化過程可減少與一些系數(shù)或全部系數(shù)相關聯(lián)的位深度。舉例來說,在量化期間,可將η位值向下舍入到m位值,其中η大于m。
[0085]在量化之后,可(例如)根據(jù)內(nèi)容自適應可變長度譯碼(CAVLC)、上下文自適應二進制算術譯碼(CABAC)或另一熵譯碼方法來執(zhí)行經(jīng)量化數(shù)據(jù)的熵譯碼。經(jīng)配置以用于熵譯碼的處理單元或另一處理單元可執(zhí)行其它處理功能,例如對經(jīng)量化系數(shù)的零游程長度譯碼和/或例如CBP值、宏塊類型、譯碼模式、經(jīng)譯碼單元(例如,幀、切片、宏塊,或序列)的最大宏塊大小等的語法信息的產(chǎn)生。
[0086]根據(jù)本發(fā)明的各種技術,視頻編碼器20可使用大于由常規(guī)視頻編碼標準規(guī)定的宏塊的宏塊來編碼數(shù)字視頻數(shù)據(jù)。在一個實例中,視頻編碼器20可用視頻編碼器編碼具有大于16X 16像素的大小的視頻塊,產(chǎn)生指示所述塊的大小的塊類型語法信息,并產(chǎn)生所述經(jīng)編碼塊的CBP值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù)。宏塊塊類型語法信息可提供于大宏塊的宏塊標頭中。宏塊塊類型語法信息可指示宏塊在幀或切片中的地址或位置,或識別宏塊的位置的宏塊編號、應用于宏塊的譯碼模式的類型、宏塊的量化值、宏塊的任何運動向量信息,和宏塊的CBP值。
[0087]在另一實例中,視頻編碼器20可接收具有大于16X16像素的大小的視頻塊,將所述塊分割成若干分區(qū),使用第一編碼模式編碼所述分區(qū)中的一者,使用不同于所述第一編碼模式的第二編碼模式編碼所述分區(qū)中的另一者,并產(chǎn)生指示所述塊的大小并識別所述分區(qū)和用于編碼所述分區(qū)的編碼模式的塊類型語法信息。
[0088]在一額外實例中,視頻編碼器20可接收視頻譯碼單元(例如,幀或切片),確定使用具有16 X 16像素的大小的第一視頻塊編碼所述視頻譯碼單元的第一速率-失真量度,確定使用具有大于16X 16像素的大小的第二視頻塊編碼所述視頻譯碼單元的第二速率-失真量度,在所述第一速率-失真量度小于第二速率-失真量度時使用所述第一視頻塊編碼所述視頻譯碼單元,且在所述第二速率-失真量度小于所述第一速率-失真量度時使用所述第二視頻塊編碼所述視頻譯碼單元。
[0089]在一個實例中,視頻解碼器30可接收具有大于16X 16像素的大小的經(jīng)編碼視頻塊,接收指示所述經(jīng)編碼塊的大小的塊類型語法信息,接收所述經(jīng)編碼塊的經(jīng)譯碼塊模式值,其中所述經(jīng)譯碼塊模式值指示所述經(jīng)編碼塊是否包括至少一個非零系數(shù),且基于所述塊類型語法信息和所述經(jīng)編碼塊的所述經(jīng)譯碼塊模式值來解碼所述經(jīng)編碼塊。
[0090]在另一實例中,視頻解碼器30可接收具有大于16X16像素的大小的視頻塊,其中所述塊經(jīng)分割成若干分區(qū),所述分區(qū)中的一者經(jīng)幀內(nèi)編碼且所述分區(qū)中的另一者經(jīng)幀內(nèi)編碼,接收指示所述塊的大小并識別所述分區(qū)和用于編碼所述分區(qū)的所述編碼模式的塊類型語法信息,且基于所述塊類型語法信息解碼所述視頻塊。
[0091]圖2為說明視頻編碼器50的一實例的方框圖,視頻編碼器50可實施與本發(fā)明一致的用于使用大宏塊的技術。視頻編碼器50可對應于源裝置12的視頻編碼器20或不同裝置的視頻編碼器。視頻編碼器50可執(zhí)行對視頻幀內(nèi)的塊(包括大宏塊,或大宏塊的分區(qū)或子分區(qū))的幀內(nèi)譯碼和幀間譯碼。幀內(nèi)譯碼依賴于空間預測來減少或移除給定視頻幀內(nèi)的視頻的空間冗余。幀間譯碼依賴于時間預測來減少或移除視頻序列的鄰近幀內(nèi)的視頻的時間冗余。
[0092]幀內(nèi)模式(I模式)可指代若干基于空間的壓縮模式中的任一者,且例如預測(P模式)或雙向(B模式)的幀間模式可指代若干基于時間的壓縮模式中的任一者。本發(fā)明的技術可在幀間譯碼與幀內(nèi)譯碼兩者期間應用。在一些情況下,本發(fā)明的技術還可適用于編碼非視頻數(shù)字圖片。即,數(shù)字靜態(tài)圖片編碼器可利用本發(fā)明的技術以類似于編碼視頻序列中的視頻幀中的經(jīng)幀內(nèi)譯碼的宏塊的方式使用大宏塊對數(shù)字靜態(tài)圖片進行幀內(nèi)譯碼。
[0093]如圖2中所展示,視頻編碼器50接收待編碼的視頻幀內(nèi)的當前視頻塊。在圖2的實例中,視頻編碼器50包括運動補償單元35、運動估計單元36、幀內(nèi)預測單元37、模式選擇單元39、參考幀存儲裝置34、求和器48、變換單元38、量化單元40,和熵譯碼單元46。對于視頻塊重構,視頻編碼器50還包括逆量化單元42、逆變換單元44,和求和器51。還可包括解塊濾波器(圖2中未展示)以將塊邊界濾波,以從經(jīng)重構的視頻移除成塊性假影。在需要時,解塊濾波器通常對求和器51的輸出進行濾波。
[0094]在編碼過程期間,視頻編碼器50接收待譯碼的視頻幀或切片。可將所述幀或切片劃分成多個視頻塊,包括大宏塊。運動估計單元36和運動補償單元35相對于一個或一個以上參考幀中的一個或一個以上塊執(zhí)行對所接收的視頻塊的幀間預測譯碼以提供時間壓縮。幀內(nèi)預測單元37相對于與待譯碼的塊相同的幀或切片中的一個或一個以上相鄰塊執(zhí)行對所接收的視頻塊的幀內(nèi)預測譯碼以提供空間壓縮。
[0095]模式選擇單元39可(例如)基于誤差結果而選擇譯碼模式(幀內(nèi)或幀間)中的一者,且將所得的經(jīng)幀內(nèi)譯碼或經(jīng)幀間譯碼的塊提供到求和器48以產(chǎn)生殘余塊數(shù)據(jù),且提供到求和器51以重構經(jīng)編碼塊以用作參考幀。根據(jù)本發(fā)明的技術,待編碼的視頻塊可包含大于由常規(guī)譯碼標準規(guī)定的宏塊(即,大于16X16像素宏塊)的宏塊。舉例來說,大視頻塊可包含64X64像素宏塊或32X32像素宏塊。
[0096]運動估計單元36與運動補償單元35可高度集成,但出于概念目的而單獨說明。運動估計是產(chǎn)生估計視頻塊的運動的運動向量的過程。運動向量(例如)可指示預測參考幀(或其它經(jīng)譯碼單元)內(nèi)的預測塊相對于當前幀(或其它經(jīng)譯碼單元)內(nèi)正被譯碼的當前塊的位移。預測塊是經(jīng)發(fā)現(xiàn)在像素差異方面密切地匹配待譯碼的塊的塊,其可通過絕對差總和(SAD)、平方差總和(SSD)或其它差異量度來確定。
[0097]運動向量還可指示大宏塊的分區(qū)的位移。在關于具有一個32X64分區(qū)和兩個32X32分區(qū)的64X64像素宏塊的一個實例中,第一運動向量可指不32X64分區(qū)的位移,第二運動向量可指示32X32分區(qū)中的第一者的位移,且第三運動向量可指示32X32分區(qū)中的第二者的位移,所有位移均相對于參考幀中的對應分區(qū)。還可將所述分區(qū)視為視頻塊(在那些術語用于本發(fā)明中時)。運動補償可涉及基于運動估計所確定的運動向量來獲取或產(chǎn)生預測塊。同樣,運動估計單元36與運動補償單元35可在功能上集成。
[0098]運動估計單元36通過將經(jīng)幀間譯碼的幀的視頻塊與參考幀存儲裝置34中的參考幀的視頻塊進行比較來計算經(jīng)幀間譯碼的幀的視頻塊的運動向量。運動補償單元35還可內(nèi)插參考幀(例如,I幀或P幀)的子整數(shù)像素。ITU H.264標準將參考幀稱作“列表”。因此,還可將存儲于參考幀存儲裝置34中的數(shù)據(jù)視為列表。運動估計單元36將來自參考幀存儲裝置34的一個或一個以上參考幀(或列表)的塊與當前幀(例如,P幀或B幀)的待編碼的塊進行比較。當參考幀存儲裝置34中的參考幀包括用于子整數(shù)像素的值時,由運動估計單元36計算的運動向量可指代參考幀的子整數(shù)像素位置。運動估計單元36將經(jīng)計算的運動向量發(fā)送到熵譯碼單元46和運動補償單元35。由運動向量識別的參考幀塊可稱作預測塊。運動補償單元35計算參考幀的預測塊的誤差值。
[0099]運動補償單元35可基于預測塊計算預測數(shù)據(jù)。視頻編碼器50通過從正經(jīng)譯碼的原始視頻塊減去來自運動補償單元35的預測數(shù)據(jù)而形成殘余視頻塊。求和器48表示執(zhí)行此減法運算的組件。變換單元38對殘余塊應用例如離散余弦變換(DCT)或概念上類似的變換的變換,從而產(chǎn)生包含殘余變換系數(shù)值的視頻塊。變換單元38可執(zhí)行概念上類似于DCT的其它變換,例如由H.264標準界定的變換。還可使用小波變換、整數(shù)變換、子頻帶變換或其它類型的變換。在任何情況下,變換單元38對殘余塊應用變換,從而產(chǎn)生殘余變換系數(shù)的塊。所述變換可將殘余信息從像素值域轉換到變換域(例如,頻域)。
[0100]量化單元40將殘余變換系數(shù)量化以進一步減小位速率。量化過程可減少與一些系數(shù)或全部系數(shù)相關聯(lián)的位深度。在一個實例中,量化單元40可根據(jù)亮度量化參數(shù)(在本發(fā)明中稱作QPy)而建立用于每一 64X64像素宏塊的不同程度的量化。量化單元40可基于量化參數(shù)修正符(其在本文中稱作“MB64_delta_QP”)和先前經(jīng)編碼的64X64像素宏塊而進一步修改在64X64宏塊的量化期間所使用的亮度量化參數(shù)。
[0101]每一 64X64像素的大宏塊可包含在-26與+25之間(包括-26與+25)的范圍內(nèi)的個別MB64_delta_QP值。一股來說,視頻編碼器50可基于用于發(fā)射特定塊的經(jīng)編碼版本的所要位速率而建立用于所述特定塊的MB64_delta_QP值。第一 64X64像素宏塊的MB64_delta_QP值可等于包括第一 64X64像素宏塊的幀或切片的QP值(例如,在幀/切片標頭中)??筛鶕?jù)下式來計算用于當前64X64像素宏塊的QPy:
[0102]QPy = (QPY,PREV+MB64_delta_QP+52) % 52
[0103]其中QPy,pkev指代在當前切片/幀的解碼次序中的前一 64X64像素宏塊的QPy值,且其中指代模數(shù)運算符,使得N% 52傳回在O與51之間(包括O與51)的結果,從而對應于N除以52的余數(shù)值。對于幀/切片中的第一宏塊,可將QPy,pkev設定為等于在幀/切片標頭中發(fā)送的巾貞/切片QP。
[0104]在一個實例中,量化單元40假定:當未針對特定64X64像素宏塊(包括“跳躍”型宏塊,例如,P_Skip和B_Skip宏塊類型)界定MB64_delta_QP值時,MB64_delta_QP值等于零。在一些實例中,可界定額外delta_QP值(一股稱作量化參數(shù)修改值)以用于64X64像素宏塊內(nèi)的分區(qū)的較細粒度量化控制,例如用于64X64像素宏塊的每一 32X32像素分區(qū)的MB32_delta_QP值。在一些實例中,64 X 64宏塊的每一分區(qū)可經(jīng)指派一個別量化參數(shù)。代替針對64X64宏塊使用單一 QP,針對每一分區(qū)使用個別化的量化參數(shù)可實現(xiàn)宏塊的更有效量化,(例如)以便更好地調(diào)整對非同質區(qū)域的量化??蓪⒚恳涣炕瘏?shù)修改值作為語法信息與對應的經(jīng)編碼塊包括在一起,且解碼器可通過根據(jù)量化參數(shù)修改值解量化(即,逆量化)經(jīng)編碼塊來解碼經(jīng)編碼塊。
[0105]在量化之后,熵譯碼單元46將經(jīng)量化的變換系數(shù)進行熵譯碼。舉例來說,熵譯碼單元46可執(zhí)行內(nèi)容自適應可變長度譯碼(CAVLC)、上下文自適應二進制算術譯碼(CABAC),或另一熵譯碼技術。在由熵譯碼單元46進行熵譯碼之后,可將經(jīng)編碼的視頻發(fā)射到另一裝置或將其存檔以用于稍后發(fā)射或檢索。經(jīng)譯碼的位流可包括經(jīng)熵譯碼的殘余變換系數(shù)塊、所述塊的運動向量、每一 64X64像素宏塊的MB64_delta_QP值,和包括(例如)宏塊類型識別符值、指示經(jīng)譯碼單元中的宏塊的最大大小的經(jīng)譯碼單元標頭、QPy值、經(jīng)譯碼塊模式(CBP)值、識別宏塊或子塊的分割方法的值,和變換大小旗標值的其它語法元素,如下文更詳細地論述。在上下文自適應二進制算術譯碼的情況下,上下文可基于相鄰宏塊。
[0106]在一些情況下,除熵譯碼之外,視頻編碼器50的熵譯碼單元46或另一單元可經(jīng)配置以執(zhí)行其它譯碼功能。舉例來說,熵譯碼單元46可經(jīng)配置以確定大宏塊和分區(qū)的CBP值。熵譯碼單元46可應用分層CBP方案以提供大宏塊的指示宏塊中的任何分區(qū)是否包括非零變換系數(shù)值的CBP值,且如果是,則提供用于指示大宏塊內(nèi)的特定分區(qū)是否具有非零變換系數(shù)值的其它CBP值。而且,在一些情況下,熵譯碼單元46可執(zhí)行對大宏塊或子分區(qū)中的系數(shù)的游程長度譯碼。具體來說,熵譯碼單元46可應用曲折掃描或其它掃描模式以掃描宏塊或分區(qū)中的變換系數(shù),且編碼零的游程以用于進一步壓縮。熵譯碼單元46還可用適當?shù)恼Z法元素建構標頭信息以用于在經(jīng)編碼視頻位流中進行發(fā)射。
[0107]逆量化單元42和逆變換單元44分別應用逆量化和逆變換,以重構像素域中的殘余塊,(例如)以用于稍后用作參考塊。運動補償單元35可通過將殘余塊加到參考幀存儲裝置34的幀中的一者的預測塊來計算參考塊。運動補償單元35還可對經(jīng)重構的殘余塊應用一個或一個以上內(nèi)插濾波器以計算子整數(shù)像素值。求和器51將經(jīng)重構的殘余塊加到由運動補償單元35產(chǎn)生的經(jīng)運動補償?shù)念A測塊以產(chǎn)生用于存儲于參考幀存儲裝置34中的經(jīng)重構的視頻塊。經(jīng)重構的視頻塊可由運動估計單元36和運動補償單元35用作用于對后續(xù)視頻幀中的塊進行幀間譯碼的參考塊。大宏塊可包含64X64像素宏塊、32X32像素宏塊,或大于由常規(guī)視頻譯碼標準規(guī)定的大小的其它宏塊。
[0108]圖3為說明視頻解碼器60的一實例的方框圖,視頻解碼器60解碼以本發(fā)明中所描述的方式編碼的視頻序列。經(jīng)編碼的視頻序列可包括大于由常規(guī)視頻編碼標準規(guī)定的大小的經(jīng)編碼的宏塊。舉例來說,經(jīng)編碼的宏塊可為32X32像素或64X64像素宏塊。在圖3的實例中,視頻解碼器60包括熵解碼單元52、運動補償單元54、幀內(nèi)預測單元55、逆量化單元56、逆變換單元58、參考幀存儲裝置62和求和器64。視頻解碼器60在一些實例中可執(zhí)行一股與關于視頻編碼器50 (圖2)所描述的編碼遍次互逆的解碼遍次。運動補償單元54可基于從熵解碼單元52接收的運動向量產(chǎn)生預測數(shù)據(jù)。
[0109]熵解碼單元52對所接收的位流進行熵解碼以產(chǎn)生經(jīng)量化的系數(shù)和語法元素(例如,運動向量、CBP值、QPy值、變換大小旗標值、MB64_delta_QP值)。熵解碼單元52可解析位流以識別經(jīng)譯碼單元(例如,幀、切片和/或宏塊標頭)中的語法信息。包含多個宏塊的經(jīng)譯碼單元的語法信息可指示經(jīng)譯碼單元中的宏塊(例如,16X16像素、32X32像素、64X64像素,或其它較大大小的宏塊)的最大大小。(例如)視塊的譯碼模式而定,將塊的語法信息從熵譯碼單元52轉發(fā)到運動補償單元54或幀內(nèi)預測單元55。解碼器可使用經(jīng)譯碼單元的語法中的最大大小指示符來選擇用于所述經(jīng)譯碼單元的語法解碼器。通過使用針對所述最大大小而指定的語法解碼器,解碼器可接著適當?shù)亟庾g和處理包括于所述經(jīng)譯碼單元中的大宏塊。
[0110]運動補償單元54可使用在位流中所接收的運動向量來識別參考幀存儲裝置62中的參考幀中的預測塊。幀內(nèi)預測單元55可使用在位流中所接收的幀內(nèi)預測模式以從空間上鄰近的塊形成預測塊。逆量化單元56將提供于位流中且由熵解碼單元52解碼的經(jīng)量化的塊系數(shù)逆量化(即,解量化)。逆量化過程可包括(例如)如通過H.264解碼標準界定的常規(guī)過程。逆量化過程還可包括使用由編碼器50針對每一 64X64宏塊計算的用以確定量化的程度且同樣應該應用的逆量化的程度的量化參數(shù)QPY。
[0111]逆變換單元58對變換系數(shù)應用逆變換(例如,逆DCT、逆整數(shù)變換,或概念上類似的逆變換過程),以便產(chǎn)生像素域中的殘余塊。運動補償單元54產(chǎn)生經(jīng)運動補償?shù)膲K,可能執(zhí)行基于內(nèi)插濾波器的內(nèi)插。待用于具有子像素精度的運動估計的內(nèi)插濾波器的識別符可包括在語法元素中。運動補償單元54可使用如由視頻編碼器50在視頻塊的編碼期間所使用的內(nèi)插濾波器來計算參考塊的子整數(shù)像素的內(nèi)插值。運動補償單元54可根據(jù)所接收的語法信息來確定由視頻編碼器50使用的內(nèi)插濾波器且使用所述內(nèi)插濾波器來產(chǎn)生預測塊。
[0112]運動補償單元54使用一些語法信息來確定用于編碼經(jīng)編碼視頻塊的(多個)幀的宏塊的大小、描述經(jīng)編碼視頻序列的幀的每一宏塊經(jīng)分割的方式的分割信息、指示每一分區(qū)經(jīng)編碼的方式的模式、用于每一經(jīng)幀間編碼的宏塊或分區(qū)的一個或一個以上參考幀(或列表),和用于解碼經(jīng)編碼視頻序列的其它信息。
[0113]求和器64將殘余塊與由運動補償單元54或幀內(nèi)預測單元產(chǎn)生的對應預測塊求和以形成經(jīng)解碼的塊。在需要時,還可應用解塊濾波器以對經(jīng)解碼的塊進行濾波以便移除成塊性假影。接著將經(jīng)解碼的視頻塊存儲于參考幀存儲裝置62中,參考幀存儲裝置62提供用于后續(xù)運動補償?shù)膮⒖級K且還產(chǎn)生用于在顯示裝置(例如,圖1的裝置32)上呈現(xiàn)的經(jīng)解碼視頻。經(jīng)解碼視頻塊可各自包含64X64像素宏塊、32X32像素宏塊,或其它大于標準的宏塊。一些宏塊可包括具有多種不同分區(qū)大小的分區(qū)。
[0114]圖4A為說明大宏塊的各種分區(qū)層級中的實例分割的概念圖。每一分區(qū)層級的塊包括對應于特定層級的若干像素。還針對每一層級展示四個分割模式,其中第一分割模式包括整個塊,第二分割模式包括相等大小的兩個水平分區(qū),第三分割模式包括相等大小的兩個垂直分區(qū),且第四分割模式包括四個相等大小的分區(qū)??舍槍γ恳环謪^(qū)層級的每一分區(qū)選擇所述分割模式中的一者。
[0115]在圖4A的實例中,層級O對應于亮度樣本和相關聯(lián)的色度樣本的64X64像素宏塊分區(qū)。層級I對應于亮度樣本和相關聯(lián)的色度樣本的32X32像素塊。層級2對應于亮度樣本和相關聯(lián)的色度樣本的16 X 16像素塊,且層級3對應于亮度樣本和相關聯(lián)的色度樣本的8X8像素塊。
[0116]在其它實例中,可引入額外層級以利用更大或更小數(shù)目個像素。舉例來說,層級O可開始于128 X 128像素宏塊、256 X 256像素宏塊或其它較大大小的宏塊。最高編號的層級在一些實例中可精細到單一像素(即,1X1塊)。因此,從最低層級到最高層級,可將分割逐步子分割,使得宏塊被分割,分區(qū)被進一步分割,所得分區(qū)被再進一步分割,等等。在一些情況中,低于層級O的分區(qū)(即,分區(qū)的分區(qū))可稱作子分區(qū)。
[0117]當使用四個相等大小的子塊分割一個層級處的塊時,可根據(jù)下一個層級的分割模式來分割子塊中的任一者或全部。即,對于在層級X處經(jīng)分割成四個相等大小的子塊(N/2)X(N/2)的NXN塊,可根據(jù)層級X+1的分割模式中的任一者進一步分割(N/2) X (N/2)子塊中的任一者。因此,可根據(jù)圖4A中所展示的層級I處的模式(例如,32X32,32X 16 與 32X16、16X32 與 16X32,或 16X 16、16X 16、16X 16 與 16X16)中的任一者進一步分割層級O處的64X64像素宏塊的32X32像素子塊。同樣地,在由經(jīng)分割的32X32像素子塊產(chǎn)生四個16X 16像素子塊的情況下,可根據(jù)圖4A中所展示的層級2處的模式中的任一者進一步分割16X16像素子塊中的每一者。在由經(jīng)分割的16X16像素子塊產(chǎn)生四個8X8像素子塊的情況下,可根據(jù)圖4A中所展示的層級3處的模式中的任一者進一步分割8X8像素子塊中的每一者。
[0118]通過使用圖4A中所展示的分區(qū)的實例四個層級,可通過實施本發(fā)明的架構和技術的編碼器來自適應地表示大的同質區(qū)域和細小的零星改變。舉例來說,視頻編碼器50可(例如)基于速率-失真分析確定不同宏塊的不同分割層級,以及對所述分區(qū)應用的編碼模式。而且,如下文更詳細地描述,視頻編碼器50可(例如)基于速率-失真量度結果或其它考慮事項而使用空間(P編碼或B編碼)或時間(I編碼)預測來不同地編碼最終分區(qū)中的至少一些分區(qū)。
[0119]代替均勻地編碼大宏塊而使得所有分區(qū)均具有相同的幀內(nèi)譯碼模式或幀間譯碼模式,可譯碼大宏塊以使得一些分區(qū)具有不同譯碼模式。舉例來說,可用相對于同一宏塊中的其它(至少一個)分區(qū)來說不同的幀內(nèi)譯碼模式(例如,I_16X16、I_8X8、I_4X4)譯碼一些(至少一個)分區(qū)。而且,可對一些(至少一個)分區(qū)進行幀內(nèi)譯碼而對同一宏塊中的其它(至少一個)分區(qū)進行幀間譯碼。
[0120]舉例來說,對于具有四個16X 16分區(qū)的32X32塊,視頻編碼器50可使用空間預測來編碼16X16分區(qū)中的一些分區(qū),且使用時間預測來編碼其它16X16分區(qū)。作為另一實例,對于具有四個16 X 16分區(qū)的32 X 32塊,視頻編碼器50可使用第一預測模式(例如,I_16X16、I_8X8、I_4X4中的一者)來編碼16X 16分區(qū)中的一者或一者以上,且使用不同的空間預測模式(例如,I_16X16、I_8X8、I_4X4中的一者)來編碼一個或一個以上其它16X16分區(qū)。
[0121]圖4B為說明將不同譯碼模式指派到大宏塊的不同分區(qū)的概念圖。具體來說,圖4B說明將I_16X16幀內(nèi)譯碼模式指派到大的32X32宏塊的左上部16X16塊、將I_8X8幀內(nèi)譯碼模式指派到大的32X32宏塊的右上部和左下部16X 16塊和將I_4X4幀內(nèi)譯碼模式指派到大的32X32宏塊的右下部16 X 16塊。在一些情況下,圖4B中所說明的譯碼模式可為用于亮度譯碼的H.264幀內(nèi)譯碼模式。
[0122]以所描述的方式,可有選擇地進一步分割每一分區(qū),且可使用時間預測或空間預測并使用選定的時間譯碼模式或空間譯碼模式選擇性地譯碼每一最終分區(qū)。因此,有可能用混合模式譯碼大宏塊,以使得宏塊中的一些分區(qū)經(jīng)幀內(nèi)譯碼且同一宏塊中的其它分區(qū)經(jīng)幀間譯碼,或用不同的幀內(nèi)譯碼模式或不同的幀間譯碼模式譯碼同一宏塊中的一些分區(qū)。
[0123]視頻編碼器50可根據(jù)宏塊類型進一步界定每一分區(qū)??蓪⒑陦K類型作為語法元素包括于經(jīng)編碼位流中,例如作為宏塊標頭中的語法元素。一股來說,宏塊類型可用于識別宏塊經(jīng)分割的方式,和用于編碼宏塊的分區(qū)中的每一者的相應方法或模式,如上文所論述。用于編碼分區(qū)的方法可不僅包括幀內(nèi)譯碼和幀間譯碼,而且包括特定模式的幀內(nèi)譯碼(例如,I_16X16、I_8X8、I_4X4)或幀間譯碼(例如,P_ 或 B_16X 16、16X8、8X 16、8X8、8X4、4X8 和 4X4)。[0124]如下文針對P塊關于表I的實例和針對B塊關于表2的實例更詳細地論述,可根據(jù)表示具有64 X 64像素的宏塊的MB64_type語法元素界定分區(qū)層級O塊。可針對任何MB [N]_type (其中,[N]指代具有NXN像素的塊,其中N為可大于16的正整數(shù))形成類似類型的界定。當NXN塊具有大小為(N/2)X(N/2)的四個分區(qū)時(如圖4A上的最后一列中所展示),所述四個分區(qū)中的每一者可接收其自身類型的界定(例如,MB[N/2]_type)。舉例來說,對于具有四個32X32像素分區(qū)的64X64像素塊(MB64_type的類型),視頻編碼器50可針對四個32 X 32像素分區(qū)中的每一者引入MB32_type。這些宏塊類型語法元素可輔助解碼器60解碼大宏塊和大宏塊的各種分區(qū),如本發(fā)明中所描述。每一 NXN像素宏塊(其中N大于16) —股對應于唯一類型的界定。因此,編碼器可產(chǎn)生適合于特定宏塊的語法,且向解碼器指示經(jīng)譯碼單元(例如,幀、切片,或宏塊的序列)中的宏塊的最大大小。以此方式,解碼器可接收將應用于經(jīng)譯碼單元的宏塊的語法解碼器的指示。此還確保解碼器可與現(xiàn)有譯碼標準(例如,H.264)向后兼容,因為編碼器可指示將應用于宏塊的語法解碼器的類型(例如,標準的H.264或根據(jù)本發(fā)明的技術針對較大宏塊的處理而指定的類型)。
[0125]一股來說,對于對應類型,每一 MB [N]_type界定可表示對應類型(例如,64 X 64)的塊中的像素的數(shù)目、塊的參考幀(或參考列表)、塊的分區(qū)的數(shù)目、塊的每一分區(qū)的大小、每一分區(qū)經(jīng)編碼的方式(例如,幀內(nèi)或幀間和特定模式),和當分區(qū)經(jīng)幀間譯碼時塊的每一分區(qū)的參考幀(或參考列表)。對于16X16和更小的塊,視頻編碼器50在一些實例中可使用常規(guī)類型的界定作為塊的類型(例如,由H.264標準指定的類型)。在其它實例中,視頻編碼器50可對16X 16和更小的塊應用新界定的塊類型。
[0126]視頻編碼器50可評估使用正常宏塊大小和分區(qū)的常規(guī)幀間或幀內(nèi)譯碼方法(例如,由ITU H.264規(guī)定的方法)和由本發(fā)明描述的使用較大宏塊和分區(qū)的幀間或幀內(nèi)譯碼方法,且比較每一方法的速率-失真特性以確定哪種方法產(chǎn)生最好的速率-失真性能。視頻編碼器50接著可基于譯碼方法的最佳或可接受的速率-失真結果來選擇最好的譯碼方法(包括幀間或幀內(nèi)模式、宏塊大小(大的、較大或正常),和分割),且將其應用于待譯碼的塊。作為一說明,視頻編碼器50可基于當視頻編碼器使用64X64宏塊、32X32宏塊或16X 16宏塊大小時所產(chǎn)生的速率-失真結果而選擇使用64X64宏塊、32X32宏塊或16 X 16宏塊來編碼特定幀或切片。
[0127]一股來說,可使用兩種不同方法來設計使用大宏塊的幀內(nèi)模式。作為一個實例,在幀內(nèi)譯碼期間,可直接基于相鄰塊對塊執(zhí)行空間預測。根據(jù)本發(fā)明的技術,視頻編碼器50可直接基于塊的相鄰像素產(chǎn)生空間預測32X32塊,且直接基于塊的相鄰像素產(chǎn)生空間預測64X64塊。以此方式,與16X16幀內(nèi)塊相比,可以較大規(guī)模執(zhí)行空間預測。因此,這些技術在一些實例中可導致一些位速率節(jié)省,例如,每一幀或切片使用較小數(shù)目個塊或分區(qū)。
[0128]作為另一實例,視頻編碼器50可將四個NXN塊分組在一起以產(chǎn)生(N*2) X (N*2)塊,且接著編碼所述(N*2)X(N*2)塊。通過使用現(xiàn)有H.264幀內(nèi)譯碼模式,視頻編碼器50可將四個經(jīng)幀內(nèi)譯碼的塊分組在一起,借此形成大的經(jīng)幀內(nèi)譯碼的宏塊。舉例來說,可將四個經(jīng)幀內(nèi)譯碼的塊(每一者具有16X16的大小)分組在一起以形成大的32X32的經(jīng)幀內(nèi)譯碼的塊。視頻編碼器50可使用不同編碼模式(例如,根據(jù)H.264的I_16X 16、I_8X8或I_4X4)編碼四個對應的NXN塊中的每一者。以此方式,可通過視頻編碼器50向每一16X16塊指派其自身的空間預測模式,(例如)以促進有利的編碼結果。[0129]視頻編碼器50可根據(jù)上文所論述的兩種不同方法中的任一者設計幀內(nèi)模式,且分析所述不同方法以確定哪種方法提供更好的編碼結果。舉例來說,視頻編碼器50可應用不同的幀內(nèi)模式方法,且將其置于單一候選池中以允許其彼此競爭以達到最好的速率-失真性能。通過使用不同方法之間的速率-失真比較,視頻編碼器50可確定如何編碼每一分區(qū)和/或宏塊。具體來說,視頻編碼器50可選擇針對給定宏塊產(chǎn)生最好的速率-失真性能的譯碼模式,且應用那些譯碼模式來編碼所述宏塊。
[0130]圖5為說明大宏塊的各種分區(qū)層級的分層視圖的概念圖。圖5還表示如關于圖4A所描述的大宏塊的各種分區(qū)層級之間的關系。如圖5的實例中所說明,一分區(qū)層級的每一塊可具有對應的經(jīng)譯碼塊模式(CBP)值。所述CBP值形成描述一塊或宏塊的語法信息的一部分。在一個實例中,CBP值各自為指示在變換和量化運算之后在給定塊中是否存在任何非零變換系數(shù)值的一位語法值。
[0131]在一些情況下,預測塊可能在像素內(nèi)容上非常接近于待譯碼的塊,使得全部殘余變換系數(shù)被量化成零,在所述情況下,可能不需要發(fā)射用于所述經(jīng)譯碼塊的變換系數(shù)。而是,可將用于塊的CBP值設定為O以指示經(jīng)譯碼塊不包括非零系數(shù)?;蛘?,如果塊包括至少一個非零系數(shù),則可將CBP值設定為I。解碼器60可使用CBP值來識別經(jīng)譯碼的殘余塊(即,具有一個或一個以上非零變換系數(shù))與未經(jīng)譯碼的塊(即,不包括非零變換系數(shù))。
[0132]根據(jù)本發(fā)明中所描述的技術中的一些,編碼器可基于大宏塊(包括其分區(qū))是否具有至少一個非零系數(shù)而分層地將CBP值指派到那些宏塊,且將CBP值指派到所述分區(qū)以指示哪些分區(qū)具有非零系數(shù)。大宏塊的分層CBP可促進對大宏塊的處理以迅速地識別經(jīng)譯碼的大宏塊和未經(jīng)譯碼的大宏塊,且準許識別大宏塊的每一分區(qū)層級的經(jīng)譯碼分區(qū)以確定是否有必要使用殘余數(shù)據(jù)來解碼所述塊。
[0133]在一個實例中,層級零處的64 X 64像素宏塊可包括包含CBP64值(例如,一位值)的語法信息,所述CBP64值用以指示整個64X64像素宏塊(包括任何分區(qū))是否具有非零系數(shù)。在一個實例中,視頻編碼器50將CBP64位“設定”(例如)到值“1”,以表示64X64像素宏塊包括至少一個非零系數(shù)。因此,當將CBP64值設定(例如)到值“I”時,64X64像素宏塊在其中某處包括至少一個非零系數(shù)。在另一實例中,視頻編碼器50將CBP64值“清除”(例如)到值“0”,以表示64X64像素宏塊具有全零系數(shù)。因此,當將CBP64值清除(例如)到值“O”時,指示64X64像素宏塊為具有全零系數(shù)。具有為“O”的CBP64值的宏塊一股不需要在位流中發(fā)射殘余數(shù)據(jù),而具有為“I”的CBP64值的宏塊一股需要在位流中發(fā)射殘余數(shù)據(jù)以用于解碼所述宏塊。
[0134]具有全零系數(shù)的64X64像素宏塊不需要包括用于其分區(qū)或子塊的CBP值。即,因為64X64像素宏塊具有全零系數(shù),所以所述分區(qū)中的每一者也必定具有全零系數(shù)。相反地,包括至少一個非零系數(shù)的64X64像素宏塊可進一步包括用于下一分區(qū)層級處的分區(qū)的CBP值。舉例來說,具有值I的CBP64可包括用于64X64塊的每一 32X32分區(qū)的呈一位值CBP32的形式的額外語法信息。即,在一個實例中,64X64像素宏塊的每一 32X32像素分區(qū)(例如,圖5中的層級I的四個分區(qū)塊)經(jīng)指派有CBP32值作為64X64像素宏塊的語法信息的一部分。與CBP64值一樣,每一 CBP32值可包含一位,所述位在對應的32X32像素塊具有至少一個非零系數(shù)時被設定為值I,且在對應的32X32像素塊具有全零系數(shù)時被清除到值O。編碼器可進一步在包含多個宏塊的經(jīng)譯碼單元(例如,幀、切片或序列)的語法中指示經(jīng)譯碼單元中的宏塊的最大大小,以向解碼器指示如何解譯每一宏塊的語法信息(例如,將哪個語法解碼器用于處理經(jīng)譯碼單元中的宏塊)。
[0135]以此方式,具有全零系數(shù)的64X64像素宏塊可使用單一位來表示宏塊具有全零系數(shù)的事實,而具有至少一個非零系數(shù)的64X 64像素宏塊可包括包含至少五個位的CBP語法信息:用于表不64X64像素宏塊具有非零系數(shù)的第一位,和各自表不宏塊的四個32X32像素分區(qū)中的對應一者是否包括至少一個非零系數(shù)的四個額外位。在一些實例中,當四個額外位中的前三者為零時,可不包括第四額外位,解碼器可將其解譯為最后分區(qū)為一。即,在前三個位為零時且在表示較高層級階層的位具有值I時,編碼器可確定最后位具有值I。舉例來說,可將CBP64前綴值“10001”縮短到“1000”,因為第一位指示四個分區(qū)中的至少一者具有非零系數(shù),且接下來三個零指示前三個分區(qū)具有全零系數(shù)。因此,解碼器可(例如)從位串“1000”推斷出:最后分區(qū)包括非零系數(shù),而不具有向解碼器通知所述事實的顯式位。即,解碼器可將CBP64前綴“ 1000”解譯為“ 10001”。
[0136]同樣地,當32X32像素分區(qū)包括至少一個非零系數(shù)時,可將一位CBP32設定為值“1”,且當全部系數(shù)具有零值時,將一位CBP32設定為值“O”。如果32X32像素分區(qū)具有為“ I ”的CBP值,則那個32 X 32分區(qū)的在下一個分區(qū)層級處的分區(qū)可經(jīng)指派有CBP值,以指示相應分區(qū)是否包括任何非零系數(shù)。因此,可在每一分區(qū)層級處以分層方式指派CBP值,直到不存在其它分區(qū)層級或不存在包括非零系數(shù)的分區(qū)為止。
[0137]以上述方式,編碼器和/或解碼器可利用分層的CBP值來表示大宏塊(例如,64X64或32X32)和 其分區(qū)是否包括至少一個非零系數(shù)或全零系數(shù)。因此,編碼器可:編碼數(shù)字視頻流的經(jīng)譯碼單元的大宏塊,以使得所述大宏塊包含大于16 X 16像素;產(chǎn)生識別所述塊的大小的塊類型語法信息;產(chǎn)生用于所述塊的CBP值,以使得所述CBP值識別所述塊是否包括至少一個非零系數(shù);以及在可適用時產(chǎn)生用于所述塊的各種分區(qū)層級的額外CBP值。
[0138]在一個實例中,分層的CBP值可包含位陣列(例如,位向量),所述位陣列的長度視前綴的值而定。所述陣列可進一步表示CBP值的階層(例如,樹結構),如圖5中所展示。所述陣列可以寬度優(yōu)先(breadth-first)方式表示樹的節(jié)點,其中每一節(jié)點對應于陣列中的一位。在一個實例中,當樹的節(jié)點具有經(jīng)設定為“I”的位時,所述節(jié)點具有四個分支(對應于四個分區(qū)),且當所述位被清除到“O”時,所述節(jié)點不具有分支。
[0139]在此實例中,為了識別從特定節(jié)點X分岔的節(jié)點的值,編碼器和/或解碼器可通過計算下式來確定表示從節(jié)點X分岔的節(jié)點的從節(jié)點Y開始的四個連續(xù)位:
[0140])'= 4* 之3
V £=0 J
[0141]其中tree[]對應于具有為O的開始索引的位陣列,i為到陣列tree[]中的整數(shù)索弓丨,X對應于tree[]中的節(jié)點X的索弓丨,且y對應于為節(jié)點X的第一分支節(jié)點的節(jié)點Y的索引。三個后續(xù)陣列位置(即,y+l、y+2,和y+3)對應于節(jié)點X的其它分支節(jié)點。
[0142]編碼器(例如,視頻編碼器50 (圖2))可使用現(xiàn)有方法(例如,由ITU H.264規(guī)定的用于設定16X 16塊的CBP值的方法)指派具有至少一個非零系數(shù)的32X32像素分區(qū)的16X16像素分區(qū)的CBP值,以作為64X64像素宏塊的語法的一部分。編碼器還可基于分區(qū)的大小、對應于分區(qū)的塊的類型(例如,色度塊或亮度塊),或分區(qū)的其它特性而選擇具有至少一個非零系數(shù)的32X32像素分區(qū)的分區(qū)的CBP值。參看圖8和圖9進一步詳細論述用于設定32X32像素分區(qū)的分區(qū)的CBP值的實例方法。
[0143]圖6到圖9為說明根據(jù)本發(fā)明的技術的用于設定各種經(jīng)譯碼塊模式(CBP)值的實例方法的流程圖。雖然圖6到圖9的實例方法是相對于64X64像素宏塊而論述的,但應理解,類似技術可適用于指派其它大小的宏塊的分層CBP值。雖然圖6到圖9的實例是相對于視頻編碼器50(圖2)而論述的,但應理解,其它編碼器可使用類似方法來將CBP值指派到大于標準的宏塊。同樣地,解碼器可利用類似的、但互逆的方法來解譯宏塊的特定CBP值的意義。舉例來說,如果在位流中所接收的經(jīng)幀間譯碼的宏塊具有為“O”的CBP值,則解碼器可不接收所述宏塊的殘余數(shù)據(jù),且可僅產(chǎn)生由運動向量識別的預測塊作為經(jīng)解碼的宏塊,或由相對于所述宏塊的分區(qū)的運動向量而識別的預測塊群組。
[0144]圖6為說明用于設定一實例64X64像素宏塊的CBP64值的實例方法的流程圖??蓪Υ笥?4X64的宏塊應用類似方法。最初,視頻編碼器50接收64X64像素宏塊(100)。運動估計單元36和運動補償單元35可接著分別產(chǎn)生用于編碼所述宏塊的一個或一個以上運動向量和一個或一個以上殘余塊。變換單元38的輸出一股包含用于經(jīng)幀內(nèi)譯碼的塊或經(jīng)幀間譯碼的塊的殘余塊的殘余變換系數(shù)值陣列,所述陣列由量化單元40量化以產(chǎn)生一系列經(jīng)量化的變換系數(shù)。
[0145]熵譯碼單元46可提供熵譯碼和與熵譯碼分離的其它譯碼功能。舉例來說,除CAVLC、CABAC或其它熵譯碼功能外,視頻編碼器50的熵譯碼單元46或另一單元可確定用于大宏塊和分區(qū)的CBP值。具體來說,熵譯碼單元46可通過首先確定64X64像素宏塊是否具有至少一個非零的、經(jīng)量化的變換系數(shù)來確定所述宏塊的CBP64值(102)。當熵譯碼單元46確定所有變換系數(shù)具有零值時(102的“否”分支),熵譯碼單元46清除64X64宏塊的CBP64值(例如,將用于CBP64值的位復位到“O”)(104)。當熵譯碼單元46識別出64X65宏塊的至少一個非零系數(shù)時(102的“是”分支),熵譯碼單元46設定CBP64值(例如,將用于CBP64值的位設定為“ I”)(106)。
[0146]當宏塊具有全零系數(shù)時,熵譯碼單元46不需要建立用于宏塊的分區(qū)的任何額外CBP值,此可減少開銷。然而,在一個實例中,當宏塊具有至少一個非零系數(shù)時,熵譯碼單元46進行到確定用于64X64像素宏塊的四個32X32像素分區(qū)中的每一者的CBP值(108)。熵譯碼單元46可將相對于圖7所描述的方法利用四次,每次針對所述四個分區(qū)中的一者,以建立四個CBP32值,每一 CBP32值對應于64X64宏塊的四個32X32像素分區(qū)中的不同一者。以此方式,當宏塊具有全零系數(shù)時,熵譯碼單元46可發(fā)射具有值“O”的單一位以指示宏塊具有全零系數(shù),而當宏塊具有至少一個非零系數(shù)時,熵譯碼單元46可發(fā)射五個位:用于宏塊的一位,和各自對應于宏塊的四個分區(qū)中的一者的四個位。另外,當分區(qū)包括至少一個非零系數(shù)時,可在經(jīng)編碼位流中發(fā)送用于分區(qū)的殘余數(shù)據(jù)。與上文所論述的CBP64的實例一樣,當四個額外位中的前三者為零時,第四額外位可能不必要,因為解碼器可確定其具有值I。因此,在一些實例中,編碼器可僅發(fā)送三個0(即,“000”)而不是三個O和一個I (即,“0001”)。
[0147]圖7為說明用于設定64 X 64像素宏塊的32 X 32像素分區(qū)的CBP32值的實例方法的流程圖。最初,對于下一個分區(qū)層級,熵譯碼單元46接收宏塊的32X32像素分區(qū)(例如,相對于圖6參看的四個分區(qū)中的一者)(110)。熵譯碼單元46接著通過首先確定32X32像素分區(qū)是否包括至少一個非零系數(shù)來確定用于所述分區(qū)的CBP32值(112)。當熵譯碼單元46確定用于分區(qū)的所有系數(shù)具有零值時(112的“否”分支),熵譯碼單元46清除CBP32值(例如,將用于CBP32值的位復位到“O”)(114)。當熵譯碼單元46識別出分區(qū)的至少一個非零系數(shù)時(112的“是”分支),熵譯碼單元46設定CBP32值(例如,將用于CBP32值的位設定為值“I”)(116)。
[0148]在一個實例中,當分區(qū)具有全零系數(shù)時,熵譯碼單元46不會建立用于所述分區(qū)的任何額外CBP值。然而,當分區(qū)包括至少一個非零系數(shù)時,熵譯碼單元46確定用于宏塊的32 X 32像素分區(qū)的四個16 X 16像素分區(qū)中的每一者的CBP值。熵譯碼單元46可利用相對于圖8所描述的方法來建立各自對應于四個16X16像素分區(qū)中的一者的四個CBP16值。
[0149]以此方式,當分區(qū)具有全零系數(shù)時,熵譯碼單元46可設定具有值“O”的位以指示分區(qū)具有全零系數(shù),而當分區(qū)具有至少一個非零系數(shù)時,熵譯碼單元46可包括五個位:用于分區(qū)的一位,和各自對應于宏塊的分區(qū)的四個子分區(qū)中的不同一者的四個位。因此,當前一分區(qū)層級中的分區(qū)具有至少一個非零變換系數(shù)值時,每一額外分區(qū)層級可呈現(xiàn)四個額外CBP位。作為一個實例,如果64X64宏塊具有為I的CBP值,且四個32X 32分區(qū)具有分別為1、0、1和I的CBP值,則直到那個點的總的CBP值為11011??商砑佑糜?2X32分區(qū)的額外分區(qū)(例如,16X16分區(qū))的額外CBP位。
[0150]圖8為說明用于設定64X64像素宏塊的32X32像素分區(qū)的16X 16像素分區(qū)的CBP16值的實例方法的流程圖。對于特定16X16像素分區(qū),視頻編碼器50可利用如由視頻譯碼標準(例如,ITU H.264)規(guī)定的CBP值,如下文所論述。對于其它16X16分區(qū),視頻編碼器50可利用根據(jù)本發(fā)明的其它技術的CBP值。最初,如圖8中所展示,熵譯碼單元46接收16 X 16分區(qū)(例如,相對于圖7所描述的32X32分區(qū)的16 X 16分區(qū)中的一者)(120)。
[0151]熵譯碼單元46可接著確定16X 16像素分區(qū)的運動分區(qū)是否大于8X8像素塊
(122)。一股來說,運動分區(qū)描述其中運動較為集中的分區(qū)。舉例來說,可將僅具有一個運動向量的16X16像素分區(qū)視為一 16X16運動分區(qū)。類似地,對于具有各自具有一個運動向量的兩個8X16分區(qū)的16X 16像素分區(qū),可將兩個8X 16分區(qū)中的每一者視為一 8X 16運動分區(qū)。在任何情況下,在圖8的實例中,當運動分區(qū)不大于8X8像素塊時(122的“否”分支),熵譯碼單元46以與由ITU H.264規(guī)定的方式相同的方式將CBP值指派到16 X 16像素分區(qū)(124)。
[0152]當存在16X 16像素分區(qū)的大于8X8像素塊的運動分區(qū)時(122的“是”分支),熵譯碼單元46使用步驟125之后的步驟建構和發(fā)送lumacbpl6值(125)。在圖8的實例中,為了建構lumacbpl6值,熵譯碼單元46確定分區(qū)的16 X 16像素亮度分量是否具有至少一個非零系數(shù)(126)。在圖8的實例中,當16X16像素亮度分量具有全零系數(shù)時(126的“否”分支),熵譯碼單元46指派根據(jù)ITU H.264的經(jīng)譯碼塊模式色度部分的CBP16值(128)。
[0153]當熵譯碼單元46確定16X16像素亮度分量具有至少一個非零系數(shù)時(126的“是”分支),熵譯碼單元46確定16X16像素分區(qū)的變換大小旗標(130)。變換大小旗標一股指示正用于所述分區(qū)的變換。由變換大小旗標表示的變換可包括4X4變換、8X8變換、16X16變換、16X8變換或8X 16變換中的一者。變換大小旗標可包含整數(shù)值,其對應于識別可能變換中的一者的所列舉值。熵譯碼單元46可接著確定變換大小旗標是否表示變換大小大于或等于16 X 8 (或8 X 16) (132)。[0154]在圖8的實例中,當變換大小旗標不指示變換大小大于或等于16X8 (或8X16)時(132的“否”分支),熵譯碼單元46將一值指派到根據(jù)ITU H.264的CBP16 (134)。當變換大小旗標指示變換大小大于或等于16X8(或8X 16)時(132的“是”分支),熵譯碼單元46接著確定16 X 16像素分區(qū)的類型是否為兩個16 X 8像素分區(qū)或兩個8 X 16像素分區(qū)
(136)。
[0155]在圖8的實例中,當16X16像素分區(qū)的類型不是兩個16X8像素分區(qū)且不是兩個8X16像素分區(qū)時(138的“否”分支),熵譯碼單元46指派根據(jù)由ITU H.264規(guī)定的色度經(jīng)譯碼塊分區(qū)的CBP16值(140)。當16 X 16像素分區(qū)的類型為兩個16 X 8或兩個8 X 16像素分區(qū)時(136的“是”分支),熵譯碼單元46還使用由ITU H.264規(guī)定的色度經(jīng)譯碼塊模式,但另外向CBP16值指派二位lumal6X8_CBP值(例如,根據(jù)相對于圖9所描述的方法)
(142)。
[0156]圖9為說明用于確定二位lumal6X8_CBP值的實例方法的流程圖。熵譯碼單元46接收經(jīng)進一步分割成兩個16X8或兩個8X 16像素分區(qū)的16X 16像素分區(qū)(150)。熵譯碼單元46 —股根據(jù)16X 16像素分區(qū)的對應子塊是否包括至少一個非零系數(shù)來指派luma 16 X 8_CBP 的每一位。
[0157]熵譯碼單元46確定16X 16像素分區(qū)的第一子塊是否具有至少一個非零系數(shù),以確定第一子塊是否具有至少一個非零系數(shù)(152)。當?shù)谝蛔訅K具有全零系數(shù)時(152的“否”分支),熵譯碼單元46清除lumal6X8_CBP的第一位(例如,將lumal6 X 8_CBP [O]指派為值“O”)(154)。當?shù)谝蛔訅K具有至少一個非零系數(shù)時(152的“是”分支),熵譯碼單元46設定 lumal6X8_CBP 的第一位(例如,將 lumal6X8_CBP[O]指派為值“I”)(156)。
[0158]熵譯碼單元46還確定16X16像素分區(qū)的第二子分區(qū)是否具有至少一個非零系數(shù)
[158]。當?shù)诙臃謪^(qū)具有全零系數(shù)時(158的“否”分支),熵譯碼單元46清除lumaieX 8_CBP的第二位(例如,將lumal6X8_CBP[l]指派為值“O”)(160)。當?shù)诙訅K具有至少一個非零系數(shù)時(158的“是”分支),熵譯碼單元46接著設定lumal6X8_CBP的第二位(例如,將 lumal6X8_CBP[l]指派為值“I”)(162)。
[0159]以下偽碼提供相對于圖8和圖9所描述的方法的一個實例實施方案:
[0160]
【權利要求】
1.一種解碼視頻數(shù)據(jù)的方法,所述方法包含: 解碼與圖片序列相關聯(lián)的一個或多個語法元素,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16X16像素;以及 解碼所述圖片序列的所述塊中的至少一個塊,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
2.根據(jù)權利要求1所述的方法,其中所述解碼與圖片序列相關聯(lián)的一個或多個語法元素包含: 解碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素;以及 解碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素。
3.根據(jù)權利要求2所述的方法,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
4.根據(jù)權利要求1所述的方法,進一步包含解碼表示所述塊的分區(qū)的一個或多個語法元素。
5.根據(jù)權利要求1所述的方法,其中解碼包含通過視頻解碼器進行解碼。
6.根據(jù)權利要求1所述的方法,其中解碼包含通過專用集成電路(ASIC)進行解碼。
7.根據(jù)權利要求1所述的方法,其中解碼包含通過處理器進行解碼。
8.一種用于解碼視頻數(shù)據(jù)的裝置,所述裝置包含視頻解碼器,所述視頻解碼器經(jīng)配置以解碼與圖片序列相關聯(lián)的一個或多個語法元素,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16X16像素;以及解碼所述圖片序列的所述塊中的至少一個塊,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
9.根據(jù)權利要求8所述的裝置,其中,所述視頻解碼器經(jīng)配置以解碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素;以及解碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素,從而解碼所述一個或多個語法元素。
10.根據(jù)權利要求9所述的裝置,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
11.根據(jù)權利要求8所述的裝置,其中所述視頻解碼器進一步經(jīng)配置以解碼表示所述塊的分區(qū)的一個或多個語法元素。
12.根據(jù)權利要求8所述的裝置,其中所述視頻解碼器包含專用集成電路(ASIC)。
13.根據(jù)權利要求8所述的裝置,其中所述視頻解碼器包含處理器。
14.一種用于解碼視頻數(shù)據(jù)的裝置,所述裝置包含: 用于解碼與圖片序列相關聯(lián)的一個或多個語法元素的裝置,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16 X 16像素;以及 用于解碼所述圖片序列的所述塊中的至少一個塊的裝置,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
15.根據(jù)權利要求14所述的裝置,其中所述解碼與圖片序列相關聯(lián)的一個或多個語法元素的裝置包含:用于解碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素的裝置;以及 用于解碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素的裝置。
16.根據(jù)權利要求15所述的裝置,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
17.根據(jù)權利要求14所述的裝置,進一步包含解碼表示所述塊的分區(qū)的一個或多個語法元素的裝置。
18.一種計算機可讀存儲媒體, 具有存儲在其上的指令,當所述指令被執(zhí)行時,致使處理器: 解碼與圖片序列相關聯(lián)的一個或多個語法元素,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16X16像素;以及 解碼所述圖片序列的所述塊中的至少一個塊,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
19.根據(jù)權利要求18所述的計算機可讀存儲媒體,其中致使所述處理器解碼與圖片序列相關聯(lián)的一個或多個語法元素的指令包含致使所述處理器進行以下動作的指令: 解碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素;以及 解碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素。
20.根據(jù)權利要求19所述的計算機可讀存儲媒體,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
21.根據(jù)權利要求18所述的計算機可讀存儲媒體,進一步包含致使所述處理器解碼表示所述塊的分區(qū)的一個或多個語法元素的指令。
22.—種編碼視頻數(shù)據(jù)的方法,所述方法包含: 編碼與圖片序列相關聯(lián)的一個或多個語法元素,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16X16像素;以及 編碼所述圖片序列的所述塊中的至少一個塊,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
23.根據(jù)權利要求22所述的方法,其中所述編碼與圖片序列相關聯(lián)的一個或多個語法元素包含: 編碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素;以及 編碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素。
24.根據(jù)權利要求23所述的方法,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
25.根據(jù)權利要求22所述的方法,進一步包含編碼表示所述塊的分區(qū)的一個或多個語法元素。
26.根據(jù)權利要求22所述的方法,其中編碼包含通過視頻編碼器進行編碼。
27.根據(jù)權利要求22所述的方法,其中編碼包含通過專用集成電路(ASIC)進行編碼。
28.根據(jù)權利要求22所述的方法,其中編碼包含通過處理器進行編碼。
29.一種用于編碼視頻數(shù)據(jù)的裝置,所述裝置包含視頻編碼器,所述視頻編碼器經(jīng)配置以編碼與圖片序列相關聯(lián)的一個或多個語法元素,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16X16像素;以及編碼所述圖片序列的所述塊中的至少一個塊,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
30.根據(jù)權利要求29所述的裝置,其中所述視頻編碼器經(jīng)配置以編碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素;以及編碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素,從而編碼所述一個或多個語法元素。
31.根據(jù)權利要求30所述的裝置,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
32.根據(jù)權利要求29所述的裝置,其中所述視頻編碼器進一步經(jīng)配置以編碼表示所述塊的分區(qū)的一個或多個語法 元素。
33.根據(jù)權利要求29所述的裝置,其中所述視頻編碼器包含專用集成電路(ASIC)。
34.根據(jù)權利要求29所述的裝置,其中所述視頻編碼器包含處理器。
35.一種用于編碼視頻數(shù)據(jù)的裝置,所述裝置包含: 用于編碼與圖片序列相關聯(lián)的一個或多個語法元素的裝置,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16 X 16像素;以及 用于編碼所述圖片序列的所述塊中的至少一個塊的裝置,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
36.根據(jù)權利要求35所述的裝置,其中所述編碼與圖片序列相關聯(lián)的一個或多個語法元素的裝置包含: 用于編碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素的裝置;以及 用于編碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素的裝置。
37.根據(jù)權利要求36所述的裝置,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
38.根據(jù)權利要求35所述的裝置,進一步包含編碼表示所述塊的分區(qū)的一個或多個語法元素的裝置。
39.一種計算機可讀存儲媒體,具有存儲在其上的指令,當所述指令被執(zhí)行時,致使處理器: 編碼與圖片序列相關聯(lián)的一個或多個語法元素,其中,所述一個或多個語法元素的值表示所述圖片序列的塊的尺寸范圍,其中,所述尺寸范圍中的最大尺寸大于16X16像素;以及 編碼所述圖片序列的所述塊中的至少一個塊,所述至少一個塊具有所述一個或多個語法元素的所述值所表示的所述尺寸范圍內(nèi)的尺寸。
40.根據(jù)權利要求39所述的計算機可讀存儲媒體,其中指示所述處理器編碼與圖片序列相關聯(lián)的一個或多個語法元素的指令包含指示所述處理器進行以下動作的指令: 編碼表示所述圖片序列的所述塊的最大尺寸的第一語法元素;以及 編碼表示所述圖片序列的所述塊的最小尺寸的第二語法元素。
41.根據(jù)權利要求40所述的計算機可讀存儲媒體,其中所述至少一個塊的尺寸小于所述最大尺寸,且大于所述最小尺寸。
42.根據(jù)權利要求39所述的計算機可讀存儲媒體,進一步包含致使所述處理器編碼表示所述塊的分區(qū)的一個或多個語法元素的指令。
【文檔編號】H04N19/593GK103957406SQ201410214303
【公開日】2014年7月30日 申請日期:2009年9月29日 優(yōu)先權日:2008年10月3日
【發(fā)明者】陳培松, 葉琰, 馬爾塔·卡切維奇 申請人:高通股份有限公司