以固定封包方式烧录数据的方法及相关可烧录光驱的制作方法

文档序号:6762985阅读:224来源:国知局
专利名称:以固定封包方式烧录数据的方法及相关可烧录光驱的制作方法
技术领域
本发明涉及一种以固定封包方式烧录数据的方法及相关可烧录光驱,特别涉及一种藉计数器统计未编码的数据以快速将欲烧数据编码为固定封包的方法及相关可烧录光驱。
背景技术
现代的信息社会中,体积小、重量轻、储存密度高而又成本低廉的光盘片,已成为最普及的非易失性储存媒体之一。自从高倍速光盘烧录器的普及,缓冲区数据不足(Buffer Under Run)的问题便一直困扰着所有的烧录器使用者。简单的说,缓冲区数据不足(Buffer Under Run)的发生原因就是因为烧录速度大于计算机数据的流速。当开始一个烧录工作时,烧录程序会将欲烧录的数据从硬盘或另外一片光盘片里面读取出来,暂存在烧录器的缓冲区中,然后烧录器的激光头会将这些数据写到光盘片上。烧录器缓冲区的数据来自于计算机或是光驱,但其数据不一定是连续而稳定的,所以缓冲区里的数据会有时多,有时少。但是烧录中缓冲区绝对不能空掉,一旦缓冲区空掉,乃是因为计算机给的数据不够快,这时候便发生缓冲区数据不足(BufferUnder Run)的错误。
缓冲区数据不足(Buffer Under Run)常常发生在烧录中开启新的应用程序时。当一个新的应用程序被开启的时候,计算机必须暂停传送数据的工作,去读取硬盘开启程序,并分配中央处理器(CPU)的资源去处理开启的程序,这时而烧录的动作仍在继续着,此时缓冲区里面暂存的数据若用完,造成烧录器无数据可烧的情况,就是缓冲区数据不足(Buffer Under Run)。另外一个发生缓冲区数据不足(Buffer Under Run)的原因是读取的来源发生错误。例如母片光盘有刮痕,来源光驱重新定位找寻轨道时,缓冲区数据不足(Buffer Under Run)的错误就发生了。
为避免烧录数据时,烧录速度大于计算机数据的流速而造成缓冲区数据不足(Buffer Under Run)的错误,因此已知光驱以一固定封包(Fixed Packet)烧录方式解决此项问题。此种写入方式是将数据分割成许多固定长度的封包,烧录时将封包写入光盘,光盘上每两个封包的数据中间会插入一个数据区,用以连结每一个封包的数据。固定封包烧录方式可以完全避免缓冲区数据不足(Buffer Under Run)的状况。然而,如何以较少资源、较高效率达到固定封包烧录方式也就成为信息厂商研发的重点。
请参考图1,图1为已知固定封包10的示意图。固定封包10包含有一前编码数据FC(一般为5个区块)、一部分欲写数据PD(一般为32个区块)及一后编码数据BC(一般为2个区块)。前编码数据FC用以表示固定封包10的开始,部分欲写数据PD是一欲写数据中已编码至固定封包10的部分数据,而后编码数据BC用以表示固定封包10的结束。已知光驱采固定封包方式烧录数据时,会先在计算机的硬盘中对欲写序列数据作搬移,并在固定长度的数据(一般为32个区块)之前插入前编码数据FC及之后插入后编码数据BC以编码成如图1所示的固定封包10(共39个区块)。经过数据搬移、及插入前、后编码数据的序列数据,就成为多个固定封包组成的序列,再将每个固定封包烧录至光盘片中。
然而,上述的已知技术需在计算机中对数据作搬移,然后插入前编码数据FC及后编码数据BC。因此,必需耗费相当的资源以处理数据,尤其当使用者一边烧录,一边执行其它程序时,势必大幅降低烧录速度及程序执行效率。再者,当数据因搬移产生错误时,甚至会造成烧录错误。
此外,在另一种已知技术中,则是在可烧录光驱中设置一多任务器MUX,多任务器MUX中的内存收满部分欲写数据PD(一般为32个区块)后,即由另一个处理模块将部分欲写数据PD之前端加上一前编码数据FC,及后端加上一后编码数据BC以形成固定封包10,然后再接收其它数据。然而,以多任务器MUX编码数据的装置无法有效率的将数据编码为固定封包10,更影响了整体烧录的速度。
总而言之,已知技术以固定封包方式烧录数据时,无法有效率的将数据编码为固定封包,甚至会造成烧录错误,影响烧录数据的正确性。

