CN108184101B - 处理视频的设备和方法 - Google Patents

处理视频的设备和方法 Download PDF

Info

Publication number
CN108184101B
CN108184101B CN201810133819.3A CN201810133819A CN108184101B CN 108184101 B CN108184101 B CN 108184101B CN 201810133819 A CN201810133819 A CN 201810133819A CN 108184101 B CN108184101 B CN 108184101B
Authority
CN
China
Prior art keywords
sub
track
video
container
sample
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.)
Active
Application number
CN201810133819.3A
Other languages
English (en)
Other versions
CN108184101A (zh
Inventor
夏青
张园园
石腾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810133819.3A priority Critical patent/CN108184101B/zh
Publication of CN108184101A publication Critical patent/CN108184101A/zh
Application granted granted Critical
Publication of CN108184101B publication Critical patent/CN108184101B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/85406Content authoring involving a specific file format, e.g. MP4 format
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4341Demultiplexing of audio and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/434Disassembling of a multiplex stream, e.g. demultiplexing audio and video streams, extraction of additional data from a video stream; Remultiplexing of multiplex streams; Extraction or processing of SI; Disassembling of packetised elementary stream
    • H04N21/4348Demultiplexing of additional data and video streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/4402Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
    • H04N21/440245Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display the reformatting operation being performed only on part of the stream, e.g. a region of the image or a time segment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8451Structuring of content, e.g. decomposing content into time segments using Advanced Video Coding [AVC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • H04N21/8456Structuring of content, e.g. decomposing content into time segments by decomposing the content in the time domain, e.g. in time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/454Content or additional data filtering, e.g. blocking advertisements
    • H04N21/4545Input to filtering algorithms, e.g. filtering a region of the image
    • H04N21/45455Input to filtering algorithms, e.g. filtering a region of the image applied to a region of the image

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Television Signal Processing For Recording (AREA)
  • Management Or Editing Of Information On Record Carriers (AREA)

Abstract

本发明实施例提供处理视频的设备和方法。该设备包括:接收单元,用于接收视频对应的视频文件;确定单元,用于:确定在视频的画面中需要提取的目标区域以及需要提取的播放时间段;根据视频文件,在组成视频轨道的样本中确定播放时间段对应的样本;根据目标区域以及子轨道数据描述容器包括的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道;根据目标子轨道对应的子轨道数据定义容器,确定播放时间段对应的样本中目标子轨道对应的NAL包,确定的NAL包被解码后用于播放目标区域在播放时间段内的画面。本发明实施例能够有效地实现视频中区域画面的提取。

Description

处理视频的设备和方法
技术领域
本发明涉及信息技术领域,并且具体地,涉及处理视频的设备和方法。
背景技术
目前,出现了新一代的高效视频编码(High Efficiency Video coding,HEVC)方法。对于采用HEVC方法编码的视频,在视频播放的过程中常存在一些提取视频中区域画面的需求。比如,图1是需要提取视频中区域画面的一个场景的示意图。一场欧洲杯球赛使用了全景拍摄技术进行拍摄,得到的全景视频的分辨率为6Kx2K,适合于在超高分辨率的全景显示屏上播放,但如果用户想在普通屏幕上观看该全景视频,因为普通屏幕的分辨率较小,就需要提取全景视频中的区域画面,在普通屏幕上播放该区域画面。如图1所示,上方为一个全景屏幕,下方为手机屏幕和电脑屏幕,全景屏幕上能够显示完整的视频画面,而在手机屏幕和电脑屏幕无法显示完整的全景视频画面,因此在手机屏幕和电脑屏幕上播放时,均需要提取虚线方框标识的区域画面,然后在手机屏幕和电脑屏幕上播放提取的区域画面。
再如,图2是需要提取视频中区域画面的另一场景的示意图。视频监控中,可以将多个摄像头拍摄的画面拼起来,形成一个监控视频。当回放该监控视频时,如果用户需要指定其中某一个摄像头拍摄的画面进行回放,就需要提取该监控视频的区域画面进行播放。如图2所示,左侧为一个监控视频,该视频中的每一个图像都包含多个摄像头拍摄的画面,假设虚线方框所标识的区域为用户需要指定的需要进行回放的摄像头拍摄的画面,那么就需要将该区域画面提取出来单独播放。
然而,对于采用HEVC方法编码的视频,目前还没有有效的方法来实现视频中区域画面的提取,例如实现上述图1或图2所示的场景中区域画面的提取。
发明内容
本发明实施例提供处理视频的设备和方法,能够有效地实现视频中区域画面的提取。
本发明实施例的第一方面,提供了一种处理视频的设备。视频的视频轨道被划分为至少一个子轨道,每个子轨道由一个子轨道数据描述容器和一个子轨道数据定义容器描述。所述设备包括:接收单元,用于:接收所述视频对应的视频文件,所述视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成视频轨道的样本,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在所述组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;
确定单元,用于:确定在所述视频的画面中需要提取的目标区域以及需要提取的播放时间段;根据所述接收单元接收的所述视频文件,在所述组成所述视频轨道的样本中确定所述播放时间段对应的样本;根据所述目标区域以及所述子轨道数据描述容器包括的子轨道的区域信息,在所述至少一个子轨道中确定与所述目标区域对应的子轨道作为目标子轨道;根据所述目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,所述确定的NAL包被解码后用于播放所述目标区域在所述播放时间段内的画面。
结合第一方面,在第一种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述视频文件还包括样本组描述容器,所述样本组描述容器包括所述视频轨道中各个分块与NAL包之间的对应关系以及所述各个分块与NAL包之间的对应关系的标识;所述目标子轨道对应的子轨道数据定义容器包括在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识;
所述确定单元根据所述目标子轨道对应的子轨道数据定义容器确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包具体为:根据所述样本组描述容器和在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
结合第一方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述子轨道对应的区域中,对于所述组成视频轨道的样本,标识相同的分块对应于相同编号的NAL包。
结合第一方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述子轨道对应的区域中,对于所述组成视频轨道的样本中的至少两个样本,至少一个标识相同的分块对应于不同编号的NAL包;所述目标子轨道对应的子轨道数据定义容器还包括所述目标子轨道的每个分块与NAL包之间的对应关系的标识所对应的样本信息;
所述确定单元根据所述样本组描述容器和在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包具体为:根据所述目标子轨道的每个分块与NAL包之间的对应关系的标识、所述目标子轨道的每个分块与NAL之间的对应关系的标识所对应的样本信息以及所述样本组描述容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
结合第一方面的第一种可能的实现方式至第三种可能的实现方式中任一方式,在第四种可能的实现方式中,所述子轨道数据定义容器还包括分组标识;所述确定单元,还用于在确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包之前,根据所述分组标识,从所述视频文件中获取具有所述分组标识的所述样本组描述容器。
结合第一方面,在第五种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述视频文件还包括样本组描述容器,所述样本组描述容器包括至少一个映射组,所述至少一个映射组中的每个映射组包括所述视频轨道中各个分块标识与NAL包之间的对应关系;所述视频文件还包括样本与样本组映射关系容器,所述样本与样本组映射关系容器用于指示所述至少一个映射组中每个映射组对应的样本;所述目标子轨道对应的子轨道数据定义容器包括所述目标子轨道的每个分块的标识;
所述确定单元根据所述目标子轨道对应的子轨道数据定义容器确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包具体为:根据所述样本组描述容器、所述样本与样本组映射关系容器和所述目标子轨道的每个分块的标识,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
结合第一方面的第五种可能的实现方式,在第六种可能的实现方式中,所述子轨道数据定义容器包括分组标识;
所述确定单元,还用于在确定所述播放时间段对应的样本中所述目标子轨道分别对应的NAL包之前,根据所述分组标识,从所述视频文件中获取具有所述分组标识的所述样本组描述容器和具有所述分组标识的所述样本与样本组映射关系容器。
本发明实施例的第二方面,提供了一种处理视频的设备。视频的视频轨道被划分为至少一个子轨道,所述视频轨道由样本组成。所述设备包括:
生成单元,用于:针对所述至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;生成所述视频的视频文件,所述视频文件包括针对所述每一个子轨道生成的所述一个子轨道数据描述容器和所述一个子轨道数据定义容器以及所述组成所述视频轨道的样本;
发送单元,用于:发送所述生成单元生成的所述视频文件。
结合第二方面,在第一种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述子轨道数据定义容器包括在所述组成视频轨道的样本中所述子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识;
所述生成单元,还用于在所述生成所述视频的视频文件之前,生成样本组描述容器,所述样本组描述容器包括所述视频轨道中各个分块与NAL包之间的对应关系以及所述各个分块与NAL包之间的对应关系的标识;
所述视频文件进一步包括所述样本组描述容器。
结合第二方面,在第二种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述子轨道数据定义容器包括所述子轨道数据定义容器描述的子轨道中每个分块的标识;
所述生成单元,还用于在所述生成所述视频的视频文件之前,生成样本组描述容器以及样本与样本组的映射关系容器,所述样本组描述容器包括至少一个映射组,所述至少一个映射组中的每个映射组包括所述视频轨道中各个分块标识与NAL包之间的对应关系,所述样本与样本组映射关系容器用于指示所述至少一个映射组中每个映射组对应的样本;
所述视频文件进一步包括:所述样本组描述容器和所述样本与样本组的映射关系容器。
本发明实施例第三方面,提供了一种处理视频的方法。视频的视频轨道被划分为至少一个子轨道,每个子轨道由一个子轨道数据描述容器和一个子轨道数据定义容器描述。所述方法包括:接收所述视频对应的视频文件,所述视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成所述视频轨道的样本,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在所述组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;确定在所述视频的画面中需要提取的目标区域以及需要提取的播放时间段;根据所述视频文件,在所述组成所述视频轨道的样本中确定所述播放时间段对应的样本;根据所述目标区域以及所述子轨道数据描述容器包括的子轨道的区域信息,在所述至少一个子轨道中确定与所述目标区域对应的子轨道作为目标子轨道;根据所述目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,所述确定的NAL包被解码后用于播放所述目标区域在所述播放时间段内的画面。
结合第三方面,在第一种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述视频文件还包括样本组描述容器,所述样本组描述容器包括所述视频轨道中各个分块与NAL包之间的对应关系以及所述各个分块与NAL包之间的对应关系的标识;所述目标子轨道对应的子轨道数据定义容器包括在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识;
所述根据目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,包括:根据所述样本组描述容器和在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
结合第三方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述子轨道对应的区域中,对于所述组成视频轨道的样本,标识相同的分块对应于相同编号的NAL包。
结合第三方面的第一种可能的实现方式,在第三种可能的实现方式中,在所述子轨道对应的区域中,对于所述组成视频轨道的样本中的至少两个样本,至少一个标识相同的分块对应于不同编号的NAL包;所述目标子轨道对应的子轨道数据定义容器还包括所述目标子轨道的每个分块与NAL包之间的对应关系的标识所对应的样本信息;
所述根据所述目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,包括:根据所述目标子轨道的每个分块与NAL包之间的对应关系的标识、所述目标子轨道的每个分块与NAL之间的对应关系的标识所对应的样本信息以及所述样本组描述容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
结合第三方面第一种可能的实现方式至第三种可能的实现方式,在第四种可能的实现方式中,所述子轨道数据定义容器还包括分组标识;
在所述根据所述样本组描述容器和在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包之前,还包括:根据所述分组标识,从所述视频文件中获取具有所述分组标识的所述样本组描述容器。
结合第三方面,在第五种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述视频文件还包括样本组描述容器,所述样本组描述容器包括至少一个映射组,所述至少一个映射组中的每个映射组包括所述视频轨道中各个分块标识与NAL包之间的对应关系;所述视频文件还包括样本与样本组映射关系容器,所述样本与样本组映射关系容器用于指示所述至少一个映射组中每个映射组对应的样本;所述目标子轨道对应的子轨道数据定义容器包括所述目标子轨道的每个分块的标识;
所述根据所述目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,包括:根据所述样本组描述容器、所述样本与样本组映射关系容器和所述目标子轨道的每个分块的标识,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
结合第三方面的第五种可能的实现方式,在第六种可能的实现方式中,所述子轨道数据定义容器包括分组标识;
在所述根据所述样本组描述容器、所述样本与样本组映射关系容器和所述目标子轨道的每个分块的标识,确定所述播放时间段对应的样本中所述目标子轨道分别对应的NAL包之前,还包括:根据所述分组标识,从所述视频文件中获取具有所述分组标识的所述样本组描述容器和具有所述分组标识的所述样本与样本组映射关系容器。
本发明实施例的第四方面,提供了一种处理视频的方法。所述视频的视频轨道被划分为至少一个子轨道,所述视频轨道由样本组成。所述方法包括:针对所述至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;生成所述视频的视频文件,所述视频文件包括针对所述每一个子轨道生成的所述一个子轨道数据描述容器和所述一个子轨道数据定义容器以及所述组成所述视频轨道的样本;发送所述视频文件。
结合第四方面,在第一种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述子轨道数据定义容器包括在所述组成视频轨道的样本中所述子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识;
在所述生成所述视频的视频文件之前,所述方法还包括:生成样本组描述容器,所述样本组描述容器包括所述视频轨道中各个分块与NAL包之间的对应关系以及所述各个分块与NAL包之间的对应关系的标识;
所述视频文件进一步包括所述样本组描述容器。
结合第四方面的第一种可能的实现方式,在第二种可能的实现方式中,在所述子轨道对应的区域中,对于所述组成所述视频轨道的样本,标识相同的分块对应于相同编号的NAL包。
结合第四方面,在第三种可能的实现方式中,所述子轨道对应的区域由至少一个分块组成;所述子轨道数据定义容器包括所述子轨道数据定义容器描述的子轨道的每个分块的标识;
在所述生成所述视频的视频文件之前,还包括:生成样本组描述容器以及样本与样本组的映射关系容器,所述样本组描述容器包括至少一个映射组,所述至少一个映射组中的每个映射组包括所述视频轨道中各个分块标识与NAL包之间的对应关系,所述样本与样本组映射关系容器用于指示所述至少一个映射组中每个映射组对应的样本;
所述视频文件进一步包括所述样本组描述容器和所述样本与样本组的映射关系容器。
本发明实施例的第五方面,提供了一种处理视频的设备。视频的视频轨道被划分为至少一个子轨道,每个子轨道由一个子轨道数据描述容器和一个子轨道数据定义容器描述,该设备包括:存储器、处理器和接收器;接收器接收视频对应的视频文件,视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成视频轨道的样本,子轨道数据描述容器包括子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中子轨道对应的区域,子轨道数据定义容器用于指示在组成视频轨道的样本中子轨道数据定义容器描述的子轨道对应的网络提取层NAL包。存储器用于存储可执行指令;处理器执行存储器中存储的可执行指令,用于:确定在视频的画面中需要提取的目标区域以及需要提取的播放时间段;根据接收单元接收的视频文件,在组成视频轨道的样本中确定播放时间段对应的样本;根据目标区域以及子轨道数据描述容器包括的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道;根据目标子轨道对应的子轨道数据定义容器,确定播放时间段对应的样本中目标子轨道对应的NAL包,确定的NAL包被解码后用于播放目标区域在播放时间段内的画面。
本发明实施例的第六方面,提供了一种处理视频的设备。视频的视频轨道被划分为至少一个子轨道,视频轨道由样本组成。该设备包括:存储器、处理器和发送器。存储器用于存储可执行指令。处理器执行存储器中存储的可执行指令,用于:针对至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,子轨道数据描述容器包括该子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中该子轨道对应的区域,子轨道数据定义容器用于指示在组成视频轨道的样本中该子轨道数据定义容器描述的子轨道对应的NAL包;生成视频的视频文件,视频文件包括针对每一个子轨道生成的一个子轨道数据描述容器和一个子轨道数据定义容器以及组成视频轨道的样本。发送器发送视频文件。
本发明实施例中,通过根据目标区域以及子轨道数据描述容器描述的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道,并根据目标子轨道对应的子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包,使得能够对这些NAL包进行解码来播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是需要提取视频中区域画面的一个场景的示意图。
图2是需要提取视频中区域画面的另一场景的示意图。
图3a是根据本发明一个实施例的处理视频的设备的示意性流程图。
图3b是根据本发明另一实施例的处理视频的设备的示意性流程图。
图4a是根据本发明另一实施例的处理视频的设备的示意性流程图。
图4b是根据本发明另一实施例的处理视频的设备的示意性流程图。
图5a是根据本发明一个实施例的处理视频的方法的示意性流程图。
图5b是根据本发明另一实施例的处理视频的方法的示意性流程图。
图6a是可应用本发明实施例的场景中的一个图像帧的示意图。
图6b是可应用本发明实施例的场景中的另一图像帧的示意图。
图7是根据本发明一个实施例的处理视频的方法的过程的示意性流程图。
图8是根据本发明一个实施例的分块的示意图。
图9是根据本发明一个实施例的分块与NAL包之间的对应关系的示意图。
图10是根据本发明另一实施例的分块与NAL包之间的对应关系的示意图。
图11是根据本发明另一实施例的分块与NAL包之间的对应关系的示意图。
图12是图8所示的分块在平面坐标系中的示意图。
图13是与图7的过程相对应的处理视频的方法的过程的示意性流程图。
图14是根据本发明一个实施例的目标区域对应的目标子轨道的示意图。
图15是根据本发明一个实施例的子轨道的描述信息的示意图。
图16是根据本发明另一实施例的子轨道的描述信息的示意图。
图17是根据本发明另一实施例的处理视频的方法的过程的示意性流程图。
图18是与图17的过程相对应的处理视频的方法的过程的示意性流程图。
图19是根据本发明一个实施例的子轨道的描述信息的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
一个视频节目可以包含不同类型的媒体流,而不同类型的媒体流可以被称为不同的轨道(Track)。如视频流可称为视频轨道,音频流可称为音频轨道,字幕流可称为字幕轨道。本发明实施例涉及针对视频轨道的处理。
视频轨道可以是指按照时间顺序排列的一组样本,例如一段时间的视频流。样本是一个时间戳对应的同一类型的媒体数据,例如,对于单视角的视频,一个图像帧对应于一个样本;对于多视角的视频,同一时间点的多个图像帧对应于一个样本。子轨道(SubTrack)机制是国际标准组织基于媒体文件格式(ISO(the International Organizationfor Standardization)based Media File Format,ISOBMFF)中定义的一种对一个视频轨道中的样本(Sample)进行分组的方法。子轨道机制主要可以用于媒体选择或媒体切换。也就是说,采用一种分组标准得到的多个子轨道之间是互为替代或互为切换的关系。对于从视频的画面中提取目标区域的画面而言,也可以理解为对媒体进行选择,因此,在本发明实施例中,可以基于子轨道机制从视频的画面中提取目标区域的画面。
本发明实施例中,视频可以是通过HEVC方法进行编码的。通过HEVC方法编码的视频可以按照ISOBMFF定义的框架存储为视频文件。组成视频文件的基本单元可以是容器(Box),一个视频文件可以由一组容器组成。容器可以包含头(Header)和负载(Payload)两部分。负载为容器中包含的数据,例如可以是媒体数据、元数据或其它容器。容器中的头可以指示容器的类型和长度。
具体来说,在对视频采用HEVC方法进行编码后,可以得到视频的视频轨道。视频的视频轨道可以被划分为至少一个视频子轨道(本发明实施例简称子轨道),每个子轨道可以与视频画面中一个区域相对应。此外,视频轨道由一组样本组成(即由至少两个样本组成),每个样本展现的画面即为视频画面。因此可以理解的是,每个样本可以与上述至少一个子轨道的每一个子轨道对应。
由于编码后的视频可以由连续的网络提取层(Network Abstraction Layer,NAL)包组成,因此每个样本也是由连续的NAL包组成。可以理解的是,本发明实施例中所述连续的NAL包指NAL包之间没用多余的字节空隙。每个样本与上述至少一个子轨道中的每一个子轨道都对应,那么可以理解的是,每个子轨道可以对应于一个样本中的一个或多个连续的NAL包。
由上述可知,可以通过视频文件中的一组容器描述编码后的视频数据。本发明实施例中,每个子轨道可以通过一个子轨道数据描述容器(Sub Track Information Box)和一个子轨道数据定义容器(Sub Track Definition Box)来描述。描述同一个子轨道的子轨道数据描述容器和子轨道数据定义容器可以被封装在一个子轨道容器(Sub Track Box)中。也就是,每个子轨道可以通过一个子轨道容器来描述,该子轨道容器可以包括描述该子轨道的子轨道数据描述容器和子轨道数据定义容器。
子轨道数据描述容器可以包括子轨道的区域信息,子轨道的区域信息可以指示该子轨道在视频画面中对应的区域。子轨道数据定义容器可以描述子轨道所包含的数据。具体来说,子轨道数据定义容器可以指示在各个样本中该子轨道数据定义容器描述的子轨道所对应的网络提取层(Network Abstraction Layer,NAL)包。
因此,该视频对应的视频文件可以包括至少一个子轨道数据描述容器和至少一个子轨道数据定义容器以及组成视频轨道的样本。此外,视频文件还可以包括对视频编码后用于组成视频轨道的样本的NAL包。
因此为了实现对视频画面中的目标区域的提取,并播放该目标区域在某个播放时间段内的画面,就需要获取该目标区域在该播放时间段内的NAL包,对获取的NAL包进行解码从而播放目标区域在该播放时间段内的画面。
进一步的,由于每个子轨道对应于视频画面中一个区域,那么可以根据目标区域以及子轨道数据描述容器中的子轨道的区域信息,确定目标区域所对应的子轨道,即本发明实施例中所提到的目标子轨道。
此外,由于视频轨道由按照时间顺序排列的一组样本组成,因此,可以基于需要提取的播放时间段,确定该播放时间段所对应的样本。
每个子轨道对应的子轨道数据定义容器可以指示在各个样本中该子轨道对应的NAL包。因此,在确定播放时间段对应的样本后,就可以根据目标子轨道对应的子轨道数据定义容器,确定播放时间段对应的样本中目标子轨道对应的NAL包。例如,确定目标子轨道对应的NAL包的编号。这样,可以从视频文件中获取这些NAL包,从而对这些NAL包进行解码,以播放目标区域在上述播放时间段内的画面。
下面将结合本发明实施例详细描述在视频画面中提取目标区域画面的设备以及相应的过程。
图3a是根据本发明一个实施例的处理视频的设备的示意性流程图。图3a的设备300a的例子可以是文件解析器,或者包含文件解析器的用户设备等。设备300a包括接收单元310a和确定单元320a。
视频的视频轨道被划分为至少一个子轨道,每个子轨道由一个子轨道数据描述容器和一个子轨道数据定义容器描述。
接收单元310a接收视频对应的视频文件,视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成视频轨道的样本,子轨道数据描述容器包括该子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中该子轨道对应的区域,子轨道数据定义容器用于指示在组成视频轨道的样本中该子轨道数据定义容器描述的子轨道对应的NAL包。确定单元320a确定在视频的画面中需要提取的目标区域以及需要提取的播放时间段。确定单元320a还根据接收单元310a接收的视频文件,在组成视频轨道的样本中确定播放时间段对应的样本。确定单元320a还根据目标区域以及子轨道数据描述容器包括的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道。确定单元320a还根据目标子轨道对应的子轨道数据定义容器,确定播放时间段对应的样本中目标子轨道对应的NAL包,上述确定的NAL包被解码后用于播放目标区域在播放时间段内的画面。
本发明实施例中,通过根据目标区域以及子轨道数据描述容器描述的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道,并根据目标子轨道对应的子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包,使得能够对这些NAL包进行解码来播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
可选地,作为一个实施例,子轨道对应的区域可以由至少一个分块组成。
视频文件还可以包括样本组描述容器,样本组描述容器可以包括视频轨道中各个分块与NAL包之间的对应关系以及各个分块与NAL包之间的对应关系的标识。目标子轨道对应的子轨道数据定义容器可以包括在组成视频轨道的样本中该目标子轨道的每个分块与NAL包之间的对应关系的标识。
确定单元320a根据目标子轨道对应的子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包可以具体为:根据样本组描述容器和在组成视频轨道的样本中目标子轨道的每个分块与NAL包之间的对应关系的标识,确定播放时间段对应的样本中目标子轨道对应的NAL包。
可选地,作为另一实施例,在子轨道对应的区域中,对于组成视频轨道的样本,标识相同的分块可以对应于相同编号的NAL包。
可选地,作为另一实施例,在子轨道对应的区域中,对于组成视频轨道的样本中的至少两个样本,至少一个标识相同的分块可以对应于不同编号的NAL包。目标子轨道对应的子轨道数据定义容器还可以包括该目标子轨道的每个分块与NAL包之间的对应关系的标识所对应的样本信息。
确定单元320a根据样本组描述容器和在组成视频轨道的样本中目标子轨道的每个分块与NAL包之间的对应关系的标识确定播放时间段对应的样本中目标子轨道对应的NAL包可以具体为:根据目标子轨道的每个分块与NAL包之间的对应关系的标识、目标子轨道的每个分块与NAL之间的对应关系的标识所对应的样本信息以及样本组描述容器,确定播放时间段对应的样本中目标子轨道对应的NAL包。
可选地,作为另一实施例,子轨道数据定义容器还可以包括分组标识。确定单元320a还可以在确定播放时间段对应的样本中目标子轨道对应的NAL包之前,根据该分组标识,从视频文件中获取具有该分组标识的样本组描述容器。
可选地,作为另一实施例,子轨道对应的区域可以由至少一个分块组成。
视频文件还可以包括样本组描述容器,样本组描述容器可以包括至少一个映射组,至少一个映射组中的每个映射组包括视频轨道中各个分块标识与NAL包之间的对应关系。视频文件还可以包括样本与样本组映射关系容器,样本与样本组映射关系容器用于指示至少一个映射组中每个映射组对应的样本。目标子轨道对应的子轨道数据定义容器包括目标子轨道的每个分块的标识。
确定单元320a根据目标子轨道对应的子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包具体为:根据样本组描述容器、样本与样本组映射关系容器和目标子轨道的每个分块的标识,确定播放时间段对应的样本中目标子轨道对应的NAL包。
可选地,作为另一实施例,子轨道数据定义容器可以包括分组标识。
确定单元320a还可以在确定播放时间段对应的样本中目标子轨道分别对应的NAL包之前,根据分组标识,从视频文件中获取具有该分组标识的样本组描述容器和具有该分组标识的样本与样本组映射关系容器。
设备300a的具体操作和功能可以参照下面5a、图13或图18中文件解析器所执行的方法的过程,为了避免重复,此处不再赘述。
图3b是根据本发明另一实施例的处理视频的设备的示意性流程图。图3b的设备300b的例子可以是文件解析器,或者包含文件解析器的用户设备等。设备300b包括存储器310b、处理器320b和接收器330b。
存储器310b可以包括随机存储器、闪存、只读存储器、可编程只读存储器、非易失性存储器或寄存器等。处理器320b可以是中央处理器(Central Processing Unit,CPU)。
存储器310b用于存储可执行指令。处理器320b可以执行存储器310b中存储的可执行指令。
视频的视频轨道被划分为至少一个子轨道,每个子轨道由一个子轨道数据描述容器和一个子轨道数据定义容器描述。接收器330b接收视频对应的视频文件,视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成视频轨道的样本,子轨道数据描述容器包括子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中子轨道对应的区域,子轨道数据定义容器用于指示在组成视频轨道的样本中子轨道数据定义容器描述的子轨道对应的NAL包。处理器320b执行存储器310b中存储的可执行指令,用于:确定在视频的画面中需要提取的目标区域以及需要提取的播放时间段;根据接收单元接收的视频文件,在组成视频轨道的样本中确定播放时间段对应的样本;根据目标区域以及子轨道数据描述容器包括的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道;根据目标子轨道对应的子轨道数据定义容器,确定播放时间段对应的样本中目标子轨道对应的NAL包,确定的NAL包被解码后用于播放目标区域在播放时间段内的画面。
本发明实施例中,通过根据目标区域以及子轨道数据描述容器描述的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道,并根据目标子轨道对应的子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包,使得能够对这些NAL包进行解码来播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
设备300b可以执行下面图5a、图13或图18中文件解析器所执行的方法的过程。因此,设备300b的具体操作和功能此处不再赘述。
图4a是根据本发明另一实施例的处理视频的设备的示意性流程图。图4a的设备400a的例子可以是文件生成器,或者包含文件生成器的服务器等。设备400a包括生成单元410a和发送单元420a。
视频的视频轨道被划分为至少一个子轨道,视频轨道由样本组成。生成单元410a针对至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,子轨道数据描述容器包括该子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中该子轨道对应的区域,子轨道数据定义容器用于指示在组成视频轨道的样本中该子轨道数据定义容器描述的子轨道对应的NAL包。生成单元410a还生成视频的视频文件,视频文件包括针对每一个子轨道生成的一个子轨道数据描述容器和一个子轨道数据定义容器以及组成视频轨道的样本。发送单元420a发送生成单元410a生成的视频文件。
本发明实施例中,通过针对至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,子轨道数据描述容器包括子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中子轨道对应的区域,子轨道数据定义容器包括在组成视频轨道的样本中子轨道数据定义容器描述的子轨道对应的NAL包,并生成包括针对每个子轨道生成的子轨道数据描述容器和子轨道数据定义容器以及组成视频轨道的样本的视频文件,使得文件解析器能够根据子轨道的区域信息确定目标区域对应的目标子轨道,并能够根据子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包,以播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
可选地,作为一个实施例,子轨道对应的区域可以由至少一个分块组成。子轨道数据定义容器可以包括在组成视频轨道的样本中该子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识。
生成单元410a可以在生成视频的视频文件之前,生成样本组描述容器,样本组描述容器可以包括视频轨道中各个分块与NAL包之间的对应关系以及各个分块与NAL包之间的对应关系的标识。
视频文件可以进一步包括该样本组描述容器。
可选地,作为另一实施例,在子轨道对应的区域中,对于组成视频轨道的样本,标识相同的分块可以对应于相同编号的NAL包。
可选地,作为另一实施例,在子轨道对应的区域中,对于组成视频轨道的样本中的至少两个样本,至少一个标识相同的分块可以对应于不同编号的NAL包。子轨道数据定义容器还可以包括该子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识所对应的样本信息。
可选地,作为另一实施例,子轨道数据定义容器和样本组描述容器可以分别包括相同的分组标识。
可选地,作为另一实施例,子轨道对应的区域可以由至少一个分块组成。
子轨道数据定义容器可以包括该子轨道数据定义容器描述的子轨道中每个分块的标识。
生成单元410a还可以在生成视频的视频文件之前,生成样本组描述容器以及样本与样本组的映射关系容器,样本组描述容器包括至少一个映射组,至少一个映射组中的每个映射组包括视频轨道中各个分块标识与NAL包之间的对应关系,样本与样本组映射关系容器用于指示至少一个映射组中每个映射组对应的样本。
视频文件可以进一步包括样本组描述容器和样本与样本组的映射关系容器。
可选地,作为另一实施例,子轨道数据定义容器、样本组描述容器和样本与样本组映射关系容器可以分别包括相同的分组标识。
本发明实施例的分组标识可以指在子轨道数据定义容器、样本组描述容器和样本与样本组映射关系容器中,分组类型(grouping_type)字段的取值。
设备400a的其它功能和操作可以参照下面图5b、图7和图17中文件生成器所执行的方法的过程,为了避免重复,此处不再赘述。
图4b是根据本发明另一实施例的处理视频的设备的示意性流程图。图4b的设备400b的例子可以是文件生成器,或者包含文件生成器的服务器等。设备400b包括存储器410b、处理器420b和发送器430b。
存储器410b可以包括随机存储器、闪存、只读存储器、可编程只读存储器、非易失性存储器或寄存器等。处理器420b可以是中央处理器(Central Processing Unit,CPU)。
存储器410b用于存储可执行指令。处理器420b可以执行存储器410b中存储的可执行指令。
视频的视频轨道被划分为至少一个子轨道,视频轨道由样本组成。处理器420b执行存储器410b中存储的可执行指令,用于:针对至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,子轨道数据描述容器包括该子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中该子轨道对应的区域,子轨道数据定义容器用于指示在组成视频轨道的样本中该子轨道数据定义容器描述的子轨道对应的NAL包;生成视频的视频文件,视频文件包括针对每一个子轨道生成的一个子轨道数据描述容器和一个子轨道数据定义容器以及组成视频轨道的样本。
发送器430b发送视频文件。
本发明实施例中,通过针对至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,子轨道数据描述容器包括子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中子轨道对应的区域,子轨道数据定义容器包括在组成视频轨道的样本中子轨道数据定义容器描述的子轨道对应的NAL包,并生成包括针对每个子轨道生成的子轨道数据描述容器和子轨道数据定义容器以及组成视频轨道的样本的视频文件,使得文件解析器能够根据子轨道的区域信息确定目标区域对应的目标子轨道,并能够根据子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包,以播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
设备400b可以执行下面图5b、图7和图17中文件生成器所执行的方法的过程,因此,设备400b的具体功能和操作此处不再赘述。
图5a是根据本发明一个实施例的处理视频的方法的示意性流程图。图5a的方法由文件解析器执行。
本发明实施例中,视频的视频轨道可以划分为至少一个子轨道,每个子轨道由一个子轨道数据描述容器和一个子轨道数据定义容器描述。下面将详细描述处理视频的方法的过程。
510a,接收视频对应的视频文件,视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成视频轨道的样本,子轨道数据描述容器包括该子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中该子轨道对应的区域,子轨道数据定义容器用于指示在组成视频轨道的样本中该子轨道数据定义容器描述的子轨道对应的NAL包。
例如,文件解析器可以从文件生成器接收视频文件。视频文件包含的至少一个子轨道数据描述容器中第m子轨道数据描述容器可以包括该视频轨道的子轨道中的第m子轨道的区域信息,第m子轨道的区域信息用于指示在视频的画面中第m子轨道对应的区域,第m子轨道数据定义容器可以用于指示在组成视频轨道的样本中第m子轨道对应的NAL包,m可以为取值从1至M的正整数,M可以为视频轨道包括的至少一个子轨道的数目。
520a,确定在视频的画面中需要提取的目标区域以及需要提取的播放时间段。
例如,目标区域可以是用户或节目提供商通过相应的应用在视频的画面中指定的,目标区域可以是单独播放的区域。播放时间段也可以是用户指定的。如果用户未指定播放时间段,那么播放时间段也可以是默认的,例如轨道对应的整个播放时间段。
530a,根据视频文件,在组成视频轨道的样本中确定播放时间段对应的样本。
如前面所述,视频轨道可以由按照时间顺序排列的一组样本组成。因此,文件解析器可以基于指定的播放时间段,确定播放时间段对应的样本。具体的,基于指定的播放时间段,确定播放时间段对应的样本属于现有技术,本发明实施例不再详述。
540a,根据目标区域以及子轨道数据描述容器包括的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道。
550a,根据目标子轨道对应的子轨道数据定义容器,确定播放时间段对应的样本中目标子轨道对应的NAL包,该确定的NAL包被解码后用于播放目标区域在播放时间段内的画面。
每个目标子轨道对应的子轨道数据定义容器可以用于指示在上述组成视频轨道的样本中该目标子轨道对应的NAL包。因此,在确定播放时间段对应的样本后,文件解析器就可以根据子轨道数据定义容器确定这些样本中每个目标子轨道对应的NAL包。这样,解码器可以对文件解析器确定的这些NAL包进行解码,从而对目标区域在播放时间段内的画面进行播放。
本发明实施例中,通过根据目标区域以及子轨道数据描述容器描述的子轨道的区域信息,在至少一个子轨道中确定与目标区域对应的子轨道作为目标子轨道,并根据目标子轨道对应的子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包,使得能够对这些NAL包进行解码来播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
本发明实施例中,由于子轨道机制用于媒体选择和媒体切换,因此在视频文件中往往只有一个子轨道对应于一个轨道,即使有多个子轨道对应于一个轨道,其子轨道的数量也比较少。而子轨道可以对应于子轨道数据描述容器和子轨道数据定义容器,因此能够根据上述两种容器快速地确定播放时间段内对应的样本中每个目标子轨道分别对应的NAL包。因此,处理时间相对较少,用户体验较好。
可选地,作为一个实施例,每个子轨道对应的区域可以由至少一个分块组成,分块是对画面划分得到的。
在HEVC方法中,引入了分块(Tile)的概念。分块是利用井字格对视频的画面划分得到的矩形区域,每个分块可以被独立解码。可以理解的是,此处说分块是对视频的画面划分得到的,也就是分块是对视频的图像帧划分得到的。每个图像帧的分块划分方式都是相同的。在轨道中,对于所有样本来说,分块数目和分块位置均是相同的。
每个子轨道对应的区域可以由一个分块或多个相邻的分块组成,这些分块形成的区域可以为矩形区域。为了减少子轨道的数量,可以使得一个子轨道对应的区域由多个相邻的分块组成,这些分块可以形成矩形区域。反之,如果单个分块反映的内容较多时,例如一个完整的视频对象,那么一个子轨道对应的区域由一个分块组成。例如,当视频为高分辨率视频时,视频的画面可以划分为多个分块,单个分块反映的内容往往很少,例如只是一个视频对象的一部分,视频对象可以指视频画面中的人或物等对象。
可选地,作为一个实施例,每个子轨道的区域信息可以包括该子轨道对应的区域的大小和位置。也就是,第m子轨道的区域信息可以包括第m子轨道对应的区域的大小和位置。例如,可以通过像素来描述每个子轨道对应的区域和位置。比如,可以通过像素来描述该区域的宽度和高度,可以通过该区域相对于视频画面的左上角像素的水平偏移以及垂直偏移来表示该区域的位置。
在步骤540a中,文件解析器可以对每个子轨道对应的区域与目标区域进行比较,确定子轨道对应的区域与目标区域是否存在交叠,如果存在交叠,则可以确定该子轨道对应于目标区域。
具体地,可以按照下述方式判断一个子轨道对应的区域与目标区域是否存在交叠。如上所述,子轨道对应的区域可以为由至少一个分块组成的矩形区域。而用户或节目提供商指定的目标区域的形状可以是任意的,例如,可以为矩形、三角形或圆形等。在判断子轨道对应的区域是否与目标区域存在交叠时,通常基于矩形来判断交叠。那么,可以确定目标区域对应的矩形。如果目标区域本身的形状为矩形,那么目标区域对应的矩形也就是目标区域自身。如果目标区域本身的形状不为矩形,那么需要选择包含该目标区域的矩形来作为判断对象。例如,假设目标区域是三角区域,那么目标区域对应的矩形可以是包含该三角区域的最小矩形。
A)文件解析器可以确定目标区域对应的矩形左上角相对于画面左上角的水平偏移。
该子轨道对应的子轨道数据描述容器所包括的该子轨道的区域信息,区域信息可以指示该子轨道对应的区域的大小和位置。因此文件解析器可以根据该子轨道的区域信息,确定该子轨道对应的区域的左上角相对于画面左上角的水平偏移,确定两个水平偏移之间的最大值,此处将两个水平偏移之间的最大值称为两个矩形左侧边界最大值。应理解,此处提到的画面,也可以理解为视频的图像帧。
B)文件解析器可以确定目标区域对应的矩形左上角相对于画面左上角的垂直偏移。文件解析器可以根据该子轨道的区域信息,确定该子轨道对应的区域的左上角相对于画面左上角的垂直偏移,确定两个垂直偏移之间的最大值,此处将两个垂直偏移之间的最大值称为两个矩形上侧边界最大值。
C)文件解析器可以确定目标区域对应的矩形左上角相对于画面左上角的水平偏移与目标区域对应的矩形的宽之和。文件解析器可以根据该子轨道的区域信息,确定该子轨道对应的区域的左上角相对于画面左上角的水平偏移与该子轨道对应的区域的宽之和,确定两个宽之和之间的最小值,此处将该两个宽之和之间的最小值称为两个矩形右侧边界最小值。
D)文件解析器可以确定目标区域对应的矩形左上角相对于画面左上角的垂直偏移与目标区域画面对应的矩形的高之和。文件解析器可以根据该子轨道的区域信息,确定该子轨道对应的区域的左上角相对于画面左上角的垂直偏移与该子轨道对应的区域的高之和,确定两个高之和之间的最小值,此处将两个高之和之间的最小值称为两个矩形下侧边界最小值。
E)当两个矩形左侧边界最大值大于或等于两个矩形右侧边界最小值,或者两个矩形上侧边界最大值大于或等于两个矩形下侧边界最小值时,文件解析器可以确定两个区域没有交叠,否则,文件解析器可以确定两个区域存在交叠。
可选地,作为另一实施例,每个子轨道数据描述容器还可以包括信息标志(Flag),该信息标志可以指示该子轨道数据描述容器中包括该子轨道数据描述容器描述的子轨道的区域信息。
可选地,作为另一实施例,每个子轨道的区域信息还可以包括以下至少一种信息:用于指示该子轨道对应的区域能否独立解码的标识信息、该子轨道对应的区域所包含的分块标识(Identity,ID)以及该子轨道对应的区域的标识等。
可选地,作为另一实施例,子轨道对应的区域可以由至少一个分块组成。视频文件还可以包括样本组描述容器,样本组描述容器可以包括视频轨道中各个分块与NAL包之间的对应关系以及各个分块与NAL包之间的对应关系的标识。
目标子轨道对应的子轨道数据定义容器可以包括在上述组成视频轨道的样本中该目标子轨道的每个分块与NAL包之间的对应关系的标识。
在步骤550a中,文件解析器可以根据样本组描述容器和目标子轨道的每个分块与NAL包之间的对应关系的标识,确定播放时间段对应的样本中目标子轨道对应的NAL包。
每个子轨道对应的区域可以由至少一个分块组成,因此每个子轨道对应的NAL包可以理解为每个子轨道中各个分块对应的NAL包。每个子轨道数据定义容器可以包括该子轨道数据定义容器描述的子轨道中各个分块与NAL包之间的对应关系的标识。例如,在下面图7至图16的实施例中,在子轨道数据定义容器中,分块与NAL包之间的对应关系的标识可以是组描述索引,使用“group_description_index”(组描述索引)字段表示。
而样本组描述容器可以包括该视频轨道中各个分块与NAL包之间的对应关系以及这些对应关系的标识。例如,对应关系的标识可以是索引,索引可以指示对应关系在样本组描述容器的存储位置。比如,在下面图7至图16的实施例中,在样本组描述容器中,对应关系的标识可以是条目索引,使用“Entry_Index”(条目索引)字段表示。在每种对应关系中,可以包括分块的标识以及该分块对应的起始NAL包的编号以及对应的NAL包的数目。
文件解析器可以从目标子轨道对应的子轨道数据定义容器中获取该目标子轨道的各个分块与NAL包之间的对应关系的标识。然后,文件解析器可以根据该目标子轨道的各个分块与NAL包之间的对应关系的标识,从样本组描述容器中获取该目标子轨道的各个分块与NAL包之间的对应关系的标识所指示的对应关系,基于获取的对应关系确定该目标子轨道对应的NAL包。
例如,对于其中任意的一个目标子轨道来说,文件解析器可以根据在组成视频轨道的样本中该目标子轨道中各个分块与NAL包之间的对应关系的标识,在样本组描述容器中查找各个分块与NAL包之间的对应关系的标识所指示的分块与NAL包之间的对应关系,然后可以基于这些查找到的对应关系确定各分块对应的起始NAL包的编号以及NAL包的数目,并根据确定的起始NAL包的编号以及NAL包的数目确定在组成视频轨道的样本中该目标子轨道中各个分块对应的NAL包。从而可以确定播放时间段对应的样本中该目标子轨道中各个分块对应的NAL包。
可选地,作为另一实施例,在每个子轨道对应的区域中,对于组成视频轨道的样本,标识相同的分块对应于相同编号的NAL包。
例如,对于组成视频轨道的样本,第i分块可以对应于相同编号的NAL包,i可以为取值从1至K的正整数,K可以为一个子轨道对应的区域中分块的总数目。
具体地,在组成视频轨道的样本中,同一个分块标识所指示的分块可以对应于相同编号的NAL包。这种情况下,样本组描述容器中包含的对应关系的条数与视频轨道中分块的总数目是相同的,也就是说,有多少个分块,就有多少种对应关系。
这种情况下,在组成视频轨道的样本中,相同标识所指示的子轨道可以对应于相同编号的NAL包。那么,在每个子轨道对应的子轨道数据定义容器中,可以不用包含各个样本的样本信息,比如样本标识或样本数目等。
可选地,作为另一实施例,在每个子轨道对应的区域中,对于组成视频轨道的样本中的至少两个样本,至少一个标识相同的分块可以对应于不同编号的NAL包。
目标子轨道对应的子轨道数据定义容器还可以包括该目标子轨道中每个分块与NAL包之间的对应关系的标识所对应的样本信息。
在步骤550a中,文件解析器可以根据目标子轨道的每个分块与NAL包之间的对应关系的标识、目标子轨道的每个分块与NAL包之间的对应关系的标识所对应的样本信息以及样本组描述容器,确定播放时间段对应的样本中目标子轨道对应的NAL包。
具体地,在不同的样本中,同一个分块标识所指示的分块可以对应于不同编号的NAL包。例如,在至少两个样本中,第i分块可以对应于不同编号的NAL包,i为取值从1至K的正整数,K为一个子轨道对应的区域中分块的总数目。
这种情况下,在样本组描述容器中,相同的分块标识,可以对应于不同的起始NAL包的编号或者NAL包的数目。
因此,子轨道数据定义容器还可以包括样本信息,样本信息可以用于指示每个分块与NAL包之间的对应关系的标识所对应的样本。例如样本信息可以包括连续样本数目。比如,在下面图7至图16的实施例中,样本数目可以使用“sample_count”(样本数目)字段表示。连续样本数目与对应关系的标识可以是一一对应的。对应关系的标识是按照对应的连续样本数目所指示的样本在视频轨道中的时间顺序排列的。也可以理解为,按照每个分块与NAL包之间的对应关系对样本进行分组。例如,在两个样本中,如果同一个分块对应于相同的NAL包,则这两个样本将对应于同一个对应关系标识,如果同一个分块对应于不同的NAL包,则这两个样本将分别对应于不同的对应关系标识。
因此,文件解析器可以根据从目标子轨道对应的子轨道数据定义容器获取该目标子轨道中各个分块与NAL包之间的对应关系的标识以及各个分块与NAL包之间的对应关系的标识对应的样本信息,可以根据样本信息确定在播放时间段对应的样本中该目标子轨道中各个分块与NAL包之间的对应关系的标识,然后可以根据确定的对应关系的标识,从样本组描述容器中获取所确定的对应关系的标识指示的对应关系,从而确定在播放时间段对应的样本中该目标子轨道对应的NAL包。
可选地,作为另一实施例,每个子轨道数据定义容器可以包括分组标识。文件解析器可以根据该分组标识,从视频文件中获取具有该分组标识的样本组描述容器。也就是说,子轨道数据定义容器包括的分组标识和样本组描述容器包括的分组标识相同。
具体地,在视频文件中,可能存在多个样本组描述容器,不同的样本组描述容器可以用于描述基于不同标准分组的样本的特性。例如,可以基于分块与NAL包之间的对应关系对视频轨道中的样本进行分组,针对这种分组标准的样本组描述容器可以用于描述各个分块与NAL包之间的对应关系。可以基于样本所属的时间层进行分组,针对这种分组标准的样本组描述容器可以用于描述时间层的相关信息。
因此,为了获取每个目标子轨道中各个分块与NAL包的对应关系,文件解析器需要从视频文件中获取描述分块与NAL包的对应关系的样本组描述容器。因此,子轨道数据定义容器和样本组描述容器可以包括取值相同的分组标识,这样文件解析器可以基于子轨道数据定义容器中的分组标识获取相应的样本组描述容器。例如,在下面图7至图16的实施例中,子轨道数据定义容器中的分组标识和样本组描述容器中的分组标识均可以是分组类型,使用““grouping_type”(分组类型)字段表示。
可选地,作为另一实施例,子轨道对应的区域可以由至少一个分块组成。视频文件还可以包括样本组描述容器,样本组描述容器包括至少一个映射组,至少一个映射组中的每个映射组包括视频轨道中各个分块标识与NAL包之间的对应关系。
视频文件还可以包括样本与样本组映射关系容器,样本与样本组映射关系容器用于指示至少一个映射组中每个映射组对应的样本。
目标子轨道对应的子轨道数据定义容器可以包括该目标子轨道的每个分块的标识。
在步骤550a中,文件解析器可以根据样本组描述容器、样本与样本组映射关系容器和目标子轨道的每个分块的标识,确定播放时间段对应的样本中目标子轨道对应的NAL包。
具体地,样本组描述容器可以包括至少一个映射组,每个映射组可以包括视频轨道中各个分块与NAL包之间的对应关系。每个映射组可以有相应的标识,例如,在下面图17至图19的实施例中,映射组的标识可以是条目索引,使用“Entry_Index”(条目索引)字段表示。在每个映射组中,可以包括视频轨道中各个分块的标识以及该分块对应的起始NAL包的编号。
例如,样本组描述容器可以包括一个映射组,这种情况下,对于组成视频轨道的样本来说,同一分块标识所指示的分块对应于相同编号的NAL包。
样本组描述容器可以包括多个映射组。各个映射组之间是互不相同的。这种情况下,对于组成视频轨道的样本来说,至少一个相同分块标识所指示的分块对应于不同编号的NAL包。也就是说,任意的两个映射组中,至少有一个分块与NAL包之间的对应关系是不相同的。
这种情况下,视频文件还可以包括样本与样本组映射关系容器,样本与样本组映射关系容器可以用于指示每个映射组对应的样本。例如,样本与样本组映射关系容器可以包括每个映射组的标识以及对应的连续样本数目。映射组的标识是按照样本在视频轨道中的时间顺序排列的。从而可以根据样本与样本组映射关系容器确定在各个样本中每个分块与NAL包之间的对应关系。
对于任意一个目标子轨道,文件解析器可以根据样本与样本组映射关系容器,确定播放时间段对应的样本所对应的映射组标识。然后可以根据确定映射组标识,在样本组描述容器中确定该映射组标识所指示的映射组。同时,文件解析器可以根据该目标子轨道对应的子轨道数据定义容器,确定该目标子轨道中的各个分块标识。文件解析器可以在上面确定的映射组中,确定该目标子轨道中的各个分块标识对应的NAL包的编号。
可选地,作为另一实施例,每个子轨道数据定义容器可以包括分组标识。文件解析器可以根据该分组标识,从视频文件中获取具有该分组标识的样本组描述容器和具有该分组标识的样本与样本组映射关系容器。
具体地,在视频文件中,可能存在多个样本组描述容器,不同的样本组描述容器可以用于描述基于不同标准分组的样本的特性。例如,可以基于分块与NAL包之间的对应关系对视频轨道中的样本进行分组,针对这种分组标准的样本组描述容器可以用于描述各个分块与NAL包之间的对应关系。可以基于样本所属的时间层进行分组,针对这种分组标准的样本组描述容器可以用于描述时间层的相关信息。
相应地,可能存在多个样本与样本组映射关系容器,不同的样本与样本组映射关系容器可以用于指示基于不同分组标准划分的各个样本组。例如,可以基于分块与NAL包之间的对应关系对视频轨道中的样本进行分组,针对这种分组标准的样本与样本组映射关系容器可以用于指示基于各个分块与NAL包之间的对应关系所划分的各个样本组。可以基于样本所属的时间层进行分组,针对这种分组标准的样本与样本组映射关系容器可以用于指示基于时间层划分的各个样本组。
因此,为了获取每个目标子轨道中各个分块与NAL包的对应关系以及相应的样本分组情况,文件解析器需要从视频文件中获取用于描述分块与NAL包的对应关系的样本组描述容器,并获取用于指示基于分块与NAL包的对应关系的划分的各个样本组。因此,子轨道数据定义容器、样本组描述容器和样本与样本组映射关系容器可以包括取值相同的分组标识,这样文件解析器可以基于子轨道数据定义容器中的分组标识获取相应的样本组描述容器以及样本与样本组映射关系容器。例如,在下面图17至图19的实施例中,子轨道数据定义容器包括的分组标识、样本组描述容器包括的分组标识和样本与样本组映射关系容器包括的分组标识均可以是分组类型,使用““grouping_type”(分组类型)字段表示。
可选地,作为另一实施例,子轨道数据定义容器可以不包括分组标识。可以预先设定子轨道数据定义容器的分组标识的取值。这样,可以先获取存储的子轨道数据定义容器的分组标识的取值,然后根据该取值获取相应的样本组描述容器以及样本与样本组映射关系容器。
图5b是根据本发明另一实施例的处理视频的方法的示意性流程图。图5b的方法由媒体文件生成器执行。图5b的方法与图5a的方法是相对应的,在图5b中,将适当省略相同的描述。在图5b的实施例中,视频的视频轨道被划分为至少一个子轨道,视频轨道由样本组成。
510b,针对至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,子轨道数据描述容器包括子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中该子轨道对应的区域,子轨道数据定义容器包括在组成视频轨道的样本中子轨道数据定义容器描述的子轨道对应的NAL包。
520b,生成视频的视频文件,视频文件包括针对每一个子轨道生成的一个子轨道数据描述容器和一个子轨道数据定义容器以及组成视频轨道的样本。
530b,发送视频文件。
例如,文件生成器可以向文件解析器发送视频文件。
本发明实施例中,通过针对至少一个子轨道中的每个子轨道,生成一个子轨道数据描述容器和一个子轨道数据定义容器,子轨道数据描述容器包括子轨道数据描述容器描述的子轨道的区域信息,子轨道的区域信息用于指示在视频的画面中子轨道对应的区域,子轨道数据定义容器包括在组成视频轨道的样本中子轨道数据定义容器描述的子轨道对应的NAL包,并生成包括针对每个子轨道生成的子轨道数据描述容器和子轨道数据定义容器以及组成视频轨道的样本的视频文件,使得文件解析器能够根据子轨道的区域信息确定目标区域对应的目标子轨道,并能够根据子轨道数据定义容器确定播放时间段对应的样本中目标子轨道对应的NAL包,以播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
可选地,作为一个实施例,每个子轨道对应的区域可以由至少一个分块组成。子轨道数据定义容器可以包括在组成视频轨道的样本中该子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识。
在步骤520b之前,文件生成器还可以生成样本组描述容器,样本组描述容器包括视频轨道中各个分块与NAL包之间的对应关系以及各个分块与NAL包之间的对应关系的标识。
视频文件可以进一步包括样本组描述容器。
可选地,作为另一实施例,在每个子轨道对应的区域中,对于组成视频轨道的样本,标识相同的分块可以对应于相同编号的NAL包。
可选地,作为另一实施例,在每个子轨道对应的区域中,对于组成视频轨道的样本中的至少两个样本,至少一个标识相同的分块可以对应于不同编号的NAL包。
子轨道数据定义容器还可以包括子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识所对应的样本信息。
可选地,作为另一实施例,每个子轨道数据定义容器和样本组描述容器分别包括相同的分组标识。
可选地,作为另一实施例,每个子轨道对应的区域可以由至少一个分块组成。
子轨道数据定义容器可以包括该子轨道数据定义容器描述的子轨道的每个分块的标识。
在步骤520b之前,文件生成器可以生成样本组描述容器以及样本与样本组的映射关系容器,样本组描述容器包括至少一个映射组,至少一个映射组中的每个映射组包括视频轨道中各个分块标识与NAL包之间的对应关系,样本与样本组映射关系容器用于指示至少一个映射组中每个映射组对应的样本。
视频文件还可以进一步包括样本组描述容器和样本与样本组的映射关系容器。
可选地,作为另一实施例,子轨道数据定义容器、样本组描述容器和样本与样本组映射关系容器分别包括相同的分组标识。
下面将结合具体例子详细描述本发明实施例。应注意,这些例子只是为了帮助本领域技术人员更好地理解本发明实施例,而非限制本发明实施例的范围。
图6a是可应用本发明实施例的场景中的一个图像帧的示意图。图6b是可应用本发明实施例的场景中的另一图像帧的示意图。
图6a和图6b可以是播放同一视频时的两个图像帧。如图6a和图6b所示,中间的矩形区域可以为用户通过终端所指定的视频画面中的目标区域。根据用户的需求,需要单独呈现某段时间内的目标区域的画面。
下面将结合图6a和图6b的场景详细描述本发明实施例的处理视频的方法的过程。在图7中,重点描述生成视频文件的过程。
图7是根据本发明一个实施例的处理视频的方法的过程的示意性流程图。图7的方法由文件生成器执行。
701,文件生成器确定视频轨道中分块与NAL包之间的对应关系。
具体地,可以将视频画面划分为多个分块,也就是,将视频的图像帧划分为多个分块。视频的所有图像帧的分块数目和分块位置均是相同的,因此对于组成视频轨道的所有样本来说,分块数目和分块位置也是相同的。
图8是根据本发明一个实施例的分块的示意图。如图8所示,可以将图6a所示的图像帧划分为4个分块,即分块0、分块1、分块2和分块3。4个分块的大小可以是相同的,其分块ID分别为0、1、2和3。该视频中其它图像帧中的分块方式均与图8相同,不再赘述。例如,假设该视频包括54个图像帧,该视频为单层编码的视频,那么该视频的视频轨道可以由54个样本组成。每个图像帧中的分块的划分方式均与图8所示的方式相同,也就是,每个样本对应的分块的划分方式也是与图8所示的方式相同。
每个分块可以对应连续的一个或多个NAL包。具体地,分块与NAL包之间的对应关系可以包括分块ID、分块对应的起始NAL包的编号、分块对应的NAL包的数目。其中,分块对应的起始NAL包为分块对应的连续NAL包中第一个NAL包。在下面的描述中,可以将分块ID记为tileID。
由于样本中NAL包的编号是连续的,因此通过分块对应的起始NAL包的编号以及其对应的NAL包的数目,就可以确定该分块对应的NAL包的编号。
如果视频轨道中不同样本中相同的分块对应的起始NAL包的编号、NAL包的数目均相同,则这些样本属于同一个样本组;否则,这些样本属于不同的样本组。
关于分块与NAL包之间的对应关系,可以存在以下两种情况:
(A)在视频轨道的所有样本中,相同的分块ID所指示的分块,对应于相同编号的NAL包。
这种情况下,分块与NAL包之间的对应关系的总条数与分块的总数目可以是相同的。
图9是根据本发明一个实施例的分块与NAL包之间的对应关系的示意图。如图9所示,每个分块对应的NAL包由横向的虚线隔开。表1示出了图9中分块与NAL包之间的对应关系。由于所有样本中,相同的分块ID所指示的分块,对应于相同编号的NAL包。那么在该视频轨道中,共有4种分块与NAL包之间的对应关系,也就是分块与NAL包之间的对应关系的总条数与分块的数目相同。例如,分块1可以对应于2个NAL包,起始NAL包的编号为0。分块2可以对应于3个NAL包,起始NAL包的编号为2。以此类推。
表1 分块与NAL包之间的对应关系
对应关系的标识 分块 起始NAL包的编号 NAL包的数目
1 分块0 0 2
2 分块1 2 3
3 分块2 5 3
4 分块3 8 2
(B)在视频轨道的至少两个样本中,相同的分块ID所指示的分块,对应于不同编号的NAL包。
假设图6a所示的图像帧的分块的划分方式和图6b所示的图像帧不同,也就是,在图6a的图像帧对应的样本以及图6b的图像帧对应的样本中,相同分块ID所指示的分块,对应于不同编号的NAL包。下面通过图10和表2的例子说明图6a所示的图像帧的分块,并通过图11和表3的例子来说明图6b所示的图像帧的分块。
图10是根据本发明另一实施例的分块与NAL包之间的对应关系的示意图。如图10所示,图6a所示的图像帧可以由分块0至分块3组成,每个分块中NAL包可以由横向的虚线隔开。表2示出了图10所示的对应关系。如表2所示,分块1可以对应于2个NAL包,起始NAL包的编号为0。分块2可以对应于3个NAL包,起始NAL包的编号为2。以此类推。
表2 分块与NAL包之间的对应关系
对应关系的标识 分块 起始NAL包的编号 NAL包的数目
1 分块0 0 2
2 分块1 2 3
3 分块2 5 3
4 分块3 8 2
图11是根据本发明另一实施例的分块与NAL包之间的对应关系的示意图。如图11所示,如上所述,图6b所示的图像帧也可以由分块0至分块3组成,每个分块中NAL包可以通过横线隔开。在图11中,各个分块与NAL包之间的对应关系不同于图10所示的对应关系。表3示出了图11所示的对应关系。如表3所示,分块1可以对应于3个NAL包,起始NAL包的编号为0。分块2可以对应于3个NAL包,起始NAL包的编号为3。以此类推。
表3 分块与NAL包之间的对应关系
对应关系的标识 分块 起始NAL包的编号 NAL包的数目
5 分块0 0 3
6 分块1 3 3
7 分块2 6 2
8 分块3 8 3
可见,上述表2和表3一起示出了8种分块与NAL包之间的对应关系。此处,假设在该视频轨道的其它样本中,分块与NAL包之间的对应关系符合上述8种对应关系中的4种。因此,在该视频轨道中,共有上述8种分块与NAL包之间的对应关系。
702,文件生成器根据步骤701中的分块与NAL包之间对应关系,生成样本组描述容器。
在样本组描述容器中,上述对应关系的标识可以是条目索引。具体地,样本组描述容器可以包括整数个子样本与NAL包的映射关系条目(Sub Sample NALU Map Entry),其具体数量与视频轨道中分块与NAL包的对应关系的数目相同。每个子样本与NAL包的映射关系条目可以包括条目索引、分块ID、该分块对应的起始NAL包的编号、该分块对应的NAL包的数目。具体地,每个子样本与NAL包的映射关系条目可以包括以下字段:Entry_Index、tileID、NALU_start_number和NALU_number。“Entry_Index”字段可以表示条目索引,也就是分块与NAL包之间对应关系的标识。“tileID”字段可以表示分块ID,“NALU_start_number”字段可以标识分块对应的起始NAL包的编号,“NALU_number”字段可以表示分块对应的NAL包的数目。各字段的具体含义见表4。
此外,样本组描述容器还可以包括图5a的实施例中提到的分组标识。在本实施例中,分组标识可以是分组类型,分组类型可以使用“Grouping_type”(分组类型)字段来表示,该字段的取值可以表示该样本组描述容器用于描述基于分块与NAL包的对应关系的样本分组。例如该字段可以取值为“ssnm”。
按照ISOBMFF定义的框架,子样本与NAL包的映射关系条目的一种数据结构可以表示如下:
Figure BDA0001575683020000221
Figure BDA0001575683020000231
表4示出了上述数据结构中各字段的含义。
表4 子样本与NAL包的映射关系条目中字段的含义
Figure BDA0001575683020000232
表5示出了针对分块与NAL包之间的对应关系为情况(A)时的样本组描述容器所包含的内容。
表5 样本组描述容器
Figure BDA0001575683020000233
表6示出了针对分块与NAL包之间的对应关系为情况(B)时的样本组描述容器所包含的内容。
表6 样本组描述容器
Figure BDA0001575683020000241
在表5和表6中,每一行是一个子样本与NAL包的映射关系条目记录的对应关系。其中“Entry_Index”字段可以表示每条子样本与NAL包的映射关系条目在样本组描述容器中的存储位置,后面的3个字段是该条目中记录的内容。
703,文件生成器基于分块将视频轨道被划分为子轨道。
每个子轨道可以由一个或多个分块组成,这些分块可以形成一个矩形区域。本实施例中,可以假设每个子轨道由一个分块组成,那么上面所述的4个分块将分别对应于4个子轨道。
704,对于每一个子轨道,文件生成器生成用于描述该子轨道的子轨道数据描述容器。
子轨道数据描述容器可以包括该容器描述的子轨道的区域信息。
另外,每个子轨道数据描述容器还可以包括一个标志,该标志可以指示该子轨道数据描述容器中包括该子轨道数据描述容器描述的子轨道的区域信息。具体的,该标志可以是一个“flag”字段,可以对“flag”字段赋予特定的值,从而指示该子轨道数据描述容器中包括该容器描述的子轨道的区域信息。例如,“flag”字段取值为“1”时,可以表示该子轨道数据描述容器中包括该容器描述的子轨道的区域信息。子轨道的区域信息可以包括该子轨道对应的区域的大小和位置。表7示出了子轨道的区域信息中的属性。如表7所示,子轨道对应的区域的大小可以通过该区域的宽度和高度来表示。子轨道对应的区域的位置可以通过该区域的左上角像素相对于图像的左上角像素的水平偏移和垂直偏移来表示。
当“flag”字段指示该容器包括子轨道的区域信息时,子轨道数据描述容器的子轨道的区域信息可以包含如下属性:
Figure BDA0001575683020000242
Figure BDA0001575683020000251
表7 子轨道的区域信息的属性以及对应含义
Figure BDA0001575683020000252
图12是图8所示的分块在平面坐标系中的示意图。
表8示出了图12所示的各个分块对应的区域的大小和位置。如表8所示,通过像素来表示各个分块对应的区域的大小和位置。
表8 子轨道的区域信息
Figure BDA0001575683020000253
705,对于每个子轨道,文件生成器生成用于描述该子轨道的子轨道数据定义容器。
具体地,子轨道数据定义容器可以包括该子轨道数据定义容器描述的子轨道的描述信息,子轨道的描述信息可以指示该子轨道中每一分块与NAL包之间的对应关系。
具体地,子轨道数据定义容器可以包括子轨道和样本组的映射关系容器(SubTrack Sample Group Box),子轨道和样本组的映射关系容器可以包括该子轨道的一条或多条描述信息。
基于步骤701中的情况(A)和(B),子轨道的描述信息所包含的具体内容也可以分为两种情况。
(1)针对上述情况(A),对于组成视频轨道的样本而言,相同分块ID指示的分块对应于编号相同的NAL包。因此,子轨道和样本组的映射关系容器可以包括整数条该子轨道的描述信息,每条描述信息可以包括组描述索引,组描述索引可以使用“group_description_index”(组描述索引)字段来表示。“group_description_index”字段的数目与该子轨道对应的分块数目相同。“group_description_index”字段可以用于指示子轨道数据定义容器描述的子轨道中各个分块与NAL包之间的对应关系标识。每个分块可以对应于一个样本组,样本组可以包括一个或多个连续的样本,样本组是基于分块与NAL包之间的对应关系划分的。“group_description_index”字段的数目也可以与该子轨道对应的样本组的数目相同。因此,子轨道的描述信息的条数与该子轨道中分块的数目是相同的,并与该子轨道对应的样本组的数目也是相同的。
此外,子轨道和样本组的映射关系容器还可以包括分组类型,分组类型可以使用“grouping_type”(分组类型)字段来表示,“grouping_type”字段可以表示该子轨道数据定义容器描述的是基于分块与NAL包之间的对应关系的子轨道信息。例如,“grouping_type”字段的取值也可以为“ssnm”。可见,子轨道数据定义容器中的“grouping_type”字段的取值与上述样本组描述容器中的“grouping_type”字段的取值相同,那么,子轨道数据定义容器与上述样本组描述容器是对应的。
按照ISOBMFF定义的框架,子轨道和样本组的映射关系容器的一种数据结构可以表示如下:
Figure BDA0001575683020000261
其中,如上所述,“grouping_type”可以表示分组类型,“item_count”可以表示子轨道和样本组的映射关系容器中包含的子轨道的描述信息的条数。每条描述信息可以包含上述““group_description_index”字段。
每个子轨道可以对应一个子轨道容器,子轨道容器可以包括该子轨道对应的子轨道数据描述容器和该子轨道对应的子轨道数据定义容器。
表9示出了在情况(A)中第1个子轨道的子轨道容器(Sub Track Box)的一个例子。如表9所示,在该子轨道容器中,包括子轨道数据描述容器和子轨道数据定义容器。在子轨道数据描述容器中,可以包括子轨道的属性信息。子轨道的属性信息可以包括ID、水平偏移、垂直偏移、区域宽度、区域高度、分块ID以及独立性字段。其中,子轨道数据描述容器中的ID也是子轨道容器的ID,可以表示该子轨道容器描述的子轨道。此外,水平偏移、垂直偏移、区域宽度和区域高度用于表示该子轨道对应的区域的大小和位置。
子轨道数据定义容器可以包括子轨道和样本组的映射关系容器,该子轨道和样本组的映射关系容器包括子轨道的描述信息。子轨道的描述信息可以用于指示子轨道中各个分块对应的NAL包。子轨道的描述信息可以包括组描述索引。该子轨道数据定义容器可以包括“grouping_type”字段,该字段取值为“ssnm”,因此该子轨道数据定义容器可以与“grouping_type”字段取值也为“ssnm”的样本组描述容器相对应。本实施例中,该子轨道数据定义容器可以对应于表5所示的样本组描述容器。
如表9所示,在上面的假设中,第1个子轨道对应的区域由分块ID为“0”的分块组成。在情况(A)中,子轨道的描述信息的条数与子轨道对应的分块数目是相同的。因此,子轨道和样本组的映射关系容器可以包括一条子轨道的描述信息。在这条描述信息中,组描述索引“group_description_index”字段取值为“1”,可以表示组成该视频轨道的样本中分块ID为“0”的分块对应于“grouping_type”字段取值为“ssnm”的样本组描述容器中“Entry_Index”字段取值为“1”所指示的对应关系。
应理解,在情况(A)中,如果子轨道对应的区域由多个分块组成,相应地在子轨道和样本组的映射关系容器中可以包括多条子轨道的描述信息,分块数目与描述信息的条数是相同的。例如,子轨道对应的区域由3个分块组成,那么子轨道和样本组的映射关系容器中可以包括子轨道的3条描述信息。
表9 子轨道容器
Figure BDA0001575683020000271
Figure BDA0001575683020000281
(2)针对上述情况(B),对于视频轨道中的至少两个样本,相同分块ID所指示的分块所对应的NAL包编号不同。子轨道的每条描述信息可以包括一个“sample_count”(样本数目)字段和一个“group_description_index”(组描述索引)字段。“sample_count”字段可以表示符合分块与NAL包的对应关系的连续的样本数目,也就是“sample_count”字段指示了符合该分块与NAL包的对应关系的样本组。“group_description_index”字段可以用于指示一个样本组中各个分块与NAL包之间的对应关系标识。可见,子轨道的描述信息的条数与样本组的数目是相同的。
子轨道和样本组的映射关系容器还可以包括“grouping_type”(分组类型)字段,“grouping_type”字段可以表示该子轨道数据定义容器描述的是基于分块与NAL包之间的对应关系的子轨道信息。例如,“grouping_type”字段的取值也可以为“ssnm”。可见,子轨道数据定义容器中的“grouping_type”字段的取值与上述样本组描述容器中的“grouping_type”字段的取值相同,那么,子轨道数据定义容器与上述样本组描述容器是对应的。
子轨道的各条描述信息的排列顺序按照“sample_count”字段指示的连续样本在视频轨道中的顺序进行排列。
按照ISOBMFF定义的框架,子轨道和样本组的映射关系容器的一种数据结构可以表示如下:
Figure BDA0001575683020000282
可见,在子轨道和样本组映射关系容器的数据结构中,定义了上述的各个字段。该数据结构中,“item_count”可以表示子轨道的描述信息的条数,在子轨道的每条描述信息中,包括上述“sample_count”字段和“group_description_index”字段。
每个子轨道可以对应一个子轨道容器,子轨道容器可以包括该子轨道对应的子轨道数据描述容器和该子轨道对应的子轨道数据定义容器。
表10示出了在情况(B)中第1个子轨道对应的子轨道容器的一个例子。
如表10所示,该子轨道容器可以包括子轨道数据描述容器和子轨道数据定义容器。子轨道数据描述容器可以包括子轨道的属性信息,属性信息可以包括ID、水平偏移、垂直偏移、区域宽度、区域高度、分块ID以及独立性字段。子轨道数据定义容器可以包括子轨道和样本组的映射关系容器,子轨道和样本组的映射关系容器可以包括子轨道的描述信息。子轨道的描述信息可以用于指示子轨道中各个分块对应的NAL包。具体来说,子轨道的描述信息可以包括组描述索引和样本数目。
如前面所假设的,图6a和图6b的图像帧所属的视频可以包括54个图像帧,该视频可以是单层编码的视频,那么每个图像帧可以对应一个样本,共有54个样本。
该子轨道数据定义容器可以包括“grouping_type”字段,该字段取值为“ssnm”,因此该子轨道数据定义容器可以与“grouping_type”字段取值也为“ssnm”的样本组描述容器相对应。在本实施例中,该子轨道数据定义容器可以对应于表6所示的样本组描述容器。在上面的假设中,第1个子轨道对应的区域由分块ID为“0”的分块组成。
如表10所示,在子轨道的第1条描述信息中,“group_description_index”字段取值为“1”,“sample_count”字段取值为“10”。具体来说,第1至第10这10个样本中分块ID为“0”的分块可以对应“grouping_type”字段取值也为“ssnm”的样本组描述容器中“Entry_Index”字段取值为“1”所指示的分块与NAL包之间的对应关系。在子轨道的第2条描述信息中,“group_description_index”字段取值为“5”,“sample_count”字段取值为“30”,那么可以表示,第11至第40这30个样本中分块ID为“0”的分块可以对应上述样本组描述容器中“Entry_Index”字段取值为“5”所指示分块与NAL包之间的的对应关系。在子轨道的第3条描述信息中,“group_description_index”字段取值为“1”,“sample_count”字段取值为“8”,可以表示,第41至第48这8个样本中分块ID为“0”的分块可以对应上述样本组描述容器中“Entry_Index”字段取值为“1”所指示的分块与NAL包之间的对应关系。在子轨道的第4条描述信息中,“group_description_index”字段取值为“5”,“sample_count”字段取值为“6”,可以表示,第49至第54这6个样本中分块ID为“0”的分块可以对应该样本组描述容器中“Entry_Index”字段取值为“1”所指示的分块与NAL包之间的对应关系。
应理解,在情况(B)中,如果子轨道对应的区域由多个分块组成。那么,子轨道的描述信息的条数也会发生相应变化。如上所述,针对每个分块与NAL包的对应关系,可以对样本进行分组。例如,如果子轨道对应的区域由2个分块组成,基于第1个分块与NAL包之间的对应关系,可以将样本组分为4组。基于第2个分块与NAL之间的对应关系,可以将样本组分为3组。那么,子轨道和样本组映射关系容器中可以有7条描述信息。
表10 子轨道容器
Figure BDA0001575683020000291
Figure BDA0001575683020000301
706,文件生成器生成视频文件,该视频文件包括上述样本组描述容器、用于描述各个子轨道的子轨道数据描述容器和用于描述各个子轨道的子轨道数据定义容器以及组成视频轨道的样本。
具体地,该视频文件可以包括每个子轨道对应的子轨道容器,子轨道容器可以包括该子轨道对应的子轨道数据描述容器和子轨道数据定义容器。
例如,在本实施例中,视频文件可以包括一个“grouping type”字段取值为“ssnm”的样本组描述容器和4个子轨道容器,并可以包括组成视频轨道的样本。
707,文件生成器向文件解析器发送视频文件。
本发明实施例中,针对每个子轨道生成一个子轨道数据描述容器以及一个子轨道数据定义容器,并生成包括用于描述每个子轨道的子轨道描述容器和用于描述每个子轨道的子轨道数据定义容器的视频文件,由于每个子轨道数据描述容器包括子轨道的区域信息,每个子轨道数据定义容器包括子轨道的描述信息,子轨道的描述信息用于指示子轨道中各个分块对应的NAL包,使得文件解析器能够根据子轨道的区域信息确定目标区域对应的目标子轨道,并根据目标子轨道的子轨道数据定义容器中的目标子轨道的描述信息以及样本组描述容器,确定播放时间段内的样本中目标子轨道对应的NAL包,以播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
上面介绍了生成视频文件的过程,下面将介绍根据视频文件从视频中提取目标区域的画面的过程。图13的过程与图7的过程是对应的,将适当省略相同的描述。
图13是与图7的过程相对应的处理视频的方法的过程的示意性流程图。图13的方法由文件解析器执行。
1301,文件解析器从文件生成器接收视频文件。
视频的视频轨道可以划分为至少一个子轨道。视频文件可以包括至少一个子轨道数据描述容器和至少一个子轨道数据定义容器以及组成视频轨道的样本。每个子轨道可以由一个子轨道数据描述容器和一个子轨道数据定义容器描述。
1302,文件解析器确定在视频画面中要提取的目标区域的大小和位置,及需要提取的播放时间段。
具体地,文件解析器可以从应用获取要提取的目标区域对应的矩形的大小和位置,以及由用户选择或者应用决定的要提取的目标区域对应的播放时间段。
如图3的实施例中所描述的,用户或节目提供商指定的目标区域的形状可以是任意的,例如,可以为矩形、三角形或圆形等。在判断子轨道对应的区域是否与目标区域存在交叠时,通常基于矩形来判断交叠。那么,可以确定目标区域对应的矩形。如果目标区域本身的形状为矩形,那么目标区域对应的矩形也就是目标区域自身。如果目标区域本身的形状不为矩形,那么需要选择包含该目标区域的矩形来作为判断对象。例如,假设目标区域是三角区域,那么目标区域对应的矩形可以是包含该三角区域的最小矩形。目标区域对应的矩形的大小可以通过该矩形的宽度和高度来表示,目标区域对应的矩形的位置可以通过该矩形左上角相对于画面左上角的水平偏移和垂直偏移来表示。
1303,文件解析器根据视频文件确定播放时间段对应的样本。
文件解析器可以根据需要提取的播放时间段,从视频轨道中选择该播放时间段内的一个或多个样本。例如,以上述例子为例进行说明,假设视频包含54个图像帧,该播放时间段可以对应于第20帧至第54帧。那么,该播放时间段可以对应于第20个样本至第54个样本。具体的,确定播放时间段对应的样本为现有技术,本发明实施例不再详述。
1304,文件解析器从视频文件中获取所有的子轨道数据描述容器。
子轨道数据描述容器可以包括该子轨道数据描述容器描述的子轨道的区域信息。每个子轨道的区域信息用于指示该子轨道对应的区域。
1305,文件解析器根据目标区域对应的矩形的大小和位置以及每个子轨道数据描述容器中的子轨道的区域信息,确定目标区域对应的子轨道作为目标子轨道。
在下面将目标区域对应的子轨道称为目标子轨道。具体地,文件解析器可以根据图3的实施例所描述的方式,对每个子轨道对应的区域与目标区域进行比较,确定子轨道对应的区域与目标区域是否存在交叠,如果存在交叠,则可以确定该子轨道对应于目标区域。
在图6a和图6b所示的图像帧中,假设目标区域本身为矩形。图14是根据本发明一个实施例的目标区域对应的目标子轨道的示意图。
如图14所示,对目标区域的大小和位置以及4个子轨道容器中子轨道数据描述容器里子轨道对应的区域进行比较,确定目标区域对应的目标子轨道为第2个子轨道和第3个子轨道。即,第2个子轨道和第3个子轨道为目标子轨道。
1306,文件解析器从视频文件中获取目标子轨道对应的子轨道数据定义容器。
例如,上述目标区域对应第2个子轨道和第3个子轨道,可以从视频文件中获取这两个子轨道分别对应的子轨道数据定义容器。
1307,文件解析器根据上述播放时间段以及目标子轨道对应的子轨道数据定义容器,确定播放时间段对应的样本中目标子轨道的描述信息。
例如,可以根据目标区域对应的播放时间段以及第2个子轨道和第3个子轨道分别对应的子轨道数据定义容器,确定播放时间段对应的样本中第2个子轨道的描述信息和第3个子轨道的描述信息。
如图7的步骤701所述,关于分块与NAL包之间的对应关系可以存在两种情况。下面将分别针对这两种情况,结合具体例子对步骤1307进行描述。
(1)对于组成视频轨道的样本,相同分块ID所指示的分块对应相同编号的NAL包。
在这种情况下,文件解析器可以直接从目标子轨道对应的子轨道数据定义容器中的子轨道和样本组映射关系容器中,获取该目标子轨道的描述信息,该目标子轨道的描述信息也就是播放时间段对应的样本中该目标子轨道的描述信息。
下面以第2个子轨道为例,结合图15进行说明。图15是根据本发明一个实施例的子轨道的描述信息的示意图,以表示视频轨道中所有样本中相同分块ID所指示的分块对应相同编号的NAL包,各个样本中分块与NAL包之间的对应关系都相同。
具体地,文件解析器可以从第2个子轨道对应的子轨道数据定义容器中的子轨道和样本组映射关系容器,获取第2个子轨道的描述信息。在第2个子轨道的各条描述信息中,“group_description_index”(组描述索引)字段有不同的取值。“group_description_index”字段的取值的数目可以与该子轨道对应的分块数目相同。
由于在这种情况下,组成视频轨道的样本中相同分块ID所指示的分块对应相同编号的NAL包,各个样本中分块与NAL包之间的对应关系都相同。因此,对于每个子轨道来说,所有样本可以共用同样的描述信息,因此第2个子轨道的描述信息即为播放时间段对应的样本中第2个子轨道的描述信息。如图15所示,第2个子轨道对应于ID为“2”的子轨道容器。在播放时间段对应的样本中,第2个子轨道的描述信息中“group_description_index”字段的取值“2”。
第3个子轨道对应的过程类似于第2个子轨道,不再赘述。如图15所示,第3个子轨道对应于ID为“3”的子轨道容器。在播放时间段对应的样本中,第3个子轨道的描述信息中“group_description_index”字段的取值“3”。
(2)在组成视频轨道的样本的至少两个样本中,相同的分块ID所指示的分块,对应于不同编号的NAL包。
在这种情况下,文件解析器可以在目标子轨道对应的子轨道数据定义容器中的子轨道和样本组映射关系容器中,根据该目标子轨道的各条描述信息中“sample_count”字段的取值,确定播放时间段对应的样本所对应的描述信息,这些描述信息即为播放时间段对应的样本中该目标子轨道的描述信息。下面将以第2个子轨道为例,结合图16来进行说明。图16是根据本发明另一实施例的子轨道的描述信息的示意图,以表示在视频轨道的至少两个样本中,相同分块ID所指示的分块对应于不同编号的NAL包。
具体地,可以从第2个子轨道对应的子轨道数据定义容器中的子轨道和样本组映射关系容器中,获取第2个子轨道的描述信息。在第2个子轨道的各条描述信息中,“group_description_index”(组描述索引)字段以及相应的“sample_count”(样本数目)字段有着不同的取值。每条描述信息可以包含一个“sample_count”字段的取值和一个“group_description_index”字段的取值。“sample_count”字段可以表示符合相应的“group_description_index”字段所指示的分块与NAL包之间的对应关系的连续样本数目。
此外,因为已知“group_description_index”字段各个取值对应的连续样本数目,因此可以确定播放时间段对应的样本中第2个子轨道的描述信息。例如,如图16所示,第2个子轨道对应于ID为“2”的子轨道容器。第2个子轨道的描述信息共有4条。“sample_count”字段的取值为“10”,可以表示第1至第10个样本对应第1条描述信息。“sample_count”字段的取值为“30”,可以表示第11至第40个样本对应第2条描述信息。“sample_count”字段的取值为“8”,可以表示第41至第48个样本对应第3条描述信息。“sample_count”字段的取值为“6”,可以表示第49至第54个样本对应第4条描述信息。如上假设,播放时间段对应的样本为第20至第54个样本。在播放时间段对应的样本中,第2个子轨道的描述信息为该子轨道对应的子轨道和样本组的映射关系容器中的第2、3和4条描述信息。
确定播放时间段对应的样本中第3个子轨道对应的描述信息的过程类似于第2个子轨道,不再赘述。如图16所示,第3个子轨道对应于ID为“3”的子轨道容器。在播放时间段对应的样本中第3个子轨道的描述信息为该子轨道对应的子轨道和样本组的映射关系容器中的第2、3和4条描述信息。
1308,文件解析器根据目标子轨道的描述信息以及样本组描述容器,确定播放时间段对应的样本中目标子轨道中各个分块对应的NAL包的编号。
例如,根据第2个子轨道的描述信息、第3个子轨道的描述信息以及样本组描述容器,确定这两个子轨道的编号对应的NAL包的编号。
在该步骤中,仍将针对图7的步骤701所述的两种情况进行描述。
(1)对于组成视频轨道的样本,相同分块ID所指示的分块对应相同编号的NAL包。
具体地,文件解析器可以确定目标子轨道对应的子轨道和样本组映射关系容器中的“grouping_type”(分组类型)字段取值为“ssnm”,其取值可以作为本发明实施例的分组标识,然后可以从视频文件中获取“grouping_type”字段取值为“ssnm”的样本组描述容器。文件解析器可以从该样本组描述容器中获取与“group_description_index”(组描述索引)字段取值相同的“Entry_Index”(条目索引)字段所指示的分块与NAL包之间的对应关系,根据获取的分块与NAL包之间的对应关系确定该子轨道对应的NAL包的编号。
下面以第2个子轨道为例,结合图15进行说明。
如图15所示,在第2个子轨道的描述信息中,“group_description_index”字段取值为“2”。那么,在样本组描述容器中获取取值为“2”的“Entry_Index”字段所指示的分块与NAL包之间的对应关系。可见,第2个子轨道对应的NAL包的编号分别为2、3和4。
第3个子轨道对应的过程类似于第2个子轨道,不再赘述。如图15所示,第3个子轨道对应的NAL包的编号分别为5、6和7。
(2)在组成视频轨道的样本的至少两个样本中,相同的分块ID所指示的分块,对应于不同编号的NAL包。
具体地,文件解析器可以确定目标子轨道对应的子轨道和样本组映射关系容器中的“grouping_type”(分组类型)字段取值为“ssnm”,然后可以从视频文件中获取“grouping_type”字段取值为“ssnm”的样本组描述容器。然后可以从该样本组描述容器中获取与“group_description_index”(组描述索引)字段取值相同的“Entry_Index”(条目索引)字段所指示的分块与NAL包之间的对应关系,根据获取的分块与NAL包之间的对应关系确定该子轨道对应的NAL包的编号。
下面以第2个子轨道为例,结合图16进行说明。
如图16所示,以第20个样本为例进行说明。在第20个样本中,第2个子轨道的描述信息中,“group_description_index”字段取值为“6”。那么,在样本组描述容器中获取取值为“6”的“Entry_Index”字段所指示的分块与NAL包之间的对应关系。可见,在第20个样本中,第2个子轨道对应的NAL包的编号分别为3、4和5。
第3个子轨道对应的过程类似于第2个子轨道,不再赘述。如图16所示,在第20个样本中,第3个子轨道对应的NAL包的编号分别为6和7。
对于播放时间段对应的每个样本,例如上述假设的第20至第54个样本,确定NAL包的编号的过程与上述第20个样本的情况类似,不再赘述。
1309,根据步骤1308中确定的NAL包的编号,从视频文件中获取相应的NAL包,以便解码器对这些NAL包进行解码,以播放目标区域在播放时间段内的画面。
例如,当这些NAL包对应的矩形区域超出目标区域时,可以对该矩形区域进行裁剪,从而播放目标区域的画面。
本发明实施例中,通过根据目标区域以及子轨道数据描述容器描述的子轨道的区域信息,确定目标区域对应的子轨道作为目标子轨道,并根据目标子轨道对应的子轨道数据定义容器中的目标子轨道的描述信息以及样本组描述容器,确定播放时间段对应的样本中目标子轨道中各个分块对应的NAL包的编号,使得能够对这些NAL包进行解码来播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
下面仍将结合图6a和图6b所示的场景描述本发明实施例。在图17中,重点描述生成视频文件的过程。
图17是根据本发明另一实施例的处理视频的方法的过程的示意性流程图。图17的方法由文件生成器执行。
1701,文件生成器确定视频的轨道中分块与NAL包之间的对应关系。
具体地,可以将视频画面划分为多个分块,也就是,将视频的图像帧划分为多个分块。视频的所有图像帧的分块数目和分块位置均是相同的,因此对于轨道的样本来说,分块数目和分块位置也是相同的。
在该实施例中,分块示意图仍可以参见图8。如图8所述,每个图像帧可以被划分为4个分块,即分块0、分块1、分块2和分块3。相应地,每个样本对应的分块即为分块0、分块1、分块2和分块3。
分块与NAL包之间的对应关系可以分组,即下面所述的映射组。对于组成视频轨道的样本来说,同一分块标识所指示的分块对应于相同编号的NAL包,这种情况下,共有一个映射组。
对于组成视频轨道的样本来说,至少一个相同分块标识所指示的分块对应于不同编号的NAL包。这种情况下,可以有多个映射组。也就是说,任意的两个映射组中,至少有一个分块与NAL包之间的对应关系是不相同的。
每个映射组具有标识,本实施例中,映射组的标识可以为条目索引。
例如,假设针对于图6a所示的图像帧,分块与NAL包之间的对应关系如表11所示。
表11 映射组
Figure BDA0001575683020000341
假设针对于图6b所述的图像帧,分块与NAL包之间的对应关系如表12所示。
表12 分块与NAL包之间的对应关系
Figure BDA0001575683020000351
此处,假设在该视频轨道的其它样本中,分块与NAL包之间的对应关系符合上述两个映射组中的其中一组。因此,在该视频轨道中,共有2组分块与NAL包之间的对应关系,即共有两个映射组。
1702,根据步骤1701中的分块与NAL包之间的对应关系,生成样本组描述容器。
在样本组描述容器中,可以包括整数个分块与NAL包的映射关系条目(Tile NALUMap Entry),其具体数量与上述映射组的组数相同。每个分块与NAL包的映射关系条目包括各个分块与NAL包之间的对应关系。
按照ISOBMFF定义的框架,分块与NAL包的映射关系条目的一种数据结构可参考步骤702中描述的数据结构。
Figure BDA0001575683020000352
表13示出了上述数据结构中各字段的含义。
表13 分块与NAL包的映射关系条目中字段含义
Figure BDA0001575683020000361
例如,表14示出了样本组描述容器所包含的内容。如表14所示,“grouping_type”(分组类型)字段的取值为“tlnm”。其中,表14中,包括两个映射组,每个映射组中包括4个分块与NAL包之间的对应关系。其中“Entry_Index”字段用于表示每个映射组在样本组描述容器中的存储位置。
表14 样本组描述容器
Figure BDA0001575683020000362
1703,根据步骤1701中确定的分块与NAL包之间的对应关系,生成样本与样本组的映射关系容器。
具体地,样本与样本组的映射关系容器可以包括整数条样本与映射组之间的对应关系。在每条样本与映射组之间的对应关系中,可以包括一个“sample_count”(样本数目)字段和一个“Index”(索引)字段。“sample_count”字段可以表示有“sample_count”个连续的样本符合相应的“Index”所指示的映射组中分块与NAL包之间的对应关系。各种样本与映射组之间的对应关系的排列顺序按照“sample_count”字段对应的连续样本在视频轨道中的排列顺序进行排列。
样本与样本组的映射关系容器还可以包括“grouping_type”(分组类型)字段。该字段的取值可以表示该样本组描述容器用于描述基于分块与NAL包的对应关系的样本分组。
例如,表15示出了样本与样本组的映射关系容器所包含的具体内容。如表15所示,“grouping_type”字段的取值可以为“tlnm”。
在表15中,在第1行所表示的样本与映射组之间的对应关系中,“Index”字段取值为“1”,“sample_count”字段取值为“10“,可以表示,第1到第10这10个样本可以对应“grouping_type”取值为“tlnm”的样本组描述容器中“Entry_index”字段取值为“1”的映射组。类似地,第11到第40这30个样本可以对应该样本组描述容器中“Entry_index”字段取值为“2”的映射组。第41到第48这8个样本可以对应该样本组描述容器中“Entry_index”字段取值为“1”的映射组。第49到第54个这6个样本可以对应该样本组描述容器中“Entry_index”字段取值为“2”的映射组。
表15 样本与样本组的映射关系容器
Figure BDA0001575683020000371
1704,文件生成器基于分块将视频轨道被划分为子轨道。
每个子轨道可以由一个或多个分块组成,这些分块可以形成一个矩形区域。本实施例中,可以假设每个子轨道由一个分块组成,那么上面所述的4个分块将分别对应于4个子轨道。
1705,对于每一个子轨道,生成用于描述该子轨道的子轨道数据描述容器。
步骤1705类似于图7中的步骤704,不再赘述。
1706,对于每个子轨道,生成用于描述子轨道的子轨道数据定义容器。
子轨道数据定义容器可以包括子轨道的描述信息,子轨道的描述信息可以指示该子轨道中分块与NAL包之间的对应关系。
具体地,子轨道数据定义容器可以包括子轨道和样本组的映射关系容器,子轨道和样本组的映射关系容器可以包括子轨道的描述信息。
子轨道和样本组的映射关系容器的所包含的具体内容可以分为以下两种情况:一种情况是子轨道和样本组的映射关系容器可以包括“grouping_type”字段,另一种情况是子轨道和样本组的映射关系容器不包括“grouping_type”字段。下面针对这两种情况进行描述。
(1)子轨道和样本组的映射关系容器可以不包括“grouping_type”字段。这种情况下,可以预先设定“grouping_type”字段的取值。该取值可以与样本组描述容器中的“grouping_type”字段以及样本与样本组的映射关系容器中的“grouping_type”字段取值相同。子轨道和样本组的映射关系容器可以包括子轨道的描述信息,在子轨道的描述信息中,可以包括“tileID”(分块ID)字段。该字段可以表示该子轨道中分块的标识。因此,“tileID”字段的取值的数目可以与该子轨道中的分块的总数目相等。那么,子轨道的描述信息的条数与子轨道中分块的数目是相同的。
按照ISOBMFF定义的框架,子轨道和样本组的映射关系容器的一种数据结构可以表示如下:
Figure BDA0001575683020000381
在该数据结构中,“item_count”字段可以表示子轨道的描述信息的条数。在子轨道的每条描述信息中,可以包括上述“tileID”字段。
每个子轨道可以对应一个子轨道容器,子轨道容器可以包括该子轨道对应的子轨道数据描述容器和该子轨道对应的子轨道数据定义容器。
表16示出了第1个子轨道的子轨道容器的一个例子,用以表示不包括“grouping_type”字段的子轨道数据定义容器。如表16所示,在该子轨道容器中,包括子轨道数据描述容器和子轨道数据定义容器。在子轨道数据描述容器中,可以包括ID、水平偏移、垂直偏移、区域宽度、区域高度以及独立性字段。其中,子轨道数据描述容器中的ID也是子轨道容器的ID,可以表示该子轨道容器描述的子轨道。此外,水平偏移、垂直偏移、区域宽度和区域高度用于表示该子轨道对应的区域的大小和位置。独立性字段可以用于指示子轨道对应的区域是否能独立解码。
子轨道数据定义容器可以包括子轨道和样本组的映射关系容器,该子轨道和样本组的映射关系容器包括子轨道的描述信息。子轨道的描述信息可以包括该子轨道的各个分块ID。如上假设,第1个子轨道对应的区域由第1个分块组成,即分块ID为“0”的分块。那么,如表16所示,在该子轨道的描述信息中,“tileID”字段取值为“0”。
表16 子轨道容器
Figure BDA0001575683020000391
(2)子轨道和样本组的映射关系容器还可以包括“grouping_type”(分组类型)字段。“grouping_type”字段用于指示子轨道数据定义容器描述的是基于分块与NAL包之间的对应关系的子轨道信息。具体地,子轨道和样本组的映射关系容器可以包括子轨道的整数条描述信息,子轨道的每条描述信息可以包括一个“tileID”字段的取值。那么,子轨道的描述信息的条数仍与子轨道中分块的总数目相同。也就是说,子轨道和样本组的映射关系容器可以包括整数个“tileID”字段的取值。
按照ISOBMFF定义的框架,子轨道和样本组的映射关系容器的一种数据结构可以表示如下:
Figure BDA0001575683020000392
在上述数据结构中,“item_count”字段可以表示子轨道的描述信息的条数。在子轨道的每条描述信息中,可以包括上述“tileID”字段。并且,定义了上述“grouping_type”字段。
表17示出了第1个子轨道的子轨道容器的一个例子,用以表示包括“grouping_type”字段的子轨道数据定义容器。如表17所示,在该子轨道容器中,包括子轨道数据描述容器和子轨道数据定义容器。在子轨道数据描述容器中,包括ID、水平偏移、垂直偏移、区域宽度、区域高度以及独立性字段。其中,子轨道数据描述容器中的ID也是子轨道容器的ID,可以表示该子轨道容器描述的子轨道。此外,水平偏移、垂直偏移、区域宽度和区域高度用于表示该子轨道对应的区域的大小和位置。
子轨道数据定义容器可以包括子轨道和样本组的映射关系容器,该子轨道和样本组的映射关系容器包括子轨道的描述信息。如表15所示,在上面的假设中,第1个子轨道对应的区域由分块ID为“0”的分块组成。子轨道和样本组的映射关系容器可以包括一条子轨道的描述信息。在子轨道的这条描述信息中,“tileID”字段取值为“0”。此外,子轨道和样本组的映射关系容器还可以包括“grouping_type”字段,该“grouping_type”字段可以取值为“tlnm”。而上述表14所示的样本组描述容器中的“grouping_type”字段取值为“tlnm”,表15所示的样本与样本组的映射关系容器中的“grouping_type”字段取值为“tlnm”,那么,该子轨道数据定义容器可以对应于表14所示的样本组描述容器和表15所示的样本与样本组的映射关系容器。
表17 子轨道容器
Figure BDA0001575683020000401
1707,文件生成器生成视频文件,该视频文件包括上述样本组描述容器、各个子轨道对应的子轨道数据描述容器和各个子轨道对应的子轨道数据定义容器以及组成视频轨道的样本。
步骤1707和图7的步骤706类似,不再赘述。
1708,文件生成器向文件解析器发送视频文件。
本发明实施例中,针对每个子轨道生成一个子轨道数据描述容器以及一个子轨道数据定义容器,并生成包括用于描述每个子轨道的子轨道描述容器和用于描述每个子轨道的子轨道数据定义容器的视频文件,由于每个子轨道数据描述容器包括子轨道的区域信息,每个子轨道数据定义容器包括子轨道的描述信息,子轨道的描述信息用于指示子轨道中各个分块对应的NAL包,使得文件解析器能够根据子轨道的区域信息确定目标区域对应的目标子轨道,并根据目标子轨道的子轨道数据定义容器中的目标子轨道的描述信息、样本组描述容器以及样本与样本组的映射关系容器,确定播放时间段内的样本中每个目标子轨道中各个分块对应的NAL包,以播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
上面介绍了生成视频文件的过程,下面将介绍根据视频文件从视频中提取目标区域的画面的过程。图18的过程与图17的过程是对应的,将适当省略相同的描述。
图18是与图17的过程相对应的处理视频的方法的过程的示意性流程图。图18的方法由文件解析器执行。
步骤1801至步骤1806与图13的步骤1301至1306类似,不再赘述。另外,在该实施例中,仍旧假设目标区域对应于第2个子轨道和第3个子轨道,即目标子轨道为第2个子轨道和第3个子轨道。
1807,文件解析器根据目标子轨道对应的子轨道数据定义容器,确定目标子轨道的描述信息。
文件解析器可以从目标子轨道对应的子轨道数据定义容器,直接获取目标子轨道的描述信息,目标子轨道的描述信息包括该目标子轨道中的分块ID。
下面以第2个子轨道为例,结合图19进行说明。图19是根据本发明一个实施例的子轨道的描述信息的示意图。
具体地,文件解析器可以从第2个子轨道对应的子轨道数据定义容器中的子轨道和样本组映射关系容器中,获取第2个子轨道的描述信息。文件解析器可以确定第2个子轨道的描述信息中“tileID”字段的取值。
如图19所示,第2个子轨道对应于ID为“2”的子轨道容器。如上假设,第2个子轨道由包含第2个分块,即分块ID为“1”的分块。因此,在第2个子轨道对应的子轨道数据定义容器中,第2个子轨道的描述信息中的“tileID”(分块ID)字段的取值为“1”。第3个子轨道对应于ID为“3”的子轨道容器。如上假设,第3个子轨道由包含第3个分块,即分块ID为“2”的分块。因此,在第3个子轨道对应的子轨道数据定义容器中,第3个子轨道的描述信息中的“tileID”字段的取值为“2”。
1808,根据目标子轨道的描述信息、样本与样本组的映射关系容器以及样本组描述容器,确定播放时间段对应的样本中目标子轨道对应的NAL包的编号。
在该步骤中,将针对图17的步骤1706所述的两种情况描述步骤1808。
(1)如果子轨道和样本组映射关系容器不包括“grouping_type”(分组类型)字段,文件解析器可以获取预先设定的“grouping_type”字段的取值。例如,预先设定的“grouping_type”字段的取值可以为“tlnm”,即预先设定的“grouping_type”字段的取值与样本组描述容器中的“grouping_type”字段的取值以及样本与样本组的映射关系容器中的“grouping_type”字段的取值相同。然后文件解析器可以从视频文件中获取“grouping_type”字段取值为“tlnm”的样本与样本组的映射关系容器。文件解析器可以从样本与样本组的映射关系容器中获取播放时间段对应的样本对应的“Entry_Index”字段。然后文件解析器可以在“grouping_type”字段取值为“tlnm”的样本组描述容器中获取这些样本对应的“Entry_Index”字段所指示的映射组,然后可以在获取的映射组中确定目标子轨道的描述信息中所包含的分块ID对应的NAL包编号,从而确定在该播放时间段对应的样本中该目标子轨道对应的NAL包的编号。
下面以第2个子轨道为例,结合图19进行说明。例如,仍假设播放时间段对应于第20至第54个样本。以第20个样本为例,可以从图19中看出,在样本与样本组的映射关系容器中,其对应的“Index”(索引)字段的取值为“2”。由于样本与样本组的映射关系容器中的“Index”字段与样本组描述容器中的“Entry_Index”字段的含义相同,都是指示映射组。因此,对于第20个样本而言,对应的“Index”(索引)字段的取值为“2”。那么在样本组描述容器中,文件解析器可以确定取值为“2”的“Entry_Index”(条目索引)字段所指向的映射组。如图19所示,第20个样本对应于第2个映射组。而第2个子轨道的描述信息中,“tileID”字段的取值“1”。那么,在第20个样本中,对于第2个子轨道,在取值为“2”的“Entry_Index”(条目索引)字段所指向的映射组中,分块ID为“1”的分块对应的起始NAL包的编号为3。由于NAL包是连续的,在该映射组中,可以看出,分块ID为“2”的分块对应的起始NAL包的编号为6。那么说明,分块ID为“1”的分块对应的NAL包的编号分别为3、4和5。也就是说,第2个子轨道对应的NAL包的编号分别为3、4和5。
同理,在第20个样本中第3个子轨道对应的NAL包的编号分别为6和7。具体过程类似于第2个子轨道,不再赘述。
(2)如果子轨道和样本组映射关系容器包括“grouping_type”(分组类型)字段,则可以获取其中的“grouping_type”字段的取值,该取值可以作为本发明实施例的分组标识。例如,此处“grouping_type”字段的取值可以为“tlnm”。文件解析器可以从视频文件中获取“grouping_type”字段取值为“tlnm”的样本与样本组的映射关系容器。文件解析器可以从样本与样本组的映射关系容器中获取播放时间段对应的样本对应的“Entry_Index”字段。然后文件解析器可以在“grouping_type”字段取值为“tlnm”的样本组描述容器中获取这些样本对应的“Entry_Index”字段所指示的映射组,然后可以在获取的映射组中确定目标子轨道的描述信息中所包含的分块ID对应的NAL包编号,从而确定在该播放时间段对应的样本中该目标子轨道对应的NAL包的编号。
针对第2个子轨道与第3个子轨道,确定NAL包编号的具体过程与步骤1808中的(1)的过程类似,不再赘述。
步骤1809与图13中的步骤1309类似,不再赘述。
本发明实施例中,通过根据目标区域以及子轨道数据描述容器描述的子轨道的区域信息,确定目标区域对应的子轨道作为目标子轨道,并根据目标子轨道对应的子轨道数据定义容器中的目标子轨道的描述信息、样本组描述容器中的映射组以及样本与样本组的映射关系容器,确定播放时间段对应的样本中目标子轨道中各个分块对应的NAL包的编号,使得能够对这些NAL包进行解码来播放目标区域在该播放时间段内的画面,从而能够有效地实现视频中区域画面的提取。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (16)

