數(shù)字電視視頻服務器的設計與實現(xiàn)
發(fā)布時間:2007/4/23 0:00:00 訪問次數(shù):1556
數(shù)字電視是從電視節(jié)目錄制、播出到發(fā)射、接收全部采用數(shù)字編碼與數(shù)字傳輸技術(shù)的新一代電視。它具有可實現(xiàn)雙向交互業(yè)務、抗干擾能力強、頻率資源利用率高等優(yōu)點。
視頻服務器是數(shù)字電視的關(guān)鍵技術(shù)之一。視頻服務器類型可分為基于通用計算機的服務器、基于高級工作站的服務器、基于專用硬件平臺的服務器、分布式層次結(jié)構(gòu)服務器等 幾類。分布式視頻服務器結(jié)構(gòu)對每個播出服務器的性能要求不是很高,因此,可以將大量廉價的服務器結(jié)合起來,通過合理的控制和調(diào)度達到一個高性能服務器的功能。本文討論了一種分布式視頻服務器的設計與實現(xiàn)。
1 分布式視頻服務器的設計
1.1 數(shù)字電視視頻服務器網(wǎng)絡結(jié)構(gòu)
本文設計的分布式視頻服務器網(wǎng)絡結(jié)構(gòu)如圖1所示。它可以完成從播出計劃、節(jié)目存儲、播出管理、碼流復接等一系列工作。
圖1 數(shù)字電視視頻服務器網(wǎng)絡結(jié)構(gòu)圖
1.2 分布式視頻服務器的功能構(gòu)成
節(jié)目單服務器的功能是生成電子節(jié)目單。它提供人機交互功能,可以根據(jù)播出計劃生成電子節(jié)目單,并可對已有的電子節(jié)目單進行編輯、查詢等操作。此外它還可以對每一個節(jié)目提供附加信息,如節(jié)目簡介等。當電子節(jié)目單發(fā)生變化時通知節(jié)目單代理服務器。
鏈表,例如根據(jù)節(jié)目是否重播,是否在多個視頻服務器上播放相同的節(jié)目等。節(jié)目單代理服務器根據(jù)更新的節(jié)目單生成相應的PSI/SI各種表復接到TS流中播發(fā)出去。由節(jié)目單數(shù)據(jù)庫形成播出系統(tǒng)的基本指令是數(shù)字電視特有的系統(tǒng)流程,是網(wǎng)絡化播出的基礎,它使流媒體高效連續(xù)的自動化播出得以實現(xiàn)。
播出服務器根據(jù)節(jié)目單代理服務器提供的播放列表維護節(jié)目的播放狀態(tài),實現(xiàn)自動播出。播出服務器一般由多個服務器組成,由節(jié)目單代理服務器調(diào)度。節(jié)目單代理服務器和播出服務器通過底層套接字通信。節(jié)目單代理服務器向播出服務器發(fā)送消息,然后播出服務器解釋該消息以便決定要執(zhí)行什么操作,如在特定的時間播出特定的節(jié)目。節(jié)目播控是數(shù)字電視節(jié)目平臺播控系統(tǒng)中重要的組成部分,它的正確、穩(wěn)定、高效運行是節(jié)目播出,安全、優(yōu)質(zhì)的保證。整個節(jié)目播出過程為自動播出無須人工干預,但可以通過客戶端對播出過程進行調(diào)整。
2 視頻服務器實現(xiàn)的關(guān)鍵問題
視頻服務器涉及的技術(shù)很多,如流調(diào)度、磁盤I/O、磁盤存儲、VCR功能實現(xiàn)等。本文重點從磁盤和文件調(diào)度與節(jié)目流調(diào)度策略兩個方面討論提高數(shù)字電視視頻服務器的整體性能的技術(shù)。
2.1視頻服務器的磁盤和文件調(diào)度
數(shù)字電視視頻服務器與普通操作系統(tǒng)的磁盤調(diào)度不同,需采用帶有在規(guī)定時間限制內(nèi)完成的實時調(diào)度算法。適合流媒體的調(diào)度算法有EDF、RM、DSr等。LMD(Least Missed Deadline)算法是對服務超時限數(shù)作為優(yōu)化對象的實時調(diào)度算法。本文采用一種稱為貪婪LMD的調(diào)度算法GLMD。GLMD算法的核心為:(1)精確地計算服務每一個請求的時間,提高優(yōu)化結(jié)果的可信度;(2)尋找服務超時限數(shù)最小的服務隊列為最佳隊列;(3)在滿足服務時限的請求時,利用SCAN算法服務處在其移動路線上的請求。
設原服務隊列為?鄢q,新加入的服務請求為?鄢r,best_Deadline為原最佳服務隊列超時限數(shù),new_Deadline為插入新請求后服務隊列超時限數(shù),best_time為原最佳服務隊列總服務時間,new_time為插入新請求后服務隊列總服務時間,具體的GLMD算法如下所示:
void sbull_request(request_queue * q,request * r)
{
best_Deadline=+∞;
new_time=+∞;
while(1)
{for(i=0;iadd_queue( * r,i);/ * 把請求插入隊列i的位置 * /
int new_Deadline=compute_Deadline( * q);/ * 計算當前
/ * 超限數(shù)Deadline * /
if(new_Deadline{best_queue= * q;/ * 當小于原服務超時限數(shù),該服務 * /
best_Deadline=new_Deadline;}/ * 隊列為最佳服務隊列 * /
if(new_Deadline==best_Deadline)
{new_time=compute_time( * q);/ * 計算當前總服務時間 * /
if(new_ time{best_queue= * q;/ * 當小于原服務時間,該服務隊列 * /
best_Deadline=new_Deadline;}/ * 為最佳服務隊列 * /
} } } }
函數(shù)compute_Deadline( * q)主要計算當前隊列是否有請求超時限以及有多少個請求超時限。函數(shù) compute_time( * q)主要計算磁頭尋道延時、磁盤旋轉(zhuǎn)延時、數(shù)據(jù)傳輸延時、總線傳輸延時和命令處理延時五部分?偩傳輸延時和命令處理延時大小相對穩(wěn)定;數(shù)據(jù)傳輸延時由磁盤讀取帶寬和數(shù)據(jù)大小決定;磁頭尋道模型有加速、勻速、減速和定位四個階段,其中加速和減速的加速度恒定。當磁頭尋道的距離d為1~4個磁道時,僅有定位階段;當磁頭尋道的距離d(磁道數(shù))為4400時,磁頭尋道有加速、勻速、減速和定位四個階段。磁頭尋道延時計算公式如下:
磁盤旋轉(zhuǎn)延時為旋轉(zhuǎn)等待時間,可取其數(shù)據(jù)期望值,即磁盤旋轉(zhuǎn)一周所需時間的一半。
在Windows平臺實現(xiàn)時,有
數(shù)字電視是從電視節(jié)目錄制、播出到發(fā)射、接收全部采用數(shù)字編碼與數(shù)字傳輸技術(shù)的新一代電視。它具有可實現(xiàn)雙向交互業(yè)務、抗干擾能力強、頻率資源利用率高等優(yōu)點。
視頻服務器是數(shù)字電視的關(guān)鍵技術(shù)之一。視頻服務器類型可分為基于通用計算機的服務器、基于高級工作站的服務器、基于專用硬件平臺的服務器、分布式層次結(jié)構(gòu)服務器等 幾類。分布式視頻服務器結(jié)構(gòu)對每個播出服務器的性能要求不是很高,因此,可以將大量廉價的服務器結(jié)合起來,通過合理的控制和調(diào)度達到一個高性能服務器的功能。本文討論了一種分布式視頻服務器的設計與實現(xiàn)。
1 分布式視頻服務器的設計
1.1 數(shù)字電視視頻服務器網(wǎng)絡結(jié)構(gòu)
本文設計的分布式視頻服務器網(wǎng)絡結(jié)構(gòu)如圖1所示。它可以完成從播出計劃、節(jié)目存儲、播出管理、碼流復接等一系列工作。
圖1 數(shù)字電視視頻服務器網(wǎng)絡結(jié)構(gòu)圖
1.2 分布式視頻服務器的功能構(gòu)成
節(jié)目單服務器的功能是生成電子節(jié)目單。它提供人機交互功能,可以根據(jù)播出計劃生成電子節(jié)目單,并可對已有的電子節(jié)目單進行編輯、查詢等操作。此外它還可以對每一個節(jié)目提供附加信息,如節(jié)目簡介等。當電子節(jié)目單發(fā)生變化時通知節(jié)目單代理服務器。
鏈表,例如根據(jù)節(jié)目是否重播,是否在多個視頻服務器上播放相同的節(jié)目等。節(jié)目單代理服務器根據(jù)更新的節(jié)目單生成相應的PSI/SI各種表復接到TS流中播發(fā)出去。由節(jié)目單數(shù)據(jù)庫形成播出系統(tǒng)的基本指令是數(shù)字電視特有的系統(tǒng)流程,是網(wǎng)絡化播出的基礎,它使流媒體高效連續(xù)的自動化播出得以實現(xiàn)。
播出服務器根據(jù)節(jié)目單代理服務器提供的播放列表維護節(jié)目的播放狀態(tài),實現(xiàn)自動播出。播出服務器一般由多個服務器組成,由節(jié)目單代理服務器調(diào)度。節(jié)目單代理服務器和播出服務器通過底層套接字通信。節(jié)目單代理服務器向播出服務器發(fā)送消息,然后播出服務器解釋該消息以便決定要執(zhí)行什么操作,如在特定的時間播出特定的節(jié)目。節(jié)目播控是數(shù)字電視節(jié)目平臺播控系統(tǒng)中重要的組成部分,它的正確、穩(wěn)定、高效運行是節(jié)目播出,安全、優(yōu)質(zhì)的保證。整個節(jié)目播出過程為自動播出無須人工干預,但可以通過客戶端對播出過程進行調(diào)整。
2 視頻服務器實現(xiàn)的關(guān)鍵問題
視頻服務器涉及的技術(shù)很多,如流調(diào)度、磁盤I/O、磁盤存儲、VCR功能實現(xiàn)等。本文重點從磁盤和文件調(diào)度與節(jié)目流調(diào)度策略兩個方面討論提高數(shù)字電視視頻服務器的整體性能的技術(shù)。
2.1視頻服務器的磁盤和文件調(diào)度
數(shù)字電視視頻服務器與普通操作系統(tǒng)的磁盤調(diào)度不同,需采用帶有在規(guī)定時間限制內(nèi)完成的實時調(diào)度算法。適合流媒體的調(diào)度算法有EDF、RM、DSr等。LMD(Least Missed Deadline)算法是對服務超時限數(shù)作為優(yōu)化對象的實時調(diào)度算法。本文采用一種稱為貪婪LMD的調(diào)度算法GLMD。GLMD算法的核心為:(1)精確地計算服務每一個請求的時間,提高優(yōu)化結(jié)果的可信度;(2)尋找服務超時限數(shù)最小的服務隊列為最佳隊列;(3)在滿足服務時限的請求時,利用SCAN算法服務處在其移動路線上的請求。
設原服務隊列為?鄢q,新加入的服務請求為?鄢r,best_Deadline為原最佳服務隊列超時限數(shù),new_Deadline為插入新請求后服務隊列超時限數(shù),best_time為原最佳服務隊列總服務時間,new_time為插入新請求后服務隊列總服務時間,具體的GLMD算法如下所示:
void sbull_request(request_queue * q,request * r)
{
best_Deadline=+∞;
new_time=+∞;
while(1)
{for(i=0;iadd_queue( * r,i);/ * 把請求插入隊列i的位置 * /
int new_Deadline=compute_Deadline( * q);/ * 計算當前
/ * 超限數(shù)Deadline * /
if(new_Deadline{best_queue= * q;/ * 當小于原服務超時限數(shù),該服務 * /
best_Deadline=new_Deadline;}/ * 隊列為最佳服務隊列 * /
if(new_Deadline==best_Deadline)
{new_time=compute_time( * q);/ * 計算當前總服務時間 * /
if(new_ time{best_queue= * q;/ * 當小于原服務時間,該服務隊列 * /
best_Deadline=new_Deadline;}/ * 為最佳服務隊列 * /
} } } }
函數(shù)compute_Deadline( * q)主要計算當前隊列是否有請求超時限以及有多少個請求超時限。函數(shù) compute_time( * q)主要計算磁頭尋道延時、磁盤旋轉(zhuǎn)延時、數(shù)據(jù)傳輸延時、總線傳輸延時和命令處理延時五部分?偩傳輸延時和命令處理延時大小相對穩(wěn)定;數(shù)據(jù)傳輸延時由磁盤讀取帶寬和數(shù)據(jù)大小決定;磁頭尋道模型有加速、勻速、減速和定位四個階段,其中加速和減速的加速度恒定。當磁頭尋道的距離d為1~4個磁道時,僅有定位階段;當磁頭尋道的距離d(磁道數(shù))為4400時,磁頭尋道有加速、勻速、減速和定位四個階段。磁頭尋道延時計算公式如下:
磁盤旋轉(zhuǎn)延時為旋轉(zhuǎn)等待時間,可取其數(shù)據(jù)期望值,即磁盤旋轉(zhuǎn)一周所需時間的一半。
在Windows平臺實現(xiàn)時,有
熱門點擊