Tải bản đầy đủ (.pdf) (16 trang)

Tìm hiểu các kỹ thuật chuyển động và bù chuyển động trong nén video

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 (471.22 KB, 16 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
Sử lý dữ liệu đa phương tiện
Nhóm 11: Tìm hiểu các kỹ thuật ước lượng chuyển động
và bù chuyển động trong nén video

Giáo viên hướng dẫn

:

PGS. TS Nguyễn Thị Hoàng Lan

Sinh viên thực hiện

:

Nguyễn Hữu Phúc – 20122234
Trần Xuân Giáp – 20121611

Hà Nội 19-05-2016


Mục Lục
I. Các kỹ thuật ước lượng chuyển động............................................................................................3
1.1 Các phương pháp trực tiếp.......................................................................................................3
1.2 Phương pháp gián tiếp..............................................................................................................4
II. Ước lượng chuyển động sử dụng phương pháp 3 bước..............................................................5
1. Bước tiền sử lý...........................................................................................................................5


2. Phương pháp tìm kiếm ba bước.................................................................................................6
3. Giải thuật tìm kiếm 3 bước........................................................................................................9
4. Đánh giá giải thuật....................................................................................................................11
III. Thử nghiệm..................................................................................................................................13
IV. Tài liệu tham khảo.......................................................................................................................16


I. Các kỹ thuật ước lượng chuyển động
Motion estimation: Đây là kỹ thuật nhằm mục đích xác đ ịnh vector chuy ển đ ộng gi ữa
các marco block, vector chuyển đ ộng là s ự sai l ệch v ị trí gi ữa m ột kh ối ở frame hi ện
tại với một khối gần giống nhất ở frame tham chiếu. Kỹ thu ật này đ ược s ử d ụng
trong quá trình nén và giải nén video.
Có 2 phương pháp được sử dụng trong ước lượng chuyện động:
Phương pháp trực tiếp:
+ Optical flow
+ Block-matching algorithms
+ Pixel recursive algorithms
+ Phase correlation and frequency domain methods
Phương pháp gián tiếp

1.1 Các phương pháp trực tiếp
a. Optical flow:
Optical flow là mô hình chuyển động của b ề ngoài c ủa các đ ối t ượng , các b ề m ặt ,
các cạnh gây ra bởi sự chuyển động t ương đối c ủa ng ười nhìn ( máy ) và c ảnh v ật.
Optical flow bao gồm các kỹ thuật từ sử lý hình ảnh và phát hi ện chuy ển đ ộng, phân
khúc đối tượng, thông tin thời gian, tập trung tính toán m ở r ộng, đ ộ sáng, chuy ển
động bồi thường mã hóa, và đo lường âm thanh stereo chênh l ệch.
Khái niệm về optical flow ( luồng quang) đ ược gi ới thi ệu b ởi nhà khoa h ọc ng ười M ỹ
James J.Gibson vào năm 1940 để mô tả các kích thích th ị giác đ ược cung c ấp b ởi các
sự chuyển động của động vật. Từ đó người ta có nh ận th ức quan tr ọng c ủa con

người trong việc quan sát.
Các phương pháp về luồng quang học cố gắng tính toán chuy ển đ ộng gi ữa hai hình
ảnh được chụp ở các thời điểm t và t+Delta. Nhưng phương pháp này khác bi ệt vì
chúng sử dụng phép xấp xỉ Taylor của các tín hiệu hình ảnh,
Phương pháp Optical flow thường được sử dụng nghiên c ứu v ề các không gian 3
chiều, cấu trúc của khung cảnh , cũng như chuy ển đ ộng 3 D c ủa ng ười và đ ối t ượng
và người quan sát nó.
b. Block-matching algorithm
Block-matching algorithm: là một cách để xác định vị trí các Macroblocks trong frame
của video cho các mục đích ước l ượng chuy ển đ ộng. Điều này để giảm độ dư thừa
về thời gian và dữ liệu, tăng độ nén video lên d ựa vào các Mb đ ược bi ết đ ến v ới đ ộ
sai khác ít nhất.
Một thuật toán BMA bao gồm việc phân chua các frame c ủa video vào các MB và so
sánh sự sai khác của MB trong các frame. M ột vecto đ ược t ạo thành t ừ s ự sai khác đo
- giữa vị trí của MB ban đầu và vị trí của MB sau đó. D ựa vào đi ều này ta tính t ất c ả
các MB cho một khung hình - tạo nên một ước lượng chuy ển đ ộng cho frame.
c. Phase correlation and frequency domain methods


Phase correlation and frequency domain methods: là phép bi ến đ ổi d ựa ước tính t ương
đối giữa 2 hình ảnh tương tự hoặc 2 bộ dữ liệu khác nhau. Nó thường đ ược s ử d ụng
trong image registration và được biểu di ễn trên mi ền t ần s ố c ủa d ữ li ệu s ử d ụng
phép biến đổi Fourier nhanh.
Hình ảnh dưới đây cho thấy sự dụng các giai đo ạn t ương quan đ ể xác đ ịnh chuy ển
động tương đối của 2 hình ảnh với nhiễu gauss độc l ập. Các hình ảnh đ ược d ịch
bằng (30,33) pixel.

Ứng dụng của phương pháp này được sử dụng để chống nhiễu và các khuy ết t ật
khác điển hình của anh sử dụng trong ý t ế và anh v ệ tinh. Ph ương pháp này còn có
thể mở rộng để xác định độ xoay vòng và mở rộng ra của các ảnh.


1.2 Phương pháp gián tiếp
Phương pháp gián tiếp : sử dụng các tính năng, ch ẳng h ạn nh ư phát hi ện góc, và các
tính năng phù hợp tương ứng giữa các khung hình, thường là v ới m ột ch ức năng th ống
kê áp dụng trên một khu vực địa phương hay toàn cầu. Mục đích c ủa ch ức năng th ống
kê là để loại bỏ điểm mà không tương ứng với các chuy ển đ ộng th ực t ế.
Một trong những phương pháp là phát hiện góc: sử d ụng các h ệ th ống máy tính đ ể
giải nén và suy luận nội dung của ảnh. Phát hi ện góc th ường đ ược s ử d ụng trong phát
hiện chuyển động, ghép ảnh toàn cảnh, theo dõi video,...


II. Ước lượng chuyển động sử dụng phương pháp 3
bước.
Phương pháp Three step search là một trong nh ững ph ương pháp c ủa gi ải thu ật blockmatching của phương pháp trực tiếp. Phương pháp này được gi ới thi ệu nh ư là m ột
phương pháp dễ triển khai và hiệu quả hơn tốt.

1. Bước tiền sử lý
Video - hay ảnh động đầu vào qua bước tiền sử lý để có dữ liệu đ ầu. Video ban đ ầu
sử dụng hệ màu RGB qua bước tiền sử lý để chuy ển sang hệ màu YUV ph ục v ụ cho
quá trình nén và giải nén dữ liệu.
RGB: Red Green Blue, sử dụng 8 bit cho mỗi giá tr ị.
YCrCb: Thành phần chói Y ( giới hạn phổ là 6.5MHz ) và thành ph ần màu Cr, Cb
( giới hạn phổ là 2MHz).
Quá trình chuyển đổi từ hệ màu RGB sang hệ màu YcrCb:
Y = 0.257R + 0.504G +0.098B + 16
Cr = 0.439R -0.368G – 0.071B + 128
Cb = -0.148R -0.291G + 0.439B +128
Cấu trúc lấy mẫu của mỗi video sẽ được quy đinh bởi ng ười thi ết k ế, có th ể l ấy
mấu theo các chuẩn 4:2:2 ,4:2:0, 4:1:1
Do mắt người nhạy với độ chói, nên thành phần Y được l ấy mẫu không đ ổi, và kém

nhạy với cá thành phần màu Cr,Cb nên các thành ph ần này s ẽ đ ược l ấy m ẫu gi ảm
xuống theo các chiều ngang hoặc dọc ( hoặc cả 2) thèo theo các chu ẩn quy đ ịnh.
Trong đó tương ứng với mỗi chuẩn ta có:


Trong trường hợp lấy mẫu theo chuẩn 4:2:0 giảm thích thước mẫu theo chi ều d ọc và
ngang của thành phần Cr, Cb đi chỉ còn 1/2 dữ liệu ch ỉ còn 1/4 so v ới ban đ ầu. Ta
được chuẩn màu YCrCb theo 4:2:0.
Ảnh được chia thành các macroblocks với các kh ối kích th ước là 16*16 ho ặc các kh ối
8*8. Các khối này có thể được chia tiếp thành các kh ối 8*8 tr ước ho ặc sau khi nén tùy
theo cài đặt.
Macroblocks ban đầu kịch thước 16*16, 4 ma tr ận d ữ li ệu cho thành ph ần đ ộ chói Y
kích thước 16*16, 1 ma trận dữ liệu cho thành phần màu Cr kích th ước 16*16, 1 ma
trận dữ liệu cho thành phần màu Cb kích thước 16*16.
Các Macroblocks sẽ được lưu theo tọa độ của nó tương ứng trong frame, n ếu trong
quá trình tiền sử lý các macroblocks đ ược l ưu tr ữ sai t ọa đ ộ vi ệc nén và gi ải nén có
thể không làm được. Và video cũng sai khác so v ới video g ốc.
Sử dụng tính toán sự thay đổi của các Macroblocks theo t ọa đ ộ c ủa chúng chính là bài
toán của Block-matching, thuật toán đòi hỏi ph ải tính được các vecto chuy ển đ ộng
( vecto chứa thông tin thay đổi của các MB trong các frame t ương ứng) v ới đ ộ chính
xác đáp ứng được và một khối lượng tính toán tốt.

2. Phương pháp tìm kiếm ba bước
Để so sánh sự sai khác của các Macroblocs ta s ử d ụng các ph ương trình phi tuy ến,
dưới đây chúng tôi trình bày phương pháp MAE ( Mean Absolute Error ) :


Macrobloks của ta là các khối 8*8 thì và được l ấy m ẫu theo chu ẩn 4:2:0. V ậy ta s ẽ so
sánh bộ dữ liệu với:
- Thành phần C gồm 6 ma trận 8*8

- Thành phần R gồm 6 ma trận 8*8
Kết quả của phép tính này sẽ được lưu lại để so sánh với các Macroblocks khác. K ết
quả nhỏ nhất trong các kết quả sẽ được sử dụng.
Ngoài phương trình MAE ra, người ta có thể sử dụng các phương trinh phi tuy ến khác
để tìm ra kết quả của phép so sánh, có thể kể đến nh ư là phương pháp sai s ố trung
bình tuyệt đối SAD/MAD, sai khác trung bình bình ph ương MSE.
Ước lượng chuyển động Matching block với MPEG
Ý tưởng là các frame gần nhau trong một video thông thường sẽ có đ ộ t ương quan
cao, trong nén video thay vì ta nén tất c ả các frame c ủa m ột video ta s ẽ ch ỉ nén 1 video
và ước lượng frame tiếp theo dựa trên frame hiện t ại - các vecto chuy ển đ ộng. Ví d ụ
khi nén video với MPEG, ta sẽ nén một nhóm các frame liên ti ếp g ọi là 1 GOP, trong
GOP chỉ có frame I được nén theo JPEG. Còn các frame P và B s ẽ đ ược ước l ượng
chuyển động và bù chuyển động.


I frame: frame được nén theo JPEG và được nén đầu tiên trong GOP
P frame: frame được ước lượng chuyển động theo frame I
B frame: frame được ước lượng chuyển động theo frame I và frame P.
Ước lượng chuyển động trong sơ đồi nén MPEG

Frame P được mã hóa dự đoán từ Frame I: frame tham chi ếu s ẽ đ ược s ử d ụng đ ể ước
lượng đánh giá chuyển động, với mã hóa dự đoán thì có truy ền vecto chuy ển đ ộng
hay không. Với mã hóa dự đoán nếu mọi giá trị trong ma tr ận sai s ố ước l ượng b ằng 0
thì cả macroblocks không được mã hóa.


3. Giải thuật tìm kiếm 3 bước
a. Vùng tìm kiếm của dữ liệu:
Là area tốt nhất để cho MB nó được quyết định bởi tham s ố p, v ới p là s ố l ượng pixel
trên 4 sides của MB tương ướng trong frame trước đó. Các thông s ố tìm ki ếm đo

lường chuyển động. Việc tìm kiếm đầy đủ tất các các MB tiềm năng là m ột vi ệc đòi
hỏi khả năng tính toán cao. Đầu vào điển hình của m ột MB kích th ước 16 pixel và
search area với p =7.
Tuy nhiên việc tìm kiếm đầy đủ trong vùng tìm ki ếm cũng là m ột công vi ệc đòi h ỏi
độ tính toán rất lớn một ví dụ đơn giản là để tìm ki ếm v ới 1 frame c ỡ 288*352 ta c ần
1G phép cộng và 8M phép so sánh. Vì vậy vi ệc tìm kiếm đ ầy đ ủ không kh ả thi trong
thực tế. Vì vậy khi tìm kiếm trong vùng tìm ki ếm ng ười ta cũng ph ải c ố g ắng đ ể k ết
quả tìm được là tốt nhất với một khối lượng tính toán chấp nh ận được.
for i = 1 : mbSize : row-mbSize+1
for j = 1 : mbSize : col-mbSize+1
x = j;
y = i;
costs(2,2) = costFuncMAD(imgP(i:i+mbSize-1,j:j+mbSize-1), ...
imgI(i:i+mbSize-1,j:j+mbSize-1),mbSize);
computations = computations + 1;
stepSize = stepMax;
while(stepSize >= 1)
for m = -stepSize : stepSize : stepSize
for n = -stepSize : stepSize : stepSize
refBlkVer = y + m; % row/Vert co-ordinate for ref block
refBlkHor = x + n; % col/Horizontal co-ordinate
if ( refBlkVer < 1 || refBlkVer+mbSize-1 > row ...
|| refBlkHor < 1 || refBlkHor+mbSize-1 > col)
continue;
end
costRow = m/stepSize + 2;
costCol = n/stepSize + 2;
if (costRow == 2 && costCol == 2)
continue
end

costs(costRow, costCol ) = costFuncMAD(imgP(i:i+mbSize-1,j:j+mbSize1), ...
imgI(refBlkVer:refBlkVer+mbSize-1, refBlkHor:refBlkHor+mbSize-1),
mbSize);
computations = computations + 1;
end
end


Giải thuật bao gồm 3 bước:
Đầu tiên ta đặt: (i,j) là trung tâm của vùng tìm kiếm.
p là kích thước của sổ tìm kiếm
mbSize là kích thước của MB
Các chỉ số này có thể thay đổi một cách tương đối với ng ười tri ển khai
- Bước 1:
Xác định kích thước dịch ban đầu, kiểm tra 9 đi ểm. T ọa đ ộ c ủa 9 đi ểm này t ương
ứng với tọa độ của MB ban đầu là: (i +- mbSize*p,j ); ( i, j +-mbSize*p); (i,j) ;
( i + mbSize*p, j +-mbSize*p) ; ( j -mbSize*p , j +-mbSize*p). Trong đó:
- Bước 2: Điểm (x1,y1) là điểm có sự sai khác nhỏ nhất trong 9 đi ểm.
+ Giảm p= p/2. Cửa sổ tìm kiếm giảm 1 nửa
+ Đặt lại cửa sổ tìm kiếm (i,j) = (x1,y1)
+ Kiểm tra 8 điểm: (i +- mbSize*p,j ); ( i, j +-mbSize*p) ;
( i + mbSize*p, j +-mbSize*p) ; ( j -mbSize*p , j +-mbSize*p)
Bước 3: Lặp lại bước 2, xác định điểm có sự sai khác nh ỏ nh ất là (x2,y2)
+ Giảm p= p/2. Cửa sổ tìm kiếm giảm 1 nửa
+ Đặt lại cửa sổ tìm kiếm (i,j) = (x2,y2)
+ Kiểm tra 8 điểm: (i +- mbSize*p,j ); ( i, j +-mbSize*p) ;
( i + mbSize*p, j +-mbSize*p) ; ( j -mbSize*p , j +-mbSize*p)
Thuật toán kết thúc sau 3 bước. Kết quả của thu ật toán là đi ểm có giá tr ị to ạ đ ộ là
(x3,y3) có MSD nhỏ nhất trong 8 điểm ở bước 3.



Thuật toán 3 bước luôn đảm bảo tìm ra kết qu ả sau 3 b ước th ực hi ện nên d ễ dàng
quản lý về mặt thời gian cho người thiết kế. Thuật toán luôn cho kết qu ả sau th ời
gian chạy 3 bước. Giả thiết cửa sổ tìm kiếm có kích th ước p=7. Thay vì ki ểm tra 255
điểm như tìm kiếm đầy đủ thì giải thuật ba bước chỉ ph ải ki ểm tra 25 đi ểm.
Thuật toán có chất lương tương đối, và được đánh giá là không nhanh so v ới các gi ải
thuật cải tiến hoặc so với chính thuật toán 3 bước c ải ti ến. Tuy nhiên thu ật toán 3
bước vẫn là một thuật toán dễ cài đặt, triển khai và nghiên c ứu.

4. Đánh giá giải thuật
Tất cả các thuật toán đều được đánh giá về gi ải thu ật c ủa nó. Tiêu chu ẩn đánh giá
giải thuật thông qua đỉnh của nhiễu tín hiệu ( Peak Signal to Noise Ratio – PSNR ) ,
giá trị này cho thấy chất lượng của vecto chuy ển đ ộng đ ặc tr ưng c ủa các gi ải thu ật
block-matching. Trong đó tín hiệu là các d ữ liệu gốc còn nhi ễu đ ược đ ưa ra là các
vecto chuyển động tính toán. PSNR được định nghĩa:


Trong đó MSE là sai khác trung bình bình phương ( Mean Squared Error ). Ngoài ra
một chỉ số nữa cũng được sử dụng như một cách kiểm tra hi ệu năng , nó đ ược s ử
dụng để so sánh tỷ lệ suy giảm PSNR ( D-pgnr ). Tỷ lệ này được biểu diễn ở m ức đ ộ
phần trăm chênh lệch PSNR của một giải thuật Block-matching và PSNR c ủa tìm
kiếm đầy đủ:

Bảng so sánh chất lượng của các thuật toán block-matching và tìm ki ếm đ ầy đ ủ ( full
search )

Dễ dàng nhận thấy là các giải thuật block-matching có ch ỉ s ố PSNR t ương đ ối gi ống
nhau khi các video đầu vào là các có ít sự sai khác gi ữa các frame trong video ( t ốc đ ộ
video chậm). Tuy nhiên với các video có s ự thay đổi nhanh thì gi ải thu ật tìm ki ếm 3
bước ( TSS ) đều có các tỷ lệ PSNR cao và tỷ lệ D-psnr cao.



III. Thử nghiệm
1. Dữ liệu đầu vào:
a. Các file image có định dạng Sun Rasterfile. Các file này là các frame c ủa
1 video.
b. Có tổng cộng 33 frame và kích thước của mỗi giống nhau

b. Thuật toán sẽ ước lượng tìm vecto kho ảng cách cho các frame b ằng ph ương pháp
sử dụng thuật toán 3 bước. Trong đó:
Macroblocks: có kích thước 16*16,
Vùng tìm kiếm: p=7
c. Kết quả thu được
Các frame sau khi tiền sử lý để được các ma tr ận dữ li ệu.


Frame imgI được so sánh với frame imgP để tìm vecto kho ảng cách:

Vecto khoảng cách sau khi tính toán là một ma tr ận d ữ li ệu 2*550

Giải thích:
Kích thước số cột dữ liệu của vecto khoảng cách tương ứng v ới số hàng và c ột
của dữ liệu đầu vào: row * col / (sizeMB*sizeMB). V ới kích th ước c ủa d ữ li ệu đ ầu
vào là ma trận dữ liệu 400*352 nên kích th ước c ủa d ữ li ệu vect ơ kho ảng cách s ẽ là
2*550.
Đánh giá chất lượng bằng thông số PNSR


Như nhận xét ở trên các thuật toán block-matching cho k ết qu ả PNSR t ương đ ối
giống nhau với các video có sự thay đ ổi dữ li ệu gi ữa các frame ít. Trong th ử nghi ệm

này PNSR được tính ra trung bình xấp x ỉ 27. K ết qu ả t ương đ ối v ới các th ử nghiêm
tương đối so bảng khảo sát video ở phần lý thuyết.


IV. Tài liệu tham khảo
1. Block matching algorithm based on Differential Evolution for motio estimation - Erik
Cuevas, Daniel Zaldivar, Marco Perez-Cisneros and Diego Oliva
2. Motion Estimation Techniques - Beatrice Pesquet-Popescu, Marco Cagnazzo, Frederic
Dufaux



×