Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD, DEVICE AND MOBILE TERMINAL FOR PROCESSING FAST FORWARD/FAST BACKWARD DURING VIDEO PLAYING
Document Type and Number:
WIPO Patent Application WO/2012/092725
Kind Code:
A1
Abstract:
A method, device and mobile terminal for processing fast forward/fast backward during video playing are disclosed in the present invention. The method includes: previously obtaining a playing start time of every I frame in a video file; successively skipping to the playing start time of a next I frame during a fast forward operation; successively skipping to the playing start time of a previous I frame during a fast backward operation. The present invention can enhance user experience.

Inventors:
LI PENG (CN)
Application Number:
PCT/CN2011/071650
Publication Date:
July 12, 2012
Filing Date:
March 09, 2011
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
ZTE CORP (CN)
LI PENG (CN)
International Classes:
H04N7/26
Foreign References:
CN101841692A2010-09-22
CN1873820A2006-12-06
CN101635847A2010-01-27
Attorney, Agent or Firm:
KANGXIN PARTNERS, P.C. (CN)
北京康信知识产权代理有限责任公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1. 一种视频播放时快进快退处理方法, 包括:

预先获取视频文件中每一个 I帧的播放开始时间;

在执行快进操作时, 依次跳到下一个 I帧的播放开始时间; 在执 行快退操作时, 依次跳到前一个 I帧的播放开始时间。

2. 根据权利要求 1所述的方法, 其中,

在获取到所述视频文件中每一个 I帧的播放开始时间之后, 将所 述每一个 I帧的播放开始时间生成 I帧索引表, 并保存在内存緩冲中; 在执行快进操作时, 通过读取所述 I帧索引表依次跳到下一个 I 帧的播放开始时间; 在执行快退操作时, 通过读取所述 I帧索引表依 次兆到前一个 I帧的播放开始时间。

3. 根据权利要求 2所述的方法, 其中, 所述 I帧索引表中还保存有所述 视频文件中的 I帧的总个数。

4. 根据权利要求 1至 3中任一项所述的方法, 其中, 在所述视频文件的 格式为 3gp或 MP4时, 获取视频文件中每一个 I帧的播放开始时间包 括:

读取所述视频文件的存储了每个 I帧的序号 STSS的内容获取到所 述视频文件中每一个 I帧的帧序号, 读取所述视频文件的存储每个帧 的时间信息 STTS的内容获取到所述视频文件中每一个 I帧的播放开始 时间。

5. 根据权利要求 1所述的方法, 其中,

在执行快进操作时, 在跳到的 I帧为所述视频文件中的最后一个 I 帧时, 如果继续执行快进操作则播放结束; 在执行快退操作时, 如果 跳到的 I站为所述视频文件中的第一个 I帧, 则从头开始播放。

6. —种视频播放时快进快退处理装置, 包括:

视频解析模块, 设置为获取视频文件中每一个 I帧的播放开始时 间; 处理模块, 设置为在执行快进操作时, 依次跳到下一个 I帧的播 放开始时间; 在执行快退操作时, 依次跳到前一个 I帧的播放开始时 间。

7. 根据权利要求 6所述的装置, 其中,

所述视频解析模块, 设置为在获取到所述视频文件中每一个 I帧 的播放开始时间之后, 将所述每一个 I帧的播放时间生成 I帧索引表, 并保存在内存緩冲中;

所述处理模块, 设置为在执行快进操作时, 通过读取所述 I帧索 引表依次跳到下一个 I帧的播放开始时间; 在执行快退操作时, 通过 读取所述 I帧索引表依次跳到前一个 I帧的播放开始时间。

8. 根据权利要求 7所述的装置, 其中, 所述 I帧索引表中还保存有所述 视频文件中的 I帧的总个数。

9. 根据权利要求 6所述的装置, 其中, 在所述视频文件的格式为 3gp或 MP4时, 所述视频解析模块还设置为读取所述视频文件的 STSS的内 容获取到所述视频文件中每一个 I帧的帧序号, 读取所述视频文件的 STTS的内容获取到所述视频文件中每一个 I帧的播放开始时间。

10. —种移动终端, 其中, 包括权利要求 6至 9中任一项所述的视频播放 时快进快退处理装置。

Description:
视频番放时 ' 进 ' 退处理方法、 装置以及移动终端 技术领域 本发明涉及通信领域, 具体而言, 涉及一种视频播放时快进快退处理方 法、 装置以及移动终端。 背景技术 目前, 广泛使用的视频文件主要有 I帧、 P帧、 B帧三种帧类型。 下面 对此分别进行说明:

