LỜi cảM Ơn trên con đường thành công không bao giờ vắng bóng của những người thầy đầy nhiệt huyết, sự giúp đỡ của bạn bè và đặc biệt đó là niềm tin của gia đình


CHƯƠNG III: KỸ THUẬT NÉN HÌNH ẢNH 3D THEO TIÊU CHUẨN H246/AVC



tải về 3.2 Mb.
trang14/15
Chuyển đổi dữ liệu31.12.2017
Kích3.2 Mb.
#35138
1   ...   7   8   9   10   11   12   13   14   15

CHƯƠNG III: KỸ THUẬT NÉN HÌNH ẢNH 3D THEO TIÊU CHUẨN H246/AVC


Nén video từ lâu đã được khai thác trong các video 2D. Hiện nay sử dụng phổ biến nhất là bộ mã hóa/giải mã là H.264/MPEG-4 AVC. Nó có hiệu quả trong khai thác sự dư thừa dữ liệu giữa các khung liên tiếp để giảm dung lượng dữ liệu lưu trữ hoặc truyền tải trong khi duy trì chất lượng dịch vụ. Chương này nghiên cứu về nén video 3D và được nâng cấp từ 2D. Tín hiệu video lập thể được nén sử dụng các tính năng 3D của chuẩn H.246/AVC. Chuẩn H.264/AVC là một định dạng video đang được sử dụng rộng rãi nhất hiện nay để ghi, nén và chia sẻ video phân giải cao.

    1. Giới thiệu chung

Một trong những bộ mã được sử dụng rộng rãi nhất, cho phép sử dụng trong các hệ thống truyền hình số trên toàn Thế Giới là tiêu chuẩn mã hóa video MPEG-2 còn được gọi là ITU-T H.246. Nó đã được chuẩn hóa trong năm 1993. Ngoài việc được sử dụng cho truyền hình mặt đất, nó cũng được sử dụng để nén cả độ nét tiêu chuẩn (SD) và độ nét cao (HD) để lưu trữ các video trên DVD và truyền qua vệ tinh và cáp. H.262 đã cải tiến thông qua một loạt các chuẩn H.263 và sau đó là H.264/MPEG-4 nâng cấp mã hóa video (AVC). Với mỗi lần cải tiến, mã hóa đã được cải thiện hiệu quả hơn, tăng hiệu quả kênh truyền, truyền dẫn video chất lượng cao hơn. Với sự ra đời của tiêu chuẩn H.264 / MPEG-4 AVC (Advanced Video Coding ) đã cải thiện đáng kể khả năng nén video. Tiêu chuẩn này được phát triển bởi nhóm phối hợp video của ITU-T nhóm chuyên gia mã hóa video (VCEG-Video Coding Experts Group) và nhóm chuyên gia ảnh động ISO / IEC (MPEG- Moving Picture Experts Group ) cũng đã được chuẩn hóa mở rộng trong công nghệ được gọi là mã hóa video đa điểm (MVC- multiview video coding).

H264/AVC đã cải thiện đáng kể trong hiệu quả giảm tỷ lệ bit và méo ở tốc độ bít đó, nó tiết kiệm tốc độ bít gần hai lần so với các tiêu chuẩn trước đây như MPEG 2 video.



    1. Bản chất nén video H264/AVC

H264/AVC được phát triển dựa trên các ưu điểm của các chuẩn trước đây để giảm bớt độ dư thừa dư liệu (đặc biệt là chuẩn H263/ AVC và MPEG-4 ) để cho hiệu quả nén cao nhất.

