一种显示方法和显示设备与流程

未命名 08-06 阅读:101 评论:0
1.本技术涉及投屏显示领域,尤其涉及一种显示方法和显示设备。
背景技术
::2.目前,投屏显示已经被广泛应用于家庭与企业场景中,成为人们的主流的观看视频方式之一。同时,在5g时代万物互联、万屏互联的背景下,投屏也开始承载更多的价值与可能。3.但是,受到网络波动或其他因素的影响,投屏过程中仍然会出现绿屏现象,即某一帧对应图像为全绿色图像,由于该绿屏帧对应的数据流不存在错误,无法通过检测出错误帧的方法将绿屏帧丢弃,导致了绿屏帧仍然会被渲染播放到被投屏端,影响用户的观看体验。技术实现要素:4.本技术实施例提供一种显示方法和显示设备,能够检测出并丢弃绿屏帧,改善投屏过程中的绿屏问题,提高用户的观看体验。5.为达到上述目的,本技术的实施例采用如下技术方案:6.第一方面,提供一种显示设备,该显示设备可以包括:显示器;通信器,被配置为接收来自投屏设备发送的视频数据;处理器,分别与显示器于通信器耦接,且被配置为:对视频数据进行分帧处理得到多个帧数据;在第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据;第一帧数据为多个帧数据中的帧数据;控制显示器显示第二帧数据,第二帧数据为多个帧数据中除第一帧数据之外的帧数据。7.结合第一方面,在另一种可能的实现方式中,处理器,被配置为在所述第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据,包括:在第一帧数据的颜色部分全为预设字符串的情况下,确定第一帧数据对应的图像为全绿色图像;其中,第一帧数据的颜色部分用于指示第一帧数据对应的图像全部像素的颜色;丢弃第一帧数据。8.结合第一方面,在另一种可能的实现方式中,处理器,被配置为在所述第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据,包括:在第一帧数据包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据;对第一帧数据对应的解析数据进行绿屏检测;在第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据对应的解析数据。9.结合第一方面,在另一种可能的实现方式中,处理器,配置为对所述第一帧数据对应的解析数据进行绿屏检测,包括:在第一帧数据对应的解析数据的颜色编码方式为yuv情况下,将第一帧数据对应的解析数据转换为目标数据;目标数据的颜色编码方式为rgb;在目标数据指示的绿色的颜色值处于预设范围内的情况下,则确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像。10.结合第一方面,在另一种可能的实现方式中,处理器,还被配置为:在目标数据指示的绿色的颜色值处于预设范围外的情况下,确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像不为全绿色图像;对第一帧数据对应的解析数据执行音视频同步操作,得到第一待播放数据;渲染第一待播放数据;控制显示器播放渲染之后的第一待播放数据。11.结合第一方面,在另一种可能的实现方式中,处理器,还被配置为:在第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,显示提示信息;提示信息用于指示用户显示设备处于投屏过程中。12.结合第一方面,在另一种可能的实现方式中,处理器,还被配置为:在第一帧数据不包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据;对第一帧数据对应的解析数据执行音视频同步操作,得到第二待播放数据;渲染第二待播放数据;控制显示器播放渲染之后的第二待播放数据。13.第二方面,提供了一种显示方法,应用于显示设备。该方法可以包括:接收来自投屏设备发送的视频数据;对视频数据进行分帧处理得到多个帧数据;在第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据;第一帧数据为多个帧数据中的帧数据;显示第二帧数据,第二帧数据为多个帧数据中除第一帧数据之外的帧数据。14.第三方面,提供一种显示设备,该显示设备具有实现上述第二方面的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。15.第四方面,提供一种显示装置,该显示装置包括接收模块、分帧模块、丢帧模块和显示模块。接收模块,用于接收来自投屏设备发送的视频数据;分帧模块,用于对接收模块接收的视频数据进行分帧处理得到多个帧数据;丢帧模块,用于确定分帧模块得到的多个帧数据中的第一帧数据在第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据;显示模块,用于显示分帧模块得到的多个帧数据中的第二帧数据,第二帧数据为多个帧数据中除第一帧数据之外的帧数据。16.第五方面,提供了一种显示设备,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该第一设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该第一设备执行如上述第二方面提供的显示方法。17.第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第二方面提供的显示方法。18.第七方面,提供了一种包含指令的计算机程序产品,当其在显示设备上运行时,使得显示设备可以执行上述第二方面提供的显示方法。19.第八方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持显示设备实现上述第二方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存显示设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。20.综上,因为本技术实施例提供的技术方案,可以在显示过程中检测出绿屏帧对应的帧数据,并通过丢帧的方式使得该绿屏帧不会被渲染播放到被投屏设备(即显示设备),提高了用户的使用体验。附图说明21.图1a为本技术实施例提供的一种显示系统的结构示意图;22.图1b为本技术实施例提供的一种显示设备与控制装置之间的操作场景示意图;23.图2为本技术实施例提供的一种控制装置的结构示意图;24.图3为本技术实施例提供的一种显示设备的结构示意图;25.图4为本技术实施例提供的一种显示设备的软件架构示意图;26.图5为本技术实施例提供的一种显示方法的流程示意图一;27.图6为本技术实施例提供的一种显示方法的流程示意图二;28.图7为本技术实施例提供的一种显示方法的流程示意图三;29.图8为本技术实施例提供的一种显示方法的流程示意图四;30.图9为本技术实施例提供的一种显示方法的流程示意图五;31.图10为本技术实施例提供的一种显示方法的流程示意图六;32.图11为本技术实施例提供的一种显示方法的流程示意图七;33.图12为本技术实施例提供的另一种显示方法的实例示意图;34.图13为本技术实施例提供的另一种显示设备的结构示意图;35.图14为本技术实施例提供的又一种显示设备的结构示意图。具体实施方式36.为使本技术的目的和实施方式更加清楚,下面将结合本技术示例性实施例中的附图,对本技术示例性实施方式进行清楚、完整地描述,显然,描述的示例性实施例仅是本技术一部分实施例,而不是全部的实施例。37.需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。38.本技术中说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别类似或同类的对象或实体,而不必然意味着限定特定的顺序或先后次序,除非另外注明。应该理解这样使用的用语在适当情况下可以互换。39.本技术中术语“包括”和“具有”以及他们的任何变形,意图在于覆盖但不排他的包含,例如,包含了一系列组件的产品或设备不必限于清楚地列出的所有组件,而是可包括没有清楚地列出的或对于这些产品或设备固有的其它组件。40.本技术中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本技术中字符“/”,一般表示前后关联对象是一种“或”的关系。41.基于本技术描述的示例性实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术所附权利要求保护的范围。此外,虽然本技术中公开内容按照示范性一个或几个实例来介绍,但应理解,可以就这些公开内容的各个方面也可以单独构成一个完整实施方式。需要说明的是,本技术中对于术语的简要说明,仅是为了方便理解接下来描述的实施方式,而不是意图限定本技术的实施方式。除非另有说明,这些术语应当按照其普通和通常的含义理解。42.首先,对本技术涉及的名词进行如下解释:43.投屏:投屏又称为同屏、屏幕共享、多屏互动。具体来说,是通过某种技术方法将移动设备a(如手机、ipad、电脑)的画面“实时地”显示在另一个设备b(如投影机、会议平板、拼接屏、电子白板、电视机)上,输出的内容包括相册、视频、音频等各类多媒体信息,也包括在设备a上的实时操作画面。44.绿屏:因网络不好或者受周边环境影响,投屏过程中容易丢包或者其他任意可能的原因,从而引起的投屏过程中偶发性出现的屏幕图像为全绿色图像(即绿屏图像)现象。45.parse:即解析分帧。用于解析数据流(例如基本码流es)并把数据流分割成一帧一帧的压缩编码数据。46.es:现实世界中的声音图像采样后经过音视频压缩技术压缩而成的码流称为基本码流(elementarystream,es)。es中包含有解码器解码文件必须的信息,比如视频宽高,采样格式,声音的采样率,声道等等。为了方便传输,播放,将音视频es数据打包到一个文件中,这个文件称之为音视频es流的封装。47.nal:networkabstractionlayer,nal,即网络提取层,h.264(一种视频编码格式)的es可以分为两层,即vcl(videocodinglayer,视频编码层)和nal(networkabstractionlayer,网络抽象层),其中nal保存了h.264相关的参数信息和图像信息。48.nalu:即nal-unit,nal单元,nal由多个单元nalu组成。每个nalu是一个语法元素可变的长字节字符串,包括包含一个字节的头信息(用来表示数据类型),以及若干整数字节的负荷数据(例如rbsp)。49.rbsp:原始字节序列载荷(rawbytesequencepayload,rbsp)。rbsp是一种在数据比特串(stringofdatabits,sodb)的基础上添加了结尾比特的比特串。由于sodb字节长度不统一,rbsp添加结尾比特可以实现字节长度统一。rbsp本质是添加了使得sodb字节长度统一的结尾比特的sodb。50.dropframe:即丢帧,具体是主动丢弃帧数据的操作。视频传输经常会遇到网络不稳定,终端性能不足等问题。为了解决这些问题,除了不断优化软硬件的处理能力之外,还可以采用丢帧来提供降级的服务。51.render:即渲染。具体指根据数据生成视频的过程。52.yuv:yuv是一种颜色编码方法,yuv颜色编码采用的是明亮度和色度来指定像素的颜色。其中,y表示明亮度(luminance、luma),而u和v表示色度(chrominance、chroma)。yuv图像的主流采样方式有三种,yuv4:4:4采样、yuv4:2:2采样和yuv4:2:0采样。yuv4:4:4采样,意味着y、u、v三个分量的采样比例相同,因此在生成的图像里,每个像素的三个分量信息完整,都是8bit,也就是一个字节。yuv4:2:2采样,意味着uv分量是y分量采样的一半,y分量和uv分量按照2:1的比例采样。yuv4:2:0采样,是指在每一行扫描时,只扫描一种色度分量(u或者v),和y分量按照2:1的方式采样。比如,第一行扫描时,yu按照2:1的方式采样,那么第二行扫描时,yv分量按照2:1的方式采样。对于每个色度分量来说,它的水平方向和竖直方向的采样和y分量相比都是2:1。53.rgb:rgb三个字母分别代表了红(red)、绿(green)、蓝(blue),这三种颜色称为三原色,将它们以不同的比例相加,可以产生多种多样的颜色。在图像显示中,一张1280*720大小的图片,就代表着它有1280*720个像素点。其中每一个像素点的颜色显示都采用rgb编码方法,将rgb分别取不同的值,就会展示不同的颜色。rgb图像中,每个像素点都有红、绿、蓝三个原色,其中每种原色都占用8bit,也就是一个字节,那么一个像素点也就占用24bit,也就是三个字节。54.mircast投屏:miracast是2012年推出的从设备(如笔记本电脑,平板电脑或智能手机)到显示器(如电视,显示器或投影仪)的无线连接标准。在传输层上,使用tcp(transmissioncontrolprotocol,流传输控制协议)或udp(userdatagramprotocol,用户数据报洗衣)。在应用层,通过rtsp(realtimestreamingprotocol,实时流传输洗衣),rtp(realtimeprotocol,实时传输协议)启动和控制流以进行数据传输。55.airplay投屏:airplay是apple公司开发的无线技术,主要用于支持ios设备包括iphone、ipad、macbook通过wifi将图片、音频、视频等传输到支持airplay的显示设备上,是一种镜像投屏。56.demux:demux是指解析视频的封装格式,得到包含的音视频原始码流,demux时间越短,就越快得到视频流。57.ijkplayer播放器:ijkplayer是基于ffmpeg开发的一个播放器软件,支持android和ios平台。58.avsync:音视频同步。媒体数据经过解复用流程后,音频/视频解码便是独立的,也是独立播放的。而在音频流和视频流中,通过视频帧率与音频的采样率,即可知道视频/音频播放速度。在理想条件下,音频与视频播放应该是同步的,负责就需要通过调制音频/视频的播放时间戳来进行音视频同步。59.目前,投屏显示已经被广泛应用于家庭与企业场景中,成为人们的主流的观看视频方式之一。同时,在5g时代万物互联、万屏互联的背景下,投屏也开始承载更多的价值与可能。60.在投屏过程中,投屏设备会向显示设备发送视频数据,从而显示设备会显示该视频数据。但是,视频数据在传输中可能存在错误帧数据,例如像素丢失、像素重复、花屏等,为了保证用户的观看体验,通常显示设备会采用丢帧的方法处理错误帧数据。即显示设备解码该视频数据时,在检测出有错误帧数据之后,会将该错误帧数据丢弃,使得该错误帧数据对应的图像不会被渲染播放到显示设备。61.但是,受到网络波动或其他因素的影响,显示设备解码视频数据时,视频数据对应的帧数据中可能会存在某一帧数据对应图像为全绿色图像。显示设备不会将该帧数据确定为错误帧数据,即显示设备不会丢弃该帧数据而是会显示该帧数据。也就是说,投屏过程中显示设备会出现全绿屏现象。现有技术中无法通过检测出错误帧的方法将绿屏帧丢弃,导致了绿屏帧仍然会被渲染播放到被投屏端,影响用户的观看体验。62.针对上述问题,本技术实施例中提出了一种显示方法,该显示方法可以应用于显示设备,显示设备可以对投屏设备发送的视频数据进行检测,在检测出来存在全绿色图像对应的帧数据时,会丢弃该全绿色图像对应的帧数据,对于不是全绿色图像对应的帧数据,显示设备会正常显示。也就是说,本技术的方案可以在投屏显示过程中检测出绿屏帧对应的帧数据(即全绿色图像对应的帧数据),并通过丢帧的方式使得该绿屏帧不会被渲染播放到显示设备,提高了用户的使用体验。下面结合附图对本技术实施例提供的显示方法进行详细描述。63.本技术实施例提供的显示方法可以应用于显示系统,显示系统可以包括投屏设备和显示设备。投屏设备可以和显示设备建立连接,如无线或有线连接。64.例如,图1a为根据一示例性实施例示出的显示方法应用的显示系统的组成结构的示意图。参照图1a所示,该系统包括显示设备01与投屏设备02。例如,显示设备01可以为电视机,投屏设备02可以为手机。65.其中,用户可以通过控制装置对投屏设备01进行控制。控制装置可以是遥控器,遥控器和投屏设备01的通信包括红外协议通信、蓝牙协议通信,无线或其他有线方式来控制显示设备01。用户可以通过遥控器上按键,语音输入、控制面包输入等输入用户指令,来控制显示设备01。此外,显示设备01还可以通过其内部配置的获取语音指令的模块(例如mic)直接接收用户的语音输入或语音指令。在一些示例中,也可以使用平板电脑、计算机、笔记本电脑、和其他智能设备以控制显示设备01。66.在一些示例中,投屏设备02和显示设备01上可以安装相同或者相互匹配的软件应用,从而实现通过网络协议进行连接通信,进而实现一对一控制操作和数据通信的目的。这种情况下,投屏设备02上显示的音视频内容还可以传输到显示设备01上,实现同步显示功能。67.显示设备01和投屏设备02之间可以通过有线或无线通信方式进行数据通信。投屏设备02可以向显示设备01提供多种内容和互动,例如投屏设备02可以向显示设备01发送本技术实施例提供的显示方法中涉及的视频数据,从而使得显示设备02可以播放来自投屏设备01的视频。或者说,投屏设备02可以和显示设备01配合,实现投屏显示方案(即本技术实施例中提供的显示方法)。68.示例性的,在本技术实施例中,显示设备01可以具有多种实现形式,例如,显示设备01可以是电视机、智能电视、激光投影设备、显示器(monitor)、电子白板(electronicbulletinboard)、电子桌面(electronictable)等可以进行语音输入的显示设备。本技术实施例在此对显示设备01的具体形态不做限制。本技术实施例中以显示设备01为电视机为例进行示意说明。69.示例性的,在本技术实施例中,投屏设备02可以具备有hdmi接口的能够提供视频数据的设备,例如机顶盒、pc(personalcomputer,个人电脑)设备等。在本技术实施例中,投屏设备02可以在将视频采样压缩后发送至显示设备01。本技术实施例在此对投屏设备02的具体形态不做限制。本技术实施例中以投屏设备02为手机为例进行示意说明。70.图1b为本技术实施例中显示设备与控制装置之间操作场景的示意图。如图1b所示,用户可通过智能设备300或控制装置100操作显示设备200。71.在一些实施例中,控制装置100可以是遥控器,遥控器和显示设备的通信包括红外协议通信或蓝牙协议通信,及其他短距离通信方式,通过无线或有线方式来控制显示设备200。用户可以通过遥控器上按键、语音输入、控制面板输入等输入用户指令,来控制显示设备200。72.在一些实施例中,也可以使用智能设备300(如移动终端、平板电脑、计算机、笔记本电脑等)以控制显示设备200。例如,使用在智能设备上运行的应用程序控制显示设备200。73.在一些实施例中,显示设备可以不使用上述的智能设备或控制设备接收指令,而是通过触摸或者手势等接收用户的控制。74.在一些实施例中,显示设备200还可以采用除了控制装置100和智能设备300之外的方式进行控制,例如,可以通过显示设备200设备内部配置的获取语音指令的模块直接接收用户的语音指令控制,也可以通过显示设备200设备外部设置的语音控制设备来接收用户的语音指令控制。75.在一些实施例中,显示设备200还与服务器400进行数据通信。可允许显示设备200通过局域网(lan)、无线局域网(wlan)和其他网络进行通信连接。服务器400可以向显示设备200提供各种内容和互动。服务器400可以是一个集群,也可以是多个集群,可以包括一类或多类服务器。76.图2示例性示出了一种可能的控制装置200的配置框图。如图2所示,控制装置200包括控制器210、通信接口230、用户输入/输出接口240、存储器、供电电源。控制装置可接收用户的输入操作指令(例如语音指令),且将操作指令转换为显示设备01可识别和响应的指令,起用用户与显示设备01之间交互中介作用。77.示例地,以显示设备为电视机为例,图3示出了本技术实施例提供的一种显示设备01的结构示意图。78.如图3,显示设备01包括调谐解调器110、通信器120、检测器130、外部装置接口140、控制器150(或称为处理器150)、显示器160、音频输出接口170、存储器、供电电源、用户接口中的至少一种。79.在一些实施例中控制器包括处理器,视频处理器,音频处理器,图形处理器,ram,rom,用于输入/输出的第一接口至第n接口。80.显示器160包括用于呈现画面的显示屏组件,以及驱动图像显示的驱动组件,用于接收源自控制器输出的图像信号,进行显示视频内容、图像内容以及菜单操控界面的组件以及用户操控用户界面(useinterface,ui)。81.显示器160可为液晶显示器、oled显示器、以及投影显示器,还可以为一种投影装置和投影屏幕。82.通信器120是用于根据各种通信协议类型与外部设备或服务器进行通信的组件。例如:通信器可以包括wifi模块,蓝牙模块,有线以太网模块等其他网络通信协议芯片或近场通信协议芯片,以及红外接收器中的至少一种。显示设备01可以通过通信器120与外部控制设备或投屏设备02建立控制信号和数据信号的发送和接收。83.用户接口,可用于接收控制装置(如:红外遥控器等)的控制信号。84.检测器130用于采集外部环境或与外部交互的信号。例如,检测器130包括光接收器,用于采集环境光线强度的传感器;或者,检测器130包括图像采集器,如摄像头,可以用于采集外部环境场景、用户的属性或用户交互手势,再或者,检测器130包括声音采集器,如麦克风等,用于接收外部声音。85.外部装置接口140可以包括但不限于如下:高清多媒体接口接口(hdmi)、模拟或数据高清分量输入接口(分量)、复合视频输入接口(cvbs)、usb输入接口(usb)、rgb端口等任一个或多个接口。也可以是上述多个接口形成的复合性的输入/输出接口。86.调谐解调器110通过有线或无线接收方式接收广播电视信号,以及从多个无线或有线广播电视信号中解调出音视频信号,如以及epg数据信号。87.在一些实施例中,控制器150和调谐解调器110可以位于不同的分体设备中,即调谐解调器110也可在控制器150所在的主体设备的外置设备中,如外置机顶盒等。88.控制器150,通过存储在存储器上中各种软件控制程序,来控制显示设备01的工作和响应用户的操作。控制器150控制显示设备01的整体操作。例如:响应于接收到用于选择在显示器160上显示ui对象的用户命令,控制器150便可以执行与由用户命令选择的对象有关的操作。89.在一些实施例中控制器包括中央处理器(centralprocessingunit,cpu),视频处理器,音频处理器,图形处理器(graphicsprocessingunit,gpu),ramrandomaccessmemory,ram),rom(read-onlymemory,rom),用于输入/输出的第一接口至第n接口,通信总线(bus)等中的至少一种。90.用户可在显示器160上显示的图形用户界面(gui)输入用户命令,则用户输入接口通过图形用户界面(gui)接收用户输入命令。或者,用户可通过输入特定的声音或手势进行输入用户命令,则用户输入接口通过传感器识别出声音或手势,来接收用户输入命令。[0091]“用户界面”,是应用程序或操作系统与用户之间进行交互和信息交换的介质接口,它实现信息的内部形式与用户可以接受形式之间的转换。用户界面常用的表现形式是图形用户界面(graphicuserinterface,gui),是指采用图形方式显示的与计算机操作相关的用户界面。它可以是在显示设备的显示屏中显示的一个图标、窗口、控件等界面元素,其中控件可以包括图标、按钮、菜单、选项卡、文本框、对话框、状态栏、导航栏、widget等可视的界面元素中的至少一种。[0092]可以理解的是,一般而言,显示设备功能的实现除了需要上述硬件的支持外,还需要软件的配合。[0093]在一些实施例中,以显示设备01使用的操作系统为android系统为例,参照图4所示,可以将显示设备01的系统分为五层,从上至下分别为应用层,java接口层,本地native实现层,框架framework层,以及硬件实现层。[0094]在一些实施例中,应用层中运行有至少一个应用程序,这些应用程序可以是操作系统自带的窗口(window)程序、系统设置程序或时钟程序等;也可以是第三方开发者所开发的应用程序。在本技术实施例中,应用层可以执行mircast投屏协议,该协议具体用于执行实时流协议(realtimestreamingprotocol,rtsp),以创建和控制显示设备01与投屏设备02之间的对话、处理媒体信息流、解析由投屏设备02发送的数据包。在具体实施时,应用层可执行的投屏协议不限于以上举例。应用层中可以包括有具备应用投屏功能的应用程序。[0095]java接口层为应用层提供java应用编程接口(javaapi)。java接口层由java代码编写,包括一些预先定义的函数或服务。java接口层相当于一个处理中心,这个处理中心决定让应用层中的应用程序做出动作。应用程序通过javaapi接口,可在执行中访问系统中的资源和取得系统的服务。[0096]如图4所示,本技术实施例中java接口层包括创建播放器模块、设置surface模块、setmediadatasoure模块、prepare模块、info模块等,其中,创建播放器模块用于创建播放器,例如ijkplayer播放器;设置surface模块用于设置显示界面;setmediadatasoure模块用于配置媒体数据源;prepare模块用于对数据包进行预处理;info模块用于向应用层返回信息。[0097]在一些示例中,java接口层在接收到来自应用层的视频数据流之后,首先,播放器创建模块创建播放器。其次,设置surface模块设置播放器的显示界面;再次,setmediadatasoure模块根据视频数据流配置媒体数据源获取数据包;然后,prepare模块对数据包进行预处理,最后,将预处理后的数据包发送至native实现层。[0098]在一些实施例中,native实现层为上层即java接口层提供支撑,当java接口层被使用时,操作系统会运行native实现层中包含的c/c++库以实现以实现java接口层要实现的功能。[0099]如图4所示,本技术实施例中native实现层包括视频流配置模块、视频流处理模块、解封装模块、跨层通信模块、同步渲染模块、音视频同步模块、渲染播放模块。[0100]在一些示例中,视频流配置模块用于初始化并配置相关参数;视频流处理模块用于从数据缓冲区中取出数据进行解码,解码完成后放入对应的数据缓冲区;解封装模块用于解封装视频数据流得到es流,再从es流中parse出一帧es数据,并检测es数据中的rbsp是否存在多个连续的“f7df7d”;跨层通信模块,用于将rbsp中包含多个连续的“f7df7d”的es数据发送至framework框架层中的mediacodec模块;同步渲染模块用于渲染视频,并根据由mediacodec模块发送的yuv数据进行绿屏检测,若绿屏检测结果指示yuv数据对应的图像为全绿色图像,则丢弃该yuv数据;音视频同步模块用于设置音频与视频的播放时间钟;渲染播放模块用于播放最终视频。[0101]在一些示例中,native实现层在接收到由java接口层发送的预处理后的数据包之后,首先,视频流配置模块初始化并配置相关参数,将预处理后的数据包放入对应的数据缓冲区;其次,视频流处理模块从数据缓冲区中取出数据进行解码,解码完成后将解码后的数据放入对应的数据缓冲区;然后,解封装模块解封装视频数据流得到es流,再从es流中parse出一帧es数据,并检测es数据中的rbsp是否存在多个连续的“f7df7d”;最后,跨层通信模块将rbsp中包含多个连续的“f7df7d”的es数据发送至framework框架层中的mediacodec模块,以使mediacodec模块对es数据进行处理得到yuv数据并返回给同步渲染模块。[0102]在解封装模块解封装视频数据流的同时,同步渲染模块渲染视频在接收到mediacodec模块发送的yuv数据的情况下,对yuv数据进行绿屏检测。若绿屏检测结果指示yuv数据对应的图像为全绿色图像,则丢弃该yuv数据;然后,音视频同步模块设置音频与视频的播放时间钟并进行音视频同步;最后,渲染播放模块播放最终视频。[0103]在一些示例中,framework框架层用于向native实现层提供编码/解码接口,例如,参考图4所示,framework框架层中包含mediacodec模块,该模块用于接收来自native实现层的es数据并转化为编码方式为yuv格式的数据,然后将yuv数据返回至native实现层。[0104]在一些示例中,硬件实现层是硬件和软件之间的层。硬件实现层至少包含以下驱动中的至少一种:音频驱动、显示驱动、蓝牙驱动、摄像头驱动、wifi驱动、usb驱动、hdmi驱动、传感器驱动(如指纹传感器,温度传感器,压力传感器等)、mic驱动以及电源驱动等。[0105]本技术所涉及的视频数据可以为经用户授权或者经过各方充分授权的数据。[0106]以下实施例中的方法可以在具有上述硬件结构和软件结构的显示设备中实现。对本技术实施例提供的显示方法进行说明。[0107]参照图5所示,本技术实施例提供一种显示方法,应用于显示设备(即被投屏显示设备),该方法可以包括s510-s540:[0108]s510、接收来自投屏设备发送的视频数据。[0109]在一些示例中,显示设备可以接收来自投屏设备发送的视频数据,其中,视频数据可以是视频经过采样压缩后形成的数据,视频数据中可以包括多个帧数据。例如,投屏设备可以是采用mircast投屏协议的手机,显示设备可以是电视机。[0110]在一些示例中,投屏设备与显示设备在同一局域网的情况下,投屏设备收到投屏指令后,投屏设备与显示设备可以建立起通信连接,投屏设备将需要投屏的视频数据进行压缩或调制处理,形成视频数据流并通过局域网发送至显示设备,从而显示设备可以接收该视频数据。[0111]可以理解的是,在另一些示例中,在投屏设备与显示设备在同一局域网的情况下,投屏设备与显示设备可以先建立起通信连接,然后投屏设备再接收投屏指令。本技术对投屏设备接收投屏指令与投屏设备与显示设备建立通信连接的先后顺序不做限定。[0112]例如,投屏设备可以是采用mircast投屏协议的手机,显示设备可以是采用mircast投屏协议的电视机,手机与电视机在同一局域网的情况下,手机的投屏协议端与电视机的投屏协议端建立通信连接,手机的投屏协议端将压缩调制后视频数据发送至电视机的投屏协议端,手机的投屏协议端与电视机的投屏协议端可以执行同一种投屏协议。[0113]可以理解的是,在本技术实施例中,投屏设备发送的视频数据,不仅可以包括音视频数据,也可以包括图像数据、音频数据、音视频混合数据等其他多媒体数据,还可以包括投屏设备显示界面的镜像数据。本技术实施例中对此投屏设备发送的数据的具体类型并不进行限定。在本技术实施例中,为了确定在视频数据中有那些帧数据对应的图像为全绿色图像,首先需要将视频数据分割为多个帧数据,即执行s520。[0114]结合图4所示,在投屏设备与显示设备在同一局域网的情况下,投屏设备将需要投屏的视频数据进行压缩或调制处理,形成视频数据流并利用具备投屏功能的第一应用程序通过局域网发送至显示设备,由显示设备的应用层中的第二应用程序(具备投屏功能的应用程序)接收来自投屏设备发送的视频数据(即s510)。实际中,第一应用程序和第二应用程序可以为同一应用程序或者能够建立投屏连接的不同应用程序。[0115]s520、对视频数据进行分帧处理得到多个帧数据。[0116]在一些示例中,对视频数据进行分帧处理得到多个帧数据,可以包括:将视频数据按视频帧对应的边界信息进行分割,得到多个帧数据。[0117]例如,对视频数据进行分帧处理得到多个帧数据,可以包括:先确定视频帧宽度、视频帧高度、宽高比、帧率、码率、采样格式等边界信息。之后,将视频数据按照上述边界信息进行分割,得到多个帧数据。[0118]为了防止全绿色图像被渲染播放至显示设备,首先需要检测出视频数中是否包含有全绿色图像,从而能够将全绿色图像删除,即执行s530。[0119]结合图4所示,s520具体可以是显示设备中的native实现层的解封装模块对接收到的视频数据进行分帧处理得到多个帧数据。[0120]s530、在第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据。[0121]其中,第一帧数据为对应图像为全绿色图像的帧数据,是由视频数据分割出的多个帧数据中的某个帧数据。需要说明的是,实际中由视频数据分割出的多个帧数据中可以存在多个第一帧数据。[0122]显示设备在分帧处理得到多个帧数据之后,可以先确定多个帧数据中是否存在第一帧数据,第一帧数据为全绿色图像对应的帧数据,若存在第一帧数据,则删除第一帧数据。即,多个帧数据中存在第一帧数据,第一帧数据对应的图像为全绿色图像的情况下,显示设备会丢弃第一帧数据。[0123]在不存在第一帧数据的情况下,显示设备可以显示该多个帧数据。[0124]例如,以显示设备为电视机为例,显示设备可以通过帧数据绘制帧数据对应的图像,然后确定帧数据对应的图像是否为全绿色图像,若帧数据对应的图像是全绿色图像,则确定该帧数据为第一帧数据,并丢弃该第一帧数据,防止该第一帧数据被渲染播放至电视机。[0125]结合图4所示,s530的具体实现可以是:显示设备的native实现层的同步渲染模块在接受到由framework框架层mediacodec模块发送的yuv数据之后对yuv数据进行绿屏检测,若绿屏检测结果指示yuv数据对应的图像为全绿色图像,则丢弃该yuv数据。[0126]在一些示例中,显示设备在丢弃了第一帧数据之后,剩下的帧数据仍然需要被渲染播放。[0127]基于此,在步骤s530之后,该方法还包括步骤s540:[0128]s540、显示第二帧数据,第二帧数据为多个帧数据中除第一帧数据之外的帧数据。[0129]其中,第二帧数据为对应图像不为全绿色图像的帧数据,是由视频数据分割出的多个帧数据中除第一帧数据外的另一部分。[0130]在一些示例中,显示设备在将第二帧数据渲染为视频后,控制显示器播放。[0131]结合图4所示,s540的具体实现可以为:显示设备的native实现层的音视频同步模块与渲染播放模块分别对第二帧数据执行音视频同步操作与渲染播放操作。[0132]在s510至s540对应的技术方案中,显示设备可以对视频数据进行分帧处理得到多个帧数据,在多个帧数据中确定第一帧数据并在第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据。这样一来,可以改善投屏过程中绿屏的问题,防止视频中的全绿色图像被渲染播放至显示设备,提高了用户的使用体验。[0133]在一些示例中,为了确定所有帧数据对应的图像中有哪些帧数据对应的图像是全绿色图像,可以通过每一帧数据对应的图像对应的帧数据判断该帧数据对应的图像是否为全绿色图像。例如,在第一帧数据的颜色部分(用于指示帧数据对应的图像全部像素的颜色)全为预设字符串的情况下,则可以确定该帧数据对应的图像为全绿色图像。基于此,结合图5,参照图6所示,s530具体可以包括s610-s620。[0134]s610、在第一帧数据的颜色部分全为预设字符串的情况下,确定第一帧数据对应的图像为全绿色图像。[0135]在一些示例中,第一帧数据的颜色部分用于指示第一帧数据对应的图像全部像素的颜色,预设字符串是用于指示像素颜色为绿色的字符串。例如,第一帧数据的颜色部分可以为帧数据的rbsp中的颜色相关部分,预设字符串可以为“f7df7d”。[0136]在一些示例中,显示设备在接收到由投屏设备发送的视频数据之后,首先在视频数据中获取第一帧数据,然后检测该第一帧数据中用于指示第一帧数据对应的图像像素颜色的部分,若检测到该部分全部为预设字符串,则可以确定第一帧数据对应的图像为全绿色图像。若检测到该部分不全部为预设字符串,则可以确定第一帧数据对应的图像不为全绿色图像。[0137]例如,显示设备为电视机,投屏设备为手机,帧数据的颜色部分可以为帧数据的rbsp中的颜色相关部分,预设字符串可以为“f7df7d”。电视机在接收到由手机发送的视频数据之后,首先对视频数据进行解封装并parse出一帧的es帧数据,然后检测该es帧数据中rbsp的颜色相关部分的字符串。若该部分的字符串全部为用于指示像素颜色为绿色的“f7df7d”,则可以确定es帧数据对应的图像为全绿色图像。若该部分字符串不全部为用于指示像素颜色为绿色的“f7df7d”,则可以确定es帧数据对应的图像不为全绿色图像。[0138]在一些示例中,检测到第一帧数据对应的图像为全绿色图像后,需要将该第一帧数据进行丢弃处理,即执行s620。[0139]s620、丢弃第一帧数据。[0140]在一些示例中,s620具体为删除被确定为全绿色图像对应的第一帧数据。[0141]在s610至s620中对应的技术方案中,在第一帧数据的颜色部分全为预设字符串的情况下,确定第一帧数据对应的图像为全绿色图像,丢弃第一帧数据。这样一来,上述步骤可以较为准确地从视频数据中确定需要丢弃的第一帧数据,即全绿色图像对应的帧数据,不会存在遗漏,保证了所有全绿色图像对应的帧数据都会被丢弃。[0142]在一些示例中,检测所有帧数据会带来大量不必要的计算量,即并不是每一帧的帧数据都需要被检测。因此,在另一些示例中,可以先筛选出部分帧数据,在从筛选出的帧数据中确定需要丢弃的全绿色图像对应的帧数据。基于此,结合图5,参考图7所示,s530还可以包括s710-s730。[0143]s710、在第一帧数据包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据。[0144]示例性的,预设个数可以为3。实际中,预设个数可以根据具体需求而定,本技术对此不做具体限制。[0145]在一些示例中,显示设备在第一帧数据包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据。其中,第一帧数据为对视频数据分帧后的多个帧数据中的任一帧数据,预设字符串可以是用于指示像素的颜色为绿色的字符串。第一帧数据对应的解析数据可以用于指示帧数据对应的图像的像素明亮度与色度。[0146]在一些示例中,显示设备在接收由投屏设备发送的视频数据之后,首先在视频数据中获取第一帧数据,然后检测该第一帧数据中的原始字节载荷。若发现该原始字节载荷中存在预设个数个连续的预设字符串,则可以认为该第一帧数据对应的图像存在一定概率是全绿色图像。之后,可以对该第一帧数据进行解码得到解析数据,进而方便对该解析数据进行绿屏检测以确认该第一帧数据对应的图像是否为全绿色图像。[0147]若发现该原始字节载荷中不存在设个数个连续的预设字符串,则可以认为该第一帧数据对应的图像不是全绿色图像。之后,可以对该第一帧数据进行解码得到解析数据,进而方便对该解析数据进行音视频同步、渲染播放等操作。[0148]示例性的,以显示设备为电视机,第一帧数据可以为es数据,预设字符串可以为“f7df7d”,第一帧数据对应的解析数据可以为颜色编码方式为yuv的数据为例,电视机在收到视频数据后,首先分出一帧es数据,然后检测该es数据的原始字节载荷。若发现原始字节载荷中有预设个数个连续的“f7df7d”,即该帧es数据对应的图像中有连续的像素颜色为绿色,则将该帧es数据发送至解码器进行解码,并由解码器输出编码方式为yuv的解析数据,进而对该解析数据进行绿屏检测,以确认该第一帧数据对应的图像是否为全绿色图像。[0149]结合图4所示,s710的具体实现可以为:显示设备的native实现层跨层通信模块将包含预设个数个连续的预设字符串的第一帧数据发送至framework框架层mediacodec模块,mediacodec模块将第一帧数据解析为第一帧数据对应的解析数据。[0150]在一些示例中,在筛选包含预设个数个连续的预设字符串的第一帧数据后,可以确定该第一帧数据中对应的图像有预设个数个连续的绿色像素,并不能确定该第一帧数据对应的图像为全绿色图像,所以需要对这些第一帧数据进行进一步的绿屏检测,即执行s720。[0151]s720、对第一帧数据对应的解析数据进行绿屏检测。[0152]其中,绿屏检测用于判定该第一帧数据对应的图像的像素是否全为绿色。例如,可以根据像素的rgb颜色值,判断像素的颜色,进而可以通过各像素的颜色是否全为绿色确定图像是否为全绿色图像。[0153]可以理解的是,还可以通过其他方式对第一帧数据对应的解析数据进行绿屏检测,例如,根据第一帧数据对应的解析数据绘制出第一帧数据对应的图像,然后将该图像与一个或多个全绿的样本图像进行颜色比对,若在该图像上存在任一像素的颜色与全绿样本图像的颜色不一致,则确定该图像不为全绿色图像,否则确定该图像为全绿色图像。本技术对能够检测出图像为全绿色图像的绿屏检测方法不做限定。[0154]在被筛序出的包含预设个数个连续的预设字符串的第一帧数据中,进一步确定了全绿色图像对应的第一帧数据之后,丢弃纯绿色图像对应的第一帧数据,保留其他包含绿色像素的第一帧数据,即执行s730。[0155]s730、在第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据对应的解析数据。[0156]例如,显示设备可以是电视机,电视机在对第一帧数据对应的解析数据进行绿屏检测之后,若确定第一帧数据对应的图像为全绿色图像,则删除第一帧数据对应的解析数据。[0157]在上述s710至s730对应的技术方案中,在第一帧数据包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据,对第一帧数据对应的解析数据进行绿屏检测,在绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,则丢弃第一帧数据对应的解析数据。可见,该技术方案通过筛选出一部分含有连续绿色像素的帧数据对应的图像对应的第一帧数据,并进一步做绿屏检测,降低了在处理视频数据时的计算量,减少了投屏的执行时间,提高了用户的使用体验。[0158]在一些示例中,帧数据的颜色编码方式yuv格式,这种格式的数据用于指示帧数据对应图像的亮度与色度,并不能直接指示帧数据对应的图像像素的颜色。因此,在一些示例中,为了对绿屏图像做出量化显示与判定标准,可以将yuv数据转化为rgb数据,具体的,结合图7,参考图8所示,步骤s720可以包括步骤s810和s820。[0159]s810、在第一帧数据对应的解析数据的颜色编码方式为yuv情况下,将第一帧数据对应的将解析数据转换为目标数据。[0160]其中,目标数据的颜色编码方式为rgb。[0161]在一些示例中,将yuv编码方式的数据转换为rgb编码方式的数据,就是将图像所有像素点的y、u、v分量转换为r、g、b分量。[0162]例如,显示设备可以为电视机,电视机在获取yuv数据后,根据每个像素的y、u、v的分量,可以计算出每个像素rgb分量。具体可参考以下公式一和公式二,其中,y指示像素的明亮度,u、v指示像素的色度,r指示像素红色颜色值,g指示像素的绿色的颜色值,b指示像素的蓝色颜色值。[0163]公式一:[0164][0165]公式二:[0166][0167]在一些示例中,“绿色”的定义并不是严格意义上rgb颜色值为0:255:0的颜色,g颜色值在一定范围内的图像的都可以被判定为是全绿色图像。[0168]s820、在目标数据指示的绿色的颜色值处于预设范围内的情况下,则确定解析数据的绿屏检测结果指示解析数据对应的图像为全绿色图像。[0169]其中,预设范围为用于指示可被判定为绿色的颜色范围,例如,预设范围可以为235-255。[0170]在一些示例中,判断每个像素绿色的颜色值即rgb中的g值是否在预设范围之内,在所有像素的绿色的颜色值均在预设范围内的情况下,可以确定所有像素为绿色,进而可以确定解析数据对应的图像为全绿色图像。[0171]例如,显示设备可以为电视机,预设范围可以为235-255,目标数据为一张1280×720图像的颜色数据,电视机在所有1280×720个像素的绿色的颜色值均在235-255之内时,确定该1280×720图像为全绿色图像,即目标数据对应的图像为全绿色图像。[0172]在上述s810与s820对应的技术方案中,显示设备在第一帧数据对应的解析数据的颜色编码方式为yuv情况下,将第一帧数据对应的解析数据转换为目标数据,在目标数据指示的绿色的颜色值处于预设范围内的情况下,则确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像。由于相比较于yuv数据指示的色度与灰度,rgb数据更为直接地指示出了像素的颜色,因此将yuv数据转化为rgb数据并对rgb数据进行绿屏检测,可以更快速准确地得到绿屏检测结果。[0173]进一步的,因为在该方案中,合理定义了绿色在本方案的颜色范围,增大了本技术提供高的显示方案的灵活性,避免了绿色的颜色值不为255的其他大概率会被用户认为是全绿色的图像被渲染播放至客户端,提高了用户的使用体验。[0174]需要说明的是,若确定某个帧数据对应的图像不为全绿色的图像,则该帧数据仍然要被渲染播放至显示设备。示例性的,结合图8,参考图9所示,渲染并播放非全绿屏图像,可以包括以下步骤s910-s940:[0175]s910、在目标数据指示的绿色的颜色值处于预设范围外的情况下,确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像不为全绿色图像。[0176]其中,预设范围的具体定义可以参照前述实施例中的相关表述,此处不再赘述。[0177]在一些示例中,显示设备判断每个像素绿色的颜色值即rgb中的g值是否在预设范围之外,在任意一个或多个像素绿色的颜色值均在预设范围外的情况下,可以确定存在像素不为绿色,进而可以确定解析数据对应的图像不为全绿色图像。[0178]例如,以显示设备为电视机为例,预设范围可以为235-255,目标数据为一张1280×720图像的颜色数据,在任意一个或多个像素的绿色的颜色值均在235-255之外时,显示设备可以确定该1280×720图像不为全绿色图像,即目标数据对应的图像不为全绿色图像。[0179]在确定某帧数据对应的图像部位全绿色图像的情况下,可以对该帧数据进行音视频同步操作,以生成相应的视频方便显示设备渲染播放,既执行s920。[0180]s920、对第一帧数据对应的解析数据执行音视频同步操作,得到第一待播放数据。[0181]其中,音视频同步为将视频和音频正确匹配播放的过程。例如,音视频同步可以是avsync操作。[0182]在一些示例中,显示设备设置一个独立于视频播放时钟与音频播放时钟的外部时钟,并以外部时钟为基准,视频与音频的播放速度都以该外部时钟为标准。当视频播放时钟比音频播放时钟慢时,显示设备暂停音频等待视频追上或者视频通过丢帧追上音频,当视频播放时钟比音频播放时钟快时,显示设备暂停视频等待音频追上或者音频通过丢帧追上视频。在音视频同步完成后,显示设备将音视频同步后的数据作为待播放数据。[0183]在一些示例中,对音视频同步后的数据进行渲染并播放,即执行s930。[0184]s930、渲染第一待播放数据。[0185]在一些示例中,显示设备渲染第一待播放数据。其中,渲染是根据待播放数据形成视频的过程。显示设备根据待播放数据,确定每个像素的颜色、源图像亮度、输出图像亮度、源图像高度、输出图像高度、源图像宽度、输出图像宽度、视频播放时间戳、音频播放时间戳等参数,根据上述参数合成音视频数据并在显示设备的显示界面播放,即执行s940。[0186]s940、播放渲染之后的第一待播放数据。[0187]在一些示例中,显示设备的控制器控制显示器播放渲染之后的第一待播放数据。[0188]在上述s910至s940对应的技术方案中,显示设备在目标数据指示的绿色的颜色值处于预设范围外的情况下,确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像不为全绿色图像,对第一帧数据对应的解析数据执行音视频同步操作,得到第一待播放数据,渲染第一待播放数据,播放渲染之后的第一待播放数据。该技术方案使得所有包含连续绿色像素但不为全绿色的图像能够被渲染播放,保证了视频与方案的完整性。[0189]可以理解的是,在实际应用中,显示设备在丢弃或者渲染播放某一帧数据之后,需要检测是否还有其他帧数据未被丢弃或者未被渲染播放。若存在未被丢弃或者未被渲染播放的帧数据,则显示设备将检测该帧数据对应的图像是否为全绿色图像,以便后续丢弃或者渲染播放。若不存在未被丢弃或者未被渲染播放的帧数据,则本次投屏显示过程结束。[0190]在一些示例中,可能存在多个连续帧对应的图像都为全绿色图像的情况,此时如果直接全部丢弃会被观众察觉,从而降低了观看体验。基于此,结合图10所示,本方法还包括:在第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,显示提示信息。[0191]其中,提示信息用于指示用户显示设备处于投屏过程中。[0192]在一些示例中,在第一帧数据对应的图像被确定为全绿色图像的情况下,在显示设备的显示界面播放含有提示信息图像来替代全绿色图像,提示信息可以是“正在投屏中请稍后”或其他提示用户投屏设备正处于投屏过程的信息。进一步的,当有多个连续帧的被确定为全绿色图像时,在显示设备的显示界面轮播一定时长的提示视频,提示视频可以包含多种表现提示信息的载体,例如图像、音效、人工语音、动画等。[0193]这样一来,便避免了当连续的全绿色图像被丢弃时给观众造成的丢帧视觉体验。[0194]在一些实施例中,在第一帧数据不包含预设个数个连续的预设字符串的情况下,仍然要对第一帧数据进行解析渲染等操作以实现对该第一帧数据的播放。具体的,结合图7,参考图11所示,渲染播放不包含连续绿色像素的图像,包括以下步骤s1110~s1140。[0195]s1110、在第一帧数据不包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据。[0196]其中,解析数据为颜色编码方式为yuv格式的数据。[0197]在一些示例中,显示设备将不包含连续绿色像素图像对应的帧数据发送至解码器,解码器将帧数据解码为颜色编码方式为yuv格式的数据。[0198]在一些示例中,显示设备对不包含连续绿色像素的图像进行音频与视频同步,以便后续渲染播放,即执行s1120。[0199]s1120、对第一帧数据对应的解析数据执行音视频同步操作,得到第二待播放数据。[0200]在一些示例中,显示设备对第一帧数据对应的解析数据执行音视频同步操作,得到第二待播放数据。其中,音视频同步为将视频和音频正确匹配播放。举例而言,音视频同步可以是avsync操作。[0201]在一些示例中,显示设备设置一个独立于视频播放时钟与音频播放时钟的外部时钟,并以外部时钟为基准,视频与音频的播放速度都以该外部时钟为标准,当视频播放时钟比音频播放时钟慢时,暂停音频等待视频追上或者视频通过丢帧追上音频,以实现音视频同步;当视频播放时钟比音频播放时钟快时,暂停视频等待音频追上或者音频通过丢帧追上视频,以实现音视频同步。将音视频同步后的数据作为待播放数据。[0202]s1130、渲染第二待播放数据。[0203]在一些示例中,渲染第二待播放数据。其中,渲染是根据待播放数据形成视频的过程。[0204]在一些示例中,显示设备根据第二待播放数据,确定每个像素的颜色、源图像亮度、输出图像亮度、源图像高度、输出图像高度、源图像宽度、输出图像宽度、视频播放时间戳、音频播放时间戳等参数,根据上述参数合成音视频数据并在显示设备的显示界面播放,即执行s1140。[0205]s1140中、播放渲染之后的第二待播放数据。[0206]在一些示例中,显示设备的控制器控制显示器播放渲染之后的第二待播放数据。[0207]基于s1110-s1140对应的技术方案,显示设备在第一帧数据不包含预设个数个连续的预设字符串的情况下,可以对该第一帧数据执行解析、音视频同步、渲染播放等操作。这样一来,便使得所有不为全绿色的图像能够被渲染播放,保证了视频与方案的完整性。在本技术的一种示例实施例中,以手机为投屏设备,以电视机为被投屏设备,播放器为ijkplayer,投屏协议为mircast为例,本技术提供的显示方法可以包括如图12所示的过程,参考图12所示,本技术提供的显示方法具体可以包括:[0208]1,手机采样并压缩视频数据。例如,投屏设备根据rtsp协议对对视频数据进行封包并实时传输,即按照rtp数据包格式来封装视频流数据并发送至显示设备。[0209]2,电视机解析数据包。例如,显示设备的通信器在收到由投屏设备发送的数据包之后,根据相同的协议对数据包进行解协议,得到es(即基本码流)数据。[0210]3,电视机创建ijkplayer播放器。例如,显示设备的控制器创建ijkplayer播放器,[0211]4,电视机初始化播放器并配置相关参数。例如,初始化ijkplayer播放器界面、设置播放路径、并对解协议后的es数据进行预处理。[0212]5,电视机解封装。[0213]例如,首先对解复用器进行初始化,然后将处于封装格式的es数据发送至解复用器内,最后通过解复用器对es数据进行解封装。[0214]6,电视机parse分帧。[0215]例如,确定视频帧宽度、视频帧高度、宽高比、帧率、码率、采样格式等边界信息,将es数据按照上述边界信息分割,得到多个帧数据。[0216]步骤6的具体实现可以参照前述实施例中s520的具体表述,此处不再赘述。[0217]7,电视机检测字符串。[0218]例如,检测帧数据的nalu中的rbsp,若确定含有多个连续的“f7df7d”字符串,则执行8,否则执行9。[0219]7的具体实现可以参照前述实施例中s710的具体表述,此处不再赘述。[0220]8,电视机将字符串检测结果通知到render端。[0221]例如,记录nalu中的rbsp含有多个连续的“f7df7d”字符串的帧数据并通知到render端。[0222]9,电视机解码。例如,将nalu中的rbsp含有多个连续的“f7df7d”字符串的帧数据送至解码器解码,得到颜色编码方式为yuv格式的解析数据。[0223]9的具体实现可以参照前述实施例中s710的具体表述,此处不再赘述[0224]10,电视机解码。例如,将nalu中的rbsp不含有多个连续的“f7df7d”字符串的帧数据送至解码器解码,得到颜色编码方式为yuv格式的解析数据。解码结束后直接执行13进行渲染播放。[0225]10的具体实现可以参照前述实施例中s1110的具体表述,此处不再赘述。[0226]11,电视机绿屏检测。例如,将yuv格式的解析数据转为rgb格式的解析数据,并通过g的值确定该解析数据对应的图像是否为全绿色图像。若是全绿色图像,执行12,否则,执行13。[0227]11的具体实现可以参照前述实施例中s810的具体表述,此处不再赘述。[0228]12,电视机丢帧处理。例如,删除绿屏检测结果为指示对应的图像为全绿色图像的解析数据。[0229]12的具体实现可以参照前述实施例中s820的具体表述,此处不再赘述。[0230]13,电视机渲染播放。例如,首先进行音视频同步,音视频同步后渲染解析数据为视频并播放。[0231]13的具体实现可以参照前述实施例中s540的具体表述,此处不再赘述。[0232]14,电视机检测是否还有帧数据。例如,若检测到还存在未处理的帧数据,则返回s1260,否则执行15。[0233]15,流程结束。[0234]上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。[0235]本技术实施例可以根据上述方法示例对显示设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。[0236]参照图13所示,本技术实施例提供一种显示设备,该显示设备可以包括接收模块131、分帧模块132、丢帧模块133和显示模块134。[0237]具体的,接收模块131,用于接收来自投屏设备发送的视频数据;分帧模块132,用于对视频数据进行分帧处理得到多个帧数据;丢帧模块133,用于确定分帧模块得到的多个帧数据中的第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据;第一帧数据为多个帧数据中的帧数据;显示模块134,用于显示分帧模块得到的所述多个帧数据中的第二帧数据,第二帧数据为多个帧数据中除第一帧数据之外的帧数据。[0238]在一中可能的实现方式中,丢帧模块133具体用于:在第一帧数据的颜色部分全为预设字符串的情况下,确定第一帧数据对应的图像为全绿色图像;其中,第一帧数据的颜色部分用于指示第一帧数据对应的图像全部像素的颜色;丢弃第一帧数据。[0239]在一中可能的实现方式中,丢帧模块133具体用于:在第一帧数据包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据;对第一帧数据对应的解析数据进行绿屏检测;在第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据对应的解析数据。[0240]在一中可能的实现方式中,丢帧模块133具体用于:在第一帧数据对应的解析数据的颜色编码方式为yuv情况下,将第一帧数据对应的解析数据转换为目标数据;目标数据的颜色编码方式为rgb;在目标数据指示的绿色的颜色值处于预设范围内的情况下,则确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像。[0241]在一中可能的实现方式中,丢帧模块133具体用于:在目标数据指示的绿色的颜色值处于预设范围外的情况下,确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像不为全绿色图像;对第一帧数据对应的解析数据执行音视频同步操作,得到第一待播放数据;渲染第一待播放数据;控制显示器播放渲染之后的第一待播放数据。[0242]在一中可能的实现方式中,丢帧模块133具体用于:在第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,显示提示信息;提示信息用于指示用户显示设备处于投屏过程中。[0243]在一中可能的实现方式中,丢帧模块133具体用于:在第一帧数据不包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据;对第一帧数据对应的解析数据执行音视频同步操作,得到第二待播放数据;渲染第二待播放数据;控制显示器播放渲染之后的第二待播放数据。[0244]应理解以上装置中单元或模块(以下均称为单元)的划分仅仅是一种逻辑功能的划分,实际实现时可以全部或部分集成到一个物理实体上,也可以物理上分开。且装置中的单元可以全部以软件通过处理元件调用的形式实现;也可以全部以硬件的形式实现;还可以部分单元以软件通过处理元件调用的形式实现,部分单元以硬件的形式实现。[0245]例如,各个单元可以为单独设立的处理元件,也可以集成在装置的某一个芯片中实现,此外,也可以以程序的形式存储于存储器中,由装置的某一个处理元件调用并执行该单元的功能。此外这些单元全部或部分可以集成在一起,也可以独立实现。这里的处理元件又可以称为处理器,可以是一种具有信号的处理能力的集成电路。在实现过程中,上述方法的各步骤或以上各个单元可以通过处理器元件中的硬件的集成逻辑电路实现或者以软件通过处理元件调用的形式实现。[0246]在一个例子中,以上装置中的单元可以是被配置成实施以上方法的一个或多个集成电路,例如:一个或多个asic,或,一个或多个dsp,或,一个或者多个fpga,或这些集成电路形式中至少两种的组合。[0247]再如,当装置中的单元可以通过处理元件调度程序的形式实现时,该处理元件可以是通用处理器,例如cpu或其它可以调用程序的处理器。再如,这些单元可以集成在一起,以片上系统soc的形式实现。[0248]在一种实现中,以上装置实现以上方法中各个对应步骤的单元可以通过处理元件调度程序的形式实现。例如,该装置可以包括处理元件和存储元件,处理元件调用存储元件存储的程序,以执行以上方法实施例的显示方法。存储元件可以为与处理元件处于同一芯片上的存储元件,即片内存储元件。[0249]在另一种实现中,用于执行以上方法的程序可以在与处理元件处于不同芯片上的存储元件,即片外存储元件。此时,处理元件从片外存储元件调用或加载程序于片内存储元件上,以调用并执行以上方法实施例的显示方法。[0250]参照图14所示,本技术实施例还提供一种显示设备,包括显示器141;通信器143,被配置为接收来自投屏设备发送的视频数据;其中,视频数据包含多个帧数据;处理器142,分别与显示器于通信器耦接,且被配置为:对视频数据进行分帧处理得到多个帧数据;在第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据;第一帧数据为多个帧数据中的帧数据;控制显示器显示第二帧数据,第二帧数据为多个帧数据中除第一帧数据之外的帧数据。[0251]在一种可能的实现方式中,处理器142,被配置为在所述第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据,包括:在第一帧数据的颜色部分全为预设字符串的情况下,确定第一帧数据对应的图像为全绿色图像;其中,第一帧数据的颜色部分用于指示第一帧数据对应的图像全部像素的颜色;丢弃第一帧数据。[0252]在一种可能的实现方式中,处理器142,被配置为在所述第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据,包括:在第一帧数据包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据;对第一帧数据对应的解析数据进行绿屏检测;在第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据对应的解析数据。[0253]在一种可能的实现方式中,处理器142,被配置为对所述第一帧数据对应的解析数据进行绿屏检测,包括:在第一帧数据对应的解析数据的颜色编码方式为yuv情况下,将第一帧数据对应的解析数据转换为目标数据;目标数据的颜色编码方式为rgb;在目标数据指示的绿色的颜色值处于预设范围内的情况下,则确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像。[0254]在一种可能的实现方式中,处理器142还被配置为:在目标数据指示的绿色的颜色值处于预设范围外的情况下,确定第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像不为全绿色图像;对第一帧数据对应的解析数据执行音视频同步操作,得到第一待播放数据;渲染第一待播放数据;控制显示器播放渲染之后的第一待播放数据。[0255]在一种可能的实现方式中,处理器142还被配置为:第一帧数据对应的解析数据的绿屏检测结果指示第一帧数据对应的图像为全绿色图像的情况下,显示提示信息;提示信息用于指示用户显示设备处于投屏过程中。[0256]在一种可能的实现方式中,处理器142还被配置为:在第一帧数据不包含预设个数个连续的预设字符串的情况下,对第一帧数据进行解析得到第一帧数据对应的解析数据;对第一帧数据对应的解析数据执行音视频同步操作,得到第二待播放数据;渲染第二待播放数据;控制显示器播放渲染之后的第二待播放数据。[0257]在一种可能的实现方式中,预设字符串为f7df7d。[0258]本技术实施例还提供一种显示设备,该显示设备可以包括:显示屏、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,显示设备可执行上述方法实施例中显示设备(如电视机)执行的各个功能或者步骤。[0259]例如,本技术实施例还提供一种芯片,该芯片可以应用于上述显示设备或服务器。芯片包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;处理器通过接口电路从显示设备的存储器接收并执行计算机指令,以实现以上方法实施例中的方法。[0260]本技术实施例还提供一种计算机可读存储介质,其上存储有计算机程序指令(或称为指令)。当计算机程序指令被显示设备执行时,使得显示设备可以实现如上述的显示方法。[0261]本技术实施例还提供一种计算机程序产品,包括如上述显示设备运行的计算机指令,当计算机程序产品在显示设备中运行时,使得显示设备实可以现如上述的显示方法。[0262]通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。[0263]在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。[0264]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0265]另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。[0266]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,如:程序。该软件产品存储在一个程序产品,如计算机可读存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。[0267]以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。当前第1页12当前第1页12
技术特征:
1.一种显示设备,其特征在于,所述显示设备包括:显示器;通信器,被配置为接收来自投屏设备发送的视频数据;处理器,分别与所述显示器于所述通信器耦接,且被配置为:对所述视频数据进行分帧处理得到多个帧数据;在第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据;其中,所述第一帧数据为所述多个帧数据中的帧数据;控制所述显示器显示第二帧数据,所述第二帧数据为所述多个帧数据中除所述第一帧数据之外的帧数据。2.根据权利要求1所述的显示设备,其特征在于,所述处理器,被配置为在所述第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据,包括:在所述第一帧数据的颜色部分全为预设字符串的情况下,确定所述第一帧数据对应的图像为全绿色图像;其中,所述第一帧数据的颜色部分用于指示所述第一帧数据对应的图像全部像素的颜色;丢弃所述第一帧数据。3.根据权利要求1所述的显示设备,其特征在于,所述处理器,被配置为在所述第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据,包括:在所述第一帧数据包含预设个数个连续的预设字符串的情况下,对所述第一帧数据进行解析得到所述第一帧数据对应的解析数据;对所述第一帧数据对应的解析数据进行绿屏检测;在所述第一帧数据对应的解析数据的绿屏检测结果指示所述第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据对应的解析数据。4.根据权利要求3所述的显示设备,其特征在于,所述处理器,被配置为对所述第一帧数据对应的解析数据进行绿屏检测,包括:在所述第一帧数据对应的解析数据的颜色编码方式为yuv情况下,将所述第一帧数据对应的解析数据转换为目标数据;所述目标数据的颜色编码方式为rgb;在所述目标数据指示的绿色的颜色值处于预设范围内的情况下,则确定所述第一帧数据对应的解析数据的绿屏检测结果指示所述第一帧数据对应的图像为全绿色图像。5.根据权利要求4所述的显示设备,其特征在于,所述处理器,还被配置为:在所述目标数据指示的绿色的颜色值处于预设范围外的情况下,确定所述第一帧数据对应的解析数据的绿屏检测结果指示所述第一帧数据对应的图像不为全绿色图像;对所述第一帧数据对应的解析数据执行音视频同步操作,得到第一待播放数据;渲染所述第一待播放数据;控制所述显示器播放渲染之后的第一待播放数据。6.根据权利要求3-5中任一项所述的显示设备,其特征在于,所述处理器,还被配置为:在所述第一帧数据对应的解析数据的绿屏检测结果指示所述第一帧数据对应的图像为全绿色图像的情况下,显示提示信息;所述提示信息用于指示用户所述显示设备处于投屏过程中。7.根据权利要求3所述的显示设备,其特征在于,所述处理器,还被配置为:
在所述第一帧数据不包含预设个数个连续的预设字符串的情况下,对所述第一帧数据进行解析得到所述第一帧数据对应的解析数据;对所述第一帧数据对应的解析数据执行音视频同步操作,得到第二待播放数据;渲染所述第二待播放数据;控制所述显示器播放渲染之后的第二待播放数据。8.一种显示方法,其特征在于,应用于显示设备,所述显示方法包括:接收来自投屏设备发送的视频数据;对所述视频数据进行分帧处理得到多个帧数据;在第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据;所述第一帧数据为所述多个帧数据中的帧数据;显示第二帧数据,所述第二帧数据为所述多个帧数据中除所述第一帧数据之外的帧数据。9.一种显示装置,其特征在于,所述显示装置包括:接收模块,用于接收来自投屏设备发送的视频数据;分帧模块,用于对所述接收模块接收的所述视频数据进行分帧处理得到多个帧数据;丢帧模块,用于确定所述分帧模块得到的所述多个帧数据中的第一帧数据对应的图像为全绿色图像的情况下,丢弃所述第一帧数据;显示模块,用于显示所述分帧模块得到的所述多个帧数据中的第二帧数据,所述第二帧数据为所述多个帧数据中除所述第一帧数据之外的帧数据。10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有指令,当所述计算机可读存储介质中的指令由显示设备的处理器执行时,使得所述显示设备能够执行如权利要求8所述的显示方法。

技术总结
本申请实施例公开了一种显示方法和显示设备,涉及显示技术领域,能够解决投屏过程中的绿屏问题,提高了用户的使用体验。具体方案包括:接受来自投屏设备发送的视频数据;对视频数据进行分帧得到多个帧数据;在第一帧数据对应的图像为全绿色图像的情况下,丢弃第一帧数据;第一帧数据为多个帧数据中的帧数据;显示第二帧数据,第二帧数据为多个帧数据中除第一帧数据之外的帧数据。一帧数据之外的帧数据。一帧数据之外的帧数据。


技术研发人员:邢芳 李斌
受保护的技术使用者:海信视像科技股份有限公司
技术研发日:2023.03.27
技术公布日:2023/7/26
版权声明

本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

飞行汽车 https://www.autovtol.com/

分享:

扫一扫在手机阅读、分享本文

相关推荐