NAL có khả năng ánh xạ từ lớp VCL đến lớp truyền tải:
+ RTP/IP cho dịch vụ thời gian thực qua mạng Internet (conversational và streaming).
+ Định dạng file: ISO MP4 cho lưu trữ và truyền tải MMS. + H32x cho các dịch vụ đàm thoại có dây và không dây. + Dòng truyền tải MPEG-2 cho các dịch vụ quảng bá.
Gói NAL: dữ liệu video được mã hóa được tổ chức trong một đơn vị NAL( hay gói NAL). Mỗi gói có độ dài tính theo byte. Byte đầu tiên của mỗi gói NAL là byte mào đầu, nó chỉ rõ loại dữ liệu được chứa trong NAL, các byte còn lại chứa dữ liệu.Phần dữ liệu của NAL được ghép xen.
Cấu trúc của đơn vị NAL có định dạng chung cho việc sử dụng truyền trong hệ thống hướng bit và hướng gói.
b.Lớp mã hóa video
Lớp mã hóa video của H264/AVC thì tương tự với các tiêu chuẩn khác như MPEG-2 video.Nó là sự kết hợp dự đoán theo thời gian và theo không gian,và với mã chuyển vị.
Ảnh được tách thành các khối. Ảnh đầu tiên của dãy hoặc điểm truy nhập ngẫu nhiên thì được mã hóa “Intra”, có nghĩa là không dùng thông tin nào ngoài thông tin chứa trong bản thân ảnh. Mỗi mẫu của một khối trong một frame Intra được dự đoán nhờ dùng các mẫu không gian bên cạnh của các khối đã mã hóa trước đó. Đối với tất cả các ảnh còn lại của dãy hoặc giữa các điểm truy cập ngẫu nhiên, mã hóa “Inter” được sử dụng, dùng dự đoán bù chuyển động từ các ảnh được mã hóa trước.
Tín hiệu video được mã hóa trong H.264 bao gồm tập hợp các ảnh được mã hóa có trật tự. Một ảnh có thể biểu diễn bằng cả một khung hoặc một bán ảnh. Nhìn chung, một khung gồm có hai bán ảnh xen kẽ nhau: bán ảnh trên và bán ảnh dưới. Bán ảnh trên gồm các dòng chẵn 0, 2, 4, …, H/2 -1, với H là tổng số dòng trong một khung. Bán ảnh dưới gồm các dòng lẻ và bắt đầu từ dòng thứ 2.
Hình 3.16: Các bán ảnh trong một khung
Các macroblock: Mỗi ảnh video, frame hoặc field, được chia thành các macroblock có kích thước cố định bao trùm một diện tích ảnh hình chữ nhật gồm 16 x 16 mẫu thành phần luma(chói) và 8 x 8 mẫu cho mỗi một trong hai thành phần chroma(màu). Tất cả các mẫu macroblock luma hoặc chroma được dự đoán theo không gian hoặc thời gian, và dự đoán tại chỗ hợp thành được truyền đi nhờ dùng mã chuyển vị. Do vậy mỗi thành phần màu dự đoán tại chỗ được chia nhỏ thành các khối. Mỗi khối được biến đổi nhờ dùng biến đổi nguyên (an integer transform), và các hệ số biến đổi được lượng tử hóa và được truyền đi bằng phương pháp mã hóa entropy.
Các macroblock được tổ chức thành các slice, biểu diễn các tập con của ảnh đã cho và có thể được giải mã độc lập. Thứ tự truyền các macroblock trong dòng bit phụ thuộc vào bản đồ phân phối Macroblock (Macroblock Allocation Map) và không nhất thiết phải theo thứ tự quét. H.264 / AVC hỗ trợ năm dạng mã hóa slice khác nhau. Đơn giản nhất là slice I (Intra), trong đó tất cả macroblock được mã hóa không có tham
chiếu tới các ảnh khác trong dãy video. Tiếp theo là các slice P và B, ở đó việc mã hóa có tham chiếu tới các ảnh trước nó (slice P) hoặc cả ảnh trước lẫn ảnh sau (slice B). Hai dạng slice còn lại là SP (switching P) và SI (switching I), được xác định cho chuyển mạch hiệu quả giữa các dòng bit được mã hóa ở các tốc độ bit khác nhau.
3.4.2.H.264 CODEC
Giống như các tiêu chuẩn nén trước đây ( ví dụ như MPEG-1, MPEG-2 và MPEG-4),H.264 không được định nghĩa là bộ CODEC ( một cặp encoder và decoder) mà H.264 định nghĩa các cú pháp của luồng nén video. Trong thực tế, bộ mã hóa và giải mã bao gồm các thành phần cơ bản như trong hình 3.18 và hình 3.19. So với các chuẩn nén trước bao gồm các thành phần như bộ dự đoán, biến đổi, lượng tử, mã hóa entropy, H.264 CODEC còn bao gồm bộ lọc deblocking và có nhiều thay đổi quan trọng trong các chi tiết về chức năng của các thiết bị.
Bộ mã hóa (hình 3.18) bao gồm 2 dòng dữ liệu , dòng forward (từ trái sang phải) và dòng tái tạo (từ phải sang trái). Dòng dữ liệu trong bộ giải mã được truyền từ phải sang trái trong hình 3.19.
Bộ mã hóa dòng forward
Một khung hoặc trường lối vào Fn được xử lí trong các khối của một macroblock (đáp ứng cho 16x16 pixel trong một hình bình thường). Mỗi macroblock được mã hóa ở chế độ trong ảnh hoặc liên ảnh, với từng block trong macroblock. Một dự doán PRED (kí hiệu là P trong hình 3.18) được định dạng dựa trên các mẫu ảnh được tái tạo lại.
Trong chế độ nén liên ảnh, PRED được hình thành từ slice hiện thời vừa được mã hóa, giải mã và tái tạo lại (uF′
n trong hình, chú ý rằng các mẫu không được lọc được sủ dụng để tạo nên PRED).
Trong chế độ nén trong ảnh, PRED được hình thành bằng cách dự đoán bù chuyển động từ một hoặc hai ảnh tham khảo được. Trong hình 3.18, ảnh tham khảo là ảnh FN′−1
vừa được mã hóa. Nhưng, dự đoán tham chiếu đối với mỗi macroblock có thể được chọn từ các hình ảnh trong quá khứ hoặc trong tương lai vừa được mã hóa, tái tạo và lọc ( theo thứ tự hiển thị) .
Dự đoán PRED trừ với block hiện tại đer tìm ra sự khác biệt , được biến đổi và lượng tử hóa để thu được hệ số lưởng tử X sẽ được sắp xếp lại và mã hóa entropy. Hệ số được mã hóa entropy cùng với thông tin về cạnh được mã hóa trong mỗi block trong macroblock (chế độ dự đoán, mức lượng tử, thông tin về vector chuyển động, …) định dạng nên các dòng bit để truyền tơi lớp mạng trừu tượng để truyền hoặc lưu trữ.
Bộ mã hóa dòng tái tạo
Bên cạnh việc mã hóa và truyền tải các block trong macroblock, bộ mã hóa còn giải mã ( tái tạo) chúng để làm tham khảo cho các dự đoán trong tương lai. Hệ số X được giải lượng tử (Q−1 ) và biến đổi ngược (T−1 ) để thu được sụ khác biệt block D′
n . Block dự đoán PRED được cộng vào để tạo thành block tái tạo uF′n
. Bộ lọc được ứng dụng để giảm ảnh hưởng của méo và các ảnh tham khảo dự đoán được tạo từ 1 chuỗi các block F ′n.
Mục đích chính của bộ giải mã dòng tái tạo trong bộ mã hóa là để chắc chắn rằng cả bộ mã hóa và giải mã đều sử dụng các tham số khung đã xác định để tạo ra dự đoán P. Nếu không có các tham số này, dự báo P ở bộ mã hóa và giải mã sẽ không được xác định, dẫn đến lỗi giữa bộ mã hóa và giải mã.
Hình 3.19: Bộ giải mã
Bộ giải mã
Bộ giải mã nhận được các dòng bit được nén từ NAL. Các thành phần dữ liệu được giải mã entropy để tìm ra hệ số lượng tử X. Sử dụng giải lượng tử và biến đổi ngược để thu được Dn. Sử dụng các thông tin header đươc giải mã từ các dòng bit, bộ mã hóa tạo ra block dự đoán, giống hệt với PRED được tạo ra ở bộ mã hóa. PRED được cộng với D
′
n để tạo ra uF′n , sau đó được lọc để tạo ra các block F′n.
3.4.3.Các đặc điểm chính của MPEG-4 Part 10 a.Kích thước block ảnh có thể thay đổi được
Thành phần độ chói của macroblock (16*16 mẫu) có thể được chia theo 4 cách: một macro block 16 *16 phần macroblock, hai macroblock 16*8 phần, hai 8* 16 phần hoặc
bốn macroblock 8*8 phần. Nếu kiểu 8*8 phần được chọn, mỗi bốn 8*8 sub-macroblock trong một macro block có thể được chia theo 4 cách: một phần sub-macro block 8*8, hai phần sub-macroblock 4*8, hai phần sub-macroblock 8*4 hoặc bốn phần sub-macroblock 4*4 . Các phần này và các sub-macroblock tạo ra nhiều cách kết hợp giữa trong mỗi macroblock.
Trong thực tế, phần có kích thước lớn phù hợp với những vị trí không chi tiết, và phần kích thước nhỏ phù hợp với các vị trí có độ chi tiết cao.
Hình 3.20: Bù chuyển động
b.Độ chính xác của vector bù chuyển động cao
Mỗi phần hay mỗi phần sub-macroblock trong một macro được mã hóa trong ảnh được dự đoán từ một vùng có cùng kích thước trong ảnh tham khảo. hầu hết các chuẩn nén trước đó chỉ đạt được độ chính xác ½ của vector bù chuyển động, nhưng với H.264 có thể đạt được tới ¼.
c.Tham chiếu nhiều ảnh bù chuyển động
Ảnh P trong MPEG-2 là ảnh dự đoán được tham chiếu từ một ảnh trước đó, còn ảnh B là ảnh dự đoán 2 chiều được tham chiếu từ nhiều ảnh I hoặ P trước và sau nó.
Trong chuẩn nén H.264, ảnh hiện tại có thể tham chiếu bởi nhiều ảnh, điều này cho phép tăng hiệu suất nén. Một lượng lớn các ảnh được giải nén và lưu trong bộ giải nén.
Trong các chuẩn nén trước đó, thứ tự các ảnh dùng cho mục đích tham chiếu bù chuyển động và thứ tự các ảnh thể hiện có mối quan hệ chặt chẽ với nhau. Tuy nhiên,
chuẩn nén H.264 đã khắc phục nhược điểm này bằng cách cho phép bộ giải nén lựa chọn thứ tự các ảnh tham chiếu.
Hình 3.21: Tham chiếu đa ảnh
d.Dự đoán trong ảnh
Các mẫu của một macroblock được dự đoán bằng cách chỉ sử dụng phần thông tin của macroblock được truyền đi trong một ảnh.
Trong chuẩn nén H.264/AVC, có hai loai dự đoán trong ảnh cho thành phần chói Y. Loại thứ nhất là intra 4x4 và loại thứ 2 là intra 16x16. Trong INTRA 4x4, các phần tử ảnh có kích thước 16x16 được chia thành 16 phần có kích thước 4x4, việc dự đoán được thực hiên với từng phần riêng biệt. Có 9 mode dự đoán tùy chọn đối với các block thành phần chói Y kích thước 4x4, 4 mode đối với thành phần chói Y kích thước 16x16, 4 mode cho thành phần màu Cr, Cb. Bộ nén sẽ lựa chọn mode dự đoán sao cho sự khác biệt giữa P và block được mã hóa là nhỏ nhất.Các mode dự đoán thành phần chói Y 4x4.
Có 9 mode dự đoán thành phần chói Y kích thước 4x4, đó là: Mode 0: dự đoán theo chiều dọc
Mode 1: dự đoán theo chiều ngang
Mode CD: dự đoán dựa trên trung bình tất cả các mẫu xung quanh từ bên trái và từ trên của khối dữ liệu hiện tại.
Mode 3: dự đoán dự trên các mẫu có độ nghiêng 45 độ từ phải sang trái. Mode 4: dự đoán dự trên các mẫu có độ nghiêng 45 độ từ trái sang phải.
Mode 5 : sử dụng phép ngoại suy với góc có độ nghiêng 26.6 độ so với chiều dọc. Mode 6: sử dụng phép ngoại suy với góc có độ nghiêng 26.6 độ so với chiều ngang Mode 7: sử dụng phép ngoại suy với góc có độ nghiêng 26.6 độ so với chiều dọc bên phải
Mode 8: sử dụng phép ngoại suy với góc có độ nghiêng 26.6 độ từ so với chiều ngang.
Hình 3.22: Mode dự đoán thành phần chói Y kích thước 4x4
*.Các mode dự đoán thành phần chói Y 16x16
Như dã nói trình bày ở trên, một mode dự đoán được áp dụng cho toàn bộ một macro thành phần chói kích thước 16x16. Có 4 mode dự đoán đó là dự đoán theo chiều dọc, dự đoán theo chiều ngang, dự đoán phẳng. Đối với mode dự đoán phẳng, một hàm tuyến tính được sử dụng giữa các mẫu từ bên trái và từ trên xuống so với mẫu dự đoán hiện tại. Mode này hoạt động hiệu quả giữa các vùng có độ chói liên tục thay đổi. Các mode hoạt động giống như đối với thành phần chói kích thước 4x4, chỉ khác là chúng hoạt động đối với toàn bộ macroblock thay vì với 16 phần kích thước 4x4.
*.Các mode dự đoán các thành phần màu Cr và Cb
Dự đoán trong ảnh đối với các thành phần màu của một macroblock tương tự như đối với thành phần chói Y có kích thước 16x16. Bởi vì tín hiệu màu có sự thay đổi liên tục trong hầu hết các trường hợp. Nó luôn áp dụng cho các khối 8x8 sử dụng dự đoán ngang, dọc, DC và sự đoán phẳng.
e.loại bỏ dư thừa không gian
Biến đổi Cosine rời rạc DCT hai chiều trong các chuẩn MPEG-1, MPEG-2 nhằm mục đích loại bỏ phần dư thừa không gian. DCT được áp dụng cho các khối 8x8. trong H.264/AVC, DCT được áp dụng với hệ số nguyên. Kích thước khối thay đổi, có thể là 16x16, 4x4, hoặc trong trường hợp đặc biệt có thể dùng khối kích thước 2x2. Việc sử dụng khối có kích thước nhỏ hơn so với các chuẩn nén trước đó cho phép bộ mã hóa tương thích tốt hơn với biên của các đối tượng chuyển động.
Hình 3.23: Loại bỏ dư thừa không gian
Có 3 loại biến đổi khác nhau được sử dụng trong MPEG-4 Part 10, đó là;
• Một biến đổi Hadamard áp dụng cho mảng 2 chiều kích thước 4x4 các hệ số 1 chiều
DC của thành phần chói Y trong mode 16x16.
• Một biến đổi Hadamard áp dụng cho mảng 2 chiều kích thước 2x2 các hệ số 1 chiều
DC của thành phần màu Cr, Cb.
nhãn là “-1”, và bao gồm các hệ số một chiều được biến đổi trong mỗi block độ chói 4x4, và được truyền đi đầu tiên. Sau đó, các block độ chói từ 0-15 được truyền đi theo trật tự như trong hình vẽ(các hệ số một chiều trong một macroblock được mã hóa sử dụng mode Intra 16x16 không được gửi đi). Block 16 và 17 được gửi đi,bao gồm 2 mảng kích thước 2x2 các hệ số một chiều các thành phần màu Cr, Cb. Cuối cùng là các block từ 18- 25(không có các hệ số một chiều).
Hình 3.24: Thứ tự truyền các block trong một macroblock
Hình 3.25: Mã hóa Entropy
• Mã hoá số học nhị phân thích nghi với ngữ cảnh (Context-adaptive binary arithmetic
coding - CABAC)
• Mã hoá có độ dài từ mã thay đổi thích nghi với ngữ cảnh (Context-adaptive variable-
length coding - CAVLC)
• Mã hoá có độ dài từ mã thay đổi (Common variable-length coding - VLC)
g.Bộ lọc deblocking
Cấu trúc khối cơ bản của H.264 là 4x4 cho biến đổi và bù chuyển động. Do vậy, ảnh sẽ hình thành các đường biên giữa các khối. Bộ lọc sẽ triệt tiêu các biên này để hình ảnh được tự nhiên hơn.
Một bộ lọc được sử dụng cho mỗi macroblock được mã hóa nhằm làm giảm méo. Bộ lọc deblocking được sử dụng sau biến đổi ngược ở bộ mã hóa( trước khi tái tạo lại và lưu trữ ) và ngược lại đối với bộ giải mã. Bộ lọc giúp cải thiện chất lượng hình ảnh. Hình ảnh được lọc sẽ sử dụng để làm dự đoán bù chuyển động cho các hình ảnh trong tương lai và điều này có thể giúp cải thiện chất lượng nén bởi vì những hình ảnh đã được lọc chân thực hơn so với các ảnh không được lọc.
h.Thứ tự macroblock mềm dẻo
Để cung cấp các phương pháp che giấu hiệu quả trong các kênh có khuynh hướng bị lỗi với các ứng dụng độ trễ thấp, H.264 / AVC hỗ trợ một đặc điểm gọi là thứ tự macroblock mềm dẻo (FMO – Flexible Macroblock Ordering). FMO định rõ một giản đồ (pattern) ấn định các macroblock trong ảnh vào một hoặc vài nhóm slice. Mỗi nhóm
slice được truyền riêng biệt. Nếu một nhóm slice bị mất, các mẫu trong các macroblock bên cạnh về mặt không gian, thuộc về các nhóm slice được thu đúng, có thể được sử dụng cho che dấu hiệu quả lỗi.
2.4.4.Ưu điểm của H.264/AVC
Chất lượng hình ảnh tốt: H.264 là chuẩn nén sử dụng công nghệ âm thanh, hình ảnh mới khả năng nén tôt hơn so với các chuẩn nén trước đó. Do đó, chuẩn nén cung cấp dịch vụ phân phát hình ảnh chất lượng cao qua mạng băng thông giới hạn.
Yêu cầu băng thông thấp: Chất lượng hình ảnh của H.264 gần giống với MPEG-2 nhưng H.264 cần ít băng thông để truyền tải tín hiệu với cùng chất lượng. Đặ điểm này rất phù hợp để sử dụng trong hệ thống IPTV.
Có khả năng kết hợp với các thiết bị xử lí video có sẵn như MPEG-2 và hạ tầng mạng dựa trên IP đã có sẵn .