H264 phân chia mỗi hình ảnh thành các slice, mỗi slice gồm nhiều các khối khác nhau. Với mỗi độ phân giải của ảnh khác nhau sẽ lấy mẫu các thành phần tín hiệu chói khác nhau, còn thành phần tín hiệu màu sẽ được lấy mẫu theo chiều ngang và chiều dọc với tần số thấp hơn. H264 khai thác dư thừa cả về mặt không gian và thời gian. Trong không gian các hình ảnh trong cùng một khung có sự thay đổi về các chi tiết ảnh, dựa trên sự thay đổi này để dự đoán về hình ảnh tiếp theo và thực hiện bù chuyển động. Giảm bớt dư thừa dữ liệu về mặt thời gian đó là các ảnh giống nhau được lặp lại nhiều lần giữa các khung liên tiếp, dựa trên sự lặp này ta chỉ cần mã hóa chúng để giảm dung lượng bit cần truyền cho chất lượng nén đạt hiệu quả cao hơn.



    1. Kỹ thuật nén video H264/ AVC
      1. Sự phân hình ảnh trong macroblocks và slices


Mỗi bức ảnh của một chuỗi video được chia thành nhiều khối macroblocks với kích thước cố định mà mỗi vùng ảnh hình chữ nhật bao gồm 16 × 16 mẫu của thành phần luma, trong trường hợp lấy mẫu thành phần chroma của video theo tiêu chuẩn 4: 2:0, có 8 × 8 mẫu của hai thành phần chroma. Tất cả các mẫu luma và chroma của một macroblock được dự báo trong không gian hoặc thời gian, và các kết quả dự báo được biểu diễn bằng bộ chuyển đổi mã hóa. Mỗi thành phần màu của dự đoán này được chia thành các khối. Mỗi khối được biến đổi bằng một số nguyên lần, và những biến đổi các hệ số được gọi là lượng tử hóa và mã hóa entropy.

Các macroblocks được chia thành các slice, nó sẽ đại diện cho các vùng trong một bức ảnh và được giải mã độc lập với nhau. H.264 / MPEG4-AVC hỗ trợ năm loại slice-mã hóa (I, P, B, SP, SI). Đơn giản nhất là slice I. Trong slice I tất cả macroblocks được mã hóa mà không có sự tham gia của các hình ảnh khác trong chuỗi video. Trước khi hình ảnh được mã hóa nó có thể được sử dụng để tạo thành một tín hiệu dự báo cho macroblocks để mã hóa dự báo slice P và slice B (trong đó P là viết tắt của predictive và B là viết tắt của bi-predictive). Hai loại slice còn lại là slices SP (switching P) và slices SI (switching I) , nó được quy định cho chuyển đổi hiệu quả từ mã hóa bitstreams ở tốc độ bit khác nhau.





Hình 3.1: Cấu trúc dòng video H264/AVC

Một bức ảnh bao gồm tập hợp các slices biểu diễn toàn bộ frame hoặc field. Phân chia hình ảnh quét sen kẽ để tạo ra hình ảnh riêng biệt cho từng vùng đạt hiệu quả cao, với mục đích truy cập ngẫu nhiên nếu field đầu tiên được mã hóa bằng cách sử dụng slices I và field thứ hai được dự đoán bù chuyển động. Trong một số hiển thị phần khung được mã hóa hiệu quả hơn trong chế độ field, trong trường hợp khác mã hóa hiệu quả hơn trong chế độ frame. Do đó, H.264 / MPEG4-AVC cũng hỗ trợ chuyển đổi thích nghi macroblock giữa mã hóa frame và field. Hai khối macroblocks liền kề nhau theo chiều dọc trong một khung mã hoá, được chia thành hai frame hoặc phân chia thành hai field. Quá trình dự báo và mã hóa dự báo tiến hành bằng cách sử dụng phân đoạn được chọn.



      1. Mã hóa


NAL







inter

intra

+

+

Hình 3.2: Mã hóa H264/MPEG-4 AVC

Trong đó:

Fn là ảnh hiện tại

F(n -1): Ảnh trước đó

F’n: Ảnh cấu trúc lại

Fitter: lọc tách khối

ME: dự đoán chuyển động

MC: bù chuyển động

Choose intra prediction: chọn kiểu dự đoán intra

Inter prediction: dự đoán intra

T, : Biến đổi DCT thuận và ngược

Q, : Lượng tử vô hướng và giải lượng tử

Recoder: sắp xếp trật tự

Entropy encoder: mã hóa entropy



