KR101083051B1 - 비디오 부호화 및 복호화를 위한 시스템 및 방법 - Google Patents

비디오 부호화 및 복호화를 위한 시스템 및 방법 Download PDF

Info

Publication number
KR101083051B1
KR101083051B1 KR1020097021248A KR20097021248A KR101083051B1 KR 101083051 B1 KR101083051 B1 KR 101083051B1 KR 1020097021248 A KR1020097021248 A KR 1020097021248A KR 20097021248 A KR20097021248 A KR 20097021248A KR 101083051 B1 KR101083051 B1 KR 101083051B1
Authority
KR
South Korea
Prior art keywords
vector
sub
coefficient
vectors
variable length
Prior art date
Application number
KR1020097021248A
Other languages
English (en)
Other versions
KR20090132597A (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 KR20090132597A publication Critical patent/KR20090132597A/ko
Application granted granted Critical
Publication of KR101083051B1 publication Critical patent/KR101083051B1/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/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/45Management operations performed by the client for facilitating the reception of or the interaction with the content or administrating data related to the end-user or to the client device itself, e.g. learning user preferences for recommending movies, resolving scheduling conflicts
    • H04N21/462Content or additional data management, e.g. creating a master electronic program guide from data received from the Internet and a Head-end, controlling the complexity of a video stream by scaling the resolution or bit-rate based on the client capabilities
    • H04N21/4621Controlling the complexity of the content stream or additional data, e.g. lowering the resolution or bit-rate of the video stream for a mobile client with a small screen
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/20Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding
    • H04N19/29Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using video object coding involving scalability at the object level, e.g. video object layer [VOL]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/33Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability in the spatial domain
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/48Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using compressed domain processing techniques other than decoding, e.g. modification of transform coefficients, variable length coding [VLC] data or run-length data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/503Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving temporal prediction
    • H04N19/51Motion estimation or motion compensation
    • 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/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • 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/94Vector quantisation

Abstract

비디오 부호화 방법은 계수 벡터를 두개 이상의 서브-벡터들로 분할하는 단계로서, 각 서브-벡터는 상기 계수 벡터의 길이 이하의 길이를 가지고 있는 단계, 상기 계수 벡터내에서 각 서브-벡터의 위치 및 각 서브-벡터의 크기를 표시하는 단계 및 각 서브-벡터에 대응하는 블록을 형성하는 단계를 포함한다.
비디오, 부호화, 복호화, 벡터, 계수

Description

비디오 부호화 및 복호화를 위한 시스템 및 방법{System and method for video encoding and decoding}
본 발명은 일반적으로 비디오 부호화 및 복호화 분야에 관한 것이다. 특히, 본 발명은 비디오 부호화 및 복호화의 효율을 증가시키는 것에 관한 것이다.
본 섹션은 청구항들에 기재된 발명에 대한 배경을 제공하는 것을 목적으로 한다. 여기에 기재된 설명은 추구될 수 있는 개념들, 하지만, 이전에 생각되거나 추구되었던 개념들일 필요는 없는 개념들을 포함할 수 있다. 그러므로, 달리 여기에서 표시되지 않는 한, 본 섹션에서 설명되는 것은 본 출원에서의 설명 및 청구항들에 대한 종래 기술이 아니고 본 섹션에 포함된 것에 의해 종래 기술로 인정되지 않는다.
비디오 부호화 표준들은 ITU-T H.261, ISO/IEC MPEG-1 비주얼, ITU-T H.262 또는 ISO/IEC MPEG-2 비주얼, ITU-T H.263, ISO/IEC MPEG-4 비주얼 및 ITU-T H.264(또한 ISO/IEC MEPG-4 AVC로 알려져 있음)를 포함한다. 더욱이, 새로운 비디오 부호화 표준들의 개발에 관하여 현재 진행중인 노력들이 존재한다. 개발중인 하나의 표준은 H.264/AVC에 대한 스케일러블한 확장물이 될, 스케일러블 비디오 부호화(SVC: scalable video coding) 표준이다. 개발중인 다른 표준은 또한 H.264/AVC 의 확장물인 멀티비디오 부호화 표준(MVC: multivideo coding standard)이다. 또 다른 이러한 노력은 중국 비디오 부호화 표준들의 개발을 포함한다.
SVC의 최근의 드래프트는, http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T201.zip로부터 이용가능한, 2006년 7월, 오스트리아, 클라겐퍼트, 20번째 JVT 미팅, JVT-T201, "SVC 개정안의 조인트 드래프트 7"에 설명되어 있다. MVC의 최근의 드래프트는, http://ftp3.itu.ch/av-arch/jvt-site/2006_07_Klagenfurt/JVT-T208.zip로부터 이용가능한, 2006년 7월, 오스트리아, 클라겐퍼트, 20번째 JVT 미팅, JVT-T208, "조인트 멀티뷰 비디오 모델(JMVM) 1.0"에 설명되어 있다. 이들 문서들 양자는 전체적으로 여기에 참조로써 포함되어 있다.
스케일러블 비디오 부호화(SVC)에서, 비디오 신호는 계층화 방식으로 구성된 하나의 기본층 및 하나 이상의 확장층들로 부호화될 수 있다. 확장층은 시간 해상도(즉 프레임 레이트), 공간 해상도 또는 다른 계층이나 다른 계층의 일부에 의해 표현되는 비디오 콘텐트의 품질을 향상시킨다. 각 계층은, 그것의 종속 계층들과 함께, 어떤 공간 해상도, 시간 해상도 및 품질 레벨에서 비디오 신호의 하나의 표현이다. 스케일러블 계층은 그것의 종속 계층들과 함께, "스케일러블 계층 표현"으로 지칭된다. 스케일러블 계층 표현에 대응하는 스케일러블 비트스트림의 부분은 어떤 충실도로 원래의 신호의 표현을 생성하기 위하여 추출되고 복호화될 수 있다.
몇몇 경우에, 확장층내의 데이터는 어떤 위치 뒤에서 또는 임의의 위치에서 절단될 수 있는데, 각 절단 위치는 점점 향상된 비주얼 품질을 표현하는 부가적인 데이터를 포함할 수 있다. 이러한 확장성은 파인-그레인드(fine-grained)(입도) 확장성(FGS)으로 지칭된다. FGS에 대비하여, 절단될 수 없는 확장층들에 의해 제공된 확장성은 코스-그레인드(coarse-grained)(입도) 확장성(CGS)으로 지칭된다. CGS는 집합적으로 전통적인 품질(SNR) 확장성 및 공간 확장성을 포함한다.
조인트 비디오 팀(JVT)은 H.264/어드밴스드 비디오 부호화(AVC) 표준에 대한 확장물로서 SVC 표준을 개발하는 중이었다. SVC는 시간 확장성을 제공하기 위하여 H.264/AVC와 동일한 메커니즘을 사용한다. AVC에서, 시간 확장성 정보의 시그널링은 서브-시퀀스-관련 보충 증강 정보(SEI: supplemental enhancement information) 메시지들을 사용하여 실현된다.
SVC는 계층간 예측 메커니즘을 사용하는데, 계층간 예측 메커니즘에서 어떤 정보는 현재 재구성된 계층 이외의 계층들 또는 다음 하위 계층으로부터 예측될 수 있다. 계층간 예측될 수 있는 정보는 인트라 텍스쳐(intra texture), 움직임 및 잔여(residual) 데이터를 포함한다. 계층간 움직임 예측은 블록 부호화 모드, 헤더 정보 등의 예측을 포함하는데, 하위 계층으로부터의 움직임 정보는 상위 계층의 예측을 위해 사용될 수 있다. 인트라 부호화의 경우, 주변의 매크로블록들 또는 하위 계층들의 같은 위치에 있는 매크로블록들로부터의 예측이 가능하다. 이들 예측 기술들은 움직임 정보를 사용하지 않으므로 인트라 예측 기술들로 지칭된다. 더욱이, 하위 계층들로부터의 잔여 데이터는 또한 현재의 계층의 예측을 위해 사용될 수 있다.
SVC 부호기의 출력 및 SVC 복호기의 입력을 위한 기본 유닛은 네트워크 추상 계층(NAL: Network Abstraction Layer) 유닛이다. 부호기에 의해 생성된 일련의 NAL 유닛들은 NAL 유닛 스트림으로 지칭된다. 패킷-지향 네트워크들을 통한 전송 또는 구조화된 파일들로의 저장을 위해, NAL 유닛들은 전형적으로 패킷들 또는 유사한 구조들로 캡슐화된다. 프레이밍 구조들을 제공하지 않는 전송 또는 저장 환경에서, 시작 부호-기반 비트스트림 구조와 유사한 바이트스트림 포맷이 H.264/AVC 표준의 부록 B에 명시되었다. 상기 바이트스트림 포맷은 각 NAL 유닛 앞에 시작 부호를 첨부함으로써 NAL 유닛들을 서로로부터 분리시킨다.
이 계층화된 부호화 접근법과 연관된 문제점은, 기본층에 존재하는 정보가 확장층에 부분적으로 중복되는 경향이 있어서 두번 부호화되기 때문에, (비트 레이트의 관점에서) 작은 이산 계층들의 생성이 매우 빈약한 부호화 효율을 초래한다는 것이다. 다른 한편으로, 이산 계층들의 크기는 원하는 비트 레이트 또는 품질이 얼마나 정확히 달성될 수 있는지를 제어하기 때문에, 큰 확장층들이 사용되는 경우, 비트 레이트 또는 품질은 많은 입도(granularity)를 가지고 제어될 수 없다. 이것은 "코스-그레인드 확장성"(CGS: coarse-grained scalability)이 몇몇 애플리케이션들에 대한 불충분한 정도의 제어를 제공할지도 모른다.
이들 두가지 문제점들을 헤아리기 위하여, 미디엄-그레인드 확장성(MGS: medium-grained scalability)의 개념이 제안되었다. MGS는 CGS와 동일한 부호기 및 복호기를 포함하지만, 중간 스테이지에서, 레이트-왜곡도에 따라 각 CGS 확장층에 "품질 레벨"이 할당된다. 비트 스트림을 원하는 비트 레이트까지 절단하는 경우, 최고 품질 레벨로부터의 CGS 슬라이스들은 우선 폐기되고, 타깃 비트 레이트가 달 성될 때까지 이러한 동작이 계속된다.
주어진 품질 레벨에 할당된 CGS 계층들의 수가 시퀀스 전반에 걸쳐 일정할 수 있지만 프레임별로 변할 수 있다는 것을 주목하는 것은 중요하다. 예를 들어, {1A, 1B, 1C}, {2A, 2B, 2C}, {3A, 3B, 3C}는 9개의 슬라이스들을 표현할 수 있다. 상기 번호는 프레임 번호를 나타내고, 문자는 CGS 계층을 나타낸다. 제1 프레임의 기본 품질은 {1A}이고, 제1 프레임의 중간 품질은 {1A, 1B}로부터 형성되며, 제1 프레임의 최대 품질은 {1A, 1B, 1C}로부터 형성된다. 전체 3-프레임 시퀀스의 기본층 표현은 {1A, 2A, 3A}로 구성될 것이다. 관례적으로, 제1 CGS 계층은 {1B, 2B, 3B}로 구성될 것이다. MGS를 가지고, 제1 품질 계층은 제1 프레임으로부터 2개의 CGS 확장부들이 있고, 제2 프레임으로부터는 없고, 제3 프레임으로부터 하나가 있다는 것을 나타내는 {1B, 1C, 3B}를 포함할 수 있다.
상기 결과는, 시퀀스에서 CGS 계층들의 평균적인 수가 정수 값들로 제한되지 않지만, "품질 계층"의 구성에 의존하여 변할 수 있고, CGS 부호화 구조가 사용되기 때문에, 부호화 효율의 불이익은 비교적 적다는 것이다.
본 발명의 일 태양은 계수 벡터를 복수의 서브-벡터들로 분할하는 단계; 상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치를 표시하는 단계; 및 가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하는 단계를 포함하는 이미지를 부호화하기 위한 방법과 관련된다.
일 실시예에 의하면, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 및 끝 위치에 의해 표시된다. 다른 실시예에서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 위치 및 상기 서브-벡터의 길이에 의해 표시된다.
일 실시예에서, 상기 방법은 상기 서브-벡터의 길이에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하는 단계를 더 포함한다. 상기 부호기를 선택하는 단계는 상기 서브-벡터의 길이가 소정의 임계값보다 크거나 작은지를 결정하는 단계를 포함할 수 있다. 일 실시예에서, 상기 방법은, 상기 서브-벡터의 길이에 기초하여 상기 서브-벡터의 계수를 표현하기 위하여 가변장 코드워드를 할당하는 단계를 더 포함한다.
일 실시예에서, 상기 방법은, 상기 계수 벡터내의 상기 서브-벡터의 위치에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하는 단계를 더 포함한다.
일 실시예에서, 상기 방법은 서브-벡터에 대응하는 블록에 대해 "트레일링 1(trailing ones)" 구문(syntax) 요소를 부호화하는 단계를 더 포함한다.
일 실시예에서, 상기 방법은 매크로블록에 대한 부호화된 블록 패턴을 부호화하는 단계를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타낸다.
일 실시예에서, 상기 방법은 매크로블록에 대한 부호화된 블록 패턴이 이전에 부호화된 매크로블록에 대한 부호화된 블록 패턴으로부터 획득되는지를 나타내는 표시를 부호화하는 단계를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타낸다.
일 실시예에서, 하나의 벡터 길이를 위해 설계된 VLC 코드워드 매트릭스는 더 작은 서브-벡터와 함께 사용하기 위해 절단된다. 절단을 통해 폐기될 가장 짧은 N 코드워드들은 서브-벡터와 함께 사용하기 위해 보유된 VLC 코드워드들이 폐기된 VLC 코드워드들보다 더 길지 않도록 VLC 코드워드 매트릭스에 "삽입"된다. 동등하게, 이것은 "매핑 매트릭스"를 사용하여 달성될 수 있다.
일 실시예에서, 이전의 매크로블록으로부터의 CBP가 현재의 매크로블록에 대한 CBP로서 사용되어야 하는지를 나타내는 "계속 표시자"가 비트 스트림으로 부호화된다. 그렇게 표시되는 경우, 현재의 매크로블록에 대한 CBP를 복호화하는 것은 생략될 수 있다. 대안적으로, 상기 "계속 표시자"에는 가능한 세트의 CBP 값들로부터 하나의 값이 할당될 수 있고 가변장 부호를 사용하여 부호화될 수 있다.
일 실시예에서, 블록내의 "토털 런(total run)"을 부호화하는데 사용되는 VLC 테이블은 서브-벡터 길이 및/또는 위치에 기반하여 조정된다. 예를 들어, VLC 테이블 인덱스는 서브-벡터 길이와 다음으로 가장 긴 벡터 길이 간의 차이에 비례하는 값만큼 증가될 수 있다.
일 실시예에서, 각 매크로블록은 서브-벡터내의 트레일링 1(trailing ones)의 수에 대응하는 값을 갖는 트레일링 1 표시자를 포함한다. 대안적으로, 각 매크로블록은 서브-벡터내의 0이 아닌 계수들의 수에 대응하는 값을 갖는 트레일링 1 표시자를 포함한다.
본 발명의 다른 태양에 있어서, 장치는 소스 비디오 신호를 수신하기 위한 수신기; 및 상기 비디오 신호를 처리하도록 구성된 부호기를 포함하고, 상기 부호기는 계수 벡터를 복수의 서브-벡터들로 분할하도록 구성된다. 상기 부호기는 상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치를 표시하도록 더 구성되며, 가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하도록 더 구성된다.
본 발명의 다른 태양에 있어서, 장치는 프로세서; 및 상기 프로세서에 통신가능하게 연결된 메모리 유닛을 포함한다. 상기 메모리 유닛은, 계수 벡터를 복수의 서브-벡터들로 분할하기 위한 컴퓨터 코드; 상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치를 표시하기 위한 컴퓨터 코드; 및 가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하기 위한 컴퓨터 코드를 포함한다.
다른 태양에 있어서, 본 발명은 컴퓨터로 읽을 수 있는 매체상에 수록된 컴퓨터 프로그램을 포함한다. 상기 컴퓨터 프로그램은 계수 벡터를 복수의 서브-벡터들로 분할하는 단계; 상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치를 표시하는 단계; 및 가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하는 단계를 포함하는 방법을 제공하도록 구성된다.
본 발명의 다른 태양에 있어서, 부호화된 이미지를 복호화하기 위한 방법은, 이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치를 수신하는 단계; 상기 서브-벡터에 대한 한 세트의 계수들을 수신하는 단계; 상기 수신된 계수들의 세트 및 상기 서브-벡터의 위치에 기초하여 상기 계수 벡터를 형성하는 단계; 및 상기 블록을 복호화하는 단계를 포함한다.
본 발명의 다른 태양에 있어서, 장치는 소스 비디오 신호를 수신하기 위한 수신기; 및 상기 비디오 신호를 처리하도록 구성된 복호기를 포함한다. 상기 복호기는 이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치를 수신하도록 구성되고, 상기 서브-벡터에 대한 한 세트의 계수들을 수신하도록 구성되며, 상기 수신된 계수들의 세트 및 상기 서브-벡터의 위치에 기초하여 상기 계수 벡터를 형성하도록 구성되고, 상기 블록을 복호화하도록 구성된다.
본 발명의 다른 태양에 있어서, 장치는 프로세서; 및 상기 프로세서에 통신가능하게 연결된 메모리 유닛을 포함한다. 상기 메모리 유닛은, 이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치를 수신하기 위한 컴퓨터 코드; 상기 서브-벡터에 대한 한 세트의 계수들을 수신하기 위한 컴퓨터 코드; 상기 수신된 계수들의 세트 및 상기 서브-벡터의 위치에 기초하여 상기 계수 벡터를 형성하기 위한 컴퓨터 코드; 및 상기 블록을 복호화하기 위한 컴퓨터 코드를 포함한다.
다른 태양에 있어서, 본 발명은 컴퓨터로 읽을 수 있는 매체상에 수록된 컴퓨터 프로그램을 포함한다. 상기 컴퓨터 프로그램은 이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치를 수신하는 단계; 상기 서브-벡터에 대한 한 세트의 계수들을 수신하는 단계; 상기 수신된 계수들의 세트 및 상기 서브-벡터의 위치에 기초하여 상기 계수 벡터를 형성하는 단계; 및 상기 블록을 복호화하는 단계를 포함하는 방법을 제공하도록 구성된다.
본 발명의 구조 및 동작 방식과 함께, 본 발명의 다양한 실시예들의 이러한 이점들과 다른 이점들 및 특징들은, 하기에 설명된 몇몇 도면들 전반에 걸쳐 유사한 요소들은 유사한 참조번호들을 갖는, 첨부된 도면들과 함께 취해질 때 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 발명이 구현될 수 있는 시스템의 개요도이다.
도 2는 본 발명의 구현에 사용될 수 있는 이동 장치의 투시도이다.
도 3은 도 2의 이동 장치의 회로의 개략도이다.
도 4는 본 발명의 일 실시예에 의한 네트워크 추상 계층(NAL) 유닛 스트림의 예시도이다.
도 5는 본 발명의 일 실시예에 의한 NAL 유닛의 예시도이다.
도 6은 본 발명의 일 실시예에 의한 도 5의 NAL 유닛내의 매크로블록의 예시도이다.
본 발명의 실시예들은, 계수들이 MGS 또는 CGS 프레임워크로 분할되는 경우, 계수들의 엔트로피 부호화에 관한 것이다. 이러한 프레임워크에서의 부호화 효율은 계수들을 개별적인 품질 계층들로 분할함으로써 개선될 수 있다. 4×4 블록은 벡터 형태로 쓰여질 수 있는데 예를 들어 [12 0 4 -2 0 0 1 0 1 0 0 0 0 0 0 0]로 쓰여질 수 있다. 상기 블록을 두개의 벡터들의 합: [12 0 4 -2 0 0 0 0 0 0 0 0 0 0 0 0] + [0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0]로 쓰여진, 첫번째 4개 및 마지막 12개의 계수들("4-12 분할")로 구성된 두개의 벡터들로 분리하는 것이 가능하다. 따라서, 기존의 MGS 기술은 어떤 CGS 슬라이스들이 최선의 레이트-왜곡 증가를 제공할 것인지를 선택할 수 있을 뿐만 아니라, 상기 슬라이스내의 어떤 계수들이 최선의 레이트-왜곡 증가를 제공할 것인지를 선택할 수 있다.
하지만, 계수들의 블록이 두개 이상의 벡터들로 분할되는 경우, 분할된 블록들 각각은 0들로 패딩된다. 블록이 두개의 벡터들로 분할되는 경우, 이것은 원래의 벡터의 계수들의 수의 두배가 된다. 블록이 세개로 분할되는 경우, 계수들의 수는 세배가 되고, 다른 경우에도 계수들의 수는 이와 유사하게 된다. 예를 들어, [12 0 4 -2 0 0 1 0 1 0 0 0 0 0 0 0]는 두개의 [12 0 4 -2 0 0 0 0 0 0 0 0 0 0 0 0] + [0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0]로 분할될 수 있다. 이들 두개의 벡터들을 V1 및 V2라 하고, 상기 벡터에서 n번째 계수를 V1,n이라 하자. 프레임내의 각 블록에 대해 동일한 분할이 사용되는 경우, n>=4에 대해 계수가 0일 확률은 V1에서 1, 수학적으로 n>=4에 대해 p(V1,n = 0) = 1 이고, 유사하게 n<4에 대해 p(V2,n = 0) = 1 이다. 콘텍스트-적응 가변장 부호(CAVLC)와 같은, 가변장 부호기는 이들 확률들에 충분히 적응될 수 없고, 따라서, "패딩된" 0들의 부호화는 CAVLC를 사용하는 경우 극단적으로 비싸다. 본 발명의 실시예들은 이들 관심들을 다루는 것이다.
도 1은 본 발명의 실시예들과 함께 사용하기 위한 일반적인 멀티미디어 통신 시스템을 도시한 것이다. 도 1에 도시된 바와 같이, 데이터 소스(100)는 아날로그 포맷, 압축되지 않은 디지털 포맷 또는 압축된 디지털 포맷 또는 이들 포맷들의 조합으로 소스 신호를 제공한다. 부호기(110)는 소스 신호를 부호화된 미디어 비트스 트림으로 부호화한다. 부호기(110)는 오디오 및 비디오와 같은, 하나보다 많은 미디어 유형을 부호화할 수 있거나, 상이한 미디어 유형의 소스 신호를 부호화하는데 하나보다 많은 부호기(110)가 필요할 수 있다. 부호기(110)는 또한 그래픽 및 텍스트와 같은 합성적으로 생성된 입력을 획득할 수 있거나 합성 미디어의 부호화된 비트스트림들을 생성할 수 있다. 하기에서, 설명을 단순화하기 위하여, 한가지의 미디어 유형의 하나의 부호화된 미디어 비트스트림의 처리만이 고려된다. 하지만, 전형적으로 실시간 방송 서비스들이 몇몇 스트림들(전형적으로 적어도 하나의 오디오, 비디오 및 텍스트 서브-타이틀링 스트림)을 포함한다는 것은 주목되어야 한다. 또한, 상기 시스템이 많은 부호기들을 포함할 수 있지만, 하기에서 일반성의 결여없이 설명을 단순화하기 위하여 단지 하나의 부호기(110)가 고려된다는 것은 주목되어야 한다.
부호화된 미디어 비트스트림은 저장 장치(120)로 전송된다. 상기 저장 장치(120)는 부호화된 미디어 비트스트림을 저장하기 위하여 어떤 유형의 대용량 메모리를 포함할 수 있다. 저장 장치(120)내의 부호화된 미디어 비트스트림의 포맷은 기본적인 자급식 비트스트림 포맷일 수 있거나, 하나 이상의 부호화된 미디어 비트스트림들은 컨테이너 파일(container file)로 캡슐화될 수 있다. 몇몇 시스템들은 "라이브(live)"로 동작하는데, 즉 저장 장치를 생략하고 부호기(110)로부터 송신기(130)로 직접 부호화된 미디어 비트스트림을 전송한다. 그다음 부호화된 미디어 비트스트림은 또한 필요한 경우 서버로 지칭되는, 송신기(130)로 전송된다. 전송시 사용되는 포맷은 기본적인 자급식 비트스트림 포맷, 패킷 스트림 포맷일 수 있거 나, 하나 이상의 부호화된 미디어 비트스트림들은 컨테이너 파일로 캡슐화될 수 있다. 부호기(110), 저장 장치(120) 및 송신기(130)는 몇몇 물리적인 장치내에 존재할 수 있거나 그들은 개별 장치들에 포함될 수 있다. 부호기(110) 및 송신기(130)는 라이브 실시간 콘텐트를 가지고 동작할 수 있는데, 이 경우 부호화된 미디어 비트스트림은 전형적으로 영구적으로 저장되지 않고, 오히려 처리 지연, 전송 지연 및 부호화된 미디어 비트레이트의 변동을 평탄화시키기 위하여 콘텐트 부호기(110) 및/또는 송신기(130)에서 짧은 기간동안 버퍼링된다.
송신기(130)는 통신 프로토콜 스택을 사용하여 부호화된 미디어 비트스트림을 송신한다. 상기 스택은 실시간 전송 프로토콜(RTP: Real-Time Transport Protocol), 사용자 데이터그램 프로토콜(UDP: User Datagram Protocol) 및 인터넷 프로토콜(IP: Internet Protocol)을 포함할 수 있지만 이에 한정되지는 않는다. 상기 통신 프로토콜 스택이 패킷 지향적인 경우, 송신기(130)는 부호화된 미디어 비트스트림을 패킷들로 캡슐화한다. 예를 들어, RTP가 사용되는 경우, 송신기(130)는 RTP 페이로드 포맷에 따라 부호화된 미디어 비트스트림을 RTP 패킷들로 캡슐화한다. 전형적으로, 각 미디어 유형은 전용 RTP 페이로드 포맷을 가지고 있다. 시스템이 하나보다 많은 송신기(130)를 포함할 수 있지만, 단순화를 위해 하기의 설명은 단지 하나의 송신기(130)를 고려한다는 것은 다시 주목되어야 한다.
송신기(130)는 통신 네트워크를 통해 게이트웨이(140)에 접속될 수 있거나 접속될 수 없다. 게이트웨이(140)는 하나의 통신 프로토콜 스택에 따른 패킷 스트림을 다른 통신 프로토콜 스택으로 번역하는 것, 그리고 우세한 다운링크 네트워크 조건에 따라 전송된 스트림의 비트 레이트를 제어하는 것과 같이 다운링크 및/또는 수신기 능력에 따라 데이터 스트림을 조작하는 것과 같은, 다양한 유형의 기능들을 수행할 수 있다. 게이트웨이들(140)의 예들은 다중점 협의 제어 유닛들(MCUs), 회선 교환 및 패킷 교환 비디오 텔레포니 간의 게이트웨이들, 푸시-투-토크 오버 셀룰러(PoC: Push-to-talk over Cellular) 서버들, 디지털 비디오 방송-핸드헬드(DVB-H) 시스템들에서의 IP 캡슐기들 또는 홈 무선 네트워크들로의 국부적으로 방송 전송들을 전송하는 셋톱 박스들(set-top boxes)을 포함한다. RTP가 사용되는 경우, 게이트웨이(140)는 RTP 믹서로 불리우고 RTP 접속의 종단점으로서 동작한다.
상기 시스템은 전형적으로 전송된 신호를 수신하고, 복조하며, 부호화된 미디어 비트스트림으로 역-캡슐화할 수 있는, 하나 이상의 수신기들(150)을 포함한다. 부호화된 미디어 비트스트림은 전형적으로 복호기(160)에 의해 추가로 처리되는데, 복호기의 출력은 하나 이상의 압축되지 않은 미디어 스트림들이다. 복호화될 비트스트림이 실질적으로 어떤 유형의 네트워크내에 위치한 원격 장치로부터 수신될 수 있다는 것은 주목되어야 한다. 부가적으로, 상기 비트스트림은 로컬 하드웨어 또는 소프트웨어로부터 수신될 수 있다. 마지막으로, 렌더러(renderer)(170)는 예를 들어 라우드스피커 또는 디스플레이를 가지고 압축되지 않은 미디어 스트림들을 재생할 수 있다. 수신기(150), 복호기(160) 및 렌더러(170)는 동일한 물리적인 장치에 존재할 수 있거나, 그들은 개별적인 장치들에 포함될 수 있다.
비트레이트, 복호화 복잡성 및 화상 크기의 관점에서의 확장성은 이질적이고 에러가 있기 쉬운 환경에 대해 바람직한 특성이다. 수신 장치에서의 비트 레이트, 디스플레이 해상도, 네트워크 처리량 및 계산 능력에 대한 제약들과 같은 제한들에 맞서기 위하여 이 특성은 바람직하다.
여기에 포함된 텍스트 및 예들이 특정적으로 부호화 프로세스를 설명할지라도, 동일한 개념들 및 원리들이 또한 대응하는 복호화 프로세스에 적용될 수 있다는 것과 그 역도 가능하다는 것을 당업자가 쉽사리 이해할 것이라는 것은 이해되어야 한다. 복호화될 비트스트림이 실질적으로 어떤 유형의 네트워크내에 위치한 원격 장치로부터 수신될 수 있다는 것은 주목되어야 한다. 부가적으로, 상기 비트스트림은 로컬 하드웨어 또는 소프트웨어로부터 수신될 수 있다.
본 발명의 통신 장치들은 부호 분할 다중 접속(CDMA), 이동 통신용 글로벌 시스템(GSM), 유니버설 이동 통신 시스템(UMTS), 시분할 다중 접속(TDMA), 주파수 분할 다중 접속(FDMA), 전송 제어 프로토콜/인터넷 프로토콜(TCP/IP), 짧은 메시징 서비스(SMS), 멀티미디어 메시징 서비스(MMS), 이메일, 인스턴트 메시징 서비스(IMS), 블루투스, IEEE 802.11 등을 포함하지만 이에 한정되지 않는 다양한 전송 기술들을 사용하여 통신할 수 있다. 통신 장치는 무선, 적외선, 레이저, 케이블 접속 등을 포함하지만 이에 한정되지 않는 다양한 미디어를 사용하여 통신할 수 있다.
도 2 및 도 3은 본 발명이 구현될 수 있는 하나의 대표적인 이동 장치(12)를 도시한 것이다. 하지만, 본 발명이 하나의 특정 유형의 이동 장치(12)나 다른 전자 장치에 한정되지 않는다는 것은 이해되어야 한다.
도 2 및 도 3의 이동 장치(12)는 하우징(30), 액정 디스플레이 형태의 디스 플레이(32), 키패드(34), 마이크로폰(36), 이어폰(38), 배터리(40), 적외선 포트(42), 안테나(44), 본 발명의 실시예에 의한 UICC 형태의 스마트 카드(46), 카드 판독기(48), 무선 인터페이스 회로(52), 코덱 회로(54), 제어기(56) 및 메모리(58)를 포함한다. 개별 회로들 및 요소들은 예를 들어 노키아의 이동 장치들의 범위에 있는 당 기술분야에서 잘 알려져 있는 형태이다.
이제 도 4를 참조하면, 예시적인 NAL 유닛 스트림(400)이 도시되어 있다. 상기에 언급된 바와 같이, NAL 유닛 스트림(400)은 부호기에 의해 생성된 일련의 NAL 유닛들(410)을 포함한다. 상기 스트림내의 각 NAL 유닛(410)은 각 NAL 유닛 앞에 시작 부호(프리픽스)에 의해 분리되어 있다.
도 5는 NAL 유닛(410)의 다양한 구성요소들과 함께 더 상세히 예시적인 NAL 유닛(410)을 도시한 것이다. 상기 NAL 유닛(410)은 NAL 프리픽스(412) 및 NAL 헤더(414)를 포함하고, 이어서 하나 이상의 매크로블록들(420)이 온다. 각 매크로블록(420)은 프레임에 대응하는 데이터, 프레임의 일부, 확장층 또는 확장층의 일부를 포함한다.
도 6은 본 발명의 실시예에 의한 매크로블록(420)을 도시한 것이다. 도 6에 도시된 매크로블록(420)은 어떤 구성요소들을 가지고 도시된다. 상기 매크로블록(420)이 필요한 바와 같이 또는 요망되는 바와 같이 부가적인 구성요소들을 포함할 수 있다는 것은 당업자에 의해 이해될 것이다. 상기 매크로블록(420)의 구성요소들은 부호화된 블록 패턴 섹션(422), 트레일링 1 표시자(424) 및 계수 블록(426)을 포함하는데, 이들 각각은 개별적으로 당업자에 의해 이해될 것이다. 트레일링 1 표시자(424)는 일반적으로 계수 벡터 또는 서브-벡터내의 트레일링 1의 수에 대응하는 값을 갖는다.
본 발명의 실시예들에 의하면, 계수들의 벡터를 몇몇 상이한 벡터들의 합으로 분할하고 CAVLC-유사한 엔트로피 부호기를 사용하여 각각을 개별적으로 매크로블록에서 부호화하는 것이 바람직하다. 일 실시예에서, 계수 벡터는 두개 이상의 서브-벡터들로 분할된다. 상기 서브-벡터들은 패딩된 0들이 제거된 상태로 있는 상술된 두개의 계수 벡터들에 대응한다. 따라서, 일 예에서, 원래의 계수 벡터가 [12 0 4 -2 0 0 1 0 1 0 0 0 0 0 0 0]인 상기 예에서, 계수 벡터는 두개의 서브-벡터들: [12 0 4 -2] 및 [0 0 1 0 1 0 0 0 0 0 0 0]로 분할될 수 있다. 복호화를 용이하게 하기 위하여, 슬라이스의 헤더에는 상기 계수 벡터내의 각 서브-벡터의 크기 및 위치를 반영하는 표시자들이 제공될 수 있다. 일 실시예에서, 각 서브-벡터의 크기 및 위치는 서브-벡터의 시작 위치 및 끝 위치에 의해 표시될 수 있다. 예를 들어, 시작 위치 및 끝 위치 (0,3) 및 (4,15)를 표시하는 것은 각각 서브-벡터들 [12 0 4 -2] 및 [0 0 1 0 1 0 0 0 0 0 0 0]로 분할되는 벡터 [12 0 4 -2 0 0 1 0 1 0 0 0 0 0 0 0]을 초래할 것이다. 한 서브-벡터의 시작이 항상 이전의 서브-벡터의 끝 직후에 오는 경우, 시작 위치 또는 끝 위치의 부호화는 생략될 수 있다. 다른 실시예에서, 서브-벡터의 크기 및 위치는 서브-벡터의 시작 위치 및 길이로 표현될 수 있다. 따라서, 시작 위치 및 길이 (0,4)를 부호화하는 것은 서브-벡터 [12 0 4 -2]를 나타낼 것이고 시작 위치 및 길이 (4,12)는 서브-벡터 [0 0 1 0 1 0 0 0 0 0 0 0]를 나타낼 것이다. 한 서브-벡터의 시작이 항상 이전의 서브-벡터의 끝 직후에 오는 경우, 시작 위치는 생략될 수 있어서, 서브-벡터 길이들은 {4,12}로서 부호화될 것이다. 정규 CAVLC 부호기는 이들 경우들 각각에 대해 사용될 수 있다.
본 발명의 다른 실시예에서, 각 서브-벡터를 부호화하는데 사용되는 CAVLC 부호기는 독립적으로 선택될 수 있다. 예를 들어, 특정 CAVLC 부호기는 다른 크기의 서브-벡터에 대비하여 한 크기의 서브-벡터에 대해 더 효율적일 수 있다. 따라서, 일 그룹의 CAVLC 부호기들로부터의 CAVLC 부호기의 선택은 상기 서브-벡터의 길이에 기초할 수 있다.
예를 들어, H.264/AVC는 두개의 CAVLC 시나리오들을 가지는데, 하나는 16-값 벡터들에 대한 것이고 다른 하나는 4-값 벡터들에 대한 것이다. 특정 길이 이하의 어떤 벡터들도 4-값 CAVLC 부호기를 사용하여 부호화되도록 임계값이 설정될 수 있고, 상기 임계값보다 큰 것은 16-값 CAVLC 부호기를 사용하여 부호화된다.
CAVLC 부호기와 서브-벡터 길이 간의 매핑은 예를 들어 임계 동작과 같은, 수학적인 기능 또는 룩업 테이블을 통해 달성될 수 있다. 상기 매핑은 그것이 용이하게 결정될 수 있도록 그리고 부호기 및 복호기 양자에서 특정 서브-벡터에 대해 동일하도록 하드-코딩될 수 있다. 대안적으로, 상기 부호기의 매핑 또는 선택은 비트 스트림내에서 지령될 수 있고, 그것에 의해 복호기로 중계될 수 있다.
본 발명의 다른 실시예에서, 트레일링 1 표시자(424)는 서브-벡터의 길이에 기초하여 변경될 수 있다. 일 실시예에서, 트레일링 1 표시자(424)는 그것이 부호화될 벡터의 길이에 의존하여 0이 아닌 카운트만을 지정하도록 동적으로 변경된다. 이 변경이 효력이 발생하는 경우, 트레일링 1의 수는 0인 것으로 가정되고, 상이한 VLC 코드워드 테이블이 사용될 수 있다.
예를 들어, 벡터 길이가 5 미만이거나 10보다 큰 경우, 트레일링 1 표시자(424)는 트레일링 1의 수 및 0이 아닌 계수들의 수 양자를 지정할 수 있고, 정규 H.264/AVC CAVLC 복호화가 사용될 수 있다. 다른 한편으로, 벡터 길이가 5 내지 10의 범위에 있는 경우, 트레일링 1 표시자는(424)는 하기와 같은 코드워드 테이블에 따라 변경될 수 있다:
VLC 코드워드 0이 아닌 값들의 수 트레일링 1
0 0 0
10 1 0
110 2 0
11100 3 0
11110 4 0
111010 5 0
111011 6 0
111110 7 0
1111110 8 0
11111110 9 0
11111111 10 0
일 실시예에서, 트레일링 1 표시자(424)의 값은 상한이 정해질 수 있다. 예를 들어, 트레일링 1 표시자(424)의 최대 값은 서브-벡터의 길이 및/또는 0이 아닌 계수들의 수에 의존하여 0 내지 3 사이에서 변할 수 있다. 예를 들어, 길이가 6인 서브-벡터에 대해, 트레일링 1 표시자(424)의 값은 1로 상한이 정해질 수 있어서, 0 또는 1의 값을 가질 수 있다.
본 발명의 다른 실시예에서, "매핑 기능"은 서브-벡터 길이에 기초하여 트레일링 1 표시자(424)에 대한 H.264/AVC CAVLC 코드워드들을 다시 매핑하는데 사용된다. H.264/AVC CAVLC에 따라, 트레일링 1 표시자(424)에 대한 VLC 코드워드 길이는 블록내의 0이 아닌 값들의 총 수 및 트레일링 1의 수 양자에 기반한다. 예를 들어, 크기가 16이고 콘텍스트가 0인 벡터들에 대해, VLC 코드워드 길이들은 아래 매트릭스에 의해 주어진다:
Figure 112009062319307-pct00001
상기에서 수직 인덱스는 트레일링 1의 수이고 수평 인덱스는 0이 아닌 값들의 총 수이다. 서브-벡터의 길이가 2인 경우, 서브-벡터는 단지 0, 1 또는 2의 트레일링 1 및 0, 1 또는 2의 0이 아닌 값들만을 가질 수 있기 때문에 디멘젼(dimensions)은 제한된다:
Figure 112009062319307-pct00002
하지만, 단순히 VLC 매트릭스를 절단하는 것은 길이가 더 긴 코드워드들을 사용하는 반면에 몇몇 짧은 길이의 코드워드들을 실질적으로 금지시킨다. 예를 들어, 상기 매트릭스는 VLC 길이 6 및 8을 보유하는 반면에 길이 5를 제거한다. 이것은 부호화 효율의 손실을 초래한다. 짧은 제거된 VLC 길이들을 매트릭스에 "삽입"하는 것이 바람직하여서, N 짧은 코드워드들이 삽입되는 경우, N 가장 긴 코드워드들은 제거된다. 예를 들어, 값 5를 삽입한 후, 상기 매트릭스는 다음과 같이 된다:
Figure 112009062319307-pct00003
이 동작의 특징은 절단된 매트릭스내의 어떤 VLC 코드워드도 절단을 통해 제거된 어떤 VLC 코드워드보다 길지 않다는 것이다. 다른 특징은 절단된 매트릭스내의 VLC 코드워드들의 상대적인 길이가 보존되어서, 원래의 매트릭스내의 두번째 VLC 코드워드보다 길지 않은 하나의 VLC 코드워드가 절단된 매트릭스내의 두번째 VLC 코드워드보다 여전히 길지 않을 것이라는 것이다.
짧은 길이의 코드워드들의 "삽입"은 동등하게 매핑 기능으로서 쓰여질 수 있다. 우선, 코드워드들은 정렬된 벡터로서 쓰여질 수 있다. 벡터 크기 16 및 콘텍스트 0에 대한 H.264/AVC CAVLC의 예를 계속 살펴보면, 길이들은 [1 2 3 5 6 6 6 7 7 8 8 8 8 9 9 9 9 ...]이 될 것이다. 그다음 "매핑 매트릭스"는 어떤 코드워드 인덱스가 VLC 길이 매트릭스내의 각 위치에서 사용되어야 하는지를 나타낸다:
Figure 112009062319307-pct00004
따라서 매트릭스내의 좌측 상단의 요소에 대해, 인덱스 0을 갖는 VLC 코드워드, 즉 길이 1이 사용되어야 한다. 매트릭스내의 상단의 좌측으로부터 두번째 요소에 대해, 인덱스 4를 갖는 VLC 코드워드, 즉 길이 6이 사용되어야 한다. 따라서, VLC 벡터 및 "매핑 매트릭스"로부터 원래의 VLC 길이 매트릭스를 재구성하는 것이 가능하다.
서브-벡터가 이제 길이 3으로 제한되는 경우, 예를 들어, 매핑 매트릭스는 단순히 절단되고 불연속성을 제거하기 위하여 패킹된다:
Figure 112009062319307-pct00005
마지막으로, "매핑 매트릭스"내의 값들을 대응하는 VLC 코드워드 길이들로 교체하는 것은 다음을 제공한다:
Figure 112009062319307-pct00006
언급된 바와 같이, 이 "매핑 기능"은 서브-벡터들을 사용하는 경우 길이가 짧은 VLC 코드워드들이 낭비되지 않는다는 것을 보증하기 위한 "삽입" 동작을 수행하는 동등한 방법이다. 이 접근법은 각 서브-벡터 길이에 대응하는 많은 상이한 VLC 테이블들을 저장할 필요를 회피하게 하므로, 테이블들이 각 경우에 최적일 필요가 없을지라도 복잡성 이익을 제공할 수 있다. 이전에 언급된 임계 특징은 본 실 시예와 함께 사용될 수 있다. 예를 들어, 벡터 길이 4에 대응하는 하나의 "매핑 매트릭스"는 길이 4까지 서브-벡터들에 대해 사용될 수 있고, 벡터 길이 16에 대응하는 두번째 "매핑 매트릭스"는 길이 4보다 긴 서브-벡터들에 대해 사용될 수 있다.
추가 실시예에서, VLC 코드워드들은 "종결"될 수 있다. 예를 들어, 길이 7의 하나의 코드워드 및 길이 8의 다른 VLC 코드워드가 존재하지만, 길이 9 이상의 VLC 코드워드는 존재하지 않는 경우, 길이 8의 VLC 코드워드는 프리픽스 비트들이 더 이상 필요하지 않기 때문에 길이 7로 단축될 수 있다.
본 발명의 다른 실시예에서, 부호화된 블록 패턴 섹션(422)을 위해 사용된 VLC는 서브-벡터의 길이 및/또는 상기 벡터의 시작 위치에 따라 변경된다. 이와 관련하여, 위치 0에서 시작하는 벡터들에 대해 하나의 VLC가 사용될 수 있고, 다른 벡터들에 대해 상이한 VLC가 사용될 수 있다. 예를 들어, 상기에 설명된 서브-벡터들 [12 0 4 -2] 및 [0 0 1 0 1 0 0 0 0 0 0 0]의 경우에, 첫번째 서브-벡터의 시작 위치는 0이고 두번째 서브-벡터의 시작 위치는 4이다. 정규 H.264/AVC CBP VLC가 첫번째 벡터에 대해 사용될 수 있고, 두번째 벡터에 대해 상이한 VLC가 사용될 수 있다. 또는 예를 들어, 상기에 설명된 서브-벡터들 [12 0 4 -2] 및 [0 0 1 0 1 0 0 0 0 0 0 0]의 경우에, 첫번째 서브-벡터의 길이는 4이고 두번째 서브-벡터의 길이는 12이다. 정규 H.264/AVC CBP VLC가 그것의 길이에 기초하여 두번째 벡터에 대해 사용될 수 있고, 첫번째 벡터에 대해 상이한 VLC가 사용될 수 있다.
다른 실시예에서, 부호화된 블록 패턴 섹션(422)내의 프리픽스 플래그와 같은, 표시자가 0 이외의 위치들에서 시작하는 서브-벡터들에 대해 제공된다. 상기 프리픽스 플래그를 갖는 (선택적으로 시프트된) H.264/AVC CBP VLC가 사용되는데, 상기 프리픽스 플래그는 상기 블록들 중 어떤 블록이 0이 아닌 값들을 포함하는지를 나타낸다. 예를 들어, 상기 플래그가 1로 설정되는 경우, CBP는 감소될 수 있고 정규 H.264/AVC CBP 절차를 사용하여 비트 스트림으로 부호화될 수 있다.
다른 실시예에서, 정규 H.264/AVC CBP VLC는, 콘텍스트가 이웃하는 블록들내의 0이 아닌 값들의 존재에 의해 결정되는 콘텍스트 기반이기 때문에, 콘텍스트들은 0이 아닌 결정이 이웃하는 블록들의 동일한 벡터내의 계수들 뿐만 아니라 이전의 벡터들에 기초하도록, 변경될 수 있다. 이 특징은 서브-벡터의 길이 및/또는 서브-벡터 시작 위치에 기초하여 인에이블되거나 디세이블될 수 있다. 예를 들어, 계수 위치들 4 내지 15를 커버하고 정규 H.264/AVC CBP 부호화를 사용하는 벡터 [0 0 1 0 1 0 0 0 0 0 0 0]를 고려하면, 이웃하는 블록들의 계수들 0 내지 3에서의 0이 아닌 값들의 존재는 무시될 것이다(이들 계수들은 상이한 슬라이스로 부호화되고, 현재의 슬라이스에서 0들을 가지고 패딩된다). 부호화 효율 이득은 계수들 4 내지 15에서의 0이 아닌 값들의 존재 뿐만 아니라 벡터 [12 0 4 -2]를 포함하는 슬라이스의 계수들 0 내지 3에서의 0이 아닌 값들의 존재를 고려함으로써 실현될 수 있다. 설명을 위해, 동일한 블록의 이웃하는 벡터에 매우 많은 수의 0이 아닌 값들이 존재하는 경우, CBP는 0이 아닌 값 쪽으로 편중되어야 한다.
추가 실시예에서, CBP 값은 CBP가 이전에 부호화된 매크로블록에 대한 것과 동일한 것인지를 나타내는 연속성 플래그(continuity flag)에 의해 프리픽싱될 수 있다. 따라서, 연속성 플래그가 0으로 설정되는 경우, CBP는 통상적으로 부호화된 다. 연속성 플래그가 1로 설정되는 경우, 이전의 매크로블록으로부터의 CBP가 사용된다. 이 연속성 플래그는 서브-벡터의 시작 위치 및/또는 서브-벡터의 길이, 슬라이스 유형, 계층 또는 품질 ID, 기본층 ID 및 이웃하는 매크로블록들로부터의 콘텍스트 정보와 같은 기준에 기초하여 비트 스트림으로부터 생략될 수 있거나 삽입될 수 있다. 상기 연속성 플래그는 또한 개별 플래그로서 부호화되기 보다는, CBP 자체와 결합될 수 있어서, 가능한 CBP 값들의 세트내의 하나의 특정한 값은 이전의 매크로블록으로부터의 CBP가 다시 사용되어야 한다는 것을 나타낸다.
이것은 또한 콘텍스트-기반 이진 산술 부호화(CABAC)에 적용될 수 있는데, 현재의 매크로블록 CBP의 부호화를 위해 콘텍스트를 결정하는 경우, 이전의 매크로블록의 CBP 값이 적어도 부분적으로 사용된다.
다른 실시예에서, H.264/AVC CAVLC에서 "토털 런(total run)"을 부호화하는 경우 사용되는 VLC 테이블은 서브-벡터의 길이에 기초하여 조정된다. 관례적으로, "토털 런"을 부호화하는 경우 사용되는 VLC 코드워드는 블록내의 스캔 위치 및 블록내의 토털 런에 기초하는 2차원 어레이이다. 이 실시예에 의하면, 서브-벡터의 길이를 반영하는 3차원이 상기 어레이에 부가된다.
추가적인 실시예에서, H.264/AVC CAVLC의 VLC 코드워드 테이블들은 서브-벡터에 대한 "토털 런"을 부호화하는데 사용되지만, VLC 테이블 인덱스는 서브-벡터의 길이에 기초하여 조정된다. 예를 들어, 서브-벡터가 길이 3을 가지고 있는 경우, 벡터 길이 4에 대응하는 H.264/AVC VLC 코드워드 테이블들이 사용되는데, VLC 테이블 인덱스는 1만큼 증가된다. 예를 들어, 서브-벡터가 길이 2를 가지고 있는 경우, 벡터 길이 4에 대응하는 H.264/AVC VLC 코드워드 테이블들이 사용될 수 있는데, VLC 테이블 인덱스는 2만큼 증가된다. 따라서, 상기 증분은 다음으로 가장 긴 H.264/AVC 벡터 길이(4 또는 16) 및 서브-벡터 크기를 포함하는 수학적인 표현에 기초한다. 예를 들어, 서브-벡터 길이(SubbandSize)가 4이하인 경우 수학적인 표현 min(VLCTable+4-SubbandSize,2)가 사용될 수 있다. 상기 VLC 테이블 인덱스는 그것이 H.264/AVC에서 최대 허용가능한 값을 초과하지 않도록 상한이 정해질 것이다.
이러한 본 발명의 태양은 CABAC 부호화에서 유사한 방식으로 사용될 수 있다. 예를 들어, 중요도 표시자 또는 레벨 표시자의 부호화를 위해 CABAC 콘텍스트를 형성하는 경우, 보통의 CABAC 콘텍스트는 4 이하의 길이의 서브-벡터들에 대한 (4-SubbandSize)에 기초한 양만큼 시프트될 수 있다. CAVLC 경우에서와 같이, 콘텍스트 시프트는 H.264/AVC에 의해 부과된 최소 및 최대 한계내에 있도록 상한이 정해질 것이다.
다른 실시예에서, 공통 계수 벡터에 대응하는 매크로블록들과 연관된 다양한 모드들은 정렬될 수 있다. 따라서, 주어진 계수 벡터에 대한 모든 서브-벡터 매크로블록들은 동일한 모드를 갖는다. 계수 벡터 [12 0 4 -2 0 0 1 0 1 0 0 0 0 0 0 0]인 상기 예에서, 서브-벡터 [12 0 4 -2]에 대한 매크로블록 및 서브-벡터 [0 0 1 0 1 0 0 0 0 0 0 0]에 대한 매크로블록은 정렬된 모드들을 갖는다. 이 정렬은 부호기 설계시 규정될 수 있거나 대안적으로 비트 스트림내에 표시될 수 있다.
이러한 실시예들에서, 변환 크기 플래그, BL 스킵 플래그 등과 같은 구문(syntax) 요소들의 부호화는 첫번째 서브-벡터(계수 위치 0에서 시작하는 벡터 들)에 대응하는 매크로블록들을 제외하곤 모든 매크로블록들에 대해, 정렬 조건에 의존하여 스킵될 수 있다.
본 발명의 특정 실시예들이 개시되었을지라도, 첨부된 청구항들의 진정한 사상 및 범위내에서 다양하고 상이한 변형들 및 조합들이 가능하고 고려될 수 있다는 것은 이해되어야 한다. 그러므로, 여기에서 제시되는 정확한 요약 및 명세를 제한하려는 의도는 없다.
여기에 설명된 본 발명의 다양한 실시예들은 일 실시예에서 네트워킹된 환경에서 컴퓨터들에 의해 실행되는 프로그램 코드와 같은, 컴퓨터-실행가능 명령들을 포함하는 프로그램 생성물에 의해 구현될 수 있는, 방법 단계들의 일반적인 관점에서 설명된다. 일반적으로, 프로그램 모듈들은 특정 태스크들을 수행하거나 특정의 추상 데이터 유형들을 구현하는 루틴들, 프로그램들, 객체들, 구성요소들, 데이터 구조들 등을 포함한다. 컴퓨터-실행가능 명령들, 연관된 데이터 구조들 및 프로그램 모듈들은 여기에 개시된 방법들의 단계들을 실행하기 위한 프로그램 코드의 예들을 나타낸다. 이러한 실행가능한 명령들 또는 연관된 데이터 구조들의 특정 시퀀스는 이러한 단계들에서 기술된 기능들을 구현하기 위한 대응하는 동작들의 예들을 나타낸다. 본 발명의 다양한 실시예들은 예를 들어 C/C++ 또는 어셈블리 언어와 같은 어떤 일반적인 프로그래밍 언어를 사용하여 소프트웨어로 직접 구현될 수 있다.
본 발명의 소프트웨어 및 웹 구현들은 다양한 데이터베이스 검색 단계들, 상관 단계들, 비교 단계들 및 결정 단계들을 달성하기 위하여 규칙 기반 로직 및 다른 로직과 함께 표준 프로그래밍 기술들을 가지고 달성될 수 있다. 또한 여기에서 사용되고 청구항들에서 사용된 "구성요소" 및 "모듈"이라는 용어가 한 라인 이상의 소프트웨어 코드 및/또는 하드웨어 구현들 및/또는 수동 입력들을 수신하기 위한 장비를 사용하는 구현들을 포함한다는 것은 주목되어야 한다.
상기한 이전의 예들에 설명된 개별적이고 특정적인 구조들은, "수단"이라는 용어가 여기에서 사용되지 않는 경우에 청구항들에서의 제한이 "수단 플러스 기능" 제한들을 구성하는 것으로서 해석되지 않아야 할지라도, 다음의 청구항들에 설명된 특정 기능들을 수행하기 위한 수단의 대표적인 구조를 구성하는 것으로서 이해되어야 한다. 부가적으로, 상기한 설명에서 "단계"라는 용어의 사용은 청구항들에서의 어떤 특정의 제한을 "단계 플러스 기능" 제한을 구성하는 것으로서 간주하도록 사용되어서는 않된다. 등록된 특허들, 특허 출원들 및 비-특허 간행물들을 포함하는 개별 참조문헌들이 여기에서 설명되거나 달리 언급되는 범위까지, 이러한 참조문헌들은 다음의 청구항들의 범위를 제한하지 않을 것이고 청구항들의 범위를 제한하는것으로서 해석되지 않아야 한다.
본 발명의 실시예들의 상기 설명은 예증 및 설명을 위해 제시되었다. 그것은 본 발명을 개시된 정확한 형태로 제한하지 않을 것이거나 모든 것을 망라한 것이 아닐 것이고, 변형들 및 변경들은 상기한 교시의 관점에서 가능하거나 본 발명의 실시로부터 획득될 수 있다. 당업자로 하여금 다양한 실시예들에서 그리고 고려된 특정 사용에 적합한 다양한 변경들을 가지고 본 발명을 이용할 수 있게 하기 위하여 상기 실시예들은 본 발명의 원리들 및 본 발명의 실질적인 적용을 설명하기 위하여 선택되고 설명되었다.

Claims (51)

  1. 이미지의 블록을 나타내는 계수 벡터의 계수 값들을, 패딩된 0들이 없는 복수의 서브-벡터들로 분할하는 단계;
    상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치 표시를 제공하는 단계; 및
    가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하는 단계를 포함하는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  2. 제1항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 및 끝 위치에 의해 표시되는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  3. 제1항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 위치 및 상기 서브-벡터의 길이에 의해 표시되는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  4. 제1항에 있어서, 상기 서브-벡터의 길이에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하는 단계를 더 포함하는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  5. 제4항에 있어서, 상기 부호기를 선택하는 단계는 상기 서브-벡터의 길이가 소정의 임계값보다 크거나 작은지를 결정하는 단계를 포함하는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  6. 제4항에 있어서, 상기 서브-벡터의 길이에 기초하여 상기 서브-벡터의 계수를 표현하기 위하여 가변장 코드워드를 할당하는 단계를 더 포함하는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  7. 제1항에 있어서, 상기 계수 벡터내의 상기 서브-벡터의 위치에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하는 단계를 더 포함하는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  8. 제1항에 있어서, 서브-벡터에 대응하는 블록에 대해 "트레일링 1(trailing ones)" 구문(syntax) 요소를 부호화하는 단계를 더 포함하는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  9. 제1항에 있어서, 매크로블록에 대한 부호화된 블록 패턴을 부호화하는 단계를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  10. 제1항에 있어서, 매크로블록에 대한 부호화된 블록 패턴이 이전에 부호화된 매크로블록에 대한 부호화된 블록 패턴으로부터 획득되는지를 나타내는 표시를 부호화하는 단계를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 이미지를 부호화하기 위한 방법.
  11. 소스 비디오 신호를 입력하기 위한 입력부; 및
    상기 비디오 신호를 처리하도록 구성된 부호기를 포함하고,
    상기 부호기는 이미지의 블록을 나타내는 계수 벡터의 계수 값들을, 패딩된 0들이 없는 복수의 서브-벡터들로 분할하도록 구성되며,
    상기 부호기는 상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치 표시를 제공하도록 더 구성되며,
    상기 부호기는 가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하도록 더 구성되는 것을 특징으로 하는 장치.
  12. 제11항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 및 끝 위치에 의해 표시되는 것을 특징으로 하는 장치.
  13. 제11항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 위치 및 상기 서브-벡터의 길이에 의해 표시되는 것을 특징으로 하는 장치.
  14. 제11항에 있어서, 상기 부호기는 상기 서브-벡터의 길이에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하도록 더 구성되는 것을 특징으로 하는 장치.
  15. 제14항에 있어서, 상기 부호기는 상기 서브-벡터의 길이가 소정의 임계값보다 크거나 작은지를 결정하도록 더 구성되는 것을 특징으로 하는 장치.
  16. 제14항에 있어서, 상기 부호기는 상기 서브-벡터의 길이에 기초하여 상기 서브-벡터의 계수를 표현하기 위하여 가변장 코드워드를 할당하도록 더 구성되는 것을 특징으로 하는 장치.
  17. 제11항에 있어서, 상기 부호기는 상기 계수 벡터내의 상기 서브-벡터의 위치에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하도록 더 구성되는 것을 특징으로 하는 장치.
  18. 제11항에 있어서, 상기 부호기는 서브-벡터에 대응하는 블록에 대해 "트레일링 1(trailing ones)" 구문(syntax) 요소를 부호화하도록 더 구성되는 것을 특징으로 하는 장치.
  19. 제11항에 있어서, 상기 부호기는 매크로블록에 대한 부호화된 블록 패턴을 부호화하도록 더 구성되고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 장치.
  20. 프로세서; 및
    상기 프로세서에 통신가능하게 연결된 메모리 유닛을 포함하고,
    상기 메모리 유닛은,
    이미지의 블록을 나타내는 계수 벡터의 계수 값들을, 패딩된 0들이 없는 복수의 서브-벡터들로 분할하기 위한 컴퓨터 코드;
    상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치 표시를 제공하기 위한 컴퓨터 코드; 및
    가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하기 위한 컴퓨터 코드를 포함하는 것을 특징으로 하는 장치.
  21. 이미지의 블록을 나타내는 계수 벡터의 계수 값들을, 패딩된 0들이 없는 복수의 서브-벡터들로 분할하도록 구성된 컴퓨터 코드;
    상기 계수 벡터내에서 상기 복수의 서브-벡터들 중 하나의 서브-벡터의 위치 표시를 제공하도록 구성된 컴퓨터 코드; 및
    가변장 부호기를 사용하여 상기 서브-벡터의 계수 값들을 부호화하도록 구성된 컴퓨터 코드를 포함하는 것을 특징으로 하는 컴퓨터-실행가능한 구성요소들을 포함하는 컴퓨터로 읽을 수 있는 저장 매체.
  22. 제21항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 및 끝 위치에 의해 표시되는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
  23. 제21항에 있어서, 상기 서브-벡터의 길이에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하도록 구성되는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
  24. 제21항에 있어서, 상기 서브-벡터의 길이에 기초하여 상기 서브-벡터의 계수를 표현하기 위하여 가변장 코드워드를 할당하도록 구성되는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
  25. 제21항에 있어서, 매크로블록에 대한 부호화된 블록 패턴을 부호화하도록 구성되는 컴퓨터 코드를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
  26. 이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치 표시를 수신하는 단계;
    상기 서브-벡터에 대한 한 세트의 계수들을 수신하는 단계;
    상기 수신된 계수들의 세트 및 상기 수신된 서브-벡터의 위치 표시에 기초하여 상기 계수 벡터를 형성하는 단계; 및
    상기 블록을 복호화하는 단계를 포함하는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  27. 제26항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 및 끝 위치에 의해 표시되는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  28. 제26항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 위치 및 상기 서브-벡터의 길이에 의해 표시되는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  29. 제26항에 있어서, 상기 서브-벡터의 길이에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  30. 제29항에 있어서, 상기 부호기를 선택하는 단계는 상기 서브-벡터의 길이가 소정의 임계값보다 크거나 작은지를 결정하는 단계를 포함하는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  31. 제29항에 있어서, 상기 서브-벡터의 길이에 기초하여 상기 서브-벡터의 계수를 표현하기 위하여 가변장 코드워드를 복호화하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  32. 제26항에 있어서, 상기 계수 벡터내의 상기 서브-벡터의 위치에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  33. 제26항에 있어서, 서브-벡터에 대응하는 블록에 대해 "트레일링 1(trailing ones)" 구문(syntax) 요소를 복호화하는 단계를 더 포함하는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  34. 제26항에 있어서, 매크로블록에 대한 부호화된 블록 패턴을 복호화하는 단계를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  35. 제26항에 있어서, 매크로블록에 대한 부호화된 블록 패턴이 이전에 부호화된 매크로블록에 대한 부호화된 블록 패턴으로부터 획득되는지를 나타내는 표시를 수 신하는 단계를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 부호화된 이미지를 복호화하기 위한 방법.
  36. 소스 비디오 신호를 수신하기 위한 수신기; 및
    상기 비디오 신호를 처리하도록 구성된 복호기를 포함하고,
    상기 복호기는 이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치 표시를 수신하도록 구성되고,
    상기 복호기는 상기 서브-벡터에 대한 한 세트의 계수들을 수신하도록 더 구성되며,
    상기 복호기는 상기 수신된 계수들의 세트 및 상기 수신된 서브-벡터의 위치표시에 기초하여 상기 계수 벡터를 형성하도록 더 구성되고,
    상기 복호기는 상기 블록을 복호화하도록 더 구성되는 것을 특징으로 하는 장치.
  37. 제36항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 및 끝 위치에 의해 표시되는 것을 특징으로 하는 장치.
  38. 제36항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 위치 및 상기 서브-벡터의 길이에 의해 표시되는 것을 특징으로 하는 장치.
  39. 제36항에 있어서, 상기 복호기는 상기 서브-벡터의 길이에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하도록 더 구성되는 것을 특징으로 하는 장치.
  40. 제39항에 있어서, 상기 복호기는 상기 서브-벡터의 길이가 소정의 임계값보다 크거나 작은지를 결정하도록 더 구성되는 것을 특징으로 하는 장치.
  41. 제39항에 있어서, 상기 복호기는 상기 서브-벡터 길이에 기초하여 상기 서브-벡터의 계수를 표현하기 위하여 가변장 코드워드를 복호화하도록 더 구성되는 것을 특징으로 하는 장치.
  42. 제36항에 있어서, 상기 복호기는 상기 계수 벡터내의 상기 서브-벡터의 위치에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하도록 더 구성되는 것을 특징으로 하는 장치.
  43. 제36항에 있어서, 상기 복호기는 서브-벡터에 대응하는 블록에 대해 "트레일링 1(trailing ones)" 구문(syntax) 요소를 복호화하도록 더 구성되는 것을 특징으로 하는 장치.
  44. 제36항에 있어서, 상기 복호기는 매크로블록에 대한 부호화된 블록 패턴을 복호화하도록 더 구성되고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 장치.
  45. 제36항에 있어서, 상기 복호기는 매크로블록에 대한 부호화된 블록 패턴이 이전에 부호화된 매크로블록에 대한 부호화된 블록 패턴으로부터 획득되는지를 나타내는 표시를 수신하도록 더 구성되고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 장치.
  46. 프로세서; 및
    상기 프로세서에 통신가능하게 연결된 메모리 유닛을 포함하고,
    상기 메모리 유닛은,
    이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치 표시를 수신하기 위한 컴퓨터 코드;
    상기 서브-벡터에 대한 한 세트의 계수들을 수신하기 위한 컴퓨터 코드;
    상기 수신된 계수들의 세트 및 상기 수신된 서브-벡터의 위치 표시에 기초하여 상기 계수 벡터를 형성하기 위한 컴퓨터 코드; 및
    상기 블록을 복호화하기 위한 컴퓨터 코드를 포함하는 것을 특징으로 하는 장치.
  47. 이미지의 블록을 나타내는 계수 벡터내의 서브-벡터의 위치 표시를 수신하도록 구성된 컴퓨터 코드;
    상기 서브-벡터에 대한 한 세트의 계수들을 수신하도록 구성된 컴퓨터 코드;
    상기 수신된 계수들의 세트 및 상기 수신된 서브-벡터의 위치 표시에 기초하여 상기 계수 벡터를 형성하도록 구성된 컴퓨터 코드; 및
    상기 블록을 복호화하도록 구성된 컴퓨터 코드를 포함하는 것을 특징으로 하는 컴퓨터-실행가능한 구성요소들을 포함하는 컴퓨터로 읽을 수 있는 저장 매체.
  48. 제47항에 있어서, 상기 서브-벡터의 위치는 상기 계수 벡터내의 시작 및 끝 위치에 의해 표시되는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
  49. 제47항에 있어서, 상기 서브-벡터의 길이에 기초하여 일 그룹의 가변장 부호기들로부터 상기 서브-벡터에 대한 가변장 부호기를 선택하도록 구성되는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
  50. 제47항에 있어서, 상기 서브-벡터의 길이에 기초하여 상기 서브-벡터의 계수를 표현하기 위하여 가변장 코드워드를 복호화하도록 구성되는 컴퓨터 코드를 더 포함하는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
  51. 제47항에 있어서, 매크로블록에 대한 부호화된 블록 패턴을 복호화하도록 구성되는 컴퓨터 코드를 더 포함하고, 상기 부호화된 블록 패턴은 상기 매크로블록의 복수의 블록들에 대응하는 계수 벡터들의 복수의 서브-벡터들이 0이 아닌 계수 값들을 가지고 있는지를 나타내는 것을 특징으로 하는 컴퓨터로 읽을 수 있는 저장 매체.
KR1020097021248A 2007-03-13 2008-03-12 비디오 부호화 및 복호화를 위한 시스템 및 방법 KR101083051B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US89466707P 2007-03-13 2007-03-13
US60/894,667 2007-03-13
PCT/IB2008/050905 WO2008110999A2 (en) 2007-03-13 2008-03-12 System and method for video encoding and decoding

Publications (2)

Publication Number Publication Date
KR20090132597A KR20090132597A (ko) 2009-12-30
KR101083051B1 true KR101083051B1 (ko) 2011-11-16

Family

ID=39705269

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020097021248A KR101083051B1 (ko) 2007-03-13 2008-03-12 비디오 부호화 및 복호화를 위한 시스템 및 방법

Country Status (11)

Country Link
US (1) US9055338B2 (ko)
EP (1) EP2137981B1 (ko)
KR (1) KR101083051B1 (ko)
CN (1) CN101658042B (ko)
AR (1) AR065722A1 (ko)
CA (1) CA2679995C (ko)
MX (1) MX2009009489A (ko)
RU (2) RU2420023C1 (ko)
TW (1) TWI452908B (ko)
WO (1) WO2008110999A2 (ko)
ZA (1) ZA200907078B (ko)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7082450B2 (en) 2001-08-30 2006-07-25 Nokia Corporation Implementation of a transform and of a subsequent quantization
US9118944B2 (en) * 2009-02-05 2015-08-25 Cisco Technology, Inc. System and method for rate control in a network environment
BRPI1001258A2 (pt) * 2009-04-28 2017-01-10 Panasonic Coporation método de decodificação de imagem, método de codifcação de imagem, aparelho de decodificação de imagem, e aparelho de codificação de imagem
AU2012227355B8 (en) * 2009-04-28 2013-07-11 Panasonic Corporation Image decoding method, and image decoding apparatus
KR20110068792A (ko) 2009-12-16 2011-06-22 한국전자통신연구원 적응적 영상 부호화 장치 및 방법
CN106412600B (zh) * 2010-01-12 2019-07-16 Lg电子株式会社 视频信号的处理方法和设备
NO2559244T3 (ko) * 2010-04-13 2017-12-30
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
HUE061628T2 (hu) * 2011-11-07 2023-07-28 Tagivan Ii Llc Képdekódoló eljárás és képdekódoló eszköz
US20130114687A1 (en) * 2011-11-07 2013-05-09 Sharp Laboratories Of America, Inc. Fixed intra run-level mode for cavlc in hevc
JP6080375B2 (ja) 2011-11-07 2017-02-15 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
US9860527B2 (en) 2012-01-19 2018-01-02 Huawei Technologies Co., Ltd. High throughput residual coding for a transform skipped block for CABAC in HEVC
US10616581B2 (en) 2012-01-19 2020-04-07 Huawei Technologies Co., Ltd. Modified coding for a transform skipped block for CABAC in HEVC
US20130188736A1 (en) 2012-01-19 2013-07-25 Sharp Laboratories Of America, Inc. High throughput significance map processing for cabac in hevc
US9654139B2 (en) 2012-01-19 2017-05-16 Huawei Technologies Co., Ltd. High throughput binarization (HTB) method for CABAC in HEVC
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US9538239B2 (en) * 2012-08-13 2017-01-03 Gurulogic Microsystems Oy Decoder and method for decoding encoded input data containing a plurality of blocks or packets
US20160112707A1 (en) * 2014-10-15 2016-04-21 Intel Corporation Policy-based image encoding
CN107534765B (zh) * 2015-03-31 2020-10-02 瑞尔数码有限公司 视频编码系统和方法中的运动矢量选择和预测
EP3395072A4 (en) 2015-12-22 2019-05-22 RealNetworks, Inc. SELECTION AND PREDICTION OF MOTION VECTOR IN VIDEO ENCODING SYSTEMS AND METHODS
US10666984B2 (en) * 2016-03-08 2020-05-26 Qualcomm Incorporated Apparatus and method for vector-based entropy coding for display stream compression
US10873437B2 (en) * 2016-08-11 2020-12-22 Sharp Kabushiki Kaisha Systems and methods for frequency-division duplex transmission time interval operation
CN114341825A (zh) * 2019-08-29 2022-04-12 阿里巴巴集团控股有限公司 用于在神经网络中提供向量稀疏化的方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272529A (en) 1992-03-20 1993-12-21 Northwest Starscan Limited Partnership Adaptive hierarchical subband vector quantization encoder
US20060291729A1 (en) 2001-05-29 2006-12-28 Cisco Technology, Inc. Methods and apparatus for transform coefficient filtering

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5295203A (en) * 1992-03-26 1994-03-15 General Instrument Corporation Method and apparatus for vector coding of video transform coefficients
US5854858A (en) 1995-06-07 1998-12-29 Girod; Bernd Image signal coder operating at reduced spatial resolution
DE19637522A1 (de) 1996-09-13 1998-03-19 Bosch Gmbh Robert Verfahren zur Reduzierung von Daten in Videosignalen
US6011498A (en) * 1996-12-20 2000-01-04 Philips Electronics North America Corporation Dual-speed variable length decoding architecture for MPEG-2 video data
US20030176406A1 (en) * 1999-05-28 2003-09-18 Mcgill University Polycaprolactone-b-poly (ethylene oxide) copolymer non-cross-linked micelles as a delivery vehicle for steroid
RU2199727C2 (ru) 2001-04-25 2003-02-27 Самарский институт инженеров железнодорожного транспорта Стенд для испытания турбокомпрессора двигателя внутреннего сгорания
US7063264B2 (en) 2001-12-24 2006-06-20 Digimarc Corporation Covert variable information on identification documents and methods of making same
EP1296524A1 (en) 2001-09-20 2003-03-26 STMicroelectronics S.r.l. Process and apparatus for the compression of digital video signals, a system and a computer program product therefor
JP4510465B2 (ja) 2002-01-22 2010-07-21 ノキア コーポレイション イメージ/ビデオ符号器及び/又は復号器における変換係数の符号化
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
JP3679083B2 (ja) 2002-10-08 2005-08-03 株式会社エヌ・ティ・ティ・ドコモ 画像符号化方法、画像復号方法、画像符号化装置、画像復号装置、画像符号化プログラム、画像復号プログラム
US6646578B1 (en) * 2002-11-22 2003-11-11 Ub Video Inc. Context adaptive variable length decoding system and method
US8565314B2 (en) * 2006-10-12 2013-10-22 Qualcomm Incorporated Variable length coding table selection based on block type statistics for refinement coefficient coding
US8467449B2 (en) * 2007-01-08 2013-06-18 Qualcomm Incorporated CAVLC enhancements for SVC CGS enhancement layer coding
BRPI0720806B1 (pt) * 2007-01-18 2023-03-28 Fraunhofer-Gesellschaft Zur Forderung Der Angewandten Forschung E.V. Corrente de dados de vídeo de qualidade escalonável

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5272529A (en) 1992-03-20 1993-12-21 Northwest Starscan Limited Partnership Adaptive hierarchical subband vector quantization encoder
US20060291729A1 (en) 2001-05-29 2006-12-28 Cisco Technology, Inc. Methods and apparatus for transform coefficient filtering

Also Published As

Publication number Publication date
AR065722A1 (es) 2009-06-24
ZA200907078B (en) 2014-03-26
CA2679995C (en) 2014-06-03
CN101658042A (zh) 2010-02-24
KR20090132597A (ko) 2009-12-30
EP2137981A2 (en) 2009-12-30
MX2009009489A (es) 2009-11-05
CA2679995A1 (en) 2008-09-18
TW200845763A (en) 2008-11-16
WO2008110999A3 (en) 2008-11-20
RU2011108534A (ru) 2012-09-10
WO2008110999A2 (en) 2008-09-18
US20080225955A1 (en) 2008-09-18
US9055338B2 (en) 2015-06-09
TWI452908B (zh) 2014-09-11
EP2137981B1 (en) 2012-07-25
CN101658042B (zh) 2016-03-02
RU2420023C1 (ru) 2011-05-27

Similar Documents

Publication Publication Date Title
KR101083051B1 (ko) 비디오 부호화 및 복호화를 위한 시스템 및 방법
CN101828399B (zh) 用于可缩放位深度的可缩放视频译码方法和设备
CN107211138B (zh) 编码、解码视频数据的方法、装置和计算机可读存储媒体
CN101529911B (zh) 用于对多层比特流数据进行信号指示的方法和系统
US7991236B2 (en) Discardable lower layer adaptations in scalable video coding
KR102353200B1 (ko) 비디오 정보의 스케일러블 코딩을 위한 디바이스 및 방법
US8929462B2 (en) System and method for implementing low-complexity multi-view video coding
US20220217342A1 (en) An apparatus, a method and a computer program for video coding and decoding
US7586425B2 (en) Scalable video coding and decoding
US20070230567A1 (en) Slice groups and data partitioning in scalable video coding
KR102290091B1 (ko) 다계층 기반의 영상 부호화/복호화 방법 및 장치
EP3085093A1 (en) Signaling color values for 3d lookup table for color gamut scalability in multi-layer video coding
US20080253467A1 (en) System and method for using redundant pictures for inter-layer prediction in scalable video coding
JP7323099B2 (ja) マルチレイヤビデオビットストリームのためのdpbパラメータのシグナリング
KR102138407B1 (ko) 색 공간 스케일러빌리티에 대한 3d 칼라 예측을 위한 비트 심도 값들의 시그널링
JP7353394B2 (ja) ビデオコーディングおよびデコーディングのための装置、方法、およびコンピュータプログラム
CN117651132A (zh) 发送信号通知神经网络环路后滤波器信息的方法和设备
CN117857789A (zh) 更新视频数据的神经网络环路后滤波器信息的方法和设备

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: 20141023

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151016

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161019

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171018

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181018

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191016

Year of fee payment: 9