1 byte 3 byte điều kiển
2.1.4 Ghép kênh dòng truyền tải (Tranpost Stream Mux)
Hình 2.24: Dòng truyền tải
Nếu chia các gói PES có độ dài khác nhau thành các gói TS có độ dài không đổi (thường có chiều dài 188 byte) và truyền các gói này đi sau khi đã cộng với dòng bit điều khiển dùng để mô tả chương trình.
Hình 2.25: Ghép kênh dòng truyền tải
Trong dòng truyền tải, các gói PES từ các dòng sơ cấp khác nhau được phân nhỏ và gán vào phần payload của gói tần số. Quy trình này phải thỏa mãn 2 điều kiện:
Byte đầu tiên của mỗi gói PES phải trở thành byte đầu tiên của payload của gói TS.
Bất kỳ gói TS nào cũng chỉ mang phần dữ liệu lấy từ cùng một gói PES. Mỗi gói PES không thể phân chia dữ liệu của nó một cách chính xác vào một số nguyên gói TS. Thường gặp trường hợp không đủ số liệu để lắp đầy vào payload của gói TS cuối cùng. Để thỏa mãn 2 điều kiện trên, người ta độn thêm vào phần adaptaion field với độ dài thích hợp. Có thể giảm tối thiểu độ dài phần adaptaion field này bằng cách lựa chọn chiều dài gói PES hợp lý. Gói PES cũng thường được chọn đủ dài để đa số các gói TS được lắp đầy bởi số liệu có ích lấy từ các gói PES.
Tất cả các gói sơ cấp PES ghép kênh chung với nhau tạo nên 1 hay nhiều chương trình sẽ được chuyển thành các gói TS theo cùng một cách thức như trên. Các gói TS sẽ được sắp xếp từng tự tạo ra dòng truyền tải. Các gói TS chứa thông tin dịch vụ cũng như các gói TS rỗng được sử dụng để lắp đầy kênh truyền. Thứ tự các gói TS có thể sắp xếp tùy ý miễn sao đảm bảo được điều kiện các gói TS của cùng một dòng sơ cấp đóng gói PES sẽ được truyền theo thứ tự thời gian.
Audio
Gói TS
PES header
Video Audio Video Audio Video
PES header PID 1 Dòng truyền tải GHÉP KÊNH DÒNG TRUYỀN TẢI PID 2 PID (n -3) PID (n -2) PID (n -1) PID (n) Video PES Video PES Audio PES Audio PES Data Dòng ánh xạ cơ sở
Hình 2.26: Chia các gói PES thành các gói TS a) Cấu trúc dòng truyền tải
Hình 2.27: Cấu trúc gói truyền tải
Gói truyền tải có kích thước cố định và bằng 188 byte, chia thành dữ liệu tiêu đề (header) và dữ liệu có ích (payload). Dữ liệu tiêu đề có độ dài tối thiểu bằng 4 byte chứa các thông tin sau:
Sync byte (8 bit): Byte đồng bộ mang giá trị không đổi bằng 0x47 không
phải là giá trị duy nhất trong gói TS và có thể xuất hiện trong các trường của gói TS. Tuy nhiên, hiện tượng sync byte lặp đi lặp lại 188 Kbyte cùng với giá trị 0x47 của nó sẽ tạo cơ sở để nhận dạng chỗ bắt đầu của một gói TS mới.
Transpost error indication (1 bit): Bit này dùng để báo hiệu có lỗi gói xảy
ra trên đường truyền – khi tỉ lệ sai nhầm bit (BER –Bit Error Rate) vượt quá giá trị cho phép từ khâu điều chế đến khâu giải điều chế, phân kênh. Giá trị 1 chỉ thị rằng đang có lỗi không thể sửa chữa được trong gói TS hiện hành, vì vậy không nên sử dụng phần payload trong gói TS này.
Header Payload Header Payload …… Header Payload Sync byte (8 byte) Transport error indicator (1 bit) Start indicator (1 bit) Transport priority (1 bit) PIP (13 bit) Scrambling contro (2 bit) Adaptation field control (2 bit) Continuity counter (4 bit) Adaptati -on field Payload (n1 byte) Discontinuity indicator (1 byte) Random access indicator (1 bit) 5 flags (1 bit) Optional Field (1 bit) Stuffing byte (n2 ) Adaptation field lenghth (8 bit) OPCR (42 bit) Splice countdown (8 bit) Transport private data (8+n3) Adaptation field extension (8 + n4) PCR (42 bit) 188 byte Adaptation field Payload PES Header của PES Header của PES
Payload TS Payload TS Payload TS Payload TS
Payload – unit – start indicator (1 bit): Bit này thiết lập một cờ báo cho ta biết
byte đầu tiên của phần payload chính là byte đầu tiên của gói PES mới (đối với số liệu video, audio) hay là phần đầu của một bản (đối với thông tin đặc tả chương trình PSI).
Transpost priority (1 bit): Giá trị 1 chỉ thị gói TS này có quyền ưu tiên hơn
các gói khác. Nếu hệ thống truyền hình số không hỗ trợ việc phân phối tín hiệu có ưu tiên thì bit này sẽ được bỏ qua ở phía thu.
Packet indentifcation hay PID (13 bit): Đây là thông tin để nhận dạng gói
TS thuộc một dòng sơ cấp đóng gói PES hay thuộc về 1 PSI cụ thể nào đó. Trong 213 giá trị có thể có, 17 giá trị được dành riêng cho các mục đích đặc biệt. Còn lại 8175 giá trị được dùng để gán cho các dòng gói sơ cấp PES hay PSI khác nhau. Như vậy có thể gán tối đa đến hơn 8000 dòng gói sơ cấp vào 1 dòng truyền tải. Các dòng bit cơ sở đóng gói PES và dòng bit điều khiển như đã nói ở trên gọi là ánh xạ dòng cơ sở – được nhận biết bởi PIDs duy nhất của chúng trong giá trị đầu của mành.
Transpost scrambing control (2 bit): Chỉ thị chế độ xáo trộn dữ liệu trong phần
payload. Đối với hệ thống truyền số transpost scrambing control được định nghĩa:
Giá trị Mục đích
00 Không bị xáo trộn
10 Khóa chẵn
11 Khóa lẻ
01 Dự phòng
Adaptation field control (2 bit): Chỉ thị cho biết phần tiếp theo của gói tần
số là cái gì, có trường thích nghi (Adaptation field) hay không, và nếu có thì đi kèm payload hay không.
Giá trị Mục đích
00 Dự phòng
10 Chỉ có adaptation field, không có payload 11 Theo sau adaptation field là payload 01 Không có adaptation field, chỉ có payload
Continuity counter (4 bit): Giá trị này sẽ tăng lên 1 theo các gói TS kế tiếp
nhau thuộc về cùng 1 gói sơ cấp PES (cùng PID). Điều này cho phép phía giải mã sắp xếp lại các gói TS theo đúng thứ tự, cũng như phát hiện các gói TS bị mất, sẽ dùng phương pháp che giấu lỗi để khắc phục.
Sự xuất hiện của trường thích ứng (adaptation field) được báo hiệu nhờ thông tin và adaptation field control trong header. Adaptation field bao gồm các thông tin được sử dụng cho các chức năng giải mã bậc cao hơn, sử dụng các cờ hiệu (flag) để chỉ sự hiện diện của các trường mở rộng đặc biệt ở phía sau.
Trường adaptation field có độ dài thay đổi gồm các thông tin sau đây:
+ Adaptation field length (8 bit): Chỉ thị số byte theo sau trong trường
adaptation. Trường adaptation có thể được sử dụng để chứa các byte độn mang giá trị 0xFF và không được phiên dịch tại phía giải mã. Nếu có các byte adaptation field length cũng phải tính cả các byte đó. Giá trị adaptation field length lúc đó sẽ được phía giải mã sử dụng để bỏ qua trường adaptation field và đến thẳng trường payload trong gói.
+ Discontinuity indicator (1 bit): Giá trị 1 chỉ thị sự không liên tục của
chuẩn đồng hồ (clock reference) hoặc của bộ đệm liên tục hoặc của cả 2.
+ Random access indicator (1 bit): Giá trị 1 chỉ thị gói PES tiếp theo là đầu
1 chuỗi video thay đầu 1 frame audio.
+ ES priority indicator (1 bit): Giá trị 1 chỉ thị độ ưu tiên cao hơn.
+ 5 flag gồm: PCR flag, OPCR flag, Splicing pion flag, Transport private
data flag, Adaptation field extension flag:
- PCR flag (1 bit): Giá trị 1 chỉ sự hiện diện của đồng hồ chương trình
PCR. PCR được dùng để đồng bộ hóa quá trình giải mã. Trong một số trường hợp, thông tin này có thể được sửa đổi trong quá trình truyền, PCR phải được truyền đi tối thiểu 1 lần mỗi 100ms.
- OPCR flag (1bit): Giá trị 1 chỉ sự hiện diện của một PCR gốc. Thông tin này
không bị sữa đổi trong quá trình truyền và có thể được dùng để thu hoặc phát lại các chương trình đơn. Phía thu không cần dùng OPCR trong quá trình giải mã.
- Splicing pion flag (1 bit): Chỉ sự hiện diện của spilie countdown (số đếm
ngược đến điểm ráp nối).
- Transport private data flag (1 bit): Chỉ sự hiện diện của các byte dữ liệu riêng.
- Adaptation field extension flag (1 bit): Chỉ sự hiện diện của trường mở
rộng trường thích nghi.
+ Optional field gồm:
- PCR – Program Clock Reference (42 bit): Chuẩn đồng hồ chương trình.
- OPCR – Orginal Program Clock Reference (42 bit): Chuẩn đồng hồ
chương trình gốc được sử dụng để trích một chương trình đơn ra khỏi dòng truyền tải đa chương trình.
- Splice countdown (8 bit): Thông báo số gói TS còn lại của một dòng gói
sơ cấp (cùng PID) cho đến khi gặp điểm ráp nối. Điểm ráp nối là điểm cuối của một frame audio hay một ảnh video.
- Transport length (8 bit): Thông báo số lượng byte số liệu liên tiếp theo sau.
- Private data bytes (n3 bit): Dữ liệu riêng.
- Adaptation field extension (8 bit): Chỉ thị số byte của trường mở rộng
trường thích nghi.
+ Stufing bytes (n2 bit): Các byte độn có giá trị 0xFF được chèn vào tại phía mã hóa. Các byte này được bỏ qua không xét đến ở phía giải mã.