KR20020064913A - 데이터 디코딩 - Google Patents

데이터 디코딩 Download PDF

Info

Publication number
KR20020064913A
KR20020064913A KR1020027006781A KR20027006781A KR20020064913A KR 20020064913 A KR20020064913 A KR 20020064913A KR 1020027006781 A KR1020027006781 A KR 1020027006781A KR 20027006781 A KR20027006781 A KR 20027006781A KR 20020064913 A KR20020064913 A KR 20020064913A
Authority
KR
South Korea
Prior art keywords
data
coefficients
processing
data block
block
Prior art date
Application number
KR1020027006781A
Other languages
English (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 KR20020064913A publication Critical patent/KR20020064913A/ko

Links

Classifications

    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • 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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Complex Calculations (AREA)

Abstract

데이터의 변환 동안, 예컨데 인코딩되고 변환된 데이터의 디코딩 동안, 데이터 블록을 발생시키기 위한 프런트 엔드 처리(FE)에 이어 백 엔드 처리(TR)가 있고, 이 프런트 엔드 처리는 런 길이 디코딩(RLD)을 포함할 수 있다. 또한, 데이터 블록(MB)의 구조를 나타내는 보조 데이터(AUX)는 프런트 엔드 처리 동안 발생된다. 통상적으로, 상기 보조 데이터는 데이터 블록 내에 0 계수의 위치를 나타낸다. 보조 데이터(AUX)의 내용을 근거하여 백 엔드 처리(TR)의 구현이 데이터 블록(MB)의 구조에 적합화됨으로써, 보다 효율적인 구현을 한다. 예를 들면, 보조 데이터의 내용은 숏컷들이 역이산 코사인 변환의 구현 동안 적용될 수 있는지를 결정할 수 있다. 프런트 엔드 처리(FE) 동안 보조 데이터의 발생은 역 변환 바로 이전의 데이터 블록의 구조를 조사하는 것보다 덜 성가시다. 왜냐하면, 전자가 0이 아닌 계수들을 위해서만 조치를 취하는 것을 포함하는 반면에, 후자는 블록에서의 모든 계수들을 체크하는 것을 포함하기 때문이다.

Description

데이터 디코딩{Decodong of data}
주어진 데이터 스트림을 나타내는데 필요한 비트들의 수를 감소시키기 위하여, 흔히 데이터 압축 기술들은 이산 코사인 변환(DCT)에 이어 결과로서 생긴 계수값들의 런 길이 인코딩을 이용하여 데이터 스트림을 처리한다. 상기 런 길이 인코딩 처리는 0들에 이은 0이 아닌 계수의 각 시퀀스를 코드 워드로 변환시키고, 계수값과 함께 상기 시퀀스의 런 길이를 "런 값쌍(run value pair)"으로 부를 수 있다. 미국 특허 4901075는 인코딩 방법 및 이러한 종류의 장치를 개시하고 있다. 디코더에서, 원래 데이터의 재구성은 런 길이 인코딩된 데이터의 디코딩 및 역이산 코사인 변환(IDCT)의 응용을 포함하게 될 것이다. WO99/35749는 런 길이 인코딩된 데이터를 수신하고 디코딩하기에 적당한 방법 및 장치를 개시하고 있다. IDCT을 적용하기 위한 여러 방법들이 알려져 있다.
본 발명은 프런트 엔드(front-end) 및 백 엔드(back-end) 처리 동안, 통상적으로 인코딩되고 변환된 데이터의 디코딩 동안, 이를테면 런 길이 인코딩된 DCT(run-length encoded DCT) 데이터와 같은 데이터 변환에 관한 것이다. 상기 인코딩되고 변환된 데이터는 예컨대, 동영상 전문가 그룹(MPEG) 표준에 따라 인코딩되고 있는 비디오 정보일 수 있다.
도 1은 본 발명을 구현하는 방법을 채용한 디코더의 주 구성요소들을 도시하는 블록도.
도 2는 본 발명의 실시예에 따른 데이터 블록 및 보조 데이터를 발생시키는 회로를 도시하는 블록도.
도 3은 본 발명의 일 실시예에 따른 데이터 블록 및 관련된 보조 데이터의 예를 도시하는 도면.
인코딩 처리에 있어서, 일반적으로 부가적인 중간 단계들로는 예컨대, DCT 계수들의 양자화 및 런 길이 인코딩 전에 상기 양자화된 계수값들의 확실한 예측 제거가 있을 수 있으며, 상기 런 길이 인코딩은 통상 런 길이 인코딩된 엔티티들을 나타내도록 하나 또는 그 이상의 가변 길이 코드들을 이용한다. 예컨대, 모션 보상(motion compensation)을 허용하는 DCT에 선행하는 부가적인 단계들이 또한 있을 수 있다. 문서 ISO/IEC 13818-2는 비디오 및 관련된 오디오 정보의 인코딩에 포함된 이러한 종류의 부가적인 처리들을 기술하고 있다. 대응하는 역 처리들이 디코딩 동안 포함될 것이다. 그러나, 본 발명은 이러한 부가적인 처리들의 상술들에 관련되지 않는다.
여기서, "프런트 엔드 처리"의 표현은 이후 백 엔드 처리가 가해지는 예컨대, IDCT를 포함하는 처리가 가해지는 계수들을 발생시킬 때에 포함되는 모든 디코딩 단계들을 나타내는 데에 이용될 것이다.
이를테면 MPEG 표준에 따라 데이터를 인코딩할 때에 이용되는 것과 같은 비디오 압축 기술들은, 통상 DCT를 픽셀들의 2차원 블록들에 적용시켜, 디코더에서 2차원 IDCT의 응용을 요구한다. 이러한 것은 상기 디코더가 수행되어야 하는 작업들을 가장 시간 소모하는 것중 하나이다. 상기 2차원 IDCT는 일반적으로 1차원 IDCT 처리들의 시리즈(series)를 수행함으로써 구현된다. 예를 들면, 픽셀들의 8×8 블록에 적용된 IDCT는 2개의 패스들에서 성취될 수 있으며, 여기서 제 1 패스는 블록(예를 들어, 8 수평, 전체적으로 1차원 IDCT들) 내에 8 포인트들의 각각의행(row)에 1차원 IDCT를 적용하고, 결과로서 생긴 데이터의 8 행들을 중간 결과 블록에 저장하는 것을 포함하며, 제 2 패스는 상기 중간 결과 블록(예를 들어, 8 수직, 전체적으로 1차원 IDCT들) 내에 8 포인트들의 각 행에 1차원 IDCT를 적용하고, 결과로서 생긴 데이터의 8 열(column)들을 최종 결과 블록에 저장하는 것을 포함한다. 상기 수직 및 수평 IDCT들을 수행하는 순서는 결과들에 영향을 주지 않고 스위칭될 수 있다.
이제, 1차원 IDCT는 그 입력들의 일부가 널(nell)(예를 들어, 0 값들을 취함)인 경우에 단순화될 수 있다. 이렇게 단순화된 IDCT의 구현을 "숏컷(shortcut)"이라 부른다. 예를 들어, 1차원 IDCT에의 모든 입력들이 널이면, 출력들은 모두 0들이다. 따라서, 이 경우, IDCT를 실제로 수행하는 것은 불필요하고, 입력의 "모든 0" 형상을 검출하는 데에 충분하며, 모든 0들을 출력으로 기록한다. 이 숏컷은 "IDCT0"로 나타낼 수 있다. 유사하게, 1차원 IDCT에의 제 1 입력이 0이 아니고, 나머지가 모두 널이면, 모든 출력들은 0이 아닌 입력의 스케일링된 값과 같다. 대응하는 숏컷은 "IDCT1"로 나타낼 수 있다. 일반적으로, 우리는 1차원 IDCT에의 제 1 n 계수들 입력을 제외한 모두가 0일 때에 이용할 수 있는 숏컷을 "IDCTn"으로 나타낼 수 있다.
여러 응용들에 있어서, IDCT 입력들의 다수는 널 값들을 취한다. 통상, 비디오 압축 시스템들에서, 디코더에서 IDCT 처리들에의 64 입력들의 블록은 5 내지 10개의 0이 아닌 값들을 포함한다. 그러므로, 비디오 디코더들에서 IDCT들의 구현을 가속화하기 위해 숏컷들을 이용하는 것이 제안되고 있다. 그러나, 상기 숏컷들을이용함으로써 성취되는 시간 절약은 IDCT들의 데이터 입력의 "구조" 또는 "형상" (0이 아닌 값들의 수 및 위치)을 검출할 필요로 인해 서서히 줄어든다.
본 발명의 목적은 데이터의 프런트 엔드 및 백 엔드 처리를 포함하는 변환들의 구현을 가능하게 하는 것이고, 입력 데이터의 형상을 검출할 때에 포함되는 통상의 오버헤드를 회피하는 동안 백 엔드 처리가 가해지도록 데이터의 구조를 알게 됨으로써 보다 효율적이 되게 하는 것이다.
본 발명은 다음의 측면들을 고려할 수 있다. 데이터를 변환할 때 포함되는 프런트 엔드 처리에 있어서, 데이터 스트림 내에 다수 계수들(통상, 0이 아닌 계수들) 및/또는 소수 계수들의 위치에 따라 정보가 이용가능해진다. 따라서, 이 프런트 엔드 처리 동안, 이 다수 계수 및/또는 소수 계수의 위치를 나타내는 보조 데이터를 발생시키고, 이 주요한 데이터에 따라 이 보조 데이터를 백 엔드 처리를 구현하는 처리 장치에 공급할 수 있다. 따라서, 이러한 처리 장치는 상기 보조 데이터의 내용에 근거하여, 백 엔드 처리가 구현되는 방법을 데이터의 구조에 적합시킬 수 있다.
예를 들어, 상기 백 엔드 처리가 IDCT와 같은 역 변환을 포함하는 경우, 프런트 엔드 처리는 0 계수들(다수 계수들)의 런 길이 및 0이 아닌 계수들(소수 계수들)의 값을 나타내는 데이터를 발생시키는 런 길이 디코딩 처리를 포함하며, 상기 보조 데이터는 숏컷들이 IDCT의 구현을 가속화하도록 적용될 수 있는지를 결정하게 한다.
본 발명을 구현하는 데에 선택적으로 유리하게 이용될 수 있는 본 발명의 특징 및 부가적인 특징은 이후 기술되는 도면들을 참조하여 명백해진다.
먼저, 일부 기호들은 참조 부호들을 이용하게 될 것이다. 유사한 엔티티들은 도면들에서 동일한 문자 코드로 표시된다. 여러 유사한 엔티티들이 단일 도면에 도시될 수 있다. 그러한 경우, 서로 유사한 엔티티들을 구별하기 위하여 문자 코드에 숫자가 부가된다. 만약, 유사한 엔티티들의 숫자가 러닝 파라미터인 경우, 숫자는 괄호 안에 있게 될 것이다. 본원의 상세한 설명 및 청구범위에서, 참조 부호에서 어떤 숫자가 이용된다면 생략될 수 있다.
도 1은 IDCT의 효율성을 향상시키기 위해 본 발명의 일반 원리를 이용한 디코더를 설명한다. 변환 회로(TR)는 2차원 데이터의 연속하는 블록들(MB) 상에서 역이산 코사인 변환을 구현한다. 블록(MB)에서의 각각의 데이터 아이템은 0 또는 0이 아닌 값을 취할 수 있는 계수(C)이다. 데이터 블록들(MB)은 런 길이 디코딩 처리를 행하는 장치(RLD)를 포함하는 프런트 엔드 처리 회로(FE)에 의해 발생된다.
상기 장치(RLD)에 의해 디코딩된 각각의 런 값쌍은 런(run)들에서의 0들의 수에 대한 데이터(RL=런 길이) 및 다음에 오는(또는, 어떤 경우들에는, 선행하는) 0이 아닌 계수의 값에 대한 데이터(CV=계수값)를 포함한다. 프런트 엔드 처리로부터 출력된 2 차원 블록들(MB) 내의 디코딩된 0이 아닌 계수들의 위치는 이용되는 인코딩 방식에 따라 좌우된다. MPEG 인코딩 기술들에 있어서, 일반적으로, 런 길이 인코딩될 2차원 DCT 데이터 및 직렬 데이터 사이의 전환을 위해 지그 재그 스캐닝 접근법이 이용된다. 디코더에서, 런 길이 디코딩된 데이터 및 2 차원 데이터 블록들 사이의 전환을 위해 매칭 처리가 이용된다. 그러나, 다른 접근법들이 있을 수 있다. 어느 접근법이 이용되더라도, 이는 디코더 장치에 알려지게 될 것이다. 따라서, 디코더의 프런트 엔드 처리 장치에서(FE)에서, 각각의 블록(MB)을 위해, 상기 블록내에 0이 아닌 계수들의 위치를 표시하는 보조 데이터를 발생시킬 수 있다. 변환 회로(TR)는 IDCT 처리의 구현을 위해, 상기 데이터 블록의 구조에 대한 이 보조 정보를 이용할 수 있다.
예를 들어, 도 1에 나타난 바와 같이, 상기 보조 데이터는 블록 내에, 0 계수들만을 포함하는(예시된 블록에서, 아래 3개의 행들) 행들의 위치를 표시할 수 있다. 이 예에서, 변환 회로(TR)가 이러한 5×5 블록(MB)의 2차원 IDCT을 구현할 때, 0들의 시퀀스의 1차원 IDCT가 수평(1차원) IDCT들 및 수직(1차원) IDCT들의 연속하는 시리즈를 통해 0들의 시퀀스를 생성하기 때문에, 도 1 에 예시된 블록의 아래 3개의 행들의 수평 변환들을 스킵할 수 있다. 게다가, 변환 회로가 "제자리에서" 작동 즉, 그 중간물과 최종 결과물들을 입력 블록에 이용되는 바와 같이 같은메모리 위치들에 오버라이트하면, "스킵된 행들"의 데이터는 메모리의 위치에서 단순히 왼쪽이다. 따라서, 보조 데이터는 IDCT가 데이터 블록의 구조를 조사하는데 어떤 변환 회로도 필요로 하지 않고 효율적으로 구현되게 할 수 있다.
프런트 엔드 처리 회로에 의한 보조 데이터의 발생은 시간 또는 회로 설계의 면에서 보면 고비용이 드는 것은 아니다. 왜냐하면, 상기 프런트 엔드 처리 회로는 0이 아닌 계수들에 관해서만 조치를 취하도록 요구되고, 각각의 데이터 블록에 대한 이들의 수가 상대적으로 작기 때문이다. 대조하여, 종래의 기술들에 있어서, 데이터 블록의 구조는 변환 회로에 의해 조사되고, 모든 값들은 0 또는 0이 아닌 값들을 취하는지를 확인하도록 조사되어야 한다.
이제, 도 2 및 도 3을 참조로 하여, 제한되지 않는 예에 의해, 0 계수들만을 포함하는 행들(또는 열들)의 데이터 블록에서의 위치를 표시하는 보조 데이터를 발생시키고 이용하는 방법 및 장치가 보다 상세하게 기술될 것이다.
도 2는 디코더에서 변환 회로(TR)에 공급된 블록 및 보조 데이터를 발생시키는 회로의 일예를 설명한다. 이 예에서, 런 길이 디코더(RLD)로부터의 출력은 메모리(MM) 및 데이터가 메모리에 기록되는 어드레스들을 제어하는 판독/기록 제어기(RWC)에 공급된다. 상기 메모리(MM)는 블록 데이터 및 보조 데이터를 저장하기 위한 각각의 부분들(BDP, ADP)을 포함한다. 일단 전체 데이터 블록이 디코딩되면, 상기 판독/기록 제어기는 공급을 일으키도록 판독된 트리거 신호(trigger signal)를 메모리(MM)의 블록 데이터 및 보조 데이터 부분들의 내용들의 변환 회로(TR)(도 2에 도시안됨)에 보낸다.
블록의 디코딩이 대략 시작될 때, 상기 메모리(MM)의 블록 데이터 및 보조 데이터 부분들의 내용들은 0으로 리셋된다. 런 길이 디코더(RLD)는 런 길이 쌍(RL, CV)을 발생시키도록 각각의 코드 워드를 디코딩한다. 계수값(CV)은 메모리(MM)의 블록 데이터 부분(BDP)에 기록되는 반면에, 런 길이(RL)는 판독/기록 제어기(RWC)에 공급된다. 상기 판독/기록 제어기(RWC)는 관련된 데이터 블록내에 미리 결정된 정보(예를 들어, 역 지그 재그 스캐닝 정보)에 근거하여 0이 아닌 계수(CV)의 행(i) 및 열(j) 위치를 나타내는 어드레스 정보(i,j)를 발생시킨다. 상기 계수값은 대응하는 어드레스에서 메모리(MM)의 블록 데이터 부분(BDP)에 기록된다.
또한, 판독/기록 제어기(RWC)에 의해 발생된 어드레스 제어기는 0이 아닌 계수들을 포함하는 이 블록의 행들을 나타내는 보조 정보를 발생시키는 데에 이용된다. 도 3은 이 구조를 표시하는 데에 이용될 수 있는 하나의 데이터 블록 및 보조 데이터의 구조의 예를 도시한다.
일반적으로, 각각의 데이터 블록은 r 행들 및 c 열들을 가질 수 있다. 도 3에 예시된 예에서, 데이터 블록들은 8 행들과 8 열들을 갖고, 표시된 블록은 처음 3개의 행들에서만 0이 아닌 계수들을 갖는다. 여기서, 상기 보조 정보는 행 벡터 R0의 형태를 취하며, 이 벡터의 비트 i는 데이터 블록의 행 i에서의 모든 계수들이 값 0을 취하는 경우에만 값 0을 취한다. 그렇지 않으면, 데이터 블록의 행 i에 어떤 0이 아닌 계수들이 있는 경우에, 벡터 R0의 비트 i는 값 1을 취한다.
벡터 R0은 판독/기록 제어기(RWC)에 의해 발생된 어드레스 데이터에 따라 매우 간단하게 생성될 수 있다. 주어진 블록의 디코딩 동안, 관련된 런 길이 쌍들을위한, 판독/기록 제어기(RWC)가 데이터 블록의 처음 3개의 행들에서 0이 아닌 계수들을 나타내는 행 값들 i=1, 2 및 3을 포함하는 어드레스 신호들을 발생시킨다면, 메모리(MM)의 보조 데이터 부분에 저장된 보조 데이터 벡터 R0의 비트들 1, 2 및 3은 값 1로 설정되고, 행 벡터 R0의 모든 다른 비트들은 0로 설정될 것이다.
변환 회로(TR)가 도 3에 도시된 바와 같이 블록 데이터 및 관련된 보조 데이터(여기서, 열 벡터 R0)를 수신할 때, 보조 데이터의 검사는, 2차원 IDCT가 수평 및 수직 1차원 IDCT들의 연속하는 세트들에 의해 구현되는 경우, 수평 IDCT들이 데이터 블록의 아래 5개의 행들을 위해 스킵될 수 있다는 것을 보여준다. 게다가, 각 열의 처음 3개의 비트들만이 0이 아닌 값들을 포함할 수 있는 보조 데이터(R0)로부터 알려져 있다. 따라서, 8개의 수직 IDCT들이 구현될 때, 8개의 숏컷 IDCT3이 적용될 수 있다. 따라서, 변환 회로(TR)는 그 구조가 무엇인지를 분석하기 않고 데이터 블록의 구조를 위해 IDCT를 구현할 수 있다.
이상과 같이 설명된 예는 행 벡터 R0 만으로 구성된 보조 데이터가 모든 0들을 포함하는 행들의 데이터 블록에서의 위치를 나타내는 경우를 기술한다. 상기 보조 데이터가 다른 형태들을 취할 수 있음을 이해할 수 있다. 예를 들면, 대응하는 열 벡터 C0은 데이터 블록의 열 j에서의 모든 계수들이 0들일 경우에는 값 0를 취하고, 그렇지 않으면 값 1을 취할 것이다.
또한, 부가적인 행 벡터들 Rn이 규정되는데, n은 1 내지 c-1의 값들을 취하고, 여기서 행 벡터 Rn의 제 1 비트는 행 i의 최종 c-n 계수들이 모두 값 0를 취하는지의 여부를 나타낸다. 특히, 부가적인 행 벡터 Rn의 비트 i는 행 i의 최종 c-n계수들이 모두 0들일 경우에만 값 0을 취하게 될 것이다. 부가적으로 또는 대안적으로, 부가적인 열 벡터들 Cm이 규정되는데, m은 1 내지 r-1의 값들을 취한다. 행 벡터 Cm의 제 j 비트는 열 j의 최종 r-m 계수들이 값 0을 취하는지의 여부를 나타낸다. 특히, 열 벡터 Cm의 비트 j는 열 j의 최종 r-m 계수들이 모두 0들일 경우에만 값 0을 취한다.
r 행들 및 c 열들을 갖는 2차원 데이터 블록에 있어서, 행 및 열 벡터들의 전 세트는 하기에 설명된 방법에 의해 발생될 수 있다. 그러나, 벡터들의 전 세트(R0, R1, ..,Rc-1, C0, C1,.., Cr-1)를 발생시키도록 명령받지는 않았다는 것을 이해하게 될 것이다. 상기 발생된 벡터들의 세트는 바람직하게 예컨데 세트(R0, R1, C0, C1)에 한정될 수 있다.
r 행들 및 c 열들을 갖는 블록에 있어서, 상기 벡터들은 모두 0들을 포함하도록 먼저 리셋된다. 즉,
모든 u에 대해, 0≤u≤c-1, Ru=0의 모든 비트들
모든 v에 대해, 0≤v≤r-1, Cv=0의 모든 비트들
다음에, 프런트 엔트 처리 동안, 데이터 블록의 행 i 및 열 j 에 위치된 한정된 각각의 널이 아닌 계수에 있어서, 상기 벡터 값들은 다음과 같이 업데이트된다.
모든 u에 대해, 0≤u≤j, Ru=1의 비트 j를 설정
모든 v에 대해, 0≤v≤i, Cv=1의 비트 j를 설정
상기한 바와 같이, 1차원 IDCT들의 구현을 위한 숏컷들 IDCTn(IDCTm)에는 IDCT의 구현이 행(또는 열)의 최종 c-n(또는 r-m) 계수들이 모두 0들인 경우에 단순화되게 하는 것이 있다. 따라서, 보조 데이터의 상술된 부가적인 행 벡터들(및/또는 열 벡터들)을 포함함으로써, 변환 회로는 이 다른 숏컷들(IDCTn)중 어느 것이 IDCT의 구현을 효율적으로 하는데 이용될 수 있는 보조 데이터의 검사로부터 결정될 수 있다.
보조 데이터가 여러 행 벡터들(R0, R1, 등)을 포함하는 경우, 변환 회로는 모든 행 벡터들의 모든 비트들을 검사할 필요는 없다. 우선, 행 벡터 R0의 모든 비트들이 검사된다. 이러한 것은 행들이 전체적으로 스킵(스킵될 수 있는 행들에 대응하는 비트들은 R0에서의 테스트를 "통과한" 것으로 간주될 수 있다.)될 수 있는지를 결정한다. 다음에, 행 벡터 R1에서, 변환 회로는 "스킵되지 않는" 행들에 대응하는 그 비트들만을 즉, R0에서의 테스트에 낙제한 그 비트들만을 검사한다. 이러한 것은 행들이 숏컷 IDCT1을 이용하여 처리될 수 있는지를 결정한다. 일반적으로, 행 벡터 R0에서, 변환 회로는 초기 검사된 행 벡터에서의 테스트를 아직 "통과"하지 않은 그 비트들만을 검사한다. 이러한 것은 행들이 숏컷 IDCTn을 이용하여 처리될 수 있는지를 결정한다. 일단 모든 비트들(행들)이 테스트를 통과한다면, 변환 회로는 행 벡터들의 조사를 중단할 수 있다.
보조 데이터가 일부의 열 벡터들(C0, C1, 등)을 포함하는 경우, 그 대응은 참이다.
일부의 경우들에서, 데이터 블록에서 0이 아닌 계수들의 위치는 특정 방향(수직 또는 수평)의 제 1 패스의 구현이 전체 숏컷들의 수가 많을 수록, 더 많은 전체 유효 변환의 이용을 초래한다는 것을 의미할 수도 있다. 그러므로, 보조 데이터가 데이터 블록의 행들과 열들 양자 모두에서의 0이 아닌 계수들의 위치를 나타내는 정보를 포함하는 경우에, IDCT의 제 1 패스에 대한 방향을 선택하기 위해 이러한 보조 행 데이터와 보조 열 데이터를 비교하도록 적합화된 경우에 유리하다.
따라서, 검출기는 주파수 계수들의 행렬이 0인 열들보다 0인 행들을 더 많이 포함하는지의 여부, 또는 0인 행들보다 0인 열들을 더 많이 포함하는지의 여부를 검출한다. 0인 열들보다 0인 행들이 더 많다면, 제 1 단계는 행들의 1차원 변환이다. 따라서, 계산들을 줄이는 관점에서 각각의 행렬이 변환되도록, 존재하는 0인 행들 또는 0인 열들을 최적으로 이용하는 것이 가능하다. 이것은 전력 소비를 감소시키고, 변환이 더 느리게 실행되게 하여 전자 소자들의 값이 싸게 할 수 있다.
도면들 및 상술한 설명은 본 발명에 제한하지 않고 예시한다. 추가된 청구항들의 범위 내에 포함되는 다수의 대안들이 있다는 것이 명확할 것이다. 이러한 관점에서, 다음의 마지막 설명이 이루어진다.
상술한 특정 실시예들이 런 길이 디코딩 처리가 0들의 런들에 관련한 런 값 쌍들 및 0이 아닌 계수들의 값을 발생시키는 경우에 관한 것이지만, 본 발명은 이 경우에 제한되지 않는다. 이에 반하여, 일부 다른 값들("소수 계수들(minority coefficients)"로 칭함)을 취하는 계수들이 후속한(또는 연속한) 일부 다른 값(이러한 계수들은 "다수 계수들(majority coefficients)"로 칭함)을 취하는 계수들의 런들을 포함하는 경우에 적용될 수 있다. 보조 데이터는 통상적으로 소수 계수들의 데이터 블록 내의 위치를 나타내고, 역 변환은 이러한 소수 계수들의 위치의 정보에 의해 더 효과적으로 될 수 있다.
바꾸어 말하면, 상술한 실시예들이 IDCT의 효과적인 구현과 관련한 것이지만, 본 발명은 그 구현이 데이터(다수 및 소수 계수들의 관점에서) 구조의 정보를 통해 더 효과적으로 될 수 있는 다른 역변환들에 또한 적용할 수 있다.
유사하게, 전 후 처리에서 처리된 데이터는 런 길이 코딩된 데이터를 필요로 하지 않는다. 본 발명은 이러한 데이터가 일부 다른 방법(예컨대, 초기 데이터가 데이터 블록 내의 계수들의 좌표로 소수 계수들의 위치를 나타낼 수 있다)으로 다수 및/또는 소수 계수들의 분포를 나타내는 경우에도 적용가능하다.
또한, 상기 설명은 2차원 데이터 블록들의 역 변환들에 대한 것이다. 그러나, 본 발명은 통상적으로 1차원 데이터 블록들 또는 다중 차원 데이터 블록들에도 적용가능하다.
또한, 인코딩되고 변환된 데이터는 차동 데이터(differential data), 즉, 일부 주요 데이터와, 예컨대, 예측 데이터 사이의 차이를 나타내는 데이터일 수 있다.
첨부한 청구항들에서 언급한 데이터 처리 장치는 MEPG 2 디코더일 수 있지만 그에 제한되는 것은 아니다.
청구항의 임의의 참조 부호는 청구항을 제한하도록 해석되지 말아야 한다.

Claims (15)

  1. 계수들의 세트를 포함하는 데이터 블록을 얻기 위하여, 입력 데이터를 처리하는 프런트 엔드 처리 단계, 및
    상기 데이터 블록을 처리하는 백 엔드 처리 단계를 포함하는 데이터 처리 방법에 있어서,
    상기 프런트 엔드 처리 단계는 상기 입력 데이터를 처리하는 동안 보조 데이터를 발생시키며, 상기 보조 데이터는 상기 데이터 블록내에, 다수 값을 취하는 계수들 및/또는 소수 값을 취하는 계수들의 위치를 나타내며,
    상기 백 엔드 처리 단계의 구현은 상기 보조 데이터를 기초로 하여 적합화된 것을 특징으로 하는 데이터 처리 방법.
  2. 제 1 항에 있어서,
    상기 백 엔드 처리 단계는 역이산 코사인 변환(IDCT)을 포함하는, 데이터 처리 방법.
  3. 제 1 또는 2 항에 있어서,
    상기 프런트 엔드 처리 단계는 런 길이 디코딩(run-length decoding) 처리를 포함하는, 데이터 처리 방법.
  4. 제 1 내지 3 항중 어느 한 한에 있어서,
    상기 수신된 데이터 블록은 다차원 데이터 블록이며, 상기 보조 데이터는 상기 데이터 블록의 서브-공간을 참조하여, 다수 값을 취하는 계수들 및/또는 소수 값을 취하는 계수들의 위치를 나타내는 데이터를 포함하는, 데이터 처리 방법.
  5. 제 4 항에 있어서,
    상기 보조 데이터는 1차원 데이터 블록을 참조하여, 다수 값을 취하는 계수들 및/또는 소수 값을 취하는 계수들의 위치를 나타내는 데이터를 포함하는, 데이터 처리 방법.
  6. 제 5 항에 있어서,
    상기 보조 데이터는 상기 데이터 블록에서의 행들을 참조하여, 다수 값을 취하는 계수들 및/또는 소수 값을 취하는 계수들의 위치를 나타내는 데이터를 포함하는, 데이터 처리 방법.
  7. 제 5 또는 6 항에 있어서,
    상기 보조 데이터는 상기 데이터 블록에서의 열들을 참조하여, 다수 값을 취하는 계수들 및/또는 소수 값을 취하는 계수들의 위치를 나타내는 데이터를 포함하는, 데이터 처리 방법.
  8. 제 1 내지 7 항중 어느 한항에 있어서,
    상기 백 엔드 처리는 각각 서로 다른 방향들에서 제 1 및 제 2 패스들을 포함하는 분리가능한 변환을 포함하고, 상기 보조 데이터에 근거하여, 상기 분리가능한 변환의 상기 제 1 패스의 구현을 위한 방향을 선택하는 단계가 제공되는, 데이터 처리 방법.
  9. 제 1 내지 8 항중 어느 한 항에 있어서,
    상기 보조 데이터는 상기 데이터 블록 내에, 0 계수들의 위치를 나타내는 데이터를 포함하는, 데이터 처리 방법.
  10. 제 1 내지 9 항중 어느 한 항에 있어서,
    상기 수신된 데이터 블록은 r 행들 및 c 열들을 갖는 2차원 데이터 블록이며, 여기서 r 및 c는 정수들이고, 상기 보조 데이터는 어느 행들이 0 계수들만을 포함하는 지를 나타내는 데이터를 포함하고, 상기 백 엔드 처리는 2차원 IDCT를 포함하고, 상기 보조 정보에 의해 0 계수들만을 포함하는 것으로 확인된 행들의 변환을 스킵하기 위해 수평 IDCT들을 구현하도록 적합화된, 데이터 처리 방법.
  11. 제 10 항에 있어서,
    상기 보조 정보가 상기 행들 중 최종 r-n이 0 계수들만을 포함하는 것을 나타내는 경우, 상기 적합화 단계는 단순화된 IDCT 알고리즘(IDCTn)을 적용함으로써수직 IDCT들을 구현하는 단계를 더 포함하며, 상기 단순화된 IDCT 알고리즘은 n에 의해 결정되는, 데이터 처리 방법.
  12. 제 1 내지 9 항중 어느 한 항에 있어서,
    상기 수신된 데이터 블록은 r 행들 및 c 열들을 갖는 2차원 데이터 블록이며, 여기서 r 및 c는 정수들이고, 상기 보조 데이터는 어느 열들이 0 계수들만을 포함하는 지를 나타내는 데이터를 포함하고, 상기 백 엔드 처리는 2차원 IDCT를 포함하고, 상기 보조 정보에 의해 0 계수들만을 포함하는 것으로 확인된 열들의 변환을 스킵하기 위해 수직 IDCT들을 구현하도록 적합화된, 데이터 처리 방법.
  13. 제 12 항에 있어서,
    상기 보조 정보가 상기 열들 중 최종 c-m이 0 계수들만을 포함하는 것을 나타내는 경우, 상기 적합화 단계는 단순화된 IDCT 알고리즘(IDCTm)을 적용함으로써 수평 IDCT들을 구현하는 단계를 더 포함하고, 상기 단순화된 IDCT 알고리즘은 m에 의해 결정되는, 데이터 처리 방법.
  14. 계수들의 세트를 포함하는 데이터 블록을 얻기 위하여, 입력 데이터를 처리하는 프런트 엔드 처리기, 및
    상기 데이터 블록을 처리하는 백 엔드 처리기를 포함하는 데이터 처리 장치에 있어서,
    상기 프런트 엔드 처리기는 상기 입력 데이터를 처리하는 동안 보조 데이터를 발생시키도록 구성되고, 상기 보조 데이터는 상기 데이터 블록 내에, 다수 값을 취하는 계수들 및/또는 소수 값을 취하는 계수들의 위치를 나타내고,
    상기 백 엔드 처리기는 상기 보조 데이터에 근거하여, 상기 데이터 블록을 처리하도록 구성되는 것을 특징으로 하는 데이터 처리 장치.
  15. 계수들의 세트를 포함하는 데이터 블록을 얻기 위하여 입력 데이터를 처리하는 프런트 엔드 처리기, 및
    상기 데이터 블록을 처리하는 백 엔드 처리기를 포함하는 데이터 처리 장치를 위한 컴퓨터 프로그램 제품에 있어서,
    상기 데이터 처리 장치에 로딩될 때,
    상기 프런트 엔드 처리기는 상기 입력 데이터를 처리하는 동안 보조 데이터를 발생시키며, 상기 보조 데이터는 상기 데이터 블록 내에, 다수 값을 취하는 계수들 및/또는 소수 값을 취하는 계수들의 위치를 나타내고,
    상기 백 엔드 처리기는 상기 보조 데이터에 근거하여, 상기 데이터 블록을 처리하게 하는 명령들의 세트를 포함하는 컴퓨터 프로그램 제품.
KR1020027006781A 2000-09-27 2001-09-14 데이터 디코딩 KR20020064913A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP00402674.6 2000-09-27
EP00402674 2000-09-27
PCT/EP2001/010716 WO2002028109A1 (en) 2000-09-27 2001-09-14 Decodong of data

Publications (1)

Publication Number Publication Date
KR20020064913A true KR20020064913A (ko) 2002-08-10

Family

ID=8173881

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027006781A KR20020064913A (ko) 2000-09-27 2001-09-14 데이터 디코딩

Country Status (6)

Country Link
US (1) US20020080052A1 (ko)
EP (1) EP1325638A1 (ko)
JP (1) JP2004511139A (ko)
KR (1) KR20020064913A (ko)
CN (1) CN1397140A (ko)
WO (1) WO2002028109A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100682912B1 (ko) * 2005-01-05 2007-02-15 삼성전자주식회사 화상 데이터 부호화 및 복호화 방법 및 장치

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7656949B1 (en) * 2001-06-27 2010-02-02 Cisco Technology, Inc. Methods and apparatus for performing efficient inverse transform operations
US7336837B2 (en) * 2005-01-11 2008-02-26 Nokia Corporation Method and system for coding/decoding of a video bit stream for fine granularity scalability
GB2492333B (en) 2011-06-27 2018-12-12 British Broadcasting Corp Video encoding and decoding using transforms
US10264263B2 (en) * 2016-07-06 2019-04-16 Morpho Detection, Llc Systems and methods for compressing image data generated by a computed tomography (CT) imaging system
JP6855722B2 (ja) * 2016-09-21 2021-04-07 富士ゼロックス株式会社 画像処理装置およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3750206C5 (de) * 1986-09-13 2019-11-14 Philips Gmbh Verfahren und Schaltungsanordung zur Bitratenreduktion.
EP0447269B1 (en) * 1990-03-16 2000-05-31 Fujitsu Limited An image data processing system
DE69131808T2 (de) * 1990-07-31 2000-03-16 Fujitsu Ltd Verfahren und Gerät zur Bilddatenverarbeitung
JPH05268482A (ja) * 1991-10-15 1993-10-15 Internatl Business Mach Corp <Ibm> 画像情報を圧縮解除する方法およびその装置
US5614952A (en) * 1994-10-11 1997-03-25 Hitachi America, Ltd. Digital video decoder for decoding digital high definition and/or digital standard definition television signals
US6421695B1 (en) * 1995-10-28 2002-07-16 Lg Electronics Inc. Apparatus for implementing inverse discrete cosine transform in digital image processing system
US6337882B1 (en) * 1998-03-06 2002-01-08 Lucent Technologies Inc. Method and apparatus for generating unlimited selected image views from a larger image
US20020027954A1 (en) * 1998-06-30 2002-03-07 Kenneth S. Singh Method and device for gathering block statistics during inverse quantization and iscan

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100682912B1 (ko) * 2005-01-05 2007-02-15 삼성전자주식회사 화상 데이터 부호화 및 복호화 방법 및 장치

Also Published As

Publication number Publication date
WO2002028109A1 (en) 2002-04-04
US20020080052A1 (en) 2002-06-27
EP1325638A1 (en) 2003-07-09
JP2004511139A (ja) 2004-04-08
CN1397140A (zh) 2003-02-12

Similar Documents

Publication Publication Date Title
US7129862B1 (en) Decoding bit streams encoded according to variable length codes
CN101438595B (zh) 运动图像处理方法及运动图像处理设备
US6002801A (en) Method and apparatus for improved video decompression by selection of IDCT method based on image characteristics
JP3378257B2 (ja) 希薄データセットをネスト状分割コード化するシステム及び方法
WO2001013648A1 (en) Method and device for variable complexity decoding of motion-compensated block-based compressed digital video
US20040042675A1 (en) Image coding and decoding apparatus, method of image coding and decoding, and recording medium for recording program for image coding and decoding
US5371611A (en) Method for and system of decoding compressed continuous-tone digital image data
US20020076115A1 (en) JPEG packed block structure
US5387982A (en) Apparatus for performing inverse discrete cosine transform
KR960040012A (ko) 프랙탈 영상 압축 장치 및 방법
US5124791A (en) Frame-to-frame compression of vector quantized signals and other post-processing
US6198767B1 (en) Apparatus for color component compression
KR100944928B1 (ko) 버터플라이 프로세서를 이용하여 이산 코사인 변환을인코딩하고 계산하는 장치 및 방법
US5907635A (en) Picture data decompression apparatus
US6737993B2 (en) Method and apparatus for run-length encoding data values
KR20020064913A (ko) 데이터 디코딩
US6304604B1 (en) Method and apparatus for configuring compressed data coefficients to minimize transpose operations
JP2888292B2 (ja) 2次元逆離散コサイン変換(idct)装置
US6411736B1 (en) Method and apparatus for decoding
JPH1196138A (ja) 逆コサイン変換方法及び逆コサイン変換器
US6279062B1 (en) System for reducing data transmission between coprocessors in a video compression/decompression environment by determining logical data elements of non-zero value and retrieving subset of the logical data elements
US6922491B2 (en) Wavelet filtering
KR100295304B1 (ko) Ic메모리를갖는멀티미디어컴퓨터
JPH08116268A (ja) 情報処理装置
US7391909B2 (en) Data manipulation

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid