Nén Audio

Một phần của tài liệu Hệ thống truyền hình số mặt đất (DVB-T) và một số giải pháp nâng cao chất lượng hệ thống (Trang 34)

Tiêu chuẩn nén audio MPEG-1 (ISO/IEC 11172-3) thường được biết dưới tên MUSICAM gồm 3 lớp mã hóa I, II, III tương ứng với hiệu quả nén và độ phức tạp tăng dần, được ứng đụng trong nhiều lĩnh vực khác nhau, đặc biệt là trong Phát thanh- Truyền hình. Tiêu chuẩn nén audio MPEG-2 (ISO/IEC 13818-3) là bước phát triển mở rộng dựa trên cơ sở MPEG-1. Phương thức nén Dolby AC3 ứng đụng trong HDTV số cũng là biến thể từ Audio MPEG-2. Đối với lĩnh vực truyền hình tiêu chuẩn MPEG-2 có ưu điểm nổi bật là đảm bảo khả năng đồng bộ giữa audio và video sau khi phân kênh và giải nén. Đặc tính kỹ thuật của audio MPEG-1 và MPEG-2 được tóm tắt trong bảng 2.3.

Bảng 2.3 : Đặc tính kỹ thuật của audio MPEG-ỉ và MPEG-2

Đặc tính MPEG-1 MPEG-2

Độ phân giải 16 bit 16 bit - 24 bit

Tần số lấy mẫu 48 44,1 32 (Khz) 48 44,1 32 24 22,05 16 Khz Tốc độ bit Tự do và có thể lên đến

448 Kbps

Tự do và có thể lên đến 256 Kbps Số lượng kênh Lên đến 2 kênh với các

mode: mono, stereo, dual

Lên đến 6 kênh: Left, Right, Center, L Surround, R Surround và LEF.

Co dãn Kênh Left, Light có thể được giải

mã độc lập.

Tương hợp Thuận và ngược

Nguyên lý nén audio MPEG chủ yếu dựa vào khả năng bị hạn chế

(masking) của hệ thống thính giác được trình bày trên hình 2.8

Hình 2.8. Bộ mã hoá cảm thụ audio cơ bản

- Mô hình cảm thụ thính giác (Psychoacoustic Model): Khối này mô phỏng hiệu ứng che lấp, làm cơ sở cho việc cấp phát bit cho các mẫu một cách hợp lý, tăng hiệu quả nén audio. Có hai dạng che lấp :

+ Che lấp về phổ : Khi tổn tại cùng một lúc hai âm thanh có tần số khác nhau, âm ihanh có mức lớn hơn có thể che lấp âm thanh có mức nhỏ hom. Do đó, đường cong ■‘ngưỡng nghe thấy” sẽ luôn luôn thay đổi tuỳ thuộc vào phổ của các mẫu âm thanh Jang xét. Chỉ có các đoạn vạch phổ nằm trên đường cong này mới thực sự được mã

hóa.

+ Che lấp về thời gian: tai người chỉ cảm nhận âm thanh sau khi âm thanh đó bắt dầu khoảng 200ms, và có cảm tưởng âm thanh còn kéo dài 200ms nữa khi âm thanh đã dứt. Ngoài ra thính giác cũng không phân biệt được khoảng ngừng nhỏ hơn 50ms giữa hai âm thanh giống nhau đi liền nhau.

- Các bộ lọc dãy 32 băng con (Filter bank 32 Subband) : khối này biến đổi sô' liệu audio trong miền thời gian thành số liệu của 32 băng con trong miền tần số. Dựa theo hiệu ứng che lấp, độ dư thừa trong các số liệu này sẽ được loại bỏ. Phổ tín hiệu được

chia thành các băng tần con có độ rộng bằng nhau (32 băng trong MPEG-Layer I và II). Mỗi tín hiệu băng con sau đó được lượng tử hóa đều .

- Cấp phát bit, lượng tử và mã hoá (Bit/Noise Allocation Quantizing and Coding)

Lựa chọn dải xấp xỉ ngưỡng nghe và cấp phát bit trên cơ sở năng lượng phổ tín hiệu audio và mô hình tâm sinh lý nghe. Lượng tử hoá các phần cần thiết trong số liệu của 32 băng con với số bit thích hợp và sử dạng mã hóa số liệu PCM.

- Định dạng dòng bit (Bit stream formatting) : có nhiệm vụ định dạng lại dòng bit theo tiêu chuẩn của MPEG.

- Bộ ghép kênh dữ liệu audio: nhận dữ liệu lượng tử hóa và cộng các thông tin vị trí bit và hệ số thanh độ cho quá trình giải mã hiệu quả.

2.2.5. Cấu trúc của dòng dữ liệu video MPEG-2: 2.2.5.I. Cấu trúc phân lớp