I帧 (也称为帧内编码帧) 是一种自带全部信息的独立帧, 视频序列中 的第一个帧始终都是 I帧, 其无需参考其它图像便可独立进行解码。 如果所 传输的比特流遭到破坏,则需要将 I帧用作新查看器的起始点或重新同步点。

P帧 (也成为帧间预测编码帧) 需要参考前面的 I帧和 /或 P帧的不同部 分才能进行编码。 与 I帧相比, P帧通常占用更少的数据位, 但由于 P帧对 前面的 P和 I参考帧有着复杂的依赖性, 因此对传输错误非常敏感。

B帧 (也称为双向预测编码帧) 需要同时以前面的帧和后面的帧作为参 考帧。 目前, 对正在播放视频执行快进、 快退功能的处理有如下几种: 一种是在快进、 快退时, 一边快进一边解码, 这种方法需要在快进快退 时逐个帧的去分析视频的内容, 然后解码, 导致速度' 1"曼。 其改进的方法是在 快进、 快退时分析每个帧的类型, 如果这个帧是 I帧才解码, 如果不是则继 续快进或者快退。 然而, 这样操作的缺陷是操作速度比较慢, 一般适用于 PC 或者处理器比较高端的设备。 另一种方法是按照用户的快进、 快退操作跳到进度条指定的时间点, 然 后从这个时间点寻找最近的一个 I帧位置, 然后从这个 I帧位置出开始解码。 这种方法操作速度比较快, 但是进度条时间并不准确。 因为 I帧之间的间隔 并没有一个标准, 所以经常会产生播放时间没有停留在搜索结束 时的位置, 进度条就会向前或者向后跳跃的现象。 而产生这种跳跃的原因就是因为快进 完成后视频解码器需要重新解码, 而这个解码必须从最近的一个 I帧开始, 而用户快进、 快退的结束时间往往是一个 P帧、 或者 B帧, 所以解码器需要 在用户快进、 快退的基础上重新搜索到最近的一个 I帧的位置, 而两个 I帧 之间的间隔往往需要几秒钟甚至 10几秒钟时间。 因此, 用户能明显感觉到 搜索结束后进度条产生的明显跳跃现象, 导致影响用户的视觉体验。 综上可知, 现有技术中视频文件的快进快退的处理均存在 问题。 发明内容 本发明的主要目的在于提供一种视频播放时快 进快退处理方法、 装置以 及移动终端, 以至少解决上述问题之一。 根据本发明的一个方面, 提供了一种视频播放时快进快退处理方法, 包 括: 预先获取视频文件中每一个 I帧的播放开始时间; 在执行快进操作时, 依次跳到下一个 I帧的播放开始时间; 在执行快退操作时, 依次跳到前一个 I帧的播放开始时间。 优选地, 在获取到所述视频文件中每一个 I帧的播放开始时间之后, 将 所述每一个 I帧的播放开始时间生成 I帧索引表, 并保存在内存緩冲中; 在 执行快进操作时, 通过读取所述 I帧索引表依次跳到下一个 I帧的播放开始 时间; 在执行快退操作时, 通过读取所述 I帧索引表依次跳到前一个 I帧的 播放开始时间。 优选地, 所述 I帧索引表中还保存有所述视频文件中的 I帧的总个数。 优选地, 在所述视频文件的格式为 3gp或 MP4时, 获取视频文件中每一 个 I帧的播放开始时间包括: 读取所述视频文件的 STSS的内容获取到所述 视频文件中每一个 I帧的帧序号, 读取所述视频文件的 STTS的内容获取到 所述视频文件中每一个 I帧的播放开始时间。 优选地, 在执行快进操作时, 在跳到的 I帧为所述视频文件中的最后一 个 I帧时, 如果继续执行快进操作则播放结束; 在执行快退操作时, 如果跳 到的 I站为所述视频文件中的第一个 I帧, 则从头开始播放。 根据本发明的另一个方面,还提供了一种视频 播放时快进快退处理装置, 包括: 视频解析模块, 设置为获取视频文件中每一个 I帧的播放开始时间; 处理模块, 设置为在执行快进操作时, 依次跳到下一个 I帧的播放开始时间; 在执行快退操作时, 依次跳到前一个 I帧的播放开始时间。 优选地, 所述视频解析模块, 设置为在获取到所述视频文件中每一个 I 帧的播放开始时间之后, 将所述每一个 I帧的播放时间生成 I帧索引表, 并 保存在内存緩冲中; 所述处理模块, 设置为在执行快进操作时, 通过读取所 述 I帧索引表依次跳到下一个 I帧的播放开始时间; 在执行快退操作时, 通 过读取所述 I帧索引表依次跳到前一个 I帧的播放开始时间。 优选地, 所述 I帧索引表中还保存有所述视频文件中的 I帧的总个数。 优选地, 在所述视频文件的格式为 3gp或 MP4时, 所述视频解析模块还 设置为读取所述视频文件的 STSS的内容获取到所述视频文件中每一个 I帧 的帧序号, 读取所述视频文件的 STTS的内容获取到所述视频文件中每一个 I帧的播放开始时间。 根据本发明的另一个方面, 还提供了一种移动终端, 包括上述的视频播 放时快进快退处理装置。 通过本发明, 解决了现有技术中视频文件快进快退处理中存 在的问题, 提高了用户体验。 附图说明 此处所说明的附图用来提供对本发明的进一步 理解, 构成本申请的一部 分, 本发明的示意性实施例及其说明用于解释本发 明, 并不构成对本发明的 不当限定。 在附图中: 图 1是根据本发明实施例的视频播放时快进快退 理方法的流程图; 图 2是根据本发明实施例的视频播放时快进快退 理装置的结构框图; 图 3是根据本发明实施例的中所涉及的 3gp、 MP4文件基本格式的示意 图; 图 4是根据本发明实施例的手机播放器的结构框 ; 图 5是根据本发明实施例 I帧索引表格式的示意图; 图 6是根据本发明实施例生成 I帧时间緩冲区的流程图; 图 7是根据本发明实施例进行快进、 快退操作的流程图。 具体实施方式 下文中将参考附图并结合实施例来详细说明本 发明。 需要说明的是, 在 不冲突的情况下, 本申请中的实施例及实施例中的特征可以相互 组合。 在本实施例中, 提供了一种视频播放时快进快退处理方法, 该方法可以 应用于需要进行快进快退处理的终端中, 例如, 移动终端。 图 1是根据本发 明实施例的视频播放时快进快退处理方法的流 程图, 如图 1所示, 该流程包 括以下步 4聚:

S 102, 预先获取视频文件中每一个 I帧的播放开始时间;

S 104, 在执行快进操作时, 依次跳到下一个 I帧的播放开始时间; 在执 行快退操作时, 依次跳到前一个 I帧的播放开始时间。 通过上述步骤, 可以在进行快进快退处理之前, 获取到每一个 I帧的播 放开始时间, 从而在快进快退是直接跳到下一个 I帧的播放开始时间, 与现 有的两种相比, 在操作速度比较快的前提下避免了出现跳跃的 问题, 从而提 高了用户体验。 优选的, 在实施时, 可以在获取到视频文件中每一个 I帧的播放开始时 间之后, 将每一个 I帧的播放开始时间生成 I帧索引表, 并保存在内存緩冲 中; 在执行快进操作时, 通过读取 I帧索引表依次跳到下一个 I帧的播放开 始时间; 在执行快退操作时, 通过读取 I帧索引表依次跳到前一个 I帧的播 放开始时间。 通过索引表的方式实现比较容易, 当然也可以釆用其他的方式 来记录获取到的每一个 I帧的播放开始时间。 优选的, 为了防止在搜索时访 问内存越界, 在该 I帧索引表中还可以保存视频文件中的 I帧的总个数。 在实施时, 可以根据视频文件的格式的不同来获取每一个 I帧的播放开 始时间。 需要说明的是, 无论通过哪种方式来获取每个 I帧的播放开始时间 均不影响本实施例的实施例, 以下以举例的方式进行说明。 例 ^, 在视频文 件的格式为 3gp或 MP4时,可以通过读取视频文件的 STSS的内容获取到该 视频文件中每一个 I帧的帧序号, 并读取该视频文件的 STTS的内容获取到 该视频文件中每一个 I帧的播放开始时间。 优选的, 在实施时, 为了进一步提高用户体验, 还可以增加最后一个 I 帧和第一个 I帧的判断。 例如, 在执行快进操作时, 当兆到的 I帧为视频文 件中的最后一个 I帧时, 如果用户继续执行快进操作则播放结束; 在执行快 退操作时, 如果跳到的 I站为视频文件中的第一个 I帧, 则从头开始播放。 在本实施例中, 还提供了一种视频播放时快进快退处理装置, 该装置可 以应用于移动终端中, 该装置用于实现上述实施例及其优选实施方式 , 已经 进行过说明的不再赘述, 下面仅对该装置中涉及到的模块进行说明。 图 2是 根据本发明实施例的视频播放时快进快退处理 装置的结构框图,如图 2所示, 该结构包括: 视频解析模块 22和处理模块 24, 下面对此进行说明。 视频解析模块 22, 设置为获取视频文件中每一个 I帧的播放开始时间; 处理模块 24连接至视频解析模块 22, 该模块设置为在执行快进操作时, 依 次兆到下一个 I帧的播放开始时间; 在执行快退操作时, 依次兆到前一个 I 帧的播放开始时间。 优选的, 视频解析模块 22, 设置为在获取到视频文件中每一个 I帧的播 放开始时间之后, 将每一个 I帧的播放时间生成 I帧索引表, 并保存在内存 緩冲中; 处理模块 24, 设置为在执行快进操作时, 通过读取 I帧索引表依次 跳到下一个 I帧的播放开始时间; 在执行快退操作时, 通过读取上述 I帧索 引表依次跳到前一个 I帧的播放开始时间。 优选的, I帧索引表中还保存有视频文件中的 I帧的总个数。 优选的, 在视频文件的格式为 3gp或 MP4时, 视频解析模块 22用于读 取视频文件的 STSS的内容获取到视频文件中每一个 I帧的帧序号, 读取视 频文件的 STTS的内容获取到视频文件中每一个 I帧的播放开始时间。 通过本实施例, 在播放视频前, 提前得到 I帧的信息, 并生成一个 I帧 索引表, 然后在快进、 快退时根据这个索引表来操作。 从而克服了现有技术 中需要逐帧解析而导致的速度很慢的问题, 以及根本不解析直接快进到指定 时间然后在重新查找 I帧而导致的跳跃的问题, 提升了快进、 快退的速度和 精确性, 提高了用户的体验。 以下以 3gp和 MP4格式的视频文件为例进行说明。 为了更好的进行说明,首先对 3gp和 MP4的这两种视频文件格式进行分 析, 这两种视频文件格式比较近似。 图 3是才艮据本发明实施例的中所涉及的 3gp、 MP4文件基本格式的示意图, 3gp和 MP4格式的视频文件均包括文件 类型、 视频头信息、 视频数据区三部分。 在 3gp和 MP4文件中, 所有的配置 信息和数据信息按照原子树的模式配置。 配置根原子是 moov原子, 数据根 原子是 mdat原子。 moov原子中有很多音频 /视频轨 (trak ) 原子, trak原子 用来表示不同的音视频具体信息。 表示音频存放信息的 trak是音频轨, 表示 视频存放信息的是视频轨。 其中, 每个 trak中的子原子 hdlr原子可以识别这 帧是视频帧还是音频帧, 如果 Hdlr为 "vide"代表视频帧, 若 Hdlr为 "soun"则 代表音频帧。 每个 trak中有两个子原子 STSS和 STTS , STSS这个配置块主要描述了 该视频的所有 I帧的帧序号。 下面对此进行说明。

