CN103621102A - 用于音频与视频同步的技术 - Google Patents
用于音频与视频同步的技术 Download PDFInfo
- Publication number
- CN103621102A CN103621102A CN201180071324.9A CN201180071324A CN103621102A CN 103621102 A CN103621102 A CN 103621102A CN 201180071324 A CN201180071324 A CN 201180071324A CN 103621102 A CN103621102 A CN 103621102A
- Authority
- CN
- China
- Prior art keywords
- video
- buffer level
- time stamp
- audio
- pts
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N9/00—Details of colour television systems
- H04N9/79—Processing of colour television signals in connection with recording
- H04N9/87—Regeneration of colour television signals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/44004—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving video buffer management, e.g. video decoder buffer or video display buffer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4307—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen
- H04N21/43072—Synchronising the rendering of multiple content streams or additional data on devices, e.g. synchronisation of audio on a mobile phone with the video output on the TV screen of multiple content streams on the same device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
- H04N21/4305—Synchronising client clock from received content stream, e.g. locking decoder clock with encoder clock, extraction of the PCR packets
Abstract
描述了用于确定流是否处于稳定状态并且当该流处于稳定状态时允许对PTS值的调整的技术。当在一段时间期间接收到的PTS值不发生意外变化时,该流会处于稳定状态。例如,当流处于稳定状态时,可以基于系统缓冲水平(即上溢或下溢),来调整音频或视频的PTS值。PTS值的调整量可以基于缓冲水平是否显示在向更大的上溢或下溢移动。在一些情况下,当流没有处于稳定状态时,允许以采样率回放音频并且允许以帧速率回放视频,而不是由PTS控制。
Description
技术领域
概括地说,本文中公开的主题涉及在音频渲染和视频回放期间对音频与视频的同步。
背景技术
音频-视频同步试图在视频回放期间的适当时刻来渲染音频。例如,音频和视频数据可以储存在诸如硬盘、DVD、蓝光磁盘的本地存储介质内或者通过IP网络、线缆或者卫星进行传送。例如,美国专利5,430,485、5,771,075和6,510,279说明了传统的音频-视频同步的示例。
图1示出了用于音频-视频同步的常规技术的示例。解复用器(Demux)接收传输流中经复用的音频和视频信号。该传输流可以符合ISO/IEC13818-1:1994。在图1中,ES代表基本流,该基本流包括视频和音频部分,并且定义于ISO/IEC13818-2(视频部分)和13818-3(音频部分)中。解复用器从传输流中提取诸如节目时钟恢复(PCR)和呈现时间戳(PTS)的定时信息。PCR信息可以用于恢复本地系统时间时钟(STC)。接收到的视频帧和音频采样分别具有相关联的PTS。PTS指示视频帧或音频采样的呈现时间。当STC与视频帧的PTS相匹配时,显示该视频帧,而当STC与音频采样的PTS相匹配时,渲染该音频采样。当音频PTS值与STC值相匹配并且视频PTS值与STC值相匹配的时候,发生音频-视频同步。然而,该音频-视频同步技术有一些潜在的问题。
第一个潜在的问题是:当发生时基不连续性时,错误的PCR值会中断音频-视频同步。按照ISO/IEC13818-1(1994),系统时基不连续性位值为1指示已经发生了PCR不连续性。例如,通过在指定为PCR_PID的PID的传输流分组中使用discontinuity_indicator=1可以指示系统时基不连续性(参见,例如,ISO/IEC13818-1(1994)的42页)。无论discontinuity_indicator=1还是0,当发生不连续性时,传输流分组中的下一个PCR/PTS表示新的系统时间时钟的采样。PCR值会由于各种原因而出现错误。例如,PCR值会由于失真(诸如网络传输过程中的噪声或信号讹误)而发生改变,或者编码器会出现错误并传送错误的PCR值。
处理PCR不连续性的传统方法是用解复用器计算PCR跳跃量,并通过将PTS加上PCR跳跃量来使用PCR跳跃量对PTS值重建基础(re-base)。该方法的潜在问题在于,在一些情况下,使用PCR计算出的偏移与PTS不连续性无关。换句话说,使用PCR跳跃量并不足以校正PTS值以保持或达到音频-视频同步。因此,使用重建基础的PTS来达到音频-视频同步会导致视频静止或音频故障。
第二个潜在的问题是系统缓冲区下溢或上溢会造成音频故障或视频静止。解复用器、视频和音频解码器和/或视频和音频渲染器可以使用系统缓冲区。下溢或上溢可以发生在可变流输入位速率情况下,例如可能发生网络抖动的IPTV环境。图1的系统体系结构并不确定在缓冲区下溢或上溢情况下的PTS重建基础的量。
附图说明
在图中通过举例而非限定的方式示出了本发明的实施例,并且在图中,相同的参考标号指代相同的元素。
图1示出了用于音频-视频同步的常规技术的示例。
图2描绘了可以用于执行音频-视频同步的示例系统。
图3描绘了呈现定时模块的连续和不连续状态的示例状态图。
图4A和4B描绘了可以用于修改呈现时间戳的示例过程。
图5描绘了模块调用顺序的示例。
图6A-6D描绘了可以使用一些实施例来校正的PTS模式的示例。
图7描绘了可以使用本发明的实施例的示例系统。
具体实施方式
贯穿本说明所提及的“一个实施例”或“实施例”意指在本发明的至少一个实施例中包含结合该实施例描述的特定的特征、结构或特性。因此,在本说明的各个地方出现短语“在一个实施例中”或“实施例”并不一定全部指的是相同的实施例。此外,特定的特征、结构或特性可以在一个或多个实施例中进行组合。
多个实施例提供了确定呈现定时模块是否处于稳定状态并且当呈现定时模块处于稳定状态时允许调整PTS值的方式。当在一段时间内接收到的PTS值未显著变化时,呈现定时模块可以处于稳定状态。例如,当呈现定时模块处于稳定状态时,可以基于系统缓冲区水平(即,上溢或下溢)来调整音频或视频的PTS值。PTS值的调整量可以基于缓冲水平似乎趋于更大的上溢还是下溢。在一些情况下,当呈现定时模块没有处于稳定状态时,允许音频以采样率进行回放并且允许视频以帧速率进行回放,而不是由PTS来控制。
提供了关于呈现定时模块的说明,并且可以基于呈现定时模块是否处于稳定状态来决定是否调整PTS值。然而,在一些实施例中,可以基于在一段时间内接收到的音频或视频PTS值的变化没有超过阈值,而不是基于呈现定时模块的状态来决定是否调整PTS值。
图2描绘了可以用于执行音频-视频同步的示例系统。解复用器202可以接收包括音频和视频部分的传输流。传输流可以符合MPEG-2(ISO/IEC13818-1:1994),但是该流可以符合其它标准(例如但不限于MPEG-1、MPEG-4、H.263、H.264、H.265、VC1和VP8)。解复用器202可以解析初始PTS,确定其到达时间并且将该信息附加到相关联的缓冲区。解复用器202还可以初始化针对推送模式回放(调谐器或UDP回放)和本地文件回放的缓冲。解复用器202可以向视频解码器204提供基本流(ES)的视频部分以及相关的呈现时间戳(PTS)。解复用器202可以向音频解码器220提供基本流(ES)的音频部分以及相关的呈现时间戳(PTS)。
视频解码器204可以根据可应用的视频解码标准(例如但不限于MPEG-1、MPEG-2、MPEG-4、H.263、H.264、H.265、VC1和VP8)来执行视频解码。例如,视频解码可以包括使用可变长度解码(VLD)来解析压缩流、执行反量化(IQ)、执行反离散余弦变换(IDCT)、执行运动补偿(MC)以及块重建(BR)。视频渲染器206可以从视频解码器204接收经解码的视频以及视频的PTS。视频渲染器206提供视频用于回放。可以将视频帧存储在帧缓冲区中,并且图形引擎随后可以向显示器提供这些帧。视频渲染器206可以向呈现定时模块230提供视频PTS和显示的帧(示出为“消耗的帧”)的数量以及视频渲染器206的帧缓冲区的缓冲状态。
每当渲染器具有带有PTS的帧时,其可以调用呈现定时模块230。可以通过当前流时间加上补偿来计算帧的渲染时间。可以将补偿定义为由渲染定时处理的但还未由显示设备显示的帧的持续时间。
音频解码器220可以根据可应用的音频解码标准(例如但不限于MPEG-1、MPEG-2、MPEG-4、H.263、H.264和H.265)来执行音频解码。音频渲染器222可以从音频解码器220接收经解码的音频以及音频的PTS。音频渲染器222可以提供音频用于回放。例如,音频可用于扬声器和/或头戴式耳机的音频硬件输出。音频渲染器222可以向呈现定时模块230提供音频PTS和消耗的音频采样(示出为“消耗的帧”)的数量以及音频渲染器222的缓冲区的状态。
时钟恢复块210可以基于从接收到的传输流中提取出的节目时钟恢复(PCR)来生成系统时间时钟(STC)。
呈现定时模块230可以潜在地调整接收到的视频或音频PTS值,并且向视频渲染器206提供调整后的视频PTS值以及向音频渲染器222提供调整后的音频PTS值。如果呈现定时模块处于稳定(STABLE)或连续状态,那么可以调整PTS值。呈现定时模块230可以处于稳定或不稳定状态,这取决于随音频和视频流接收到的PTS值中的变化。例如,如果接收到的PTS值之间的变化小于阈值,那么呈现定时模块230可以处于稳定状态。如果接收到的PTS值之间的变化大于阈值,那么呈现定时模块230可以处于不稳定状态。
如果呈现定时模块处于不连续性(DISCONTINUITY)或不连续状态,那么接收到的PTS值可能是错误的,如果使用接收到的PTS值来进行音频-视频同步,那么这会导致音频损失或视频静止。在不连续性(DISCONTINUITY)或不连续状态中,允许音频以采样率进行回放并且允许视频以帧速率进行回放,而不是由PTS来控制。在不连续性(DISCONTINUITY)或不连续状态中,可以对音频和视频二者进行回放,但可能无法尝试音频-视频同步。例如,当检测到不连续性时,呈现定时模块230可以将调整后的PTS设置为无效值(例如,-1或0xFFFFFFFF)。当视频渲染器206或音频渲染器222识别出该无效的PTS时,它们可以以采样率或帧速率提供回放。
PTSn表示从视频或音频输入流中提取的PTS,并且n表示接收到的PTS的数量。PTSn表示理论PTS值。对于视频来说,可以通过之前显示的帧的数量除以帧速率来确定PTSTn。例如,如果显示的帧的数量为500并且帧速率为25fps,那么理论PTS值为500/25=20。对于音频来说,可以通过之前渲染的采样的数量除以音频采样率来确定PTSTn。Deltan可以表示PTSn与PTSTn之间的差。Delta’n可以表示两个连续的Deltan之间的差。
当N个连续的Delta’n小于或等于阈值时,呈现定时模块230可以进入稳定状态。值N可以是10或其它数量。当1个Delta’n大于阈值时,发生呈现定时模块230进入不连续性状态。在N个连续的Delta’n小于或等于阈值之后,呈现定时模块230可以重新进入稳定状态。
呈现定时模块230可以显露PTS转换API,渲染器可以调用该API。
图3描绘了图2的呈现定时模块的连续和不连续状态的示例状态图。视频不连续性或音频不连续性可以使呈现定时控制模块进入不连续性(DISCONTINUITY)状态。在呈现定时控制模块进入不连续性(DISCONTINUITY)状态之后,音频和视频二者可以以它们的采样率或帧速率自由运行。
多个实施例提供了基于系统缓冲水平来调整PTS值的方式。当流处于稳定状态并且检测到系统缓冲区上溢或下溢时,呈现定时模块(图2)可以调整视频和音频二者的PTS值。可以将初始的PTS值发送到呈现定时模块,并且该呈现定时模块潜在地提供调整后的PTS。
对于视频来说,可以将下溢定义为具有迟到时间戳的大量连续的帧,在其之间没有任何“准时”的帧。“大量”可以是像视频解码器所支持的最坏情况的临时编码结构一样大的数量,例如在H.264的情况下为16。对于音频来说,可以将下溢描述为具有迟到时间戳的多个连续的音频帧,在其之间没有任何“准时”的帧。该数量取决于音频内部管线并且可能不大于2或3。
在渲染器要执行PTS转换之前向呈现定时模块230提供系统缓冲水平。渲染器可以响应于PTS的接收来执行PTS转换。当呈现定时模块进入稳定(STABLE)状态时,系统缓冲水平信息可以确定,从而使得稳定的缓冲水平是已知的。缓冲水平可以表示为所使用的缓冲区与缓冲区容量相比的百分比。
当系统输入或输出异常发生时(例如,由于网络抖动),可以检测到系统缓冲水平变化。例如,如果缓冲水平处于下溢并且缓冲水平不断减少,那么将调整因子加到转换后的PTS上。因为如果PTS大于系统时钟,那么渲染变慢,所以增加PTS导致更慢的数据消耗。如果缓冲水平处于上溢并且该水平不断增加,那么从转换后的PTS减去调整因子。因为如果PTS小于系统时钟,那么渲染加快,所以减少PTS会导致更快的数据消耗。
图4A描绘了可以用于修改呈现时间戳的示例过程。在执行图4A的过程之前,当呈现定时模块处于稳定状态时,渲染器(音频或视频)的缓冲水平可以确定。此后,当呈现定时模块进入稳定状态或处于稳定状态中时所确定的系统缓冲水平可以被称为“稳定的缓冲水平”。方框402包括确定当前的缓冲水平与稳定的缓冲水平之间的差。可以响应于在渲染器或呈现定时模块处的音频或视频呈现时间戳的接收来执行方框402。方框402和404中的缓冲可以与音频或视频渲染器相关联,该音频或视频渲染器与接收到的触发方框402的音频或视频呈现时间戳相关联。方框404包括确定是否在发生缓冲区下溢或上溢。如果当前的缓冲水平比稳定的缓冲水平小某一值,该值大于阈值,并且当前的缓冲水平不断减少,那么认为该缓冲区处于下溢状态。如果当前的缓冲水平比稳定的缓冲水平大某一值,该值大于阈值,并且当前的缓冲水平不断增加,那么认为该缓冲区处于上溢状态。在下溢的情况下,方框406跟随在方框404之后。在缓冲区上溢的情况下,方框408跟随在方框404之后。在方框406中,针对缓冲区下溢,将调整因子加到PTS上以增加转换后的PTS来导致较慢的读出。在方框408中,从转换后的PTS减去调整因子以减少PTS并导致较快的缓冲区读出。可以通过从PTSn中减去Deltan来确定转换后的PTS。
图4B描绘了调整呈现时间戳的示例方式。当视频渲染器的缓冲区或音频渲染器的缓冲区进入不健康状态(例如,下溢或上溢)时,可以发生调整因子的更新。相同的调整因子可以用于调整视频和音频PTS二者。如果将视频PTS调整了一数量,那么可以将音频PTS调整该相同的数量以潜在地保持音频/视频同步。可以在音频渲染器缓冲区和视频渲染器缓冲区二者都进入健康状态(即,没有上溢或下溢)之后停止调整的使用。
图4B的过程的一个可能的目标是保持PTS变化尽可能平滑。对PTS的大的修改会导致显示假象或音频故障。当系统缓冲区趋于上溢或下溢时,图4B的过程试图通过调整PTS来阻止该趋势。初始调整可以是相对小的量。在调整之后,如果缓冲水平趋于离开健康状态,那么将增加调整因子以减少达到健康状态的时间。在调整之后,如果缓冲水平趋向于健康状态,那么减小调整因子。当缓冲区再次进入健康状态时,再次将调整因子减小到小的值。
方框450包括当呈现定时模块处于稳定状态时确定系统缓冲水平。该稳定的缓冲水平可以与既不上溢也不下溢的状态相对应。例如,当呈现定时模块进入稳定状态时,可以针对视频渲染器缓冲区或音频渲染器缓冲区来确定系统缓冲水平。该缓冲水平可以与既不上溢也不下溢的缓冲水平相对应。在视频渲染器处当每次到达PTS时,该视频渲染器可以使该视频渲染器所使用的缓冲区的当前的系统缓冲水平(在图2中示为“缓冲状态”)对于呈现定时模块230以及PTS值来说是可用的。在音频渲染器处当每次到达PTS时,该音频渲染器可以使该音频渲染器所使用的缓冲区的当前的系统缓冲水平(在图2中示为“缓冲状态”)对于呈现定时模块230以及PTS值来说是可用的。将音频渲染器或视频渲染器的当前的缓冲水平与相应的稳定的缓冲水平相比较。方框452包括确定稳定的缓冲水平和当前的缓冲水平之间的绝对差是否大于阈值。如果绝对差大于阈值,那么方框454跟随在方框452之后。如果绝对差不大于阈值,那么方框460跟随在方框452之后。
方框460包括重新设置调整因子值。初始的调整因子值可以是0或者根据实验使用而确定的较小值。当缓冲水平与稳定的缓冲水平之间的差不大于阈值时,认为该缓冲水平是健康的,并且将把调整因子值重新设置为0或者根据实验使用而确定的较小值。当系统缓冲水平(音频和视频缓冲水平二者)二者都处于健康状态时,不需要使用调整因子来调整PTS。如果当音频和视频缓冲水平二者都处于健康状态时要调整PTS,可以重新设置调整因子以使得PTS的调整最小化。
方框454包括确定绝对差是否大于之前的绝对差。之前的绝对差可以在紧邻的之前或之前的缓冲水平和稳定的缓冲水平之间。如果该差更大(或者不断增加),那么方框470跟随在方框454之后。如果该差更大(或者不断增加),那么缓冲水平状况不断增加下溢或上溢。如果该差没有更大(或者保持稳定或者不断减少),那么方框480跟随在方框454之后。如果该差没有更大(或者保持稳定或者不断减少),那么缓冲水平状况变得减少下溢或上溢。
方框470包括将Deltan增加调整因子。在之前的调整之后,如果缓冲水平继续趋于远离健康状态,那么将增加Deltan以减少达到健康状态的时间。因为缓冲水平趋于更多下溢或上溢,所以可以增加Deltan。使用较高Deltan的调整可以提供更接近健康水平的缓冲水平的更快运动。可以基于实验结果来设置调整因子值,并且可以通过系统中使用了多少缓冲区来确定调整因子值。
方框480包括将Deltan减少调整因子。因为缓冲区趋于远离下溢或上溢并趋向于健康水平,因此可以将Deltan减少调整因子。减少Deltan可以防止过度调整PTS值并且可以潜在更快地达到健康的系统缓冲水平。在一段时间的调整之后,如果缓冲水平趋向于健康状态,那么减少Deltan。在一些情况下,方框480可以涉及不改变Deltan。
方框482包括确定当前的缓冲水平是否大于稳定的缓冲水平。如果当前的缓冲水平大于稳定的缓冲水平,那么认为缓冲区上溢,并且方框490跟随在方框482之后。如果当前的缓冲水平小于稳定的缓冲水平,那么认为缓冲区下溢,并且方框495跟随在方框482之后。
方框490包括将PTS值减少Deltan。方框490处理潜在地处于上溢状态的缓冲区。
方框495包括将PTS值增加Deltan。方框495处理潜在地处于下溢状态的缓冲区。
图5描绘了模块调用顺序的示例。在输入信号很可能劣化(例如,基于该输入信号的传输介质)的情况下或者如果检测到信号讹误,应用可以请求使用呈现定时模块。例如,与通过线缆或电缆传输的输入信号相比,通过陆地广播传输的输入信号更有可能劣化。例如,应用可以是播放器或者具有嵌入式媒体播放器的浏览器。应用可以请求打开解复用器、时钟恢复、渲染器和呈现定时模块。打开呈现定时模块的请求分配并初始化该呈现定时模块的实例。应用可以向呈现定时模块发出设置时钟(set_clock)命令来导致设置时钟设备句柄。应用可以向呈现定时模块发出设置播放速率(set_play_rate)命令来设置播放速率。播放速率可以是1X、2X或其它速率。应用可以向呈现定时模块发出设置基准时间(set_base_time)命令来设置管线的基准时间,其中该基准时间用于计算流时间。应用可以向渲染器发出设置呈现定时模块句柄(set_presentation_timing_module_handle)命令,并且渲染器可以使用该句柄来调用呈现定时模块。每个渲染器可以向呈现定时模块发出请求来请求转换PTS值。针对转换PTS值的请求可以包括接收到的PTS值、理论PTS值和渲染器的缓冲水平。当函数调用返回时,pts_转换(pts_convert)的返回可以用于向渲染器传送转换后的PTS值。在转换PTS值之后,应用可以请求关闭解复用器、呈现定时模块、时钟恢复和渲染器。
图6A-6D描绘了可以使用一些实施例来校正的PTS模式的示例。在图6A-6D中,PTS值在垂直轴上而时间在水平轴上。图6A描绘了PTS不连续性的情况。图6B描绘了PTS奇数点的情况。图6C描绘了PTS空闲(spare)或信号丢失的情况。图6D描绘了不匹配的输入位速率情况。
在实施例中,PTS偏移的调整是基于历史统计数据的。下面的公式1可以用于确定何时以及如何校正PTS值。
公式1:
PTSn:从输入流中提取的PTS
PTSTn:PTSn的理论PTS
LP(δ'N):δ'N通过低通滤波器
PTSN(out)=无效,其中,[δ'N-n,δ'N,]中的一个没有通过LP
δ'N的低通滤波可以用于过滤奇数点以及检测不连续性。当δ'N小于阈值时,值δ'N通过低通滤波器。如果δ'N通过了低通滤波,那么可以使用δ'N来确定偏移值可以通过接收到的PTS与理论PTS值之间的差距(gap)的统计平均来计算偏移值并且可以根据系统状态变化来更新偏移值偏移值可以是负的或正的。可以将PTS值减少偏移值可以使用参照图4B描述的调整因子来进一步调整PTS值。
1)在系统启动并且当系统第一次进入稳定(STABLE)状态时,可以使用上面的公式1来计算初始偏移值。
例如,考虑转换后的PTS可以从较小值开始,这是因为其应该与流时间对齐,但是接收到的PTS值可以从任意值开始,那么可以是较大值。在不连续的情况下,接收到的PTS将跳变很多,并且当系统重新进入稳定状态时,偏移将会被重新计算。新的可以与其之前的值非常不同以保持线性的转换后的PTS值。
接收到的PTS:10000、10001、10002、10003、20040、20041……
转换后的PTS:5、6、7、8、9、10
参照图4B描述的缓冲区上溢/下溢调整因子可以是较小值。在必要的时候,该调整因子可以用于保持缓冲水平尽可能的稳定。在上面的示例中,如果缓冲区趋于上溢,那么该因子可以例如是3。在这种情况下,可以将转换后的PTS进一步调整为:转换后的PTS:2、3、4、5、6,等等。
如果δN'不通过低通滤波,那么呈现定时模块会进入不连续状态。如果某一数量的连续的δN'通过低通滤波,那么呈现定时模块可以重新进入稳定状态。
在各个实施例中,论述了启动情况,其中,音频和视频PTS值之间存在差别。例如,视频PTS可以大于音频PTS:
音频PTS:1、2、3、4、5、6、7、8……
视频PTS:4、5、6、7、8、9、10……
可以有两种方式来处理这种情况下音频与视频PTS值之间的差别:
1)在视频屏幕空白的情况下首先播放音频,直到音频PTS达到第一视频PTS或者
2)丢弃最先的3帧音频并且同时显示具有PTS=4的音频帧和第一个视频帧(具有为4的PTS)。
通过在启动时选择正确的PTS转换偏移,PTS转换可以达到上面效果中的任何一种。例如,如果使用了为4的PTS偏移,那么最先的3个音频帧的转换后的PTS将在过去,并且随后被渲染器丢弃,从而达到第二种效果。
下面描述了处理技巧模式行为的方式。服务器侧的技巧模式和本地技巧模式二者都可以涉及呈现时间戳的调节。将呈现时间戳与相应帧的真实渲染器时间进行比较以检测不连续性或其它情况。因此,在技巧模式的情况下,呈现时间戳可以是经调节的。换句话说,渲染器可以首先将分段时间转换成线性时间并且随后将线性时间用于调节。当处理技巧模式时,错误滤波的滤波器阈值也可以被相应调节,因为在PTS调节期间也对错误进行了调节。
图7描绘了可以使用本发明的实施例的示例系统。计算机系统500可以包括主机系统502和显示器522。可以在手持式个人计算机、移动电话、机顶盒或任何计算设备中实现计算机系统500。主机系统502可以包括芯片组505、处理器510、主机存储器512、存储装置514、图形子系统515和无线电装置520。芯片组505可以提供处理器510、主机存储器512、存储装置514、图形子系统515和无线电装置520之间的相互通信。例如,芯片组505可以包括能够提供与存储装置514相互通信的存储适配器(没有描绘出)。在一些实现中,可以在单个片上系统(SoC)中实现芯片组505、处理器510和图形子系统515。
可以将处理器510实现为复杂指令集计算机(CISC)或精简指令集计算机(RISC)处理器、x86指令集兼容处理器、多核或任何其它微处理器或中央处理单元。
可以将主机存储器512实现为易失性存储器设备,例如但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)或静态存储器(SRAM)的。可以将存储装置514实现为非易失性存储设备,例如但不限于磁盘驱动、光盘驱动、磁带驱动、内部存储设备、附着式存储设备、闪存、电池备份SDRAM(同步DRAM)和/或网络可访问的存储设备。
图形子系统515可以执行对图像(例如静态图像或视频)的处理以便进行显示。模拟或数字接口可以用于通信地耦合图形子系统515和显示器522。例如,该接口可以是高清晰度多媒体接口、显示端口、无线HDMI和/或无线HD兼容技术中的任意一个。可以将图形子系统515集成到处理器510或芯片组505中。图形子系统515可以是通信地耦合到芯片组505的单独的卡。
在各个实施例中,处理器510或图形子系统515可以被配置为执行如本文中所描述的音频-视频同步。
无线电装置520可以包括能够根据诸如但不限于IEEE802.11和IEEE802.16的任意版本的可应用无线标准来传送和接收信号的一个或多个无线电装置。例如,无线电装置520可以至少包括物理层接口和介质访问控制器。
可以在各种硬件体系结构中实现本文描述的图形和/或视频处理技术。例如,可以将图形和/或视频功能集成在芯片组内。或者,可以使用分立式图形和/或视频处理器。作为又一个实施例,可以由通用处理器(包括多核处理器)来实现图形和/或视频功能。在另一个实施例中,可以在消费电子设备中实现这些功能。
可以将本发明的实施例实现为下列各项中的任意一项或者下列各项的组合:使用母板进行互连的一个或多个微型芯片或集成电路、硬线逻辑、由存储器设备存储并且由微处理器执行的软件、固件、专用集成电路(ASIC)和/或现场可编程门阵列(FPGA)。术语“逻辑”可以包括(通过示例的方式)软件或硬件和/或软件和硬件的组合。
可以以例如计算机程序产品来提供本发明的实施例,该计算机程序产品可以包括其上存储有机器可执行指令的一个或多个机器可读介质,当由诸如计算机、计算机网络或其它电子设备执行时,所述指令可以导致一个或多个机器根据本发明的实施例来执行操作。机器可读介质可以包括但不限于软盘、光盘、CD-ROM(压缩磁盘-只读存储器)和磁-光盘、ROM(只读存储器)、RAM(随机存取存取器)、EPROM(可擦除可编程只读存储器)、EEPROM(电可擦除可编程只读存储器)、磁卡或光卡、闪存或者适合存储机器可执行指令的其它类型的介质/机器可读介质。
附图和前面的描述给出了本发明的示例。尽管被描述为多个不同的功能项,但本领域的技术人员将会明白的是这些元件中的一个或多个完全可以组合成单个功能元件。或者,可以将某些元件划分成多个功能元件。可以将来自一个实施例的元件添加到另一个实施例。例如,本文中描述的过程的顺序可以变化并且不局限于本文中描述的方式。此外,任意流程图的动作不需要以所示出的顺序来实现,也不一定需要执行所有的动作。此外,不依赖于其它动作的那些动作可以与其它动作并行执行。然而,本发明的范围绝不受限于这些具体的示例。诸如结构、维度及使用材料上的差异的各种变形(不管是否在本说明中明确地给出)是可能的。本发明的范围至少与下面的权利要求书给出的范围一样宽。
Claims (20)
1.一种计算机实现的方法,其包括:
部分基于接收到的呈现时间戳的变化来确定是否能进行音频-视频同步,以及
当允许进行音频-视频同步时,允许对接收到的呈现时间戳值进行调整。
2.根据权利要求1所述的方法,其中,所述呈现时间戳值与音频呈现时间戳值或视频呈现时间戳值中的至少一个相对应。
3.根据权利要求1所述的方法,其中,当在一段时间期间接收到的连续PTS值的变化不多于阈值时,允许进行音频-视频同步。
4.根据权利要求1所述的方法,其中,允许对所述接收到的呈现时间戳值进行调整包括:允许部分基于系统缓冲水平来将所述呈现时间戳值调整一数量。
5.根据权利要求4所述的方法,其中,允许部分基于系统缓冲水平来将所述接收到的呈现时间戳值调整一数量包括:当(i)所述系统缓冲水平和稳定的缓冲水平之间的差大于阈值,并且(ii)与所述系统缓冲水平和所述稳定的缓冲水平之间的之前的差相比,所述系统缓冲水平和所述稳定的缓冲水平之间的差不断减少或稳定时,减少所述数量。
6.根据权利要求4所述的方法,其中,允许基于系统缓冲水平来将所述呈现时间戳值调整一数量包括:当(i)所述系统缓冲水平和稳定的缓冲水平之间的差大于阈值,并且(ii)与所述系统缓冲水平与所述稳定的缓冲水平之间的之前的差相比,所述系统缓冲水平和所述稳定的缓冲水平之间的差不断增加时,增加所述数量。
7.根据权利要求4所述的方法,其中,所述数量部分基于接收到的呈现时间戳值和理论呈现时间戳值之间的差。
8.根据权利要求1所述的方法,其中,当在一段时间期间接收到的连续PTS值的变化多于阈值时,不允许进行音频-视频同步,并且还包括:
当不允许进行音频-视频同步时,允许以采样率回放音频和视频并且允许以帧速率回放视频,而不是由PTS控制。
9.一种装置,包括:
视频渲染器;
视频渲染器缓冲区;
音频渲染器;
音频渲染器缓冲区;以及
呈现定时模块,其用于从所述视频渲染器和音频渲染器接收呈现时间戳和视频渲染器缓冲水平以及音频渲染器缓冲水平,其中,所述呈现定时模块将确定是否允许对呈现时间戳的修改。
10.根据权利要求9所述的装置,其中,
当连续呈现时间戳之间的差小于阈值时,所述呈现定时模块将允许对呈现时间戳的修改,并且
音频和视频回放基于系统时间时钟与呈现时间戳之间的比较来进行。
11.根据权利要求10所述的装置,其中,所述呈现定时模块将允许对呈现时间戳修改一数量,其中,所述数量部分基于当前的缓冲水平和稳定的缓冲水平之间的差是不断增加还是减少。
12.根据权利要求11所述的装置,其中,当所述当前的缓冲水平和所述稳定的缓冲水平之间的差不断减少时,所述呈现定时模块将减少所述数量。
13.根据权利要求11所述的装置,其中,当所述当前的缓冲水平和所述稳定的缓冲水平之间的差不断增加时,所述呈现定时模块将增加所述数量。
14.根据权利要求11所述的装置,其中,所述数量部分基于接收到的呈现时间戳值和理论呈现时间戳值之间的差。
15.根据权利要求9所述的装置,其中,当连续呈现时间戳之间的差超过阈值时,所述呈现定时模块将允许以采样率回放音频以及以帧速率回放视频,而不是由呈现时间戳控制。
16.一种系统,包括:
无线网络接口;
显示器;以及
处理器,其被配置为:
部分基于视频或音频流中的至少一个的连续呈现时间戳是否变化超过阈值,来确定是否允许使用系统时间时钟和呈现时间戳二者的音频-视频同步,并且
响应于允许使用系统时间时钟和呈现时间戳二者的音频-视频同步,所述处理器将确定对视频或音频流中的至少一个的呈现时间戳进行调整的量。
17.根据权利要求16所述的系统,其中,为了确定对视频或音频流中的至少一个的呈现时间戳进行调整的量,所述处理器将:
确定由视频或音频渲染器使用的缓冲区何时处于上溢或下溢状况,并且
响应于确定所述缓冲区处于上溢或下溢状况,所述处理器将基于所述上溢或下溢状况是不断减轻、保持基本不变还是不断加重来确定所述量。
18.根据权利要求17所述的系统,其中,响应于所述上溢或下溢状况不断减轻或保持基本不变,所述处理器将减少所述量。
19.根据权利要求17所述的系统,其中,响应于所述上溢或下溢状况不断加重,所述处理器将增加所述量。
20.根据权利要求17所述的系统,其中,所述量部分基于接收到的呈现时间戳值和理论呈现时间戳值之间的差。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2011/073994 WO2012151756A1 (en) | 2011-05-12 | 2011-05-12 | Techniques for synchronization of audio and video |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103621102A true CN103621102A (zh) | 2014-03-05 |
CN103621102B CN103621102B (zh) | 2017-05-03 |
Family
ID=47138662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201180071324.9A Expired - Fee Related CN103621102B (zh) | 2011-05-12 | 2011-05-12 | 用于音频与视频同步的方法、装置及系统 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9179118B2 (zh) |
CN (1) | CN103621102B (zh) |
TW (1) | TWI571115B (zh) |
WO (1) | WO2012151756A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104902317A (zh) * | 2015-05-27 | 2015-09-09 | 青岛海信电器股份有限公司 | 音视频同步方法及装置 |
CN106470291A (zh) * | 2015-08-19 | 2017-03-01 | 飞思卡尔半导体公司 | 从音频/视频解码器中的时间同步中的中断中恢复 |
CN107566890A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN110858922A (zh) * | 2018-08-23 | 2020-03-03 | 晨星半导体股份有限公司 | 数字影音装置的操作方法 |
CN111836071A (zh) * | 2020-07-16 | 2020-10-27 | 全时云商务服务股份有限公司 | 一种基于云会议的多媒体处理方法、装置及存储介质 |
CN112887772A (zh) * | 2017-03-14 | 2021-06-01 | 上海兆芯集成电路有限公司 | 影音串流的音频同步方法 |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103621102B (zh) | 2011-05-12 | 2017-05-03 | 英特尔公司 | 用于音频与视频同步的方法、装置及系统 |
WO2013190789A1 (ja) * | 2012-06-22 | 2013-12-27 | ソニー株式会社 | 受信装置およびその同期処理方法 |
WO2014115147A1 (en) * | 2013-01-24 | 2014-07-31 | Telesofia Medical Ltd. | System and method for flexible video construction |
CN103581730A (zh) * | 2013-10-28 | 2014-02-12 | 南京熊猫电子股份有限公司 | 在数字机顶盒上实现音视频同步的方法 |
CN103648011B (zh) * | 2013-11-29 | 2017-03-15 | 乐视致新电子科技(天津)有限公司 | 一种基于hls协议的音视频同步装置和方法 |
TWI561070B (en) * | 2014-01-03 | 2016-12-01 | Mstar Semiconductor Inc | Decoder and decoding method for audio video stream synchronization |
US9866986B2 (en) | 2014-01-24 | 2018-01-09 | Sony Corporation | Audio speaker system with virtual music performance |
US20150215564A1 (en) * | 2014-01-30 | 2015-07-30 | Echostar Uk Holdings Limited | Methods and apparatus for creation of a reference time index for audio/video programming |
US9615122B2 (en) | 2014-01-30 | 2017-04-04 | Echostar Technologies L.L.C. | Methods and apparatus to synchronize second screen content with audio/video programming using closed captioning data |
US9232335B2 (en) | 2014-03-06 | 2016-01-05 | Sony Corporation | Networked speaker system with follow me |
CN105338281B (zh) * | 2014-06-27 | 2018-07-31 | 阿里巴巴集团控股有限公司 | 一种视频显示方法和装置 |
US10761689B1 (en) | 2015-02-24 | 2020-09-01 | Open Invention Networks LLC | Mobile call enhancement |
US9817635B1 (en) | 2015-02-24 | 2017-11-14 | Open Invention Netwotk LLC | Processing multiple audio signals on a device |
CN105049917B (zh) * | 2015-07-06 | 2018-12-07 | 深圳Tcl数字技术有限公司 | 录制音视频同步时间戳的方法和装置 |
CN106658065B (zh) * | 2015-10-30 | 2021-10-22 | 中兴通讯股份有限公司 | 音视频同步方法、装置及系统 |
US9837093B2 (en) * | 2015-11-02 | 2017-12-05 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Packet based delivery of multi-channel audio over wireless links |
US10028057B2 (en) * | 2015-11-02 | 2018-07-17 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Packet based delivery of multi-channel audio over wireless links |
CN105657524A (zh) * | 2016-01-13 | 2016-06-08 | 上海视云网络科技有限公司 | 一种视频间无缝切换的方法 |
EP3197169A1 (en) | 2016-01-25 | 2017-07-26 | Thomson Licensing | Method for audio detection and corresponding device |
US9886234B2 (en) * | 2016-01-28 | 2018-02-06 | Sonos, Inc. | Systems and methods of distributing audio to one or more playback devices |
US9693168B1 (en) | 2016-02-08 | 2017-06-27 | Sony Corporation | Ultrasonic speaker assembly for audio spatial effect |
US9826332B2 (en) * | 2016-02-09 | 2017-11-21 | Sony Corporation | Centralized wireless speaker system |
US9924291B2 (en) * | 2016-02-16 | 2018-03-20 | Sony Corporation | Distributed wireless speaker system |
US9826330B2 (en) | 2016-03-14 | 2017-11-21 | Sony Corporation | Gimbal-mounted linear ultrasonic speaker assembly |
US9693169B1 (en) | 2016-03-16 | 2017-06-27 | Sony Corporation | Ultrasonic speaker assembly with ultrasonic room mapping |
US9794724B1 (en) | 2016-07-20 | 2017-10-17 | Sony Corporation | Ultrasonic speaker assembly using variable carrier frequency to establish third dimension sound locating |
US11457266B2 (en) | 2019-07-18 | 2022-09-27 | Realtek Semiconductor Corporation | Method for synchronizing audio and video and related apparatus |
TWI743774B (zh) * | 2019-07-18 | 2021-10-21 | 瑞昱半導體股份有限公司 | 音訊與視訊同步方法與相關的裝置 |
US11443737B2 (en) | 2020-01-14 | 2022-09-13 | Sony Corporation | Audio video translation into multiple languages for respective listeners |
FR3112444A1 (fr) * | 2020-07-10 | 2022-01-14 | Sagemcom Broadband Sas | Procédé, système et programme de diffusion de signaux audio/vidéo avec un ajustement automatique de latence |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5430485A (en) | 1993-09-30 | 1995-07-04 | Thomson Consumer Electronics, Inc. | Audio/video synchronization in a digital transmission system |
US5771075A (en) | 1994-12-08 | 1998-06-23 | Lg Electronics Inc. | Audio/video synchronizer |
JP3063841B2 (ja) | 1997-11-26 | 2000-07-12 | 日本電気株式会社 | オーディオ・ビデオ同期再生装置 |
EP1553784A1 (en) | 2004-01-06 | 2005-07-13 | Deutsche Thomson-Brandt Gmbh | Method and apparatus for performing synchronised audio and video presentation |
GB0428155D0 (en) | 2004-12-22 | 2005-01-26 | British Telecomm | Buffer underflow prevention |
US20060209684A1 (en) * | 2005-03-18 | 2006-09-21 | Via Technologies, Inc. | Data rate controller, and method of control thereof |
CN101197993A (zh) | 2006-12-05 | 2008-06-11 | 中兴通讯股份有限公司 | 视频和音频同步装置 |
US7895629B1 (en) * | 2007-11-07 | 2011-02-22 | At&T Mobility Ii Llc | Video service buffer management in a mobile rate control enabled network |
US9571901B2 (en) | 2007-12-28 | 2017-02-14 | Intel Corporation | Synchronizing audio and video frames |
US20090241163A1 (en) * | 2008-03-21 | 2009-09-24 | Samsung Electronics Co. Ltd. | Broadcast picture display method and a digital broadcast receiver using the same |
CN101394469B (zh) | 2008-10-29 | 2011-04-06 | 北京创毅视讯科技有限公司 | 一种音视频同步方法、装置及一种数字电视芯片 |
KR101535827B1 (ko) * | 2008-12-05 | 2015-07-27 | 삼성전자주식회사 | 무선 통신 네트워크에서 오디오 및 비디오 동기화 장치 및 방법 |
US8533518B2 (en) * | 2011-01-07 | 2013-09-10 | Anue Systems, Inc. | Systems and methods for precise timing measurements using high-speed deserializers |
CN103621102B (zh) | 2011-05-12 | 2017-05-03 | 英特尔公司 | 用于音频与视频同步的方法、装置及系统 |
-
2011
- 2011-05-12 CN CN201180071324.9A patent/CN103621102B/zh not_active Expired - Fee Related
- 2011-05-12 US US13/976,119 patent/US9179118B2/en not_active Expired - Fee Related
- 2011-05-12 WO PCT/CN2011/073994 patent/WO2012151756A1/en active Application Filing
-
2012
- 2012-03-19 TW TW101109339A patent/TWI571115B/zh not_active IP Right Cessation
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104902317A (zh) * | 2015-05-27 | 2015-09-09 | 青岛海信电器股份有限公司 | 音视频同步方法及装置 |
CN106470291A (zh) * | 2015-08-19 | 2017-03-01 | 飞思卡尔半导体公司 | 从音频/视频解码器中的时间同步中的中断中恢复 |
CN112887772A (zh) * | 2017-03-14 | 2021-06-01 | 上海兆芯集成电路有限公司 | 影音串流的音频同步方法 |
CN107566890A (zh) * | 2017-09-15 | 2018-01-09 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN107566890B (zh) * | 2017-09-15 | 2020-05-22 | 深圳国微技术有限公司 | 处理音频流播放异常的方法、装置、计算机装置及计算机可读存储介质 |
CN110858922A (zh) * | 2018-08-23 | 2020-03-03 | 晨星半导体股份有限公司 | 数字影音装置的操作方法 |
CN111836071A (zh) * | 2020-07-16 | 2020-10-27 | 全时云商务服务股份有限公司 | 一种基于云会议的多媒体处理方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
TWI571115B (zh) | 2017-02-11 |
WO2012151756A1 (en) | 2012-11-15 |
TW201246916A (en) | 2012-11-16 |
CN103621102B (zh) | 2017-05-03 |
US20130279888A1 (en) | 2013-10-24 |
US9179118B2 (en) | 2015-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103621102A (zh) | 用于音频与视频同步的技术 | |
KR100862630B1 (ko) | 비디오 프레임들 및 오디오 프레임들을 동기화하기 위한시스템 및 방법 | |
US10129587B2 (en) | Fast switching of synchronized media using time-stamp management | |
JP4857106B2 (ja) | 映像音声処理用集積回路及び機器の設計開発方法 | |
JP5258885B2 (ja) | 符号化ストリーム再生装置及び符号化ストリーム再生方法 | |
KR20080023318A (ko) | 미디어 콘텐츠 렌더링의 특징 | |
CA2863733C (en) | Method and system of playing online video at a speed variable in real time | |
TW201729187A (zh) | 用於使用前饋壓縮統計控制記憶體頻率之系統及方法 | |
US9210422B1 (en) | Method and system for staggered parallelized video decoding | |
US20050163226A1 (en) | Video buffer control apparatus for dual video decoding and digital broadcasting receiver thereof | |
US20090193355A1 (en) | Information processing apparatus and display control method | |
KR101246916B1 (ko) | 오디오/비디오 동기 보정 방법 및 장치 | |
US20080049036A1 (en) | Multimedia Playback System, FIFO Memory System, and Method for Storing Multimedia Data | |
JP2011014948A (ja) | 画像符号化方法及び画像符号化装置、並びにそれらを用いた画像記録再生装置 | |
US20080317139A1 (en) | Moving picture coding apparatus | |
US20060280484A1 (en) | Recording/playback apparatus and recording/playback method | |
US20060257108A1 (en) | Multimedia reproduction apparatus | |
US8213778B2 (en) | Recording device, reproducing device, recording medium, recording method, and LSI | |
US7848616B2 (en) | Processing device and method for time domain change of A/V data stream | |
JP2008011337A (ja) | 再生装置及び再生方法 | |
US8331758B2 (en) | Image playback apparatus and control method | |
KR101280227B1 (ko) | 멀티미디어 데이터 디코딩 장치 및 방법 | |
KR20060102038A (ko) | 디지털 멀티미디어 방송 수신장치에서 pvr 기능을 위한stc 제어 장치 및 방법 | |
JP2008092180A (ja) | デジタル放送受信機及び受信プログラム | |
JP2005210636A (ja) | デジタルデータ再生方法および装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20170503 Termination date: 20210512 |
|
CF01 | Termination of patent right due to non-payment of annual fee |