Chế độ dự đoán nội khung cho block 4x4 luma

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng mã hóa chống lỗi trong truyền video thời gian thực luận văn ths công nghệ thông tin 60 48 15 (Trang 25 - 30)

II. Nén nội khung trong chuẩn H.264

1. Chế độ dự đoán nội khung cho block 4x4 luma

Giả sử các mẫu của block dự đoán P1 là a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p. P1 là một block 4x4 luma. Và M, A, B, C, D, E, F, G, H, I, J, K, L là những mẫu của những block đã giải mã nằm kề cận nhƣ mô tả trong hình 2.9. Để thuận tiện cho

việc trình bày, ta đặt các mẫu a, b, c, d,…m, n, o, p vào một mảng 2 chiều Q, với chỉ số cột là x= 0, 1, 2, 3 và chỉ số dòng là y= 0, 1, 2, 3. Nhƣ vậy, a = Q[0,0], b= Q[1,0], c= Q[2, 0], d= Q[3,0], e= Q[0, 1], f=Q[1,1], g=Q[2,1]…m=Q[0,3], n=Q[1,3], o=Q[2,3], p=Q[3,3]. Các mẫu M, A, B, C, D, E, F, G, H lần lƣợt đặt trên Q với chỉ số dòng là -1, chỉ số cột là -1, 0, 1, 2, 3, 4, 5, 6, 7. Tức là M=Q[-1,-1], A=Q[0,-1], B=Q[1,-1], C=Q[2,-1], …H=Q[7,-1]. Các mẫu I, J, K, L đƣợc đặt trên Q với chỉ số cột là -1, chỉ số dòng lần lƣợt là 0, 1, 2, 3. Tức là I=Q[-1,0], J=Q[-1,1], K=Q[-1,2], L=Q[-1,3]. Hình 2.10 mô tả cách sắp đặt nhƣ trên.

Hình 2.9: các mẫu của khối dự đoán [4]

Hình 2.10: Mảng 2 chiều Q.

Có 9 chế độ xác định giá trị của các mẫu a, b, c….n, o, p bằng cách ngoại suy từ các mẫu A, B, C, D, E, F, G, H, I, J, K, L, M. Trong việc mô tả các mode, phép toán ‘/’ là phép chia lấy phần nguyên, phép toán ‘.’ là phép nhân, phép toán ‘>>’ là phép dịch phải bit. Các mode đƣợc mô tả một cách trực quan trong hình 2.11 và tiếp theo là sự mô tả cụ thể.

Hình 2.11: các chế độ dự đoán nội khung cho 4x4 block luma [4]

Mode 0: Vertical mode. Các mẫu a, b, c…n, o, p đƣợc ngoại suy từ các mẫu A,

B, C, D theo chiều thẳng đứng từ trên xuống. Tức là a = e = i = m = A;

b = f = j = n = B; c = g = k = o = C; d = h= l = p = D.

Mode 0 chỉ đƣợc thực hiện khi các mẫu A, B, C, D là khả dụng, tức là đã đƣợc giải mã.

Mode 1: Horizontal mode.Các mẫu a, b, c…n, o, p đƣợc ngoại suy từ các mẫu

I, J, K, L theo chiều ngang từ trái qua phải. Cụ thể là: a = b = c= d = I;

e = f = g = h = J; i = j = k = l = K; m = n = o = p = L.

Mode 1 chỉ đƣợc thực hiện khi các mẫu I, J, K, L là khả dụng.

Mode 2: DC mode. Các mẫu a, b, c…n, o, p đƣợc dự đoán bằng giá trị trung

bình của các mẫu A, B, C, D, I, J, K, L. Cụ thể là:

Nếu tất cả các mẫu A, B, C, D, I, J, K, L đều khả dụng thì tất các các mẫu a, b, c, d…m, n, o, p bằng nhau và bằng trung bình cộng của A, B, C, D, I, J, K, L.

a, b, c, d,…m, n, o, p = (A+B+C+D+I+J+K+L) / 8.

Nếu tất cả các mẫu I, J, K, L khả dụng, và có bất kì mẫu nào trong các mẫu A, B, C, D không khả dụng thì các mẫu a, b, c,…m, n, o, p bằng nhau và bằng trung bình cộng của các mẫu I, J, K, L.

a, b, c, …m, n, o, p = (I+J+K+L)/4.

Nếu tất cả các mẫu A, B, C, D đều khả dụng, và có bất kì mẫu nào trong các mẫu I, J, K, L không khả dụng thì các mẫu a, b, c, d…m, n, o, p bằng nhau và bằng trung bình cộng của A, B, C, D.

a, b, c, d,…m, n, o, p = (A+B+C+D) / 4.

Nếu trong số các mẫu A, B, C, D có vài mẫu không khả dụng, đồng thời trong số các mẫu I, J, K, L có vài mẫu không khả dụng thì:

a, b, c…m, n, o, p= 128.

Mode 3: Diagonal down-left. Các mẫu a, b, c…m, n, o, p đƣợc ngoại suy từ

