KR20130030299A - 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치 - Google Patents

가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치 Download PDF

Info

Publication number
KR20130030299A
KR20130030299A KR1020137003027A KR20137003027A KR20130030299A KR 20130030299 A KR20130030299 A KR 20130030299A KR 1020137003027 A KR1020137003027 A KR 1020137003027A KR 20137003027 A KR20137003027 A KR 20137003027A KR 20130030299 A KR20130030299 A KR 20130030299A
Authority
KR
South Korea
Prior art keywords
codeword
sorting
syntax element
mapping
sorting table
Prior art date
Application number
KR1020137003027A
Other languages
English (en)
Other versions
KR101497845B1 (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 노키아 코포레이션
Publication of KR20130030299A publication Critical patent/KR20130030299A/ko
Application granted granted Critical
Publication of KR101497845B1 publication Critical patent/KR101497845B1/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/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/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards

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)

Abstract

코드워드들의 집합의 코드워드로서 부호화될 신택스 요소를 수신하는 단계와, 트리 구조의 계층 레벨에 기초하여 신택스 요소 및 코드워드 사이의 매핑을 결정하는 단계와, 코드워드를 얻기 위해 매핑을 이용하는 매핑을 업데이트하는 단계를 포함하는 방법이 개시된다.

Description

가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치{METHOD AND APPARATUS FOR DETERMINING MAPPING BETWEEN A SYNTAX ELEMENT AND A CODE WORD FOR VARIABLE LENGTH CODING}
가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법, 가변장 복호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법, 장치, 인코더 및 디코더가 제공된다.
비디오 코덱은 입력된 비디오를 저장 및/또는 전송에 적합한 압축 표현으로 변환하는 인코더 및 압축된 비디오 표현을 다시 보기 가능한 형식으로 압축해제할 수 있는 디코더를 포함한다. 통상적으로, 인코더는 비디오를 보다 컴팩트한 형식, 예컨대 보다 낮은 비트율로 표현하기 위해 원본 비디오 시퀀스에서 일부 정보를 버린다.
예컨대, 국제 전기통신 연합(International Telecommunication Union)의 ITU-T H.263 및 H.264 부호화 표준에 따라 동작하는 통상적 비디오 코덱들은 비디오 정보를 두 단계로 부호화한다. 첫 번째 단계에서 소정 화상 영역 또는 "블록(block)" 내 픽셀 값들이 예측된다. 이 픽셀 값들은 예컨대, 앞서 부호화된 비디오 프레임들(또는 이후 부호화된 비디오 프레임) 중 하나 안에서 부호화되고 있는 블록에 거의 일치하는 영역을 찾아 지시하는 일을 수반하는 모션 보상 메커니즘에 의해 예측될 수 있다. 또한 픽셀 값들은 공간적 영역 관계를 찾아 지시하는 일을 수반하는 공간적 메커니즘들에 의해 예측될 수 있다.
두 번째 단계는 픽셀들의 예측된 블록 및 픽셀들의 원본 블록 사이의 오차를 부호화하는 것이다. 이것은 통상적으로 특정 변환을 이용하여 픽셀 값들의 차이를 변환함으로써 이루어진다. 이러한 변환은 통상적으로 DCT(Discrete Cosine Transform) 또는 그 변종이다. 상기 차이를 변환한 후, 변환된 차이가 양자화되고 엔트로피 부호화된다.
양자화 프로세스의 충실도를 가변시킴으로써 인코더는 픽셀 표현의 정확도(즉, 화질) 및 그에 따라 부호화된 비디오 표현(즉, 파일 사이즈 및 전송 비트율) 사이의 균형을 조절할 수 있다. 부호화 프로세스의 일례가 도 1에 묘사된다.
디코더는 (인코더에 의해 생성되어 이미지의 압축 표현으로 저장되는 모션이나 공간 정보를 이용하여) 픽셀 블록들의 예측 표현을 형성하기 위해 인코더에 의해 사용되는 것과 유사한 예측 메커니즘 및 예측 에러 복호화(공간 도메인에서 양자화된 예측 에러 신호를 복구하기 위한 예측 에러 부호화의 역 연산)를 적용하여 출력 비디오를 복원한다.
픽셀 예측 및 에러 복호화 프로세스들을 적용한 후 디코더는 출력 비디오 프레임을 형성하기 위해 예측 및 예측 에러 신호들(픽셀 값들)을 결합한다.
디코더(및 인코더)는 또한 비디오 시퀀스의 다음 프레임들을 위한 예측 기준으로서 디스플레이 및/또는 저장하기 위해 출력 비디오를 전달하기 전에 그 품질을 향상시키도록 추가 필터링 프로세스들을 적용할 수 있다. 복호화 프로세스의 일례가 도 2에 묘사된다.
통상적인 비디오 코덱들에서 모션 정보는 각각의 모션 보상된 이미지 블록과 연관된 모션 벡터들에 의해 지시된다. 이 모션 벡터들 각각은 (인코더에서) 부호화되거나 (디코더에서) 복호화될 화상 내 이미지 블록의 변위 및 앞서 부호화되거나 복호화된 이미지들(또는 화상들) 중 하나의 예측 소스 블록을 나타낸다. 모션 벡터들을 효율적으로 표현하기 위해 모션 벡터들은 통상적으로 블록 고유의 예측된 모션 벡터에 대해 차동 부호화된다. 통상적 비디오 코덱에서 예측된 모션 벡터들은 소정 방식에 따라, 예컨대 인접 블록들의 부호화되거나 복호화된 모션 벡터들의 중간값을 산출함으로써 생성된다.
통상의 비디오 코덱들에서 모션 보상 이후의 예측 잔차가 먼저 (DCT 같은) 변환 커널을 가지고 변환되고 그런 다음에 부호화된다. 이렇게 하는 이유는 보통, 잔차 사이에 어떤 상관이 여전히 존재하고 많은 경우들에서 변환이 이러한 상관을 줄이는 데 도움을 주고 보다 효율적인 부호화를 제공할 수 있기 때문이다.
통상의 비디오 인코더들은 최적의 부호화 모드들, 예컨대 원하는 매크로 블록 모드 및 관련 모션 벡터들을 찾기 위해 라그랑주 코스트(Lagrangian cost) 함수를 활용한다. 이러한 타입의 코스트 함수는 손실이 있는 부호화 방법들로 인한 정확하거나 추정된 이미지 왜곡 및 이미지 영역 내 픽셀 값들을 나타내기 위해 요구되는 정확하거나 추정된 정보량을 긴밀히 연결하기 위한 가중 인자를 이용한다.
이것이 다음 식으로 표현될 수 있다:
Figure pct00001
여기서 C는 최소화될 라그랑주 코스트이고, D는 현재 고려된 모드 및 모션 벡터들에 따른 이미지 왜곡(즉 평균-제곱 에러)이며, R은 디코더에서 이미지 블록을 복원하기 위해 요구되는 데이터를 나타내는 데 필요로 되는 비트 수(후보 모션 벡터들을 나타내기 위한 데이터량을 포함)이다.
서로 다른 길이를 가질 수 있는 코드워드들을 사용하여 소스 심볼들이 부호화될 때, 소스 심볼들은 고유한 코드워드들로 변환된다. 이런 종류의 부호화를 가변장 부호화(VLC)라 부를 수 있다. 부호화는 보다 가능한 심볼들이 보다 짧은 코드워드들로 표현되고 보다 덜 가능한 심볼들이 보다 긴 코드워드들로 표현되도록 설계될 수 있다. 코드워드들이 전송될 때 보다 짧은 코드워드들은 보다 긴 코드워드들과 비교해 보다 적은 비트들로 표현될 수 있다. 가변장 부호화의 한 가지 목적은 심볼들이 그렇게 부호화되었던 상황과 비교하여 심볼들을 표현하는데 필요로 되는 정보량을 줄이기 위한 것이다. 다시 말하면 심볼들의 집합이 코드워드들로 변환될 때, 그에 따른 코드 표현은 소스보다 적은 비트들을 포함해야 한다. 심볼들의 집합은 많은 종류의 정보를 포함할 수 있다. 예를 들어 심볼들의 집합은 바이트들로 이루어진 파일, 비디오 스트림이나 오디오 스트림과 같은 정보 스트림, 이미지 등일 수 있다.
가변장 코드워드들의 설계는 소스 심볼들이 표현되는 소스의 가능성 통계자료에 의존할 수 있다. 가변장 부호화를 위한 코드워드들의 집합을 얻기 위해 가능성 통계자료가 어떤 대표적 소스 자료로부터 수집될 수 있고 코드워드들은 그러한 통계자료를 중심으로 설계된다. 이것은 아주 잘 작용할 수 있으나 많은 경우 통계자료들이 고정되어 있지 않고 시간에 따라 가변될 수 있으며, 고정된 코드워드들의 집합을 가지는 것은 양호한 압축을 도출하지 못할 것이다. 보다 우수한 압축을 달성하기 위해 가변장 코드워드들의 집합은 지속적으로 소스의 관찰 통계자료들에 내부적으로 적응될 수 있을 것이다.
적응을 수행하는 하나의 방식이 심볼 빈도들을 추적하고, 심볼들이 부호화될 때 가변장 코드워드들의 집합을 즉시 정의하기 위해 그 빈도들을 이용하는 것이다. 이런 종류의 완전(full) 적응은 특히 소스 심볼들의 범위가 클 경우 매우 복잡한 동작이다. 실제 구현예에서는 어떤 형식의 차선적(suboptimal) 적응이 수행될 수 있다. 예를 들어 인코더는 가변장 코드워드들의 다수의 소정 집합들을 이용하고 내부 통계자료들의 추정에 기반하여 이들 중 한 집합을 선택할 수 있을 것이다. 또 다른 예에서 코더는 부호화된 코드워드 당 복잡도가 낮도록 그 집합의 개별 코드워드들의 일부만이 동시에 바뀌도록 집합의 코드워드들을 점진적으로 적응할 수 있을 것이다.
본 발명은 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법을 제시한다. 매핑의 결정은 트리 구조 내 계층 레벨의 정보를 이용함으로써 실현될 수 있다. 어떤 예시적 실시예들에서 트리 구조는 변환 블록들, 모션 분할 블록들, 예측 블록들 중 하나 이상을 포함할 수 있다.
본 발명의 한 예시적 실시예에 따라 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법이 제공된다. 본 발명의 다른 예시적 실시예에 따라 가변장 복호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법이 제공된다.
본 발명의 제1양태에 따른 방법은
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하는 단계;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하는 단계;
상기 코드워드를 획득하기 위해 상기 매핑을 이용하는 단계; 및
상기 매핑을 업데이트하는 단계를 포함한다.
본 발명의 제2양태에 따른 방법은
코드워드들의 집합의 한 코드워드를 수신하는 단계;
트리 구조 내 계층 레벨을 판단하는 단계;
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하는 단계; 및
상기 매핑을 업데이트하는 단계를 포함한다.
본 발명의 제3양태에 따른 장치는
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하도록 구성된 입력;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하도록 구성된 결정 요소;
상기 코드워드를 획득하기 위해 상기 매핑을 이용하도록 구성된 코드워드 선택기; 및
상기 매핑을 업데이트하도록 구성된 적응기를 포함한다.
본 발명의 제4양태에 따른 장치는
코드워드들의 집합의 한 코드워드를 수신하도록 구성된 입력;
트리 구조 내 계층 레벨을 판단하도록 구성된 결정 요소;
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위해 매핑을 결정하도록 구성된 신택스 요소 선택기; 및
상기 매핑을 업데이트하도록 구성된 적응기를 포함한다.
상기 장치는 인코더를 포함할 수 있다.
상기 장치는 디코더를 포함할 수 있다.
전자 기기가 상기 구성과 같은 장치를 포함할 수 있다.
칩셋이 상기 구성과 같은 장치를 포함할 수 있다.
본 발명의 제5양태에 따르면 인코더에 의해 사용할 컴퓨터 실행 가능 프로그램 코드를 저장한 저장 매체가 제공되며, 상기 프로그램 코드들은
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하는 단계;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하는 단계;
상기 코드워드를 획득하기 위해 상기 매핑을 이용하는 단계; 및
상기 매핑을 업데이트하는 단계를 위한 명령어들을 포함한다.
본 발명의 제6양태에 따르면 디코더에 의해 사용할 컴퓨터 실행 가능 프로그램 코드를 저장한 저장 매체가 제공되며, 상기 프로그램 코드들은
코드워드들의 집합의 한 코드워드를 수신하는 단계;
트리 구조 내 계층 레벨을 판단하는 단계;
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하는 단계; 및 상기 매핑을 업데이트하는 단계를 위한 명령어들을 포함한다.
본 발명의 제7양태에 따라 제공되는 장치는 적어도 하나의 프로세서;
및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고, 상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서를 통해, 상기 장치가 적어도
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하고,
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하고,
상기 코드워드를 획득하기 위해 상기 매핑을 이용하며,
상기 매핑을 업데이트하게 한다.
본 발명의 제8양태에 따라 제공되는 장치는
적어도 하나의 프로세서;
및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하며,
상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서를 통해, 상기 장치가 적어도
코드워드들의 집합의 한 코드워드를 수신하고,
트리 구조 내 계층 레벨을 판단하고,
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하며, 상기 매핑을 업데이트하게 한다.
본 발명의 제9양태에 따라 제공되는 장치는
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하기 위한 수단;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하기 위한 수단;
상기 코드워드를 획득하기 위해 상기 매핑을 이용하기 위한 수단; 및
상기 매핑을 업데이트하기 위한 수단을 포함한다.
본 발명의 제10양태에 따라 제공되는 장치는
코드워드들의 집합의 한 코드워드를 수신하기 위한 수단;
트리 구조 내 계층 레벨을 판단하기 위한 수단;
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하기 위한 수단; 및
상기 매핑을 업데이트하기 위한 수단을 포함한다.
신택스의 값을 이진 형식으로 변환하는 것으로부터의 변환 프로세서에서, 변환 사이즈 또는 다른 변환 특징이 입력 파라미터로서 사용될 수 있다. 변환 프로세스가 적응적 소팅(sorting) 테이블들을 이용하는 경우, 서로 다른 소팅 테이블들이 서로 다른 변환 사이즈들에 대해 사용될 수 있다. 4진 트리 구조의 변환들의 분할(splitting)은 그들을 개별적으로 부호화하는 대신 그룹으로서 부호화될 수 있다.
어떤 실시예들에서 4진 트리에서 고차 혹은 이웃 노드들의 이미 부호화된 cbp 값들이 소팅 테이블을 결정하기 위해 변환 특성들에 더하여 사용될 수 있다.
어떤 또 다른 실시예들에서 신택스 요소의 값을 이진 형식으로 변환하는 것은 적응적 소팅 테이블들을 이용하지 않고 수행될 수 있다. 예를 들어 서로 다른 VLC 테이블들이 서로 다른 변환 사이즈에 대해 부호화된 블록 패턴 값들을 부호화하는 데 사용될 수 있다. 정황 적응적 이진 산술 부호화(CABAC) 또는 유사한 엔트로피 부호화 방법이 사용되는 경우, 부호화된 블록 패턴 값들에 대한 정황 선택이 변환 사이즈에 기반하여 수행될 수 있다.
도 1은 정보가 인코더로부터 디코더로 전송되는 시스템의 예시적 실시예를 간략화된 블록도로서 도시한다.
도 2는 본 발명의 예시적 실시예에 따른 인코더를 간략화된 블록도로서 도시한다.
도 3은 본 발명의 예시적 실시예에 따른 디코더를 간략화된 블록도로서 도시한다.
도 4는 본 발명의 예시적 실시예에 따른 부호화 방법을 흐름도로서 도시한다.
도 5는 본 발명의 예시적 실시예에 따른 복호화 방법을 흐름도로서 도시한다.
도 6a는 보다 작은 블록들로의 매크로블록의 분할 예를 도시한다.
도 6b는 도 6a의 매크로블록의 신택스 요소들의 계층 구조에 대한 예를 트리 다이어그램으로서 도시한다.
도 6c는 매크로블록의 신택스 요소들의 계층 구조에 대한 다른 예를 트리 다이어그램으로서 도시한다.
도 7a-7c는 네 개의 하위 블록들로 분할된 매크로블록들 및 대응하는 부호화된 블록 패턴 값들의 일부 예들을 도시한다.
도 8은 본 발명의 일부 실시예들을 이용하는 전자 기기를 개략적으로 도시한다.
도 9는 본 발명의 일부 실시예들을 이용하기 적합한 사용자 기기를 개략적으로 도시한다.
도 10은 무선 및 유선 네트워크 접속들을 이용하여 연결된 본 발명의 실시예들을 이용하는 전자 기기들을 개략적으로 도시한다.
도 11은 비디오 인코더의 일 실시예를 개략적으로 도시한다.
도 12는 비디오 디코더의 일 실시예에 대한 개략도를 도시한다.
도 13은 본 발명의 다른 예시적 실시예에 따른 인코더를 간략화된 블록도로서 도시한다.
도 14는 본 발명의 또 다른 예시적 실시예에 따른 디코더를 간략화된 블록도로서 도시한다.
이하는 비디오 코덱의 부호화 효율성 및 신호 충실도 개선의 제공을 위한 알맞은 장치 및 가능한 메커니즘들을 보다 상세히 기술한다. 이와 관련하여, 본 발명의 일 실시예에 따른 코덱을 포함할 수 있는 예시적 장치나 전자 기기(50)의 개략적 블록도를 도시한 도 8가 먼저 참조되며, 그 후 본 발명의 일부 실시예들을 이용하는 데 적합한 사용자 기기를 개략적으로 도시한 도 9가 참조된다.
전자 기기(50)는 예컨대 무선 통신 시스템의 모바일 단말이나 사용자 기기일 수 있다. 그러나, 본 발명의 실시예들은 비디오 이미지들을 부호화 및 복호화하거나 부호화하거나 복호화하는 것을 필요로 할 수 있는 어떤 전자 기기나 장치 내에 구현될 수 있다는 것을 예상할 수 있을 것이다.
장치(50)는 기기를 포함 및 보호하기 위한 하우징(30)을 포함할 수 있다. 장치(50)는 액정 디스플레이 형식의 디스플레이(32)를 더 포함할 수 있다. 본 발명의 다른 실시예들에서 디스플레이는 이미지나 비디오를 디스플레이하는 데 적합한 어떤 적절한 디스플레이 기술일 수 있다. 장치(50)는 키패드(34)를 더 포함할 수 있다. 본 발명의 다른 실시예들에서 어떤 적절한 데이터나 사용자 인터페이스 메커니즘이 사용될 수 있다. 예컨대 사용자 인터페이스는 터치 감응 디스플레이의 일부인 가상의 키보드나 데이터 입력 시스템으로서 구현될 수 있다. 장치는 마이크로폰(2.3)이나 디지털 또는 아날로그 신호 입력일 수 있는 어떤 적절한 오디오 입력을 포함할 수 있다. 장치(50)는 본 발명의 실시예들에서 이어폰(38), 스피커, 또는 아날로그 오디오 또는 디지털 오디오 출력 접속 중 어느 하나일 수 있는 오디오 출력 기기를 더 포함할 수 있다. 장치(50)는 또한 배터리(40)를 포함할 수 있다(또는 본 발명의 다른 실시예들에서 기기가 태양 전지, 연료 전지 또는 태엽감기 발전기와 같은 어떤 적절한 모바일 에너지 기기에 의해 전력 공급될 수 있다). 장치는 다른 기기들로의 단거리 전망선(line of sight) 통신을 위한 적외선 포트(42)를 더 포함할 수 있다. 다른 실시예들에서 장치(50)는 예컨대 블루투스 무선 접속 또는 USB/파이어와이어(firewire) 유선 접속과 같은 어떤 적절한 단거리 통신 해법을 더 포함할 수 있다.
장치(50)는 장치(50)를 제어하기 위한 제어기(1.4, 11.4) 또는 프로세서를 포함할 수 있다. 제어기(1.4, 11.4)는 본 발명의 실시예들에서 이미지 형태의 데이터 및 오디오 데이터 모두를 저장하고/거나 제어기(1.4, 11.4) 상에서 구현하기 위한 명령어들을 또한 저장할 수 있는 메모리(58)에 연결될 수 있다. 제어기(1.4, 11.4)는 오디오 및/또는 비디오 데이터의 부호화 및 복호화를 수행하고/하거나 제어기(1.4, 11.4)에 의해 수행되는 부호화 및 복호화를 돕기 적합한 코덱 회로(54)에 더 연결될 수 있다.
장치(50)는 카드 리더(48) 및 스마트 카드(46), 예컨대 사용자 정보를 제공하고 네트워크에서의 사용자의 인가 및 위임을 위한 인증 정보를 제공하는데 적합한 UICC 및 UICC 리더를 더 포함할 수 있다.
장치(50)는 제어기에 연결되고 예컨대 셀룰라 통신 네트워크, 무선 통신 시스템 또는 무선 랜(local area network)과의 통신을 위한 무선 통신 신호들을 생성하기 적합한 무선 인터페이스 회로(52)를 포함할 수 있다. 장치(50)는 무선 인터페이스 회로(52)에서 생성된 무선 주파수 신호들을 다른 장치(들)로 전송하고 다른 장치(들)로부터 무선 주파수 신호들을 수신하기 위해 무선 인터페이스 회로(52)에 연결되는 안테나(44)를 더 포함할 수 있다.
본 발명의 일부 실시예들에서 장치(50)는 처리되기 위해 코덱(54)이나 제어기로 전달되는 개별 프레임들을 기록하거나 검출할 수 있는 카메라를 포함한다. 본 발명의 일부 실시예들에서 장치는 전송 및/또는 저장 전에 처리할 비디오 이미지 데이터를 다른 기기로부터 수신할 수 있다. 본 발명의 일부 실시예들에서 장치(50)는 무선이나 유선 접속을 통해 부호화 복호화를 위한 이미지를 수신할 수 있다.
도 10과 관련하여 본 발명이 실시예들이 활용될 수 있는 시스템의 일례가 도시된다. 시스템(110)은 하나 이상의 네트워크들을 통해 통신할 수 있는 여러 통신 기기들을 포함한다. 시스템(110)은 (GSM, UMTS, CDMA 네트워크 등과 같은) 무선 셀룰라 전화망, IEEE 802.x 중 어느 하나에 의해 정의된 것과 같은 무선 랜(WLAN), 블루투스 PAN(personal area network), 이더넷 랜, 토큰 링 랜, WAN(wide area network), 및 인터넷을 포함하나 그에 국한되지 않는 유무선 네트워크들의 어떤 조합을 포함할 수 있다.
시스템(110)은 본 발명의 실시예들을 구현하기 적합한 유무선 양 통신 기기들이나 장치(50)를 포함할 수 있다.
예컨대, 도 10에 도시된 시스템(10)은 모바일 전화 네트워크망(111) 및 인터넷(128) 표현을 포함한다. 인터넷(128)으로의 연결은 장거리 무선 접속, 단거리 무선 접속 및, 전화선, 케이블선, 전력선 등을 포함하나 그에 국한되지 않는 여러 유선 접속 및 그와 유사한 통신 경로들을 포함할 수 있으나 거기에 국한되지 않는다.
시스템(110) 안에 도시된 예시적인 통신 기기들은 전자 기기나 장치(50), PDA(personal digital assistant) 및 모바일 전화(114)의 복합기, PDA(16), 통합 메시징 기기(EvID)(118), 데스크탑 컴퓨터(120), 노트북 컴퓨터(122) 등을 포함할 수 있으나 그에 국한되는 것은 아니다. 장치(50)는 정지형이거나 이동하고 있는 개인에 의해 휴대될 때의 모바일형일 수 있다. 장치(50)는 또한 자가용, 트럭, 택시, 버스, 기차, 배, 비행기, 자전거, 오토바이 또는 어떤 유사한 적절한 전송 모드를 포함하나 그에 한정되지 않는 전송 모드 안에 위치될 수 있다.
어떤 또는 추가 장치가 통화 및 메시지를 송신 및 수신할 수 있고, 기지국(124)으로의 무선 접속(25)을 통해 서비스 제공자들과 통신할 수 있다. 기지국(124)은 모바일 전화망(111) 및 인터넷(128) 사이의 통신을 가능하게 하는 네트워크 서버(126)에 연결될 수 있다. 시스템은 다양한 종류의 통신 장치들 및 추가 통신 장치들을 포함할 수 있다.
통신 장치들은 CDMA(code division multiple access), GSM(global systems for mobile communications), UMTS(universal mobile telecommunications system), TDMA(time divisional multiple access), FDMA(frequency division multiple access), TCP/IP((transmission control protocol-internet protocol), SMS(short messaging service), MMS(multimedia messaging service), 이메일, IMS(instant messaging service), 블루투스, IEEE 802.11, 또는 어떤 유사한 무선 통신 기술을 포함하나 그에 국한하지 않는 다양한 전송 기술들을 사용해 통신할 수 있다. 본 발명의 다양한 실시예들을 구현하는 데 관계되는 통신 장치는 라디오, 적외선, 레이저, 케이블 접속 및 어떤 적절한 접속을 포함하나 그에 국한하지 않는 다양한 매체를 이용해 통신할 수 있다.
이하에서 도 1의 시스템이 보다 상세히 기술될 것이다. 부호화되어 전송될 정보가 소스(2)로부터 인코더(10)에 의해 수신된다. 인코더는 사용자 장치(50)의 코덱의 일부일 수 있고, 또는 다른 장치의 일부일 수 있으며, 또는 장치 자체일 수도 있다. 정보는 예컨대, 비디오 정보, 오디오 정보, 정지 이미지들, 텍스트 등일 수 있다. 정보는 둘 이상의 이종 정보의 조합일 수도 있다. 그러면 각각의 종류의 정보에 대해 서로 다른 인코더들과 디코더들이 제공되거나 동일한 인코더 및/또는 디코더가 이종 정보를 처리할 수 있다. 소스(2)는 예컨대 비디오 카메라(2.1), 정지 카메라(2.2), 마이크로폰(2.3), 가령 DVD(digital versatile disks)를 재생할 수 있는 기기(2.4), 저장 매체(2.5) 등일 수 있다. 상기 정보 및 소스(2)의 예들은 단지 본 발명을 예시하기 위한 것으로 본 발명의 범위를 제한하려는 것이 아니다. 소스(2)로부터의 정보가 제1장치(8)의 인코더(1)에 의해 부호화된다. 부호화된 정보는 메모리(4)에 저장되고/거나 전송기(9)에 의해 전송 채널(15)로 전송될 수 있다. 전송된 정보는 제2장치(10)의 수신기(114)에 의해 수신될 수 있다. 제2장치(10)는 수신된 정보를 복호화하는 디코더(11)를 포함한다. 복호화된 정보는 예컨대 복호화된 정보를 제2장치(12)의 메모리에 저장함으로써 후처리되고, 정보가 시각 정보를 포함하는 경우 디스플레이에 의해 표시되고, 정보가 오디오 정보를 포함하는 경우 오디오 정보 등으로 변환될 수 있다.
도 11과 관련하여 비디오 정보의 부호화를 수행하기 적합한 비디오 인코더의 블록도가 도시된다.
도 11은 인코더가 픽셀 예측기(302), 예측 에러 인코더(303), 및 예측 에러 디코더(304)를 포함하는 것으로 도시한다.
픽셀 예측기(302)는 인터 예측기(306)(이미지 및 참조 프레임(318) 사이의 차이를 판단) 및 인트라 예측기(308)(현재 프레임 또는 화상에만 기초하는 이미지를 판단) 둘 모두에서 부호화될 이미지(300)를 수신한다. 인터 예측기 및 인트라 예측기 모두의 출력은 모드 선택기(310)로 보내진다. 모드 선택기(310)는 이미지(300)의 사본을 또한 수신한다. 모드 선택기의 출력은 제1합산 기기(321)로 보내지는 인터 예측기(306)나 인트라 예측기(308) 중 어느 하나로부터의 예측 표현이다. 제1합산 기기는 이미지(300)로부터 픽셀 예측기(302) 출력을 감산하여 예측 에러 인코더(303)의 입력인 제1예측 에러 신호(320)를 도출할 수 있다.
픽셀 예측기(302)는 예비 복원기(339)로부터 이미지 블록(312)의 예측 표현 및 예측 에러 디코더(304)의 출력의 조합을 더 수신한다. 예비 복원된 이미지(314)는 인트라 예측기(308) 및 필터(316)로 보내질 수 있다. 예비 표현을 수신한 필터(316)는 그 예비 표현을 필터링하여 참조 프레임 메모리(318)에 저장될 수 있는 최종 복원된 이미지(340)를 출력할 수 있다. 참조 프레임 메모리(318)는 인터 예측 동작 시 이미지(300)에 비교되는 참조 이미지로서 사용되도록 인터 예측기(306)에 연결될 수 있다.
픽셀 예측기(302)의 동작은 이 기술 분야에 알려진 어떤 기존 픽셀 예측 알고리즘을 수행하도록 구성될 수 있다.
예측 에러 인코더(303)는 매크로블록들의 계수 값들에 대해 이산 코사인 변환(DCT), 이산 사인 변환(DST), 또는 카후넨 로에브 변환(Karhunen-Loeve transform (KLT))과 같은 변환을 수행하는 변환 블록(351)을 포함한다. 예측 에러 인코더(303)는 또한 계수들에 대해 양자화 연산을 수행하는 양자화 블록(353)을 포함한다. 예측 에러 인코더(303)의 출력은 엔트로피 인코더(330) 및 예측 에러 디코더(304)로도 보내진다.
엔트로피 인코더(330)는 예측 에러 인코더의 출력을 수신하여 에러 검출 및 정정 기능을 제공하기 위해 신호에 대해 적절한 엔트로피 부호화/가변장 부호화를 수행할 수 있다. 엔트로피 인코더(330)는 인코더(1)를 포함할 수 있다.
예측 에러 디코더(304)는 예측 에러 인코더(303)로부터 출력을 수신하고 예측 에러 인코더(303)의 반대 프로세스를 수행하여 복호화된 예측 에러 신호(338)를 생성하고, 복호화된 예측 에러 신호(338)는 제2합산 기기(339)에서 이미지 블록(312)의 예측 표현과 결합될 때 예비 복원된 이미지(314)를 생성한다.
인코더(1)의 예시적 실시예가 도 2에 도시된다. 인코더(1)는 부호화될 정보를 수신할 입력(1.1)을 가진다. 정보가 아날로그 형식이면 예컨대 아날로그-디지털 컨버터(3)에 의해 디지털 형식으로 변환된다. 아날로그-디지털 컨버터(3)는 아날로그 정보에 기초하여 샘플들을 형성한다. 샘플들은 어떤 시간 인터벌로 아날로그 신호를 표현한다. 그러나 그 정보가 이미 인코더(1)가 그것을 처리할 수 있는 형식으로 되어 있을 수 있다. 그에 따라 아날로그-디지털 컨버터(3)가 필요로되지 않을 수 있다. 샘플들은 샘플 버퍼(4.1)에 저장될 수 있다.
도 11의 시스템에서, 예측 에러 인코더(303)로부터 부호화될 정보는 양자화된 계수들이 이미 디지털 형식으로 되어 있기 때문에 아날로그-디지털 컨버터(3)를 사용하지 않고 입력(1.1)으로 제공될 수 있다.
이하에서, 전송될 정보는 시각 정보라고 추정된다. 시각 정보는 픽셀 예측기(302), 예측 에러 인코더(303), 및 예측 에러 디코더(304)로 제공된다. 상술한 바와 같이, 픽셀 예측 동작들은 인트라(I) 화상들, 예측된(P) 화상들, 및/또는 양방향으로 예측된(B) 화상들을 형성하기 위해 인트라 예측 또는 인터 예측과 같이 수행될 수 있다. 이러한 화상들은 매크로 블록들로 변환될 수 있다. 예를 들어 블록 프로세서(1.7)는 다음과 같은 변환 사이즈들을 이용할 수 있다: 4x4, 8x8, 16x16, 32x32, 64x64 및 128x128.
전송될 정보는 코드워드들을 생성하기 위해 인코더(1)에 의해 부호화된다. 이하에서 부호화 프로세스가 도 4의 흐름도 및 도 2의 인코더(1)를 참조하여 보다 상세하게 기술된다. 여기에서 일부 통계적 파라미터들이 부호화될 정보로부터 추정될 수 있다는 것이 추측된다. 예를 들어 정보를 표현하는 심볼들의 확률 분포가 알려지거나 어떤 기준들을 이용하여 추정될 수 있다. 본 발명에서는 둘 이상의 서로 다른 가변장 코드워드들의 집합들이 제공되고 그로부터 부호화될 심볼에 대한 가변장 코드들이 선택된다. 코드워드들의 집합들은 행들이 심볼에서 코드워드로의 매핑들을 나타내는 여러 가변장 코드 테이블들(5.1-5.M)(VLC 테이블들)을 형성하는 것이라고 생각될 수 있다. 가변장 코드워드 테이블들은 또한 이 명세서에서 적응적 소팅 테이블들이라고도 불린다. 실제 응용예들에서 코드워드 테이블들을 구현하기 위한 많은 가능성들이 존재한다. 이것은 명세서에서 나중에 보다 상세히 논의될 것이다.
일부 실시예들에서 신택스 요소들은 적응적 소팅 테이블을 이용하여 부호화될 수 있다. 이것이 이하의 비한정적 예를 이용해 예시될 수 있다. 신택스 요소 X의 값을 비트스트림 안에 작성하는 동작이 다음과 같이 수행될 수 있다. 신택스 요소의 값이 Y라고 추측된다. 시작 시, 또는 어떤 복원 시점에 디폴트 테이블이나 디폴트 테이블들의 집합 중 한 테이블이 선택될 수 있다. 테이블이 장치의 메모리 내에 정의되어 있지 않지만 테이블의 요소들 값들을 결정하기 위한 알고리즘이나 함수가 사용될 가능성도 있다. 소팅 동작의 설명의 명료성을 위해서는 그러나, 테이블이 메모리 내에 저장되어 있다고 추정된다. 소팅된 테이블은 향상된 정황 적응을 위해 일부 신택스 요소들에 대해 유지된다. 신택스 요소 X에 대응하는 소팅된 테이블을 일차원 어레이 소팅 테이블 X[i]로서 나타내자. 소팅된 테이블 X의 순위가 먼저 판단되고 그 순위가 가변장 부호화(VLC)를 이용하여 부호화된다. 그 이후, 소팅된 테이블은 값 Y가 보다 낮은 순위를 가질 수 있도록 업데이트된다. 이것은 다양한 방식들에 의해 수행될 수 있지만 한 가지 가능한 방식은 값 Y의 순위를 값 Y 바로 위에 위치하는 순위-1을 가지는, 즉 순위가 값 Y의 순위보다 하나 적은 값과 바꾸는 것이다. 순위-1에 해당하는 값의 순위는 증가된다. 즉, 값 Y와 Y 위의 값의 순위들이 바뀌게 된다.
위의 예에서 값 Y의 순위를 낮추는 것은 값 Y가 어떤 다른 값들보다 자주 나타나는 것으로 기대된다는 것을 의미한다. 어떤 다른 실시예들에서 그 동작은 반대가 될 수 있다. 즉 순위를 증가시키는 것이 순위가 증가되는 값이 어떤 다른 값들보다 자주 나타난다는 추정을 나타낼 수 있으며, 보다 짧은 코드워드가 그 값에 매핑될 수 있다. 테이블 1에서 제1대안이 사용된다, 즉 테이블 1의 맨 위의 값이 가장 낮은 순위를 가지며 테이블 1의 가장 아래에 있는 값이 가장 높은 순위를 가진다. 그에 따라, 보다 짧은 코드워드들이 보다 낮은 순위를 가진 값들에 할당될 수 있고 보다 긴 코드워드들이 보다 높은 순위를 가진 값들에 대해 할당될 수 있다.
예로서 테이블 X는 다음과 같은 값들을 포함할 수 있다.
Figure pct00002
부호화될 신택스 요소가 C라면 그것은 VLC 코드워드가 011이 될 것이라는 것을 의미할 것이다. 위에서 논의된 소팅 동작은 신택스 요소들 C 및 B의 코드워드들이 신택스 요소 C에 대한 코드워드를 결정한 후에 교환되는 결과를 낳을 것이다. 그러므로 재정렬된 소팅 테이블이 다음과 같이 된다:
Figure pct00003
그에 따라 만일 신택스 요소 C가 다시 부호화된다면 코드워드 010이 신택스 요소 C를 나타내는 데 사용될 것이고 그 신택스 요소 C의 순위는 다시 수정될 것이다. 이 예에서 이는 테이블 3에 나타낸 바와 같이 신택스 요소 C에 대해 업데이트된 VLC 코드워드가 1이 될 것이고 신택스 요소 A에 대해 업데이트된 VLC 코드워드가 010이 될 것임을 의미하게 될 것이다.
Figure pct00004
비디오 또는 다른 이미지들이 블록 별로 부호화될 수 있다. 예를 들어 사이즈 NxN의 매크로블록이 사이즈 N/2 x N/2인 보다 작은 블록들(하위 블록들)로 분할될 수 있다. 이 보다 작은 블록들 중 일부는 제로 값들만을 포함할 수 있는 반면 어떤 다른 블록(들)은 하나 이상의 비제로 값들을 포함할 수 있다. 인코더(1)가 제로 값의 블록들을 부호화할 필요가 없고 다만 어느 블록들이 비제로 값들을 포함하는지(또는 어느 블록들이 제로 값들만을 포함하는지)에 대한 표시를 비트스트림을 통해 제공해야 할 경우 부호화 효율성이 개선될 수 있다. 일부 실시예들에서 이것은 어느 블록에 대해 어떤 블록들이 적어도 하나의 비제로 값(비제로 심볼)을 포함하는지를 가리키는 부호화된 블록 패턴을 형성함으로써 수행된다. 도 7a-7c는 네 개의 하위 블록들로 분할된 매크로블록들 및 대응하는 부호화된 블록 패턴 값들의 일부 예들을 도시한다. 도 7a의 예에서 매크로블록(700)의 하위 좌측 블록(703)은 하나 이상의 비제로 값들을 포함하는 반면 다른 세 개의 블록들(701, 702, 704)은 제로 값들만을 포함한다. 도 7a의 예를 위해 부호화된 블록 패턴은 이진 값 0010으로서 표현될 수 있다. 도 7b의 예에서 매크로블록(700)의 상위 좌측 블록(701) 및 하위 좌측 블록(703)은 하나 이상의 비제로 값들을 포함하는 반면 다른 두 개의 블록들(702, 704)은 제로 값들만을 포함한다. 도 7b의 예를 위해 부호화된 블록 패턴은 이때 이진 값 1010으로서 표현될 수 있다. 도 7c의 예에서 매크로블록(700)의 상위 좌측 블록(701) 및 하위 우측 블록(704)은 하나 이상의 비제로 값들을 포함하는 반면 다른 두 개의 블록들(702, 703)은 제로 값들만을 포함한다. 도 7c의 예를 위해 부호화된 블록 패턴은 이때 이진 값 1001로서 표현될 수 있다. 이 예에서 이진수 1은 블록이 비제로 값(들)을 포함한다는 것을 나타내고 이진수 0는 블록이 제로 값(들)만을 포함한다는 것을 나타냈다. 그러나 다른 심볼을 이용하거나 이진수 1을 사용하여 제로 값들만을 가진 블록을 나타내고 이진수 0을 사용하여 비제로 값(들)을 가진 블록들을 나타내는 것이 가능하다.
본 발명의 예시적 실시예에 따른 인코더(1)는 다음과 같이 부호화를 수행한다. 부호화의 시작 시 일부 변수들은 그들의 초기 값들로 초기화된다. 이것은 예컨대, 어떤 메모리 위치들을 선택된 상태로 세팅하는 인코더의 제어기(1.4)에 의해 수행된다. 이 메모리 위치들은 메모리(4)에 위치되거나 예컨대 제어기(1.4) 안에 있을 수 있다. 도 2의 예시적 실시예에서 변수들은 제어기(1.4)의 내부 레지스터들(1.4.1) 안에 저장된다. 초기화 단계가 도 4의 흐름도의 블록(401) 및 도 2의 블록(1.3)을 이용해 묘사된다.
초기화 시, 서로 다른 적응적 소팅 테이블들이 소정 상태들로 초기화될 수 있다. 예를 들어 코드워드들로의 코드 값들 매핑은 0부터 15까지의 값들과 같은 코드 값들의 오름차순으로 정렬될 수 있다. 그에 따라 코드 값 0는 제1코드워드로 매핑되고, 코드 값 1은 제2코드워드로 매핑되는 식이 된다.
초기화 단계 이후, 부호화가 시작될 수 있고 매크로블록이 인코더(1)로 입력될 수 있다(블록 402). 제어기(1.4)는 블록 프로세서(1.7)에 명령하여 현재의 매크로블록에 대한 부호화된 블록 패턴을 결정하도록 할 수 있다(블록 403). 제어기(1.4)는 또한 블록 프로세서(1.7)에 명령하여 현재의 매크로블록에 대한 블록 분할을 결정하도록 할 수 있다. 부호화된 블록 패턴 값, 블록 분할에 대한 정보, 및 변환 분할에 대한 정보가 적응적 소팅 테이블들(5.1, 5.2,..., 5.M)을 이용하여 부호화될 수 있다. 이것이 아래에서 보다 상세히 설명된다.
일부 실시예들에서 블록 프로세서(1.7)는 부호화된 블록 패턴, 블록 분할에 대한 정보, 및 변환 블록 사이즈들에 대한 정보, 매크로블록 사이즈에 대한 정보를 비디오 인코더로부터 수신하며 이때 블록 프로세서(1.7)은 부호화된 블록 패턴 및/또는 블록 분할을 결정할 필요가 없다.
인코더(1)는 비트스트림 안에 하나 이상의 비제로 값들을 포함하는 매크로블록의 하위 블록들에 대한 표시, 즉 상술한 부호화된 블록 패턴을 삽입할 수 있다. 인코더(1)는 비디오 인코더로부터 매크로블록들에 대한 부호화된 블록 패턴을 수신할 수 있고, 혹은 인코더(1)가 부호화된 블록 패턴 값들을 결정할 수 있다.
부호화 효율성을 개선하기 위해, 정황에 따라 서로 다른 소팅 테이블들이 부호화된 블록 패턴, 변환 블록들에 대한 정보, 모션 분할에 대한 정보와 같이 동일한 신택스 요소에 대해 사용될 수 있다. 예를 들어 세 개의 서로 다른 테이블들이 소팅 테이블을 이용해 부호화되는 각각의 신택스 요소에 대해 사용될 수 있다. 이러한 세 개의 소팅 테이블들이 각각의 화상 유형(I 화상, P 화상 및 B 화상)에 대해 정의될 수 있다. 즉, 상기 예에 있어서 소팅 테이블은 이차원 어레이 소팅된 테이블 X[ctx][i]로서 주어질 수 있으며, 여기서 변수 ctx는 어떤 소팅 테이블이 사용되는지를 식별하고 변수 i는 부호화되어야 할 부호화 블록 패턴을 가리킨다.
이하에서 부호화 블록 패턴(cbp) 정보는 소팅된 테이블 CBP[ctx] [i](5.1)을 이용하여 부호화된다. 정황 변수가 현재 블록의 변환 사이즈 및 화상 타입과 같은 정보를 이용하여 산출될 수 있다(블록 404). 인코더(1)는 비디오 인코더, 예컨대 모드 선택기(310)로부터 현재 블록의 화상 타입 및/또는 계층 레벨에 대한 정보를 수신할 수 있고, 혹은 인코더(1)가 그들을 결정할 수 있다. 트리 구조 내 계층 레벨은 변환 분할들을 위한 부호화 트리, 모션 분할들을 위한 부호화 트리, 또는 블록 사이즈들과 관련된 부호화 트리를 참조할 수 있다. 여기서 트리 구조나 부호화 트리는 실제로 장치 내 소정 요소들이나 구조들로서 구현될 필요는 없으며 트리 구조나 부호화 트리가 서로 다른 종류의 개체들 사이의 종속성에 대한 정보로서 예시될 수 있다는 것을 알아야 한다. 즉, 개체들 사이에 어떤 계층 종속 규칙들이 있을 수 있다. 비한정적 예로서 트리 구조의 최상위 레벨에서 64 x 64 사이즈를 가진 블록이 있을 수 있다. 이 레벨은 트리 구조나 부호화 트리의 루트라고 불릴 수도 있고, 루트 아래의 레벨들을 노드들이라 부를 수 있으며, 소정 계층 레벨은 노드들의 집합을 형성할 수 있다, 블록은 보다 작은 블록들, 예컨대 32 x 32 블록들로 분할될 수 있으며, 그 블록들 모두 트리 구조의 다음 레벨을 나타내는 것이라고 간주될 수 있다(이 예에서 제2레벨의 4 노드들). 이 4 개의 32 x 32 블록들 각각은 더 작은 블록들, 예컨대 16 x 16 블록들로 더 분할될 수 있다. 개수가 0과 16(=네 개의 32 x 32 블록들 각각이 네 개의 보다 작은 16 x 16 블록들로 분할됨) 사이가 될 수 있는 16 x 16 블록들은 트리 구조의 제3계층 레벨을 나타낸다고 간주될 수 있을 것이다(이 예에서 제3레벨에서 0 내지 16 노드들). '거리'라 불리는 용어가 트리 구조의 계층 레벨들과 관련하여 사용될 수 있고 이때 소정 계층 레벨의 요소들은 루트로부터 동일한 거리를 가진다는 것 역시 언급될 수 있다. 예컨대 제2계층 레벨의 거리는 루트로부터 하나이다(루트는 제1 또는 최상위 계층 레벨을 나타낸다).
이하의 예들에서 '부호화 트리'라는 용어는 트리 구조의 예로서 사용된다.
테이블 4는 화상 타입-변환 사이즈에서 ctx 변수로의 매핑을 예시한다. 이런 식으로 각종 소팅 테이블들이 서로 다른 계층 레벨들에 대해 유지될 수 있고 이것이 부호화 효율성을 향상시킬 수 있다. 이는 신택스 요소들의 값들이 부호화 트리의 동일한 계층 레벨들 사이에서 보다 더 상관될 수 있고 소팅 테이블들의 분리가 이러한 상관을 이용하기 때문이다.
테이블 4는 변환 블록들에 대해 사용된 화상 타입 및 부호화 트리의 계층 레벨을 이용하는 예를 나타낸다.
Figure pct00005
예를 들어 화상 타입이 인트라 화상(I 화상)이고 부호화 트리의 계층 레벨이 2인 경우 상응하는 정황(인덱스)은 테이블 4가 사용될 때 2가 될 것이다. 그에 상응하여, P 화상 내 1인 계층 레벨을 가진 블록에 있어서 그 정황은 5가 될 것이다.
단순화를 위해, 이하의 예에서 비디오 인코더(1)는 네 개의 계층 레벨들(0, 1, 2, 3)을 지원한다. 초기의 적응적 소팅 테이블이 아래와 같이 주어질 수 있다:
Figure pct00006
여기서 행들은 서로 다른 화상 타입들 및 계층 레벨들에 대응한다. 이 예에서 행들은 테이블 1의 행들과 대응한다. 즉, 제1행은 사이즈 4 x 4의 I 화상에 대응하고, 제2행은 사이즈 8 x 8의 I 화상에 대응하는 식이다.
예를 들어 인코더(1)가 10인 부호화 블록 패턴(cbp) 값을 부호화해야 하는 경우 그것은 예컨대, 상위 좌측 및 하위 좌측 블록들이 적어도 하나의 비제로 계수를 포함한다는 것을 나타내는 이진 형식 1010이 된다. 인코더(1)는 예컨대 테이블 4를 이용하여 정황 변수 ctx를 결정한다. 이제 부호화 블록 패턴이 I 화상 안에서 부호화되고 계층 레벨은 1이라고 추정된다. 그러므로 정황 변수 ctx는 테이블 4로부터 알 수 있듯이 1로 결정될 수 있다. 값 10의 순위는 대응하는 소팅된 테이블(tableCBP[ctx][i])에서도 10이며, 순위 값은 VLC 테이블을 이용하여 이진화될 수 있다. 그런 다음 대응하는 순서의 테이블이 업데이트되고 tableCBP 어레이는 다음과 같이 된다:
Figure pct00007
즉, 제2행의 값들 10과 9가 서로 교환되었다.
이제 인코더는 다음으로, 3에 해당하는 계층 레벨을 가진 I 화상에서 3인 부호화 블록 패턴 값을 부호화한다고 추정한다. ctx 변수는 테이블 4로부터 3으로 발견된다. 대응하는 소팅 테이블 내 값 3의 순위는 3이고, 그 순위 값 3은 VLC 테이블을 이용하여 이진화된다. 그런 다음 대응하는 순서의 테이블이 업데이트되고 tableCBP 어레이는 다음과 같이 된다:
Figure pct00008
제4행의 값들 3과 2가 서로 교환되었다.
위에서 보여지듯이, 서로 다른 변환 사이즈들로 부호화 블록 패턴 값들에 대한 서로 다른 적응적 소팅 테이블을 사용하는 것이 가능하다.
다음으로 순위 값을 부호화하기 위한 VLC 테이블들의 일부 예들이 예시된다.
Figure pct00009
Figure pct00010
상기 예를 이용하여, 테이블 5가 사용된 경우 10인 부호화 블록 패턴 값을 부호화하기 위해 먼저 VLC 코드워드 0000100가 선택될 것이고, 테이블 6이 사용된 경우 VLC 코드워드 00001110이 선택될 것이다. 10인 부호화 블록 패턴 값이 다시 부호화되어야 할 때, 값 10에 대한 업데이트 순위는 9이고 여기서 VLC 워드는 00011(테이블 5)이거나 00001101(테이블 6)이다.
두 번째 예에서 인코더(1)는 3에 해당하는 계층 레벨을 가진 I 화상에서 3인 부호화 블록 패턴 값을 부호화한다. ctx 변수는 테이블 4로부터 3으로 발견되었고, 여기서 테이블 5가 사용되었을 경우 VLC 코드워드는 먼저 011이 되거나 테이블 6이 사용되었다면 00010이 될 것이다. 다음으로 3인 부호화 블록 패턴 값은 010(테이블 5)이나 011(테이블 6)로서 이진화될 것이다.
인코더(1)에서 소팅 테이블 선택기(1.6)는 적응적 소팅 테이블 CBP[ctx][i]에 대한 인덱스 ctx를 산출하고 그 인덱스 ctx를 이용하여 소팅 테이블에서 옳은 행을 선택할 수 있다. 소팅 테이블 선택기(1.6)는 이제, 소팅 테이블 내 해당 행에 대한 포인터로서 신택스 요소의 값을 이용함으로써 테이블로부터 현재의 신택스 요소를 나타내는 데 사용될 코드워드를 할당할 수 있다(블록 405). 소팅 테이블 적응기(1.8)는 예컨대 적응적 소팅 테이블 내 두 개의 연속된 요소들의 값들을 서로 교환함으로써 상술한 바와 같이 소팅 테이블을 적응시키는 데 동일한 포인터를 사용할 수 있다(블록 406).
도 13에 예시된 또 다른 실시예에서 코드워드 선택은 소팅 테이블 선택기(1.6)로부터 선택된 소팅 테이블에 대한 정보를 수신할 수 있는 코드워드 선택기(1.9)를 이용하여 구현될 수 있다. 코드워드 선택기(1.9)는 그런 다음, 선택된 코드워드 테이블로부터 코드워드를 선택하기 위해 신택스 요소의 값을 사용할 수 있다.
상기 절차들이 부호화될 다른 매크로블록들이나 다른 데이터에 대해 반복될 수 있다(블록 407).
일부 실시예들에서 매크로블록들은 예컨대 4진 트리 분할을 이용하여 보다 작은 블록들로 분할될 수 있다. 4진 트리 방식에 따라 매크로블록을 보다 작은 블록들로 분할하는 예가 도 6a 및 6b에 묘사된다. 도 6a는 보다 작은 블록들(610, 620, 630, 640)로 분할된 매크로블록(600)의 예를 도시한다. 이 예에서 상위 좌측 블록(610)이 네 개의 보다 작은 블록들(611-614)로 분할되고, 하위 우측 블록(640)이 네 개의 보다 작은 블록들(641-644)로 분할되며, 후자의 분할된 블록(640)(즉, 큰 매크로블록(600)의 하위 우측 블록)의 상위 좌측 블록(641)이 네 개의 보다 작은 블록들(645-648)로 더 분할된다. 도 6a 예의 블록 분할에 대응하는 4진 트리가 도 6b에 예시된다. 4진 트리 분할은 일종의 계층적 변환이다. 일부 실시예들에서 4진 트리는 예컨대 이진수 1과 0을 이용하여 부호화될 수 있다. 예를 들어 넘버 1은 블록이 보다 작은 블록들로 분할된다는 것을 나타낼 수 있으며, 이때 넘버 0는 그 블록이 보다 작은 블록들로 분할되지 않는다는 것을 나타낼 수 있다. 이러한 표시는 각각의 트리 노드에서 변환이 더 분할되어야 하는지 여부를 가리키는 분할 플래그라고 불린다. 도 6b 예의 4진 트리는 이때 이진 값들 1001, 0000, 1000, 0000의 집합으로서 부호화될 수 있을 것이다. 최초의 이진 값은 최초(상위 좌측) 및 마지막(하위 우측) 블록들이 보다 작은 블록들로 분할됨을 가리키는 4진 트리의 제1(최상위) 레벨을 나타낸다. 다음 두 이진 값들 0000 및 1000은 4진 트리의 제2(최상위) 레벨을 나타내며, 마지막 이진 값 0000은 4진 트리의 제3(최상위) 레벨의 한 부분을 나타낸다. 제2레벨의 다른 블록들 중 일부가 보다 작은 블록들로 분할되는 경우, 4진 트리는 제3레벨에서 더 많은 이진 값들을 포함할 것이다. 즉, 4진 트리의 소정 레벨에 있는 이진 값이 넘버 1을 포함하는 경우, 4진 트리의 이진 표현은 다음으로 낮은 레벨에 있는 이진 값을 포함할 것이다. 4진 트리의 또 다른 예가 도 6c에 예시된다. 도 6c의 4진 트리에 대한 대응하는 이진 표현은 1001 , 0010, 1000, 0100, 0000, 0000이 될 수 있을 것이다. 여기서 4진 트리는 다른 방식, 예컨대 이진수 1은 블록이 보다 작은 블록들로 분할되지 않는다는 것을 가리킬 수 있고 넘버 0는 블록이 보다 작은 블록들로 분할된다는 것을 가리킬 수 있도록 나타내질 수도 있다는 것을 알아야 한다. 또한 이진수 0 및 1 이외의 숫자나 문자들이 4진 트리 구조를 특징짓는데 사용될 수 있다.
위로부터 이미지의 매크로블록들의 분할 또는 이미지의 슬라이스가 4진 트리를 이용해 디코더로 표시될 수 있다고 결론지어질 수 있다. 따라서 인코더(1)는 4진 트리의 이진 표현을 부호화함으로써 매크로블록의 분할에 대한 표시를 비트스트림에 삽입할 수 있다. 이하에서 이진 표현을 부호화하는 예시적인 구현예가 개시된다.
일부 실시예들에서 매크로블록은 큰 사이즈(예컨대 123 x 128 또는 그보다 훨씬 더 큰 것)를 가질 수 있고 4진 트리 방식으로 보다 작은 블록들로 분할될 수 있다. 비디오 인코더의 블록 프로세서(1.7)나 일부 실시예들에서 인코더(1)는 이미지 매크로블록의 콘텐츠를 검사할 수 있고 그 검사에 기초하여 매크로블록의 소정 영역들에 대해 보다 작은 블록 사이즈들을 이용하기로 결정할 수 있다. 그 결정은 이미지 콘텐츠의 평탄도, 매크로블록의 영역 내 디테일들의 개수 등에 의존할 수 있다.
인코더(1)가 정보를 수신했거나 매크로블록의 분할을 결정했을 때 인코더(1)는 예컨대 다음과 같이 분할에 대한 정보를 부호화할 수 있다. 이 정보는 이 정황에서 변환 구조 정보라 불린다. 변환 구조 외에, 이하에 설명되는 바와 같이 유사한 4진 트리가 블록 사이즈들, 모션 분할들에 대해 사용될 수도 있다.
일부 실시예들에서 블록은 동일한 사이즈의 보다 작은 블록들로 분할될 필요가 없다. 예를 들어 M x M 블록은 두 개의 (M/2)xM 블록들이나 두 개의 Mx(M/2) 블록들로 분할될 수 있다. MxM 블록을 다른 사이즈를 가진 블록들로 분할하는 것 역시 가능할 수 있다. 예를 들어, 그것이 (M-N)xM 사이즈의 한 블록과 NxM 사이즈의 다른 블록으로, Mx(M-N) 사이즈의 한 블록과 MxN 사이즈의 다른 블록 등으로 분할될 수 있다. 블록을 동일한 사이즈일 필요가 없는 네 개의 보다 작은 블록들로 분할하는 것 역시 가능할 수 있다. 예를 들어 MxM 블록은 하나의 NxN 블록, 하나의 (M-N)x(M-N) 블록, 하나의 (M- )xN 블록 및 하나의 Nx(M-N) 블록으로 분할될 수 있을 것이다. 상술한 파라미터들 M, N은 양이 정수들이다. 일부 실시예들에서 이러한 종류의 블록 사이즈들이 모션 분할 블록들을 표현하기 위해 사용될 수 있고 신택스 요소는 이때 모션 분할 정보와 관련될 수 있다.
1 비트 신택스 요소들을 이용하는 것은 VLC 부호화를 이용하여 효율적으로 부호화될 수 없을 것이고, 그래서 신택스 요소들을 그룹화하는 것이 보다 나을 수 있다. 네 개의 변환 블록들 중 어느 것이 더 분할되는지를 가리키는 변환 분할 패턴(tsp)라 불리는 신택스 요소가 사용된다. tsp 신택스 요소는 여기서, 위에서 예시된 부호화 블록 패턴과 유사한 적응적 소팅 테이블을 이용하여 부호화될 수 있다.
이제 tsp 정보는 소팅된 테이블 TSP[ctx][i]을 이용하여 부호화된다고 추정된다. 부호화된 블록 패턴 부호화와 유사하게, 정황 변수가 현재 블록의 변환 사이즈 및 화상 타입과 같은 정보를 이용하여 계산된다.
단순화를 위해, 이하의 예에서 비디오 인코더(1)가 사이즈들 4x4, 8x8, 16x16 및 32x32의 변환을 지원한다고 다시 추정된다. 이 예에서 32x32 변환 사이즈는 변환 부호화 트리 계층 레벨 0 변환을 참조하고 16x16은 계층 레벨 1을 참조하는 식이다. tsp 정보에 대한 초기의 적응적 소팅 테이블이 아래와 같이 주어질 수 있다:
Figure pct00011
여기서 행들은 서로 다른 화상 타입들 및 블록 사이즈들에 대응한다. 이 예에서 행들은 테이블 1의 행들과 대응한다, 즉 제1행은 사이즈 4 x 4의 I 화상에 대응하고, 제2행은 사이즈 8 x 8의 I 화상에 대응하는 식이다.
도 6a 및 6b의 예에서 4진 트리의 최상부에 있는 노드는 분할되지 않은 매크로블록의 사이즈에 대응한다. 이 경우에 사이즈는 123x128 화상 요소들이지만 그것과 다를 수 있다. 그 노드는 부호화될 필요가 없다. tsp 정보를 가질 수 있는 제1레벨(도 6b에서 최상위)은 그 최상부 노드 밑에 있는 레벨, 즉 최상부 노드로부터의 4 브랜치들이다. 이 레벨은 블록 사이즈 128/2 x 128/2 = 64 x 64에 대응한다. 그러므로 tsp 값 9(=이진수 1001)이 부호화되어야 하는 경우 테이블 4는 매크로블록이 I 화상의 매크로블록인 경우 인덱스 ctx가 3이거나, 매크로블록이 P 화상의 매크로블록인 경우 7이거나, 매크로블록이 B 화상의 매크로블록인 경우 11임을 나타낼 것이다.
매크로블록이 P 화상에 속하는 경우 VLC 코드워드가 테이블 TSP[ctx][i]의 여덟번 째 행으로부터 선택될 수 있을 것이다. 그 값이 9이므로 여덟번 째 행으로부터 열번 째 VLC 코드워드가 선택되고 열번 째 행의 순위는 예컨대 순위를 1만큼 줄임으로써 수정될 것이다. 그러므로 테이블 TSP[ctx][i].은 다음과 같이 수정될 것이다.
Figure pct00012
같은 방식으로 4진 트리의 하위 레벨들(16x16, 8x8, 4x4와 같은 보다 작은 블록 사이즈들)의 tsp 값들이 이진화될 수 있다.
일부 실시예들에서 4진 트리 전체가 항상 부호화될 필요는 없다. 예를 들어 하위 레벨들 중 일부는 예컨대 큰 매크로블록의 어느 부분들도 가능한 가장 작인 블록 사이즈들로 부할되지 않을 때 제로 값들을 포함할 수 있다. 예를 들어 128x128 사이즈의 매크로블록은 64x64 화상 요소들의 하위블록들로 분할되었을 수 있고 이 하위블록들이나 단지 그들 중 일부가 32x32 화상 요소들의 하위블록들로 더 분할되었을 수 있다. 이 예에서 제1 및 제2레벨의 tsp 값들만 부호화되는 것으로 충분할 수 있다.
인코더(1)는 어떤 파라미터들이 부호화되었는지에 대한 표시를 비트스트림 안에 삽입할 수 있다. 예를 들어 소정 VLC 코드워드들이 예컨대 부호화 블록 패턴들의 값들 또는 변환 분할 패턴의 값들을 나타내는 표시가 제공될 수 있다. 이 정보는 다른 수단을 이용하여 제공될 수도 있고 혹은 이러한 VLC 코드워드들이 예컨대 비트스트림의 소정 위치들에 위치될 수 있다.
소팅 테이블들 및 코드워드 테이블들(5.1-5.M)의 설계는 적용예에 고유한 것일 수 있다, 예컨대 반드시 모든 사용 케이스에 유효한 하나의 테이블 집합이 존재하는 것은 아니다. 그러나 상기 테이블들 1-6은 사용될 수 있는 하나의 가능한 테이블 설계를 예시한다.
일부 실시예들에서 소팅 테이블들 및 코드워드 테이블들은 분리된 테이블들이 아니고 결합되어 있다. 즉, 테이블들 4 및 5를 이용하여 CBP[ctx][i]가 변수 ctx의 각각의 가능한 값, 즉 테이블의 각각의 행에 대해 예비되도록 장치의 메모리 내에서 구현될 수 있을 것이고, 이 영역은 그 행의 변수 i의 각각의 가능한 값에 대한 코드워드들을 포함한다. 값 Y의 순위가 변경되어야 할 때, 값 Y의 현재 순위에 대응하는 코드워드는 값 Y의 순위와 바뀌어져야 하는 다른 값 Z의 순위에 대응하는 코드워드와 서로 교환될 수 있을 것이다. 예로서 테이블 5를 이용할 때, 테이블 CBP[ctx][i]에 대해 예비되는 메모리 영역의 일부는 초기에 10, 11, 010, 011, 00100, 00101,... 값들을 포함할 수 있을 것이다. 값 3이 부호화되어야 하는 상황에서 인코더(1)는 값 3을 나타내기 위해 코드워드 011을 할당하고 코드워드들 010 및 011을 교환할 것이다. 그런 다음 메모리의 상기 참조된 부분은 10, 11, 011, 010, 00100, 00101,... 값들을 포함할 것이다. 소팅 테이블들과 코드워드들 그리고 이들 사이의 매핑을 구현하기 위한 다른 가능성들 역시 존재한다.
또한 이전의 예에서 코드워드는 예컨대 메모리(4)에 상주하는 소정의 테이블로부터 로드되었다. 그러나, 어떤 경우들에서는 코드워드들이 메모리에 저장될 필요가 없도록 즉석에서 코드워드를 생성하는 것이 가능하다. 인코더가 코드워드를 얻어야 할 때, 그것은 소정 알고리즘을 이용하여 코드워드를 생성하기 위해 테이블 넘버 및 코드워드 넘버를 이용한다.
코드워드 테이블들(5.1-5.M)의 저장 및 적응적 소팅 테이블들은 많은 방식으로 구현될 수 있다. 예컨대 이들이 제1장치(8)의 메모리(4)에 저장될 수 있다. 각각의 행은 각각의 값이 소정 비트 길이를 가지거나 각각의 값 뒤에 서로 다른 열들을 서로 분리하기 위한 필드 분리자가 존재하도록 연속적인 메모리 위치들 안에 저장될 수 있다. 테이블들의 값들을 열 단위로 저장하는 것 역시 가능하다.
위에서 본 발명의 일부 원리들은 인코더의 관점에서 논의되었으나, 프로세스가 반대라는 것, 즉 대응 심볼을 결정하기 위해 수신된 코드워드가 사용된다는 것을 제외하면 디코더 구현 역시 매우 비슷하다. 이것이 이제 도 3의 디코더 및 도 5의 흐름도를 참조하여 보다 상세히 설명된다. 제2장치(10)(도 1)는 전송된 정보를 수신하고 수신기(14)에서 예컨대 무선 주파수 신호의 하위 주파수 신호(예컨대 기저 대역 신호)로의 변환(14.1)을 수행하며, 수신된 신호로부터 코드워드들을 획득하기 위해 하위 주파수 신호를 채널 복호화(14.2)하고/하거나 어떤 다른 동작들을 수행한다. 수신된 코드워드들은 추가 처리를 위해 제2장치의 메모리(12)에 저장될 수 있다.
제2장치(10)나 디코더(11)는 부호화 블록 패턴 및/또는 변환 분할 패턴을 부호화할 때 인코더(1)가 이용한 테이블들에 해당하는 테이블들을 포함하거나, 테이블들이 다른 방식으로, 예컨대 제1장치에서 제2장치로 이들을 전송함으로써, 혹은 저장 매체, 서버 등으로부터 이들을 다운로드함으로써 제공될 수 있다.
디코더(11)의 초기화 블록(11.3)은 적응적 소팅 테이블들을 인코더(1)에서 적응적 소팅 테이블들의 초기 상태에 대응하는 초기 상태로 초기화한다(도 5의 블록 501). 디코더(11)는 인코더의 테이블들에 해당하는 테이블들을 액세스한다. 예를 들어 디코더(11)는 인코더(1)의 적응적 소팅 테이블들(5.1-5.M)과 유사한 적응적 소팅 테이블들(17.1-17.M)의 집합을 가진다. 테이블들이 예컨대 디코더의 메모리(12) 안에 형성될 수 있고, 혹은 디코더(11)가 테이블들 대신 사용할 어떤 알고리즘들을 포함할 수 있다.
디코더(11)는 예컨대 코드워드가 부호화 블록 패턴 정보, 변환 분할 패턴 정보와 관련된 경우, 또는 코드워드가 블록의 계수에 대한 정보를 포함하는 경우에 코드워드의 타입을 나타내는 변수 k를 포함할 수 있다. 디코더(11)에 의해 서로 다른 코드워드들의 타입들을 서로 분리시키기 위한 다른 방식들이 있을 수도 있다.
심볼 결정 블록(11.2)이 어느 적응적 소팅 테이블을 사용할지를 결정하기 위해 변수 k의 현재 값을 이용하거나, 적응적 소팅 테이블의 선택을 위해 소팅 테이블 선택기(11.9)가 있을 수 있다. 예를 들어 변수 k가 현재 코드워드가 부호화 블록 패턴 정보와 관련되어 있다는 것을 나타내면, 심볼 결정 블록(11.2)이나 소팅 테이블 선택기(11.9)가 부호화 블록 패턴 테이블 CBP[ctx][i]의 올바른 행을 선택하고 그 코드워드를 사용하여 그 행 안의 올바른 요소를 선택하기 위해 화상 타입 및 변환 사이즈에 대한 정보를 이용한다.
수신된 비트들이 예컨대 하나씩 혹은 더 큰 부분들로 디코더(11)의 입력(11.1)으로 입력되고 그 입력으로부터 비트들이 심볼 결정 블록(11.2)으로 전달된다(블록 503). 심볼 결정 블록(11.2)은 그러한 코드워드가 적응적 소팅 테이블 내에 존재하는지 여부를 판단하기 위해 적응적 소팅 테이블(17.1 , 17.2, 17.M)의 코드워드들을 검사한다(블록들 504, 505). 그 검사가 코드워드가 존재한다는 것을 가리키면 그에 따라 획득된 코드워드가 심볼, 즉 부호화 블록 패턴 값을 결정하기 위해 사용될 수 있다(블록 506). 그러나 지금까지 복호화된 비트 패턴이 코드워드 테이블 안의 코드워드가 아니라면, 다음 비트가 역시 입력되고 이전 비트(들)과 결합된다. 존재하는 코드워드가 발견되었을 때, 그것은 올바른 부호화 블록 패턴 값을 결정하는 데 사용될 수 있다. 부호화 블록 패턴 값은 또한, 예컨대 제2장치(10)의 메모리(12)에 저장될 수 있다. 심볼 결정 블록(11.2)은 적응적 소팅 테이블들 내 코드워드들 및 해당 심볼들의 검사를 수행하기 위한 심볼 선택기(11.8)를 포함할 수 있다. 입력 비트 스트림 및 해당 부호화 블록 패턴 값으로부터 코드워드를 찾은 후, 부호화 블록 패턴 테이블 CBP[ctx][i]은 인코더의 동작과 관련하여 개시된 것과 같은 부호화 블록 패턴 값의 순위를 증가시킴으로써 예컨대 적응기(11.6)에 의해 업데이트될 수 있다. 변환 분할 패턴 값들과 관련한 코드워드들을 복호화하는 경우 그 동작은 사용될 테이블이 인코더의 변환 분할 패턴 테이블 CBP[ctx][i]에 대응하는 변환 분할 패턴 테이블 TSP[ctx][i]이라는 것을 제외하고 위와 매우 유사하다.
도 14에 예시된 바와 같이 일부 실시예에서 디코더(11)는 선택된 소팅 테이블의 선택된 행 안에서 올바른 신택스 요소를 선택하기 위해 코드워드를 사용할 수 있는 신택스 요소 선택기(11.8), 및 선택된 소팅 테이블을 적응시키기 위한 적응기(11.10)를 포함할 수 있다.
제어기(11.4)는 적응적 소팅 테이블들 및 가능하다면 어떤 다른 변수들을 업데이트하기 위한 업데이트 요소(11.7)를 포함할 수 있다.
여기서 코드워드로부터 심볼을 복호화하는 다른 가능성들 또한 있다는 것을 알아야 한다. 그것이 비트 단위로 일어날 필요는 없으며, 어떤 종류의 매칭 코드워드 찾기 방식이라도 이 정황 안에서 활용될 수 있다. 예를 들어 비트스트림의 일부가 디코더(11)의 입력(11.1)으로 입력되고, 그 입력으로부터 비트들이 심볼 결정 블록(11.2)으로 전달된다. 심볼 결정 블록(11.2)은 선택된 가변장 코드워드 테이블로부터 상기 비트스트림의 일부가 상기 선택된 가변장 코드워드 테이블 안의 어떤 코드워드를 포함하는지 여부를 검사한다. 상기 검사는 상기 비트스트림의 일부가 상기 선택된 가변장 코드워드 테이블 내의 코드워드를 포함한다는 것을 나타내는 경우, 심볼 결정 블록(11.2)은 어느 심볼이 상기 선택된 가변장 코드워드 테이블 안에서 상기 코드워드와 대응하는지를 판단하여 그 심볼을 출력한다. 상기 검사가 상기 비트스트림의 일부가 상기 선택된 가변장 코드워드 테이블 안의 어느 코드워드도 포함하고 있지 않은 경우, 비트스트림의 다음 부분이 디코더(11)의 입력(11.1)으로 입력되고 추가 검사를 위해 심볼 결정 블록(11.2)으로 전달된다. 상기 단계들은 유효 코드워드가 상기 선택된 가변장 코드워드 테이블로부터 발견될 때까지 반복된다.
코드워드 및 해당 신택스 요소가 발견되었을 때, 그 신택스 요소가 디코더(11)의 출력부(11.6)에 의해 추가 처리를 위해 제공될 수 있다. 추가 처리는 신택스 요소를 소팅하는 것, 이미지의 블록이나 전체 이미지를 복원하는 것 등을 포함할 수 있다.
룩업 테이블들의 사용이나 이진 트리의 사용과 같이 복호화 프로세스 시 매치하는 코드워드들을 찾기 위한 다른 가능성들 역시 존재한다.
프로세스를 반복함으로써 비트스트림이 올바로 복호화됨으로써 전송된 것과 동일한 심볼 스트림을 파생할 수 있다.
도 12는 예컨대 디스플레이, 저장, 또는 추가 처리를 위해 매크로블록들을 복호화하고 비디오를 복원하기 적합한 비디오 디코더의 블록도를 도시한다. 비디오 디코더는 수신된 신호에 대해 엔트로피 복호화를 수행하는 엔트로피 디코더(600)를 보이며 상술한 디코더(11)를 포함할 수 있다. 따라서 엔트로피 디코더는 상술한 인코더의 엔트로피 인코더(330)의 역동작을 수행한다. 엔트로피 디코더(660)는 예측 에러 디코더(602) 및 픽셀 예측기(604)로 엔트로피 복호화의 결과들을 출력한다.
픽셀 예측기(604)는 엔트로피 디코더(6000의 출력을 수신하고 픽셀 예측기(604) 안의 예측기 선택기(614)는 인트라 예측 또는 인터 예측 동작이 수행되어야 한다고 결정한다. 예측기 선택기는 또한 이미지 블록(616)의 예측된 표현을 제1결합기(613)로 출력한다. 이미지 블록(616)의 예측된 표현은 예비 복원된 이미지(618)를 생성하기 위해 복원된 예측 에러 신호(612)와 함께 사용된다. 예비 복원된 이미지(618)는 예측기(614)에서 사용되거나 필터(620)로 보내질 수 있다. 필터(620)는 최종 예측 신호(622)를 출력하는 필터링을 적용한다. 최종 예측 신호(622)는 참조 프레임 메모리(624) 안에 저장될 수 있고, 참조 프레임 메모리(624)는 예측 동작을 위해 예측기(614)에 더 연결된다.
예측 에러 디코더(602)는 엔트로피 디코더(600)의 출력을 수신하고, 복원 예측 에러 신호(612)를 획득하기 위해 역변환 블록(692)에 의한 역변환 및 역 양자화기(693)에 의한 역 양자화를 수행한다.
상기 예들에서 인코더(1) 및 디코더(11)의 기능 요소들은 별개의 블록들로서 묘사되었다. 그러나, 실제 구현예들에서 그 기능 요소들 또는 이들 중 일부는 인코더(1)의 제어기(1.4) 및/또는 디코더(11)의 제어기(11.4)의 프로그램이나 하드웨어로 구현될 수 있다. 제어기들(1.4 및 11.4)은 프로그램 코드 해석기나 프로그램 코드를 실행하기 위한 다른 수단을 포함하는 디지털 신호 프로세스들 또는 다른 프로세서들일 수 있다. 프로그램 코드는 메모리(4, 12)와 같은 저장 매체나 디스크, 예컨대 CDROM으로, 혹은 다른 종류의 캐리어로 저장될 수 있다.
본 발명은 예컨대 비디오 신호들을 압축하기 위해 데이터 압축을 이용하는 적용예들에서 사용될 수 있다. 비디오 부호화 시, 이 방법은 적어도 매크로블록 모드에서 이산 코사인 변환(DCT) 변환 블록 내 마지막 비제로 계수의 부호화 블록 패턴(cbp) 및 위치를 부호화하는데 유리하다는 것이 관찰되었다.
본 발명은 이산 코사인 변환(DCT) 변환된 블록 내 마지막 비제로 계수의 위치에 대한 부호화 정보에 활용될 수도 있다. VLC 코드워드가 이때, 예컨대 현재 블록의 화상 타입 및 변환 사이즈에 따라 적응적 소팅 테이블에 기초하여 선택될 수 있다.
인코더(1)를 포함하는 제1장치(8)는 예컨대 무선 통신 기기, 컴퓨터, 서버, CDROM 재생기, DVD 재생기 등일 수 있다. 디코더(11)를 포함하는 제2장치(10)는 예컨대 무선 통신 기기, 컴퓨터, 서버, CDROM 재생기, DVD 재생기 등일 수 있다. 전송 채널(15)은 무선 통신 네트워크, 랜, 제1장치(9) 및 제2장치(10) 사이의 유선 또는 무선 접속 등과 같은 통신 네트워크를 포함할 수 있다.
상술한 본 발명의 실시예들은 수반되는 프로세스들의 이해를 돕기 위해 별개의 인코더 및 디코더 장치의 견지에서 코덱을 기술한다. 그러나 장치, 구조 및 동작은 하나의 인코더-디코더 장치/구조/동작으로서 구현될 수 있다는 것을 예상할 수 있다. 또한 본 발명의 일부 실시예들에서 코더 및 디코더는 일부 또는 모든 공통 요소들을 공유할 수 있다.
위의 예들은 전자 기기 내 코덱 안에서 동작하는 본 발명의 실시예들을 기술하지만, 이하에 기술되는 것과 같이 본 발명은 어떤 비디오 코덱의 일부로서 구현될 수 있다는 것을 알 수 있을 것이다. 따라서, 예를 들어 본 발명의 실시예들은 고정형 또는 유선 통신 경로들을 통해 비디오 부호화를 구현할 수 있는 비디오 코덱 내에서 구현될 수 있다.
그에 따라 사용자 기기는 상기 본 발명의 실시예들에서 기술한 것들과 같은 비디오 코덱을 포함할 수 있다.
사용자 기기라는 용어는 모바일 전화기, 휴대형 데이터 처리 장치나 휴대형 웹 브라우저와 같은 모든 적절한 유형의 무선 사용자 기기를 커버하는 것으로 의도된다는 것을 알아야 한다.
또한 공공 육상 모바일 네트워크(PLMN)의 구성요소들 역시 상술한 바와 같은 비디오 코덱들을 포함할 수 있다.
일반적으로 본 발명의 다양한 실시예들은 하드웨어나 특수 목적의 회로들, 소프트웨어, 로직 또는 이들의 모든 조합으로 구현될 수 있다. 예를 들어 일부 양태들은 하드웨어로 구현될 수 있지만, 다른 양태들은 제어기, 마이크로프로세서 또는 다른 컴퓨팅 장치에 의해 실행될 수 있는 펌웨어나 소프트웨어로 구현될 수 있다. 그러나 본 발명이 여기에 국한되는 것은 아니다. 본 발명의 다양한 양태들은 블록도, 흐름도, 또는 어떤 다른 묘사적 표현을 이용해 예시되고 기술될 수 있으나, 여기 기술된 블록, 장치, 시스템, 기법, 또는 방법은 비한정적 예들로서 하드웨어, 소프트웨어, 펌웨어, 특별 용도의 회로나 로직, 범용 하드웨어나 제어기 또는 기타 컴퓨팅 장치들, 혹은 이들의 어떤 조합을 통해 구현될 수 있다는 것을 잘 알 수 있다.
본 발명의 실시예들은 프로세서 개체와 같은 모바일 기기의 데이터 프로세서에 의해 실행가능한 컴퓨터 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어의 조합에 의해 구현될 수 있다. 또한 이와 관련하여 도면에서와 같은 로직 흐름의 어떤 블록들은 프로그램 단계들이나 상호연결된 로직 회로들, 블록들 및 함수들, 또는 프로그램 단계들 및 로직 회로들 및 함수들의 조합을 나타낼 수 있다는 것을 알아야 한다. 소프트웨어는 프로세서 안에서 구현되는 메모리 칩들이나 메모리 블록들과 같은 물리적 매체, 하드 디스크나 플로피 디스크들과 같은 자기 매체, 및 예컨대 DVD 및 그 데이터 변종, CD와 같은 광학 매체에 저장될 수 있다.
메모리는 로컬 기술 환경에 적합한 어떤 유형을 가질 수 있고, 반도체 기반 메모리 기기, 자기 메모리 기기 및 시스템, 광 메모리 기기 및 시스템, 고정 메모리 및 착탈형 메모리와 같은 어떤 적절한 데이터 저장 기술을 이용하여 구현될 수 있다. 데이터 프로세서는 로컬 기술 환경에 적합한 어떤 유형을 가질 수 있고, 비한정적 예들로서 범용 컴퓨터, 특수용 컴퓨터, 마이크로프로세서, 디지털 신호 프로세서(DSP) 및 멀티 코어 프로세서 구조를 기반으로 하는 프로세서들 중 한 개 이상을 포함할 수 있다.
본 발명의 실시예들은 집적 회로 모듈들과 같은 다양한 구성요소들 안에서 실시될 수 있다. 집적 회로들의 설계는 일반적으로 고도로 자동화된 프로세스이다. 복잡하고 강력한 소프트웨어 툴들이 로직 레벨 설계를 반도체 기판 상에서 에칭되고 형성될 준비가 된 반도체 회로 설계로 변환하는 데 사용될 수 있다.
캘리포니아주 마운틴 뷰에 있는 Synopsys 사, 캘리포니아 주 산 호세의 Cadence Design에 의해 제공되는 것들과 같은 프로그램들이 잘 설계된 설계 규칙들 및 사전 저장된 설계 모듈들의 라이브러리들을 이용하여 반도체 칩 상에서 전도체들을 자동으로 라우팅하고 구성요소들을 위치시킨다. 반도체 회로에 대한 설계가 완료되었다면, 그에 따른 표준화된 전자 포맷(가령, Opus, GDSII 등)의 설계가 반도체 제조 시설이나 제조를 위한 '연구소'로 보내질 수 있다.
상술한 설명은 예시적이며 및 비한정적 예로서 본 발명의 예시적 실시예에 대한 완전하고 정보를 주는 설명을 제공하였다. 그러나, 당업자에게 첨부 도면 및 첨부 청구범위와 함께 읽혀질 때 상술한 내용의 관점에서 다양한 변형과 적응이 자명해 질 수 있을 것이다. 그러나, 본 발명의 교시에 대한 모든 그러한 유사한 변형들은 여전히 본 발명의 범위 내에 속할 것이다.
제1실시예에 따른 방법은
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하는 단계;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하는 단계;
상기 코드워드를 획득하기 위해 상기 매핑을 이용하는 단계; 및
위한 상기 매핑을 업데이트하는 단계를 포함한다.
본 발명의 제1실시예의 방법에서 트리 구조는 부호화 트리일 수 있다. 본 발명의 제1실시예의 방법에서 부호화 트리는 4진 트리를 포함할 수 있다.
본 발명의 제1실시예의 방법은 매핑을 정의하기 위해 소팅 테이블을 이용하는 단계를 포함할 수 있다.
본 발명의 제1실시예의 방법에서 상기 매핑을 업데이트하는 단계는 상기 소팅 테이블을 업데이트하는 단계를 포함할 수 있다.
본 발명의 제1실시예의 방법은 상기 소팅 테이블 안의 두 값들을 서로 교환함으로써 상기 매핑을 업데이트하는 단계를 포함할 수 있다. 본 발명의 제1실시예의 방법은 적어도 두 개의 소팅 테이블들을 이용하는 단계를 포함할 수 있고, 상기 방법은 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 더 포함한다.
본 발명의 제1실시예의 방법은 각각이 코드워드들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 포함할 수 있고, 상기 방법은
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계; 및 상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계를 더 포함한다.
본 발명의 제1실시예의 방법은 각각이 코드워드들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 포함할 수 있고, 상기 방법은
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계;
상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계; 및
상기 코드워드를 상기 선택된 소팅 테이블 안의 상기 코드워드들의 집합 중 다른 코드워드와 서로 교환하는 단계를 더 포함한다. 본 발명의 제1실시예의 방법에서 상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드들의 집합에 대응할 수 있다.
본 발명의 제1실시예의 방법에서 상기 트리 구조는 이하의 것들 중 적어도 하나와 관련될 수 있다:
변환 사이즈;
예측 블록 사이즈; 또는
매크로블록 사이즈. 본 발명의 제1실시예의 방법에서 상기 신택스 요소는 이하의 것들 중 적어도 하나와 관련될 수 있다: 부호화 블록 패턴;
변환 분할 패턴;
모션 분할 정보.
제2실시예에 따른 방법은
코드워드들의 집합의 한 코드워드를 수신하는 단계;
트리 구조 내 계층 레벨을 결정하는 단계;
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하는 단계; 및 상기 매핑을 업데이트하는 단계를 포함한다.
본 발명의 제2실시예의 방법에서 상기 트리 구조는 부호화 트리일 수 있다.
본 발명의 제2실시예의 방법에서 상기 부호화 트리는 4진 트리일 수 있다. 본 발명의 제2실시예의 방법에서 상기 결정하는 단계는 상기 코드워드에 기초하여 상기 결정된 소팅 테이블로부터 신택스 요소를 획득하는 단계를 포함할 수 있다.
본 발명의 제2실시예의 방법은 상기 매핑을 정의하기 위해 소팅 테이블을 이용하는 단계를 포함할 수 있다.
본 발명의 제2실시예의 방법에서 상기 매핑을 업데이트하는 단계는 상기 소팅 테이블을 업데이트하는 단계를 포함할 수 있다.
본 발명의 제2실시예의 방법은 상기 소팅 테이블 안의 두 값들을 서로 교환함으로써 상기 매핑을 업데이트하는 단계를 포함할 수 있다. 본 발명의 제2실시예의 방법은 적어도 두 개의 소팅 테이블들을 이용하는 단계를 포함할 수 있고, 상기 방법은 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 더 포함한다.
본 발명의 제2실시예의 방법은 각각이 코드워드들의 집합 및 신택스 요소들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 포함할 수 있고, 상기 방법은
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계; 및 상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계를 더 포함한다.
본 발명의 제2실시예의 방법은 각각이 코드워드들의 집합 및 신택스 요소들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 포함할 수 있고, 상기 방법은
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계;
상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계; 및
상기 신택스 요소를 상기 선택된 소팅 테이블 안의 상기 신택스 요소들의 집합 중 다른 신택스 요소와 서로 교환하는 단계를 더 포함한다.
본 발명의 제2실시예의 방법에서 상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드들의 집합에 대응할 수 있다.
본 발명의 제2실시예의 방법에서 상기 트리 구조는 이하의 것들 중 적어도 하나와 관련될 수 있다:
변환 사이즈;
예측 블록 사이즈; 또는
매크로블록 사이즈.
본 발명의 제2실시예의 방법에서 상기 신택스 요소는 이하의 것들 중 적어도 하나와 관련될 수 있다:
부호화 블록 패턴;
변환 분할 패턴;
모션 분할 정보.
제3실시예에 따른 장치는 코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하도록 구성된 입력;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하도록 구성된 결정 요소;
상기 코드워드를 획득하기 위해 상기 매핑을 이용하도록 구성된 코드워드 선택기; 및
상기 매핑을 업데이트하도록 구성된 적응기를 포함한다.
본 발명의 제3실시예의 장치에서 상기 트리 구조는 부호화 트리일 수 있다. 본 발명의 제3실시예의 장치에서 상기 부호화 트리는 4진 트리를 포함할 수 있다.
본 발명의 제3실시예의 장치는 상기 매핑을 정의하는 소팅 테이블을 포함할 수 있다.
본 발명의 제3실시예의 장치에서 상기 적응기는 상기 소팅 테이블을 업데이트하도록 구성될 수 있다.
본 발명의 제3실시예의 장치에서 상기 적응기는 상기 소팅 테이블 안의 두 값들을 서로 교환하도록 구성될 수 있다.
본 발명의 제3실시예의 장치는 적어도 두 개의 소팅 테이블들을 포함할 수 있고, 상기 장치는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성된 소팅 테이블 선택기를 더 포함할 수 있다.
본 발명의 제3실시예의 장치는 각각이 코드워드들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 포함할 수 있고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성될 수 있고; 상기 코드워드 선택기는 상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하도록 구성될 수 있다.
본 발명의 제3실시예의 장치는 각각이 코드워드들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 포함할 수 있고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성될 수 있고; 상기 코드워드 선택기는 상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하도록 구성될 수 있고, 상기 적응기는 상기 코드워드를 상기 선택된 소팅 테이블 안의 상기 코드워드들의 집합 중 다른 코드워드와 서로 교환하도록 구성될 수 있다.
본 발명의 제3실시예의 장치에서 상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드들의 집합에 대응할 수 있다.
본 발명의 제3실시예의 장치에서 상기 트리 구조는 이하의 것들 중 적어도 하나와 관련될 수 있다:
변환 사이즈;
예측 블록 사이즈; 또는
매크로블록 사이즈.
본 발명의 제3실시예의 장치에서 상기 신택스 요소는 이하의 것들 중 적어도 하나와 관련될 수 있다:
부호화 블록 패턴;
변환 분할 패턴;
모션 분할 정보.
제4실시예에 따른 장치는
코드워드들의 집합의 한 코드워드를 수신하도록 구성된 입력;
트리 구조 내 계층 레벨을 판단하도록 구성된 결정 요소;
상기 계층 레벨 상의 신택스 요소를 획득하기 위해 매핑을 결정하도록 구성된 신택스 요소 선택기; 및
상기 매핑을 업데이트하도록 구성된 적응기를 포함한다.
본 발명의 제4실시예의 장치에서 상기 트리 구조는 부호화 트리일 수 있다.
본 발명의 제4실시예의 장치에서 상기 부호화 트리는 4진 트리를 포함할 수 있다.
본 발명의 제4실시예의 장치는 상기 매핑을 정의하는 소팅 테이블을 포함할 수 있다.
본 발명의 제4실시예의 장치에서 상기 적응기는 상기 소팅 테이블을 업데이트하도록 구성될 수 있다.
본 발명의 제4실시예의 장치에서 상기 적응기는 상기 소팅 테이블 안의 두 값들을 서로 교환하도록 구성될 수 있다.
본 발명의 제4실시예의 장치는 적어도 두 개의 소팅 테이블들을 포함할 수 있고, 상기 장치는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성된 소팅 테이블 선택기를 더 포함할 수 있다.
본 발명의 제4실시예의 장치는 각각이 코드워드들의 집합 및 신택스 요소들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 포함할 수 있고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성될 수 있고; 상기 신택스 요소 선택기는 상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하도록 구성될 수 있다.
본 발명의 제4실시예의 장치는 각각이 코드워드들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 포함할 수 있고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성될 수 있고; 상기 신택스 요소 선택기는 상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하도록 구성될 수 있으며; 상기 적응기는 상기 신택스 요소를 상기 선택된 소팅 테이블 안의 상기 신택스 요소들의 집합 중 다른 신택스 요소와 서로 교환하도록 구성될 수 있다.
본 발명의 제4실시예의 장치에서 상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드들의 집합에 대응할 수 있다.
본 발명의 제4실시예의 장치에서 상기 트리 구조는 이하의 것들 중 적어도 하나와 관련될 수 있다:
변환 사이즈;
예측 블록 사이즈; 또는
매크로블록 사이즈.
본 발명의 제4실시예의 장치에서 상기 신택스 요소는 이하의 것들 중 적어도 하나와 관련될 수 있다:
부호화 블록 패턴;
변환 분할 패턴;
모션 분할 정보.
인코더에 의해 사용할 컴퓨터 실행 가능 프로그램 코드를 저장한 제5실시예에 따른 저장 매체가 제공되며, 상기 프로그램 코드들은
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하는 단계;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하는 단계;
상기 코드워드를 획득하기 위해 상기 매핑을 이용하는 단계; 및
상기 매핑을 업데이트하는 단계를 위한 명령어들을 포함한다.
본 발명의 제5실시예의 저장 매체에서 상기 트리 구조는 부호화 트리일 수 있다.
본 발명의 제5실시예의 저장 매체에서 부호화 트리는 4진 트리를 포함할 수 있다.
본 발명의 제5실시예의 저장 매체는 상기 매핑을 정의하기 위해 소팅 테이블을 이용하는 단계를 위한 명령어들을 포함할 수 있다.
본 발명의 제5실시예의 저장 매체에서 상기 매핑을 업데이트하는 단계는 상기 소팅 테이블을 업데이트하는 단계를 위한 명령어들을 포함할 수 있다.
본 발명의 제5실시예의 저장 매체는 상기 소팅 테이블 안의 두 값들을 서로 교환함으로써 상기 매핑을 업데이트하는 단계를 위한 명령어들을 포함할 수 있다.
본 발명의 제5실시예의 저장 매체는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 위한 명령어들을 포함할 수 있고, 상기 저장 매체는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 위한 명령어들을 더 포함한다.
본 발명의 제5실시예의 저장 매체는 각각이 코드워드들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 위한 명령어들을 포함할 수 있고, 상기 저장 매체는
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계; 및
상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계를 위한 명령어들을 더 포함한다.
본 발명의 제5실시예의 저장 매체는 각각이 코드워드들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 위한 명령어들을 포함할 수 있고, 상기 저장 매체는
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계;
상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계; 및
상기 코드워드를 상기 선택된 소팅 테이블 안의 상기 코드워드들의 집합 중 다른 코드워드와 서로 교환하는 단계를 위한 명령어들을 더 포함한다.
본 발명의 제5실시예의 저장 매체에서 상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드들의 집합에 대응할 수 있다.
본 발명의 제5실시예의 저장 매체에서 상기 트리 구조는 이하의 것들 중 적어도 하나와 관련될 수 있다:
변환 사이즈;
예측 블록 사이즈; 또는
매크로블록 사이즈.
본 발명의 제5실시예의 저장 매체에서 상기 신택스 요소는 이하의 것들 중 적어도 하나와 관련될 수 있다:
부호화 블록 패턴;
변환 분할 패턴;
모션 분할 정보.
디코더에 의해 사용할 컴퓨터 실행 가능 프로그램 코드를 저장한 제6실시예에 따른 저장 매체가 제공되며, 상기 프로그램 코드들은
코드워드들의 집합의 한 코드워드를 수신하는 단계;
트리 구조 내 계층 레벨을 결정하는 단계;
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하는 단계; 및
상기 매핑을 업데이트하는 단계를 위한 명령어들을 포함한다.
본 발명의 제6실시예의 저장 매체에서 상기 트리 구조는 부호화 트리일 수 있다.
본 발명의 제6실시예의 저장 매체에서 상기 부호화 트리는 4진 트리일 수 있다.
본 발명의 제6실시예의 저장 매체에서 상기 결정하는 단계는 상기 코드워드에 기초하여 상기 결정된 소팅 테이블로부터 신택스 요소를 획득하기 위한 명령어들을 포함할 수 있다.
본 발명의 제6실시예의 저장 매체는 상기 매핑을 정의하기 위해 소팅 테이블을 이용하는 단계를 위한 명령어들을 포함할 수 있다.
본 발명의 제6실시예의 저장 매체에서 상기 매핑을 업데이트하는 단계는 상기 소팅 테이블을 업데이트하는 단계를 위한 명령어들을 포함할 수 있다.
본 발명의 제6실시예의 저장 매체는 상기 소팅 테이블 안의 두 값들을 서로 교환함으로써 상기 매핑을 업데이트하는 단계를 위한 명령어들을 포함할 수 있다.
본 발명의 제6실시예의 저장 매체는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 위한 명령어들을 포함할 수 있고, 상기 저장 매체는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 위한 명령어들을 더 포함한다.
본 발명의 제6실시예의 저장 매체는 각각이 코드워드들의 집합 및 신택스 요소들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 위한 명령어들을 포함할 수 있고, 상기 저장 매체는
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계; 및
상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계를 위한 명령어들을 더 포함한다.
본 발명의 제6실시예의 저장 매체는 각각이 코드워드들의 집합 및 신택스 요소들의 집합을 포함하는 적어도 두 개의 소팅 테이블들을 이용하는 단계를 위한 명령어들을 포함할 수 있고, 상기 저장 매체는
상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계;
상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계; 및
상기 신택스 요소를 상기 선택된 소팅 테이블 안의 상기 신택스 요소들의 집합 중 다른 신택스 요소와 서로 교환하는 단계를 위한 명령어들을 더 포함한다.
본 발명의 제6실시예의 저장 매체에서 상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드들의 집합에 대응할 수 있다.
본 발명의 제6실시예의 저장 매체에서 상기 트리 구조는 이하의 것들 중 적어도 하나와 관련될 수 있다:
변환 사이즈;
예측 블록 사이즈; 또는
매크로블록 사이즈.
본 발명의 제6실시예의 저장 매체에서 상기 신택스 요소는 이하의 것들 중 적어도 하나와 관련될 수 있다:
부호화 블록 패턴;
변환 분할 패턴;
모션 분할 정보.
제7실시예에 따른 장치는 적어도 하나의 프로세서;
및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고,
상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서를 통해, 상기 장치가 적어도
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하고,
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하고,
상기 코드워드를 획득하기 위해 상기 매핑을 이용하고,
상기 매핑을 업데이트하게 한다.
제8실시예에 따른 장치는 적어도 하나의 프로세서;
및 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하고,
상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서를 통해, 상기 장치가 적어도
코드워드들의 집합의 한 코드워드를 수신하고,
트리 구조 내 계층 레벨을 판단하고,
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하고,
상기 매핑을 업데이트하게 한다.
제9실시예에 따른 장치는
코드워드들의 집합 중 한 코드워드로서 부호화될 신택스 요소를 수신하기 위한 수단;
트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하기 위한 수단; 상기 코드워드를 획득하기 위해 상기 매핑을 이용하기 위한 수단; 및
상기 매핑을 업데이트하기 위한 수단을 포함한다.
제10실시예에 따른 장치는
코드워드들의 집합의 한 코드워드를 수신하기 위한 수단;
트리 구조 내 계층 레벨을 판단하기 위한 수단;
상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하기 위한 수단; 및
상기 매핑을 업데이트하기 위한 수단을 포함한다.

Claims (57)

  1. 코드워드의 집합의 코드워드로서 부호화될 신택스 요소를 수신하는 단계와,
    트리 구조에서의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하는 단계와,
    상기 코드워드를 획득하기 위해 상기 매핑을 이용하는 단계와,
    상기 매핑을 업데이트하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 트리 구조는 부호화 트리인
    방법.
  3. 제2항에 있어서,
    상기 부호화 트리는 4진 트리를 포함할 수 있는
    방법.
  4. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 매핑을 정의할 소팅 테이블을 이용하는 단계를 포함하는
    방법.
  5. 제4항에 있어서,
    상기 매핑을 업데이트하는 상기 단계는 상기 소팅 테이블을 업데이트하는 단계를 포함하는
    방법.
  6. 제4항에 있어서,
    상기 소팅 테이블 안의 두 값을 서로 교환함으로써 상기 매핑을 업데이트하는 단계를 포함하는
    방법.
  7. 제1항 내지 제6항 중 어느 한 항에 있어서,
    적어도 두 개의 소팅 테이블을 이용하는 단계를 포함하며, 상기 방법은 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 더 포함하는
    방법.
  8. 제1항 내지 제6항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 포함하며, 상기 방법은
    상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계를 더 포함하는
    방법.
  9. 제1항 내지 제6항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 포함하며, 상기 방법은
    상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계와,
    상기 코드워드를 상기 선택된 소팅 테이블 안의 상기 코드워드의 집합 중 다른 코드워드와 서로 교환하는 단계를 더 포함하는
    방법.
  10. 제1항 내지 제9항 중 어느 한 항에 있어서,
    상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드의 집합에 대응하는
    방법.
  11. 제1항 내지 제10항 중 어느 한 항에 있어서,
    상기 트리 구조는
    변환 사이즈와,
    예측 블록 사이즈와,
    매크로블록 사이즈 중 적어도 하나와 관련된
    방법.
  12. 제1항 내지 제11항 중 어느 한 항에 있어서,
    상기 신택스 요소는
    부호화 블록 패턴과,
    변환 분할 패턴과,
    모션 분할 정보 중 적어도 하나와 관련된
    방법.
  13. 코드워드의 집합의 코드워드를 수신하는 단계와,
    트리 구조 내 계층 레벨을 결정하는 단계와,
    상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하는 단계와,
    상기 매핑을 업데이트하는 단계를 포함하는
    방법.
  14. 제13항에 있어서,
    상기 트리 구조는 부호화 트리인
    방법.
  15. 제14항에 있어서,
    상기 부호화 트리는 4진 트리인
    방법.
  16. 제13항 내지 제15항 중 어느 한 항에 있어서,
    상기 매핑을 정의할 소팅 테이블을 이용하는 단계를 포함하는
    방법.
  17. 제16항에 있어서,
    상기 매핑을 업데이트하는 단계는 상기 소팅 테이블을 업데이트하는 단계를 포함하는
    방법.
  18. 제17항에 있어서,
    상기 소팅 테이블 안의 두 값을 서로 교환함으로써 상기 매핑을 업데이트하는 단계를 포함하는
    방법.
  19. 제16항 내지 제18항에 있어서,
    상기 결정하는 단계는 상기 코드워드에 기초하여 상기 결정된 소팅 테이블로부터 신택스 요소를 획득하는 단계를 포함하는
    방법.
  20. 제13항 내지 제19항 중 어느 한 항에 있어서,
    적어도 두 개의 소팅 테이블을 이용하는 단계를 포함하며, 상기 방법은 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 더 포함하는
    방법.
  21. 제13항 내지 제19항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합 및 신택스 요소의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 포함하며, 상기 방법은
    상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계를 더 포함하는
    방법.
  22. 제13항 내지 제19항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합 및 신택스 요소의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 포함하며, 상기 방법은
    상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계와,
    상기 신택스 요소를 상기 선택된 소팅 테이블 안의 상기 신택스 요소의 집합 중 다른 신택스 요소와 서로 교환하는 단계를 더 포함하는
    방법.
  23. 제13항 내지 제22항 중 어느 한 항에 있어서,
    상기 계층 레벨은 상기 트리 구조의 루트로부터 동일한 거리를 가지는 노드의 집합에 대응하는
    방법.
  24. 제13항 내지 제23항 중 어느 한 항에 있어서,
    상기 트리 구조는
    변환 사이즈와,
    예측 블록 사이즈와,
    매크로블록 사이즈 중 적어도 하나와 관련된
    방법.
  25. 제13항 내지 제24항 중 어느 한 항에 있어서,
    상기 신택스 요소는
    부호화 블록 패턴과,
    변환 분할 패턴과,
    모션 분할 정보 중 적어도 하나와 관련된
    방법.
  26. 코드워드의 집합의 코드워드로서 부호화될 신택스 요소를 수신하도록 구성된 입력과,
    트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하도록 구성된 결정 요소와,
    상기 코드워드를 획득하기 위해 상기 매핑을 이용하도록 구성된 코드워드 선택기와,
    상기 매핑을 업데이트하도록 구성된 적응기를 포함하는
    장치.
  27. 제26항에 있어서,
    상기 트리 구조는 부호화 트리인
    장치.
  28. 제26 또는 제27항에 있어서,
    상기 매핑을 정의할 소팅 테이블을 포함하는
    장치.
  29. 제28항에 있어서,
    상기 적응기는 상기 소팅 테이블을 업데이트하도록 구성된
    장치.
  30. 제26항 내지 제29항 중 어느 한 항에 있어서,
    적어도 두 개의 소팅 테이블과 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성된 소팅 테이블 선택기를 포함하는
    장치.
  31. 제26항 내지 제29항 중 어느 한 항에 있어서,
    상기 적어도 두 개의 소팅 테이블은 코드워드의 집합을 포함하고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성되며, 상기 코드워드 선택기는 상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하도록 구성되는
    장치.
  32. 제26항 내지 제29항 중 어느 한 항에 있어서,
    상기 적어도 두 개의 소팅 테이블은 코드워드의 집합을 포함하고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성되고, 상기 코드워드 선택기는 상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하도록 구성되며, 상기 적응기는 상기 코드워드를 상기 선택된 소팅 테이블 안의 상기 코드워드의 집합 중 다른 코드워드와 서로 교환하도록 구성되는
    장치.
  33. 코드워드의 집합의 코드워드를 수신하도록 구성된 입력과,
    트리 구조 내 계층 레벨을 판단하도록 구성된 결정 요소와,
    상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위해 매핑을 결정하도록 구성된 신택스 요소 선택기와,
    상기 매핑을 업데이트하도록 구성된 적응기를 포함하는
    장치.
  34. 제33항에 있어서,
    상기 트리 구조는 부호화 트리인
    장치.
  35. 제33항 또는 34항에 있어서,
    상기 매핑을 정의할 소팅 테이블을 포함하는
    장치.
  36. 제35항에 있어서,
    상기 적응기는 상기 소팅 테이블을 업데이트하도록 구성된
    장치.
  37. 제33항 내지 제36항 중 어느 한 항에 있어서,
    적어도 두 개의 소팅 테이블과 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성된 소팅 테이블 선택기를 포함하는
    장치.
  38. 제37항에 있어서,
    각각이 코드워드의 집합 및 신택스 요소의 집합을 포함하는 적어도 두 개의 소팅 테이블을 포함하고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 한 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성되며, 상기 신택스 요소 선택기는 상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하도록 구성된
    장치.
  39. 제37항에 있어서,
    각각이 코드워드의 집합을 포함하는 적어도 두 개의 소팅 테이블을 포함하고, 상기 소팅 테이블 선택기는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하도록 구성되고, 상기 신택스 요소 선택기는 상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하도록 구성되며, 상기 적응기는 상기 신택스 요소를 상기 선택된 소팅 테이블 안의 상기 신택스 요소의 집합 중 다른 신택스 요소와 서로 교환하도록 구성되는
    장치.
  40. 인코더에 의해 사용하기 위한 컴퓨터 실행 가능 프로그램 코드를 저장한 저장 매체로서, 상기 프로그램 코드는
    코드워드의 집합의 코드워드로서 부호화될 신택스 요소를 수신하는 단계와,
    트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하는 단계와,
    상기 코드워드를 획득하기 위해 상기 매핑을 이용하는 단계와,
    상기 매핑을 업데이트하는 단계를 위한 명령어를 포함하는
    저장 매체.
  41. 제40항에 있어서,
    상기 매핑을 정의할 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하는
    저장 매체.
  42. 제41항에 있어서,
    상기 소팅 테이블을 업데이트하는 단계를 위한 명령어를 포함하는
    저장 매체.
  43. 제40항 내지 제42항 중 어느 한 항에 있어서,
    적어도 두 개의 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하며, 상기 저장 매체는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 위한 명령어를 더 포함하는
    저장 매체.
  44. 제40항 내지 제43항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하며, 상기 저장 매체는
    상기 적어도 두 개의 소팅 테이블부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계를 위한 명령어를 더 포함하는
    저장 매체.
  45. 제40항 내지 제43항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하며, 상기 저장 매체는
    상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 코드워드를 선택하기 위해 상기 신택스 요소를 이용하는 단계와,
    상기 코드워드를 상기 선택된 소팅 테이블 안의 상기 코드워드의 집합 중 다른 코드워드와 서로 교환하는 단계를 위한 명령어를 더 포함하는
    저장 매체.
  46. 디코더에 의해 사용할 컴퓨터 실행 가능 프로그램 코드를 저장한 저장 매체로서, 상기 프로그램 코드는
    코드워드의 집합의 코드워드를 수신하는 단계와,
    트리 구조 내 계층 레벨을 결정하는 단계와,
    상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하는 단계와,
    상기 매핑을 업데이트하는 단계를 위한 명령어를 포함하는
    저장 매체.
  47. 제46항에 있어서,
    상기 매핑을 정의할 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하는
    저장 매체.
  48. 제47항에 있어서,
    상기 소팅 테이블을 업데이트하는 단계를 위한 명령어를 포함하는
    저장 매체.
  49. 제47항 또는 제48항에 있어서,
    상기 소팅 테이블 안의 두 값을 서로 교환함으로써 상기 매핑을 업데이트하는 단계를 위한 명령어를 포함하는
    저장 매체.
  50. 제47항 내지 제49항 중 어느 한 항에 있어서, 상기 코드워드에 기초하여 상기 결정된 소팅 테이블로부터 신택스 요소를 획득하기 위한 명령어를 포함하는
    저장 매체.
  51. 제46항 내지 제50항 중 어느 한 항에 있어서,
    적어도 두 개의 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하며, 상기 저장 매체는 상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계를 위한 명령어를 더 포함하는
    저장 매체.
  52. 제46항 내지 제50항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합 및 신택스 요소의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하며, 상기 저장 매체는
    상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계를 위한 명령어를 더 포함하는
    저장 매체.
  53. 제46항 내지 제50항 중 어느 한 항에 있어서,
    각각이 코드워드의 집합 및 신택스 요소의 집합을 포함하는 적어도 두 개의 소팅 테이블을 이용하는 단계를 위한 명령어를 포함하며, 상기 저장 매체는
    상기 적어도 두 개의 소팅 테이블로부터 소팅 테이블을 선택하기 위해 상기 계층 레벨을 이용하는 단계와,
    상기 신택스 요소를 선택하기 위해 상기 코드워드를 이용하는 단계와,
    상기 신택스 요소를 상기 선택된 소팅 테이블 안의 상기 신택스 요소의 집합 중 다른 신택스 요소와 서로 교환하는 단계를 위한 명령어를 더 포함하는
    저장 매체.
  54. 적어도 하나의 프로세서와,
    컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하며,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서를 사용하여 상기 장치가 적어도
    코드워드의 집합의 코드워드로서 부호화될 신택스 요소를 수신하고,
    트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하고,
    상기 코드워드를 획득하기 위해 상기 매핑을 이용하며,
    상기 매핑을 업데이트하게 하도록 구성되는
    장치.
  55. 적어도 하나의 프로세서와,
    컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하며,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서를 사용하여 상기 장치가 적어도
    코드워드의 집합의 코드워드를 수신하고,
    트리 구조 내 계층 레벨을 판단하고,
    상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하며,
    상기 매핑을 업데이트하게 하도록 구성되는
    장치.
  56. 코드워드의 집합의 한 코드워드로서 부호화될 신택스 요소를 수신하기 위한 수단과,
    트리 구조의 계층 레벨에 기초하여 상기 신택스 요소 및 상기 코드워드 사이의 매핑을 결정하기 위한 수단과,
    상기 코드워드를 획득하기 위해 상기 매핑을 이용하기 위한 수단과,
    상기 매핑을 업데이트하기 위한 수단을 포함하는
    장치.
  57. 코드워드의 집합의 코드워드를 수신하기 위한 수단과,
    트리 구조 내 계층 레벨을 판단하기 위한 수단과,
    상기 계층 레벨에 기초하여 신택스 요소를 획득하기 위한 매핑을 결정하기 위한 수단과,
    상기 매핑을 업데이트하기 위한 수단을 포함하는
    장치.
KR1020137003027A 2010-07-06 2011-07-06 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치 KR101497845B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US36168310P 2010-07-06 2010-07-06
US61/361,683 2010-07-06
PCT/IB2011/053008 WO2012023061A1 (en) 2010-07-06 2011-07-06 Method and apparatus for determining mapping between a syntax element and a code word for variable length coding

Publications (2)

Publication Number Publication Date
KR20130030299A true KR20130030299A (ko) 2013-03-26
KR101497845B1 KR101497845B1 (ko) 2015-03-02

Family

ID=45604818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137003027A KR101497845B1 (ko) 2010-07-06 2011-07-06 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치

Country Status (7)

Country Link
US (1) US8576097B2 (ko)
EP (2) EP3554075A1 (ko)
KR (1) KR101497845B1 (ko)
CN (1) CN103069801B (ko)
RU (1) RU2565877C2 (ko)
WO (1) WO2012023061A1 (ko)
ZA (1) ZA201300915B (ko)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102823248B (zh) 2010-04-08 2015-06-24 株式会社东芝 图像编码方法以及图像编码装置
MX2013003691A (es) * 2010-09-30 2013-04-24 Samsung Electronics Co Ltd Metodo de codficacion de video para codificar simbolos de estructura jerarquica y dispositivo para esto, y metodo de decodificacion de video para decodificar simbolos de estructura jerarquica y dispositivo para esto.
KR101955374B1 (ko) * 2011-06-30 2019-05-31 에스케이 텔레콤주식회사 고속 코딩 단위(Coding Unit) 모드 결정을 통한 부호화/복호화 방법 및 장치
ES2754784T3 (es) * 2011-07-29 2020-04-20 Sun Patent Trust Procedimiento de decodificación de vídeo, aparato de decodificación de vídeo
EP2988511A1 (en) 2011-08-04 2016-02-24 MediaTek Inc. Method and apparatus for reordered binarization of syntax elements in cabac
GB2505169B (en) * 2012-08-13 2016-03-16 Gurulogic Microsystems Oy decoder and method
US10412414B2 (en) 2012-08-13 2019-09-10 Gurulogic Microsystems Oy Decoder and method for decoding encoded input data containing a plurality of blocks or packets
US9735812B2 (en) * 2015-06-26 2017-08-15 Intel IP Corporation Digital RF receiver power saving with signal quality dependent word length reduction
CN113810705B (zh) * 2016-04-29 2024-05-10 世宗大学校产学协力团 用于对图像信号进行编码和解码的方法和装置
CN112601085A (zh) 2017-06-28 2021-04-02 华为技术有限公司 一种图像数据的编码、解码方法及装置
WO2019105536A1 (en) * 2017-11-28 2019-06-06 Huawei Technologies Co., Ltd. Syntax prediction using reconstructed samples
CN109462762B (zh) * 2018-10-26 2020-12-01 国网福建省电力有限公司漳州供电公司 用于无人机航拍的图像处理方法
US20240048641A1 (en) * 2022-08-05 2024-02-08 Samsung Display Co., Ltd. System and method for dynamic entropy coding

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4816914A (en) 1987-01-07 1989-03-28 Pictel Corporation Method and apparatus for efficiently encoding and decoding image sequences
US4916914A (en) * 1988-05-27 1990-04-17 Cpi Engineering Services, Inc. Rotary displacement compression heat transfer systems incorporating highly fluorinated refrigerant-synthetic oil lubricant compositions
AU658432B2 (en) * 1991-06-04 1995-04-13 Qualcomm Incorporated Adaptive block size image compression method and system
US6941511B1 (en) * 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation
WO2003084076A1 (en) * 2002-04-02 2003-10-09 Nokia Corporation Coding transform coefficients in image / video encoder and/or decoders
US6900748B2 (en) * 2003-07-17 2005-05-31 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung E.V. Method and apparatus for binarization and arithmetic coding of a data value
US7199735B1 (en) * 2005-08-25 2007-04-03 Mobilygen Corporation Method and apparatus for entropy coding
CN100466739C (zh) * 2005-10-12 2009-03-04 华为技术有限公司 Cabac解码***及方法
US8335261B2 (en) * 2007-01-08 2012-12-18 Qualcomm Incorporated Variable length coding techniques for coded block patterns
US7443318B2 (en) * 2007-03-30 2008-10-28 Hong Kong Applied Science And Technology Research Institute Co. Ltd. High speed context memory implementation for H.264
US8041746B2 (en) * 2007-10-30 2011-10-18 Sap Ag Mapping schemas using a naming rule
US20100086031A1 (en) 2008-10-03 2010-04-08 Qualcomm Incorporated Video coding with large macroblocks

Also Published As

Publication number Publication date
EP2591605B1 (en) 2019-11-06
US8576097B2 (en) 2013-11-05
RU2565877C2 (ru) 2015-10-20
EP3554075A1 (en) 2019-10-16
EP2591605A4 (en) 2016-11-30
CN103069801B (zh) 2016-06-01
KR101497845B1 (ko) 2015-03-02
RU2013104941A (ru) 2014-10-20
WO2012023061A1 (en) 2012-02-23
CN103069801A (zh) 2013-04-24
US20120169519A1 (en) 2012-07-05
ZA201300915B (en) 2014-07-30
EP2591605A1 (en) 2013-05-15

Similar Documents

Publication Publication Date Title
KR101497845B1 (ko) 가변장 부호화를 위해 신택스 요소 및 코드워드 사이의 매핑을 결정하는 방법 및 장치
TWI759389B (zh) 用於視訊寫碼之低複雜度符號預測
JP5957561B2 (ja) 大きいサイズの変換単位を用いた映像符号化、復号化方法及び装置
TWI656786B (zh) 取樣自適應偏移裝置
JP5590133B2 (ja) 動画像符号化装置、動画像符号化方法、動画像符号化用コンピュータプログラム、動画像復号装置及び動画像復号方法ならびに動画像復号用コンピュータプログラム
CN104937936A (zh) 用于帧内预测的模式决策简化
CN111183647B (zh) 用于解码视频数据的方法、装置和计算机可读媒体
CN103609121A (zh) 统一合并模式和自适应运动向量预测模式候选者选择
CN104025603A (zh) 最后有效系数的位置的渐进式译码
CN105027561A (zh) 用于上下文自适应、多层级有效性译码的上下文导出
US10277917B2 (en) Video encoding method and apparatus and video decoding method and apparatus
US10511860B2 (en) Signal transforming method and device
CN111263149B (zh) 视频编码方法和设备以及视频解码方法和设备
KR20160056901A (ko) 비디오 코딩 방법, 장치 및 컴퓨터 프로그램
JP7448558B2 (ja) 画像エンコーディングおよびデコーディングのための方法およびデバイス
US20140269896A1 (en) Multi-Frame Compression
EP2983367A1 (en) Method and apparatus for encoding and decoding video with respect to position of integer pixel
CN117256101A (zh) Cabac继承的上下文初始化

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
FPAY Annual fee payment

Payment date: 20180201

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20190129

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20200129

Year of fee payment: 6