Nối gốc tọa độ O với điểm màu trắng W ta có đƣờng tổng hợp ánh sáng của 3 màu với giá trị bằng nhau. Nó chính là đƣờng thể hiện mức độ sáng của màu sắc.
Không gian màu YUV đƣợc hình thành từ khơng gian màu RGB bằng cách sử dụng mặt phẳng đi qua ba điểm Red, Green và Blue làm mặt phẳng màu. Gọi mặt
phẳng này là mặt UV. Chúng đi qua I, điểm giữa của đọan OK. Trên mặt UV hình thành 2 đƣờng U và V vng góc với nhau và đi qua I. Gọi trục Y qua I và vng góc với mặt UV, gọi chúng là trục thể hiện độ chói của điểm ảnh.
Ta có mơ hình màu YUV hay YcbCr: Y: Luminance U, Cb: trục U, thành phần blue. V, Cr: trục V, thành phần red. Green (0,1,0) Yellow (1,1,0) Red (1,0,0) Magenta (1,0,1) Blue (0,0,1) Cyan (0,1,1) R G B O W
Mơ hình màu YUV đƣợc sử dụng làm chuẩn cho TV PAL, SECAM và nén ảnh JPEG/MPEG. YUV (PAL): Y = 0.299R + 0.587G + 0.114B U = 0.492(B-Y) V= 0.877(R-Y) YUV (SECAM): Y = 0.299R + 0.587G + 0.114B U = 1.5(B-Y) V= -1.9(R-Y)
Mơ hình mầu YCbCr là tập con của YUV, hay còn gọi là YUV số (giá trị thành phần màu biểu diễn bới 8 bit không dấu).
Y = 0.299R + 0.587G + 0.114B Cr = ((B-Y)/2) + 0.5
Cb = ((R-Y)/1.6) + 0.5
Mơ hình màu YIQ
Mơ hình màu này đƣợc sử dụng làm chuẩn cho TV Mỹ (NTSC). Việc hình thành mơ hình màu này tƣơng tự YUV, nhƣng mặt phẳng màu đƣợc xoay đi một góc 330 theo chiều kim đồng hồ sao cho I là trục có phƣơng Orange – Blue và Q có phƣơng Purple – Green.
Y = 0.299R + 0.587G + 0.114B
I = 0.74(R-Y) – 0.27(B-Y) = 0.596R – 0.275G – 0.321B Q = 0.48(R-Y) + 0.41(B-Y) = 0.212R – 0.523G + 0.311B
2.1.2 Các tham số chính của ảnh số
Chất lƣợng ảnh đƣợc đo bởi các tham số chính sau đây:
Kích thước ảnh: Tổng số pixel trên hàng và tổng số cột pixel. Ta thƣờng nói
kích thƣớc ảnh là x pixel và y dòng. Để đạt đƣợc chất lƣợng ảnh gốc thì tổng số điểm ảnh/dịng và tổng số dòng phải bằng giá trị tối thiểu xác định theo định lý
Nyquist. Thí dụ mật độ ảnh gốc là 300 dpi thì tổng số pixel (mẫu) / inch phải ít nhất 300. Nếu khơng nó bị suy giảm so với ảnh gốc.
Tổng số bit biểu diễn từng pixel (pixel depth): Với ảnh đa mức xám chất
lƣợng chấp nhận đƣợc đòi hỏi 8 bit/pixel. Với ảnh màu, cần 24 bít/pixel (mỗi thành phần màu cần 8 bít).
Dữ liệu của ảnh đƣợc tính nhƣ sau: D = xyb
Trong đó, x - tổng số pixel/dòng ảnh, y - tổng số dòng ảnh và b – tổng số bit/pixel.
Thí dụ, ảnh 1024 pixel x 1024 dịng và độ sâu pixel 24 bít, thì kích thƣớc dữ liệu sẽ là:
D = 1024 x 1024 x 24 bit = 25165824 KB.
2.1.3 Nén ảnh
Ảnh khơng nén có kích thƣớc rất lớn. Do vậy, nén ảnh trở nên rất quan trọng trong ứng dụng đa phƣơng tiện.
Các kỹ thuật và chuẩn nén:
- Lấy mẫu phụ khơng gian (Spatial Subsampling)
Vì dữ liệu ảnh chứa dƣ thừa, cho nên không giữ lại mọi pixel ảnh gốc. Kỹ thuật này gọi là lấy mẫu phụ khơng gian. Phía nén ảnh ta chọn và truyền tải một trong vài điểm ảnh. Phía giải nén ảnh, các điểm ảnh thiếu sẽ đƣợc nội suy trên cơ sở các điểm ảnh thu đƣợc để sinh ra trình tự video gốc với độ phân dải thấp hơn. Bộ giải mã sẽ giải mã và hiển thị ảnh subsampled không gian nhỏ hơn.
Kỹ thuật này khá đơn giản nhƣng hiệu quả. Nó đƣợc sử dụng làm tiền xử lý cho các kỹ thuật nén khác (MPEG).
- Mã hóa dự báo (Predictive coding)
Nguyên lý mã hóa dự báo trƣớc cho ảnh tƣơng tự cho âm thanh. Tổng quát thì các giá trị mẫu (sample) của các phần tử ảnh láng giềng (về mặt không gian) là tƣơng quan. Sự tƣơng quan hay sự phụ thuộc thống kê tuyến tính chỉ ra rằng dự báo tuyến tính của các giá trị mẫu trên cơ sở các giá trị mẫu của phần tử ảnh láng giềng là kết quả trong lỗi dự báo mà nó có bất biến nhỏ hơn giá trị mẫu gốc. Các thuật
toán dự báo 1-D sử dụng tƣơng quan của các phần tử ảnh láng giềng trong dòng quét. Lƣợc đồ phức tạp hơn với tƣơng quan dòng - dòng và khung - khung (dự báo 2D và 3D). Dao động nhỏ hơn của tín hiệu sẽ đƣợc lƣợng tử hóa, mã hóa và truyền tải trong hệ thống mã hóa dự báo có thể thu nhỏ dải biên độ của bộ lƣợng tử hóa và làm giảm tổng số mức lƣợng tử hóa, dẫn tới địi hỏi ít bits/pixel (so với hệ thống PCM) mà vẫn khơng làm giảm tỷ lệ tín hiệu – nhiễu lƣợng tử hóa.
- Mã hóa biến đổi (Transform Coding)
Ý tƣởng chính: Loại bỏ tƣơng quan giữa các điểm ảnh (chuyển đổi các phần tử ảnh phụ thuộc thống kê thành các hằng số độc lập) và tập trung năng lƣợng ảnh vào một vài hằng số. Do vậy, có thể loại bỏ dƣ thừa trong ảnh.
Trong mã hóa biến đổi thƣờng chia ảnh gốc thành các khối (block) ảnh nhỏ. Áp dụng biến đổi toán học cho từ khối con để chuyển đổi khối con từ miền không gian sang miền tần số. Kết quả là năng lƣợng chỉ tập trung vào một vài mẫu ở miền tần số thấp. Chú ý rằng áp dụng biến đổi dữ liệu ảnh không làm giảm dữ liệu. Nếu dữ liệu ảnh trong miền khơng gian có tính tƣơng quan cao, thì dữ liệu kết quả trong miền tần số sẽ trong hình thức phù hợp cho việc làm giảm thiểu dữ liệu bằng kỹ thuật nén Huffman hay RLE.
Nhiều loại biến đổi có thể áp dụng để nén ảnh: KLT, DCT, WHT, DFT. Trong đó KLT là hiệu quả nhất về hiệu năng loại bỏ tƣơng quan (decorrelation). Nhƣng có các thuật toán biến đổi DCT nhanh cho nên biến đổi DCT đƣợc sử dụng rộng rãi nhất trong nén ảnh.
- Biến đổi DCT (Discrete Cosine Transform)
Biến đổi DCT xuất phát từ ý tƣởng biến đổi tín hiệu do Jean Baptiste Fourier đề xuất nhƣ sau: Bất kỳ tín hiệu hay dạng sóng nào đều có thể đƣợc tạo ra từ dãy các sóng hình sin với cƣờng độ và tần số phù hợp. Tƣơng tự biến đổi Fourier, DCT là phƣơng trình tính tốn tần số, cƣờng độ và pha của các sóng hình sin cần có để tạo ra tín hiệu cho trƣớc.
Một dịng ảnh có thể biểu diễn dƣới dạng sóng nhƣ hình 2.3. Ta có thể biến đổi chúng sang miền tần số để thực hiện nén (JPEG).
Theo Fourier thì sóng vng có đƣợc do cộng các sóng hình sin tinh khiết với các tần số cơ bản nhƣ hình 2.4. Có nghĩa rằng ta có thể dễ dàng chuyển đổi xuôi ngƣợc giữa miền thời gian và miền tần số (hình 2.5).[4]
Hình 2.3 Mơ hình dịng ảnh biểu diễn dưới dạng sóng
Hình 2.5 Mơ hình chuyển đổi giữa miền thời gian và miền tần số
Các bước chính khi cài đặt hệ thống nén ảnh biến đổi
+ Chọn loại biến đổi. Biến đổi tốt nhất thỏa mãn thỏa hiệp giữa phi tƣơng quan và khả năng tập trung năng lƣợng với thực tế cài đặt. DCT đƣợc áp dụng rộng rãi.
+ Chọn kích thƣớc khối ảnh và áp dụng biến đổi trên chúng. Nếu khối ảnh quá nhỏ thì tƣơng quan giữa các điểm ảnh láng giềng không đƣợc khai thác hết. Mặt khác, nếu khối ảnh quá lớn thì làm tăng độ phức tạp cài đặt phần cứng và gây khó chịu khi quan sát biên của các khối. Kích thƣớc khối ảnh lựa chọn tốt nhất là 8x8.
+ Lƣợng tử hóa các hằng số biến đổi để giảm dung lƣợng lƣu trữ hay truyền tin.
+ Nén các hằng số đã lƣợng tử hóa bằng phƣơng pháp Huffman và/hoặc RLE.
- Lượng tử hóa véctơ (VQ)
Lƣợng tử hóa đƣợc thực hiện trên từng mẫu giá trị thực của dạng sóng hay các pixel ảnh. Mã hóa biến đổi thực hiện lƣợng tử hóa nhƣ sau: trƣớc hết biến đổi blốc điểm ảnh sau đó mã hóa riêng rẽ các hệ số biến đổi. Mã hóa dự báo thực hiện việc này bằng lƣợng tử hóa giá trị lỗi (là hiệu số giữa mẫu mới và dự báo mẫu mới trên cơ sở đầu ra mã hóa trƣớc đó).
Bộ lƣợng tử hóa véctơ đƣợc định nghĩa nhƣ ánh xạ Q của các véctơ K chiều trong không gian Euclid RK vào tập con hữu hạn các véctơ Y của RK, Q: RK Y, trong đó, Y = (x’i; i = 1, 2, ...N), x’i là véctơ thứ i trong Y và đƣợc gọi là
codevector hay codeword.
Với mỗi codeword có một vùng láng giềng gần nhất liên quan (vùng Voronoi): Biên độ
x R x y x y For all j i
Vi K : i j ,
Tập các codewords đƣợc gọi là VQ codebook hay VQ table. N là tổng số
véctơ trong Y. Trong bộ mã hóa, mỗi véctơ dữ liệu x thuộc RK là phù hợp hay xấp xỉ với từ mã trong codebook, và địa chỉ hay chỉ số của từ mã đƣợc truyền đi thay cho dữ liệu véctơ. Tại bộ giải mã, chỉ mục đƣợc ánh xạ trở lại từ mã và nó đƣợc sử dụng để biểu diễn véctơ dữ liệu gốc. Bộ mã hóa và bộ giải mã sử dụng cùng
codebook, đầu vào của chúng chứa tổ hợp các pixel trong blốc. Giả sử rằng kích
thƣớc blốc ảnh là (n x n) pixel và mỗi pixel đƣợc biểu diễn bởi m bít, về lý thuyết thì có thể (2m)nxn loại blốc. Tuy nhiên trong thực tế, chỉ có giới hạn các tổ hợp thƣờng xun xuất hiện, nó làm giảm đáng kể kích thƣớc của codebook. Đó là cơ sở của lƣợng tử hóa véctơ. Nếu sử dụng cả các đặc tính cảm nhận của con ngƣời thì kích thƣớc này cịn giảm nữa và chỉ cần ít bít để biểu diễn chỉ mục đầu vào
codebook.
Ta nhận thấy nguyên tắc lƣợng tử hóa véctơ tƣơng tự thuật toán LZW: sử dụng chỉ mục để biểu diễn blốc dữ liệu.
- Mã hóa ảnh fractal
Fractal: hiểu đơn giản fractal là ảnh texture hoặc hình dạng biểu diễn bởi một
hay nhiều cơng thức tốn học.
Hình học fractal: dạng hình học mà chi tiết khơng đều của nó tái diễn với kích
thƣớc và góc khác nhau, nó có thể biểu diễn bởi biến đổi affine hay fractal (công thức).
Trong lịch sử, fractal đƣợc sử dụng để phát sinh ảnh ứng dụng trong các cảnh mô phỏng bay và các hiệu ứng đặc biệt của ảnh chuyển động. Các công thức ảnh fractal đƣợc sử dụng để mô tả hầu hết các ảnh thế giới thực.
Nén ảnh fractal: là ngƣợc lại của sinh ảnh fractal. Sinh ảnh hay hình fractal từ
cơng thức cho trƣớc, nén ảnh fractal tìm kiếm tập fractal trong ảnh số mà nó mơ tả và biểu diễn toàn bộ ảnh. Một khi tập fractal phù hợp đƣợc xác định, nó đƣợc nén thành mã hay công thức fractal đầy đủ. Các mã là qui luật sinh ra tập fractal khác
nhau để tái tạo toàn bộ ảnh. Do các mã biến đổi fractal địi hỏi rất ít dữ liệu để biểu diễn và lƣu trữ nhƣ cơng thức, cho nên nén fractal có tỷ lệ nén rất cao.
- Nén Wavelet
Nguyên lý của nén Wavelet tƣơng tự nén trên cơ sở DCT:
Biến đổi tín hiệu từ miền thời gian sang miền mới trong đó phần cơ bản của tín hiệu đƣợc lƣu trữ và mã hóa để đạt đƣợc nén dữ liệu.
- Các hệ thống mã hóa trong thực tế
Thƣờng kết hợp một vài kỹ thuật trên đây để nâng cao hiệu quả nén: tỷ lệ và chất lƣợng ảnh chấp nhận đƣợc. Có rất nhiều tổ hợp cho các ứng dụng khác nhau. Một lƣợc đồ quan trọng đƣợc sử dụng để mã hóa dữ liệu video theo các bƣớc sau:
+ Subsampling không gian và thời gian + DPCM trên cơ sở đánh giá và bồi thƣờng + DCT hai chiều
+ Mã hóa Huffman + Mã hóa RLE
Lƣợc đồ lai này là nền tảng hình thành các chuẩn quốc tế về nén.
- Chuẩn nén ảnh JPEG
JPEG là chuẩn nén ảnh số quốc tế đầu tiên cho cả ảnh màu và ảnh đa mức xám.
JPEG đƣợc sử dụng rộng rãi, đƣợc cài đặt cả bằng phần cứng và phần mềm. Ban đầu chuẩn dành cho ảnh tĩnh sau đó đƣợc phát triển cho cả video và gọi chúng là motion JPEG (MJPEG).
JPEG đặc tả bốn mode thao tác sau:
+ Nén trên cơ sở DCT trình tự mất mát thông tin: Các thành phần ảnh đƣợc nén theo đƣờng quét từ trái sang phải và từ trên xuống dƣới. Đây là mode cơ sở và mọi cài đặt JPEG phải hỗ trợ.
+ Nén trên cơ sở DCT mất mát thông tin mở rộng: Ảnh đƣợc mã hóa theo nhiều đƣờng quét để phát sinh nhanh ảnh nén, thô dành cho truyền tin với băng thơng chậm.
+ Mã hóa khơng mất mát thơng tin: Đảm bảo ảnh giải mã đúng nhƣ gốc. + Mã hóa phân cấp: Ảnh đƣợc mã hóa trong đa mật độ
Mode cơ sở đƣợc sử dụng rộng rãi. Dữ liệu ảnh nguồn đƣợc biến đổi sang thành phần luminance Y (độ chói) và hai thành phần chrominance U và V (màu tinh khiết và độ bão hòa). U và V thƣờng đƣợc lấy mẫu không gian theo cả hai hƣớng ngang và dọc và factor 2 để có lợi thế là mắt ngƣời ít nhạy cảm với các tín hiệu
chrominance.
Các giá trị mẫu gốc trong dải [0, 2b
-1], với giả sử rằng sử dụng b bít cho mỗi mẫu. Các giá trị này đƣợc dịch chuyển sang dải [-2b-1, 2b-1-1], tâm là 0. Dải giá trị mới cho phép tính tốn với độ chính xác thấp trong DCT. Với mode cơ sở, sử dụng 8 bít/ mẫu. Vậy, dải giá trị gốc [0, 255] dịch chuyển thành [-128, 127].
Sau đó mỗi thành phần chia ra các khối 8x8 pixel (hình 2.6). Áp dụng FDCT 2D cho mỗi khối dữ liệu. Kết quả là mảng 64 hệ số với năng lƣợng tập trung vào một vài hệ số đầu tiên. Các hệ số này đƣợc lƣợng tử hóa nhờ các giá trị lƣợng tử trong bảng lƣợng tử. Có thể hiệu chỉnh các giá trị lƣợng tử để cân đối giữa tỷ lệ nén và chất lƣợng ảnh nén. Lƣợng tử hóa đƣợc thực hiện bằng cách chia các hệ số DCT cho giá trị lƣợng tử tƣơng ứng. [4]
Hình 2.6 Mơ hình nén ảnh JPEG DCT DCT f(i, j) 8x8 Lượng tử hóa F(u, v) Fq(u, v) Bảng lượng tử Bảng mã hóa Mã hóa entropy DPCM RLC DC AC Header Tables Data YIQ hay YUV
Các hệ số sau lƣợng tử hóa đƣợc duyệt theo đƣờng zigzag để có dãy dữ liệu 1D để mã hóa Huffman. Hệ số đầu tiên gọi là hệ số DC, biểu diễn cƣờng độ trung bình của cả khối. Các hệ số còn lại gọi là các hệ số AC. Mục tiêu của duyệt zigzag là sắp xếp các hệ số theo thứ tự tăng dần của tần số phổ. Vì hệ số của các tần số cao hầu nhƣ bằng 0, do vậy hầu hết các số 0 tập trung vào cuối đƣờng zigzag. Do vậy, sử dụng nén Huffman và RLE cho chúng sẽ rất hiệu quả.
Hệ số DC đƣợc mã hóa bằng DPCM liên quan đến hệ số DC của khối trƣớc đó. Các hệ số AC mã hóa bằng RLE. Các hệ số DC (sử dụng kỹ thuật mã hóa điều xung mã vi phân - DPCM) và AC (mã hóa bằng RLE) đƣợc mã hóa bằng Huffman. Đầu ra của bộ mã hóa entropy là dữ liệu ảnh nén.
- JBIG
JBIG là chuẩn ISO. Nó đặc tả thuật tốn nén mất mát thông tin cho ảnh nhị phân (1 bit/pixel). Nén JBIG trên cơ sở tổ hợp mã hóa số học và mã hóa dự báo.
JBIG có thể sử dụng cho ảnh đa cấp xám và ảnh màu bằng cách áp dụng thuật toán 1 bit plane vào một thời điểm.
- JPEG-2000
JPEG-2000 là chuẩn mới, công bố vào tháng 3-2000. Các đặc trƣng chính bao gồm:
+ Cung cấp mode thao tác bit-rate thấp hơn chuẩn JPEG và JBIG, cho ảnh chất lƣợng tốt hơn
+ Có khả năng làm việc với ảnh lớn hơn 64kx64k pixel mà không cần tách (xếp kề vùng ảnh), sử dụng cùng một thuật tốn giải nén cho tồn bộ ảnh.
+ Thiết kế cho truyền tin trong môi trƣờng nhiều nhiễu, không hiệu quả khi sử dụng để nén ảnh phát sinh bằng máy tính
+ Để quản lý các ảnh trộn đa mức và màu sắc liên tục sử dụng trong trao đổi