2011-04-22 3 views
5

나는 h264 NAL 단위를 구문 분석하고 있습니다. 내 시퀀스에는 그림 매개 변수 집합, 시퀀스 매개 변수 집합, I 프레임 (IDR) 및 P 프레임 (단일 슬라이스의 I 및 P 프레임 집합)이있는 NAL 단위가 있습니다.h264 구문 (P 프레임 구문 세부 정보)

(없음 B 프레임에서 모두) 그래서 내가 좋아하는 NAL 단위의 스트림 보이는이 없다 : 그 frame_num과 0 그래서,

[SPS] [PPS] [I(IDR)] [P] [P] [P] ... [P] [P] [SPS] [PPS] [I(IDR)] [P] [P] [P] .... 

내 스트림의 각 I 프레임은 또한 IDR 프레임입니다 (시간 주문에 따라. 264 스탠드 아트).

각 P 프레임은 이전 프레임보다 큰 단위 당 frame_num입니다.

그러나 나는 약 pic_order_cnt_lsb을 혼동합니다.

pic_order_cnt_lsb은 무엇을 나타냅니다? 내 서열

: P 프레임 frame_num==4pic_order_cnt_lsb==8

  • 등이있는 경우 P 프레임 frame_num==3pic_order_cnt_lsb==6
  • 있는 경우 P 프레임 frame_num==2pic_order_cnt_lsb==4
  • 을 갖는다

    • 경우 .. . (내 상황에서 pic_order_cnt_lsb == 2*frame_num)

    그리고 왜 frame_numpic_order_cnt_lsb 사이에 이러한 상관 관계가 있습니까?

    감사합니다.

  • 답변

    1

    데이터가 인터레이스 된 것 같습니다. 인터레이스 된 데이터의 경우 한 프레임은 두 개의 필드로 구성됩니다. 각 프레임의 다른 필드에는 pic_order_cnt_lsb의 홀수 값이 있습니다.

    pic_order_cnt_lsb은 그림의 순서를 추적하는 카운터의 최하위 비트입니다. 일반적인 인터레이스 데이터처럼 프레임 당 두 개의 그림이있는 경우 frame_num이 변경 될 때마다 두 개씩 증가합니다. 스트림이 인터레이스 대신 프로그레시브 인 경우 두 개가 함께 증가합니다.