1.一种处理视频的设备,其特征在于,视频的视频轨道被划分为至少一个子轨道,每个子轨道由子轨道数据描述容器和子轨道数据定义容器描述,所述设备包括:
接收单元,用于:接收所述视频对应的视频文件,所述视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成视频轨道的样本,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在所述组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;
确定单元,用于:
确定在所述视频的画面中需要提取的目标区域以及需要提取的播放时间段;
根据所述接收单元接收的所述视频文件,在所述组成所述视频轨道的样本中确定所述播放时间段对应的样本;
根据所述目标区域以及所述视频文件中的至少一个子轨道数据描述容器包括的子轨道的区域信息,在所述至少一个子轨道中确定与所述目标区域对应的子轨道作为目标子轨道;
根据所述目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,所述确定的NAL包被解码后用于播放所述目标区域在所述播放时间段内的画面。
2.根据权利要求1所述的设备,其特征在于,所述子轨道对应的区域由至少一个分块组成;
所述视频文件还包括样本组描述容器,所述样本组描述容器包括至少一个映射组,所述至少一个映射组中的每个映射组包括所述视频轨道中各个分块标识与NAL包之间的对应关系;
所述视频文件还包括样本与样本组映射关系容器,所述样本与样本组映射关系容器用于指示所述至少一个映射组中每个映射组对应的样本;
所述目标子轨道对应的子轨道数据定义容器包括所述目标子轨道的每个分块的标识;
所述确定单元根据所述目标子轨道对应的子轨道数据定义容器确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包具体为:根据所述样本组描述容器、所述样本与样本组映射关系容器和所述目标子轨道的每个分块的标识,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
3.根据权利要求2所述的设备,其特征在于,在所述子轨道对应的区域中,对于所述组成视频轨道的样本,分块标识相同的分块对应于相同编号的NAL包。
4.一种处理视频的设备,其特征在于,视频的视频轨道被划分为至少一个子轨道,所述视频轨道由样本组成,所述设备包括:
生成单元,用于:针对所述至少一个子轨道中的每个子轨道,生成用于描述该子轨道的子轨道数据描述容器和子轨道数据定义容器,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;
生成所述视频的视频文件,所述视频文件包括针对所述每一个子轨道生成的轨道数据描述容器和子轨道数据定义容器以及组成所述视频轨道的样本;
发送单元,用于:发送所述生成单元生成的所述视频文件。
5.根据权利要求4所述的设备,其特征在于,所述子轨道对应的区域由至少一个分块组成;
所述子轨道数据定义容器包括在所述组成视频轨道的样本中所述子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识;
所述生成单元,还用于在所述生成所述视频的视频文件之前,生成样本组描述容器,所述样本组描述容器包括所述视频轨道中各个分块与NAL包之间的对应关系以及所述各个分块与NAL包之间的对应关系的标识;
所述视频文件进一步包括所述样本组描述容器。
6.根据权利要求5所述的设备,其特征在于,在所述子轨道对应的区域中,对于所述组成所述视频轨道的样本,标识相同的分块对应于相同编号的NAL包。
7.一种处理视频的方法,其特征在于,视频的视频轨道被划分为至少一个子轨道,每个子轨道由子轨道数据描述容器和子轨道数据定义容器描述,所述方法包括:
接收所述视频对应的视频文件,所述视频文件包括至少一个子轨道数据描述容器、至少一个子轨道数据定义容器以及组成所述视频轨道的样本,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在所述组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;
确定在所述视频的画面中需要提取的目标区域以及需要提取的播放时间段;
根据所述视频文件,在所述组成所述视频轨道的样本中确定所述播放时间段对应的样本;
根据所述目标区域以及所述视频文件中的至少一个子轨道数据描述容器包括的子轨道的区域信息,在所述至少一个子轨道中确定与所述目标区域对应的子轨道作为目标子轨道;
根据所述目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,所述确定的NAL包被解码后用于播放所述目标区域在所述播放时间段内的画面。
8.根据权利要求7所述的方法,其特征在于,所述子轨道对应的区域由至少一个分块组成;
所述视频文件还包括样本组描述容器,所述样本组描述容器包括所述视频轨道中各个分块与NAL包之间的对应关系以及所述各个分块与NAL包之间的对应关系的标识;
所述目标子轨道对应的子轨道数据定义容器包括在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识;
所述根据目标子轨道对应的子轨道数据定义容器,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包,包括:
根据所述样本组描述容器和在所述组成视频轨道的样本中所述目标子轨道的每个分块与NAL包之间的对应关系的标识,确定所述播放时间段对应的样本中所述目标子轨道对应的NAL包。
9.根据权利要求8所述的方法,其特征在于,在所述子轨道对应的区域中,对于所述组成视频轨道的样本,标识相同的分块对应于相同编号的NAL包。
10.一种处理视频的方法,其特征在于,视频的视频轨道被划分为至少一个子轨道,所述视频轨道由样本组成,所述方法包括:
针对所述至少一个子轨道中的每个子轨道,生成用于描述该子轨道的子轨道数据描述容器和子轨道数据定义容器,所述子轨道数据描述容器包括所述子轨道数据描述容器描述的子轨道的区域信息,所述子轨道的区域信息用于指示在所述视频的画面中所述子轨道对应的区域,所述子轨道数据定义容器用于指示在组成所述视频轨道的样本中所述子轨道数据定义容器描述的子轨道对应的网络提取层NAL包;
生成所述视频的视频文件,所述视频文件包括针对所述每一个子轨道生成的子轨道数据描述容器和子轨道数据定义容器以及组成所述视频轨道的样本;
发送所述视频文件。
11.根据权利要求10所述的方法,其特征在于,所述子轨道对应的区域由至少一个分块组成;
所述子轨道数据定义容器包括在所述组成视频轨道的样本中所述子轨道数据定义容器描述的子轨道的每个分块与NAL包之间的对应关系的标识;
在所述生成所述视频的视频文件之前,所述方法还包括:
生成样本组描述容器,所述样本组描述容器包括所述视频轨道中各个分块与NAL包之间的对应关系以及所述各个分块与NAL包之间的对应关系的标识;
所述视频文件进一步包括所述样本组描述容器。
12.根据权利要求11所述的方法,其特征在于,在所述子轨道对应的区域中,对于所述组成所述视频轨道的样本,标识相同的分块对应于相同编号的NAL包。
13.一种计算机可读存储介质,其上存储有指令,其特征在于,该指令被处理器执行时实现权利要求7或9所述的方法。
14.一种计算机可读存储介质,其上存储有指令,其特征在于,该指令被处理器执行时实现权利要求10或12所述的方法。
15.一种处理视频的设备,所述处理视频的设备包括处理器和存储器;
所述存储器用于存储计算机执行指令,当所述处理视频的设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述处理视频的设备执行如权利要求7-9中任意一项所述的处理视频的方法。
16.一种处理视频的设备,所述处理视频的设备包括处理器和存储器;
所述存储器用于存储计算机执行指令,当所述处理视频的设备运行时,所述处理器执行所述存储器存储的所述计算机执行指令,以使所述处理视频的设备执行如权利要求10-12中任意一项所述的处理视频的方法。
CN201810133819.3A 2013-11-25 2013-11-25 处理视频的设备和方法 Active CN108184101B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810133819.3A CN108184101B (zh) 2013-11-25 2013-11-25 处理视频的设备和方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201810133819.3A CN108184101B (zh) 2013-11-25 2013-11-25 处理视频的设备和方法
PCT/CN2013/087773 WO2015074273A1 (zh) 2013-11-25 2013-11-25 处理视频的设备和方法
CN201380002598.1A CN104919812B (zh) 2013-11-25 2013-11-25 处理视频的设备和方法

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
CN201380002598.1A Division CN104919812B (zh) 2013-11-25 2013-11-25 处理视频的设备和方法

