Thuật toán OTA (One-at-a-time Search Algorithm)

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu và đánh giá một số thuật toán ước lượng chuyển động trong mã hóa VIDEO (Trang 45)

Thuật toán OTA (One-at-a-time Search Algorithm) là thuật toán đơn giản nhưng hiệu quả. Thuật toán này có một giai đoạn theo chiều dọc và một theo chiều ngang. OTA bắt đầu quá trình tìm kiếm tại tâm cửa sổ tìm kiếm. Các điểm ở tâm và hai điểm lân cận theo chiều ngang, nghĩa là (0,0); (0,-1) và (0,+1) được tìm kiếm. Nếu độ méo nhỏ nhất thuộc về các điểm ở tâm thì bắt đầu giai đoạn theo chiều dọc, nếu không tìm kiếm các điểm tiếp theo theo chiều ngang gần điểm có độ méo nhỏ nhất, và tiếp tục theo hướng đó cho đến khi bạn tìm được điểm có độ méo nhỏ nhất. Kích thước bước luôn luôn bằng 1. OTA dừng lại khi điểm có độ méo tối thiểu được giữ giữa hai điểm có độ méo cao hơn. Quá trình trên được lặp lại theo chiều dọc xung quanh điểm có độ méo nhỏ nhất theo chiều ngang. Mẫu tìm kiếm của OTA được mô tả trong hình 2.10. Thuật toán tìm kiếm này tiêu tốn ít thời gian hơn tuy nhiên chất lượng tìm kiếm không tốt lắm.

38

Hình 2.13: Thuật toán OTA

Với s > 0, đặt:       (s) (w , w ); s w , w (s) (0, 0), (s, 0), ( , 0) (s) (0, 0), (0, s), (0, ) x y x y N s M s P s = −   = − = − 1 1 2 1 1 (w , w ) (w , w ) ( , ) (i w , w ) y N x N x y x y t t x y i x j y D MSE F i j F j NN + − + − − = =   = =    − + +  Bước 1: '(n) M(1) M  ; q= =l 0 P'(n)P(1) Bước 2:

Tìm (w , w )x yM'(n) sao cho D(wx+q, wy+l)đạt giá trị nhỏ nhất. Nếu (w , w )x y là điểm không nằm ở tâm thì sang bước 3.

Ngược lại ((w , w )x y là điểm nằm ở tâm) thì sang bước 4. Bước 3:

w ,x w ;y '(n) M'(n) (q w , l w )x y

q +q l +l M  + + + . Và quay trở lại bước 2.

Bước 4: ( , )) ) ( ' ) ( ' ; , y x y x l l w P n P n q w l w w q q +  +  + + + .

Tìm (wx,wy)P'(n) sao cho D(wx+q, wy+l)đạt giá trị nhỏ nhất. Nếu (w , w )x y là điểm không nằm ở tâm thì lặp lại bước 4.

Ngược lại ((w , w )x y là điểm nằm ở tâm) thì sang bước 5. Bước 5: ; , y x l l w w q

q +  + và ( , )q l là điểm cho độ méo khối (sự sai khác giữa hai khối) nhỏ nhất.

39

Với sự phát triển liên tục thuật toán cải tiến của OTA gọi là NOTA (New One at a Time Algorithm). So với OTA cũ thì phiên bản mới này có độ phức tạp tính toán thấp hơn. So với OTA, thay vì đánh giá theo chiều ngang cho đến khi điểm có độ méo nhỏ nhất được giữ giữa hai điểm có độ méo cao hơn, thuật toán được đề xuất kiểm tra bốn điểm xung quanh tâm theo chiều dọc. Các điểm kiểm tra ban đầu là quanh tâm . Kích thước bước luôn luôn bằng 1. Nếu điểm tối ưu nằm ở tâm thì MV chính là . Điều này sẽ tiết kiệm thời gian tính toán hơn 80%. Nếu không, tiếp tục tìm kiếm quanh điểm có độ méo nhỏ nhất theo chiều dọc. Hình 2.8 minh họa thuật toán NOTA để tìm vị trí có độ méo nhỏ nhất.

Hình 2.14: Thuật toán NOTA

Các bước của NOTA được diễn giải như sau:

Bước 1: Đánh giá hàm mục tiêu cho tất cả 5 điểm theo chiều ngang.

Bước 2: Nếu điểm có độ méo tối thiểu nằm ở tâm, dừng tìm kiếm; MV sẽ chỉ đến tâm.

40

Bước 3: Nếu ngược lại, đánh giá hàm mục tiêu tại 4 điểm theo hướng khác với lúc trước (4 điểm này nằm xung quanh theo chiều dọc của điểm có độ méo nhỏ nhất ở bước 1).

Bước 4: Tìm hai vị trí ở phía khác của điểm chiến thắng ở bước 3 theo chiều ngang; khi xét đến điểm có độ méo nhỏ nhất theo chiều ngang thì tìm hai vị trí theo chiều dọc.

Bước 5: Điểm có độ méo nhỏ nhất được coi là vị trí phù hợp nhất.

NOTA vẫn giữ được tính đơn giản của OTA. Mặc dù so với OTA, ở bước 1 NOTA sử dụng nhiều điểm kiểm tra hơn nhưng sự tiêu tốn này ở bước đầu tiên của thuật toán lại giảm đáng kể các phép tính

2.6. Kết Luận chương.

Nội dung chương hai đã nêu ra các thuật toán ước lượng chuyển động dùng trong nén video. Chương cuối sẽ thực hiện mô phỏng đánh giá các thuật toán và đề xuất cải thiện thuật toán ước lượng chuyển động.

41

CHƯƠNG III: MÔ PHỎNG VÀ ĐÁNH GIÁ CÁC THUẬT TOÁN ƯỚC LƯỢNG CHUYỂN ĐỘNG TRONG MÃ HÓA

VIDEO

3.1. Giới thiệu phần mềm mô phỏng [8]

Để đánh giá hiệu năng nén của chuẩn HEVC, luận văn sử dụng phần mềm mã nguồn mở HM (HEVC Test Model) nguồn tại https://vcgit.hhi.fraunhofer.de/jvet/HM

Đây là phần mềm tham chiếu được sử dụng để mã hóa và giải mã video theo tiêu chuẩn HEVC. Phần mềm là nền tảng cho phép thực hiện mô phỏng đánh giá hiệu năng các thuật toán ước lượng chuyển động và các thuật toán được đề xuất.

Hình 3.1: Giao diện mô phỏng

Trong phạm vi luận văn này, phần mềm mô phỏng HEVC được sử dụng để kiểm thử hiệu năng của một số phương pháp ước lượng chuyển động bao gồm Full search (MT0), TZ search (MT1), Selective (MT2), Enhanced Diamond (MT3). Đây là các phương pháp đã được cài đặt trong phần mềm HEVC. Thông qua kết quả đánh giá hiệu năng và thời gian mã hóa khi thử nghiệm các phương pháp này, luận văn sẽ rút ra kết luận về hiệu năng của các phương pháp ước lượng chuyển động. Dựa vào quá

42

trình thực nghiệm, luận văn thử nghiệm thay đổi khoảng cách tìm kiếm giữa các khối hình trong phương pháp tìm kiếm vector chuyển động TZ search. Căn cứ kết quả thử nghiệm, luận văn sẽ đánh giá hiệu quả mã hóa khi thay đổi khoảng cách tìm kiếm trong phương pháp TZ search.

3.2. Các thông số đánh giá.

3.2.1. Tỷ lệ tín hiệu trên nhiễu đỉnh (Peak Signal-to-Noise Ratio)

Tham số PSNR được sử dụng để đo mức độ giống nhau giữa hai chuỗi video trước khi nén và sau khi giải nén. Tham số PSNR phản ánh chất lượng của chuỗi video sau khi giải mã. Tham số này càng lớn đồng nghĩa với chất lượng chuỗi video sau khi giải nén càng giống với chất lượng chuỗi video gốc. Trong thực tế, chuỗi video có giá trị PSNR từ 30 dB trở lên sẽ được coi là có chất lượng tốt. Công thức (3.1) biểu diễn cách tính giá trị PSNR.

PSNR = 20. log10(MAX1

√MSE) (3.1)

Trong đó, MAX1 là giá trị mức xám lớn nhất của điểm ảnh trên ảnh. Khi một điểm ảnh được biểu diễn bởi 8 bit thì giá trị của nó sẽ là 255. MSE (Mean Square Error) trung bình bình phương giá trị sai khác giữa các điểm ảnh của ảnh sau khi giải mã và ảnh gốc.

Để đánh giá hiệu quả của các thuật toán ước lượng chuyển động, tham số PSNR và độ phức tạp của thuật toán được sử dụng để so sánh giữa các thuật toán.

Tham số PSNR được đo như sau:

- Bước 1: Tìm vector chuyển động cho khung hình 2 trên mỗi chuỗi video bằng các thuật toán ước lượng chuyển động.

- Bước 2: Dựa trên các vector chuyển động và khung hình 1, khung hình 2 được tái tạo (bù chuyển động).

- Bước 3: Giá trị PSNR được tính dựa trên khung hình 2 gốc và khung hình 2 được tái tạo.

43

MSE (Mean Squared Error) là sai số trung bình bình phương dùng cho ảnh hai chiều có kích thước là MxN. Trong đó Org là ảnh gốc còn Rec là ảnh được khôi phục tương ứng. MSE được tính qua công thức:

𝑀𝑆𝐸 = 1 𝑀𝑥𝑁 ∑ ∑(𝑂𝑟𝑔(𝑖, 𝑗) − 𝑅𝑒𝑐(𝑖, 𝑗))2 𝑁−1 𝑗=0 𝑀−1 𝑖=0 (3.2)

3.2.2. Số lượng bit dùng để mã hóa trong một giây (Bitrate) và thời gian mã hóa mã hóa

Bitrate phản ánh số lượng bit trung bình dùng để mã hóa các khung hình video trong một giây. Tham số bitrate lớn thể hiện số bit để mã hóa video lớn. Nếu cùng một giá trị PSNR, chuỗi video nào có bitrate nhỏ nghĩa là hiệu quả nén chuỗi video đó cao.

Thời gian mã hóa video cũng là tham số thiết yếu. Trong trường hợp giá trị PSNR và bitrate không thay đổi, nếu phương pháp pháp nào có thời gian nén càng nhỏ hiệu quả nén càng cao.

3.3. So sánh và đánh giá các thuật toán thông qua phần mềm mô phỏng

3.3.1. Các chuỗi video dùng để đánh giá

Luận văn sử dụng 8 chuỗi video các độ phân giải lần lượt là 832x480 và 176x144. Các chuỗi video này được chọn lựa với nội dung khác nhau để tăng tính đa dạng. Các chuỗi video có sự khác nhau về tốc độ chuyển động và số lượng chuyển động. Tốc độ khung hình gồm có 30, 50, 60 khung hình trên giây. Thích hợp để thử nghiệm chất lượng nén của các thuật toán ước lượng chuyển động.

BasketballDrill_832x480_50 Akiyo_qcif_176_144_30

BQMall_832x480_60 Carphone_qcif_176_144_30

PartyScene_832x480_50 Coastguard_qcif_176_144_30

RaceHorses_832x480_30 Foreman_qcif_176_144_30

44

BasketballDrill_832x480_50 BQMall_832x480_60

PartyScene_832x480_50 RaceHorses_832x480_30

Akiyo_qcif_176_144_30 Carphone_qcif_176_144_30

45

Tham số Giá trị

Số lượng chuỗi video 4 chuỗi

Độ phân giải 832 x 480

Tốc độ mã hóa 30 frame/s

Cấu hình máy tính Intel(R) Core(TM) i5-7200U CPU @

2.50GHz 2.71 GHz

Bảng 3.2 Các tham số của của môi trường mô phỏng

3.3.2. Kết quả mô phỏng

a. Thử nghiệm hiệu năng của một số thuật toán tìm kiếm vector chuyển động

Bốn chuỗi video được được lựa chọn chế độ nén với thông số lượng tử là 37. Số lượng frame được nén là 30f.

Hình 3.2: Kết quả mô phỏng

Kết quả mô phỏng thể hiện các đặc điểm giống và khác nhau giữa các thuật toán ước lượng chuyển động: Full search (MT0), TZ search (MT1), Selective (MT2), Enhanced Diamond (MT3).

46

Bảng 3.3: Kết quả mô phỏng so sánh các thuật toán ước lượng chuyển động

Nhận xét: Qua kết quả mô phỏng ta thấy khi nén các chuỗi video kết quả Bitrate và PSNR ở các thuật toán ước lượng chuyển động gần như bằng nhau, không sai lệch quá lớn. Tuy nhiên khi nhìn vào tham số thời gian nén ta thấy tốc độ nén của thuật toán TZ search nhanh nhất. Sau đó là thuật toán Selective, Enhanced Diamond và cuối cùng là thuật toán full search. Nhưng tại chuỗi video RaceHorses và foreman

47

với tốc độ 30 frame/second thì thuật toán Enhanced Diamond lại thể hiện vượt trội hơn cả về Bitrate và thời gian nén.

Từ quá trình mô phỏng kết quả chỉ ra thuật toán TZ search thể hiện hiệu năng nén tốt nhất, dù không đạt hiệu năng tốt nhất tại 1 chuỗi video.

b. Đề xuất phương pháp cải thiện thời gian mã hóa cho thuật toán TZ search

Như đã giới thiệu nguyên lý thực hiện của thuật toán TZ search tại nội dung trước (Hình 2.8), bước đầu tiên của thuật toán là tính độ méo của các khối tại vị trí các điểm theo hình Diamond như hình vẽ:

Trong trường hợpvị trí của khối có độ méo nhỏ nhất cách vị trí trung tâm (vị trí 0) một khoảng cách từ 2 đến 5 thì bộ mã hóa sẽ thực hiện tìm kiếm 7 bước. Trong bước này, bộ mã hóa sẽ tìm kiếm 7 vòng, khoảng cách từ vòng 1 đến vòng 7 tăng dần theo bội số của 2 . Tuy nhiên, với khoảng cách tăng theo bội số của 2 có thể hiệu quả trong trường hợp video có nội dung phức tạp, các đối tượng trong video thay đổi chậm. Trong trường hợp nội dung video có nội dung ít chi tiết, các đối tượng chuyển động nhanh, việc tăng khoảng cách giữa các vòng tìm kiếm có thể giảm thời gian tìm kiếm và tăng độ chính xác so với khoảng cách nhỏ. Vì vậy, luận văn đề xuất thử nghiệm việc thay đổi khoảng cách giữa các vòng tìm kiếm để đánh giá hiệu quả. Cụ

48

thể, ngoài khoảng cách giữa các vòng tìm kiếm tăng theo bội số của 2 như của chuẩn HEVC, luận văn thử nghiệm với khoảng cách tìm kiếm giữa các vòng tìm kiếm sẽ tăng theo bội số của 3. Thử nghiệm được thực hiện trên 4 chuỗi video có độ phân giải cao với độ dài là 300 khung hình. Kết quả được thể hiện trong bảng 3.4.

VIDEO

Kết quả đo trung bình của 300 khung hình

PSNR Time Bits

Dist = 2 Dist = 3 Dist = 2 Dist = 3 Dist = 2 Dist = 3 Basketball 34.1612 34.1560 82.6266 69.786 6 16293.973 16292.346

BQMall 33.9312 33.9257 65.1933 63.8 16078.373 16083.653

PartyScene 30.6911 30.6951 91.2066 76.3933 37105.28 37038.506

RaceHorses 32.9212 32.9212 90.9066 91.3 33622.266 33628

Bảng 3.4: Kết quả mô phỏng sau khi thay đổi Dist

Kết quả sau khi thay đổi dist từ 2 lên 3:

- BasketballDrill giảm xấp xỉ 15% thời gian mã hóa. - BQMall giảm 2.13% thời gian mã hóa.

- PartyScene giảm 16.2% thời gian mã hóa(giảm cao nhất). - Video RaceHorse tăng nhẹ 0.5%.

- Thông số còn lại là PSNR và Bits không thay đổi quá nhiều. Đây là một kết quả có thể chấp nhận được.

3.4. Kết luận

Chương 3 đã trình bày kết quả so sánh các thuật toán ước lượng chuyển động, thông qua các tham số như thời gian nén, số bit dùng để nén video,tỉ lệ tín hiệu trên nhiễu đỉnh (PSNR) từ đó tìm ra được thuật toán có hiệu năng tốt nhất là TZ search. Ngoài ra, luận văn cũng đề xuất cải thiện thuật toán TZ search để giảm thời gian mã hóa.

49

KẾT LUẬN VÀ KIẾN NGHỊ 1. Kết quả đạt được

Luận văn đã trình bày tổng quan về quá trình mã hóa và giải mã video. Nguyên lý hoạt động của các thuật toán ước lượng chuyển động hiện nay, và sự phát triển của các thuật toán mới.

Qua quá trình mô phỏng mã hóa video dùng phần mềm mã nguồn mở HM, luận văn đã so sánh được các đặc điểm của các thuật toán ước lượng chuyển động, đánh giá được các ưu nhược điểm của các thuật toán này và lựa chọn ra thuật toán tối ưu nhất. Dựa vào kết quả tiếp tục nghiên cứu đề xuất cải thiện mới trong thuật toán TZ search và đã đạt được kết quả. Sau khi thay đổi thông số đầu vào kết quả cho thấy thời gian mã hóa đã giảm so với ban đầu.

2. Hạn chế

Kết quả sau khi cải thiện thuật toán TZ search khá tốt. Tuy nhiên với số lượng bốn video để mô phỏng là chưa đủ và trong đó có dữ liệu tăng nhẹ so với ban đầu cho thấy việc cải thiện thuật toán vẫn chưa hoàn chỉnh. Cần tiếp tục nghiên cứu phát triển thêm

3. Hướng phát triển

Kết thúc luận văn với kết quả nghiên cứu thu được có thể làm tiền đề cho các nghiên cứu cải thiện thuật toán ước lượng chuyển động sau này và xa hơn là đề xuất được một thuật toán ước lượng chuyển động có hiệu suất cao hơn so với các thuật toán trước đây về mặt thời gian tìm kiếm và chất lượng hình ảnh.

50

TÀI LIỆU THAM KHẢO

Tiếng Việt

[1] Vũ Hữu Tiến, Hà Đình Dũng, “Bài giảng: Xử lý và Truyền thông Đa phương tiện”, Học viện Công nghệ Bưu chính Viễn thông, 2016.

Tiếng Anh

[2] Dosovitskiy, A ;Fischer,P ;Ilg; E.; Hausser,P; Hazirbas, c ;Golkov,V ; Van Der Smagt, P.; Cremers, D.; Brox, T. Flownet, (2015), “Learning optical Flow with convolutional networks,” In Proceedings of the IEEE International Conference on Computer Vision, Santiago, Chile, pp. 2758-2766.

[3] Hui, T.W.; Tang, X.; Change Loy, C. Liteflownet, (2018), “A lightweight convolutional neural network for optical flow estimation,” In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Salt Lake City, UT, USA, pp.8981-8989.

[4] Huska, J and P. Kulla, (2008), “Trends in block-matching motion estimation algorithms”.

[5] Ilg, E.; Mayer, N.;Saikia, T.;Keuper, M.; Dosovitskiy, A.; Brox, T. Flownet (2017), “Evolution of optical flow estimation with deep networks,” In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Honolulu, HI, USA, pp. 2462-2470.

[6] Information technology̵, (1993) “Coding of moving pictures and associated audio for digital storage media at up to about 1.5 Mbit/s: Video”.

[7] J. R. Jain, A. K. Jam, (1981) "Displacement measurement and its application in interframe image coding", IEEE Trans. Commun., vol. COM-29, pp. 1799-1808. [8] K, Suhring, H.264/AVC Software coordination, available at:

http://iphome.hhi.de/suehring/tml/

[9] Mohammed Ghanbari, (1999) “Video coding: an introduction to standard codecs”, The Institution of Electrical Engineers.

51

[10] Razali Yaakob, Alihossein Aryanfar, Alfian Abdul Halin, Nasir Sulaiman, (2013), “A comparison of different block matching algorithms for motion estimation”, ICEEI 2013.

[11] R. Li, B. Zeng, M. L. Liou, (1994) "A new three-step search algorithm for block motion estimation", IEEE Trans. Circuits Syst. Video Technol., vol. 4, no. 4, pp. 438-442.

[12] R. Srinivasan, K.R. Rao, (2012) “Predoctove coding based on efficient motion estimation”, IEEE Trans. Commun., pp. 888-896.

[13] S.Metkar and S. Talbar, (2013), “Motion estimation techniques for Digital Video Coding”, SpringerBriefs in Computional Intelligence.

[14] Sun, D.; Yang, X.; Liu, M.Y.; Kautz, J. Pwc-net, (2018), “Cnns for optical flow using pyramid, warping, and cost volume,” In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, Salt Lake City, UT, USA, pp. 8934-8943.

[15] T. Koga, T. Ishiguro, (2011), “Motion compensated inter-frame coding for video conferencing”, Processings of National Telecommunication Conference, New Orlean, pp. G5.3.1 – G5.3.5.

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu và đánh giá một số thuật toán ước lượng chuyển động trong mã hóa VIDEO (Trang 45)

Tải bản đầy đủ (PDF)

(59 trang)