Các chuẩn nén và ứng dụng truyền video trên mạng Internet

MỤC LỤC LỜI CẢM ƠN .iii TÓM TẮT NỘI DUNG .iv DANH SÁCH CÁC CHỮ VIẾT TẮT .v 1. DANH SÁCH CÁC HÌNH vi 2. DANH SÁCH CÁC BẢNG BIỂU vi LỜI MỞĐẦU 1 Chương I: KHÁI QUÁT VỀ NÉN TÍN HIỆU VIDEO .3 VÀ CHUẨN NÉN MPEG 3 1.1. Mục đích nén Video 3 1.2. Chuẩn nén MPEG 4 1.2.1. Khái quát về nén MPEG .4 1.2.2. Cấu trúc dòng bit MPEG video .5 1.2.3. Các loại ảnh trong chuẩn MPEG : .7 1.2.4. Nguyên lý nén MPEG .8 1.2.5. Nguyên lý giải nén MPEG 9 ChươngII: CÁC CHUẨN NÉN MPEG. 11 2.1 Chuẩn nén MPEG-1 . 11 2.1.1 Giới thiệu khái quát . 11 2.1.2 Định dạng trung gian SIF (Source Intermediate Format). 11 2.1.3 Cấu trúc dòng bít và các tham số của MPEG-1 . 14 2.2 Chuẩn nén MPEG-2 . 16 2.2.1 Giới thiệu về MPEG-2 . 16 2.2.2 Mã hoá và giải mã video 16 2.2.3 Profiles và Levels 18 2.2.4 MPEG -2 với phát sóng và sản xuất chương trình 21 2.3 Chuẩn nén MPEG-4 21 2.3.1 Khái quát về MPEG-4 21 2.3.2 Công nghệ mã hoá và giải mã video trong MPEG-4 22 2.3.3 Các Profiles và Levels trong chuẩn MPEG-4 .24 2.4 Tiêu chuẩn MPEG-7 .26 2.4.1 Giới thiệu về chuẩn MPEG-7 26 2.4.2 Đối tượng (Objectives) và cách miêu tả dữ liệu của MPEG -7 .27 2.4.3 Phạm vi ứng dụng của tiêu chuẩn MPEG-7 28 ChươngIII: CHUẨN NÉN VIDEO MPEG-4 VÀ ỨNG DỤNG TRONG TRUYỀN HÌNH TRÊN MẠNG INTERNET. .29 3.1 Giới thiệu tổng quan về truyền hình trên Internet 29 3.2. Lựa chọn H.264/ MPEG -4 part 10 cho truyền hình trên mạng Internet .33 3.2.1 Giới thiệu chung về H.264 /MPEG-4 part 10 .33 3.2.2 Tính kế thừa của chuẩn nén H.264/MPEG- 4 part 10 .35 3.3. Tiêu chuẩn H.264/MPEG - 4 Part 10 35 3.3.1. Lớp tr ừu tượng mạng NAL (Network Abstaction Layer) 35 3.3.2. Các Profile và các Level .36 3.3.3. Kỹ thuật mã hoá video 39 3.3.3.2. Các ảnh và bù chuyển động dùng trong H264/MPEG Part 10 .40 3.3.3.3. Xác định Vector chuyển động (Motion Estimation) .49 3.3.3.4. Nén video .51 3.3.3.5. Bộ lọc tách khối .55 3.3.4. Kỹ thuật giải mã video 57 3.3.4.1. Bù chuyển động 57 3.3.4.2. Khôi phục lỗi (Error Resiliency) 57 3.3.5 So sánh hiệu quả mã hoá của H264/MPEG Part 10 với các tiêu chuẩn trước đó 59 KẾT LUẬN 61 TÀI LIỆU THAM KHẢO 63

