首页> 中国专利> 位流中的FLASH视频标签的搜寻方法及其搜寻装置

位流中的FLASH视频标签的搜寻方法及其搜寻装置

摘要

本发明提供一种位流中的FLASH视频标签的搜寻方法及其搜寻装置。位流中的FLASH视频标签的搜寻方法包含:设置一第一开始位置以及关于一第一搜寻程序的一第一搜寻长度,第一搜寻长度指示对位流执行的第一搜寻程序的一位流长度;自第一开始位置对位流开始第一搜寻程序以搜寻FLASH视频标签;其中当于第一搜寻长度中未找到FLASH视频标签时,设置关于接续第一搜寻程序的一第二搜寻程序的一第二开始位置,其中第一开始位置与第二开始位置是通过一时间段分离,时间段等于第一搜寻长度与一第一跳过长度的总和,其中第一跳过长度对应于第一搜寻程序;以及自第二开始位置对位流开始第二搜寻程序以搜寻FLASH视频标签。

著录项

  • 公开/公告号CN103004189A

    专利类型发明专利

  • 公开/公告日2013-03-27

    原文格式PDF

  • 申请/专利权人 联发科技(新加坡)私人有限公司;

    申请/专利号CN201080068075.3

  • 发明设计人 崔俊;

    申请日2010-07-15

  • 分类号H04N7/26;

  • 代理机构北京三友知识产权代理有限公司;

  • 代理人任默闻

  • 地址 新加坡新加坡市

  • 入库时间 2024-02-19 19:11:24

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2022-06-28

    未缴年费专利权终止 IPC(主分类):H04N21/426 专利号:ZL2010800680753 申请日:20100715 授权公告日:20151125

    专利权的终止

  • 2015-11-25

    授权

    授权

  • 2013-04-24

    实质审查的生效 IPC(主分类):H04N7/26 申请日:20100715

    实质审查的生效

  • 2013-03-27

    公开

    公开

说明书

技术领域

本发明是有关于一种位流(bitstream)中的视频标签(tag)的搜寻方法, 且特别有关于一种位流中的FLASH视频(FLASH Video,以下简称为FLV) 标签的搜寻方法及其搜寻装置。

背景技术

FLV格式通常用于媒体播放器(例如,Adobe Flash播放器)中。此外, FLV格式已广泛应用于许多视频网站中,举例而言,YouTube、tudou、56.com、 ku6.com、Sina视频等等。因此,FLV格式的支援已成为电子消费产品(例如, 数字电视、移动电话、个人数字助理(PDA))中的多媒体功能的不可或缺 的一部分。

于FLV格式的播放(playback)程序中,需要利用标签作为将分别由视 频解码器与音频解码器解码的基本单元,来撷取视频数据与音频数据。因此, 于撷取视频数据与音频数据之前,必须找到每一FLV标签的正确开始位置。 然而,由于并无定位每一FLV标签的开始位置(或相对位置)的可用开始码, 当FLV标签中发生错误时,将中断FLV格式的数据的播放程序。

因此,如何提升FLV标签的搜寻性能已成为本领域中的设计者需要解决 的重要问题。

发明内容

本发明其中一个目的在于提供一种位流中的FLASH视频标签的搜寻方法 及其搜寻装置,以解决上述问题。

本发明实施例提供一种位流中的FLASH视频标签的搜寻方法,包含:设 置第一开始位置以及关于第一搜寻程序的第一搜寻长度,其中第一搜寻长度 指示对位流执行的第一搜寻程序的位流长度;自第一开始位置对位流开始第 一搜寻程序以搜寻FLASH视频标签;其中当于第一搜寻长度中未找到FLASH 视频标签时,设置关于接续第一搜寻程序的第二搜寻程序的第二开始位置, 其中第一开始位置与第二开始位置是通过时间段分离,时间段等于第一搜寻 长度与第一跳过长度的总和,其中第一跳过长度对应于第一搜寻程序;以及 自第二开始位置对位流开始第二搜寻程序以搜寻FLASH视频标签。

