為了自適應(yīng)位速率流化而利用自適應(yīng)量化編碼多個(gè)視頻流的系統(tǒng)和方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明一般而言涉及視頻編碼,并且更具體而言涉及為了從源視頻流進(jìn)行自適應(yīng)位速率流化而高效編碼多個(gè)視頻內(nèi)容流的系統(tǒng)和方法。
【背景技術(shù)】
[0002]術(shù)語流化媒體(streaming media)描述媒體在重放設(shè)備上的重放,其中媒體被存儲(chǔ)在服務(wù)器上并且在重放期間經(jīng)由網(wǎng)絡(luò)被持續(xù)地發(fā)送到重放設(shè)備。通常,重放設(shè)備在重放期間任何給定的時(shí)間都在緩沖區(qū)中存儲(chǔ)足量的媒體,以防止由于在接收到媒體的下一部分之前重放設(shè)備完成所有緩沖媒體的重放而造成重放的中斷。自適應(yīng)位速率流化,或者自適應(yīng)流化,涉及實(shí)時(shí)地檢測(cè)目前的流化狀況(例如,用戶的網(wǎng)絡(luò)帶寬和CPU容量)并且相應(yīng)地調(diào)整流化媒體的質(zhì)量。通常,源媒體以多個(gè)位速率進(jìn)行編碼并且重放設(shè)備或客戶端依賴于可用資源在流化不同編碼之間進(jìn)行切換。當(dāng)重放設(shè)備進(jìn)行自適應(yīng)位速率流化時(shí),重放設(shè)備通常由從最低位速率流請(qǐng)求部分媒體(其中備選流是可用的)開始。當(dāng)重放設(shè)備下載所請(qǐng)求的媒體時(shí),重放設(shè)備可以測(cè)量可用的帶寬。在存在附加帶寬可用的情況下,重放設(shè)備可以切換到更高位速率流。
[0003]在自適應(yīng)流化系統(tǒng)中,源媒體通常作為指向多個(gè)包含真正視頻和音頻數(shù)據(jù)的交替流的頂層索引文件存儲(chǔ)在媒體服務(wù)器上。每個(gè)流通常存儲(chǔ)在一個(gè)或多個(gè)容器文件中。不同的自適應(yīng)流化解決方案通常使用不同的索引和媒體容器。Matroska容器是作為開放標(biāo)準(zhǔn)項(xiàng)目由位于法國Aussonne的Matroska非營利組織開發(fā)的媒體容器。Matroska容器基于可擴(kuò)展二進(jìn)制元語言(EBML),這是可擴(kuò)展標(biāo)記語言(XML)的二進(jìn)制衍生物。Matroska容器的解碼被許多消費(fèi)者電子(CE)設(shè)備支持。由位于加州San Diego的DivX,LLC開發(fā)的DivX Plus文件格式使用Matroska容器格式的擴(kuò)展,包括未在Matroska格式中指定的元素。其它常用的媒體容器格式是在MPEG-4部分14(即,IS0/IEC14496-14)中指定的MP4容器格式和在MPEG-2部分1 (即,IS0/IEC標(biāo)準(zhǔn)13818-1)中指定的MPEG傳送流(TS)容器。MP4容器格式用在IIS平滑流化和Flash動(dòng)態(tài)流化中。TS容器用在HTTP自適應(yīng)位速率流化中。交替流中的視頻可以根據(jù)各種面向塊的視頻壓縮標(biāo)準(zhǔn)(或編解碼器)一一諸如由IS0/IEC運(yùn)動(dòng)圖像專家組(MPEG)和瑞士日內(nèi)瓦的國際電信聯(lián)盟電信標(biāo)準(zhǔn)化部門(ITU-T)共同指定的高效視頻編碼(HEVC/H.265)以及由ITU-T指定的H.264/MPEG-4 AVC(高級(jí)視頻編碼)標(biāo)準(zhǔn)--來編碼。
【發(fā)明內(nèi)容】
[0004]公開了根據(jù)本發(fā)明實(shí)施例的為自適應(yīng)位速率流化而編碼多個(gè)視頻流的系統(tǒng)和方法。在一種實(shí)施例中,被配置為將源視頻編碼為多個(gè)備選視頻流的源編碼器包括包含源編碼器應(yīng)用的存儲(chǔ)器、共享存儲(chǔ)器和并行處理系統(tǒng),該并行處理系統(tǒng)被源編碼應(yīng)用配置為接收多媒體內(nèi)容,其中多媒體內(nèi)容包括具有主分辨率的源視頻數(shù)據(jù),在通過所接收的多媒體內(nèi)容的第一程中收集關(guān)于源視頻數(shù)據(jù)的統(tǒng)計(jì)數(shù)據(jù)并且將統(tǒng)計(jì)數(shù)據(jù)寫到共享存儲(chǔ)器,其中統(tǒng)計(jì)數(shù)據(jù)包括像素塊的復(fù)雜性測(cè)量,在通過所接收的多媒體內(nèi)容的第一程中確定用于源視頻數(shù)據(jù)的初始編碼信息并且將初始編碼信息寫到共享存儲(chǔ)器,利用多個(gè)并行編碼過程在通過所接收的多媒體內(nèi)容的第二程中利用所收集的統(tǒng)計(jì)數(shù)據(jù)和初始編碼信息并行地編碼源視頻數(shù)據(jù)以便產(chǎn)生多個(gè)備選視頻流,其中源視頻的編碼利用附加編碼信息,并行編碼過程被配置為重用已經(jīng)由另一并行編碼過程為視頻的一部分確定的并被存儲(chǔ)在共享存儲(chǔ)器中的附加編碼信息,并且并行編碼過程被配置為生成還未由另一并行編碼過程為視頻的一部分確定的附加編碼信息并且將所生成的附加編碼信息存儲(chǔ)在共享存儲(chǔ)器中,其中附加編碼信息包括用于像素塊的量化參數(shù)。
[0005]在另一實(shí)施例中,關(guān)于源視頻數(shù)據(jù)的統(tǒng)計(jì)數(shù)據(jù)包括選自由以下構(gòu)成的組的統(tǒng)計(jì)數(shù)據(jù):平均量化參數(shù)、報(bào)頭位的尺寸、紋理位的尺寸、幀內(nèi)塊的數(shù)量、幀間塊的數(shù)量和跳過塊的數(shù)量。
[0006]在另一實(shí)施例中,被配置為確定用于源視頻數(shù)據(jù)的初始編碼信息的并行處理系統(tǒng)還包括被配置為計(jì)算幀復(fù)雜性測(cè)量的并行處理系統(tǒng)。
[0007]在還有另一實(shí)施例中,被配置為生成還未由另一并行編碼過程為視頻的一部分確定的附加編碼信息的并行編碼過程還包括確定用于編碼源視頻數(shù)據(jù)中的一視頻幀的一部分的編碼樹單元(CTU)尺寸。
[0008]在還有另一實(shí)施例中,確定用于編碼源視頻數(shù)據(jù)中的一視頻幀的一部分的CTU尺寸包括選擇一視頻幀的一部分,以便作為第一輸出流中的至少一個(gè)輸出CTU來編碼,檢查是否已經(jīng)為相似的CTU確定了尺寸,如果還沒有為相似的CTU確定尺寸就選擇CTU尺寸,如果已經(jīng)為相似的CTU確定了尺寸就選擇之前為第二輸出流確定的既定CTU尺寸并且比較第一輸出流的分辨率與第二輸出流的分辨率,如果第一輸出流的分辨率與第二輸出流的分辨率不同就縮放CTU尺寸,確定選定的CTU尺寸對(duì)于輸出CTU是否是可接受的,當(dāng)選定的CTU尺寸不可接受時(shí)選擇較小的CTU尺寸,以及如果選定的CTU尺寸對(duì)于輸出CTU是可接受的就將選定的CTU尺寸應(yīng)用到視頻幀的所述部分。
[0009]在還有另一實(shí)施例中,被配置為確定用于源視頻數(shù)據(jù)的初始編碼信息的并行處理系統(tǒng)還包括被配置為確定用于多個(gè)備選視頻流中至少一個(gè)當(dāng)中的至少一個(gè)視頻幀的模式分布的并行處理系統(tǒng)。
[0010]在還有另一實(shí)施例中,被配置為利用所收集的統(tǒng)計(jì)數(shù)據(jù)和初始編碼信息并行地編碼源視頻數(shù)據(jù)以產(chǎn)生多個(gè)備選視頻流的并行處理系統(tǒng)還包括被配置為維持備選視頻流中的一視頻幀中被處理過的塊的計(jì)數(shù)、基于模式分布確定閾值塊數(shù)并且如果塊的計(jì)數(shù)滿足閾值塊數(shù)就調(diào)整用于塊類型決定的標(biāo)準(zhǔn)的并行處理系統(tǒng)。
[0011]在還有另一實(shí)施例中,被配置為重用已經(jīng)由另一并行編碼過程為視頻的一部分確定的并被存儲(chǔ)在共享存儲(chǔ)器中的附加編碼信息的并行編碼過程還包括被配置為當(dāng)編碼第一備選流中的視頻幀中的第一塊時(shí)確定是否存在用于第二備選流中的第二對(duì)應(yīng)塊的運(yùn)動(dòng)向量、確定第一備選流與第二備選流是否具有相同的分辨率、如果第一備選流與第二備選流不具有相同的分辨率就縮放運(yùn)動(dòng)向量、精細(xì)化運(yùn)動(dòng)向量,以及在編碼第一備選流中視頻幀中的所述第一塊時(shí)應(yīng)用該運(yùn)動(dòng)向量的并行編碼過程。
[0012]再次在另一實(shí)施例中,初始編碼信息還包括報(bào)頭尺寸、宏塊尺寸以及報(bào)頭尺寸與宏塊尺寸的相對(duì)比例。
[0013]在另一附加實(shí)施例中,初始編碼信息還包括假定的參照解碼器數(shù)據(jù)。
[0014]在另一附加實(shí)施例中,每個(gè)并行編碼過程以不同的分辨率進(jìn)行編碼。
[0015]在還有另一實(shí)施例中,每個(gè)并行編碼過程編碼一個(gè)或多個(gè)備選視頻流并且由并行編碼過程編碼的每個(gè)備選視頻流具有不同的位速率。
[0016]在還有另一實(shí)施例中,每個(gè)并行編碼過程將來自源視頻數(shù)據(jù)的塊順序地一個(gè)接一個(gè)編碼到多個(gè)備選視頻流的子集中的每個(gè)流中。
[0017]再次在還有另一實(shí)施例中,附加編碼信息包括速率變形信息和量化參數(shù)。
[0018]還有另一種實(shí)施例再次包括利用源編碼器接收多媒體內(nèi)容,其中多媒體內(nèi)容包括具有主分辨率的源視頻數(shù)據(jù),在通過所接收的多媒體內(nèi)容的第一程中利用源編碼器收集關(guān)于源視頻數(shù)據(jù)的統(tǒng)計(jì)數(shù)據(jù)并且將統(tǒng)計(jì)數(shù)據(jù)寫到共享存儲(chǔ)器,在通過所接收的多媒體內(nèi)容的第一程中利用源編碼器確定用于源視頻數(shù)據(jù)的初始編碼信息并且將初始編碼信息寫到共享存儲(chǔ)器,其中統(tǒng)計(jì)數(shù)據(jù)包括像素塊的復(fù)雜性測(cè)量,利用源編碼器利用多個(gè)并行編碼過程在通過所接收的多媒體內(nèi)容的第二程中利用所收集的統(tǒng)計(jì)數(shù)據(jù)、初始編碼信息和附加編碼信息并行地編碼源視頻數(shù)據(jù)以產(chǎn)生多個(gè)備選視頻流,其中源視頻的編碼還包括利用多個(gè)并行編碼過程當(dāng)中的至少一個(gè)重用已經(jīng)由另一并行編碼過程為視頻的一部分確定的并被存儲(chǔ)在共享存儲(chǔ)器中的附加編碼信息,以及生成還未由多個(gè)并行編碼過程當(dāng)中的另一個(gè)為視頻的一部分確定的附加編碼信息,并利用并行編碼過程將所生成的附加編碼信息存儲(chǔ)在共享存儲(chǔ)器中,其中附加編碼信息包括用于像素塊的量化參數(shù)。
[0019]在還有另一附加實(shí)施例中,關(guān)于源視頻數(shù)據(jù)的統(tǒng)計(jì)數(shù)據(jù)包括選自由以下構(gòu)成的組的統(tǒng)計(jì)數(shù)據(jù):平均量化參數(shù)、報(bào)頭位的尺寸、紋理位的尺寸、幀內(nèi)塊的數(shù)量、幀間塊的數(shù)量,以及跳過塊的數(shù)量。
[0020]在還有另一附加實(shí)施例中,確定用于源視頻數(shù)據(jù)的初始編碼信息還包括計(jì)算幀復(fù)雜性測(cè)量。
[0021]再次在還有另一實(shí)施例中,生成還未由另一并行編碼過程為視頻的一部分確定的附加編碼信息還包括確定用于編碼源視頻數(shù)據(jù)中一幀視頻的一部分的編碼樹單元(CTU)尺寸。
[0022]再次在還有另一實(shí)施例中,確定用于編碼源視頻數(shù)據(jù)中一幀視頻的一部分的編碼樹單元(CTU)尺寸還包括選擇一視頻幀的一部分,以便作為第一輸出流中的至少一個(gè)輸出CTU來編碼,檢查是否已經(jīng)為相似的CTU確定了尺寸,如果還沒有為相似的CTU確定尺寸就選擇CTU尺寸,如果已經(jīng)為相似的CTU確定了尺寸就選擇之前為第二輸出流確定的既定CTU尺寸并且比較第一輸出流的分辨率與第二輸出流的分辨率,如果第一輸出流的分辨率與第二輸出流的分辨率不同就縮放CTU尺寸,確定選定的CTU尺寸對(duì)于輸出CTU是否是可接受的,如果選定的CTU尺寸不可接受就選擇較小的CTU尺寸,如果選定的CTU尺寸對(duì)于輸出CTU是可接受的就將選定的CTU尺寸應(yīng)用到該視頻幀的所述部分。
[0023]在還有另一附加實(shí)施例中,確定用于源視頻數(shù)據(jù)的初始編碼信息還包括確定用于多個(gè)備選視頻流中的至少一個(gè)當(dāng)中的至少一個(gè)視頻幀的模式分布。
[0024]在還有另一附加實(shí)施例中,利用所收集的統(tǒng)計(jì)數(shù)據(jù)、初始編碼信息和附加編碼信息并行地編碼源視頻數(shù)據(jù)以產(chǎn)生多個(gè)備選視頻流還包括維持備選視頻流中的一視頻幀中被處理過的塊的計(jì)數(shù)、基于模式分布確定閾值塊數(shù),并且如果塊的計(jì)數(shù)滿足閾值塊數(shù)就調(diào)整用于塊類型決定的標(biāo)準(zhǔn)。
[0025]再次在另一附加實(shí)施例中,重用已經(jīng)由另一并行編碼過程為視頻的一部分確定的并被存儲(chǔ)在共享存儲(chǔ)器中的附加編碼信息還包括當(dāng)編碼第一備選流中的視頻幀的第一塊時(shí)確定用于第二備選流中的第二對(duì)應(yīng)塊的運(yùn)動(dòng)向量是否存在,確定第一備選流與第二備選流是否具有相同的分辨率,如果第一備選流與第二備選流不具有相同的分辨率就縮放運(yùn)動(dòng)向量,精細(xì)化運(yùn)動(dòng)向量,并且在編碼第一備選流中的視頻幀中的所述第一塊時(shí)應(yīng)用該運(yùn)動(dòng)向量。
[0026]再次在另一附加實(shí)施例中,初始編碼信息還包括報(bào)頭尺寸、宏塊尺寸以及報(bào)頭尺寸與宏塊尺寸的相對(duì)比例。
[0027]再次在還有另一實(shí)施例中,初始編碼信息還包括假定的參照解碼器數(shù)據(jù)。
[0028]再次在另一附加實(shí)施例中,每個(gè)并行編碼過程以不同的分辨率進(jìn)行編碼。
[0029]在還有另一實(shí)施例中,每個(gè)并行編碼過程編碼一個(gè)或多個(gè)備選視頻流并且由并行編碼過程編碼的每個(gè)備選視頻流具有不同的位速率。
[0030]在還有另一附加實(shí)施例中,每個(gè)并行編碼過程將來自源視頻數(shù)據(jù)的塊順序地一個(gè)接一個(gè)編碼到多個(gè)備選視頻