Nguyên lý: Ảnh hiện tại được chia thành các khối macroblock có kích thước 4 x 4, 8 x 8, 16 x 16. Ảnh đầu tiên được mã hóa intra, các ảnh còn lại được mã hóa inter bằng cách dử dụng dự đoán bù chuyển động từ các ảnh đã mã hóa trước đó. Bộ dự đoán chuyển động có nhiệm so sánh các macroblock trong ảnh hiện tại với các khối trong ảnh trước đó, để tìm ra các chi tiết ảnh gần giống nhau giữa hai khối, đồng thời bộ dự đoán chuyển động truyền cả MB ảnh tham khảo với MB ảnh hiện tại cần mã hóa đến bộ trừ để tìm ra độ sai lệch của hai khối ảnh. Độ sai lệch này sẽ được đưa vào bộ biến đổi DCT thuận để tạo ra một loạt các hệ số DCT, các hệ số này được đưa vào bộ lượng tử hóa vô hướng nhằm giảm dung lượng cần truyền. Tại đây các hệ số lương tử được chia làm hai hướng khác nhau. Một hướng các hệ số được sắp xếp theo trật tự để thực hiện mã hóa entropy, khi đó dung lượng bít sẽ giảm hơn nữa, một hướng khác các hệ số lượng tử được đưa vào bộ giải lượng tử và bộ biến đổi DCT ngược tạo ra khối sai số, tại đây nó sẽ kết hợp với tín hiệu dự đoán để thực hiện lọc tách khối nhằm làm giảm hiệu ứng khối tái tạo lại ảnh ban đầu. Dữ liệu ở đầu ra của bộ mã hóa entropy sẽ kết hợp với vector chuyển động và thông tin ảnh để truyền ra ngoài các kênh thông qua dòng bít nén của các đơn vị NAL.

      1. Định dạng mã hóa dữ liệu

Chuẩn H.264/AVC được chia thành hai lớp phụ : lớp mã hóa video (Video Coding Layer – VCL) và lớp trừu tượng mạng (Network Abstraction Layer – NAL). Đầu ra của quá trình mã hóa là dữ liệu lớp VCL (Chuỗi bit biểu diễn dữ liệu video đã được mã hóa) sẽ được ánh xạ vào các đơn vị của lớp mạng trừu tượng NAL trước khi truyền dẫn hay lưu trữ. Tín hiệu đầu ra của lớp này là chuỗi các slice ảnh. Dòng bit ở lớp NAL được tổ chức thành các gói rời rạc được gọi là các khối NAL. Mục đích của việc phân chia các lớp VCL và NAL là để phân biệt đặc tính mã hóa tại lớp VCL và đặc tính truyền dẫn tại lớp NAL.
        1. Lớp mã hóa Video (VCL-Video coding layer)


VCL của H.264 / MPEG-4 AVC là phương mã hóa dựa trên khối ghép video. H.264 / MPEG-4 AVC bao gồm các tính năng mới cho phép cải thiện đáng kể về hiệu suất nén so với tiêu chuẩn mã hóa video trước. AVC sử dụng một phương pháp tiếp cận video mã hóa dựa trên cơ sở khối slice, tăng sự linh hoạt và khả năng thích ứng so với thế hệ trước nó. Một ảnh video được mã hóa gồm một hay nhiều slices. Mỗi slice bao gồm số nguyên các khối macroblock. Số lượng khối macroblock trong một bức ảnh có thể không cố định.

  • Slices I : Trong đó mỗi macroblock sử dụng mã hóa trong bức ảnh bằng cách sử dụng tiên đoán không gian từ các vùng lân cận.

  • Slices P: Có hỗ trợ cả mã hóa trong ảnh và liên ảnh, dự đoán mã hóa bằng cách sử dụng một tín hiệu dự đoán cho từng vùng dự đoán.

  • Slices B: Có hỗ trợ mã hóa trong ảnh, mã hóa dự đoán liên ảnh, và mã hóa hai chiều bằng cách sử dụng hai tín hiệu dự đoán được kết hợp với trọng số trung bình để hình thành các vùng dự đoán.