本发明实施例另提供一种位流中的FLASH视频标签的搜寻装置,包含: 设置模块,用于设置第一开始位置以及关于第一搜寻程序的第一搜寻长度, 其中第一搜寻长度指示对位流执行的第一搜寻程序的位流长度;以及搜寻模 块,用于自第一开始位置对位流开始第一搜寻程序以搜寻FLASH视频标签; 其中当于第一搜寻长度中未找到FLASH视频标签时,设置模块进一步用于设 置关于紧接第一搜寻程序的第二搜寻程序的第二开始位置,其中第一开始位 置与第二开始位置是通过时间段分离,时间段等于第一搜寻长度与第一跳过 长度的总和,其中第一跳过长度对应于第一搜寻程序;以及搜寻模块进一步 用于自第二开始位置对位流开始第二搜寻程序以搜寻FLASH视频标签。

在参阅随后的通过附图解释说明的优选具体实施方式的详尽描述后,本 领域的技术人员便可了解本发明的上述或者其他发明目的。

附图说明

图1是FLV标签的数据结构的示意图。

图2是如图1所示的FLV标签中的音频数据的数据结构的示意图。

图3是如图1所示的FLV标签中的视频数据的数据结构的示意图。

图4是依本发明第一实施例的位流中的FLV标签的搜寻装置的示意图。

图5是示意如何搜寻位流中的FLV标签的示意图。

图6是依本发明第二实施例的位流中的FLV标签的搜寻装置的方块示意 图。

图7是如图4或图6所示的搜寻模块的实施范例的示意图。

图8是依本发明实施例的位流中的FLV标签的搜寻方法的范例的流程示 意图。

图9是依本发明实施例的位流中的FLV标签的搜寻方法的另一范例的流 程示意图。

图10是依本发明实施例的位流中的FLV标签的搜寻方法的又一范例的流 程示意图。

图11A是依本发明实施例的通过参考FLV标签的特定特性逐字节顺序搜 寻位流中的FLV标签的范例的流程示意图。

图11B是如图11A所示的步骤S1210的详细步骤的流程示意图。

图11C是如图11A所示的步骤S1220的详细步骤的流程示意图。

图11D是如图11A所示的步骤S1230的详细步骤的流程示意图。

具体实施方式

于说明书及权利要求书当中使用了某些词汇来指称特定的元件。所属领 域中普通技术人员应可理解,硬件制造商可能会用不同的名词来称呼同样的 元件。本说明书及权利要求书并不以名称的差异来作为区分元件的方式,而 是以元件在功能上的差异来作为区分的准则。于通篇说明书及权利要求当中 所提及的“包含”为一开放式的用语,故应解释成“包含但不限定于”。另 外,“耦接”一词在此是包含任何直接及间接的电气连接手段。因此,若文 中描述一第一装置耦接于一第二装置,则代表该第一装置可直接电气连接于 该第二装置,或通过其他装置或连接手段间接地电气连接至该第二装置。

首先,为使本发明揭示的内容易于理解,下文将简述FLV标签的数据结 构。

请参考图1,图1是FLV标签的数据结构的示意图。如图1所示,FLV 标签包含名为“标签类型”的栏位、名为“数据大小”的栏位、名为“时戳 (time stamp)”的栏位、名为“扩展时戳(time stamp extended)”的栏位、 名为“串流ID”的栏位、以及名为“数据”的栏位。此处名为“标签类型” 的栏位指示标签的类型。请注意,当对应于栏位“标签类型”的字节值(byte  value)等于第一数值(例如,8)时,其指示音频类型;对应于栏位“标签类 型”的字节值等于第二数值(例如,9)时,其指示视频类型。此外,栏位“数 据大小”指示FLV标签中的栏位“数据”的数据长度。栏位“时戳”以及“扩 展时戳”与播放时间有关。对应于栏位“串流ID”的字节值通常为0。栏位 “数据”指示FLV标签中的数据类型,例如音频数据、视频数据、或临时数据 目标(scrip data object)。

