用來(lái)簡(jiǎn)化視頻拼接的緩沖信息的語(yǔ)法和語(yǔ)義的制作方法
【專利說(shuō)明】
【背景技術(shù)】
[0001]工程師們采用壓縮(也稱為源編碼)來(lái)降低數(shù)字視頻的比特率。壓縮通過(guò)將信息轉(zhuǎn)換成較低的比特率形式,減少了存儲(chǔ)和傳輸視頻信息的成本。解壓縮(也稱為解碼)是對(duì)來(lái)自壓縮形式的原始信息版本的重構(gòu)?!熬幗獯a器”是一種編碼器/解碼器系統(tǒng)。
[0002]在過(guò)去二十年,已通過(guò)了各種視頻編解碼標(biāo)準(zhǔn),包括ITU-T H.261、Η.262 (MPEG-2或 IS0/IEC 13818-2)、Η.263 和 H.264 (MPEG-4 AVC 或 IS0/IEC 14496-10)標(biāo)準(zhǔn)和 MPEG-1(IS0/IEC 11172-2)、MPEG-4 視訊(IS0/IEC 14496-2)和 SMPTE 421Μ (VC-1)標(biāo)準(zhǔn)。最近,已經(jīng)開(kāi)發(fā)出HEVC標(biāo)準(zhǔn)(ITU-T H.265或IS0/IEC 23008-2)。視頻編解碼標(biāo)準(zhǔn)通常定義了經(jīng)編碼的視頻比特流的語(yǔ)法選項(xiàng),詳細(xì)介紹了在編碼和解碼中使用特定功能時(shí),比特流中的參數(shù)。在許多情況下,視頻編解碼標(biāo)準(zhǔn)還提供有關(guān)解碼器應(yīng)執(zhí)行的以在解碼中獲得一致結(jié)果的解碼操作的詳細(xì)內(nèi)容。除了編解碼器標(biāo)準(zhǔn),各種專用的編解碼器格式定義了經(jīng)編碼的視頻比特流的語(yǔ)法的其他選項(xiàng),以及相應(yīng)的解碼操作。
[0003]一種經(jīng)編碼的視頻比特流中的參數(shù)類型是編碼圖片緩沖區(qū)清除延遲(“CPBRD”)。一般情況下,用于給定圖片的CPBRD值指定了要從解碼器緩沖區(qū)清除與該圖片相關(guān)聯(lián)的編碼數(shù)據(jù)的標(biāo)稱時(shí)間。在正確的時(shí)間清除用于圖片的編碼數(shù)據(jù)時(shí),按照正常的運(yùn)行模式,解碼器緩沖區(qū)不會(huì)溢出(這可能會(huì)導(dǎo)致編碼數(shù)據(jù)丟失)或下溢(這可能會(huì)導(dǎo)致“低頻干擾(glitching)”或其他連續(xù)播放中斷)。在低延遲模式中,在某些情況下允許出現(xiàn)下溢,但是在非低延遲模式(諸如通常用于廣播)下,不允許緩沖區(qū)下溢。一種通常被稱為假定參考解碼器(HRD)或視頻緩沖檢驗(yàn)器(VBV)的緩沖模型使用CPBRD值和其他參數(shù),諸如率值、緩沖區(qū)大小值和緩沖區(qū)充滿度值或初始緩沖延遲值(開(kāi)始播放之前),以驗(yàn)證可以在解碼系統(tǒng)的緩沖資源內(nèi)解碼比特流,并幫助解碼器確定用于操作其解碼過(guò)程的時(shí)間和步驟。
[0004]在很多情景中,不同視頻序列的比特流被拼接在一起。例如,這種拼接可用于在電視節(jié)目中插入一條廣告或一系列廣告,或者在不同的電視節(jié)目之間切換。為了調(diào)整CPBRD值以對(duì)拼接做出解釋,使用信號(hào)通知CPBRD值的現(xiàn)有途徑可能會(huì)導(dǎo)致在拼接期間操作繁瑣而且可能很難進(jìn)行。另一個(gè)問(wèn)題是,雖然兩個(gè)源流可能與HRD單獨(dú)兼容,但是在拼接后,不能夠保證由此產(chǎn)生的拼接流可與HRD兼容。
【發(fā)明內(nèi)容】
[0005]總之,【具體實(shí)施方式】提出了簡(jiǎn)化拼接操作的編碼圖片緩沖區(qū)清除延遲(“CPBRD”)值的語(yǔ)法和/或語(yǔ)義中的創(chuàng)新。特別是,通過(guò)用于某些圖片的CPBRD值的新的信號(hào)通知方式,該創(chuàng)新支持拼接操作,其中當(dāng)用于一個(gè)視頻序列的比特流或部分比特流被級(jí)聯(lián)到用于另一個(gè)視頻序列的另一個(gè)比特流或部分另一個(gè)比特流時(shí),這種CPBRD值可以被簡(jiǎn)單地重復(fù)使用。
[0006]根據(jù)本文所描述的創(chuàng)新的一個(gè)方面,視頻編碼器或其他工具設(shè)置了用于視頻序列的給定圖片的CPBRD值。用于給定圖片的CPBRD值指示相對(duì)于解碼順序中的在前圖片的標(biāo)稱編碼圖片緩沖區(qū)(“CPB”)清除時(shí)間的增量值,無(wú)論該在前圖片是否具有緩沖周期SEI(“BP SEI”)消息。編碼器或其他工具然后用信號(hào)通知用于給定圖片的CPBRD值??梢愿鶕?jù)其中標(biāo)志指示如何解釋CPBRD值的單值法、根據(jù)其中另一個(gè)CPBRD值(具有不同的解釋)也被使用信號(hào)通知的雙值法、根據(jù)使用標(biāo)志和A值的雙值法、或者根據(jù)另一種途徑,對(duì)CPBRD值進(jìn)行信號(hào)通知。
[0007]根據(jù)本文所描述的創(chuàng)新的另一個(gè)方面,視頻解碼器或其他工具接收用于視頻序列的給定圖片的CPBRD值。用于給定圖片的CPBRD值指示相對(duì)于解碼順序中的在前圖片的標(biāo)稱CPB清除時(shí)間的增量值,無(wú)論該在前圖片是否具有BP SEI消息。視頻解碼器或其他工具然后對(duì)用于給定圖片的CPBRD值進(jìn)行解析??梢愿鶕?jù)其中標(biāo)志指示如何解釋CPBRD值的單值法、根據(jù)其中另一個(gè)CPBRD值(具有不同的解釋)也被使用信號(hào)通知的雙值法、根據(jù)使用標(biāo)志和A值的雙值法、或者根據(jù)另一種途徑,對(duì)CPBRD值進(jìn)行信號(hào)通知。
[0008]根據(jù)本文所描述的創(chuàng)新的另一個(gè)方面,拼接工具接收用于第一視頻序列的第一比特流的至少一部分,并且還接收用于第二視頻序列的第二比特流的至少一部分。用于第二視頻序列的給定圖片的CPBRD值指示相對(duì)于解碼順序中的在前圖片的標(biāo)稱CPB清除時(shí)間的增量值,無(wú)論該在前圖片是否具有BP SEI消息。拼接工具將第二視頻序列的至少一部分拼接到第一視頻序列的至少一部分。作為拼接的一部分,拼接工具從給定圖片開(kāi)始,將所有或部分第二視頻序列級(jí)聯(lián)到第一視頻序列的至少一部分??梢愿鶕?jù)其中標(biāo)志指示如何解釋CPBRD值的單值法、根據(jù)其中另一個(gè)CPBRD值(具有不同的解釋)也被使用信號(hào)通知的雙值法、根據(jù)使用標(biāo)志和△值的雙值法、或者根據(jù)另一種途徑,對(duì)CPBRD值進(jìn)行信號(hào)通知。
[0009]編碼、解碼或拼接可實(shí)施為方法的一部分、作為適于執(zhí)行該方法的計(jì)算設(shè)備的一部分、或作為存儲(chǔ)了計(jì)算機(jī)可執(zhí)行指令的有形計(jì)算機(jī)可讀媒體的一部分,以使計(jì)算設(shè)備執(zhí)行該方法。
[0010]根據(jù)以下【具體實(shí)施方式】并參考附圖,本發(fā)明的上述和其他目標(biāo)、特征、和優(yōu)點(diǎn)將變得更加清楚。
【附圖說(shuō)明】
[0011]圖1是可以實(shí)施一些所描述的實(shí)施例的示例計(jì)算系統(tǒng)的圖。
[0012]圖2a和2b是可以實(shí)施一些所描述的實(shí)施例的示例網(wǎng)絡(luò)環(huán)境的圖。
[0013]圖3是與其結(jié)合可以實(shí)施一些所描述的實(shí)施例的示例編碼器系統(tǒng)的圖。
[0014]圖4是與其結(jié)合可以實(shí)施一些所描述的實(shí)施例的示例解碼器系統(tǒng)的圖。
[0015]圖5是圖示了與其結(jié)合可以實(shí)施一些所描述的實(shí)施例的示例視頻編碼器的圖。
[0016]圖6是圖示了與其結(jié)合可以實(shí)施一些所描述的實(shí)施例的示例視頻解碼器的圖。
[0017]圖7是圖示了根據(jù)現(xiàn)有CPBRD值調(diào)整法的拼接操作的圖。
[0018]圖8和9是圖示了用于用信號(hào)通知CPBRD值的單值法的語(yǔ)法的表格。
[0019]圖10是圖示了拼接兩個(gè)比特流后的緩沖區(qū)充滿度的圖表。
[0020]圖11是圖示了用于使用標(biāo)志和Δ值來(lái)用信號(hào)通知CPBRD值的雙值法的語(yǔ)法的表格。
[0021]圖12是圖示了用于在編碼期間設(shè)置CPBRD值來(lái)簡(jiǎn)化視頻拼接的一般性技術(shù)的流程圖。
[0022]圖13是圖示了用于根據(jù)單值法在編碼期間設(shè)置CPBRD值來(lái)簡(jiǎn)化視頻拼接的示例技術(shù)的流程圖。
[0023]圖14是圖示了用于在解碼期間處理CPBRD值的一般性技術(shù)的流程圖。
[0024]圖15是圖示了用于在解碼期間根據(jù)單值法確定CPBRD值的示例技術(shù)的流程圖。
[0025]圖16是圖示了用于拼接比特流的一般性技術(shù)的流程圖。
[0026]圖17是圖示了用于根據(jù)使用標(biāo)志和△值的雙值法在編碼期間設(shè)置CPBRD值來(lái)簡(jiǎn)化視頻拼接的示例技術(shù)的流程圖。
[0027]圖18是圖示了用于根據(jù)使用標(biāo)志和△值的雙值法在解碼期間來(lái)確定CPBRD值的示例技術(shù)的流程圖。
【具體實(shí)施方式】
[0028]【具體實(shí)施方式】提出了通過(guò)調(diào)整編碼圖片緩沖區(qū)清除延遲(CPBRD)值的語(yǔ)法和/或語(yǔ)義來(lái)增進(jìn)拼接操作的支持的各種途徑。在許多情況下,這些途徑減少了現(xiàn)有途徑的缺點(diǎn)。特別是,【具體實(shí)施方式】提出了用各種類型的HEVC標(biāo)準(zhǔn)或H.264/AVC標(biāo)準(zhǔn)的補(bǔ)充增強(qiáng)信息(SEI)消息通知的CPBRD值的語(yǔ)法和語(yǔ)義的創(chuàng)新。在各個(gè)示例中,對(duì)緩沖周期SEI (“BPSEI”)消息和/或圖片定時(shí)SEI (“PT SEI”)消息的語(yǔ)法和/或預(yù)計(jì)進(jìn)行調(diào)整,以便進(jìn)行拼接操作。
[0029]盡管本文所描述的操作在某些地方描述為由編碼器(例如,視頻編碼器)、解碼器(例如,視頻解碼器)或拼接工具(例如,視頻拼接工具)執(zhí)行,但是在許多情況下,該操作可以替代地由另一種類型的媒體處理工具執(zhí)行。
[0030]參考針對(duì)HEVC標(biāo)準(zhǔn)的語(yǔ)法元素和操作,對(duì)本文所描述的一些創(chuàng)新進(jìn)行闡述。例如,參考了 HEVC標(biāo)準(zhǔn)的草案版本JCTVC-K1003——“高效視頻編碼(HEVC)文本規(guī)范草案9”,(JCTVC-K1003_dl3,2012年10月10日至19日上海,第11次會(huì)議)。本文所描述的創(chuàng)新也可針對(duì)其他標(biāo)準(zhǔn)或格式實(shí)施,例如,H.264/AVC標(biāo)準(zhǔn)。
[0031]更一般地,對(duì)本文所描述的示例的各種替代是可行的。例如,通過(guò)改變所描述的方法行為的順序,通過(guò)拆分、重復(fù)或省略某些方法行為等,可以更改本文所描述的一些方法。所公開(kāi)的技術(shù)的各個(gè)方面可以組合使用或單獨(dú)使用。不同實(shí)施例使用一個(gè)或多個(gè)所描述的創(chuàng)新。本文所描述的一些創(chuàng)新解決了一個(gè)或多個(gè)【背景技術(shù)】中指出的問(wèn)題。通常情況下,給定技術(shù)/工具不會(huì)解決所有這些問(wèn)題。
[0032]1.示例計(jì)算系統(tǒng)
圖1圖示了可以實(shí)施幾個(gè)所描述的創(chuàng)新的適當(dāng)?shù)挠?jì)算系統(tǒng)(100)的一般性示例。計(jì)算系統(tǒng)(100)并不意味著對(duì)使用范圍或功能暗示任何限制,因?yàn)閯?chuàng)新可在多種通用或?qū)S糜?jì)算系統(tǒng)中實(shí)施。
[0033]參照?qǐng)D1,計(jì)算系統(tǒng)(100)包括一個(gè)或多個(gè)處理單元(110,115)和內(nèi)存(120,125)。處理單元(110,115 )執(zhí)行計(jì)算機(jī)可執(zhí)行指令。處理單元可以是通用中央處理單元(“ CPU”),特定于應(yīng)用的集成電路(“ASIC”)中的處理器或任何其他類型的處理器。在多處理系統(tǒng)中,多個(gè)處理單元執(zhí)行計(jì)算機(jī)可執(zhí)行指令來(lái)提高處理能力。例如,圖1示出了中央處理單元(110)以及圖形處理單元或協(xié)同處理單元(115)。有形內(nèi)存(120,125)可以是(多個(gè))處理單元可訪問(wèn)的易失性存儲(chǔ)器(例如,寄存器,緩存器,RAM),非易失性存儲(chǔ)器(例如,R0M、EEPR0M、閃存等),或者二者的一些組合。內(nèi)存(120,125)以適于(多個(gè))處理單元執(zhí)行的計(jì)算機(jī)可執(zhí)行指令的形式,存儲(chǔ)實(shí)施一個(gè)或多個(gè)創(chuàng)新的軟件(180),以使用用于簡(jiǎn)化視頻拼接的CPBRD值的語(yǔ)法和語(yǔ)義進(jìn)行視頻的編碼、解碼和/或拼接。
[0034]計(jì)算系統(tǒng)可具有額外特征。例如,計(jì)算系統(tǒng)(100)包括存儲(chǔ)器(140)、一個(gè)或多個(gè)輸入設(shè)備(150)、一個(gè)或多個(gè)輸出設(shè)備(160)、和一個(gè)或多個(gè)通信連接(170)。諸如總線、控制器或網(wǎng)絡(luò)之類的互連機(jī)制(圖中未示出)將計(jì)算系統(tǒng)(100)的組件互相連接。通常,操作系統(tǒng)軟件(圖中未示出)為在計(jì)算系統(tǒng)(100)中執(zhí)行的其他軟件提供操作環(huán)境,并協(xié)調(diào)計(jì)算系統(tǒng)(100)的組件的活動(dòng)。
[0035]有形存儲(chǔ)器(140)可以是可移動(dòng)的或不可移動(dòng)的,并包括磁盤、磁帶或盒式磁帶、CD-R0M、DVD、或者能夠用來(lái)存儲(chǔ)信息并能夠在計(jì)算系統(tǒng)(100)內(nèi)被訪問(wèn)的任何其他媒體。存儲(chǔ)器(140)存儲(chǔ)實(shí)施一個(gè)或多個(gè)創(chuàng)新的軟件(180),以使用用于簡(jiǎn)化視頻拼接的CPBRD值的語(yǔ)法和語(yǔ)義進(jìn)行視頻的編碼、解碼和/或拼接。
[0036](多個(gè))輸入設(shè)備(150)可以是諸如鍵盤、鼠標(biāo)、筆、或軌跡球之類的觸摸輸入設(shè)備,語(yǔ)音輸入設(shè)備,掃描設(shè)備,或向計(jì)算系統(tǒng)(100)提供輸入的其他設(shè)備。對(duì)于視頻編碼,(多個(gè))輸入設(shè)備(150)可以是攝像機(jī)、視頻卡、電視調(diào)諧卡、或接收模擬或數(shù)字形式的視頻輸入的類似設(shè)備,或者將視頻輸入讀入計(jì)算系統(tǒng)(100)的⑶-ROM或⑶-RW。(多個(gè))輸出設(shè)備(160)可以是顯示器、打印機(jī)、揚(yáng)聲器、CD刻錄機(jī)、或提供來(lái)自計(jì)算系統(tǒng)(100)的輸出的其他設(shè)備。
[0037](多個(gè))通信連接(170)使得能夠通過(guò)通信媒體實(shí)現(xiàn)到另一計(jì)算實(shí)體的通信。通信媒體在經(jīng)調(diào)制的數(shù)據(jù)信號(hào)中傳遞諸如計(jì)算機(jī)可執(zhí)行指令、音頻或視頻輸入或輸出、或其它數(shù)據(jù)之類的信息。經(jīng)調(diào)制的數(shù)據(jù)信號(hào)是使得一個(gè)或多個(gè)其特性以在信號(hào)中對(duì)信息進(jìn)行編碼的方式設(shè)置或改變的信號(hào)。舉例來(lái)說(shuō),而非限制,通信媒體能夠使用電力載體、光學(xué)載體、射頻載體或其它載體。
[0038]可以在計(jì)算機(jī)可讀媒體的一般情景中對(duì)創(chuàng)新進(jìn)行描述。計(jì)算機(jī)可讀媒體是可以在計(jì)算環(huán)境內(nèi)訪問(wèn)的任何可用的有形媒體。舉例來(lái)說(shuō),而非限制,對(duì)于計(jì)算系統(tǒng)(100),計(jì)算機(jī)可讀媒體包括內(nèi)存(120,125 ),存儲(chǔ)器(140 ),以及任何上述的組合。
[0039]可以在計(jì)算機(jī)可執(zhí)行指令(諸如包括在程序模塊中的指令,正在計(jì)算系統(tǒng)中在目標(biāo)真實(shí)或虛擬處理器上執(zhí)行的指令)的一般情景中對(duì)創(chuàng)新進(jìn)行描述。一般而言,程序模塊包括例程、程序、庫(kù)、對(duì)象、類、組件、數(shù)據(jù)結(jié)構(gòu)等,其執(zhí)行特定的任務(wù)或?qū)崿F(xiàn)特定的抽象數(shù)據(jù)類型。程序模塊的功能可以根據(jù)需要在各種實(shí)施例中在程序模塊之間被組合或拆分。用于程序模塊的計(jì)算機(jī)可執(zhí)行指令可以在本地或分布式計(jì)算系統(tǒng)內(nèi)執(zhí)行。
[0040]術(shù)語(yǔ)“系統(tǒng)”和“設(shè)備”可在本文互換使用。除非上下文清楚地指出,否則,術(shù)語(yǔ)均不暗示對(duì)計(jì)算系統(tǒng)或計(jì)算設(shè)備的類型的任何限制。一般情況下,計(jì)算系統(tǒng)或計(jì)算設(shè)備可以是本地的或分布式的,并且可以包括特殊用途硬件和/或通用硬件與實(shí)施本文所描述的功能的軟件的任何組合。
[0041]所公開(kāi)的方法也可以使用配置成執(zhí)行任何所公開(kāi)的方法的專用計(jì)算硬件來(lái)實(shí)現(xiàn)。例如,所公開(kāi)的方法能夠通過(guò)特別設(shè)計(jì)或配置用于實(shí)現(xiàn)任何所公開(kāi)的方法的集成電路(例如,諸如ASIC數(shù)字信號(hào)處理器(“DSP”)之類的特定于應(yīng)用的集成電路(“ASIC”)、圖形處理單元(“GPU”)、或諸如現(xiàn)場(chǎng)可編程門陣列(“FPGA”)之類的可編程邏輯器件(“PLD”))來(lái)實(shí)施。
[0042]為了便于介紹,【具體實(shí)施方式】使用了像“確定”和“使用”等術(shù)語(yǔ)來(lái)描述計(jì)算系統(tǒng)中的計(jì)算機(jī)操作。這些術(shù)語(yǔ)是對(duì)由計(jì)算機(jī)執(zhí)行的操作的高層抽象,不應(yīng)與由人類執(zhí)行的動(dòng)作相混淆。對(duì)應(yīng)于這些術(shù)語(yǔ)的實(shí)際的計(jì)算機(jī)操作根據(jù)實(shí)施方式的不同而不同。
[0043]I1.示例網(wǎng)絡(luò)環(huán)境。
[0044]圖2a和2b示出了示例網(wǎng)絡(luò)環(huán)境(201,202),其包括視頻編碼器(220)和視頻解碼器(270)。編碼器(220)和解碼器(270)采用適當(dāng)?shù)耐ㄐ艆f(xié)議在網(wǎng)絡(luò)(250)上連接。網(wǎng)絡(luò)(250)可以包括因特網(wǎng)或其他計(jì)算機(jī)網(wǎng)絡(luò)。
[0045]在圖2a所示的網(wǎng)絡(luò)環(huán)境(201)中,每個(gè)實(shí)時(shí)通信(“RTC”)工具(210)包括進(jìn)行雙向通信的編碼器(220)和解碼器(270)。給定編碼器(220)可以產(chǎn)生符合SMPTE 421M標(biāo)準(zhǔn)、IS0/IEC 14496-10標(biāo)準(zhǔn)(也稱為H.264或AVC)、HEVC標(biāo)準(zhǔn)(也稱為H.265)、其他標(biāo)準(zhǔn)或?qū)S懈袷降妮敵觯⑶蚁鄳?yīng)的解碼器(270)接收來(lái)自編碼器(220)的編碼數(shù)據(jù)。雙向通信可以是視頻會(huì)議、視頻電話呼叫、或其他兩方或多方通信場(chǎng)景的一部分。雖然圖2a中的網(wǎng)絡(luò)環(huán)境(201)包括兩個(gè)實(shí)時(shí)通信工具(210),網(wǎng)絡(luò)環(huán)境(201)相反可以包括三個(gè)或更多參與多方通信的實(shí)時(shí)通信工具(210)。
[0046]實(shí)時(shí)通信工具(210)通過(guò)編碼器(220)管理編碼。圖3示出了可以包括在實(shí)時(shí)通信工具(210)中的示例編碼器系統(tǒng)(300)。另選地,實(shí)時(shí)通信工具(210)使用另一種編碼器系統(tǒng)。實(shí)時(shí)通訊工具(210)還通過(guò)解碼器(270)管理解碼。圖4示出了可以包括在實(shí)時(shí)通信工具(210)中的示例解碼器系統(tǒng)(400)。另