English:
[0001] Current adaptive streaming solutions compensate for a best-effort internet by providing high viewer quality when internet bandwidth is available, and providing lower viewer quality when internet bandwidth is reduced, such as due to congestion. As video resolutions and bit-rates increase, current adaptive streaming solutions are less able to consistently deliver high resolution video without fluctuations in quality.
[0002] The features and advantages of the embodiments of the present disclosure will become more apparent from the detailed description set forth below when taken in conjunction with the drawings. The drawings and the associated descriptions are provided to illustrate embodiments of the disclosure and not to limit the scope of what is claimed.
[0003] FIG. 1 A illustrates layers of the Scalable Video Coding (SVC) standard;
[0004] FIG. 1 B illustrates a diagram of a video delivery system according to one implementation of the present disclosure;
[0005] FIG. 2 illustrates a diagram of a video delivery system according to one implementation of the present disclosure;
[0006] FIG. 3 illustrates a diagram of a video delivery system according to one implementation of the present disclosure;
[0007] FIG. 4 illustrates a diagram of a video delivery system according to one implementation of the present disclosure;
[0008] FIG. 5 illustrates a flowchart of an encoding process according to one implementation of the present disclosure; and
[0009] FIG. 6 illustrates a flowchart of a decoding process according to one implementation of the present disclosure.
[0010] In the following detailed description, numerous specific details are set forth to provide a full understanding of the present disclosure. It will be apparent, however, to one of ordinary skill in the art that the various implementations disclosed may be practiced without some of these specific details. In other instances, well-known structures and techniques have not been shown in detail to avoid unnecessarily obscuring the various implementations.
[0011] FIG. 1 A illustrates a layered coding scheme such as Scalable Video Coding (SVC), an extension of the H.264/AVC coding standard. Although the present disclosure discusses the SVC standard, the present disclosure is not limited to SVC, as other layered coding schemes may be used. SVC is a standard for encoding high-quality video bit-stream containing one or more subset bit-streams or layers. A new layer is derived by dropping packets from the larger video bit-stream, reducing the required bandwidth for the layer. The layer can represent a lower resolution, such as lower spatial resolution (smaller screen), lower temporal resolution (lower frame rate), or lower quality video signal. The lowest resolution layer, or base layer (layer 0), is also fully interoperable with AVC. To render a layer, a decoder requires the base layer as well as layers in between.
[0012] As seen in FIG. 1 A, a bit-stream 100 may comprise a base layer 1 10 and enhancement layers 120. To render, for example, an enhancement layer N 1 23, the decoder requires the base layer 1 1 0 and an enhancement layer 1 121 , an enhancement layer 2 122, and so on up to the enhancement layer N 123. Similarly, rendering an enhancement layer N+1 124 requires the enhancement layer N 1 23 down to the enhancement layer 1 1 21 , and the base layer 1 10. As more enhancement layers 120 are rendered, the video quality is higher. For example, additional layers can increase the resolution (e.g., from Standard Definition to High Definition or 4K), increase the frame rate or bit rate, reduce visual artifacts, add 3D information or the like. However, only the base layer 1 10 is required to render video at its lowest quality (e.g., bit-rate or resolution).
[0014] Conventionally, to stream high bit-rate video file, the high bit-rate video file is re-encoded into two different bit-rates, e.g., medium and low bit-rates. The three files (i.e. high, medium, and low bit-rates) are split into shorter segments, such as two second pieces. Depending on network congestion, the appropriate piece is streamed. For example, during high network congestion, the low bit-rate piece may be streamed. However, the video quality becomes highly dependent upon network congestion.
[0015] FIG. 1 B illustrates a video delivery system 150 which takes advantage of the scalability of SVC or other layered protocol stream to mitigate the vagaries of the internet. The video delivery system 150 may be compatible with other layered coding schemes and is not limited to the SVC standard. Rather than streaming the base layer 1 10 and the enhancement layers 120 through the internet, the layers are delivered from at least two sources.
[0016] FIG. 1 B depicts a cloud server 160 or online server, a local area network (LAN) 190, a local storage 170, and a media player 180. The media player 180 may be a computer, smartphone, media streaming device, Blu-Ray player, or other device having a processor capable of re-multiplexing SVC layers or layers of another layered stream protocol. Alternatively, the media player 180 may be a specialized device or component of a larger device. The media player 180 may further include a memory 183, an output interface 184, and a processor 186. The cloud server 160 may be a streaming server or other computer capable of streaming data to the media player 180 through a network connection 165 and received by a network interface 181 of the media player 180. The network connection 165 may be established through the internet or a similar network, and may be wired or wireless.
[0017] The LAN 190 includes the local storage 170 and the media player 1 80. The local storage 1 70 streams data to the media player 180 through a local connection 175 and received by a local interface 182. The local storage 1 70 may be a network-attached-storage (NAS) having a controller 172 and a memory 171 which can include one or more drives for storing data, e.g., Hard Disk Drive (HDD), Solid State Drive (SSD), or hybrid drive (SSHD). The local storage 170 is connected to the media player 180 through the local connection 175. The local connection 1 75 may be a wired or wireless connection through the LAN 190. In other implementations, the local storage 170 may be one or more data storage devices (DSDs), such as an external hard drive or flash drive, connected to the media player 180 through the local connection 175, which may be a USB (universal serial bus) connection, Thunderbolt connection, or other bus connection. In yet other implementations, the memory 1 71 may include a removable memory media, such as optical media (CD, DVD, Blu-Ray, etc.) capable of storing data which is read by the media player 1 80 through the local connection 1 75. In such implementations, the media player 180, the local connection 175, and the local interface 182 may form part of an optical drive or other device for reading the media of memory 171 .
[0018] Because the base layer 1 10 is the only required layer and also the lowest bit-rate, the base layer 1 1 0 can generally be streamed through a best-effort internet or other similar network without stuttering or otherwise being interrupted. The enhancement layers 120, which are not required for video content playback, often require more bandwidth than the base layer 1 10 to stream without pauses or interruptions. When streaming video content through a congested network, the enhancement layers are dropped, and the viewer experiences a degradation of video quality.
[0019] To reduce the fluctuations in video quality afforded by conventional adaptive streaming solutions, the enhancement layers 120 are streamed separately from the base layer 1 10. Specifically, the enhancement layers 120 are streamed through the local connection 175, which is usually a more reliable and/or less expensive connection than the network connection 165. Thus, the enhancement layers 120 will not be dropped due to congestion on the network connection 165. In other words, a level of congestion on the network connection 165 does not affect the ability to stream the enhancement layers 120 via the local connection 175. The processor 186 may then act as a re-multiplexer to remux the two streams. An output 185, which may be an encoded SVC stream or other layered stream, may be output through the output interface 184. In other implementations, the processor 186 may also decode the layered stream such that the output 185 is a video signal.
[0020] In certain implementations, the cloud server 160 streams the base layer 1 10 with one or more lower enhancement layers 1 20, such as the enhancement layer 1 1 21 and/or the enhancement layer 2 122. In other implementations, the local storage 170 may further comprise a plurality of local storage devices such that the enhancement layers 120 are streamed from more than one source.
[0021] The base layer 1 10 remains hosted on an internet server, allowing the content producer/provider to maintain control over its access. The enhancement layers 120 are distributed a priori to consumer storage devices. For example, the enhancement layers 120 may be preloaded onto the local storage 170 from the factory, or may be downloaded during off-peak hours. Thus, the enhancement layers 120 are made available independent of internet congestion. In addition, the enhancement layers 120 may be partitioned to store more layers in the cloud server 160 and less on the local storage 170, or vice versa.
[0022] FIG. 2 depicts a video delivery system 200. Prior to hosting a video stream, an encoder 210 (e.g., an SVC encoder) encodes video content into the base layer 1 10, the enhancement layer 1 121 , and the enhancement layer 2 122. A de- multiplexor (demux) 240 multiplexes the layers, sending the base layer 1 10 and the enhancement layer 1 121 to a streaming server 220, and the enhancement layer 2 122 to a trickle-down server 230. A local storage (e.g., NAS) 270 downloads the enhancement layer 2 122 from the trickle-down server 230. The local storage 270 may download the enhancement layer 2 1 22 from the trickle-down server 230 during off-peak hours or at a rate slower than an acceptable streaming speed.
[0023] To playback the video content, the streaming server 220 streams the base layer 1 10 and the enhancement layer 1 121 to a re-multiplexor (remux) 250 of a media player 290, and the local storage 270 streams the enhancement layer 2 122 to the remux 250. The remux 250 re-multiplexes the base layer 1 10, the enhancement layer 1 121 , and the enhancement layer 2 1 22 and outputs the re- multiplexed stream to a decoder 260 (e.g., an SVC decoder). The decoder 260 then decodes the stream for output on a display 280, such as a television, computer monitor, or mobile device screen.
[0024] When the enhancement layer 2 122 is available, a high resolution 283 can be output on the display 280. The enhancement layer 2 122 may not be available if the local storage 270 has not yet downloaded the enhancement layer 2 122. When the enhancement layer 2 122 is not available, the quality degrades to a medium resolution 282, but the degradation is graceful such that the overall workings and performance of the system is not drastically affected. If only the base layer 1 10 is available, then the display 280 outputs a lower resolution 281 or otherwise lower quality video.
[0025] FIG. 3 depicts a video surveillance system 300. A camera 330 records video, which is encoded by an encoder 310 (e.g., an SVC encoder) into the base layer 1 10, the enhancement layer 1 121 , and the enhancement layer 2 1 22. A demux 340 de-multiplexes the stream and delivers the base layer 1 10 to a cloud server 320 and the enhancement layer 1 121 and the enhancement layer 2 122 to a local storage 370 (e.g., a NAS). The encoder 310 and/or the demux 340 may be integrated with the camera 330, or may be separate.
[0026] Storing the base layer 1 10 on the cloud server 320 allows a user to access the surveillance video remotely. For higher resolution video, the user can access the enhancement layers 120 stored on the local storage 370. The number of layers stored on the cloud server 320 may be predicated on the cost of cloud storage.
[0027] FIG. 4 depicts a video delivery system 400. A cloud server 420 streams the base layer 1 10 to a remux 450 of a media player 430. A local storage 470 (e.g., a NAS), pre-loaded with the enhancement layer 1 1 21 and the enhancement layer 2 122, streams the enhancement layer 1 121 and the enhancement layer 2 122 to the remux 450. A decoder 410 (e.g., an SVC decoder) takes the remixed stream and outputs video to a display 480.
[0028] Because the base layer 1 10 is stored on the cloud server 420, access to the video content can be controlled by the cloud server 420. The enhancement layers 120 are completely dependent on the base layer 1 10 and cannot be played without the corresponding base layer 1 1 0. Therefore, even if the local storage 470 were compromised, the base layer 1 10 may remain secure on the cloud server 420. The content owner may host the base layer 1 10 on a secure server to protect the video content from piracy.
[0029] FIG. 5 depicts a flowchart 500 of a video encoding process, as may be performed by the video surveillance system 300, for example. At 510, the video content, which may be generated by the camera 330, is encoded into an SVC stream or other layered protocol stream. A demux, such as the demux 340, demuxes the layered stream into base and enhancement layers.
[0030] At 520, the base layer is stored on an internet server, such as the cloud server 320. In certain implementations, one or more lower enhancement layers may be stored with the base layer on the internet server. At 530, at least one enhancement layer is transmitted to a local storage, such as the local storage 370.
[0031] FIG. 6 depicts a flowchart 600 of a video decoding process, as may be performed by the video delivery system 400, for example. At 610, a media player, such as the media player 430, fetches a first stream including a base layer from an internet server, such as the cloud server 420, storing the base layer. In certain implementations, the internet server may store lower enhancement layers, and the first stream further includes the lower enhancement layers. At 620, the media player fetches a second stream including an enhancement layer from a local storage, such as the local storage 470, storing the enhancement layer. In this regard, fetching the second stream can include accessing the enhancement layer from a memory which can include a removable memory media. In such implementations, the removable memory media may include an optical media such as a DVD or CD-ROM.
[0033] Those of ordinary skill in the art will appreciate that the various illustrative logical blocks, modules, and processes described in connection with the examples disclosed herein may be implemented as electronic hardware, computer software, or combinations of both. Furthermore, the foregoing processes can be embodied on a computer readable medium which causes a processor or computer to perform or execute certain functions.
[0034] To clearly illustrate this interchangeability of hardware and software, various illustrative components, blocks, and modules have been described above generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Those of ordinary skill in the art may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present disclosure.
[0035] The various illustrative logical blocks, units, modules, and controllers described in connection with the examples disclosed herein may be implemented or performed with a general purpose processor, a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic device, discrete gate or transistor logic, discrete hardware components, or any combination thereof designed to perform the functions described herein. A general purpose processor may be a microprocessor, but in the alternative, the processor may be any conventional processor, controller, microcontroller, or state machine. A processor may also be implemented as a combination of computing devices, e.g., a combination of a DSP and a microprocessor, a plurality of microprocessors, one or more microprocessors in conjunction with a DSP core, or any other such configuration.
[0037] The foregoing description of the disclosed example implementations is provided to enable any person of ordinary skill in the art to make or use the implementations in the present disclosure. Various modifications to these examples will be readily apparent to those of ordinary skill in the art, and the principles disclosed herein may be applied to other examples without departing from the spirit or scope of the present disclosure. The described implementations are to be considered in all respects only as illustrative and not restrictive and the scope of the disclosure is, therefore, indicated by the following claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