H.264 hỗ trợ mã hóa và giải mã video theo chuẩn 4:2:0 quét liên tục hoặc xen kẽ. Khung quét xen kẽ bao gồm 2 trường (trên và dưới) tách biệt theo thời gian với định dạng mặc định. Khối macroblock được đánh số theo thứ tự quét trong khung.
        1. Lớp mạng trừu tượng mạng (Networl Abstraction Layer – NAL)


Các khối trong hình 3.3 mô tả một khối NAL với phần payload nội dung video. Nó có thể chứa các loại payload khác như thông tin điều khiển. Những khối như thế được xếp vào loại không phải khối VCL (non-VCL unit). Các khối NAL được kết hợp với nhau thành chuỗi, định dạng nên khối truy cập.



Hình 3.3: Mô tả một khối NAL với phần payload nội dung video

Mã hóa H.264 / MPEG-4 AVC luồng dữ liệu video được tổ chức thành các đơn vị NAL, đó là các gói dữ liệu chứa đựng một số nguyên byte. Một đơn vị NAL bắt đầu với một chỉ số một byte của kiểu dữ liệu trong đơn vị NAL. Các byte còn lại đại diện cho dữ liệu payload. Đơn vị NAL được xếp vào lớp video mã hóa (VCL), trong đó có chứa mã hóa dữ liệu cho các vùng nội dung hình ảnh (mã hóa slice hay phân vùng dữ liệu slice) và non-VCL đơn vị NAL, trong đó có chứa liên kết thông tin bổ sung. Hai loại chính của non-VCL đơn vị NAL là tập hợp các thông số và các gói thông tin tăng cường bổ sung (SEI) .Trình tự và hình ảnh bộ tham số ít khi thay đổi các thông tin cho một chuỗi video được mã hóa. Gói tin SEI không ảnh hưởng đến bản chất của quá trình giải mã với các mẫu của một chuỗi video được mã hóa. Tuy nhiên, nó cung cấp thêm thông tin để hỗ trợ quá trình giải mã hay ảnh hưởng đến quá trình tiếp theo như thao tác bitstream hoặc hiển thị. Tập hợp các đơn vị NAL liên tiếp kết hợp với một hình ảnh mã hóa duy nhất được gọi là một đơn vị truy cập. Một tập hợp các đơn vị dữ liệu liên tiếp với đặc tính nhất định được gọi là một chuỗi video được mã hóa. Một chuỗi video được mã hóa (cùng với sự kết hợp bộ tham số) đại diện cho một bộ phận giải mã độc lập của một bitstream video. Một chuỗi video được mã hóa luôn luôn bắt đầu với một đơn vị truy cập (IDR- instantaneous decoding refresh), các tín hiệu có đơn vị truy cập IDR và tất cả các đơn vị truy cập trong bitstream có thể được giải mã mà không cần giải mã bất kỳ những hình ảnh trước đó.



    1. Kỹ thuật nén liên ảnh

      1. Nguyên lý bù chuyển động







uF’n

Hình 3.4 : Nguyên lý bù chuyển động

Hình ảnh cần mã hóa (Fn) và ảnh dự đoán đã được mã hóa F’(n-1) sẽ được đưa vào bộ dự đoán chuyển động ME, thực hiện so sánh hai khối ảnh này sẽ tạo ra vector chuyển động để đưa vào khối bù chuyển động MC. Tại đây vector chuyển động sẽ kết hợp với ảnh dự đoán tạo ra độ sai lệch của ảnh. Sự khác biệt này cùng với hình ảnh hiện tại sẽ được đưa vào bộ trừ để tạo ra thông tin khác biệt giữa hai ảnh Dn. Dn được thực hiện nén trong ảnh.


      1. Bù chuyển động trong slice P