các mẫu A, B, C, D, E, F, G, H. Để tiện mô tả, ta sử dụng mảng hai chiều Q để biểu diễn các mẫu nhƣ hình 2.10. Mỗi ô Q(x, y),x là chỉ số cột, x = 0, 1, 2, 3, y là chỉ số dòng, y = 0, 1, 2, 3, đƣợc xác định nhƣ sau:

Nếu x = 3 và y = 3 thì Q[x,y] = (Q[6,-1] + 3.Q[7,-1] + 2) / 4;

Ngƣợc lại thì Q[x,y] = (Q[x+y,-1] + 2.Q[x+y+1,-1] + Q[x+y+2, -1] + 2) / 4;

Mode 4: Diagonal down-right. Các mẫu a, b, c,…m, n, o, p đƣợc ngoại suy từ

các mẫu A, B, C, D, I, J, K, L, M. Sử dụng mảng 2 chiều Q để mô tả nhƣ đã trình bày ở mode 3, Mỗi ô Q(x,y) đƣợc xác định nhƣ sau:

Nếu x > y thì: Q[x, y] = (Q[x-y-2, -1] + 2.Q[x-y-1, -1] + Q[x-y, -1] + 2) / 4; Nếu x < y thì: Q[x,y] = (Q[-1, y-x-2] + 2.Q[-1, y-x-1] + Q[-1,y-x] + 2) / 4; Nếu x = y thì: Q[x,y] = (Q[0,-1] + 2.Q[-1,-1] + Q[-1,0] + 2) / 4;

Mode 5: Vertical-right. Các mẫu a, b, c…m, n, o, p đƣợc ngoại suy từ các mẫu A, B, C, D, I, J, K, L, M. Nếu đặt zVR= 2.x – y, thì các ô Q(x,y) đƣợc xác định theo zVR nhƣ sau:

Nếu zVR = 0, 2, 4, 6 thì:

Q[x,y] = (Q[x-(y >> 1) – 1,-1] + Q[x-(y >>1),-1] +1) / 2; Nếu zVR = 1, 3, 5 thì

Q[x,y] =(Q[x-(y >>1)- 2,-1] + 2.Q[x-(y >>1)-1, -1] + Q[x-(y >> 1), -1] +2) /4; Nếu zVR = -1 thì

Q[x,y]= (Q[-1,0] + 2.Q[-1,-1] + Q[0,-1] + 2) / 4; Nếu zVR = -2, -3 thì

Q[x,y]= (Q[-1,y-1] + 2.Q[-1,y-2] + Q[-1,y-3] + 2) / 4;

Mode 6: Horizontal-down. Các mẫu a, b, c,…n, o, p đƣợc ngoại suy từ các mẫu A, B, C, D, I, J, K, L, M. Nếu đặt zVR = 2.y – x thì các ô Q[x,y] đƣợc xác định theo zHD nhƣ sau:

Nếu zHD=0, 2, 4, 6 thì:

Q[x,y]= (Q[-1, y- (x >>1) -1] + Q[-1, y-(x >>1] + 1) / 2; Nếu zHD= 1, 3, 5 thì

Q[x,y]= (Q[-1,y-(x>>1)-2] + 2.Q[-1,y-(x>>1)-1]+ Q[-1,y-(x>>1)] +2) / 4; Nếu zHD= -1 thì

Q[x,y]= (Q[-1,0] + 2.Q[-1,-1] + Q[0,-1] +2) / 4; Nếu zHD= -2, -3 thì

Q[x,y]= (Q[x-1,-1] + 2.Q[x-2,-1] +Q[x-3,-1]+2) / 4;

Mode 7: Vertical-left. Các mẫu a, b, c, d…n, o, p đƣợc ngoại suy từ các mẫu

Q[x,y] = (Q[x+(y >>1),-1] + Q[x+( y>>1)+1,-1] +1) /2 Nếu y= 1 hoặc 3 thì

Q[x,y]= (Q[x+(y >>1),-1]+2.Q[x+(y >>1)+1,-1]+Q[x+(y >>1)+2,-1]+2) / 4

Mode 8: Horizontal-up. Các mẫu a, b, c,…n, o, p đƣợc ngoại suy từ các mẫu I,

J, K, L. Nếu đặt zHU= x+2.y thì các ô Q[x,y] đƣợc xác định theo zHU nhƣ sau: Nếu zHU = 0, 2 hoặc 4 thì

Q[x,y]= (Q[-1, y + (x >>1)] + Q[-1, y + (x >>1) + 1] + 1) /2; Nếu zHU = 1 hoặc 3 thì

Q[x,y] = (Q[-1,y+(x >>1)]+2.Q[-1, y+(x>>1)+1]+Q[-1,y+(x>>1)+2]+2) / 4 Nếu zHU = 5 thì

Q[x,y]= (Q[-1, 2]+3.Q[-1, 3] +2) / 4 Nếu zHU> 5 thì

Q[x,y] = Q[-1, 3]

Một phần của tài liệu (LUẬN văn THẠC sĩ) ứng dụng mã hóa chống lỗi trong truyền video thời gian thực luận văn ths công nghệ thông tin 60 48 15 (Trang 25 - 30)

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

(79 trang)