图2是如图1所示的FLV标签中的音频数据的数据结构的示意图,图3 是如图1所示的FLV标签中的视频数据的数据结构的示意图。如图2所示, 音频数据包含名为“声音格式”的子栏位、名为“声音速率”的子栏位、名 为“声音大小”的子栏位、名为“声音类型”的子栏位、以及名为“声音数 据”的子栏位。如图3所示,视频数据包含名为“帧类型(Frame Type)”的 子栏位、名为“编解码器ID”的子栏位、以及名为“视频数据”的子栏位。 由于对应于每一子栏位的类型与描述已于图2与图3中详述,故为简洁起见, 此处不另赘述。

请结合图5来参考图4,图4是依本发明第一实施例的位流中的FLV标 签的搜寻装置400的示意图,而图5是示意如何搜寻位流中的FLV标签的示 意图。如图4所示,搜寻装置400包含设置模块410与搜寻模块420。设置模 块410用于设置第一开始位置P1以及关于第一搜寻程序SR1的第一搜寻长度 L1,其中第一搜寻长度L1指示对位流BS执行的第一搜寻程序SR1的位流长 度。搜寻模块420用于自第一开始位置P1(通过设置模块410决定)对位流 BS开始第一搜寻程序SR1以搜寻FLV标签。当于第一搜寻长度L1中未找到 FLV标签时,设置模块410进一步用于设置关于紧接第一搜寻程序SR1的第 二搜寻程序SR2的第二开始位置P2,其中第一开始位置P1与第二开始位置 P2是通过时间段T1分离,时间段T1等于第一搜寻长度L1与第一跳过(skip) 长度L1’的总和,其中第一跳过长度L1’对应于第一搜寻程序SR1;以及搜 寻模块420进一步用于自第二开始位置P2对位流BS开始第二搜寻程序SR2 以搜寻FLV标签。

此外,当于第一搜寻长度L1中未找到FLV标签时,设置模块410进一 步用于设置关于第二搜寻程序SR2的第二搜寻长度L2,其中第二搜寻长度 L2指示对位流BS执行的第二搜寻程序SR2的位流长度。因此,当于第二搜 寻长度L2中未找到FLV标签时,设置模块410进一步用于设置关于紧接第 二搜寻程序SR2的第三搜寻程序SR3的第三开始位置P3,其中第二开始位置 P2与第三开始位置P3是通过时间段T2分离,时间段T2等于第二搜寻长度 L2与第二跳过长度L2’的总和,其中第二跳过长度L2’对应于第二搜寻程 序SR2。以此类推,可轻易推导出后续的搜寻程序。举例而言,当于第n个 搜寻长度Ln中未找到FLV标签时,设置模块410进一步用于设置关于第(n+1) 个搜寻程序SR(n+1)的第(n+1)个搜寻长度L(n+1),其中第(n+1)个搜寻长度 L(n+1)指示对位流BS执行的第(n+1)个搜寻程序SR(n+1)的位流长度。

请注意,于图5所示的实施例中,第二跳过长度L2’设置为较第一跳过 长度L1’大,第三跳过长度L3’设置为较第二跳过长度L2’大,等等。但 此处不应视作本发明的限制。于其他实施例中,举例而言,第二跳过长度L2’ 可设置为实质上等于第一跳过长度L1’,等等。当然,熟悉本案的人士可轻 易理解,举凡援依本发明的精神对上述跳过长度L1’~Ln’所做的各种变化, 皆应涵盖于权利要求书内。

此外,于本实施例中,第一搜寻长度L1(或第二搜寻长度L2)可设置为 等于视频标签大小与音频标签大小的总和,其中视频标签大小与视频格式相 关,而音频标签大小与音频格式相关。于其他实施例中,搜寻长度L1~Ln可 设置为大于或小于视频标签大小与音频标签大小的总和,其亦应涵盖于权利 要求书内。此外,于本实施例中,当位流BS中发生位流错误时,可将第一开 始位置P1设置为错误位置,但此处不应视作本发明的限制。

图6是依本发明第二实施例的位流中的FLV标签的搜寻装置600的方块 示意图。搜寻装置600的结构类似于图4所示的搜寻装置400,两者主要区别 在于搜寻装置600更包含位于设置模块610与搜寻模块620之间的数据缓冲 器630,用于缓冲如第一搜寻长度L1指示的位流BS的一部分。因此,搜寻 模块620自第一开始位置P1对位流BS的已缓冲部分BS’开始第一搜寻程序 SR1以搜寻FLV标签。

请注意,搜寻模块420/620可依据FLV标签的特定特性逐字节(byte by  byte)顺序搜寻位流BS(或位流BS的已缓冲部分BS’)中的FLV标签。下 文将作出进一步描述。

图7是如图4或图6所示的搜寻模块420/620的实施范例的示意图。于本 实施例中,搜寻模块420/620包含,但不限于,第一检测单元710、第二检测 单元720、第三检测单元730、以及第四检测单元740。请同时参考图1与图 2,第一检测单元710用于检测对应于位流中的标签类型的字节值是否等于第 一数值(例如,8)(指示为音频类型)或第二数值(例如,9)(指示为视 频类型)。第二检测单元720用于检测对应于时戳的字节值是否大于临界值 TH以及当对应于标签类型的字节值等于第一数值(例如,8)或第二数值(例 如,9)时,依据检测结果决定扩展时戳是否包含至少一个等于第一预定值(例 如,0)的字节值。请注意,第二检测单元720可通过第一决定子单元722与 第二决定子单元724实现。当对应于时戳的字节值不大于临界值TH时,第一 决定子单元722用于决定对应于扩展时戳的字节值是否等于第一预定值(例 如,0)。当对应于扩展时戳的字节值等于第一预定值(例如,0)时,第二 决定子单元724用于决定对应于串流ID的字节值是否等于第二预定值(例如, 0),以及当对应于时戳的字节值大于临界值TH时,用于决定对应于串流ID 的字节值是否等于第二预定值(例如,0)。

此外,当对应于串流ID的字节值等于第二预定值(例如,0)时,第三 检测单元730用于决定对应于位流中的标签类型的字节值是否等于第一数值 (例如,8)。当对应于标签类型的字节值等于第一数值(例如,8)时,第四 检测单元740用于决定是否已接收到音频信息,当已接收到音频信息时,用 于决定对应于音频信息的字节值是否等于已接收的音频信息,以及当对应于 音频信息的字节值等于已接收的音频信息时,用于指示已找到关于音频格式 的FLV标签。

请注意,当对应于串流ID的字节值等于第二预定值(例如,0)时,如 图7所示的第三检测单元730亦可用于决定对应于位流中的标签类型的字节 值是否等于第二数值(例如,9);当对应于标签类型的字节值等于第二数值 (例如,9)时,如图7所示的第四检测单元740可用于决定是否已接收到编 解码器ID,当已接收到编解码器ID时,用于决定对应于编解码器ID的字节 值是否等于已接收的编解码器ID,以及当对应于编解码器ID的字节值等于已 接收的编解码器ID时,用于指示已找到关于视频格式的FLV标签。

请注意,于某些实施例中,临界值TH可设置为0xffffff,其指示对应于 时戳的最大字节值(3个字节或24个位)。然而,其并非本发明的限制。于 其他实施例中,临界值TH可设置为小于0xffffff,且当对应于时戳的字节值 不大于临界值TH时,第一决定子单元722可用于决定对应于时戳与扩展时戳 的剩余未利用部分的组合的字节值是否等于第一预定值(例如,0)。

请参考图8,图8是依本发明实施例的位流中的FLV标签的搜寻方法的 范例的流程示意图。请注意,若可获得大体相同的结果,后续步骤并非限制 于依据图8所示的确切顺序执行。搜寻方法包含,但不限于,下列步骤:

S810:设置第一开始位置以及关于第一搜寻程序的第一搜寻长度,其中 第一搜寻长度指示对位流执行的第一搜寻程序的位流长度。

S820:自第一开始位置对位流开始第一搜寻程序以搜寻FLV标签。

