1. Trang chủ
  2. » Giáo Dục - Đào Tạo

Kỹ thuật nén video thử nghiệm dựa trên mã nguồn mở

73 176 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 73
Dung lượng 2,72 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Trong hoàn cảnh mạng thế hệ mới NGN và di động thế hệ sau tiếp tục đòi hỏi phải hoàn thiện hơn các thuật toán nén - giải tín hiệu video số với mục đích làm cho chất lượng hình ảnh tốt hơ

Trang 1

LỜI CAM ĐOAN

Tôi cam đoan đây là công trình nghiên cứu của riêng tôi

Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác

Trang 2

LỜI CÁM ƠN Luận văn thạc sĩ chuyên ngành công nghệ thông tin với đề tài “Kỹ thuật nén Video

& thử nghiệm dựa trên mã nguồn mở” là kết quả của quá trình cố gắng không

ngừng của bản thân và được sự giúp đỡ, động viên khích lệ của các thầy, bạn bè đồng nghiệp và người thân Qua trang viết này tôi xin gửi lời cảm ơn tới những người đã giúp đỡ tôi trong thời gian học tập - nghiên cứu khoa học vừa qua

Tôi xin tỏ lòng kính trọng và biết ơn sâu sắc đối với thầy giáo PGS.TS Nguyễn Văn Tam đã trực tiếp tận tình hướng dẫn cũng như cung cấp tài liệu thông tin khoa học cần thiết cho luận văn này

Xin chân thành cảm ơn Lãnh đạo trường Đại học mở Hà Nội, khoa Công nghệ thông tin đã tạo điều kiện cho tôi hoàn thành tốt công việc nghiên cứu khoa học của mình

Cuối cùng tôi xin chân thành cảm ơn đồng nghiệp, đơn vị công tác đã giúp đỡ tôi trong quá trình học tập và thực hiện Luận văn

TÁC GIẢ

Vũ Quang Huy

Trang 3

MỤC LỤC

LỜI CAM ĐOAN i

LỜI CÁM ƠN ii

MỞ ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU VỀ NÉN VIDEO 3

1.1 Giới thiệu 3

1.2 Độ dư trong tín hiệu video, nhu cầu cần thiết nén video 4

1.2.1 Độ dư trong tín hiệu video 4

1.2.3 Nhu cầu cần thiết nén video 7

1.3 Khái niệm về nén video 7

1.4 Yêu cầu về ứng dụng nén video 8

1.5 Kết luận chương 1 10

CHƯƠNG 2: CHUẨN MÃ HÓA, NÉN ẢNH JPEG VÀ MÃ HÓA, NÉN VIDEO MPEG-4 PART 10/H.264 11

2.1 Kỹ thuật mã hóa, nén ảnh JPEG 11

2.1.1 Giới thiệu chung 11

2.1.2 Phương pháp nén ảnh chuẩn JPEG 12

2.2 Chuẩn mã hóa và nén video MPEG-4 Part 10/H.264 16

2.2.1 Cấu trúc chuẩn MPEG-4 Part10 16

2.2.3 Kỹ thuật nén video MPEG-4 Part 10/ H.264 22

2.3 Kết luận chương 2 46

CHƯƠNG 3: THỰC NGHIỆM CHUẨN NÉN VIDEO H.264 TRÊN CÁC PHẦN MỀM MÃ NGUỒN MỞ 47

3.1 Công cụ nén video mã nguồn mở FFMPEG 47

3.1.1 Giới thiệu 47

3.1.2 Cài đặt FFMPEG trên hệ điều hành Ubuntu 12.04 47

3.1.3 Các tham số sử dụng trong FFMPEG 50

3.1.4 Nén/giải nén video theo chuẩn H.264 với FFMPEG 55

3.2 Thực nghiệm và đánh giá kết quả 55

3.2.1 Môi trường mô phỏng và một số kịch bản thực nghiệm 55

3.2.2 Kết quả thực nghiệm và đánh giá 57

3.3 Kết luận chương 3 65

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 66

TÀI LIỆU THAM KHẢO 67

Trang 4

DANH MỤC HÌNH VẼ

Hình 1.1 Nén video trong truyền video 4

Hình 1.2 (a) khung hình thứ nhất và (b) thứ hai của dãy ảnh "Foreman" 6

Hình 2.1 Sơ đồ thuật toán nén JPEG 12

Hình 2.2 Sơ đồ thuật toán giải nén JPEG 13

Hình 2.3 Cấu trúc phân lớp H.264 17

Hình 2.4 Cấu trúc dòng bit 17

Hình 2.5 Minh họa một chuỗi thành phần RBSP 18

Hình 2.6 Cấu trúc dòng bit MPEG-4 H.264/AVC 21

Hình 2.7 Sơ đồ khối mã hóa H.264/AVC 22

Hình 2.8 Sơ đồ khối giải mã H.264/AVC 23

Hình 2.9 Sơ đồ khối mã hóa ảnh I 24

Hình 2.10 Phân chia MB - Sub MB cho bù chuyển động 25

Hình 2.11 Chỉ ra thứ tự sắp xếp của các VOP 25

Hình 2.12 Hiệu ứng mờ dần 28

Hình 2.13 Quét Zig-Zag cho kiểu mã hóa frame 34

Hình 2.14 Quét Zig-Zag cho kiểu mã hóa field 34

Hình 2.15 Minh họa quá trình mã hóa xen kẽ 35

Hình 2.16 Trật tự hiện thị của các bức ảnh 36

Hình 2.17 Thứ tự luồng Video khác với trật tự hiển thị 36

Hình 2.18 Sơ đồ khối nguyên lý nén ảnh P 37

Hình 2.19 Sơ đồ khối nguyên lý nén ảnh B 38

Hình 2.20 Các mẫu dự đoán trong ảnh B 40

Hình 2.21 Nguyên lý bù chuyển động tực tiếp Vector chuyển động trước và sau MVf, MVb tách ra từ MV trong VOP tham chiếu ngược 41

Hình 2.22 Hai bức ảnh liên tiếp trong chuỗi Video 43

Hình 2.23 Phần dư giữa frame 1 và frame 2 43

Hình 2.24 Vector chuyển động 44

Hình 2.25 Minh họa dự đoán liên khối của H.264/AVC 44

Hình 2.26 Chuyển mạch luồng sử dụng slice I 46

Hình 3.1.Giao diện sau khi cài đặt xong FFMPEG trên Ubuntu 12.04 50

Hình 3.2 Kết quả thực hiện nén video Foreman_CIF.y4m sang H.264 58

Hình 3.3 Ví dụ kết quả tính chỉ số PSNR 58

Trang 5

DANH MỤC BẢNG

Bảng 2.3 Các thành phần RBSP 18

Bảng 2.4 Giá trị Qstep được quy định trong tiêu chuẩn 31

Bảng 2.5 Bảng giá trị thừa số co dãn V 33

Bảng 3.1 Các tham số cho bộ mã hóa x264 56

Bảng 3.2 Kết quả nén video 1-pass với video NEWS 59

Bảng 3.3 Kết quả nén video 2-pass với video NEWS 60

Bảng 3.4 Kết quả nén video 1-pass với video FOREMAN 61

Bảng 3.5 Kết quả nén video 2-pass với video FOREMAN 62

Bảng 3.6 Kết quả nén video 1-pass với video BUS 63

Bảng 3.7 Kết quả nén video 2-pass với video BUS 64

Trang 6

BẢNG KÝ HIỆU, CHỮ VIẾT TẮT

Ký hiệu, viết

tắt

Ý nghĩa tiếng Anh Ý nghĩa tiếng Việt

AVC Advanced Video Coding Mã hóa video tiên tiến

DCT Discrete Cosine Tranform Biến đổi cosin rời rạc

FFMPEG Fast Forward MPEG

HVS Human Visual System Hệ thống nhìn của con người IDR Instantaneous Decoding Refresh Giải mã ngay lập tức

IEC International Electrotechnical

Commission

Ủy ban Kỹ thuật điện tử quốc tế

IEC International Electrotechnical

Commission

Ủy ban Kỹ thuật điện tử quốc tế

Telecommunication Union

Liên minh Viễn thông quốc tế

IDCT Inverse Discrete Cosine

NTSC National Teltevision System

Committee

Hệ video được sử dụng ở Bắc và Nam Mỹ với tần số quét ngang là

60MHz NAL Network Abstraction Layer Lớp mạng trừu tượng

PSNR Peak Signal-to-Noise Ratio Tỉ số tín hiệu cực đại trên nhiễu VLC Variable Length Coding Mã chiều dài thay đổi

Trang 7

MỞ ĐẦU

1 Lý do lựa chọn đề tài

Những năm gần đây, truyền tải và lưu trữ video càng trở nên phổ biến hơn

do một số yếu tố như giá thành các sản phẩm liên quan như máy quay video HD,

TV màn hình lớn, các thiết bị lưu trữ… đang giảm rất nhanh Bên cạnh đó, các bộ vi

xử lý mới có tốc độ cao hơn rất nhiều, cùng với tốc độ Internet được cải thiện đáng

kể giúp việc tải một bộ phim nhanh chóng và xem mượt mà hơn Nhưng chừng đó

là không đủ, nhu cầu cuộc sống luôn ngày càng lớn, trước đây việc thưởng thức các

bộ phim ở độ phân giải 480p rồi đến mHD 720p đã là thỏa mãn, thì giờ đây các film

độ phân giải Full HD 1080p đã tràn ngập Nhu cầu đó càng thể hiện mạnh mẽ hơn khi 2 năm gần đây xuất hiện các TV với công nghệ hình ảnh 4K với độ phân giải siêu cao làm người xem phải ngẩn ngơ như lạc vào thế giới thực Các thiết bị lưu trữ và đường truyền Internet với áp lực phải lớn hơn đã không kịp đáp ứng và bức thiết cần có một chuẩn nén video mới hiệu quả hơn giảm tải cho áp lực này

Chính vì điều đó học viên đã chọn đề tài: "Kỹ thuật nén video và thử nghiệm dựa trên mã nguồn mở" để tìm hiểu, nghiên cứu, và đưa ra được giải pháp

thích hợp khi xử lý video dựa trên những tri thức đã tìm hiểu được

2 Mục đích của đề tài

- Nghiên cứu tìm hiểu các chuẩn nén hình ảnh, video

- Thử nghiệm với hình ảnh, video để đưa ra được sự so sánh về chất lượng cũng như hiệu quả của các phương pháp

3 Đối tượng và phạm vi nghiên cứu

- Các công nghệ nén hình ảnh và video

- Các chuẩn MPEG

- Chuẩn nén hình ảnh JPEG

4 Phương pháp nghiên cứu

- Thu thập, phân tích và tổng hợp các tài liệu, thông tin về đề tài

- Xây dựng chương trình thử nghiệm cho phương pháp biểu diễn nén video dựa trên phần mềm mã nguồn mở

Trang 8

5 Ý nghĩa khoa học và thực tiễn của đề tài

- Làm chủ về một số giải pháp nén ảnh, video

- Là tài liệu tham khảo về lĩnh vực nén ảnh, video

- Đề tài có ý nghĩa công nghệ và thực tiễn

6 Cấu trúc luận văn

Nội dung luận văn gồm phần mở đầu, kết luận và 03 chương:

Chương 1 Tổng quan về nén video: giới thiệu vai trò, vị trí, yêu cầu, mô hình hệ thống và một số kỹ thuật nén video

Chương 2 Chuẩn mã hóa, nén ảnh JPEG và chuẩn nén video MPEG-4 Part 10/H.264: trình bày về kỹ thuật nén hình ảnh dựa trên chuẩn JPEG và chuẩn nén video chất lượng cao H.264 (MPEG-4 Part10)

Chương 3 Xây dựng ứng dụng thử nghiệm: tiến hành cài đặt và thử nghiệm ứng dụng nén video theo chuẩn H.264 dựa trên các phần mềm mã nguồn mở nổi tiếng nhất hiện nay như FFMPEG và JM version 19.0 Đưa ra các đánh giá về chất lượng (dựa trên các chỉ số Q, PSNR, MSE ), tốc độ, dung lượng của video được nén và giải nén theo chuẩn H.264

Trang 9

CHƯƠNG 1: GIỚI THIỆU VỀ NÉN VIDEO

1.1 Giới thiệu

Để truyền được các chương trình video trên các hệ thống thông tin di động,một bài toán đặt ra là phải nén hình ảnh để tiết kiệm băng tần truyền dẫn mà vẫn đảm bảo chất lượng hình ảnh Đây là một yêu cầu đã và đang được nhiều nhà nghiên cứu quan tâm Truyền dẫn số tín hiệu ảnh động qua các hệ thống vệ tinh đã được nghiên cứu từ năm 1990, trong đó nén video bằng phương pháp mã hoá đóng vai trò rất quan trọng Cho đến nay, khi các hệ thống thông tin di động 3G và hệ thống NGN ra đời cho phép truyền các chương trình video trên đó thì việc nghiên cứu tìm ra các giải pháp nén mới càng đòi hỏi cấp thiết hơn bao giờ hết Nhóm chuyên gia về hình ảnh động (MPEG) đã hoàn thiện hai bộ tiêu chuẩn về mã hoá video là MPEG-1 và MPEG-2, xác định các phương pháp truyền thông tin video số theo các định dạng truyền hình và đa môi trường Ngày nay MPEG-4 đang nhắm vào việc truyền video tốc độ bit rất thấp; còn MPEG-7 đưa ra chuẩn hoá trong các dịch vụ lưu trữ và phục hồi video Trong hoàn cảnh mạng thế hệ mới NGN và di động thế hệ sau tiếp tục đòi hỏi phải hoàn thiện hơn các thuật toán nén - giải tín hiệu video số với mục đích làm cho chất lượng hình ảnh tốt hơn, băng tần truyền dẫn thấp hơn

Nén video số là một quá trình trong đó người ta tìm các giải pháp để giảm số lượng số liệu biểu thị hình ảnh video để đáp ứng tốc độ bit yêu cầu mà vẫn đáp ứng chất lượng video được khôi phục ở phía thu phải thỏa mãn yêu cầu ứng dụng và độ phức tạp tính toán Hình 1.1 biểu thị sơ đồ khối chức năng nén số liệu video trong

hệ thống truyền dẫn Nén video có nhiệm vụ rất quan trọng vì lượng dư của số liệu trong các hình ảnh nguyên thủy thường lớn hơn nhiều dung lượng mà các thiết bị điện tử ngày nay có thể xử lý

Ta cũng biết rằng thông tin và số liệu là hai khái niệm khác nhau nhưng liên quan chặt chẽ với nhau Số liệu biểu thị thông tin và chất lượng số liệu có thể đo được Nội dung của số liệu video thường được đo bằng số đơn vị bit; còn thông tin

Trang 10

được xác định bằng sự nhận biết Như vậy toàn bộ số liệu biểu thị sự nhận biết, tuy vậy nó cũng có đơn vị đo của nó

Hình 1.1: Nén video trong truyền video

Tốc độ bit hay còn gọi là tốc độ mã hóa là một tham số quan trọng trong nén video và thường được biểu thị bằng đơn vị bit/giây Trong mã hóa nguồn tin, đôi lúc tốc độ bit được biểu thị bit trên ký hiệu Chất lượng hình ảnh được cấu trúc lại ở phía thu phụ thuộc vào ứng dụng vì vậy sẽ có loại nén tổn thất và nén không tổn thất Trong ứng dụng truyền các ảnh động, các chương trình truyền hình thì cho phép một lượng tổn thất nào đó Từ định nghĩa này, ta có thể nhận thấy rằng nén số liệu video có một số khái niệm cơ bản bao gồm: thông tin, số liệu, chất lượng nhìn được của video và độ phức tạp tính toán Chương này tập trung vào một số vấn đề chính như sau:

- Phân tích độ dư trong tín hiệu video, nhu cầu cần thiết nén video

- Khái niệm về nén video

- Yêu cầu về ứng dụng nén video và một số kỹ thuật nén video

1.2 Độ dƣ trong tín hiệu video, nhu cầu cần thiết nén video

1.2.1 Độ dư trong tín hiệu video

1.2.1.1 Độ dư thống kê của ảnh

Độ dư thống kê có thể được phân thành hai kiểu: độ dư giữa các pixel và độ

dư mã hóa Độ dư giữa các pixel có nghĩa là các pixel của một khung ảnh và các pixel của một nhóm các khung ảnh hoặc video liên tiếp không độc lập thống kê với nhau Trái lại, chúng tương quan với nhau theo mức độ khác nhau Kiểu tương quan giữa các pixel như vậy được coi là độ dư giữa các pixel Độ dư giữa các pixel có thể

Truyền hoặc Lưu trữ

Nén Video

Tái cấu trúc

số liệu

Trang 11

được chia thành hai loại: độ dư không gian và độ dư thời gian Độ dư mã hoá là độ

dư thống kê liên quan đến các kỹ thuật mã hóa

- Độ dư không gian

Độ dư không gian thể hiện mối tương quan thống kê giữa các pixel trong một khung ảnh Do đó nó còn được gọi là độ dư ngoài khung Ta biết rằng các giá trị cường độ của các pixel thuộc một hàng (hoặc một cột) có hệ số tự tương quan rất cao (gần bằng độ tự tương quan cực đại là 1) với các giá trị cường độ của các pixel thuộc chính hàng đó (hoặc chính cột đó) nhưng bị dịch đi một pixel Điều này không hề bất ngờ bởi vì hầu hết các giá trị cường độ thay đổi liên tục từ pixel này đến pixel khác trong một khung ảnh, ngoại trừ các miền rìa

Độ dư không gian ngụ ý rằng giá trị cường độ của một pixel có thể được ước lượng theo giá trị cường độ của các pixel lân cận nó Nói một cách khác, người ta không cần miêu tả từng pixel trong khung ảnh một cách độc lập Thay vào đó, người ta có thể dự đoán một pixel từ các pixel ở bên cạnh nó Mã hóa dự đoán là một loại mã hóa vi sai dựa vào nhận xét này Thành quả trực tiếp của việc nhận biết

độ dư không gian là bằng cách loại bỏ một số lượng lớn độ dư thừa trong một khung ảnh, chúng ta có thể tiết kiệm được rất nhiều dữ liệu trong việc biểu thị khung, vì vậy đạt được việc nén dữ liệu

- Độ dư thời gian

Độ dư thời gian có liên quan với tương quan thống kê giữa các pixel của các khung liên tiếp trong một dãy ảnh hoặc video theo thời gian Vì vậy nó còn được gọi là độ dư giữa các khung

Xét một dãy ảnh theo thời gian, với điều kiện là khoảng thời gian giữa hai bức ảnh đủ ngắn, tức là các bức ảnh được chụp đủ dày đặc, chúng ta có thể hình dung rằng đặc điểm giống nhau giữa hai khung là rất lớn Hình 1.2 (a) và hình 1.2 (b) tương ứng với hai khung hình liên tiếp của video “Foreman” Các khung có độ phân giải là 176×144 Từ khung hình a sang khung hình b, trong tổng số 25.344 pixel chỉ có 3,4% thay đổi giá trị xám vào khoảng hơn 1% của giá trị xám cực đại (trong trường hợp này là 255) Như vậy đối với tín hiệu giống như điện thoại video

Trang 12

có dịch chuyển vừa phải trong cảnh, trung bình có ít hơn 10% pixel thay đổi các giá trị xám giữa hai khung liên tiếp vào khoảng 1% tín hiệu đỉnh

Hình 1.2: (a) khung hình thứ nhất và (b) thứ hai của dãy ảnh "Foreman"

Điều đó dẫn ta tới suy nghĩ là có thể dự đoán một khung từ các khung cạnh

nó theo miền thời gian bằng cách mã hóa dự đoán trong khung và cũng giúp nghiên cứu sinh hướng tới ý tưởng sử dụng hàm tương quan giữa các pixel để ước lượng sự chuyển động của các khung kế tiếp nhau

sẽ cho ta kết quả nén dữ liệu hình ảnh và video Với nghĩa đó thì độ dư mã là khác,

nó không thực hiện việc gì đối với sự dư thừa thông tin mà nó thực hiện với việc biểu diễn thông tin, nghĩa là chính việc mã hoá Từ việc nghiên cứu độ dư mã, rõ ràng là chúng ta nên tìm kiếm các kỹ thuật mã hiệu quả hơn để nén dữ liệu hình ảnh

và video Mã Huffman và mã số học là hai kỹ thuật mã hóa VLC thường được dùng trong xử lý ảnh và video

Trang 13

1.2.2 Độ dư khả năng nhìn thấy

Trong khi độ dư giữa các pixel vốn đã có trong số liệu hình ảnh và video, độ

dư khả năng nhìn thấy bắt nguồn từ các đặc trưng về hệ thống nhìn của con người

Ta biết rằng HVS cảm nhận được thế giới bên ngoài theo một cách thức khá phức tạp Đáp ứng của nó đối với các tác nhân nhìn không phải là một hàm tuyến tính theo cường độ của một vài thuộc tính vật lý, như độ sáng và màu Năng lực tri giác của HVS khác hẳn với độ nhạy của camera Trong HVS, thông tin nhìn thấy không được cảm nhận như nhau, một số thông tin có thể quan trọng hơn một số thông tin khác Điều đó có nghĩa rằng nếu chúng ta sử dụng ít dữ liệu hơn để biểu diễn những thông tin ít quan trọng hơn về nhìn thấy thì khả năng cảm nhận sẽ không bị ảnh hưởng Theo nghĩa đó, chúng ta thấy rằng một số thông tin có liên quan đến thị giác

là dư thừa về khả năng nhìn thấy Loại bỏ sự dư thừa khả năng nhìn thấy này chính

là nén dữ liệu

1.2.3 Nhu cầu cần thiết nén video

Những thành tựu đạt được trong công nghệ điện tử - viễn thông - tin học đã tạo điều kiện phát triển các kỹ thuật truyền video đáp ứng nhu cầu ngày càng tăng trong các ứng dụng cuộc sống hàng ngày như điện thoại video, hội nghị video, truyền hình độ phân giải cao… Video là một dãy các khung ảnh bao gồm một lượng khổng lồ các số liệu, ví dụ mỗi khung video có độ phân giải 288 dòng và 352 pixel trên một giây Mỗi một màu trong ba màu chính (đỏ, xanh, xanh da trời) được biểu thị bằng 1 pixel có 8 bit và thông thường tốc độ khung truyền là 30 khung trên một giây để tạo ra video chuyển động liên tục Tốc độ bit yêu cầu là: 288×352×8×3×30

= 72.990.720 bit/s Do đó tỷ số giữa tốc độ bit cần thiết và tốc độ bit có thể lớn nhất khoảng 1289 lần Điều này chứng tỏ rằng chúng ta cần phải nén số liệu video ít nhất

là 1289 lần để truyền được trên mạng viễn thông

1.3 Khái niệm về nén video

Các phương tiện liên lạc video qua kênh thông tin số thế hệ mới yêu cầu rất lớn về việc truyền thông tin Nén video được xem xét ở đây bao hàm việc làm giảm tốc độ bit mã tín hiệu video số mang thông tin nhìn được hoặc loại bỏ các phần tử

Trang 14

dư thừa trong tín hiệu Mức độ mà bộ mã hoá làm giảm tốc độ bit được gọi là hiệu suất mã và nghịch đảo của hiệu suất mã được gọi là tỷ số nén:

Nén có làm tổn thất hoặc không làm tổn thất thông tin Tổn thất thông tin thường được tính bằng sai số trung bình bình phương (MSE), sai số tuyệt đối trung bình (MAE) hoặc tỷ số tín hiệu đỉnh trên nhiễu (PSNR):

∑ ∑( )

, với ảnh I và ảnh tái cấu trúc của nó (P), cỡ ảnh là NxM pixel và

n bit/pixel (với các ảnh dạng PGM thì n=8)

∑ ∑( )

⌋ Các tín hiệu video chứa thông tin ba chiều được mô hình trong miền không gian và thời gian trong quá trình mã hoá Các phương pháp nén video số đặt mục tiêu sao cho tối thiểu hoá lượng tin dư thừa mà không phụ thuộc vào mỗi miền đã nói ở trên

1.4 Yêu cầu về ứng dụng nén video

Hiện nay có nhiều ứng dụng video số khác nhau, chúng trải rộng từ các ứng dụng có yêu cầu đơn giản với độ phân giải thấp và độ rộng băng tần thấp (thiết bị đa phương tiện, điện thoại thấy hình) đến các ứng dụng có yêu cầu độ phân giải rất cao

và độ rộng băng tần cao (HDTV)

Độ rộng băng tần cần thiết của tín hiệu TV số gần bằng một nửa số phần tử ảnh (pixel) xuất hiện trên một giây Cỡ pixel tương tự theo chiều đứng là khoảng cách giữa các đường quét và theo chiều ngang là khoảng cách vết quét chuyển động

Trang 15

trong khoảng thời gian một nửa chu kỳ của tần số truyền tín hiệu video cao nhất Độ rộng băng tần cho bởi [1]:

( ) trong đó là độ rộng băng tần hệ thống, F R là số khung đã phát đi trên một giây (fps), N L là số đường quét trên một khung, R H là phân giải ngang tỷ lệ với phân giải pixel Theo tiêu chuẩn NTSC thì F R = 29,97 fps, N L = 525 đường, R H = 340 đường thì B w = 4,2 MHz

Đối với pixel màu số gồm 3 thành phần: thành phần độ chói (Y) chiếm 8 bit

và hai thành phần màu khác (U và V), mỗi thành phần yêu cầu 8 bit Khung ảnh NTSC có tổng cộng 720×480×2 pixel độ chói và màu Để truyền thông tin này trên

hệ thống truyền hình NTSC với tốc độ 29,97 khung/giây thì yêu cầu độ rộng băng tần là [1]:

( ) (

)

Độ rộng băng tần truyền các tín hiệu NTSC hiện nay là 6 MHz còn HDTV là

12 MHz [1]

Một số yêu cầu đối với hệ thống nén video:

- Các đặc tính video: Các tham số video như giải động, các thông số thống kê của nguồn, độ phân giải pixel và nhiễu ảnh hưởng đến hiệu năng của hệ thống nén

- Yêu cầu truyền dẫn: Các yêu cầu về tốc độ bit truyền xác định năng lực của

hệ thống nén Các yêu cầu rất cao về độ rộng băng tần truyền dẫn, dung lượng bộ nhớ hoặc chất lượng có thể phải đòi hỏi nén không tổn thất Ngược lại, các yêu cầu tốc độ bit cực kỳ thấp có thể phải đòi hỏi các hệ thống nén đánh đổi chất lượng ảnh

để có tỷ số nén lớn Ngoài ra, các lỗi kênh cũng ảnh hưởng đến hiệu năng của hệ thống và chất lượng video tái cấu trúc Để làm giảm ảnh hưởng của các lỗi kênh người ta thường dùng mã sửa sai (ECC)

Trang 16

- Các đặc tính và hiệu năng của hệ thống nén: Căn cứ vào đặc điểm ứng dụng video mà người ta đưa ra các yêu cầu đối với hệ thống nén video Các ứng dụng video tương tác như hội nghị video thì đòi hỏi các hệ thống nén phải có khả năng đối xứng Nghĩa là mỗi phần trong đoạn video tương tác phải có cùng khả năng mã hoá và giải mã video và các yêu cầu năng lực hệ thống phải đáp ứng cho cả bộ mã hoá và bộ giải mã Trái lại, truyền hình video yêu cầu năng lực của máy phát phải rất cao vì nó phải đáp ứng việc cung cấp video được nén với chất lượng cao, thời gian thực phù hợp với dung lượng kênh truyền dẫn Các yêu cầu thực hiện hệ thống video số có thể thay đổi một cách đáng kể Hội nghị truyền hình qua máy tính có thể được thực hiện bằng cách dùng phần mềm cho việc mã hoá và giải mã hoặc dùng phần cứng chuyên dụng và các năng lực truyền dẫn để đạt được chất lượng cao Để chọn được giải pháp tốt nhất cần phải phân tích tỷ mỉ toàn bộ hệ thống và các phương án mã hoá

- Yêu cầu về tỷ lệ méo: Đây là yêu cầu cơ bản trong việc lựa chọn bộ mã video Bộ mã video phải có khả năng đáp ứng được tốc độ bit và độ trung thực của hình ảnh theo yêu cầu của ứng dụng

- Yêu cầu về tiêu chuẩn: Bộ mã hoá video phải tương thích với các tiêu chuẩn hiện tại và tương lai để có thể cùng hoạt động được với các hệ thống hiện tại hoặc trong tương lai

1.5 Kết luận chương 1

Chương 1 của luận văn đã giới thiệu chung về bài toán nén video trong các

hệ thống truyền tin, từ đó diễn tả một cách tổng quan nhất tại sao phải nén tín hiệu video trước lúc truyền dẫn, các tham số có thể tác động vào để giảm lượng tin thừa trong tín hiệu, các tham số để đánh giá kết quả nén, chương 1 đã giới thiệu:

- Độ dư trong tín hiệu video và sự cần thiết phải nén video

- Phân tích các yêu cầu về ứng dụng nén video

Trang 17

CHƯƠNG 2: CHUẨN MÃ HÓA, NÉN ẢNH JPEG VÀ MÃ HÓA,

NÉN VIDEO MPEG-4 PART 10/H.264 2.1 Kỹ thuật mã hóa, nén ảnh JPEG

2.1.1 Giới thiệu chung

Nén trong ảnh là loại nén làm giảm bớt thông tin dư thừa trong miền không gian Nén trong ảnh sử dụng cả hai quá trình có tổn thất và không tổn thất thông tin Quá trình này không sử dụng thông tin các ảnh trước và ảnh sau của ảnh đang xét Trong đó kỹ thuật chính là phương pháp biến đổi DCT

Tiêu chuẩn JPEG – Định dạng ảnh JPEG là một tiêu chuẩn nén ảnh được phát triển bởi Nhóm chuyên gia xử lý ảnh (Joint Photographic Experts Group – JPEG) thành lập năm 1986 với sự hợp tác của các tổ chức ITU (International Telecommunication Union – Liên minh Viễn thông quốc tế), ISO (International Organization for Standardization – Tổ chức tiêu chuẩn quốc tế) và IEC (International Electrotechnical Commission - Ủy ban Kỹ thuật điện tử quốc tế),

và do đó tiêu chuẩn được đặt tên của nhóm JPEG Chuẩn JPEG được công nhận là chuẩn ảnh quốc tế năm 1990 phục vụ các ứng dụng truyền ảnh cho các lĩnh vực như

y học, khoa học, kỹ thuật, ảnh nghệ thuật, báo chí, camera số, Fax màu, lưu trữ ảnh… Hiện nay có 3 phiên bản về JPEG được công bố như sau:

- Tiêu chuẩn JPEG năm 1992: sử dụng mã hóa ảnh tĩnh liên tục có tổn thất (lossy) dựa trên biến đổi cosin rời rạc DCT, đã được ITU công bố là một tiêu chuẩn viễn thông ITU-T Recommendation T.81 và được công nhận là tiêu chuẩn quốc tế với tên chính thức là ISO/IEC 10918-1:1994 Mục tiêu của tiêu chuẩn JPEG năm

1992 là hỗ trợ nén ảnh với nhiều kích cỡ/không gian màu sắc, với tỉ lệ nén theo yêu cầu người dùng, hỗ trợ tái tạo lại ảnh với chất lượng cao và hỗ trợ quản lý mức độ phức tạp tính toán khi nén ảnh

- Tiêu chuẩn JPEG-LS: sử dụng mã hóa ảnh tĩnh liên tục không tổn thất (lossless) và tổn thất ít (nearlossless) dựa trên mã hóa tiên đoán và mã hóa ngẫu nhiên, đã được công bố là tiêu chuẩn quốc tế ISO/IEC IS 14495-1|ITU-T Recommendation T.87

Trang 18

- Tiêu chuẩn JPEG 2000: sử dụng mã hóa co giãn (scalable) ảnh tĩnh liêntục (từ có tổn thất đến không tổn thất) dựa trên biến đổi wavelet Tiêu chuẩn JPEG

2000 không chỉ cung cấp khả năng nén ảnh với chất lượng và hiệu quả cao hơn hệ thống cơ bản JPEG mà nó còn có khả năng biểu diễn một ảnh với nhiều tính năng hơn, hỗ trợ trong cùng bit-stream (chuỗi bit được mã hóa hoặc giải mã một phần chứa đoạn mã hóa dữ liệu ngẫu nhiên) đáp ứng được rất nhiều ứng dụng hiện có và ứng dụng mới

2.1.2 Phương pháp nén ảnh chuẩn JPEG

Mã hóa JPEG bao gồm nhiều công đoạn, sơ đồ thuật toán nén và giải nén được mô tả dưới đây

Hình 2.1: Sơ đồ thuật toán nén JPEG

Quá trình giải nén sẽ được làm ngược lại, người ta giải mã từng phần ảnh nén tương ứngvới phương pháp nén đã sử dụng trong phần nén nhờ các thông tin liên quan ghi trong phần header của file nén Kết quả thu được là hệ số đã lượng tử Các hệ số này được khôi phục về giá trị trước khi lượng tử hóa bằng bộ tương tự hóa Tiếp đó đem biến đổi Cosin ngược ta được ảnh ban đầu với độ trung thực nhất định

Trang 19

Hình 2.2: Sơ đồ thuật toán giải nén JPEG

Bảng mã và bảng lượng tử trong sơ đồ giải nén được dựng lên nhờ những thông tin ghi trong phần cấu trúc đầu tệp (Header) của tệp ảnh nén Quá trình nén chịu trách nhiệm tạo ra và ghi lại những thông tin này Phần tiếp theo sẽ phân tích tác dụng của từng khối trong sơ đồ

 Phân khối

Chuẩn nén JPEG phân ảnh ra các khối 8x8 Công đoạn biến đổi nhanh Cosin hai chiều cho các khối 8x8 tỏ ra hiệu quả hơn

 Biến đổi Cosin rời rạc ( Discrete cosine transform)

DCT là phép biến đổi giá trị một khối các điểm ảnh thành một khối các hệ số trong miền tần số

Công thức tính toán cho DCT 2 chiều với ma trận vuông giá trị điểm NxN sinh ra ma trận vuông hệ số như sau:

Trong đó

F(u,v) = Hệ số của khối DCT NxN

f(x,y) = Giá trị mẫu của khối NxN điểm ảnh

u = Tần số trục ngang (0<u<7)

v= Tần số trục đứng (0 < v < 7)

Trang 20

C(u), C(v) = 1/√ nếu u,v= 0

C(u), C(v) = 1 nếu u,v = 1,2,…,7

DCT có một tính chất quan trọng Đó là tính biến đổi thuận nghịch Có nghĩa

là từ khối các hệ số có thể hồi phục giá trị các điểm ảnh ban đầu theo công thức chuyển đổi ngược sau:

 Quét zigzag

Dòng số là dòng truyền tải các bit nối tiếp theo thời gian Do vậy một quá trình sắp xếp các hệ số DCT đã lượng tử trong ma trận hai chiều thành dãy một chiều nối tiếp nhau Việc quét này sẽ làm cho các hệ số “0” đứng cạnh nhau lớn nhất, tạo thuận lợi cho việc giảm tốc độ bit khi mã hóa

Trang 21

độ dài ngắn sao cho chứa đựng một khối lượng thông tin nhiều nhất với số bit truyền tải ít nhất mà vẫn đảm bảo chất lượng yêu cầu

Mã hóa loạt dài ( Run length coding)

Do có sự liên hệ tương hỗ giữa các điểm ảnh lân cận nên trong ảnh số thường

có các chuỗi điểm lặp lại, đặc biệt dễ thấy đối với ảnh nhị phân Khi đó, nếu sử dụng số đếm để thay thế dãy các điểm giống nhau, có thể tiết kiệm số bit cần để mã hoá Ý tưởng này được phát triển trong một dạng mã gọi là “mã hoá loạt dài” (RLC) Trong mã này điểm đại diện đầu tiên được thay thế bằng một biểu trưng và xem như điểm xuất phát, còn độ dài dãy dùng để thay thế loạt dài Để phân tách giữa hai dãy có 2 giải pháp như sau:

Dùng số chạy dài và mã nguồn nếu mã nguồn đó không phải là số hoặc một biểu trưng đặc biệt để thay thế mã nguồn là số

Thiết kế từ mã cho mỗi loạt dài và kết hợp mã nguồn

Ví dụ: $$$$$$$**^^^^^^**$$$$$$$ mã hoá thành: 7$2*6^2*7$

Đối với ảnh nhị phân ta thay mã nguồn {0,1} bởi hai ký hiệu {w,b}

Ví dụ: 000001111111111111111100 mã hóa thành 5w17b2w

Bảng 2.2: Quét Zigzag và mã hóa Huffman

Mã độ dài thay đổi VLC ( variable length coding) (mã Huffman)

Trang 22

Trong các công nghệ nén, mã Huffman là dạng mã được sử dụng phổ biến nhất Bảng mã Huffman có thể cho độ dài mã trung bình để mã hoá cho một mẫu là nhỏ nhất

do tận dụng xác suất xuất hiện của các mẫu trong nguồn tín hiệu Trong đó, mẫu có xác suất xuất hiện cao nhất sẽ được gắn với một từ mã có độ dài ngắn nhất

Mặc dù có độ dài mã thay đổi song mã Huffman vẫn có khả năng giải mã đúng do có thuộc tính tiền tố duy nhất (không có bất cứ từ mã nào lại là phần đầu của từ mã tiếp theo)

Để xây dựng cây mã Huffman gồm các bước sau:

- Bước 1: Hai nút tự do với trọng lượng thấp nhất được định vị

- Bước 2: Nút cha cho hai nút này được thiết lập Nó có trọng lượng bằng

tổng trọng lượng của hai nút con

- Bước 3: Nút cha được liệt kê vào danh sách các nút tự do và hai nút con

được xoá khỏi danh sách

- Bước 4: Một trong hai nút con được ký hiệu như đường dẫn từ nút cha và

mã hoá bit “0” Nút còn lại có thuộc tính thiết lập là bít “1”

Các bước được lặp lại cho đến khi chỉ còn lại một nút tự do Nút này được đánh dấu là gốc của cây

Phương pháp mã hoá thống kê Huffman sẽ trở nên nặng nề khi số tin của nguồn quá lớn Trong trường hợp này người ta dùng một biện pháp phụ để giảm nhẹ công việc mã hoá Trước tiên liệt kê các tin của nguồn theo thứ tự xác suất giảm dần, sau đó ghép thành từng nhóm tin có tổng xác suất gần bằng nhau Dùng một

mã đều để mã hoá các tin trong cùng một nhóm Sau đó xem các nhóm tin như một khối tin và dùng phương pháp Huffman để mã hoá các khối tin Từ mã cuối cùng tương ứng với mỗi tin của nguồn gồm hai phần: một phần là mã Huffman và một phần là mã đều

2.2 Chuẩn mã hóa và nén video MPEG-4 Part 10/H.264

2.2.1 Cấu trúc chuẩn MPEG-4 Part10

Để có thể truyền trong các môi trường khác nhau được hiệu quả, sự tích hợp các giao thức và cấu trúc mạng là rất quan trọng H.264/AVC có sự phân biệt giữa

Trang 23

đặc tính mã hóa và truyền tải của 2 lớp VCL và NAL như hình 2.3 mang lại hiệu quả cao trong môi trường mạng khắc nghiệt

Hình 2.3: Cấu trúc phân lớp H.264

Ngoài ra trong H.264/AVC còn hỗ trợ ảnh IDR, ảnh này được tạo ra từ ảnh I hoặc ảnh SP nhằm xóa nội dung vùng nhớ đệm ảnh tham khảo hay nói cách khác là làm tươi bộ nhớ Khi nhận được ảnh IDR thì bộ giải mã sẽ đánh dấu tất cả các bức

ảnh trong bộ đệm là “không sử dụng cho tham khảo” Tất cả các chuỗi con có các

slice được truyền đi có thể giải mã mà không cần bất kỳ một ảnh tham khảo nào trước ảnh IDR Cấu trúc của một dòng bit H.264/AVC minh họa như hình sau

.NAL header RBSP

NAL header RBSP

NAL header RBSP

Hình 2.4 Cấu trúc dòng bit

Lớp trừu tượng mạng NAL

Tất cả dữ liệu được chứa trong các khối NAL, mỗi khối chứa một số nguyên byte xác định định dạng chung cho cả hệ thống định hướng gói (packet - oriented)

và hệ thống định hướng dòng bit (bitstream), ngoại trừ mỗi khối NAL trong lớp truyền tải định hướng dòng bit có thể có một tiền tố mã hóa ở trước, và có thể là một trong 2 định dạng sau: định dạng theo từng đơn vị NAL hoặc theo từng byte

 Định dạng theo từng đơn vị NAL là một kiểu định dạng cơ bản, bao gồm các chuỗi cấu trúc cú pháp NAL được sắp xếp để giải mã

Trang 24

 Định dạng theo từng byte có thể được xây dựng lại từ cấu trúc của NAL bằng cách xắp xếp các đơn vị NAL trong quá trình giải mã và thêm vào một tiền

tố mã bắt đầu cho mỗi NAL

Một chuỗi video H.264 bao gồm một chuỗi các đơn vị NAL, mỗi đơn vị NAL sẽ chứa các thành phần RBSP như bảng 1, RBSP là một tập hợp dữ liệu tương ứng với dữ liệu video được mã hóa hay thông tin đầu mục, ví dụ một chuỗi các đơn

vị RBSP như hình 2.5, trong đó các đơn vị được truyền đi dưới dạng các đơn vị NAL riêng biệt Byte đầu tiên của NAL hay còn gọi là header có chiều dài 1 byte chỉ ra loại RBSP được sử dụng, còn những byte còn lại thì chứa dữ liệu cho việc truyền tải hoặc lưu trữ

Sequence

parameter set SEI

Picture parameter set I slice

Picture delimiter P slice P slice

Hình 2.5 Minh họa một chuỗi thành phần RBSP

Bảng 2.3: Các thành phần RBSP

Thông số cài đặt Thông số về kích thước, định dạng video, vị trí ánh xạ

MB, số lượng ảnh tham khảo, thông số lượng tử…

Thông tin mở rộng Mảng báo tin Yếu tố này không cần thiết cho việc giải

mã đúng thứ tự chuỗi video

Bộ phân đoạn ảnh Đường biên giữa các ảnh, nếu không có thì bộ giải mã sẽ

dựa vào số thứ tự frame trong mỗi tiền tố slice để phân đoạn Slice mã hóa Chứa tiền tố và dữ liệu mã hóa

Phân vùng dữ liệu A, B, C Ba dạng phân vùng nhằm tăng cường khả năng chống lỗi

Kết thúc chuỗi Chỉ định bức ảnh kế tiếp trong thứ tự giải mã là ảnh

IDR (Không cần thiết)

Kết thúc luồng dữ liệu Không còn ảnh tiếp theo nào cả

Dữ liệu lấp đầy Chứa dữ liệu “giả” nhằm tăng số lượng byte trong

chuỗi (Không cần thiết)

Trang 25

Lớp mã hóa video VCL (Video Coding Layer)

Ngõ ra của quá trình mã hóa là các dữ liệu VCL bao gồm một chuỗi các bits đặc trưng cho dữ liệu video mã hóa được ánh xạ vào NAL để truyền đi hoặc lưu trữ

Nó là sự kết hợp dự đoán theo thời gian và không gian và với mã chuyển vị Thuật toán mã hóa nguồn cơ bản vẫn dựa trên kỹ thuật nén liên ảnh để khai thác, thống kê

sự phụ thuộc dư thừa về thời gian và dự đoán mã hóa biến đổi để khai thác sự dư thừa về mặt không gian nhằm mục đích cuối cùng là nâng cao hiệu suất nén Hơn nữa, lớp VCL bao gồm nhiều đặc tính như 17 kiểu dự đoán Intra, thuật toán biến đổi, lọc tách khối, mã hóa Entropy hay mã hóa thích nghi khung và mành…cung cấp một môi trường mạng thân thiện và tăng cường khả năng chống lỗi phù hợp cho các dịch vụ thời gian thực như truyền luồng, quảng bá và ứng dụng hội nghị…

Kỹ thuật FMO và Data Partitioned Slices

Kỹ thuật FMO mô tả cách phân chia bức ảnh thành các slice và MB bằng cách sử dụng khái niệm nhóm slice Nhằm che giấu các kênh có khuynh hướng bị lỗi với các ứng dụng có độ trễ thấp Dữ liệu mã hóa từ các Slice được chi thành 3 loại phân vùng như A, B, C chứa tập hợp con của slice được mã hóa Phân vùng A chứa slice header và dữ liệu header cho mỗi MB Phân vùng B chứa phần dữ liệu sai khác được mã hóa cho slice Intra và SI và phân vùng C chứa phần dữ liệu sai khác được mã hóa cho MB mã hóa Inter Mỗi phân vùng có thể được đặt riêng biệt

và truyền tách biệt trong từng NAL Nếu dữ liệu phân vùng A bị mất, thì rất khó khăn cho việc cấu trúc lại Slice, vì thế phân vùng A sẽ ảnh hưởng sâu sắc đến sai số truyền Phân vùng B và C được chọn lựa thông số mã hóa kỹ càng, có thể giải mã độc lập, do đó có thể chỉ mã hóa A và C hoặc chỉ A và B

Kỹ thuật Arbitrary Slice Ordering

Kỹ thuật sắp xếp trật thứ tự slice bất kỳ ASO cho phép bộ giải mã có thể xử

lý slice theo thứ tự bất kỳ mà nó nhận được Do đó bộ giải mã không cần phải chờ đợi slice đúng theo thứ tự để có thể bắt đầu xử lý chúng Điều này làm giảm độ trễ

xử lý ở bộ giải mã, kết quả là độ trễ tiềm ẩn trong các ứng dụng truyền video thời gian thực sẽ nhỏ đi

Trang 26

Cấu trúc dòng bit H.264/AVC

Cấu trúc dòng bit H.264/AVC được minh họa như hình 2.6

Trong đó:

 Seq : thông tin về chuỗi ảnh (Squence)

- Video Params : thông số chiều cao, rộng, tỷ lệ khuôn hình các phần tử ảnh

- Bistream Params : tốc độ bit và các thông số khác

- QTs : có 2 loại QTs

 Nén trong ảnh

 Nén liên ảnh

 GOP : thông tin về nhóm ảnh

- Time code : SMPTE time code : Giờ, phút, giây, ảnh

- GOP Params: Miêu tả cấu trúc và các thông số của GOP

 PICT : thông tin về ảnh (Picture information.)

- Type :ảnh loại I, P hay B

 Buffer Params : thông tin về bộ đệm

 Encode Params : thông tin về vector chuyển động

 Slice : thông tin về Slice ảnh

- Vert Pos : Slice bắt đầu từ dòng nào

- Qscale : thông tin về bảng lượng tử

 MB : thông tin về MB

- Addr Incr : Số lượng MB được bỏ qua

- Type : loại vector chuyển động dùng cho MB

- Code Block Pattern (CBP) : chỉ rõ loại khối được mã hoá

Trang 27

Hình 2.6: Cấu trúc dòng bit MPEG-4 H.264/AVC

Trang 28

2.2.3 Kỹ thuật nén video MPEG-4 Part 10/ H.264

2.2.3.1 Nguyên lý hoạt động

Sơ đồ khối mã hóa:

Hình 2.7: Sơ đồ khối mã hóa H.264/AVC

Một bức ảnh ngõ vào gồm có 3 thành phần màu cơ bản R, G, B, sẽ được biến đổi thành Y, U, V sau đó ảnh sẽ được tách thành các khối MB có kích thước là nxn với n=2, 4, 8, và 16 tùy thuộc vào độ phức tạp của bức ảnh Kích thước nhỏ 2x2 sẽ giảm tốc độ đường truyền nhưng thời gian mã hóa sẽ lâu hơn Ảnh đầu tiên hoặc điểm truy nhập ngẫu nhiên thì được mã hóa Intra, các ảnh còn lại của dãy dùng dự đoán bù chuyển động từ các ảnh đã mã hóa trước để mã hóa Inter

Dữ liệu từ các MB cần được mã hóa sẽ được đưa đến cả bộ trừ và bộ dự đoán chuyển động Bộ dự đoán chuyển động sẽ so sánh các MB mới được đưa vào với các MB tham khảo đã được đưa vào trước đó, rồi tìm ra các MB trong frame tham khảo gần giống nhất với MB cần được mã hóa này Bộ dự đoán chuyển động

sẽ tính toán vector chuyển động, vector này sẽ đặc trưng cho sự dịch chuyển theo cả

2 chiều ngang và thẳng đứng của MB mới cần được mã hóa so với frame tham khảo Bộ dự đoán chuyển động cũng đồng thời gửi các MB tham khảo tới bộ trừ với

Trang 29

MB mới cần được mã hóa, để tạo ra các sai số tiên đoán đặc trưng cho sự sai khác giữa MB dự đoán và MB cần mã hóa

Tín hiệu sai khác này sẽ được biến đổi nguyên để tạo ra tập hệ số biến đổi sau đó được đưa qua bộ lượng tử để làm giảm số lượng bits cần truyền Đến đây, các hệ số lượng tử được chia làm 2 hướng, một hướng sắp xếp lại và đưa vào mã hóa Entropy, tại đây số bits đặc trưng cho các hệ số tiếp tục được làm giảm đi một cách đáng kể, hướng còn lại đưa qua bộ giải lượng tử và biến đổi ngược để tạo ra khối sai số Sau đó đưa vào bộ cộng với tín hiệu dự đoán và được lọc tách khối trong vòng nhằm làm giảm hiệu ứng khối tạo thành ảnh cấu trúc lại, được lưu trữ nhằm mục đích ước lượng và dự đoán chuyển động Dữ liệu tại đầu ra bộ mã hóa Entropy sẽ kết hợp với vector chuyển động và các thông tin khác như thông tin về ảnh I, ảnh P, và ảnh B rồi truyền ra ngoài kênh truyền dưới dạng dòng bit nén của các đơn vị NAL, gửi tới bộ giải mã Trong H.264/AVC, có hỗ trợ 5 kiểu mã hóa ảnh: đó là ảnh I, P, B, SP và SI

Sơ đồ khối giải mã:

Hình 2.8: Sơ đồ khối giải mã H.264/AVC

Đầu tiên bộ giải mã Entropy nhận được các dòng bit nén từ NAL, một mặt sẽ giải mã Entropy để tách thông tin đầu mục và vector dự đoán chuyển động đưa vào

bù chuyển động, mặt khác các hệ số DCT được giải lượng tử và 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, các hệ số

Trang 30

biến đổi ngược thu được sẽ cộng với tín hiệu dự đoán Sau đó một phần được đưa qua bộ lọc tách khối để loại bỏ hiện tượng nhiễu trước khi đưa vào lưu trữ, phần còn lại được sử dụng cho mục đích dự đoán

2.2.3.2 Khối nén không gian

Nén theo không gian hay còn gọi là nén tạo ảnh Intra, chỉ sử dụng thông tin trong bức ảnh hiện tại mà không có sự tham khảo ảnh khác, tức là mã hoá độc lập

mà không cần thông tin phụ cho giải mã không cần tham khảo các ảnh khác, do đó hiệu quả nén chỉ phụ thuộc vào sự loại bỏ thông tin dư thừa về không gian nên sẽ không được hiệu quả lắm Nhưng ảnh I cho phép người xem chuyển đổi các kênh, cung cấp điểm truy cập ngẫu nhiên vào dòng bit nén và ngăn chặn sai số truyền Ngoài ra ảnh I còn được dùng liên tục để tạo thành các điểm tựa cho dòng dữ liệu trong quá trình giải mã, cũng như được sử dụng làm điểm chuyển mạch trong quá trình phân cấp Ảnh I chỉ dùng 2 bit/ pixel được mã hóa

Sơ đồ khối mã hóa ảnh I

Hình 2.9: Sơ đồ khối mã hóa ảnh I

2.2.3.2.1 Chia ảnh thành các MacroBlock

Một trong những ưu điểm của chuẩn H.264/AVC là nó có thể phân chia thành các kích thước nhỏ để mô tả chuyển động Phân vùng của thành phần luma có các kích thước mẫu như 16 x 16, 16 x 8, 8 x 16 và 8 x 8 phù hợp cho các chuyển động ở những khu vực giống nhau trong ảnh Khi sử dụng khối 8x8, còn có thể phân chia thành 4 cỡ nhỏ hơn là 8x8, 8x4, 4x8 hoặc 4x4 rất thích hợp khi xử lý

Trang 31

chuyển động tại chỗ có nhiều chi tiết, làm giảm hiện tượng vỡ khối và nâng cao chất lượng hình ảnh

Hình 2.10: Phân chia MB - Sub MB cho bù chuyển động

Cấu trúc dự đoán thời gian được mô tả như hình 2.11 sau:

Hình 2.11: Chỉ ra thứ tự sắp xếp của các VOP

Giải thích: ảnh I không sử dụng ảnh tham khảo và được mã hóa kiểu Intra được ký hiệu là Ix Các ảnh P và ảnh B có sử dụng tham khảo, được ký hiệu là Px Các mũi tên miêu tả hướng dự đoán

Khi sử dụng ảnh B làm ảnh tham khảo cho ảnh I và ảnh P, thì ảnh B sẽ được hiển thị sau đó với thời gian hiển thị riêng, các ảnh tham khảo được truyền đi trước các ảnh B tương ứng Theo hình 2.11 thì thứ tự truyền là I0 P1 P3 B2 P5 B4 P7 B6 Bởi vì không có thông tin được truyền cho các ảnh B2 và P5 nên các ảnh B6 và P7

sẽ là ảnh tham khảo cho VOP P3 mà không ảnh hưởng cấu trúc tham khảo

2.2.3.2.2 Dự đoán trong ảnh (Intra-frame)

Trang 32

Dự đoán Intra là kiểu dự đoán sử dụng các MB kế bên đã được mã hóa trong cùng một frame để tham khảo, nhằm khai thác sự tương quan về không gian Kiểu

dự đoán Intra thì không được sử dụng cho dự đoán các đường biên của slice để giữ tính độc lập giữa các slice Đối với các chuẩn trước đây việc dự đoán sẽ thực hiện trong miền biến đổi, còn ở H.264/AVC thì dự đoán được thực hiện trong miền không gian bằng việc tham khảo tới các mẫu bên cạnh của các khối đã được mã hóa Trong H.264/AVC hỗ trợ các kiểu dự đoán INTRA 4 x 4, INTRA 8 x 8, INTRA 16 x 16 và kiểu dự đoán INTRA-PCM

INTRA LUMA 4 x 4

Mỗi MB được chia thành 16 khối con 4x4, mỗi khối 4x4 được dự đoán không gian từ các khối bên cạnh Để có thể dự đoán giá trị mẫu của khối 4x4 luma cần sử dụng 13 mẫu kế cận bao gồm 4 mẫu của khối kế cận bên trái, 4 mẫu của khối

kế cận bên trên, 4 mẫu của khối kế cận đỉnh phải, và 1 mẫu của khối kế cận đỉnh trái Mỗi khối 4x4 của thành phần luma có thể dùng 1 trong 9 kiểu dự đoán Ngoài kiểu dự đoán DC, còn hỗ trợ 8 kiểu dự đoán định hướng sau:

- Kiểu dự đoán dọc (Vertical)

- Kiểu dự đoán ngang (Horizontal )

- Kiểu dự đoán chéo xuống/trái (Diagonal Down/Left )

- Kiểu dự đoán chéo xuống/phải (Diagonal Down/Right)

- Kiểu dự đoán dọc/phải (Vertical/Right)

- Kiểu dự đoán dọc/ trái (Vertical/Left)

- Kiểu dự đoán ngang/xuống (Horizontal/Down)

- Kiểu dự đoán ngang/lên (Horizontal/Up)

INTRA LUMA 16 x 16

Chỉ 1 kiểu dự đoán được áp dụng cho toàn bộ MB thích hợp cho những miền ảnh trơn tru, phẳng đều Bốn kiểu dự đoán được hỗ trợ là: chiều ngang, chiều thẳng đứng, dự đoán DC và dự đoán mặt phẳng Trong kiểu dự đoán mặt phẳng sử dụng phương trình đường cong 3 thông số để dự đoán độ luma, độ dốc theo chiều ngang,

Trang 33

chiều thẳng đứng cho phù hợp với các điểm ảnh bên cạnh, và kiểu dự đoán này có hiệu quả rất cao trong vùng có thành phần luma ít thay đổi

Để có thể dự đoán giá trị mẫu của khối luma 16x16 cần sử dụng 33 mẫu kế cận bao gồm 16 mẫu của khối kế cận bên trái, 16 mẫu của khối kế cận bên trên và 1 mẫu của khối kế cận đỉnh trái

INTRA CHROMA 8x8

Dự đoán cho thành phần chroma được thực hiện một lần cho toàn bộ MB, 64 giá trị mẫu chroma sử dụng các kiểu dự đoán giống như dự đoán Intra 16x16 cho thành phần Luna: Dự đoán theo chiều ngang, dự đoán theo chiều đứng, dự đoán

DC, dự đoán mặt phẳng

INTRA-PCM

Là một MB 16x16, chứa một mặt phẳng các thành phần luma và chroma chưa nén Làm cho bộ mã hóa xử lý đơn giản hơn bằng cách xử lý mã hóa và biến đổi thay vì phải gửi trực tiếp mẫu các giá trị mã hóa Và kiểu dự đoán I-PCM còn có một số lợi ích sau:

 Cho phép mã hóa chính xác ký tự đại diện của giá trị mẫu

 Cung cấp giá trị đúng cho những bức ảnh có nội dung bất thường mà không cần mở rộng dữ liệu quan trọng

 Cho phép đặt giới hạn số lượng bit điều khiển MB mà không ảnh hưởng đến hiệu suất nén

2.2.3.2.3 Dự đoán trọng số

Là một phương pháp điều chỉnh mẫu cho bù chuyển động dữ liệu trong MB

P hoặc MB B rất thích hợp cho mã hóa mặt người hoặc mã hóa chuyển động Có 3 loại dự đoán trọng số như sau:

- P slice macroblock, dự đoán trọng số “hiện thị” (explicit)

- B slice macroblock, dự đoán trọng số “hiện thị” (explicit)

- B slice macroblock, dự đoán trọng số “ẩn” (implicit)

Mỗi mẫu dự đoán pred0(i, j) hoặc pred1(i, j) được co dãn bởi trọng số thống

kê W0 hoặc W1 trong dự đoán bù chuyển động trước đó Ở loại “hiện” thì trọng số

Trang 34

thống kê được xác định bởi bộ mã hóa và truyền đi ở Slice header Nếu sử dụng loại

“ẩn” thì trọng số thống kê W0, W1 được tính toán dựa vào mối quan hệ vị trí thời gian của list 0 và list1 trong ảnh tham khảo Giá trị trọng số thống kê lớn nếu ảnh tham khảo gần giống với ảnh hiện tại và giá trị trọng số thống kê nhỏ nếu ảnh tham khảo khác với ảnh hiện tại

Một số ứng dụng cho phép cả 2 hàm ẩn và hiện điều khiển sự liên quan của ảnh tham khảo đối với quá trình bù chuyển động, dự đoán trọng số có hiệu quả đặc biệt trong mã hóa các hiệu ứng mờ dần như minh họa ở hình 2.12

sự dịch chuyển Những vector chuyển động ở các khối kế cận sẽ cung cấp một giá trị pixel ước lượng khác nhau và được tính toán trong mỗi khối của MB Giá trị dự đoán là giá trị trung bình của các ước lượng này Dự đoán chuyển động của MPEG-

2 có nhược điểm là ảnh tham khảo thích ứng nhất với MB hiện tại phải kích thước 16x16 và vùng thích ứng phải nằm ngay trong ảnh tham khảo đó dẫn đến hiệu quả

Trang 35

nén chưa cao Nguyên tắc bù chuyển động trong H.264/AVC cũng giống như các chuẩn trước là tìm kiếm trong ảnh tham khảo khối thích hợp nhất sao cho năng lượng của phần sai số dự đoán là nhỏ nhất, tuy nhiên ưu điểm của chuẩn H.264/AVC có thể bù chuyển động với kích thước nhỏ 8x8, 4x4 hoặc bù chuyển động trên cơ sở các điểm ảnh con, đặc điểm này đã mang lại 12% hiệu quả nén so với các chuẩn cũ

2.2.3.2.5 Phép biến đổi nguyên ICT (Integer Discrete Cosin Transform)

Phép biến đổi nguyên được thực hiện trên các khối 4x4 sau khi được dự đoán

bù chuyển động hoặc dự đoán Intra Về cơ bản thì cũng giống biến đổi DCT, chỉ bổ sung một số đặc điểm sau:

 Đây là một phép biến đổi nguyên xấp xỉ với phép biến đổi DCT, tất cả các bước được thực hiện với số nguyên, quá trình giải mã sẽ không mất dữ liệu

 Các bước tính toán được tích hợp trong bộ lượng tử hóa nhằm làm giảm số lượng bước tính toán

 Tất cả các biến đổi và lượng tử chỉ dùng các thuật toán cộng hoặc thuật toán dịch bit trên các giá trị nguyên 16 bit và chỉ thực hiện nhân trên từng hệ số chứ không cần thực hiện phép chia nên đảm bảo không mất đi độ chính xác

1111

2112

1111

54.03.13.154.0

11

11

3.154.054.03.1

11

11

ICT DCT

H.264/AVC cung cấp 3 kiểu biến đổi tùy thuộc vào loại sai số dự đoán, một

là biến đổi Hadamard cho mảng 4x4 hệ số DC luma trong kiểu dự đoán Intra 16x16,

2 là biến đổi Hadamard mảng 2x2 hệ số DC chroma và tất cả các block 4x4 ở trong

dữ liệu dư thừa được biến đổi ICT

Phép biến đổi ICT cho các khối 4x4 theo công thức sau:

Trang 36

b a c a

b a c a

c a b a X

c b b c

a a a a

b c c b

a a a a AXA

2 2

2 2

2 2

111

111

111

111

11

1111

11

1111)

(

b ab b ab

ab a ab a

b ab b ab

ab a ab a

d d

d

d X

d d

d d E

X là ma trận 4x4 của tín hiệu video, hình ảnh ngõ vào

Phép toán  có nghĩa là mỗi thành phần của ma trận CXCT

sẽ nhân với hệ số tỷ lệ ở cùng vị trí trong ma trận E (nhân vô hướng)

414 0

c

b d

Để đơn giản, ở chuẩn H.264/AVC thực hiện xấp xỉ a = 0.5,

2 / 2

/

4 / 2 / 4 / 2 /

2 / 2

/

1 1 2 1

2 1 1 1

2 1 1 1

1 1 2 1

1 2 2 1

1 1 1 1

2 1 1 2

1 1 1 1 )

(

2 2

2 2

2 2

2 2

b ab b

ab

ab a

ab a

b ab b

ab

ab a

ab a

X E

tử hóa và co dãn theo công thức sau:

Ngày đăng: 03/09/2018, 16:21

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w