欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種光盤(pán)容錯(cuò)處理方法

文檔序號(hào):6755436閱讀:224來(lái)源:國(guó)知局
專利名稱:一種光盤(pán)容錯(cuò)處理方法
技術(shù)領(lǐng)域
本發(fā)明涉及一種光盤(pán)容錯(cuò)處理方法,該方法特別適用于高清DVD光盤(pán)(容量從單面 單層的4.7GB到單面雙層的9GB)。
背景技術(shù)
在這個(gè)高速發(fā)展的社會(huì),通過(guò)DVD碟片觀看電影已經(jīng)成為人們?nèi)粘I畹囊徊?分,而播放質(zhì)量的優(yōu)劣則決定著高清DVD的發(fā)展方向。DVD碟片是移動(dòng)存儲(chǔ)設(shè)備, 片的表面沒(méi)有任何保護(hù),因此在多次使用過(guò)程中,難免會(huì)出現(xiàn)劃傷或沾染上雜物質(zhì) 情況,這些小毛病都會(huì)導(dǎo)致光盤(pán)(即DVD碟片)出現(xiàn)壞塊,影響數(shù)據(jù)的讀取。讀光 盤(pán)錯(cuò)誤的表現(xiàn)形式各不相同,對(duì)于存儲(chǔ)著高清視頻的DVD光盤(pán)而言,讀光盤(pán)錯(cuò)誤表 現(xiàn)為出現(xiàn)馬賽克或者電影卡頓等音視頻播放不暢的現(xiàn)象,這嚴(yán)重影響了用戶對(duì)于優(yōu) 質(zhì)影片的欣賞。因此在讀取光盤(pán)時(shí)需要進(jìn)行容錯(cuò)處理。
目前,容錯(cuò)處理主要有硬件容錯(cuò)處理和軟件容錯(cuò)處理兩個(gè)方面。硬件上常用的 方法是"人工智能糾錯(cuò)(AIEC) " 。 AIEC通過(guò)對(duì)上萬(wàn)張光盤(pán)的采樣測(cè)試,"記錄" 下適合他們的讀盤(pán)策略,并保存在光驅(qū)BIOS芯片中,以方便光驅(qū)針對(duì)偏心盤(pán)、低反 射盤(pán)、劃傷盤(pán)進(jìn)行自動(dòng)的讀盤(pán)策略的選擇。但是,這種硬件容錯(cuò)處理方法成本高昂, 實(shí)現(xiàn)復(fù)雜。
而軟件容錯(cuò)處理是采用從應(yīng)用程序?qū)哟螌?duì)光盤(pán)的錯(cuò)誤進(jìn)行相應(yīng)的處理,或者是 通過(guò)一定應(yīng)用層次的校驗(yàn)機(jī)制進(jìn)行處理。但是,應(yīng)用程序?qū)哟蔚娜蒎e(cuò)處理通用性不 高,對(duì)不同的播放軟件往往需要專門(mén)編寫(xiě)不同的容錯(cuò)應(yīng)用程序,極大地限制了其適 用范圍。而對(duì)于基于校驗(yàn)機(jī)制的容錯(cuò)處理,于碟片存儲(chǔ)數(shù)據(jù)量大和算法復(fù)雜度高, 對(duì)CPU和SDRAM有較高要求,且通用性很低。

發(fā)明內(nèi)容
本方案的目的是克服現(xiàn)有光驅(qū)在讀取光盤(pán)MPEG數(shù)據(jù)時(shí)遇到壞塊而產(chǎn)生的播放 卡頓的問(wèn)題,基于驅(qū)動(dòng)程序?qū)哟危峁┮环N低成本且通用性強(qiáng)的光盤(pán)容錯(cuò)處理方法。
為實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明提供的光盤(pán)容錯(cuò)處理方法包括設(shè)定初次跳讀數(shù) 和最大連續(xù)讀錯(cuò)誤次數(shù),驅(qū)動(dòng)程序依次讀取光盤(pán)塊,如果在某一個(gè)光盤(pán)塊發(fā)生讀錯(cuò)誤,則執(zhí)行下列步驟
1) 讀取從當(dāng)前光盤(pán)塊起始的第N個(gè)光盤(pán)塊,所述N為所述初次跳讀數(shù);如果 讀取正常,則繼續(xù)依次讀取后續(xù)光盤(pán)塊;如果讀取錯(cuò)誤,則進(jìn)入步驟2);
2) 將N賦值為2N,然后讀取從當(dāng)前光盤(pán)塊起始的第N個(gè)光盤(pán)塊,如果讀取正 常,則繼續(xù)依次讀取后續(xù)光盤(pán)塊;如果讀取錯(cuò)誤,則進(jìn)入步驟3);
3) 判斷當(dāng)前連續(xù)錯(cuò)誤次數(shù)是否達(dá)到所述最大連續(xù)讀錯(cuò)誤次數(shù);如果判斷為是, 則退出讀光盤(pán)程序,如果判斷為否,則回到步驟2)。
上述技術(shù)方案中,所述最大連續(xù)讀錯(cuò)誤次數(shù)為15。
上述技術(shù)方案中,所述步驟l)和步驟2)中,當(dāng)發(fā)生讀錯(cuò)誤時(shí),驅(qū)動(dòng)程序調(diào)用 結(jié)束處理函數(shù)清除當(dāng)前發(fā)生讀錯(cuò)誤的光盤(pán)塊所占用的緩存。
本發(fā)明基于驅(qū)動(dòng)程序?qū)?,在不做大的改?dòng)的前提下能夠?qū)崿F(xiàn)光盤(pán)容錯(cuò)。相對(duì)于 硬件容錯(cuò),本發(fā)明成本低,實(shí)現(xiàn)簡(jiǎn)單,時(shí)間短;而相對(duì)于其它從軟件上解決的辦法, 本發(fā)明不需要專門(mén)編寫(xiě)新的應(yīng)用程序,機(jī)制簡(jiǎn)單,不需要復(fù)雜的校驗(yàn)機(jī)制,只需要 在原有驅(qū)動(dòng)程序的基礎(chǔ)上稍作調(diào)整即可;同時(shí),本發(fā)明也具有更大通用性,可以應(yīng) 用在不同的平臺(tái)上。