Cấu trúc dòng bit video MPEG-2 có dạng phân lớp, gồm 6 lớp (tương hợp với MPEG-1) bao gồm:

Lớp Block: là đơn vị cơ sở gồm 8x8 phần tử ảnh (pixel). Các ảnh I mang thông tin của ảnh gốc cần truyền được mã hoá bằng các hệ số DCT để truyền. Với các ảnh p và B thì chỉ truyền các thông tin khác nhau giữa các ảnh.

Lớp macroblock (tổ hợp khối): xác định lượng thông tin sử dụng cho lớp slice và thông tin về các véc tơ bù chuyển động. Macroblock của tín hiệu chói Y gồm 4 block, cho các tín hiệu hiệu màu CR và CB là 2 block với chuẩn lấy mẫu 4:2:2 và là 1 block CR hoặc CB với chuẩn 4:2: 0.

Lớp Slice: Các MB được tập hợp tạo thành các Slice. Slice có thể bắt đầu từ bất cứ đâu, kích thước tuỳ ý, và chịu trách nhiệm cho quá trình đồng bộ ảnh. Nó bao gồm các nhận dạng đầu gói của các ảnh đã truyền. Mỗi Slice gồm 16 đoạn chứa ít nhất lổpixel. Slice là đơn vị cơ bản để đồng bộ hoá cho quá trình mã có độ dài động và mã vi sai. Những vectơ đầu tiên trong slice được gửi đầy đủ, sau đó là những vectơ được truyền vi sai.

Trong ảnh I, những hệ số DC đầu tiên trong slice được gửi đầy đủ còn những hệ số DC còn lại được truyền vi sai (chỉ truyền sự khác nhau giữa các hệ số hay sự chênh lệch giữa các hệ số ). (adsbygoogle = window.adsbygoogle || []).push({});

Trong trường hợp có lỗi bit ở dòng cơ sở, quá trình giải nối tiếp của các symbol độ dài thay đổi sẽ bị ngắt quãng hoặc các hệ số đã được mã hoá vi sai hay những vectơ sẽ bị sai lỗi . Cấu trúc slice làm cho có thể khôi phục bằng cách chỉ cho điểm tái đồng bộ dòng bit.

Lớp ảnh: một số slice được gộp lại tạo nên một ảnh, là một mành hoặc 1 khung hình. Dữ liệu bắt đầu của ảnh (Picture header) xác định ảnh đó là I, p hoặc B được mã, bao gồm cả tham chiếu thời gian, như vậy hình ảnh sẽ được thể hiện ở đúng thời gian.

Lớp nhóm ảnh : Nhiều ảnh có thể được kết hợp thành nhóm ảnh (GOP) và phải bắt đầu bằng ảnh I. Giữa 2 ảnh I là một số ảnh p hoặc B. GOP có thê mở hoặc đóng. GOP đóng: những ảnh B cuối cùng không cần tới ảnh I trong GOP kế tiếp để giải mã và dòng bit có thể bị cắt khi GOP kết thúc.

Để phía giải mã có thể bắt đầu hoạt động hoặc sau khi có lỗi truyền, dẫy ảnh I được truyền chuẩn hoá sau mối 0,5ms (sau 12 ảnh), ảnh p và B được truyền giữa các ảnh I.

GOP là đơn vị cơ bản của mã hoá theo miền thời gian, mô tả nhóm các ảnh tổ hợp từ các kiểu ảnh I, p, B. Trong tiêu chuẩn MPEG-2( ISO/IEC-138182) độ dài GOP mặc định là 12 ảnh có cấu trúc: I-B-B-P-B-B-P-B-B-P-B-B, khoảng thời gian 1 GOP là 480ms.

Với tốc độ bit 4~6Mbit/s ảnh I có dung lượng khoảng ~ 1000Kbit ảnh p ~ 300Kbit, và ảnh B ~ 100Kbit

Lớp Sequence (chuỗi hình ảnh): gồm nhiều GOP kết hợp ỉại, là lớp biểu thị cao nhất khi chuỗi dữ liệu video thay đổi chủ yếu đo khi chèn các chương trình. Nó bao gồm các thông tin như: tỷ sô' nén, số lượng điểm ảnh theo chiều ngang, dọc, số ảnh /giây, kích thước cần thiết cho bộ nhớ đệm ở giải mã, tốc độ bit.

Chuỗi video bắt đầu chuồi với mã khởi động (start code) tiếp theo là các header

{đầu gói ) và kết thúc chuỗi với mã kết thúc (End Code).

Thông thường chuỗi header được đặt khắp suốt cả chuỗi - đảm bảo cho phép giải mã từ phần đầu chuỗi đến cuối giống như phát lại băng hay đĩa video số.

