Đường ống hệ thống

Một phần của tài liệu ĐỒ ÁN HEVC : MÃ HÓA VIDEO HEVC (Trang 64 - 69)

Độ chi tiết của đường ống mức đỉnh bị ảnh hưởng bởi các sự phụ thuộc xử lý giữa các điểm ảnh. Do đó, một khối biến đổi ngược không thể sử dụng một đường ống 4x4 pixel; độ chi tiết hạt đường ống ít nhất phải bằng kích thước một TU. Thông thường, ta mong muốn tối thiểu hóa theo độ chi tiết đường ống để giảm độ trễ xử lý và kích thước bộ nhớ.

CTU lớn nhất cần 6 kB [1] để lưu trữ các pixel luma và chroma của nó với độ chính xác 8 bit. Các hệ số biến đổi và phần dư được tính toán với độ chính xác cao hơn (16 bit hoặc 9 bit, tương ứng) và yêu cầu bộ nhớ lưu trữ lớn hơn phù hợp. Các thông tin khác như là chế độ nội dự đoán , các vector chuyển động liên dự đoán… cần được lưu trữ ở độ chi tiết 4x4. Tất cả những điều trên đều yêu cầu các bộ đệm đường ống lớn hơn trong SRAM và một vài kĩ thuật có thể được sử dụng để giảm kích thước của chúng.

Các bộ đệm dòng được yêu cầu để xử lý các sự phụ thuộc dữ liệu giữa các CTU trong hướng dọc. Kích thước các bộ đệm đó tỉ lệ với chiều rộng hình ảnh. Hơn nữa, nếu hình ảnh được chia thành nhiều hàng ngói, mối hàng ngói cần một bộ đệm dòng riêng biệt nếu các hàng sẽ được xử lý song song. Các ngói cũng cần các bộ đệm cột để xử lý những sự phụ thuộc dữ liệu giữa chúng trong hướng ngang. Thông thường, các bộ đệm dòng được triển khai sử dụng SRAM trên chip. Tuy nhiên, với các kích thước hình ảnh rất lớn, có thể cần thiết để lưu trữ chúng trong các DRAM gắn ngoài có mật độ dày hơn. Điều này tạo ra một sự bù trừ khu vực và công suất do việc liên lạc tới DRAM gắn ngoài cần nhiều công suất hơn.

Dù vậy, DRAM gắn ngoài thông thường nhất được sử dụng để lưu trữ bộ đệm hình ảnh đã giải mã. Độ trễ có thể thay đổi tới DRAM gắn ngoài phải được xem xét trong đường ống hệ thống. Đặc biệt, cần có những bộ đệm giữa các khối xử lý mà giao tiếp với DRAM để điều tiếp độ trễ thay đổi. Việc bù chuyển động tạo ra phần lớn các số lượng truy cập tới DRAM gắn ngoài và một bộ nhớ cache bù chuyển động thường được sử dụng để giảm số lượng xử lý. Với một bộ nhớ cache, độ trễ trong trường hợp tốt nhất cho truy cập bộ nhớ được xác định bởi một cache và nó có thể chậm như một chu kì. Tuy nhiên độ trễ trong trường hợp xấu nhất, xác định bởi một mất mát cache, để lại nhiều hoặc ít hơn các sự không thay đổi do việc gia tăng tính biến đổi tổng thể được nhìn thấy bởi khối dự đoán.

Để đối phó với độ trễ có thể thay đổi của bộ nhớ cache+hệ thống bộ nhớ DRAM, kĩ thuật đường ống đàn hồi có thể được sử dụng giữa các bộ giải mã entropy, cái gửi những yêu cầu đọc tới bộ nhớ cache, và bộ dự đoán, cái đọc dữ liệu từ bộ nhớ cache. Kết quả là, đường ống hệ thống có thể bị vỡ thành hai nhóm. Nhóm đầu tiên chứa các bộ giải mã entropy trong khi nhóm thứ hai bao gồm biến đổi ngược, bộ dự đoán và các bộ lọc lặp vòng tiếp theo như trong hình 3.1.

Hình 3.1. Đường ống hệ thống cho bộ giải mã HEVC