pdf71 trang | Chia sẻ: banmai | Lượt xem: 2666 | Lượt tải: 1download
Bạn đang xem trước 20 trang tài liệu Các chuẩn nén và ứng dụng truyền video trên mạng Internet, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
liệu dự đoán bù chuyển động của mỗi Block . - CABAC (Context-based Adaptive Binary Arithmetic Coding): mã hóa thuật toán nhị phân tương thích với tình huống, cho mã hoá Entropy. • Extended Profile (Profile mở rộng): - Bao gồm tất cả các phần của Baseline Profile: thứ tự Macro-Block linh hoạt, thứ tự Slice bất kỳ, Slice dư thừa. - Slice SP: Slice mã hoá đặc biệt để có khả năng chuyển đổi giữa các dòng video, tương tự như việc mã hoá một Slice P. - Slice SI: Slice đã chuyển đổi tương tự như việc mã hoá một Slice I. - Sự phân chia dữ liệu: dữ liệu đã mã hoá được đặt trong sự phân chia dữ liệu tách rời, mỗi sự phân chia có thể được đặt trong đơn vị lớp khác nhau. - Slice B. - Dự đoán có trọng số. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 38 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet • High Profile (Profile cao): - Bao gồm tất cả các phần của Main Profile: Slice B, dự đoán có trọng số, CABAC. - Kích cỡ khối biến đổi tương thích: biến đổi nguyên khối 4 x 4, 8 x 8 cho việc lấy mẫu thành phần chói. - Các ma trận phân chia lượng tử hoá: sự phân chia khác nhau tuỳ theo các tần số riêng được kết hợp với các hệ số biến đổi trong quá trình lượng tử hoá để làm tối ưu chất lượng chủ thể. 3.3.3. Kỹ thuật mã hoá video Biến đổi & Lượng tử hoá Mã hoá Entropy Giải lượng tử hoá & Biến đổi ngược Quyết định Inter/Intra Mode ∑ ∑ Bù chuyển động Ảnh dự đoán Bộ lọc tách khối Xác định Vector chuyển động + _ + + Dòng Bít đầu raVideo đầu vào Bộ đệm ảnh Hình 17: Sơ đồ mã hoá Video của H264/MPEG Part 10 Lớp mã hoá video của H264/MPEG Part 10 là sự kết hợp của mã hoá không gian, mã hoá thời gian và 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 cập ngẫu nhiên thì được mã hoá “Intra”- mã hoá trong ảnh, có nghĩa là không dùng thông tin của các ảnh khác mà chỉ dùng thông tin chứa trong ả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ã hoá 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ã hoá “Inter” được sử dụng, dùng dự đoán bù Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 39 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet chuyển động từ các ảnh được mã hoá trước đó.Quá trình mã hoá cho dự đoán liên ảnh (bù chuyển động) gồm việc lựa chọn dữ liệu chuyển động, các ảnh tham chiếu và sự dịch chuyển không gian được ứng dụng cho tất cả việc lấy mẫu của khối. Bộ mã hoá có thể lựa chọn giữa mã hoá Intra và Inter cho miền hình dạng khối của mỗi ảnh. Mã hoá Intra có thể chỉ ra điểm truy cập của chuỗi được mã hoá, tại đó việc giải mã có thể bắt đầu và tiếp tục một cách chính xác. Mã hoá Intra sử dụng các mode dự đoán không gian riêng rẽ để làm giảm độ dư thừa không gian trong tín hiệu gốc của mỗi ảnh đơn. Mã hoá Inter (dự đoán một chiều hay nhiều chiều) thì việc sử dụng dự đoán liên ảnh hiệu quả hơn cho mỗi block của giá trị lấy mẫu từ một vài ảnh được giải mã trước đó. Mã hoá Inter sử dụng các Vector chuyển động cho các block cơ sở dự đoán liên ảnh (Inter prediction) để làm giảm sự dư thừa thời gian giữa các ảnh (picture) khác nhau. Việc dự đoán được thu được từ tín hiệu đã lọc tách khối của các ảnh được thiết lập lại trước đó. Bộ lọc tách khối làm giảm sự nhiễu khối tại các đường biên của block. Các vector chuyển động và các mode dự đoán trong ảnh (intra prediction) có thể (theo lý thuyết) làm biến đổi kích thước block trong ảnh. Sự dự đoán thặng dư được nén tốt hơn bằng việc sử dụng một phép biến đổi để loại bỏ sự tương quan theo không gian trong một block trước khi được lượng tử hoá. Cuối cùng, Vector chuyển động hay các mode dự đoán liên ảnh được liên kết với thông tin của hệ số biến đổi lượng tử hóa và được mã hoá sử dụng mã Entropy như mã hoá chiều dài biến đổi thích ứng theo tình huống CAVLC (context-adaptive variable length code) hay mã hoá theo số học nhị phân thích ứng theo tình huống CABAC (context-adaptive binary arithmetic coding). 3.3.3.2. Các ảnh và bù chuyển động dùng trong H264/MPEG Part 10 1. Chia ảnh thành các Macro-Block . Mỗi ảnh video, Frame hoặc Field được chia thành các Macro-Block 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 cho thành phần chói(luma) và 8 x 8 mẫu cho một trong hai thành phần màu(chroma). Tất cả các mẫu Macro-Block của thành phần chói hoặc của thành phần màu được dự đoán theo không gian hoặc thời gian và kết quả sai số dự đoán được truyền đi bằng việc sử dụng mã hoá biến đổi. Do đó, mỗi thành phần màu của sai số dự đoán(prediction residual) được chia Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 40 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet nhỏ thành các khối. Mỗi khối được biến đổi nhờ dùng một phép biến đổi nguyên, và các hệ số biến đổi được lượng tử hoá và được biến đổi sử dụng phương pháp mã hoá Entropy. Các Macro-Block đượ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ủa các Macro-Block trong dòng bít phụ thuộc vào “Bản đồ định vị Macro-Block ”- Macro-Block Allocation Map- và không nhất thiết phải theo thứ tự quét. H264/MPEG Part 10 hỗ trợ 5 dạng mã hóa Slice khác nhau. Đơn giản nhất là Slice I, trong đó tất cả Macro-Block được mã hoá không có sự tham chiếu tới các ảnh khác trong dãy video. Tiếp theo là hai dạng Slice P và Slice B có sự tham chiếu tới các ảnh khác; với Slice P thì chỉ tham chiếu tới các ảnh trước đó; còn Slice B thì tham chiếu tới cả ảnh trước và ảnh sau nó. Hai dạng khác mà mới xuất hiên ở H264/MPEG Part 10 đó là SI (Switching I) và SP (Switching P) được dùng để cho chuyển mạch hiệu quả giữa các dòng bít được mã hoá ở các tốc độ bít khác nhau. Để cung cấp các phương pháp che giấu hiệu quả trong các kênh có xu hướng bị lỗi với các ứng dụng độ trễ thấp, H264/MPEG Part 10 hỗ trợ một đặc điểm gọi là thứ tự Macro-Block linh hoạt FMO (Flexible Macro-Block Ordering). FMO định rõ một giản đồ ấn định các Macro-Block 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 nào bị mất, các mẫu trong các Macro-Block 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 giấu hiệu quả lỗi. Các giản đồ được phép trải rộng từ các giản đồ hình chữ nhật tới các giản đồ phân tán theo các quy tắc khác nhau. 2. Dự đoán trong ảnh Intra- Frame. Các tiêu chuẩn trước đó đã chấp nhận Macro-Block mã hoá trong ảnh, mã hoá bằng chính nó mà không có dự đoán thời gian. Macro-Block mã hoá trong ảnh xảy ra trong các mảng (slice) hay các Macro-Block không chấp nhận sự hiệu chỉnh thời gian của việc dự đoán bù chuyển động. Về bản chất, Macro-Block mã hoá trong ảnh đưa ra một số lượng lớn các bít được mã hoá. H.264 sử dụng phương pháp dự đoán các Macro- Block mã hoá trong ảnh để giảm một lượng lớn các bít được mã hoá bằng chính bản thân tín hiệu gốc đưa vào. Để mã hoá một block hay một Macro-Block trong mode mã hoá trong ảnh, một block được định dạng cơ sở trên các block được khôi phục trước đó (nhưng không qua bộ lọc). Tín hiệu dư thừa giữa các block hiện tại và dự đoán cuối cùng được mã hoá. Để lấy mẫu tín hiệu chói, Block dự đoán có thể được định dạng là: cho mỗi Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 41 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet Block nhỏ (Subblock) là 4 x 4, mỗi Block là 8 x 8, hay mỗi Macro-Block là 16 x 16. Trong trường hợp được lựa chọn từ 9 mode, cho các Block luma (khối tín hiệu chói) là 4 x 4 và 8 x 8; 4 mode cho một Block luma 16 x 16; và 4 mode cho mỗi Block chroma (khối tín hiệu màu). Hình 18: Các mode trong MPEG-4 Hình 18 chỉ ra một Block luma 4 x 4 được dự đoán. Để dự đoán các mẫu [a,b, …, p] cho Block hiện tại, các mẫu khôi phục lại ở phía trên và bên trái trước đó [A,B, …,M] được dùng theo định hướng các mode. Các mũi tên trong hình 18 chỉ định hướng dự đoán của mỗi mode. Với mode 0 (vertical-theo chiều dọc) và mode 1 (horizontal-theo chiều dọc), các mẫu dự đoán được định dạng bằng phép ngoại suy từ các mẫu cao [A,B,C,D] và từ các mẫu bên trái [I, J, K, L], tách biệt nhau. Với mode 2 (DC- một chiều), tất cả các mẫu dự đoán được định dạng bằng cách lấy trung bình của các mẫu phía trên và bên trái [A, B, C, D, I, J, K, L].Với mode 3 (đường chéo xuống phía trái), mode 4 (đường chéo xuống phía phải), mode 5 (theo chiều dọc phía phải), mode 6 (theo chiều ngang xuống), mode 7 (theo chiều dọc phía trái) và mode 8 (theo chiều ngang lên), các mẫu dự đoán được định dạng từ trọng số trung bình của các mẫu dự đoán từ A-M. Ví dụ,các mẫu a và d được dự đoán lần lượt bằng cách tính làm tròn (I/4 + M/2 + A/4) và (B/4 + C/2 + D/4) trong mode 4, và bằng (I/2 + J/2) và (J/4 + K/2 + L/4) trong mode 8. Bộ mã hoá có thể lựa chọn mode dự đoán cho mỗi Block để số dư giữa các Block được mã hoá và dự đoán là nhỏ nhất. Để dự đoán cho mỗi Block luma 8 x 8, một mode được lựa chọn từ 9 mode, tương tự như việc dự đoán khối trong ảnh 4 x 4. Để dự đoán cho tất cả thành phần độ chói luma 16 x 16 của một Macro-Block, thì ta phải dùng 4 mode. Với mode 0 (theo chiều dọc), mode 1 (theo chiều ngang), mode 2 (DC), việc dự đoán thì tương tự như trong các trường hợp của Block luma 4 x 4. Với mode 4 (mặt phẳng-Plane), một hàm mặt phẳng tuyến tính được làm khớp với các mẫu phía trên và bên trái. Mỗi thành phần màu của một Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 42 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet Macro-Block được dự đoán từ các mẫu thành phần màu ở phía trên và/hay đến bên trái mà vừa được mã hoá hay khôi phục lại trước đó. Việc dự đoán thành phần màu được định nghĩa cho 3 kích cỡ Block có thể là: thành phần màu 8 x 8 định dạng 4:2:0, thành phần màu 8 x 16 trong định dạng 4:2:2 và thành phần màu 16 x 16 trong định dạng 4:4:4. Với 4 mode dự đoán cho tất cả các trường hợp thì rất giống với mode dự đoán thành phần chói 16 x 16, ngoại trừ các mode có thứ tự sau là khác: mode 0, mode 1, mode 2 và mode 3. 3. Bù chuyển động trong các Slice P (Prediction Inter Frame) Ngoài các dạng mã hoá Macro-Block Intra, các dạng mã hoá bù chuyển động hoặc dự đoán khác được xác định cho các Macro-Block Slice P. Dự đoán liên ảnh được làm giảm với sự tương quan theo thời gian với sự trợ giúp của việc xác định Vector chuyển động (Motion Estimation) và bù chuyển động (compensation). * Chia Macro-Block thành các Block : Trong H.264, ảnh hiện tại có thể được phân chia thành các Macro-Block hay các Block nhỏ hơn. Một Macro-Block của các mẫu thành phần màu 16 x 16 có thể chia nhỏ hơn thành các Block kích cỡ từ 4 x 4. Với Macro-Block mode 16 x 16, có 4 trường hợp là: 16 x 16, 16 x 8, 8 x 16, hay 8 x 8, ngoài ra cũng có 4 trường hợp cho mode 8 x 8 là : 8 x 8, 8 x 4, 4 x 8, hay 4 x 4 . Một Block kích cỡ nhỏ hơn yêu cầu một số lượng bít lớn để truyền Vector chuyển động và dữ liệu thêm vào của việc phân chia, tuy nhiên dữ liệu dư bù chuyển động có thể được giảm. Do đó, việc lựa chọn kích cỡ phân chia phụ thuộc vào các đặc điểm video đầu vào. Sự phân chia Macro-Block thành các Block được minh hoạ trong hình sau: Hình 19: Phân chia Macro-Block cho bù chuyển động Trên: Phân chia các Macro-Block . Dưới: Phân chia các phần 8 x 8. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 43 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet * Các giá trị dự đoán cho thành phần chói (Luma) và thành phần màu (Chroma): Tín hiệu dự đoán cho mỗi khối luma m x n đã mã hoá dự đoán thu được bằng việc đổi chỗ diện tích của ảnh tham chiếu tương ứng, nó được xác định bởi Vector chuyển động biến đổi và chỉ số ảnh tham chiếu. Như vậy, nếu Macro-Block được mã hoá khi dùng dạng Sub-Macro-Block (Macro-Block phụ) Inter 4 x 4, nhiều nhất 16 Vector chuyển động có thể được truyền đi cho một Macro-Block P Slice. Độ chính xác bù chuyển động bằng ¼ khoảng cách mẫu. Trong trường hợp Vector chuyển động nhắm trúng vị trí của một mẫu nguyên vẹn (Integer- Sample), các tín hiệu dự đoán là các mẫu tương ứng của ảnh tham chiếu; nếu khác đi, chúng được nội suy ở các vị trí của mẫu con (Sub-Sample). Trong thành phần tín hiệu chói, các mẫu phần tử ảnh phụ tại vị trí một phần hai phần tử ảnh được phát đầu tiên và được nội suy từ các mẫu phần tử ảnh nguyên bên cạnh sử dụng một bộ lọc FIR 6 đầu ra với các trọng số (1, -5, 20, 20, -5, 1)/32. Đôi khi tất cả các mẫu một phần hai phần tử ảnh là sẵn có, với mỗi mẫu một phần tư phần tử ảnh được sinh ra khi sử dụng phép nội suy tuyến tính hai chiều giữa các mẫu một phần hai hay cả phần tử ảnh bên cạnh (lấy trung bình ở các vị trí nguyên mẫu và nửa mẫu). Với thành phần tín hiệu màu (Chroma): Việc lấy mẫu nguồn Video định dạng 4:2:0, 1/8 các mẫu phần tử ảnh được dùng trong các thành phần màu (tương ứng với ¼ các mẫu phần tử ảnh trong thành phần màu). Các mẫu này được nội suy hai chiều(nội suy tuyến tính) giữa các mẫu nguyên phần tử ảnh màu. * Bù chuyển động: H264/MPEG Part 10 cho phép các Vector chuyển động không hạn chế, tức là chúng có thể nhắm ra ngoài miền ảnh. Trong trường hợp này các Frame tham chiếu được mở rộng ra ngoài biên ảnh bằng việc lặp lại các Pixel biên trước khi nội suy. Các thành phần Vector chuyển động được mã hoá vi sai khi dùng hoặc là giá trị trung bình (median) hoặc là dự đoán định hướng từ các khối xung quanh. Không có dự đoán thành phần Vector chuyển động ở các biên của Slice. H264/MPEG Part 10 hỗ trợ dự đoán bù chuyển động đa ảnh (Multi-Picture). Điều này có nghĩa là có nhiều hơn một ảnh được mã hoá trước đó có thể được sử dụng để tham chiếu cho dự đoán bù chuyển động. Hình sau minh hoạ khái niệm này Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 44 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet Hình 20: Bù chuyển động nhiều Frame – ngoài Vector chuyển động, các tham số tham chiếu ảnh (∆) cũng được truyền đi. Cả bộ mã hoá và bộ giải mã phải lưu trữ các ảnh tham chiếu được sử dụng cho dự đoán ảnh Inter trong bộ nhớ đêm đa ảnh (Multi-Picture). Bộ giải mã sao lưu lại bộ nhớ đệm đa ảnh của bộ mã hoá, theo dạng nhớ đệm ảnh tham chiếu và các hoạt động điều khiển quản lý bộ nhớ bất kỳ được xác định trong dòng bít. Trừ khi kích thước bộ nhớ đệm đa ảnh được đặt cho mỗi ảnh, chỉ số mà ảnh tham chiếu được định vị ở đó bên trong bộ nhớ đệm đa ảnh thì phải được ký hiệu. Tham số chỉ số tham chiếu cho mỗi khối luma bù chuyển động 16 x 16, 16 x 8, 8 x 16 hoặc 8 x 8. Ngoài các mode bù chuyển động được mô tả ở trên, Macro-Block P- Slice cũng có thể được mã hoá trong mode gọi là SKIP. Đối với mode này, cả tín hiệu lỗi dự đoán lượng tử hóa lẫn Vector chuyển động hoặc tham số chỉ số tham chiếu đều không được truyền đi. Các tín hiệu thiết lập lại thì thu được tương tự như cách với tín hiệu dự đoán của Macro-Block Inter 16 x 16, tức là tham chiếu tới ảnh đặt ở vị trí có chỉ số 0 trong bộ nhớ đệm đa ảnh. Nhìn chung Vector chuyển động được sử dụng cho việc thiết lập lại Macro-Block SKIP là đồng nhất với bộ dự đoán Vector chuyển động cho khối 16 x 16. Nếu các điều kiện đặc biệt được duy trì, Vector chuyển động Zero được sử dụng thay cho nó. 4. Bù chuyển động trong các Slice B (Bi-Direction Prediction Inter Frame) Dự đoán hai chiều rất có hiệu quả để giảm sự tương quan theo thời gian bằng việc sử dụng các ảnh tham chiếu. Các chuẩn nén hiện nay với các ảnh B sử dụng mode dự Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 45 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet đoán hai chiều, tức là chỉ cho phép kết hợp các tín hiệu dự đoán trước đó với các tín hiệu dự đoán sau. Một tín hiệu dự đoán được nhận từ một ảnh trong ảnh (Inter Picture) tiếp sau, hay từ một ảnh dự đoán trước, hoặc từ tín hiệu trung bình tuyến tính của hai tín hiệu dự đoán bù chuyển động. Hình 21: Ảnh nội suy B (dự đoán hai chiều) So với các tiêu chuẩn trước đó, H264/MPEG Part 10 đã tổng quát khái niệm Slice B và không những chỉ hỗ trợ một cặp dự đoán theo hướng forward/backward (tiến/lùi) mà còn cả hai cặp theo hướng forward/forward (tiến/tiến) và backward/backward (lùi/lùi). Tham chiếu tiến hai bước (two forward) có thể có lợi cho dự đoán bù chuyển động của một vùng vừa thay đổi cảnh trước đó, và tham chiếu lùi hai bước mà cảnh vừa thay đổi sau đó. Các Slice đã mã hoá dự đoán hai chiều có thể cũng được sử dụng để tham chiếu cho việc mã hoá trong ảnh của các ảnh khác. Như vậy, các ảnh khác có thể tham chiếu các ảnh B cho dự đoán chuyển động, phụ thuộc vào hoạt động điều khiển quản lý bộ nhớ của việc nhớ đệm đa ảnh. Do đó, sự khác nhau cơ bản giữa Slice B và Slice P là: các Slice B được mã hoá theo cách trong đó một số Macro-Block hoặc Block có thể dùng trung bình trọng số của hai giá trị dự đoán bù chuyển động riêng biệt cho việc hình thành các tín hiệu dự đoán. Nhìn chung các Slice B dùng hai bộ nhớ đệm ảnh tham chiếu khác nhau gọi là bộ nhớ đệm ảnh tham chiếu thứ nhất và thứ hai tương ứng. Các ảnh nào được xắp đặt đúng vị trí thực tế trong mỗi bộ nhớ đệm ảnh tham chiếu thì được đưa ra điều khiển bộ nhớ đệm ảnh. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 46 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet * Các mode dự đoán trong Slice Block: Trong các Slice B, có 4 dạng dự đoán ảnh Inter khác nhau được hỗ trợ: dự đoán List 0, List 1, hai hướng (bi-predictive)và trực tiếp (direct). Trong đó, dự đoán List 0 hiển thị rằng tín hiệu dự đoán được tạo thành nhờ dùng bù chuyển động từ ảnh của bộ nhớ đệm tham chiếu đầu tiên, thì ảnh của bộ nhớ đệm ảnh tham chiếu thứ hai được sử dụng cho việc xây dựng tín hiệu dự đoán nếu dự đoán List 1 được sử dụng. H264/MPEG Part 10 giới thiệu mode trực tiếp (direct-mode), nó không yêu cầu thông tin kèm theo (bên cạnh), nhưng nhận ảnh tham chiếu, kích cỡ khối, dữ liệu Vector chuyển động từ ảnh Inter tiếp theo. Dự đoán trọng số được làm tăng thêm do sự chuyển tiếp dần dần từ cảnh (scene) nọ sang cảnh kia. Trong mode dự đoán hai hướng, tín hiệu dự đoán được tạo thành bởi trung bình trọng số của tín hiệu dự đoán bù chuyển động List 0 và List 1. Dự đoán có trọng số sẽ được ta đề cập đến sau đây. * Dự đoán có trọng số (weighted Prediction) Tất cả các chuẩn nén đang có hiện nay đều coi các ảnh tham chiếu có trọng số bằng nhau, ví dụ như tín hiệu dự đoán thu được bằng cách lấy trung bình các tín hiệu tham chiếu có trọng số bằng nhau. Nhưng sự biến đổi dần dần từ cảnh nay sang cảnh khác thì cần các trọng số khác nhau. Sự biến đổi dần dần là rất phổ biến trong các chuyển động, chuyển cảnh từ mờ dần sang đen (fade to black) (fade to black : các mẫu thành phần chói của cảnh dần dần xấp xỉ zero, các mẫu thành phần màu dần dần xấp xỉ 128), một cảnh chuyển đổi sang mờ dần từ đen (fade from black). H264/MPEG Part 10 sử dụng phương pháp dự đoán có trọng số cho một Macro- Block của Slice P hay Slice B. Một tín hiệu dự đoán là p cho Slice B được thu được bằng các trọng số khác nhau từ hai tín hiệu tham chiếu là r1 và r2, ta có: P = w1 x r1 + w2 x r2 Trong đó w1 và w2 là các trọng số. Nó được xác định khác nhau theo hai loại ẩn (Implicit) và hiện (explicit) trong bộ mã hoá. Trường hợp hiện, các thừa số được truyền trong phần đầu của Slice (header Slice ). Trong trường hợp ẩn, các thừa số được tính toán dựa trên cớ sở khoảng cách thời gian giữa các ảnh. Trọng số nhỏ hơn được áp dụng nếu khoảng cách thời gian giữa ảnh tham chiếu và ảnh hiện tại là gần ; còn trọng số lớn hơn cho khoảng cách thời gian dài. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 47 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet * Việc phân chia các Macro-Block : Các Slice B dùng sự chia nhỏ Macro-Block tương tự như với các Slice P. Tức là với Macro-Block 16 x 16 có thể phân chia thành các phần với kích thước như: 16 x 16, 16 x 8, 8 x 16 và 8 x 8; còn với khối có kích thước 8 x 8 thì có thể chia thành các phần với kích thước như: 8 x 8, 8 x 4, 4 x 8 và 4 x 4. Ngoài ra với các mode dự đoán khác nhau (như dự đoán trực tiếp hay dự đoán hai chiều) có thể dùng các kích thước ảnh khác nhau.. Nếu không có tín hiệu dự đoán được truyền đi cho mode Macro-Block trực tiếp, nó sẽ được dùng đến mode SKIP Slice Block và có thể được mã hoá rất hiệu quả, tương tự như với mode SKIP trong các Slice P. Các Vector bù chuyển động cũng tương tự như đối với Slice P với những biến đổi thích hợp vì các khối bên cạnh có thể được mã hoá khi dùng mode dự đoán khác nhau. 5. Các mảng SP và SI. Trong các tiêu chuẩn trước đó, việc chuyển đổi hoàn toàn giữa các dòng bít (bitstream) thì có thể chỉ trong một ảnh I. Việc khôi phục lại các ảnh I tại các khoảng thời gian cố định cho phép truy cập ngẫu nhiên hay hiển thị lại nhanh. Tuy nhiên, mặt hạn chế của ảnh I là nó yêu cầu số lượng bít lớn, vì vậy các ảnh I không khai thác được sự dư thừa về mặt thời gian. H.264 giới thiệu các mảng chuyển đổi là SP (Switching P) và SI (Switching I) để chuyển đổi giữa các dòng bít được mã hoá ở các tốc độ bít khác nhau. Các tín hiệu dự đoán Inter của các dòng bít cho một Frame SP được chọn được lượng tử hoá trong miền biến đổi, sau đó được đưa vào dải biên độ thô hơn để cho phép mã hoá tốc độ bít thấp tín hiệu khác nhau giữa các dòng bít. Các Frame SI được xác định để thực hiện sự thích nghi hoàn thiện cho các Frame SP trong trường hợp mà dự đoán Inter không thể được sử dụng do các lỗi truyền dẫn. Trong hình 22 chỉ ra một ví dụ về cách sử dụng các ảnh SP chuyển đổi giữa các dòng bít khác nhau như thế nào. Chúng ta thừa nhận rằng có 2 dòng bít là P(1,k) và P(2,3) tương ứng với cùng một chuỗi bít được mã hoá tại các tốc độ bít khác nhau. Trong khoảng thời gian mỗi dòng bít được mã hoá, các ảnh SP được đặt tại các vị trí chuyển đổi từ một dòng bít đến dòng bít khác sẽ được cho phép. Trong trường hợp chuyển đổi từ dòng bít P(1,3) ở trên đến P(2,3), một ảnh SP là S(3) cho phép đưa ra ảnh P(2,3) đã giải mã bằng việc sử dụng P(1,2) trong dòng bít khác, thậm chí là bao gồm các bù chuyển động. Mảng SI được sử dụng tương tự như mảng SP, nhưng dự đoán được định dạng bằng việc sử dụng các mode dự đoán trong ảnh 4 x 4 từ các mẫu đã giải mã trước đó của ảnh đã được khôi phục lại. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 48 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet Hình 22: chuyển đổi sử dụng ảnh SP 3.3.3.3. Xác định Vector chuyển động (Motion Estimation) Trong khi thực hiện DCT và lượng tử hóa phục vụ cho nén không gian bên ngoài của một Frame, xác định vetor chuyển động được sử dụng để nén sự dư thừa về thời gian, ví dụ như trong miền thời gian qua hai Frame liên tiếp. Để làm một cảnh tiêu biểu, từ một phim truyện ví dụ từ 25 – 30 frame liên tiếp được hiển thị trong mỗi giây bằng tivi hay máy chiếu phim. Tuy nhiên, không may là trong một vài giây bất kỳ, một chuỗi các hình ảnh lưu lại giống nhau.Phông nền có thể không thay đổi tất cả, các đặc tính còn lại cũng tương tự và vì vậy các Frame liên tiếp rất giống nhau. Việc xác định vetor chuyển động thực hiện phép phân tích giữa hai frame liên tiếp và xác định những miền của hình ảnh có thay đổi hay chuyển động giữa các ảnh. Trong nhiều trường hợp một miền lưu lại chính xác vì nó đã ở trong các ảnh dự đoán vì thế nó đủ để cho từ mã hoá đến giải mã để hiển thị miền này khi nó đã ở trong ảnh dự đoán. Nếu miền di chuyển theo một hướng xác định, thuật toán xác định vetor chuyển động điều khiển quá trình giải mã để sử dụng các mảnh (piece) của hình ảnh như trong ảnh dự đoán, nhưng để di chuyển nó một lượng nhất định trong một hướng đã được xác định. Trên thực tế điều này được hoàn thành bằng việc gửi vetor chuyển động trong dòng bít MPEG -4. Vetor này sẽ chỉ dẫn để giải mã trong việc chọn các phần thích hợp của các ảnh giải mã trước đó được sử dụng trong sự thiết lập lại của một dòng khung hình. Nó được làm sạch vì thế tỷ lệ nén rất cao. Trên thực tế, một vài loại nội dung có thể được nén với phạm vi lớn dẫn tới thiếu các hành động trong hình ảnh. Một ví dụ là “lời mở Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 49 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet đầu” của nội dung , như là một người phát thanh viên, cái đó tạo ra một dòng MPEG -4 nén rất chặt. Đó có thể là một điều mong đợi, việc xác định vector chuyển động là một hàm ước lượng rất cao. Việc tìm kiếm qua một hình ảnh cho tất cả các vật có thể (các vùng) thì có thể thay đổi bất kỳ vị trí sẽ cần đến nhiều sự tính toán.Tuy nhiên chỉ có 1/15 đến 1/30 giây để làm điều này trước khi khung tiếp theo đến để xử lý. Để hiểu tốt hơn các cách khác nhau của việc thực hiện xác định vector chuyển động, hãy quan sát kỹ thao tác bàn tay. Về cơ bản, việc xácđịnh vector chuyển động cần chia hình ảnh thành các khối nhỏ hơn và lấy mỗi khối tại các thời gian và vị trí khác nhau trên phía trên cùng của ảnh trước đó để xác định nếu đó là cái khớp nhau. Việc so khớp có thể được làm bằng việc tính toán sự khác nhau giữa mỗi điểm ảnh (pixel) trong khối ảnh và việc so khớp vị trí trong các ảnh trước đó. Như vậy, một con số (giá trị SAD “Summation of Absolute Difference” = tổng sự khác nhau tuyệt đối) thu được cái đó biểu thị “how well- tốt như thế nào” đó là khối riêng biệt thích hợp với vị trí nào đó trong ảnh trước đó. Nếu giá trị SAD là không (zero) nghĩa là mỗi điểm ảnh (pixel) là chính xác trong cùng một vị trí như trong ảnh trước đó, cho nên vị trí mới cho khối đó tìm được. Nếu không một vị trí nào là khớp hoàn toàn, thì thuật toán có hai lựa chọn : - Đầu tiên : nó kết luận rằng tất cả sự khác nhau là quá lớn nghĩa là một câu hỏi đặt ra là một thực thể mới không tồn tại trong ảnh trước đó hay nó di chuyển quá xa so với vị trí trước hay vị trí sau đó. - Trong trường hợp thứ hai, giá trị SAD nhỏ khác không (nonezero) nó chấp nhận sự thoả mãn nhất tuy nhiên sự thoả mãn đó không hoàn toàn. Trong tiêu chuẩn MPEG -4, với mỗi 16 x 16 điểm ảnh trong một khối thì được thoả mãn cho tất cả các vị trí trong một vùng tìm kiếm, phạm vi đó xa bao nhiêu từ vị trí gốc một khối (block) có thể di chuyển giữa hai khung (frame). Điển hình vùng tìm kiếm là +/- 16 điểm ảnh. Khi đó, với mỗi vị trí tìm kiếm là 256(=16 x 16) điểm ảnh của mọi block thì được so sánh với ảnh trước đó. Với định dạng CIF độ phân giải là (352 x 288) tại 30 ảnh (frame) trên một giây (frame/s) cho dòng video, con số so sánh như sau: - Mỗi Macro-Block có: 16 x 16 = 256 pixel; - Mỗi Macro-BLock được thoả mãn trong mỗi vị trí tìm kiếm là: 16 x 16 =256; - Mỗi khung hình (frame) bao gồm 396 block; Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 50 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet - 30 khung hình được xử lý trong mỗi giây. Như vậy, tổng sự khác nhau (cả cộng và trừ) trong một giây kết quả là: 256 x 256 x 396 x 30 = 778.567.680. Ví dụ bộ xử lý đa năng có khả năng thực hiện cả việc cộng và trừ trong một chu kỳ đồng hồ, bộ xử lý có thể cần chạy với tần số là 779 MHz để thực hiện xác định vector chuyển động. Có hai giải pháp tiêu biểu như sau: 1. Nhẹ nhàng hơn là dùng thuật toán tối ưu nhất. 2. Có sự trợ giúp của phần cứng là xác định vector chuyển động. 3.3.3.4. Nén video 1. Nén theo miền thời gian. Những dư thừa về mặt thời gian là những hình ảnh giống nhau lặp đi lặp lại từ khung này sang khung khác, ví dụ như khung nền không chuyển động của một chương trình đối thoại trên truyền hình. Vì vậy, để giảm bớt độ dư thừa này ta phải tiến hành nén theo miền thời gian. Khi bộ mã hoá đang hoạt động ở chế độ “giữa khối”, khối này sẽ phải qua công đoạn hiệu chỉnh chuyển động. Quá trình này sẽ phát hiện ra bất kỳ chuyển động nào diễn ra giữa khối đó và một khối tương ứng ở một hoặc hơn một ảnh tham chiếu đã được lưu trữ từ trước, sau đó tạo ra khối “chênh lệch” hoặc “lỗi”. thao tác này làm giảm bớt dữ liệu trong mỗi Block một cách hiệu quả do chỉ phải biểu diễn chuyển động của nó mà thôi. Tiếp đến là công đoạn biến đổi Cosine rời rạc DCT để bắt đầu nén theo miền không gian. Khi bộ mã hoá hoạt động ở chế độ “trong khối”, khối này sẽ bỏ qua công đoạn hiệu chỉnh chuyển động và tới thẳng công đoạn DCT. 2. Nén theo miền không gian. Dư thừa về mặt không gian là các khối có chứa các điểm ảnh tương tự nhau hoặc giống hệt nhau. Trong nhiều trường hợp các điểm ảnh thường không thay đổi nhiều. Như vậy có nghĩa là tần số thay đổi giá trị điểm ảnh trong khối này là rất thấp. Những khối như thế được gọi là khối có tần số không gian thấp. Bộ lập mã lợi dụng đặc điểm này bằng cách chuyển đổi các giá trị điểm ảnh của khối thành các thông tin tần số trong công đoạn biến đổi Cosine rời rạc. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 51 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet * Biến đổi Cosine rời rạc (DCT) Biến đổi Cosine là một hàm mà làm biến đổi dữ liệu hỉnh ảnh được thể hiện trong hệ toạ độ X-Y sang miền tần số. Công đoạn DCT biến đổi các giá trị điểm ảnh của khối thành một mạng lưới gồm các hệ số ngang dọc đặt trong không gian tần số. Khi khối ban đầu có tần số không gian thấp, DCT sẽ tập hợp năng lượng tần số vào góc tần số thấp của mạng lưới. Nhờ vậy, những hệ số tần số thấp ở góc đó sẽ có giá trị cao hơn. Một số lượng lớn các hệ số khác còn lại trên mạng lưới đều là các hệ số có tần số cao, năng lượng thấp và có giá trị thấp. Tại đây, hệ số DC và một vài hệ số tần số thấp sẽ hàm chứa phần lớn thông tin được mô tả trong khối ban đầu. Có nghĩa là bộ lập giải mã có thể loại bỏ phần lớn hệ số tần số cao còn lại mà không làm giảm chất lượng hình ảnh của khối. Bộ lập mã chuẩn bị các hệ số cho công đoạn này bằng cách quét chéo mạng lưới theo đường zig-zag, bắt đầu từ hệ số DC và qua vị trí của hệ số ngang dọc tăng dần. Do vậy nó tạo ra được một chuỗi hệ số được sắp xếp theo tần số. Ưu điểm độc đáo hơn của H264/MPEG Part 10 là ở chỗ nó sử dụng biến đổi không gian nguyên(gần giống với DCT) đối với các khối 4 x 4 điểm ảnh. Ta xét biến đổi nguyên cho cấu trúc 4 x 4 như sau: + Cho hệ số DCT của khối dữ liệu đầu vào 4 x 4 là F, công thức chính xác được cho là : X=HFHT (1) Trong đó ma trận H là HT là ma trận chuyển vị của ma trận H. Các giá trị a,b, c là : Tuy nhiên để cho đơn giản ta có thể cho giá trịc =0.5 và để đảm bảo tính trực giao thì các giá trị của a, b được lựa chọn như sau: Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 52 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet Do phép nhân trong quá trình biến đổi được tránh do phải kết hợp với quá trình lượng tử hoá, vì vậy phương trình (1) được viết thành : Trong đó : + Ma trận H được cho là : + Ma trận SF là : Ký hiệu biểu diễn phép nhân tích trực tiếp phần tử với phần tử (the element by element multiplication ) của ma trận tương ứng. So sánh với MPEG-2, thì ta thấy trong từng Slice sẽ có 1 khối đầu tiên chứa giá trị hệ số DC và các khối tiếp theo sẽ có những giá trị sẽ có những giá trị khác nhau, những khối này được gán thêm giá trị dự đoán khối, tạo thành chuỗi dòng khối. Còn với MPEG- 4 có thể dự đoán xa hơn. Chỉ cần một khối cũng có thể dự đoán toàn bộ hàng trên cùng của hệ số hoặc có thể dự đoán toàn bộ cột bên trái của hệ số từ 1 khối đầu tiên. * Lượng tử hoá Quá trình lượng tử hoá là quá trình biến đổi có mất thông tin, làm giảm bớt số lượng bít cần thiết để biểu diễn các hệ số. Dựa trên một hệ số tỷ lệ xích (có thể điều chỉnh bởi bộ mã hoá), bộ lượng tử hoá sẽ cân đối tất cả các giá trị hệ số. Do phần lớn các hệ số đi ra từ DCT đều mang năng lượng cao nhưng giá trị thấp nên bộ lượng tử hoá bắt đầu bằng một số giá trị cao ở đầu chuỗi, theo sau là một hàng dài các hệ số đã được Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 53 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet lượng tử hoá về 0. Bộ lập mã Entropy có thể theo dõi số lượng các giá trị 0 liên tiếp trong một chuỗi mà không cần mã hoá chúng, nhờ vật giảm bớt được khối lượng dữ liệu trong mỗi chuỗi. Để lượng tử hóa các hệ số biến đổi, H264/MPEG Part 10 dùng phương pháp lượng tử hóa vô hướng. Các bộ lượng tử hoá được lựa chọn cho mỗi Macro-Block là dựa vào các tham số lượng tử hoá QP (Quantization Parameter). Các bộ lượng tử hoá được sắp xếp sao cho có sự tăng khoảng 12.5% trong kích thước bước lượng tử hoá khi QP tăng một đơn vị. Nhìn chung các hệ số biến đổi được lượng tử hoá của khối được quét zig-zag và được truyền đi nhờ dùng phương pháp mã hoá Entropy. * Mã hoá Entropy Mã hoá Entropy trong các tiêu chuẩn trước đó như MPEG -1,2,4, H.261, và H.263 thì cơ bản là trên các bảng cố định mã hoá biến đổi theo chiều dài (VLC). Các tiêu chuẩn đó xác định các bộ mã hoá từ là cơ bản trên sự phân bố xác suất của các video chung thay cho mã Huffman chính xác đến các chuỗi video. Tuy nhiên H.264 sử dụng các VLC để mà khớp với một biểu tượng được mã hoá cơ bản trên các đặc trưng của ngữ cảnh. Tất cả các phần tử cú pháp, ngoại trừ các dữ liệu dư thừa, được mã hoá bằng mã Exp- Golomb. Để mà đọc được các dữ liệu dư thừa (các hệ số biến đổi đã lượng tử hoá) thì ta sử dụng phương pháp quét Zig-Zag (xen kẽ nhau) hay quét lần lượt (không xen kẽ hay phân trường). Để mã hoá dữ liệu dư thừa, một phương pháp phức tạp hơn gọi là CAVLC(mã hoá chiều dài biến đổi tương thích theo tình huống) được phát triển. Ngoài ra, CABAC (mã hoá thuật toán nhị phân tương thích theo tình huống) được phát triển trong Mail Profile và High Profile, CABAC có khả năng mã hoá tốt hơn nhưng độ phức tạp cao hơn so với CAVLC. + Mã hoá chiều dài biến đổi tương thích theo tình huống - Context-based Adaptive Variable Length Coding (CAVLC) Sau khi biến đổi và lượng tử hoá, xác suất các hệ số là zero hay +/-1 là rất lớn. CAVLC xử lý các hệ số zero và +/-1 theo cách khác nhau với các mức của các hệ số. Tổng số các số zero và +/-1 được mã hoá. Các hệ số khác các mức của chúng được mã hoá. + Mã hoá thuật toán nhị phân tương thích theo tình huống – Context –based Adaptive Binary Arithmetic Coding (CABAC) CABAC dùng thuật toán để mã hoá, để đạt được hiệu quả nén tốt hơn, mô hình có khả năng cho mỗi phần tử biểu tượng được cập nhật như trong hình 28. Quá trình xử lý mã hoá CABAC bao gồm 3 bước cơ bản sau đây: Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 54 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet Mô hình hoá tình huống Nhị phân hoá Ước lượng xác suất Phương tiện mã hoá Cập nhật ước lượng xác suất Bộ mã hoá thuật toán nhị phân tương thích Hình 23: Sơ đồ khối của CABAC - Bước 1: Nhị phân hoá; một biểu tượng giá trị của nó không phải là nhị phân (như một hệ số biến đổi hay Vector chuyển động) là bản đồ duy nhất để chuỗi nhị phân trước đó được mã hoá thuật toán. Quá trình xử lý này thì giống như việc xử lý của việc biến đổi một biểu tượng dữ liệu thành mã hoá chiều dài biến đổi, nhưng mã nhị phân được mã hoá tốt hơn bằng bộ mã hoá thuật toán trước đó để truyền. - Bước 2: phạm vi làm mô hình: một phạm vi mô hình thì có khả năng cho một hay nhiều phần tử của biểu tượng đã nhị phân. Một mô hình có khả năng được lựa chọn như để việc lựa chọn sự tương ứng có thể phụ thuộc vào các phần tử cú pháp đã mã hoá trước đó. - Bước 3: thuật toán mã hoá nhị phân:Một bộ mã hoá thuật toán mã hoá mỗi phần tử theo mô hình có khả năng lựa chọn cùng với một việc cập nhật mô hình tiếp sau. 3.3.3.5. Bộ lọc tách khối Một đặc trưng riêng của mã hoá dựa trên cơ sở khối là có thể nhìn thấy các cấu trúc khối. Các mép của khối được cấu trúc lại với độ chính xác kém hơn các phần tử ảnh (pixel) bên trong và nhìn chung dạng khối (blocking) được xem là một trong những nhiễu “artifact” dễ nhìn thấy nhất với các phương pháp nén hiện tại. Do nguyên nhân này mà H.264/MPEG-4 Part 10 sử dụng bộ lọc tách khối (Deblocking Filter) để làm giảm hiện tượng tách khối, ngăn chặn việc truyền của tạp âm mã hoá được tích luỹ. Tại bộ lọc này, cường độ lọc được điều khiển bởi giá trị của nhiều phần tử cấu trúc. Các chuẩn nén trước đó đã không sử dụng bộ lọc tách khối bởi vì việc bổ sung rất phức tạp, mặt khác việc chia các nhiễu khối có thể được làm giảm bằng việc sử dụng MC chính xác một nửa phần tử ảnh. Một nửa phần tử ảnh thu được bằng cách lọc tuyến tính (bilinear filtering)của các phần tử ảnh nguyên vẹn bên cạnh đã phát huy vai trò làm “nhẵn” của mã hoá tạp âm trong miền phần tử ảnh nguyên vẹn. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 55 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet H.264 sử dụng bộ lọc tách khối để việc thực hiện việc mã hoá cao hơn mặc dù việc thực hiện rất phức tạp. Việc lọc được áp dụng cho các mép của các Block 4 x 4 trong một Macro-Block. Quá trình điều khiển bộ lọc tách khối thành phần chói được thực hiện trên 4 cạnh của mẫu 16 x 16 (16-sample) và quá trình xử lý bộ lọc tách khối cho mỗi thành phần màu được thực hiện trên 2 cạnh của mẫu 8 x 8. Bộ lọc tách khối được áp dụng tương thích với một vài mức(level) sau: - Mức mảng (Slice Level): Mặt mạnh của của việc lọc toàn bộ có thể được điều chỉnh tới các đặc điểm riêng của chuỗi video. - Mức cạnh của khối (Block – edge Level ): mặt mạnh của việc lọc là phụ thuộc vào việc quyết định dự đoán Inter/Intra, các chuyển động khác nhau, và việc hiển thị của các dư thừa mã hoá trong 2 Block tham gia. Đặc biệt việc lọc mạnh được áp dụng cho các Macro-Block với các đặc điểm rất phẳng để loại bỏ “sự nghiêng nhân tạo (tilting artifacts)”. - Mức lấy mẫu (Sample Level): các giá trị mẫu và các điểm bắt đầu phụ thuộc vào bộ lượng tử hóa có thể dừng việc lọc cho mỗi mẫu riêng biệt. Tính khối bị giảm mà không ảnh hưởng nhiều đến độ sắc nét của nội dung, kết quả là đã cải thiện được đáng kể chất lượng của hình ảnh. Hình 24: Tác dụng của bộ lọc tách khối đối với ảnh được nén nhiều Trái: không có bộ lọc tách khối; Phải: có bộ lọc tách khối Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 56 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet 3.3.4. Kỹ thuật giải mã video Giải mã Entropy Giải lượng tử hoá &Biến đổi ngược ∑ Bộ lọc tách khối Lựa chọn Inter/Intra Mode Ảnh dự đoán Bù chuyển động Bộ đệm ảnh Dòng Bít đầu vào + + Video đầu ra Hình 25: Sơ đồ giải mã Video H264/MPEG -4 Part 10 3.3.4.1. Bù chuyển động Bù chuyển động thực hiện việc thiết lập lại các khung hình (frame) trên cơ sở các Vector đã nhận được, dữ liệu khung hình delta đã nhận (dữ liệu khác nhau giữa hai khung hình liên tiếp) và hình ảnh đã mã hoá trước đó. Vì vậy, nếu dữ liệu delta được nhận, thì dòng khung hình được thiết lập lại bằng việc cộng dữ liệu khung hình delta với dữ liệu từ khung hình đã được giải mã trước đó trong vị trí riêng đã được chỉ dẫn bằng Vector chuyển động đã nhận được. 3.3.4.2. Khôi phục lỗi (Error Resiliency) Một nhiệm vụ quan trọng nhất của bộ giải mã là làm thích hợp và khôi phục lại từ các lỗi chắc chắn xảy ra, đặc biệt là khi kết nối qua các liên kết dễ xảy ra lỗi như mạng không dây. Lỗi đàn hồi bao gồm ba loại kỹ thuật khác nhau được sử dụng khi một lỗi được phát hiện. Việc phát hiện lỗi có thể xảy ra trong 3 trường hợp sau: - Trong trường hợp có một lỗi, lỗi đó thực sự được phát hiện; - Trong trường hợp có một lỗi, lỗi đó không được phát hiện; - Trong trường hợp không có lỗi, bộ giải mã biết là không có lỗi; Nếu lỗi được phát hiện, hệ thống bộ giải mã lỗi đàn hồi cố gắng che giấu lỗi. Các đặc trưng của lỗi đàn hồi có thể được bổ sung trong hệ thống MPEG -4 bằng việc sử Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 57 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet dụng tiêu chuẩn thiết lập các công cụ được cung cấp bằng tiêu chuẩn MPEG -4 để phát hiện lỗi. Cho một hệ thống MPEG -4 tương thích, có khả năng cùng làm việc với hệ thống MPEG -4 khác, nó phải tuân theo bộ công cụ chuẩn hoá phát hiện lỗi. Tuy nhiên, phương pháp mà các bộ công cụ được bổ sung làm tăng nơi cung cấp bộ Codec, theo cách đó, nó có thể làm cho tốt hơn hoặc xấu hơn khi thiết lập các thuật toán trong hệ thống tương thích hoàn toàn với tiêu chuẩn MPEG -4. 1. Đồng bộ lại ( Resynchronisation) Bộ công cụ Đồng bộ lại cố gắng để có thể đồng bộ lại giữa bộ giải mã và dòng bít sau khi một lỗi hay một loạt lỗi được phát hiện. Nhìn chung, dữ liệu giữa điểm đồng bộ trước bị lỗi và điểm đầu tiên nơi mà sự đồng bộ đã được thiết lập lại, thì được loại bỏ. Nếu như phương pháp đồng bộ lại có ảnh hưởng đến việc xác định số lượng dữ liệu đã bị loại bỏ bởi bộ giải mã, khi đó khả năng của các loại công cụ khác nhau để khôi phục dữ liệu hay để che giấu các ảnh hưởng của lỗi thì phải được nâng cấp rất nhiều. 2. Khôi phục dữ liệu (Data Recovery) Sau khi đồng bộ vừa được thiết lập lại, các công cụ khôi phục dữ liệu cố gắng khôi phục lại dữ liệu thường bị mất. Các công cụ đó không chỉ đơn giản là mã hoá đúng các lỗi, mà kỹ thuật đòi hỏi cao hơn là mã hoá dữ liệu cho một loại lỗi đàn hồi. Ví dụ, một bộ công cụ riêng vừa được xác nhận bằng nhóm Video (Video Group) là mã hoá chiều dài biến đổi ngược RVLC (Reversible Variable Length Codes). Trong phương pháp này, các từ mã hoá chiều dài biến đổi được thiết kế để đọc cả hướng tiến cũng như hướng lùi. Hình 26 minh hoạ cho ví dụ trên sử dụng một RVLC được chỉ ra trong hình dưới đây. Nhìn chung, trong một tình huống như vậy, nơi mà một sự tăng vọt của các lỗi làm sai lạc một phần của dữ liệu, tất cả dữ liệu giữa hai điểm đồng bộ có thể bị mất. Tuy nhiên, được chỉ ra trong hình 26, một RVLC làm cho một vài dữ liệu được khôi phục. Chú ý đến các thông số QP và HEC trong hình sau thể hiện các trường dành riêng (Field Reserved) trong phần đầu header gói video cho thông số lượng tử hoá và mã hoá mở rộng header, theo thứ tự định sẵn. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 58 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet Hình 26: Ví dụ về Mã hoá chiều dài biến đổi ngược 3.3.5 So sánh hiệu quả mã hoá của H264/MPEG Part 10 với các tiêu chuẩn trước đó Qua quá trình tìm hiểu kỹ thuật mã hoá của H264/MPEG Part 10 và của MPEG-2, ta thấy một số ưu điểm của H264/MPEG Part 10 so với MPEG-2 là: • Dự đoán hệ số AC/DC mà ở đó các hệ số Macro-Block được dự đoán từ các hệ số trong các Macro-Block bên cạnh và từ một số dữ liệu trong bản thân Macro-Block . Việc giải mã Macro-Block phải thay đổi khác với thuật toán dòng bít đơn giản trước đó để đưa vào một số tính toán cho mỗi hệ số. • Các công cụ toán học mới như CAVLC và CABAC cho sự cải thiên đáng kể trong mã hoá Entropy. • Trong khi bù chuyển động trong MPEG-2 Part 2 được hạn chế đến nội suy hai chiều ½ pixel thì H264/MPEG Part 10 cho phép các Vector chuyển động chính xác đến ¼ pixel và sau đó dùng nội suy nhiều chiều(Bi-cubic). Nội suy nhiều chiều tạo ra sự thích hợp hơn cho Macro-Block , do vậy giảm năng lượng được lưu trong ảnh lỗi, làm giảm số bít cần phải mã hoá. Tuy nhiên nội suy nhiều chiều đòi hỏi nhiều thuật toán hơn, sự phức tạp thực hiện bù chuyển động cao hơn. • Việc dùng bộ lọc tách khối ở cả hai phía bộ mã hoá và bộ giải mã làm giảm sự không liên tục ở các biên của khối do các hệ số chất lượng khác nhau được sử dụng cho các khối cạnh nhau gây ra. Điều này làm giảm nhiễu khối thường thấy trong mã hoá MPEG-2 tốc độ bít thấp vì nó nằm trong vòng bù chuyển động, bộ mã hoá và bộ giải mã vẫn còn trong sự đồng bộ. Công cụ này có ảnh hưởng đến tính phức tạp của bộ mã hoá và bộ giải mã vì số biên khối và cũng vì thực tế là bộ lọc tách khối cũng không thể được thực hiện như một module riêng biệt. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 59 Chuơng 3: Chuẩn nén Video MPEG -4 và ứng dụng trong truyền hình trên mạng Internet • Kích thước khối thay đổi từ 16 x 16 xuống còn 4 x 4. Khi kích thước khối giảm cung cấp độ lợi mã hoá mà không có sự tăng đáng kể tính phức tạp. • Các Header tương đối lớn trong MPEG-2(trong Sequence, Picture, Slice ) để biểu diễn một OverHead cố định trong dòng dữ liệu. OverHead này là không đáng kể trong tốc độ 6 Mb/s nhưng ở tốc độ vài trăm Kb/s thì chúng dễ nhận thấy. Vì vậy H264/MPEG Part 10 thực hiện các Header hiệu quả hơn. Qua quá trình thực nghiệm đã cho rằng sự tiết kiệm tốc độ bít trung bình của H264/MPEG Part 10 so với MPEG-2 là khoảng 65%. Như vậy hiệu quả của nén H264/MPEG Part 10 tăng lên đáng kể. Hiệu quả nén tăng của H264/MPEG Part 10 tạo ra các phạm vi ứng dụng và các cơ hội kinh doanh mới Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 60 Kết luận KẾT LUẬN Khoá luận “Các chuẩn nén và ứng dụng truyền Video trên mạng Internet” đã đạt được một số kết quả sau: Nêu lên được thế nào là truyền hình trên mạng Internet và cách thức truy cập để xem được các chương trình truyền hình. Tìm hiểu được nguyên tắc chung trong việc nén tín hiệu video của nhóm MPEG là nén trong ảnh và nén liên ảnh kết hợp với dự đoán bù chuyển động- đầy là sự khác biệt so với các chuẩn nén JPEG, M-JPEG… trước đó. Và trong tập hợp các chuẩn nén MPEG, mỗi chuẩn nén khác nhau có một nhiệm vụ khác nhau được đặt ra. Với MPEG-1 nhiệm vụ là mã hoá âm thanh và hình ảnh để lưu trữ trong các thiết bị lưu trữ như: CD-ROM, đĩa quang… sử dụng định dạng trung gian cho nguồn tín hiệu là SIF để phù hợp với mỗi hệ thống quét truyền hình khác nhau hiện nay. MPEG -2 kế thừa tất cả các tiêu chuẩn của MPEG -1 và mục đích nhằm hỗ trợ cho việc truyền Video số, MPEG -2 chia ảnh thành các Macro-Block và sử dụng phương pháp nén trong ảnh với ảnh I và nén liên ảnh kết hợp dự đoán bù chuyển động với các ảnh P và ảnh B. Tỷ số nén của MPEG -2 tốt hơn nhiều so với MPEG -1. MPEG -4 với nhiệm vụ là nhằm phát triển các chuẩn xử lý, mã hoá và hiển thị ảnh động, audio và các tổ hợp của chúng. MPEG -4 khác so với MPEG -2 là trong một khung hình thì nó không mã hoá toàn bộ khung hình mà nó miêu tả từng đối tượng riêng rẽ và sau đó mới mã hoá từng đối tượng đó. MPEG -4 chia các Macro-Block thành các Block nhỏ hơn. Trong khi bù chuyển động trong MPEG-2 Part 2 được hạn chế đến nội suy hai chiều ½ pixel thì H264/MPEG Part 10 cho phép các Vector chuyển động chính xác đến ¼ pixel và sau đó dùng nội suy nhiều chiều(Bi-cubic). Và còn nhiều điểm ưu việt khác nữa. Do đó hiệu quả nén của chuẩn nén MPEG -4 tốt hơn so với MPEG -2. MPEG -7 là một chuẩn dùng để mô tả các nội dung Multimedia, chứ không phải là một chuẩn cho nén và mã hoá audio/ảnh động như MPEG-1, MPEG-2 hay MPEG-4. MPEG-7 sử dụng ngôn ngữ đánh dấu mở rộng XML(Extansible Markup Language) để lưu trữ các siêu dữ liệu Metadata, đính kèm timecode để gắn thẻ cho các sự kiện, hay đồng bộ các dữ liệu. Với nhiều tính ưu việt như trên, một hướng đặt ra là: liệu MPEG -4 có thể sử dụng cho việc lưu trữ như MPEG -1 hay dùng trong công nghệ truyền hình số như MPEG -2. Thực tế cho thấy, ngoài các ứng dụng trên môi trường mạng nói chung và truyền hình tương tác nói riêng – theo APB(04/2004)- các Đài Truyền hình Nhật Bản như NHK, TBS, NTV TV Asahi và TV Tokyo đã chính thức chấp nhận đưa chuẩn Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 61 Kết luận H264/MPEG Part 10 cho phát sóng số mặt đất, cho thu di động, đây cũng là một khả năng trong những khả năng còn tiềm ẩn trong chuẩn mã hoá và trình diễn video của H264/MPEG Part 10. Do vậy, đề tài này có thể nghiên cứu bước tiếp theo là nghiên cứu ứng dụng H264/MPEG Part 10 cho truyền hình số và cho thu di động hay có thể cải tạo chất lượng truyền hình Internet để đạt được chất lượng hình ảnh tốt như truyền hình số hiện nay. Mai Thị Lan Oanh Trang ĐẠI HỌC CÔNG NGHỆ - K46 DB- 62 TÀI LIỆU THAM KHẢO [1] Đinh Quốc Tuấn - Đề tài nghiên cứu khoa học cấp nghành “Truyền hình trên mạng Internet và giải pháp cung cấp chương trình VTV qua mạng Internet ”, Trung tâm tin học và Đo lường – ĐTHVN, Hà Nội – 7/2004. [2] Đỗ Hoàng Tiến, Vũ Đức Lý - Truyền hình số, Nhà xuất bản Khoa Học và Kỹ Thuật, Hà Nội – 2001. [3] Ngô Thái Trị - Truyền hình số, Hà Nội – 2002. [4] Nguyễn Minh Hồng – Chuyên đề “Chuẩn nén MPEG -4 và khả năng ứng dụng trong truyền hình”, Trung tâm Tin học và Đo lường – ĐTHVN,Hà Nội-1/2001. [5] Nội san Khoa học Kỹ thuật Truyền hình – các số trong các năm từ 2001-2005. [6] H.264 & IPTV Over DSL – White Paper On H264/MPEG-4 -2004, [7] Hantro Products Oy, Oulu, Finland “ MPEG4 Codec Overview ” 1 ISO/IEC JTC1/SC29/WG11 N4030 March 2001- [8] José M. Martínez (UAM-GTI, ES) ,“MPEG-7 Overview“- ISO/IEC JTC1/SC29/WG11N5525 Pattaya, March 2003 - [9] Ralf Schäfer, Thomas Wiegand and Heiko Schwarz - “The emerging H.264/AVC Standard “- EBU TECHNICAL REVIEW – January 2003 [10] Soon-kak Kwon, A. Tamhankar, K.R. Rao - “Overview of H.264 / MPEG-4 Part 10 ” [11] Thomas Wiegand, Gary J. Sullivan, Gisle Bjontegaard, and Ajay Luthra “Overview of the H.264 / AVC Video Coding Standard ” - IEEE TRANSACTIONS ON CIRCUITS AND SYSTEMS FOR VIDEO TECHNOLOGY, JULY 2003. [12] Mai Thị Lan Oanh ĐẠI HỌC CÔNG NGHỆ - K46 DB-

Các file đính kèm theo tài liệu này:

  • pdfa2.PDF