KR100754167B1 - 다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치 - Google Patents

다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치 Download PDF

Info

Publication number
KR100754167B1
KR100754167B1 KR1020040079488A KR20040079488A KR100754167B1 KR 100754167 B1 KR100754167 B1 KR 100754167B1 KR 1020040079488 A KR1020040079488 A KR 1020040079488A KR 20040079488 A KR20040079488 A KR 20040079488A KR 100754167 B1 KR100754167 B1 KR 100754167B1
Authority
KR
South Korea
Prior art keywords
transform
inverse
inverse transform
point
coefficients
Prior art date
Application number
KR1020040079488A
Other languages
English (en)
Other versions
KR20060030639A (ko
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 삼성전자주식회사
Priority to KR1020040079488A priority Critical patent/KR100754167B1/ko
Priority to US11/232,395 priority patent/US20060072846A1/en
Priority to CNA2005101125024A priority patent/CN1758758A/zh
Priority to NL1030132A priority patent/NL1030132C2/nl
Publication of KR20060030639A publication Critical patent/KR20060030639A/ko
Application granted granted Critical
Publication of KR100754167B1 publication Critical patent/KR100754167B1/ko

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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/14Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
    • G06F17/147Discrete orthonormal transforms, e.g. discrete cosine transform, discrete sine transform, and variations therefrom, e.g. modified discrete cosine transform, integer transforms approximating the discrete cosine transform

Abstract

본 발명은 동영상 코덱(codec)에서 사용되는 변환/역변환 방법 및 장치에 관한 것이다. 본 발명에 따른 동영상 코덱의 변환/역변환 방법은, 입력되는 데이터의 포맷 또는 크기에 따라 별도로 구비된 복수의 롬 테이블들 중 입력되는 데이터의 포맷 또는 크기에 따라 소정의 롬 테이블을 선택하는 단계; 및 선택된 롬 테이블을 참조하여 입력되는 데이터에 대하여 변환/역변환을 수행하는 단계를 포함하며, 변환/역변환을 수행하는 단계는, 입력되는 데이터의 포맷 또는 크기에 관계없이 8개의 데이터를 동시에 병렬적으로 처리하는 것을 특징으로 한다. 이에 따라, 입력되는 데이터의 크기나 종류에 제한을 받지 않고 효율적으로 역변환하는 방법 및 그 장치가 제공된다.

Description

다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치{Method of transforming/ inverse transforming blocks in various size and apparatus thereof}
도 1은 본 발명에 따른 변환/역변환 장치의 개념도,
도 2는 본 발명에 따른 변환/역변환 장치에 포함되는 제1 또는 제2 변환부의 블록도,
도 3은 본 발명에 따른 변환/역변환 장치에 포함되는 이항연산부의 동작을 설명하기 위한 도면,
도 4는 본 발명에 따른 변환/역변환 방법을 나타내는 플로차트,
도 5는 본 발명에 따라 8x8 변환/역변환을 수행하는 방법을 설명하기 위한 도면,
도 6은 본 발명에 따라 8x4 변환/역변환을 수행하는 방법을 설명하기 위한 도면,
도 7은 본 발명에 따라 4x8 변환/역변환을 수행하는 방법을 설명하기 위한 도면,
도 8은 본 발명에 따라 4x4 변환/역변환을 수행하는 방법을 설명하기 위한 도면이다.
본 발명은 동영상 코덱(codec)에 포함되는 변환(transform)/역변환 장치에 관한 것으로, 보다 구체적으로 입력되는 블록의 크기에 관계없이 효과적으로 변환/역변환하는 방법 및 그 장치에 관한 것이다.
최근 마이크로소프트(Microsoft)사는 국제 표준화 기구 중 하나인 SMPTE (the Society of Motion Picture and Television Engineers)에 동영상 압축 표준안인 VC1을 제출하였다. 현재 VC1 표준안에 대한 검토가 활발히 진행 중이며, 조만간 일부 수정을 거쳐 국제 표준으로 채택될 전망이다. 이미 동영상 압축 표준으로 채택되어 널리 응용되고 있는 MPEG(Motion Picture Experts Group)-2, MPEG-4, H.264 등에 더하여, VC1도 대표적인 동영상 압축 표준으로 자리잡을 것으로 기대된다.
VC1은 가장 압축 효율이 좋은 H.264에 대비하여 압축 효율이 80% 가까이 근접하면서도, 구현에 있어서의 복잡도는 H.264의 60% 수준으로 복잡도 대 성능비가 우수한 것으로 평가되고 있다. 물론, MPEG-2나 MPEG-4에 비해서는 화질 측면에서 우위를 보이는 것으로 알려지고 있다.
VC1은 기존의 표준들과 조금씩 변형된 툴(tool)들을 가진다. MPEG-2, H.264와 같은 동영상 압축 표준들은 기본적으로 예측 변환(predictive transform) 압축 방식을 사용한다. 즉, 움직임 추정/보상으로 일시적 중복(temporal redundancy)을 제거하고, 이산여현변환(Discrete Cosine Transform: 이하 DCT)/ 역 이산여현변환(IDCT)과 양자화/역양자화를 이용하여 공간적 중복(spatial redundancy)을 제거한다. MPEG-2의 경우 8x8 DCT/IDCT를 채택하고 있으며, H.264는 4x4 정수 변환(Integer Transform)을 채택하고 있다.
반면, VC1은 인터 매크로 블록의 경우 8x8, 4x8, 8x4, 4x4 등 다양한 크기의 블록에 대한 변환이 사용된다. 이와 같이 다양한 크기의 블록을 변환하여야 하므로, 각 블록에 대한 처리 시간이 증가하고, 제어가 복잡해지는 문제점이 있다.
따라서, 본 발명의 기술적 과제는 입력되는 블록의 크기에 관계없이 효과적으로 변환하는 방법 및 그 장치를 제공하는 것이다. 특히, 처리 시간의 증가를 막고, 제어를 단순화한 변환 방법 및 장치를 제안한다.
본 발명에 따르면 전술한 기술적 과제는, 동영상 코덱의 변환/역변환 장치에 있어서, 변환/역변환 시에 참조하기 위하여 입력되는 데이터의 포맷 또는 크기에 따라 별도로 구비된 복수의 롬테이블들과, 상기 복수의 롬테이블들 중 입력되는 데이터의 포맷 또는 크기에 따라 소정의 롬테이블을 선택하여 행 방향의 변환/역변환을 수행하는 제1 변환/역변환부와, 상기 제1 변환/역변환부의 처리 결과에 대하여 행과 열을 바꾸는 이항 연산을 수행하는 이항연산부 및 상기 복수의 롬테이블들 중 입력되는 데이터의 포맷 도는 크기에 따라 상기 소정의 롬테이블을 선택하여 열 방향의 변환/역변환을 수행하는 제2 변환/역변환부를 구비하는 변환/역변환 처리부를 포함하며, 상기 제1 변환/역변환부는 입력되는 데이터의 행 방향의 계수들이 4개의 계수들로 구성된 경우 2개의 4포인트 변환/역변환을 수행하고, 상기 행 방향의 계수들이 8개의 계수들로 구성된 경우 1개의 8포인트 변환/역변환을 수행함으로써 8개의 데이터를 동시에 병렬적으로 처리하는 것을 특징으로 하는 변환/역변환 장치에 의해 달성된다.
삭제
삭제
상기 이항연산부는 병렬적으로 처리된 제1 변환/역변환부의 처리 결과에 대하여 8x8 단위로 한번에 이항연산을 수행하는 것이 바람직하다.
또한, 상기 제1 변환/역변환부는, 입력되는 데이터가 8x8 또는 4x8 타입이면 8개의 계수들로 구성된 행에 대하여 한 개의 8포인트 변환/역변환을 수행하며, 입력되는 데이터가 8x8 또는 4x8 타입이 아니면, 8개의 계수로 구성된 행에 대하여 두 개의 4포인트 변환/역변환을 동시에 병렬적으로 수행하는 것이 바라직하며,
상기 제2 변환/역변환부는, 입력되는 데이터가 8x8 또는 4x8 타입이면 8개의 계수들로 구성된 열에 대하여 한 개의 8포인트 변환/역변환을 수행하며, 입력되는 데이터가 8x8 또는 4x8 타입이 아니면, 8개의 계수로 구성된 열에 대하여 두 개의 4포인트 변환/역변환을 동시에 병렬적으로 수행하는 것이 바람직하다.
또한, 상기 포맷은 MPEG-2 및 VC1 중 적어도 하나를 포함하며,
상기 크기는 8x8, 8x4, 4x8, 및 4x4 중 적어도 하나를 포함하는 것이 바람직하며,
상기 변환/역변환 처리부는 입력되는 데이터의 포맷 또는 크기에 상관없이 동일한 구조를 가지는 것이 특히 바람직하다.
한편, 본 발명의 다른 분야에 따르면, 전술한 기술적 과제는 전술한 변환/역 변환 장치를 포함하며 멀티 포맷을 지원하는 것을 특징으로 하는 동영상 코덱 장에 의해 달성된다.
한편, 본 발명의 또 다른 분야에 따르면, 전술한 기술적 과제는, 동영상 코덱의 변환/역변환 방법에 있어서, 입력되는 데이터의 포맷 또는 크기에 따라 별도로 구비된 복수의 롬테이블들 중 입력되는 데이터의 포맷 또는 크기에 따라 소정의 롬테이블을 선택하는 단계; 및 상기 선택된 롬테이블을 참조하여 입력되는 데이터에 대하여 행 방향의 변환/역변환을 수행하는 제1 변환/역변환 단계와, 상기 행 방향의 변환/역변환의 처리 결과에 대하여 행과 열을 바꾸는 이항 연산을 수행하는 이항 연산 단계와 상기 선택된 롬테이블을 참조하여 상기 이항 연산 결과에 대하여 열 방향의 변환/역변환을 수행하는 제2 변환/역변환 단계를 구비하는 변환/역변환 단계를 포함하며, 상기 제1 변환/역변환 단계는 입력되는 데이터의 행 방향의 계수들이 4개의 계수들로 구성된 경우 2개의 4포인트 변환/역변환을 수행하고, 상기 행 방향의 계수들이 8개의 계수들로 구성된 경우 1개의 8포인트 변환/역변환을 수행함으로써 8개의 데이터를 동시에 병렬적으로 처리하는 것을 특징으로 하는 변환/역변환 방법에 의해 달성된다.
이하에서는 첨부한 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명한다.
변환(transform)과 역변환(inverse transform)은 사용되는 행렬이 다를 뿐 그 과정이 동일하다. 따라서, 이하에서는 설명의 편의상 역변환(inverse transform)을 기준으로 설명하기로 하며, 역변환에 적용되는 원리는 동일하게 변환(transform)에 대하여 적용할 수 있다.
VC1 영상압축 방식에는 처리되는 블록의 크기에 따라 8x8, 8x4, 4x8, 4x4의 모두 네 가지 종류의 역변환이 존재하며, 각 역변환은 크게 3 단계로 구분된다. 즉, 역변환을 행 방향과 열 방향으로 분리하여, 한 번은 행 방향으로 1차원 역변환하고, 다시 열 방향으로 한번 더 1차원 역변환을 수행한다. 이와 같이 행 방향과 열 방향으로 2번 역변환하는 것을 2차원 역변환이라 한다. 행 방향으로 역변환한 후 열 방향으로 역변환하기 위하여, 제1 역변환이 완료된 후 2개의 레지스터를 이용하여 행과 열을 바꾸는 이항(transpose) 연산을 수행한다.
도 1은 본 발명에 따른 변환/역변환 장치의 개념도이다.
도 1을 참조하면, 본 발명에 따른 역변환 장치(1)는, 행 방향으로 1차원 역변환을 수행하는 제1 역변환부(10)와, 2개의 레지스터 그룹을 이용하여 행과 열을 바꿔주는 이항(transpose)연산을 수행하는 이항연산부(20), 그리고 열 방향으로 1차원 역변환을 수행하는 제2 역변환부(30)를 구비한다. 여기서 제1 역변환부와 제2 역변환부는 입력 데이터의 크기와 후술하는 롬 테이블(ROM Table)만 다를 뿐 그 구조는 거의 유사하다.
보다 구체적으로, VC1에 따른 역변환 과정을 살펴보면 다음과 같다. 먼저, 8포인트 단위의 역변환과 4포인트 단위의 역변환의 경우에 사용되는 각 행렬을 살펴본다.
8포인트 블록에 대하여 행 방향의 제1 역변환을 위한 행렬은 다음과 같다.
Figure 112004045340666-pat00001
여기서,
Figure 112004045340666-pat00002
이다.
또한, 8포인트 블록에 대하여 열 방향의 제2 역변환을 위한 행렬은 다음과 같다.
Figure 112004045340666-pat00003
여기서,
Figure 112004045340666-pat00004
이다.
또한, 8포인트 블록에 대하여 제2 역변환에 사용되는 보정을 위한 행렬은 다음과 같다.
Figure 112004045340666-pat00005
여기서,
Figure 112004045340666-pat00006
이다.
한편, 4포인트 블록에 대하여 행 방향의 제1 역변환을 위한 행렬은 다음과 같다.
Figure 112004045340666-pat00007
여기서,
Figure 112004045340666-pat00008
이다.
또한, 4포인트 블록에 대하여 열 방향의 제2 역변환을 위한 행렬은 다음과 같다.
Figure 112004045340666-pat00009
여기서,
Figure 112004045340666-pat00010
이다.
전술한 행렬들을 이용하여 다양한 크기의 블록에 대한 역변환 식을 살펴본다.
1) 8x8 역변환의 경우
행 방향의 8포인트 제1 역변환은 수학식1에 의해 수행한다.
Figure 112004045340666-pat00011
제1 역변환 결과인 D1이 얻어지면 이항연산을 거쳐 행과 열이 바뀌며, 열 방향의 8 포인트 제2 역변환을 다음 수학식2에 의해 수행한다.
Figure 112004045340666-pat00012
2) 8x4 역변환의 경우
행 방향의 4포인트 제1 역변환은 수학식 3에 의해 수행되고, 이항연산을 거쳐 열 방향의 8포인트 제2 역변환은 수학식 4에 의해 수행된다.
Figure 112004045340666-pat00013
Figure 112004045340666-pat00014
3) 4x8 역변환의 경우
행 방향의 8포인트 제1 역변환은 수학식 5에 의해 수행되고, 이항연산을 거쳐 열 방향의 4포인트 제2 역변환은 수학식 5에 의해 수행된다.
Figure 112004045340666-pat00015
Figure 112004045340666-pat00016
4) 4x4 역변환의 경우
행 방향의 4포인트 제1 역변환은 수학식 7에 의해 수행되고, 이항연산을 거쳐 열 방향의 4포인트 제2 역변환은 수학식 8에 의해 수행된다.
Figure 112004045340666-pat00017
Figure 112004045340666-pat00018
전술한 변환 과정을 하드웨어로 구현하는 방법들은 매우 다양하다. 일 실시 예로서 2004년 7월 19일자로 출원한 한국 특허출원 제2004-55894호에서는 다양한 크기의 블록들에 대한 변환을 위해 복수개의 롬 테이블과 멀티플렉서를 사용한 변환 장치를 개시한바 있다.
도 2는 본 발명에 따른 변환/역변환 장치에 포함되는 제1 또는 제2 변환부의 블록도이다.
도 2를 참조하면, 본 발명에 따른 변환/역변환 장치 중 제1 또는 제2 역변환부의 구조가 도시되어 있다. 즉, 제1 또는 제2 역변환부는 역변환을 위한 참조 테이블을 포함하는 적어도 하나의 롬 테이블(202 및 204)과 역변환 처리부(206)를 구비한다.
롬 테이블은, 8x8 또는 8x4 단위의 역변환을 위한 8포인트 롬 테이블 그룹(202)과 4x8 또는 4x4 단위의 역변환을 위한 4포인트 롬 테이블 그룹(204)을 포함한다. 각 롬 테이블에는 전술한 각 행렬의 내용이 포함된다. 예를 들어, 8포인트 롬 테이블의 경우
Figure 112004045340666-pat00019
Figure 112004045340666-pat00020
행렬의 내용이 포함되며, 4포인트 롬 테이블의 경우
Figure 112004045340666-pat00021
Figure 112004045340666-pat00022
행렬의 내용이 포함된다. 즉, 입력되는 데이터의 형태가 8x8, 8x4, 4x8, 또는 4x4인가에 따라 대응하는 롬 테이블이 선택되어 역변환 처리부(206)에서 역변환을 수행할 때 참조된다.
이에 따라, 종래의 MPEG-2의 이산여현변환(DCT)과 같이 8x8로 고정된 크기의 데이터가 입력되는 경우와 달리, 다양한 크기의 데이터가 입력되더라도, 선택되는 롬 테이블만 변경함으로써 동일한 하드웨어 구조를 이용하여 다양한 크기의 데이터 를 역변환할 수 있다.
역변환 처리부(206)는 입력되는 데이터의 크기에 따라 8포인트 롬 테이블 그룹(202) 또는 4포인트 롬 테이블 그룹(204)을 적절히 선택하여 역변환 시에 참조한다.
요약하면, 본 발명에서는 8x8, 8x4, 4x8, 및 4x4 등 다양한 크기의 데이터를 처리할 수 있도록 하기 위하여 8포인트 롬 테이블 그룹과 4포인트 롬 테이블 그룹을 별도로 구비하며, 입력되는 데이터의 크기에 따라 적절히 선택하여 역변환 처리부에서 참조한다. 4포인트용 롬 테이블 그룹과 8포인트용 롬테이블 그룹은 각각 멀티플렉스 되어 입력되는 데이터의 크기에 따라 적절히 선택하여 역변환에 이용할 수 있다. 이에 따라, 하드웨어 구조의 변경이 없이도, 입력되는 데이터의 크기나 종류에 제한을 받지 않고 효율적으로 역변환하는 방법 및 그 장치가 제공된다.
나아가, VC1 뿐만 아니라 MPEG 표준의 8x8 크기의 데이터도 동일한 하드웨어 구조로 역변환할 수 있다. 이와 같이, 본 발명에 따른 역변환 방법 및 그 장치를 이용하면 멀티 포맷 디코더를 구현할 수 있다.
도 3은 본 발명에 따른 변환/역변환 장치에 포함되는 이항연산부의 동작을 설명하기 위한 도면이다.
도 3 및 도 1을 참조하면, 이항연산부(20)는 행 방향의 제1 역변환 결과를 행과 열을 바꾸어 열 방향의 제2 역변환이 수행되도록 준비한다. 입력되는 블록의 크기가 8x8인 경우, 도 3에 도시된 바와 같이 8x8 이항연산을 수행한다. 물론, 입력되는 블록의 크기가 8x4, 4x8, 4x4인 경우에는 각 블록의 크기에 맞는 이항연산 이 수행된다.
도 3 및 도 4에서 전술한 역변환 방법을 정리하면 다음과 같다.
1) 8x8 블록의 경우
행 방향으로 8포인트 역변환을 수행하고, 열과 행을 바꾸어 8x8 단위의 이항연산한 후, 다시 열 방향으로 8포인트 역변환을 수행한다.
2) 8x4 블록의 경우
행 방향으로 4포인트 역변환을 8번 수행하고, 8x4 단위의 이항연산한 후 열 방향으로 8포인트 역변환을 4번 수행한다. 8x8 블록을 기준으로 할 때, 이러한 과정(4포인트 역변환 => 이항연산 => 8포인트 역변환)을 두 번 반복한다.
3) 4x8 블록의 경우
행 방향으로 8포인트 역변환을 4번 수행하고, 4x8 단위의 이항연산한 후 열 방향으로 4포인트 역변환을 8번 수행한다. 8x8 블록을 기준으로 할 때, 이러한 과정(8포인트 역변환 => 이항연산 => 4포인트 역변환)을 두 번 반복한다.
4) 4x4 블록의 경우
행 방향으로 4포인트 역변환을 4번 수행하고, 4x4 단위의 이항연산한 후 열 방향으로 4포인트 역변환을 4번 수행한다. 8x8 블록을 기준으로 할 때, 이러한 과정(4포인트 역변환 => 이항연산 => 4포인트 역변환)을 네 번 반복한다.
전술한 바와 같이, 다양한 블록 크기 별로 각각 역변환을 수행하는 경우, 다음과 같은 문제가 발생할 수 있다. 즉, 8x4나 4x8 블록의 경우 제1 역변환과 제2 역변환의 처리 사이클(processing cycle)이 대칭이 아니므로 처리 사이클이 최대 두 배로 증가한다. 이는 하드웨어 구조상 4포인트 역변환이나 8포인트 역변환에 걸리는 시간이 동일하므로, 전술한 제1 역변환-이항연산-제2 역변환을 두 번 반복하는 8x4 또는 4x8의 경우 처리 사이클이 최대 두 배로 증가한다. 4x4의 경우도 유사한 이유로 처리 사이클이 최대 네 배로 늘어난다. 또한, 각 블록의 크기별로 이항연산을 달리해 주어야 하므로 이항연산부(20)의 제어가 복잡해진다.
이를 해결하기 위하여, 이하에서는 8개의 데이터를 기준으로 역변환 처리를 수행하는 방법을 설명한다. 즉, 제1 역변환을 동시에 병렬적으로 수행하고, 8x8 단위로 이항연산을 한번에 수행하며, 제2 역변환도 동시에 병렬적으로 수행하는 방법을 채택한다. 하드웨어 구조는 도 2에서 상술한 바와 같이, 제1 및 제2 역변환부와 이항연산부로 구성된다. 각 역변환부는 블록의 크기에 따라 2개의 4포인트 역변환, 또는 1개의 8포인트 역변환 중 하나를 선택하여 수행할 수 있는 구조를 갖는다. 이항연산부는 블록의 크기에 관계없이 8x8의 이항연산과 동일한 동작을 수행한다. 이하에서는 병렬 처리되는 역변환 방법을 구체적으로 살펴본다.
도 4는 본 발명에 따른 변환/역변환 방법을 나타내는 플로차트이다.
도 4를 참조하면, 다양한 크기의 블록에 대하여 효율적으로 역변환하기 위하여 먼저, 역변환 타입에 관계없이 8x8 블록 단위로 계수를 입력받는다(302 단계). 입력된 데이터에 대하여 역변환 타입이 8x8이나 4x8인 경우(304 단계)에는 행 방향으로 8포인트 역변환을 수행한다(308 단계). 만약, 역변환 타입이 8x8이나 4x8이 아닌 경우(304 단계), 즉 4x8이나 4x4의 경우에는 행 방향으로 2개의 4포인트 역변환을 동시에 수행한다(306 단계). 이와 같이, 4포인트 역변환의 경우 동시에 병렬 적으로 수행됨으로써, 처리 사이클의 증가를 막을 수 있다. 동시에 2개의 4포인트 역변환이 수행되고 나면, 어떤 역변환 타입이든지 8x8 크기의 제1 역변환 결과를 얻을 수 있다.
이제, 8x8 크기의 제1 역변환 결과에 대하여 이항연산을 수행한다(310 단계). 이항연산을 수행하는 방법은 도 3에 도시되어 있다.
다음으로, 역변환 타입이 8x8 이나 8x4인 경우에는(312 단계), 열 방향으로 8포인트 역변환을 수행한다(316 단계). 반면, 역변환 타입이 8x8 이나 8x4가 아닌 경우에는(312 단계), 열 방향으로 2개의 4포인트 역변환을 동시에 수행한다(314 단계). 이와 같이 제2 역변환 시에도 4포인트 역변환의 경우 동시에 병렬적으로 수행됨으로써, 처리 사이클의 증가를 막을 수 있다. 마지막으로 역변환된 계수를 출력한다(318 단계).
도 5는 본 발명에 따라 8x8 변환/역변환을 수행하는 방법을 설명하기 위한 도면이다.
도 5를 참조하면, 각 행에 대해 8포인트 역변환을 수행한다. 8x8 블록 내에서 각 행에 대한 역변환 수행 순서가 숫자로 표시되어 있다. 각 행 별로 8포인트 역변환이 끝나면, 바로 8x8 단위로 이항연산을 수행하며, 이에 따라 행과 열이 바뀌게 된다. 도 5의 가운데 그림은 이항연산된 결과를 나타낸다. 이항연산된 각 열에 대하여, 도 5의 오른쪽 그림에 표시된 순서대로 8포인트 제2 역변환을 수행한다.
도 6은 본 발명에 따라 8x4 변환/역변환을 수행하는 방법을 설명하기 위한 도면이다.
도 6을 참조하면, 8x8 블록은 두 개의 8x4 블록으로 구성된다. 따라서 도 6과 같이 각 행에 대해 두 개의 4포인트 역변환을 동시에 수행한다. 이 경우, 1과 2는 동시에 병렬적으로 역변환이 수행된다. 3과 4, 5와 6 등도 마찬가지이다. 즉, 1, 3, 5, 7, 9, 11, 13, 15에 대하여 4포인트 역변환이 수행되는 것과 병렬적으로 2, 4, 6, 8, 10, 12, 14, 16에 대하여 4포인트 역변환이 수행된다. 이와 같이 각 행별로 4포인트 역변환이 끝나면, 8x8 단위로 이항연산을 수행하며, 이에 따라 행과 열이 바뀌게 된다. 이항연산된 각 열에 대하여, 도 6의 오른쪽 그림에 표시된 순서대로 8포인트 제2 역변환을 수행한다. 도 6에 도시된 바와 같이, 첫 번째 8x4블록의 각 열들이 차례로 8포인트 역변환 되면, 두 번째 8x4블록의 각 열들이 차례로 8포인트 역변환 된다.
도 7은 본 발명에 따라 4x8 변환/역변환을 수행하는 방법을 설명하기 위한 도면이다.
도 7을 참조하면, 8x8 블록은 두 개의 4x8 블록으로 구성된다. 따라서 도 7과 같이, 각 행에 대해 한 개의 8포인트 역변환을 수행한다. 즉, 첫 번째 4x8 블록 내 각 행에 대한 역변환이 끝나면, 두 번째 4x8 블록 내 각 행에 대한 역변환이 수행된다. 각 행 별로 8포인트 역변환이 끝나면, 8x8 단위로 이항연산을 수행하며, 이에 따라 행과 열이 바뀌게 된다. 이항연산된 각 열에 대하여, 도 7의 오른쪽 그림에 표시된 순서대로 두 번의 4포인트 역변환을 병렬적으로 수행한다. 즉, 1, 3, 5, 7, 9, 11, 13, 15에 대하여 4포인트 역변환이 수행되는 것과 병렬적으로 2, 4, 6, 8, 10, 12, 14, 16에 대하여 4포인트 역변환이 수행된다.
도 8은 본 발명에 따라 4x4 변환/역변환을 수행하는 방법을 설명하기 위한 도면이다.
도 8을 참조하면, 8x8 블록은 네 개의 4x4 블록으로 구성된다. 각 행에 대해 두 개의 4포인트 역변환을 동시에 수행한다. 이 경우, 1과 2는 동시에 병렬적으로 역변환이 수행된다. 3과 4, 5와 6 등도 마찬가지이다. 즉, 1, 3, 5, 7, 9, 11, 13, 15에 대하여 4포인트 역변환이 수행되는 것과 병렬적으로 2, 4, 6, 8, 10, 12, 14, 16에 대하여 4포인트 역변환이 수행된다. 이와 같이 각 행별로 4포인트 역변환이 끝나면, 8x8 단위로 이항연산을 수행하며, 이에 따라 행과 열이 바뀌게 된다. 이항연산된 각 열에 대하여, 도 8의 오른쪽 그림에 표시된 순서대로 두 번의 4포인트 역변환을 병렬적으로 수행한다. 즉, 1, 3, 5, 7, 9, 11, 13, 15에 대하여 4포인트 역변환이 수행되는 것과 병렬적으로 2, 4, 6, 8, 10, 12, 14, 16에 대하여 4포인트 역변환이 수행된다.
상술한 바와 같이, 8개의 데이터를 기준으로 역변환 처리하는 방법을 설명하였다. 즉, 제1 역변환을 동시에 병렬적으로 수행하고, 8x8 단위로 이항연산을 한번에 수행하며, 제2 역변환도 동시에 병렬적으로 수행하는 방법이 그것이다. 하드웨어 구조는 도 2에서 상술한 바와 같이, 제1 및 제2 역변환부와 이항연산부로 구성된다. 각 역변환부는 블록의 크기에 따라 2개의 4포인트 역변환, 또는 1개의 8포인트 역변환 중 하나를 선택하여 수행할 수 있는 구조를 갖는다. 이항연산부는 블록의 크기에 관계없이 8x8의 이항연산과 동일한 동작을 수행한다.
본 발명의 실시예에서는 8x8 블록을 기준으로 설명하였으나, 그 외에도 다양한 크기의 역변환에도 동일한 기술을 적용할 수 있다.
이상의 설명은 본 발명의 일 실시예에 불과할 뿐, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 본질적 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현할 수 있을 것이다. 따라서, 본 발명에 따른 실시예에 한정되지 않고 특허 청구범위에 기재된 내용과 동등한 범위 내에 있는 다양한 실시 형태가 포함되도록 해석되어야 할 것이다.
상술한 바와 같이 본 발명에 따르면, 입력되는 데이터의 크기나 종류에 제한을 받지 않고 효율적으로 역변환 하는 방법 및 그 장치가 제공된다.
즉, 제1 또는 제2 역변환부가 동시에 병렬적으로 역변환을 수행함으로써 항상 8 개의 계수들을 함께 처리할 수 있는 구조를 가지며, 변환 타입에 관계없이 동일한 이항연산을 수행함으로써, 처리 사이클을 줄일 수 있음은 물론, 이항연산부의 복잡도를 크게 줄일 수 있다.

