2016년 2월 21일 일요일

MPEG-4 Part 10 (H.264/AVC) - NAL(Network Abstraction Layer) 분석

Introduction

Video Coding Layer

: H.264/AVC 표준은 애초부터 다양한 네트워크 전송환경에 대응하기 위해 NAL 포맷을 적용하였다. ( 적절한 헤더정보와 함께, VCL(video coding layer) 포맷으로 비디오를 표현하는 방식 ) 즉, NAL은 "network friendliness" 를 표방하여, 단순하고 효과적으로 VCL을 커스터마이징 할 수 있게 한다. 
 즉 단순히 얘기하면, 비디오 인코딩/디코딩 과정을 네트워크 어플리케이션에 최적화(좀 더 유연하고, 간편하게) 되도록 만든 작업이다. 


avc/h264 stream 구성


NAL : Network Abstraction Layer
NAL = NAL unit + RBSP
NAL unit : start prefix
    Network Coding Layer
  • SPS : 프로파일 , 레벨 ,해상도 , 포맷 등 파일 전체에 대한 포괄적인 정보가 부화화하여 저장되어 있다. ( 00 00 00 01 67  ~ )
  • PPS : PPS는 SPS가 정의하는 내용보다 조금 더 세부적인 내용을 포함한다. 디코딩되는 픽처에 적용되는 파라미터를 포함한다. ( 00 00 00 01 68 ~ )
  • IDR Picture :  디코딩에대한 기본정보가 초기화되는 Picture 이다.  Reference 이미지를 사용하지 않고 독자적으로 디코딩 될 수 있는 Picture. I-slice 나 SI-slice 를 나타낸다. ( 00 00 00 01 65 ~ ) ( IDR picture 앞에는 반드시 SPS , PPS 정보가 들어가 있어야 한다. )

NAL types


NAL types table 에서 나타낸 types number 는 실제 byte stream 을 열어보면


AUD : 00 00 00 01 09
SPS : 00 00 00 01 67
PPS : 00 00 00 01 68


이런식으로 나타난다. 00 00 00 01 이 일종의 구분자가 되기 때문이다. 즉, SPS NAL 을 표현하고 싶다면, 해당 NAL unit 에 00 00 00 01 67을 적어주고, RBSP 부분에 SPS 정보를 적어주면 된다. 

Slice는 마찬가지로 NAL 의 일종인데, 실제로 picture를 저장하는 부분이며, 헤더와 Micoblock로 이루어진 data 파트로 나뉘어진다. 익히 아는 I,B,P picture ( 이전 게시물을 참조 )를 포함한 정보를 담고있다.





Slice types
더 자세한 정보 :
http://gentlelogic.blogspot.kr/2011/11/exploring-h264-part-2-h264-bitstream.html


댓글 없음:

댓글 쓰기