KR20090056790A - Variable length code decoding system and decoding method thereof - Google Patents
Variable length code decoding system and decoding method thereof Download PDFInfo
- Publication number
- KR20090056790A KR20090056790A KR1020080066007A KR20080066007A KR20090056790A KR 20090056790 A KR20090056790 A KR 20090056790A KR 1020080066007 A KR1020080066007 A KR 1020080066007A KR 20080066007 A KR20080066007 A KR 20080066007A KR 20090056790 A KR20090056790 A KR 20090056790A
- Authority
- KR
- South Korea
- Prior art keywords
- frame
- decoding
- variable length
- length code
- cpu
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
- H04N19/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/42—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
- H04N19/423—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation characterised by memory arrangements
Abstract
Description
본 발명은 가변길이부호 디코딩 시스템 및 그것의 디코딩 방법에 관한 것이다.The present invention relates to a variable length code decoding system and a decoding method thereof.
본 발명은 정보통신부의 IT SoC 핵심설계 인력양성사업(Human Resource Development Project for IT SoC Architech)의 일환으로 수행한 연구로부터 도출된 것이다.[과제관리번호: , 과제명: IT SoC 핵심설계인력양성].The present invention is derived from a study conducted as part of the Human Resource Development Project for IT SoC Architech of the Ministry of Information and Communication. [Task Management No.:, Title: IT SoC Core Design Manpower Training] .
최근, 오디오, 비디오 및 픽셀 값들을 통합적으로 다루는 멀티미디어의 시대가 도래해서, 현존하는 정보 매체, 즉, 사람들에게 정보를 전달하는 신문, 잡지, 텔레비젼, 라디오, 전화기 및 다른 수단이 최근 멀티미디어의 범위에 포함되어 오고 있다. 일반적으로, 멀티미디어란 문자뿐만 아니라 그래픽 심볼, 오디오, 특히 화상 등이 서로 관련되어 표현되는 것을 말한다. 그러나, 상기 서술한 현존의 정보 미디어를 멀티미디어의 범위에 포함시키기 위해, 이러한 정보를 디지털 형태로 표현하는 것이 필요 조건으로서 나타난다.In recent years, the era of multimedia that integrates audio, video and pixel values has arrived, and existing information media, namely newspapers, magazines, television, radios, telephones and other means of communicating information to people, have been in the range of recent multimedia. It has been included. In general, multimedia refers to not only letters but also graphic symbols, audio, and in particular, images that are related to each other. However, in order to include the existing information media described above in the scope of multimedia, it is shown as a necessary condition to express such information in digital form.
그러나, 각각의 상기 서술된 정보 미디어에 포함된 정보의 양을 디지털 형태 로 계산할 때, 문자당 정보의 양은 1∼2바이트가 요구되고, 오디오는 초당 64Kbits(전화 품질)가 요구되고, 동화상의 경우 초당 100Mbits(현재 텔레비젼 수신 품질)가 요구된다. 그러므로, 앞에 서술된 정보 미디어가 이러한 거대한 양의 정보를 디지털 형태로 취급하는 것이 현실적이지 않다. 그러므로, 정보 압축 기술이 요구되고, 예를 들면 비디오 폰의 경우에, ITU-T(International Telecommunication Union-Telecommunication Standardization Sector)에 의해 국제적으로 표준화된 H.261 및 H.263 표준을 따르는 비디오 압축 기술이 이용된다.However, when calculating the amount of information contained in each of the above described information media in digital form, the amount of information per character is required to be 1 to 2 bytes, the audio is required to be 64 Kbits per second (telephone quality), and in case of moving
일반적으로, 동화상의 부호화에서, 정보의 양은 시간과 공간의 방향으로 용장성(redundancy)를 줄임으로써 압축된다. 그러므로, 시간적인 용장성을 줄이기 위한 화면간 예측 부호화에서, 움직임 추정 및 예측 화상의 생성이 전방 또는 후방의 픽쳐를 참조하여 블록 단위로 행해지고, 그 다음, 얻어진 예측 이미지와 부호화되는 현재의 픽쳐의 이미지 사이의 차이 값에서 부호화가 실행된다.In general, in the coding of moving pictures, the amount of information is compressed by reducing redundancy in the direction of time and space. Therefore, in inter-screen predictive encoding to reduce temporal redundancy, motion estimation and generation of predictive images are performed in units of blocks with reference to the front or rear picture, and then the obtained predictive image and the image of the current picture to be encoded The encoding is performed at the difference value between them.
여기서, "픽쳐"는 하나의 이미지를 지칭하는 용어이다. 프로그레시브 이미지의 경우, "픽쳐"는 프레임을 의미하고, 인터레이스 이미지의 경우 프레임 또는 필드를 의미한다. 여기서, "인터레이스 이미지"는 캡쳐 시간이 분리된 2개의 필드로 구성된 프레임의 이미지이다. 인터레이스 이미지의 부호화 및 복호화에서, 하나의 프레임을 그대로 다루거나, 2개의 필드로서 다루거나, 또는 프레임 내의 블록마다의 프레임 구조 또는 필드 구조로서 다루는 것이 가능하다. 어떠한 화상도 참조하지 않고 화면내 예측 부호화되는 화상을 I 프레임으로 칭한다. 단지 하나의 화상을 참조하여 화면내 예측 부호화되는 화상을 P 프레임으로 칭한다. 그리고, 동시에 2 개의 화상을 참조하여 화면내 예측 부호화되는 화상을 B 프레임으로 칭한다. B 프레임은 표시 순서에서 전방/후방 픽쳐가 임의로 결합될 수 있는 2개의 픽셀을 참조하는 것이 가능하다. Here, "picture" is a term referring to one image. In the case of a progressive image, "picture" means a frame, and in the case of an interlaced image, a frame or field. Here, the "interlaced image" is an image of a frame consisting of two fields separated by capture time. In the encoding and decoding of interlaced images, it is possible to treat one frame as it is, to treat it as two fields, or to treat it as a frame structure or a field structure for each block in a frame. An image that is intra prediction coded without referring to any image is referred to as an I frame. A picture that is intra prediction coded with reference to only one picture is referred to as a P frame. The picture to be intra prediction coded with reference to two pictures at the same time is referred to as a B frame. The B frame is capable of referring to two pixels in which the front / rear picture can be arbitrarily combined in the display order.
참조 이미지(참조 픽쳐)는 부호화 및 복호화의 기본 단위로서 블록마다 지정될 수 있다. 부호화된 비트스트림에서 앞에 나타낸 참조 픽쳐를 제 1 참조 픽쳐로 부르고, 비트스트림에서 뒤에 나타낸 참조 픽쳐를 제 2 참조 픽쳐로 부름으로써, 이러한 참조 픽셀 사이의 구분이 이루어진다.이들 유형의 픽쳐들을 부호화 및 복호화하기 위한 조건으로서, 참조로 사용되는 픽쳐들이 미리 부호화되고 복호화되는 것이 요구된다.The reference image (reference picture) may be designated for each block as a basic unit of encoding and decoding. The distinction between these reference pixels is achieved by calling the reference picture shown earlier in the coded bitstream as the first reference picture and calling the reference picture shown later in the bitstream as the second reference picture. Encoding and decoding these types of pictures As a condition for doing so, it is required that pictures used as a reference are previously encoded and decoded.
P 프레임 및 B 프레임은 움직임 보상 화면간 예측을 이용하여 부호화된다. 움직임 보상된 화면간 예측의 사용에 의한 부호화는 화면간 예측 부호화에서 보상된 움직임을 이용하는 부호화 방법이다. 참조 픽쳐의 픽셀값에 기초하여 간단히 예측을 행하는 방법과 달리, 움직임 추정은 픽쳐 내의 각 부분의 움직임의 양(이후 "움직임 벡터"라고 칭한다)을 추정하고, 또한 이러한 움직임 양을 고려하여 예측을 행함으로써, 데이터의 양을 저감시킬 뿐 아니라 예측의 정확도를 개선할 수 있는 기술이다.P frames and B frames are encoded using motion compensated inter prediction. Encoding by using motion compensated inter prediction is an encoding method using motion compensated in inter prediction encoding. Unlike the method of simply making predictions based on the pixel values of the reference picture, motion estimation estimates the amount of motion of each part in the picture (hereinafter referred to as a "motion vector"), and also makes a prediction in consideration of this amount of motion. This is a technique that can reduce the amount of data as well as improve the accuracy of prediction.
예를 들면, 부호화되는 현재의 픽쳐의 움직임 벡터를 추정하고, 그 다음 각각의 움직임 벡터의 양만을 시프팅하여 얻어진 예측치와 부호화되는 현재의 화상 사이의 예측 오차를 부호화함으로써 움직임 보상을 통해 데이터의 양을 저감할 수 있다. 이 기술에서, 복호화시에 움직임 벡터 정보가 요구되므로, 움직임 벡터 또한 부호화된 형태로 기록되거나 전송된다. 움직임 벡터는 매크로블록 단위로 추정된다. 더 구체적으로, 매크로블록은 부호화되는 현재 화상에 미리 고정되어 있고, 참조 픽쳐에서 탐색 영역내에 고정된 매크로블록의 가장 유사한 참조 블록의 위치를 찾음으로써 움직임 벡터를 추정하도록 한다.For example, the amount of data through motion compensation is estimated by estimating the motion vector of the current picture to be encoded, and then encoding the prediction error between the predicted value obtained by shifting only the amount of each motion vector and the current picture to be encoded. Can be reduced. In this technique, since motion vector information is required at the time of decoding, the motion vector is also recorded or transmitted in an encoded form. The motion vector is estimated in macroblock units. More specifically, the macroblock is fixed in advance in the current picture to be encoded, and the motion vector is estimated by finding the position of the most similar reference block of the macroblock fixed in the search area in the reference picture.
도 1은 일반적인 비트스트림의 데이터 구조를 보여주는 도면이다. 도 1을 참조하면, 비트스트림(Bitstream)은 복수의 픽쳐 그룹(Group of Picture:이하 'GOP'라고 함)을 포함하고 있다. GOP는 기본 부호화 단위로서 액세스를 수행하거나 혹은 편집을 수행하는데 이용된다. 각 GOP는 복수의 픽쳐들(Pictures)을 포함하고 있다. 또한, 각 픽쳐는 복수의 슬라이스들(Slices)을 포함하고 있다. 또한, 각 슬라이스는 복수의 매크로 블록들(Macro Blocks)을 포함하고 있다. 또한 각 매크로 블록들은 복수의 블록들을 포함하고 있다. 한편, 각 비트스트림, GOP, 픽쳐 및 슬라이스는 각 단위의 엔딩 포인트를 나타내는 동기 신호 및 각 단위에 공통인 데이터인 헤더를 포함한다.1 is a diagram illustrating a data structure of a general bitstream. Referring to FIG. 1, a bitstream includes a plurality of picture groups (hereinafter, referred to as 'GOP'). The GOP is used as a basic coding unit to perform access or to perform editing. Each GOP includes a plurality of pictures. In addition, each picture includes a plurality of slices. In addition, each slice includes a plurality of macro blocks. Each macro block also includes a plurality of blocks. On the other hand, each bitstream, GOP, picture, and slice includes a synchronization signal indicating the ending point of each unit and a header which is data common to each unit.
데이터가 스트림 시퀀스인 비트 스트림으로 전송되지 않고, 조각 단위인 패킷등으로 전송되는 경우, 헤더와, 헤더 이외의 부분인 데이터부는 분리되어 전송될 수 있다. 이러한 경우, 도 1에 도시된 바와 같이 헤더 및 데이터 부가 동일한 비트 스트림에 조합되지 않는다. 그러나, 패킷의 경우에, 헤더 및 데이터부가 인접하여 송신되지 않을 때에도, 데이터부에 대응하는 헤더가 다른 패킷에서 전송되고 있는 것이다. 그러므로, 헤더 및 데이터 부가 동일한 비트 스트림에 조합되지 않을 때에도, 도 1을 참조하여 서술된 부호화된 비트스트림의 개념은 또한 패킷으로 응용가 능하다.When data is not transmitted in the bit stream, which is a stream sequence, but in a packet or the like in pieces, the header and the data portion other than the header may be transmitted separately. In this case, the header and the data portion are not combined in the same bit stream as shown in FIG. However, in the case of a packet, even when the header and the data portion are not transmitted adjacently, the header corresponding to the data portion is transmitted in another packet. Therefore, even when the header and the data portion are not combined in the same bit stream, the concept of the coded bitstream described with reference to FIG. 1 is also applicable to a packet.
일반적으로 가변길이(Variable)부호는 다양한 무손실 데이타 압축을 위해 사용되고 있다. 가변길이부호는 데이타의 통계치에 근거하여 고정된 길이의 데이타를 가변길이 데이타로 부호화하는 것으로 정보원에 포함된 각 부호의 발생빈도에 의해 빈도가 많은 것으로 짧은 길이의 부호로, 빈도가 적은 것은 긴 길이의 부호로 표시한다. 이렇게 함으로써 모든 부호에 동일한 길이를 할당하는 것에 비해 부호길이의 평균치를 줄일 수 있다. 대표적인 가변길이부호로는 허프만(Huffman) 부호가 있다.In general, variable length codes are used for various lossless data compression. Variable length codes are codes of fixed length data based on the statistical value of the data as variable length data. The variable length codes are frequently generated by the frequency of occurrence of each code included in the information source. It is indicated by the sign of. In this way, the average value of the code lengths can be reduced compared to assigning the same length to all codes. A typical variable length code is the Huffman code.
WMV9/VC-1의 경우에 있어서 가변길이부호(Variable Length Code: 이하 'VLC'라고 함) 디코딩하고자 할 때, 많은 양의 테이블 정보가 필요하다. 여기서 이로 인하여 다른 코덱에 비교하여 게이트 카운트(Gate Count)가 많이 증가된다. 하드웨어적으로 VLC 디코더 구현시 테이블 정보가 저장될 롬(ROM)의 크기가 증가된다. 또한 휴대용 제품에 VLC 디코더를 적용할 때 빈번하게 롬을 억세스함으로 인한 전력소비도 증가된다.In the case of WMV9 / VC-1, when a variable length code (VLC) is decoded, a large amount of table information is required. This increases the gate count much compared to other codecs. In hardware, when the VLC decoder is implemented, the size of a ROM in which table information is stored is increased. In addition, the VLC decoder in portable products also increases power consumption due to frequent ROM access.
본 발명은 상술한 문제점을 해결하기 위하여 제안된 것으로, 본 발명의 목적은 게이트 카운트가 감소되고 전력소비가 감소되는 가변길이부호 디코딩 시스템 및 그것의 디코딩 방법을 제공하는데 있다.The present invention has been proposed to solve the above problems, and an object of the present invention is to provide a variable length code decoding system and a decoding method thereof in which a gate count is reduced and power consumption is reduced.
본 발명에 따른 가변길이부호 디코딩 시스템의 디코딩 방법은: 픽쳐 그룹으 로부터 프레임을 추출하는 단계; 추출된 프레임을 디코딩하는데 필요한 테이블 정보를 에스램에 로딩하는 단계; 및 상기 로딩된 테이블 정보를 이용하여 상기 추출된 프레임을 디코딩하는 단계를 포함한다.A decoding method of a variable length code decoding system according to the present invention includes: extracting a frame from a picture group; Loading table information necessary to decode the extracted frame into the SRAM; And decoding the extracted frame using the loaded table information.
실시예에 있어서, 상기 프레임을 추출하는 단계는, 상기 픽쳐 그룹을 입력받는 단계; 입력된 픽쳐 그룹을 디코딩하여 복수의 프레임들을 추출하는 단계를 포함한다.The extracting of the frame may include: receiving the picture group; And extracting a plurality of frames by decoding the input picture group.
실시예에 있어서, 상기 프레임을 추출하는 단계는 중앙처리장치에서 수행되는 것을 특징으로 한다.In an embodiment, the extracting of the frame may be performed in a central processing unit.
실시예에 있어서, 상기 디코딩된 복수의 프레임들은 순서대로 가변길이부호 디코더에 의하여 디코딩되는 것을 특징으로 한다.The decoded plurality of frames may be decoded by a variable length code decoder in order.
실시예에 있어서, 상기 중앙처리장치와 상기 가변길이부호 디코더는 프레임 단위로 인터페이스를 수행하는 것을 특징으로 한다.In an exemplary embodiment, the CPU and the variable length code decoder may perform an interface on a frame basis.
실시예에 있어서, 상기 에스램은 상기 가변길이부호 디코더에 포함되는 것을 특징으로 한다.The SRAM may be included in the variable length code decoder.
실시예에 있어서, 상기 테이블 정보가 에스램에 로딩되는 단계는, 상기 중앙처리장치가 상기 프레임을 디코딩하는데 필요한 테이블들을 파악하는 단계; 및 상기 중앙처리장치가 상기 파악한 테이블들을 상기 에스램에 로딩하는 단계를 포함한다.The loading of the table information into the SRAM may include: identifying, by the CPU, tables required for decoding the frame; And loading the grasped tables into the SRAM by the CPU.
실시예에 있어서, 상기 테이블 정보가 상기 에스램에 로딩이 완료되면, 상기 중앙처리장치는 상기 가변길이부호 디코더를 활성화시키기 위한 동작 신호를 생성 하는 것을 특징으로 한다.The CPU may generate an operation signal for activating the variable length code decoder when the table information is loaded in the SRAM.
실시예에 있어서, 상기 추출된 프레임에 대한 디코딩이 완료된 후 상기 가변길이부호 디코더는 상기 중앙처리장치에 인터럽트 신호를 전달하는 것을 특징으로 한다.The variable length code decoder may transmit an interrupt signal to the CPU after the decoding of the extracted frame is completed.
실시예에 있어서, 상기 추출된 프레임에 대한 디코딩이 완료된 후, 상기 가변길이부호 디코더는 상기 중앙처리장치로부터 다음 프레임에 대한 상기 동작 신호가 전달될 때까지 대기 상태에 있는 것을 특징으로 한다.In an exemplary embodiment, after the decoding of the extracted frame is completed, the variable length code decoder is in a waiting state until the operation signal for the next frame is transmitted from the CPU.
본 발명에 따른 가변길이부호 디코딩 시스템은: 그룹 픽쳐를 입력받아 복수의 프레임들로 추출하는 중앙처리장치; 및 상기 중앙처리장치로부터 상기 복수의 프레임들을 프레임 단위로 입력받아 디코딩을 수행하는 가변길이부호 디코더를 포함한다.According to another aspect of the present invention, there is provided a variable length code decoding system comprising: a central processing unit receiving a group picture and extracting the same into a plurality of frames; And a variable length code decoder configured to receive the plurality of frames from the CPU and to decode the frames.
실시예에 있어서, 상기 가변길이부호 디코더는 프레임을 디코딩하는 데 필요한 테이블 정보를 저장하는 것을 특징으로 한다.In an exemplary embodiment, the variable length code decoder stores table information necessary to decode a frame.
실시예에 있어서, 상기 가변길이부호 디코더는 상기 테이블 정보를 저장하는 에스램을 포함하고, 상기 테이블 정보는 상기 중앙처리장치로부터 로딩되는 것을 특징으로 한다.The variable length code decoder may include an SRAM for storing the table information, and the table information may be loaded from the CPU.
실시예에 있어서, 상기 중앙처리장치는, 상기 그룹 픽쳐를 디코딩하여 복수의 프레임들로 추출하는 픽쳐 레이어; 및 상기 추출된 프레임들 중 디코딩될 프레임을 입력받고, 상기 디코딩될 프레임을 디코딩하는데 필요한 테이블 정보를 상기 에스램에 로딩시키는 테이블 매니저를 포함한다.The CPU may include: a picture layer for decoding the group picture and extracting the extracted picture into a plurality of frames; And a table manager which receives a frame to be decoded among the extracted frames and loads table information necessary to decode the frame to be decoded into the SRAM.
실시예에 있어서, 상기 중앙처리장치는 상기 테이블 정보가 상기 에스램에 로딩되면 상기 가변길이부호 디코더를 활성화시키기 위한 동작 신호를 생성하는 것을 특징으로 한다.The CPU may generate an operation signal for activating the variable length code decoder when the table information is loaded in the SRAM.
실시예에 있어서, 상기 가변길이부호 디코더는, 입력된 프레임을 디코딩하여 복수의 슬라이스들을 추출하는 슬라이스 레이어; 상기 추출된 각 슬라이스를 디코딩하여 복수의 매크로 블록들을 추출하는 매크로 블록 레이어; 및 상기 추출된 각 매크로 블록을 디코딩하여 복수의 블록들을 추출하는 블록 레이어를 포함하되, 상기 슬라이스 레이어, 상기 매크로 블록 레이어, 및 상기 블록 레이어는 디코딩할 때 상기 에스램에 저장된 상기 테이블 정보를 이용하는 것을 특징으로 한다.The variable length code decoder may include: a slice layer which decodes an input frame and extracts a plurality of slices; A macro block layer which decodes each extracted slice to extract a plurality of macro blocks; And a block layer for decoding each extracted macroblock to extract a plurality of blocks, wherein the slice layer, the macroblock layer, and the block layer use the table information stored in the SRAM when decoding. It features.
실시예에 있어서, 상기 프레임에 대한 디코딩이 완료되면, 상기 가변길이부호 디코더는 상기 중앙처리장치에 인터럽트 신호를 전달하고, 상기 중앙처리장치는 상기 인터럽트 신호에 응답하여 다음 프레임을 디코딩하도록 준비시키는 것을 특징으로 한다.In an embodiment, when decoding of the frame is completed, the variable length code decoder sends an interrupt signal to the CPU, and the CPU prepares to decode the next frame in response to the interrupt signal. It features.
실시예에 있어서, 상기 테이블 정보는 복수의 종류의 테이블들을 포함하고, 상기 에스램은 상기 복수의 종류의 테이블이 각각 저장되는 메모리들로 구분되는 것은 특징으로 한다.The table information may include a plurality of types of tables, and the SRAM may be divided into memories in which the plurality of types of tables are stored.
상술한 바와 같이 본 발명에 따른 가변길이부화 디코딩 시스템 및 그것의 디코딩 방법은 입력된 프레임에 필요한 테이블 정보만 업로딩하여 사용함으로, 게이트 카운트가 감소되며, 또한 전력 소비도 줄일 수 있게 된다.As described above, the variable length coding decoding system and its decoding method according to the present invention upload and use only table information necessary for an input frame, thereby reducing gate count and power consumption.
또한, 본 발명의 가변길이부화 디코딩 시스템은 내부 메모리를 적게 사용하고, 전력소비에 있어서 효율적임으로 휴대용 장치에 적용가능하다.In addition, the variable length encoding decoding system of the present invention can be applied to a portable device with less internal memory and efficient in power consumption.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있도록 본 발명의 실시예를 첨부된 도면을 참조하여 설명한다.DETAILED DESCRIPTION Hereinafter, exemplary embodiments of the present invention will be described with reference to the accompanying drawings so that those skilled in the art may easily implement the technical idea of the present invention.
본 발명에 따른 가변길이부호 디코딩 시스템은 프레임 단위로 디코딩을 수행하는 가변길이부호(Variable Length Code: 이하, VLC 라고 함) 디코더를 포함한다. 여기서 가변길이부호 디코더는 현재 프레임을 디코딩하는 데 필요한 테이블 정보만이 로딩되는 에스램을 포함한다. 이로써, 본 발명의 디코딩 시스템은 디코딩을 수행하는데 있어서 모든 테이블 정보를 구비할 필요가 없다. 따라서, 본 발명에 따른 디코딩 시스템은 디코딩 동작시 게이트 카운트를 감소시키고, 이에 따라 전력 소비도 감소된다.The variable length code decoding system according to the present invention includes a variable length code (VLC) decoder that performs decoding on a frame basis. The variable length coder includes an SRAM in which only table information necessary to decode the current frame is loaded. As such, the decoding system of the present invention does not need to have all the table information in performing decoding. Therefore, the decoding system according to the present invention reduces the gate count during the decoding operation, and thus the power consumption is also reduced.
도 2은 본 발명에 따른 가변길이부호 디코딩 시스템(10)을 보여주는 도면이다. 도 2을 참조하면, 가변길이부호 디코딩 시스템(10)은 중앙처리장치(CPU:100) 및 VLC(Variable Length Code) 디코더(200)를 포함하고 있다. 본 발명의 VLC 디코더(200)는 프레임 단위로 디코딩을 수행하며, 프레임을 디코딩하는 데 필요한 테이블 정보를 저장하는 에스램(210)을 포함하고 있다.2 shows a variable length
도 2에 도시된 바와 같이 디코딩 시스템(10)에서는 프레임을 디코딩하는 데 필요한 데이터 정보를 저장하기 위하여 에스램을 이용하였다. 그러나 본 발명의 디 코딩 시스템이 프레임을 디코딩하는 데 필요한 데이터 정보를 저장하기 위한 장치가 반드시 에스램에 국한될 필요가 없다는 것은 당업자에게 자명하다. 본 발명의 디코딩 시스템에서는 프레임을 디코딩하는 데 필요한 데이터를 저장하기 위하여 램과 같은 휘발성 메모리 장치를 이용할 수 있다.As shown in FIG. 2, the
중앙처리장치(100)는 픽쳐 레이어(110) 및 테이블 메니저(120)를 포함하고 있다. 픽쳐 레이어(110)는 그룹 픽쳐(Group of Pictures:이하 'GOP'라고 함)부터 복수의 픽쳐들을 추출한다. 일반적으로 각 픽쳐는 프레임(frame)이라고 부른다. 즉, 픽쳐 레이어(110)는 GOP를 디코딩하여 복수의 프레임들을 추출한다. 여기서 픽쳐 레이어(110)로부터 추출된 복수의 프레임들은 차례로 VLC 디코더(200)에 의하여 디코딩된다. 테이블 매니저(120)는 픽쳐 레이어(110)로부터 프레임을 전달받고, 전달된 프레임을 디코딩하는데 필요한 테이블 정보를 파악한다. 테이블 매니저(120)는 파악한 테이블 정보를 VLC 디코더(200)의 에스램(210)으로 로딩시킨다.The
한편, 픽쳐 레이어(110)로부터 디코딩된 픽쳐 즉 추출된 프레임들 각 프레임을 디코딩하는데 필요한 테이블 정보를 포함하고 있다. 이러한 테이블 정보는 프레임의 종류에 따라 다르다. 예를 들어, 프레임이 I 프레임(Infra Frame)이라고 할 때, CBPCY 테이블, AC 디퍼런셜 테이블, 및 DC 디퍼런셜 테이블이 필요하다.On the other hand, the picture decoded from the
상술된 바와 같이, 중앙처리장치(100)는 GOP로부터 복수의 프레임을 추출하고, VLC 디코더(200)가 디코딩 동작을 수행할 수 있도록 준비하는 기능을 수행한다. 즉, 중앙처리장치(100)는 디코딩될 프레임 및 이 프레임을 디코딩하기 위해 필요한 테이블 정보를 VLC 디코더(200)로 전달하고, 에스램(210)에 테이블 정보의 로 딩이 완료되면 VLC 디코더(200)로 동작 신호(DECEN)를 전달한다. 본 발명의 VLC 디코더(200)는 프레임 단위로 디코딩을 수행한다. 따라서, 중앙처리장치(100)는 추출된 프레임들을 차례로 VLC 디코더(200)로 전달하도록 구현된다.As described above, the
VLC 디코더(200)는 동작 신호(DECEN)에 응답하여 중앙처리장치(100)로부터 입력된 하나의 프레임에 대한 디코딩을 시작한다. 한편 프레임을 디코딩하는데 필요한 테이블 정보는 에스램(210)에 이미 로딩되어 있다. VLC 디코더(200)는 에스램(210)에 로딩된 테이블 정보를 이용하여 입력된 프레임에 대한 디코딩 동작을 수행한다.The
VLC 디코더(200)의 프레임에 대한 디코딩 동작은 아래와 같다. 슬라이스 레이어(220)는 중앙처리장치(100)로부터 입력된 프레임을 디코딩하여 복수의 슬라이스들을 추출한다. 매크로블록 레이어(230)는 슬라이스 레이어(220)에서 디코딩된 복수의 슬라이스들 각각을 디코딩하여 복수의 매크로 블록들로 추출한다. 블럭 레이어(230)는 매크로블록 레이어(230)에서 디코딩된 복수의 매크로 블록들 각각을 디코딩하여 복수의 블록들을 추출한다. 상술한 과정은 입력된 프레임에 대한 디코딩이 완료될 때까지 반복된다. 중앙처리장치(100)로부터 입력된 프레임에 대한 디코딩 동작이 완료되면, VLC 디코더(200)는 인터럽트 신호를 중앙처리장치(100)로 전달한다. 이때 VLC 디코더(200)는 중앙처리장치(100)로부터 다음 동작 신호(DECEN)을 전달받기까지 대기 상태에 놓인다.The decoding operation on the frame of the
중앙처리장치(100)는 전달된 인터럽트 신호에 응답하여 다음 프레임에 대하여 디코딩 동작 준비한다. 즉, 디코딩할 프레임이 테이블 매니저(120)에 전달되고, 디코딩할 프레임에 대응하는 테이블 정보가 에스램(210)에 로딩된다. 또한, 에스램(210)에 테이블 정보의 로딩이 완료되면, 중앙처리장치(100)는 동작 신호(DECEN)을 VLC 디코더(100)에 전달한다. VLC 디코더(100)는 전달된 동작 신호(DECEN)에 응답하여 새롭게 입력된 프레임에 대한 디코딩을 수행한다.The
본 발명의 가변길이부호 디코딩 시스템(10)에서는 중앙처리장치(100)에 픽쳐 레이어(110)가 포함된다. 즉, 중앙처리장치(100)에서 GOP를 디코딩하여 복수의 픽쳐들 즉 프레임들을 추출한다. 한편, VLC 디코더(200)는 중앙처리장치(100)에서 전달된 하나의 프레임에 대하여만 디코딩을 수행한다. 즉, 중앙처리장치(100) 및 VLC 디코더(200)에서는 프레임 단위로 인터페이스가 수행된다. 이러한 가변길이부호 디코딩 시스템(10)은 최소의 중앙처리장치 성능을 이용하여 유동성(Flexiblity)를 보장하면서, VLC 디코더의 게이트 카운트를 현저하게 줄일 수 있게 된다.In the variable length
도 3은 본 발명의 가변길이부호 디코딩 시스템(10)에서 에스램(200)에 대한 실시예를 보여주는 도면이다. 도 3을 참조하면, 본 발명의 VLC 디코더(200)는 VLC 디코더 로직회로(201) 및 에스램들(212,214,216,218)를 포함한다. 여기서 VLC 디코더 로직회로(201)는 도 2에 도시된 VLC 디코더(200)에서 에스램(210)을 제외한 부분이다. 본 발명의 에스램(200)은 AC 디퍼런셜 메모리(212), MV 디퍼런셜 메모리(214), CBPCY 메모리(216), 및 DC 디퍼런셜 메모리(218)를 포함한다. AC 디퍼런셜 메모리(212)는 AC 디퍼런셜 테이블이 저장되는 곳이다. MV 디퍼런셜 메모리(214)는 MV 디퍼런셜 테이블이 저장되는 곳이다. CBPCY 메모리(216)는 CBPCY 테이블이 저장되는 곳이다. DC 디퍼런셜 메모리(218)은 DC 디퍼런셜 테이블이 저장되 는 곳이다. 각 메모리들(212,214,216,218)에는 디코딩될 프레임을 디코딩하는데 필요한 테이블들이 중앙처리장치(100)의 테이블 매니저(120)로부터 로딩된다.3 is a diagram showing an embodiment of the
종래의 VLC 디코더는 GOP 단위로 디코딩을 수행하기 때문에 모든 테이블 정보를 저장하기 위한 롬(ROM)을 구비하고 있다. 반면에 본 발명의 VLC 디코더는 프레임 단위로 디코딩을 수행하며, 프레임을 디코딩하는데 필요한 테이블만 저장하기 위한 에스램(SRAM)을 구비한다. 따라서, 전체 테이블 크기 및 읽기/쓰기 동작을 고려할 때, 에스램을 사용하는 본 발명의 VLC 디코더는 게이트 카운트 및 전력 소비 측면에서 종래의 VLC 디코더보다 이점이 있다.Conventional VLC decoders have a ROM for storing all table information because decoding is performed in units of GOP. On the other hand, the VLC decoder of the present invention performs decoding on a frame basis and includes an SRAM for storing only a table necessary for decoding a frame. Thus, when considering the total table size and read / write operations, the VLC decoder of the present invention using SRAM has advantages over conventional VLC decoders in terms of gate count and power consumption.
또한, 롬을 사용하는 VLC 디코더의 경우, 롬 데이터의 오류로 인하여 칩을 추가로 제작해야하는 단점이 있다. 반면에 에스램을 사용하는 VLC 디코더는 로딩될 데이터만 바꿔주면 되기 때문에 추가 비용이 발생하지 않고, 디코딩 시간을 줄일 수 있는 장점이 있다.In addition, in the case of a VLC decoder using a ROM, there is a disadvantage that an additional chip must be manufactured due to an error of the ROM data. On the other hand, VLC decoder using SRAM only has to change the data to be loaded, so there is no additional cost and the decoding time can be reduced.
일례로, 본 발명의 VLC 디코더의 에스램의 크기는 최소 13.566Kb의 메모리 크기가 요구된다. 이 메모리 크기는 종래의 VLC 디코더에서 사용되는 전체 테이블 크기인 39.532Kb의 34% 밖에 되지 않는다. 이를 구현하는데 필요한 에스램 메모리들의 크기는 아래의 표와 같다.As an example, the size of the SRAM of the VLC decoder of the present invention requires a memory size of at least 13.566 Kb. This memory size is only 34% of the total table size 39.532Kb used in conventional VLC decoders. The size of the SRAM memories required to implement this is shown in the table below.
여기서 에스램(210)의 쓰기 동작은 중앙처리장치(100)가 제어한다. 또한VLC 디코더 로직회로(201)는 에스램(210)으로부터 읽기 동작만 수행한다.Here, the write operation of the
도 3에 도시된 에스램(200)은 네개의 메모리들(212,214,216,218)을 포함한다. 하지만, 본 발명의 에스램이 반드시 여기에 국한될 필요는 없다. 본 발명의 에스램은 하나의 메모리로 구현될 수도 있다.The
도 4는 본 발명에 따른 가변길이부호 디코딩 시스템(10)의 디코딩 방법을 보여주는 흐름도이다. 도 2 내지 도 4을 참조하면, 본 발명에 따른 가변길이부호 디코딩 시스템(10)의 디코딩 방법은 아래와 같다.4 is a flowchart illustrating a decoding method of the variable length
본 발명에 따른 가변길이부호 디코딩 시스템(10)의 VLC 디코더(200)는 프레임 단위로 디코딩을 수행한다. 이를 위하여 중앙처리장치(100)는 디코딩될 GOP로부터 복수의 프레임들을 추출한다. 즉, 픽쳐 레이어(110)는 GOP를 디코딩하여 복수의 픽쳐들 즉 복수의 프레임들을 추출한다. 여기서 복수의 프레임들은 순서대로 VLC 디코더(200)에서 디코딩될 것이다(S110).The
픽쳐 레이어(110)에서 추출된 프레임은 테이블 매니저(120)로 전달된다. 테이블 매니저(120)는 추출된 프레임으로부터 이를 디코딩하는 데 필요한 테이블 정보를 알아내고, 파악한 테이블 정보를 에스램(210)으로 로딩시킨다(S120). 에스램(210)에 테이블 정보의 로딩이 완료되면, 중앙처리장치(100)는 동작 신호(DECEN)를 VLC 디코더(200)에 전달하여 추출된 프레임에 대한 디코딩을 시작하게 한다. VLC 디코더(200)는 동작 신호(DECEN)에 응답하여 에스램(210)에 로딩된 테이블 정보를 이용하여 추출된 프레임에 대한 디코딩을 수행한다(S130). 여기서 프레임에 대한 디코딩 동작은 도 2에 도시된 바와 같다. The frame extracted from the
프레임에 대한 디코딩이 완료되면, VLC 디코더(200)는 인터럽트 신호를 생성하여 중앙처리장치(100)로 전달한다. 이때 VLC 디코더(200)는 다음 동작 신호(DECEN)을 전달받기까지 대기 상태에 놓이게 된다. 한편, 중앙처리장치(100)에서는 인터럽트 신호에 응답하여 추출된 다음 프레임에 대한 디코딩 동작이 준비된다. 즉, 다음 프레임은 테이블 매니저(120)로 전달되고, 테이블 매니저(120)는 전달된 프레임을 디코딩하는 데 필요한 테이블 정보를 알아내고, 파악한 테이블 정보는 에스램(210)으로 로딩된다. 이후, 에스램(210)에 테이블 정보의 로딩이 완료되면, 중앙처리장치(100)는 동작 신호(DECEN)을 생성하여 VLC 디코더(200)에 전달한다. VLC 디코더(200)는 동작 신호(DECEN)에 응답하여 상술된 바와 같이 에스램(210)에 새롭게 저장된 테이블 정보를 이용하여 다음 프레임에 대한 디코딩 동작을 수행한다.When decoding of the frame is completed, the
본 발명의 가변길이부호 디코딩 시스템에서는 에스램에 테이블 정보가 로딩되었다. 그러나 본 발명의 가변길이부호 디코딩 시스템이 반드시 에스램에 테이블 정보가 저장될 필요가 없다는 것은 당업자에 자명하다. 본 발명에서는 테이블 정보를 저장하기 위한 메모리 장치로 에스램 이외에도 디램 등 휘발성 메모리 장치 혹은 비휘발성 메모리 장치가 사용될 수 있다.In the variable length code decoding system of the present invention, table information is loaded on an SRAM. However, it will be apparent to those skilled in the art that the variable length code decoding system of the present invention does not necessarily store table information in an SRAM. In the present invention, in addition to SRAM, a volatile memory device such as a DRAM or a nonvolatile memory device may be used as a memory device for storing table information.
본 발명의 디코딩 시스템은 WMW9/VC-1 기준 디코더에 적용되는 시스템이다. 하지만, 본발명의 디코딩 시스템이 WMW9/VC-1 기준 디코더에 한정되지 않는다는 것은 당업자에게 자명하다.The decoding system of the present invention is a system applied to the WMW9 / VC-1 reference decoder. However, it will be apparent to those skilled in the art that the decoding system of the present invention is not limited to the WMW9 / VC-1 reference decoder.
본 발명의 가변길이부호 디코딩 시스템은 PMP, Mobile TV(DVB-H), Mobile Phone, 및 4G 단말기 등에 사용가능하다. 특히, 내부 메모리를 적게 사용하고, 전력 소비에 있어서 효율적이므로, 휴대용 장치에 사용가능하다.The variable length code decoding system of the present invention can be used for PMP, Mobile TV (DVB-H), Mobile Phone, and 4G terminal. In particular, since it uses less internal memory and is efficient in power consumption, it can be used in portable devices.
한편, 본 발명의 상세한 설명에서는 구체적인 실시예에 관하여 설명하였으나, 본 발명의 범위에서 벗어나지 않는 한도 내에서 여러 가지로 변형할 수 있다. 그러므로 본 발명의 범위는 상술한 실시예에 국한되어 정해져서는 안되며 후술하는 특허청구범위 뿐만 아니라 이 발명의 특허청구범위와 균등한 것들에 의해 정해져야 한다.Meanwhile, in the detailed description of the present invention, specific embodiments have been described, but various modifications may be made without departing from the scope of the present invention. Therefore, the scope of the present invention should not be limited to the above-described embodiments, but should be defined by the equivalents of the claims of the present invention as well as the following claims.
도 1은 일반적인 비트스트림의 데이터 구조를 보여주는 도면이다.1 is a diagram illustrating a data structure of a general bitstream.
도 2은 본 발명에 따른 가변길이부호 디코딩 시스템을 보여주는 도면이다.2 is a diagram illustrating a variable length code decoding system according to the present invention.
도 3은 본 발명의 가변길이부호 디코딩 시스템에서 에스램에 대한 실시예를 보여주는 도면이다.3 is a diagram illustrating an embodiment of an SRAM in the variable length code decoding system according to the present invention.
도 4는 본 발명에 따른 가변길이부호 디코딩 시스템의 디코딩 방법을 보여주는 흐름도이다. 4 is a flowchart illustrating a decoding method of a variable length code decoding system according to the present invention.
*도면의 주요부분에 대한 부호의 설명** Description of the symbols for the main parts of the drawings *
10: 가변길이부호 디코딩 시스템10: variable length code decoding system
100: 중앙처리장치 200: VLC 디코더100: central processing unit 200: VLC decoder
110: 픽쳐 레이어 120: 테이블 매니저110: picture layer 120: table manager
210: 에스램 220: 슬라이스 레이어210: SRAM 220: slice layer
230: 매크로블록 레이어 240: 블록 레이어230: macroblock layer 240: block layer
212,214,216,218: 에스램212,214,216,218: SRAM
Claims (18)
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR20070123227 | 2007-11-30 | ||
KR1020070123227 | 2007-11-30 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20090056790A true KR20090056790A (en) | 2009-06-03 |
KR100968808B1 KR100968808B1 (en) | 2010-07-08 |
Family
ID=40988124
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020080066007A KR100968808B1 (en) | 2007-11-30 | 2008-07-08 | Variable length code decoding system and decoding method thereof |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR100968808B1 (en) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3078138B2 (en) * | 1992-12-18 | 2000-08-21 | 沖電気工業株式会社 | Variable length code generator |
JPH0879535A (en) * | 1994-09-08 | 1996-03-22 | Tec Corp | Facsimile equipment |
JPH09246988A (en) * | 1996-03-05 | 1997-09-19 | Canon Inc | Decoder and method therefor |
JP2002016501A (en) * | 2000-04-28 | 2002-01-18 | Matsushita Electric Ind Co Ltd | Variable length decoder |
-
2008
- 2008-07-08 KR KR1020080066007A patent/KR100968808B1/en not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
KR100968808B1 (en) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2834975B1 (en) | Low-delay video buffering in video coding | |
EP3205106B1 (en) | Syntax structures indicating completion of coded regions | |
US9648321B2 (en) | Coding picture order count values identifying long-term reference frames | |
JP2020092457A (en) | Image prediction method and apparatus | |
US7995650B2 (en) | Picture coding method, picture decoding method, picture coding apparatus, picture decoding apparatus, and program thereof | |
CN103202016A (en) | Adaptive motion vector resolution signaling for video coding | |
US20060159165A1 (en) | Picture coding method and picture decoding method | |
US10484721B2 (en) | Method for motion estimation of non-natural video data | |
EP1383339A1 (en) | Memory management method for video sequence motion estimation and compensation | |
US20240007663A1 (en) | Video picture prediction method and apparatus | |
CN104365106A (en) | Signaling data for long term reference pictures for video coding | |
CN115462073A (en) | Parameter set syntax elements and variables in video coding | |
US20070133689A1 (en) | Low-cost motion estimation apparatus and method thereof | |
CN109923865A (en) | A kind of coding/decoding method of video data, decoding apparatus, coding method and code device | |
CN114128260A (en) | Efficient coding of global motion vectors | |
US11601667B2 (en) | Inter prediction method and related apparatus | |
CN113170108A (en) | Adaptive block update for unavailable reference frames using explicit and implicit signaling | |
CN111937389A (en) | Apparatus and method for video encoding and decoding | |
US8326060B2 (en) | Video decoding method and video decoder based on motion-vector data and transform coefficients data | |
KR100968808B1 (en) | Variable length code decoding system and decoding method thereof | |
CN111435989B (en) | Video encoding and decoding methods, devices and computer storage medium | |
US20070171980A1 (en) | Method and Related Apparatus For Decoding Video Streams | |
KR100543443B1 (en) | Embedded memory for video compression | |
US20080049836A1 (en) | Method and System for a Fast Video Transcoder |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |