MỤC LỤC
MỤC LỤC- 1
Chương I- 3
MÃ HÓA- 3
I. MÃ HÓA VIDEO-- 3
1. Mã hóa MPEG–2 : 3
1.1. Khái quát chung- 3
1.2. Cơ chế nén MPEG-2- 5
II. MÃ HÓA AUDIO-- 10
1. Tín hiệu Audio số- 10
2. Nguyên tắc chuyển đổi A/D- 10
2.1. Lấy mẫu- 10
2.2. Lượng tử hóa- 13
2.3. Mã hóa- 13
Chương II- 16
ĐÓNG GÓI- 16
I. Dòng cơ sở (elementary stream) 16
II. Dòng cơ sở đóng gói (packetized elementary stream) 18
1. Giới thiệu chung về dòng cơ sở đóng gói 18
2. Cú pháp dòng cơ sở đóng gói 21
Chương III- 27
GHÉP KÊNH-- 27
I. Ghép kênh dòng chương trình (Program Stream MUX) 27
II. Ghép kênh dòng truyền tải (Transport Stream MUX) 28
1. Giới thiệu chung về dòng truyền tải: 29
2. Cấu trúc gói truyền tải 31
3. Giải mã dòng truyền tải 38
4. Thông tin đặc tả chương trình (PSI) 39
5. Hệ thống ghép các dòng truyền tải 41
6. Ưu điểm của dòng truyền tải MPEG-2- 42
Chương I
MÃ HÓA
MÃ HÓA VIDEO
Mã hóa MPEG -2 :
Khái quát chung
MPEG-2 là một tiêu chuẩn mã hóa nén (thường được gọi tắt là chuẩn nén) trong bộ tiêu chuẩn MPEG dùng để mã hóa luồng dữ liệu hình có kết hợp với các thông tin về âm thanh. Đây là một phương thức mã hóa dữ liệu có tổn hao cho phép lưu trữ và truyền phim ảnh trên nền hệ thống và băng thông hiện thời. MPEG-2 được mở rộng dựa trên chuẩn MPEG để hỗ trợ việc nén dữ liệu để truyền Video số chất lượng cao. Để hiểu được tại sao nén Video là rất quan trọng, ta cần tìm hiểu băng thông (Bandwidth) cần thiết để truyền các khung hình Video số không nén.
Tín hiệu video số sau khi nén MPEG-2 có dạng một dòng dữ liệu cơ sở video (Elementary Stream - ES) với chiều dài gần như vô tận và chỉ chứa những thông tin tối cần thiết để có thể khôi phục lại hình ảnh ban đầu.
PAL (Phase Alternate Line) là chuẩn để truyền tín hiệu TV tuần tự (Analog) được sử dụng ở khá nhiều nước trên thế giới. Khung hình TV dùng PAL không nén đòi hỏi băng thông rất lớn tới 216 Mbps, lớn hơn rất nhiều khả năng của truyền sóng radio. Một số nước dùng hệ thống Analog TV là NTSC. Hệ thống này cung cấp các thông tin về màu sắc kém trung thực hơn với tỉ lệ truyền các khung khác nhau. Tín hiệu NTSC không nén đòi hỏi dung lượng đường truyền thấp hơn không đáng kể ở mức 168 Mbps. TV độ phân giải cao HDTV (High Definition TV) yêu cầu băng thông tối thiểu là 1 Gbps.
Do chuẩn MPEG-2 cung cấp khả năng nén rất cao bằng cách dùng các thuật toán tiêu chuẩn, nó trở thành chuẩn cho TV số với các đặc tính:
+Nén Video tương thích với MPEG-1.
+Chế độ Full-screen kết hợp với cải tiến chất lượng Video (cho TV và màn hình PC).
+Cải tiến mã hoá Audio (chất lượng cao, mono, stereo .).
+Truyền phối hợp nhiều thành phần.
+Các dịch vụ khác.
Các hệ thống sử dụng MPEG-2 đang rất phát triển như: TV số, VoD, Digital Versatile Disc (DVD) . Thuật toán nén Video MPEG-2 đạt được khả năng nén cao nhờ lợi dụng sự dư thừa in thông tin Video. MPEG-2 loại bỏ cả dư thừa về không gian và dư thừa về thời gian trong các cảnh Video.
47 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2848 | Lượt tải: 4
Bạn đang xem trước 20 trang tài liệu Đồ án Truyền dẫn tín hiệu số, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
c pixel ảnh trong miền không gian. Thứ hai là biến đổi cosine rời rạc yêu cầu ít sự phức tạp tính toán và tài nguyên hơn .
Lượng tử hóa các hệ số DCT
Sau khi biến đổi cosine rời rạc, sự tương quan giữa các pixel của một ảnh trong miền không gian đã được giải tương quan thành các tần số rời rạc khác nhau trong miền tần số. Do sự cảm nhận thị giác của con người là rất nhạy với hệ số DC và các tần số thấp, một phương pháp lượng tử hóa vô hướng được thiết kế cẩn thận có thể giảm sự dư thừa dữ liệu mà vẫn dữ được tính trung thực của ảnh.
Quét zigzag các hệ số DCT.
Sau khi biến đổi DCT ta thu được các khối 8x8 biểu diễn cho các hệ số tần số. Trong khối này thì các hệ số tần số thấp sẽ tụm lại ở góc cao phía trái của ma trận DCT. Quét zigzag sẽ sắp xếp lại thứ tự của ma trận để các hệ số được sắp xếp theo tần số theo thứ tự tăng dần.
Mã hóa Entropy
Sau DCT và lượng tử hóa là các thuật toán miền mã. Các thuật toán này thường được gọi là mã hóa Entropy, bao gồm mã hóa Huffman, mã hóa số học…, đây là phương pháp mã hóa không tổn hao. Ý tưởng cơ bản của mã hóa Entropy là các biểu tượng thường xuyên xuất hiện sẽ được mã hóa bằng các bít ngắn, trong khi đó các biểu tượng ít xuất hiện hơn sẽ được mã hóa bằng các bít dài hơn. Phương pháp này còn gọi là mã hóa có độ dài từ mã thay đổi (VLC), và một phương pháp cho hiệu quả cao là mã hóa Huffman. Điều này sẽ làm cho tốc độ bit của luồng giảm đáng kể.
Ước lượng và bù chuyển động
Nén video có thể đạt được với việc lấy mẫu không gian màu, loại bỏ các hệ số DCT tần số cao, lượng tử hóa, mã hóa không tổn hao, dự đoán và bù chuyển động trong miền thời gian. Chuẩn MPEG chấp nhận việc dự đoán và bù chuyển động dựa trên khối trong miền không gian. Thực tế, dự đoán và bù chuyển động cũng làm việc trong miền DCT vì các biến vị trí trong miền không gian có thể chuyển đổi với các biến tần số trong miền DCT.
Quá trình khôi phục lại khung hình tại bộ giải mã là hoàn toàn ngược lại. Từ luồng dữ liệu nhận được ở đầu vào, Vector chuyển động được tách ra và đưa vào bộ bù chuyển động (Motion Compensator), các hệ số DCT được đưa vào bộ biến đổi ngược IDCT để biến tín hiệu từ miền tần số thành tín hiệu ở miền không gian. Đối với P-picture và B-picture, Vector chuyển động sẽ được kết hợp với các Macroblock tiên đoán để tạo thành các khung hình tham khảo.
Không cần thiết phải luôn nén mọi khung hình Video cùng một mức độ, một phần của Clip có thể có độ dư thừa không gian thấp (ví dụ các hình ảnh phức tạp) trong khi đó các phần khác của Clip lại có độ dư thừa thời gian thấp (ví dụ các cảnh chuyển động nhanh). Vì thế dữ liệu Video đương nhiên sẽ ở các tỉ lệ nén (Bit rate) thay đổi trong khi việc truyền dữ liệu thường yêu cầu tốc độ cố định. Chìa khoá để điều khiển tốc độ truyền là trật tự dữ liệu đã nén trong bộ đệm (Buffer).Việc nén có thể được tiến hành với việc loại bỏ một vài thông tin đã được lựa chọn. Ảnh hưởng nhỏ nhất đối với chất lượng toàn bộ khung hình có thể đạt được bằng cách bỏ bớt các thông tin chi tiết. Điều này đảm bảo giới hạn tỉ lệ nén dữ liệu trong khi chất lượng của khung hình suy giảm tối thiểu.
Remove Intra-Frame Redundancy
Rate Control
Quantise Sample
Run-Length Compress
Buffer Store
Remove
Inter-Frame Redundancy
Analogue video sampling
Hình 3: Cơ chế nén MPEG II.
MPEG-2 bao gồm cơ chế nén trong một phạm vi rộng. Một bộ mã hoá với cơ chế nén phải phù hợp với một hoặc đoạn cảnh riêng biệt. Nói chung bộ mã hoá rất phức tạp, nó phải lựa chọn được cơ chế nén thích hợp nhất bởi vậy tăng chất lượng khung hình đối với tỉ lệ nén dữ liệu truyền. Bộ giải mã MPEG-2 cũng có nhiều kiểu, khả năng đa dạng và các lựa chọn khi kết nối.
Số lượng các Level và Profile được định nghĩa cho việc nén Video MPEG-2. Hệ thống MPEG-2 được phát triển trên một tập nào đó các Level và Profile:
+Profile: chất lượng của Video.
+Level: độ phân giải của Video.
Hệ thống cơ bản với tên MPML (Man Profile Man Level) nén dữ liệu Video từ 1-15 Mbps. Các Level khác nhau như: High Level, High Level 1440, Low Level và các Profile như: Simple, SNR, Spatial, 4:2:2 & High.
Các bộ giải mã điển hình:
+ 720 x 576 x 25 fps (PAL CCIR 601).
+ 352 x 576 x 25 fps (PAL Half-D1).
+ 720 x 480 x 30 fps (NTSC CCIR 601).
+ 352 x 480 x 30 fps (NTSC Half-D1).
Hầu hết các bộ giải mã đều hỗ trợ MPEG-1:
+ 352 x 288 x 25 fps (PAL SIF).
+ 352 x 240 x 30 fps (NTSC SIF).
Chuẩn MPEG-2 định nghĩa một sự phối hợp mã hoá Audio. Audio số có thể được mã hoá trong các dạng mã hoá khác nhau ở các tỉ lệ nén khác nhau.MPEG-2 cũng cung cấp các hỗ trợ cho việc truyền dữ liệu. MPEG-2 phân biệt hai kiểu dữ liệu:
+ Service Information: thông tin về Video, Audio và Data truyền bởi MPEG-2.
+ Private Data: thông tin người sử dụng hoặc thiết bị thu.
MÃ HÓA AUDIO
Tín hiệu Audio số
Hiện nay ,các thiết bị Audio số đã dần chiếm lĩnh và thay thế các thiết bị Audio tương tự trong phát sóng và sản xuất.
Ưu điểm của tín hiệu Audio số như:
Độ méo tín hiệu nhỏ một cách lý tưởng (0.1%).
Dải động âm thanh lớn gần ở mức tự nhiên (> 90dB).
Tuyến tần số bằng phẳng (±0.5 dB)
Việc tìm kiếm dữ liệu nhanh chóng, dễ dàng, độ bền ổn định lâu dài… . Kết quả là đã cải thiện chất lượng ghi xử lý âm thanh, đồng thời nó đáp ứng được nhu cầu lưu trữ và các hệ thống sản xuất chương trình bằng máy tính.
Tiêu chuẩn Audio số ra đời với sự liên kết giữa hai Hiệp hội kỹ thuật : Audio AES và EBU (Hiệp hội truyền thanh truyền hình châu Âu) . Nó hạn chế hiện tượng méo tín hiệu âm thanh trong hai quá trình biến đổi tương tự – số và ngược lại, từ đó chất lượng âm thanh được nâng cao rõ rệt.
Nguyên tắc chuyển đổi A/D
Các bước của quá trình biến đổi A/D tín hiệu âm thanh là:
Lấy mẫu (rời rạc hoá theo thời gian).
Lượng tử hoá (rời rạc hoá theo biên độ).
Mã hoá (gán giá trị nhị phân cho các mẫu).
Lấy mẫu
Lấy mẫu lí tưởng
Nguyên lý lấy mẫu là quá trình lấy biên độ của dạng sóng tương tự tại từng thời điểm theo một chu kỳ nhất định.
Thực chất quá trình lấy mẫu bao gồm việc nhận các tín hiệu tương tự với một chuỡi xung truyền lặp đi lặp lại theo thời gian có tần số là tần số lấy mẫu.
Chúng ta sẽ tìm hiểu trường hợp lấy mẫu lý tưởng với khoảng thời gian xung lấy mẫu gần bằng 0.
Biên độ
t
Phổ tín hiệu Audio
Fmax
Biên độ
t
fs-fmax
2fs
Phổ tín hiệu Audio lấy mẫu
Điều chế
biên độ
fs
2fs
3fs
t
Phổ tần số lấy mẫu “sóng mang”
fs
Phổ của dãy PAM (trong miền tần số)
Tín hiệu lấy mẫu
(PAM)
Biên độ
t
Biên độ
t
fs
2fs
Phổ tín hiệu Audio lấy mẫu
Lọc thông thấp
Biên độ
Tín hiệu Audio
t
Biên độ
t
Phổ tín hiệu Audio
Fmax
Khôi phục tín hiệu Audio tương tự
t
Biên độ
Tín hiệu Audio
t
Điều chế
biên độ
Biên độ
t
Xung lấy mẫu
Biên độ
Tín hiệu lấy mẫu
(PAM)
Quá trình lấy mẫu và kết quả dãy PAM (trong miền thời gian)
Lấy mẫu thực tế
Biên độ
Tín hiệu Audio
t
Điều chế biên độ
Xung lấy mẫu
t
Biên độ
Tín hiệu đã lấy mẫu
t
Biên độ
Trong thực tế, trong thời gian cho phép của bộ chuyển đổi A/D, giá trị biên độ xung cho mỗi mẫu sẽ được duy trì đến tận thời gian mẫu tiếp theo được lấy.Vì vậy, tạo ra tín hiệu Audio tương tự đã được lấy mẫu có dạng bậc thang, khoảng thời gian tồn tại này đúng bằng chu kỳ lấy mẫu (1/fsa).
Quá trình lấy mẫu thực tế
Lượng tử hóa
Từng mẫu của tín hiệu tương tự nguyên thuỷ được ấn định cho một giá trị mã số nhị phân bởi một thiết bị còn gọi là bộ lượng tử hoá. VD : 4 bít -> 16 bit giá trị nhị phân để mã hoá tương ứng biên độ xung cho mỗi mẫu.
Tín hiệu Audio tương tự có biên độ thấp được lượng tử hoá với rất ít các mức rời rạc. Điều này gây nên lỗi lượng tử của các tín hiệu vào mức thấp. Vì vậy, để giảm độ lớn của lỗi lượng tử có thể bằng cách tăng mức số rời rạc.
Nếu biên độ tín hiệu Audio tương tự vượt qua vùng lượng tử, khi đó quá trình cắt số sẽ được thực hiện.
Mã hóa
Mỗi giá trị nhị phân sau khi lượng tử hoá được mã hoá theo một cấu trúc thích hợp để tạo nên cấu trúc mẫu tín hiệu phục vụ cho truyền dẫn và các thiết bị lưu trữ. Hầu hết, các hệ thống mã hoá đều sử dụng phương pháp điều xung mã (PCM), điều chế xung rộng (PWM), mã hoá vi sai (DPCM), điểm di động .
Điều chế xung mã PCM
Điều xung mã PCM là quá trình biến đổi tương tự sang số ( A/D ) trong đó thông tin đầu vào dưới dạng các mẫu tín hiệu tương tự được biến đổi thành các tổ hợp mã nối tiếp ở đầu ra
Điều xung mã PCM bao gồm 3 quá trình:
1. Lấy mẫu
2. Lượng tử hoá
3. Mã hoá
Để chuyển đổi tín hiệu analog thành tín hiệu digital dùng phương pháp PCM, cần thực hiện 3 bước như hình dưới.
Trước hết phải lấy mẫu tín hiệu thoại, tức là chỉ truyền các xung tín hiệu tại các thời điểmnhất định.
Bước thứ hai là lượng tử hoá biên độ, nghĩa là chia biên độ của xung mẫu thành các mứcvà lấy tròn biên độ xung đến mức gần nhất.
Bước thứ ba mã hoá xung lượng tử thành từ mã nhị phân có m bit.
PCM vi sai (DPCM)
Đây là phương pháp dựa trên tính chất tương quan của tín hiệu tiếng nói , chỉ truyền đi độ chênh lệch giữa các mẫu cạnh nhau của tín hiệu tiếng nói :
Tín hiệu tiếng nói tương tự vào qua bộ lọc thông thấp , hạn chế băng tần của tín hiệu vào (thường là một nữa tần số lấy mẫu ) máy phát lượng tử và mã hóa lượng tử chênh lệch giữa xung lấy mẫu tương tự xn và tín hiệu dự đoán xn lấy từ đầu ra bộ dự đoán xn’ . Giá trị dự đoán của mẫu tiếp theo có được là nhờ loại suy từ p giá trị mẫu cho trước .
Điều chế PWM
Điều chế PWM có tên tiếng anh là Pulse Width Modulation là phương pháp điều chỉnh điện áp ra tải hay nói cách khác là phương pháp điều chế dựa trên sự thay đổi độ rộng của chuỗi xung vuông dẫm đếm sự thay đổi điện áp ra.
0
0
0
12V
12V
20% duty cycle
40% duty cycle
90% duty cycle
Các PWM khi biến đổi thì có cùng 1 tần số và khác nhau về độ rộng của sườn dương hay hoặc là sườn âm.
Đồ thị xung điều chế PWM
Trên là đồ thị dạng xung khi điều khiển bằng PWM. Với độ rộng xung đầu ra tương ứng và được tính bằng %. Tùy thích do chúng ta điều khiển.
Chương II
ĐÓNG GÓI
Dòng cơ sở (elementary stream) và dòng cơ sở đóng gói (packetized elementary stream)
Dòng cơ sở (elementary stream)
Tín hiệu video số dạng thức CCIR-601(tiêu chuẩn truyền hình số cơ bản) sau khi nén MPEG có dạng một dòng dữ liệu video cơ sở (Elementary Stream - ES). Dòng ES chỉ chứa những thông tin cần thiết để khôi phục lại hình ảnh ban đầu.
Tương tự, tín hiệu audio số dạng thức AES/EBU (Tần số lấy mẫu 48kHz, 24bit/mẫu, tốc độ bít 1152kbps) được mã hóa thành dòng cơ sở audio (audio ES).
Mã hóa Video
Mã hóa audio
(AES/EBU)
(REC 601)
Dữ liệu video
Dữ liệu audio
Dòng cơ sở Elementary Stream ES
Dòng cơ sở Elementary Stream ES
Dòng cơ sở về cơ bản là tín hiệu gốc tại đầu ra của bộ mã hóa và chỉ chứa những thông tin cần thiết để giúp bộ giải mã tái tạo lại hình ảnh, âm thanh ban đầu.
Sơ đồ dòng cơ sở
Hình trên mô tả cách thức tạo ra dòng cơ sở. Tín hiệu video sau khi qua bộ mã hóa hai chiều, cho kết quả là các thông tin về các vector chuyển động, bảng lượng tử, và các dữ liệu về không gian. Những dữ liệu này sau khi được mã hóa bằng các phương thức khác nhau sẽ được trộn vào thành một dòng cơ sở duy nhất. Dữ liệu sau bộ ghép (mux) nhiều hay ít là tùy vào lượng thông tin có trong ảnh. Nhưng tốc độ bit của dòng cơ sở là không đổi nhờ qua một bộ đệm. Bộ đệm này có khả năng cảm nhận tốc độ dữ liệu đi ra để điều khiển tốc độ mã hóa dữ liệu đầu vào.
Mã hóa 2 chiều
Mã hóa entropy và mã hóa độ dài từ mã thay đổi
Mã hóa vi sai
Bộ ghép
Bộ đệm
Tín hiệu Video
Đồng hồ yêu cầu
Vector chuyển động
Điều khiển tốc độ
Slice
Dữ liệu không gian
Bảng lượng tử
Dòng cơ sở
Tốc độ của dòng đi ra được qui định bởi thiết bị đồng hồ yêu cầu (demand clock). Đồng hồ này là do kênh truyền hoặc thiết bị lưu trữ quyết định.
Hình thành dòng cơ sở.
Cấu trúc dòng cơ sở được mô tả như sau:
Khối các hệ số DCT
Macro block
Slice
Ảnh
Nhóm ảnh
Video sequence
x n
x n
x n
x n
x n
Vector chuyển động
Tín hiệu đồng bộ
I/P/B
Tín hiệu định thời
Mở/ Đóng
Cỡ ảnh
Tỉ lệ khuôn hình
Đồng bộ
Quét liên tuc/ xen kẽ
Loại mẫu
Tín hiệu ra
Tốc độ ảnh
Ma trận lượng tử
Level
Profile
Cấu trúc dòng cơ sở
Đầu tiên là một tập hợp hợp các hệ số biểu diến khối DCT. Sáu hoặc tám khối DCT tạo nên một macro block. Ở ảnh B và ảnh P mỗi macro block sẽ tương ứng với một vector bù chuyển động. Một số macro block sẽ tạo thành một lát ảnh (slice) biểu thị sọc ngang của hình ảnh từ trái sang phải. Tập hợp các lát ảnh tạo thành một ảnh, ảnh này thì cần biết giá trị cờ I/P/B để biết được loại ảnh tương ứng. Một số ảnh tạo thành một nhóm ảnh (GOP - Group of Picture). Một nhóm ảnh bắt đầu bằng ảnh I, giữa hai ảnh I liền nhau là một số ảnh P và có thể có thêm ảnh B. Một tập hợp các nhóm ảnh tạo thành đoạn dữ liệu video. Bắt đầu mỗi chuỗi video đều có phần tiêu đề chứa những thông tin quan trọng hỗ trợ cho bộ giải mã.
Dòng cơ sở đóng gói (packetized elementary stream)
Giới thiệu chung về dòng cơ sở đóng gói
Đóng gói
Đóng gói
(Audio ES)
(Video ES)
Dòng cơ sở video
Dòng cơ sở audio
Video PES
Audio PES
Do dòng dữ liệu cơ sở là liên tục, có chiều dài tùy thuộc vào lượng dữ liệu đưa vào bộ mã hóa, để có thể truyền đi với độ tin cậy cao, dòng ES được đóng gói thành dòng cơ sở đóng gói ( Packetized Elementary Stream - PES ). Mỗi gói PES gồm một tiêu đề và dữ liệu của dòng cơ sở.
Start code
Stream ID
PTS
DTS
Data
Hình 2.1: Dòng cơ sở đóng gói
Hình 2.2: Cấu trúc gói PES
Dòng cơ sở video là dòng bit liên tục mang thông tin về hình ảnh. Trong việc lưu trữ và truyền dẫn thì sẽ thích hợp hơn nhiều nếu sử dụng những khối dữ liệu rời rạc, do vậy dòng cơ sở được đóng gói tạo thành dòng cơ sở đóng gói PES (packetized elementary stream). Tương tự như vậy, dữ liệu audio cũng cần được đóng gói. Cấu trúc của một gói được mô tả trong hình 2.2. Gói được bắt đầu bằng phần tiêu đề chứa một mã bắt đầu gói và một mã để phân biệt loại dữ liệu chứa trong gói. Ngoài ra có thể có thêm một số nhãn thời gian để đồng bộ với bộ giải mã hình ảnh trong thời gian thực và đồng bộ với âm thanh.
27 MHz
: 300
90 kHz
33-bit count
Encoder clock
Time stamp
Hình 2.3 chỉ ra rằng nhãn thời gian thực chất là lấy mẫu trạng thái của một bộ đếm được điều khiển bởi đồng hồ 90kHz. Đồng hồ này có được nhờ chia tần một đồng hồ chủ 27MHz cho 300. Có hai loại nhãn thời gian là nhãn thời gian trình diễn PTS (presentation time stamp) và nhãn thời gian giải mã DTS (decode time stamp). Nhãn thời gian trình diễn được dùng để xác định khi nào thì hình ảnh sẽ được thể hiện trên màn ảnh, còn nhãn thời gian giải mã xác định khi nào hình ảnh được giải mã. Trong mã hóa hai chiều, những nhãn thời gian này có thể không khác nhau.
Hình 2.3: Nhãn thời gian
Gói dữ liệu âm thanh chỉ có nhãn thời gian trình diễn. Vì khi có sự đồng bộ âm thanh, thì dòng dữ liệu audio và video phải được gán nhãn từ cùng một bộ đếm.
Một minh họa được cho ở hình 2.4. Nhóm ảnh được bắt đầu bởi ảnh I, sau đó ảnh P được gửi trước ảnh B1 và B2. Ảnh P phải được giải mã trước khi B1 và B2 giải mã. Tại một thời điểm chỉ có một ảnh được giải mã, ảnh I được giải mã ở thời điểm N nhưng phải tới thời điểm N+1 thì nó mới được thể hiện trên màn ảnh. Khi ảnh I được thể hiện thì ảnh P1 được giải mã. P1 sẽ được lưu giữ trong RAM. Tại thời điểm N+2, ảnh B1 được giải mã và thể hiện ngay trên màn hình. Vì lí do này mà nó không cần nhãn thời gian giải mã. Tại thời điểm N+3, thì ảnh B2 được giải mã và thể hiện. Tại N+4, thì ảnh P1 mới được thể hiện. Ta thấy P1 có sự khác nhau nhiều nhất của hai nhãn thời gian. Cùng thời điểm này thì ảnh P2 được giải mã và lưu trữ để giải mã ảnh B3. Quá trình giải mã và trình diễn cứ thế tiếp tục.
Khi truyền
N+4
N+2
N+3
N+7
N+5
N+1
N+1
-
-
N+4
-
N
P1
B1
B2
P2
B3
I
B1
B2
P1
B3
I
PTS
DTS
Khi giải mã
Khi trình diễn
I
P1
B1
B2
P2
B3
N
N+1
N+2
N+3
N+4
N+5
N+1
N+2
N+3
N+4
N+5
Hình 2.4: Sử dụng nhãn thời gian PTS/DTS trong việc đồng bộ giải mã 2 chiều.
Trên thực tế, khoảng thời gian giữa các hình ảnh đến bộ giải mã thường là không đổi, do vậy sẽ là thừa nếu gói nào cũng gán thêm nhãn thời gian PTS/DTS. Nhãn thời gian có thể chiếm một khoảng 700ms trong dòng chương trình (program stream) và 100ms trong dòng truyền tải (transport stream). Vì lí do đó mà không phải mọi gói đều có nhãn PTS/DTS. Vì trong dòng bit, mỗi loại ảnh (I, B hoặc P) đều được gán một cờ để xác định, do đó bộ giải mã có thể suy ra nhãn thời gian cho mọi ảnh trong dòng bít.
Cú pháp dòng cơ sở đóng gói
PESSCRAMBLINGCONTROL(2 BIT)
PESPRIORITY(1 BIT)
DATAALIGNMENTINDICATOR(1 BIT)
COPYRIGHT(1 BIT)
ORIGINALOR COPY(1 BIT)
7 FLAGS(8 BIT)
PES HEADERDATA LENGTH(8 BIT)
“10”(2 BIT)
OPTIONALFIELDS
ESCR(48 BIT)
ES RATE(24 BIT)
PESEXTENSION
PTSDTS(40 BIT)
ADDITIONALCOPY INFO(8 BIT)
DSMTRICK MODE(8 BIT)
PES CRC(16 BIT)
5 FLAGS
OPTIONALFIELDS
PESPRIVATE DATA
PACK HEADERFIELD
PROGRAM PACKET
SEQ COUNTER(16 BIT)
P- STDBUFFER(16 BIT)
PESEXTENSIONFIELD
STREAM ID(1BYTE)
PESHEADER
PES PACKETLENGTH (2 BYTE)
STUFFING BYTES
PES START CODEPREFIX (3 BYTE)
PES PACKETDATA
Hình 2.5: Cú pháp gói PES
Mã tiền tố khởi đầu (PES start code prefix): đây là mã 24-bit có giá trị là 0x000001. Mã này xác định điểm bắt đầu của một gói PES.
Nhận dạng dòng (stream ID): mã 8-bit xác định loại của dữ liệu chứa trong dòng cơ sở.
Độ dài gói PES (PES packet length): trường 16-bit, chỉ ra số byte của gói cơ sở đóng gói đi sau trường này.
Các byte tiêu đề và đệm PES:
Các byte đệm (stuffing bytes): có giá trị cố định là 0xFF, được bộ mã hóa chèn thêm vào gói PES, đến bộ giải mã các byte này được bỏ qua.
Điều khiển đảo mã PES (PES scrambling control): trường 2-bit. Giá trị và ý nghĩa được cho theo bảng sau:
Giá trị
Ý nghĩa
00
Không đảo mã
01
Người dùng tự định nghĩa
10
Người dùng tự định nghĩa
11
Người dùng tự định nghĩa
Ưu tiên PES (PES priority): trường 1 bit, chỉ thị mức ưu tiên của tải tin ở trong gói PES này. Những gói có giá trị trường này là “1” sẽ được ưu tiên hơn những gói có giá trị “0”.
Chỉ thị sắp xếp dữ liệu (data alignment indicator): trường cờ 1 bit. Khi cờ này có giá trị “1” nghĩa là có sự sắp xếp dữ liệu, giá trị “0” nghĩa là không có sự sắp xếp.
Bản quyền tác giả (copy right): trường 1 bit. Giá trị “1” có nghĩa là dữ liệu trong gói được bảo vệ bởi quyền tác giả, giá trị “0” có nghĩa là không được bảo vệ.
Bản gốc hay là bản sao (original or copy): trường 1 bit. Khi trường này mang giá trị “1” nghĩa là nội dung của phần tải tin trong gói PES này là bản gốc. Còn khi có giá trị “0” thì có nghĩa là nội dung trong đó là bản sao.
Các giá trị cờ (flags):
Cờ nhãn thời gian (PTS DTS flags): trường 2-bit.
Giá trị “10”: nhãn thời gian trình diễn (PTS – presentation time stamp) có trong tiêu đề của gói PES.
Giá trị “11”: cả nhãn thời gian trình diễn PTS và nhãn thời gian giải mã (DTS – decode time stamp) đều có trong tiêu đề của gói PES.
Giá trị “00”: cả hai nhãn thời gian đều không có.
Giá trị “01”: bị cấm dùng.
Cờ ESCR (Elementary Stream Clock Reference Flag): trường 1 bit. Khi được đặt là “1” có nghĩa là giá trị của ESCR có trong tiêu đề của gói PES. Giá trị trường là “0” có nghĩa là không có ESCR trong tiêu đề của gói PES này.
Cờ RATE (ES rate flag): trường 1 bit, thể hiện sự có mặt hay không của trường ES rate trong tiêu đề của gói PES.
Cờ TM (DSM trick mode flag): cờ 1 bit, thể hiện sự có mặt của trường 8-bit mô tả hoạt động của Phương tiện lưu trữ số (DSM – Digital Storage Media).
Cờ ACI (additional copy information flag): cờ 1 bit, thể hiện sự có mặt của trường thông tin thêm về loại dữ liệu (bản gốc hay là bản sao).
Cờ CRC (PES CRC flag) : cờ 1 bit, thể hiện sự có mặt của trường kiểm tra dư thừa vòng CRC (Cyclic Redundancy Check) trong tiêu đề của gói PES.
Cờ EXT (PES extension flag): cờ 1 bit, thể hiện sự có mặt của trường mở rộng (extension field) trong tiêu đề của gói PES.
Chiều dài dữ liệu tiêu đề (PES header data length): trường 8-bit, chỉ định số byte của trường tùy chọn và các byte đệm trong tiêu đề của gói PES này.
Trường tùy chọn (optional field):
Nhãn thời gian trình diễn (PTS – Presentation Time Stamp): được sử dụng để xác định thời điểm một đơn vị dữ liệu được thể hiện ở máy thu.
Nhãn thời gian giải mã (DTS – Decode Time Stamp): được sử dụng để xác định thời điểm một đơn vị dữ liệu được đưa đến bộ giải mã.
Chuẩn đồng hồ dòng cơ sở (ESCR – Elementary Stream Clock Reference): trường 48-bit, trong đó 42-bit được dùng để biểu diễn các trường ESCR cơ sở (ESCR base) và ESCR mở rộng (ESCR extension).
Tốc độ dòng cơ sở (ES rate - Elementary Stream Rate): trường 24-bit, cho biết tốc độ nhận byte của gói PES khi đến bộ giải mã. Đơn vị đo của trường này là 50 bytes/giây. Giá trị trường này của các gói PES khác nhau có thể thay đổi.
Trường DSM Trick Mode: trường 8-bit, gồm có:
Điều khiển phương thức kĩ xảo (trick mode control): cho biết thông tin về kĩ xảo sử dụng trong dòng bit tương ứng như sau:
Giá trị
Mô tả
000
Chạy đi nhanh (Fast forward)
001
Chuyển động chậm (Slow motion)
010
Đông khung hình (Freeze frame)
011
Chạy ngược nhanh (Fast reverse)
100
Chạy ngược chậm (Slow reverse)
101 tới 111
Dự phòng
Nhận dạng mành (field id): trường 2-bit, chỉ thị những mành nào được thể hiện trên màn ảnh.
Giá trị
Mô tả
00
Chỉ thể hiện mành 1
01
Chỉ thể hiện mành 2
10
Thể hiện cả 2 mành
11
Dự phòng
Phục hồi lát trong ảnh (intra slice refresh): trường 1-bit. Khi trường này mang giá trị “1” có nghĩa là có thể có những macroblocks bị thiếu trong dữ liệu video của gói PES này. Lúc này bộ giải mã sẽ thay những macroblock bị thiếu bởi macroblock tương ứng của hình được giải mã trước đó. Giá trị “0” có nghĩa là không bị thiếu.
Cắt tần số (frequency truncation): trường 2-bit, chỉ thị sự hạn chế các hệ số tần số được sử dụng trong mã hóa dữ liệu hình ảnh.
Giá trị
Mô tả
00
Chỉ có hệ số 1 chiều là khác 0
01
Chỉ 3 hệ số đầu tiên khác 0
10
Chỉ 6 hệ số đầu tiên khác 0
11
Tất cả các hệ số đều có thể khác 0
Trường thông tin cộng thêm (additional copy info): trường 7-bit chứa những dữ liệu cá nhân liên quan đến thông tin về bản quyền tác giả.
PES CRC: trường 16-bit, mang thông tin về mã sửa sai (mã kiểm tra dư thừa vòng – Cyclic Redundancy Check) của dòng PES.
Trường mở rộng (PES extension):
Các trường cờ (5 flags):
Cờ dữ liệu cá nhân (PES private data flag): thể hiện sự có mặt hay không của dữ liệu cá nhân.
Cờ trường tiêu đề cụm (pack header field flag): thể hiện sự có mặt hay không của tiêu đề cụm (pack header).
Cờ đếm thứ tự gói chương trình (program packet sequence counter): Khi trường này mang giá trị “1” thì trong gói PES này sẽ có các trường sau: program packet sequence counter, MPEG1 MPEG2 identifier, và trường original stuff length. Nếu giá trị là “0” thì sẽ không có các trường nêu trên.
Cờ đệm hệ thống giải mã dòng chương trình (P-STD buffer flag - Program stream system target decoder buffer flag): cờ 1 bit, khi mang giá trị “1” nghĩa là các trường sau có trong gói PES: P-STD buffer size và P-STD buffer scale.
Cờ mở rộng PES (PES extension flag): cờ 1-bit, khi đặt giá trị “1” nghĩa là trong gói PES có trường PES extension field length và các trường có liên quan.
Trường tùy chọn (optional field)
Dữ liệu cá nhân (PES private data): trường 16-bit mang dữ liệu cá nhân.
Trường tiêu đề cụm (pack header field).
Bộ đếm thứ tự gói chương trình (program packet sequence counter): trường 7-bit có chức năng đếm các gói PES. Giá trị trường này sẽ trở về “0” sau khi đạt chỉ số lớn nhất.
Bộ đệm hệ thống giải mã dòng chương trình (P-STD buffer - Program stream system target decoder buffer ).
Trường mở rộng PES (PES extension field).
DỮ LIỆU
VIDEO
DỮ LIỆU
VIDEOPES
AUDIO
ES
ES
AUDIOPES
( TRANSPORTSTREAM )
DÒNG TRUYỀNTẢI
( PROGRAM STREAM )
DÒNG CHƯƠNGTRÌNH
AUDIO PES
VIDEO PES
VIDEO PES
AUDIO PES
MÃ HOÁVIDEO
ĐÓNGGÓI
GHÉPKÊNHDÒNGTRUYỀNTẢI
GHÉP KÊNHCHƯƠNGTRÌNH
MÃ HOÁAUDIO
ĐÓNGGÓI
Các gói PES này được ghép kênh với nhau tạo ra dòng truyền tải (Transport Stream) hoặc dòng chương trình (Program Stream). Dòng chương trình (Program Stream) được thiết kế để truyền đi trong môi trường không có tạp nhiễu và sai lầm, ví dụ như trong các ứng dụng CD-ROM. Còn với môi trường truyền dẫn, phát sóng thực tế luôn có lỗi, trong trường hợp này ta cần phải sử dụng dòng truyền tải (Transport Stream).
Hình 2.6: Sơ đồ mạch mã hóa MPEG
Chương III
GHÉP KÊNH
Ghép kênh dòng chương trình (Program Stream MUX)
Program Stream MUX
Video PES
Program Stream (PS)
Audio PES
Một dòng chương trình là kết quả ghép kênh một vài dòng cơ sở đóng gói sử dụng cùng một hệ thống xung nhịp thời gian (Time Clock).Dòng chương trình có thể là một dòng video có kèm audio hoặc một chương trình nhiều kênh audio.
Ghép kênh dòng chương trình
Dòng video cơ sở được chia thành các đơn vị truy cập (AU – Access Units). Mỗi AU chứa dữ liệu đã được nén của một ảnh. Các ảnh này phân biệt bởi ảnh I, P hoặc B. Mỗi video AU là một gói chương trình (Program Stream Packet), các gói này thay đổi về kích thước. Ví dụ gói ảnh I lớn hơn nhiều gói ảnh B. Tuy nhiên đối với các đơn vị truy cập ảnh số (DAA – Digital Audio Access) thường có cùng kích thước và vài DAA tạo thành một gói dòng chương trình.
Gói PES
Audio
video
Audio
PES Header
Dòng chương trình
Tóm lại,dòng chương trình được thiết kế để truyền trong môi trường không có tạp nhiễu và sai nhầm (Noise and Error Free),ví dụ như trong các ứng dụng CD-ROM vì hai lý do sau:
Dòng chương trình bao gồm các gói tương đối dài nối tiếp nhau và độ dài này lại luôn thay đổi. Mỗi gói bắt đầu bằng một tiêu đề (header). Một lỗi xảy ra trong phần tiêu đề có thể làm mất thông tin của toàn gói. Vì các gói của chương trình có thể chứa vài chục kbytes số liệu nên sự mất mát thông tin của một gói có thể làm mất hoặc gián đoạn cả một khung ảnh.
Độ dài gói không cố định khiến cho bộ giải mã không dự đoán được khi nào gói chấm dứt và khi nào gói mới bắt đầu. Thay vào đó, bộ giải mã phải đọc và dịch lại thông tin về độ dài gói chứa trong mỗi tiêu đề, nếu thông tin về độ dài gói này bị lỗi, bộ giải mã sẽ mất đồng bộ và như vậy sẽ làm mất thông tin ít nhất là một gói.
Vì môi trường truyền dẫn phát sóng mà chúng ta quan tâm luôn có tạp nhiễu và sai nhầm, do đó không thể dùng dòng chương trình được mà phải dùng dòng truyền tải.
Audio PES
PID (n-1)()
Elementary stream map (Program_map_table)
Transport Stream Mux
Transport Stream (TS)
Video PES
Audio PES
Video PES
Data
PID 1
PID 2
PID (n-3)()
PID (n-2)()
PID (n)()
Ghép kênh dòng truyền tải (Transport Stream MUX)
Ghép kênh dòng truyền tải
Giới thiệu chung về dòng truyền tải:
Một chương trình TV thường gồm có thông tin về hình ảnh, âm thanh và các dữ liệu khác liên quan. Mặc dù một dòng truyền tải chỉ mang một chương trình đơn cũng được cho phép nhưng mục đích chính khi thiết kế dòng truyền tải là để ghép nhiều chương trình truyền hình vào một dòng truyền tải duy nhất.
PES Header
Audio
Video
Video
Audio
Video
TS Header
Gói TS
Audio
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 (mỗi gói TS được bắt đầu bằng TS header và thường có chiều dài 188 bytes) 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 (cũng được đóng gói thành các gói truyền tải), ta sẽ có dòng truyền tải TS.
Hình 2: Dòng Truyền Tải
Trong dòng truyền tải , các gói PES từ các dòng gói 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 phần 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.
Header của TS
Adaptation Fled
Header của PES
Payload PES
Payload TS
Payload TS
Payload TS
Hình 3: Chia các gói PES thành các gói TS
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 hai điều kiện trên, người ta độn thêm phần Adaptation Field với độ dài thích hợp. có thể giảm thiểu độ dài Adaptation 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 để điểm ảnh 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. ( hình 3)
Tất cả các dòng gói sơ cấp PES ghép kênh chung với nhau tạo nên một 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 nêu trên.
Các gói TS sẽ được sắp xếp tuần 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 phải được truyền theo thứ tự thời gian.
Cấu trúc gói truyền tải
Header
Payload
Header
Payload
Header
Payload
…
…
…
TRANSPORTERRORINDICATOR(1 BIT)
TRANSPORTPRIORITY(1 BIT)
CONTINUITYCOUNTER(4 BIT)
STARTINDICATOR(1BIT)
ADAPTATIONFIELDCONTROL(2 BIT)
PID(13BIT)
SYNCBYTE(8 BIT)
SCRAMBLINGCONTROL(2 BIT)
ADAPTATIONFIELD
PAYLOAD
DISCONTINUITYINDICATOR(1 BIT)
RANDOM ACCESSINDICATOR(1 BIT)
ELEM STREAMPRIORITYINDICATOR(1 BIT)
5 FLAGS(5 BIT)
ADAPTATIONFIELD LENGHTH(1 BYTE)
OPTIONALFIELDS
STUFFINGBYTES
PCR(48 BIT)
OPCR(48 BIT)
SPLICECOUNTDOWN(8 BIT)
ADAPTATIONFIELDEXTENSION(40 BIT)
TRANSPORTPRIVATEDATA(40 BIT)
Hình 4 : 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 bytes, chia thành dữ liệu tiêu đề (header) và phần tải tin (payload). (payload). Để cho việc truyền tải có hiệu quả thì kích thước phần tiêu đề thường là nhỏ, nhưng nhằm thực hiện một số mục đích đặc biệt thì phần tiêu đề có thể được mở rộng. Khi ấy phần tải tin sẽ được thu hẹp lại để đảm bảo kích thước của gói truyền tải vẫn là không đổi.
Dữ liệu tiêu đề có độ dài tối thiểu bằng 4 bytes và chứa những thông tin sau:
Sync Byte (8 bit): Byte đồng bộ mang giá trị không đổi bằng 0x47 dùng để đồng bộ các gói TS, byte này sẽ được nhận biết bởi một bộ giải mã.
Transport 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ệ lỗi bit (BER) vượt quá giá trị cho phép. Giá trị 1 chỉ thị rằng đang có lỗi không thể sử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.
Chỉ thị bắt đầu đơn vị dữ liệu (Payload Unit Start Indicator): trường cờ 1 bit mang thông tin về gói PES hoặc dữ liệu PSI trong gói truyền tải.
Khi mà phần tải tin của gói truyền tải mang dữ liệu của các gói PES thì bít này có ý nghĩa như sau: bit có giá trị ‘1’ nếu phần payload của gói truyền tải này chứa byte đầu tiên của gói PES, có giá trị ‘0’ nếu không phải như vậy.
Khi mà phần tải tin của gói truyền tải mang dữ liệu PSI thì bit này được đặt là ‘1’ nếu gói này có chứa byte đầu tiên của PSI, nếu không phải vậy thì bit này sẽ có giá trị ‘0’.
Khi đây là gói trống (null packet) thì bit này được đặt là ‘0’
Transport 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 ở tất cả phía thu.
Packet Identification code 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ề một 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ể ghép tối điểm ảnh đến 8000 dòng gói sơ cấp vào một dòng truyền tải. Sau đây là bảng các giá trị PID:
Giá trị
Mô tả
0x0000
Bảng liên kết chương trình(Program Association Table)
0x0001
Bảng truy nhập có điều kiện (Conditional Access Table)
0x0002
Transport Stream Description Table
0x0003 - 0x000F
Dự phòng
0x00010
…
0x1FFE
Có thể được gán cho network_PID, Program_map_PID, elementary_PID hoặc các mục đích khác.
0x1FFF
Gói rỗng (Null packet)
Điều khiển đảo mã truyền tải (Transport Scrambling Control): trường 2-bit chỉ ra kiểu xáo trộn dữ liệu trong tải tin của gói truyền tải. Phần tiêu đề (header) và phần thích nghi (adaptation field) trên thực tế không được xáo trộn. Trong trường hợp gói rỗng giá trị của trường này được đặt là ‘00’. Sau đây là bảng giá trị của trường này:
Giá trị
Mô tả
00
Không xáo trộn
01
Dự phòng
10
Bị xáo trộn bởi khóa ‘chẵn’
11
Bị xáo trộn bởi khóa ‘lẻ’
Điều khiển trường thích nghi (Adaptation Field Control): cho biết thông tin về trường thích nghi (Adaptation Field):
Giá trị
Mô tả
00
Dự phòng
01
Không có trường thích nghi, chỉ có payload
10
Chỉ có trường thích nghi, không có payload
11
Có trường thích nghi, sau đó là payload
Bộ đếm liên tục (Continuity Counter): đây là bộ đếm 4-bit, đếm các gói có cùng PID. Khi đạt giá trị lớn nhất (0xF) thì sẽ quay về 0. Bộ đếm này sẽ không thực hiện đếm nếu giá trị của Adaptation Field Control là ‘00’ hoặc ‘10’.
Trong dòng truyền tải, một gói có thể được gửi thành hai lần. Trong đó gói thứ hai là bản sao của gói thứ nhất (duplicate packet). Trong trường hợp này thì giá trị của bộ đếm liên tục sẽ không tăng. Hai gói này sẽ có các byte tương ứng giống nhau y hệt trừ giá trị của trường chuẩn đồng hồ chương trình (program clock reference) nếu có thì sẽ được thay bằng giá trị thích hợp.
Giá trị này được tăng lên 1 đơn vị so với giá trị trong gói truyền tải trước đó mà có cùng giá trị PID, hoặc không tăng trong trường hợp trường Adaptation Field Control có giá trị là ‘00’ hoặc ‘10’ như đã mô tả ở trên. Bộ đếm này có thể bị gián đoạn nếu giá trị của trường chỉ thị bất liên tục (discontinuity indicator) được đặt là “1”. Trong trường hợp gói rỗng, giá trị của Continuity Counter chưa được định nghĩa.
Byte dữ liệu (data byte): Đây là những byte mang dữ liệu của các gói PES, thông tin của PSI, của các byte dữ liệu riêng (private data) hoặc các byte đệm. Trong trường hợp gói rỗng (gói có PID bằng 0x1FFF) thì byte dữ liệu có thể mang bất kì giá trị nào. Số byte dữ liệu N bằng 184 trừ đi số byte của trường thích nghi được mô tả ngay sau đây.
Trường thích nghi (Adaptation Field): gồm có:
Độ dài trường thích nghi (Adaptation Field Length): trường 8-bit chỉ thị có bao nhiêu byte trong trường thích nghi đi ngay sau trường này. Giá trị độ dài trường thích nghi bằng ‘0’ có nghĩa là chèn thêm 1 byte đệm vào gói truyền tải. Khi giá trị của trường điều khiển trường thích nghi (Adaptation Field Control) là ‘11’, có nghĩa là trong gói truyền tải có cả trường thích nghi và có cả phần tải tin, thì giá trị của trường này sẽ trong khoảng 0-182. Khi giá trị của Adaptation Field Control là ‘10’, nghĩa là trong gói truyền tải chỉ có trường thích nghi không có phần tải tin,giá trị của trường này sẽ là 183. Khi mà dòng truyền tải mang gói PES thì việc chèn byte đệm là cần thiết khi mà kích thước của phần gói PES cần gửi đi không đủ để làm đầy một gói truyền tải vốn được định sẵn là có kích thước cố định. Trường hợp này sẽ được giải quyết bằng cách đặt giá trị của trường độ dài trường thích nghi nhiều hơn phần dữ liệu mà thực sự nó có sao cho phần còn lại vừa đủ để chứa dữ liệu của gói PES. Phần dư ra trong trường thích nghi sẽ được đặt vào đó bằng các byte đệm (stuffing byte).Phương pháp này cho phép dòng truyền tải có thể vận chuyển các gói PES có độ dài thay đổi.
Chỉ thị không liên tục (Discontinuity Indicator): trường 1 bit chỉ thị sự không liên tục của gói truyền tải hiện tại. Có giá trị ‘1’ nếu mà không liên tục. Chỉ thị này cho biết hoặc là đồng hồ chuẩn (system time-base) hoặc bộ đếm liên tục (Continuity Counter) không liên tục.
Chỉ thị truy cập ngẫu nhiên (Random Access Indicator): trường 1-bit chỉ thị rằng gói truyền tải hiện tại, hoặc có thể các gói sau nữa mà có cùng PID, có chứa dữ liệu với chức năng như một điểm truy cập ngẫu nhiên. Chính xác là khi trường này được đặt là ‘1’ thì gói PES tiếp theo được mang trong gói truyền tải có cùng chỉ số PID hiện tại sẽ chứa byte đầu tiên của tiêu đề chuỗi video (trong trường hợp dòng cơ sở là dòng cơ sở video) hoặc sẽ chứa byte đầu tiên của một khung audio (trong trường hợp dòng cơ sở là audio). Đồng thời trong gói PES đó cũng sẽ mang nhãn thời gian trình diễn PTS của dữ liệu tương ứng.
Chỉ thị ưu tiên dòng cơ sở (Elementary Stream Priority Indicator): Chỉ thị mức ưu tiên của dòng dữ liệu. Giá trị ‘1’ chỉ thị gói có mức ưu tiên cao hơn gói có giá trị ‘0’. Trong trường hợp gói truyền tải mang dữ liệu hình ảnh thì trường này chỉ được đặt là ‘1’ nếu gói truyền tải này mang thông tin của ảnh I (intra-coded picture).
Các trường cờ bao gồm:
PCR-flag: cờ 1-bit. Giá trị là ‘1’ cho biết có sự có mặt của chuẩn đồng hồ chương trình (Program Clock Reference).
OPCR-flag: cờ 1-bit. Giá trị là ‘1’ cho biết sự có mặt của đồng hồ chương trình gốc (Original Program Clock Reference).
Splicing Point Flag: Cờ hiệu điểm ghép nối độ dài 1bit, chỉ ra sự có mặt của trường đếm ngược điểm ghép nối (Splice Countdown).
Transport Private Data Flag: cờ 1 bit. Có giá trị ‘1’ nếu trong trường thích nghi có chứa một hoặc nhiều hơn một byte dữ liệu cá nhân (private data byte), có giá trị ‘0’ nếu không chứa byte nào.
Adaptation Field Extension Flag: cờ 1bit chỉ sự có mặt của phần mở rộng của trường thích nghi. Có giá trị ‘1’ nếu có phần mở rộng này, có giá trị ‘0’ nếu không có.
Trường tùy chọn (Optional Field): Bao gồm:
PCR (Program Clock Reference): có 48-bit. Đây là chuẩn đồng hồ chương trình được dùng để đồng bộ quá trình giải mã hệ thống. Trường này có thể được sửa đổi trong quá trình truyền (PCR được truyển tổi thiểu 1 lần/100 ms).
OPRC (Original Program Clock Reference): có 48-bit. Đây là chuẩn đồng hồ chương trình gốc, không được sửa đổi trong quá trình truyền, chỉ có thể sử dụng để ghi và phát lại chương trình đơn.
Trường OPCR sẽ được bỏ qua tại bộ giải mã. Và trường này thì không thể bị thay đổi bởi bất kì bộ ghép kênh hoặc bộ giải mã nào.
Trường đếm lùi điểm ghép nối (Splice Countdown): chiếm 8-bit. Trường này chỉ thị số gói truyền tải (TS Packet) còn lại cho đến khi gặp điểm nối (Splice Point).
Trường dữ liệu riêng truyền tải (Transport Private Data) : chiếm 5 byte.
Byte dữ liệu cá nhân (Private data byte): những byte này không được định trước bởi ITU-T | ISO/IEC mà thay đổi tùy theo người dùng.
Chiều dài dữ liệu cá nhân (transport private data length): trường 8 bit, chỉ ra số byte dữ liệu cá nhân đi ngay sau trường này.
Mở rộng trường thích nghi (Adaptation Field Extention): chiếm 8 bit
Chiều dài mở rộng trường thích nghi (adaptation field extension length): trường 8-bit. Chỉ ra số byte của trường thích nghi mở rộng đi sau trường này (bao gồm cả những byte dự phòng nếu có).
ltw_flag (legaltime window_flag): trường cờ 1 bit. Khi được đặt giá trị ‘1’ thì có nghĩa là có mặt của trường ltw_offset
piecewise_rate_flag: cờ 1 bit, thể hiện sự có mặt hay không của trường piecewise_rate.
seamless splice flag: cờ 1 bit. Khi cờ này được đặt giá trị ‘1’ thì sẽ có các trường ‘splice_type’ và ‘DTS_next_AU’. Nếu giá trị của cờ này là ‘0’ thì cả hai trường trên đều không có. Trường này không thể được đặt là ‘1’ trong những gói truyền tải mà cờ ‘splicing point flag’ không được đặt là ‘1’.
ltw_valid_flag (legal time window_valid_flag): trường 1 bit. Khi được đặt là ‘1’ có nghĩa là giá trị của ‘ltw_offset’ là hợp lệ. Còn nếu là ‘0’ có nghĩa là giá trị của trường ‘ltw_offset’ không xác định.
ltw_offset (legal time window offset): cửa sổ thời gian hợp lệ, trường 15-bit. Giá trị của trường này chỉ được xác định khi giá trị của cờ ‘ltw_valid’ được đặt là ‘1’. Đơn vị của trường này là 300/fs giây.
piecewise rate: trường 22-bit. Giá trị của trường này chỉ có ý nghĩa khi mà cả 2 cờ ‘ltw_flag’ và ‘ltw_valid_flag’ được đặt lên ‘1’. Khi ấy, giá trị này là một số ngyên dương chỉ ra một tỉ lệ bit giả thiết là R được sử dụng để định nghĩa cửa sổ thời gian hợp lệ của những gói truyền tải,có cùng chỉ số PID, đi sau gói này nhưng lại không có trường ‘legal time window offset’.
Loại điểm ghép nối (splice type) : trường 4-bit. Trong tất cả các gói truyền tải, có cùng PID, mà giá trị của trường ‘splice countdown’ giảm dần từ giá trị lớn nhất về 0, thì trường loại điểm ghép nối sẽ có cùng giá trị.
Các byte đệm (Stuffing Bytes): Mỗi byte có giá trị cố định là 0xFF, được chèn thêm vào bởi bộ mã hóa và các byte này sẽ được bỏ qua tại bộ giải mã.
Giải mã dòng truyền tải
Program 0
18
Program 1
35
Program 2
50
.
.
Stream 1
V
51
Stream 2
A
53
Stream 3
A
54
Stream 4
A
56
Stream 5
A
60
Stream 6
D
65
Stream 1
V
17
Stream 2
A
36
Stream 3
A
38
Stream 4
D
41
PAT (PID = 0)
NIT
(PID = 18)
PMT 1
PID = 35
PMT 2
PID = 50
PAT - Program Association Table
CAT - Conditional Access Table
NIT - Network Information Table
Null packets – PID = 8191
Hình 5:Cấu trúc bảng xác định chương trình PSI
Trong dòng truyền tải có rất nhiều dòng cơ sở của nhiều chương trình khác nhau. Mỗi dòng cơ sở đều có một giá trị PID khác nhau. Nhưng bộ giải mã phải được cho biết dòng cơ sở video nào kết hợp với dòng cơ sở audio nào thì mới có thể giải mã được. Nhiệm vụ này là của PSI (Program Specific Information). Hình 5 chỉ ra cấu trúc của PSI.
Khi bộ giải mã được khởi động, nó hoàn toàn không biết gì về dòng truyền tải sắp phải giải mã. Việc đầu tiên là nó nhận các gói có PID = 0. Những gói này mang thông tin về bảng liên kết chương trình PAT (Program Association Table). PAT được truyền đi ở những thời khoảng xác định, nó mang thông tin về tất cả các chương trình có trong dòng truyền tải. Các chương trình thì được mô tả chi tiết hơn bởi bảng bản đồ chương trình PMT (Program Map Table). Những giá trị PID của PMT được mang trong bảng liên kết chương trình PAT.
Hình trên cũng chỉ ra rằng PMT cho phép xác định đầy đủ một chương trình. Trong đó chứa đựng PID của các dòng cơ sở video, audio và dữ liệu tương ứng của một chương trình. Do đó, khi người dùng chọn một kênh chương trình nào đó thì đầu tiên máy thu sẽ tìm ra PMT của chương trình đó. Từ đó tách ra các gói của dòng cơ sở tương ứng để đưa đi giải mã.
Chương trình số 0 mang thông tin về mạng NIT (Network Information Table). Nó mang thông tin về các dòng truyền tải khác đang hiện hữu. Ví dụ như trong quảng bá vệ tinh, bảng thông tin mạng NIT sẽ mang thông tin về vị trí quĩ đạo, sự phân cực, tần số sóng mang, và phương thức điều chế. Sử dụng bảng NIT, máy thu có thể chuyển đổi tự động giữa các dòng truyền tải.
Những gói có PID bằng 1 được dùng để mang thông tin về bảng truy cập có điều kiện CAT (Conditional Access Table). Đây là cơ chế điều khiển truy cập hỗ trợ cho những dịch vụ mà cần trả phí thì mới có thể giải mã được chương trình.
Thông tin đặc tả chương trình (PSI)
Trong một dòng truyền tải, mỗi gói TS được liên kết với một giá trị PID chỉ rõ phần payload của gói TS này thuộc về dòng gói sơ cấp nào.
Có thể có nhiều dòng gói sơ cấp khác nhau được tổ hợp lại thành nhiều chương trình khác nhau.
Để bộ giải mã biết được dòng gói sơ cấp nào thuộc về chương trình nào, cần thêm dòng truyền tải các thông tin đặc tả chương trình (PSI – Program Specific Information) nhằm xác định rõ mối liên hệ giữa các chương trình và các dòng gói sơ cấp thành phần.
Thông tin đặc tả chương trình PSI bao gồm 4 loại bảng sau:
Bảng ánh xạ chương trình (PMT – Programme Map Table).
Bảng tổ chức chương trình (PAT – Programme Association Table).
Bảng thông tin mạng (NIT – Network Information Table).
Bảng truy cập có điều kiện (CAT – Conditional Access Table).
Để thuận tiện cũng như để giới hạn độ dài, một số PSI có thể được truyền đi theo từng phần (Section). Nếu gói TS có chứa phần đầu của bất kỳ phần nào thì trường payload được mở đầu bằng trường con trỏ (Pointer Field) chỉ rõ vị trí của phần mới đó.
Bảng ánh xạ chương trình (PMT)
Mỗi chương trình trên dòng truyền tải đều có một PMT tương ứng.
Bảng này mô tả chi tiết về chương trình và các dòng gói sơ cấp tạo nên chương trình đó. Có thể thêm các bộ mô tả (Descriptor) và PMT.
Bộ mô tả mang các thông tin chỉ tiết về chương trình cũng như về các dòng gói sơ cấp thành phần như: các thông số mã hóa video, các thông số mã hóa audio, nhận dạng ngôn ngữ, thông tin về dịch chuyển hình ảnh sang trái, phải, trên, dưới và quét, chi tiết về truy cập có điều kiện, thông tin về bản quyền...
Bảng tổ chức chương trình (PAT)
Danh sách tất cả các chương trình chứa trong dòng truyền tải sẽ được ghi trên PAT.
Dễ dạng tìm thấy bảng này vì nó giá trị PID=0. Mỗi chương trình được liệt kê cùng với giá trị PID của gói TS có chứa PMT của chương trình đó.
Một PMT cũng có với giá trị PID của gói TS có chứa PMT của chương trình đó. Một MPT cũng có thể chứa chi tiết của nhiều chương trình, thay vì chỉ một chương trình, khi các chi tiết của các chương trình này đủ ngắn.
Bảng thông tin mạng (NIT)
Trong PAT, chương trình số 0 được dành riêng để chỉ đến NIT.
Bảng NIT là tùy chọn và nội dung của bảng cũng mang tính riêng tư (nghĩa là được định nghĩa bởi đài truyền hình hay người sử dụng, chứ không phải bởi MPEG-2).
Nếu bảng NIT hiện diện sẽ cung cấp các thông tin về mạng vật lý dùng để truyền dòng truyền tải như: tần số kênh truyền, chi tiết về bộ phát đáp vệ tinh, đặc tính điều chế v.v…
Bảng truy cập có điều kiện (CAT)
Nếu dòng sơ cấp đóng gói nào trong dòng truyền tải được xáo trộn, thì bảng CAT phải hiện diện để cung cấp thông tin chi tiết về hệ thống xáo trộn được sử dụng và cung câp giá trị của PID của gói TS chứa thông tin về quản lý việc truy cập có điều kiện.
Định dạng của loại thông tin này không được quy định bởi MPEG-2, mà phụ thuộc vào hệ thống xáo trộn được sử dụng.
Hệ thống ghép các dòng truyền tải
Elementary stream map (Program_map_table)
Multiplexer
TS1
TS2
TS(n)
TS(n-1)
System level multiplex
PID(0)
Hình 6: Ghép kênh dòng bit truyền tải cấp hệ thống
Để tăng tính hiệu quả, các dòng truyền tải có thể ghép lại với nhau tạo thành dòng truyền tải ghép kênh cấp hệ thống (System Level Multiplex).
Hệ thống ghép kênh được định nghĩa là một quá trình ghép các dòng truyền tải khác nhau.
Trong quá trình cộng các dòng bit truyền tải (với các PIDs tương ứng) sẽ tương ứng với việc cộng các chương trình riêng biệt và dòng bit điều khiển cấp hệ thống – được định nghĩa với PID=0.
Dòng bit này mang các thông tin trong một bảng tổ chức chương trình, sắp xếp các chỉ số nhận diện chương trình, tương ứng trên mỗi dòng truyền tải của chúng; quá trình nhận diện chương trình dựa vào các chữ số trong bảng như đã miêu tả, được gọi là một “kênh”
Bảng tổ chức chương trình cho phép nhận biết chỉ số PID của dòng bit, chứa bảng ánh xạ chương trình của các chương trình đặc trưng. Theo đó, quá trình nhận diện một chương trình và nội dung của nó mang thông tin trong hai phạm vi sau:
Thứ nhất, bảng tổ chức chương trình trong dòng bit PID=0 dùng để nhận diện chỉ số PID của dòng bit mang nội dung bảng ánh xạ chương trình cho chương trình.
Thứ hai, các PIDs của dòng bit cơ sở, mà chúng tạo ra chương trình, thu được từ bảng ánh xạ chương trình thích hợp.
Sau khi các bước trên hoành thành, các bộ lọc tại bộ tách kênh có thể thiết lập các bit dòng truyền tải tại bên thu phù hợp cho chương trình cần quan tâm.
Trong thời gian tiến hành ghép kênh cấp hệ thống, khả năng nhận diện các chương trình khác nhau của các PIDs phải chính xác như tại đầu vào.
Điều này nảy sinh một vấn đề là PIDs cho các dòng bit chương trình khác nhau phải là duy nhất. Để giải quyết vấn đề này, đối với từng phạm vi ứng dụng của bộ ghép, các PIDs được sửa đổi ngay trước khi đưa vào bộ ghép.
Ưu điểm của dòng truyền tải MPEG-2
Cấp phát dung lượng động:
Các gói TS với độ dài cố định tạo khả năng linh hoạt trong việc cấp phát dung lượng kênh giữa các số liệu video, audio cũng như các số liệu phụ.Mỗi gói TS được nhận dạng với số PID thuộc TS header. Dung lượng toàn bộ của kênh cũng có thể được cấp phát lại khi phân phối số liệu. Khả năng này có thể được ứng dụng để phân phối các khóa mã trong từng giây đến người xem trong các chương trình truyền hình có thu phí.
Khả năng co giãn:
Một kênh có dải thông rộng hơn có thể được khai thác tối đa bằng cách sử dụng nhiều dòng sơ cấp ES tại đầu vào bộ ghép kênh. Tính chất này rất có giá trị khi phân phối trên mạng cũng như cung cấp khả năng liên vận hành. Hai lĩnh vực liên vận hành cần được quan tâm là:
+ Dòng truyền tải MPEG-2 có thể được truyền trên tất cả các hệ thống thông tin.
+ Hệ thống truyền tải MPEG-2 cũng có thể truyền các dòng bít đã tạo ra bởi các hệ thống thông tin khác.
Khả năng mở rộng:
Cấu trúc dòng truyền tải cho phép mở rộng được khả năng phục vụ các dịch vụ trong tương lai. Các dòng bit sơ cấp mới có thể được ghép thêm vào dòng truyền tải mà không cần sửa đổi cấu tạo phần cứng phiá phát, chỉ cần gắn thêm các PID mới, khả năng tương hợp ngược vẫn đảm bảo.
Khả năng chống lỗi và đồng bộ:
Các gói TS có độ dài không đổi tạo nền tảng cho việc kiểm soát lỗi gây ra bởi đường truyền và việc khôi phục lại đồng bộ giữa các dòng bít sơ cấp video, audio đang ghép kênh chung (dựa vào thông tin trong phần header).
Thiết bị thu rẻ tiền:
Các gói TS có độ dài không đổi cũng sẽ cho phép chế tạo bộ giải mã hệ thống đơn giản, rẻ tiền.
Tính linh hoạt của dòng truyền tải :
Dòng truyền tải MPEG rất linh hoạt thể hiện ở hai khía cạnh sau:
Các chương trình được định nghĩa như là bất kì sự kết hợp nào của dòng bít sơ cấp. Một dòng bít sơ cấp có thể xuất hiện ở trong một hoặc nhiều chương trình khác nhau. Ví dụ 2 dòng bít video khác nhau có thể kết hợp với 1 dòng bit audio để tạo ra 2 chương trình khác nhau. Các chương trình cũng có thể sửa đổi phù hợp với một số yêu cầu đặc biệt. Ví dụ cùng một chương trình truyền hình nhưng phần âm thanh có thể là nhiều ngôn ngữ khác nhau.
Nhiều chương trình khác nhau có thể được ghép kênh trong cùng một hệ thống truyền tải. Tại phía thu, từng chương trình riêng rẽ có thể được tách ra một cách dễ dàng.
Hình 7: Ghép kênh 2 chương trình
Với những đặc điểm và tính ưu việt của dòng truyền tải MPEG đã cho phép có nhiều ứng dụng của chuẩn MPEG trong truyền hình số. Chính vì vậy các thiết bị truyền hình theo chuẩn MPEG đang ngày càng trở nên phổ biến, đáp ứng được nhu cầu hiện tại cũng như sự phát triển trong tương lai của truyền hình số.
Các file đính kèm theo tài liệu này:
- Đồ án truyền dẫn tín hiệu số.doc