Tải bản đầy đủ (.docx) (45 trang)

Nén video theo chuẩn ITU - t

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (2.45 MB, 45 trang )

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
VIỆN CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG

─────── * ───────

BÁO CÁO MÔN HỌC
XỬ LÝ DỮ LIỆU ĐA PHƯƠNG TIỆN

Đề tài: Nén video theo chuẩn ITU-T

Giảng viên hướng dẫn: PGS. TS Nguyễn Thị Hoàng Lan
Nhóm sinh viên:

Hà Nội, tháng 5 năm 2018

Phân công công việc
1


1.
2.
1.
2.

Công việc
Tìm hiểu chung về các chuẩn nén ITU-T, chuẩn
H. 26X
Phân tích, so sánh sơ đồ nén video H.261 với
MPEG-1
Tìm hiểu về dòng dữ liệu, sơ đồ nén và giải nén
trong chuẩn nén video H. 261


Xây dựng sơ đồ thuật toán nén ảnh video theo
chuẩn H. 261

1. Cài đặt thử nghiệm thuật toán nén video H.
261, đo lường hiệu năng giải pháp nén này

2


LỜI NÓI ĐẦU
Trong truyền thông, xử lí dữ liệu đa phương tiện thì việc nén dữ liệu là vô
cùng quan trọng, và video là một trong số đó. Có nhiều phương pháp nén
video khác nhau như MPEG, ITU-T, SVC. Với mong muốn tìm hiểu về
chuẩn nén video H. 261 nói riêng và H. 26x nói chung, chúng em lựa chọn
đề tài để tìm hiểu là: “Nén ảnh video theo chuẩn H. 261”.
Báo cáo gồm 5 phần:
- Phần 1: Tìm hiểu chung về các chuẩn nén ITU-T, chuẩn H26X (H. 261, H.
263, H. 264).
- Phần 2: Tìm hiểu về dòng dữ liệu, sơ đồ nén và giải nén trong chuẩn nén
video H. 261.
- Phần 3: Phân tích so sánh sơ đồ nén video H. 261 với video MPEG-1.
- Phần 4: Xây dựng sơ đồ thuật toán nén ảnh video theo chuẩn H. 261.
- Phần 5: Cài đặt thử nghiệm thuật toán nén video H. 261, đo lường hiệu
năng giải pháp nén này.
Mặc dù đã có những cố gắng để hoàn thành đề tài, nhưng do chúng em
chưa có nhiều kinh nghiệm trong lĩnh vực này nên không thể tránh khỏi
những thiếu sót. Chúng em rất mong nhận được ý kiến đóng góp của cô
để hoàn thành tốt hơn đề tài, chúng em xin trân thành cám ơn.
Nhóm sinh viên thực hiện.


3


PHẦN 1: Tìm hiểu chung về các chuẩn nén ITU-T,
chuẩn H26X (H. 261, H. 263, H. 264)
1. Tổ chức ITU-T
- Liên hiệp (liên minh)
-

-

-

viễn thông quốc tế, viết tắt là ITU (International
Telecommunication Union) là một tổ chức của liên hiệp quốc nhằm tiêu chuẩn
hóa viễn thông quốc tế.
Năm thành lập: 1865.
Trụ sở: Geneva, Thụy Sĩ.
Mục tiêu hoạt động: Hoạt động của ITU bao trùm tất cả các vấn đề thuộc
ngành Công nghệ viễn thông và Thông tin như: tần số vô tuyến điện, quỹ đạo
vệ tinh, hỗ trợ phát triển cơ sở hạ tầng viễn thông tại các nước đang phát
triển và xây dựng các tiêu chuẩn chung trên thế giới về kết nối các hệ thống
liên lạc. ITU cũng tham gia nghiên cứu và tìm giải pháp cho các thách thức
chung trên toàn cầu trong thời đại hiện nay như: biến đổi khí hậu và bảo mật,
an toàn thông tin.
Bộ phận:
+ ITU- T (T: Telecom -Viễn thông).
+ ITU- R (T: Radio -Vô tuyến).
+ ITU- D (D: Telecommunications Development -Phát triển viễn thông).
Các chuẩn nén của ITU-T: Chuẩn H. 26x là chuẩn mã hóa và nén video được

đưa ra trong các khuyến nghị của ITU. Chuẩn nén video H. 26x: là chuẩn mã
hóa và nén video được đưa ra trong các khuyến nghị của ITU.
+ H. 261.
+ H. 263.
+ H. 264 (được biết đến là chuẩn MPEG – 4Part 10/AVC (Advanced Video
Coding)) do ITU – T hợp tác với ISO/ISE cùng phát triển.

Lịch sử phát triển của các chuẩn nén video
4


2. Chuẩn H. 261
2.1. Giới thiệu
- H. 261 là chuẩn nén video đầu tiên được ITU giới thiệu vào năm 1990, là một

-

-

-

-

phần của bộ giao thức H. 320 mô tả các thành phần khác nhau của một hệ
thống hội nghị thông qua video, được thiết kế cho các ứng dụng video
telephone và hội nghị truyền hình qua đường ISDN.
Thiết kế cho dữ liệu ở các tốc độ bằng cấp số nhân của 64Kbit/s (Còn gọi là
p*64Kbit/s) với 1<= p <= 30 nên tốc độ dữ liệu nằm trong khoảng từ 64Kbit/s
đến 1920 Kbit/s. Với độ trễ tối đa là 150 ms. Với p=1, p=2 thì phù hợp cho
videophone, giao tiếp trực quan qua máy tính để bàn. Với p>= 6 thì phù hợp

cho hội nghị thông qua video.
Thuật toán mã hóa: Sự lai ghép giữa việc dự đoán trước hình ảnh, biến đổi
mã, bù lại các chuyển động: Giúp làm giảm độ dư thừa về không gian và thời
gian của chuỗi video để đạt được tỷ số nén cao.
Hỗ trợ cho hai độ phân giải: Chuỗi video được định nghĩa theo 2 chuẩn định
dạng QCIF (Quarter Common Intermediate Format) và CIF (Common
Intermediate Format). Với CIF là tiêu chuẩn cho kích thước video và hình ảnh
chứa 352x288 điểm ảnh (pixel). QCIF là tiêu chuẩn có độ phân giải bằng ¼
tiêu chuẩn CIF 172x144 pixel.
Khi chưa nén, với định dạng CIF (yêu cầu 30fps) cần (288 x 352 x 8 + 144 x
176 x 8 + 144 x 176 x 8) x 30 = 37 Mbps. Với định dạng QCIF (yêu cầu
15fps) cần (144 x 176 x 8 + 72 x 88 x 8 + 72 x 88 x 8) x 15 = 4.7 Mbps. Trong
khi ISDN chỉ hỗ trợ 1 x 64 Kbps tới 30 x 64 Kbps = 2 Mbps. Do đó băng thông
không đủ và nén là bắt buộc.
Sử dụng kỹ thuật lấy mẫu 4:2:0 (trong chuẩn H.261 sử dụng hệ màu YUV, kỹ
thuật lấy mẫu này là lấy mẫu theo tỷ lệ giữa độ chói Y và 2 thành phần màu U
và V còn lại).
Tốc độ Frame tối đa là 30 fps nhưng cũng có thể được giảm xuống phụ thuộc
vào các ứng dụng và băng thông đường truyền khác nhau.

2.2. Định dạng
- H.261 hỗ trợ hai độ phân giải là CIF (352x288) và QCIF (176x144).
- CIF được sử dụng khi p>=6, và đó là lúc sử dụng cho ứng dụng video hội
-

nghị. Hỗ trợ 4 kiểu: 30 fps, 15fps, 10 fps hoặc 7.5 fps.
QCIF thường được sử dụng khi p=1 cho các ứng dụng tốc độ bit thấp như
videophone. Cũng hỗ trợ 4 kiểu 30, 15, 10, 7.5 fps.

2.3. Hệ màu và kỹ thuật lấy mẫu

- Chuẩn H.261 sử dụng hệ màu YUV, trong đó Y là tín hiệu độ chói, U và V là
-

hai thành phần tín hiệu màu sắc.
Sử dụng kỹ thuật lấy mẫu 4:2:0.
5


2.4. Phân loại các frame
- Frame I (Intra frame): là frame đầu tiên trong chuỗi video. Nó được mã hóa
-

như một ảnh JPEG.
Frame P (Predictive Frame): là frame ảnh được mã hóa dự đoán trên cơ sở
frame tham chiếu trước đó (có thể là frame Ihoặc frame P) và frame hiện tại.
Trong H. 261 không có frame B.

2.5. Cấu trúc phân cấp
- H. 261 có một hệ thống phân cấp bao gồm
+
+
+
+

Image (Frame)
Group of Block (GOB)
MacroBlock (MB)
Block (Chứa thông tin về Y, Cb, Cr).

3. Chuẩn H. 263

3.1. Giới thiệu
- H. 263 là chuẩn mã hóa video/audio do nhóm VCEG (Video Coding Experts

-

Group) thuộc tổ chức ITU đưa ra vào năm 1998. H. 263 được coi là thế hệ
tiếp theo của chuẩn H. 261, cũng được dùng cho các hội nghị video trực
tuyến.
Năm 1998, ITU cải tiến chuẩn này và cho ra chuẩn H. 263v2 (còn gọi là H.
263+ hay H. 263 1998). Năm 2000, chuẩn H.263v3 ra đời (còn gọi là H. 263+
+ hay H. 263 2000).
H.263 được phát triển dựa trên những kinh nghiệm được rút ra từ các chuẩn
H.261, MPEG-1 và MPEG-2. Thiết kế cơ bản giống với H.261, cộng thêm
nhiều cải tiến về khả năng nén và tính linh hoạt.

3.2. Những cải tiến của H. 263 so với H. 261
- H.263 có chất lượng video tốt hơn và tốc độ bit (lượng bit lưu trữ cho
-

một

đơn vị thời gian ) nhỏ hơn.
Mục tiêu của H.263 là truyền được video chất lượng chấp nhận được trên
đường truyền điện thoại với tốc độ 28.8Kbps.
H.263 hỗ trợ độ phân giải từ 128x96 đến 1408x1152.
H.263 có những cải tiến trong việc dự đoán các chuyển động và thuật toán
giảm dữ liệu dư thừa, phân lớp được tối hơn nhiều so với các chuẩn trước
đó.
Vector chuẩn động có độ chính xác nửa pixel.
Thuật toán mã hóa mới, thay thế RLE và Huffman.

Tiên đoán nâng cao: sử dụng 4 blocks 8x8 thay vì 1 block 16x16 => chi tiết
hơn.
Tiên đoán dựa vào frame trước và sau, tương tự như MPEG.
6


3.3. Định dạng
- H.263 hỗ trợ độ phân giải từ 128x96 đến 1408x1152.

3.4. Hệ màu
- Chuẩn H.263 sử dụng hệ màu YUV.
3.5. Phân loại các frame trong H. 263
- H .263 có hai loại frame là I-Frame và P-Frame và có thêm PB Frame. PB
frame có nguồn gốc từ P và B frame và là sự kết hợp của cả hai.

3.6. Cấu trúc phân cấp
- H.263 cũng có một hệ thống phân cấp bao gồm:
+
+
+
+

Image (frame).
Group of Blocks (GOB).
Macroblock (MB).
Block (chứa thông tin về Y, Cr, Cb).

3.7. Quá trình nén
- H.263 có những cải tiến trong việc dự đoán các chuyển động và thuật toán
-


giảm dữ liệu dư thừa, phân lớp được tối ưu hơn nhiều so với các chuẩn
trước đó.
Vector chuyển động trong H.263 có độ chính xác nửa pixel.

7


Vị trí pixel thường (1 pixel).
Vị trí một nửa pixel.

-

H.263 sử dụng bù chuyển động với độ chính xác sub-pixel thay vì sử dụng
bộ lọc vòng để làm mượt các frame như trong H.261.

-

Thuật toán mã hóa mới.

-

Trong ước lượng chuyển động, H.263 sử dụng 4 blocks 8x8 pixels thay vì 1
block 16x16 pixels => chi tiết hơn.

-

H.263 có sử dụng PB framedự đoán dựa vào frame trước và sau, tương tự
như MPEG. Do đó độ chính xác cao hơn, chất lượng video tốt hơn.


- Chuẩn H.263 có sử dụng nhiều cấu trúc GOB khác nhau hơn là H.261.
4. Chuẩn H. 264
4.1. Giới thiệu
- H.264 hay còn gọi là MPEG-4 Part 10 Advanced Video Coding (AVC) được

-

phát triển và chuẩn hóa bởi ISO/IEC và ITU-T. H.264/AVC bắt đầu nghiên
cứu từ năm 1998. Mục đích của H.264/AVC là nén với hiệu quả cao dựa vào
bù chuyển động dựa trên block.
Chuẩn H.264 là một chuẩn mã hóa/ giải mã và định dạng video đang được
sử dụng rộng rãi nhất hiện nay để ghi, nén và chia sẻ video phân giải cao
dựa trên việc bù trừ chuyển động trên từng block.
Chuẩn H. 264 được giới thiệu lần đầu vào năm 2004 và đã trở thành một
trong những chuẩn nén video phổ biến hiện nay trong việc ghi, nén và phát
hình ảnh với chất lượng hiển thị cao và tiết kiệm băng thông.
H.264 được chấp thuận bởi ITU-T và ISO/IEC. Đây đều là những tổ chức
hàng đầu thế giới trong việc đưa ra những bộ quy chuẩn chung nhằm đồng
bộ và giúp cho các thiết bị có thể truyền tải nội dung dữ liệu qua lại với chất
lượng hiển thị tốt và tiết kiệm băng thông. Chịu trách nhiệm chính cho việc
8


-

nghiên cứu và phát triển về mảng chuẩn hóa quá trình thu, nén và phát video
của 2 tổ chức trên lần lược là các nhóm: VCEG (Video Coding Experts
Group) và MPEG (Moving Picture Experts Group).
Một số ứng dụng của H.264 trong thực tế:
+ Ứng dụng trong đĩa Blu-ray.

+ Đầu ghi hình camera.
+ Máy quay phim.
+ Đầu thu kĩ thuật số.
+ Các dịch vụ phát video như: Youtube, Vimeo, iTunes Store…
+
Các phần mềm web như: Adobe Flash, HTML5…
+ Sử dụng trong các dịch vụ truyền hình HDTV mặt đất, cáp và vệ tinh.

4.2. Hệ màu và cấu trúc lấy mẫu
- Chuẩn H.264 sử dụng hệ màu YUV.
- Chuẩn H. 264 có các cấu trúc lấy mẫu 4:2:2, 4:1:1, 4:2:0
4.3. Cấu trúc phân cấp
- H.264/AVC Codec gồm 2 khối:Video Coding Layer và Network

Abstraction

Layer (NAL).

4.4. Quá trình nén
- Bù chuyển động với khối có kích thước nhỏ được sử dụng, thường sử dụng
-

-

khối 4x4.
Bù chuyển động với độ chính xác ¼ pixel. H.264 còn làm giảm độ phức tạp
của quá trình nội suy.
Picture đa tham chiếu được sử dụng trong bù chuyển động và dự đoán: Ppicture và B-picture. Số lượng picture tham chiếu có thể lên tới 15 cho mức
3.0 hoặc thấp hơn và 4 picture tham chiếu cho mức cao hơn 3.0. Khi picture
đa tham chiếu được sử dụng cho dự đoán bù chuyển động, sự đóng góp của

dự báo từ các tham chiếu khác nhau nên được coi trọng và được bù bằng
lượng định trước bởi bộ mã hóa. Điều này có thể cải thiện hiệu năng nén cho
những cảnh mờ.
Định hướng không gian dự đoán cho mã hóa intra được sử dụng để nâng
cao hiệu quả nén.
Trong H.264 có một vài công cụ được sử dụng để nâng cao khả năng chống
lỗi.
Trong H.264 không sử dụng khái niệm I-picture, P-picture, B-picture nữa thay
vào đó là I-slice, P-slice và B-slice.

5. Ưu điểm và nhược điểm của các chuẩn video H. 26x
5.1. Ưu điểm
- Độ trễ thấp.
- Mã hóa từng khung hình.
9


-

Chỉ sử dụng một phần nhỏ trong bộ đệm để làm mượt (gây ra một chút trễ).
Bitrate cố định.
Chỉ gửi một số lượng ít các block được mã hóa intra trong mỗi khung, do đó
sự biến đổi của tốc đọ dữ liệu chỉ phụ thuộc và nội dung của video.

5.2. Nhược điểm
- Không được thiết kế
-

cho việc ghi lại và xem lại video (quay ngược, tua


nhanh).
Hạn chế trong việc xử lý bit lỗi.
Những lỗi có thể phá hủy đoạn video ( Ví dụ lỗi giải mã Huffman của GOB).

PHẦN 2: Tìm hiểu về dòng dữ liệu, sơ đồ nén và
giải nén trong chuẩn nén video H. 261
1. Cấu trúc phân cấp trong H. 261

-

Một video bao gồm nhiều ảnh tĩnh liên tục (Frame-Khung).

10


-

Kích thước QCIF là 176x144 pixel, kích thước của CIF là 352x288 pixel.

-

Mỗi khung ảnh CIF (352 x 288 pixel) được chia thành 12 GOB.

-

Nếu là khung ảnh QCIF (176x144 pixel) thì sẽ được chia thành 3 GOB.

-

Mỗi GOB lại được chia tiếp thành khối 11x3 MB .


-

Một MB có kích thước 16x16.

11


-

Trong 1 MB có 6 khối B kích thước 8x8. Trong đó gồm 4 khối Y, 1 khối Cr, 1
khối Cb.

2. Sơ đồ tổng thể về dòng dữ liệu

12


2.1. Lớp Picture (Image/Frame)

-

Picture Start Code (PSC) gồm 20 bit thông báo khởi động (0x00010). Dùng
để phân định ranh giới giữa các Frame với nhau.
Temporal Reference (TR) gồm 5 bit là nhãn thời gian của hình ảnh (được sử
dụng sau này để đồng bộ hóa âm thanh).
Picture Type (PType) gồm 6 bit:
+ Bit 1: Dấu hiệu chia màn hình. “1” là bật, “0” là tắt.
+ Bit 2: Dấu hiệu tài liệu camera. “1” là bật, “0” là tắt.
+ Bit 3: Có ảnh cứng hay không? “1” là bật, “0” là tắt.

+ Bit 4: Format nguồn. “1” là QCIF, “0” là CIF.

13


-

+ Bit 5: Tùy chọn chế độ ảnh tĩnh HI_RES. “1” là tắt, “0” là bật.
+ Bit 6: Bit bổ sung.
Extra insertion information (PEI) gồm 1 bit: Được đặt là “1” để thông báo sự
hiện diện của trường dữ liệu tùy chọn.
Spare Information (PSPARE) (0/8/16… bit): Nếu PEI là “1” thì 9 bit sau đó
gồm 8 bit dữ liệu (PSPARE) và sau đó một bit PEI khác để cho biết liệu 9 bit
sau đó có tiếp tục như thế hay không? Bộ mã hóa không được chèn.
PSPARE cho đến khi được chỉ định bởi CCITT. Bộ giải mã phải được thiết kế
để loại bỏ PSPARE nếu PEI được đặt là “1”. Điều này sẽ cho phép CCITT chỉ
định tương thích ngược trong tương lai bổ sung trong PSPARE.

2.2. Lớp Group of Block (GOB)

-

GOB Start Code (GBSC) gồm 16 bit chỉ ra sự bắt đầu của GOB (0x0001).
Group Number (GN) gồm 4 bit chỉ ra vị trí của GOB trong ảnh.
Group Quantization Step (Gquant): Bước lượng tử GOB gồm 5 bit được đặt
cố định cho đến khi được thay đổi bởi MQUANT.
Extra Insertion Information (GEI) dài 1 bit và nếu bit này đặt thành 1 thì báo
hiệu sự hiện diện của trường dữ liệu tùy chọn sau.
Spare Information (GSPARE) (0/8/16/… bit): Nếu GEI được đặt thành “1” thì
9 bit sau gồm 8 bit dữ liệu (GSPARE) và sau đó 1 bit GEI khác để cho biết

liệu có thêm 9 bit khác không và cứ tiếp tục như vậy. Bộ mã hóa được chèn
GSPARE cho đến khi được chỉ định bởi CCITT. Bộ giải mã phải được thiết kế
để loại bỏ GSPARE nếu GEI = “1”. Điều này cho phép CCITT chỉ định tương
thích “lùi” trong tương lai và bổ sung trong GSPARE.

14


2.3. Lớp Macro Block

-

Macro Block Address (MBA): Địa chỉ chỉ vị trí của MB. MB đầu tiên có địa chỉ
tuyệt đối, địa chỉ của các BB kế tiếp được tính thông qua địa chỉ MB đầu tiên.
Một tử mã thêm dùng để nhồi bit ngay lập tức sau một tiêu đề GOB hoặc một
MB được mã hóa (Từ mã này được gọi là nhồi MBA). Nhồi MBA này được
loại bỏ bởi bộ giải mã VLC cho bảng mã khởi đầu.

15


-

Macro Block Type (Mtype): Các từ mã có chiều dài thay đổi cung cấp thông
tin về MB và các thành phần dữ liệu nào có mặt.

16


-


Macro Block Quantization (Mquant): Là một từ mã 5 bit, dùng để thay thế cho
GQUANT đến cuối GOB hoặc tạo ra một MQUANT mới.
Motion Vector Data (MVD): Dữ liệu về vector chuyển động.
Code Block Pattern (CBP): Chỉ xuất hiện khi được chỉ ra bởi MTYPE. Từ mã
cho một số mẫu biểu thị các khối đó trong MB mà ít nhất một hệ số biến đổi
được truyền đi.

2.4. Block

-

Một MB gồm 4 khối Y, 1 khối Cb, 1 khối Cr. Dữ liệu cho một khối bao gồm các
từ mã cho các hệ số biến đổi, theo sau là điểm kết thúc (EOB). Thứ tự truyền
như hình sau:

-

Coeff (Hệ số): là kiểu Run-length. Đối với khối Intra Block thì tất cả 64 hệ số
đều được truyền đi. Tất cả các trường hợp còn lại thì trường CBP sẽ chặn sự
truyền đi. Hệ số này là mã Run-Level (Do sau khi lượng tử, hầu hết các hệ số
AC ở vị trí tần số cao của khối B sẽ biến thành nhiều số 0. Do đó nó sẽ tạo ra
chuỗi nhiều số 0 dọc theo đường quét zig-zag của một khối. Một hệ số AC
không phải là zero được mã hóa thành một ký tự có cấu trúc Run/Level. Run
đại diện cho hệ số zero nằm trước hệ số AC khác zero. Level đại diện cho giá
trị biên độ của hệ số AC khác zero) .
Mỗi block sẽ kết thúc bằng mã (0x1).

-


17


3. Sơ đồ nén và giải nén trong chuẩn H. 261
3.1. Sơ đồ nén trong chuẩn H. 261

18


-

Trong đó bao gồm các khối:
+ Khối DCT thực hiện phép biến đổi Cosin rời rạc đối với đối tượng là sự
sai khác giữa frame hiện tại và frame được dự đoán (đối với frame I, DCT
thực hiện biến đổi ngay trên các khối điểm ảnh của frame). IDCT thực hiện
phép biến đổi Cosin ngược, phục hồi lại sự sai khác đã được mã hóa, sử
dụng cho quá trình dự đoán bù chuyển động.
+ Khối lượng tử hóa: rời rạc hóa tín hiệu theo các bước lượng tử, ở đây là
rời rạc hóa các giá trị của khối điểm ảnh đã qua biến đổi DCT.
+ MC-based prediction: Khối bù chuyển động dựa trên sự dự đoán.
+ Motion estimation: Khối ước lượng chuyển động.
+ Frame Memory: Bộ đệm cho các frame tham chiếu .
+ Control Coding: Bộ điều khiển, sử dụng để kiểm soát tốc độ tạo dữ liệu
video được mã hóa. Bao gồm việc xử lý trước bộ mã nguồn, bộ lượng tử…

-

+ Bộ lọc vòng lặp: Làm mượt quá trình dự đoán.
+ VLE: Variable Length Encode: Bộ cấp từ mã có độ dài thay đổi.
Để giải thích cho cách hoạt động của sơ đồ nén này, ta sẽ sử dụng một kịch

bản trong đó các khung I, P1, P2, được mã hóa (nghĩa là IPPIPP…..). Dữ liệu
sẽ đi qua các điểm quan sát được đánh số trên hình sẽ được tóm tắt trong
bảng dưới đây. Ta sẽ dùng ký hiệu I, P 1, P2, cho dữ liệu gốc. Và P’1, P’2 cho
các dự đoán trong chế độ Inter-Frame. (Dấu * thể hiện cho sự mất mát thông
tin)

I
P1
P2

-

-

-

1
I
P1
P2

2

3

P’1
P’2

D1
D2


4
I*
D1*
D2*

5
+0
P’1
P’2

6
I*
P’1*
P’2*

Khi frame hiện tại là frame-I thì điểm số 1 nhận được các MB từ frame-I.
Công tắc sẽ chuyển về chế độ Intra-frame. Qua các bước DCT, lượng tử hóa
và Entropy Coding thì kết quả sẽ được gửi tới bộ đệm ở đầu ra, sẵn sàng
truyền đi.
Không chỉ thế, mà các hệ số DCT sau khi được lượng tử hóa, lại gửi tiếp tới
bộ lượng tử hóa ngược và bộ IDCT. Do đó xuất hiện giá trị I* tại điểm số 4
của bộ cộng. Kết hợp với điểm số 5 (đầu vào bằng 0 do công tắc đang ở chế
độ Intra-frame). Thì đầu ra tại điểm số 6 vẫn là I* và nó được lưu trong Frame
Memory, chờ để được sử dụng cho bước đánh giá chuyển động và bù
chuyển động cho khung P kế tiếp.
Bộ Control coding(CC) hoạt động như một sự phản hồi. Tức là nếu bộ đệm ở
đầu ra quá đầy, thì bộ CC sẽ tăng kích thước bước lượng tử để giảm kích
thước dữ liệu được mã hóa. Đây là quá trình kiểm soát tốc độ mã hóa.
Kế tiếp là khung P1 sẽ đến điểm số 1. Công tắc sẽ chuyển sang chế độ Interframe. Lúc này, quá trình ước lượng chuyển động sẽ được gọi để tìm vector

19


-

-

chuyển động cho MB phù hợp nhất trong frame I cho mỗi MB trong P 1. Vector
ước lượng chuyển động này được gửi tới cả 2 bộ bù chuyển động và bộ
VLE. Bộ bù chuyển động sẽ tạo ra một MB phù hợp nhất trong P 1 (Ký hiệu là
P’1 và sẽ xuất hiện tại điểm số 2).
Tại điểm “Lỗi dự đoán” sẽ thu được giá trị D1 = P1 – P’1. D1 lúc này lại trả qua
quá trình DCT và lượng tử hóa và qua bộ Entropy Coding, và kết quả lại
được gửi tới bộ đệm đầu ra, sẵn sàng chuyển đi. Không chỉ thế, các hệ số
DCT của D1 cũng lại được gửi tới bộ lượng tử hóa ngược và bộ IDCT, vì thế
tại điểm thứ 4 sẽ xuất hiện giá trị D1*. Kết hợp với điểm số 5 (Giá trị P’1 được
gửi từ đầu ra của bộ bù chuyển động sẽ tới điểm số 5), thì đầu ra của điểm
thứ 6 sẽ là P’1* = D1* + P’1 và giá trị này lại được lưu ở trong Frame
Memory, chờ để được sử dụng cho bước đánh giá chuyển động và bù
chuyển động cho khung P kế tiếp.
Các bước để mã hóa khung P2 giống hệt với các bước thực hiện P 1. Chỉ có
điều lúc này P2 trở thành khung hiện tại, còn khung P 1 trở thành khung tham
chiếu mới.

3.2. Sơ đồ giải nén trong chuẩn H. 261

20


-


Để giải thích cho cách hoạt động của sơ đồ nén này, ta sẽ sử dụng một kịch
bản và ký hiệu giống như phần “2.3. Sơ đồ nén trong chuẩn H. 261”.

I
P1
P2

-

-

1
I*
D1*
D2*

2
P’1
P’2

3
0
P’1
P’2

4
I*
P’1*
P’2*


Đối với bộ giải mã, mã đầu vào cho các frame sẽ được giải mã trước. Đầu
tiên là giải mã Entropy, kế đến là lượng tử hóa ngược và IDCT. Đối với chế
độ Intra-frame. Khung được giải mã đầu tiên có giá trị là I* xuất hiện tại điểm
số 1. Kết hợp với điểm số 5 có đầu vào là 0 (do công tắc đang ở chế độ Intraframe) nên đầu ra ở điểm số 4 sẽ vẫn là I*. Nó được gửi dưới dạng frame
đầu ra và cũng đồng thời được lưu trữ trong Frame Memory.
Sau đó, mã đầu vào cho frame P 1 sẽ được giải mã và lỗi dự đoán D 1 sẽ được
nhận tại điểm số 1. Vì vector chuyển động cho MB hiện tại cũng được giải mã
entropy và được gửi đến bộ bù chuyển động nên MB dự đoán tương ứng là
P’1 có thể được đặt trong frame I là đầu ra tại điểm số 2 và là đầu vào của bộ
cộng (tại điểm số 3). Lúc này đầu ra tại điểm số 4 sẽ là P’ 1* = P’1 + D1 và nó
được gửi ra như một khung đã giải mã (khung đầu ra), và cũng tương tự nó
cũng đồng thời lại được lưu trữ trong Frame Memory. Các bước giải mã cho
P2 tương tự như P1.

4. Quá trình nén các frame
4.1. Quá trình nén frame I
21


-

Quá trình thực hiện tương tự nén ảnh JPEG.

4.2. Quá trình nén frame P
-

Như đã đề cập ở trên, frame P liên quan tới 2 bộ trong sơ đồ nén của chuẩn
H. 261 là bộ đánh giá ước lượng chuyển động và bộ bù chuyển động, vì thế
đây chính là 2 bộ phận quan trọng nhất trong quá trình nén frame P.


4.2.1. Kỹ thuật đánh giá chuyển động
-

Đây là kỹ thuật dùng để xác định vector chuyển động.

-

Để dễ hình dung, ta sử dụng điểm ở góc trên bên trái (x,y) là điểm nguồn của
MB trong khung đích (target). Gọi điểm C(x+k, y+l) là pixel trong MB trong
khung đích (hiện tại) và điểm R(x+k+i, y+j+l) là pixel trong MB trong khung
tham chiếu. Trong đó 2 giá trị k và l là các chỉ số cho pixel trong MB. 2 giá trị i
và j là chuyển vị ngang và dọc tương ứng. Sự khác biệt giữa 2 MB sau đó có
thể đo bằng sự khác biệt trung bình tuyệt đối của chúng (MAD) được định
nghĩa bởi công thức sau:

22


-

-

Trong đó, N là kích thước của MB.
Mục tiêu của việc tìm kiếm là tìm 1 vector (i,j) làm vector chuyển động MV
(u,v) sao cho MAD (i, j) là nhỏ nhất.
Ngoài ra chúng ta có thể sử dụng trung bình bình phương nhỏ nhất (MSE) để
làm hàm tính toán chi phí như hàm MAD.
Từ đó, ta sẽ có các cách dùng để đánh giá chuyển động như:
+ Block matching: Kỹ thuật đối sánh khối.

+ Hierarchical block matching: Kết hợp khối phân cấp.
+ Pel-recursive motion estimation: Ước tính chuyển động đệ quy Pels.
+ Direct optical flow methods: Phương pháp lưu lượng quang học trực tiếp.
+ Mesh-matching methods: Phương pháp kết hợp lưới.
Trong đó, H. 261 sử dụng Một trong rất nhiều kỹ thuật Đối sánh khối, đó là
Thuật toán tìm kiếm ba bước (TSS).

4.2.2. Thuật toán tìm kiếm ba bước (TSS)
-

Là phương pháp tìm kiếm rất thô sơ, nhưng rất phổ biến vì thuật toán này
đơn giản nhưng có hiệu suất rất tốt. TSS tìm kiếm vector chuyển động tốt để
làm cho mô hình tìm kiếm chính xác. TSS giới hạn số lượng kiểm tra trong
một khu vực tìm kiếm. Như ví dụ dưới đây là minh họa cho quy trình của TSS
với w=7.

-

Dưới đây là sơ đồ khối của thuật toán TSS.

23


-

-

Mô tả thuật toán như sau:
+ Bước 1: Chọn kích thước đầu vào. Tám khối xung quanh khối được chọn
dùng để so sánh.

+ Bước 2: Kích thước bước sẽ được giảm đi một nửa. Vị trí trung tâm lúc
này sẽ được chuyển đến điểm có méo tối thiểu.
+ Các bước 1 và 2 được lặp lại cho đến khi kích thước bước nhỏ hơn 1.
Dưới đây là ví dụ cụ thể:

24


-

Sau đó, ta cần phải tạo Frame dự đoán để tiến hành quá trình bù chuyển
động.
Các
bước
thực
hiện
như
sau:
+
Đầu vào: Frame tham chiếu và tập các vector chuyển động của MB.
+ Chia frame tham chiếu thành các macroblock 16x16. Tạo 1 frame P’ với
các giá trị ban đầu đều bằng 0, sau đó cũng chia thành các block 16x16.
+ Duyệt lần lượt từng macroblock trong P’, bắt đầu từ macroblock trên cùng
bên trái, đồng thời lấy ra vector chuyển động ứng với vị trí macroblock đó.
+ Dựa vào vector chuyển động, tách lấy macroblock 16x16 từ frame tham
chiếu. Macroblock tương ứng ở P’ sẽ được gán giá trị bằng macroblock đó.
+ Duyệt xong toàn bộ, trả về P’ là frame dự đoán.

4.2.3. Kỹ thuật bù chuyển động
-


Vùng khớp nhất được tìm thấy trong ảnh tham chiếu được trừ với
macroblock hiện hành để cho ra một macroblock chứa giá trị dư thừa (Gọi là
Residual Macroblock- RMB), phép trừ được thực hiện trên cả 3 khối Y, Cr,
Cb. RMB sau đó được mã hóa và gửi đi cùng với một vector chuyển động trỏ
đến vị trí khớp nhất đã được tìm thấy trong quá trình dự đoán chuyển động.
Bên trong bộ giải mã, tín hiệu dư thừa lại được đưa về để giải mã và cộng lại
vào vùng khớp để cho ra một macroblock tái dựng và được lưu trữ cho các
25


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay
×