Claims (17)

  1. 동영상 코덱의 변환/역변환 장치에 있어서,
    변환/역변환 시에 참조하기 위하여, 입력되는 데이터의 포맷 또는 크기에 따라 별도로 구비된 복수의 롬테이블들과,
    상기 복수의 롬테이블들 중 입력되는 데이터의 포맷 또는 크기에 따라 소정의 롬테이블을 선택하여 행 방향의 변환/역변환을 수행하는 제1 변환/역변환부와, 상기 제1 변환/역변환부의 처리 결과에 대하여 행과 열을 바꾸는 이항 연산을 수행하는 이항연산부 및 상기 복수의 롬테이블들 중 입력되는 데이터의 포맷 도는 크기에 따라 상기 소정의 롬테이블을 선택하여 열 방향의 변환/역변환을 수행하는 제2 변환/역변환부를 구비하는 변환/역변환 처리부를 포함하며,
    상기 제1 변환/역변환부는 입력되는 데이터의 행 방향의 계수들이 4개의 계수들로 구성된 경우 2개의 4포인트 변환/역변환을 수행하고, 상기 행 방향의 계수들이 8개의 계수들로 구성된 경우 1개의 8포인트 변환/역변환을 수행함으로써 8개의 데이터를 동시에 병렬적으로 처리하는 것을 특징으로 하는 변환/역변환 장치.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서,
    상기 이항연산부는 병렬적으로 처리된 상기 제1 변환/역변환부의 처리 결과에 대하여 8x8 단위로 한번에 이항연산을 수행하는 것을 특징으로 하는 변환/역변환 장치.
  5. 제1항에 있어서,
    상기 제1 변환/역변환부는, 입력되는 데이터가 8x8 또는 4x8 타입이면 8개의 계수들로 구성된 행에 대하여 한 개의 8포인트 변환/역변환을 수행하며, 입력되는 데이터가 8x8 또는 4x8 타입이 아니면, 8개의 계수로 구성된 행에 대하여 두 개의 4포인트 변환/역변환을 동시에 병렬적으로 수행하는 것을 특징으로 하는 변환/역변환 장치.
  6. 제1항에 있어서,
    상기 제2 변환/역변환부는, 입력되는 데이터가 8x8 또는 4x8 타입이면 8개의 계수들로 구성된 열에 대하여 한 개의 8포인트 변환/역변환을 수행하며, 입력되는 데이터가 8x8 또는 4x8 타입이 아니면, 8개의 계수로 구성된 열에 대하여 두 개의 4포인트 변환/역변환을 동시에 병렬적으로 수행하는 것을 특징으로 하는 변환/역변환 장치.
  7. 제1항에 있어서,
    상기 포맷은 MPEG-2 및 VC1 중 적어도 하나를 포함하는 것을 특징으로 하는 변환/역변환 장치.
  8. 제1항에 있어서,
    상기 크기는 8x8, 8x4, 4x8, 및 4x4 중 적어도 하나를 포함하는 것을 특징으로 하는 변환/역변환 장치.
  9. 제1항에 있어서,
    상기 변환/역변환 처리부는 상기 입력되는 데이터의 포맷 또는 크기에 상관없이 동일한 구조를 가지는 것을 특징으로 하는 변환/역변환 장치.
  10. 제1항에 기재된 변환/역변환 장치를 포함하며 멀티 포맷을 지원하는 것을 특징으로 하는 동영상 코덱 장치.
  11. 동영상 코덱의 변환/역변환 방법에 있어서,
    입력되는 데이터의 포맷 또는 크기에 따라 별도로 구비된 복수의 롬테이블들 중 입력되는 데이터의 포맷 또는 크기에 따라 소정의 롬테이블을 선택하는 단계; 및
    상기 선택된 롬테이블을 참조하여 입력되는 데이터에 대하여 행 방향의 변환/역변환을 수행하는 제1 변환/역변환 단계와, 상기 행 방향의 변환/역변환의 처리 결과에 대하여 행과 열을 바꾸는 이항 연산을 수행하는 이항 연산 단계와 상기 선택된 롬테이블을 참조하여 상기 이항 연산 결과에 대하여 열 방향의 변환/역변환을 수행하는 제2 변환/역변환 단계를 구비하는 변환/역변환 단계를 포함하며,
    상기 제1 변환/역변환 단계는 입력되는 데이터의 행 방향의 계수들이 4개의 계수들로 구성된 경우 2개의 4포인트 변환/역변환을 수행하고, 상기 행 방향의 계수들이 8개의 계수들로 구성된 경우 1개의 8포인트 변환/역변환을 수행함으로써 8개의 데이터를 동시에 병렬적으로 처리하는 것을 특징으로 하는 변환/역변환 방법.
  12. 삭제
  13. 제11항에 있어서,
    상기 이항연산을 수행하는 단계는 병렬적으로 처리된 상기 제1 변환/역변환 단계의 처리 결과에 대하여 8x8 단위로 한번에 이항연산을 수행하는 것을 특징으로 하는 변환/역변환 방법.
  14. 제11항에 있어서,
    상기 제1 변환/역변환 단계는, 입력되는 데이터가 8x8 또는 4x8 타입이면 8개의 계수들로 구성된 행에 대하여 한 개의 8포인트 변환/역변환을 수행하며, 입력되는 데이터가 8x8 또는 4x8 타입이 아니면, 8개의 계수로 구성된 행에 대하여 두 개의 4포인트 변환/역변환을 동시에 병렬적으로 수행하는 것을 특징으로 하는 변환/역변환 방법.
  15. 제11항에 있어서,
    상기 제2 변환/역변환 단계는, 입력되는 데이터가 8x8 또는 4x8 타입이면 8개의 계수들로 구성된 열에 대하여 한 개의 8포인트 변환/역변환을 수행하며, 입력되는 데이터가 8x8 또는 4x8 타입이 아니면, 8개의 계수로 구성된 열에 대하여 두 개의 4포인트 변환/역변환을 동시에 병렬적으로 수행하는 것을 특징으로 하는 변환/역변환 방법.
  16. 제11항에 있어서,
    상기 포맷은 MPEG-2 및 VC1 중 적어도 하나를 포함하는 것을 특징으로 하는 변환/역변환 방법.
  17. 제11항에 있어서,
    상기 크기는 8x8, 8x4, 4x8, 및 4x4 중 적어도 하나를 포함하는 것을 특징으로 하는 변환/역변환 방법.
KR1020040079488A 2004-10-06 2004-10-06 다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치 KR100754167B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020040079488A KR100754167B1 (ko) 2004-10-06 2004-10-06 다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치
US11/232,395 US20060072846A1 (en) 2004-10-06 2005-09-22 Transformation or inverse transformation method and apparatus capable of transforming or inversely transforming blocks having various sizes
CNA2005101125024A CN1758758A (zh) 2004-10-06 2005-09-30 可变换或逆变换不同大小的块的变换或逆变换方法和设备
NL1030132A NL1030132C2 (nl) 2004-10-06 2005-10-06 Transformatie en/of inverse transformatie werkwijze en inrichting, in staat om blokken van verschillende groottes te transformeren of inverse transformeren.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040079488A KR100754167B1 (ko) 2004-10-06 2004-10-06 다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치

Publications (2)

Publication Number Publication Date
KR20060030639A KR20060030639A (ko) 2006-04-11
KR100754167B1 true KR100754167B1 (ko) 2007-09-03

Family

ID=36125635

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040079488A KR100754167B1 (ko) 2004-10-06 2004-10-06 다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치

Country Status (4)

Country Link
US (1) US20060072846A1 (ko)
KR (1) KR100754167B1 (ko)
CN (1) CN1758758A (ko)
NL (1) NL1030132C2 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112910A (ko) 2015-03-18 2016-09-28 한화테크윈 주식회사 디코더 및 디코더에서의 역변환 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8341362B2 (en) * 2008-04-02 2012-12-25 Zikbit Ltd. System, method and apparatus for memory with embedded associative section for computations
KR101601864B1 (ko) 2014-02-25 2016-03-10 숭실대학교산학협력단 동영상 코덱의 역변환 방법 및 그 장치
US10356440B2 (en) 2014-10-01 2019-07-16 Qualcomm Incorporated Scalable transform hardware architecture with improved transpose buffer

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007142A (ko) * 2004-07-19 2006-01-24 삼성전자주식회사 역변환 방법 및 그 장치

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4791598A (en) * 1987-03-24 1988-12-13 Bell Communications Research, Inc. Two-dimensional discrete cosine transform processor
US5434808A (en) * 1993-10-29 1995-07-18 Nec Electronics, Inc. Highly parallel discrete cosine transform engine
US5867601A (en) * 1995-10-20 1999-02-02 Matsushita Electric Corporation Of America Inverse discrete cosine transform processor using parallel processing
CN1147155C (zh) * 1998-12-14 2004-04-21 松下电器产业株式会社 Dct运算装置
US6990506B2 (en) * 2000-12-13 2006-01-24 Sharp Laboratories Of America, Inc. Integer cosine transform matrix for picture coding

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060007142A (ko) * 2004-07-19 2006-01-24 삼성전자주식회사 역변환 방법 및 그 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160112910A (ko) 2015-03-18 2016-09-28 한화테크윈 주식회사 디코더 및 디코더에서의 역변환 방법

Also Published As

Publication number Publication date
KR20060030639A (ko) 2006-04-11
CN1758758A (zh) 2006-04-12
NL1030132C2 (nl) 2006-05-09
US20060072846A1 (en) 2006-04-06
NL1030132A1 (nl) 2006-04-10

Similar Documents

Publication Publication Date Title
TWI516095B (zh) 利用轉換操作之影音編碼及解碼方法
JP2003507804A (ja) 動き補償されたブロックベースの圧縮デジタルビデオの可変複雑性デコーディングの方法と装置
CN1302419A (zh) 缩放压缩的图象
JP4361987B2 (ja) フィールドモード符号化を含む画像フレームのサイズ変更のための方法及び装置
JP2011504000A (ja) ビデオ符号化および復号化の方法
KR100270799B1 (ko) 이산코사인변환/역이산코사인변환 프로세서
TWI412281B (zh) A Method of Calculating Reverse Conversion of Low Complexity
CN1414793A (zh) 具有缩小图像功能的压缩视频解码器及其方法
CN1703094A (zh) 1/4像素插值应用于1/2像素插值结果的图象插值装置和方法
KR100712531B1 (ko) Mpeg-2 데이터를 h.264 데이터로변환부호화하는 장치 및 방법
CN108200439B (zh) 提高数字信号变换性能的方法及数字信号变换方法和装置
KR100754167B1 (ko) 다양한 크기의 블록에 대한 변환/역변환 방법 및 그 장치
JP2001136527A (ja) 直交変換画像の解像度変換装置及び方法
US7379956B2 (en) Encoding and decoding data arrays
Husemann et al. Hardware integrated quantization solution for improvement of computational H. 264 encoder module
JP2004523815A (ja) スケーリング項、アーリー・アボート、および精度リファインメントを用いた高速変換
CN100490539C (zh) 运用于图像编码和视频编码的离散余弦变换的方法
US7756351B2 (en) Low power, high performance transform coprocessor for video compression
JP2003281115A (ja) 適応的データ逆変換/変換装置および方法
KR20060007142A (ko) 역변환 방법 및 그 장치
CN101562744A (zh) 二维反变换装置
JP2003030174A (ja) Dct行列分解方法及びdct装置
KR100560101B1 (ko) 블록 이산코사인변환 도메인에서의 임의의 영상 크기 변환방법
JP3675135B2 (ja) 動画像符号化方法及び復号化方法
JP2010128969A (ja) アダマール変換回路

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application
J201 Request for trial against refusal decision
J301 Trial decision

Free format text: TRIAL DECISION FOR APPEAL AGAINST DECISION TO DECLINE REFUSAL REQUESTED 20061027

Effective date: 20070627

S901 Examination by remand of revocation
GRNO Decision to grant (after opposition)
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
LAPS Lapse due to unpaid annual fee