Ngoài kiểu mã hóa intra macroblock,còn có kiểu mã hóa dự đoán hoặc bù chuyển động , được thực hiện trong slice P. Mỗi macroblock được phân chia thành các khối có kích thước cố định được sử dụng để mô tả chuyển động. Phân vùng với khối luma có kích thước 16 × 16, 16 × 8, 8 × 16, và 8 × 8 mẫu. Khi các khối mẫu được phân chia thành bốn thì được gọi là sub-macroblock, có kích thước 8 × 8 mẫu luma, một cú pháp bổ sung được truyền cho mỗi 8 × 8 sub-macroblock. Yếu tố cú pháp này sẽ xác định sub-macroblock tương ứng, nó sẽ được mã hóa bằng dự đoán bù chuyển động với khối luma có kích thước mẫu 8 × 8, 8 × 4, 4 × 8, hoặc 4 × 4. Hình 3.8 dưới đây sẽ minh họa các phân vùng.



Hình 3.5: Phân vùng của một macroblock (trên) và sub-macroblock (dưới) để dự đoán bù chuyển động.

Các tín hiệu dự báo của bộ mã hóa dự báo khối M × N tín hệu luma thu được bằng cách tìm một khối trong ảnh tham khảo đã được giải mã để giá trị dự đoán là nhỏ nhất , tại đó sự chuyển động được quy định bởi một vector chuyển động tịnh tiến và một chỉ số tham chiếu hình ảnh. Vì vậy macroblock được mã hóa bằng cách sử dụng bốn sub-macroblocks 8 × 8, và mỗi sub-macroblock được mã hóa bằng cách sử dụng bốn khối 4 × 4 tín hiệu luma và tối đa là 16 vector chuyển động có thể được truyền cho một macroblock P – slice duy nhất.





Hình 3.6 : Bù chuyển động đa khung, ngoài các vector chuyển động thông số tham khảo hình ảnh (D) cũng được truyền đi.

H.264 / MPEG4-AVC hỗ trợ dự đoán bù chuyển động đa hình ảnh. Nó sử dụng hiều hình ảnh để làm ảnh tham khảo cho dự đoán bù chuyển động. Ngoài các chế độ macroblock được mô tả ở trên, một macroblock slice-P được mã hóa trong mode được gọi là SKIP. Đối với mode này, không chỉ một tín hiệu lỗi dự báo được lượng tử hay một vector chuyển động mà còn có cả chỉ số tham chiếu cũng không được truyền.


      1. Bù chuyển động trong slices B


Trong H.264 / MPEG4-AVC slice B được định nghĩa khác không giống như trong MPEG2 video, hình ảnh B được sử dụng như là hình ảnh tham khảo cho dự đoán bù chuyển động. Như vậy, sự khác biệt duy nhất giữa slice B và slice P trong H.264/MPEG4-AVC là slice B được mã hóa hai chiều bằng cách sử dụng hai tín hiệu dự đoán được kết hợp với trọng số trung bình để hình thành các vùng dự đoán. Tùy thuộc vào list hình ảnh tham khảo được sử dụng để hình thành các tín hiệu dự đoán, có bốn loại khác nhau của các dự đoán liên ảnh được phân biệt trong slice B: list 0, list 1, dự đoán hai chiều và dự đoán trực tiếp.



Hình 3.7 :Bù chuyển động trong slice B

Với một phân vùng tương tự như quy định đối với slice P, ba loại dự đoán liên ảnh khác nhau trong slices B có thể được lựa chọn riêng cho từng phân vùng macroblock hoặc phân vùng sub-macroblock. Ngoài ra, macroblocks slice-B hoặc sub-macroblocks được mã hóa còn được gọi là phương thức trực tiếp mà không cần phải truyền tải bất kỳ thông tin chuyển động bổ sung. Nếu không có dữ liệu dự đoán dư thừa được truyền cho một macroblock mã hóa trực tiếp, nó còn được gọi là SKIP và macroblocks skip sử dụng trong slice P đạt hiệu quả rất cao.



    1. Nén trong ảnh


      1. tải về 3.2 Mb.

        Chia sẻ với bạn bè của bạn:
1   ...   7   8   9   10   11   12   13   14   15




Cơ sở dữ liệu được bảo vệ bởi bản quyền ©hocday.com 2024
được sử dụng cho việc quản lý

    Quê hương