圖1是塊設(shè)備驅(qū)動(dòng)程序中關(guān)于讀取請(qǐng)求的主要數(shù)據(jù)結(jié)構(gòu)關(guān)系圖。 圖2是實(shí)現(xiàn)高清DVD碟片容錯(cuò)處理的軟件機(jī)制架構(gòu)示意圖。
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明作進(jìn)一步詳細(xì)描述
本實(shí)施例提供的實(shí)現(xiàn)高清DVD碟片容錯(cuò)處理的實(shí)現(xiàn)方法,包括讀取請(qǐng)求錯(cuò)誤的 判斷;在已知該次讀取請(qǐng)求錯(cuò)誤的情況下的容錯(cuò)處理機(jī)制;對(duì)讀取錯(cuò)誤處理后的下 一次讀取操作處理。另外,本實(shí)施例還包括在光盤(pán)損壞比較嚴(yán)重的情況下盡早退出 的處理機(jī)制。
高清DVD碟片的讀操作是通過(guò)塊設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)的,通常來(lái)說(shuō),這是通過(guò)將 讀請(qǐng)求組織成請(qǐng)求隊(duì)列,再對(duì)每一個(gè)請(qǐng)求一一進(jìn)行處理的方式實(shí)現(xiàn)的。正常的讀取 請(qǐng)求處理過(guò)程包括三個(gè)步驟(1)檢査當(dāng)前讀取請(qǐng)求的有效性;(2)進(jìn)行實(shí)際的數(shù) 據(jù)傳送。就是用上面提到過(guò)的請(qǐng)求隊(duì)列的方式實(shí)現(xiàn)的。將每個(gè)請(qǐng)求記為request,對(duì) 應(yīng)圖1中的"讀請(qǐng)求結(jié)構(gòu)體",管理請(qǐng)求隊(duì)列的數(shù)據(jù)結(jié)構(gòu)記為request—queue,對(duì)應(yīng)圖 1中的"讀請(qǐng)求隊(duì)列結(jié)構(gòu)體"。請(qǐng)求隊(duì)列就是以request—queue為頭節(jié)點(diǎn)將請(qǐng)求queue鏈接成雙鏈表進(jìn)行管理。每一個(gè)請(qǐng)求request又可以處理多個(gè)連續(xù)的讀操作,通過(guò)圖 1中的"緩沖區(qū)管理結(jié)構(gòu)體"進(jìn)行管理,緩沖區(qū)管理結(jié)構(gòu)體記為buffer—head,而實(shí)際 的數(shù)據(jù)保存在"緩沖區(qū)"中,緩沖區(qū)記為data,詳見(jiàn)圖1。 (3)清除當(dāng)前的請(qǐng)求。清 除當(dāng)前的請(qǐng)求一般通過(guò)結(jié)束處理函數(shù)執(zhí)行。本實(shí)施例中,驅(qū)動(dòng)程序向結(jié)束處理函數(shù) 傳遞一個(gè)參數(shù)來(lái)標(biāo)識(shí)讀操作的正確與錯(cuò)誤,在這里我們以l標(biāo)識(shí)正確,O標(biāo)識(shí)錯(cuò)誤。 當(dāng)讀錯(cuò)的同時(shí),驅(qū)動(dòng)程序生成一個(gè)"I/O error"消息傳遞給操作系統(tǒng)。不同的操作系 統(tǒng)的驅(qū)動(dòng)程序中可能有不同的結(jié)束處理函數(shù),清除當(dāng)前的請(qǐng)求的處理方式也有所不 同,但應(yīng)當(dāng)理解,這些清除當(dāng)前的請(qǐng)求的處理方式都是本領(lǐng)域技術(shù)人員所公知的, 因此,這里不再一一贅述。
參照?qǐng)D2,高清碟片容錯(cuò)處理機(jī)制的具體處理過(guò)程如下
1) 操作系統(tǒng)在收到讀光盤(pán)命令后,在進(jìn)行讀操作之前,會(huì)先進(jìn)行初始化工作 Sectors = N, N是一個(gè)常量,sectors是每次讀操作失敗之后跳過(guò)的塊數(shù),在連
續(xù)讀錯(cuò)的情況下,會(huì)以2的倍數(shù)遞增;
sector_end = 0, sector—end是跳塊之后下一次要讀的塊號(hào),即有如下關(guān)系 sector—end=Current—sector + sectors , Current—sector是當(dāng)前塊號(hào),初始化為0; Error—times = 0,連續(xù)讀錯(cuò)誤的次數(shù),有上限M,初始化為0;
2) 通過(guò)圖2,可以看到正確的讀操作流程圖,如果發(fā)生讀取操作錯(cuò)誤,則進(jìn)入 到錯(cuò)誤處理的流程中去,具體的操作如下
sector—end=Current—sector + sectors,得到跳過(guò)sectors塊之后下一次要讀取的塊
號(hào);
Error_times ++,連讀錯(cuò)誤次數(shù)加1,并且要判斷是否大于最大允許的連讀錯(cuò)誤 次數(shù),如果大于等于本實(shí)施例所允許的最大連續(xù)讀取錯(cuò)誤次數(shù),則認(rèn)為光盤(pán)數(shù)據(jù)損 壞嚴(yán)重,退出讀光驅(qū)命令;
sectors = 2X sectors,下一次仍然讀取錯(cuò)誤要跳過(guò)的塊數(shù)加倍; 真正跳塊的操作是從下一次開(kāi)始的sectors塊讀取操作,但不一定是sectors次循 環(huán),因?yàn)槊看巫x取操作是以data為單位的,而每個(gè)data會(huì)存放若干個(gè)塊的數(shù)據(jù),此 外,多次連續(xù)的讀取操作可以合并到一個(gè)讀請(qǐng)求中,可以參考圖l。流程圖中的"取 消該次操作"所做的工作在上面曾經(jīng)提到過(guò)的"結(jié)束處理函數(shù)"中,它定義在。"結(jié) 束處理函數(shù)"是對(duì)于讀取操作的掃尾工作,在正確的讀取操作結(jié)束之后會(huì)返回1,而 在錯(cuò)誤的讀取操作之后會(huì)返回0。如果沒(méi)有錯(cuò)誤處理機(jī)制,原始的驅(qū)動(dòng)程序是一次處 理一個(gè)data的數(shù)據(jù),而且要等到該次讀錯(cuò)誤操作返回,在底層操作中是通過(guò)時(shí)間溢 出值為0來(lái)標(biāo)識(shí)的,在連續(xù)若千塊發(fā)生錯(cuò)誤的情況下,每次等待都要等待時(shí)間溢出值為0,這段等待時(shí)間導(dǎo)致播放的畫(huà)面停頓或出現(xiàn)馬賽克等異?,F(xiàn)象。
在本實(shí)施例的錯(cuò)誤處理機(jī)制中,改變的是"結(jié)束處理函數(shù)"對(duì)于要跳過(guò)的塊的 處理操作,本實(shí)施例的機(jī)制就是把這些要跳過(guò)的塊當(dāng)成已正確操作結(jié)束而返回1。具 體來(lái)講就是在判斷處于跳塊操作過(guò)程后,不進(jìn)行任何真正的讀取操作,直接調(diào)用"結(jié) 束處理函數(shù)"來(lái)對(duì)該次的讀取請(qǐng)求request進(jìn)行清理。在每一次讀取操作過(guò)程中,真 正所做的清理工作是對(duì)于該次請(qǐng)求所使用的緩沖空間的釋放。在"結(jié)束處理函數(shù)中", 本實(shí)施例要在合適的時(shí)機(jī)把該次request中所有用來(lái)存放數(shù)據(jù)的"緩沖區(qū)"data和管 理"緩沖區(qū)"data的"緩沖區(qū)管理結(jié)構(gòu)體"buffer一head處理掉,采用的方法和正確 讀取數(shù)據(jù)之后對(duì)于這些結(jié)構(gòu)體和緩沖區(qū)的處理方法是一樣的首先暫存request中bh 所指向的buffer—head結(jié)構(gòu)體對(duì)request中bh所指向的buffer—head和data調(diào)用底層 清理函數(shù)(不同的系統(tǒng)有不同的底層處理函數(shù))進(jìn)行處理,之后,再以輪詢的方式 處理完所有的buffer—head和他們所管理的data,直到"讀請(qǐng)求"request中沒(méi)有管理 "緩沖區(qū)"data的"緩沖區(qū)管理結(jié)構(gòu)體"buffer一head為止。
3)跳過(guò)相應(yīng)的塊數(shù)之后,下一次則按照正常的讀取操作進(jìn)行,直到讀到光盤(pán)最 后或者連讀錯(cuò)誤次數(shù)達(dá)到上限值M。
權(quán)利要求
1、一種光盤(pán)容錯(cuò)處理方法,包括設(shè)定初次跳讀數(shù)和最大連續(xù)讀錯(cuò)誤次數(shù),驅(qū)動(dòng)程序依次讀取光盤(pán)塊,如果在某一個(gè)光盤(pán)塊發(fā)生讀錯(cuò)誤,則執(zhí)行下列步驟1)讀取從當(dāng)前光盤(pán)塊起始的第N個(gè)光盤(pán)塊,所述N為所述初次跳讀數(shù);如果讀取正常,則繼續(xù)依次讀取后續(xù)光盤(pán)塊;如果讀取錯(cuò)誤,則進(jìn)入步驟2);2)將N賦值為2N,然后讀取從當(dāng)前光盤(pán)塊起始的第N個(gè)光盤(pán)塊,如果讀取正常,則繼續(xù)依次讀取后續(xù)光盤(pán)塊;如果讀取錯(cuò)誤,則進(jìn)入步驟3);3)判斷當(dāng)前連續(xù)錯(cuò)誤次數(shù)是否達(dá)到所述最大連續(xù)讀錯(cuò)誤次數(shù);如果判斷為是,則退出讀光盤(pán)程序,如果判斷為否,則回到步驟2)。
2、 根據(jù)權(quán)利要求1所述的光盤(pán)容錯(cuò)處理方法,所述最大連續(xù)讀錯(cuò)誤次數(shù)為15。
3、 根據(jù)權(quán)利要求1所述的光盤(pán)容錯(cuò)處理方法,所述步驟1)和步驟2)中,當(dāng) 發(fā)生讀錯(cuò)誤時(shí),驅(qū)動(dòng)程序調(diào)用結(jié)束處理函數(shù)清除當(dāng)前發(fā)生讀錯(cuò)誤的光盤(pán)塊所占用的 緩存。
全文摘要
本發(fā)明涉及一種光盤(pán)容錯(cuò)處理方法,包括設(shè)定初次跳讀數(shù)和最大連續(xù)讀錯(cuò)誤次數(shù),驅(qū)動(dòng)程序依次讀取光盤(pán)塊,如果在某一個(gè)光盤(pán)塊發(fā)生讀錯(cuò)誤,執(zhí)行下列步驟1)讀取從當(dāng)前光盤(pán)塊起始的第N個(gè)光盤(pán)塊,所述N為所述初次跳讀數(shù);如果讀取正常,則繼續(xù)依次讀取后續(xù)光盤(pán)塊;否則,進(jìn)入步驟2);2)將N賦值為2N,然后讀取從當(dāng)前光盤(pán)塊起始的第N個(gè)光盤(pán)塊,如果讀取正常,則繼續(xù)依次讀取后續(xù)光盤(pán)塊;否則,進(jìn)入步驟3);3)判斷當(dāng)前連續(xù)錯(cuò)誤次數(shù)是否達(dá)到所述最大連續(xù)讀錯(cuò)誤次數(shù);如果判斷為是,則退出讀光盤(pán)程序,否則,回到步驟2)。本發(fā)明能夠解決光驅(qū)讀取光盤(pán)MPEG數(shù)據(jù)時(shí)遇到壞塊而產(chǎn)生的播放卡頓問(wèn)題,并且成本低、實(shí)現(xiàn)簡(jiǎn)單、通用性強(qiáng)。
文檔編號(hào)G11B20/18GK101645291SQ20091009127
公開(kāi)日2010年2月10日 申請(qǐng)日期2009年8月14日 優(yōu)先權(quán)日2009年8月14日
發(fā)明者姜京梅, 梁 潘, 胡建良, 曉 陳, 齊向東 申請(qǐng)人:北京中科智網(wǎng)傳媒技術(shù)有限公司;中國(guó)科學(xué)院聲學(xué)研究所
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
巴林左旗| 罗甸县| 宁陵县| 朔州市| 互助| 保亭| 房产| 通榆县| 游戏| 霍邱县| 芦溪县| 吉林市| 嘉黎县| 普定县| 兴化市| 金堂县| 交城县| 雷州市| 正宁县| 阿拉善右旗| 柯坪县| 盖州市| 榆社县| 山西省| 宜黄县| 枣庄市| 南和县| 墨玉县| 无棣县| 桦南县| 乾安县| 巧家县| 祁东县| 凤阳县| 石泉县| 新营市| 那曲县| 远安县| 鹤岗市| 宣威市| 柘城县|