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 y M'(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
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).