S830:是否找到FLV标签。当找到FLV标签,转至步骤S840;否则, 转至步骤S850。

S840:依据第一搜寻长度中找到的FLV标签来播放位流。

S850:设置关于接续第一搜寻程序的第二搜寻程序的第二开始位置,其 中第一开始位置与第二开始位置是通过时间段分离,时间段等于第一搜寻长 度与第一跳过长度的总和,其中第一跳过长度对应于第一搜寻程序。

S860:自第二开始位置对位流开始第二搜寻程序以搜寻FLV标签。

由于于阅读关于搜寻装置400的上述描述之后,熟悉本案的人士可轻易 理解图8中的步骤的细节,故为简洁起见,此处不另赘述。此处步骤S810与 S850可通过设置模块410执行,而步骤S820与S860可通过搜寻模块420执 行。

图9是依本发明实施例的位流中的FLV标签的搜寻方法的另一范例的流 程示意图。请注意,若可获得大体相同的结果,后续步骤并非限制于依据图9 所示的确切顺序执行。搜寻方法包含,但不限于,下列步骤:

S810:设置第一开始位置以及关于第一搜寻程序的第一搜寻长度,其中 第一搜寻长度指示对位流执行的第一搜寻程序的位流长度。

S820:自第一开始位置对位流开始第一搜寻程序以搜寻FLV标签。

S830:是否找到FLV标签。当找到FLV标签,转至步骤S840;否则, 转至步骤S850。

S840:依据第一搜寻长度中找到的FLV标签来播放位流。

S850:设置关于接续第一搜寻程序的第二搜寻程序的第二开始位置,其 中第一开始位置与第二开始位置是通过时间段分离,时间段等于第一搜寻长 度与第一跳过长度的总和,其中第一跳过长度对应于第一搜寻程序。

S860:自第二开始位置对位流开始第二搜寻程序以搜寻FLV标签。

S910:是否找到FLV标签。当找到FLV标签,转至步骤S840;否则, 转至步骤S920。

S920:设置关于第二搜寻程序的第二搜寻长度,其中第二搜寻长度指示 对位流执行的第二搜寻程序的位流长度。

S930:设置关于紧接第二搜寻程序的第三搜寻程序的第三开始位置,其 中第二开始位置与第三开始位置是通过时间段分离,时间段等于第二搜寻长 度与第二跳过长度的总和,其中第二跳过长度对应于第二搜寻程序。

图9中所示的步骤类似于图8所示的步骤,而两者主要区别在于图9中 所示的步骤进一步包含步骤S920与S930,分别用于当于第一搜寻长度中未找 到FLV标签时,设置关于第二搜寻程序的第二搜寻长度,以及当于第二搜寻 长度中未找到FLV标签时,设置关于紧接第二搜寻程序的第三搜寻程序的第 三开始位置。

图10是依本发明实施例的位流中的FLV标签的搜寻方法的又一范例的流 程示意图。请注意,若可获得大体相同的结果,后续步骤并非限制于依据图 10所示的确切顺序执行。搜寻方法包含,但不限于,下列步骤:

S1010:缓冲通过第一搜寻长度指示的位流的一部分。

S810:设置第一开始位置以及关于第一搜寻程序的第一搜寻长度,其中 第一搜寻长度指示对位流执行的第一搜寻程序的位流长度。

S1020:自第一开始位置对位流的已缓冲部分开始第一搜寻程序以搜寻 FLV标签。

S830:是否找到FLV标签。当找到FLV标签,转至步骤S840;否则, 转至步骤S850。

S840:依据第一搜寻长度中找到的FLV标签来播放位流。

S850:设置关于接续第一搜寻程序的第二搜寻程序的第二开始位置,其 中第一开始位置与第二开始位置是通过时间段分离,时间段等于第一搜寻长 度与第一跳过长度的总和,其中第一跳过长度对应于第一搜寻程序。

S860:自第二开始位置对位流开始第二搜寻程序以搜寻FLV标签。

