用于流同步的多媒体系统和方法与流程

文档序号:12376696阅读:383来源:国知局
用于流同步的多媒体系统和方法与流程

本发明一般性地涉及多媒体系统,更具体地,涉及用于多媒体流同步的方法。



背景技术:

图1示出了一种传统的多媒体系统100,包括用于提供多媒体流的第一源设备102,以及与第一源设备102通信以播放该多媒体流的第一和第二接收(sink)设备104和106。在操作中,第一源设备102用与第一本地媒体时钟生成器108所生成的第一本地媒体时钟有关的对应的时间戳将多媒体流封装到数据包内。然后,第一源设备102基于第一本地媒体时钟以及该时间戳,将该数据包传输至第一和第二接收设备104和106。第一接收设备104接收该数据包,将它们解封装为多媒体流,并基于第二本地媒体时钟生成器110所生成的第二本地媒体时钟以及对应的时间戳播放该多媒体流。第二接收设备106按与第一接收设备104相同的方式操作,但是基于第三本地媒体时钟生成器112生成的第三本地媒体时钟。

理想地,期待第一、第二和第三本地媒体时钟具有相同的频率,该频率由媒体流的采样率确定,例如48KHZ。然而,由于不同本地媒体时钟生成器的硬件漂移,第一、第二和第三本地时钟可能相比彼此运行较快或较慢,这导致源设备102和接收设备104、106间的异步问题。因此,需要找到一种使不同的源和接收设备彼此同步的方法。

附图说明

结合附图,参照对下列优选实施例的描述,可以最好地理解本发明以及其目标和优点,所述附图中:

图1是传统多媒体系统的示意框图;

图2是根据本发明的实施例的多媒体系统的示意框图;

图3示出了根据本发明的实施例的从源设备传输至接收设备的数据包的结构;

图4是根据本发明的实施例的接收设备的本地媒体时钟生成器的示意框图;

图5是根据本发明的实施例的操作源设备的流程图;

图6是根据本发明的实施例的操作接收设备的流程图;以及

图7是根据本发明的实施例,将接收设备的本地媒体时钟锁定至全局时钟的流程图。

具体实施方式

下文结合附图给出的详细描述旨在作为对本发明的当前优选实施例的描述,而不旨在代表本发明可以被实施的唯一形式。应当理解,相同或等效功能可以由旨在被包含在本发明的精神和范畴内的不同的实施例实现。在附图中,相同的数字始终被用于指示相同的要素。此外,术语“包括”、“包含”或者其任何其他变形,旨在覆盖非排他性的包含,从而包括一系列要素或步骤的模块、电路、设备组件、结构以及方法步骤不是仅包含那些要素,而是可以包含其他未被明确列出的或者这些模块、电路、设备、设备组件或步骤固有的其他要素或步骤。若无更多限制,“包括......”的要素或步骤不排除包括该要素或步骤的另外的等同要素或步骤的存在。

在一个实施例中,本发明提供一种多媒体系统,该多媒体系统包含:用于提供至少一个媒体流的至少一个源设备,以及与该源设备通信以播放该媒体流的至少一个接收设备。

源设备包含:用于存储至少一个媒体流的存储器,用于生成第一全局时钟并基于第一全局时钟提供第一挂钟时间(wall time)的第一全局时钟单元,连接到该存储器以及第一全局时钟单元以用与该第一挂钟时间关联的对应的时间戳将该媒体流封装到多个数据包内的处理器,以及连接到该第一全局时钟单元和该处理器以基于该时间戳以及第一挂钟时间传输该数据包的第一I/O接口。

接收设备包含:用于接收多个数据包的第二I/O接口,以及连接至该第二I/O接口以生成第二全局时钟并提供第二挂钟时间的第二全局时钟单元。该第一挂钟时间和第二挂钟时间通过网路协议彼此同步。本地媒体时钟生成器提供 被锁定至该第二全局时钟的本地媒体时钟。播放器被连接至该第二I/O接口和该本地媒体时钟生成器,用于解封装该数据包并且用该本地媒体时钟播放该至少一个媒体流,其中每个数据包的播出时间由该时间戳和该第二挂钟时间所确定。