STSS 原子

00 00 00 24 长度 73 74 73 73 STSS标示

00 00 00 00 版本信息

00 00 00 05 I帧总个数

00 00 00 01 I帧索引

00 00 00 1F 00 00 00 3D 00 00 01 5B

00 00 02 79

STTS这个配置块描述了该视频所有帧的播放 间, 单位是毫秒。 下面 对此进行说明。

STTS 原子 00 00 E7 90 长度

73 74 74 73 STTS标示

00 00 00 00 版本信息

00 00 1C F0 总个数

00 00 OB BB 这一帧的帧时间长度

00 00 00 02 接下来两帧同一时间长度

00 00 11 97 这两帧的帧时间长度

00 00 00 01

00 00 OB BB

00 00 00 01 00 00 11 9A 在本实施例中, 视频开始播放前才艮据读取 STSS的内容得到该视频共有 多少个 I帧。 然后根据 I帧的数量分配一个内存緩冲。 读取 STTS的内容, 并根据 I帧的序号, 计算出每个 I帧的播放时间。 在用户需要快进或者快退 时, 才艮据内存緩冲中 I帧的位置, 每次向前, 或者向后时跳到某个 I帧来确 定时间。 这样每次用户看到的时间都是一个 I帧的时间, 解码器可以从这个 时间开始重新解码。 通过本优选实施例, 在播放视频前, 提前得到 I帧的信息, 并生成一个 I帧索引表, 然后在快进、 快退时根据这个索引表来操作, 这样可以提升快 进、 快退的速度和精确性, 提升了用户体验, 尤其是在低端手机上可以有效 的提升用户体验。 下面以手机上的播放器为例进行说明。 图 4是 居本发明实施例的手机播放器的结构框图, 如图 4所示, 该手 机播放器包括: 视频解析模块 10、 视频解码模块 20、 播放器 UI模块 30、 播 放器总控模块 40 (其中, 播放器总控模块、 播放器 UI模块、 视频解码模块 实现了上述处理模块的功能), 其中播放器总控模块 40负责调用视频解析模 块 10来读取视频文件相关配置信息, 完成初始化工作。 初始化完成后, 播 放器总控模块, 控制视频解析模块 10来读取视频数据, 并调用视频解码模 块 20来播放数据, 同时播放器 UI模块 30以固定的周期来读取视频播放时 间, 来刷新播放器界面。 在本实施例中, 可以通过软件方法在播放视频前, 利用视频解析模块 10 提前得到 I帧的信息, 并生成一个 I帧索引表, 图 5是根据本发明实施例 I 帧索引表格式的示意图, 如图 5所示, 该表包括 I帧的数目, 以及各个 I帧 的播放时间, 然后当用户对视频文件进行在快进、 快退时, 根据这个索引表 来操作, 这样可以大大提升快进、 快退的速度和精确性, 提升用户体验。 图 6是根据本发明实施例生成 I帧时间緩冲区的流程图(需要说明的是, 在图 6中并没有涉及到模块, 在以下步骤的描述中结合了模块进行说明), 该流程包括如下步骤: 步骤 S601 , 播放器总控模块 40调用视频解析模块 10来分析视频, 视频 解析模块 10解析视频文件的内容, 得到视频 trak。 步骤 S602,视频解析模块 10解析视频 trak,得到该视频的 STSS和 STTS 的具体数据, 并把这些数据读入内存。 步骤 S603 , 视频解析模块 10分析 STSS的内容, 得到该视频共有多少 个 I帧, 然后根据 I帧的数量分配一个内存緩冲。 步骤 S604, 视频解析模块 10才艮据解析的内容读取 STTS的内容, 得到 每个帧的时间长度。 步骤 S605 , 视频解析模块 10根据 I帧的序号, 利用 STTS的每帧时间 长度信息, 计算出每个 I帧的播放开始时间。 步骤 S606,视频解析模块 10把 I帧的总个数和所有 I帧的播放时间保存 到内存緩冲中。 生成 I帧索引表, 保存总个数的目的是在搜索时避免访问内 存越界。 在生成 I帧时间緩冲区后, 用户可以对文件进行快进或快退的操作, 图

7是根据本发明实施例进行快进、 快退操作的流程图, 该流程包括如下步骤: 步骤 S701 , 执行快进或者快退操作。 判断当前 I帧是否为用户操作方向上的最后一个 I帧, 如果不是, 执行 步骤 S702, 如果是, 则执行步骤 S704。 步骤 S702, 根据当前时间得到用户操作方向下一个 I帧在 I帧索引表中 的索引, 并获得下一个 I帧的时间, 用户快进时间等于该 I帧时间时, 则播 放器 UI模块 30刷新进度条。 步骤 S703 , 快进到下一个 I帧的时间, 并通知播放器 UI模块 30绘制进 度条。 步骤 S704, 如果是快退操作, 并且如果当前 I帧是第一帧则从头开始播 放, 如果是快进操作, 并且如果当前 I帧是最后一帧, 则结束播放。 如果不是最后一个 I帧, 则继续处理。 经过以上的操作, 每次用户看到的时间都是一个 I帧的时间, 所以也不 会产生操作结束后时间跳跃现象。 这样就可以较为有效的提升用户在操作时 的视觉体验。 显然, 本领域的技术人员应该明白, 上述的本发明的各模块或各步骤可 以用通用的计算装置来实现, 它们可以集中在单个的计算装置上, 或者分布 在多个计算装置所组成的网络上, 可选地, 它们可以用计算装置可执行的程 序代码来实现, 从而可以将它们存储在存储装置中由计算装置 来执行, 或者 将它们分别制作成各个集成电路模块, 或者将它们中的多个模块或步骤制作 成单个集成电路模块来实现。 这样, 本发明不限制于任何特定的硬件和软件 结合。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本 领域的技术人员来说, 本发明可以有各种更改和变化。 凡在本发明的^"神和 原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。