In this paper, an H.263 video codec is implemented by adopting the eoncept of hardware and software co-design. Each module of the codec is investigated to find which approach between hardware and software is better to achieve real-time processing speed and flexibility. The hardware portion includes motion-related engines, such as motion estimation and compensation, and memory control. The other portion of the H.263 video codec and other parts of the H.324 system like G.723, H.223, and lH.245 are implemented in software using a RISC processor. This paper also introduces efficient design methods for hardware and software modules. In hardware, an architecture for a hierarchical mtotion estimator using correlation of neighboring motion vectors is suggested to reduce the chip size. Software optimization techniques are also explored using the statistics of transformed coefficients and the minimum sum of absolute difference (SAD) obtained from the motion estimator.
I[NTRODUCTIONThe coding of digital video sequences has drawn increasing attention over the last few years. Recently, H.263 his been adopted as the ITU standard [I], and is intended for videoconference, vidcophone, surveillance camera, and other low bit rate applications.Since video processing algorithms are highly computationally intensive, they Rave been implemented by an embedded hardware rather than software [2], As the processing power of general-purpose processor increases, real-time video processing applications tend to be implemented based on software design nlowadays. However, this could not be the complete solution to fulfill the real-time requirement. Consequently paralliel processing and multimedia instruction set extensions are generally adopted [:1,4].However, there exists a trade-oFf between the hardware and software in terms of iimplementatiorn. Hardware implementation is generally better than software iinplementation in processing speed and power consumption. In contrast, software can give a more flexible design solution and also be more suitable for various video applications.In order to fully use the advantages of both software and hardware, each module of the H.263 video codec is studied do determine a proper way of hardware-software partitioning. 'This paper describes which module can be appropriate to software implementation and investigates a software optimization