Chuỗi header chỉ rõ : kích thước hình ảnh theo chiều ngang và dọc, tỷ lệ khung hình, định dạng lấy mẫu tín hiệu màu, tốc độ ảnh, quét liên tục hay quét xen kẽ, Profile, Level, tốc độ bit, ma trận lượng tử sử dụng trong nén liên ảnh, trong ảnh.

<---S eq u en ce---> <--- GOP --- »

2.2.52. Dòng cơ sở & dòng cơ sở đóng gói a. Dòng cơ sở

Dòng cơ sở vể cơ bản là dòng đầu ra thô của bộ mã hoá, 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 hoặc âm thanh ban đầu.

Một chương trình truyền hình có thể có vài dòng cơ sở, bao gồm: dòng video cơ sở (Video ES ), dòng audio cơ sở (Audio ES) và dòng cơ sở dữ liệu (Data ES).

Dòng cơ sở là dòng rất gần với thời gian thực của tín hiệu.

MA TRẬN

-26-

Hình 2.10: Cấu trúc dòng cơ sở Video

b. Dòng cơ sở đóng gói

Để thuận tiện cho quá trình truyền dẫn, dòng cơ sở được đóng gói thành các khối dữ liệu. Những khối dữ liệu này cần những thông tin xác định điểm bắt đầu của gói và bao gồm cả thông tin thời gian nhịp lên các gói bởi vì quá trình đóng gói đã làm cho không thể nhận diện gói theo trục thời gian. Các thông tin nhận dạng này nằm trong Header của gói.

Các dòng cơ sỏ của video, audio, và dữ liệu số được chuyển đổi thành các dòng cơ sở đóng gói PES (Packet Element Stream) qua quá trình đóng gói. Gói dữ liệu video (PES) mang các thông tin của ảnh đã được nén có kích thước phù hợp theo các ứng dụng. Độ dài lớn nhất = 216 - 1= 65.535byte . Mỗi PES được bắt đầu bằng các bit đầu gói ( header) có độ dài qui ước là 6 byte, 3 byte đầu tiên dùng cho mã khởi đầu gói dữ liệu, 1 byte tiếp theo để nhận diện xem dòng đó là audio hay video, và 2 byte tiếp theo để chỉ thị độ dài gói. Hai tham số đầu là rất quan trọng để không nhầm lẫn gói trong cùng 1 PES với rất nhiều gói nhỏ hơn được sử dụng trong dòng truyền tải.

Trong hệ thống truyền hình số, dòng MPEG được truyền dưới dạng dòng truyền tải, các gói PES được đưa qua bộ ghép kênh dòng truyền tải. Trong trường hợp này các PES được đưa vào trong payload của dòng truyền tải. Cấu trúc PES và nội dung của các Header thể hiện trên hình 2.11.

p a c k e t start c o d e s tre a m id P E S p a c k e t le n g th o p tio n a l : P C S H E A D E R R E S p a c k e t d a ta b y te s p refix 24 ... .. ■10' P E S scrambling P E S priority data alignment copyright original or copy 7 flags P E S header data length options» M fie-Ws stuffing bytes

control indicator (OxFF)

2 2 1 1 1 __t...8 : m*8

E S DSM additional previous P £ S

P T S

E S C R rate trick copy info P E S eflension

DTS mode C R C 40 48 24 8 7 16 / j óptssrtậl: 5 flags P E S private data pack header field program packet seq cntr P-STO buffer P E S extension field length P E S extension field data 128 8 8 16 7 (adsbygoogle = window.adsbygoogle || []).push({});

Hình 2.11. CứM trúc PES và nội dung của các Header

2.2.5.3. Dòng chương trình (PS) và dòng truyền tảia. Dòng chương trình a. Dòng chương trình

Dòng chương trình PS (Program Stream) được hình thành bằng cách gộp các dòng dữ liệu audio và video đã đóng gói cùng các gói dữ liệu khác, chi tiết chương trình, xung chuẩn đồng hồ chương trình PCR (program clock reference) hay đổng hổ thời gian thực. Các gói dữ liệu PES được ghép lại tạo thành dòng chương trình PS ( Program Stream ) gồm sự nối tiếp các gói có độ dài thay đổi.

Mỗi gói bắt đầu bằng một header. Một lỗi xảy ra trong phẩn header có thể làm mất thông tin của toàn gói. Việc 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 đứt và một gói mới bắt đầu. Bộ giải mã phải đọc và dịch lại thông tin về độ dài gói trong Header. Nếu thông tin về độ dài gói bị lỗi, bộ giải mã sẽ mất đồng bộ và do đó mất thông tin ít nhất là một gói.

Dòng Chương trình có độ dài lớn hơn dòng cơ sở do cần có các bit đánh dấu đầu mỗi gói.