中文:
[0001]当前的自适应流式传输解决方案通过在互联网带宽可用时提供高的观看质量、并且在互联网带宽减小时(例如,由于拥塞)提供较低的观看质量来对尽力而为的(best-effort)互联网进行补偿。随着视频分辨率和比特率增加,当前的自适应流式传输解决方案不太能够持续地传送高分辨率的视频而没有质量波动。
[0002]通过下面结合附图所阐述的具体实施方式,本公开内容的实施例的特征和优点将变得更显而易见。提供附图和相关联的描述是为了说明本公开内容的实施例,而并非为了限制所请求保护的范围。
[0003]图1A示出了可缩放视频编码(SVC)标准的层;
[0004]图1B示出了根据本公开内容的一种实现方式的视频传送系统的图;
[0005]图2示出了根据本公开内容的一种实现方式的视频传送系统的图;
[0006]图3示出了根据本公开内容的一种实现方式的视频传送系统的图;
[0007]图4示出了根据本公开内容的一种实现方式的视频传送系统的图;
[0008]图5示出了根据本公开内容的一种实现方式的编码过程的流程图;以及
[0009]图6示出了根据本公开内容的一种实现方式的解码过程的流程图。
[0010]在下面的具体实施方式中,给出了众多特定的细节以提供对本公开内容的透彻理解。然而,对本领域普通技术人员来说将显而易见的是,可以不需要这些特定的细节中的某些细节来实施所公开的各种实现方式。在其它实例中,没有详细地示出公知的结构和技术,以避免不必要地混淆各种实现方式。
[0011]图1A示出了诸如可缩放视频编码(SVC)(H.264/AVC编码标准的扩展)之类的分层编码方案。虽然本公开内容讨论了SVC标准,但本公开内容不限于SVC,如可以使用其它的分层编码方案。SVC是用于对包含一个或多个子集比特流或层的高质量视频比特流进行编码的标准。通过从较大的视频比特流中丢弃分组来获得新的层,从而减少了该层所需要的带宽。该层可以表示较低的分辨率,例如较低的空间分辨率(较小的屏幕)、较低的时间分辨率(较低的帧率)、或者较低质量的视频信号。最低分辨率的层(或者基本层(层0))也可与AVC完全互操作。为了呈现某一层,解码器需要基本层以及在该层和基本层之间的层。
[0012]如图1A中所看到的,比特流100可以包括基本层110和增强层120。为了呈现例如增强层N123,解码器需要基本层110和增强层1121、增强层2122等等,直到增强层N123。类似地,呈现增强层N+1124需要增强层N123下至增强层1121以及基本层110。随着呈现更多的增强层120,视频质量更高。例如,额外的层可以增加分辨率(例如,从标准清晰度到高清晰度或者4K)、增加帧率或比特率、减小视觉膺象(artifact)、添加3D信息等等。然而,以最低质量(例如,比特率或分辨率)来呈现视频仅需要基本层110。
[0014]通常,为了流式传输高比特率的视频文件,将高比特率的视频文件重新编码成两个不同的比特率,例如,中等比特率和低比特率。这三个文件(即,高比特率、中等比特率以及低比特率)被划分成较短的区段,例如两秒的片段。取决于网络拥塞来流式传输适当的片段。例如,在高度网络拥塞期间,可以流式传输低比特率的片段。然而,视频质量变得高度依赖于网络拥塞。
[0015]图1B示出了视频传送系统150,其中视频传送系统150利用SVC或其它分层协议流的可缩放性来缓解互联网的变化莫测。视频传送系统150可以与其它的分层编码方案相兼容,并且不限于SVC标准。从至少两个源来传送基本层110和增强层120,而不是通过互联网来流式传输这些层。
[0016]图1B描绘了云服务器160或在线服务器、局域网(LAN)190、本地贮存器170以及媒体播放器180。媒体播放器180可以是计算机、智能电话、媒体流式传输设备、蓝光播放器、或者具有能够对SVC层或另一个分层流协议的层进行再复用的处理器的其它设备。替代地,媒体播放器180可以是专用设备或者较大设备的组件。媒体播放器180还可以包括存储器183、输出接口184以及处理器186。云服务器160可以是流式传输服务器或者能够通过网络连接165来将数据流式传输至媒体播放器180并由媒体播放器180的网络接口181进行接收的其它计算机。可以通过互联网或类似网络来建立网络连接165,并且网络连接165可以是有线的或无线的。
[0017]LAN190包括本地贮存器170和媒体播放器180。本地贮存器170通过本地连接175来将数据流式传输至媒体播放器180并由本地接口182进行接收。本地贮存器170可以是具有控制器172和存储器171的网络附加存储(NAS),其中存储器171可以包括用于存储数据的一个或多个驱动器,例如,硬盘驱动器(HDD)、固态驱动器(SSD)或者混合驱动器(SSHD)。本地贮存器170通过本地网络175来连接到媒体播放器180。本地连接175可以是通过LAN190的有线连接或无线连接。在其它实现方式中,本地贮存器170可以是通过本地连接175(其可以是USB(通用串行总线)连接、Thunderbolt连接、或者其它总线连接)来连接到媒体播放器180的一个或多个数据存储设备(DSD),例如外部硬盘驱动器或闪存驱动器。在其它实现方式中,存储器171可以包括可移动存储介质,例如能够存储由媒体播放器180通过本地连接175来读取的数据的光学介质(CD、DVD、蓝光、等等)。在这些实现方式中,媒体播放器180、本地连接175以及本地接口182可以形成用于读取存储器171的介质的光学驱动器或其它设备的一部分。
[0018]由于基本层110是唯一所需要的层并且还是最低的比特率,因此通常可以通过尽力而为的互联网或其它类似网络来流式传输基本层110而不会扰动(stuttering)或以其它方式被中断。增强层120(视频内容回放不需要增强层)通常需要比基本层110更多的带宽以便在没有暂停或中断的情况下进行流式传输。当通过拥塞的网络来流式传输视频内容时,增强层被丢弃,并且观看者体验到视频质量的下降。
[0019]为了减少由通常的自适应流式传输解决方案导致的视频质量波动,增强层120与基本层110分开来进行流式传输。具体而言,通过本地连接175来流式传输增强层120,其中本地连接175通常是比网络连接165更可靠的和/或更不昂贵的连接。因此,增强层120将不会由于网络连接165上的拥塞而被丢弃。换句话说,网络连接165上的拥塞水平不会影响经由本地连接175来流式传输增强层120的能力。处理器186随后可以作为再复用器来对两个流进行再复用。输出185(其可以是经编码的SVC流或其它经分层的流)可以通过输出接口184来输出。在其它实现方式中,处理器186还可以对经分层的流进行解码,使得输出185为视频信号。
[0020]在某些实现方式中,云服务器160流式传输基本层110以及一个或多个较低的增强层120,例如增强层1121和/或增强层2122。在其它实现方式中,本地贮存器170还可以包括多个本地存储设备,以使得从一个以上的源来流式传输增强层120。
[0021]基本层110保持托管在互联网服务器上,从而允许内容制作者/提供者保持对基本层110的访问的控制。事先将增强层120分配给用户存储设备。例如,可以从工厂将增强层120预加载到本地贮存器170上,或者可以在非高峰时间期间下载增强层120。因此,使得增强层120独立于互联网拥塞而可用。此外,可以对增强层120进行划分,以便将较多的层存储在云服务器160中并且将较少的层存储在本地贮存器170上,或者反之亦然。
[0022]图2描绘了视频传送系统200。在托管视频流之前,编码器210(例如,SVC编码器)将视频内容编码成基本层110、增强层1121以及增强层2122。解复用器(demux)240对层进行复用,将基本层110和增强层1121发送给流式传输服务器220,并将增强层2122发送给涓滴(trickle-down)服务器230。本地贮存器(例如,NAS)270从涓滴服务器230下载增强层2122。本地贮存器270可以在非高峰时间期间或者以低于可接受的流式传输速度的速率来从涓滴服务器230下载增强层2122。
[0023]为了回放视频内容,流式传输服务器220将基本层110和增强层1121流式传输至媒体播放器290的再复用器(remux)250,并且本地贮存器270将增强层2122流式传输至再复用器250。再复用器250对基本层110、增强层1121以及增强层2122进行再复用,并将经再复用的流输出到解码器260(例如,SVC解码器)。解码器260随后对流进行解码,以便在显示器280(例如,电视机、计算机显示器、或者移动设备屏幕)上输出。
[0024]当增强层2122可用时,可以在显示器280上输出高分辨率283。如果本地贮存器279还未下载增强层2122,则增强层2122可能是不可用的。当增强层2122不可用时,质量下降到中等分辨率282,但这种下降是适度的,以使得系统的整体运行和性能不会受到剧烈影响。如果仅基本层110可用,则显示器280输出较低的分辨率281或者以其它方式输出较低质量的视频。
[0025]图3描绘了视频监控系统300。摄像头330记录视频,由编码器310(例如,SVC编码器)将该视频编码成基本层110、增强层1121以及增强层2122。解复用器340对流进行解复用,并将基本层110传送至云服务器320,并将增强层1121和增强层2122传送至本地贮存器370(例如,NAS)。编码器310和/或解复用器340可以与摄像头330集成在一起,或者可以是分开的。
[0026]将基本层110存储在云服务器320上允许用户远程访问监控视频。对于较高分辨率的视频,用户可以访问存储在本地贮存器370上的增强层120。存储在云服务器320上的层的数量可以基于云存储器的成本。
[0027]图4描绘了视频传送系统400。云服务器420将基本层110流式传输至媒体播放器430的再复用器450。预加载有增强层1121和增强层2122的本地贮存器470(例如,NAS)将增强层1121和增强层2122流式传输至再复用器450。解码器410(例如,SVC解码器)获得经重新混合的流并将视频输出到显示器480。
[0028]由于基本层110存储在云服务器420上,因此可以由云服务器420来控制对视频内容的访问。增强层120完全依赖于基本层110,并且在没有对应的基本层110的情况下不能播放增强层120。因此,即使本地贮存器470受到损害,基本层110也可以在云服务器420上保持安全。内容拥有者可以将基本层110托管在安全的服务器上以保护视频内容免遭盗版。
[0029]图5描绘了视频编码过程的流程图500,例如可以由视频监控系统300来执行该视频编码过程。在510处,将视频内容(其可由摄像头330生成)编码成SVC流或其它的分层协议流。解复用器(例如,解复用器340)将经分层的流解复用成基本层和增强层。
[0030]在520处,将基本层存储在互联网服务器(例如,云服务器320)上。在某些实现方式中,可以将一个或多个较低的增强层与基本层一起存储在互联网服务器上。在530处,将至少一个增强层发送给本地贮存器(例如,本地贮存器370)。
[0031]图6描绘了视频解码过程的流程图600,例如可以由视频传送系统400来执行该视频解码过程。在610处,媒体播放器(例如,媒体播放器430)从存储基本层的互联网服务器(例如,云服务器420)获取包括该基本层的第一流。在某些实现方式中,互联网服务器可以存储较低的增强层,并且第一流还包括较低的增强层。在620处,媒体播放器从存储增强层的本地贮存器(例如,本地贮存器470)获取包括该增强层的第二流。在这方面,获取第二流可以包括从存储器访问增强层,其中存储器可以包括可移动存储介质。在这些实现方式中,可移动存储介质可以包括诸如DVD或CD-ROM之类的光学介质。
[0033]本领域普通技术人员将意识到,结合本文所公开的例子所描述的各种说明性的逻辑框、模块和过程可以被实现为电子硬件、计算机软件、或者二者的组合。此外,可以在使得处理器或计算机执行或运行某些功能的计算机可读介质上体现前述过程。
[0034]为了清楚地说明硬件和软件的这种可互换性,上面已经对各种说明性的组件、块和模块围绕其功能进行了一般性描述。至于这种功能是实现为硬件还是软件,这取决于特定的应用和施加在整体系统上的设计约束。本领域普通技术人员可以针对每个特定的应用以变通的方式来实现所描述的功能,但是这种实现决策不应当被解释为致使偏离本公开内容的范围。
[0035]利用被设计为执行本文所描述的功能的通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)或者其它可编程逻辑器件、分立门或晶体管逻辑器件、分立硬件组件或者其任意组合,可以实现或执行结合本文所公开的例子所描述的各种说明性的框、单元、模块和控制器。通用处理器可以是微处理器,但在替代方案中,该处理器可以是任何常规的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如,DSP和微处理器的组合、多个微处理器、一个或多个微处理器与DSP内核的结合,或者任何其它此种配置。
[0037]提供对所公开的示例性的实现方式的先前的描述是为了使得本领域任何普通技术人员能够实施或使用本公开内容中的实现方式。对这些例子的各种修改对于本领域普通技术人员来说将是显而易见的,并且在不偏离本公开内容的精神或范围的情况下,本文中所公开的原理可以应用于其它例子。所描述的实现方式在所有方面都仅视为是说明性的而非限制性的,因此,由所附权利要求书而不是先前的描述来指示本公开内容的范围。落入权利要求的等效项的含义和范围内的所有变化都将包含在它们的范围内。