TRUYỀN HÌNH DI DỘNG

Một phần của tài liệu Tổng quan về chuẩn nén MPEG-4 H.264/AVC và khả năng ứng dụng trong thực tiễn (Trang 108 - 121)

Truyền hình số tới các thiết bị di động với màn hình nhỏ cĩ một sự tương tự nhất định với truyền hình cố định. Để các kênh truyền hình cĩ thể hiển thị rõ nét với chất lượng

cao trên các thiết bị xem truyền hình di động và đi kèm với nĩ là các tiện ích tương tác đặc thù, các luồng tín hiệu chứa nội dung phải được đĩng gĩi, truyền tải và giải mã trong một quy trình khép kín, đồng bộ... Đầu tiên, nội dung phải được tạo ra phù hợp với thiết bị di động cĩ màn hình nhỏ, và điều này yêu cầu phải cĩ kỹ thuật thu hình tinh tế nếu muốn hình ảnh được thể hiện tốt trên màn hình này (ví dụ cĩ thể dùng 2 camera để lấy cùng một cảnh, một cho màn hình TV lớn, một cho màn hình di động nhỏ với các thơng số kỹ thuật khác nhau). Thứ hai, cơ cấu phân phối nội dung cũng cĩ thể khác liên quan tới vấn đề sử dụng phổ tần số. Thứ ba, cĩ nhiều giao thức phân phối nội dung. Và cuối cùng, khả năng phân phối kênh tương tác cũng phong phú hơn. Với tốc độ bit thấp của H.264/AVC cho phép tải nội dung đa phương tiện trên các dụng cụ như điện thoại, PDA, laptop,.. qua các cơng nghệ Wireless, DAB, CDMA2000, UMTS và DBV-T. Mà hiệu suất nén tăng gấp đơi so với các chuẩn trước.

Hiện nay truyền hình di động đã trở nên phổ biến ở nước ta với hai cơng nghệ 3G -CDMA 2000 1x EV-DO của S-Fone và cơng nghệ DVB-H - Nokia và VTC. Việt Nam là nước đầu tiên tại châu Á và là nước thứ 2 trên thế giới (sau Phần Lan) được Nokia triển khai dịch vụ truyền hình di động. Cĩ thể hiểu nơm na là THDĐ hiện cĩ 2 chiều hướng, một là xem truyền hình như bạn vẫn xem trên tivi ở nhà (cơng nghệ DVB-H và DMB) và vào mạng Internet xem tivi trên máy tính (Media- Flo và 3G). DVB-H cũng sử dụng các bộ mã hĩa âm thanh hình ảnh tiên tiến như H.264, cho phép đến 50 kênh truyền hình hoặc dữ liệu cĩ thể được truyền qua DVB-H multiplex. Theo Nokia, ưu điểm của thiết bị này là tiết kiệm pin và cĩ tính năng mạnh ngay cả trong mơi trường tiếp nhận khĩ khăn; giúp tiết kiệm chi phí một cách hiệu quả trên các mạng truyền hình; cĩ dung lượng băng tần rộng cho nội dung hình ảnh, âm thanh phong phú; sử dụng dải tần UHF, được tồn cầu sử dụng cho truyền hình. Ở 3G việc truyền dữ liệu phụ thuộc vào tốc độ đường truyền của mạng di động, chính vì vậy 2G hay 2,5G khơng đủ mạnh để đáp ứng địi hỏi đường truyền của dịch vụ này, do tín hiệu video yêu cầu băng thơng kênh truyền tương đối lớn (khoảng vài trăm kbps). Với kỹ thuật này, mỗi thuê bao được cấp một kênh trao đổi thơng tin trong tài nguyên của mạng điện thoại để trao đổi thơng tin truyền hình. Chất lượng hình ảnh khơng phụ thuộc vào cự ly phát sĩng của kênh truyền hình hay các vật che chắn (như truyền hình thơng thường). Truyền hình theo cách

cĩ tính chất 2 chiều (tương tự như 1 kênh đàm thoại), nhưng là kênh truyền dữ liệu được trạm thu phát gốc (BTS) cấp cho thuê bao. Như vậy, mỗi thuê bao sẽ chiếm một phần tài nguyên thơng tin của trạm BTS khi họ sử dụng dịch vụ, vì vậy sẽ hạn chế số người dùng cùng lúc. Khi lượng người dùng lớn, để cĩ thể phục vụ tốt cho người sử dụng dịch vụ, bắt buộc nhà khai thác mạng phải nâng cấp hệ thống dẫn đến chi phí đầu tư sẽ tăng,

CHƯƠNG VI. MƠ PHỎNG QUÁ TRÌNH NÉN-GIẢI NÉN CỦA H.264/AVC BẰNG MATLAB

VI.1 LƯU ĐỒ GIẢI THUẬT

Sau đây là quá trình mã hĩa và giải mã một frame bằng các kỹ thuật của H.246:

VI.2 CHƯƠNG TRÌNH MƠ PHỎNG:

So với MPEG-2 thì H.264/AVC cĩ rất nhiều ưu điểm nổi bật nhưng vì cịn nhiều hạn chế, nên em chỉ cĩ thể mơ phỏng một phần cách mã hĩa tiên tiến của H.264/AVC như sử dụng 52 bước lượng tử, sử dụng biến đổi ICT cho khối 4x4...Để cĩ thể hồn thành được chương trình mơ phỏng này, ngồi sự cố gắng của bản thân, sự định hướng đúng đắn của TS. Trần Dũng Trình, em cịn tham khảo một số module Matlab cĩ sẵn trên

Chuyển file YUV sang Matlab movie

Phân chia thành các frame Phân chia thành các macroblock Phân chia thành các block 4x4

Biến đổi ICT các block 4x4 dư thừa Cấu trúc lại các block

4x4 để tham khảo Dự đốn chuyển động Lượng tử các hệ số DCT Mã hĩa Entropy Lưu thành file “lastmov” Tìm vector chuyển động trong file“lastmov”

Mở file“lastmov”

Giải mã file“lastmov”

Giải lượng tử Biến đổi frame từ

YUV sang RGB

Tái tạo lại MB từ các block 4x4 Lưu lại thành file

“lastmov”

END

Nạp file YUV

cơng ty Sfone đã giúp em hồn thành tốt Đồ án này. Tuy nhiên, vì việc mã hĩa một bức ảnh cĩ quá nhiều cơng đoạn phức tạp, và việc mã hĩa cũng tốn khá nhiều thời gian, yêu cầu bộ xử lý tốc độ cao nên khơng thể tách riêng từng quá trình để mơ phỏng.

Các module mơ phỏng như sau:

+ Hàm main : chương trình chính, sẽ gọi các hàm con để mã hĩa, giải mã...

+ Hàm playmov : hàm play file movie đã được nén.

+ Hàm plotvector : hàm vẽ vector chuyển động trong ảnh P và ảnh B

+ Hàm progressbar : hàm hỗ trợ từ Matlab, dùng để minh họa tiến trình xử lý của Matlab, hàm được tham khảo từ trang web mathexchange.com.

+ Hàm yuv2mov : hàm hỗ trợ từ Matlab, dùng để chuyển file YUV sang file movie trong Matlab, hàm được tham khảo từ trang web mathexchange.com.

+ Hàm sec2timestr : hàm hỗ trợ từ Matlab, dùng để chuyển một chuỗi số sang dạng thời gian thực, hàm được tham khảo từ trang web mathexchange.com.

VI.3 KẾT QUẢ MƠ PHỎNG

Với cùng giá trị QP = 31, Frame thứ 1 của bức ảnh foreman.yuv được nén bằng kỹ thuật H.264/AVC cĩ dung lượng và tỷ số PSNR = dB như sau (adsbygoogle = window.adsbygoogle || []).push({});

PHỤ LỤC

function main()

clear all; clc;

fprintf('\nLUAN VAN TOT NGHIEP\n')

fprintf('\nTONG QUAN VE CHUAN NEN MPEG-4 H.264/AVC VA KHA NANG UNG DUNG TRONG THUC TIEN\n')

fprintf('\nGVHD : TS. TRAN DUNG TRINH\n') fprintf('\nSVTH : NGUYEN QUANG HOANG SON\n') fprintf('\nMSSV : 103 101 088\n')

chonf = input('\nNHAP SO LUONG FRAMES SE MA HOA = ');

chonq = input('\nNHAP GIA TRI BUOC LUONG TU TRONG KHOANG 0<=QP<52, QP= '); nq = chonq;

nf = chonf;

if (nq < 0 | nq > 51 | nf > 300)

error('NHAP SAI GIA TRI LUONG TU HOAC SO FRAMES!!!!') end

save nq;

fprintf('\nSE MA HOA %d FRAMES VOI BUOC LUONG TU QP=%d\n',nf,nq); mov = napmov(nf);

fprintf('THOI GIAN MA HOA : %s\n',sec2timestr(toc)); tic;

mov2 = giaima(avc);

fprintf('THOI GIAN GIAI MA : %s\n',sec2timestr(toc)); save lastmov mov2 avc mov;

%%%% HAM MO FILE YUV ROI LUU THANH MATLAB MOVIE %%%% function movdata = napmov(nf)

mov = yuv2mov('carphone.yuv',176,144,'420'); %mov = yuv2mov('foreman.yuv',352,288,'420'); save mov; load mov; if nf == 0 nf = length(mov); end

% MOV(1) : MA TRAN CHOI, MOV (2), MOV(3) MA TRAN MAU

movdata = repmat(uint8(0),size(mov(1).cdata), nf);%tai tao lai MANG MOV RONG for i = 1:nf % MA HOA TU FRAME 1 DEN FRAME THU nf

movdata(:,:,:,i) = mov(i).cdata;% LUU DU LIEU CUA CAC FRAME end

%%%%%% HAM MA HOA FILE MATLAB MOVIE %%%%%%% function avc = mahoa(mov)

fpat = 'IBBPBBPBBPBBPBBI'; % LOAI MAU FRAME (CHO TOAN BO MOVIE) k = 0; % FRAME DAU TIEN

pf = []; % MA TRAN MAU FRAME LA RONG progressbar

for i = 1:size(mov,4) % VONG LAP FRAME, TRA VE GIA TRI COT % THU 4 TRONG MOV

f = double(mov(:,:,:,i)); % BIEN DOI FRAME SANG GIA TRI DOUBLE f = rgb2yuv(f);

k = k + 1;

if k > length(fpat) k = 1;

end

ftype = fpat(k); % DAT TEN LOAI FRAME THU k (adsbygoogle = window.adsbygoogle || []).push({});

[avc{i},pf] = mhframe(f,ftype,pf);% GOI HAM MA HOA CHO FRAME THU i progressbar(i/(size(mov,4))) % HIEN THI % QUA TRINH MA HOA,

end

%%%%% HAM MA HOA TUNG FRAME ANH %%%%%% function [avc,df] = mhframe(f,ftype,pf)

[M,N,i] = size(f); % M = 176, N= 144,i = 3 TRONG f

mbsize = [M, N] / 16; % PHAN CHIA THANH CAC MACROBLOCK avc = struct('type',[],'mvx',[],'mvy',[],'scale',[],'coef',[]);

avc(mbsize(1),mbsize(2)).type = []; pfy = pf(:,:,1);

df = zeros(size(f));

for m = 1:mbsize(1) % VONG LAP THEO CHIEU CAO for n = 1:mbsize(2) % VONG LAP THEO CHIEU RONG x = 16*(m-1)+1 : 16*(m-1)+16;% LAP TU 1-CAO

y = 16*(n-1)+1 : 16*(n-1)+16;% LAP TU 1-RONG

end end

%%%%%%%%%% HAM MA HOA MAROBLOCK %%%%%%%% function [avc,dmb] = mhmblock(mb,ftype,pf,pfy,x,y)

persistent q1 q2;

if isempty(q1) %Neu mang q1 la rong. q1 = qintra;

q2 = qinter; end

load nq; %THONG SO BUOC LUONG TU scale = nq;

avc.type = 'I'; % CAU TRUC AVC avc.mvx = 0;

avc.mvy = 0;

% TIM VECTOR CHUYEN DONG CHO ANH P if ftype == 'P'

avc.type = 'P';

[avc,emb] = getmotionvec(avc,mb,pf,pfy,x,y);

mb = emb; % LAY PHAN SAI SO GIUA CAC FRAME P DE MA HOA q = q2; % NEU LA ANH P THI DU DOAN INTER

else

q = q1; % NEU LA ANH I end

% TIM VECTOR CHUYEN DONG CHO ANH B if ftype == 'B'

avc.type = 'B';

[avc,emb] = getmotionvec(avc,mb,pf,pfy,x,y);

mb = emb; % LAY PHAN SAI SO GIUA CAC FRAME B DE MHOA q = q2;

else q = q1; end

% CHON KHOI VA TIEN HANH BIEN DOI DCT VA LUONG TU b = getblocks(mb);

for i = 18:-1:1 (adsbygoogle = window.adsbygoogle || []).push({});

avc.scale(i) = scale; % DAT VECTOR LUONG TU CHO KHOI i coef = dct2(b(:,:,i)); % BIEN DOI DCT HAI CHIEU CHO KHOI THU i avc.coef(:,:,i) = round( 8 * coef ./ (scale * q));

end

% CAU TRUC LAI KHOI DE THAM KHAO dmb = gmmblock(avc,pf,x,y);

%%%%% PHAN CHIA MACROBLOCK THANH 18 KHOI 4x4 %%%%% function b = getblocks(mb)

b = zeros([4, 4, 18]); % TAO 18 MA TRAN 4x4 ZEROS b(:,:,1) = mb( 1:4, 1:4, 1); b(:,:,2) = mb( 1:4, 5:8, 1); b(:,:,3) = mb( 1:4, 9:12, 1); b(:,:,4) = mb( 1:4, 13:16, 1); b(:,:,5) = mb( 5:8, 1:4, 1); b(:,:,6) = mb( 5:8, 5:8, 1);

b(:,:,8) = mb( 5:8, 13:16, 1); b(:,:,9) = mb( 9:12, 1:4, 1); b(:,:,10) = mb( 9:12, 5:8, 1); b(:,:,11) = mb( 9:12, 9:12, 1); b(:,:,12) = mb( 9:12, 13:16, 1); b(:,:,13) = mb( 13:16, 1:4, 1); b(:,:,14) = mb( 13:16, 5:8, 1); b(:,:,15) = mb( 13:16, 9:12, 1); b(:,:,16) = mb( 13:16, 13:16, 1);

% HAI KHOI CHROM (GIA TRI TRUNG BINH CUA 4 KHOI BEN CANH) b(:,:,17) = 0.25 * ( mb(1:4:15,1:4:15, 2) + mb(1:4:15,2:4:16, 2) ...

+ mb(2:4:16,1:4:15, 2) + mb(2:4:16,2:4:16, 2)); b(:,:,18) = 0.25 * ( mb(1:4:15,1:4:15, 3) + mb(1:4:15,2:4:16, 3) ... + mb(2:4:16,1:4:15, 3) + mb(2:4:16,2:4:16, 3) );

%%%% HAM TINH TOAN VECTOR CHUYEN DONG %%%%%%% function [avc,emb] = getmotionvec(avc,mb,pf,pfy,x,y)

mby = mb(:,:,1); % CHI TIM TRONG THANH PHAN Y [M,N] = size(pfy);

% TIM KIEU MOI KHIA CANH

% maxstep = 10; % Largest allowable motion vector in x and y % mvxv = -maxstep:maxstep; % mvyv = -maxstep:maxstep; % minsad = inf; % for i = 1:length(mvxv) % tx = x + mvxv(i); % if (tx(1) < 1) | (M < tx(end)) % continue % end % for j = 1:length(mvyv) % ty = y + mvyv(j); % if (ty(1) < 1) | (N < ty(end)) % continue % end % sad = sum(sum(abs(mby-pfy(tx,ty)))); % if sad < minsad % minsad = sad; % mvx = mvxv(i); % mvy = mvyv(j); % end % end % end

% TIM KIEU Logarithmic

step = 8; % KICH THUOC BUOC TIM KIEM Initial step size for logarithmic search dx = [0 1 1 0 -1 -1 -1 0 1]; % VECTOR CHI HUONG TIM KIEM

dy = [0 0 1 1 1 0 -1 -1 -1]; % [origin, right, right-up, up, left-up, % left, left-down, down, right-down]

mvx = 0; mvy = 0; while step >= 1 minsad = inf;

for i = 1:length(dx)

tx = x + mvx + dx(i)*step;

if (tx(1) < 1) | (M < tx(end)) % NEU GIA TRI tx(1) <1 HOAC continue % M < GIA TRI tx CUOI CUNG end ty = y + mvy + dy(i)*step; if (ty(1) < 1) | (N < ty(end)) continue end sad = sum(sum(abs(mby-pfy(tx,ty)))); if sad < minsad ii = i minsad = sad; end end mvx = mvx + dx(ii)*step; mvy = mvy + dy(ii)*step; step = step / 2;

end

avc.mvx = mvx; % LUU VECTOR CHUYEN DONG avc.mvy = mvy;

emb = mb - pf(x+mvx,y+mvy,:); % MACROBLOCK SAI SO

%%%%%%%%%%%%%%%%%% HAM GIAI MA %%%%%%%%%%%%%%%%%% %%

function mov = giaima(avc) movsize = size(avc{1});

mov = repmat(uint8(0),[16*movsize(1:2), 3, length(avc)]); pf = [];

for i = 1:length(avc) % GIAI MA TOAN BO KHOI TRONG AVC f = gmframe(avc{i},pf); % GIAI MA FRAME

pf = f; % LUU FRAME TRUOC DO

f = yuv2rgb(f); % BIEN DOI FRAME SANG RGB

f = min( max(f,0), 255); % GIOI HAN MOVIE TRONG KHOANG 8 BITS mov(:,:,:,i) = uint8(f); % LUU FRAME

progressbar(i/(length(avc))); end (adsbygoogle = window.adsbygoogle || []).push({});

%%%%%%%%%%% HAM GIAI MA FRAME %%%%%%%%%%%%% function fr = gmframe(avc,pf)

mbsize = size(avc); % KICH THUOC MB CHINH LA KICH THUOC FILE M = 16 * mbsize(1);

N = 16 * mbsize(2); fr = zeros(M,N,3);

for m = 1:mbsize(1) % LAP TOAN BO MB for n = 1:mbsize(2)

x = 16*(m-1)+1 : 16*(m-1)+16;% TAO LAI FRAME y = 16*(n-1)+1 : 16*(n-1)+16;

fr(x,y,:) = gmmblock(avc(m,n),pf,x,y);% GOI HAM GIAI MA MB CHO KHOI end % macroblock loop

end

%mse = floor((mov(i).cdata)-(avc(i).cdata)); %psnr = 10*log10(255^2/mse);

function mb = putblocks(b) mb = zeros([16, 16, 3]); mb( 1:4, 1:4, 1) = b(:,:,1); mb( 1:4, 5:8, 1) = b(:,:,2); mb( 1:4, 9:12, 1) = b(:,:,3); mb( 1:4, 13:16,1) = b(:,:,4); mb( 5:8, 1:4, 1) = b(:,:,5); mb( 5:8, 5:8, 1) = b(:,:,6); mb( 5:8, 9:12, 1) = b(:,:,7); mb( 5:8, 13:16, 1) = b(:,:,8); mb( 9:12, 1:4, 1) = b(:,:,9); mb( 9:12, 5:8, 1) = b(:,:,10); mb( 9:12, 9:12, 1) = b(:,:,11); mb( 9:12, 13:16, 1) = b(:,:,12); mb( 13:16, 1:4, 1) = b(:,:,13); mb( 13:16, 5:8, 1) = b(:,:,14); mb( 13:16, 9:12, 1) = b(:,:,15); mb( 13:16, 13:16, 1) = b(:,:,16);

z = [1 1 1 1; 1 1 1 1; 1 1 1 1; 1 1 1 1 ]; % HAI KHOI MAU CHROMA mb(:,:,2) = kron(b(:,:,17),z); mb(:,:,3) = kron(b(:,:,18),z); %%%%%%%%%%%%%%%%%%%%% HAM GIAI MA MB %%%%%%%%%%%%% %%% function mb = gmmblock(avc,pf,x,y) persistent q1 q2

if isempty(q1) % MA TRAN HE SO LUONG TU q1 = qintra;

q2 = qinter; end

mb = zeros(16,16,3);

% DU DOAN VOI VECTOR CHUYEN DONG CUA ANH P if avc.type == 'P' mb = pf(x+avc.mvx,y+avc.mvy,:); q = q2; else q = q1; end

% DU DOAN VOI VECTOR CHUYEN DONG CUA ANH B if avc.type == 'B' mb = pf(x+avc.mvx,y+avc.mvy,:); q = q2; else q = q1; end % GIAI MA KHOI for i = 18:-1:1

coef = avc.coef(:,:,i) .* (avc.scale(i) * q) / 8; % GIAI LUONG TU

b(:,:,i) = idct2(coef); % BIEN DOI DCT NGUOC CHO HE SO MA HOA end

% CAU TRUC B mb = mb + putblocks(b);

%%%%%%%%% HAM BIEN DOI TU RGB SANG YUV %%%%%%%%%%% function yuv = rgb2yuv(rgb) % BIEN DOI TRUOC KHI MA HOA

m = [ 0.299 0.587 0.144; %Y = 0.299R + 0.587R + 0.144B -0.168736 -0.331264 0.5; % MA TRAN BIEN DOI

0.5 -0.418688 -0.081312]; % LAY DU LIEU MOVIE [nr,nc,c] = size(rgb);

rgb = reshape(rgb,nr*nc,3); % TAI TAO CHO MA TRAN NHAN % MA HOA MAU BIEN DOI

yuv = m * rgb';

yuv = yuv + repmat([0; 0.5; 0.5],1,nr*nc);

yuv = reshape(yuv',nr,nc,3); % TAI TAO LAI ANH GOC

%%%%%%%%%%%%%%% HAM BIEN DOI TU YUV SANG RGB %%%%%%%%%% function rgb = yuv2rgb(yuv) % BIEN DOI SAU KHI GIAI MA

m = [ 0.299 0.587 0.144; -0.168736 -0.331264 0.5; 0.5 -0.418688 -0.081312];

m = m^-1; % LAY NGHICH DAO MA TRAN m [nr,nc,c] = size(yuv); % LAY DU LIEU MOVIE

yuv = reshape(yuv,nr*nc,3); % TAI TAO LAI CHO MA TRAN YUV rgb = yuv - repmat([0, 0.5, 0.5],nr*nc,1);% MA HOA BIEN DOI MAU rgb = m * rgb'; % rgb' hoan vi cua rgb

rgb = reshape(rgb',nr,nc,3); % TAI TAO LAI ANH GOC (adsbygoogle = window.adsbygoogle || []).push({});

%%%%%%%%%%%% BANG LUONG TU CHO ANH INTER 4x4 P VA B %%%%% function q = qinter

q = [17,17,16,16; 17,16,15,15; 16,15,15,15; 16,15,15,15];

%%%%%%%%%%% BANG LUONG TU CHO ANH INTRA 4x4 %%%%%%% function q = qintra q = [ 9,13,18,21; 13,18,21,24; 18,21,24,27; 21,24,27,30]; Hàm plotvector.m function plotvector load lastmov; [M,N] = size(avc{1}); for f = 1:length(avc)

if avc{f}(1,1).type == 'I'% neu la anh I thi bo qua continue end for i = 1:M for j = 1:N mvx(i,j) = avc{f}(i,j).mvy; mvy(i,j) = avc{f}(i,j).mvx; end

figure

quiver(flipud(mvx),flipud(mvy))

set(gca,'XLim',[-1, N+2],'YLim',[-1, M+2])% CAI DAT TOA DO CUA HINH title(sprintf('Vector chuyen dong cho anh thu %i',f))

end

Hàm playmov.m

function playmov(n) load lastmov

for i = 1:size(mov,4)

m(i).cdata = uint8([mov(:,:,:,i) mov2(:,:,:,i)]);% mov anh goc, mov2 anh giai nen m(i).colormap = [];

end

figure('Position',[30,100,750,400,]); axs=axes('Position',[0.05 0.15 0.8 0.55]);

xlabel( 'Anh GOC --->>>>>> Anh NEN'); movie(m,n,5); % Play mang m n lan, nhung lan sau play voi toc do 5fps

TÀI LIỆU THAM KHẢO

[1] TS. Nguyễn Thanh Bình, Ths. Võ Nguyễn Quốc Bảo, “Xử lý âm thanh, hình ảnh”,

Học viện cơng nghệ Bưu chính viễn thơng, Hà Nội.

[2] KS. Trương Thị Thủy, “Tiêu chuẩn mã hĩa tiên tiến H.264-MPEG-4 AVC”, Tạp chí

khoa học kỹ thuật truyền hình 1/2004.

[3]KS. Cao Văn Liết, “Bù chuyển động trong kỹ thuật mã hĩa nội dung nguồn video tự nhiên sử dụng tiêu chuẩn nén MPEG-4”, Tạp chí khoa học kỹ thuật truyền hình 1/2005. [4]Th.S. Nguyễn Minh Hồng, “Chuẩn nén H.264/AVC và khả năng ứng dụng trong truyền hình”, Tạp chí khoa học kỹ thuật truyền hình 2/2005.

[5] Gs.TS. Nguyễn Kim Sách, “Truyền hình số cĩ nén và Multimedia”, Nhà xuất bản

[6] TS. Trần Dũng Trình, “Truyền hình trên Internet IPTV”, Tạp chí khoa học kỹ thuật

truyền hình 3/2005

[7] Iain E. G. Richardson, “H.264 And MPEG-4 Video Compression”, The Robert

Gordon University, Aberdeen, UK

[8] John Arnold, Michael Frater, Mark Pickering, “Digital Television Technology and Standards”, The University of New South Wales, ADFA Canberra, ACT, Australia

[9] JVT “Draft ITU-T recommendation and final draft international standard of joint video specification (ITU-T rec. H.264– ISO/IEC 14496-10 AVC),”

[10] THOMAS SIKORA, “MPEG-1 and MPEG-2 Digital Video Coding Standards”,

McGraw Hill Publishing Company. (adsbygoogle = window.adsbygoogle || []).push({});

[11] T. Wiegand, G.J. Sullivan, G. Bjontegaard, A. Luthra, ”Overview of the H.264/AVC Video Coding Standard,”

[12] Siwei Ma, Xiaopeng Fan, Wen Gao, “Low Complexity Integer Transform and High Definition Coding”

[13] Các trang web : http://google.com, http://mathexchange.com http://forum.doom9.org, University of Illinois at Chicago (UIC), http://www.uic.edu/ http://www.chiariglione.org/mpeg/, http://en.wikipedia.org http://www.mathworks.com/, http://media.xiph.org/video/derf/ http://www.stanford.edu/class/ee398b/samples.html

Một phần của tài liệu Tổng quan về chuẩn nén MPEG-4 H.264/AVC và khả năng ứng dụng trong thực tiễn (Trang 108 - 121)