b. Dòng truyền tải TS (Transport Stream)

Dòng truyền tải được thiết kế cho truyền dữ liệu ở môi trường có can nhiễu. Dòng truyền tải khác với dòng chương trình ở chỗ các gói PES được chia nhỏ với kích thước ngắn cố định( 188byte) trong đó các chương trình được ghép lại với các xung nhịp khác nhau. Điều này có thể thực hiện được VI dòng truyền tải được gắn xung nhịp

chương trình (PCR - program clock reference) và xung nhịp gốc (OPCR) được thông báo cho phía giải để tái tạo gốc thời gian ở phía mã hoá. Do vậy, dòng truyền tải sử dụng chuẩn đồng hồ chương chình (PCR) còn dòng chương trình thì không có nhu cầu về chuẩn đồng hồ chương trình.

Sử dụng các gói ngắn có độ dài không đổi, làm cho dòng truyền tải có khả năng chống lỗi cao hơn nhiều so với dòng PS.

Mỗi dòng truyền tải đơn chương trình (SPTS) sẽ có 1 đồng hồ chương trình giúp bộ giải mã tái tạo cả Audio và Video.

188 bytes transport

packet ttẺadât' payload héa déi payload , header payload

__.___ _________ ■

sync transport payload transport

I transport

Byte error unit start priority PID scrambling

indicator indicator I control 8 1 1 1 J ! ' s L ! 1 1 n continuity

counter Iff.V.VV.V,•In­

adaptation discontinuity random

field indicator access

length _____ *_____________________ indicator 8 1 1 r— ~ 1— — __ ____ —--- P C R O P C R L 42 splice countdown transport private data length elementary stream priority indicator 1__ - transport private data 5 flags I n ­ adaptation field extension length óptiủna fields 3 flags <#eùn*lị:.;;ỵị 42 8 8 3

Hình 2.12: Cấu trúc dòng truyền tải

Dòng truyền tải của nhiều chương trình khác nhau có thể được tổng hợp qua bộ ghép kênh dòng truyền tải, cho phép cùng một lúc truyền được nhiều chương trình. Trong dòng truyền tải, các chương trình khác nhau bắt đầu từ các nguồn khác nhau, nhưng bắt buộc phải được đồng bộ hoá. Như vậy dòng truyền tải phải cung cấp tín hiệu đồng bộ riêng biệt cho mỗi chương trình (PCR|...PCRn). Hơn nữa dòng truyền tải cần phải chứa thêm các dữ liệu để tái tạo đổng hồ ổn định giông như ở nguồn phát.

Đổ tăng khả năng chịu đựng khi truyền dẫn trong môi trường can nhiễu có thể gây ra sai lỗi, dòng truyền tải được đóng gói cố định là 188byte. Gói dòng TS bắt đầu với tối thiểu là 4 byte đầu gói (TS Header) và 184 byte thông tin cần truyền. Nội dung của mỗi gói và bản chất của dữ liệu tải được nhận dạng bằng các header. Cấu trúc Header được biểu diễn bằng một lớp điều khiển có độ đài cố định và 1 vùng thích nghi có độ dài thay đổi.

•4--- 188 byle --- ►:

4 Byte Tải dữ liệu video

Î

Đầu gói V Đầu gói có độ dài thích nghi

Hình 2.13: Gói truyền MPEG-2 (adsbygoogle = window.adsbygoogle || []).push({});

-V ù n g điều khiển: ở vùng đầu gói gồm tối thiểu 4 byte. Byte đầu tiên trong gói là byte đồng bộ (sync-bvte). Byte đồng bộ có cùng giá trị được xác định trước cho cả dòng bit MPEG-2. Vùng nhận dạng gói PID ( Packet Identification) mã hoá 13 bit dùng để phân biệt các loại gói khác nhau. Vì vị trí của vùng PID trong Header là cố định, nên có thể tách các gói theo một dòng bit ES riêng bằng thông tin nhận dạng gói.

Định dạng dòng truyền cho phép xáo trộn dữ liệu trong các gói và mỗi dòng ES trong hệ thống có thể xáo trộn độc lập. Thông tin Header điểu khiển trong gói luôn được truyền không bị xáo trộn. Số lượng dữ liệu được xáo trộn trong gói có thể thay đổi phụ thuộc vào độ dài của Header thích nghi.

- Vùng thích nghi: Trong môi trường truyén dẫn và phát sóng, sử dụng vùng có độ dài thích nghi trong header. Sự xuất hiện của nó được báo hiệu trong vùng điều khiển thích nghi (adaptation-field-control) của lớp điều khiển. Header thích nghi chứa

Một phần của tài liệu Hệ thống truyền hình số mặt đất (DVB-T) và một số giải pháp nâng cao chất lượng hệ thống (Trang 34)