Publications (2)

Publication Number Publication Date
CN108184101A CN108184101A (zh) 2018-06-19
CN108184101B true CN108184101B (zh) 2020-07-14

Family

ID=53178840

Family Applications (2)

Application Number Title Priority Date Filing Date
CN201380002598.1A Active CN104919812B (zh) 2013-11-25 2013-11-25 处理视频的设备和方法
CN201810133819.3A Active CN108184101B (zh) 2013-11-25 2013-11-25 处理视频的设备和方法

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN201380002598.1A Active CN104919812B (zh) 2013-11-25 2013-11-25 处理视频的设备和方法

Country Status (2)

Country Link
CN (2) CN104919812B (zh)
WO (1) WO2015074273A1 (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10652630B2 (en) * 2016-05-24 2020-05-12 Qualcomm Incorporated Sample entries and random access
US20180048877A1 (en) * 2016-08-10 2018-02-15 Mediatek Inc. File format for indication of video content
CN108235113B (zh) * 2016-12-14 2022-01-04 上海交通大学 一种全景视频渲染和呈现属性指示方法及系统
CN108989826B (zh) * 2017-06-05 2023-07-14 上海交通大学 视频资源的处理方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101796834A (zh) * 2007-07-02 2010-08-04 Lg电子株式会社 数字广播系统和在数字广播系统中处理数据的方法
CN102271249A (zh) * 2005-09-26 2011-12-07 韩国电子通信研究院 用于可伸缩视频的感兴趣区域信息设置方法和解析方法
CN102388613A (zh) * 2009-04-09 2012-03-21 瑞典爱立信有限公司 媒体容器文件管理
CN103026721A (zh) * 2010-07-20 2013-04-03 高通股份有限公司 布置用于串流传输视频数据的子轨道片段

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101255226B1 (ko) * 2005-09-26 2013-04-16 한국과학기술원 스케일러블 비디오 코딩에서 다중 roi 설정, 복원을위한 장치 및 방법
CN101453639B (zh) * 2007-11-29 2012-05-30 展讯通信(上海)有限公司 支持roi区域的多路视频流的编码、解码方法和系统
US8976871B2 (en) * 2009-09-16 2015-03-10 Qualcomm Incorporated Media extractor tracks for file format track selection
US9860572B2 (en) * 2011-06-08 2018-01-02 Koninklijke Kpn N.V. Spatially segmented content delivery
EP2560386A1 (en) * 2011-08-15 2013-02-20 MediaTek, Inc Video processing apparatus and method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102271249A (zh) * 2005-09-26 2011-12-07 韩国电子通信研究院 用于可伸缩视频的感兴趣区域信息设置方法和解析方法
CN101796834A (zh) * 2007-07-02 2010-08-04 Lg电子株式会社 数字广播系统和在数字广播系统中处理数据的方法
CN102388613A (zh) * 2009-04-09 2012-03-21 瑞典爱立信有限公司 媒体容器文件管理
CN103026721A (zh) * 2010-07-20 2013-04-03 高通股份有限公司 布置用于串流传输视频数据的子轨道片段

Also Published As

Publication number Publication date
CN104919812A (zh) 2015-09-16
CN104919812B (zh) 2018-03-06
CN108184101A (zh) 2018-06-19
WO2015074273A1 (zh) 2015-05-28

Similar Documents

Publication Publication Date Title
US11128898B2 (en) Method, device, and computer program for encapsulating scalable partitioned timed media data
US11876994B2 (en) Description of image composition with HEVC still image file format
US11962809B2 (en) Image data encapsulation with referenced description information
US20220408166A1 (en) Method, device, and computer program for generating timed media data
US11245939B2 (en) Generating and transmitting metadata for virtual reality
US9723317B2 (en) Method of generating media file and storage medium storing media file generation program
US10595062B2 (en) Image data encapsulation
CN114556936A (zh) 利用子图片来编码和解码视频流的方法和设备
CN108184101B (zh) 处理视频的设备和方法
CN114205649A (zh) 图像数据处理方法、装置、设备及存储介质

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