Tóm tắt 6 giai đoạn nghiên cứu phát triển giải pháp

Một phần của tài liệu Nghiên cứu phát triển một số giải pháp nén ảnh tiên tiến cho màn hình tinh thể lỏng (Trang 76)

Phần này trình bày tóm tắt 6 giai đoạn nghiên cứu cải tiến và phát triển có tính kế thừa từng bước của luận án, theo hướng nghiên cứu áp dụng mã hóa khối và biến đổi không gian màu, các mục tiếp theo sẽ trình bày chi tiết các phân tích và đề xuất.

Hình 3.1. Sơ đồ mô tả sơ lược các bước nghiên cứu phát triển.

AHIC MAIC AHAIC AAIC ACAIC RAIC ARAIC

Cải tiến hàm phân phối CBBDT dựa trên giá trị

Max(Bloc)

Đề xuất hàm phân phối RBBDT, Hàm lượng tử MMAUQC, và mô

hình mã hóa MAQC

Áp dụng mô hình đa thích nghi đồng bộ cho cả ba thành phần Y, Cb, và Cr dựa trên cải tiến MAQC

Chuyển tín hiệu về dạng zero-mean, áp dụng MUQ

Theo hướng nghiên cứu áp dụng mã hóa khối và biến đổi không gian màu, luận án đã có nhiều đề xuất cải tiến cũng như đề xuất kết hợp một số kỹ thuật trao đổi hay phân phối bit nhằm tối ưu hóa chất lượng ảnh nén. Trải qua 5 giai đoạn nghiên cứu với dấu mốc là 5 đề xuất cải tiến có tính kế thừa và phát triển từng bước một gồm MAIC (Mean Adaptive Image Coding), AAIC (Advanced Adaptive Image Coding), AHAIC (Advanced High- Adaptive Image Coding), ACAIC (Advanced Content-Adaptive Image Coding), RAIC (Robust Adaptive Image Coding).

Giai đoạn sau cùng tập trung cho những nghiên cứu đánh giá ưu nhược điểm của các kết quả đã đạt được ở những giai đoạn trước, phân tích và tổng hợp, nghiên cứu hiệu chỉnh mô hình xử lý để có thể tích hợp các ưu điểm trong các mô hình phát triển trước đó. Từ đó tổng hợp và đề xuất một giải pháp nén ảnh khung hình có hiệu năng vượt trội với tên gọi ARAIC (Advanced Robust Adaptive Image Coding) (xem Hình 3.1).

3.1.2. Môi trƣờng thực nghiệm cài đặt và các bộ dữ liệu

Tất cả các nghiên cứu cải tiến trình bày trong sơ đồ Hình 3.1, cũng như các nghiên cứu trình bày trong những phần khác của luận án, đều được cài đặt lập trình và thực nghiệm.

Môi trƣờng lập trình: Matlab và Simulink

Môi trƣờng cài đặt: máy tính PC

Các bộ dữ liệu: Dữ liệu cho quá trình nghiên cứu đánh giá của toàn bộ luận án là một tập hợp các hình ảnh và các chuỗi khung hình (với tổng số 8765 ảnh) chuyên dùng cho việc đánh giá thực nghiệm trong lĩnh vực xử lý ảnh và video, được lấy từ các trung tâm nghiên cứu hàng đầu về xử lý ảnh và video qua các địa chỉ website sau:

 http://trace.eas.asu.edu/yuv/index.html: thuộc đại học bang Arizona (Arizona State University) [33] (xem Bảng 3.1).

 ftp://vqeg.its.bldrdoc.gov/MM/cif/: thuộc nhóm các chuyên gia trong lĩnh vực chất lượng video (Video Quality Experts Group - VQEG) [34] (xem Bảng 3.1).

 http://live.ece.utexas.edu/research/quality/subjective.htm: thuộc phòng thí nghiệm hình ảnh và kỹ thuật video (Laboratory for Image and Video Engineering - LIVE) thuộc đại học Texas [6] (xem Bảng 3.2).

Có thể thấy tình huống điển hình của bài toán nén ảnh khung hình, cho hệ thống màn hình tinh thể lỏng độ phân giải cao, chính là yêu cầu nén lần lượt các khung hình trong một chuỗi khung hình động (hay video), mà người dùng đang xem trên ti-vi tinh thể lỏng chẳng hạn, và đấy chính là lý do chúng ta cần phải tiến hành thực nghiệm các giải pháp nén ảnh khung hình không chỉ trên các bức ảnh rời rạc mà cần thiết phải tiến hành nén với

các khung hình trong chuỗi khung hình và tái hiện chúng một cách liên tục để quan sát những tác động tiêu cực mà giải pháp nén có thể mang lại đối với thị giác người quan sát. Một lợi điểm của việc nén và tái hiện các hình ảnh trong một chuỗi khung hình là giúp chúng ta dễ dàng nhận ra một số hiệu ứng tiêu cực về thị giác mà một số giải pháp nén có thể mắc phải như nhiễu đốm, nhiễu khối, rung,… mà khi quan sát trên một ảnh tĩnh chúng ta khó nhận ra và đánh giá không đúng mức độ tác động của nó với thị giác người.

Các bộ dữ liệu thực nghiệm trong luận án hội tụ đầy đủ các đặc tính thiết yếu cho việc kiểm nghiệm các giải pháp nén ảnh khung hình cho màn hình tinh thể lỏng. Trong đó chứa nhiều hình ảnh và chuỗi khung hình video với độ nét và độ chi tiết cao, chúng sẽ tạo ra những thách thức lớn cho các giải pháp nén ảnh và làm cho nhiều giải pháp nén ảnh khung hình đã được đề xuất bộ lộ rõ những yếu điểm khi các kết quả thực nghiệm được thể hiện đồng thời qua ảnh tĩnh và cả ảnh động. Điển hình trong số đó là các chuỗi khung hình MobileCalendar, Cheerleaders, Paris, và các hình ảnh Parrots, Womanhat, và Building2 (xem Bảng 3.1 và Bảng 3.2).

Các mục tiếp theo trong chương này sẽ trình bày chi tiết về các đề xuất kỹ thuật và giải pháp mới của luận án như đã được trình bày trong Hình 3.1.

Bảng 3.1. Các chuỗi khung hình định dạng CIF (kích thước 352×288) sử dụng trong thực nghiệm (nguồn [33] và [34]).

Foreman Hall Football MobileCalendar Cheerleaders

FlowerGarden BetesPasBetes LePoint Paris 3inrow

WashDC Vtc1nw Vtc1nw FlamingoHilton Bus

Bảng 3.2. Các hình ảnh sử dụng trong thực nghiệm được lấy từ tập dữ liệu ảnh “LIVE image quality assessment database release 2”(nguồn [6]).

Bikes Buildings Building2 Rapids Caps

House Lighhouse2 Sailing1 Sailing4 Parrots

Monarch Ocean Plane Woman Womanhat (adsbygoogle = window.adsbygoogle || []).push({});

Lighhouse2 Sailing2 Sailing3 Statue

3.2. Khắc phục hiện tƣợng nhiễu khối trong AHIC với đề xuất cải tiến MAIC tiến MAIC

3.2.1. Nhiễu khối trong AHIC – Nguyên nhân và giải pháp khắc phục

Như đã phân tích trong mục 2.6.2.1 a), nguyên nhân chính của hiện tượng nhiễu khối trong AHIC là do sai số phát sinh khi nén 8 giá trị Min. Để tránh hiện tượng này chúng tôi đề xuất cải tiến quy trình xử lý thành phần độ chói Y bao gồm:

 Tránh lượng tử hóa kép gây nên nhiễu khối: hay nói cụ thể là tránh tình trạng lượng tử hóa dữ liệu đầu ra của một quy trình lượng tử hóa, như cách đã thực hiện trong AHIC là lượng tự hóa 8 giá trị Min vốn là kết quả của quá trình lượng tử hóa 8 khối ảnh kích thước 4×4 trước đó, sai số phát sinh khi khôi phục lại các giá trị Min đã tác động lên toàn bộ 4×4 phần tử trong một khối được khôi phục từ giá trị Min này và tạo nên sai số dạng khối, sai số dạng khối sẽ trở nên trầm trọng khi giá trị Min khôi phục có sai số lớn so với giá trị gốc (khoảng từ 5 đến 7 đơn vị trở lên) vì lúc này các khối ảnh khôi phục sẽ có khác biệt lớn so với các khối ảnh xung quanh và gây ra hiện tượng nhiễu khối về mặt thị giác.

 Xây dựng phương pháp lượng tử hóa tối ưu mới dựa trên tham số thống kê trung bình (Mean) có tính ổn định cao hơn, nhằm tối thiểu hóa sai số khi lượng tử hóa các giá trị Mean.

3.2.2. Phát triển phƣơng pháp lƣợng tử tối ƣu sai số “Midrise Uniform Quantizer”

Midrise Uniform Quantizer là một phương pháp lượng tử hóa được đề cập trong [3], cho phép lượng tử hóa các giá trị có phân phối xác xuất đều với sai số tối thiểu. Quy trình thực hiện như sau:

Lượng tử hóa với b bit, hay L=2b

là số mức lượng tử

Gọi ZMI là giá trị đầu vào có dạng “zero mean signal” và QS là bước lượng tử (quantifier step size), giá trị lượng tử hóa được xác định bởi:

𝑛 (

) (3.1)

− Giá trị khôi phục:

( − ) (3.2) Hình 3.2 minh họa đồ thị của hàm lượng tử hóa Midrise Uniform Quantizer cho các giá trị đầu vào có phân phối đều trong khoảng (-a; +a) với tám mức lượng tử hóa, hay tương ứng với mức lượng tử 3bit/value, giá trị bước lượng tử hóa QS = a/4.

Hình 3.2. Đồ thị hàm lượng tử Midrise Uniform Quantizer với 8 mức lượng tử, các giá trị đầu vào có phân phối xác xuất đều trong khoảng (-a, a). Giá trị bước lượng tử QS = a/4

3.2.3. Đề xuất giải pháp cải tiến MAIC giúp khắc phục nhiễu khối

Trên cơ sở nghiên cứu cải tiến quy trình xử lý thành phần độ chói Y trong AHIC theo +a -a 4QS 3QS 2QS 1QS -1QS -2QS -3QS -4QS 0.5QS 1.5QS 2.5QS 3.5QS -3.5QS -2.5QS -1.5QS -0.5QS -a +a Input Output Code=7 Code=6 Code=5 Code=4 Code=3 Code=2 Code=1 Code=0

các định hướng đã nêu ở phần trên, từ đó hình thành nên giải pháp cải tiến MAIC (Mean Adaptive Image Coding) được thể hiện qua các sơ đồ trong Hình 3.3 và Hình 3.4.

Có ba điểm khác biệt trong mô hình mới MAIC so với mô hình AHIC như sau: Thứ nhất, thay vì dùng giá trị Min Max là những giá trị thường thiếu ổn định do dễ bị tác động bởi nhiễu, luận án đề xuất dùng giá trị trung bình (mean) là giá trị có tính ổn định cao hơn trong tín hiệu ảnh, nó ít bị tác động bởi nhiễu. Thứ hai, thực hiện trừ giá trị tín hiệu đầu vào bởi giá trị trung bình đã giải mã (mean decoded) để thu được tín hiệu "zero mean" trước khi được lượng tử hóa với 3bit/giá trị, bằng con đường này, sẽ tránh được lượng tử hóa kép gây nên nhiễu khối mà giải pháp AHIC mắc phải. Thứ ba, sử dụng bộ lượng tử hóa MUQ (Midrise Uniform Quantizer) thay thế bộ lượng tử AQC.

Hình 3.3. Sơ đồ khối của giải pháp nén MAIC. (a) Bộ mã hóa. (b) Bộ giải mã.

RG Bt oY Cb Cr 4 lin e bu ff er

Filter & ↓4x4 BTC Encoder RGB (24 bits) 8x4x4 Block YCbCr Y Cb Cr 8x1x1 block

Filter & ↓4x4 8x1x1 BTC Encoder block 24 bits Coded Cb 8x4x4 block Mean 4x4 &↓4x4 MUQ Encoder 8 Mean MUQ Decoder ↑4x4 +

Decoded mean signal

Zero mean signal

MUQ Encoder 8x4x4 block 424 bits Coded Data 37 bits Coded Mean - 24 bits Coded Cr 8x 4x 4 bl oc k

(a) MAIC Encoder

24 bits Coded Cb 424 bits Coded Data 37 bits Coded Mean BTC Decoder 8x1x1 block Filter & ↑4x4 MUQ Decoder ↑4x4 +

Zero mean signal (adsbygoogle = window.adsbygoogle || []).push({});

8x4x4 block Y Y Cb Cr MUQ Decoder 8x4x4 block Cb 8x4x4 block YCbCr YC bC rt oR G B 4 lin e bu ff er RGB (24 bits) 24 bits Coded Cr BTC Decoder 8x1x1 block Filter & ↑4x4 8x4x4 block Cr (b) MAIC Decoder 4x4 Zero mean signal

4x4 block Midrise Uniform Quantizer maxv = max(|block|)

qs_send = maxv >> 3

qs_use = (qs_send << 1)+1

Quantifier step size for 3 bits

Code 3bits/value qs_send 5 bits Invert Midrise Uniform Quantizer Code 3bits/value qs_send 5 bits 4x4 Decoded qs_use = (qs_send << 1)+1

Quantifier Step Size for 3 bits

(a) Block diagrams of Midrise Uniform Quantizer (MUQ) Encoder & Decoder (with “zeros mean signal” input)

Encoder Decoder

Hình 3.4. Sơ đồ bộ lượng tử hóa MUQ (MUQ Encoder & Decoder). (a) Trong trường hợp đầu vào là 4×4 giá trị có dạng “zero mean signal”. (b) Trong trường hợp đầu vào là

8x1 giá trị Mean. Các ký hiệu >> và << biểu diễn các phép toán dịch bít. Ở đây giá trị lượng tử qs_use chính là giá trị (maxv/4) được làm tròn về số nguyên ở cận trên.

3.2.4. Đánh giá độ phức tạp của MAIC so với AHIC

MAIC và AHIC chỉ khác nhau ở công đoạn xử lý thành phần độ chói Y. Mà cụ thể hơn là các bộ mã hóa và giải mã AQC (AQC encoder & decoder) được thay bằng các bộ mã hóa và giải mã MUQ (MUQ encoder & decoder). Về mặt số lượng các bộ tính toán thì MAIC nhiều hơn AHIC một bộ tính giá trị trung bình (mean) của 16 giá trị và một bộ giải mã AQC nhằm giải mã 8 tín hiệu Min để tổng hợp với tín hiệu Y cho ra tín hiệu Y ở dạng "zero mean signal". Đây là một trong những điểm mấu chốt giúp MAIC tránh được lượng tử hóa hai lần vốn gây nên hiệu ứng nhiễu khối trên ảnh giải nén mà AHIC mắc phải.

Để có cái nhìn cụ thể hơn về độ phức tạp tính toán của AQC encoder & decoder so với MUQ encoder & decoder với giả thiết dữ liệu đầu vào ở dạng số nguyên có N phần tử (N=16 hoặc N=8), chúng ta hãy xem xét bảng thống kê dưới đây:

AQC encoder MUQ encoder

Phần khởi động:

Để có được Min và Max cần

+ 1 phép tìm kiếm Min và Max với độ phức tạp tuyến tính theo N.

+ 1 phép tính trừ

Diff = Max – Min

+ Một phép tính chia và làm tròn kết quả về số nguyên:

Qstep = Integer(Diff/7.0+0.5)

+ Một phép kiểm tra và hiệu chỉnh Qstep trong miền giá trị 1..32 sau đó chuyển về 5 bit để chuyển đi như sau:

Nếu Qstep>32 thì gán Qstep = 32 Rồi tính

Qstep_send = Qstep-1; và Qstep_use = Qstep_send +1

Phần khởi động:

Để có được giá trị maxv cần

+ 1 phép tìm kiếm Max của trị tuyệt đối các giá trị đầu vào với độ phức tạp tuyến tính theo N.

+ Một phép dịch sang trái 3 bit để thu được giá trị Qstep_send:

Qstep_send = maxv >> 3 (adsbygoogle = window.adsbygoogle || []).push({});

+ Một phép dịch bit và một phép cộng nhằm khôi phục giá trị lượng tử hóa sử dụng cho phần mã hóa: Qstep_use = (Qstep_send <<1)+1 8x1 block Midrise Uniform Quantizer maxv = max(|block|) qs_send = maxv >> 3 qs_use = (qs_send << 1)+1

Quantifier Step Size for 3 bits

Code 3bits/value qs_send 5 bits + Mean 8x1 block - Mean 8 bits Invert Midrise Uniform Quantizer Code 3bits/value qs_send 5 bits 8x1 Decoded qs_use = (qs_send << 1)+1

Quantifier Step Size for 3 bits

+ Mean

8 bits

8x1 decoded block

(b) Block diagrams of Midrise Uniform Quantizer (MUQ) Encoder & Decoder (with 8 Mean value input)

Zero mean signal

Zero mean signal

Phần mã hóa dữ liệu

Code = Integer[(Input–Min)/Qstep_use] và

Nếu Code>7 thì gán Code = 7

Sẽ gồm:

+ N phép trừ

+ N phép chia lấy phần nguyên

+ Một phép kiểm tra và hiệu chỉnh giá trị

Phần mã hóa dữ liệu

Code =Integer(Input/Qstep_use)+4; và

Nếu Code >7 thì gán Code = 7

Sẽ gồm:

+ N phép cộng

+ N phép chia lấy phần nguyên

+ Một phép kiểm tra và hiệu chỉnh giá trị

AQC decoder MUQ decoder

Phần khởi động: + Tính Qstep_use từ Qstep_send bằng một phép cộng. Qstep_use = Qstep_send +1  Phần giải mã dữ liệu Decode = Integer[(Code+0.5)* Qstep_use] Sẽ gồm: + N phép cộng

+ N phép nhân và lấy kết quả là phần nguyên

Phần khởi động: + Tính Qstep_use từ Qstep_send bằng phép dịch bit và phép cộng. Qstep_use = (Qstep_send <<1)+1  Phần giải mã dữ liệu Decode = Integer[(Code - 4+0.5)*Qstep_use] Sẽ gồm: + N phép cộng và trừ

+ N phép nhân và lấy kết quả là phần nguyên

Qua bảng phân tích và so sánh trên đây về số lượng các phép tính toán, chúng ta có thể thấy khi tích hợp vào hệ thống mạch overdrive (overdrive circuit) của hai giải pháp AQC và MUQ sẽ có độ phức tạp xấp xỉ nhau về các bộ tính toán (như bộ cộng/trừ, bộ nhân/chia và các cổng logic). Xét về mặt thời gian thì độ trễ của tín hiệu đầu ra khi qua các bộ AQC và MUQ cũng xấp xỉ nhau. Tốc độ thực hiện của AHIC và MAIC phải luôn đảm bảo theo thời gian thực, vì thế nó sẽ phải hoạt động theo xung nhịp khác nhau trên các màn hình tinh thể lỏng có độ phân giải và tần xuất khung hình khác nhau. (adsbygoogle = window.adsbygoogle || []).push({});

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

Luận án đã tiến hành cài đặt cả hai mô hình giải pháp nén AHIC và MAIC để kiểm định và so sánh trên các chuỗi khung hình ảnh mẫu, đây là bộ ảnh chuyên dùng cho việc đánh giá thực nghiệm trong lĩnh vực xử lý ảnh và video được lấy từ nguồn các trang Web [33] và [34]. Trên cơ sở đó đưa ra các đánh giá về chất lượng nén của hai giải pháp, trên cùng một tỷ số nén là 6:1. Trong các kết quả thực nghiệm chúng tôi sử dụng độ đo PSNR,

tính theo decibel (dB), để đánh giá chất lượng ảnh khôi phục. So sánh tập trung vào chất lượng ảnh sau khi khôi phục của hai sơ đồ nén trong các tình huống ảnh khác nhau.

Hình 3.5 và Hình 3.6 thể hiện sự so sánh hiệu năng của AHIC với MAIC. Trong Hình 3.5 (a) cho thấy sử dụng MAIC thu được kết quả nén cao hơn AHIC vào khoảng 2dB đến 3.5dB khi chỉ đánh giá trên ảnh độ chói Y. Có được kết quả này là do chuỗi khung hình CIF Foreman có nhiều điểm nhiễu (noise). Hình 3.5 (b) cho thấy sử dụng MAIC thu được

kết quả nén cao hơn AHIC vào khoảng 0.8dB đến 2dB khi đánh giá trên cả 3 thành phần màu RGB.

(a) (b)

Hình 3.5. So sánh hiệu năng của AHIC với MAIC trên chuỗi hình CIF Foreman. (a) so sánh trên ảnh độ chói Y. (b) so sánh trên ảnh màu RGB.

(a) (b)

Hình 3.6. So sánh hiệu năng của AHIC với MAIC trên chuỗi hình CIF Bus. (a) so sánh trên ảnh độ chói Y. (b) so sánh trên ảnh màu RGB

Hình 3.6 (a) và (b) thể hiện sự so sánh hiệu năng của AHIC với MAIC trên chuỗi khung hình CIF Bus. Qua đó cho thấy trong tình huống xấu nhất thì MAIC có thể cho chất

Một phần của tài liệu Nghiên cứu phát triển một số giải pháp nén ảnh tiên tiến cho màn hình tinh thể lỏng (Trang 76)