在另一个实施例中,本发明提供了一种操作多媒体系统的方法。该多媒体系统包含:用于提供媒体流的源设备,以及与该源设备通信以播放该媒体流的至少一个接收设备。该方法包含:用与第一挂钟时间有关的对应的时间戳将在源设备中存储的媒体流封装到多个数据包内,该第一挂钟时间基于源设备中的第一全局时钟;基于该时间戳和该第一挂钟时间传输该数据包至该接收设备;通过网络协议将该接收设备中的第二挂钟时间与该第一挂钟时间同步,其中该第二挂钟时间基于该至少一个接收设备中的第二全局时钟;将该接收设备中的本地媒体时钟锁定至该第二全局时钟;解封装该接收设备中所接收的数据包;以及基于被锁定至该第二全局时钟的本地媒体时钟播放该媒体流,其中每个数据包的播出时间由该时间戳和该第二挂钟时间所确定。

现在参照图2,示出了根据本发明的实施例的多媒体系统200的示意框图。多媒体系统200包括用于提供至少一个媒体流的至少一个源设备202,以及与源设备202通信以播放该媒体流的第一接收设备204。

多媒体系统200可以是例如汽车资讯娱乐系统的一部分,其中源设备202可以是光盘(CD)播放器、数字视频盘(DVD)播放器、MP3播放器等,而第一接收设备202可以是位于中央控制台的显示器。如图2所示的,多媒体系统200还可以包含与源设备202通信的第二接收设备206,例如位于头枕背面或安装在天花板上的显示器。此外,多媒体系统200可以包含多于一个的同时与第一和第二接收设备204和206通信的源设备(未示出),例如娱乐设备以及监视设备,例如前景摄像机或后视摄像机。

源设备202包含用于存储该至少一个媒体流的存储器208。存储器208可以是RAM,或者源设备202的微控制单元(MCU)的内部存储器(RAM)的一部分。源设备202还包含:用于生成第一全局时钟并基于该第一全局时钟提供第一挂钟时间212的第一全局时钟单元210,以及连接到存储器208和第一全局时钟单元210以用与第一挂钟时间212关联的对应的时间戳将该媒体流封装到多个数据包内的处理器214。源设备202进一步包含连接到处理器214和 第一全局时钟单元210以与接收设备204通信的第一I/O接口216。第一I/O接口216可以促进多种多样的网络和协议类型内的多个通信,包含例如LAN、线缆等有线网络,以及诸如WLAN、蜂窝、卫星、蓝牙、近场通信(NFC)等无线网络。

第一接收设备204包含用于与源设备202通信的第二I/O接口218,连接至第二I/O接口218以生成第二全局时钟222并基于第二全局时钟222提供第二挂钟时间224的第二全局时钟单元220,连接至第二全局时钟单元220以生成与该多媒体流的采样率关联的本地媒体时钟228的本地媒体时钟生成器226,以及连接至第二I/O接口218和本地媒体时钟生成器226以对通过第二I/O接口218从源设备202接收的多个数据包解封装并基于本地媒体时钟228播出至少一个媒体流的播放器230。

第一挂钟时间212通过网络协议与第二挂钟时间224同步,以实现源设备202和第一接收设备204之间的同步。在优选实施例中,第一和第二全局时钟单元210和220包含主时钟单元和从时钟单元,其中该从时钟单元通过网络协议与该主时钟单元同步。在优选实施例中,对于具有多于一个的源设备或者多于一个的接收设备的多媒体系统,该源设备和接收设备之一的全局时钟单元是主全局时钟单元,该多媒体系统中的其它源和接收设备的全局时钟单元是从时钟单元,其中从时钟单元通过网络协议与该主时钟单元同步。在优选实施例中,网络协议是IEEE 1588精确时钟同步协议或者IEEE 802.1AS定时和同步协议。

图3示出了根据本发明的实施例的从源设备202传输至第一接收设备204的数据包的结构300。如图所示,每个数据包302具有数据部304、与用于指示数据包302的播出时间的第一挂钟时间212关联的时间戳、以及与该数据包有关的其他信息,例如流ID、流数据长度等,该数据部包含多个媒体流样本。在封装开始前,处理器214基于由媒体流类型定义的流间隔来确定要在每个数据包内封装的媒体流的样本数量。在优选实施例中,通过采样率乘以流间隔来计算每个数据包中的样本数量。例如,如果流间隔被定义为125000ns,该媒体流的采样率为48KHz,那么在每个数据包内有6个样本。在优选实施例中,处理器214基于IEEE 1722层2传送协议将该至少一个媒体流封装到多个数据包内。处理器214可以是源设备202的MCU的处理器,或者替代地,可以是源设备202内的单独处理器。第一I/O接口216基于对应的时间戳和第一挂钟时 间212发出该多个数据包。

参照回图2,本地媒体时钟生成器224被连接到第二全局时钟单元220,用于将本地媒体时钟228锁定到第二全局时钟218,从而该第一和第二全局时钟以及本地媒体时钟彼此同步。播放器230也被连接到第二全局时钟单元220,由该时间戳和第二挂钟时间224确定每个数据包内的样本的播出时间。播放器230可以是第一接收设备204的MCU的处理器,或者替代地,可以是第一接收设备204内的单独处理器。在优选实施例中,播放器230包括用于存储从源设备202接收的多个数据包的缓存232。在另一个优选实施例中,缓存232是与播放器230分离的单元。缓存232可以是RAM或者接收设备202的微控制单元(MCU)的内部存储器(RAM)的一部分。

图4是根据本发明的实施例的第一接收设备204的本地媒体时钟生成器226的示意框图。本地媒体时钟生成器226包含用于生成本地媒体时钟的锁相环(PLL)400。本地媒体时钟的期望频率可以至少基于该至少一个媒体流的采样率而设置,例如,如果该媒体流的采样率为48KHz,则本地媒体时钟的期望频率可以被设置为48KHz的n倍,其中n为自然数。本地媒体时钟生成器226进一步包括连接至PLL 400以确定该本地媒体时钟是否被锁定至第二全局时钟的捕获单元402,以及连接至PLL 402和捕获单元402的控制单元404,所述控制单元404用于将本地媒体时钟锁定至第二全局时钟222,并且如果该本地媒体时钟被锁定至第二全局时钟222,则输出该本地媒体时钟。

捕获单元402包含用于用预定的除数划分第二全局时钟222以生成参考时钟的划分器(divider)406。例如,如果第二全局时钟222的频率是100MHz,除数是100K,则该参考时钟的频率是1KHz。第二全局时钟222的频率可以是任何频率值,只要硬件支持即可,例如25MHz、50MHz、100MHz或者其它频率,如果需要的话。捕获单元402进一步包含连接至划分器406和PLL 40以通过在参考时钟的两个连续的上升/下降沿内计数本地媒体时钟来生成计时结果的本地计时器408,以及连接至本地计时器408以通过将该计时结果与参考比例比较来确定本地媒体时钟是否被锁定至第二全局时钟222的比较器410,其中该参考比例基于该参考时钟的频率和本地媒体时钟的期望频率而确定。例如,如果参考时钟的频率是1KHz而本地媒体时钟的期望频率是24MHz,参考比例被设置为24000。比较器410生成计时结果和参考比例之间的差值。

控制单元404确定该差值是否位于预定的可接受误差范围内,如果该差值位于该预定的可接受误差范围内,则本地媒体时钟被确定为锁定至第二全局时钟222。控制单元404包含调整控制器412,其中如果本地媒体时钟被锁定至第二全局时钟222,则控制单元404输出本地媒体时钟至播放器,否则调整控制器412调整PLL400,直到本地媒体时钟被锁定至第二全局时钟222,在优选实施例中,PLL 400基于比例积分微分(PID)算法而被调整。控制单元404可以是第一接收设备204的MCU的处理器,或者替代地,可以是第一接收设备204内的单独处理器。

图5是流程图500,示出了根据本发明的实施例的一种操作多媒体系统200的源设备202以提供至少一个媒体流至多媒体系统200的接收设备204的方法。

