원문: http://en.wikipedia.org/wiki/H.264
AVC레벨에 따른 디코드에 차이가 있다는 내용을 보다가 우연히 발견한 각 AVC프로필과 레벨에 따른 스펙의 차이가 적힌 문서가 발견이 되어서 살펴보았다.
프로필과 레벨이 높고 좋다고 무조건 전부 다 좋은것이 아니었다.
왜 하드웨어 가속이라던지 디코드에 차이가 생기는지 이제야 알것같다.
AVC프로필과 레벨에 따라 지원되는 스펙이 전부 차이가 있었기 때문이었다.
스펙에 맞지 않으니까 어플리케이션이나 하드웨어가 모를수밖에...
모르니까 가속을 쓸수 없었던것이 아닐까?
AVC레벨에 따른 디코드에 차이가 있다는 내용을 보다가 우연히 발견한 각 AVC프로필과 레벨에 따른 스펙의 차이가 적힌 문서가 발견이 되어서 살펴보았다.
Profiles
The standard includes the following seven sets of capabilities, which are referred to as profiles, targeting specific classes of applications:
- Baseline Profile (BP): Primarily for lower-cost applications with limited computing resources, this profile is used widely in videoconferencing and mobile applications.
- Main Profile (MP): Originally intended as the mainstream consumer profile for broadcast and storage applications, the importance of this profile faded when the High profile was developed for those applications.
- Extended Profile (XP): Intended as the streaming video profile, this profile has relatively high compression capability and some extra tricks for robustness to data losses and server stream switching.
- High Profile (HiP): The primary profile for broadcast and disc storage applications, particularly for high-definition television applications (this is the profile adopted into HD DVD and Blu-ray Disc, for example).
- High 10 Profile (Hi10P): Going beyond today's mainstream consumer product capabilities, this profile builds on top of the High Profile—adding support for up to 10 bits per sample of decoded picture precision.
- High 4:2:2 Profile (Hi422P): Primarily targeting professional applications that use interlaced video, this profile builds on top of the High 10 Profile—adding support for the 4:2:2 chroma subsampling format while using up to 10 bits per sample of decoded picture precision.
- High 4:4:4 Predictive Profile (Hi444PP): This profile builds on top of the High 4:2:2 Profile—supporting up to 4:4:4 chroma sampling, up to 14 bits per sample, and additionally supporting efficient lossless region coding and the coding of each picture as three separate color planes.
In addition, the standard contains four additional all-Intra profiles, which are defined as simple subsets of other corresponding profiles. These are mostly for professional (e.g., camera and editing system) applications:
- High 10 Intra Profile: The High 10 Profile constrained to all-Intra use.
- High 4:2:2 Intra Profile: The High 4:2:2 Profile constrained to all-Intra use.
- High 4:4:4 Intra Profile: The High 4:4:4 Profile constrained to all-Intra use.
- CAVLC 4:4:4 Intra Profile: The High 4:4:4 Profile constrained to all-Intra use and to CAVLC entropy coding (i.e., not supporting CABAC).
As a result of the Scalable Video Coding extension, the standard contains three additional scalable profiles, which are defined as a combination of the H.264/AVC profile for the base layer (2nd word in scalable profile name) and tools that achieve the scalable extension:
- Scalable Baseline Profile: Primarily targeting video conferencing, mobile, and surveillance applications, this profile builds on top of a constrained version of the H.264/AVC Baseline profile to which the base layer (a subset of the bitstream) must conform. For the scalability tools, a subset of the available tools is enabled.
- Scalable High Profile: Primarily targeting broadcast and streaming applications, this profile builds on top of the H.264/AVC High Profile to which the base layer must conform.
- Scalable High Intra Profile: Primarily targeting production applications, this profile is the Scalable High Profile constrained to all-Intra use.
Baseline | Extended | Main | High | High 10 | High 4:2:2 | High 4:4:4
Predictive |
|
---|---|---|---|---|---|---|---|
I and P Slices | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
B Slices | No | Yes | Yes | Yes | Yes | Yes | Yes |
SI and SP Slices | No | Yes | No | No | No | No | No |
Multiple Reference Frames | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
In-Loop Deblocking Filter | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
CAVLC Entropy Coding | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
CABAC Entropy Coding | No | No | Yes | Yes | Yes | Yes | Yes |
Flexible Macroblock Ordering (FMO) | Yes | Yes | No | No | No | No | No |
Arbitrary Slice Ordering (ASO) | Yes | Yes | No | No | No | No | No |
Redundant Slices (RS) | Yes | Yes | No | No | No | No | No |
Data Partitioning | No | Yes | No | No | No | No | No |
Interlaced Coding (PicAFF, MBAFF) | No | Yes | Yes | Yes | Yes | Yes | Yes |
4:2:0 Chroma Format | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
Monochrome Video Format (4:0:0) | No | No | No | Yes | Yes | Yes | Yes |
4:2:2 Chroma Format | No | No | No | No | No | Yes | Yes |
4:4:4 Chroma Format | No | No | No | No | No | No | Yes |
8 Bit Sample Depth | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
9 and 10 Bit Sample Depth | No | No | No | No | Yes | Yes | Yes |
11 to 14 Bit Sample Depth | No | No | No | No | No | No | Yes |
8x8 vs. 4x4 Transform Adaptivity | No | No | No | Yes | Yes | Yes | Yes |
Quantization Scaling Matrices | No | No | No | Yes | Yes | Yes | Yes |
Separate Cb and Cr QP control | No | No | No | Yes | Yes | Yes | Yes |
Separate Color Plane Coding | No | No | No | No | No | No | Yes |
Predictive Lossless Coding | No | No | No | No | No | No | Yes |
Baseline | Extended | Main | High | High 10 | High 4:2:2 | High 4:4:4
Predictive |
[edit] Levels
Level number | Max macroblocks per second | Max frame size (macroblocks) | Max video bit rate (VCL) for Baseline, Extended and Main Profiles | Max video bit rate (VCL) for High Profile | Max video bit rate (VCL) for High 10 Profile | Max video bit rate (VCL) for High 4:2:2 and High 4:4:4 Predictive Profiles | Examples for high resolution @ frame rate (max stored frames) in Level |
---|---|---|---|---|---|---|---|
1 | 1485 | 99 | 64 kbit/s | 80 kbit/s | 192 kbit/s | 256 kbit/s | 128x96@30.9 (8) 176x144@15.0 (4) |
1b | 1485 | 99 | 128 kbit/s | 160 kbit/s | 384 kbit/s | 512 kbit/s | 128x96@30.9 (8) 176x144@15.0 (4) |
1.1 | 3000 | 396 | 192 kbit/s | 240 kbit/s | 576 kbit/s | 768 kbit/s | 176x144@30.3 (9) 320x240@10.0 (3) 352x288@7.5 (2) |
1.2 | 6000 | 396 | 384 kbit/s | 480 kbit/s | 1152 kbit/s | 1536 kbit/s | 320x240@20.0 (7) 352x288@15.2 (6) |
1.3 | 11880 | 396 | 768 kbit/s | 960 kbit/s | 2304 kbit/s | 3072 kbit/s | 320x240@36.0 (7) 352x288@30.0 (6) |
2 | 11880 | 396 | 2 Mbit/s | 2.5 Mbit/s | 6 Mbit/s | 8 Mbit/s | 320x240@36.0 (7) 352x288@30.0 (6) |
2.1 | 19800 | 792 | 4 Mbit/s | 5 Mbit/s | 12 Mbit/s | 16 Mbit/s | 352x480@30.0 (7) 352x576@25.0 (6) |
2.2 | 20250 | 1620 | 4 Mbit/s | 5 Mbit/s | 12 Mbit/s | 16 Mbit/s | 352x480@30.7(10) 352x576@25.6 (7) 720x480@15.0 (6) 720x576@12.5 (5) |
3 | 40500 | 1620 | 10 Mbit/s | 12.5 Mbit/s | 30 Mbit/s | 40 Mbit/s | 352x480@61.4 (12) 352x576@51.1 (10) 720x480@30.0 (6) 720x576@25.0 (5) |
3.1 | 108000 | 3600 | 14 Mbit/s | 17.5 Mbit/s | 42 Mbit/s | 56 Mbit/s | 720x480@80.0 (13) 720x576@66.7 (11) 1280x720@30.0 (5) |
3.2 | 216000 | 5120 | 20 Mbit/s | 25 Mbit/s | 60 Mbit/s | 80 Mbit/s | 1280x720@60.0 (5) 1280x1024@42.2 (4) |
4 | 245760 | 8192 | 20 Mbit/s | 25 Mbit/s | 60 Mbit/s | 80 Mbit/s | 1280x720@68.3 (9) 1920x1080@30.1 (4) 2048x1024@30.0 (4) |
4.1 | 245760 | 8192 | 50 Mbit/s | 50 Mbit/s | 150 Mbit/s | 200 Mbit/s | 1280x720@68.3 (9) 1920x1080@30.1 (4) 2048x1024@30.0 (4) |
4.2 | 522240 | 8704 | 50 Mbit/s | 50 Mbit/s | 150 Mbit/s | 200 Mbit/s | 1920x1080@64.0 (4) 2048x1080@60.0 (4) |
5 | 589824 | 22080 | 135 Mbit/s | 168.75 Mbit/s | 405 Mbit/s | 540 Mbit/s | 1920x1080@72.3 (13) 2048x1024@72.0 (13) 2048x1080@67.8 (12) 2560x1920@30.7 (5) 3680x1536@26.7 (5) |
5.1 | 983040 | 36864 | 240 Mbit/s | 300 Mbit/s | 720 Mbit/s | 960 Mbit/s | 1920x1080@120.5 (16) 4096x2048@30.0 (5) 4096x2304@26.7 (5) |
Level number | Max macroblocks per second | Max frame size (macroblocks) | Max video bit rate (VCL) for Baseline, Extended and Main Profiles | Max video bit rate (VCL) for High Profile | Max video bit rate (VCL) for High 10 Profile | Max video bit rate (VCL) for High 4:2:2 and High 4:4:4 Predictive Profiles | Examples for high resolution @ frame rate (max stored frames) in Level |
프로필과 레벨이 높고 좋다고 무조건 전부 다 좋은것이 아니었다.
왜 하드웨어 가속이라던지 디코드에 차이가 생기는지 이제야 알것같다.
AVC프로필과 레벨에 따라 지원되는 스펙이 전부 차이가 있었기 때문이었다.
스펙에 맞지 않으니까 어플리케이션이나 하드웨어가 모를수밖에...
모르니까 가속을 쓸수 없었던것이 아닐까?
'인코딩' 카테고리의 다른 글
매킨토시, 대단하다... 아니 매킨토시용 퀵타임 플레이어가 대단한건가... (0) | 2010.08.01 |
---|---|
AVISynth Script: 2개의 영상을 하나로 합쳐서 출력 (0) | 2009.12.11 |
캡쳐보드 Monster-X를 사용한 H264 인코딩 6부: UCC에 업로드 (개정판) (0) | 2008.10.12 |
캡쳐보드 Monster-X를 사용한 H264 인코딩 5부: avisynth와 인코딩, 먹싱, 추출 (개정판) (0) | 2008.10.12 |
캡쳐보드 Monster-X를 사용한 H264 인코딩 4부: 프레임의 기초와 H264에 대해 (개정판) (3) | 2008.10.12 |
Posted by MOBIUS!