显示设备和音画同步方法与流程

文档序号:31339531发布日期:2022-08-31 09:44阅读:221来源:国知局
显示设备和音画同步方法与流程

1.本技术涉及显示设备技术领域,尤其涉及一种显示设备和音画同步方法。


背景技术:

2.显示设备是指能够输出具体显示画面的终端设备,随着显示设备的快速发展,显示设备的功能将越来越丰富,性能也越来越强大,可实现双向人机交互功能,集影音、娱乐、数据等多种功能于一体,用于满足用户多样化和个性化需求。
3.用户可以利用显示设备来观看网络中各种媒资资源。为了提高用户的观看体验,显示设备可以对播放的媒资进行音画同步,使得视频数据和音频数据能够同步播放。显示设备可以遍历所有视频数据和音频数据的时间戳(presentation timestamp,pts),令具有相同时间戳的视频数据和音频数据在同一时刻被播放出来,从而实现音画同步。同时可以按照时间戳的顺序,依次播放视频数据和音频数据,以使用户观看媒资。
4.考虑到视频数据可能存在黑边的情况,显示设备还可以对视频数据的黑边进行检测,从而播放黑边以外的正常图像部分。然而相关技术中,黑边检测过程一般在音画同步处理之后进行,由于黑边检测需要消耗一定时间,会使得视频数据显示滞后,从而造成音画同步失效,视频数据和音频数据不再同步播放,给用户的体验性较差。


技术实现要素:

5.本技术提供了一种显示设备和音画同步方法。以解决相关技术中,黑边检测使得视频数据显示滞后,视频数据和音频数据不再同步播放,给用户的体验性较差的问题。
6.第一方面,本技术提供一种显示设备,包括显示器、音频输出接口和控制器。其中,音频输出接口被配置为连接音频设备;控制器被配置为执行以下步骤:
7.获取视频数据和音频数据,并对所述视频数据和所述音频数据进行解码;
8.对第一视频数据进行黑边检测,得到黑边检测结果,并基于所述第一视频数据获取音画同步时刻,所述第一视频数据为解码后的前预设数量帧视频数据;
9.基于所述音画同步时刻和所述黑边检测结果,对解码后的视频数据进行第一音画同步处理并控制显示器进行显示,以及,基于所述音画同步时刻对解码后的音频数据进行第二音画同步处理并控制音频设备进行播放。
10.第二方面,本技术提供一种音画同步方法,应用于显示设备,方法包括:
11.获取视频数据和音频数据,并对所述视频数据和所述音频数据进行解码;
12.对第一视频数据进行黑边检测,得到黑边检测结果,并基于所述第一视频数据获取音画同步时刻,所述第一视频数据为解码后的前预设数量帧视频数据;
13.基于所述音画同步时刻和所述黑边检测结果,对解码后的视频数据进行第一音画同步处理并控制显示器进行显示,以及,基于所述音画同步时刻对解码后的音频数据进行第二音画同步处理并控制音频设备进行播放。
14.由以上技术方案可以看出,本技术一些实施例提供了一种显示设备和音画同步方
法。通过获取视频数据和音频数据,并对视频数据和音频数据进行解码。显示设备可以先对第一视频数据进行黑边检测,得到黑边检测结果,同时基于第一视频数据可以获取音画同步时刻,音画同步时刻可以指示何时进行音画同步处理。基于音画同步时刻和黑边检测结果,可以对解码后的视频数据进行第一音画同步处理并控制显示器进行显示,基于音画同步时刻对音频数据进行第二音画同步处理并控制音频设备进行播放。由于在黑边检测之后能够对视频数据和音频数据进行音画同步,避免了视频数据显示滞后的问题,能够提高用户的观看体验。
附图说明
15.为了更清楚地说明本技术的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
16.图1示出了根据一些实施例的显示设备的使用场景;
17.图2示出了根据一些实施例的控制装置100的硬件配置框图;
18.图3示出了根据一些实施例的显示设备200的硬件配置框图;
19.图4示出了根据一些实施例的显示设备200中软件配置图;
20.图5示出了一些实施例中播放器的示意图;
21.图6示出了一些实施例中显示设备的播放器配置图;
22.图7示出了一些实施例中ts数据流的示意图;
23.图8示出了一些实施例中ts数据流的每个数据包的示意图;
24.图9示出了一些实施例中pes层的结构示意图;
25.图10示出了一些实施例中显示设备各部件的交互流程图;
26.图11示出了一些实施例中黑边区域和图像区域的示意图;
27.图12示出了一些实施例中两种视频数据的传输示意图;
28.图13示出了一些实施例中视频数据的示意图;
29.图14示出了一些实施例中媒资数据的结构示意图;
30.图15示出了一些实施例中媒资数据的结构示意图;
31.图16示出了一些实施例中音频数据的传输示意图;
32.图17示出了音画同步方法的一个实施例的流程示意图。
具体实施方式
33.为使本技术的目的、实施方式和优点更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,所描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。
34.基于本技术描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术所附权利要求保护的范围。此外,虽然本技术中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,
这些术语应当按照其普通和通常的含义理解。
35.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。
36.术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。
37.术语“模块”是指任何已知或后来开发的硬件、软件、固件、人工智能、模糊逻辑或硬件或/和软件代码的组合,能够执行与该元件相关的功能。
38.图1示出了根据一些实施例的显示设备的使用场景,如图1所示,用户可通过移动终端300和控制装置100操作显示设备200。控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信、蓝牙协议通信,无线或其他有线方式来控制显示设备200。用户可以通过遥控器上按键,语音输入、控制面板输入等输入用户指令,来控制显示设备200。在一些实施例中,也可以使用移动终端、平板电脑、计算机、笔记本电脑、和其他智能设备以控制显示设备200。
39.在一些实施例中,移动终端300可与显示设备200安装软件应用,通过网络通信协议实现连接通信,实现一对一控制操作的和数据通信的目的。也可以将移动终端300上显示音视频内容传输到显示设备200上,实现同步显示功能显示设备200还与服务器400通过多种通信方式进行数据通信。可允许显示设备200通过局域网(lan)、无线局域网(wlan)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。显示设备200,可以液晶显示器、oled显示器、投影显示设备。显示设备200除了提供广播接收电视功能之外,还可以附加提供计算机支持功能的智能网络电视功能。
40.图2示出了根据一些实施例的控制装置100的硬件配置框图。如图2所示,控制装置100包括控制器110、通信接口130、用户输入/输出接口140、存储器、供电电源。控制装置100可接收用户的输入操作指令,且将操作指令转换为显示设备200可识别和响应的指令,起用用户与显示设备200之间交互中介作用。通信接口130用于和外部通信,包含wifi芯片,蓝牙模块,nfc或可替代模块中的至少一种。用户输入/输出接口140包含麦克风,触摸板,传感器,按键或可替代模块中的至少一种。
41.图3示出了根据一些实施例的显示设备200的硬件配置框图。如图3所示,显示设备200包括调谐解调器210、通信器220、检测器230、外部装置接口240、控制器250、显示器260、音频输出接口270、存储器、供电电源、用户接口280中的至少一种。控制器包括中央处理器,视频处理器,音频处理器,图形处理器,ram,rom,用于输入/输出的第一接口至第n接口。显示器260可为液晶显示器、oled显示器、触控显示器以及投影显示器中的至少一种,还可以为一种投影装置和投影屏幕。显示器用于显示用户界面。用户界面中可以是具体的目标图像,例如从网络信号源中获取到的各种媒资,包括视频、图片等内容。用户界面也可以是显示设备的一些ui界面。用户可以在显示器中观看媒资等内容。调谐解调器210通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及epg数据信号。检测器230用于采集外部环境或与外部交互的信号。控制器250和调谐解调器210可以位于不同的分体设备中,即调谐解调器210也可在控制器250所在的主
体设备的外置设备中,如外置机顶盒等。
42.在一些实施例中,控制器250,通过存储在存储器上中各种软件控制程序,来控制显示设备的工作和响应用户的操作。控制器250控制显示设备200的整体操作。用户可在显示器260上显示的图形用户界面(gui)输入用户命令,则用户输入接口通过图形用户界面(gui)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。
43.在一些实施例中,“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接收形式之间的转换。用户界面常用的表现形式是图形用户界面(graphic user interface,gui),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在电子设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素中的至少一种。
44.图4示出了根据一些实施例的显示设备200中软件配置图,如图4所示,将系统分为四层,从上至下分别为应用程序(applications)层(简称“应用层”),应用程序框架(application framework)层(简称“框架层”),安卓运行时(android runtime)和系统库层(简称“系统运行库层”),以及内核层。内核层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、wifi驱动、usb驱动、hdmi驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、以及电源驱动等。
45.用户可以利用显示设备中安装的播放器来观看网络中各种媒资资源。为了提高用户的观看体验,显示设备可以对播放的媒资进行音画同步,使得视频数据和音频数据能够同步播放。显示设备可以遍历所有视频数据和音频数据的时间戳(presentation timestamp,pts),令具有相同时间戳的视频数据和音频数据在同一时刻被播放出来,从而实现音画同步。同时可以按照时间戳的顺序,依次播放视频数据和音频数据,以使用户观看媒资。
46.显示设备的显示器比例一般是16:9,为了保证图像和显示器相适应,媒资文件的视频数据的图像显示比例也设置为16:9,视频数据的分辨率也是16:9。随着显示设备的发展,21:9的显示器也逐渐被应用。为了保证图像和显示器相适应,21:9的显示器所显示的视频数据的图像显示比例也应该是21:9。为了符合21:9的图像显示比例,对于一些分辨率为16:9的视频数据,在制作时可以在原视频数据的垂直方向增加黑边,以达到视频数据的分辨率为16:9但图像显示比例为21:9的显示效果,从而能够在21:9的显示器中适应性显示出来。因此,当显示器比例为21:9时,有可能会播放带有黑边的视频,黑边会影响显示效果,有些用户不希望看到黑边,因此显示设备还需要对视频数据的黑边进行检测从而去除黑边。
47.相关技术中,黑边检测过程一般在音画同步处理之后进行,由于黑边检测需要消耗一定时间,这段时间会使得视频数据显示滞后,视频数据无法按照时间戳的时间正常播放,从而造成音画同步失效,视频数据和音频数据不再同步播放,给用户的体验性较差。一些相关技术为了同时实现黑边检测和音画同步,当检测到视频数据显示滞后时,可以将若干帧视频数据和音频数据丢弃,使得后续的视频数据能够按照时间戳的时间正常播放,同时视频数据可以和音频数据继续同步。但丢弃音频数据会出现断音的情况,给用户的体验性较差。
48.为此,本技术实施例提供的显示设备,不需要丢弃视频数据和音频数据,能够在黑边检测的同时实现音画同步,从而提高用户的使用体验。
49.在一些实施例中,当用户控制显示设备开机后,控制器可以控制显示器显示用户界面。用户可以通过显示设备观看媒资,例如可以启动显示设备内置的播放器,并通在播放器中选择某个媒资从而进行观看。
50.在一些实施例中,显示设备内置的播放器可以是基于gstreamer框架的播放器。gstreamer是一个基于管道(pipeline)的多媒体框架,基于gobject,以及c语言写成。基于gstreamer,可以更加容易地创建各种多媒体功能组件,包括音频回放、音频和视频播放、录音、流媒体和音频编辑等,从而为显示设备中的各种音视频功能提供实现基础。gstreamer是基于插件的开发模式,通过接入不同的插件以及调整插件参数,可以实现各种音视频数据采集、音视频数据的编解码、分辨率/帧率调整等需求。例如,通过接入麦克风声音采集插件,以实现通过麦克风进行音频数据采集的功能;通过接入摄像头视频采集插件,以实现通过摄像头进行视频数据采集的功能;通过接入视频编码插件,以实现对音视频数据的编码功能;通过接入视频解码插件,以实现对音视频数据的解码功能;通过接入视频分辨率、帧率调整插件,以实现分辨率、帧率的动态调整功能。
51.在一些实施例中,用户可以利用显示设备观看媒资。媒资文件对应的媒资数据中可以包括视频(video)数据和/或音频(audio)数据。例如,电影或电视剧中会同时包含视频数据和音频数据,因此显示设备需要同时播放两种数据。音乐中可以仅仅包含音频数据,显示设备只播放音频数据即可。为了完成对视频数据以及音频数据进行播放,显示设备中可以内置播放相关的功能模块,可以在播放器中配置相应的功能模块,通过各个模块间的协同工作,将视频数据和音频数据转化为具体的显示画面和声音信号。
52.图5示出了一些实施例中播放器的示意图。显示设备中可以安装有播放器。如图5所示,在应用层中,包含播放器的应用程序,用户可以通过点击播放器相应的控件,启动播放器并使用。播放器的配置模块设置于显示设备的框架层中,播放器可以是基于gstreamer框架的播放器,包括网络协议解析及下载模块、解复用模块、解码模块、预处理模块、音画同步模块和输出控制模块。
53.其中,网络协议解析及下载模块可以确定出显示设备和服务器之间的传输协议,从而在服务器中下载媒资数据。解复用模块可以对下载的媒资数据进行解复用,得到媒资数据中包含的视频数据(video)和音频数据(audio),还可以包含字幕数据等。解码模块包括音频解码单元(audio decoder)和视频解码单元(video decoder)。其中,音频解码单元用于对音频数据解码,视频解码单元用于对视频数据解码。预处理模块(rendersync模块)可以对视频数据进行预处理。音画同步模块包括视频同步单元(video sink)和音频同步单元(audio sink),视频同步单元对视频数据进行音画同步处理,音频同步单元对音频数据进行音画同步处理。输出控制模块中包括音频输出单元(audio render)和视频输出单元(video render)。音频输出单元可以将音频数据传输到音频设备进行播放,视频输出单元将视频数据传输到显示器进行显示。
54.图6示出了一些实施例中显示设备的播放器配置图。对于android系统的显示设备,播放器可以基于gstreamer框架。如图6所示,播放器还可以包括播放器中间件模块(hsplayer)、媒体播放控制模块(mediacodec)和显示控制模块(acodec)。其中,hsplayer模
块是采用以gstramer框架为基础的播放器中间件,用于对播放过程进行控制,可以对播放器中其他的模块进行控制,以实现播放器整体的工作过程。mediacodec模块和acodec模块是android系统中用于进行播放控制的c层模块。mediacodec模块中可以注册回调函数,以监听某些事件情况。acodec模块可以确定视频数据的一些显示参数。例如:当有视频数据传入到预处理模块时,预处理模块可以通知媒体播放控制模块,媒体播放控制模块注册回调函数,用于监听一些事件。视频解码单元(video decoder)可以对视频数据进行一些处理,包括配置显示参数、黑边检测等,可以将处理结果,例如黑边检测结果和显示参数配置结果发送至显示控制模块(acodec)。回调函数可以对显示控制模块是否获取到处理结果进行监听,并通知媒体播放控制模块。媒体播放控制模块进一步将监听结果发送至播放器中间件模块,播放器中间件模块可以根据监听结果进行相应的处理,以实现整个播放流程。
55.在一些实施例中,当用户选择某个具体的媒资并控制显示设备进行播放时,则认为用户向显示设备发送了媒资播放指令。响应于该媒资播放指令,显示设备可以确定用户选择的目标媒资,并开始获取目标媒资的媒资数据,以便能够实时播放目标媒资。控制器可以是实时获取媒资数据。
56.具体的,显示设备中的网络协议解析及下载模块,用于解析网络协议并下载媒资数据,可以是目标媒资的码流数据。媒资数据可以是流媒体数据,流媒体技术是指将一连串的媒体数据压缩后,以流的方式在网络中分段传送,实现在网络上实时传输影音以供观赏的一种技术。
57.控制器可以控制网络协议解析及下载模块与提供目标媒资的服务器进行通信连接。网络协议解析及下载模块可以确定双方之间的网络传输协议,从而根据该网络向服务器发送媒资获取请求。网络传输协议可以是rtp协议(real-time transport protocol,实时传输协议),rtp数据包可以承载ts数据流,保证数据高效、实时传输,因此广泛应用于流媒体相关的电话、视频会议、电视、一键通等通讯和娱乐业务中。rtp说明了在互联网上传递音频和视频的标准数据包格式,即本文中的rtp数据包的格式。
58.在确定了网络传输协议后,网络协议解析及下载模块可以向服务器发出rtsp(real time stresming protocol,实时流协议)请求,以获取媒资数据。rtsp用来控制实时数据的发送,rtsp可控制多个数据发送会话。在rtsp会话期间,可打开或关闭多个对服务器的可靠传输连接,以发出rtsp请求。
59.服务器在接收到rtsp请求后,可以先确定目标媒资,再生成目标媒资的媒资数据。具体的,由于媒资数据一般包括视频数据和音频数据,服务器可以将音频数据和视频数据进行复合处理,得到相应的媒资数据。可以是复合成ts(transport stresm,传输流)数据流,然后加上rtp协议头从而得到rtp包形式的媒资数据。
60.图7示出了一些实施例中ts数据流的示意图。如图7所示,ts数据流中包含若干个数据包。每个数据包packet包括packet header和packet data。其中,packet header为数据头信息,一般为4字节,packet data为具体的数据内容,可以是184字节。
61.ts数据包可以分为三层:ts层(transport stream)、pes层(packet elemental stream)、es层(elementary stream)。其中,es层表示基本码流,不分段的音频、视频或其他信息的连续码流。pes层是把基本流es分割成段,并加上相应头文件打包成形的打包基本码流。ts层表示传输流,将具有共同时间基准或独立时间基准的一个或多个pes组合(复合)而
成的单一数据流(用于数据传输)。
62.图8示出了一些实施例中ts数据流的每个数据包的示意图。其中,ts层中的payload存储有具体的数据内容,payload可以由pes层的信息组成。payload所传输的信息包括两种类型:视频、音频的pes包以及辅助数据;节目专用信息psi。pes层中的pes payload,可以由es层的信息组成。视频、音频的es流需进行打包形成视频、音频的pes流。辅助数据(如图文电视信息)不需要打成pes包。
63.ts数据包也可以是空包。空包用来填充ts流,可能在重新进行多路复用时被插入或删除。
64.图9示出了一些实施例中pes层的结构示意图。如图9所示,每个pes包固定了三个字段:起始码流(packet_start_code_prefix,24b)、流id(stream id,8b)、包长度(pes_packet_length,16b)。这三个字段是我们分析pes包的起始标志。然后是pes optional header和pes payload(pes packet data bytes)。其中,标志flag对应了任选字段的内容是否存在。
65.从图9可以看出,pes包是在每一个视频/音频帧上加入了时间戳等信息。时间戳分为pts和dts。pts是显示时间戳、dts是解码时间戳。视频数据两种时间戳都需要,音频数据的pts和dts相同,所以只需要pts。
66.表1示出了一些实施例中pes包的字段信息。
67.表1
[0068][0069]
数据根据类型可分为i、p、b三种类型。其中,i帧即intra-coded picture(帧内编码图像帧),不参考其他图像帧,只利用本帧的信息进行编码。p帧即predictive-codedpicture(预测编码图像帧),利用之前的i帧或p帧,采用运动预测的方式进行帧间预测编码。b帧即bidirectionallypredicted picture(双向预测编码图像帧),提供最高的压缩比,它既需要之前的图像帧(i帧或p帧),也需要后来的图像帧(p帧),采用运动预测的方式进行帧间双向预测编码。简单地讲,i帧是关键帧,可以理解为一个完整的画面,而p帧和b帧记录的是相对于i帧的变化,p帧表示跟前一帧的差别,b帧表示前后帧差别。
[0070]
有pts和dts两种时间戳是b帧引起的,i帧和p帧的pts等于dts。如果一个视频没有b帧,则pts永远和dts相同。从文件中顺序读取视频帧,取出的帧顺序和dts顺序相同。dts算法比较简单,初始值加上增量即可,pts计算比较复杂,需要在dts的基础上加偏移量。音频的pes中只有pts(同dts),视频的i、p帧两种时间戳都要有,视频b帧只要pts(同dts)。
[0071]
此时,网络协议解析及下载模块和服务器之间已经建立了rstp会话,通过该会话,服务器可以按照一定的速率将rtp包形式的媒资数据发送给网络协议解析及下载模块。显示设备可以根据该媒资数据播放目标媒资。
[0072]
在一些实施例中,网络协议解析及下载模块中可以预先设置有一块存储区域。在获取到媒资数据后,可以将媒资数据先存储到该预设的存储区域中,以便后续处理。
[0073]
考虑到获取的媒资数据中融合了视频数据和音频数据,为了能够正常播放目标媒资,需要将两种数据区分开进行处理。控制器可以基于媒资数据获取视频数据以及音频数据,可以是对媒资数据进行解复用处理,从而得到两种数据。
[0074]
显示设备中可以设置有解复用模块,可以对媒资数据解复用。控制器可以控制网络协议解析及下载模块将媒资数据发送至解复用模块,具体可以将存储区域的媒资数据发送至解复用模块。
[0075]
在一些实施例中,控制器可以控制解复用模块对媒资数据进行解复用处理,将媒资数据解封装从而得到视频数据和音频数据,还可以包括字幕数据等。
[0076]
在获取到视频数据和音频数据后,可以分别对两种数据进行解码处理,从而得到显示设备能够呈现给用户的解码数据,显示设备可以直接播放两种解码数据。需要说明的是,由于媒资码流数据进行解复用的速度和音视频数据进行解码的速度一般是不能完全匹配的,导致两个过程不能实时的连贯进行。因此,在对媒资数据进行解复用处理后,可以将得到的视频数据和音频数据先进行存储,从而保证后续可以连贯的进行解码处理。
[0077]
具体的,可以预先设置有视频缓存区域和音频缓存区域,分别用于存储视频数据和音频数据。显示设备可以单独设置一个缓存模块,该缓存模块具有一定的存储空间,其中设置有视频缓存区域和音频缓存区域。缓存模块也可以直接设置在网络协议解析及下载模块的存储区域中,本技术实施例不做限定。
[0078]
在一些实施例中,控制器可以对解码后的视频数据和音频数据进行音画同步处理,从而令两种数据能够同步播放。
[0079]
在对视频数据和音频数据进行音画同步处理后,控制器还可以对两种数据进行渲染,并控制输出模块将渲染后的视频数据输出至显示器,将渲染后的音频数据输出至音频设备。
[0080]
在一些实施例中,显示设备可以通过显示器显示画面,即显示渲染后的视频数据。显示设备还可以设置有音频输出接口,用于连接音频设备,可以为显示设备外接的蓝牙音箱、usb音箱等。外接的音频设备可以播放声音,即播放渲染后的音频数据。显示设备也可以内置有扬声器或音箱等音频设备。对于内置的音频设备,或者外接的音频设备,均可以用来播放渲染后的音频数据,本技术实施例中对音频设备不做限定。
[0081]
在一些实施例中,考虑到用户的体验性,显示设备还设置有黑边检测功能。当显示设备播放的媒资画面中包含黑边时,用户可以向显示设备发送黑边检测指令。显示设备可以进入黑边检测模式,从而对视频数据进行黑边检测,并消除黑边。
[0082]
在一些实施例中,可以设置为:检测到显示设备开机时,控制器控制显示设备进入黑边检测模式,从而令显示设备播放出的媒资画面不会包含黑边。
[0083]
本技术实施例中,在对视频数据进行黑边检测时,会进一步对视频数据和音频数据进行音画同步处理,从而使得黑边检测过程不会影响音画同步的效果,以提高用户的体验性。图10示出了一些实施例中显示设备各部件的交互流程图。如图10所示,响应于用户输入的媒资播放指令,显示设备可以确定用户选择的目标媒资,并获取媒资数据。
[0084]
在获取到媒资数据后,控制器可以对媒资数据进行解复用处理,从而获取到视频数据和音频数据。控制器进一步对视频数据和音频数据进行解码。具体的,可以通过音频解码单元(audio decoder)对音频数据进行解码,以及,通过视频解码单元(video decoder)对视频数据进行解码。
[0085]
在一些实施例中,在对视频数据和音频数据进行解码后,控制器可以对视频数据进行黑边检测,从而消除视频数据的黑边。显示设备中可以设置有黑边检测模块,黑边检测模块可以设置在视频输出单元(video render)中,用于对视频数据进行黑边检测处理。
[0086]
考虑到黑边检测的准确性和必要性,控制器可以对前若干帧视频数据进行黑边检测。本技术实施例中,利用第一视频数据表示解码后的前预设数量帧视频数据,预设数量可以技术人员设定的,可以是对前3-5帧视频数据进行黑边检测。需要说明的是,有些媒资数据的第一帧视频数据可能是全黑的图像,因此仅仅对第一帧视频数据进行黑边检测无法获取到真正的黑边区域。对于绝大部分的视频数据来说,黑边区域应该是相同的。因此,对前若干帧视频数据进行黑边检测,检测出的黑边区域可以认为是稳定准确的黑边区域。
[0087]
因此,控制器可以对第一视频数据进行黑边检测,从而得到黑边检测结果。同时,在进行黑边检测时,控制器还可以根据第一视频数据获取音画同步时刻。本技术实施例中,音画同步时刻指的是对视频数据和音频数据开始进行音画同步的时刻。在一些实施例中,对视频数据和音频数据进行音画同步的同时会将数据进行播放,因此,音画同步时刻也可以认为是控制第一视频数据开始播放的时刻。
[0088]
在一些实施例中,播放器中间件模块(hsplayer)可以控制视频数据进行黑边检测。在视频解码单元解码后,可以逐帧将视频缓存区域中的视频数据发送至预处理模块。播放器中间件模块可以检测视频数据是否为前预设数量帧视频数据,若是,则将视频数据发送至预处理模块,并经过视频同步单元输入到视频输出单元,进行黑边检测处理;若不是,则播放器中间件模块可以进行等待状态,此时,视频缓存区域中剩下的视频数据暂时不会发送至预处理模块,可以等到前预设数量帧视频数据在显示器中显示后,再继续发送。
[0089]
在一些实施例中,在对第一视频数据进行黑边检测时,会检测第一视频数据中的黑边区域,可以逐帧对每一帧的第一视频数据进行黑边检测。黑边检测是检测图像中连续的黑色区域,黑色区域并不是真正的图像内容,而是为了适应显示器比例生成的区域。因此,为了提高用户的体验性,需要将这种黑色区域消除,使得显示器中仅显示图像,并不会显示出黑色区域。
[0090]
当视频数据存在黑边时,说明视频数据可以分为两部分内容:图像区域和黑边区域。其中,图像区域即为视频数据中的正常图像,黑边区域即为媒资文件添加的黑边。通过对视频数据进行黑边检测,可以是识别出黑边区域和图像区域,从而令显示器中仅显示图像区域,实现黑边的消除,以提高用户的观看体验。具体的,控制器可以基于预设的黑边检
测算法对第一视频数据进行处理,从而实现黑边检测。
[0091]
在一些实施例中,在对第一视频数据进行黑边检测时,可以对第一视频数据的每一行像素点以及每一列像素点进行检测,判断每一行或者每一列是否为黑边的状态。
[0092]
具体的,对于视频数据来说,可能是在左右两侧的垂直方向上存在黑边,可能是在上下两侧的水平方向上存在黑边,也可能两种情况都存在。因此,需要对每一行以及每一列的像素点均进行检测,从而保证完整的检测出黑边。
[0093]
对于某一目标行或某一目标列的像素点,首先可以检测每个像素点是否黑色,同时可以统计出黑色像素点的数量。根据黑色像素点的数量可以确定在该目标行或者目标列的像素点中,黑色像素点的比例。控制器可以判断黑色像素点的比例是否超过了预设比例,预设比例可以是95%。如果检测到黑色像素点的比例超过预设比例,则可以将该目标行或者目标列确定为黑边。如果检测到没有超过预设比例,则不是黑边。控制器可以对每一行以及每一列的像素点进行统计,从而确定出所有的黑边。所有的黑边形成的区域可以确定为黑边区域,黑边区域以外的区域可以确定为图像区域。
[0094]
在一些实施例中,考虑到媒资文件生成黑边时可能不是纯黑色区域,会有所偏差,即黑边区域的像素点的像素值不是(0,0,0)。因此,可以预先设定一个像素点阈值,例如(10,10,10)。对于像素值小于该像素点阈值的像素点,均可以认为是黑色像素点。具体的,对于目标行或目标列的像素点,可以对每个像素点的像素值进行检测。如果检测到像素值低于像素值阈值,则认为该像素点为黑色像素点。通过检测黑色像素点的比例可以进一步确定出黑边。
[0095]
在一些实施例中,控制器可以检测显示器的比例。基于检测到显示器的比例是预设比例时,例如21:9,可以认为显示器为特殊尺寸,其播放的媒资文件是特殊制作的媒资,一般是在16:9尺寸图像的基础上,通过在垂直方向增加黑边生成的。因此,控制器可以仅对第一视频数据在垂直方向上检测是否存在黑边。具体的,可以对第一视频数据的每一列像素点进行检测,从而判断每一列像素点是否为黑边。
[0096]
在一些实施例中,视频解码后的视频数据可以是yuv420格式的图像数据。yuv指的是:视频、图片、相机等应用中使用的一类图像格式,实际上是所有“yuv”像素格式共有的颜色空间的名称。与rgb格式(红-绿-蓝)不同,yuv是用一个称为y(相当于灰度)的“亮度”分量和两个“色度”分量表示,分别称为u(蓝色投影)和v(红色投影),由此得名。
[0097]
因此在对第一视频数据进行黑边检测时,还可以对像素点的亮度进行检测。
[0098]
控制器可以对第一视频数据中每一行像素点以及每一列像素点进行检测,判断每一行或者每一列是否为黑边的状态。对于像素点来说,亮度值的范围是0~255。其中,0表示最暗,255表示最亮。
[0099]
可以检测每一行或者每一列的像素点中,每个像素点的亮度值,并进一步确定出该行或者该列像素点的亮度值总和。如果亮度值总和为0,说明该行或者该列为黑边状态。通过获取所有的黑边可以确定出第一视频数据的黑边区域和图像区域。
[0100]
在一些实施例中,在进行黑边检测之后,可以得到黑边检测结果。黑边检测结果可以是具体的位置信息,例如黑边区域的坐标信息以及图像区域的坐标信息。
[0101]
需要说明的是,黑边检测结果包括黑边区域和/或图像区域。如果检测到视频数据中包含黑边,则黑边检测结果中可以包括黑边区域的坐标信息和图像区域的坐标信息。图
11示出了一些实施例中黑边区域和图像区域的示意图。如图11所示,视频数据的尺寸为长w,高h。视频数据的坐标信息为左上角顶点(0,h),左下角顶点(0,0),右上角顶点(w,h),右下角顶点(w,0)。该帧视频数据同时包括黑边区域t2和图像区域t1,同时视频数据的上下左右均存在黑边。其中,黑边区域为:x坐标包括两个区间,左侧黑边(0,x1)和右侧黑边(x2,w);y坐标包括两个区间,下方黑边(0,y1)和上方黑边(y2,h)。在这些区间范围内的区域为黑边区域。图像区域的的坐标信息为:左上角顶点(x1,y2),左下角顶点(x1,y1),右上角顶点(x2,y2),右下角顶点(x2,y1)。
[0102]
如果检测到视频数据中不包含黑边,则黑边检测结果中仅为图像区域的坐标信息,由于不包含黑边,即整个视频数据均为图像区域,因此该坐标信息也为视频数据的坐标信息。此时,黑边检测结果也可以是一条提示信息,例如“未检测到黑边”。
[0103]
为了确保黑边检测的结果更加准确,通常需要对多帧视频数据进行检测。相关技术中在音画同步处理后,显示之前进行黑边检测过程,由于黑边检测需要消耗一定时间,连续对多帧图像进行黑边检测,耗时会更多,从而使得视频数据的显示时间和规定显示时间无法对应,导致显示滞后,可能该帧的显示时刻为下一帧数据的规定显示时间,此时为了保证音画同步,系统会将下一帧视频数据以及音频数据删除,从而出现断音的情况,给用户体验较差。本技术实施例则是先对视频数据进行黑边检测,再进行音画同步,不会出现断音的情况,以提高用户的使用体验。
[0104]
在一些实施例中,在对第一视频数据进行黑边检测后,每一帧的第一视频数据(一般为3-5帧)都可以对应一个黑边检测结果。由于媒资片源本身的问题,可能会导致这些视频数据的黑边区域存在一些误差,并不能得到完全相同的黑边检测结果。因此,控制器可以对每一帧第一视频数据的黑边检测结果进行适应性修正,得到最终的黑边检测结果,从而可以作为所有视频数据的黑边检测结果。
[0105]
在一些实施例中,有些媒资片源的第一帧视频数据可能是黑屏状态,即第一帧视频数据的所有像素点仅为黑色像素点。控制器可以检测第一帧的第一视频数据的黑边检测结果。如果黑边检测结果中仅包括黑边区域,即该帧视频数据全部为黑边区域,则该帧视频数据处于黑屏状态,可以忽略该帧视频数据的黑边检测结果,不予考虑。
[0106]
在一些实施例中,以第一视频数据包含3帧视频数据为例,并且3帧视频数据不存在黑屏状态,3帧视频数据的黑边检测结果中,黑边区域依次为h1、h2和h3。控制器可以对三个黑边区域进行修正,得到最终的黑边区域作为全部视频数据的黑边区域。
[0107]
控制器可以分别确定三个黑边区域的面积,并将面积最大的黑边区域作为最终的黑边区域。控制器也可以获取平均黑边区域。具体的,对于黑边区域,其包括四个坐标区间,两个x坐标区间,分别对应视频数据左右两侧的黑边,两个y坐标区间,分别对应上下两侧的黑边。对于上下左右四个边缘的四个黑边,可以分别获取平均区间。以左侧黑边为例,3帧视频数据的坐标区间分别为(0,a1)、(0,b1)和(0,c1)。即左侧黑边的长度分别为a,b,c。控制器可以计算平均黑边长度:z1=(a+b+c)/3。因此,平均黑边区域的左侧黑边的坐标区间为(0,z)。同理,对于右侧黑边,3帧视频数据的坐标区间分别为(a2,w)、(b2,w)、(c2,w)。右侧黑边的长度分别为w-a2、w-b2、w-c2。平均长度为z2=【(w-a2)+(w-b2)+(w-c2)】/3。因此,平均黑边区域的右侧黑边的坐标区间为(w-z2,w)。根据上述步骤,可以获取上下两侧的黑边的坐标区间,此处不再赘述。获取到平均黑边区域后,可以作为最终的黑边区域,即全部视
频数据的黑边区域。在确定出黑边区域后,也就确定了图像区域。控制器可以控制显示器仅显示视频数据中的图像区域。
[0108]
在一些实施例中,在黑边检测结果确定之前,因为无法确定待显示的具体图像区域,可以会将黑边检测的视频数据,即第一视频数据进行缓存。当黑边检测结果确定后可以控制显示显示器直接显示已缓存的第一视频数据。
[0109]
具体的,在对第一视频数据进行黑边检测后,控制器还可以根据第一视频数据获取音画同步时刻。音画同步时刻指的是对视频数据和音频数据开始进行音画同步的时刻。一般来说,在进行音画同步时,期望能够尽快播放媒资。即音画同步功能在播放媒资过程中同步进行,因此音画同步时刻也可以作为显示器中起播媒资,即播放第一帧视频数据的时刻。第一帧视频数据即为第一视频数据中的第一帧视频数据。
[0110]
为了保证音画同步的准确性,需要在黑边检测之后进行音画同步。因此,控制器可以在获取到黑边检测结果之后,进行音画同步过程。
[0111]
在一些实施例中,控制器可以检测黑边检测过程的进程,从而确定出黑边检测结束的时刻,即获取到黑边检测结果的时刻。控制器可以生成回调函数,并通过该回调函数检测黑边检测结果。回调函数检测到黑边检测结果时,可以反馈一个信息,例如“检测到黑边检测结束”,同时还可以反馈具体的黑边检测结果。响应于回调函数反馈的信息,控制器对第一视频数据进行参数配置,具体的参数配置内容可以包括对分辨率、帧率、色彩空间等显示参数进行初始化等。同时可以将第一视频数据完成参数配置的时刻设定为音画同步时刻。
[0112]
具体的,在对视频数据解码后,播放器中间件模块可以将解码后的视频数据输入到预处理模块(rendersync模块)。rendersync模块可以对视频数据进行同步前的预处理。本技术实施例中,当接收到第一帧解码后的视频数据时,该模块可以发送提示信息至媒体播放控制模块,媒体播放控制模块可以注册回调函数,并利用回调函数对一些特定事件进行监听,例如对黑边检测过程进行监听,确定是否获取到黑边检测结果。再将所有的第一视频数据全部输入至预处理模块后,播放器中间件模块可以进入等待状态,暂时不将剩余的解码后的视频数据输入预处理模块。
[0113]
在进行黑边检测之后,视频输出单元可以将黑边检测结果发送至显示控制模块。因此,回调函数可以实时对显示控制模块进行监听,确定是否有黑边检测结果。在监听到黑边检测结果后,媒体播放控制模块可以将监听结果反馈至播放器中间件模块。播放器中间件模块可以确定出音画同步时刻。
[0114]
在一些实施例中,显示控制模块可以在片源数据中获取到视频数据的显示参数,从而将显示参数发送至视频输出单元,视频输出单元进一步根据显示参数对第一视频数据进行参数配置。
[0115]
在一些实施例中,在确定出音画同步时刻时,控制器可以对视频数据和音频数据进行通不处理,同时控制显示器开始显示第一帧视频数据。
[0116]
其中,视频数据和音频数据需要做不同的处理,控制器可以基于音画同步时刻和黑边检测结果,对解码后的视频数据进行第一音画同步处理。同时,基于音画同步时刻对音频数据进行第二音画同步处理。
[0117]
在一些实施例中,检测到系统时间到达音画同步时刻时,控制器可以控制显示器
开始显示视频数据,控制器需要对解码后的视频数据进行第一音画同步处理。
[0118]
需要说明的是,本技术实施例中包含两种视频数据:第一视频数据和之后的视频数据。本技术实施例将第一视频数据之后的视频数据称为第二视频数据。图12示出了一些实施例中两种视频数据的传输示意图。如图12所示,第一视频数据和第二视频数据均在视频解码单元中进行解码,并发送至预处理模块中。对于第一视频数据,预处理模块会跳过视频同步单元(video sink),直接输入至视频输出单元(video render),视频输出单元会对第一视频数据进行黑边检测并输出至显示器中进行显示。对于第二视频数据,预处理模块则是正常输入至视频同步单元,视频同步单元对第二视频数据进行同步处理后再发送至视频输出单元,视频输出单元不会对第二视频数据进行黑边检测,而是直接进行输出显示。
[0119]
当系统时间到达音画同步时刻时,控制器可以对第一视频数据进行第一同步处理并控制显示器进行显示。具体的,由于第一视频数据并未经过视频同步单元,因此视频同步单元也无法对其进行同步处理。第一视频数据在进行黑边检测时,相当于缓存在视频输出单元,因此视频输出单元后续可以直接对第一视频数据进行输出显示。
[0120]
当第一视频数据开始进行黑边检测时,由于暂时没有确定出图像区域,在黑边检测的过程中,控制器可以控制显示器显示预设画面,可以是黑屏或者预设的图像。在黑边检测结束后,系统时间到达音画同步时刻,控制器可以获取第一视频数据的显示时长。具体的,对于每一帧的第一视频数据,可以先确定其时间戳。时间戳可以是数据本身携带有的参数信息,用于表征播放时间,每个数据都会具有一个时间戳。以视频数据为例,时间戳表示当前帧视频数据的显示时刻。时间戳越小,表示该帧视频数据的播放时刻越靠前,其播放顺序越靠前。时间戳越大,表示该帧视频数据的播放时刻越靠后,其播放顺序越靠后。一般接对媒资数据解复用处理时,可以得到视频数据和音频数据的时间戳。
[0121]
控制器可以计算相邻两帧第一视频数据的时间戳差值,并将该时间戳差值作为前一帧第一视频数据的显示时长。根据该显示时长,控制器可以控制显示器显示对应的第一视频数据,具体显示第一视频数据中的图像区域。按照顺序,可以依次将所有的第一视频数据进行显示。需要说明的是,根据上述步骤,可以和获取到第一视频数据中除最后一帧视频数据之前的所有视频数据的显示时长。因此,控制器还需要确定出最后一帧第一视频数据的显示时长。控制器可以将之前获取到所有的显示时长的平均数值作为最后一帧第一视频数据的显示时长。也可以将最后一帧第一视频数据的时间戳,和第一帧第二视频数据的时间戳差值,作为最后一帧第一视频数据的显示时长。
[0122]
图13示出了一些实施例中视频数据的示意图。如图13所示,y表示第一视频数据,共5帧。e表示第二视频数据。第一视频数据y1、y2、y3、y4、y5的时间戳依次为t1、t2、t3、t4、t5。因此,第一视频数据y1的显示时长为t2-t1,第一视频数据y2的显示时长为t3-t2,第一视频数据y3的显示时长为t4-t3,第一视频数据y4的显示时长为t5-t4。对于第一视频数据y5的显示时长,可以计算第一帧第二视频数据e1和y5的差值,即y5的显示时长为t6-t5。
[0123]
在一些实施例中,为了保证视频数据播放的连贯性,在显示第一视频数据之后,控制器可以控制显示器继续显示第二视频数据。控制器可以检测所有的第一视频数据是否已经全部显示完成。具体的,控制器可以通过回调函数检测第一视频数据的显示情况。当检测到所有的第一视频数据全部显示完成时,回调函数可以反馈一个播放信息,用于通知控制器对第二视频数据开始处理。因此,可以将第一视频数据全部显示完成的时刻作为视频数
据同步时刻。在该时刻,控制器可以对第二视频数据进行第二同步处理并控制显示器显示。
[0124]
在一些实施例中,回调函数可以反馈播放信息给播放器中间件模块。此时,播放器中间件模块可以取消等待状态,并将第二视频数据发送至预处理模块,预处理模块将第二视频数据发送至视频同步单元,视频同步单元开始对第二视频数据进行第二同步处理。
[0125]
在一些实施例中,在对第二视频数据进行第二同步处理时,可以将第二视频数据和系统时钟进行同步,从而确定出每一帧第二视频数据的显示时刻,实现视频数据的同步处理。控制器可以先确定第二视频数据的时间戳。控制器进一步可以确定出系统时钟和第二视频数据的时间戳的差值,本技术实施例中利用系统时间戳差值进行指代。该系统时间戳差值可以表征系统时间和第二视频数据的播放时刻之间的对应关系。
[0126]
具体的,控制器可以获取第二视频数据中第一帧视频数据的第一时间戳。计算该第一时间戳和第一视频数据全部显示完成的时刻,即第一时间戳和视频数据同步时刻的差值,将该差值确定为系统时间戳差值。根据该系统时间戳差值可以获取每一帧第二视频数据的显示时刻。对于第二视频数据来说,其中任意一帧视频数据的显示时刻可以采用下述方法获取:对于第二视频数据中目标视频数据来说,获取目标视频数据的时间戳以及系统时间戳差值的和,可以将求得的该和确定为目标视频数据的显示时刻。当系统时间到达第二视频数据的显示时刻时,控制器可以控制显示器显示相应的第二视频数据,具体可以显示第二视频数据的图像区域。
[0127]
在一些实施例中,对于第一视频数据和第二视频数据,控制器会采用不同的同步方法进行处理。为了保证用户的体验,不论显示器中显示第一视频数据还是第二视频数据,都需要音频设备能够播放相应的音频数据。同时期望每一帧音频数据都能和视频数据进行同步,因此,可以对所有的音频数据都进行同样的同步处理过程。即只要检测到将要播放一帧视频数据,就会对相应的音频数据进行同步处理。
[0128]
由于控制器会在系统时钟达到音画同步时刻,对视频数据进行处理并控制显示,因此,在音画同步时刻,控制器可以对音频数据进行第二音画同步处理并控制音频设备进行播放。当检测到系统时间到达所述音画同步时刻,控制器可以获取音频数据的音频时间戳。音频数据同样需要按照时间戳对应的播放顺序进行播放,因此,可以逐帧对每一帧音频数据进行处理。
[0129]
通常,需要同步播放的视频数据和音频数据的时间戳是相同的,以便达到最优的播放效果。但是收到媒资片源本身的影响,可能视频数据和音频数据的时间戳会略有偏差,不能完全一致。因此,控制器需要获取到每一帧音频数据对应的视频数据,才能实现同步播放。对于一帧进行第二音画同步处理的目标音频数据,在确定其音频时间戳后,控制器可以在所有视频数据的时间戳中,寻找到和该音频时间戳最相近的时间戳。控制器可以遍历所有的视频数据的时间戳,并获取每个时间戳和音频数据戳的差值。从而获取到差值最小的时间戳,将该时间戳对应的视频数据确定为目标视频数据。
[0130]
控制器可以判断目标视频数据和目标音频数据是否为相对应的关系。具体的,可以预先设置一个差值阈值,例如5毫秒。如果存在一帧视频数据和一帧音频数据的时间戳的差值在该时间戳差值内,则认为两帧数据为相对应的关系。
[0131]
因此,控制器可以检测音频数据戳和目标视频数据的时间戳的差值,是否满足预设条件,即差值是否小于差值阈值。如果不满足条件,则说明没有和目标音频数据相对应的
视频数据,可以将目标音频数据直接丢弃。如果满足条件,则说明目标视频数据和目标音频数据为相对应的关系,可以将目标音频数据向目标视频数据进行同步播放。具体可以将目标视频数据的显示时刻确定为目标音频数据的播放时刻。当检测到系统时间到达播放时刻,控制器控制音频设备播放目标音频数据。
[0132]
在一些实施例中,由于媒资片源的不同,会导致显示设备获取到的媒资数据的结构是不同的。图14示出了一些实施例中媒资数据的结构示意图。这种媒资数据不是规则的结构,视频数据的数量和音频数据的数量可能是不同,同时音频数据为一个包,视频数据为一个包,没有关联性,只能通过时间戳判断视频数据和音频数据之间的对应关系,具体的判断方法请参考前述步骤,此处不再赘述。如图14所示,媒资数据中可以包括两个包,视频数据包中包含5个视频数据a1-a5,音频数据包中包含9个音频数据b1-b9。因此,需要确定每个音频数据相对应的视频数据,才能进行同步播放。
[0133]
对有些媒资数据的结构比较规则。图15示出了一些实施例中媒资数据的结构示意图。如图15所示,媒资数据包括若干个包,每个包中可以包括一帧视频数据和一帧音频数据,并且两帧数据时相对应的,可以同步进行播放。视频数据a1和音频数据b1形成一个数据包,视频数据a2和音频数据b2形成一个数据包,以此类推,都是规则的数据包格式。对于这种较为规则的媒资数据,控制器可以直接确定出音频数据和视频数据的对应关系。具体的,在对媒资数据进行解复用时,可以将一个包中的视频数据和音频数据进行相同标识。在对音频数据进行音画同步处理时,控制器可以直接确定出和目标音频数据具有相同标识的视频数据,从而进行同步播放。
[0134]
在一些实施例中,显示设备可以具有多种播放模式,在不同的播放模式下,为了保持视频和音频间的同步播放,还可以对视频解码单元和音频解码单元的解码过程进行调整。例如,在tunnel mode模式(隧道模式)下,音频解码单元并不进行真正的解码,而是将解复用后的所有音频数据进行打包,通过预处理模块和音频同步单元,输入到音频输出单元。在音频输出单元中,对打包的音频数据进行解码以及音画同步处理。图16示出了一些实施例中音频数据的传输示意图。如图16所示,普通模式下,音频解码单元对音频数据进行解码,音频同步单元对解码后的音频数据进行音画同步处理。tunnel mode模式下,音频输出单元对音频数据进行解码和音画同步处理。
[0135]
在一些实施例中,显示设备播放的媒资可能不包含视频数据,例如单纯播放音乐。此时,则不需要对音频数据进行音画同步处理。
[0136]
在对媒资数据解复用处理后,控制器可以对得到的解复用数据进行检测。解复用数据可能同时包含视频数据和音频数据,也可能仅仅包含音频数据。
[0137]
如果检测到解复用数据中同时包括视频数据和音频数据,则可以对视频数据和音频数据全部进行解码,对解码的视频数据进行黑边检测,并分别进行同步处理。
[0138]
如果检测到解复用数据中仅包含音频数据,对只需要对音频数据解码,并直接控制音频设备播放解码后的音频数据即可,不需要再进行同步处理。
[0139]
本技术实施例还提供了一种音画同步方法,如图17所示,该方法包括:
[0140]
步骤1701、获取视频数据和音频数据,并对视频数据和音频数据进行解码。
[0141]
步骤1702、对第一视频数据进行黑边检测,得到黑边检测结果,并基于第一视频数据获取音画同步时刻。其中,第一视频数据为解码后的前预设数量帧视频数据。
[0142]
步骤1703、基于音画同步时刻和黑边检测结果,对解码后的视频数据进行第一音画同步处理并控制显示器进行显示,以及,基于音画同步时刻对音频数据进行第二音画同步处理并控制音频设备进行播放。
[0143]
由于在黑边检测之后能够对视频数据和音频数据进行音画同步,避免了视频数据显示滞后的问题,能够提高用户的观看体验。
[0144]
在一些实施例中,对第一视频数据进行黑边检测,得到黑边检测结果,包括:
[0145]
对第一视频数据的每一行像素点和每一列像素点进行检测,基于检测到目标行或目标列中黑色像素点的比例超过预设比例,则将目标行或目标列确定为黑边;将所有的黑边形成的区域确定为黑边区域,将黑边区域以外的区域确定为图像区域;黑边检测结果包括黑边区域和/或所述图像区域。
[0146]
在一些实施例中,基于第一视频数据获取音画同步时间,包括:
[0147]
生成回调函数,并基于回调函数检测所述黑边检测结果;响应于回调函数在检测到黑边检测结果时反馈的信息,对第一视频数据进行参数配置,并将第一视频数据完成参数配置的时刻设定为音画同步时刻。
[0148]
在一些实施例中,对解码后的视频数据进行第一音画同步处理并控制显示器进行显示,包括:
[0149]
基于检测到系统时间到达音画同步时刻,对第一视频数据进行第一同步处理并控制显示器进行显示;基于检测到第一视频数据全部显示完成时,对第二视频数据进行第二同步处理并控制显示器进行显示,第二视频数据为第一视频数据之后的视频数据。
[0150]
在一些实施例中,对第一视频数据进行第一同步处理并控制显示器进行显示,包括:
[0151]
根据第一视频数据的时间戳获取第一视频数据的显示时长;基于显示时长,控制显示器显示第一视频数据的图像区域。
[0152]
在一些实施例中,对第二视频数据进行第二同步处理并控制显示器进行显示,包括:
[0153]
根据第二视频数据的时间戳获取系统时间戳差值;根据系统时间戳差值获取第二视频数据的显示时刻;基于检测到系统时间到达显示时刻时,控制显示器显示第二视频数据的图像区域。
[0154]
在一些实施例中,根据第二视频数据的时间戳获取系统时间戳差值,包括:
[0155]
获取第二视频数据中第一帧视频数据的第一时间戳;获取第一视频数据全部显示完成的时刻和第一时间戳的差值,并确定为确定为系统时间戳差值。
[0156]
根据系统时间戳差值获取第二视频数据的显示时刻,包括:
[0157]
获取第二视频数据中目标视频数据的时间戳以及系统时间戳差值的和,并将和确定为目标视频数据的显示时刻。
[0158]
在一些实施例中,基于音画同步时刻对解码后的音频数据进行第二音画同步处理并控制音频设备进行播放,包括:
[0159]
基于检测到系统时间到达音画同步时刻,获取目标音频数据的音频时间戳;获取所有视频数据的时间戳中,和音频时间戳的差值最小的时间戳,并确定最小的时间戳对应的目标视频数据;判断音频时间戳和目标视频数据的时间戳的差值是否满足预设条件;若
否,则将目标音频数据丢弃;若是,则将目标视频数据的显示时刻确定为目标音频数据的播放时刻;基于检测到系统时间到达播放时刻,控制音频设备播放目标音频数据。
[0160]
在一些实施例中,获取视频数据和音频数据,包括:
[0161]
响应于用户的媒资播放指令,获取媒资数据;对媒资数据进行解复用处理,得到解复用数据,解复用数据包括视频数据和/或音频数据;基于检测到解复用数据中同时包括视频数据和音频数据,执行对视频数据和音频数据进行解码的步骤;基于检测到解复用数据中仅包含音频数据,对音频数据解码,控制音频设备播放解码后的音频数据。
[0162]
本说明书中各个实施例之间相同相似的部分互相参照即可,在此不再赘述。
[0163]
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分的方法。
[0164]
最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
[0165]
为了方便解释,已经结合具体的实施方式进行了上述说明。但是,上述示例性的讨论不是意图穷尽或者将实施方式限定到上述公开的具体形式。根据上述的教导,可以得到多种修改和变形。上述实施方式的选择和描述是为了更好的解释原理以及实际的应用,从而使得本领域技术人员更好的使用实施方式以及适于具体使用考虑的各种不同的变形的实施方式。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1