190 Hội Thảo Quốc Gia 2015 về Điện Tử, Truyền Thông và Công Nghệ Thông Tin (ECIT 2015) Bộ Ước Lượng Chuyển Động Nguyên Thông Lượng Cao Trên Thuật Toán Full Search Cho Chuẩn H 264 Huỳnh Quốc Thịnh và B[.]
Trang 1Bộ Ước Lượng Chuyển Động Nguyên Thông Lượng Cao Trên Thuật Toán Full-Search Cho Chuẩn H.264
Huỳnh Quốc Thịnh và Bùi Trọng Tú Khoa Điện Tử Viễn Thông, Trường Đại Học Khoa Học Khoa Học Tự Nhiên Tp Hồ Chí Minh Email: hqthinh@fetel.hcmus.edu.vn,bttu@hcmus.edu.vn
Abstract— Trong bài báo này, chúng tôi đề xuất hai kiến trúc ASIC
cho bộ ước lượng chuyển động nguyên dựa trên thuật toán
Full-Search cho chuẩn nén video H.264 Trong thiết kế, chúng tôi thực
hiện tối ưu phần cứng cho bộ cộng SAD 2 chiều, cải tiến mảng lưu
trữ tìm kiếm kết hợp với việc tính toán song song đa đầu vào cho
thông lượng tính toán cao, tăng hiệu quả truy cập bộ nhớ Thiết kế
được tổng hợp trên công nghệ 90 nm cho tần số hoạt động tối đa
là 300 MHz, thông lượng cao nhất 1186 chu kì/ 41MVs đối với
vùng tìm kiếm là [64x64], tài nguyên vào khoảng 215K Leaf Cell
Keywords- H.264/AVC, IME, Motion Estimation, VBSME, Full-
Search
I GIỚI THIỆU H.264 là chuẩn nén tiên tiến với nhiều ưu điểm do tỉ lệ nén
khá cao mà vẫn giữ được chất lượng hình ảnh khá tốt[1] Ngày
nay, chuẩn nén H.264 được sử dụng rộng rãi trong hầu hết các
ứng dụng video từ tốc độ thấp cho đến các ứng dụng độ phân
giải cao H.264 sử dụng kỹ thuật ước lượng chuyển động đa kích
cỡ khối (Variable Block Size Motion Estimation, VBSME) và
được thực hiện qua 2 bước: ước lượng chuyển động nguyên
(Integer Motion Estimation, IME) và ước lượng chuyển động
thập phân (Fraction Motion Estimation, FME) Trong đó, bộ ước
lượng chuyển động nguyên có vai trò quan trọng trong việc giảm
độ dư thừa, tăng khả năng nén và cũng là thành phần có độ phức
tạp tính toán cao, tốn nhiều thời gian và tài nguyên của hệ thống
mã hóa H.264[2]
Kỹ thuật ước lượng chuyển động dựa trên các thuật toán dò
tìm khối (BMA-Block Matching Algorithm) để tìm kiếm vector
chuyển động Ý tưởng của BMA là chia khung hiện tại thành các
khối nhỏ (Macro Block, MB), sau đó so sánh từng MB này với
các MB xung quanh của khung tham khảo, còn gọi là vùng tìm
kiếm, để tìm vector chuyển động Mức độ khác nhau giữa 2 MB
được xác định bằng cách tính tổng độ sai khác giữa các pixel
Có nhiều cách để tính độ sai khác, trong đó phương pháp được
sử dụng rộng rãi nhất là Sum of Absolute Difference (SAD) Để
xác định được SAD nhỏ nhất ta dựa vào công thức (1) và (2)
Trong đó, CB là khối thực thi hiện tại (Current Block), RB là
khối tham chiếu (Reference Block), SR là dải tìm kiếm (search
range), i, j là vector chuyển động (Motion Vector, MV)
𝑆𝑆𝑆𝑆𝐷𝐷(𝑖𝑖,𝑗𝑗)= ∑ ∑|𝐶𝐶𝐶𝐶(𝑚𝑚,𝑛𝑛)− 𝑅𝑅𝐶𝐶(𝑚𝑚+𝑖𝑖,𝑛𝑛+𝑗𝑗)|
𝑁𝑁−1 𝑛𝑛=0
𝑁𝑁−1
𝑚𝑚=0
(1)
𝑆𝑆𝑆𝑆𝐷𝐷𝑚𝑚𝑖𝑖𝑛𝑛= min(𝑆𝑆𝑆𝑆𝐷𝐷(𝑖𝑖,𝑗𝑗)), − 𝑆𝑆𝑅𝑅 ≤ 𝑖𝑖, 𝑗𝑗 < 𝑆𝑆𝑅𝑅 (2)
Có nhiều thuật toán để thực hiện ước lượng chuyển động nguyên trong đó Full Search (FS) là thuật toán cho kết quả chính xác nhất[2] Bằng cách so sánh với tất cả các MB có trong vùng tìm kiếm, thuật toán FS sẽ tìm ra chính xác MB có giá trị nhỏ nhất và cho ra vector chuyển động của current MB Nhược điểm của thuật toán FS là độ phức tạp tính toán cao, tốn nhiều tài nguyên Để giảm độ phức tạp, theo các nghiên cứu, người ta chia thành 2 loại Thứ nhất, giảm độ phức tạp tính toán bằng cách giảm số điểm tìm kiếm ví dụ như Three Steps Search (TSS)[9], Diamond Search (DS)[10], các thuật toán mở rộng như Four Steps Search[11] Thứ hai là giảm độ phức tạp tính toán tại mỗi điểm tìm kiếm bằng cách giảm mẫu[2] Các thuật toán này có thời gian tìm kiếm nhanh, giảm độ phức tạp tính toán nhưng lại làm giảm chất lượng hình ảnh và thường được sử dụng trong các ứng dụng hình ảnh có độ phân giải thấp hay các ứng dụng trên
di động Hướng tới các ứng dụng video chất lượng cao thông thường các bộ ước lượng chuyển động dựa trên thuật toán Full Search và được thực hiện trên phần cứng[4] Bài báo này thực hiện xây dựng bộ ước lượng chuyển động nguyên dựa trên thuật toán Full Search để ứng dụng vào các video chất lượng cao Nội dung của bài báo được tổ chức như sau: Phần I là giới thiệu chung về ước lượng chuyển động, phần II giới thiệu các nghiên cứu và kiến trúc phần cứng cho thuật toán Full Search, phần III nêu kiến trúc đề xuất và thực hiện, phần IV là kết quả
và đánh giá thiết kế, cuối cùng là kết luận
II CÁC KIẾN TRÚC CHO IME
Có nhiều nghiên cứu cho ước lượng chuyển động với kích cỡ khối thay đổi với các kiến trúc mảng một chiều, 2 chiều, kiến trúc song song đa lối vào hoặc kiến trúc sử dụng bộ cộng hình cây[2,4,6,7,8]… Kiến trúc IME trong tham khảo[4] và [5] cho thông lượng xử lý cao nhưng cần bộ nhớ cho vùng tìm kiếm lớn (2p + N-1)2 Kiến trúc [5] còn có hạn chế là tốn nhiều thời gian cho bước khởi tạo ban đầu Tham khảo [6] sử dụng hiệu quả các đơn vị xử lý nhưng vùng tìm kiếm bị hạn chế Tham khảo [7] cho thông lượng khá cao nhưng tốn rất nhiều đơn vị xử lý.Các kiến trúc này có sự đánh đổi giữa dung lượng và lượng truy cập
dữ liệu bộ nhớ, giữa thông lượng xử lý và tài nguyên hệ thống Trong số các thiết kế này, 2-D SAD tree IME[4] cho thông lượng cao và được ứng dụng trong các bộ mã hóa H.264/AVC cấu hình cao Hình 1 mô tả kiến trúc của một khối IME cơ bản
Bộ nhớ khối hiện tại (CMB) lưu trữ 16x16 pixel của current MB trong khi bộ nhớ Vùng tìm kiếm (RMB) sẽ lưu trữ các giá trị trong vùng tìm kiếm Các giá trị từ 2 bộ nhớ này sẽ được đưa
Trang 2đến Mảng tính toán để tính độ sai khác sau đó sẽ được cộng lại
với nhau cho tất cả các kích thước khối ở bộ cộng SAD Các
SAD này sẽ được so sánh với nhau để đưa ra các giá trị SAD
nhỏ nhất từ đó tìm được các vector chuyển động
IME
Vùng tìm kiếm (SRAM)
Vùng tìm kiếm (SRAM)
Mảng tính toán
Bộ cộng SAD
Bộ nhớ
Khối hiện tạiBộ nhớ
Khối hiện tại
Off-chip MEM
SAD
Hình 1: Sơ đồ hệ thống IME cơ bản
Để thực hiện ước lượng chuyển động, đầu tiên tất cả các pixel
trong vùng tìm kiếm phải được đưa vào bộ nhớ tìm kiếm SW
Nếu kích thước vùng tìm kiếm ngang là [-p,p-1] và dọc là [-q,
q-1] thì kích thước bộ nhớ là 4pq (pixel), do đó IME cần 1 bộ
nhớ để lưu trữ vùng tìm kiếm sau đó mới đưa vào các thanh ghi
để tính toán Hơn nữa, có 2 dạng truy cập bộ nhớ trong bộ cộng
SAD là truy cập hàng và truy cập cột mà SW chỉ hỗ trợ truy cập
hàng hoặc cột nên truy cập cột sẽ được thực hiện bằng cách truy
cập nhiều hàng và ngược lại Với H.264/AVC, MB có kích
thước là 16x16 sẽ dẫn đến truy cập 1 cột cần truy cập đến 16
hàng Vậy, truy cập cột sẽ cần 16 chu kì clock nếu truy cập hàng
cần 1 chu kì Do đó, việc truy cập bộ nhớ phức tạp và cần băng
thông lớn Ví dụ kiến trúc SAD trong [4] dữ liệu truyền từ bộ
nhớ vào thanh ghi là Nx8bit/chu kì
Dựa vào những phân tích trên, chúng tôi tiến hành thực hiện
trên bộ IME trên 2 mô hình khác nhau sau đó đánh giá hiệu quả
từng mô hình để lựa chọn phù hợp cho từng ứng dụng của chuẩn
nén video H.264
III KIẾN TRÚC ĐỀ XUẤT CHO BỘ IME
Sơ đồ tổng quát của hệ thống được minh họa ở hình 2 bao
gồm các thành phần sau: 256 đơn vị xử lý tính toán song song
các giá trị sai khác của pixel giữa khối hiện tại và khối tham
khảo; một mảng các thanh ghi dịch vòng ghi dữ liệu vào song
song và có thể dịch trái, dịch phải; bộ SIPO là các thanh ghi
đệm vào nối tiếp ra song song giúp tăng hiệu quả truyền dữ liệu;
mảng 16x16 thanh ghi chứa dữ liệu khối hiện tại; bộ cộng các
giá trị sai khác có kiến trúc hình cây 2 chiều; và so sánh các giá
trị SAD Ngoài ra còn có bộ điều khiển truy xuất bộ nhớ và bộ
điều khiển của toàn hệ thống
Các SIPO là các thanh ghi đệm vào nối tiếp và ra song song
có đầu vào bằng với độ rộng bus của bộ nhớ ngoài và có chiều
dài phụ thuộc vào bộ nhớ mà nó hỗ trợ nhằm để tăng hiệu quả
truy cập bộ nhớ Ví dụ, độ rộng bit của bộ nhớ ngoài là 64 bit
thì lưu mỗi lần sẽ là 64 bit (8 pixel) và cần 10 chu kì để dịch đầy mảng 80 pixel Trong thiết kế đề xuất, chúng tôi sử dụng 2
bộ đệm SIPO, một bộ vào nối tiếp 64 bít ra song song 128 bit cho việc lưu giá trị hiện tại (CMB) và một bộ vào 64 bít ra 640 bít (80 pixel) cho việc lưu giá trị tham khảo (RMB) Bộ CMB
là mảng thanh ghi chứa 16x16 pixel, load song song cùng lúc 16pixel/chu kì để chứa các giá trị của khối hiện tại, kết hợp với SIPO ta cần 33 chu kì để lưu đầy mảng RMB là mảng thanh ghi dịch vòng, có thể lấy dữ liệu song song và dịch trái, phải Kích thước độ rộng mảng chính bằng kích thước của macro block (N) Kích thước độ dài của mảng phụ thuộc vào kích thước ngang (p) của vùng tìm kiếm và bằng 2p + N (pixel) Ví
dụ, trong thiết kế của đề xuất này, độ rộng MB N = 16, kích thước tìm kiếm p = 32 thì chiều dài của mảng là 80 pixel và kích thước mảng sẽ là 80x16 pixel Dữ liệu đầu vào được lấy từ thanh ghi SIPO và đầu ra được đưa đến các bộ PEs Khi kết hợp với SIPO, để lưu đầy RMB ta cần có 10 x 16 + 1 = 161 chu kì RMB
có chức năng giữ giá trị hiện tại cho các khối PE tính toán đồng thời lưu phần không tính toán để sử dụng cho các dữ liệu tìm kiếm tiếp theo So với SRAM chứa cả vùng tìm kiếm thì mảng dịch vòng chỉ chứa phần tính toán hiện tại và điểm tìm kiếm trong một hàng của vùng tìm kiếm Các hàng tính toán xong sẽ được loại khỏi mảng (không dùng đến nữa) và được thay thế bằng hàng mới trong vùng tìm kiếm Kết hợp với hướng tìm kiếm kiểu “snake scan” giúp làm tăng hiệu quả truy cập tính toán
Hình 2: Mô hình IME được đề xuất
Mảng 16x16-PEs một ma trận gồm 256 khối đơn vị tính toán giá trị tuyệt đối giữa các pixel hiện tại và các pixel tham khảo dựa vào công thức (3)
|𝑎𝑎 − 𝑏𝑏| = {(𝑎𝑎 + 𝑏𝑏(𝑎𝑎 + 𝑏𝑏′′)) + 1,′ , 𝑣𝑣ớ𝑖𝑖 𝑎𝑎 > 𝑏𝑏𝑣𝑣ớ𝑖𝑖 𝑎𝑎 ≤ 𝑏𝑏 (3)
Bộ cộng SAD là một bộ cộng 2 chiều dùng để tính toán các giá trị SAD của 41 kích thước khác nhau của 1 macro block
Mô hình bộ cộng được chỉ ra ở hình 3 MB 16x16 được chia thành 4 khối 8x8 tương ứng B0-B3 Mỗi khối 8x8 lại được chia thành 4 khối 4x4, vậy có tất cả 16 khối 4x4 tương ứng từ C0-C15 Tầng đầu tiên là 16 bộ cộng 4x4 được thiết kế dựa trên bộ cộng Carry Save Adder 16 ngõ vào Ở các tầng tiếp theo ta cộng các kết quả từ bộ cộng 4x4 để cho ra các kích thước khối lớn
SIPO SIPO
MẢNG 16x16 PEs
SAD ADDER TREE
BỘ SO SÁNH (SAD COMPARATOR)
ĐIỀU KHIỂN TRUY CẬP
BỘ NHỚ
BỘ ĐIỀU KHIỂN
BỘ PHÁT ĐỊA CHỈ
41 MVs
Trang 3hơn Nếu sử dụng các bộ cộng thông thường thì độ trễ qua các
bộ cộng rất lớn, điều này sẽ làm chậm tốc độ tính toán của toàn
hệ thống Để giảm độ trễ qua các tầng cộng, trong việc tính toán
các kích cỡ khối lớn hơn ta sử dụng các bộ cộng Cary Save
Adder cho toàn bộ các khối nhỏ hơn đứng trước Sau đó, các
giá trị SAD của các kích thước khối được tính toán thông qua
bộ cộng Carry Look Ahead cải tiến
Hình 3: Mô hình bộ cộng SAD 2 chiều
Mô hình thiết kế của bộ cộng 4x4 theo kiến trúc Cary Save
Adder được chỉ ra ở hình 4 Các tầng trên chỉ tính riêng lẻ phần
tổng và số nhớ sử dụng kỹ thuật cộng dồn 4:2 (4:2 compressor)
để cho kết quả tối ưu nhất[13,14] Tầng cuối cùng một bộ cộng
Carry Look Aheah cải tiến (MCLA) [12] được sử dụng để cộng
phẩn tổng và số nhớ cho kết quả SAD cuối cùng Với việc sử
dụng bộ cộng Carry Save Adder kết hợp với MCLA sẽ cho kết
quả tính toán nhanh hơn nhiều so với các bộ cộng thông thường
Σ Σ
Σ
+SAD4x4
Hình 4: Cấu trúc bộ cộng SAD4x4
Thiết kế sử dụng bộ cộng dồn 4:2 thay vì 3:2 để tối ưu số tầng
cộng từ đó giảm độ trễ trong tính tính toán Các biểu thức tính
toán của bộ cộng 4:2 được chỉ ra ở công thức (4), (5), và (6)
Hình 5 minh họa mô hình bộ cộng 4:2 Với đường truyền trễ
qua một cổng XOR-XNOR và 2 bộ đa hợp
Hình 5: Kiến trúc bộ cộng 4:2
𝑆𝑆𝑆𝑆𝑆𝑆
= ((𝐴𝐴 ⊕ 𝐵𝐵) (𝐶𝐶 ⊕ 𝐷𝐷) + (𝐴𝐴 ⊕ 𝐵𝐵) (𝐶𝐶 ⊕ 𝐷𝐷)) 𝐶𝐶𝐶𝐶𝐶𝐶 + ((𝐴𝐴 ⊕ 𝐵𝐵) (𝐶𝐶 ⊕ 𝐷𝐷) + (𝐴𝐴 ⊕ 𝐵𝐵) (𝐶𝐶 ⊕ 𝐷𝐷)) 𝐶𝐶𝐶𝐶𝐶𝐶 (4)
𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶𝐶 = (𝐴𝐴 ⊕ 𝐵𝐵 ⊕ 𝐶𝐶 ⊕ 𝐷𝐷) 𝐶𝐶𝐶𝐶𝐶𝐶 + (𝐴𝐴 ⊕ 𝐵𝐵 ⊕ 𝐶𝐶 ⊕ 𝐷𝐷) 𝐷𝐷 (5)
Hoạt động của bộ IME được chia ra làm 2 bước chính Thứ nhất là bước khởi tạo hay lưu dữ liệu vào CMB và RMB, việc lưu dữ liệu vào 2 mảng thanh ghi này được thực hiện đồng thời Thiết kế giả sử động rộng bus truy xuất bộ nhớ ngoài là 64 bit
và thực hiện với kích thước vùng tìm kiếm p = 32 (64x64) thì như đề cập ở phần trên, bộ CMB cần 33 chu kì và RMB cần 161 chu kì Do thực hiện đồng thời nên ở bước khởi tạo cần 161 chu
kì tổng cộng
Thứ hai là bước tính toán giá trị tuyệt đối, tính SAD và 41 vector chuyển động Với đặc điểm của bộ cộng SAD 2 chiều, mỗi điểm tìm kiếm được thực hiện trong 1 chu kì cho 41 vector Với kích thước vùng tìm kiếm 64x64 = 4096 điểm thì số chu kì thực hiện tính toán là 4096 chu kì Để so sánh SAD ta cần thêm
1 chu kì đệm vậy tổng cộng 2 bước là 161 + 4096 + 1 = 4258 chu kì/MB Đối với vùng tìm kiếm nhỏ hơn, p = 16 thì tổng cộng là 97 + 1024 +1 = 1122 chu kì/MB, hay p = 8 thì ta có 65 + 256 +1 = 322 chu kì/MB Sơ đồ thời gian thực thi của các thành phần trong hệ thống được minh họa ở hình 6
Hình 6: Sơ đồ thời gian tính toán của IME
Do việc tính toán SAD của 7 kích cỡ khối khác nhau trong 1 chu kì nên thời gian tính toán sẽ dài, điều này sẽ làm giảm tần
số hoạt động của mạch Để tăng tần số ta tiến hành chia đôi đường critical path hay pipeline 2 tầng trong cấu trúc SAD
Cấu trúc IME 1 pipline 2 tầng (IME1p)
So với mô hình IME1, IME1p chia bộ cộng SAD thành 2 tầng Khi đó việc tính SAD và so sánh kết quả của các kích cỡ khối sẽ chia thành 2 chu kì, chu kì thứ nhất, bộ cộng sẽ cho các kết quả của các khối 4x4, 4x8, 8x4, chu kì thứ 2 sẽ cho kết quả các khối còn lại: 8x8, 8x16, 16x8 và 16x16 Và việc so sánh để đưa ra các giá trị vector ước lượng cũng được thực hiện trong 2 chu kì So với mô hình IME1 thì mô hình pipeline sẽ cần thêm
8 thanh ghi 14 bít và 1 chu kì đệm, tuy nhiên đường critical path
sẽ ngắn lại do đó tần số hoạt động của mạch sẽ tăng lên
Cấu trúc IME đa đầu vào (IME2)
Do đặc điểm cấu trúc của mảng dịch vòng lưu các giá trị của
N hàng trong vùng tìm kiếm nên ta có thể tính toán song song các điểm tìm kiếm bằng cách đặt song song các mảng 16x16 PEs, các bộ cộng SAD và các bộ so sánh mà không cần mở rộng các mảng thanh ghi lưu trữ Nếu đặt m bộ tính toán thì số chu
kì thực hiện ước lượng MB sẽ giảm đi m lần, số bộ tính toán tối
đa bằng với 2 lần kích thước tìm kiếm ngang Tuy nhiên, việc
4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4 4x4
+
16: SAD 4x4
8: SAD 8x4
4: SAD 8x8
2: SAD 16x8
SAD 16x16
C0 C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 C12 C13 C14 C15
B0 B1 B2 B3
MB
Lưu dữ liệu
So sánh SAD và xác định các MVs
Lưu dữ liệu
Tính SAD Dịch trái, phải và lưu Khối CMB
Khối RMB Khối cộng SAD Khối so sánh
0 33 161-162 4258-4259 Chu kì
Trang 4tăng bộ tính toán sẽ làm tăng đáng kể diện tích của toàn hệ thống
do đó tùy vào các cấu hình video mà chọn số bộ tính toán (số
đầu vào) cho thích hợp
Với 4 bộ tính toán song song Mỗi chu kì sẽ thực hiện tính
toán song song 4 điểm tìm kiếm và cho ra giá trị 41 vector
chuyển động của 41 kích thước khác nhau Khi kích thước vùng
tìm kiếm p lần lượt là 32, 16, và 8 thì số chu kì thực hiện ước
lượng xong 1 MB 16x16 lần lượt là 1186, 354 và 130 chu kì
Trong bài báo này, chúng tôi tiến hành thực hiện trên phần cứng
bộ IME 2 đầu vào (IME2_2C) và IME 4 đầu vào (IME2_4C)
để so sánh kết quả với nhau
IV KẾT QUẢ MÔ PHỎNG VÀ TỔNG HỢP
Hệ thống IME được thực hiện bằng ngôn ngữ Verilog HDL
và được mô phỏng kết quả trên phần mềm VCS của Synopsys
và so sánh kết chính xác với Matlab Mạch được tổng hợp dựa
trên công nghệ 90nm của Synopsys kết quả thu được ở bảng 1
và bảng 2 Một số so sánh được chỉ ra ở bảng 3
Bảng1: Kết quả tổng hợp mạch
Mô hình Tần số(MHz) (K Leaf Cell)Tài nguyên
Latency*
(Chu kì)
kích thước vùng tìm kiếm
Bảng 2: Thông lượng xử lý của các kiến trúc
So sánh và đánh giá
Ở kiến trúc đề xuất, bộ nhớ cục bộ của vùng tìm kiếm là
N(2p+N) giảm hơn 60% so với việc lưu trữ toàn bộ vùng tìm
kiếm trong tham khảo [4] và [5] Kiến trúc này cũng dễ dàng
tăng việc tính toán đa đầu vào mà không thay đổi bộ nhớ tìm
kiếm Dựa vào bảng 2 ta thấy thông lượng xử lý của kiến trúc
này lớn cho phép xử lý video ở thời gian thực tại độ phân giải
1280x720@30fps (108K MB/s) hoặc 1920x1080@30fps
(245760 MB/s) ở kiến trúc IME2_4C
Bảng 3: So sánh với các công trình đã nghiên cứu
Thông lượng
V KẾT LUẬN Trong bài báo này, chúng tôi đã xây dựng một kiến trúc VLSI thông lượng cao cho bộ ước lượng chuyển động nguyên trong chuẩn mã hóa H.264/AVC Bộ IME này sử dụng kiến trúc cộng SAD hình cây kết hợp tối ưu phần cứng, cải tiến bộ nhớ tìm kiếm
và xử lý đa đầu vào cho thông lượng xử lý cao, giảm dung lượng
và tăng hiệu quả truy cập bộ nhớ Với các kết quả đạt được, bộ IME có thể đáp ứng cho các ứng dụng nén video thời gian thực
độ phân giải cao như 1280x720 @ 30 fps hay 1920x1080 @ 30fps đối với vùng tìm kiếm là [64x64]
TÀI LIỆU THAM KHẢO
[1] ITU, ITU-T Recommendation H.264: Advanced video coding for generic audiovisual services, 2006
[2] Youn-Long Steve Lin, Chao-Yang Kao, Huang-Chih Kuo, Jian-Wen Chen “VLSI Design for Video Coding -H.264/AVC Encoding from Standard Specification to Chip,” Springer- New York-Dordrecht-Heidelberg-London, ISBN 978-1-4419-0958-9, 2010
[3] Tung-Chien Chen, Shao-Yi Chien, Yu-Wen Huang, Chen-Han Tsai, Ching-Yeh Chen, To-Wei Chen, and Liang-Gee Chen, “Analysis and Architecture Design of an HDTV720p 30 Frames/s H.264/AVC Encoder”, Transactions on Circuits and Systems for Video Technology, vol.16 No.6 June 2006
[4] Ching-Yeh Chen, Shao-Yi Chien, Yu-Wen Huang, Tung-Chien Chen, Tu-Chih Wang, and Liang-Gee Chen, “Analysis and Architecture Design
of Variable Block-Size Motion Estimation for H.264/AVC”, IEEE Transactions on Circuits and Systems—i: Regular papers, vol 53, no 2, February 2006
[5] Meihua GU, Ningmei YU, Lei ZHU, Wenhua JIA, “High Throughput and Cost Efficient VLSI Architecture of Integer Motion Estimation for H.264/AVC”, Journal of Computational Information Systems, April
2011
[6] Chien-Min Ou, Chian-Feng Le and Wen-Jyi Hwang, “An Efficient VLSI Architecture for H.264 Variable Block Size Motion Estimation”, IEEE Transactions on Consumer Electronics, Vol 51, No 4, November 2005 [7] Chao-Yang Kao and Youn-Long Lin, “A Memory-Efficient and Highly Parallel Architecturefor Variable Block Size Integer Motion Estimation in H.264/AVC”, IEEE Transactions on Very Large Scale Integration (VLSI) Systems, vol 18, No 6, June 2010
[8] Minho Kim, Ingu Hwang, Soo-Ik Chae, “A Fast VLSI Architecture for Full-Search Variable Block Size Motion Estimation in MPEG-4 AVC/H.264”, Proceedings of Asia and South Pacific design automation conference, Shanghai, China, January 2005, pp 631–634 [9] Xuan Jing, Chau, L.-P, “An efficient three-step search algorithm for block motion estimation”, Multimedia, IEEE Transactions on, vol 6, p.435 –
438, May 2004
[10] Shan Zhu, and Kai-Kuang Ma, “ A New Diamond Search Algorithm for Fast Block-Matching Motion Estimation”, IEEE Trans Image Processing, vol 9, no 2, pp 287-290, February 2000
[11] Lai-Man Po, and Wing-Chung Ma, “A Novel Four-Step Search Algorithm for Fast Block Motion Estimation”, IEEE Trans Circuits And Systems For Video Technology, vol 6, no 3, pp 313-317, June 1996
[12] Yu-Ting Pai and Yu-Kumg Chen, “The Fastest Carry Lookahead Adder”, Proceedings of the Second IEEE International Workshop on Electronic Design, Test and Applications (DELTA’04) 0-7695-2081-2/04, 2004
Power Comparison of Adder Topologies”, International Journal of VLSI design & Communication Systems (VLSICS) Vol.3, No.1, February
2012
[14] Sreehari Veeramachaneni, Kirthi Krishna M, Lingamneni Avinash, Sreekanth Reddy Puppala , M.B Srinivas, “Novel Architectures for High-Speed and Low-Power 3-2, 4-2 and 5-2 Compressors”, IEEE 20th International Conference on VLSI Design (VLSID'07) 0-7695-2762-0/07 2007.