Đồ án Điều khiển tốc độ video mã hóa chuẩn H.264 thích ứng trên mạng Ad-Hoc

MỤC LỤC

NHIỆM VỤ ĐỒ ÁN TỐT NGHIỆP 1

BẢN NHẬN XÉT ĐỒ ÁN TỐT NGHIỆP 2

LỜI NÓI ĐẦU 3

TÓM TẮT ĐỒ ÁN 4

ABSTRACT 5

MỤC LỤC 6

DANH MỤC HÌNH VẼ 10

DANH MỤC BẢNG BIỂU 12

CÁC THUẬT NGỮ VIẾT TẮT 13

Chương 1

GIỚI THIỆU CHUNG 16

1.1 Mục đích thiết kế 16

1.2 Phương pháp nghiên cứu 18

Chương 2

CHUẨN NÉN VIDEO H.264/MPEG-4 Part 10 19

2.1 Giới thiệu chung về bộ CODEC H.264 20

2.1.1 Bộ mã hoá (Encoder) 20

2.1.2 Bộ giải mã (Decoder) 23

2.2 Cấu trúc 23

2.2.1 Định dạng video (video format) 24

2.2.2 Định dạng dữ liệu được mã hóa 24

2.2.3 Slice 25

2.2.4 Macroblock 27

2.2.5 Ảnh tham chiếu(reference picture) 29

2.3 Profile 30

2.4 Lớp mạng trừu tượng (NAL) 31

2.4.1 Định nghĩa lớp mạng trừu tượng: 31

2.4.2 Cấu trúc của NAL unit 32

2.4.3 Tập tham số (parameter set) 35

2.5. Điều khiển tốc độ (Rate control) 43

2.5.1. Giới thiệu về điều khiển tốc độ trong H.264 43

2.5.2. Phân loại ratecontrol 44

2.5.2.1.Chế độ 2 pass 44

2.5.2.2Chế độ1 pass 44

a)1 pass ABR 44

b)1 pass CBR 45

c)1 pass CRF 45

d)1 pass CQP 46

2.5.3 Mô hình điều khiển tốc độ trong H.264 46

2.5.3.1Mô hình tốc độ méo (Rate-distortion model) 48

a)Mức độ nhóm ảnh (GOP level) 48

b)Mức độ khung (Frame level) 49

2.5.3.2Dự đoán độ phức tạp 56

2.5.3.3Mô hình bộ nhớ ảo 57

2.5.3.4Giới hạn Delta QP (Delta QP-limiter) 58

2.5.3.5Phân bố bit của đơn vị cơ b ản (Basic Unit Allocation) 58

2.5.4. Chế độ ratecontrol trong x264 58

a) Constant QP 58

b) Constant rate factor 59

2.5.5. Kết quả thu được 59

a) mối quan hệ giữa tốc độ bit đầu ra và các tham số điều khiển tốc độ: 59

b) Thiết kế xuyên tầng 63

Chương 3

GIAO THỨC ĐỊNH TUYẾN OLSR 64

3.1 Giới thiệu 64

3.2 Một số khái niệm cơ bản: 64

3.3 Hoạt động 65

3.4 IBSS (IEEE Ad hoc mode) 67

3.5 Thông tin chất lượng đường truyền mở rộng (Link Quality Extension) 69

3.6 Debug output: 69

3.6.1 Phân tích bảng thông tin các liên kết: 69

3.6.2 Phân tích bảng thông tin các nút hàng xóm 70

3.6.3 Phân tích bảng thông tin về topo mạng 71

3.6.4 Phân tích bảng định tuyến tìm đường theo DIJKSTRA 71

Chương 4

GIỚI THIỆU VỀ THIẾT KẾ XUYÊN TẦNG

4.1 Mối liên hệ code giữa vlc, x264 và olsrd 73

4.2 Thiết kế xuyên tầng giữa vlc, x264 và olsrd 74

Chương 5

KẾT QUẢ NGHIÊN CỨU, KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU TIẾP THEO 75

5.1 Test case 1: Thí nghiệm chứng tỏ etx là giá trị cần truyền cho vlc 75

5.1.1 Thí nghiệm 1: 75

5.1.2 Thí nghiệm 2: 77

5.2 Kết quả thu được: Thực thi thiết kế xuyên tầng thành công: 79

5.3 Kết luận 82

5.4 Hướng nghiên cứu tiếp theo: 82

TÀI LIỆU THAM KHẢO 83

 

 

doc83 trang | Chia sẻ: lethao | Lượt xem: 2732 | Lượt tải: 4download
Bạn đang xem trước 20 trang tài liệu Đồ án Điều khiển tốc độ video mã hóa chuẩn H.264 thích ứng trên mạng Ad-Hoc, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i Mb_qp_delta Thay đổi tham số lượng tử hóa Residual Hệ số biến đổi đã được mã hóa ứng với mẫu dư thừa sau khi dự đoán Ảnh tham chiếu(reference picture) Hình 2. 10: Ảnh tham chiếu và bù chuyển động Bộ mã hóa H.264 có thể sử dụng hai hoặc nhiều các ảnh được mã hóa trước đó để làm tham chiếu cho dự đoán bù chuyển động cho mã hóa ngoài các khối macro hoặc phân tách khối macro. Điều này cho phép bộ mã hóa tìm kiếm khối macro giống nhất với khối macro được tách ra từ bức ảnh vừa được mã hóa.Bộ mã hóa và giải mã luôn giữ một hoặc hai danh sách các ảnh tham chiếu, bao gồm ảnh đã vừa được mã hóa hay giải mã (xuất hiện trước hoặc sau ảnh hiện tại). Mã hóa ngoài các khối macro hay vùng của khối macro trong slice P được dự đoán từ một danh sách các ảnh –list 0. Mã hóa ngoài khối macro và vùng các khối macro trong slide B có thể được dự đoán từ hai danh sách list 0 và list 1. Profile Hình 2. 11: các profile H264 định nghĩa 3 profile trong đó mỗi profile hỗ trợ 1 tập cụ thể các hàm mã hóa,và chỉ ra những gì đươc yêu cầu của bộ mã hóa/giải mã phù hợp với từng profile.Base profile hỗ trợ mã hóa trong và liên khung(sử dụng slice I và slice P ),và phương pháp mã hóa entropy CAVLC.Main profile bao gồm video quét xen kẽ,mã hóa liên khung sử dụng slice B ,mã hóa liên khung dùng dự đoán có trọng sô và phương pháp mã hóa entropy CABAC.Extended profile không hỗ trợ video quét xen kẽ và phương pháp mã hóa entropy CABAC,nhung có thêm chế dộ cho phép việc chuyển đổi  giữa các luồng bit được mã hóa. Ứng dụng tiềm năng của profile Baseline bao gồm thoại video, hội thảo truyền hình, và truyền thông không dây. Ứng dụng tiềm năng của Main profile là truyền hình quảng bá và lưu trữ dữ liệu. Profile mở rộng có thể hữu ích trong ứng dụng streaming. Tuy nhiên mỗi profile có sự mềm dẻo đủ để hỗ trợ một loại ứng dụng khác nhau. Lớp mạng trừu tượng (NAL) Hình 2. 12: Cấu trúc của bộ mã hóa H.264/AVC Định nghĩa lớp mạng trừu tượng: Lớp mạng trừu tượng được thiết kế nhằm mục đích cung cấp khả năng thân thiện với mạng cho phép tuỳ biến dễ dàng và hiệu quả. Lớp mạng trừu tượng có khả năng tương thích dễ dàng với dữ liệu của lớp truyền . Các NAL unit chứa trong nó slice đầu ra của VCL (video coding layer), thích hợp cho việc truyền đi trên mạng gói (packet-oriented network) hoặc các mạng hướng luồng byte (byte-oriented networks) Hình 2. 13: video coding layer và network abstract layer Cấu trúc của NAL unit Mào đầu của 1 đơn vị NAL Hình 2. 14: Cấu trúc của đơn vị NAL Trên hình là cấu trúc của NAL header có độ dài 1 byte,và là byte đầu tiên của 1 NAl unit. Trong đó: F (1bit) Forbidden_zero_bit: Giá trị 0 chỉ rằng octet NAL type và tải không chứa bit lỗi hoặc sai cú pháp.Và ngược lại.Khi bit F được đặt lên 1 thì bộ giải mã được chi rằng trong tải và octet NAL ype của NAL unit có chứa lỗi hoặc sai cú pháp,bộ giả mã có thể huỷ bỏ NAL unit và giấu đi dữ liệu  của gói bị huỷ NRI (2bit) nal_ref_idc: giá trị 00 chỉ nội dung của NAL unit không được dùng đẻ tái xây dựng ảnh tham chiếu cho dự đoán liên ảnh,do vậy mà các NAl unit có thể bi huỷ mà không làm rủi ro toàn thể ảnh tham chiếu. Còn giá trị lớn hơn 00 chỉ rằng việc giải mã NAl unit được yêu cầu để duy trì sự toàn vẹn của ảnh tham chiếu.Mức độ ưu tiên truyền giảm dần theo trật tự:11,10,01,00 ,và giá trị của NRI tuỳ thuộc giá trị của NAL type khi NAL=5 (ảnh IDR) thì giá trị của của NRI=11 Data type (5bit) Bảng 4: Kiểu NAL cAnnex B (byte stream) Bảng 5: RBSP Trật tự của NALU dạng luồng byte nên theo trật tự giải mã NALU trong luồng byte NALU Bắt đầu mỗi NALU là chuỗi 3 byte được gọi là start_code_prefix_one_3byte =0x000001(theo hệ số đếm 16) emulation_prevent_three_byte chứa bên trong của 1 NALU để thông báo là không có chuỗi liên tiếp byte-aligned bên trong NALU Tập tham số (parameter set) Hình 2. 15: cấu trúc tập tham số của H.264 Khi truyền video được mã hóa theo cách truyền thống qua mạng dễ xảy ra lỗi (error prone),một trong các vấn đè lớn hơn là khả năng mất 1 tiêu đẻ mang thông tin có liên quan tới nhiều gói.Ví dụ như việc mất tiêu đề (header)của ảnh , dẫn đến không có khả năng của bộ giải mã sử dụng bất kì gói thông tin nào sau đó liên quan tới bứ ảnh,thậm chí rất nhiều gói còn nguyên không bị thay đổi gi so với khi được kđongs gói tại phía phát.NHiều cơ chế được giới thiệu tới các chuẩn mã hóa video và sự sắp xếp đóng gói (packetization schemes) để giảm thiểu vấn đeg trên như cơ chế nhân bản tiêu đề trong MPEG-4.Tuy nhiên nhưng cớ chế này không thể giải quyết hoàn toàn vấn đề Vấn đề cơ bản là việc đồng bộ của các thông tin cao hơn của tiêu đề với luồng bit.Ở bất kì trạng thái nào được nêu ra của bộ giải mã,có duy nhất 1 ngữ cảnh (context) của tiêu đề sẵn sàng ở bộ giải mã.Nếu ngữ cảnh bị mất vì bất kì lí do nào,bộ giải mã sẽ có vấn đề Khái niệm NAL của H26L tránh được vấn đề này bằng cách tách biệt việc truyền của thông tin slice và tiêu đề của trật tự cao hơn (higher hierarchy).Bộ mã hóa và bộ giải mã duy trì nhiều địa điermer chứa cho toàn bộ nội dung  của tiêu đề của ảnh/GOB/Slice.Mỗi 1 slice chứa trong tiêu đè 1 từ mã của tập tham số (parameter set) có chức năng như 1 chỉ số tới địa chỉ cuat tập tham số liên quan việc giải mả của slice đó. Do vậy , bộ giải mã có thẻ thay đổi không đồng bộ các tập tham số trong khi vẫn cho phép giải mã đúng slice mà không gửi (address)tham số các tập tham số đó. Hình 2. 16: Tập tham số Việc truyền các cập nhật của tập tham số phụ thuộc vào NAL.Tập tham số nên được thiết lập và cập nhật một cách cậy và theo 1 kênh truyền khác với kênh truyền video.Trong các ứng dụng hội thoại,thiết lập của tập tham sô sẽ thường là ảnh hưởn 1 phía của trao đổi khả năng (capability exchange) và sau đó những thay đổi sẽ được thực hiện thông qua giao thức điều khiển tin cậy như H.243>trong môi trường mà không có giao thức điều khiển nào ,tập tham số có thể được truyền trong cùng 1 kênh truyền Hình 2. 17: luồng dữ liệu đi qua NAL và VCL Thông thường các tập tham sô ảnh , tập tham số chuỗi được truyền trước các slice để bộ giải mã phía thu có thể thiết lập các giá trị phù hợp để giải mã đúng luồng dử liệu video truyền từ phía phát PPS Mỗi slice đều tham chiếu đến 1 tập tham số ảnh (picture parameter set) dùng cho việc giải mã dữ liệu video được mã hóa Cấu trúc của PPS: Bảng 6: Cấu trúc PPS picture_parameter_set( ) { Category Mnemonic        parameter_set_id(picture_parameter_set)        parameter_set_id(independent_GOP_parameter_set)        parameter_set_id(presentation_parameter_set)        picture_width_in_MBs_minus_1 ecselbf        picture_height_in_MBs_minus_1 ecselbf } SPS Mỗi tập tham số ảnh đều tham chiếu đến 1 tập tham số chuỗi (sequence parameter set).Mỗi tập tham số chuỗi chứa thông tin cho că chuỗi video dùng cho quá tŕnh giải mă cho toàn chuỗi ảnh  Trật tự của các NALU và lien kết tới các ảnh được mã hoá, đơn vị truy cập và chuỗi video Trật tự của PPS và SPS Tập tham số ảnh và tập tham số chuỗi phân tách việc truyền nhũng thông tin thay đổi không thường xuyên từ dữ liệu của các macroblock được mã hóa.Tập tham số ảnh và tập tham số chuỗi được truyền "out-of-band" dùng cơ chế truyền tin cậy.RBSP của tập tham số ảnh có thể được chiếu đến bởi các đơn vị NAL của slice được mã hóa hoặc phân vùng dữ liệu.RBSP của mỗi tập tham số ảnh ban đầu không hoạt động lúc bắt đầu hoạt động của quá trình giải mã.Một tập tham số ảnh được xem là hoạt động tại bất kì thời điểm nào của quá trình giải mã,và dẫn đến sự vô hiệu hóa của một tập tham số ảnh trước đấy.Và khi có một tâp tham số ảnh mới thì tập tham số ảnh hiện tại sẽ bị vô hiệu hóa. Bất kì đơn vị NAL chứa giá trị của pic_parameter_set_id cho RBSP của tập tham số ảnh hoạt động sẽ có cùng nội dung như của RBSP tập tham số ảnh hoạt động trừ phi nó theo sau đơn vị NAL VCL cuối cùng của một ảnh được mã hóa và dứng trước đơn vị NAL VCL đầu tiên của ảnh được mã hóa khác Một tập tham số chuỗi chứa thông số có thể được chỉ đến bỏi một hay nhiều tạp tham số ảnh hoặc một hay nhiều thông điệp SEI.mỗi tập tham số chuỗi ban đầu không hoạt động lúc bắt đầu hoạt động của quá trình giải mã và hoạt động  tại bất kì thời điểm nào của quá trình giải mã,và dẫn đến sựu vô hiệu hóa của một tập tham số ảnh trước đấy.Và khi có một tâp tham số chuỗi mới thì tập tham số chuỗi hiện tại sẽ bị vô hiệu hóa. Bất kì đơn vị NAL chứa cụ thể giá trị của seq_parameter_set_id cho RBSP của tập tham số chuỗi không sắn sàng hoạt động như của RBSP tập tham số chuỗi hoạt động trừ phi nó theo sau đơn vị NAL VCL cuối cùng của một ảnh được mã hóa và dứng trước đơn vị NAL VCL đầu tiên của ảnh được mã hóa khác Do đơn vị truy cập IDR bắt đầu một chuỗi video được mã hóa mới và một RBSP của tập tham số chuỗi phải duy trì hoạt động cho toàn thể chuỗi video được mã hóa,RBSP của tập tham số chuỗi chỉ có thể được hoạt động bới một thông điệp SEI đang đệm theo chu kì Bất kì đơn vị NAL chứa giá trị của seq_parameter_set_id cho RBSP của tập tham số chuỗi hoạt động sẽ có cùng nội dung .RBSP tập tham số chuỗi hoạt động trừ phi nó theo sau đơn vị NAL VCL cuối cùng của một ảnh được mã hóa và dứng trước đơn vị NAL VCL đầu tiên của ảnh được mã hóa khác,và đơn vị SEI chứa thông điệp SEI của chuỗi video được mã hóa khác.Khi trình bày,RBSP của tập tham số chuỗi mở rộng có chức năng tượng tự các RBSP của tập tham số chuỗi Trật tự của các đơn vị truy cập và gắn với chuỗi video được mã hoá Một chuỗi video bao gồm  hay nhiều đơn vị truy cập.Đợn vị truy cập đầu tiên của mỗi chuỗi video được mã hóa là 1 đơn vị IDR và tất cả các chuỗi video là các đơn vị truy cập không phải IDR Giá trị của só đếm trật tự của ảnh cho các ảnh được mã hóa trong các đơn vị truy cập liên tiêp nhau theo trật tự giải mã đàg chứa ảnh không được tham chiếu sẽ không tăng Khi hiển thị,một đơn vị truy cập theo sau 1 đơn vị truy cập cuối cùng của 1 chuỗi NAL sẽ là 1 đơn vị truy cập của ảnh IDR Khi một dơn vị NAL SEI chứa dữ liệu là thuộc tính của nhiều đơn vị truy cập, đơn vị NAL SEI sẽ được chứa trong đơn vị truy cập đầu tiên nó áp dụng Khi kết thúc của luồng NAL được trình bày ở trong 1 đơn vị truy cập,đơn vị truy cập này nên là đơn vị cuối cùng của chuỗi bit và kết thúc của chuỗi đơn vị NAL sẽ là đơn vị NAL cuối cùng trong đơn vị truy cập này Trật tự của các đơn vị NAL và ảnh được mã hoá và sự gán kết tới các đơn vị truy cập Hình 2. 18: Cấu trúc đơn vị truy cập Một đơn vị truy cập chứa 1 ảnh được mã hóa chính,không hoặc nhiều ảnh dược mã hóa dư thừa liên quan và không hoặc nhiều đơn vị NAL không phải là của VCL Đơn vị đầu tiên của các đơn vị NAL theo sau đơn vị NAL của lớp VCL của một ảnh được mã hóa chính Đợn vị NAL phân chia đơn vị truy câp (access unit delimiter NAL unit) Đơn vị NAL của tập tham số chuỗi ( sequence parameter set NAL unit) Đơn vị NAL của tập tham số ảnh (picture parameter set NAL unit) SEI NAL unit (when present) Đơn vị NAL với nal_unit_type trong khoảng 14 từ 18 Đơn vị NAL VCL đầu tiên của một ảnh được mã hóa Những hạn chế sau sẽ được điều khiển được trật tự của các ảnh được mã hóa và các đơn vị của NAL không phải của lớp VCL bên trong một đơn vị truy cập Khi một đơn vị NAL phân chia các đơn vị truy cập được trình bày,nó sẽ là đơn vị NAL đầu tiên.Nên có ít nhât 1 đơn vị phân chia đơn vị truy cập ở bất kì đơn vik truy cập nào Khi các đơn NAL SEI bất kì được trình bày, chúng sẽ thep trước ảnh được mã hóa Khi một đơn vị NAL SEI chứa thông điệp SEI đang được đệm,thông điệp SEI đang được đệm sẽ là tải của thông điệp SEI đầu tiên của đơn vị NAL đầu tiên tron đơn vị truy cập Ảnh được mã hóa chính sẽ di trước các ảnh được mã hóa dư thừa liên quan Khi ảnh được mã hóa dư thừa được trình bày,nó sẽ là đơn vị NAL tiếp theo và theo trật tự của giá trị của redundant_pic_cnt. .Các đơn vị NAL thuộc cùng 1 chuỗi thì có cùng số seq_parameter_set_id. Khi đơn vị NAL của tập tham số chuỗi đươc trình bày,nó sẽ là đơn vị NAL  tiếp theo sau đơn vị NAL của tập tham số chuỗi có cùng giá trị  seq_parameter_set_id khi có 1 hay nhiều slice được mã hóa của một ảnh được mã hóa phụ không có các đơn vị NAL của các phân vùng được trình bày,chúng sẽ theo sau ảnh được mã hóa chính và tất cả các ảnh được mã hóa dư thừa Khi đơn vị NAL kết thúc của chuỗi được trình bày, nó sẽ theo sau ảnh được mã hóa chính và tất cả các ảnh được mã hóa dư thừa Khi đơn vị NAL của luồng kết thúc được trình bày,nó sẽ là đơn vị NAL cuối cùng Đơn vị NAL có nal__unit_type từ 0 đến 12 hoặc trong khoảng 20 đến 31,sẽ không theo sau đơn NAL lớp VCL đầu tiên của ảnh được mã hóa chính Đơn vị NAL của tập tham số chuỗi hoặc của tập tham số ảnh có thể được trình bày trong 1 đơn vị truy câp nhưng không đi sau đơn vị NAL VCL cuối cùng của ảnh đươc mã hóa chính bên trong 1 đơn vị truy cập, khi điều kiện này sẽ được chỉ bát đầu của một đơn vị truy cập mới  Khi một NAL có nal_unit_type là 7,8 được trình bày bên trong một đơn vị truy cập,nó có the hoăc không được tham chiêu tới bên trong ảnh được mã hóa của một đơn vị truy cập Cấu trúc của đơn vị truy cập không chứa bất kì đơn vị NAL có nal_unit_type là 0, 7, 8 hoặc 12 Dò tìm đơn vị NAL đầu tiên của 1 ảnh chính được mã hoá (primary codec picture) Bất kì đơn vị NAL ckủa slice được mã hóa hoặc phân vùng dữ liệu của slice được mã hóa của ảnh được mã hóa chính trong đơn vị truy cập hiện tại sẽ phân biệt với bất kì đơn vị NAL ckủa slice được mã hóa hoặc phân vùng dữ liệu của slice được mã hóa của ảnh đươc mã hóa trước đó theo những cách sau: frame_num :khác biệt giá trị .Giá trị của frame_num được dùng đề kiểm tra  điều kiện này được xuất hiện trong cú pháp của tiêu đề của slice bất kể giá trị được ngụ ý là 0 cho việc dùng các chuỗi con trong quá trình giải mã vi việc xuất hiện của hoạt động điều khiển quản lí bộ nhớ bằng 5 pic_parameter_set_id khác giá trị field_pic_flag khác giá trị bottom_field_flag khác giá trị nal_ref_idc khác giá trị với nal_ref_idc có giạ trị là 0. pic_order_cnt_type là  0 và pic_order_cnt_lsb khác giá trị hoặc delta_pic_order_cnt_bottom khác giá trị . pic_order_cnt_type   là 1    cho cả 2 ảnh delta_pic_order_cnt[ 0 ]  khác giá trị or delta_pic_order_cnt[ 1 ] .khác giá trị nal_unit_type khác giá trị với đơn vị nal có nal_unit_type  là 5. Điều khiển tốc độ (Rate control) Giới thiệu về điều khiển tốc độ trong H.264 Một bộ mã hoá thực thi việc điều khiển tốc độ như là một công cụ để thay đổi đặc tính tốc độ bit của luồng bit đã được mã hoá nhằm mục đích tạo ra các khung hình mã hoá chất lượng cao ở tốc độ bit mong muốn.Chuẩn mã hoá H.264 được sử dụng chủ yếu cho việc truyền video tại những khu vực mà băng thông hoặc khả năng lưu trữ hạn chế. Một thuật toán điều khiển tốc độ thay đổi các tham số mã hoá, chủ yếu là hệ số lượng tử hoá QP để đạt được tốc độ bit mong muốn. Nó cấp phát một lượng bit cho một nhóm ảnh, một ảnh đơn hoăc một sub-picture (ảnh con) trong một chuỗi video. Điều khiển tốc độ cho phép việc chọn lựa các tham số mã hoá để đạt được chất lượng video tốt nhất trong điều kiện ràng buộc về tốc độ bit và bộ đệm bên giải mã video. Điều khiển tốc độ trong H.264 có thể chia làm 3 mức chính: mức nhóm ảnh. mức ảnh. mức macro-block. Ở tại mỗi mức, thuật toán điều khiển tốc độ sẽ chọn giá trị lượng tử hoá QP- giá trị này quyết định quá trình lượng tử hoá của các hệ số chuyển đổi. Điều khiển tốc độ trong H.264 bao gồm 5 mode khác nhau, 1 mode two-pas (tạm dịch mã hoá 2 lần), 4 mode 1-pass (mã hoá 1 lần). Phân loại ratecontrol Chế độ 2 pass Chế độ1 pass 1 pass ABR Đây là cơ chế điều khiển tốc độ ở chế độ 1 pas tạo ra chất lượng video tương đối ổn định với kích thước file xác định. Vì điều khiển tốc độ được thực hiện mà không biết thong tin của frame tương lai nên ABR cở chế tốc độ bit trung bình không thể tạo ra chính xác kích thước file đích. Các bước thực hiện dưới đây được đánh số tương ứng với các bước trong 2 pass. 1 pass CBR Hình 2. 19: Sơ đồ khối của chế độ CBR CBR (constant  bitrate) là chế đọ 1pass được thiết kế cho truyền thời gian thực.Nó cũng sử dụng cơ chế tính dự đoán độphức tạp cho việc tính toàn cỡbit như ABR. Tỉ lệ thang đo được dùng cho việc đạt kích cơ file được yêu cầu được dựa trên mức trung bình cục bộ(phụ thuộc kích thước bộ đệm VBV) thay cho các khung trong quá khứ. (Overflow compensation) Dự đoán phần dư thừa được chạy sau mỗi hàng của macroblock thay vì trên mỗi khung. 1 pass CRF Hình 2. 20: tốc độ bit đầu ra thay đổi Trong quá trình mã hoá tốc độ bit đầu ra thay đổi VBR (variable bit rate), người dùng cung cấp cho bộ mã hoá 2 tham số đầu vào: nguồn video thô và 1 giá trị QP xác đinh. Tại đầu ra bộ mã hoá chúng ta thu được video đã được mã hoá có chất lượng tương đối ổn định nhưng tốc độ bit thay đổi. Nguyên nhân là do độ phức tạp của ảnh liên tục thay đổi trong thời gian thực. CRF (constant rate factor) là chế độ 1pass được tối ưu khi người dùng không yêu cầu 1 tốc độ bit cụ thể mà thay vào đó làchất lượng. CRF giống với chếđộ ABR(average bitrate) ngoại trừ tỉ lệ đo là 1 hằng số được người dùng định nghĩa và không có bù cho tràn đươc thực hiện. 1 pass CQP Là chế độ 1pass có giá trị QP được tính toán dựa trên khung là I-P hoặc P-B.Trong x264,giá trị QP trong chế độ này không đổi cho cả chuỗi và tùy thuộc vào loại khung (I,P,B) Mô hình điều khiển tốc độ trong H.264 Ratecontrol trong h264 cho phép lựa chọn thông số mã hóa để tối đa chất lượng khi có sự hạn chế về tốc độ bit và dung lượng bộ đêm giải mã.Ratecontrol thực hiện ở mức độ: nhóm ảnh (GOP), ảnh và macroblock. Ở mỗi mức độ, rate control lựa chọn gía trị của QP(quantization parameter),quyết đinh lượng tử hóa cho các hệ số chuyển đổi.Việc tăng giá trị QP sẽ làm tăng bước lượng tử hóa,dẫn đén tốc độ bit đầu ra giảm xuống và ngươc lại Hình 2. 21: Quan hệ giữa giá trị lượng tử hóa và tốc độ bit đầu ra theo lý thuyết Hình 2. 22: Mối quan hệ giữa độ phức tạp nguồn và độ méo Hình 2. 23: mô hình điều khiển tốc độ trong H.264 Do sự hạn chế của băng thông đường truyền và kích thước của bộ giải mã làm cho chúng ta mã hóa video ở gần tốc độ bit không đổi và để làm điều này thì giá trị QP thay đổi dựa trên tính toán độ phức tạp của nguồn (source complexity).Do vậy mỗi bức ảnh sẽ có sự phân phối bit riêng. Mô hình tốc độ méo (Rate-distortion model) Mức độ nhóm ảnh (GOP level) Điều khiển tốc độ cấp độ nhóm ảnh (GOP) tính toán lượng bit tổng cho những ảnh còn lại trong nhóm và giá trị QP khởi đầu cho ảnh IDR (instantaneous decoding refresh) hoặc ảnh mở đầu 1 chuỗi và ảnh lưu trữ đầu tiên Khi ảnh thứ j trong nhóm ảnh thứ i được mã hóa thì lượng bit tổng dành cho những ảnh còn lại trong nhóm ảnh được tính toán như sau : Cho ảnh đầu tiên trong 1 nhóm ảnh,lượng bit tổng cộng được tính toán theo công thức trên.Trong đó f là tốc độ frrame được định nghĩa trước.N là tổng số ảnh của nhóm ảnh thứ i.R(j) và V(j) là tốc độ bit "instant available" và lượng bộ đệm ảo (virtual buffer) khi ảnh thứ j của nhóm ảnh thứ i được mã hóa Với những ảnh khác,tống số bit được tính từ công thức ứng với giá trị j khác 1.b(j-1) là số bit thật sự được tạo ở trong ảnh thứ (j-1).Xem xét trường hợp kênh thay đổi .R(j) có thẻ thay đổi ở các frame và nhóm ảnh khác nhau.Nhưng xét trường hợp R(j) luôn bằng R(j-1).Công thức được đơn giản như  : Mức độ khung (Frame level) Điều khiển tốc độ mức độ khung có 2 giai đoạn: pre-encoding và post-encoding. Pre-encode Mục tiêu của giai đoạn này là tính toán giá trị QP của mỗi bức ảnh.Tùy theo loại ảnh (strored và non-stored) mà áp dụng phương pháp khác nhau: Ảnh không lưu trữ (Non-stored pictures): Giá trị QP của ảnh không lưu trữ được tính bằng phương pháp nội suy đơn giản Giả sử  các ảnh  thứ j và (j+L+1) là ảnh lưu trữ và giá trị QP cho các ảnh này là  và  Giá trị QP của ảnh không lưu trữ được tính toán theo 2 trường hợp sau : Trường hợp 1: khi L=1, có duy nhất 1 ảnh không lưu trữ giữa 2 ảnh lưu trữ .Giá trị QP được tính như sau      Trường hợp 2: khi L>1 có nhiều hơn 1 ảnh không được lưu trữ giữa 2 ảnh được lưu trữ.Giá trị QP được tính bởi Với k =1, …, L, và α được cho bởi Giá trị nằm trong doạn [0,51]. Ảnh lưu trữ (Stored picture) Giá trị QP của ảnh được lưu trữ được tính thông qua 2 bước sau: Bước 1:Xác định số bít mục tiêu cho mỗi ảnh được chứa Xác định cấp độ( level) của bộ đệm mục tiêu cho mỗi ảnh trong nhóm ảnh hiện tại Cấp độ của bộđệm mục tiêu được định nghĩa trước cho mỗi ảnh được lưu trữ tùy thuộc số bit được mã hóa của ảnh IDR đầu tiên và ảnh được lưu trữ đầu tiên và độ phức tạp trung bình của ảnh.Sau khi mã hóa ảnh được lưu trữ bởi nhóm ảnh thứ j, giá trị khởi đầu của cấp độ(level) của bộ đệm mục tiêu được đặt : Cấp độ của bộ đệm mục tiêu cho ảnh được lưu trữ của chuỗi phụ được xác định bới Với  là trọng số phức tạp trung bình của ảnh được tham chiếu , là giá trị trung bình của ảnh không được tham chiếu :  Khi không có ảnh không được lưu trữ giữa 2 ảnh được lưu trữ thì công thức được tính đơn giản như sau  Tính toán lượng bít mong muốn cho ảnh được lưu trữ hiên tại: Lượng bít mong muốn được phân phối cho ảnh được lưu trữ thứ j của nhóm ảnh được xác định dựa trên cấp độ của bộđệm mong muốn,tốc độkhung,băng thông hiệu dụng và sựchiếm dụng của bộ đệm hiện thời Trong đó g là hằng số và giá trịđiển hình  là 0.5 khi không có ảnh không dược lưu trữ và 0.25 cho các trường hợp còn lại is a constant and its typical value is 0.5 when there is no non-stored picture and 0.25 otherwise. Đồng thời ,l ượng bit còn lại cũng nên được xem xét khi lượng bít mong muốn được tính Với và lần lượt là số bít còn lại của ảnh được tham chiếu và ảnh không được tham chiếu Số bít mong muốn được kết hợp có trọng sô của và : Với βlà hằng số có giá trị là 0.5 khii không có ảnh không tham chiếu và bằng 0.9 trong các trường hợp còn lại Để phù hợp với yêu cầu của bộ giải mã HRD ; lượng bít mong muốn được giới hạn bởi : Với    Zi(j) và Ui(j)được tínhbới công thức Trong đó, t(1)là thời gian xóa bỏ của ảnh đầu tiên từ bộ đệm ảnh được mã hóa, là hằng số với giá trị đặc trưng bằng  0.9 Bước 2 :Tính toán giá trị QP và thực hiên RDO(rate-distortion optimization) MAD của ảnh được lưu trữ tạm thời  được dự đoán bởi mô hình tuyến tính sử dụng MAD hiện tại của ảnh lưu trữ trước đó Trong đó a1 và a2 là 2 hệ số.Giá trị khởi đầu của a1 và a2 được đặt lần lượt là 1 và 0.Hai hệ so trên được cập nhật bởi phương pháp hồi quy tuyến tính sau khi mã hóa 1 ảnh hoăc 1 đơn vị cơ bản. Bước lượng tử liên quan tới lượng bít mong muốn được tính theo công thức sau: Trong đó là tổng số bit của tiêu đề và vector chuyển động, và là 2 hệ số. Giá trị QP đúng được tính dựa theo bước lượng tử hóa và tham sô lượng tử của AVC (advance video coding).Để duy trì sự trơn tru chất lượng nhìn thấy giữa các khung hình liên tiếp nhau,giá trị QP được điều chỉnh.        Giá trị Qp cuối cùng dược giới hạn bởi 51 và 0.Tham số lượng tử hóa sau đó được dùng  để thực hiên RDO cho mỗi macroblock của khung hiên tại Post-encode Post-encoding stage Sau khi mã hóa 1 ảnh,tham số a1 và a2 của mô hình dự đoán tuyến tính,và cững như c1 và c2 của mô hình R-D bình phương được cập nhật.Phương pháp hòi quy tuyến tính đươck dung để cập nhật những tham số đấy. Trong khi ấy, luồng bit được tạo ra hiện thời được thêm vào bộ đệm. Để đảm bảo sự chiếm dụng của bộ đệm được cập nhật không quá cao,1 số ảnh có thê được bỏ qua b ằng c ách s ử d ụng ph ư ơng ph át t ư ơng t ự nh ư MPEG-4 Q2 Điều khiển tốc độ ở mức độ cơ bản (Basic unit level rate control) Giả thiết 1 bức ảnh được tạo bởi Nmbpicmacroblock.Môtij đơn vị cơ bản được định nghĩa là 1 nhóm liên tục của macroblock và bao gồm Nmbunit  macroblock với Nmbunit là 1 phần của  Nmbpic.Nếu Nmbunit = Nmbpic ,đây sẽ là điều khiển tốc độ cấp ảnh (picture level).Nếu Nmbunit =1 thì  đây sẽ là điều khiển tốc độ cấp macroblock Tổng số đơn vị cơbản trong 1 khung hình Nunitđược tính toán bởi công thức sau Nếu đơn vị cơ bản không được chọn như là 1 khung hình ,điều khiển tốc đọ cấp đơn vị cơ bản nên được thêm vào Gióng với điều khiển tốc độ cấp đô frame  ,giá trị QP cho ảnh IDR và ảnh không được lưu trữ giống nhau cho tất cả các đơn vị cơ bản trong cùng 1 ảnh và đực tính toán tương tự  cấp khung hình được cung cấp mà và được thay thế bằng giá trị trung bình của QP cho tất cả các đơn vi cơbản trong bức ảnh tương ứng. Điều khiển tốc độ cấp đơn vị cơ bản lựa chọn giá trị QP của tất cảđơn vi cơ bản trong 1 khung hình để tổng số bit được sinh ra gần với đích ngắm đến của khung hình Mô tả theo từng bước của phương pháp Bước 1: Dự doán MAD  của các đơn vịcơ bản còn lại trong ảnh được lưu trữ hiện tại bằng mô hình có sửdụng MAD hiejn tại của ảnh được lưu trữtrước đây Bước 2: Tính toán sốbít dư thừa (texture bit hoăc residual bít) cho đơn vịcơ bản thứ j. Bước này bao gồm 3 bước phụ: Bước 2.1: Tính toán lượng bít mong muốn cho đơn vị cơ bản thứ j Để chỉ số bit còn lại cho khung hình hiện tại và gái trị khởi đầu được đặt là  Số bit mong muốn cho đơn vịcơ bản thứl được tình như sau: Bước2.2:Tính toán lựơng bit tiêu đề trung bình được tạo ra bởi tất cảđơn vịcơ bản được mã hóa Trong đó là sốbít tiêu đềđược tạo ra hiên thời bởi đơn vịcơ bản thứ l trong ảnh được lưu trữ .được tính toán từ tất cảcác đơn vịcơ bản củ

Các file đính kèm theo tài liệu này:

  • docFinal Thesis-Le Huy Binh.doc