图10中所示的步骤类似于图8所示的步骤,而两者主要区别在于图10 中所示的步骤进一步包含步骤S1010,用于缓冲通过第一搜寻长度指示的位流 的一部分,以及将原本图8所示的步骤S820替换为步骤S1020。请注意,于 图6所示的上述实施例中亦已详细阐述步骤S1010与S1020的作业。

请注意,上述流程图的步骤仅用于说明本发明的目的,而并非本发明的 限定。熟悉本案的人士应可理解,如图8、图9、以及图10所示的方法可包 含其他中间步骤或多个步骤可合成单个步骤,上述依本发明的精神所做的等 效变化与修饰,皆应涵盖于权利要求书内。举例而言,图8或图9中所示的 步骤S820或图10中所示的步骤S1020的执行可依据FLV标签的特定特性逐 字节顺序搜寻位流中的FLV标签,以及可进一步包含多个详细步骤。请参考 图11A,图11A是依本发明实施例的通过参考FLV标签的特定特性逐字节顺 序搜寻位流中的FLV标签的详细步骤的流程示意图。搜寻方法包含,但不限 于,下列步骤:

S1110:检测对应于位流中的标签类型的字节值是否等于第一数值(指示 音频类型)或第二数值(指示视频类型)。

S1120:检测对应于时戳的字节值以及检测对应于扩展时戳的字节值。

S1130:当对应于标签类型的字节值等于第一数值时,决定是否已找到关 于音频格式的FLV标签。

S1140:当对应于标签类型的字节值等于第二数值时,决定是否已找到关 于视频格式的FLV标签。

图11B是如图11A所示的步骤S1120的详细步骤的流程示意图,包含下 列步骤:

S1121:当对应于时戳的字节值不大于临界值时,决定对应于扩展时戳的 字节值是否等于第一预定值。

S1122:当对应于扩展时戳的字节值等于第一预定值时,决定对应于串流 ID的字节值是否等于第二预定值。

S1123:当对应于时戳的字节值大于临界值时,决定对应于串流ID的字 节值是否等于第二预定值。

图11C是如图11A所示的步骤S1130的详细步骤的流程示意图,包含下 列步骤:

S1131:当对应于串流ID的字节值等于第二预定值时,决定对应于位流 中的标签类型的字节值是否等于第一数值。

S1132:当对应于标签类型的字节值等于第一数值时,决定是否已接收到 音频信息。

S1133:当已接收到音频信息时,决定对应于音频信息的字节值是否等于 已接收的音频信息。

S1134:当对应于音频信息的字节值等于已接收的音频信息时,指示已找 到关于音频格式的FLV标签。

图11D是如图11A所示的步骤S1140的详细步骤的流程示意图,包含下 列步骤:

S1141:当对应于串流ID的字节值等于第二预定值时,决定对应于位流 中的标签类型的字节值是否等于第二数值。

S1142:当对应于标签类型的字节值等于第二数值时,决定是否已接收到 编解码器ID。

S1143:当已接收到编解码器ID时,决定对应于编解码器ID的字节值是 否等于已接收的编解码器ID。

S1144:当对应于编解码器ID的字节值等于已接收的编解码器ID时,指 示已找到关于视频格式的FLV标签。

请注意,上述流程图的步骤仅用于说明本发明的目的,而并非本发明的 限定。熟悉本案的人士应可理解,如图8、图9、图10、以及图11A-图11D 所示的方法可包含其他中间步骤或多个步骤可合成单个步骤,上述依本发明 的精神所做的等效变化与修饰,皆应涵盖于权利要求书内。

上述实施例仅用于说明本发明的目的,而并非本发明的限定。简言之, 本发明提供一种位流中的FLV标签的搜寻方法及其搜寻装置。通过将本发明 揭露的跳过长度插入每一搜寻程序中,可较轻易、较快速地找到FLV标签来 撷取视频数据与音频数据。因此,当FLV标签中发生错误时,可不停止地播 放FLV格式的数据的播放程序。

以上所述仅为本发明的较佳实施例,举凡熟悉本案的人士援依本发明的 精神所做的等效变化与修饰,皆应涵盖于权利要求书内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号