케이블 디지털 전송에서 프로그램 스트림과 전송 스트림의 차이점은 무엇입니까? 스트림이라는 스트림 분석기로 기록된 특정 주파수의 스트림은 무엇입니까?
MPEG-2 시스템에서 정보를 합성/분리하는 과정을 시스템 다중화/역다중화라고 하며, 비디오, 오디오 ES 스트림 및 보조 데이터를 다중화하여 생성됩니다. 스트림을 MPEG-2 전송 스트림(TS: TransportStream)이라고 합니다. MPEG-2는 전송 미디어의 품질에 따라 전송 스트림(TS)과 프로그램 스트림(PS: ProgramStream)이라는 두 가지 복합 정보 스트림을 정의합니다. TS 스트림과 PS 스트림의 차이점은 TS의 패킷 구조입니다. 스트림은 고정 길이입니다. PS 스트림의 패킷 구조는 가변 길이입니다.
이러한 PS 패킷과 TS 패킷의 구조적 차이로 인해 전송 오류에 대한 내성이 달라지고 이에 따라 적용 환경도 다릅니다. TS 코드열은 고정된 길이의 패킷 구조를 채택하고 있으므로, 전송 오류로 인해 특정 TS 패킷의 동기 정보가 파괴된 경우, 수신기는 고정된 위치에서 뒤에 있는 패킷의 동기 정보를 검출하여 동기를 복원하고 정보를 회피할 수 있다. 손실. PS 패킷의 길이가 변하기 때문에 특정 PS 패킷의 동기화 정보가 손실되면 수신기에서는 다음 패킷의 동기화 위치를 확인할 수 없으며 이로 인해 동기화가 해제되어 심각한 정보 손실이 발생합니다. 따라서 채널 환경이 상대적으로 열악하고 전송 오류가 높은 경우에는 TS 코드 스트림이 일반적으로 사용되며, 채널 환경이 좋고 전송 오류가 적은 경우 DVD와 같은 PS 코드 스트림이 일반적으로 사용됩니다. TS 코드 스트림은 전송 오류에 대한 저항력이 강하므로 현재 전송 매체로 전송되는 MPEG-2 코드 스트림은 기본적으로 TS 코드 스트림을 사용한다.
TS/PES는 MPEG에서 정의한 표준 형식입니다. MPEG1과 MPEG2 모두 TS/PS라고 부르는 정의를 제공합니다. 따라서 AVS 및 IP 데이터도 TS에 캡슐화할 수 있지만 TS/PS에 대해 이야기할 때 MPEG는 여전히 필수 불가결합니다. MPEG의 TS/PES 정의에 따라 다른 데이터도 캡슐화할 수 있기 때문입니다.
다른 인코딩 형식의 코드 스트림을 TS/PS를 통해 그대로 전송하는 것이 가능할 수도 있지만 이는 실제로 MPEG를 활용하거나 확장한 것입니다. 일반적으로 다양한 유형의 데이터를 캡슐화할 때 TS/PES에 표준(있는 경우) 또는 사용자 정의 설명을 추가해야 하며, 어떤 경우에는 원칙적으로 MPEG, TS/PES에서 정의한 특수 설명을 사용해야 합니다. 항상 투명하지는 않습니다. .
간단히 말하면 ps 스트림(주로 DVD에서 사용)이 중간에 약간의 코드 스트림이 손실되면 나머지는 재생할 수 없으며 TS 스트림(DVB-T, DMB- TH 등) 코드 스트림이 중단되면 어떻게 보더라도 언제든지 디코딩을 다시 시작할 수 있습니다.
------------------------------- ----- ---
PS 스트림:
DVD 프로그램의 MPEG2 형식은 MPEG2-PS이며, 전체 이름은 프로그램 스트림, 줄여서 PS 스트림입니다. TS의 전체 이름은 Transport Stream입니다. MPEG2-PS는 DVD 영화 등 고정된 기간으로 저장된 프로그램에 주로 사용되는 반면, MPEG-TS는 실시간 방송 TV 프로그램과 같은 프로그램의 실시간 전송에 주로 사용됩니다.
이 두 형식의 주요 차이점은 무엇입니까? DVD에서 VOB 파일의 첫 번째 부분을 자르면(또는 단순히 데이터가 손상된 경우) 전체 파일이 디코딩되지 않습니다. 그러나 TV 프로그램은 TV를 켤 때마다 디코딩(시청)할 수 있습니다. MPEG2-TS 형식의 특징은 비디오 스트림의 모든 세그먼트를 독립적으로 디코딩할 수 있어야 한다는 것입니다.
------------------------------- ----- ---
TS 스트림:
ts 스트림은 다양한 유형의 패킷으로 구성됩니다. 이 데이터 패킷의 크기는 모두 188바이트입니다. 포함 패킷 헤더와 로드의 두 부분이 있습니다. 패킷 헤더에는 동기화 정보, 패킷 정보 등이 포함되며 로드는 전송되는 데이터이며 이러한 로드는 PES 스트림 또는 개인 스트림 및 기타 데이터 스트림을 형성할 수 있습니다. .
예를 들어 TS 스트림에는 100개의 패킷이 포함되어 있으며 그 중 20개는 PSI 정보 패킷이고 80개는 PES 데이터 패킷입니다. 이 TS 스트림에는 프로그램 스트림 세트가 하나만 있으며 개인 스트림을 포함하지 않습니다. , 따라서 이 80개의 PES 패킷의 페이로드가 Together에 연결되어 있으므로 2개의 PES 스트림(비디오, 오디오)이 있습니다. 각 PES 패킷의 페이로드 길이가 100바이트라면 이 두 PES 스트림의 최대 길이는 8000바이트입니다. 비디오의 PES 스트림의 길이가 6000바이트라고 가정합니다. 비디오의 6000바이트 PES 스트림은 PES 패킷으로 구성되며, PES 패킷은 고정된 길이가 없지만 패킷 헤더의 데이터로 제공됩니다. PS 역시 TS 스트림 분해 방식과 유사하며, 역방향으로 PES 패킷을 패키지로 캡슐화하는데, 여기에 PACKET_HEAD, SYSTEM_HEAD 및 기타 정보를 추가해야 하므로 지난번에 수행한 프로그램은 TS-gt;PS 변환이 아니었습니다. , 그러나 복잡한 TS 스트림에서 일련의 프로그램을 필터링하여 간단한 TS 스트림을 구성하는 프로세스입니다.
------ ------------- -------------
mpeg-ts, mpeg-ps 변환
mpeg2 파일 데이터 패킷으로 전달되며 동일한 188바이트가 패킷을 구성하지만 전송 스트림과 프로그램 스트림으로서 패킷의 조직 구조는 여전히 다릅니다. 패킷 유형이 아니라 PID가 0x0000인 PAT, EIT, TDT, TOT 및 PMT와 같은 다양한 목적을 위한 많은 유형의 데이터가 있으며, 기타 다른 테이블이나 패키지는 상대적으로 적습니다. , 오디오 및 비디오가 포함된 PAT, PMT 및 PES 패키지로 충분하므로 TS 및 PS 변환에서는 상대적으로 쓸모 없는 패키지를 제거하고 수정하면 됩니다. PAT 및 PMT 테이블.
예를 들어 지금 제가 하고 있는 DVB-T MPEG2 스토리지는 먼저 MPEG2 압축 데이터 패킷(동기화 등의 모든 정보가 포함된 완전한 패킷)을 얻는 것입니다. , 는 188바이트), 오디오 및 비디오 데이터 패킷(두 개는 서로 다른 PID로 구별됨)을 포함합니다. 그런 다음 PS 스트림으로 저장할 때 테이블이 PS 스트림에 추가되는 경우 새 PAT 및 PMT 테이블을 생성해야 합니다. , PAT, PMT가 필요합니다. 수정된 점은 PMT의 오디오 및 비디오 스트림의 PID 값이 저장될 오디오 및 비디오 데이터 패킷의 PID여야 한다는 것입니다. 이렇게 하면 TS-gt PS의 변환이 완료됩니다. /p>
즉, 먼저 TS를 필터링하고, 저장할 프로그램에 해당하는 오디오 및 비디오 스트림을 유지하고, 다른 모든 패키지를 삭제한 다음, 오디오 포인터가 포함된 새 PAT 및 PMT 테이블을 만듭니다. 및 비디오 스트림은 저장된 오디오 및 비디오 스트림을 가리켜야 합니다. 이렇게 하면 변환이 완료됩니다.
질문: 1. 오디오 및 비디오 동기화 문제는 이 두 패킷을 어느 정도 비율로 전송해야 합니까? 즉, 오디오 패킷을 중간에 몇 개나 보내야 할까요? 이 비율을 잘 제어하지 않으면 오디오와 비디오의 싱크가 맞지 않게 되기 쉽습니다.
2. 가상의 PAT, PMT 테이블을 어떤 빈도로 보내야 하는가? 즉, PSI 패킷을 보내기 전에 PES 패킷을 몇 개나 보내야 하는가? 이 문제는 재생 중에는 별 문제가 없는 것 같습니다. .
3. 지금 사용하고 있는 방법은 저장 후 재생 문제를 해결했지만 TS-gt PS의 변환은 구현하지 못한 것 같습니다. 즉, TS 스트림, 즉 여러 개를 포함하는 파일을 필터링하는 것입니다. 프로그램의 TS 스트림이 하나의 프로그램 세트만 포함하는 TS 스트림으로 변환됩니다. 이것이 맞습니까?
4. 또 다른 주요 문제는 TS 스트림에 PES 정보를 전송하는 패킷에 대한 것입니다. , 로드 정보에 있는 데이터가 PES 스트림을 어떻게 형성하는지 헤더 부분의 제어 정보를 통해 명확하게 설명해야 합니다.