发明内容
因此,本发明的主要目的即在于提供一种可以将欲烧数据快速编码为固定封包的方法及相关可烧录光驱。
本发明揭露一种将一序列数据编码为多个固定封包以烧录至一光盘的方法,其包含有(a)当接收到一序列数据的一笔数据时,调整一第一区块计数;(b)比较该第一区块计数与一预设区决数量;(c)在步骤(b)的结果显示该第一区块计数符合该预设区块数量时,将已接收但尚未编码的数据编码为一固定封包;以及(d)将已编码的固定封包烧录至该光盘中。


图1为一固定封包的示意图。
图2为本发明可烧录光驱的功能方块图。
图3为本发明一实施例的流程图。
图4为本发明另一实施例的流程图。
附图符号说明10固定封包 20可烧录光驱22处理电路 23控制模块24编码模块 26烧录模块28暂存装置 30、32计数器34比较电路 36数据源40、50流程402、404、406、408、410、412、414、416、418、420、502、504、506、508、510、512、514、516、518、520步骤FC前编码数据 PD部份欲写数据BC后编码数据具体实施方式
请参考图2,图2为本发明自动编码固定封包的可烧录光驱20的功能方块示意图。可烧录光驱20设有一处理电路22、一编码模块24及一烧录模块26。处理电路22包含有一控制模块23、一暂存装置28、一计数器30、一计数器32及一比较电路34。控制模块23控制处理电路22的运作;暂存装置28用以暂存由一数据源36输出的数据,并由控制模块23控制以将其暂存的数据输出至编码模块24;计数器30纪录一应编码区块计数W0,而计数器32纪录一待编码区块计数B0;计数W0是一欲写数据的区块总数,而计数B0是由处理电路22接收而尚未被编码的数据的区块总数。计数器30、32可在处理电路22接收到一区块数据时自动调整(增加或减少)其计数W0、B0,并可由控制模块23控制以调整计数W0、B0。比较电路34用以判断计数器30、32的计数W0、B0是否达到一默认值,并将判断结果传至控制模块23。控制模块23藉比较电路34输出的判断结果以控制暂存装置28是否可将其暂存的数据输出至编码模块24。藉由控制模块23、暂存装置28、计数器30、计数器32及比较电路34的运作,处理电路22可自动将数据源36传来的多个区块数据输出为一固定区块长度的数据至编码模块24。编码模块24将接收到的数据前后各加上不同区块长度的数据,并传至烧录模块26以烧录至一光盘片上。举例来说,前述的固定封包10(请参考图1)包含有一前编码数据FC(一般为5个区块)、一部分欲写数据PD(一般为32个区块)及一后编码数据BC(一般为2个区块)。处理电路22自数据源36接收到32个区块的数据后,即传送至编码模块24。编码模块24在该32个区块的数据之前加上一5区块长度的前编码数据FC,及之后加上一2区块长度的后编码数据BC以输出为一固定区块长度(39个区块)的封包,并将该39(5+32+2)个区块的数据传送至烧录模块26并烧录至光盘片上。
关于本发明将数据源36的欲写数据自动编码为固定封包的流程,请参考图3(及图2)。图3为图2中可烧录光驱20将数据自动编码为固定封包的一较佳实施例流程40的示意图。流程40包含有以下步骤步骤402开始编码。当使用者以固定封包方式执行烧录数据源36中一欲写数据后,可烧录光驱20即开始对该欲写数据进行编码;步骤404设定计数器30、32的计数W0、B0分别为0。由可烧录光驱20中处理电路22的控制模块23将处理电路22中计数器30、32分别复位(reset)为启始状态(在本实施例中,计数器30、32的启始状态为计数W0、B0分别为0);步骤406接收一区块数据。处理电路22由数据源36接收一区块数据(长度为1区块长度),并将该数据储存在暂存装置中28;步骤408将计数器30、32的计数W0、B0分别加1。由可烧录光驱20中处理电路22的控制模块23将处理电路22中计数器30、32的计数W0、B0分别加1;步骤410比较计数器32的计数B0与预设区块长度D(在本实施例中,预设区块长度D为32)。由可烧录光驱20中处理电路22的比较电路34比较计数器32的计数B0与该预设区块长度D,若计数器32的计数B0小于该预设区块长度D,则流程40回到步骤406;反之,若计数器32的计数B0大于或等于该预设区块长度D,则流程40继续进行步骤412;步骤412将储存在暂存装置28中的数据输出至编码模块24;步骤414将计数器30的计数W0加上预设前编码数FCC及后编码数BCC(在本实施例中,预设前、后编码数FCC、BCC分别为5、2),并将计数器32复位(reset)为启始状态;步骤416将编码模块24中的数据编码为固定封包10。编码模块24接收到由处理电路22中暂存装置28输出的多区块数据(在本实施例中,该多区块数据长度为32)后,将该多区块数据之前端加上一前编码数据FC,及其后端加上一后编码数据BC。在本实施例中,前、后编码数据FC、BC的数据区块长度分别等于前编码数FCC及后编码数BCC;步骤418判断是否完成所有欲写数据的编码,若完成所有欲写数据的编码,则进行下一步骤;若未完成所有欲写数据的编码,则回到步骤406;步骤420结束编码。
简言之,本发明可烧录光驱20开始以固定封包方式烧录数据源36的数据时,处理电路22中的控制模块23会将计数器30、32分别复位为启始状态(在本实施例中,计数器30、32的启始状态为计数W0、B0为0),并将数据以一区块一区块的方式暂存至暂存装置28中;同时,每暂存一区块数据时,计数器30、32的计数W0、B0即分别加1。处理电路22中的比较电路34随即比较计数器32的计数B0与预设区块长度D;预设区块长度D即图1中固定封包10的部分欲写数据PD的区块长度。藉由比较计数器32的计数B0与预设区块长度D,本发明可烧录光驱20的处理电路22即可判断暂存装置28中的数据是否已达固定封包10中部分欲写数据PD的区块长度。若计数器32的计数B0小于预设区块长度D,代表暂存装置28中的数据还不足以形成固定封包10,则处理电路22继续由数据源36接收下一区块的数据。反之,若计数器32的计数B0达到预设区块长度D,代表暂存装置28中的数据足以形成固定封包10,则处理电路22将暂存装置28中的数据输出至编码模块24,且处理电路22并将计数器32复位为启始状态,代表暂存装置28中的数据已编码为固定封包10。同时,处理电路22另将计数器30的计数W0加上前编码数FCC及后编码数BCC,表示编码模块24已处理了W0+FCC+BCC的数据区块量。编码模块24在所接收到的多个区块数据之前加上前编码数据FC,及之后加上后编码数据BC以形成固定封包10,并将编码后的数据传至烧录模块26中以烧录至一光盘中。然后,处理电路22继续接收下一区块数据,直到所有欲写数据皆完成烧录。
此外,本发明可烧录光驱20的处理电路22调整计数器30、32的方法并不限于累加。举例来说,当开始编码时,计数器30的计数W0可设定为所有欲编码数据的区块总数。每接收一区块数据,处理电路22的控制模块23将计数器30的计数W0减1,且当处理电路22将暂存装置28中的数据输出至编码模块24时,亦不将计数W0加上前编码数FCC及后编码数BCC。则当计数W0等于0时,代表所有欲烧数据皆已编码完成。同样地,计数器32的启始状态亦可设定为计数B0等于预设区块长度D。每接收一区块数据,处理电路22的控制模块23将计数器32的计数B0减1。直到计数B0为0,代表暂存装置28已储存固定封包10中部分欲写数据PD的区块长度的数据,就将暂存装置28中的数据传至编码模块24中。
请参考图4(及图2),图4为图2中可烧录光驱20将数据自动编码为固定封包的另一实施例流程50的示意图。流程50包含有以下步骤步骤502开始编码。当使用者以固定封包方式执行烧录数据源36中一欲写数据后,可烧录光驱20即开始对该欲写数据进行编码;步骤504设定计数器30的计数W0为欲写数据总区块数,及设定计数器30的启始状态为计数B0等于预设区块长度D;步骤506接收一区块数据。处理电路22由数据源36接收一区块数据(长度为1区块长度),并将该数据储存在暂存装置中28;步骤508将计数器30、32的计数W0、B0分别减1。由可烧录光驱20中处理电路22的控制模块23将处理电路22中计数器30、32的计数W0、B0分别减1;步骤510判断计数器32的计数B0是否为0。由可烧录光驱20中处理电路22的比较电路34比较计数器32的计数B0与0,若计数器32的计数B0大于0,则流程50回到步骤506;反之,若计数器32的计数B0等于0,则流程50继续进行步骤512;步骤512将储存在暂存装置28中的数据输出至编码模块24;步骤514将计数器32复位(reset)为启始状态;
步骤516将编码模块24中的数据编码为固定封包。编码模块24接收到由处理电路22中暂存装置28输出的多区块数据(在本实施例中,该多区块数据长度为32)后,将该多区块数据之前端加上一前编码数据FC,及其后端加上一后编码数据BC;步骤518判断计数器30的计数W0是否为0。若计数器30的计数B0大于0,则流程50回到步骤506;反之,若计数器30的计数W0等于0,则流程50进行到步骤520;步骤520完成所有欲写数据的编码。
因此,在流程50中,当要开始烧录一欲写数据时,处理电路22中的控制模块23会将计数器30、32分别设定为欲写数据的区块总数及预设区块长度D(即32),并将数据以一区块一区块的方式暂存至暂存装置28中;同时,每暂存一区块数据时,计数器30、32的计数W0、B0即分别减1。处理电路22中的比较电路34随即比较计数器32的计数B0与0。藉由比较计数器32的计数B0,本发明可烧录光驱20的处理电路22即可判断暂存装置28中的数据是否已达固定封包10中部分欲写数据PD的区块长度。若计数器32的计数B0大于0,代表暂存装置28中的数据还不足以形成固定封包10,则处理电路22继续由数据源36接收下一区块的数据。反之,若计数器32的计数B0等于0,代表暂存装置28中的数据足以形成固定封包10,则处理电路22将暂存装置28中的数据输出至编码模块24,且处理电路22并将计数器32复位为启始状态,代表暂存装置28中的数据已编码为固定封包10。编码模块24在所接收到的多个区块数据之前加上前编码数据FC,及之后加上后编码数据BC以形成固定封包10。然后,比较电路34比较计数器30的计数W0是否为0,若计数器30的计数W0大于0,则处理电路22继续接收下一区块数据;反之,若计数器30的计数W0等于0,表示所有欲写数据皆完成编码,则结束流程50。
总而言之,本发明可烧录光驱20利用处理电路22以有效率的将数据编码为固定封包10,不仅可避免缓冲区数据不足(Buffer Under Run)的错误,并可避免对计算机中数据不必要的搬移,以节省成本,达到有效率且稳固的烧录。
以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明专利的涵盖范围。
权利要求
1.一种将一序列数据编码为多个固定封包以烧录至一光盘的方法,其包含有下列步骤(a)当接收到该序列数据的一区块数据时,调整一第一区块计数;(b)比较该第一区块计数与一预设区块数量;(c)在步骤(b)的结果显示该第一区块计数符合该预设区块数量时,将已接收但尚未编码的数据编码为一固定封包;以及(d)将已编码的固定封包烧录至该光盘中。
2.如权利要求1所述的方法,其在步骤(a)中,当接收到该序列数据的一区块数据时,另调整一第二区块计数;以及在步骤(c)中,在步骤(b)的结果显示该第一区块计数达到该预设区块数量时,另依据一前编码数及一后编码数调整该第二区块计数。
3.如权利要求2所述的方法,其在步骤(c)中,在步骤(b)的结果显示该第一区块计数达到该预设区块数量时,将已接收但尚未编码的数据的前端加上等于该前编码数的数目的区块,并将已接收但尚未编码的数据的后端加上等于该后编码数的数目的区块。
4.如权利要求1所述的方法,其在步骤(c)中,在步骤(b)的结果显示该第一区块计数达到该预设区块数量时,另复位该第一区块计数。
5.一种可将一序列数据编码为多个固定封包的可烧录光驱,其包含有一第一计数器,用来在接收到该序列数据的一区块数据时,调整一第一区块计数;一比较电路,用来比较该第一区块计数与一预设区块数量;一编码模块,用来在该比较电路比较的结果显示该第一区块计数符合该预设区块数量时,将已接收但尚未编码的数据编码为一固定封包;以及一烧录模块,用来将已编码的固定封包烧录至该光盘中。
6.如权利要求5所述的可烧录光驱,其另包含一第二计数器,用来在接收到该序列数据的一区块数据或该比较电路比较的结果显示该第一区块计数符合该预设区块数量时,调整一第二区块计数。
全文摘要
本发明提供一种在烧录数据时,将数据自动编码为一序列固定封包的方法及相关可烧录光驱。本发明是利用一计数器以纪录所有欲烧数据的区块数,及另一计数器纪录该欲烧数据中未编码为固定封包的数据区块数,以快速的处理数据而不需花费额外的时间在产生固定封包,并可减少该可烧录光驱的缓冲存储器发生数据不足的机会,达到快速且正确的编码方式。
文档编号G11B20/10GK1707661SQ200410048440
公开日2005年12月14日 申请日期2004年6月10日 优先权日2004年6月10日
发明者张吉祥, 杨振宁 申请人:联发科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1