指出VAO_HDR_DAT数据的长度,以字节为单位。该长度不包含TYPE字段和本字段的长
度,其值必须为1992。
(RBP 8 to 9) VER
VAO_HDR_DAT的版本号,每个字节的具体意义如下:
b15 b14 b13 b12 b11 b10 b9 b8
主版本号 |
b7 b6 b5 b4 b3 b2 b1 b0
次版本号 |
主版本号 主版本号=1
次版本号 次版本号=1
(RBP 10 to 11) FRM_NS
VAO中视频帧的数量。
(RBP 12 to 15) VAO_SA
VAO的起始地址,该地址以相对于Scene起始地址的相对逻辑扇区偏移量表示。
(RBP 64 to 71) S_TIME
VAO开始时间。若存在视频,该时间指定了该VAO中的一个GOP的第一帧的播放时间,若不存在视频,则该时间指示的是该VAD中的一个音频帧开始播放的时间。该值与毫秒的换算关系如下:
VAO开始时间(ms)=S_TIME/90
RBP 72 to 79) E_TIME
VAO结束时间。若存在视频,该时间指定了该VAO中的最后一个GOP的最后一帧的播放结束时间,若不存在视频,则该时间指示的是该VAO中的最后一个音频帧结束播放的时间。该值与毫秒的换算关系如下:
VAO结束时间(ms)=E_TIME/90
RBP 75+5*n to 78+5*n) FRM_EA#n
VAO中第n个视频帧的最后一个包的结束地址相对于本VAO起始地址的相对逻辑扇区偏移量。
(RBP 79+5*n) FRM_ATR#n
VAO中第n个视频帧的编码方式:
b7 b6 b5 b4 b3 b2 b1 b0
repest field |
top field first |
progressive sequence |
保留 |
编码方式 |
repeat field:参见GB/T 17975.2--2000中的图像编码扩展。
top field first:参见GB/T 17975.2--2000中的图像编码扩展。
progressive sequence:参见GB/T 17975.1—2000中的序列扩展。
编码方式: 001b:I picture;
O1Ob:P picture;
011b:B picture。
RBP 492+8*n to 495+8*n) VAO_N#n_SA
当前VAO之后第n个VAO的起始地址,如为0则表示满足该要求的VAO不存在。
RBP 496+8*n to 499+8*n) VAO_P#n_SA
当前VAO之前第n个VAO的起始地址,如为0则表示满足该要求的VA0不存在。
9 数据包(PACK)
PACK包和小包的结构遵循GB/T 17975.1—2000的规定。
9.1包的结构.
包由一个包头以及一个或多个小包组成,见图13所示。
图13包的结构(没有填充小包)
包的长度2048字节并且每个包都记录在一个逻辑扇区中。如果包的长度小于2048个字节,它将仅按照表21和图14所示的方法之一进行调整。
表21 包长度调整方法
调整的数据总数 |
调整的方法 |
1-7字节 |
在小包头插入填充字节 |
8字节以上 |
在包中加入填充小包作为最后一个小包 |
——不插入填充小包
——插入一个填充小包
图14包长度调整的结构
包长度调整步骤:
——不插入填充小包
修改小包头中的PES_header_data_length的值:
PES_header_data_length=PES_header_date_length加上填充的字节数(1~7):
在小包头后面增加1-7个字节的FFh;
在小包头后面加入相应的基本流数据。
——插入一个填充小包
修改小包头中的PES_paeket_length的值:
PES_packet_length=PES_packet_length减去所缺的8个以上的字节;
在小包头后面增加一个填充小包,填充小包的长度为所缺的8个以上字节减去6;
将填充小包接在基本流水包后面,构成2048个字节的包。
9.2视频包(V_PCK)
视频包由包头和视频小包(V_PKT)组成,每个视频包为2048个字节(如图15),其中前14个字节为视频包头,后接2034个字节的包有效负载(视频小包)。
图15视频包组成
如果视频包的长度小于2048个字节,那么它将按照表21示的两种方法之一进行调整。
视频小包的有序排列就是视频小包流,视频小包由视频小包头(video-packet-header,见表22)和小包有效负载(video-packet-valid-load)组成,如图16所示。小包的有效负载为视频基本流。
图16视频小包的结构
表22 视频小包头大小的统计表
P-STD_buffer_scale和 P-STD_buffer_size |
DTS |
PTS |
填充 |
小包头大小 |
不存在 |
不存在 |
不存在 |
不存在 |
9字节 |
不存在 |
不存在 |
不存在 |
存在 |
10-16字节 |
不存在 |
不存在 |
存在 |
不存在 |
14字节 |
不存在 |
不存在 |
存在 |
存在 |
15-21字节 |
不存在 |
存在 |
存在 |
不存在 |
19字节 |
不存在 |
存在 |
存在 |
存在 |
20-26字节 |
存在 |
存在 |
存在 |
不存在 |
22字节 |
存在 |
存在 |
存在 |
存在 |
23-29字节 |
视频基本流由视频序列头开始,后接序列扩展、GOP头接图像数据的比特流如图17所示,图像数据为采用DCT+MC压缩算法得到的比特位,详见GB/T 17975.2—2000中的视频高层比特流语法结构。基本流中各个结构数据完全符合MPEG-2中视频数据的规定。
图17视频基本流
视频基本流打包成视频小包流时,视频小包头记载此小包的解码、显示等时间信息(PTS和DTS等),视频小包头应符合GB/T 17975.2--2000的规定。
9.3 音频包(A_PCK)
音频包由包头和音频小包(A- PKT)组成,音频小包则由音频小包头(见表23)和相应的音频信息与音频数据组成,音频数据为音频帧的集合。音频包的结构如图l8所示,本部分暂时只对线性PCM、ADPCM和EAC音频编码做出了规定。
——线性PCM
——ADPCM音频压缩
--EAC(中国音频压缩标准)
图18音频包的结构
表23音频小包头大小的统计
P-STD_buffer_scale和 P-STD_buffer_size |
PTS |
填 充 |
小包头大小 |
不存在 |
不存在 |
不存在 |
9字节 |
不存在 |
不存在 |
存在 |
10-16字节 |
不存在 |
存在 |
不存在 |
14字节 |
不存在 |
存在 |
存在 |
15-21字节 |
存在 |
存在 |
不存在 |
17字节 |
存在 |
存在 |
存在 |
18-24字节 |
音频包按字节对齐,音频包的长度如果小于2048字节,它将按照表21所示的方法之一调整。
音频流流号1011 1101 b(私有流1)。
对于Karaokc模式的音频流,实际是由两个音频流构成的,一个为原唱,一个为伴唱。子流号按如下规定:
b7 |
b6 |
b5 |
b4 |
b3 |
b2 |
b1 |
b1 |
音频编码类型 |
Karaoke bita |
流序号 | |||||
a Ob 正常音频流或karaoke伴奏; 1b karaoke原唱。 |
Karaoke中对应的原唱和伴奏使用相同的音频流号,并且编码方式和声道数也必须完全相同。
由于音频数据属于低延迟序列,即各音频帧之间没有数据相关性,不存在延迟帧序重排的问题,因此音频小包没有DTS,也就是PTS等于DTS。不同性质音频流的音频小包的构造方法不一样,他们的包头和小包头都应符合GB/T 17975.1--2000和GB/T 17975.2--2000中关于PS包的包头和小包头的规定,线性PCM、ADPCM以及EAC的音频小包的私有数据内容如表24、表25和表26所示。
表24线性PCM音频小包的私有数据
字 段 |
比特位数 |
字 节 数 |
值 |
sub_stream_id |
8 |
1 |
xlOO O***ba |
number_of_frame_headersb |
8 |
3 |
提供者定义 |
first_access_unit_pointer |
16 |
提供者定义 | |
audio_emphasis_flagc |
1 |
3 |
提供者定义 |
audio_mute_flagd |
l |
提供者定义 | |
保留 |
1 |
0 | |
audio_frame_numbere |
5 |
提供者定义 | |
quantization_word_lengthf |
2 |
提供者定义 | |
audio_sampling_frequencyg |
2 |
提供者定义 | |
保留 |
1 |
0 | |
number_of_audio_channelsh |
3 |
提供者定义 | |
dynmnic__range_controli |
8 |
提供者定义 | |
音频数据区(线性P(:M) | |||
a ***=解码音频流号。 b “number_of_frame_headers”描述了所有第一个字节出现在当前音频小包(A_PKT)中的音频帧的数目。 访问单元是音频帧。第一个访问单元是第一个音频帧,其第一个字节出现在此访问单元中,且由当前音频小包 的PTS说明。 c “audio__emphasis_flag”描述了加重状态: 当“audio_sampling_frequency”为96kHz,该字段定义为“关闭加重(emphasis off)”。 从第一个访闯单位中解码出的所有音频样值都要加重。 Ob-关闭加重(emphasls off); 1b-打开加重(emphasis on)。 d “auido_mute_flag”描述了当所有音频帧数据均为0时的屏蔽状态。 从第一个访闯单位中解码出的所有音频样值都要屏蔽。 0b:关闭屏蔽(mute off); 1b:打开屏蔽(mute on)。 e “audio_frme_number”描述了音频帧组(GOF)中第一个访问单位中的帧数(在O到19之间)。0表示GOF的 开始。如果任何访问单位的第一个字节不存在,则置为11111b。 f “quantization_word_length”描述了音频样值量化的字长: 00b:16比特; 01b:20比特; |
表24(续)
1Ob:24比特; 11b:保留。 g “audio_sampling_frequency”描述了音频样值的抽样频率: 00b: 44.1kHz; 01b: 48kHz; 10b: 96kHz; 其它:保留。 h “number_of_audio_channels”描述了音频通道的数目: 000b: 1ch( mono); 001b:2ch(stereo); 100b:5ch( 4.1 mode); lOlb: 6ch(5.1 mode); 111b: 8ch(7.1 mode)。 i “dynamic_range_control”描述了压缩从第一个访问单位起的动态变化范围所用到的动态范围控制字。 对于8比特的动态范围控制字[b7|b6|b5|b4|b3|b2|b1|b0],把它的前3个比特作为无符号整数X的二进制表示,而把其后5个比特位作为无符号整数Y的二进制表示,则得到如下的增益控制值: 线性:G=24-(X+Y/30)(0≤X≤7,0≤Y≤29) dB值:G=24.082-6.0206 X - 0.2007 Y(0≤X≤7, 0≤Y≤29) 如果不是用动态范围控制,则“dynamic_range_control”的值置为“1000 0000b”。 动态范围控制值G是一个推荐的增益值,可适用于第一个访问单位解码出的所有音频样值。 |
表25 ADPCM音频小包的私有数据
字 段 |
比特位数 |
字 节 数 |
值 |
sub_stream_id |
8 |
l |
xl010***bI |
number_of_frame_headersb |
8 |
3 |
提供者定义 |
first_access_unit_pointerc |
16 |
提供者定义 | |
audio_emphasis_flagd |
1 |
3 |
提供者定义 |
audio_mute_flage |
1 |
提供者定义 | |
字段 |
比特位数 |
字节数 |
值 |
保留 |
1 |
|
O |
audio_frame_nubmerf |
5 |
提供者定义 | |
quandzation_word_lengthg |
2 |
提供者定义 | |
audio_sampling_frequencyh |
2 |
提供者定义 | |
保留 |
1 |
0 | |
number_of_audio_channelsi |
3 |
提供者定义 | |
dynamic_range_control |
8 |
提供者定义 | |
音频数据区(线性PCM) |
表25(续)
a ***=解码音频流号。 b “number_of_franm_headers”描述了所有第一个字节出现在当前音频小包(A_PKT)中的音频帧的数目。 访问单元是音频帧。第一个访问单元是第一个音频帧,其第一个字节出现在此访问单元中,且由当前音频小包的PTS说明。 c “first_access_unit_pointer”以距离本信息最后一个字节的相对字节数(RBN)描述了第一个访问单位的第一个字节的地址。 如果第一个访问单位的第一个字节不存在,则进入地址(0000h)。 d “audio_emphasis_flag”描述了加重状态: 当“audio_sampling_frequency”为96kHz,该字段定义为“关闭加重(emphasis off)” 从第一个访问单位中解码出的所有音频样值都要加重。 0b:关闭加重(emphasis off); 1b:打开加重(emphasis on)。 e “audio_mute_flag”描述了当所有音频帧数据均为0时的屏蔽状态。 从第一个访问单位中解码出的所有音频样值都要屏蔽。 Ob:关闭屏蔽(mute off); 1b:打开屏蔽(mute on)。 f “audio_frame_number”描述了音频帧组(GOF)中第一个访问单位中的帧数(在0到19之间)。O表示GOF的开始。如果任何访问单位的第一个字节不存在,则置为11111b。 g “quantizafion_word_length”描述了音频样值量化的字长: 00b:16比特; 01b:20比特; 10b:24比特; 11b:保留。 h “audio_sampling_frequency”描述7音频样值的抽样频率: 00b:44.1kHz; 01b:48kHz; 1Ob:96kHz; 其它:保留。 i “number_of_audio_channels”描述了音频通道的数目: 000b:1ch(mono); 001b:2ch(stereo); 100b:5ch (4.1 mode); 101b:6ch( 5.1 mode); 111b:8Ch (7.1 mode)。 j “dynamic_range_control”描述了压缩从第一个访问单位起的动态变化范围所用到的动态范围控制字。 对于8比特的动态范围控制字[b7|b6|b5|b4|b3|b2|b1|b0],把它的前3个比特作为无符号整数X的二进制表示,而把其后5个比特位作为无符号整数Y的二进制表示,则得到如下的增益控制值: 线性: G=24-(X+Y/30)(0≤X≤7,0≤Y≤29) dB值: G=24.082-6.0206X-0.2007Y(0≤X≤7,0≤Y≤29) 如果不是用动态范围控制,则“dynamic_range_control”的值置为“1000 000b”。 动态范围控制值G是一个推荐的增益值,可适用于第一个访问单位解码出的所有音频样值。 |
表26 EAC的音频小包的私有数据
字 段 |
比特位数 |
字 节 数 |
值 |
sub_stream_id |
8 |
1 |
XO110***ba |
number_of_frame_headersb |
8 |
1 |
提供者定义 |
firs_access_unit_pointerc |
16 |
2 |
提供者定义 |
音频数据区(EAC) | |||
a ***=解码音频流号。 b “number_of_frame_headers”描述了所有第一个字节出现在当前音频小包(A_PKT)中的音频帧的数目。 访问单元是音频帧。第一个访问单元是第一个音频帧,其第一个字节出现在此访问单元中,且由当前音频小包 的PTS说明。 c “firse_access_unit_pointer”以距离本信息最后一个字节的相对字节数(RBN)描述了第一个访问单位的第一个字节的地址。如果第一个访问单位的第一个字节不存在,则进入地址(0000h)。 |
9.4 0GT包(OGT_PACK)
OGT包由包头和OGT小包(OGT_PKT)组成,每个OGT包为2048个字节(如图19所示),其中前14个字节为包头,后接2034个字节的包有效负载(OGT小包)。
图19 0GT包组成
如果OGT包的长度小于2048个字节,那么它将按照表21所示的两种方法之一进行调整。
OGT小包的有序排列就是OGT小包流,OGT小包由OGT小包头和小包有效负载组成,如图20所示。
图20 0GT小包的结构
流号(stream_id) 1011 1101b(私有流1)。
子流号(substream_id)。
00010***b(***=OGT流号)。
OGT页数据解释见第10章 迭加图文(OGT)编码。
10 迭加图文(OOT)编码
10.1迭加图文概述
迭加图文OGT(Overlay Graphics and Text)是专门用于节目标题图形和语言文字迭加显示。它可以满屏多彩色、透明迭加,允许插入歌词和其它静止图象。它的优点是在图象编码之前不需加入图形和文字,面是在解码时混合,这可提供语言选择和改善图象质量。叠加
图文数据被打包成OGT专用数据流,这一数据流的句法(syntax)和语义(semantics)在本章中定义。
10.2 0GT页
OGT页由OGT头、OGT像素数据和OGT命令序列组成,见图21。
OGT头 |
OGT像素数据 (可选) |
OGT命令序列 |
图21 0GT页结构
OGT头提供关于OGT页的信息。OGT像素数据包含被编码了的比特图(Bit Map)数据。OGT命令控制OGT定时和显示参数。OGT页的最大尺寸是128k字节。OGT页数据作为OGT包的负载打在OGT小包中。
10.2.1 0GT头
OGT头包含OGT页的所有有关信息。OGT头结构如表27所示。
表27 0GT头结构
相对偏移(RBP) |
名 称 |
说 明 |
字节数 |
数据类型 |
0to 3 |
TYPE |
‘ogtp’ |
4byes |
BYTES |
4 to 7 |
LENGTH |
OGT页数据长度 |
4 bytes |
UINT32 |
8 to 9 |
VER |
版本号 |
2 bytes |
|
10 to 15 |
Reserved |
保留 |
6 bytes |
ZERO |
16 to 19 |
OGT_PT_SA |
OGT图像数据起始地址 |
4 bytes |
RBP |
20 to 23 |
OGT_CM_SA |
OGT和令起始地址 |
4 bytes |
RBP |
24 to 63 |
Reserved |
保留 |
40 bytes |
ZERO |
其中:
(RBP 0 to 3) TYPE
为ASCII字符: ‘ogtp’,表示下面的信息为OGT页数据。
(RBP 4 to 7) LENGTH
指出OGT页的长度,以字节为单位。该长度不包含TYPE字段和本字段的长度。
(RBP 8 to 9) VER
OGT头的版本号,每个字节的具体意义如下:
b15 b14 b13 b12 b11 b10 b9 b8
主版本号 |
b7 b6 b5 b4 b3 b2 b1 b0
次版本号 |
主版本号主版本号=1
次版本号次版本号=1
(RBP 16 to 19) OGT__PT_SA
OGT图像数据起始地址,以OGT页内字节偏移量表示,该值在本版本中为0或64,其中0表示不存在OGT图像数据。
(RBP 20 to 23) OGT_CM_SA
OGT命令起始地址,以OGT页内字节偏移量表示。
10.2.2 0GT像素数据
OGT像素数据由OGT图像头、调色板数据和OGT图像数据组成。
10.2.2.1 0GT图像头
OGT图像头包含OGT像素数据的有关信息。OGT图像头结构如表28所示。
表28 0GT图像头结构
相对偏移(RBP) |
名 称 |
说 明 |
字节数 |
数据类型 |
O to 1 |
PT_WIDTH |
OGT图像宽度 |
2 bytes |
UINT16 |
2 to 3 |
PT_HEIGHT |
OGT图像高度 |
2 bytes |
UINT16 |
4 |
PT_CM |
OGT图像压缩标志 |
l bytes |
|
5 |
PT_PALS |
OGT图像调色板信息 |
l bytes |
|
6 to 9 |
PT_DATA_SIZE |
OGT图像数据的长度 |
4 bytes |
UINT32 |
10 |
|
|
l bytes |
UINT8 |
11 to 23 |
Reserved |
保留 |
13 bytes |
ZERO |
其中
(RBP O to 1) PT_WIDTH
OGT图像宽度,单位为像素。
(RBP 2to 3) PT_ HEIGHT
OGT图像高度,单位为像素。
(RBP 4) PT_CM
OGT图像压缩标志:
b7 b6 b5 b4 b3 b2 b1 b0
保留 |
编码方式 |
注: 编码方式 000b:未压缩;
001b:游长编码;
其它:保留。
(RBP 5)PT_PALS
OGT图像调色板信息:
b7 b6 b5 b4 b3 b2 b1 b0
高亮调色板 |
保留 |
调色板数目/像素比特数 |
注1:高亮调色板 0b:高亮调色板不存在。
1b:高亮调色板存在。
注2:调色板数目/像素比特数 001b:调色板包含2项;
O1Ob:调色板包含4项;
011b:调色板包含16项;
1OOb:调色板包含256项;
其它:保留。
(RBP 6 to 9) PT_DATA_SIZE
OGT图像数据的长度。
10.2.2.2调色板数据
调色板数据包括原色调色板和高亮调色板:
原调色板 |
高亮调色板 (可选) |
调色板的项数由PT_PAL决定,所有调色板的项数均相同。
每个调色板项由4个字节组成,各字节定义如下:
b31 b30 b29 b28 b27 b26 b25 b24
B |
b23 b22 b21 b20 b19 b18 b17 b16
G |
b15 b14 b13 b12 b11 b10 b9 b8
R |
b7 b6 b5 b4 b3 b2 b1 b0
|
10.2.2.3 0GT图像数据 ~ .
若PT_CM为0,OGT像素数据为未压缩的原始数据;若PT_CM为1,OGT像素数据为按照附录A压缩的游长编码数据。位图中每行的像素数等于OGT头中PT_WIDTH规定的像素数,对于16色的调色板位圈中的像素,像素数据分配如下:
像 素 名 称 |
像 素 数 据 |
像素值0 |
0Ob |
像素值1 |
01b |
像素值2 |
10b |
像素值3 |
11b |
10.2.3 0GT命令序列
OGT智令序列是由以OGT时间命令开始的一组OGT命令码组成,其有效期由OGT时间命令中规定的有效时间决定。
OGT命令序列提供了设置和改变各种OGT参数的机构。它也提供了与视音频显示同步改变的定时机构。OGT命令序列对下列特点提供支持;
——在有效期内使能,失效OGT显示;
——设置显示区;
——设置高亮区;
——设置颜色;
——配合PCT实现菜单。
10.3 0GT的区
区就是定义的一个矩形区域。OGT中定义的区包括OGT显示区、OGT高亮区和OGT选择区。
所有区的坐标定义均为左上角为原点,水平方向向右为正向,垂直方向向下为正向。
10.3.1 0GT显示区
OGT显示区为显示屏幕上的一个区,在该区域范围内可将OGT图像叠加显示在视频图像之上。
在同一时刻,我们只能有一个OGT显示区。
10.3.2 0GT高亮区
0GT高亮区为定义在显示区之中的一个区,该区内的像素用高亮色显示。
每个OGT页允许设置多达24个的高亮区,区号依次为l到24,任意两个高亮区不能重叠。
10.3.3 0GT选择区
OGT选择区为定义在某个显示区之中的一个区,在该区内的像素在用户选中后用高亮色显示。
每个OGT页可以定义22个选择区,区号依次为l到22.每个选择区的区号不能重复,任意两个选择区不能重叠,每个选择区有上下左右关联选择区。用户可以用数字键或方向键选择,22个选择区与PCT中的22个PCT_SEL一一对应。
10.4 0GT命令码
所有OGT命令码均为64比特。它们由一个操作码(Opcode)和一个,组参数组成。
10.4.1 0GT时间命令
OGT时间命令用于控制OGT显示区显示使能或失效,以及控制OGT显示区显示定时。第一个OGT命令应总是为OGT时间命令,这为后续命令序列设置显示时间,直到下一个OGT时间命令。该命令格式如下:
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
显示区 |
保留 |
b47 b46 b45 b44 b43 b42 b41 b40
PTS(31:24) |
b39 b38 b37 b36 b35 b34 b33 b32
PTS(23:16) |
b31 b30 b29 b28 b27 b26 b25 b24
PTS(15:8) |
b23 b22 b21 b20 b19 b18 b17 b16
PTS(7:0) |
b15 b14 b13 b12 b11 b10 b9 b8
显示时间(高字节) |
b7 b6 b5 b4 b3 b2 b1 b0
显示时间(低字节) |
操作码 00000b。
显示区 确定显示区的显示状态:
Ob:关闭显示;
1b:打开显示。
PTS 32位的PTS,与对应视频帧的项部场对齐;
后续的命令序列从该PTS开始有效,有效时间由显示时间确定。
显示时间 该显示时间,以视频帧为单位,该时间为0表示没有后续命令序列(时间命令除外)。
注1:PTS和显示时间提供了不同的机制来完成相同的功能。两种机制表示的时间信息必须一致。视盘机可以自主选择一种方式进行显示时间控制。
注2:若同一命令序列包含有OOT选择等待命令,则OGT时间命令规定的显示时间失效,实际的显示时间由对应的PCT中的超时时间或根据用户输入确定。
10.4.2 0GT显示区创建命令
OGT显示区创建命令用予建立OGT--个显示区。显示区位置矩形由下列命令参数描述。
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
矩形位置 |
b47 b46 b45 b44 b43 b42 b41 b40
左上角像素水平位置(11:4) |
b39 b38 b37 b36 b35 b34 b33 b32
左上角像素水平位置(3:0) |
左上角像素垂直位置(11:8) |
b31 b30 b29 b28 b27 b26 b25 b24
左上角像素水平位置(7:0) |
b23 b22 b21 b20 b19 b18 b17 b16
右下角像素水平位置(11:4) |
b15 b14 b13 b12 b11 b10 b9 b8
右下角像素水平位置(3:0) |
右下角像素垂直位置(11:8) |
b7 b6 b5 b4 b3 b2 b1 b0
右下角像素水平位置(7:0) |
操作码 00001b。
矩形位置 Ob:原始图像;
1b:显示区。
左上角像素水平位置 定义矩形左上角坐标的X值。
左上角像素垂直位置 定义矩形左上角坐标的Y值。
右下角像素水平位置 定义矩形右下角坐标的X值。
右下角像素垂直位置 定义矩形右下角坐标的Y值。
显示区坐标相对于视频位置,原始图像坐标相对于图像本身。
10.4.3 0GT高亮区创建命令
OGT高亮区创建命令命令用于创建OGT高亮区,高亮区位置矩形由下列命令参数描述。
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
高亮区区号 |
b47 b46 b45 b44 b43 b42 b41 b40
左上角像素水平位置(11:4) |
b39 b38 b37 b36 b35 b34 b33 b32
左上角像素水平位置(3:0) |
左上角像素垂直位置(11:8) |
b31 b30 b29 b28 b27 b26 b25 b24
左上角像素水平位置(7:0) |
b23 b22 b21 b20 b19 b18 b17 b16
右下角像素水平位置(11:4) |
b15 b14 b13 b12 b11 b10 b9 b8
右下角像素水平位置(3:0) |
右下角像素垂直位置(11:8) |
b7 b6 b5 b4 b3 b2 b1 b0
右下角像素水平位置(7:0) |
操作码 00010b。
高亮区区号 该命令对应的高亮区的索引号,取值范围1到24。
左上角像素水平位置 定义矩形左上角坐标的X值,以显示区的相对位置表示。
左上角像素垂直位置 定义矩形左上角坐标的Y值,以显示区的相对位置表示。
右下角像素水平位置 定义矩形右下角坐标的X值,以显示区的相对位置表示。
右下角像素垂直位置 定义矩形右下角坐标的Y值,以显示区的相对位置表示。
10.4.4 0GT选择区创建命令
OGT选择区创建命令命令用于创建OGT选择区,选择区位置矩形由下列命令参数描述
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
选择区区号 |
b47 b46 b45 b44 b43 b42 b41 b40
左上角像素水平位置(11:4) |
b39 b38 b37 b36 b35 b34 b33 b32
左上角像素水平位置(3:0) |
左上角像素垂直位置(11:8) |
b31 b30 b29 b28 b27 b26 b25 b24
左上角像素水平位置(7:0) |
b23 b22 b21 b20 b19 b18 b17 b16
右下角像素水平位置(11:4) |
b15 b14 b13 b12 b11 b10 b9 b8
右下角像素水平位置(3:0) |
右下角像素垂直位置(11:8) |
b7 b6 b5 b4 b3 b2 b1 b0
右下角像素水平位置(7:0) |
操作码 00011b。
选择区区号 该命令对应的选择区的索引号,为1至22之间的一个数。
左上角像素水平位置 定义矩形左上角坐标的X值,以显示区的相对位置表示。
左上角像素垂直位置 定义矩形左上角坐标的Y值,以显示区的相对位置表示。
右下角像素水平位置 定义矩形右下角坐标的X值,以显示区的相对位置表示。
右下角像素垂直位置 定义矩形右下角坐标的Y值,以显示区的相对位置表示。
10.4.5 0GT选择区关联命令
OGT选择区关联命令用于定义各个OGT选择区之间的关系。每个字节的具体意义如下;
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
中心选择区区号 |
b47 b46 b45 b44 b43 b42 b41 b40
保留 |
b39 b38 b37 b36 b35 b34 b33 b32
保留 |
b31 b30 b29 b28 b27 b26 b25 b24
保留 |
上选择区区号 |
b23 b22 b21 b20 b19 b18 b17 b16
保留 |
下选择区区号 |
b15 b14 b13 b12 b11 b10 b9 b8
保留 |
左选择区区号 |
b7 b6 b5 b4 b3 b2 b1 b0
保留 |
右选择区区号 |
操作码 00100b。
中心选择区区号 处于中心位置的选择区的索引号。
上选择区区号 用户按上箭头键后被激活的选择区的索引号。
下选择区区号 用户按下箭头键后被激活的选择区的索引号。
左上选择区区号 用户按左箭头键后被激活的选择区的索引号。
右上选择区区号 用户按右箭头键后被激活的选择区的索引号。
10.4.6 0GT选择等待命令
OGT选择等待命令用于等待用户选择,该命令在用户确认了一个选择或等待时间超过PCT中规定的超时时间后终止。
OGT选择等待命令执行过程中需要根据用户的输入改变活动选择区。每个字节的具体意义如下:
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
活动选择区区号 |
b47 b46 b45 b44 b43 b42 b41 b40
保留 |
b39 b38 b37 b36 b35 b34 b33 b32
保留 |
b31 b30 b29 b28 b27 b26 b25 b24
保留 |
b23 b22 b21 b20 b19 b18 b17 b16
保留 |
b15 b14 b13 b12 b11 b10 b9 b8
保留 |
b7 b6 b5 b4 b3 b2 b1 b0
保留 |
操作码 00101b。
活动选择区区号 初始高亮状态的选择区的索引号,对应于默认的PCT_SEL。
注1:该命令必须与选择PCT配对使用,若当前播放的PCT不是选择PCT则忽略该命令。
10.4.7 0GT调色板改变命令
OGT调色板改变命令用于改变调色板的颜色值。每个字节的具体意义如下;
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
目标调色板 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
选择区区号 |
b47 b46 b45 b44 b43 b42 b41 b40
保留 |
高亮区区号 |
调色板类型 |
b39 b38 b37 b36 b35 b34 b33 b32
颜色索引号 |
b31 b30 b29 b28 b27 b26 b25 b24
新的B值 |
b23 b22 b21 b20 b19 b18 b17 b16
新的G值 |
b15 b14 b13 b12 b11 b10 b9 b8
新的R值 |
b7 b6 b5 b4 b3 b2 b1 b0
新的值 |
操作码 00110b。
高亮区区号 该命令对应的高亮区的索引号。
选择区区号 该命令对应的选择区的索引号。
目标调色板 01b:目标调色板为显示区对应的调色板;
10b:目标调色板为高亮区区号对应的高亮区的调色板;
11b: 目标调色板为选择区区号对应的选择区的调色板。
调色板类型 若目标调色板为01b:
OOb:原色调色板;
O1b:高亮调色板;
其它:保留。
若目标调色板为1Ob或11b:
Olb:高亮调色板;
其它:保留。
颜色索引号 将要被替换的颜色在目标调色板中的索引号。
新的B值 新的调色板颜色项的B值。
新的G值 新的调色板颜色项的G值。
新的R值 新的调色板颜色项的R值。
新的仪值 新的调色板颜色项的透明度值。
10.4.8 0GT颜色设置改变命令
OGT颜色设置命令用于设置颜色值,仅用于l6色以下调色板OGT图。每个字节的具体意义如下:
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
b55 b54 b53 b52 b51 b50 b49 b48
颜色类型 |
保留 |
b47 b46 b45 b44 b43 b42 b41 b40
保留 |
b39 b38 b37 b36 b35 b34 b33 b32
保留 |
b31 b30 b29 b28 b27 b26 b25 b24
像素值0的颜色索引 |
Alpha0 |
b23 b22 b21 b20 b19 b18 b17 b16
像素值1的颜色索引 |
Alpha1 |
b15 b14 b13 b12 b11 b10 b9 b8
像素值2的颜色索引 |
Alpha2 |
b7 b6 b5 b4 b3 b2 b1 b0
像素值3的颜色索引 |
Alpha3 |
操作码 10110b。
颜色类型 000b:原色;
001b:高亮色。
像素值0的颜色索引 像素值为0时对应颜色在调色板中的索引。
AlphaO 像素值为0时的alpha值;
000b:全透明;
其它:背景:(15-Alpha0)/16,OGT: (Alpha0+1)/16。
像素值l的颜色索引 像素值为l时对应颜色在调色板中的索引。
Alpha1 像素值为l时的alpha值;
000b:全透明;
其它:背景:(15-Alphal)/16,OGT:(Alpha1+1)/16。
像素值2的颜色索引 像素值为2时对应颜色在调色板中的索引。
Alpha2 像素值为2时的alpha值:
000b:全透明;
其它:背景:(15-Alpha2) /16,OGT:(Alpha2+1)/16。
像素值3的颜色索引 像素值为3时对应颜色在调色板中的索引。
A1pha3 像素值为3时的alpha值;
000b:全透明;
其它:背景:(15-Alpha3) /16,OGT:(Alpha3+l)/16。
10.4.9 0GT区改变命令
OGT区改变命令用于改变OGT区的大小和位置。每个字节的具体意义如下:
b63 b62 b61 b60 b59 b58 b57 b56
操作码 |
保留 |
目标区 |
b55 b54 b53 b52 b51 b50 b49 b48
保留 |
选择区区号 |
b47 b46 b45 b44 b43 b42 b41 b40
保留 |
保留 |
高亮区区号 |
保留 |
b39 b38 b37 b36 b35 b34 b33 b32
左右边 |
保留 |
上下边 |
保留 |
b31 b30 b29 b28 b27 b26 b25 b24
水平方向移动因子 |
b23 b22 b21 b20 b19 b18 b17 b16
水平方向缩放因子 |
b15 b14 b13 b12 b11 b10 b9 b8
垂直方向移动因子 |
b7 b6 b5 b4 b3 b2 b1 b0
垂直方向缩放因子 |
操作码 00111b。
高亮区区号 该命令对应的高亮区的索引号。
选择区区号 该命令对应的选择区的索引号。
目标区 O1b:目标区为显示区的矩形区;
lOb:目标区为高亮区区号对应的高亮区的矩形区;
11b:目标区为选择区区号对应的选择区的矩形区。
左右边 OOb:矩形的左右边均固定不动;
O1b: 矩形的左边按水平方向移动因子和水平方向缩放因子指定的速率移动;
1Ob: 矩形的右边按水平方向移动因子和水平方向缩放因子指定的速率移动;
11b:矩形的左、右两边均按水平方向移动因子和水平方向缩放因子指定的速率移动。
上下边 OOb: 矩形的上下边均固定不动;
O1b: 矩形的上边按垂直方向移动因子和垂直方向缩放因子指定的速率移动;
1Ob: 矩形的下边按垂直方向移动因子和垂直方向缩放因子指定的速率移动;
11b:矩形的上、下两边均按垂直方向移动因子和垂直方向缩放因子指定的速率移动。
水平方向移动因子 8比特的有符号短整形数,符号表示移动方向:正表示向右,负表示向左,其绝对值与水平方向缩放因子的比值表示每帧移动的像素数。
水平方向缩放因子 8比特的无符号短整形数。
垂直方向移动因子 8比特的有符号短整形数,符号表示移动方向:正表示向下,负表示向上,其绝对值与垂直方向缩放因子的比值表示每帧移动的像素数。
垂直方向缩放因子 8比特的无符号短整形数。
附录 A
(规范性附录)
OGT像素数据游长编码规则(RLC)
像素数据按行进行游长编码,编码后的数据由符合下述格式的数据块组成:
当有l到3个像数点的值相同时:
d0 |
d1 |
d2 |
d3 |
重复次数 |
实际数据 |
当有4到15个像数点的值相同时:
d0 |
d1 |
d2 |
d3 |
d4 |
d5 |
d6 |
d7 |
0 |
重复次数 |
实际数据 |
当有16到63个像数点的值相同时:
d0 |
d1 |
d2 |
d3 |
d4 |
d5 |
d6 |
d7 |
d8 |
d9 |
d10 |
d11 |
0 |
0 |
重复次数 |
实际数据 |
当有64到255个像数点的值相同时:
d0 |
d1 |
d2 |
d3 |
d4 |
d5 |
d6 |
d7 |
d8 |
d9 |
d10 |
d11 |
d12 |
d13 |
d14 |
d15 |
0 |
0 |
0 |
0 |
0 |
0 |
重复次数 |
实际数据 |
当像数点的值重复直到该行结束时:
d0 |
d1 |
d2 |
d3 |
d4 |
d5 |
d6 |
d7 |
d8 |
d9 |
d10 |
d11 |
d12 |
d13 |
d14 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
0 |
实际数据 |
当一行结束时,游程编码后的数据不是以字节对齐,则插入4位的补齐位“0000”。
附录B
(规范性附录)
播放链与无缝播放
B.1 播放链
EVD盘片上允许存在播放链。播放链是由EVD盘片中的Scene按照特定的PCT规定的播放方式和导航顺序组成的双向链式结构。播放链存储在EVD.HDR中。
从播放链的入口开始根据PCT的NEXT属性可以找到播放链的下一个节点,依此类推可以确定整个播放链。
播放链为双向链表结构,即除最后一个节点外,任何节点的闷蛩汀节点的PREV节点就是该节点自身;除第一个节点外,任何节点的PREV节点的NEXT节点就是该节点自身。
EVD盘片上任何一个scene都只能最多被一条播放链包含一次。
B.2 无缝播放的五个要求
为了实现无缝播放,播放链必须满足如下五个要求:
——需要有播放链(由于要完成无缝播放,因此以下称无缝播放链,就播放链而言可分为有缝播放链和无缝播放链两种);
——无缝播放链一定是一个双向链表,遵循标准中播放链的有关规定;
——无缝播放链上的所有Scene必须都在一个Segment上;
——无缝播放链上的SCENE的VIDEO,AUDIO属性必须一致;
——无缝播放链上的SCENE之间的PTS必须是连续的,包括VIDEO,AUDIO,OGT。
附录C
(规范性附录)
允许的音视频参数组合
C.1 允许的视频参数组合
对于标准中规定的视频参数,并非所有参数组合都是允许的,仅有下列参数组合是遵循本标准的产
品所必需支持的。
图 像 尺 寸 |
长 宽 比 |
刷 新 速 率 |
352×240 |
4:3 |
/59.94i |
352×288 |
4:3 |
/50i |
480×480 |
4:3 |
/59.94i |
480×576 |
4:3 |
/50i |
704×480 |
4:3 |
/59.94i |
704×576 |
4:3 |
/50i |
720×480 |
4:3,16:9 |
/59.94i |
720×576 |
4:3,16:9 |
/50i |
1280×720 |
16:9 |
/23.976p,/24p, /50p,/59.94p, /60p |
1280×1080 |
16:9 |
/23.976p,/24p |
1920×1080 |
16:9 |
/23.976p,/24p,/50i, /59.94i,/60i |
C.2允许的音频参数组合
对于标准中规定的音频参数,并非所有参数组合都是允许的,仅有下列参数组合是遵循本标准的产
品所必需支持的。
音频编码方式 |
量化比特数 |
采样频率 |
声道数 |
增强音频编码方式(ExAC) |
16bits,20bits,24bits |
44.1kHz,48kHz,96kHz |
1ch, 2ch, 6ch. 8ch |
LPCM |
16bits,20bits,24 bits |
44.1kHz, 48kHz |
1ch, 2ch, 60h |
16bits,20bits,24bits |
96kHz |
1ch, 2ch | |
ADPCM |
16bits,20bits, 24bits |
44.1kHz, 48kHz |
1ch,2ch,6ch |
16bits,20bits, 24bits |
96kHz |
1ch,2ch |
C.3 码率的限制
对于音、视频数据除了组合参数上的限制外,对于码率有如下限制:
a) 单个视频流平均码率不能超过19.2Mbps,峰值码率不能超过20Mbps;
b) 单个音频流码率不能超过8Mbps,所有音频流的码率总和不能超过19Mbps;
c) 数据流的峰值码率不能超过20.16Mbps。
2122