KR20090056790A - Variable length code decoding system and decoding method thereof - Google Patents

Variable length code decoding system and decoding method thereof Download PDF

Info

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
Application number
KR1020080066007A
Other languages
Korean (ko)
Other versions
KR100968808B1 (en
Inventor
김창선
차진종
최성훈
김무성
윤형근
강해용
Original Assignee
한국전자통신연구원
주식회사 씬멀티미디어
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원, 주식회사 씬멀티미디어 filed Critical 한국전자통신연구원
Publication of KR20090056790A publication Critical patent/KR20090056790A/en
Application granted granted Critical
Publication of KR100968808B1 publication Critical patent/KR100968808B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods 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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/174Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods 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/17Methods 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/176Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods 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/423Methods 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

A system for decoding a VLC(Variable Length Code) and a decoding method thereof are provided to reduce gate count and reduce power consumption by uploading and using only the table information needed for a received frame. A CPU(100) receives a group picture and extracts a plurality of frames from the received group picture. A VLC decoder(200) decodes the frames received from the CPU. The VLC decoder stores table information, which is loaded from the CPU and is needed for decoding the frame, to an SRAM(210). The CPU included a picture layer(110) and a table manager(120). The picture layer decodes the group picture into a plurality of frames. The table manager receives the frame to be decoded and loads the table information to the SRAM.

Description

가변길이부호 디코딩 시스템 및 그것의 디코딩 방법{VARIABLE LENGTH CODE DECODING SYSTEM AND DECODING METHOD THEREOF}Variable length code decoding system and its decoding method {VARIABLE LENGTH CODE DECODING SYSTEM AND DECODING METHOD THEREOF}

본 발명은 가변길이부호 디코딩 시스템 및 그것의 디코딩 방법에 관한 것이다.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 pictures 100 Mbits per second (current television reception quality) is required. Therefore, it is not practical for the information media described above to handle this huge amount of information in digital form. Therefore, an information compression technique is required, and in the case of a video phone, for example, a video compression technique conforming to the H.261 and H.263 standards internationally standardized by the International Telecommunication Union-Telecommunication Standardization Sector (ITU-T) Is used.

일반적으로, 동화상의 부호화에서, 정보의 양은 시간과 공간의 방향으로 용장성(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 code decoding system 10 according to the present invention. Referring to FIG. 2, the variable length code decoding system 10 includes a central processing unit (CPU) 100 and a variable length code (VLC) decoder 200. The VLC decoder 200 of the present invention performs decoding on a frame basis and includes an SRAM 210 that stores table information necessary to decode the frame.

도 2에 도시된 바와 같이 디코딩 시스템(10)에서는 프레임을 디코딩하는 데 필요한 데이터 정보를 저장하기 위하여 에스램을 이용하였다. 그러나 본 발명의 디 코딩 시스템이 프레임을 디코딩하는 데 필요한 데이터 정보를 저장하기 위한 장치가 반드시 에스램에 국한될 필요가 없다는 것은 당업자에게 자명하다. 본 발명의 디코딩 시스템에서는 프레임을 디코딩하는 데 필요한 데이터를 저장하기 위하여 램과 같은 휘발성 메모리 장치를 이용할 수 있다.As shown in FIG. 2, the decoding system 10 uses an SRAM to store data information necessary to decode a frame. However, it will be apparent to those skilled in the art that an apparatus for storing data information necessary for decoding a frame by the decoding system of the present invention is not necessarily limited to SRAM. In the decoding system of the present invention, a volatile memory device such as a RAM may be used to store data necessary for decoding a frame.

중앙처리장치(100)는 픽쳐 레이어(110) 및 테이블 메니저(120)를 포함하고 있다. 픽쳐 레이어(110)는 그룹 픽쳐(Group of Pictures:이하 'GOP'라고 함)부터 복수의 픽쳐들을 추출한다. 일반적으로 각 픽쳐는 프레임(frame)이라고 부른다. 즉, 픽쳐 레이어(110)는 GOP를 디코딩하여 복수의 프레임들을 추출한다. 여기서 픽쳐 레이어(110)로부터 추출된 복수의 프레임들은 차례로 VLC 디코더(200)에 의하여 디코딩된다. 테이블 매니저(120)는 픽쳐 레이어(110)로부터 프레임을 전달받고, 전달된 프레임을 디코딩하는데 필요한 테이블 정보를 파악한다. 테이블 매니저(120)는 파악한 테이블 정보를 VLC 디코더(200)의 에스램(210)으로 로딩시킨다.The CPU 100 includes a picture layer 110 and a table manager 120. The picture layer 110 extracts a plurality of pictures from a group picture (hereinafter, referred to as a 'GOP'). In general, each picture is called a frame. That is, the picture layer 110 decodes the GOP and extracts a plurality of frames. Here, the plurality of frames extracted from the picture layer 110 are sequentially decoded by the VLC decoder 200. The table manager 120 receives a frame from the picture layer 110 and grasps table information necessary to decode the delivered frame. The table manager 120 loads the checked table information into the SRAM 210 of the VLC decoder 200.

한편, 픽쳐 레이어(110)로부터 디코딩된 픽쳐 즉 추출된 프레임들 각 프레임을 디코딩하는데 필요한 테이블 정보를 포함하고 있다. 이러한 테이블 정보는 프레임의 종류에 따라 다르다. 예를 들어, 프레임이 I 프레임(Infra Frame)이라고 할 때, CBPCY 테이블, AC 디퍼런셜 테이블, 및 DC 디퍼런셜 테이블이 필요하다.On the other hand, the picture decoded from the picture layer 110, that is, the extracted frame includes the table information necessary to decode each frame. This table information depends on the type of frame. For example, when a frame is called an I frame, an CBPCY table, an AC differential table, and a DC differential table are required.

상술된 바와 같이, 중앙처리장치(100)는 GOP로부터 복수의 프레임을 추출하고, VLC 디코더(200)가 디코딩 동작을 수행할 수 있도록 준비하는 기능을 수행한다. 즉, 중앙처리장치(100)는 디코딩될 프레임 및 이 프레임을 디코딩하기 위해 필요한 테이블 정보를 VLC 디코더(200)로 전달하고, 에스램(210)에 테이블 정보의 로 딩이 완료되면 VLC 디코더(200)로 동작 신호(DECEN)를 전달한다. 본 발명의 VLC 디코더(200)는 프레임 단위로 디코딩을 수행한다. 따라서, 중앙처리장치(100)는 추출된 프레임들을 차례로 VLC 디코더(200)로 전달하도록 구현된다.As described above, the CPU 100 performs a function of extracting a plurality of frames from the GOP and preparing the VLC decoder 200 to perform a decoding operation. That is, the central processing unit 100 transmits the frame to be decoded and table information necessary to decode the frame to the VLC decoder 200, and when loading of the table information to the SRAM 210 is completed, the VLC decoder 200. ) Transmits the operation signal DECEN. The VLC decoder 200 of the present invention performs decoding in units of frames. Thus, the CPU 100 is implemented to deliver the extracted frames to the VLC decoder 200 in turn.

VLC 디코더(200)는 동작 신호(DECEN)에 응답하여 중앙처리장치(100)로부터 입력된 하나의 프레임에 대한 디코딩을 시작한다. 한편 프레임을 디코딩하는데 필요한 테이블 정보는 에스램(210)에 이미 로딩되어 있다. VLC 디코더(200)는 에스램(210)에 로딩된 테이블 정보를 이용하여 입력된 프레임에 대한 디코딩 동작을 수행한다.The VLC decoder 200 starts decoding one frame input from the CPU 100 in response to the operation signal DECEN. Meanwhile, table information necessary to decode the frame is already loaded in the SRAM 210. The VLC decoder 200 performs a decoding operation on the input frame using the table information loaded on the SRAM 210.

VLC 디코더(200)의 프레임에 대한 디코딩 동작은 아래와 같다. 슬라이스 레이어(220)는 중앙처리장치(100)로부터 입력된 프레임을 디코딩하여 복수의 슬라이스들을 추출한다. 매크로블록 레이어(230)는 슬라이스 레이어(220)에서 디코딩된 복수의 슬라이스들 각각을 디코딩하여 복수의 매크로 블록들로 추출한다. 블럭 레이어(230)는 매크로블록 레이어(230)에서 디코딩된 복수의 매크로 블록들 각각을 디코딩하여 복수의 블록들을 추출한다. 상술한 과정은 입력된 프레임에 대한 디코딩이 완료될 때까지 반복된다. 중앙처리장치(100)로부터 입력된 프레임에 대한 디코딩 동작이 완료되면, VLC 디코더(200)는 인터럽트 신호를 중앙처리장치(100)로 전달한다. 이때 VLC 디코더(200)는 중앙처리장치(100)로부터 다음 동작 신호(DECEN)을 전달받기까지 대기 상태에 놓인다.The decoding operation on the frame of the VLC decoder 200 is as follows. The slice layer 220 decodes a frame input from the CPU 100 and extracts a plurality of slices. The macroblock layer 230 decodes each of the plurality of slices decoded in the slice layer 220 and extracts the plurality of macroblocks. The block layer 230 extracts each of the plurality of blocks by decoding each of the plurality of macroblocks decoded in the macroblock layer 230. The above-described process is repeated until decoding of the input frame is completed. When the decoding operation for the frame input from the CPU 100 is completed, the VLC decoder 200 transmits an interrupt signal to the CPU 100. At this time, the VLC decoder 200 is in a waiting state until receiving the next operation signal DECEN from the CPU 100.

중앙처리장치(100)는 전달된 인터럽트 신호에 응답하여 다음 프레임에 대하여 디코딩 동작 준비한다. 즉, 디코딩할 프레임이 테이블 매니저(120)에 전달되고, 디코딩할 프레임에 대응하는 테이블 정보가 에스램(210)에 로딩된다. 또한, 에스램(210)에 테이블 정보의 로딩이 완료되면, 중앙처리장치(100)는 동작 신호(DECEN)을 VLC 디코더(100)에 전달한다. VLC 디코더(100)는 전달된 동작 신호(DECEN)에 응답하여 새롭게 입력된 프레임에 대한 디코딩을 수행한다.The CPU 100 prepares a decoding operation for the next frame in response to the transmitted interrupt signal. That is, the frame to be decoded is transferred to the table manager 120, and table information corresponding to the frame to be decoded is loaded into the SRAM 210. In addition, when the loading of the table information to the SRAM 210 is completed, the CPU 100 transmits an operation signal DECEN to the VLC decoder 100. The VLC decoder 100 performs decoding on a newly input frame in response to the transferred operation signal DECEN.

본 발명의 가변길이부호 디코딩 시스템(10)에서는 중앙처리장치(100)에 픽쳐 레이어(110)가 포함된다. 즉, 중앙처리장치(100)에서 GOP를 디코딩하여 복수의 픽쳐들 즉 프레임들을 추출한다. 한편, VLC 디코더(200)는 중앙처리장치(100)에서 전달된 하나의 프레임에 대하여만 디코딩을 수행한다. 즉, 중앙처리장치(100) 및 VLC 디코더(200)에서는 프레임 단위로 인터페이스가 수행된다. 이러한 가변길이부호 디코딩 시스템(10)은 최소의 중앙처리장치 성능을 이용하여 유동성(Flexiblity)를 보장하면서, VLC 디코더의 게이트 카운트를 현저하게 줄일 수 있게 된다.In the variable length code decoding system 10 of the present invention, a picture layer 110 is included in the CPU 100. That is, the CPU 100 extracts a plurality of pictures, that is, frames, by decoding the GOP. Meanwhile, the VLC decoder 200 decodes only one frame transmitted from the CPU 100. That is, the CPU 100 and the VLC decoder 200 perform an interface on a frame basis. The variable length code decoding system 10 can significantly reduce the gate count of the VLC decoder while ensuring flexibility by using the minimum CPU performance.

도 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 SRAM 200 in the variable length code decoding system 10 of the present invention. Referring to FIG. 3, the VLC decoder 200 of the present invention includes a VLC decoder logic circuit 201 and SRAMs 212, 214, 216, and 218. Here, the VLC decoder logic circuit 201 is a portion of the VLC decoder 200 illustrated in FIG. 2 except for the SRAM 210. The SRAM 200 of the present invention includes an AC differential memory 212, an MV differential memory 214, a CBPCY memory 216, and a DC differential memory 218. The AC differential memory 212 is where the AC differential table is stored. The MV differential memory 214 is where the MV differential table is stored. CBPCY memory 216 is where the CBPCY table is stored. The DC differential memory 218 is where the DC differential table is stored. Each of the memories 212, 214, 216, 218 is loaded with tables necessary for decoding the frame to be decoded from the table manager 120 of the CPU 100.

종래의 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.

에스램 메모리 종류SRAM Memory Types 크기size AC 디퍼런셜 메모리AC differential memory 186×23 / 127×11 / 65×9 186 × 23/127 × 11/65 × 9 MV 디퍼런셜 메모리MV Differential Memory 72 ×1472 × 14 CBCVY 메모리CBCVY memory 64×1164 × 11 DC 디퍼런셜 메모리DC differential memory 119×21 / 119×26119 × 21/119 × 26

여기서 에스램(210)의 쓰기 동작은 중앙처리장치(100)가 제어한다. 또한VLC 디코더 로직회로(201)는 에스램(210)으로부터 읽기 동작만 수행한다.Here, the write operation of the SRAM 210 is controlled by the CPU 100. In addition, the VLC decoder logic circuit 201 performs only a read operation from the SRAM 210.

도 3에 도시된 에스램(200)은 네개의 메모리들(212,214,216,218)을 포함한다. 하지만, 본 발명의 에스램이 반드시 여기에 국한될 필요는 없다. 본 발명의 에스램은 하나의 메모리로 구현될 수도 있다.The SRAM 200 shown in FIG. 3 includes four memories 212, 214, 216, and 218. However, the SRAM of the present invention is not necessarily limited thereto. The SRAM of the present invention may be implemented as one memory.

도 4는 본 발명에 따른 가변길이부호 디코딩 시스템(10)의 디코딩 방법을 보여주는 흐름도이다. 도 2 내지 도 4을 참조하면, 본 발명에 따른 가변길이부호 디코딩 시스템(10)의 디코딩 방법은 아래와 같다.4 is a flowchart illustrating a decoding method of the variable length code decoding system 10 according to the present invention. 2 to 4, a decoding method of the variable length code decoding system 10 according to the present invention is as follows.

본 발명에 따른 가변길이부호 디코딩 시스템(10)의 VLC 디코더(200)는 프레임 단위로 디코딩을 수행한다. 이를 위하여 중앙처리장치(100)는 디코딩될 GOP로부터 복수의 프레임들을 추출한다. 즉, 픽쳐 레이어(110)는 GOP를 디코딩하여 복수의 픽쳐들 즉 복수의 프레임들을 추출한다. 여기서 복수의 프레임들은 순서대로 VLC 디코더(200)에서 디코딩될 것이다(S110).The VLC decoder 200 of the variable length code decoding system 10 according to the present invention performs decoding on a frame basis. To this end, the CPU 100 extracts a plurality of frames from the GOP to be decoded. That is, the picture layer 110 decodes the GOP to extract a plurality of pictures, that is, a plurality of frames. Here, the plurality of frames will be decoded in the VLC decoder 200 in order (S110).

픽쳐 레이어(110)에서 추출된 프레임은 테이블 매니저(120)로 전달된다. 테이블 매니저(120)는 추출된 프레임으로부터 이를 디코딩하는 데 필요한 테이블 정보를 알아내고, 파악한 테이블 정보를 에스램(210)으로 로딩시킨다(S120). 에스램(210)에 테이블 정보의 로딩이 완료되면, 중앙처리장치(100)는 동작 신호(DECEN)를 VLC 디코더(200)에 전달하여 추출된 프레임에 대한 디코딩을 시작하게 한다. VLC 디코더(200)는 동작 신호(DECEN)에 응답하여 에스램(210)에 로딩된 테이블 정보를 이용하여 추출된 프레임에 대한 디코딩을 수행한다(S130). 여기서 프레임에 대한 디코딩 동작은 도 2에 도시된 바와 같다. The frame extracted from the picture layer 110 is transferred to the table manager 120. The table manager 120 finds table information necessary to decode the extracted frame from the extracted frame, and loads the determined table information into the SRAM 210 (S120). When the loading of the table information to the SRAM 210 is completed, the CPU 100 transmits an operation signal DECEN to the VLC decoder 200 to start decoding the extracted frame. The VLC decoder 200 performs decoding on the extracted frame using the table information loaded on the SRAM 210 in response to the operation signal DECEN (S130). Here, the decoding operation on the frame is as shown in FIG. 2.

프레임에 대한 디코딩이 완료되면, 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 VLC decoder 200 generates an interrupt signal and transmits the interrupt signal to the CPU 100. At this time, the VLC decoder 200 is in a waiting state until receiving the next operation signal DECEN. Meanwhile, the CPU 100 prepares a decoding operation for the next frame extracted in response to the interrupt signal. That is, the next frame is transferred to the table manager 120, and the table manager 120 finds out table information necessary to decode the delivered frame, and the determined table information is loaded into the SRAM 210. Thereafter, when the loading of the table information to the SRAM 210 is completed, the CPU 100 generates an operation signal DECEN and transmits the generated operation signal DECEN to the VLC decoder 200. The VLC decoder 200 performs a decoding operation on the next frame using the table information newly stored in the SRAM 210 as described above in response to the operation signal DECEN.

본 발명의 가변길이부호 디코딩 시스템에서는 에스램에 테이블 정보가 로딩되었다. 그러나 본 발명의 가변길이부호 디코딩 시스템이 반드시 에스램에 테이블 정보가 저장될 필요가 없다는 것은 당업자에 자명하다. 본 발명에서는 테이블 정보를 저장하기 위한 메모리 장치로 에스램 이외에도 디램 등 휘발성 메모리 장치 혹은 비휘발성 메모리 장치가 사용될 수 있다.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)

가변길이부호 디코딩 시스템의 디코딩 방법에 있어서:In the decoding method of a variable length code decoding system: 픽쳐 그룹으로부터 프레임을 추출하는 단계;Extracting a frame from a picture group; 추출된 프레임을 디코딩하는데 필요한 테이블 정보를 휘발성 메모리 장치에 로딩하는 단계; 및Loading table information necessary for decoding the extracted frame into the volatile memory device; And 상기 로딩된 테이블 정보를 이용하여 상기 추출된 프레임을 디코딩하는 단계를 포함하는 가변길이부호 디코딩 방법.And decoding the extracted frame by using the loaded table information. 제 1 항에 있어서,The method of claim 1, 상기 프레임을 추출하는 단계는,Extracting the frame, 상기 픽쳐 그룹을 입력받는 단계;Receiving the picture group; 입력된 픽쳐 그룹을 디코딩하여 복수의 프레임들을 추출하는 단계를 포함하는 가변길이부호 디코딩 방법.And extracting a plurality of frames by decoding an input picture group. 제 2 항에 있어서,The method of claim 2, 상기 프레임을 추출하는 단계는 중앙처리장치에서 수행되는 것을 특징으로 하는 가변길이부호 디코딩 방법.And extracting the frame is performed in a central processing unit. 제 3 항에 있어서,The method of claim 3, wherein 상기 디코딩된 복수의 프레임들은 순서대로 가변길이부호 디코더에 의하여 디코딩되는 것을 특징으로 하는 가변길이부호 디코딩 방법.And a plurality of decoded frames are sequentially decoded by a variable length code decoder. 제 4 항에 있어서,The method of claim 4, wherein 상기 중앙처리장치와 상기 가변길이부호 디코더는 프레임 단위로 인터페이스를 수행하는 것을 특징으로 하는 가변길이부호 디코딩 방법.And the central processing unit and the variable length code decoder perform an interface on a frame basis. 제 4 항에 있어서,The method of claim 4, wherein 상기 휘발성 메모리 장치는 에스램인 것을 특징으로 하는 가변길이부호 디코딩 방법.The volatile memory device is a variable length code decoding method, characterized in that the SRAM. 제 6 항에 있어서,The method of claim 6, 상기 테이블 정보가 에스램에 로딩되는 단계는,The step of loading the table information on the SRAM, 상기 중앙처리장치가 상기 프레임을 디코딩하는데 필요한 테이블들을 파악하는 단계; 및Identifying, by the central processing unit, tables necessary for decoding the frame; And 상기 중앙처리장치가 상기 파악한 테이블들을 상기 에스램에 로딩하는 단계를 포함하는 가변길이부호 디코딩 방법.And loading the determined tables by the CPU into the SRAM. 제 7 항에 있어서,The method of claim 7, wherein 상기 테이블 정보가 상기 에스램에 로딩이 완료되면, 상기 중앙처리장치는 상기 가변길이부호 디코더를 활성화시키기 위한 동작 신호를 생성하는 것을 특징으로 하는 가변길이부호 디코딩 방법.And when the table information is loaded into the SRAM, the CPU generates an operation signal for activating the variable length code decoder. 제 8 항에 있어서,The method of claim 8, 상기 추출된 프레임에 대한 디코딩이 완료된 후 상기 가변길이부호 디코더는 상기 중앙처리장치에 인터럽트 신호를 전달하는 것을 특징으로 하는 가변길이부호 디코딩 방법.And after the decoding of the extracted frame is completed, the variable length code decoder transmits an interrupt signal to the CPU. 제 9 항에 있어서,The method of claim 9, 상기 추출된 프레임에 대한 디코딩이 완료된 후, 상기 가변길이부호 디코더는 상기 중앙처리장치로부터 다음 프레임에 대한 상기 동작 신호가 전달될 때까지 대기 상태에 있는 것을 특징으로 하는 가변길이부호 디코딩 방법.And 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. 그룹 픽쳐를 입력받아 복수의 프레임들로 추출하는 중앙처리장치; 및A CPU for receiving a group picture and extracting the group picture into a plurality of frames; And 상기 중앙처리장치로부터 상기 복수의 프레임들을 프레임 단위로 입력받아 디코딩을 수행하는 가변길이부호 디코더를 포함하는 가변길이부호 디코딩 시스템.And a variable length code decoder configured to receive the plurality of frames from the CPU in units of frames and perform decoding. 제 11 항에 있어서,The method of claim 11, 상기 가변길이부호 디코더는 프레임을 디코딩하는 데 필요한 테이블 정보를 저장하는 것을 특징으로 하는 가변길이부호 디코딩 시스템.And the variable length code decoder stores table information necessary to decode a frame. 제 12 항에 있어서,The method of claim 12, 상기 가변길이부호 디코더는 상기 테이블 정보를 저장하는 에스램을 포함하고,The variable length code decoder includes an SRAM for storing the table information. 상기 테이블 정보는 상기 중앙처리장치로부터 로딩되는 것을 특징으로 하는 가변길이부호 디코딩 시스템.And the table information is loaded from the CPU. 상기 13 항에 있어서,The method of claim 13, 상기 중앙처리장치는,The central processing unit, 상기 그룹 픽쳐를 디코딩하여 복수의 프레임들로 추출하는 픽쳐 레이어; 및A picture layer for decoding the group picture and extracting the extracted picture into a plurality of frames; And 상기 추출된 프레임들 중 디코딩될 프레임을 입력받고, 상기 디코딩될 프레임을 디코딩하는데 필요한 테이블 정보를 상기 에스램에 로딩시키는 테이블 매니저를 포함하는 가변길이부호 디코딩 시스템.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. 상기 13 항에 있어서,The method of claim 13, 상기 중앙처리장치는 상기 테이블 정보가 상기 에스램에 로딩되면 상기 가변길이부호 디코더를 활성화시키기 위한 동작 신호를 생성하는 것을 특징으로 하는 가변길이부호 디코딩 시스템.And the central processing unit generates an operation signal for activating the variable length code decoder when the table information is loaded into the SRAM. 상기 13 항에 있어서,The method of claim 13, 상기 가변길이부호 디코더는,The variable length code decoder, 입력된 프레임을 디코딩하여 복수의 슬라이스들을 추출하는 슬라이스 레이어;A slice layer for decoding the input frame and extracting a plurality of slices; 상기 추출된 각 슬라이스를 디코딩하여 복수의 매크로 블록들을 추출하는 매크로 블록 레이어; 및A macro block layer which decodes each extracted slice to extract a plurality of macro blocks; And 상기 추출된 각 매크로 블록을 디코딩하여 복수의 블록들을 추출하는 블록 레이어를 포함하되,It includes a block layer for extracting a plurality of blocks by decoding each extracted macro block, 상기 슬라이스 레이어, 상기 매크로 블록 레이어, 및 상기 블록 레이어는 디코딩할 때 상기 에스램에 저장된 상기 테이블 정보를 이용하는 것을 특징으로 하는 가변길이부호 디코딩 시스템.And the slice layer, the macro block layer, and the block layer use the table information stored in the SRAM when decoding. 제 16 항에 있어서,The method of claim 16, 상기 프레임에 대한 디코딩이 완료되면, 상기 가변길이부호 디코더는 상기 중앙처리장치에 인터럽트 신호를 전달하고,When decoding of the frame is completed, the variable length code decoder transmits an interrupt signal to the CPU, 상기 중앙처리장치는 상기 인터럽트 신호에 응답하여 다음 프레임을 디코딩하도록 준비시키는 것을 특징으로 하는 가변길이부호 디코딩 시스템.And the CPU prepares to decode a next frame in response to the interrupt signal. 제 11 항에 있어서,The method of claim 11, 상기 테이블 정보는 복수의 종류의 테이블들을 포함하고,The table information includes a plurality of types of tables, 상기 에스램은 상기 복수의 종류의 테이블이 각각 저장되는 메모리들로 구분 되는 것을 특징으로 하는 가변길이부호 디코딩 시스템.And the SRAMs are divided into memories in which the plurality of types of tables are stored, respectively.
KR1020080066007A 2007-11-30 2008-07-08 Variable length code decoding system and decoding method thereof KR100968808B1 (en)

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)

* Cited by examiner, † Cited by third party
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

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