在步骤502,基于源设备202的第一全局时钟提供的第一挂钟时间通过网络协议与基于接收设备204的第二全局时钟提供的第二挂钟时间同步,以实现源设备202和接收设备204之间的同步。在优选实施例中,网络协议是IEEE1588精确时钟同步协议或者IEEE 802.1AS定时和同步协议。

在步骤504,源设备202的处理器214基于由媒体流类型定义的流间隔以及该媒体流的采样率,确定要封装在每个数据包内的媒体流的样本数量。在优选的实施例中,通过将流间隔乘以采样率来计算每个数据包内的样本数量。例如,如果流间隔被定义为125000ns,并且媒体流的采样率是48KHz,则在每个数据包内有6个样本。在优选实施例中,步骤504不是必须要在步骤502后被执行。

在步骤506中,处理器214用与源设备202的第一挂钟时间关联的对应的时间戳,将该至少一个媒体流封装到多个数据包内。在优选实施例中,处理器214基于IEEE 1722层2传输协议,将该至少一个媒体流封装到多个数据包内。

在步骤508,源设备202基于对应的时间戳和该第一挂钟时间,发出多个数据包。

图6是根据本发明的实施例操作多媒体系统200的接收设备204以播出多媒体流的流程图600。

在步骤602,类似于图5的步骤502,接收设备204的第二挂钟时间通过网络协议与源设备202的第一挂钟时间同步,以实现源设备202和接收设备204之间的同步。在优选实施例中,网络协议是IEEE 1588精确时钟同步协议或者 IEEE 802.1AS定时和同步协议。

在步骤604中,接收设备204生成用于播出该多媒体流的本地媒体时钟,并将该本地媒体时钟锁定至该第二全局时钟。

图7是根据本发明的实施例的示出了图6的用于将接收设备的本地媒体时钟锁定至第二全局时钟的步骤604的详细流程图700。

在步骤702,接收设备204通过将该第二全局时钟除以预定的除数生成参考时钟。例如,如果第二全局时钟的频率是100MHz,除数是100K,则参考时钟的频率是1KHz。第二全局时钟的频率可以是任何频率值,只要硬件能够支持,例如25MHz、50MHz、100MHz或者其它频率,如果需要的话。

在步骤704中,接收设备204用本地媒体时钟捕获该参考时钟,并通过在该参考时钟的两个连续的上升/下降沿内计数本地媒体时钟,生成计时结果。在优选实施例中,由锁相环(PLL)生成本地媒体时钟。本地媒体时钟的期望频率可以至少基于媒体流的采样率而被预先确定,例如,如果媒体流的采样率是48KHz,本地媒体时钟的期望频率可以被设置为48KHz的n倍,其中n为自然数。

在步骤706,接收设备204通过将定时结果和预定的参考比例之间的差值与预定的可接受误差范围比较,确定本地媒体时钟是否被锁定至第二全局时钟。该参考比例基于该参考时钟的频率以及该本地媒体时钟的期望频率而确定。例如,如果参考时钟的频率是1KHz,本地媒体时钟的期望频率是24MHz,该参考比例被设置为24000。该误差范围例如可以被设置为从-1%到+1%的范围,其可以被多媒体系统200所接受。

在步骤708,如果该差值位于预定的可接受误差范围内,则本地媒体时钟被确定为锁定至第二全局时钟,并被输出至接收设备204的播放器230。

在步骤710,如果该差值位于该预定的可接受误差范围之外,接收设备204调整该PLL,直到该本地媒体时钟被锁定至该第二全局时钟。在优选实施例中,基于比例积分微分(PID)算法调整PLL 400。

参照回图6,在步骤606,接收设备204的播放器230基于已经被锁定至该第二全局时钟的本地媒体时钟,解封装该多个数据包,并播放媒体流。每个数据包的播出时间由该时间戳和该第二挂钟时间所确定,从而实现源设备202和接收设备204之间的同步。

对本发明优选实施例的描述出于解释和说明的目的被呈现,但并非旨在穷尽或者将本发明限制为所公开的形式。本领域技术人员将理解,在不脱离其宽泛的创造性概念的情况下,可以对上文描述的实施例作出改变。因而可以理解的是,本发明不限于所公开的特定实施例,而是覆盖由附加权利要求所定义的本发明的精神和范畴内的修改。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1