本发明是有关于一种无线局域网(wirelesslocalareanetwork,wlan)播放器,且特别是有关于一种同步播放速度的无线局域网播放器、系统及其方法。
背景技术:
随着科技的发展,具有无线传输功能的播放器(例如,音箱)已愈趋普遍,使得人们可利用例如wlan的无线传输功能连接多个不同的播放器,以使用不同的播放器输出同一个媒体文件。
然而,由于人耳对各个声道之间的同步非常敏感,因此当多个播放器分别播放同一个作品的多个声道时,这些播放器可能会因所使用的晶体振荡器不同步而造成使用者在听觉上的不适。一般而言,人类左耳与右耳之间的距离平均约为20公分,而声波经过这个距离需约600μs。在此情况下,若欲避免使用者的听觉不适,播放器间需要将同步误差控制在10%(即,60μs)以内,以使人们可将其忽略。
因此,如何发展出一种能够有效率地降低多个播放器之间同步误差的方法为本领域技术人员所关心的议题之一。
技术实现要素:
有鉴于此,本发明提供一种同步播放速度的wlan播放器、系统及其方法。此同步播放速度的wlan播放器可依据与另一wlan播放器之间的播放进度值及wlan时钟值调整自身播放媒体的速度。藉此,wlan播放器不但可检测与另一播放器之间wlan时钟值是否同步之外,更可在确定wlan时钟值已同步的情况下来调整播放进度值,从而有效地降低与另一wlan播放器之间的同步误差。
本发明提供一种同步播放速度的wlan播放器。此wlan播放器包括速度调整模块,依据来自另一wlan播放器的第一播放进度值及第一时钟值调整wlan播放器播放媒体的速度,以与另一wlan播放器同步播放媒体。第一播放进度值为另一wlan播放器播放媒体的进度值,且第一时钟值为另一wlan播放器自身的wlan 时钟值。wlan播放器具有第二播放进度值以及第二时钟值,第二播放进度值为wlan播放器播放媒体的进度值,且第二时钟值为第二wlan播放器自身的无线局域网时钟值。速度调整模块经配置以:计算第二播放进度值与第一播放进度值之间的进度差值;计算第二时钟值与第一时钟值之间的时间差值;依据进度差值以及时间差值计算特定进度差值;以及依据特定进度差值调整wlan播放器播放媒体的速度。
为让本发明的上述特征和优点能更明显易懂,下文特举实施例,并配合所附图式作详细说明如下。
附图说明
图1所示为依据本发明一实施例之具有同步播放速度的wlan播放系统的方块示意图。
图2所示为依据本发明之一实施例之速度调整模块的方块示意图。
图3所示为依据本发明一实施例之播放速度同步方法的流程图。
图4a至4c为将图3的filter_coef1及filter_coef2分别设定为不同数值的同步效能模拟图。
附图标记说明
10:wlan播放系统
12:存取点
14:无线讯号涵盖范围
110:第一wlan播放器
120:第二wlan播放器
121:收发电路
122:速度调整模块
201、202、203、204、205、206、207、208、209、210:元件
s310、s320、s330、s340:步骤
具体实施方式
为降低透过wlan方式传递讯号的多个播放器对于播放媒体之同步误差,本发明实施例提出一种播放速度同步方法,wlan播放器可利用另一wlan播放器的播放 进度值及wlan时钟值调整其播放媒体的速度,以与另一wlan播放器同步播放媒体。而wlan播放器是利用与另一wlan播放器彼此之间播放进度值的差值及wlan时钟值的差值来计算一个特定的进度差值,以进行wlan播放器之间的同步。
此外,本发明实施例更揭示了可用于体现上述播放速度同步方法的wlan播放器与wlan播放系统。为了使本发明之内容更容易明了,以下特举实施例作为本发明确实能够据以实施的范例。
图1所示为依据本发明一实施例之具有同步播放速度的wlan播放系统的方块示意图。在本实施例中,wlan播放系统10包括第一wlan播放器110、第二wlan播放器120及存取点(accesspoint,ap)12。可理解的,第一wlan播放器110及第二wlan播放器120的数量可以视实务上的需求调整。例如,在一实施例中,wlan播放系统10可以包括更多的wlan播放器,但本发明并未限制其数量。
在本实施例中,第一wlan播放器110及第二wlan播放器120是具有相同或相似功能的多媒体输出/播放器,且皆具有wlan功能。举例来说,第一wlan播放器110及第二wlan播放器120可以是智慧型手机、平板电脑、笔记型电脑、桌上型电脑及智慧型电视(smarttv)等兼具声音及影像输出功能的多媒体播放器。或者,在另一实施例中,第一wlan播放器110及第二wlan播放器120也可以是包括显示器与音响等仅具有声音或影像输出功能的多媒体播放器,例如wlan音箱等。在其他实施例中,假设wlan播放系统10为音响系统,则第一wlan播放器110及第二wlan播放器120分别可以是左/右声道音讯输出装置或右/左声道音讯输出装置。或者,在一实施例中,第一wlan播放器110及第二wlan播放器120也可以是用以播放相同声道及/或单一影像的多媒体播放器。
在使用情境方面,第一wlan播放器110及第二wlan播放器120可以放置于同一空间或不同空间。举例来说,第一wlan播放器110及第二wlan播放器120可以是分别放置于住宅中的一个或多个房间或者一个或多个楼层等等,本发明不对其限制。
在本实施例中,第一wlan播放器110及第二wlan播放器120皆位于存取点12的无线讯号涵盖范围14内,可透过存取点12提供的wlan网络进行无线传输及/或无线上网等操作。换言之,第一wlan播放器110、第二wlan播放器及存取点12可形成一基本服务集(basicserviceset,bss)。在本实施例中,第一wlan播放器110在图1所示的bss中,可为主(master)播放器,而第二wlan播放器120则为 从(slave)播放器。在另一实施例中,第一wlan播放器110及第二wlan播放器120也可以分别属于不同的wlan,亦即分属于不同的独立bss(independentbss,ibss),但本发明并未对此有所限制。
在本实施例中,第二wlan播放器120至少包括收发电路121及速度调整模块122。收发电路121具有一般网络界面的功能,经配置以经由存取点12提供的wlan网络,以与第一wlan播放器110进行无线讯号的传送及/或接收。
速度调整模块122与收发电路121相连,其可以是具备运算处理能力的硬体、软体元件,或硬体及软体元件的组合,以执行本发明提出的播放速度同步方法。在一实施例中,速度调整模块122可实现为如图2的架构,以执行本发明提出的播放速度同步方法。图2所示为依据本发明之一实施例之速度调整模块的方块示意图。在本实施例中,第二wlan播放器120中的多个元件至少包括多个加法器(例如,元件201、202、203、206、207、209)、多个乘法器(例如,元件204、205)、滤波暂存器(例如,元件208)以及相位暂存器(例如,元件210),但本发明并未对第二wlan播放器120所包括的元件有所限制。
图3所示为依据本发明一实施例之播放速度同步方法的流程图。请同时参阅图1-3,图3中所示之方法步骤由图1中的第二wlan播放器120在图2中所包括的多个元件来执行。
首先,在一实施例中,当第一wlan播放器110与第二wlan播放器120同时播放同一个媒体(例如,音讯文件)时,第一wlan播放器110每隔一段时间间隔将自身的第一播放进度值play_time1及第一时钟值wlan_time1发送给第二wlan播放器120。第一播放进度值play_time1为第一wlan播放器110播放媒体的进度值(例如,所述媒体当下的播放时间),而第一时钟值wlan_time1为第一wlan播放器110自身的wlan时钟值。除此之外,第二wlan播放器120具有第二播放进度值play_time2以及第二时钟值wlan_time2,第二播放进度值play_time2为第二wlan播放器120播放媒体的进度值(例如是所述媒体当下的播放时间),而第二时钟值wlan_time2为第二wlan播放器120自身的wlan时钟值。
需说明的是,在此提及的wlan时钟值为第一wlan播放器110及第二wlan播放器120分别在物理层自由运行的时钟,其可依据存取点12的物理层时钟所提供的定时信标(beacon)来重新设定,以与接收到的wlan信号中的存取点12的定时信标同步。举例来说,第一wlan播放器110及第二wlan播放器120可具有802.11 无线通讯标准所规范的时间同步功能(timingsynchronizationfunction,tsf),因而可使用tsf来同步存取点12中的物理层时钟。
请参照图3,在步骤s310中,速度调整模块122可计算第二播放进度值play_time2与第一播放进度值play_time1之间的进度差值play_time_diff1。
在本实施例中,速度调整模块122透过元件201将第二wlan播放器120所具有的第二播放进度值play_time2减去第一wlan播放器110的第一播放进度值play_time1,以计算第二播放进度值与第一播放进度值之间的进度差值play_time_diff1(即,play_time_diff1=play_time2-play_time1)(如图2所示)。
接着,在步骤s320中,速度调整模块122计算第二时钟值wlan_time2与第一时钟值wlan_time1之间的时间差值wlan_time_diff。
在本实施例中,速度调整模块122透过元件202将第二时钟值wlan_time2减去第一时钟值wlan_time1,以计算第二时钟值wlan_time2与第一时钟值wlan_time1之间的时间差值wlan_time_diff(即,wlan_time_diff=wlan_time2-wlan_time1)(如图2所示)。
在步骤s330中,速度调整模块122依据进度差值play_time_diff1以及时间差值wlan_time_diff计算特定进度差值play_time_diff2。
在本实施例中,速度调整模块122透过元件203将进度差值play_time_diff1减去时间差值wlan_time_diff以计算特定进度差值play_time_diff2(即,play_time_diff2=play_time_diff1-wlan_time_diff)(如图2所示)。
在另一实施例中,在计算特定进度差值play_time_diff2之前,速度调整模块122还可先判断时间差值wlan_time_diff是否介于0与一预设值(例如,一正实数)之间。若是,则速度调整模块122可再接着计算特定进度差值play_time_diff2。
反之,若时间差值wlan_time_diff不介于0与预设值之间,速度调整模块122则可透过设置于元件202及203之间的另一元件(未示出)将时间差值wlan_time_diff直接设定为0,以让元件203所输出的特定进度差值play_time_diff2等于进度差值play_time_diff1(即,设定play_time_diff2=play_time_diff1)。具体而言,若时间差值wlan_time_diff不介于0与预设值之间,此通常意味着第一wlan播放器110和第二wlan播放器120因分别位于不同的区域而无法连接到同一个bss,因此导致第一wlan播放器110和第二wlan播放器120不同步。由于不同房间的播放同步不需要精确到100μs以内,故可透过所述另一元件将wlan_time_diff 直接设定为0,以使元件203可直接设定特定进度差值play_time_diff2为进度差值play_time_diff1。
接着,在步骤s340中,速度调整模块122依据特定进度差值play_time_diff2调整第二wlan播放器120播放媒体的速度。
在本实施例中,速度调整模块122可透过元件204将特定进度差值play_time_diff2乘上第一滤波器系数filter_coef1,再透过元件206将元件204的输出与元件208所输出的滤波暂存器值filter_reg相加以更新滤波暂存器值(即,filter_reg=filter_reg+play_time_diff2xfilter_coef1)(如图2所示)。也就是说,速度调整模块122可依据特定进度差值play_time_diff2以及第一滤波器系数filter_coef1更新元件208所输出的滤波暂存器值filter_reg。并且,速度调整模块122透过元件205将特定进度差值play_time_diff2乘以第二滤波器系数filter_coef2,并透过元件207将元件205的输出与更新的滤波暂存器值filter_reg加总为速度调整值speed_adjust(即,speed_adjust=filter_reg+play_time_diff2xfilter_coef2)(如图2所示)。需注意的是,第一滤波器系数filter_coef1及第二滤波器系数filter_coef2皆为一非零实数。
接下来,速度调整模块122可依据速度调整值speed_adjust调整第二wlan播放器120播放媒体的速度。值得注意的是,调整第二wlan播放器120播放媒体的速度可以透过速度调整模块122执行插值运算,也可以透过速度调整模块122插入或者删除一些资料实现。具体来说,第二wlan播放器120可以先检测将要播放的声音资料,在声音信号幅度较小的地方插入或者删除资料。在本实施例中,速度调整模块122可依据上述由特定进度差值play_time_diff2所计算出的速度调整值speed_adjust以及媒体的一取样周期t更新元件210的插值相位interpolation_phase(interpolationphase),以依据插值相位interpolation_phase对媒体进行插值来调整第二wlan播放器120播放媒体的速度(如图2所示)。需说明的是,上述取样周期是一个音频采样点所代表的时间。在本实施例中,速度调整模块122为透过元件209计算「interpolation_phase=t+interpolation_phase–speed_adjust」来更新插值相位interpolation_phase。之后,速度调整模块122便依据插值相位interpolation_phase对媒体进行插值,以调整第二wlan播放器120播放媒体的速度。藉此,第二wlan播放器120便可有效地调整自身的播放速度以减小与第一wlan播放器110之间的同步误差。
举例而言,假设存取点12的wlan信标间隔为100ms,如果存取点12和第一wlan播放器110的时钟值相差100ppm,则第一wlan播放器110在两个信标之间 累计的差别是10μs。第一wlan播放器110在收到信标的时候将第一时钟值和第一播放进度值保存,然后将包含这两个值的资讯发送给第二wlan播放器120。因为第二wlan播放器120在收到信标时可同步到存取点12的wlan时钟,保存刚刚更新的第一时钟值和对应的第一wlan播放器110的第一播放进度值则可以消除第二wlan播放器120在两个信标之间累计的差别。
为了进一步阐述本发明可达到的功效,以下将以取样频率为44.1k的音频讯号为例进行说明。在本发明的一实施例中,取样频率为44.1k的音频讯号的一个取样点对应的时间是22.7μs。也就是说,如果播放器进度的精度为一个取样点时间的话,则同步误差将大于22.7μs。为了突破这个限制,播放器的硬体可以利用音频数字对模拟转换器(digital-to-analogconverter,dac)的上取样时钟(一般是128或256倍),以更佳的降低同步误差。
图4a至4c为将图3的filter_coef1及filter_coef2分别设定为不同数值的同步效能模拟图。请参照图4a至4c,三条平行线分别表示为+20/0/-20μs等基准值,斜直线(朝无限延伸)表示为不做同步的误差。
首先,请参照图4a,其所设定的filter_coef1及filter_coef2分别为0.02及0.05。从图4a可看出,「取样级」(即,第二wlan播放器120进度的精度为一个取样点时间)以及「dac级」(即,第二wlan播放器120进度的精度为dac的取样时钟)的同步误差大致上皆小于20μs。并且,「dac级」的同步误差也大致低于「取样级」。
另外,在图4b中的filter_coef1及filter_coef2分别为0.03及0.1,而在图4c中的filter_coef1及filter_coef2分别为0.04及0.2。相似于图4a,图4b及图4c也显示了无论是「取样级」还是「dac级」,其同步误差大致上皆小于20μs。
综上所述,本发明之实施例提供一种同步播放速度的wlan播放器、系统及其方法。所提出的wlan播放器可依据与另一播放器之间的播放进度值及wlan时钟值调整自身播放媒体的速度。藉此,wlan播放器不但可检测与另一wlan播放器之间wlan时钟值是否同步之外,更可在确定wlan时钟值已同步的情况下来调整播放进度值,从而有效地降低与另一wlan播放器之间的同步误差。
虽然本发明已以实施例揭露如上,然其并非用以限定本发明,任何所属技术领域中具有通常知识者,在不脱离本发明的精神和范围内,当可作些许的更动与润饰,故本发明的保护范围当视后附的申请专利范围所界定者为准。