ISO/IEC 14496-3, 1.6.2.1 AudioSpecificConfig
AudioSpecificConfig() {
audioObjectType = GetAudioObjectType();
samplingFrequencyIndex; // 4 bslbf
if (samplingFrequencyIndex == 0xf) {
samplingFrequency; // 24 uimsbf
}
channelConfiguration; // 4 bslbf
sbrPresentFlag = -1;
psPresentFlag = -1;
if (audioObjectType == 5 || audioObjectType == 29) {
// ...
}
else {
extensionAudioObjectType = 0;
}
switch (audioObjectType) {
case 1: case 2: case 3: case 4: //...
GASpecificConfig();
break:
case ...:
//...
}
if (extensionAudioObjectType != 5 && bits_to_decode() >= 16) {
//...
}
GetAudioObjectType() {
audioObjectType; // 5 uimsbf
if (audioObjectType == 31) {
audioObjectType = 32 + audioObjectTypeExt; // 6 uimsbf
}
return audioObjectType;
}
ISO/IEC 14496-3, 1.5.1.1 Audio object type definition
| ID | Type |
|---|---|
| 0 | Null |
| 1 | AAC main |
| 2 | AAC LC |
| 3 | AAC SSR |
| 4 | AAC LTP |
| 5 | SSR |
| ... | ... |
ISO/IEC 14496-3, 1.6.3.4 samplingFrequencyIndex
| index | value |
|---|---|
| 0x0 | 96000 |
| 0x1 | 88200 |
| 0x2 | 64000 |
| 0x3 | 48000 |
| 0x4 | 44100 |
| 0x5 | 32000 |
| 0x6 | 24000 |
| 0x7 | 22050 |
| 0x8 | 16000 |
| 0x9 | 12000 |
| 0xa | 11025 |
| 0xb | 8000 |
| 0xc | 7350 |
| 0xd | reserved |
| 0xe | reserved |
| 0xf | escape value |
ISO/IEC 14496-15, 5.3.3.1.2 Syntax
aligned(8) class AVCDecoderConfigurationRecord {
unsigned int(8) configurationVersion = 1;
unsigned int(8) AVCProfileIndication;
unsigned int(8) profile_compatibility;
unsigned int(8) AVCLevelIndication;
bit(6) reserved = '111111'b;
unsigned int(2) lengthSizeMinusOne;
bit(3) reserved = '111'b;
unsigned int(5) numOfSequenceParameterSets;
for (i = 0; i < numOfSequenceParameterSets; i++) {
unsigned int(16) sequenceParameterSetLength ;
bit(8*sequenceParameterSetLength) sequenceParameterSetNALUnit;
}
unsigned int(8) numOfPictureParameterSets;
for (i = 0; i < numOfPictureParameterSets; i++) {
unsigned int(16) pictureParameterSetLength;
bit(8*pictureParameterSetLength) pictureParameterSetNALUnit;
}
if (profile_idc == 100 || profile_idc == 110 ||
profile_idc == 122 || profile_idc == 144)
{
bit(6) reserved = '111111'b;
unsigned int(2) chroma_format;
bit(5) reserved = '11111'b;
unsigned int(3) bit_depth_luma_minus8;
bit(5) reserved = '11111'b;
unsigned int(3) bit_depth_chroma_minus8;
unsigned int(8) numOfSequenceParameterSetExt;
for (i = 0; i < numOfSequenceParameterSetExt; i++) {
unsigned int(16) sequenceParameterSetExtLength;
bit(8*sequenceParameterSetExtLength) sequenceParameterSetExtNALUnit;
}
}
}
ITU-T H.264(ISO/IEC 14496-10), A.2 Profiles
| idc | Profile |
|---|---|
| 66 | Baseline |
| 77 | Main |
| 88 | Extended |
| 100 | High |
| 110 | High 10 |
| 122 | High 4:2:2 |
| 144 | (High 4:4:4; removed) |
| 244 | High 4:4:4 Predictive |
ITU-T H.264(ISO/IEC 14496-10), A.3 Levels
Defined level_idc: 10, 91, 11, 12, 13, 20, 21, 22, 30, 31, 32, 40, 41, 42, 50, 51, 52
ISO/IEC 14496-15, 8.3.3.1.2 Syntax
aligned(8) class HEVCDecoderConfigurationRecord {
unsigned int(8) configurationVersion = 1;
unsigned int(2) general_profile_space;
unsigned int(1) general_tier_flag;
unsigned int(5) general_profile_idc;
unsigned int(32) general_profile_compatibility_flags;
unsigned int(48) general_constraint_indicator_flags;
unsigned int(8) general_level_idc;
bit(4) reserved = ‘1111’b;
unsigned int(12) min_spatial_segmentation_idc;
bit(6) reserved = ‘111111’b;
unsigned int(2) parallelismType;
bit(6) reserved = ‘111111’b;
unsigned int(2) chromaFormat;
bit(5) reserved = ‘11111’b;
unsigned int(3) bitDepthLumaMinus8;
bit(5) reserved = ‘11111’b;
unsigned int(3) bitDepthChromaMinus8;
bit(16) avgFrameRate;
bit(2) constantFrameRate;
bit(3) numTemporalLayers;
bit(1) temporalIdNested;
unsigned int(2) lengthSizeMinusOne;
unsigned int(8) numOfArrays;
for (j=0; j < numOfArrays; j++) {
bit(1) array_completeness;
unsigned int(1) reserved = 0;
unsigned int(6) NAL_unit_type;
unsigned int(16) numNalus;
for (i=0; i< numNalus; i++) {
unsigned int(16) nalUnitLength;
bit(8*nalUnitLength) nalUnit;
}
}
}
ITU-T H.265(ISO/IEC 23008-2), A.3 Profiles
| idc | Profile |
|---|---|
| 1 | Main |
| 2 | Main 10 |
| 3 | Main Still Picture |
ITU-T H.265(ISO/IEC 23008-2), A.4 Tiers and levels
| flag | Tier |
|---|---|
| 0 | Main |
| 1 | High |
| idc | Level |
|---|---|
| 30 | 1 |
| 60 | 2 |
| 63 | 2.1 |
| 90 | 3 |
| 93 | 3.1 |
| 120 | 4 |
| 123 | 4.1 |
| 150 | 5 |
| 153 | 5.1 |
| 156 | 5.2 |
| 180 | 6 |
| 183 | 6.1 |
| 186 | 6.2 |
Footnotes
-
level_idc==9represents "Leve 1b" unless Baseline(Constrained Baseline), Main, or Extended profiles. ↩