Browse Prior Art Database

An Efficient Approach for Implementation of Deblocking on Vector Processors in the H.264 Decoder

IP.com Disclosure Number: IPCOM000126397D
Original Publication Date: 2005-Jul-14
Included in the Prior Art Database: 2005-Jul-14
Document File: 9 page(s) / 292K

Publishing Venue

Motorola

Related People

Mike Schuette: AUTHOR [+4]

Abstract

H.264 is an internationally accepted standard for the compression and decompression of digital motion video data [1]. As of 2005, it is the latest in a series of such standards, previous standards being MPEG-4, MPEG-2, etc. It achieves a higher compression rate than previous standards with little or no loss in perceived image quality. Deblocking in the H.264 decoder is computationally intensive and takes 30%-40% of the H.264 execution time. A novel approach is developed to speed up deblocking in the H.264 decoder. This method is useful for vector, DSP or SIMD processors. When implemented on a vector processor, it has given 50% reduction in cycles.

This text was extracted from a Microsoft Word document.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 29% of the total text.

An Efficient Approach for Implementation of  Deblocking on Vector Processors in the H.264 Decoder

Mike Schuette, Amarapur C. Ashwin, Subramaniyan Raghavan, and Kent Moat

Abstract

H.264 is an internationally accepted standard for the compression and decompression of digital motion video data [1]. As of 2005, it is the latest in a series of such standards, previous standards being MPEG-4, MPEG-2, etc. It achieves a higher compression rate than previous standards with little or no loss in perceived image quality. Deblocking in the H.264 decoder is computationally intensive and takes 30%-40% of the H.264 execution time. A novel approach is developed to speed up deblocking in the H.264 decoder. This method is useful for vector, DSP or SIMD processors. When implemented on a vector processor, it has given 50% reduction in cycles.

Introduction

Deblocking is done after motion compensation on a block by block basis in the H.264 decoder [2]. For deblocking of the luma component, each video frame is divided into macroblocks (MB's), 16x16 pixels in size. Each MB is composed of 16 4x4 blocks. Vertical deblocking is done for each of the 16  vertical boundaries that exist between the blocks and along the left edge of the MB. Likewise, horizontal deblocking is done for the horizontal edges between blocks and  along the top edge of the MB. Those boundaries at the top and on the left of the MB henceforth are called MB boundaries. All others are called block boundaries, see Figure 1.

The H.264 specification stipulates that correct results are obtained when deblocking is applied to the MB’s in a left to right, top to bottom order. Moreover, within an MB, correct results are obtained by performing vertical deblocking followed by horizontal deblocking. Vertical deblocking is to be done top to bottom, left to right and horizontal deblocking is done left to right, top to bottom. Any given implementation of deblocking can employ a different ordering as long as the final results are the same as when deblocking is applied in the stipulated order.

The type of deblocking that is done along each boundary depends upon a unique parameter associated with each boundary, called the boundary strength (BS).

Deblocking in the H.264 decoder involve 2 parts: horizontal and vertical BS calculation and horizontal and vertical deblocking for every 4x4 block in a 16x16 MB.The BS calculation and deblocking for baseline profile H.264 decoder is briefly described here.

If the MB is of type intra,

      BS = 4 for MB boundaries and BS =3 block boundaries inside MB.

If the MB is inter,

      BS = 4 if the adjacent MB is intra for MB boundaries, else

      BS = 2 if any pixels within 4 pixels of the boundary are non-zero, else

      BS = 1 if the adjacent blocks use different reference pictures or the difference in            the horizontal or vertical motion vector (MV)  for the block is greater than 4, in   quarter pixel units, else

      BS = 0, ot...