Các bộ giải mã Entropy sử dụng các vector chuyển động được sắp từ các hình ảnh đã giải mã cho việc dự đoán vector chuyển động. Một giai đoạn đường ống, ColMV DMA được thêm vào trước bộ giải mã entropy để đọc các vector chuyển động được sắp xếp theo thứ tự từ DRAM. Điều này ngăn cách bộ giải mã entropy khỏi độ trễ DRAM có thể thay đổi. Tương tự, một giai đoạn phụ thêm khác, tái cấu trúc DMA, được thêm vào sau các bộ lọc lặp vòng trong nhóm đường ống thứ hai để ghi lại toàn bộ các điểm ảnh tái cấu trúc tới DRAM. Các bộ máy xử lý được làm ống với độ chính xác VPB trong mỗi nhóm như được thể hiện trong hình 3.2

Hình 3.2. Phân chia đường ống hệ thống để giải quyết độ trễ DRAM thay đổi

Các bộ giải mã entropy phải gửi các hệ số phần dư và thông tin biến đổi như là các tham số lượng tử hóa và kích thước TU tới khối biến đổi ngược. Do các hệ số phần dư sử dụng độ chính xác 16 bit, 12 kB của SRAM là cần thiết cho các hệ số luma và chroma của một VPB. Với kĩ thuật đường ống đầy đủ, bộ nhớ lưu trữ cho hai VPB là cần thiết để bộ giải mã entropy có thể ghi các hệ số và biến đổi ngược có thể đọc các hệ số của VPB trước đó đồng thời. Do đó, kĩ thuật đường ống VPB cần 24 kB của SRAM. Nhưng điều đó có thể tránh được bằng cách sử dụng thực tế là kích thước TU lớn nhất là 32x32 (một 64x64 CU phải chia cây tứ phân biến đổi của nó ít nhất một lần). Do đó, có thể sử dụng một bộ đệm 2 TU thay thế. Bộ giải mã entropy ghi vào một TU trong khi biến đổi ngược đọc từ TU trước đó. Bộ đệm này yêu cầu chỉ 4 kB, do đó tiết kiệm được 20 kB SRAM [1].

Hình 3.3. Quản lý bộ nhớ ở nhóm đường ống thứ 2

Trong nhóm đường ống đầu tiên, một bộ đệm dòng được sử dụng bởi bộ giải mã entropy cho việc lưu trữ thông tin dự đoán của hàng các VPB phía trên. Trong nhóm đường ống thứ hai, các phần dư 9 bit được chuyển từ biến đổi ngược tới bộ dự đoán sử dụng hai SRAM có kích thước bằng VPB trong cấu hình ping-pong. (Biến đổi ngược ghi một VPB tới một SRAM trong khi bộ dự đoán đọc VPB trước đó từ SRAM khác. Khi cả hai mô đun hoàn thành việc xử lý các VPB tương ứng của chúng, hai SRAM sẽ đổi vai trò.). Bộ dự đoán, các bộ lọc lặp vòng và DMA tái tạo liên lạc sử dụng SRAM có kích thước bằng VPB trong một cấu hình bộ đệm xoay thể hiện ở hình 3.3. Một bộ đệm dòng khác được sử dụng để liên lạc các pixel và các tham số qua các hàng VPB. Bộ đệm dòng phải lưu trữ [1]

• Một luma và một hàng chroma (hậu giải khối) cho bộ lọc SAO.

• Các tham số dự đoán và biến đổi như là chế độ dự đoán, các vector chuyển động, các chỉ số hình ảnh tham chiếu, chế độ nội dự đoán và tham số lượng tử hóa để xác các tham số bộ lọc giải khối.

• Các tham số SAO

Để giảm diện tích bộ đệm dòng, một SRAM một cổng được sử dụng và các yêu cầu từ bộ dự đoán, các bộ lọc lặp vòng và DMA tái tạo được phân xử. Các mô hình truy cập của ba mô đun tới SRAM được thiết kế để tối thiểu hóa lượng xung đột và kế hoạch xét định đưa ra quyền ưu tiên cao hơn tới bộ lọc giải khối do nó có giới hạn thấp hơn trong ngân sách chu kì. Điều đó tối thiểu hóa sự bất lợi hiệu quả của việc chia sẻ SRAM.

Một phần của tài liệu ĐỒ ÁN HEVC : MÃ HÓA VIDEO HEVC (Trang 64 - 69)