{{위키데이터 속성 추적}}
{{파일 포맷 정보
| 이름 = MPEG 프로그램 스트림
| MIME = video/MP2P<ref>"RFC 3555 - MIME Type Registration of RTP Payload Formats".</ref>
| 개발 = [[MPEG]]
| 발표일 = 1993
| 종류 = [[미디어 컨테이너]]
| 확장자 = [[.mpg]], [[.mpeg]], [[.ps]]
| 표준 = ISO/IEC 13818-1, ITU-T Recommendation H.222.0
}}
'''프로그램 스트림(Program stream, PS 혹은 MPEG-PS)'''이란 [[다중화|멀티플렉싱]] [[디지털 오디오]], [[비디오]] 등을 담기 위한 [[컨테이너 포맷]]이다. 이 포맷은 [[MPEG-1]] 부분 1(ISO/IEC 11172-1<ref>{{웹 인용 |url=http://webstore.iec.ch/preview/info_isoiec11172-1%7Bed1.0%7Den.pdf |제목=보관된 사본 |확인날짜=2012-12-29 |archive-date=2013-04-12 |archive-url=https://web.archive.org/web/20130412042712/http://webstore.iec.ch/preview/info_isoiec11172-1%7Bed1.0%7Den.pdf |url-status= }}</ref>)과 [[MPEG-2]] 부분 1 시스템(ISO/IEC standard 13818-1<ref>{{웹 인용 |url=http://mumudvb.braice.net/mumudrupal/sites/default/files/iso13818-1.pdf |제목=보관된 사본 |확인날짜=2012-12-29 |보존url=https://web.archive.org/web/20120916194521/http://mumudvb.braice.net/mumudrupal/sites/default/files/iso13818-1.pdf |보존날짜=2012-09-16 |url-status=dead }}</ref>/ITU-T H.222.0)에 규정되어 있다. MPEG-2 프로그램 스트림은 ISO/IEC 11172 시스템 레이어와 비슷하고 이전 버전들과 호환된다.

프로그램 스트림은 [[DVD-비디오]] 디스크와 [[HD DVD]] 비디오 디스크에 사용되지만, 몇 가지 제한과 확장 사항이 있다.<ref>http://dvd.sourceforge.net/dvdinfo/dvdmpeg.html</ref>

== 코딩 구조<ref>{{웹 인용 |url=http://www.vbrick.com/docs/VB_WhitePaper_TransportStreamVSProgramStream_rd2.pdf |제목=보관된 사본 |확인날짜=2012-12-28 |보존url=https://web.archive.org/web/20120605015446/http://vbrick.com/docs/VB_WhitePaper_TransportStreamVSProgramStream_rd2.pdf |보존날짜=2012-06-05 |url-status=dead }}</ref> ==
프로그램 스트림은 하나 또는 그 이상의 [[패킷화된 기초 스트림]](PES)을 하나의 스트림으로 결합하여 생성된다. 이 포맷은, 데이터 전송을 위해 개발된 [[MPEG 트랜스포트 스트림]]과는 다르게, 디스크처럼 합리적이고 신뢰성 있는(데이터 손실 우려가 적은) 미디어를 위해 개발되었다. 프로그램 스트림은 가변 사이즈 레코드들을 지원하며, 방송수신을 어렵게 하는 [[시작 코드]]를 최소로 사용한다. 프로그램 스트림 코딩 레이어는, 트랜스포트 스트림과는 다르게, 하나 또는 그 이상의 기초 스트림의 단 하나의 [[프로그램]]을 하나의 스트림으로 패키지화될 수 있도록 도와준다.

MPEG-2 프로그램 스트림은 MPEG-1 부분 2 영상, MPEG-2 부분 2 영상, MPEG-1 부분 3 오디오([[MP3]], [[MP2]], [[MP1]]) 또는 MPEG-2 부분 3 오디오를 포함할 수 있다. 이것은 또한 프로그램 MPEG-4 부분 2 영상, MPEG-2 부분 7 음성([[고급 오디오 부호화|AAC]])을 포함할 수 있으나, 자주 이용되지는 않는다. MPEG-2 프로그램 스트림은 소위 '개인 스트림'의 형태로 비표준 데이터(예를 들면 [[AC-3]] 음성과 자막]])에 대해서도 지원한다.<ref>http://www.mpucoder.com/DVD/vobov.html</ref> 국제 표준 기구는 [[SMPTE]]을 MPEG-2 포맷 식별자에 대한 등록 기관으로 공인하였다. 여기에서 MPEG-2 트랜스포트 스트림과 프로그램 스트림에 요약 될 수 있는 압축 포맷 목록을 발표한다.<ref>{{웹 인용 |url=http://smpte-ra.org/mpegreg/mpeg.html |제목=보관된 사본 |확인날짜=2009년 7월 5일 |보존url=https://web.archive.org/web/20100128120057/http://www.smpte-ra.org/mpegreg/mpeg.html |보존날짜=2010년 1월 28일 |url-status=dead }}</ref>

== 코딩 세부사항 ==
암호화되지 않은 VOB 파일이나 다른 프로그램 스트림을 [[헥사 에디터]]로 열면, 다음과 같은 구조를 볼 수 있다.
{| class="wikitable"
|+ 프로그램 스트림 팩 헤더 포맷 일부<ref>[http://dvd.sourceforge.net/dvdinfo/packhdr.html Pack Header<!-- Bot generated title -->]</ref>
!이름
![[비트 (단위)|비트]] 수
!설명
|-
|[[싱크 바이트]]||32||0x000001BA
|-
|표시 비트||2||01[[이진법|b]]
|-
|시스템 클럭 [32..30]||3||[http://www.bretl.com/mpeghtml/SCR.HTM 시스템 클럭 참조] (SCR) 비트 32에서 30
|-
|표시 비트||1||항상 1 비트로 설정됨.
|-
|시스템 클럭[29..15]||15||시스템 클럭 비트 29에서 15
|-
|표시 비트||1||항상 1 비트로 설정됨.
|-
|시스템 클럭 [14..0]||15||시스템 클럭 비트 14에서 0
|-
|표시 비트||1||1 항상 1 비트로 설정됨.
|-
|SCR 확장||9||
|-
|표시 비트||1||1 항상 1 비트로 설정됨.
|-
|[[비트레이트]]||22|| 초당 50 바이트 단위.
|-
|표시 비트||2||항상 11 비트로 설정됨.
|-
|예약||5||나중에 사용하기 위해 예약.
|-
|stuffing 길이||3||
|-
|stuffing 바이트||8*stuffing 길이||
|-
|시스템 헤더 (선택적)||0 또는 그 이상 ||시스템 헤더 시작 코드가 따라가기 시작할 시: 0x000001BB
|}

{| class="wikitable"
|+ 시스템 헤더 포맷 일부
!이름
!바이트 수
!설명
|-
|[[싱크 바이트]]||4||0x000001BB
|-
|헤더 길이||2||
|-
|레이트 바운드와 표시 비트||3||
|-
|오디오 바운드와 플래그||1||
|-
|플래그, 표시 비트, 비디오 바운드||1||
|-
|패킷 레이트 제한과 예약 바이트||1||
|}

== 같이 보기 ==
* [[기초 스트림]]
* [[MPEG 트랜스포트 스트림]]
* [[MPEG-1]]
* [[MPEG-2]]
== 각주 ==
<references />

{{MPEG}}
{{압축 형식}}

[[분류:MPEG]]
[[분류:파일 포맷]]
[[분류:MPEG-2]]
[[분류:ITU-T 권고]]