传输数据流中的灵活子流参考 技术领域 本发明的实施例涉及传输数据流中不同子流的灵活参考单独数据部分,所述传 输数据流包含两个或多个子流。 具体地,若干实施例涉及一种识别包含参考画面信息 的参考数据部分的方法和装置,当将具有不同定时属性的视频流组合成一个单个传输流 时,需要所述参考画面信息来对可伸缩视频流 (scalable video stream) 的更高层的视频流 进行解码。
背景技术 有许多将多个数据流组合成一个传输流的应用。 通常需要这种不同数据流的组 合或复用,以便能够仅使用一个单个物理传输信道来传送所产生的传输流,以传送全部 信息。
例如,在用于多个视频节目的卫星传送的 MPEG-2 传输流中,每一个视频节目 包含在一个基本流 (elementary stream) 中。 即,将一个具体基本流的数据部分 ( 被分组在 所谓的 PES 分组中 ) 与其他基本流的数据部分相交错。 此外,由于例如可以使用一个音 频基本流和一个分离的视频基本流来传送节目,不同的基本流或子流可以属于一个单个 节目。 因此,音频和视频基本流彼此相关。 当使用可伸缩视频编码 (SVC) 时,相互的 依赖性变得更加复杂,这是由于可以通过添加附加信息 ( 所谓的 SVC 子比特流 ) 来增强 后向兼容 AVC( 高级视频编解码 ) 基层 (H.264/AVC) 的视频,所谓的 SVC 子比特流可以 在保真度、空间分辨率和 / 或时间分辨率方面增强 AVC 基层的质量。 即,在增强层 ( 附 加的 SVC 子比特流 ) 中,可以传送视频帧的附加信息,以便增强其感知质量。
对于重构,在对相应的视频帧进行解码之前,从不同流中收集属于一个单个视 频帧的所有信息。 不同流内包含的属于一个单个帧的信息被称作 NAL 单元 ( 网络提取层 单元 )。 甚至可以通过不同传送信道来传送属于一个单个画面的信息。 例如,一个分离 的物理信道可以用于每一个子比特流。 然而,单独子比特流的不同数据分组彼此相关。 通常通过比特流语法的一个特定语法元素 (dependency_ID :DID) 来表示依赖性。 即, 在具有不同 PID 编号 ( 分组标识符 ) 的传输流中传输 SVC 子比特流 ( 在 H.264/SVC NAL 单元报头语法元素 :DID 方面不同 ),SVC 子比特流在可能的可伸缩性尺寸保真度、空间 或时间分辨率中的至少一个方面,能够增强 AVC 基层或一个较低子比特流。 也就是说, 以传输针对相同节目的不同媒体类型 ( 例如,音频或视频 ) 的相同方式,来传输 SVC 子 比特流。 这些子流的存在是在与传输流关联的传输流分组报头中限定的。
然而,为了对图像和关联的音频数据进行重构和解码,在解码之前或之后,必 须使不同的媒体类型同步。 通常通过所谓的 “呈现时间戳” (PTS) 的传送来实现解码后 的同步,该 “呈现时间戳” 分别指示视频帧或音频帧的实际输出 / 呈现时间 tp。 如果解 码画面缓冲器 (DPB) 用来在解码之后暂时存储传输的视频流的解码画面 ( 帧 ),则呈现时 间戳 tp 指示从相应的缓冲器中移除解码画面。 由于可以使用不同的帧类型,例如,p- 类 型 ( 预测 ) 和 b- 类型 ( 双向 ) 帧,不需要必须以视频帧的呈现顺序对视频帧进行解码。
因此,通常传送所谓的 “解码时间戳”,来指示最新可能的帧解码时间,以便保证提供 后续帧的全部信息。
当接收到的传输流信息在基本流缓冲器 (EB) 内缓冲时,解码时间戳 (DTS) 指示 从基本流缓冲器 (EB) 中移除正在考虑的信息的最新可能的时间。 因此,根据系统层的假 定缓冲模型 (T-STD) 和视频层的缓冲模型 (HRD),来限定传统的解码处理。 可以将系 统层理解成传输层,即,为了在一个单个传输流内提供不同节目流或基本流而需要的复 用和解复用所需的精确定时是至关重要的。 可以将视频层理解成所使用的视频编解码器 所需的分组和参考信息。 系统层再次对视频层的数据分组信息进行分组和组合,以便允 许传输信道的连续传送。
图 1 中示出了利用单个传输信道的 MPEG-2 视频传送所使用的假定缓冲模型的 一个示例。 视频层的时间戳和系统层的时间戳 ( 在 PES 报头中指示 ) 将指示相同的时刻。 然而,如果视频层和系统层的时钟频率不同 ( 通常是这种情况 ),则在两个不同缓冲器模 型 (STD 和 HRD) 所使用的不同时钟给出的最小容限内,该时间应当相等。
在图 1 所示的模型中,从传输流中把在时刻 t(i) 到达接收机处的传输流数据分组 2 解复用成不同的独立流 4a-4d,其中,通过出现在每一传输流分组报头内的不同 PID 编 号来区分不同的流。 传输流数据分组存储在传输缓冲器 6(TB) 中,并且然后被转移至复用缓冲器 8(MB)。 可以使用固定的速率,执行从传输缓冲器 TB 至复用缓冲器 MB 的转移。
在将明码 (plain) 视频数据传送至视频解码器之前,移除由系统层 ( 传输层 ) 添 加的附加信息,即 PES 报头。 这可以在将数据转移至基本流缓冲器 10(EB) 之前进行。 即,当将数据从 MB 转移至 EB 时,应当存储已移除的相应时间信息 ( 例如解码时间戳 td 和 / 或呈现时间戳 tp) 作为用于进一步处理的辅助信息。 为了允许按顺序的重构,如 PES 报头中所携带的解码时间戳所示,不迟于 td(j) 地将访问单元 A(j) 的数据 ( 与一个特定帧 相对应的数据 ) 从基本流缓冲器 10 中移除。 同样,由于视频层的解码时间戳 ( 由每一访 问单元 A(j) 的所谓 SEI 消息所示 ) 在视频流内不会以明文传送,应当强调的是,系统层 的解码时间戳应当等于视频层中的解码时间戳。 因此,利用视频层的解码时间戳将需要 视频流的进一步解码,从而使简单并高效的复用实现方式变得难以实施。
解码器 12 对明码视频内容进行解码,以便提供解码的画面,解码的画面存储在 解码画面缓冲器 14 中。 如上所述,由视频编解码器提供的呈现时间戳用来控制呈现, 即,控制存储在解码画面缓冲器 14(DPB) 中的内容的移除。
如上所述,用于可伸缩视频编码 (SVC) 传输的当前标准将子比特流的传输限定 为具有包括不同 PID 编号的传输流分组的基本流。 这需要包含在传输流分组中的基本流 数据的附加重排序,以导出表示单个帧的单独访问单元。
图 2 中示出了该重排序方案。 解复用器 4 将具有不同 PID 编号的分组解复用成 分离的缓冲链 20a 至 20c。 即,当传送 SVC 视频流时,向不同缓冲链 20a 至 20c 的不同 的依赖性表示 (dependency-representation) 缓冲器 (DRBn) 提供不同子流中传输的相同访 问单元的部分。 最后,应当将数据提供至公共基本流缓冲器 10(EB),并在提供至解码器 22 之前对数据进行缓冲。 然后将已解码的画面存储在公共解码画面缓冲器 24 中。
换言之,将不同子比特流中的相同访问单元的部分 ( 还被称作依赖性表示 DR)
初步存储在依赖性表示缓冲器 (DRB) 中,直到将其传送至基本流缓冲器 10(DB) 中以用 于移除。 NAL 单元报头内所指示的具有最高语法元素 “dependency_ID” (DID) 的子比 特流包括具有最高帧速率的所有访问单元或一部分访问单元 ( 具有依赖性表示 DR)。 例 如,由 dependency_ID = 2 标识的子流可以包含以 50Hz 帧速率编码的图像信息,而具有 dependency_ID = 1 的子流可以包含 25Hz 帧速率的信息。
根据本实现方式,将具有相同解码时间 td 的子比特流的所有依赖性表示传送至 解码器,作为具有 DID 的最高可用值的依赖性表示的一个具体访问单元。 即,当对具有 DID = 2 的依赖性表示进行解码时,考虑具有 DID = 1 和 DID = 0 的依赖性表示的信息。 使用具有相同解码时间戳 td 的三个层的所有数据分组来形成访问单元。 向解码器提供不 同依赖性表示的顺序由所考虑的子流的 DID 来限定。 如图 2 所示执行解复用和重排序。 访问单元缩写为 A。 DBP 指示解码画面缓冲器,并且 DR 指示依赖性表示。 将依赖性表 示临时存储在依赖性表示缓冲器 DRB 中,并且在将重新复用的流传送至解码器 22 之前将 其存储在基本流缓冲器 EB 中。 MB 表示复用缓冲器,并且 PID 表示每一单独子流的节目 ID。 TB 指示传输缓冲器,并且 td 指示编码时间戳。
然而,上述方法始终假设,相同的时间信息出现在与相同访问单元 ( 帧 ) 相关联 的子比特流的所有依赖性表示内。 然而,这无论对于由 SVC 定时所支持的解码时间戳还 是呈现时间戳都不是真实的,或不可利用 SVC 内容而实现。 由于 H.264/AVC 标准的附录 A 定义了若干不同简档和等级,就会产生该问题。 通常,简档定义了与该特定简档兼容的解码器必须支持的特征。 等级定义了解码器内不 同缓冲器的大小。 此外,所谓的 “假定参考解码器” (HRD) 被定义为对解码器的期望 行为、特别是对所选等级的关联缓冲器的期望行为进行仿真的模型。 还在编码器处使用 HRD 模型,以便确保由编码器引入到已编码视频流中的定时信息不会破坏 HRD 模型的约 束,以及解码器处的缓冲器大小。 因此,这将使利用标准兼容解码器进行解码成为不可 能。 SVC 流可以支持不同子流内的不同等级。 即,对视频编码的 SVC 扩展提供了创建 具有不同定时信息的不同子流的可能。 例如,可以帧速率在 SVC 视频流的单独子流内以 不同的帧速率进行编码。
H.264/AVC(SVC) 的可伸缩扩展允许将具有不同帧速率的可伸缩流编码到每一 子流中。帧速率可以是彼此的倍数,例如基本层为 15Hz,而时间增强层为 30Hz。此外, SVC 还允许在子流之间具有移动的帧速率比,例如基本层提供 25Hz,增强层提供 30Hz。 注意, SVC 扩展 ITU-T H.222.0 标准 ( 系统层 ) 应当能够支持这样的编码结构。
图 3 给出了传输视频流的两个子流内的不同帧速率的一个示例。 基本层 ( 第一 数据流 )40 可具有 30Hz 的帧速率,而信道 2 的时间增强层 42( 第二数据流 ) 可具有 50Hz 的帧速率。 对于基本层,传输流的 PES 报头中的定时信息 (DTS 和 PTS) 或视频流的 SEI 中的定时足以对基本层的较低帧速率进行解码。
如果视频帧的完整信息包括在增强层的数据分组中,则 PES 报头中的时间信息 或增强层中流内 SEI 中的时间信息也足以用来对较高帧速率进行解码。然而,由于 MPEG 通过引入 p- 帧或 i- 帧而提供了复杂的参考机制 (referencing mechanism),增强层的数据 分组可以利用基层的数据分组作为参考帧。 即,从增强层解码的帧利用与基层提供的帧 有关的信息。 在图 3 中示出了这种情况,其中,基层 40 的两个所示数据部分 40a 和 40b
具有与呈现时间相对应的解码时间戳,以满足用于相当慢的基层解码器的 HRD 模型的需 求。 为了对完整帧进行完全解码,数据模块 44a 至 44d 给出了增强层解码器所需的信息。
以较高的帧速率重构第一帧 44a 需要基层的第一帧 40a 的完整信息以及增强层的 前三个数据部分 42a 的完整信息。 以较高的帧速率对第二帧 44b 进行解码需要基层的第 二帧 40b 的完整信息以及增强层的数据部分 42b 的完整信息。
传统解码器将具有相同解码时间戳 DTS 或呈现时间戳 PTS 的基层和增强层的所 有 NAL 单元进行组合。 最高层 ( 第二数据流 ) 的 DTS 将给出从基本缓冲器中移除所产生 的访问单元 AU 的时间。 然而,由于相应数据分组的值不同,不同层内根据 DTS 或 PTS 值的关联不再是可能的。 为了保持根据 PTS 或 DTS 值的关联是可能的,理论上向基层的 第二帧 40b 给予如基层的假定帧 40c 所示的解码时间戳值。 然而,由于关联缓冲器太小 或处理能力太慢,以至于不能对具有减少的解码时间偏移的两个后续帧进行解码,仅与 基层标准兼容的解码器 ( 与基层相对应的 HRD 模型 ) 甚至不再能够对基层进行解码。
换言之,传统技术不可能灵活地使用较低层中先前的 NAL 单元 ( 帧 40b) 的信息 作为参考帧,来对较高层的信息进行解码。 然而,需要这种灵活性,特别是当传输具有 不同帧速率的视频时,所述不同帧速率根据 SVC 流的不同层具有不均匀的比值。 例如, 一个重要示例可以是,可伸缩视频流在增强层中的帧速率为 24 帧 / 秒 ( 使用在电影产品 中 ),在基层中的帧速率为 20 帧 / 秒。 在这样的情况下,可以极大地节省比特,从而根 据基层的 i- 帧 0 将增强层的第一帧编码成 p- 帧。 然而,这两个层的帧明显具有不同的时 间戳。 使用上述段落中描述的传统技术和现有传输流机制,不可能获得为后续解码器提 供正确顺序的帧序列的适当解复用和重排序。 由于两个层包含对于不同帧速率的不同定 时信息,用于传输可伸缩视频或彼此相关数据流的 MPEG 传输流标准和其他已知的比特 流传输机制不能提供所需的灵活性,以允许在不同层中限定或参考相同画面的相应 NAL 单元或数据部分。
存在这样的需求 :提供包含相互关联数据部分的不同子流的不同数据部分之间 的更灵活的参考方案。 发明内容 根据本发明的一些实施例,通过针对属于传输流内第一和第二数据流的数据部 分导出解码或关联策略的方法,来提供这种可能性。 不同的数据流包含不同的定时信 息,限定该定时信息使得一个单个数据流内的相对时间是一致的。 根据本发明的一些实 施例,通过将关联信息包括在第二数据流中来实现不同数据流的数据部分之间的关联, 第二数据流需要参考第一数据流的数据部分。 根据一些实施例,关联信息参考第一数据 流的数据分组的已存在数据字段之一。 因此,第二数据流的数据分组可以明确地参考第 一数据流内的单独分组。
根据本发明的其他实施例,第二数据流的数据部分所参考的第一数据部分的信 息是第一数据流内的数据部分的定时信息。 根据其他实施例,参考第一数据流的第一数 据部分的其他明确信息,例如,连续分组 ID 编号等。
根据本发明的其他实施例,没有将附加数据引入到第二数据流的数据部分中, 同时按顺序有差别地利用已存在的数据字段,以便包括关联信息。 即,例如,可以利用
为第二数据流的定时信息所保留的数据字段,以包含允许明确参考不同数据流的数据部 分的附加关联信息。
一般地,本发明的一些实施例还提供产生包括第一和第二数据流的视频数据表 示的可能性,其中,传输流内不同数据流的数据部分之间的灵活参考是可行的。 附图说明
以下将参考附图,对本发明的若干实施例进行描述,在附图中 : 图 1 是传输流解复用的示例 ; 图 2 是 SVC- 传输流解复用的示例 ; 图 3 是 SVC 传输流的示例 ; 图 4 是用于产生传输流表示的方法的实施例 ; 图 5 是用于产生传输流表示的方法的另一实施例 ; 图 6a 是用于导出解码策略的方法的实施例 ; 图 6b 是用于导出解码策略的方法的另一实施例 ; 图 7 是传输流语法的示例 ; 图 8 是传输流语法的另一示例 ; 图 9 是解码策略生成器的实施例 ; 图 10 是数据分组调度器的实施例。具体实施方式
图 4 示出了本发明方法的可能实现方式,该方法产生传输数据流 100 内的视频 序列的表示。 将具有第一数据部分 102a 至 102c 的第一数据流 102 与具有第二数据部分 104a 和 104b 的第二数据流 104 进行组合,以便产生传输数据流 100。 产生关联信息,关 联信息使第一数据流 102 的预定的第一数据部分与第二数据流的第二数据部分 106 相关 联。 在图 4 的示例中,通过将关联信息 108 嵌入第二数据部分 104a 中来实现关联。 在 图 4 所示的实施例中,关联信息 108 例如通过包括指针或复制定时信息作为关联信息,来 参考第一数据部分 102a 的第一定时信息 112。 毫无疑问,其他实施例可以利用其他关联 信息,例如,唯一报头 ID 编号、 MPEG 流帧编号等。
然后,包括第一数据部分 102a 和第二数据部分 106a 的传输流可以通过按照其原 始定时信息的顺序对数据部分进行复用而产生。
代替引入关联信息作为需要附加比特空间的新数据字段,可以利用诸如包含第 二定时信息 110 的已存在数据字段来接收关联信息。
图 5 简要概述了一种方法的实施例,该方法用于产生具有包括第一数据部分的 第一数据流和包括包括第二数据部分的第二数据流的视频序列的表示,其中第一数据部 分具有第一定时信息,第二数据部分具有第二定时信息。 在关联步骤 120 中,关联信 息与第二数据流的第二数据部分相关联,关联信息指示第一数据流的预定的第一数据部 分。
在解码器侧,如图 6a 所示,可以针对所产生的传输流 210 导出解码策略。 图 6a 示出了,根据参考数据部分 402,导出针对第二数据部分 200 的解码策略的总体概念,第二数据部分 200 是传输流 210 的第二数据流的一部分,该传输流包括第一数据流和第二数 据流,第一数据流的第一数据部分 202 包括第一定时信息 212,并且第二数据流的第二数 据部分 200 包括第二定时信息 214 以及指示第一数据流的预定第一数据部分 202 的关联信 息 216。 具体地,关联信息包括第一定时信息 212 或第一定时信息 212 的参考或指针,因 此允许明确地识别第一数据流内的第一数据部分 202。
使用第二定时信息 214 作为针对第二数据部分的处理时间 ( 解码时间或呈现时 间 ) 的指示,并且使用第一数据流的被参考的第一数据部分 202 作为参考数据部分,来导 出第二数据部分 200 的解码策略。 即,一旦在策略产生步骤 220 中导出解码策略,还可以 通过后续解码方法 230 进一步对数据部分进行处理或解码 ( 在视频数据的情况下 )。 当第 二定时信息 214 用作处理时间 t2 的指示时,并且当已知具体的参考数据部分时,可以在正 确时间以正确顺序向解码器提供数据部分。 即,首先将与第一数据部分 202 相对应的数 据内容提供至解码器,接着将与第二数据部分 200 相对应的数据内容提供至解码器。 第 二数据部分 200 的第二定时信息 214 给出了将两项数据内容提供至解码器 232 的时刻。
一旦导出解码策略,可以在第二数据部分之前对第一数据部分进行处理。 在一 个实施例中的处理可以意味着,在第二数据部分之前访问第一数据部分。 在另一实施例 中,访问可以包括提取用于在后续解码器中对第二数据部分进行解码所需的信息。 例 如,这可以是与视频流相关联的辅助信息。 在以下段落中,通过将数据部分的灵活参考的本发明概念应用至 MPEG 传输 流 标 准 (ITU-T Rec.H.220.0|ISO/IEC 13818-1 :2007EPDAM3.2(SVC 扩 展 ), Antalya, Turkey,2008 年 1 月 :[3]ITU-TRec.H.264200X 第四版 (SVC)|ISO/IEC 14496-10 :200X 第四版 (SVC)),来描述具体实施例。
如上所述,本发明的实施例可以包含或添加用于识别具有较低 DID 值的子流 ( 数据流 )( 例如,包括两个数据流的传输流的第一数据流 ) 中的时间戳的附加信息。 当 存在两个以上的数据流时,具有较高 DID 值 ( 第二数据流 ) 或具有最高 DID 的子流给出 重排序的访问单元 A(j) 的时间戳。 当具有系统层最高 DID 的子流的时间戳可用于解码 和 / 或输出定时,通过指示具有其他 DID 值 ( 例如,下一较低值 ) 的子流中相应的依赖 性表示的附加定时信息 tref 来实现重排序。 在图 7 中示出了该过程。 在一些实施例中, 附加信息可以在附加数据字段中 ( 例如 SVC 依赖性表示定界符中 ) 携带,或者例如作为 PES 报头中的扩展。 可选地,当另外通知应当可选地使用相应的数据字段的内容时,附 加信息可以在现有定时信息字段中携带 ( 例如,PES 报头字段 )。 在专为图 6b 中所示的 MPEG2 传输流设计的实施例中,可以如以下所述执行重排序。 图 6b 示出了多种结构, 其功能由以下缩写来描述 :
An(j) =在 tdn(jn) 对子比特流 n 的第 j 个访问单元进行解码,其中 n == 0 指示 基层
DIDn ==子比特流 n 中的 NAL 单元报头语法元素 dependency_id
DPBn =子比特流的解码画面缓冲器
DRn(jn) =子比特流 n 中第 jn 个依赖性表示
DRBn =子比特流 n 中依赖性表示
EBn =子比特流 n 的基本流缓冲器
MBn =子比特流 n 的复用缓冲器
PIDn =传输流中子比特流 n 的节目 ID
TBn =子比特流 n 的传输缓冲器
tdn(jn) =子比特流 n 中第 jn 个依赖性表示的解码时间戳
tdn(jn) 可以不同于相同访问单元 An(j) 中的至少一个 tdm(jm)
tpn(jn) =子比特流 n 中第 jn 个依赖性表示的呈现时间戳
tpn(jn) 可以不同于相同访问单元 An(j) 中的至少一个 tpm(jm)
trefn(Jn) =子比特流 n 中第 jn 个依赖性表示的较低子比特流的时间
戳参考 ( 直接参考 ),其中,除了 tpn(jn) 以外, tref trefn
(jn) 也被携带在 PES 分组中,例如,被携带在 SVC 依赖
性表示定界符 NAL 中
如下对接收到的传输流 300 进行处理。
按照子流 n 中 DRn(jn) 的接收顺序 jn,所有依赖性表示 DRz(jz) 以最高值开始,z = n。 即,如单独的 PID 编号所示,解复用器 4 对子流进行解复用。 将接收到的数据部分的内容存储 在不同子比特流的单独的缓冲链的 DRB 中。 以 z 的顺序提取 DRB 中的数据,根据以下规则来 创建子流 n 的第 jn 个访问单元 An(jn) : 以下,假设子比特流 y 比子比特流 x 具有更高的 DID。 即,子比特流 y 中的信 息取决于子比特流 x 中的信息。 对每两个相应的 DRx(jx) 和 DRy(jy), trefy(jy) 必须等于 tdx(jx)。 向 MPEG2 传输流标准应用该示教,例如,这可以通过如下来实现 :
通过在 PES 报头扩展中添加字段来指示关联信息 tref,未来的可伸缩 / 多视图 (multi-view) 编码标准也可以使用该关联信息。 对于要估计的相应字段,可以将 PES_ extension_flag 和 PES_extension_flag_2 设置为一,并且 stream_id_extension_flag 可以设置 为 0。 通过使用 PES 扩展部分的保留比特来发信号通知关联信息 t_ref。
可以进一步决定对附加 PES 扩展类型进行限定,还可以提供未来的扩展。
根据另一实施例,可以将关联信息的附加数据字段添加至 SVC 依赖性表示定界 符。 然后,可以引入信令比特来指示 SVC 依赖性表示内新字段的存在。 例如,可以将 这样的附加比特引入 SVC 描述符或分级描述符中。
根据一个实施例,可以通过使用如下现有标记或通过引入以下附加标记,来实 现 PES 分组报头的扩展 :
TimeStampReference_flag- 这是 1 比特的标记,当设置为 ‘1’
时,指示存在。
PTS_DTS_reference_flag- 这是 1 比特标记。
PTR_DTR_flags- 这是 2 比特字段。 当将 PTR_DTR_flags 字段设置为 ‘10’时, 下面的 PTR 字段包含另一 SVC 视频子比特流或 AVC 基层中的 PTS 字段的参考,该 AVC 基层具有出现在 SVC 视频子比特流中的 NAL 单元报头语法元素 dependency_ID 的次较低 值,该 SVC 视频子比特流在 PES 报头中包含该扩展。 当将 PTR_DTR_flags 字段设置为 ‘01’时,下面的 DTR 字段包含另一 SVC 视频子比特流或 AVC 基层中的 DTS 字段的参 考,该 AVC 基层具有出现在 SVC 视频子比特流中的 NAL 单元报头语法元素 dependency_ ID 的次较低值,该 SVC 视频子比特流在 PES 报头中包含该扩展。 当将 PTR_DTR_flags
字段设置为 ‘00’ 时,没有 PTS 或 DTS 参考出现在 PES 分组报头中。 值 ‘11’ 是禁 止的。
PTR( 呈现时间参考 )- 这是在三个分离字段中编码的 33 比特数字。 这是另一 SVC 视频子比特流或 AVC 基层中的 DTS 字段的参考,该 AVC 基层具有出现在 SVC 视频 子比特流中的 NAL 单元报头语法元素 dependency_ID 的次较低值,该 SVC 视频子比特流 在 PES 报头中包含该扩展。
DTR( 呈现时间参考 )- 这是在三个分离字段中编码的 33 比特数字。 这是另一 SVC 视频子比特流或 AVC 基层中的 DTS 字段的参考,该 AVC 基本层具有出现在 SVC 视 频子比特流中的 NAL 单元报头语法元素 dependency_ID 的次较低值,该 SVC 视频子比特 流在 PES 报头中包含该扩展。
图 7 中给出了利用现有和其他附加数据标记的相应语法的示例。
在图 8 中给出了当实现前述第二选项时可以使用的语法的示例。 为了实现附加 关联信息,可以向以下语法元素分配以下数字或值 :
SVD 依赖性表示定界符 nal 单元的语义
forbidden_zero-bit- 应当等于 0x00 nal_ref_idc - 应当等于 0x00
nal_unit_type - 应当等于 0x18
t_ref[32...0] - 应当等于如 PES 报头中所示的依赖性表示的解码时间戳 DTS, 依赖性表示具有 SVC 视频子比特流或 AVC 基层中相同访问单元的 NAL 单元报头语法元 素 dependency_id 的次较低值。 其中,相对于参考依赖性表示的 DTS,将 t_ref 设置如 下 :DTS[14..0] 等于 t_ref[14..0],DTS[29..15] 等于 t_ref[29..15],以及 DTS[32..30] 等于 t_ ref[32..30]。
maker_bit - 是 1 比特字段并应当等于 “1”。
本发明的其他实施例可以实现为专用硬件或在硬件电路中实现。
例如,图 9 示出了根据参考数据部分的第二数据部分的解码策略生成器,第二 数据部分是包括第一和第二数据流的传输流的第二数据流的一部分,其中,第一数据流 的第一数据部分包括第一定时信息,而且第二数据流的第二数据部分包括第二定时信息 以及指示第一数据流的预定第一数据部分的关联信息。
解码策略生成器 400 包括参考信息生成器 402 以及策略生成器 404。 参考信息 生成器 402 适于使用第一数据流的被参考的预定第一数据部分来导出第二数据部分的参 考数据部分。 策略生成器 404 适于使用作为第二数据部分的处理时间的指示的第二定时 信息、以及由参考信息生成器 402 导出的参考数据部分,来导出第二数据部分的解码策 略。
根据本发明的另一实施例,视频解码器包括如图 9 所示的解码策略生成器,以 便为包含在与不同等级的可伸缩视频编解码器相关联的不同数据流的数据分组内的视频 数据部分创建解码顺序策略。
因此,本发明的实施例允许创建高效编码的视频流,该视频流包括与已编码的 视频流的不同质量有关的信息。 由于灵活参考,因为可以避免单个层内信息的重复发 送,所以能够保持高比特率。
不同数据流的不同数据部分之间的灵活参考的应用不仅可以用在视频编码的情 况下。 通常,其还可以应用于不同数据流的各种数据分组。
图 10 示出了数据分组调度器 500 的实施例,包括处理顺序生成器 502、可选接收 机 504 和可选重排序器 506。 该接收机适于接收包括具有第一和第二数据部分的第一数据 流和第二数据流的传输流,其中,第一数据部分包括第一定时信息,并且第二数据部分 包括第二定时信息和关联信息。
处理顺序生成器 502 适于产生具有处理顺序的处理调度,从而在第一数据流的 被参考的第一数据部分之后处理第二数据部分。 重排序器 506 适于在第一数据部分 450 之后输出第二数据部分 452。
如图 10 中所示,第一和第二数据流没有必要包含在一个复用的传输数据流中, 如选项 A 所示。 相反,还可能如图 10 的选项 B 所示,传送第一和第二数据流作为分离 的数据流。
通过在前述段落中引入的灵活参考,可以增强多个传送和数据流的情况。 以下 段落给出其他应用情况。
具有可伸缩、或多视图、或多描述、或任何其他属性,并且允许将媒体分成逻 辑子集的媒体流,通过不同信道传输或存储在不同存储容器内。 分离媒体流还可能需要 分离单独的媒体帧或访问单元,从总体上说,这些单独的媒体帧或访问单元是解码成子 部分所需的。 为了在通过不同信道传送或存储在不同存储容器中之后恢复帧或访问单元 的解码顺序,需要用于解码顺序恢复的处理,这是因为依赖于不同信道中的传送顺序或 不同存储容器中的存储顺序可能不允许恢复完整媒体流或完整媒体流的任何独立可用子 集的解码顺序。 从访问单元的具体子部分,将完整媒体流的子集构建成媒体流子集的新 访问单元。 媒体流子集根据用于恢复访问单元的媒体流的子集数目,每帧 / 访问单元需 要不同的解码和呈现时间戳。 一些信道在信道中提供了可用于恢复解码顺序的解码和 / 或呈现时间戳。 此外,信道通常通过传送或存储顺序或通过附加装置,在信道内提供解 码顺序。 为了恢复不同信道或不同存储容器之间的解码顺序,需要附加信息。 对于至少 一个传送信道或存储容器,解码顺序必须是可通过任何装置导出的。 然后,可导出的解 码顺序与指示不同传送信道或存储容器中帧 / 访问单元及其子部分的值给出了其他信道 的解码顺序,可导出传送通道或存储容器中的相应的帧 / 访问单元或其子部分的解码顺 序。 指针可以是解码时间戳或呈现时间戳,但也可以是指示具体信道或容器中传送或存 储顺序的序列号,或可以是允许标识媒体流子集中解码顺序可导出的帧 / 访问单元的任 何其他指示符。
可以将媒体流分成媒体流子集,并通过不同传送信道传输或存储在不同存储容 器中,即,完整的媒体帧 / 访问单元或其子部分出现在不同信道或不同存储容器中。 组 合媒体流的帧 / 访问单元的子部分,产生媒体流的可解码的子集。
至少在一个传送信道或存储容器中,按照解码顺序携带或存储媒体,或者在至 少一个传送信道或存储容器中,解码顺序可以通过任何其他装置导出。
至少,解码顺序可恢复的信道提供至少一个指示符,该指示符可以用于标识具 体的帧 / 访问单元或其子部分。 除了解码顺序可导出的帧 / 访问单元或其子部分,向至 少一个其他信道或容器中的帧 / 访问单元或其子部分分配该指示符。标识符给出,除了解码顺序可导出的帧 / 访问单元或其子部分以外,在任何其 他信道或容器中的帧 / 访问单元或其子部分的解码顺序,该标识符允许发现解码顺序可 导出的信道或容器中的相应的帧 / 访问单元或其子部分。 这样,解码顺序可导出的信道 中的参考解码顺序给出相应的解码顺序。
解码和 / 或呈现时间戳可以用作指示符。
专有地或额外地,多视图编码媒体流的视图指示符可以用作指示符。
专有地或额外地,指示多描述编码媒体流的分区的指示符可以用作指示符。
当时间戳用作指示符时,最高等级的时间戳用于更新出现在整个访问单元的帧 / 访问单元的较低子部分中的时间戳。
尽管前述实施例主要与视频编码和视频传送相关,但灵活参考不限于视频应 用。 相反,所有其他分组的传送应用可以从如上所述的解码策略和编码策略的应用中极 大获益,例如使用不同质量的音频流的音频流应用或其他多流应用。
毫无疑问,该应用不取决于所选传送信道。 可以使用任何类型的传送信道,例 如,空中传送、电缆传送、光纤传送、经由卫星的广播等。 此外,不同的传送信道可以 提供不同的数据流。 例如,可以经由 GSM 网络传送仅需要有限带宽的流的基本信道,而 只有拥有 UMTS 蜂窝电话才能接收需要更高比特率的增强层。
根据本发明的方法的特定实现方式需要,本发明的方法可以以硬件或软件实 现。 使用数字存储介质 ( 具体地,具有存储于其上的电可读控制信号的磁盘、 DVD 或 CD) 可以执行该实现方式,该数字存储介质与可编程计算机系统协作,来执行本发明的 方法。 通常,本发明因而是一种具有存储在机器可读载体上的程序代码的计算机程序 产品,当计算机程序产品运行在计算机上时,该程序代码可以操作用于执行本发明的方 法。 换言之,本发明因此是一种具有程序代码的计算机程序,当计算机程序运行在计算 机上时,程序代码用于执行至少一项本发明的方法。
尽管参照具体实施例,已具体示出并描述了上述内容,但本领域的技术人员将 理解的是,在不背离其精神和范围的前提下,可以在形式和细节上进行各种其他改变。 应当理解的是,在不背离这里所公开的以及所附权利要求所包括的广义概念的前提下, 可以进行各种改变以适于不同的实施例。