CN113905256A - 支持交互式观看的视频数据处理方法、设备及系统 - Google Patents
支持交互式观看的视频数据处理方法、设备及系统 Download PDFInfo
- Publication number
- CN113905256A CN113905256A CN202111505299.2A CN202111505299A CN113905256A CN 113905256 A CN113905256 A CN 113905256A CN 202111505299 A CN202111505299 A CN 202111505299A CN 113905256 A CN113905256 A CN 113905256A
- Authority
- CN
- China
- Prior art keywords
- video
- client
- interest
- level
- picture
- 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
- 230000002452 interceptive effect Effects 0.000 title claims abstract description 100
- 238000003672 processing method Methods 0.000 title claims abstract description 43
- 230000004044 response Effects 0.000 claims abstract description 11
- 238000000034 method Methods 0.000 claims description 84
- 238000012545 processing Methods 0.000 claims description 17
- 238000004590 computer program Methods 0.000 claims description 10
- 238000005070 sampling Methods 0.000 claims description 5
- 238000000638 solvent extraction Methods 0.000 claims description 3
- 230000011218 segmentation Effects 0.000 description 47
- 230000008569 process Effects 0.000 description 42
- 238000010586 diagram Methods 0.000 description 30
- 238000003860 storage Methods 0.000 description 9
- 238000005192 partition Methods 0.000 description 8
- 238000004891 communication Methods 0.000 description 7
- 230000033001 locomotion Effects 0.000 description 7
- 230000005540 biological transmission Effects 0.000 description 6
- 230000003993 interaction Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 5
- 238000005520 cutting process Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 238000010276 construction Methods 0.000 description 4
- 238000004458 analytical method Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 238000004519 manufacturing process Methods 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000004075 alteration Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000010801 machine learning Methods 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013527 convolutional neural network Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013136 deep learning model Methods 0.000 description 1
- 230000000593 degrading effect Effects 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012417 linear regression Methods 0.000 description 1
- 238000007477 logistic regression Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000036961 partial effect Effects 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000007637 random forest analysis Methods 0.000 description 1
- 230000006798 recombination Effects 0.000 description 1
- 238000005215 recombination Methods 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012706 support-vector machine Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
-
- 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/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/234—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs
- H04N21/2343—Processing of video elementary streams, e.g. splicing of video streams or manipulating encoded video stream scene graphs involving reformatting operations of video signals for distribution or compliance with end-user requests or end-user device requirements
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本公开提供支持交互式观看的视频数据处理方法、设备及系统。所述支持交互式观看的视频数据处理方法包括:将视频画面分割为多个网格;对于所述多个网格中的每个网格,分配专用于该网格的视频编码器以对该网格的视频数据流进行编码;以及响应于客户端的视频播放请求,提供所述多个网格中的至少一个网格的经编码视频数据流。根据所述支持交互式观看的视频数据处理方法,只要网络带宽允许,就可以为无数客户端提供交互式视频观看服务,尤其是在进行交互式观看的客户端的设备数量众多的情况下,能够有效缓解服务端的视频编码器资源紧张问题。
Description
技术领域
本公开涉及视频数据处理。更具体地,本公开涉及支持交互式观看的视频数据处理方法、设备及系统。
背景技术
随着视频拍摄硬件性能的不断提升,8K(3300万像素)及更高像素的视频拍摄设备已经或将要出现,而且基于多路拍摄设备的多路拍摄画面来拼接全景超高清视频的技术也在不断发展。相应的,采用多种方式获得高分辨率视频源已成为可能。然而,与之对应的客户端受限于屏幕分辨率,无法充分展现高分辨率视频源的内容。图1示出了视频源的相对较高的原始视频分辨率与客户端的相对较低的屏幕分辨率的比较示意图。如图1中示意性所示,视频源的原始视频分辨率为3840×2160,而客户端的屏幕分辨率为1920×1080。由于客户端的屏幕分辨率小于视频源的分辨率,因此如果客户端屏幕以点对点的方式展现视频源画面时,只能显示视频源画面中的部分区域,导致影响用户对视频内容的观看体验。在这种情况下,客户端可以采用以下两种方式播放视频源内容。
在第一种方式中,客户端可以对视频源画面进行下采样,降低分辨率从而适配客户端的屏幕分辨率,这也是目前常规系统所采用的方式。然而,该方式的问题是无法充分展现视频源内容的细节,从而降低了用户的视觉体验。
在第二种方式中,使客户端的用户可以与提供视频源的服务端进行实时交互,服务端可以根据客户端的请求提供其感兴趣区域的视频内容,从而使客户端可以按需展现视频源的任何区域的视频内容。然而,这种方式中,当与服务端交互的客户端的数量巨大时,服务端处存在视频编码器资源紧张的问题。
因此,需要在视频源分辨率高于客户端屏幕分辨率的情况下,提供一种改进的视频数据处理技术,从而能够支持用户体验良好的交互式观看。
发明内容
根据本公开的一个方面,提供了一种支持交互式观看的视频数据处理方法,包括:将视频画面分割为多个网格;对于所述多个网格中的每个网格,分配专用于该网格的视频编码器以对该网格的视频数据流进行编码;以及响应于客户端的视频播放请求,提供所述多个网格中的至少一个网格的经编码视频数据流。
根据本公开的另一方面,提供了一种视频数据处理方法,包括:获得相同视频内容的具有不同分辨率的多级视频画面;将所述多级视频画面中的每级视频画面分割为多个网格;对于每级视频画面的多个网格中的每个网格,分配专用于该网格的视频编码器;以及利用各个视频编码器对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流。
根据本公开的另一方面,提供了一种支持交互式观看的视频数据处理设备,包括:处理器;以及存储器,存储有计算机程序指令,其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:获得相同视频内容的具有不同分辨率的多级视频画面;将所述多级视频画面中的每级视频画面分割为多个网格;对于每级视频画面的多个网格中的每个网格,分配专用于该网格的视频编码器;以及利用各个视频编码器对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流。
根据本公开的另一方面,提供了一种支持交互式观看的系统,包括:服务端,被配置为:获得相同视频内容的具有不同分辨率的多级视频画面;将所述多级视频画面中的每级视频画面分割为多个网格;以及对于每级视频画面的多个网格中的每个网格,分配专用于该网格的视频编码器;利用各个视频编码器对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流。该系统还包括:客户端,被配置为向服务端发送视频播放请求。所述服务端还被配置为:响应于客户端的视频播放请求,从所述多级画面中选择与所述客户端的解码能力相匹配的视频画面;在所选择的视频画面的多个网格中确定与所述视频播放请求所请求的视频内容相对应的至少一个网格;以及向所述客户端提供所述至少一个网格的经编码视频数据流。
根据本公开的再一方面,提供了一种计算机可读存储介质,其上存储有计算机程序指令,其中,所述计算机程序指令在被执行时实现上述支持交互式观看的视频数据处理方法。
附图说明
从下面结合附图对本公开实施例的详细描述中,本公开的这些和/或其它方面和优点将变得更加清楚并更容易理解,其中:
图1示出了视频源的原始分辨率与客户端的屏幕分辨率的比较示意图。
图2示出了现有方法中客户端对视频源进行交互式观看的过程的示意图。
图3是示出了根据本公开实施例的支持交互式观看的视频数据处理方法的流程图。
图4示出了根据本公开实施例的支持交互式观看的视频数据处理方法的示意图。
图5A示出了根据本公开实施例的支持交互式观看的视频数据处理方法中确定视频画面中的感兴趣区域的坐标信息的示意图。
图5B示出了根据本公开实施例的支持交互式观看的视频数据处理方法中根据感兴趣区域的坐标信息确定与感兴趣区域对应的网格的示意图。
图6示出了根据本公开实施例的支持交互式观看的视频数据处理方法中在客户端处呈现与感兴趣区域对应的视频画面的示意图。
图7示出了根据本公开实施例的支持交互式观看的视频数据处理方法中客户端处指定了完整画面中的相对较大部分作为感兴趣区域的示意图。
图8是示出了根据本公开实施例的支持交互式观看的视频数据处理方法的另一示例的流程图。
图9示出了根据本公开实施例的支持交互式观看的视频数据处理方法中具有不同分辨率的多级视频画面的示意性视图。
图10示出了根据本公开实施例的支持交互式观看的视频数据处理方法中在各级视频画面中确定与感兴趣区域对应的若干网格的示意性视图。
图11示出了根据本公开实施例的支持交互式观看的视频数据处理方法中客户端与服务端之间交互的示例的示意图。
图12示出了根据本公开实施例的支持交互式观看的视频数据处理方法中客户端与服务端之间交互的另一示例的示意图。
图13示出了根据本公开实施例的支持交互式观看的视频数据处理方法中确定视频源中的高感兴趣区域和低感兴趣区域的示意图。
图14示出了根据本公开实施例的支持交互式观看的视频数据处理方法中对视频画面进行非均匀网格化分割的示意图。
图15示出了根据本公开实施例的支持交互式观看的视频数据处理设备的示意性硬件框图。
图16示出了根据本公开实施例的支持交互式观看的视频数据处理设备的示意性结构框图。
具体实施方式
为了使本领域技术人员更好地理解本公开,下面结合附图和具体实施方式对本公开作进一步详细说明。
首先,对本公开的改进的视频数据处理技术的基本思想进行简要的概述。如前所述,虽然某些技术可以基于客户端的请求来按需展现视频源的感兴趣区域的视频内容,然而,当与服务端交互的客户端的数量巨大时,服务端处存在视频编码器资源紧张的问题。图2示出了现有方法中客户端对超出其屏幕分辨率的视频源进行交互式观看的过程的示意图。如图2所示,该交互式观看的过程主要包括以下步骤:
1. 客户端基于用户的操作,确定视频画面中的感兴趣区域。
2. 客户端将包含有关该感兴趣区域的信息的播放请求发送至服务端。
3. 服务端从完整视频源画面中切出与感兴趣区域对应的一部分。
4. 服务端对切出的画面部分进行编码压缩以得到经编码视频数据。
5. 服务端将经编码视频数据回传给客户端。
6. 客户端对接收到的经编码视频数据进行解码并呈现感兴趣区域画面。
在实际的观看过程中,由于每个用户想要观看的感兴趣区域并不相同,而且在观看过程中也会不断变化,因此每个客户端是独立操作的,并且会向服务端发送特定于该客户端的播放请求。相应的,服务端在接收到各个客户端发来的播放请求后,需要根据各个客户端指定的彼此不同的感兴趣区域,实时地从完整视频源画面中切出与之对应的多个彼此不同的画面部分并且编码压缩后回传给相应的客户端。为了实现真正的交互式观看效果,必须在服务端为每一个用户提供一个独立的视频编码器,从而满足该用户对于其感兴趣区域的独特观看需求。然而,例如对于大型直播场景(例如,世界杯足球赛)来说,客户端数量是极为巨大的,同时观看直播的客户端数量可达到亿级。而服务端的硬件视频编码器数量是有限的,比如电视台一个频道往往只需要一个视频编码器,一块高端显卡也只能内置20个左右的视频编码器,且视频编码器的价格昂贵,因此通过堆叠视频视频编码器的方式无法支撑大量客户端交互直播的业务。因此,现有的交互式观看方法无法解决“无限数量”客户端交互观看的业务应用场景。
有鉴于此,本公开提出视频画面的网格化分割和特定于网格的视频编码器分配的思想,首先对高分辨率的视频源进行网格化分割,然后对于分割后得到的每个网格分配专用于该网格的视频编码器对视频数据进行编码。相比于现有的交互式观看方法中为每个客户端分配其专属视频编码器的方式而言,通过采用本公开所提出的方案对视频源的视频数据进行处理,能够缓解服务端的视频编码器资源紧张问题,尤其是在进行交互式观看的客户端的设备数量众多的情况下。可以理解,本公开描述的改进的视频数据处理技术可以应用于交互式直播/点播系统,从而支持大量客户端对超过客户端屏幕分辨率的直播视频或点播视频进行交互式观看。例如,用户可以通过客户端与提供视频直播内容或点播内容的服务端交互,从而从完整画面中获取其感兴趣的区域进行观看。需说明的是,在以下描述中可以将具有高分辨率的原始视频内容称为视频源或视频画面,并且该视频源或视频画面可以对应于直播视频或点播视频的视频内容,本公开不对视频源或视频画面中所描绘的具体画面内容进行限制。
实施例1
图3是示出了根据本公开实施例的支持交互式观看的视频数据处理方法的流程图。图4示出了根据本公开实施例的支持交互式观看的视频数据处理方法的示意图。下面具体结合图3和图4描述该视频数据处理方法。
如图3所示,在步骤S101,将视频画面分割为多个网格。如以上所描述的,视频画面可以指分辨率高于客户端的常见分辨率的视频源的各帧画面,并且其可以具有直播或点播视频内容。另外,该视频画面可以采用多种方式获得。例如,可以通过多台拍摄设备进行拍摄,然后对多个拍摄画面进行拼接以获得全景高清视频画面。优选的,可以采用亿级及更高像素的拍摄设备直接进行拍摄以获得该视频画面,从而省去对多台拍摄设备的维护保养以及对多个视频画面的拼接等需要。可以理解,在本公开实施例中“视频画面”、“像素画面”等术语可以互换使用。需说明的是,本公开不对视频画面的获取方式进行限制。
如图4所示,可以在服务端对亿级像素画面进行网格化分割处理,例如,可以将1亿像素的视频画面分割为10×10个网格,每个网格的分辨率为1000×1000,例如网格1、网格2、……、网格100。同时,在对视频画面进行网格化分割的过程中,可以生成并记录与网格化分割过程相关的网格化信息,例如:视频画面的原始分辨率、网格数量、网格大小以及网格坐标等等。举例而言,网格1的网格大小为1000×1000且网格坐标为(0,0),以此类推。可以理解,以上所描述的视频画面的分辨率、网格大小、网格数量等仅为示意性举例,本公开的网格化分割不限于上述具体的数值举例。
优选的,服务端在对视频画面进行网格化分割时,可以考虑常见客户端的解码能力。例如,对视频画面进行网格化分割后的每个网格的大小应远小于常见客户端的解码能力,即,考虑到用户期望观看的视频画面可能对应于不止一个网格,因此网格化分割的结果应该使客户端能够同时对若干个网格的视频数据进行实时解码。基于现有的常见客户端设备的解码能力,可以以每个网格不超过10万像素为基准,对视频画面进行网格化分割。
返回图3,在步骤S102,对于所述多个网格中的每个网格,分配专用于该网格的视频编码器以对该网格的视频数据流进行编码。如上所述,与现有交互式观看方法中为每个客户端分配专用于该客户端的视频编码器不同,本步骤S102中,在对视频画面进行了网格化分割的基础上,可以为每个网格分配专用于该网格的视频编码器。继续结合图4描述,可以为网格1分配其专属的视频编码器1,从而利用视频编码器1对网格1的视频数据流进行编码,以获得网格1的经编码视频数据流,以此类推。可以理解,在本公开实施例中,网格的“经编码视频数据流”、“视频流”、“视频数据”等术语可以互换使用。相应地,服务端可以对这些网格画面独立地进行编码,以网格为单位形成10×10个经编码视频流。
在步骤S103,响应于客户端的视频播放请求,提供所述多个网格中的至少一个网格的经编码视频数据流。如上所述,在交互式观看的过程中,用户可以通过客户端与提供视频内容的服务端交互,例如用户可以实时对客户端的屏幕上显示的视频画面进行拖拽操作,从而从完整视频画面中获取其感兴趣的区域进行观看。相应的,客户端的视频播放请求中可以包括与客户指定的感兴趣区域相关的信息。由于用户期望观看的感兴趣区域的画面可能对应于不止一个网格,因此,在步骤S103中,可以首先根据客户端指定的视频画面中的感兴趣区域,从视频画面的多个网格中确定与感兴趣区域对应的至少一个网格,然后提供所确定的至少一个网格的经编码视频数据流。可以理解,可以采用多种方式来表征客户端指定的感兴趣区域,例如其坐标信息。
为了说明的完整性,下面以用户指定了感兴趣区域的坐标信息为例,结合图5A-图5B来描述根据客户端指定的感兴趣区域从多个网格当中确定与之对应的若干网格的示意图,其中,图5A示出了根据本公开实施例的支持交互式观看的视频数据处理方法中确定视频画面中的感兴趣区域的坐标信息的示意图,图5B示出了根据本公开实施例的支持交互式观看的视频数据处理方法中根据感兴趣区域的坐标信息确定与感兴趣区域对应的若干网格的示意图。需说明的是,在本公开的实施例中,服务端可以从客户端接收其指定的感兴趣区域,然后基于先前的网格化分割过程中已记录的网格化信息来确定与感兴趣区域对应的若干网格,并将这些网格的经编码视频数据流回传给客户端进行观看。可替代地,客户端可以预先从服务端接收与网格化分割过程相关的网格化信息,然后基于所获得的网格化信息来确定与用户指定的感兴趣区域对应的若干网格,并向服务端请求这些网格的视频数据以便进行观看。
根据上述第一方面,作为在服务端处确定多个网格中与感兴趣区域对应的若干网格的实现方式的示例,交互式观看过程主要可以包括以下步骤:
首先,用户在进行交互式观看时可以指定视频画面中的感兴趣区域,相应的,客户端可以将感兴趣区域的坐标信息发送给服务端。在本公开的实施例中,客户端可以采用多种方式根据用户在客户端屏幕上的拖拽操作来确定与感兴趣区域相关的坐标信息。例如,在用户通过在客户端屏幕上的拖拽操作指定了视频画面中的感兴趣区域后,客户端可以确定该感兴趣区域在完整画面中的归一化坐标。如图5A所示,设客户端上显示的完整画面的左上角为原点(0,0),右下角的归一化坐标为(1,1)。相应地,可以根据用户的拖拽操作所对应的区域占完整画面的比例,计算感兴趣区域在完整画面中的左上角和右下角归一化坐标分别为(0.22, 0.24)和(0.56, 0.42)。可以理解,虽然以上描述了以感兴趣区域的左上角和右下角的归一化坐标的方式来表征感兴趣区域,但本公开中不对表征感兴趣区域的坐标信息的方式进行限制。作为示意性举例,本公开实施例中还可以采用感兴趣区域的左上角的归一化坐标、感兴趣区域的归一化长度和宽度来表征。另外,在实践中,用户可能会从完整画面中任意选择一个区域作为感兴趣区域,为了避免用户选择的画面长宽比例过于不合理,可以设置默认画面比例大小为一个合理的固定值,例如保持与原始视频源的画面长宽比例相同。在此示例中,当用户指定的感兴趣区域的长宽比例与预设的画面长宽比例不同时,可以将所选择的感兴趣区域的长边或宽边其中一者作为基准,另一边的长度按照预设比例与之匹配即可。
然后,服务端在接收到感兴趣区域的坐标信息后,可以将接收到的感兴趣区域的归一化坐标映射到服务端处的视频画面的坐标中,从而得到该感兴趣区域的像素级坐标。如图5B所示,由于本示例中视频画面的分辨率为1亿像素,因此感兴趣区域(如斜阴影线区域所示)的左上角和右下角的归一化坐标(0.22, 0.24)和(0.56, 0.42)映射到视频画面后的像素级坐标为(0.22×10000, 0.24×10000)和(0.56×10000, 0.42×10000),即(2200,2400)和(5600, 4200)。相应地,服务端可以基于网格化分割过程中已记录的网格化信息,来确定该视频画面的多个网格中的哪些网格与感兴趣区域是对应的。例如,服务端可以确定视频画面中用于覆盖该感兴趣区域所需的最少网格。在本公开的实施例中,可以依据视频画面的原始分辨率、网格数量、网格大小以及网格坐标等中的一个或多个,确定视频画面中覆盖该感兴趣区域的最少数量的网格。如图5B所示,以灰色网格示出了覆盖该感兴趣区域的总共12个网格,这些网格的坐标依次是(2,2),(2,3)…(5,4)。另一方面,考虑到用户指定的感兴趣区域的边界与所确定的灰色网格区域的边界可能并不是对齐的,因此以上确定的总共12个网格中包括了非用户感兴趣的画面部分。有鉴于此,在本示例中,还可以确定感兴趣区域在这12个网格所构成的灰色区域内相对坐标,例如感兴趣区域的左上角和右下角在灰色区域内的相对坐标(x1,y1)和(x2,y2),从而有助于从这12个网格中抠除掉非用户感兴趣的画面部分,其过程在以下具体描述。
最后,在从视频画面的多个网格中确定了与感兴趣区域对应的至少一个网格之后,服务端可以提供所确定的至少一个网格的经编码视频数据流,以供客户端进行交互式观看。例如,服务端可以将图5B所示的所确定的总共12个灰色网格的经编码视频数据流发送给客户端。可以理解,在本步骤中,如果是面向少量客户端的交互式观看应用场景,可以按需向各个客户端推送其需要的若干网格的视频流(即,与感兴趣区域对应的网格的视频流);如果是面向大规模客户端的交互式观看应用场景,还可以将视频画面的所有网格的视频流推送到边缘服务端(例如CDN),再由边缘服务端根据不同客户端的视频播放请求将不同网格的各个视频流推送到客户端。另外,服务端可以将这些视频流按照某种标准(MPEG-TS或RTP等)或自定义格式,通过有线或无线网络等通信通道发送给客户端。需说明的是,本公开中不对视频数据流的推送方式、网络传输方式、视频数据编码方式等进行限制。
可以理解,提供给客户端的各个网格的视频流必须以某种方式标识其网格编号,以便于客户端进行重组和拼接。因此,除了所确定的至少一个网格的经编码视频数据流之外,服务端还需要将与这些网格有关的必要的位置信息发送给客户端,从而使得客户端能够将各个网格的经编码视频流重组拼接为感兴趣区域的视频画面。例如,服务端可以将结合图5B所描述的覆盖感兴趣区域的总共12个的灰色网格的坐标(2,2),(2,3)…(5,4)发送给客户端,以便客户端能够基于这些网格的网格坐标重组相应的视频画面。可选的,为了使得客户端能够从所确定的12个网格中抠除非用户感兴趣的画面部分,服务端还可以将感兴趣区域在灰色区域内的相对坐标(x1,y1)和(x2,y2)发送给客户端。
根据上述第二方面,作为在客户端处确定多个网格中与感兴趣区域对应的若干网格的实现方式的示例,交互式观看过程主要可以包括以下步骤:
首先,为了能够进行交互式观看,客户端可以事先获得服务端处进行网格化分割过程中的网格化信息,以便为用户可能随时发起的交互式观看做好准备。例如,客户端可以在首次接入服务端时,向服务端请求网格化信息,从而获得服务端响应于该请求而提供的网格化信息。又例如,服务端在对视频画面进行了网格化分割之后,可以主动将其分割后得到的网格化信息推送给其服务的客户端以备不时之需。在本步骤中,所获得的网格化信息可以包括如上所描述的视频画面的原始分辨率、网格数量、网格大小以及网格坐标等。可以理解,为了减少数据通讯考虑并且减少对带宽资源的过度占用,服务端可以仅传输视频画面的原始分辨率、网格数量、网格大小以及网格坐标的其中一部分,而客户端可以根据其接收到的部分网格化信息来自行推算其他网格化信息。网格化信息的具体细节可以参考图5A和图5B,在此不予赘述。
然后,在用户通过对客户端的屏幕上的视频画面进行拖拽操作后,客户端可以确定交互式观看的感兴趣区域的坐标信息。在本公开的实施例中,客户端可以采用多种方式确定与感兴趣区域相关的坐标信息。例如,可以采用与以上结合图5A所描述的类似的方式,确定用户选择的感兴趣区域在完整画面中的归一化坐标,诸如感兴趣区域的左上角和右下角归一化坐标分别为(0.22, 0.24)和(0.56, 0.42)。另外,为了避免用户选择的画面长宽比例过于不合理,同样可以设置默认画面比例大小为一个合理的固定值。
之后,客户端在确定了感兴趣区域的坐标信息后,可以采用与以上结合图5B所描述的类似的方式,将感兴趣区域的归一化坐标映射到其从服务端处获得的网格化信息中,得到该感兴趣区域在视频画面中的像素级坐标。例如,可以基于所获得的网格化信息来确定与用户指定的感兴趣区域对应的若干网格,例如确定视频画面中用于覆盖该感兴趣区域所需的最少网格。例如,客户端可以计算其归一化坐标(0.22, 0.24)和(0.56, 0.42)映射到视频画面后的像素级坐标为(2200, 2400)和(5600, 4200),并且通过其所获得的网格化信息,来确定该视频画面的多个网格中的哪些网格与感兴趣区域是对应的。在本公开的实施例中,客户端可以依据其所获得的和/或其自行推导的视频画面的一个或多个网格化信息,确定视频画面中覆盖该感兴趣区域的最少数量的网格,如图5B中以灰色网格示出的总共12个网格。另外,考虑到以上12个网格中包括了非用户感兴趣的画面部分,客户端还可以计算感兴趣区域在这12个网格所构成的灰色区域内的相对坐标,例如感兴趣区域的左上角和右下角在灰色区域内的相对坐标(x1,y1)和(x2,y2),从而后续抠除非用户感兴趣的画面。
最后,在客户端在视频画面的多个网格中确定了与感兴趣区域对应的若干网格之后,客户端可以向服务端请求这些网格的视频流,即,向服务端请求以上确定的总共12个网格的经编码视频数据流。为减少数据通讯考虑,也可以仅在该请求中传递左上角和右下角的网格编号,由服务端自行推算其它应该传输的网格编号。相应的,服务端可以将被请求的网格的视频流按照合适的数据传输方式提供给客户端。可以理解,提供给客户端的各个网格的视频流必须以某种方式标识其网格编号,以便于客户端进行重组和拼接。
以上结合图5A和图5B描述了如何从视频画面的多个网格中确定与感兴趣区域对应的若干网格并且向客户端提供这些网格的视频流的示意图。此后,客户端可以根据接收到的这些网格的视频数据流,在其屏幕上呈现与感兴趣区域对应的视频画面。以下结合图6描述客户端处呈现感兴趣区域的视频画面的示例性处理,其中,图6示出了根据本公开实施例的支持交互式观看的视频数据处理方法中在客户端处呈现与感兴趣区域对应的视频画面的示意图。
根据一个实现方式,图6的左侧示出了客户端所接收到的与感兴趣区域对应的各个网格的经编码视频流,例如以上结合图5B所描述的总共12个网格。在该示例中,客户端在接收到这些网格的经编码视频流后,可以对每个网格的经编码视频数据流分别进行解码,然后根据各个网格的网格坐标对各个经解码视频数据流进行拼接。最后,客户端可以直接在客户端的屏幕上呈现拼接后的经解码视频数据流以供用户进行交互式观看。可以理解,在不考虑这12个网格中可能包括非用户感兴趣的画面从而可能影响观感的情况下,可以直接这12个网格的视频数据进行解码和拼接后呈现给客户。例如,可以将拼接后的视频数据流强制全屏进行观看。
根据另一个实现方式,如上所述,考虑到获得的多个网格中包括了非用户感兴趣的画面内容,因此可能导致用户的观看体验可能不佳。因此,与上述实现方式不同,在本示例中可以从所获得的网格中抠除这些非用户感兴趣的画面部分,以避免非感兴趣画面影响用户观看体验。具体地,在该示例中,与上述的实现方式类似,客户端在接收到这些网格的经编码视频流后,可以对每个网格的经编码视频数据流分别进行解码,然后根据各个网格的网格坐标对各个经解码视频数据流进行拼接。最后,并非直接在客户端的屏幕上呈现拼接后的经解码视频数据流,而是根据感兴趣区域(斜阴影线区域)在所获得的若干网格所构成区域(灰色区域)内的相对坐标,从拼接后的视频流中切割出与感兴趣区域对应的交互式视频数据流,从而在客户端的屏幕上呈现切割后的交互式视频数据流以供用户观看。例如,如图6的中间所示,可以从所获得的总共12个网格中扣除未被感兴趣区域覆盖的部分(即,非用户感兴趣区域),之后可以如图6的右侧所示,将切割后的经解码视频数据流呈现给客户,例如将其强制全屏进行观看。可以理解,上述的切割过程可以根据感兴趣区域在视频画面中覆盖感兴趣区域的最少数量网格内的相对坐标而进行,例如感兴趣区域的左上角和右下角在灰色区域内的相对坐标(x1,y1)和(x2,y2)。相对坐标例如可以其是由服务器确定的并且回传给客户端的,或者其是客户端根据网格化信息自行确定的。
根据本公开实施例的支持交互式观看的视频数据处理方法,通过采用对视频画面的网格化分割和特定于网格的视频编码器分配的思想,首先对视频画面的进行网格化分割,然后对于每个分割后的网格分配专用视频编码器对视频数据进行编码,从而可以根据用户的播放请求选择其中一部分网格的编码视频数据来实现交互式观看。本公开的上述实施例的优势在于,无论有多少个客户端与服务端进行交互,对服务端而言,其需要的视频编码器数量是固定的并且等于网格化分割的网格数量,从而只要网络带宽允许,就可以为无数客户端提供交互式视频观看服务,尤其是在进行交互式观看的客户端的设备数量众多的情况下,能够有效缓解服务端的视频编码器资源紧张问题。
实施例2
在实际交互式观看过程中,用户希望看到的感兴趣区域大小会有变化,有时需要看一个很大区域的全景(如体育赛事中赛场上整体形势),有时需要看一个很小区域的细节(如某个运动员的个人特写)。这就要求能够让用户对视频画面进行任意程度的灵活动态缩放。图7示出了根据本公开实施例的支持交互式观看的视频数据处理方法中客户端处指定了完整画面中的相对较大部分作为感兴趣区域的示意图。发明人注意到,如果服务端处只维护对高分辨率原始视频源内容进行网格化分割的一种视频画面,那么当用户需要观看相对全景的区域时,该感兴趣区域所覆盖的区域如图7中的斜阴影区域,即总共需要56个网格才能覆盖感兴趣区域,如此多数量的网格其实际视频分辨率已经超过总像素数的一半(如果完整视频画面的总像素1亿,则灰色网格部分总像素已达到5600万),如此高的分辨率无论对于网络传输,还是客户端解码都是不可承受的。在此情况下,当向客户端推送的若干网格的经编码视频的数据量超出了客户端的解码能力的上限值时,客户端在对接收到的经编码视频流进行解码和呈现时会出现画面卡顿或显示不完整等问题,导致影响客户端的观看体验。因此,需要进一步改进的支持交互式观看的视频数据处理技术,从而考虑与服务端交互的客户端的解码能力上限的问题。
有鉴于此,本公开实施例中提供一种基于视频画面的网格化分割与画质分级结合的思想对视频源的视频数据进行处理的技术,从而在接收到客户端的视频播放请求时,能够提供与客户端的解码能力相匹配的视频画质及该视频画质下的若干网格的视频数据,从而避免因解码能力不足导致画面卡顿、显示不全等问题。以下结合图8、图9和图10描述根据本公开实施例的基于网格化分割与画质分级思想的视频数据处理方法,其中图8是示出了根据本公开实施例的支持交互式观看的视频数据处理方法的另一示例的流程图,图9示出了根据本公开实施例的支持交互式观看的视频数据处理方法中具有不同分辨率的多级视频画面的示意性视图,图10示出了根据本公开实施例的支持交互式观看的视频数据处理方法中在各级视频画面中确定与感兴趣区域对应的若干网格的示意性视图。
如图8所示,在步骤S201,获得相同视频内容的具有不同分辨率的多级视频画面。在本公开实施例中,可以采用多种方式构造具有相同视频内容(即,描绘的相同的视频画面,例如同一体育赛事)但具有不同分辨率的多级视频画面。例如,可以对原始视频画面下采样以获得具有不同分辨率的多级视频画面,以供后续分别对其进行网格化分割。如图9所示,可以将视频源的原始分辨率作为第一级视频画面(全分辨率画面),下一级视频画面由前一级视频画面通过下采样得到,因此每一级视频画面的分辨率均低于其前一级视频画面的分辨率。作为示意性举例,第一级视频画面的原始分辨率是8000×4000,第二级视频画面的分辨率可以设为前一级视频画面的一半,即4000×2000,第三级视频画面的分辨率可设置为2000×1000,以此类推。需说明的是,最低一级视频画面可以等于或小于常见客户端设备可支持的单视频视频分辨率(例如800×600),从而能够兼容于各种常见的客户端的解码能力。
需要说明的是,以上的各视频画面的分辨率和下采样比例的数值均为示意性举例,实践中,每一级视频画面从上一级视频画面进行下采样的比例不一定是2:1,还可以是其它合适的比例。另外,各级视频画面的分辨率之间的比例也可以不同,只要依次递减即可。优选的,为了减少视频画质分级数量,降低服务端压力,可以将每一级视频画面与前一级视频画面的长宽比例设置在1/4到3/4之间。通过此方式,可以获得如图9所示的第一级至第四级视频画面。如图9所示,第一级视频画面的分辨率可以为7680×4320,第二级视频画面的分辨率可以为5120×2880,第三级视频画面的分辨率可以为3840×2460,第四级视频画面的分辨率可以为1920×1080。
返回图8,在步骤S202,将所述多级视频画面中的每级视频画面分割为多个网格。可以理解,在获得了多级视频画面之后,可以将每级视频画面分割为相应的多个网格。需说明的是,服务端对各级视频画面进行网格化分割时,每个网格的尺寸应远小于常见客户端的解码能力,即,分割结果应该使客户端能够同时对多个网格的视频进行实时解码。例如,可以以每个网格不超过10万像素为基准进行网格化分割。继续以图9为例,其中:
(1)第一级视频画面以每个网格384×216大小进行分割,分割后的网格数量为20×20=400个。
(2)第二级视频画面以每个网格256×288大小进行分割,分割后的网格数量为20×10=200个。
(3)第三级视频画面以每个网格384×216大小进行分割,分割后的网格数量为10×10=100个。
(4)第四级视频画面以每个网格384×216大小进行分割,分割后的网格数量为5×5=25个。
当然理解,以上是以对于每个视频画面都是以相同的网格大小进行网格分割作为示例予以描述,当然每一级视频画面的网格的宽高尺寸也可以不相同,只要接近即可。此后,服务端完成对各级视频画面的网格化分割后,可以得到完整的多级视频画面的各个网格化信息,例如可以包括多级视频画面的画面数量(或称之为画面分级数量)、各级视频画面的分辨率、各级视频画面的网格数量(例如网格在水平方向和垂直方向的数量)、各级视频画面的网格大小以及各个网格的网格坐标等等。作为示意性举例,服务端在对各级视频画面进行网格化分割的过程中可以生成并且记录以下信息:
(1)画面分级数量(视频画面数量):4。
(2)每一级视频画面的总分辨率:7680×4320,5120×2880,3840×2160,1920×1080。
(3)网格在水平方向和垂直方向的数量:20×20,20×10,10,10,5×5。
(4)每一级视频进行网格化后每个网格的大小:384×216,256×288,384×216,384×216。
可以理解,通过对各级视频画面进行网格化分割后得到的网格化信息可以以多种格式描述,例如xml,json等。作为示意性举例,当采用json格式对网格化信息进行描述时,可以将多级视频画面的网格化信息表示如下:
{
“VideoLevelNum”:4,
“VideoLevel_1”: {
“VideoWidth”:7680,
“VideoHeight”:4320,
“GridHorNum”:20,
“GridVerNum”:20,
“GridWidth”:384,
“GridHeight”:216,
},
“VideoLevel_2”: {
“VideoWidth”:5120,
“VideoHeight”:2880,
“GridHorNum”:20,
“GridVerNum”:10,
“GridWidth”:256,
“GridHeight”:288,
},
“VideoLevel_3”: {
“VideoWidth”:3840,
“VideoHeight”:2160,
“GridHorNum”:10,
“GridVerNum”:10,
“GridWidth”:384,
“GridHeight”:216,
},
“VideoLevel_4”: {
“VideoWidth”:1920,
“VideoHeight”:1080,
“GridHorNum”:5,
“GridVerNum”:5,
“GridWidth”:384,
“GridHeight”:216,
}
}
需要说明的是,虽然以上以每级视频画面进行网格化分割后的每个网格的大小都是相同的作为示例予以描述,但这只是一种示意性举例。当然,某一级的视频画面的网格化后的网格大小可以不完全相同,例如在图像未能均匀切分的情况下,在图像边缘处的网格大小可能会与其它区域不同,这种情况被称为非均匀的网格化分割方式。在此情况下,对于以非均匀方式进行网格化分割的某级视频画面,则在该级视频画面的网格化信息中要包含更为详细的网格化信息,例如需要某行网格大小、某列网格大小或者指定位置的网格大小等。
返回图8,在步骤S203,对于每级视频画面的多个网格中的每个网格,分配专用于该网格的视频编码器。可以理解,在服务端对每一级视频画面进行网格化分割后,可以给每个网格(及其视频流)分配一个编号,该编号中至少包含该网格所属的视频画面画质级别编号和网格编号。以第三级视频画面为例,第三级视频画面共分为100个网格,以左上角网格为原点,则交叉阴影线所对应的网格的坐标为(2,1),另外考虑到其属于第三级视频画面,因此可以将其编号为(3,2,1)。当然,也可以采取其它编号方式,只要在服务端中能够唯一标识该网格即可。相应的,对于每个网格,可以分配其专属的视频编码器,从而以网格为单位来独立地管理各个网格的视频数据流。
在步骤S204,利用各个视频编码器对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流。可以理解,在以网格为单位获得了各个网格的经编码视频数据流后,可以采用合适的方式将其推送给具有交互式观看需求的客户端。例如,如果是面向少量客户端的交互式观看应用场景,可以按需向各个客户端推送其需要的特定画质下的若干网格的视频流(即,与感兴趣区域对应的网格的视频流);如果是面向大规模客户端的交互式观看应用场景,还可以将各级视频画面的所有网格的视频流推送到边缘服务端(例如CDN),再由边缘服务端根据不同客户端的视频播放请求将特定画质下的不同网格的各个视频流推送到客户端。需说明的是,本公开中不对视频数据流的推送方式、网络传输方式、视频数据编码方式等进行限制。
可选的,如上所述的支持交互式观看的视频数据处理方法还可以包括:响应于客户端的视频播放请求,提供特定视频画面的多个网格中的至少一个网格的经编码视频数据流,以供用户进行交互式观看。如上所述,在交互式观看的过程中,用户可以通过客户端与提供视频内容的服务端交互,从完整视频画面中获取其感兴趣的区域进行观看。另外,由于服务端处维护了多级视频画面,因此本示例中还考虑客户端的具体解码能力来选择特定视频画面下的若干网格作为与用户指定的感兴趣区域对应的网格。与以上结合图5A和图5B所描述的类似的,在本公开的实施例中,服务端可以从客户端接收其指定的感兴趣区域以及与客户端的解码能力有关的信息,然后基于先前的网格化分割过程中已记录的各级视频画面的网格化信息,在不超出客户端的解码能力的前提下,选择特定视频画面下与感兴趣区域对应的若干网格,并将这些网格的经编码视频数据流回传给客户端进行观看。可替代地,客户端可以预先从服务端接收与网格化分割过程相关的各级视频画面的网格化信息,然后基于所获得的各级视频画面的网格化信息,在不超出客户端的解码能力的前提下,选择特定视频画面下与用户指定的感兴趣区域对应的若干网格,并向服务端请求这些网格的视频数据以便进行观看。
作为在服务端处确定特定视频画面下与感兴趣区域对应的若干网格的实现方式的示例,交互式观看过程主要可以包括以下步骤:
首先,用户在交互式观看的过程中可以指定视频画面中的感兴趣区域,相应的服务端可以接收来自客户端的视频播放请求,该视频播放请求可以包括与用户指定的感兴趣区域相关的坐标信息。另外,该视频播放请求中还可以包括客户端对于常见的各种网格大小能同时解码的网格数量,作为该客户端对于各种网格大小的解码能力。需说明的是,客户端可以主动将其对于常见的各种网格大小的解码能力均发给服务端,以供服务端在确定与感兴趣区域对应的网格时能够考虑相关的解码能力。可替代地,为了减少数据通讯量,在客户端预先获得了各级视频画面的网格化分割过程中的网格化信息的情况下,客户端可以仅将其对于网格化分割过程中所涉及到的几种网格大小的解码能力发送给服务端即可,而无需发送对于不相关的网格大小的解码能力。
然后,服务端响应于客户端的视频播放请求,从多级画面中选择与客户端的解码能力相匹配的视频画面,并且在所选择的视频画面的多个网格中确定与视频播放请求所请求的视频内容相对应的至少一个网格。例如,服务端可以根据视频播放请求中所指定的感兴趣区域占完整画面的百分比,并且考虑客户端的解码能力,来从多级视频画质中选择合适级别的视频画质,然后再从该级别的视频画面的多个网格当中选取能覆盖该感兴趣区域的最少数量网格,以作为与感兴趣区域对应的网格。作为示意性举例,当客户端发送感兴趣区域的坐标信息以及其解码能力后,服务端可以从第一级视频画面开始,依次计算该感兴趣区域在各级视频画面中需要占用的网格数量,如果占用的网格数量超过了客户端的解码能力,则计算下一级视频画面,直到在该级视频画面中需要的网格数量不大于客户端的解码能力,从而在不超出客户端的解码能力的前提下尽可能提供高分辨率的视频画面进行交互式观看。例如,如图10所示,可以从第一级视频画面开始,依次确定各级视频画面中用于覆盖感兴趣区域所需的最少数量的网格,并且可以确定第一级视频画面中的36个网格、第二级视频画面中的24个网格均已经超出客户端的解码能力,而第三级视频画面中的16个网格未超出客户端的解码能力,因此可以将第三级视频画面中以灰色示出的16个网格作为与感兴趣区域对应的网格。
最后,服务端可以向客户端提供所确定的至少一个网格的经编码视频数据流。此后,客户端可以按照与以上结合图6所描述的类似的方法,根据接收到的若干个网格的经编码视频数据流,在对其分别进行解码、拼接以及可选的切割处理之后,在客户端的屏幕上呈现与感兴趣区域对应的视频画面。
作为在客户端处确定特定视频画面下与感兴趣区域对应的若干网格的实现方式的示例,交互式观看过程主要可以包括以下步骤:
首先,为了能够进行交互式观看,客户端可以事先获得服务端处对多级视频画面进行网格化分割过程中的多级网格化信息,以便为用户可能随时发起的交互式观看做好准备。在本步骤中,所获得的网格化信息可以包括如上所描述的各级视频画面的原始分辨率、网格数量、网格大小以及网格坐标等。可以理解,为了减少数据通讯考虑并且减少对带宽资源的过度占用,服务端可以仅传输一部分网格化信息,而客户端可以根据其接收到的部分网格化信息来自行推算其他网格化信息。
然后,客户端可以根据其对于网格化分割过程中产生的各个网格大小的解码能力,从多级画面中选择与客户端的解码能力相匹配的视频画面,并且在所选择的视频画面的多个网格中确定与感兴趣区域相对应的至少一个网格。例如,与上述示例类似的,客户端可以根据用户所指定的感兴趣区域占完整画面的百分比并且其解码能力,来从多级视频画质中选择合适级别的视频画质,然后再从该级别的视频画面的多个网格当中选取能覆盖该感兴趣区域的最少数量网格。例如,与上述示例类似的,可以将第三级视频画面中以灰色示出的16个网格作为与感兴趣区域对应的网格。
最后,在客户端在多级视频画面中选择了合适的视频画面,并且在所选定的视频画面的多个网格中确定了与感兴趣区域对应的若干网格之后,客户端可以向服务端请求这些网格的视频流。此后,客户端可以按照与以上结合图6所描述的类似的方法,根据接收到的若干个网格的经编码视频数据流,在对其分别进行解码、拼接以及可选的切割处理之后,在客户端的屏幕上呈现与感兴趣区域对应的视频画面。
可以理解,以上是以客户端的解码能力作为考虑因素,描述了基于视频画面的网格化分割与画质分级结合思想对视频源的视频数据进行处理的技术。不限于此,本公开实施例中还可以将客户端的网络连接质量作为考虑因素,选择特定视频画面下的若干个网格作为与感兴趣区域对应的网格。例如,当客户端通过自身的数据流量联网并且网络数据传输速率较慢时,可以选择较低分辨率的视频画面下的若干网格作为感兴趣区域;而当客户端通过路由器等联网并且网络数据传输速率较快时,可以选择较高分辨率的视频画面下的若干网格作为感兴趣区域。关于从多个网格中确定与感兴趣区域对应的网格的具体方法可以参考以上描述,在此不予赘述。
根据本公开实施例的支持交互式观看的视频数据处理方法,通过采用视频画面的网格化分割与画质分级结合的思想对视频源的视频数据进行处理,能够提供与客户端的解码能力相匹配的视频画质及该画质下的若干网格的视频数据,从而避免向客户端提供不合适画质的网格视频数据并且避免因客户端解码能力不足导致客户端处出现画面卡顿、显示不全等问题,从而有效提升用户的交互式观看体验。
实施例3
以上描述了在客户端处确定特定视频画面下与感兴趣区域对应的若干网格的实现方式的示例。下面将结合图11对该示例的具体交互过程予以描述,其中,图11中示出了根据本公开实施例的支持交互式观看的视频数据处理方法中客户端与服务端之间交互的示例的示意图,其主要包括以下步骤:
步骤1:服务端可以向客户端发送各级视频画面的网格化信息。
可以理解,客户端可以事先获得服务端处进行网格化分割过程中的各级视频画面的网格化信息,以便为用户可能随时发起的交互式观看做好准备。例如,客户端可以向服务端请求该网格化信息,从而获得服务端响应于该请求而提供的网格化信息。又例如,服务端在对各级视频画面进行了网格化分割之后,可以主动将网格化信息推送给其服务的客户端。
步骤2:客户端确定自己对各级视频画面的各种网格大小的解码能力。
一般而言,客户端对常见网格的解码能力可以用该客户端能够同时解码该网格的数量来表征。作为示意性举例,目前常见的客户端设备(例如,手机、机顶盒等)的视频解码能力一般不低于1920×1080@30fps。可以此为依据进行计算,将客户端解码每秒能解码的视频像素数除以每个视频网格每秒产生的像素数即可得到最大能够处理的网格数量。例如,设某客户端每秒可解码的视频像素数为1920×1080×30=62,208,000,每个网格每秒的像素数量为384×216×30=2,488,320,则理论上该客户端最多能同时解码的网格数量62208000/2488320=25个。考虑到同时解码多个视频比解码单个视频性能会有所降低,可以估算其能同时解码的网格数为25×0.8=20个。可以采用多种方式获得客户端的上述解码能力信息,例如可以在软件开发时可以以此为初始值进行实际测试,得到实测值作为客户端的更准确的解码能力表征。本公开不对客户端解码能力的确定方式进行限制。
步骤3:客户端确定感兴趣区域。
如以上所讨论的,用户在进行交互式观看时可以指定视频画面中的感兴趣区域,相应的,客户端可以确定感兴趣区域的坐标信息。例如,在用户通过在客户端屏幕上的拖拽操作指定了视频画面中的感兴趣区域后,客户端可以确定该感兴趣区域在完整画面中的归一化坐标,以便后续将其映射到各级视频画面中。在该示例中,设感兴趣区域在完整画面中的左上角和右下角归一化坐标分别为(0.12, 0.25)和(0.38, 0.51)。为了避免用户选择的画面长宽比例过于不合理,同样可以设置默认画面比例大小为固定值。
步骤4:计算各级视频画面中能够覆盖感兴趣区域的最少网格数量。
如以上所讨论的,客户端在确定了感兴趣区域的坐标信息后,可以将感兴趣区域的归一化坐标映射到其从服务端处获得的各级网格化信息中,得到该感兴趣区域在各级视频画面中的像素级坐标。以图10中所示的各感兴趣区域在各级视频画面中的映射结果作为示例,计算结果如下:
(1)感兴趣区域的左上角和右下角在第一级视频画面中的像素级坐标为:(922,1080)和(2918, 2203)。
(2)感兴趣区域的左上角和右下角在第二级视频画面中的像素级坐标为:(615,720)和(1946, 1469)。
(3)感兴趣区域的左上角和右下角在第三级视频画面中的像素级坐标为:(461,540)和(1459, 1102)。
(4)感兴趣区域的左上角和右下角在第四级视频画面中的像素级坐标为:(230,270)和(730, 551)。
相应的,根据感兴趣区域在各级视频画面中的像素级坐标以及各级视频画面中的网格坐标,即可确定各级视频画面中能够覆盖感兴趣区域的最少网格数量,如图10中各级视频画面中以灰色网格示出能够覆盖感兴趣区域的最少网格数量,即:第一级视频画面需要36个网格、第二级视频画面需要24个网格、第三级视频画面需要16个网格、第四级视频画面需要4个网格。
步骤5:根据客户端的解码能力,选择尽可能高分辨率的视频画面,并且确定其中能覆盖感兴趣区域的网格。
客户端可以根据其对于网格化分割过程中产生的各个网格大小的解码能力,从多级画面中选择与客户端的解码能力相匹配的视频画面,并且在所选择的视频画面的多个网格中确定与感兴趣区域对应的网格。例如,继续结合图10的示例,可以确定第一级视频画面中的36个网格、第二级视频画面中的24个网格均已经超出客户端的解码能力,而第三级视频画面中的16个网格、第四级视频画面中的4个网格均未超出客户端的解码能力,因此可以将较高分辨率的第三级视频画面中以灰色示出的16个网格作为与感兴趣区域对应的网格。可选的,客户端还可以计算感兴趣区域在如上确定的16个网格所构成的灰色区域内的相对坐标,以供后续抠除掉非用户感兴趣区域的画面。
步骤6:客户端向服务端请求视频流。
在客户端在多级视频画面中选择了合适的视频画面,并且在所选定的视频画面的多个网格中确定了与感兴趣区域对应的若干网格之后,客户端可以向服务端请求这些网格的视频流。例如,继续结合图10的示例,客户端向服务端请求第三级视频画面的12个网格的视频数据,例如提供这些网格的编号,依次为:(3,1,2), (3,2,2), (3,3,2), (3,1,3),(3,2,3), (3,3,3), (3,1,4), (3,2,4), (3,3,4), (3,1,5), (3,2,5), (3,3,5)。优选的,为减少数据通讯考虑,也可以仅传递给服务端左上角和右下角的网格编号,由服务端自行推算其它应该传输的网格编号。相应的,服务端可以将这些视频流按照某种标准(MPEG-TS或RTP等)或自定义格式,通过有线或无线网络等通信通道发送给客户端。发送给客户端的视频流必须以某种方式标识其网格编号,以便于客户端进行拼接和重组。
步骤7:客户端接收视频流后进行解码和呈现。
此后,客户端可以按照与以上结合图6所描述的类似的方法,根据接收到的若干个网格的经编码视频数据流,在对其分别进行解码、拼接以及可选的切割处理之后,在客户端的屏幕上呈现与感兴趣区域对应的视频画面。
实施例4
以上在实施例2中描述了在服务端处确定特定视频画面下与感兴趣区域对应的若干网格的实现方式的示例。下面将结合图12对该示例的具体交互过程予以描述,其中,图12中示出了根据本公开实施例的支持交互式观看的视频数据处理方法中客户端与服务端之间交互的另一示例的示意图。实施例4与实施例3的区别在于客户端无需知道服务端的多级视频画面的网格化信息,而是仅仅向服务端发送包括感兴趣区域的坐标信息的播放请求,并且向服务端告知其解码能力,服务端根据客户端的解码能力向客户端推送特定视频画面中的相应网格的视频流。具体过程如下:
步骤1:客户端向服务端提供其解码能力。
与实施例3所描述的类似的,客户端对常见网格的解码能力可以用该客户端能够同时解码该网格的数量来表征。例如,客户端可以在收到服务端对客户端解码能力的查询后,向服务端提供其解码能力。又例如,客户端可以主动向服务端提供其解码能力,服务端将据此进行后续决策。
步骤2:客户端发送感兴趣区域的信息。
与实施例3所描述的类似的,用户在进行交互式观看时可以指定视频画面中的感兴趣区域,相应的,客户端可以确定感兴趣区域的坐标信息。例如,在用户通过在客户端屏幕上的拖拽操作指定了视频画面中的感兴趣区域后,客户端可以确定该感兴趣区域在完整画面中的归一化坐标,以便后续将其映射到各级视频画面中。客户端可以将该感兴趣区域的信息提供给服务端。
步骤3:计算各级视频画面中能够覆盖感兴趣区域的最少网格数量。
与实施例3所描述的类似的,服务端在收到感兴趣区域的坐标信息后,可以将感兴趣区域的归一化坐标映射到其对于多级视频画面的网格化分割过程中已记录的各级网格化信息中,得到该感兴趣区域在各级视频画面中的像素级坐标。相应的,服务端根据感兴趣区域在各级视频画面中的像素级坐标以及各级视频画面中的网格坐标,即可确定各级视频画面中能够覆盖感兴趣区域的最少网格数量,如图10中各级视频画面中以灰色网格示出能够覆盖感兴趣区域的最少网格数量所反映的。
步骤4:根据客户端的解码能力,选择尽可能高分辨率的视频画面,并且确定其中能覆盖感兴趣区域的网格。
服务端可以根据从客户端接收到的客户端解码能力,从多级画面中选择与客户端的解码能力相匹配的视频画面,并且在所选择的视频画面的多个网格中确定与感兴趣区域对应的网格。例如,继续结合图10的示例,可以将第三级视频画面中以灰色示出的16个网格作为与感兴趣区域对应的网格。可选的,服务端还可以计算感兴趣区域在如上确定的16个网格所构成的灰色区域内的相对坐标,以供后续抠除掉非用户感兴趣区域的画面。
步骤5:向客户端推送视频流。
在服务端在多级视频画面中选择了合适的视频画面,并且在所选定的视频画面的多个网格中确定了与感兴趣区域对应的若干网格之后,可以向客户端推送这些网格的视频流。可以理解,发送给客户端的视频流必须以某种方式标识其网格编号,以便于客户端进行拼接和重组。继续结合图10的示例,服务端共向客户端发送12个网格,提供的信息包括:网格行数4,列数3,每个网格的大小384×288。另外,服务端发送各个网格的视频流时,要求每个视频流包含自己的网格坐标信息,即(0,0)、(0,1)、(0,2)、(1,0)、(1,2)、(1,2)、(2,0)、(2,1) 、(2,2)、(3,0)、(3,1)、(3,1)这些值。可选的,还可以包括如上确定的感兴趣区域在这16个网格所构成的灰色区域内的相对坐标,以供后续抠除掉非用户感兴趣区域的画面。
步骤6:客户端接收视频流后进行解码和呈现。
与实施例3所描述的类似的,客户端可以根据接收到的若干个网格的经编码视频数据流,在对其分别进行解码、拼接以及可选的切割处理之后,在客户端的屏幕上呈现与感兴趣区域对应的视频画面。
实施例5
如以上所讨论的,可以采用多种方式来表征客户端指定的感兴趣区域。例如,以上描述了利用感兴趣区域的坐标信息来表征该感兴趣区域,并且通过用户的拖拽手势对感兴趣区域进行指定的操作方式。可以理解,以上表征感兴趣区域的方式和用户的拖拽手势操作方式仅为示意性举例,本公开不以此为限。例如,当用户利用手机、平板电脑、PDA等观看直播或点播视频并且希望以交互式方式进行观看时,可以通过用户的手指或其他操作体(诸如触控笔)的拖拽操作在屏幕上框选其感兴趣区域。作为响应,客户端可以通过其自己根据网格化信息和感兴趣区域的坐标信息来向服务端请求响应的网格的视频内容;或者客户端可以接收到服务端根据感兴趣区域而确定并且推送的网格的视频内容,从而进行交互式观看。又例如,当用户利用笔记本电脑、台式计算机、工作站等设备进行交互式观看时,可以通过鼠标、触控垫等输入设备在屏幕上选中一部分区域作为感兴趣区域,并且可以通过与上述类似的方式观看到与感兴趣区域画面对应的视频内容。又例如,当用户通过电视、投影仪等观看直播或点播视频时,可以通过遥控器等选择感兴趣区域,并且从而观看到感兴趣区域的细节信息。再例如,对于以上提到的设备中的任何一种,可以通过对用户输入的语音命令进行分析(例如,用户说出“我想看左上角画面的细节”的命令),通过对用户的肢体操作进行运动捕捉等方式,确定以其他方式输入的感兴趣区域的信息。再例如,用户可以通过文本输入、语音输入等方式指示其感兴趣的对象的名称(例如,直播体育赛事中的运动员名字或编号、高清街景拍摄视频中的指定建筑物名称),并且相应的,可以将该感兴趣对象及其周围预定范围作为感兴趣区域进行交互式观看。
可以理解,如上所述,在实际的观看过程中,由于每个用户想要观看的感兴趣区域并不相同,而且在观看过程中也会不断变化,因此每个客户端是独立操作的,并且会向服务端发送特定于该客户端的播放请求。因此,对于相对静态的感兴趣区域而言,当用户想要改变期望观看的感兴趣区域时,用户只需在视频画面上再次对新的感兴趣区域进行选择,即可收看到新的感兴趣区域的视频画面。作为示意性举例,当视频源的画面内容为对街景拍摄的超高清监控画面时,用户(例如,安全员)可以最初仅关注于某个建筑物大楼的入口区域,并且可能在几分钟或几小时内保持不变,因此对于这种相对静态的感兴趣区域,服务端可以在这段时间内均向客户端推送固定的几个网格的视频内容即可。若用户在后续时刻想要关注其他感兴趣区域,只需重新选择一个新的感兴趣区域,便可以再次向服务端请求新的一批网格的视频内容,或者接收到服务端推送的新的一批网格的视频内容。
然而,发明人注意到,视频源内容中的某些感兴趣区域可能是相对动态的区域,例如其可能包含以一定速度移动的感兴趣对象。例如,对于一场直播体育赛事而言,某位运动员可能是用户的感兴趣对象,并且用户可能想要集中精力观看该运动员在赛事中的表现细节。在此情况下,考虑到运动员不断移动的动态特性,让用户随着时间推移而频繁地重新选择新的感兴趣区域是不切实际的,并且会给用户带来沉重的操作负担。有鉴于此,本公开对于可能具有动态特性的感兴趣区域,提出基于目标跟踪技术的网格确定方法以及相应的交互式观看方式。
例如,对于客户指定的期望观看的感兴趣对象(包括可能具有动态运动特性的人或物体),可以采用光流分析算法、均值漂移算法、Kalman滤波算法、粒子滤波算法等对视频的连续画面进行分析,从而对该感兴趣对象在视频的连续画面之间的运动进行跟踪。作为补充或者替代,可以采用机器学习模型来对感兴趣对象在连续画面之间的运动进行跟踪,例如可以采用卷积神经网络、递归神经网络、逻辑回归、线性回归、随机森林、支持向量机模型、深度学习模型或任何其他形式的机器学习模型或算法来进行跟踪。可以理解,本公开可以采用其他合适的方式,通过对视频画面进行分析来自动确定感兴趣对象或感兴趣区域的位置,作为后续确定与感兴趣区域对应的网格的依据。
可以理解,对于感兴趣对象的跟踪,可以由客户端本地通过对连续视频画面的分析来进行确定或预测,或者可以由服务端通过对连续视频画面的分析来进行确定或预测。相应的,对于在服务端处基于对连续视频画面的分析来跟踪感兴趣对象的方式,服务端可以根据其记录的网格化信息来确定与该感兴趣对象或者与包括该感兴趣对象的感兴趣区域相对应的若干网格(并且可选的,选择合适画质下的若干网格),并且此后向客户端推送相对应的网格的视频数据。为了减少服务端对于感兴趣对象的跟踪的计算负担,可以将感兴趣对象的跟踪任务分摊到客户端本地执行,在客户端跟踪到了感兴趣对象后,可以根据从服务端获得的网格化信息来确定与该感兴趣对象或者与包括该感兴趣对象的感兴趣区域相对应的若干网格(并且可选的,选择合适画质下的若干网格),并且向服务端请求相对应的网格的视频数据以便进行观看。
需说明的是,对于移动速度可能相对较快的感兴趣对象,可以将该感兴趣对象以及其周围预定范围作为感兴趣区域,即为所确定的感兴趣对象在各个方向上均扩展一定的画面范围作为裕量,从而避免因感兴趣对象过于频繁移动而导致过于频繁地重新确定与感兴趣区域对应的网格的问题,从而以不同时刻之间的网格变动情况相对平稳的方式来向服务端请求所需网格的视频数据或者接收服务端推送的网格的视频数据,从而减轻对服务端施加的压力。
根据本公开实施例的基于目标跟踪技术的网格确定方法以及相应的交互式观看方式,无论以何种方式进行跟踪,均可以获得与具有动态运动特性的感兴趣对象对应的网格的视频流,从而在客户端处进行解码和拼接后进行呈现,从而省去用户频繁地手动选择感兴趣区域的需要,减轻用户的操作负担。
实施例6
如以上所讨论的,可以采用均匀的网格化分割方式对于多级视频画面中的每一级视频画面进行网格化分割,因此同一视频画面内的各个网格的网格大小和分辨率都是相同的。当然,也可以采用非均匀的网格化分割方式对各个视频画面进行分割,从而多级视频画面中的任一级视频画面内的各个网格的网格大小和/或分辨率可以彼此不完全相同。在本公开的实施例中,可以考虑多种因素来决定是否要采用非均匀的网格化分割过程。例如,对于一场体育赛事的直播画面而言,全景画面的最上部分可能对应于户外情况下的天空或者室内情况下的场馆屋顶,全景画面的最下部分可能对应于观众席,而只有全景画面的中间部分可能对应于正在直播赛事的赛场和运动员。相应的,对于观看该直播赛事的众多用户而言,视频源或视频画面的中间部分的画面内容可能是大多数观众都具有兴趣的并且有较高的概率被观众选择为感兴趣区域(例如,期望观看这些区域内的细节),而视频源中的最上部分和最下部分可能是仅少部分观众具有兴趣的并且有较低的概率被观众选择为感兴趣区域。因此,可以基于用户对于整个画面中的各个区域的感兴趣程度,来进行非均匀的网格化分割过程。例如,对于某场体育赛事,可以基于本次观看记录中各个区域被观众选择为感兴趣区域的次数和频率,来确定视频源整个画面中的高感兴趣区域和低感兴趣区域。作为补充或者替代,可以基于历史观看记录(例如,同一场地的先前赛事)中各个区域被观众选择为感兴趣区域的次数和频率,来确定视频源整个画面中的高感兴趣区域和低感兴趣区域。
有鉴于此,本公开中可以基于通过用户感兴趣程度而确定的高感兴趣区域和低感兴趣区域,对视频画面进行非均匀的网格化分割过程。以下结合图13和图14来描述根据本公开实施例的支持交互式观看的视频数据处理方法中对视频画面进行非均匀网格化分割的示例,其中图13示出了根据本公开实施例的支持交互式观看的视频数据处理方法中确定视频源中的高感兴趣区域和低感兴趣区域的示意图,图14示出了根据本公开实施例的支持交互式观看的视频数据处理方法中对视频画面进行非均匀网格化分割的示意图。
如图13所示,可以根据当前观看期间用户将视频源的各个区域选择为感兴趣区域的次数和/或根据同种赛事的历史观看期间用户将各个区域选择为感兴趣区域的次数,将视频源的整个画面分为位于整个画面中间的高感兴趣区域以及位于最上部分和最下部分的两个低感兴趣区域。在本公开实施例中,考虑到低感兴趣区域内的视频画面被选择为感兴趣区域的可能性较低,因此可以对低感兴趣区域采用较低的画质进行网格化分割;而对于高感兴趣区域可以保持相对较高的画质进行网格化分割,从而可以在牺牲非常少部分观众的观看需求的情况下将视频编码器尽量应用到相对更受到关注的区域,以便最大化视频编码器利用效率。
作为示意性举例,如图14所示,对于原始视频画面的中间区域的高感兴趣区域,可以仍然采用与以上图9中结合第一级视频画面所描述的网格化分割方式对其进行分割,以得到对应于高感兴趣区域的网格化分割结果,如图14中第②部分所示。而对于两个低感兴趣区域,可以首先对原始视频画面的最上部分和最下部分进行下采样,以获得下采样版本的两个低感兴趣区域,然后,对下采样后的低感兴趣区域(而非对原始视频画面的两个低感兴趣区域)进行网格化分割,以得到对应于两个低感兴趣区域的网格化分割结果,如图14中第①部分和第③部分所示。在对于不同兴趣等级的区域分别进行了网格化分割处理之后,可以将分别进行的网格化分割结构拼凑为新的画面,例如可以将对原始画质的高感兴趣区域的网格化分割结果(如图14中第②部分所示)以及对下采样后的两个低感兴趣区域的网格化分割结果(如图14中第①部分和第③部分所示)作为新的视频画面。可以看出,由于对低感兴趣区域的网格化分割是以下采样的视频画面为基础进行的,因此,新拼凑的视频画面中的第②部分中的网格的分辨率与第①部分和第③部分中的网格的分辨率是不同的。作为补充或者替代,新拼凑的视频画面中的第②部分中的网格大小也可以与第①部分和第③部分中的网格大小是不同的。通过以此方式进行非均匀的网格化分割,可以有效节省这两个低感兴趣区域划分得到的网格数量,并且因此可以有效节省为这些网格所分配的专属视频编码器的数量。
当然可以理解,可以以类似的方式,拼凑出新的下一级非均匀视频画面,以此类推。在此情况下,对于以非均匀方式进行网格化分割的某级视频画面,需要在该级视频画面的网格化信息中包含更为详细的网格化信息,例如某行网格数量、某列网格数量、某行网格大小、某列网格大小或者指定位置的网格大小等,从而使得能够准确可靠地标识出每个网格的细节数据。
根据本公开实施例的对视频画面进行非均匀网格化分割技术,可以基于用户对于整个画面中不同区域的不同程度的兴趣,进行非均匀的网格化分割,从而能够对有限数量的视频编码器进行更合理的分配,提升视频编码器资源利用效率。
实施例7
根据本公开的另一方面,提供一种支持交互式观看的视频数据处理设备,以下结合图15详细描述该设备1500。图15示出了根据本公开实施例的设备的硬件框图。如图15所示,设备1500包括处理器U1501和存储器U1502。
处理器U1501可以是能够实现本公开各实施例的功能的任何具有处理能力的装置,例如其可以是设计用于进行在此所述的功能的通用处理器、数字信号处理器(DSP)、ASIC、场可编程门阵列(FPGA)或其他可编程逻辑器件(PLD)、离散门或晶体管逻辑、离散的硬件组件或者其任意组合。
存储器U1502可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)和/或高速缓存存储器,也可以包括其它可移动/不可移动的、易失性/非易失性计算机系统存储器,例如硬盘驱动器、软盘、CD-ROM、 DVD-ROM或者其它光存储介质。
在本实施例中,存储器U1502中存储有计算机程序指令,并且处理器U1501可以运行存储器U1502中存储的指令。在所述计算机程序指令被所述处理器运行时,使得所述处理器执行本公开实施例的支持交互式观看的视频数据处理方法。关于用于支持交互式观看的视频数据处理方法与上文中针对图1-图14描述的基本相同,因此为了避免重复,不再赘述。作为设备的示例,可以包括计算机、服务端、工作站等等。
根据本公开的另一方面,提供一种支持交互式观看的视频数据处理设备,以下结合图16详细描述该设备1600。图16示出了根据本公开实施例的支持交互式观看的视频数据处理设备的结构框图。如图16所示,该设备1600包括视频画面构造单元U1601、网格化分割单元U1602和视频编码单元U1603。所述各个部件可分别执行上文中结合图1-图14描述的支持交互式观看的视频数据处理方法的各个步骤/功能,因此为了避免重复,在下文中仅对所述设备进行简要的描述,而省略对相同细节的详细描述。
视频画面构造单元U1601可以获得相同视频内容的具有不同分辨率的多级视频画面。在本公开实施例中,视频画面构造单元U1601可以采用多种方式构造具有相同视频内容(即,描绘的相同的视频画面,例如同一体育赛事)但具有不同分辨率的多级视频画面。例如,视频画面构造单元U1601可以对所述视频画面下采样以获得具有不同分辨率的多级视频画面,如以上结合图9所讨论的,以供后续分别对其进行网格化分割。
网格化分割单元U1602可以将所述多级视频画面中的每级视频画面分割为多个网格。例如,网格化分割单元U1602可以将每级视频画面均分割为多个网格,如以上结合图9所讨论的。需说明的是,网格化分割单元U1602对各级视频画面进行网格化分割时,每个网格的尺寸应远小于常见客户端的解码能力,即,分割结果应该使客户端能够同时对多个网格的视频进行实时解码。此后,网格化分割单元U1602完成对各级视频画面的网格化分割后,可以得到完整的多级视频画面的各个网格化信息,例如可以包括多级视频画面的画面数量(或称之为画面分级数量)、各级视频画面的分辨率、各级视频画面的网格数量(例如网格在水平方向和垂直方向的数量)、各级视频画面的网格大小以及各个网格的网格坐标等等。
视频编码单元U1603可以包括对于每级视频画面的多个网格中的每个网格而分配的专用于该网格的视频编码器。可以理解,在服务端对每一级视频画面进行网格化分割后,可以给每个网格(及其视频流)分配一个编号。相应的,对于每个网格,可以在视频编码单元U1603中为其分配专属的视频编码器,从而以网格为单位来独立地管理各网格的视频数据流。视频编码单元U1603中的各个视频编码器可以对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流。
可选的,该设备1600还可以包括视频流提供单元(未示出),该视频流提供单元可以被配置为响应于客户端的视频播放请求,从所述多级画面中选择与所述客户端的解码能力相匹配的视频画面;在所选择的视频画面的多个网格中确定与所述视频播放请求所请求的视频内容相对应的至少一个网格;以及向所述客户端提供所述至少一个网格的经编码视频数据流。
根据本公开的支持交互式观看的视频数据处理技术还可以通过提供包含实现所述方法或者设备的程序代码的计算机程序产品来实现,或者通过存储有这样的计算机程序产品的任意存储介质来实现。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。另外,来自一个实施例的特征可以与另一个或多个实施例的特征进行组合以获得更多的实施例。
本公开中涉及的器件、装置、设备、系统的方框图仅作为例示性的例子并且不意图要求或暗示必须按照方框图示出的方式进行连接、布置、配置。如本领域技术人员将认识到的,可以按任意方式连接、布置、配置这些器件、装置、设备、系统。诸如“包括”、“包含”、“具有”等等的词语是开放性词汇,指“包括但不限于”,且可与其互换使用。这里所使用的词汇“或”和“和”指词汇“和/或”,且可与其互换使用,除非上下文明确指示不是如此。这里所使用的词汇“诸如”指词组“诸如但不限于”,且可与其互换使用。
另外,如在此使用的,在以“至少一个”开始的项的列举中使用的“或”指示分离的列举,以便例如“A、B或C的至少一个”的列举意味着A或B或C,或AB或AC或BC,或ABC(即A和B和C)。此外,措辞“示例的”不意味着描述的例子是优选的或者比其他例子更好。
还需要指出的是,在本公开的装置和方法中,各部件或各步骤是可以分解和/或重新组合的。这些分解和/或重新组合应视为本公开的等效方案。
对本领域的普通技术人员而言,能够理解本公开的方法和装置的全部或者任何部分,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现。所述硬件可以是利用被设计用于进行在此所述的功能的通用处理器、数字信号处理器(DSP)、ASIC、场可编程门阵列信号(FPGA)或其他可编程逻辑器件(PLD)、离散门或晶体管逻辑、离散的硬件组件或者其任意组合。通用处理器可以是微处理器,但是作为替换,该处理器可以是任何商业上可获得的处理器、控制器、微控制器或状态机。处理器还可以实现为计算设备的组合,例如DSP和微处理器的组合,多个微处理器、与DSP核协作的一个或多个微处理器或任何其他这样的配置。所述软件可以存在于任何形式的计算机可读的有形存储介质中。通过例子而不是限制,这样的计算机可读的有形存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁存储器件或者可以用于携带或存储指令或数据结构形式的期望的程序代码并且可以由计算机访问的任何其他有形介质。如在此使用的,盘包括紧凑盘(CD)、激光盘、光盘、数字通用盘(DVD)、软盘和蓝光盘。
可以不脱离由所附权利要求定义的教导的技术而进行对在此所述的技术的各种改变、替换和更改。此外,本公开的权利要求的范围不限于以上所述的处理、机器、制造、事件的组成、手段、方法和动作的具体方面。可以利用与在此所述的相应方面进行基本相同的功能或者实现基本相同的结果的当前存在的或者稍后要开发的处理、机器、制造、事件的组成、手段、方法或动作。因而,所附权利要求包括在其范围内的这样的处理、机器、制造、事件的组成、手段、方法或动作。
提供所公开的方面的以上描述以使本领域的任何技术人员能够做出或者使用本公开。对这些方面的各种修改对于本领域技术人员而言是非常显而易见的,并且在此定义的一般原理可以应用于其他方面而不脱离本公开的范围。因此,本公开不意图被限制到在此示出的方面,而是按照与在此公开的原理和新颖的特征一致的最宽范围。
为了例示和描述的目的已经给出了以上描述。此外,此描述不意图将本公开的实施例限制到在此公开的形式。尽管以上已经讨论了多个示例方面和实施例,但是本领域技术人员将认识到其某些变型、修改、改变、添加和子组合。
Claims (10)
1.一种支持交互式观看的视频数据处理方法,包括:
将视频画面分割为多个网格;
对于所述多个网格中的每个网格,分配专用于该网格的视频编码器以对该网格的视频数据流进行编码;以及
响应客户端的视频播放请求,提供所述多个网格中的至少一个网格的经编码视频数据流。
2.根据权利要求1所述的方法,其中,响应于客户端的视频播放请求,提供所述多个网格中的至少一个网格的经编码视频数据流包括:
根据客户端指定的视频画面中的感兴趣区域,从所述多个网格中确定与所述感兴趣区域对应的所述至少一个网格;以及
提供所述至少一个网格的经编码视频数据流。
3.根据权利要求2所述的方法,其中,将视频画面分割为多个网格包括:
对所述视频画面下采样以获得具有不同分辨率的多级视频画面;以及
将所述多级视频画面中的每级视频画面分割为多个网格。
4.根据权利要求3所述的方法,其中,根据客户端指定的视频画面中的感兴趣区域,从所述多个网格中确定与所述感兴趣区域对应的所述至少一个网格包括:
从所述客户端获取所述客户端对各级视频画面的各个网格的解码能力;
确定各级视频画面中用于覆盖所述感兴趣区域所需的最少网格数量;
确定所述最少网格数量不超过所述客户端的解码能力的各级视频画面,并从中选择分辨率最高的视频画面;以及
确定所选择的视频画面中覆盖所述感兴趣区域的所述至少一个网格。
5.根据权利要求3所述的方法,其中,根据客户端指定的视频画面中的感兴趣区域,从所述多个网格中确定与所述感兴趣区域对应的所述至少一个网格包括:
在客户端处,从服务端获取各级视频画面的网格化信息;
在客户端处,根据所述网格化信息,确定各级视频画面中用于覆盖所述感兴趣区域所需的最少网格数量;
确定所述最少网格数量不超过所述客户端的解码能力的各级视频画面,并从中选择分辨率最高的视频画面;以及
确定所选择的视频画面中覆盖所述感兴趣区域的所述至少一个网格。
6.根据权利要求5所述的方法,其中,所述网格化信息包括以下中的一个或多个:所述多级视频画面的画面数量、各级视频画面的分辨率、各级视频画面的网格数量、各级视频画面的网格大小以及各个网格的网格坐标。
7.一种视频数据处理方法,包括:
获得相同视频内容的具有不同分辨率的多级视频画面;
将所述多级视频画面中的每级视频画面分割为多个网格;
对于每级视频画面的多个网格中的每个网格,分配专用于该网格的视频编码器;以及
利用各个视频编码器对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流。
8.根据权利要求7所述的方法,还包括:
响应于客户端的视频播放请求,从所述多级画面中选择与所述客户端的解码能力相匹配的视频画面;
在所选择的视频画面的多个网格中确定与所述视频播放请求所请求的视频内容相对应的至少一个网格;以及
向所述客户端提供所述至少一个网格的经编码视频数据流。
9.一种支持交互式观看的视频数据处理设备,包括:
处理器;以及
存储器,存储有计算机程序指令,
其中,在所述计算机程序指令被所述处理器运行时,使得所述处理器执行以下步骤:
获得相同视频内容的具有不同分辨率的多级视频画面;
将所述多级视频画面中的每级视频画面分割为多个网格;
对于每级视频画面的多个网格中的每个网格,分配专用于该网格的视频编码器;以及
利用各个视频编码器对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流。
10.一种支持交互式观看的系统,包括:
服务端,被配置为:
获得相同视频内容的具有不同分辨率的多级视频画面;
将所述多级视频画面中的每级视频画面分割为多个网格;
对于每级视频画面的多个网格中的每个网格,分配专用于该网格的视频编码器;以及
利用各个视频编码器对相应网格的视频数据流进行编码,以获得相应网格的经编码视频数据流;以及
客户端,被配置为向服务端发送视频播放请求,
其中所述服务端还被配置为:
响应于客户端的视频播放请求,从所述多级画面中选择与所述客户端的解码能力相匹配的视频画面;
在所选择的视频画面的多个网格中确定与所述视频播放请求所请求的视频内容相对应的至少一个网格;以及
向所述客户端提供所述至少一个网格的经编码视频数据流。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505299.2A CN113905256B (zh) | 2021-12-10 | 2021-12-10 | 支持交互式观看的视频数据处理方法、设备及系统 |
PCT/CN2022/128146 WO2023103641A1 (zh) | 2021-12-10 | 2022-10-28 | 支持交互式观看的视频数据处理方法、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111505299.2A CN113905256B (zh) | 2021-12-10 | 2021-12-10 | 支持交互式观看的视频数据处理方法、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113905256A true CN113905256A (zh) | 2022-01-07 |
CN113905256B CN113905256B (zh) | 2022-04-12 |
Family
ID=79025598
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111505299.2A Active CN113905256B (zh) | 2021-12-10 | 2021-12-10 | 支持交互式观看的视频数据处理方法、设备及系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN113905256B (zh) |
WO (1) | WO2023103641A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115580738A (zh) * | 2022-02-23 | 2023-01-06 | 北京拙河科技有限公司 | 一种按需传输的高分辨率视频展现方法、设备和系统 |
WO2023103641A1 (zh) * | 2021-12-10 | 2023-06-15 | 北京拙河科技有限公司 | 支持交互式观看的视频数据处理方法、设备及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231859A (zh) * | 2003-01-30 | 2011-11-02 | 联合视频制品公司 | 具有数字视频记录和可调整的提醒的交互式电视系统 |
CN104735464A (zh) * | 2015-03-31 | 2015-06-24 | 华为技术有限公司 | 一种全景视频交互传输方法、服务器和客户端 |
WO2015103644A1 (en) * | 2014-01-06 | 2015-07-09 | Intel IP Corporation | Interactive video conferencing |
CN107087212A (zh) * | 2017-05-09 | 2017-08-22 | 杭州码全信息科技有限公司 | 基于空间可伸缩编码的交互式全景视频转码与播放方法及系统 |
CN112533005A (zh) * | 2020-09-24 | 2021-03-19 | 深圳市佳创视讯技术股份有限公司 | 一种vr视频慢直播的交互方法及系统 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10567765B2 (en) * | 2014-01-15 | 2020-02-18 | Avigilon Corporation | Streaming multiple encodings with virtual stream identifiers |
CN104469398B (zh) * | 2014-12-09 | 2015-12-30 | 北京清源新创科技有限公司 | 一种网络视频画面处理方法及装置 |
CN106060582B (zh) * | 2016-05-24 | 2019-06-11 | 广州华多网络科技有限公司 | 视频传输系统、方法及装置 |
CN111193937B (zh) * | 2020-01-15 | 2022-05-13 | 深圳拙河科技有限公司 | 一种直播视频数据的处理方法、装置、设备和介质 |
CN111601151A (zh) * | 2020-04-13 | 2020-08-28 | 北京拙河科技有限公司 | 一种亿级像素视频回看方法、装置、介质及设备 |
CN113905256B (zh) * | 2021-12-10 | 2022-04-12 | 北京拙河科技有限公司 | 支持交互式观看的视频数据处理方法、设备及系统 |
-
2021
- 2021-12-10 CN CN202111505299.2A patent/CN113905256B/zh active Active
-
2022
- 2022-10-28 WO PCT/CN2022/128146 patent/WO2023103641A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102231859A (zh) * | 2003-01-30 | 2011-11-02 | 联合视频制品公司 | 具有数字视频记录和可调整的提醒的交互式电视系统 |
WO2015103644A1 (en) * | 2014-01-06 | 2015-07-09 | Intel IP Corporation | Interactive video conferencing |
CN104735464A (zh) * | 2015-03-31 | 2015-06-24 | 华为技术有限公司 | 一种全景视频交互传输方法、服务器和客户端 |
CN107087212A (zh) * | 2017-05-09 | 2017-08-22 | 杭州码全信息科技有限公司 | 基于空间可伸缩编码的交互式全景视频转码与播放方法及系统 |
CN112533005A (zh) * | 2020-09-24 | 2021-03-19 | 深圳市佳创视讯技术股份有限公司 | 一种vr视频慢直播的交互方法及系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023103641A1 (zh) * | 2021-12-10 | 2023-06-15 | 北京拙河科技有限公司 | 支持交互式观看的视频数据处理方法、设备及系统 |
CN115580738A (zh) * | 2022-02-23 | 2023-01-06 | 北京拙河科技有限公司 | 一种按需传输的高分辨率视频展现方法、设备和系统 |
CN115580738B (zh) * | 2022-02-23 | 2023-09-19 | 北京拙河科技有限公司 | 一种按需传输的高分辨率视频展现方法、设备和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023103641A1 (zh) | 2023-06-15 |
CN113905256B (zh) | 2022-04-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11653065B2 (en) | Content based stream splitting of video data | |
Gaddam et al. | Tiling in interactive panoramic video: Approaches and evaluation | |
Niamut et al. | MPEG DASH SRD: spatial relationship description | |
CN113905256B (zh) | 支持交互式观看的视频数据处理方法、设备及系统 | |
CN106060578B (zh) | 生成视频数据的方法和系统 | |
US8238419B2 (en) | Displaying video at multiple resolution levels | |
CN113170234B (zh) | 多向视频的自适应编码和流式传输方法、系统和存储介质 | |
KR20130108311A (ko) | 영상 비트 스트림의 전송 시스템 | |
EP3061241A1 (en) | System and method for real-time processing of ultra-high resolution digital video | |
KR101528863B1 (ko) | 파노라마 영상의 스트리밍 서비스 제공 시스템에서 타일링 영상 동기화 방법 | |
US10931930B2 (en) | Methods and apparatus for immersive media content overlays | |
JP2001086507A (ja) | 画像符号化装置および画像符号化方法、画像復号装置および画像復号方法、媒体、並びに画像処理装置 | |
Inoue et al. | Interactive panoramic video streaming system over restricted bandwidth network | |
US11120615B2 (en) | Dynamic rendering of low frequency objects in a virtual reality system | |
CN104065965A (zh) | 视频处理设备、方法及系统以及视频再现设备和方法 | |
CA3057924A1 (en) | System and method to optimize the size of a video recording or video transmission by identifying and recording a region of interest in a higher definition than the rest of the image that is saved or transmitted in a lower definition format | |
AU2018250308A1 (en) | Video compression using down-sampling patterns in two phases | |
Seo et al. | Real-time panoramic video streaming system with overlaid interface concept for social media | |
US7936936B2 (en) | Method of visualizing a large still picture on a small-size display | |
US11922561B2 (en) | Methods and systems for implementing scene descriptions using derived visual tracks | |
Alface et al. | Evaluation of bandwidth performance for interactive spherical video | |
CN117291810B (zh) | 视频帧的处理方法、装置、设备及存储介质 | |
CN116708863A (zh) | 直播视频编码方法、视频直播方法、设备及存储介质 | |
WO2024018166A1 (en) | Computer-implemented methods of blurring a digital image; computer terminals and computer program products |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |