KR20060131718A - 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체 - Google Patents

이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체 Download PDF

Info

Publication number
KR20060131718A
KR20060131718A KR1020067001543A KR20067001543A KR20060131718A KR 20060131718 A KR20060131718 A KR 20060131718A KR 1020067001543 A KR1020067001543 A KR 1020067001543A KR 20067001543 A KR20067001543 A KR 20067001543A KR 20060131718 A KR20060131718 A KR 20060131718A
Authority
KR
South Korea
Prior art keywords
picture
unit
slice
partial
partial picture
Prior art date
Application number
KR1020067001543A
Other languages
English (en)
Other versions
KR101103867B1 (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 KR20060131718A publication Critical patent/KR20060131718A/ko
Application granted granted Critical
Publication of KR101103867B1 publication Critical patent/KR101103867B1/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/85Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
    • H04N19/86Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression involving reduction of coding artifacts, e.g. of blockiness
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • 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/103Selection of coding mode or of prediction mode
    • H04N19/107Selection of coding mode or of prediction mode between spatial and temporal predictive coding, e.g. picture refresh
    • 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/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/164Feedback from the receiver or from the transmission channel
    • H04N19/166Feedback from the receiver or from the transmission channel concerning the amount of transmission errors, e.g. bit error rate [BER]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/174Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop

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

이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체{SLICE LAYER IN VIDEO CODEC}
본 발명은 비디오, 이미지 및 다른 디지털 미디어 컨텐츠를 디지털 방식으로 인코딩, 디코딩 및 프로세싱하기 위한 기술에 관한 것이다.
디지털 비디오는 매우 많은 양의 저장 및 전송 용량을 소비한다. 일반적인 미가공 디지털 비디오 시퀀스는 15 또는 30 fps(frames per second)를 포함한다. 각각의 프레임은 수만 또는 수십만 개의 픽셀(펠이라고도 불림)을 포함할 수 있다. 각각의 픽셀은 픽처의 매우 작은 엘리먼트를 나타낸다. 미가공 형태에서, 컴퓨터는 주로, 총 24비트인 3개의 샘플의 집합으로서 픽셀을 나타낸다. 예를 들어, 픽셀은 픽셀의 계조(grayscale) 성분을 정의하는 8비트의 휘도(luminance) 샘플(루마 샘플이라고도 불림), 및 픽셀의 컬러 성분을 정의하는 2개의 8비트 색도(chrominance) 샘플 값(크로마 샘플이라고도 불림)을 포함할 수 있다. 따라서, 일반적인 미가공 디지털 비디오 시퀀스의 bps(bits per second) 또는 비트 레이트의 수는 5백만 bps 이상일 수 있다.
다수의 컴퓨터 및 컴퓨터 네트워크는 미가공 디지털 비디오를 프로세싱할 자원이 부족하다. 이러한 이유로, 엔지니어들은 압축(코딩 또는 인코딩이라고도 불 림)을 이용하여 디지털 비디오의 비트 레이트를 감소시킨다. 압축은 비디오를 더 낮은 비트 레이트 형태로 변환함으로써 비디오를 저장하고 전송하는 비용을 감소시킨다. 압축해제(디코딩이라고도 불림)는 압축된 형태로부터 원래의 비디오 버전을 재구성한다. "코덱"은 인코더/디코더 시스템이다. 압축은 손실이 없을 수 있고, 이 때, 비디오의 품질은 손상되지 않지만, 비디오 데이터의 고유한 가변성의 양(때때로, 엔트로피라고 불림)에 의해 비트 레이트의 감소량이 제한된다. 다르게, 압축은 손실이 있을 수 있고, 이 때, 비디오의 품질은 손상되지만, 비트 레이트의 성취가능한 감소량은 더 크다. 손실 압축은 종종, 손실 압축이 정보의 근사치를 설정하고 무손실 압축 기술은 그 근사치를 나타내는 데 적용되는 시스템 설계에서, 무손실 압축과 함께 사용된다.
일반적으로, 비디오 압축 기술은 "인트라-픽처" 압축 및 "인터-픽처" 압축을 포함하는데, 픽처는 예를 들어, 순차 주사된 비디오 프레임, (비디오 필드에 대해 교대하는 라인들을 갖는) 인터레이스(interlace)된 비디오 프레임, 또는 인터레이스된 비디오 필드이다. 순차 프레임에 대해, 인트라-픽처 압축 기술은 개별 프레임(일반적으로, I-프레임 또는 키 프레임이라고 불림)을 압축하고, 인터-픽처 압축 기술은 이전 및/또는 다음의 프레임(일반적으로 참조 또는 앵커 프레임이라고 불림)을 참조하여 프레임(일반적으로, 예측된 프레임, P-프레임 또는 B-프레임이라고 불림)을 압축한다.
예측된 프레임은 매크로블럭이라고 불리는 구역(region)들로 나뉘어질 수 있다. 특정 매크로블럭에 대한 기준 프레임 내의 매칭되는 구역은 매크로블럭에 관 한 움직임 벡터(motion vector) 정보를 송신함으로써 지정된다. 움직임 벡터는 현재의 매크로블럭 내의 픽셀에 대한 예측자(predictor)로서 픽셀이 사용되는 기준 프레임 내의 구역의 위치를 나타낸다. 현재의 매크로블럭(또는 그것의 블럭)과 매크로블럭 예측자 간의 픽셀별 차이(종종, 에러 시그널 또는 레지듀얼라고 불림)가 도출된다. 이 에러 시그널은 보통, 원래의 시그널보다 더 낮은 엔트로피를 갖는다. 따라서, 정보는 더 낮은 레이트로 인코딩될 수 있다. 인코더는, 예측자로서 사용할 하나 이상의 기준 프레임 내의 매칭되는 구역을 검색함으로써 프레임의 구역에 대한 움직임 벡터를 결정함으로써 움직임 측정을 수행한다. 인코더 또는 디코더는 하나 이상의 기준 프레임에서 예측자를 찾는 데 움직임 벡터를 적용함으로써 움직임 보상을 수행한다.
매크로블럭에 대한 움직임 벡터 값은 종종, 공간적으로 둘러싸는 매크로블럭에 대한 움직임 벡터와 상호관련된다. 따라서, 움직임 벡터 정보를 전송하는 데 사용되는 데이터의 압축은 움직임 벡터와, 이웃하는 움직임 벡터로부터 형성된 움직임 벡터 예측자 간의 차이를 코딩함으로써 성취될 수 있다.
종종, 비디오 압축 기술에서, 픽셀, 또는 레지듀얼(residual)과 같은 다른 공간 영역 비디오 데이터의 블럭은, 주로 주파수 영역(즉, 스펙트럼) 데이터인 변환 영역 데이터로 변환된다. 결과로서 생긴 스펙트럼 데이터 계수의 블럭은 양자화될 수 있고, 그 후, 엔트로피 인코딩될 수 있다.
결과로서 생긴 비디오가 디스플레이되기 전에 데이터가 압축해제될 때, 디코더는 일반적으로, 압축 동작의 역을 수행한다. 예를 들어, 디코더는 데이터를 압 축해제하는 동안 엔트로피 디코딩, 역 양자화 및 역 변환을 수행할 수 있다. 움직임 보상이 사용될 때, 디코더(및 인코더)는 이전에 재구성된 하나 이상의 프레임(이제, 기준 프레임으로서 사용됨)들로부터 한 프레임을 재구성하고, 새로 재구성된 프레임은 나중의 프레임에 대한 움직임 보상을 위해 기준 프레임으로서 사용될 수 있다.
디지털 방식으로 코딩된 비디오에 대한 다수의 일반적인 사용 시나리오는 코딩된 비디오를 장치들 사이에서, 및 자주 지리적으로 먼 위치들 사이에서 전송하는 것에 관련된다. 또한, 다수의 흔히 사용되는 데이터 전송 시스템은 패킷-기반의 전송 프로토콜을 사용하는데, 여기서, 데이터 전송은 "패킷"이라고 불리는 따로 라우팅되는 유닛들로 나뉘어진다. 디지털 비디오를 전달하는 이러한 다양한 전송 시스템은 종종 노이즈 및 다른 전송 에러의 소스의 영향을 받기 쉽고, "패킷 손실"을 경험할 수 있다. 그러한 에러 및 패킷 손실은 각각의 프레임, 또는 비디오 시퀀스의 복수의 관련 프레임들을 디코딩하는 데 실패를 유도할 수 있다.
따라서, 비디오 시퀀스 내의 픽처의 부분적인 구역을 독립적으로 디코딩가능한 유닛으로서 인코딩하는 것이 바람직할 수 있다. 이것은 비디오 스트림의 패킷화를 가능하게 한다. 또한, 이것은 압축된 비디오 비트스트림에 전송 에러 및 패킷 손실에 대한 탄력성(resilience)을 증가시키는 추가적 리던던시(redundancy)를 도입한다. 예를 들어, 전송 에러 또는 손실된 패킷으로부터의 디코딩 손실은 비디오 시퀀스의 전체 픽처 대신에, 부분적인 구역으로 제한될 수 있다. 그러나, 이 탄력성은 압축 효율을 희생하여 성취된 것이다.
수많은 회사가 비디오 코덱을 생성하였다. 예를 들어, 마이크로소프트사는 윈도우즈 미디어 비디오 8 용으로 배포된 비디오 인코더 및 디코더를 생성하였다. 이들 제품과는 별도로, 다수의 국제 표준은 비디오 디코더의 양태 및 압축된 비디오 정보에 대한 포맷을 지정한다. 이들 표준은 H.261, MPEG-1, H.262, H.263 및 MPEG-4 표준을 포함한다. 직접적으로 또는 함축적으로 이들 표준은 특정 인코더 상세사항도 지정하지만, 다른 인코더 상세사항은 지정되지 않는다. 이들 제품 및 표준은 상술된 압축 및 압축해제 기술들의 여러 결합들을 이용한다(또는 그것의 이용을 지원한다). 특히, 이들 제품 및 표준은 부분적인 픽처 유닛 코딩에 대한 다양한 기술을 제공한다.
하나의 그러한 기술은 비디오 시퀀스 내의 프레임을 슬라이스들로 나눈다. 슬라이스는 원래의 왼쪽에서 오른쪽으로의 순서로 매크로블럭의 하나 이상의 인접한 로우들을 포함하도록 정의된다. 슬라이스는 로우의 첫번째 매크로블럭에서 시작하여 동일하거나 다른 로우의 마지막 매크로블럭에서 끝난다.
다양한 표준들, 예를 들어, MPEG-1, MPEG-2, H.263(GOB가 슬라이스와 대략 동등하거나, Annex K 슬라이스가 코딩 모드로 구성됨), MPEG-4 part 2 및 H.264/JVT/MPEG-4 part 10 모두는 자신의 신택스의 일부분으로서 슬라이스를 갖는다. 이들 중, 그들 모두는 에러/손실에의 강건성을 보장하기 위해, 인트라 예측 및 움직임 벡터 예측, 및 슬라이스 경계에 걸친 대부분의 다른 형태의 예측을 불가능하게 한다. 이들 중, H.263(Annex J) 및 H.264/JVT 만이 루프 필터를 포함한다. 인터레이스의 H.263 핸들링은 다소 구식이다(필드 코딩은 Annex W 추가 개정안만을 이용함). H.264는 에러에 더 강한(error-robust) 헤더 구조를 가지며, 인코더가 슬라이스 경계에 걸쳐 루프 필터링을 적용할지를 선택하게 한다.
이들 다양한 비디오 디코딩 표준들로 슬라이스를 구현하는 것은 각각 탄력성과 코딩 효율성 간의 서로 다른 균형을 잡는다.
본 명세서에서 설명된 비디오 코덱 및 비트스트림 신택스는 유동적인 것으로 설계되는 슬라이스-레이어를 포함하고, 에러-탄력성과 압축 효율성의 효율적인 결합을 제공한다. 이 슬라이스-레이어는,
a) 순차 코딩, 인터레이스-프레임 코딩 및 인터레이스-필드 코딩 방법으로 동작하는 효율적인 슬라이스 주소매김 메커니즘,
b) 슬라이스-레이어 내의 픽처 헤더를 재전송하는 유연하고 효율적인 메커니즘, 및
c) 슬라이스-경계에 걸친 모든 형태의 예측, 오버랩 및 루프-필터링을 불가능하게 하여, 인트라-모드로 코딩된 슬라이스가 픽처의 다른 구역들 내의 에러에 관계없이 에러없이 재구성될 수 있도록 하는 것에 의한 디코딩 독립성
과 같은 주요 특성을 제공한다.
본 발명의 추가적 특징 및 이점은 첨부 도면을 참조하는 실시예에 대한 다음의 상세한 설명으로부터 명백해질 것이다.
도 1은 본 명세서에 설명된 슬라이스 레이어 코딩을 채용하는 비디오 인코더 의 블럭도.
도 2는 본 명세서에 설명된 슬라이스 레이어 코딩을 채용하는 비디오 디코더의 블럭도.
도 3은 슬라이스 레이어 코딩을 채용하는 비디오 인코더/디코더에 의해 이용된 압축된 비트스트림으로 표현된 비디오 시퀀스의 엘리먼트들의 계층적 배열을 도시하는 도면.
도 4는 슬라이스 레이어 코딩을 채용하는 비디오 인코더/디코더에 의해 이용된 압축된 비트스트림의 코딩 신택스의 시퀀스-레벨의 신택스 도면.
도 5는 슬라이스 레이어 코딩을 채용하는 비디오 인코더/디코더에 의해 이용된 압축된 비트스트림의 코딩 신택스의 프레임-레벨의 신택스 도면.
도 6은 슬라이스 레이어 코딩을 채용하는 비디오 인코더/디코더에 의해 이용된 압축된 비트스트림의 코딩 신택스의 슬라이스 레이어-레벨의 신택스 도면.
도 7은 블럭 경계에서 수행되는 오버랩 평활화의 예를 도시하는 도면.
도 8은 인-루프 블럭해제 필터링이 수행되는 I 픽처 내의 수평의 블럭 경계 픽셀의 예를 도시하는 블럭.
도 9는 인-루프 블럭해제 필터링이 수행되는 I 픽처 내의 수직의 블럭 경계 픽셀의 예를 도시하는 도면.
도 10은 도 1 및 도 2의 비디오 인코더/디코더에 적합한 컴퓨팅 환경의 블럭도.
도 11은 루프 필터링에 사용된 4-픽셀 세그먼트의 집합을 도시하는 도면.
도 12는 필터링 동작에 사용된 픽셀을 도시하는 도면.
도 13은 세그먼트의 세번째 픽셀 쌍에 대한 필터링 동작의 의사-코드 리스트.
도 14는 세그먼트의 첫번째, 두번째 및 네번째 픽셀 쌍에 대한 필터링 동작의 의사-코드 리스트.
다음의 설명은 비디오 코덱 및 비트스트림 신택스 내의 슬라이스 레이어의 구현에 관한 것으로서, 이것은 유연하고, 에러-탄력성과 압축 효율성의 효율적인 결합을 제공하도록 설계된다. 슬라이스 레이어 코딩의 예시적인 적용은 이미지 또는 비디오 인코더 및 디코더에 있다. 따라서, 슬라이스 레이어 코딩은 일반화된 이미지 또는 비디오 인코더 및 디코더의 문맥으로 설명되지만, 다르게, 이하에 설명된 이 예시적인 비트스트림 신택스과는 세부적으로 다를 수 있는 여러 다른 이미지 및 비디오 코덱의 비트스트림 신택스으로 통합될 수 있다.
1. 일반화된 비디오 인코더 및 디코더
도 1은 일반화된 비디오 인코더(100)의 블럭도이고, 도 2는 WMV9/VC-9 변환이 통합될 수 있는 일반화된 비디오 디코더(200)의 블럭도이다.
인코더 및 디코더 내의 모듈들 간의 도시된 관계는 인코더 및 디코더 내의 정보의 주요 흐름을 나타내며, 단순화를 위해 다른 관계는 도시되지 않는다. 특히, 도 1 및 도 2는 보통, 비디오 시퀀스, 프레임, 매크로블럭, 블럭 등에 사용된 인코더 설정, 모드, 테이블 등을 나타내는 보조 정보를 도시하지 않는다. 그러한 보조 정보는 일반적으로, 보조 정보의 엔트로피 인코딩 후에, 출력 비트스트림 내에 송신된다. 출력 비트스트림의 포맷은 윈도우 미디어 비디오 포맷 또는 다른 포맷일 수 있다.
인코더(100) 및 디코더(200)는 블럭-기반이고, 각각의 매크로블럭이 4개의 8×8 휘도 블럭(때때로, 하나의 16×16 매크로블럭으로서 다루어짐) 및 2개의 8×8 색도 블럭을 포함하는 4:2:0의 매크로블럭 포맷을 사용한다. 다르게, 인코더(100) 및 디코더(200)는 오브젝트-기반이거나, 상이한 매크로블럭 또는 블럭 포맷을 사용하거나, 8×8 블럭 및 16×16 매크로블럭과는 다른 크기 또는 구성의 픽셀들의 집합에 대한 동작을 수행한다.
요구된 압축의 구현 및 유형에 따라, 인코더 또는 디코더의 모듈이 추가되거나, 생략되거나, 복수의 모듈들로 분리되거나, 다른 모듈들과 결합되거나/되고 유사한 모듈로 대체될 수 있다. 다른 실시예에서, 상이한 모듈 및/또는 다른 구성의 모듈을 갖는 인코더 또는 디코더는 설명된 기술들 중 하나 이상을 수행한다.
A. 비디오 인코더
도 1은 일반적인 비디오 인코더 시스템(100)의 블럭도이다. 인코더 시스템(100)은 현재의 프레임(105)을 포함하는 비디오 프레임의 시퀀스를 수신하고, 출력으로서 압축된 비디오 정보(195)를 생성한다. 비디오 인코더의 특정 실시예는 일반적으로 일반 인코더(100)의 변환 또는 보충된 버전을 사용한다.
인코더 시스템(100)은 예측된 프레임 및 키 프레임을 압축한다. 표현을 위해, 도 1은 인코더 시스템(100)을 통한 키 프레임에 대한 경로, 및 순방향-예측된 프레임에 대한 경로를 도시한다. 인코더 시스템(100)의 컴포넌트들 중 다수는 키 프레임과 예측된 프레임 둘 다를 압축하는 데 사용된다. 그러한 컴포넌트에 의해 수행되는 정확한 동작은 압축되는 정보의 유형에 따라 다를 수 있다.
(p-프레임, 양방향 예측을 위한 b-프레임, 또는 인터-코딩된 프레임이라고도 불리는) 예측된 프레임은 하나 이상의 다른 프레임으로부터의 예측(또는 차이)에 관하여 표현된다. 예측 레지듀얼은 예측된 프레임과 원래의 프레임 간의 차이이다. 반대로, (i-프레임, 인트라-코딩된 프레임이라고도 불리는) 키 프레임은 다른 프레임에 대한 참조없이 압축된다.
현재의 프레임(105)이 순방향-예측된 프레임이면, 움직임 측정기(110)는 프레임 저장소(120) 내에 버퍼링된 재구성된 이전의 프레임(125)인 기준 프레임을 참조하여 현재의 프레임(105)의 픽셀들의 매크로블럭 또는 다른 집합의 움직임을 측정한다. 다른 실시예에서, 기준 프레임은 나중의 프레임일 수도 있고, 현재의 프레임은 양방향으로 예측될 수도 있다. 움직임 측정기(110)는 움직임 벡터와 같은 움직임 정보(115)를 보조 정보로서 출력한다. 움직임 보상기(130)는 움직임 정보(115)를 재구성된 이전의 프레임(125)에 적용하여, 움직임-보상된 현재의 프레임(135)을 형성한다. 그러나, 예측은 거의 완벽하지 않으며, 움직임-보상된 현재의 프레임(135)과 원래의 현재의 프레임(105) 간의 차이는 예측 레지듀얼(145)이다. 다르게, 움직임 측정기와 움직임 보상기는 다른 유형의 움직임 측정/보상을 적용한다.
주파수 변환기(160)는 공간 영역의 비디오 정보를 주파수 영역(즉, 스펙트 럼)의 데이터로 변환한다. 블럭-기반의 비디오 프레임에 대해, 주파수 변환기(160)는 이산 코사인 변환("DCT")과 유사한 속성을 갖는 다음의 섹션에서 설명되는 변환을 적용한다. 몇몇 실시예에서, 주파수 변환기(160)는 키 프레임에 대한 공간적 예측 레지듀얼의 블럭에 주파수 변환을 적용한다. 주파수 변환기(160)는 8×8, 8×4, 4×8 또는 다른 크기의 주파수 변환을 적용할 수 있다.
그 후, 양자화기(170)가 스펙트럼 데이터 계수의 블럭을 양자화한다. 양자화기는 프레임별로 또는 다른 기준으로 변하는 단계 폭(step-size)을 갖는 스펙트럼 데이터에 균일한 스칼라 양자화를 적용한다. 다르게, 양자화기는 다른 유형의 양자화, 예를 들어, 비균일형, 벡터형 또는 비적응형 양자화를 스펙트럼 데이터 계수에 적용하거나, 주파수 변환을 사용하지 않는 인코더 시스템에서 공간 영역 데이터를 직접 양자화한다. 적응형 양자화 외에, 인코더(100)는 레이트 제어를 위해 프레임 드로핑(frame dropping), 적응형 필터링 또는 다른 기술을 사용할 수 있다.
후속적인 움직임 측정/보상을 위해 재구성된 현재의 프레임이 필요하면, 역 양자화기(176)는 양자화된 스펙트럼 데이터 계수에 대해 역 양자화를 수행한다. 역 주파수 변환기(166)는 주파수 변환기(160)의 동작의 역을 수행하여, (예측된 프레임에 대한) 재구성된 예측 레지듀얼 또는 재구성된 키 프레임을 생성한다. 현재의 프레임(105)이 키 프레임이면, 재구성된 키 프레임은 재구성된 현재의 프레임(도시되지 않음)으로서 취해진다. 현재의 프레임(105)이 예측된 프레임이면, 재구성된 예측 레지듀얼은 움직임-보상된 현재의 프레임(135)에 추가되어 재구성된 현재의 프레임을 형성한다. 프레임 저장소(120)는 다음의 프레임을 예측하는 데 사 용하기 위해 그 재구성된 현재의 프레임을 버퍼링한다. 몇몇 실시예에서, 인코더는 블럭해제 필터(deblocking filter)를 재구성된 프레임에 적용하여, 프레임의 블럭 내의 불연속을 적응적으로 평활화한다.
엔트로피 코더(180)는 양자화(170)의 출력 뿐만 아니라 특정 보조 정보(예를 들어, 움직임 정보(115), 양자화 단계 폭)도 압축한다. 일반적인 엔트로피 코딩 기술은 연산 코딩, 미분 코딩, 허프만 코딩, 런-렝스(run-length) 코딩, LZ 코딩, 사전 코딩 및 상술된 것의 결합을 포함한다. 엔트로피 코더(180)는 일반적으로, 서로 다른 종류의 정보(예를 들어, DC 계수, AC 계수, 다른 유형의 보조 정보)에 대해 서로 다른 코딩 기술을 사용하고, 특정 코딩 기술 내의 복수의 코드 테이블들 중에서 선택할 수 있다.
엔트로피 코더(180)는 압축된 비디오 정보(195)를 버퍼(190) 내에 넣는다. 버퍼 레벨 표시자는 비트 레이트 적응적 모듈에 피드백된다. 압축된 비디오 정보(195)는 고정적인 또는 상대적으로 고정적인 비트 레이트로 버퍼(190)로부터 고갈(deplete)되거나, 그러한 비트 레이트로 후속적인 스트리밍을 위해 저장된다. 다르게, 인코더 시스템(100)은 압축 직후에, 압축된 비디오 정보를 스트리밍한다.
버퍼(190) 이전 또는 이후에, 압축된 비디오 정보(195)는 네트워크를 통한 전송을 위해 채널 코딩될 수 있다. 채널 코딩은 압축된 비디오 정보(195)에 에러 검출 및 정정 데이터를 적용할 수 있다.
B. 비디오 디코더
도 2는 일반적인 비디오 디코더 시스템(200)의 블럭도이다. 디코더 시스템 (200)은 압축된 비디오 프레임의 시퀀스에 관한 정보(295)를 수신하고, 재구성된 프레임(205)을 포함하는 출력을 생성한다. 비디오 디코더의 특정 실시예는 일반적으로, 일반 디코더(200)의 변환 또는 보충된 버전을 사용한다.
디코더 시스템(200)은 예측된 프레임 및 키 프레임을 압축해제한다. 표현을 위해, 도 2는 디코더 시스템(200)을 통한 키 프레임에 대한 경로, 및 순방향-예측된 프레임에 대한 경로를 도시한다. 디코더 시스템(200)의 컴포넌트들 다수는 키 프레임과 예측된 프레임 둘 다를 압축하는 데 사용된다. 그러한 컴포넌트에 의해 수행되는 정확한 동작은 압축되는 정보의 유형에 따라 다를 수 있다.
버퍼(290)는 압축된 비디오 시퀀스에 관한 정보(295)를 수신하고, 수신된 정보가 엔트로피 디코더(280)에 이용가능하게 한다. 버퍼(290)는 일반적으로, 시간에 대해 매우 고정적인 레이트로 정보를 수신하며, 대역폭 또는 전송의 단기 변화를 평활화하기 위해 지터 버퍼(jitter buffer)를 포함한다. 버퍼(290)는 재생 버퍼 및 그 외의 버퍼도 포함할 수 있다. 다르게, 버퍼(290)는 변하는 레이트로 정보를 수신한다. 버퍼(290) 이전 또는 이후에, 압축된 비디오 정보는 에러 검출 및 정정을 위해 채널 디코딩되고 프로세싱될 수 있다.
엔트로피 디코더(280)는 일반적으로, 인코더 내에서 수행된 엔트로피 인코딩의 역을 적용하면서, 엔트로피-코딩된 양자화된 데이터 뿐만 아니라 엔트로피-코딩된 보조 정보(예를 들어, 움직임 정보, 양자화 단계 폭)도 엔트로피 디코딩한다. 엔트로피 디코딩 기술은 연산 디코딩, 미분 디코딩, 허프만 디코딩, 런-렝스 디코딩, LZ 디코딩, 사전 디코딩 및 상술된 것들의 결합을 포함한다. 엔트로피 디코더 (280)는 자주, 서로 다른 종류의 정보(예를 들어, DC 계수, AC 계수, 서로 다른 유형의 보조 정보)에 대해 서로 다른 디코딩 기술을 사용하며, 특정 디코딩 기술 내의 복수의 코드 테이블들 중에서 선택할 수 있다.
재구성될 프레임(205)이 순방향-예측된 프레임인 경우, 움직임 보상기(230)는 움직임 정보(215)를 기준 프레임(225)에 적용하여, 재구성될 프레임(205)의 예측(235)을 형성한다. 예를 들어, 움직임 보상기(230)는 매크로블럭 움직임 벡터를 이용하여 기준 프레임(225) 내의 매크로블럭을 찾는다. 프레임 버퍼(220)는 기준 프레임으로서 사용하기 위해 이전의 재구성된 프레임을 저장한다. 다르게, 움직임 보상기는 다른 유형의 움직임 보상을 적용한다. 움직임 보상기에 의한 예측은 거의 완벽하지 않기 때문에, 디코더(200)는 예측 레지듀얼도 재구성한다.
디코더가 후속적인 움직임 보상을 위해 재구성된 프레임을 필요로할 때, 프레임 저장소(220)는 다음의 프레임을 예측하는 데 사용하기 위해 그 재구성된 프레임을 버퍼링한다. 몇몇 실시예에서, 인코더는 재구성된 프레임에 블럭해제 필터를 적용하여, 프레임의 블럭 내의 불연속을 적응적으로 평활화한다.
역 양자화기(270)는 엔트로피-디코딩된 데이터를 역 양자화한다. 일반적으로, 역 양자화기는 프레임별 또는 다른 기준으로 변하는 단계 폭을 갖는 엔트로피-디코딩된 데이터에 균일한, 스칼라 역 양자화를 적용한다. 다르게, 역 양자화기는 다른 유형의 역 양자화, 예를 들어, 비균일형, 벡터형 또는 비적응형 양자화를 데이터에 적용하거나, 직접, 역 주파수 변환을 이용하지 않는 디코더 시스템 내의 공간 영역의 데이터를 역 양자화한다.
역 주파수 변환기(260)는 양자화된, 주파수 영역의 데이터를 공간 영역의 비디오 정보로 변환한다. 블럭-기반의 비디오 프레임에 대해서, 역 주파수 변환기(260)는 다음의 섹션에서 설명되는 역 변환을 적용한다. 몇몇 실시예에서, 역 주파수 변환기(260)는 키 프레임에 대한 공간 예측 레지듀얼의 블럭에 역 주파수 변환을 적용한다. 역 주파수 변환기(260)는 8×8, 8×4, 4×8 또는 다른 크기의 역 주파수 변환을 적용할 수 있다.
2. 슬라이스 레이어 코딩
배경기술 섹션에서 설명한 바와 같이, 패킷 손실 및 전송 에러로 인한 디코딩 실패를 방지하거나 최소화하는 한가지 기술은, 소정의 종래의 비디오 코덱 표준으로 제공된 슬라이스와 같은 독립적으로 디코딩가능한 부분적 픽처 유닛 내의 코딩을 통해 추가적인 리던던시를 제공하는 것이다. 일반적으로, 슬라이스는 매크로블럭의 하나 이상의 인접하는 로우들을 포함하는 픽처의 일부분이다.
슬라이스의 주요 도전들 중 하나는, 코덱이 에러 탄력성과 압축 간의 올바른 협정(trade off)을 성취할 수 있게 하는 것이다. 그 이유는, 몇몇 비디오 코덱 적용 또는 사용 시나리오는 상당한 양의 패킷 손실을 극복해야 하기 때문에, 에러 탄력성을 매우 중시한다는 것이다. 다른 적용에서는 매우 낮은 에러 탄력성을 요구하는 반면, 효율적인 압축을 요구한다. 본 명세서에 설명된 비디오 코덱의 비트스트림 신택스의 구현에서, 신택스는 슬라이스 레이어, 또는 탄력성과 효율성의 최적의 선택이 성취될 수 있도록 설계된 다른 부분적 픽처 유닛 레이어를 통합한다. 이 능력은 다음의 방식으로 성취된다.
A) 인트라-슬라이스의 완벽한 재구성 : 예시된 신택스의 슬라이스-레이어는, 루프-필터링과 같은 동작 및 오버랩이 슬라이스들에 걸쳐 기능하지 않도록 설계되었다. 따라서, 슬라이스의 매크로블럭들 모두가 인트라-코딩되는 경우, 및 그 슬라이스에 대응하는 픽처 헤더가 알려지는 경우, 그 슬라이스는 픽처의 다른 슬라이스들(구역들) 내의 에러에 관계없이, 에러없이 정확하게 재구성될 수 있다. 이것은 인트라-슬라이스의 완벽한(에러없는) 재구성을 허용하고, 상당한 에러 탄력성 능력을 제공한다.
B) 프레임 헤더를 반복하는 낮은 비용의 방법 : 픽처 헤더 정보의 반복은 디코더에서 픽처 헤더가 수신될 가능성을 증가시키지만, 압축 효율을 감소시키는 희생이 따른다. 설명된 슬라이스-레이어 신택스는 1-비트 플래그를 이용하여 슬라이스에서 픽처 헤더가 전송되는지를 시그널링한다. 이것은 인코더가 다수의 슬라이스와, 픽처 헤더가 재전송되는 특정 슬라이스 둘 다를 선택할 수 있게 한다.
A. 신택스 계층(syntax hierarchy)
더 상세하게, 설명된 비디오 코덱 신택스는, 비디오 시퀀스의 각각의 프레임을 도 3에 도시된 3개의 기본 계층 레이어들인 픽처(310), 매크로블럭(340) 및 블럭(350)으로 압축해제하는 계층 신택스 구조를 이용하여 비디오를 나타낸다. 픽처(310)는 휘도(Y) 채널(330) 및 색도(Cr 및 Cb) 채널(331 내지 332)을 포함한다. 픽처 레이어(310)는 매크로블럭(340)의 로우들로 구성된다. 각각의 매크로블럭은 일반적으로, 6개의 블럭, 즉, 휘도 레이어로부터의 2×2 블록 그룹, 및 색도 채널 각각으로부터의 블럭을 포함한다. (도시된 비디오 코덱 신택스에서 4×8, 8×4 및 4×4 변환 블럭도 사용될 수 있지만) 블럭은 일반적으로, 변환-기반의 인코딩을 위해 변환이 적용되는 8×8 휘도 또는 색도 샘플을 포함한다.
또한, 슬라이스 레이어(320)라고 불리는 선택적인 네번째 레이어는 픽처 레이어(310)와 매크로블럭 레이어(340) 간에 존재할 수 있다. 슬라이스는 래스터 주사 순서로 주사되는 매크로블럭의 하나 이상의 인접한 로우들을 포함하도록 정의된다. 따라서, 픽처(310)는 슬라이스들(320)로 압축해제될 수 있고, 슬라이스들(320)은 매크로블럭들(340)로 압축될 수 있다. 이 설명된 비디오 코덱 신택스에서, 슬라이스는 항상, 로우의 첫번째 매크로블럭에서 시작하고, 동일하거나 다른 로우의 마지막 매크로블럭에서 끝난다. 따라서, 슬라이스는 정수개의 완전한 로우를 포함한다. 또한, 픽처 및 슬라이스는 항상, 이 설명된 비디오 코덱 비트스트림 신택스에서 바이트-정렬되고, 이하에 설명되는 독립적인 디코딩가능한 유닛(IDU)으로 전송된다. 새로운 픽처 또는 슬라이스는 이하에 약술되는 시작-코드를 통해 검출된다.
B. 슬라이스 레이어 정의
슬라이스는 래스터-주사 순서로 주사되는 매크로블럭의 하나 이상의 인접하는 로우들을 나타낸다. 설명된 신택스의 슬라이스 레이어는 선택적이며, 단일의 독립적인 디코딩가능한 유닛(IDU)으로서 픽처를 코딩함으로써 스킵(skip)될 수 있다. 픽처가 복수의 IDU로 코딩될 때, 슬라이스가 사용된다. 슬라이스는 항상, 로우 내의 첫번째 매크로블럭에서 시작하고, 동일하거나 다른 로우 내의 마지막 매크로블럭에서 끝난다는 것을 유념한다. 따라서, 슬라이스는 정수개의 완전한 로우를 포함한다. 슬라이스는 항상 바이트-정렬되고, 각각의 슬라이스는 서로 다른 IDU로 전송된다. 새로운 슬라이스의 시작은 이하에 약술되는 시작-코드에 대한 검색을 통해 검출된다.
새로운 슬라이스가 시작될 때, 움직임 벡터 예측자, AC 및 DC 계수에 대한 예측자, 및 양자화 파라미터에 대한 예측자가 재설정된다. 다시 말하면, 예측에 관련하여, 슬라이스 내의 매크로블럭의 첫번째 로우는 픽처 내의 매크로블럭의 첫번째 로우인 것으로 간주된다. 이것은 예측자 내에 인터-슬라이스 의존성이 존재하지 않을 것을 보장한다. 또한, 슬라이스가 사용될 때, 모든 비트 평면 정보는, 각각의 매크로블럭이 자기 자신의 로컬 정보를 포함할 것을 보장하는 미가공 모드로 전달된다.
C. 슬라이스 레이어 신택스 구조
도 4 및 도 5를 참조하면, 압축된 비디오 비트스트림(도 1의 195)은 압축된 순차 비디오 프레임 또는 다른 픽처(예를 들어, 인터페이스 프레임 또는 인터레이스 필드 포맷 픽처)의 시퀀스에 관한 정보를 포함한다. 비트스트림은 도 2의 디코더(200)와 같은 디코더에 의해 디코딩되는 몇몇 계층적 레이어들로 조직된다. 가장 높은 레이어는 시퀀스 레이어이며, 이것은 프레임의 전체 시퀀스에 관한 정보를 갖는다. 또한, (앞서 요약한 바와 같이) 각각의 압축된 비디오 프레임은 3개의 계층적 레이어들, 즉, (상단에서 하단으로) 픽처, 매크로블럭 및 블럭; 및 선택적으로 픽처와 매크로블럭 레이어 간의 슬라이스 레이어로 구조화되는 데이터로 구성된다.
도 4는 픽처 레이어(도 5의 500)에 관한 데이터가 후속하는 시퀀스 헤더(410)를 포함하는 시퀀스 레이어(400)에 대한 신택스 도면이다. 시퀀스 헤더(410)는 디코더에 의해 프로세싱되고 시퀀스를 디코딩하는 데 사용되는 몇몇 시퀀스-레벨의 엘리먼트를 포함한다.
도 5는 인터레이스 인트라-코딩된 프레임("인터페이스 I-프레임")에 대한 픽처 레이어(500)에 대한 신택스 도면이다. 순차 I-프레임, P-프레임 및 B-프레임과 같은 다른 픽처에 대한 신택스 도면은 다수의 유사한 신택스 엘리먼트들을 갖는다. 픽처 레이어(500)는 매크로블럭 레이어(520)에 관한 데이터가 후속하는 픽처 헤더(510)를 포함한다. 픽처 헤더(510)는 디코더에 의해 프로세싱되고 대응하는 프레임을 디코딩하는 데 사용되는 몇몇 픽처-레벨의 엘리먼트들을 포함한다. 그러한 엘리먼트들 중 몇몇은 그것의 존재가 시퀀스-레벨의 엘리먼트 또는 앞선 픽처-레벨의 엘리먼트에 의해 시그널링되거나 암시되는 경우에만 존재한다.
도 6은 매크로블럭 레이어(520)에 관한 데이터가 후속하는 슬라이스 헤더(610)를 포함하는 슬라이스 레이어(600)에 대한 신택스 도면이다. 슬라이스 헤더(610)를 구성하는 엘리먼트는 다음의 표 1에도 도시된 바와 같이, 슬라이스 주소(SLICE_ADDR) 엘리먼트(620) 및 픽처 헤더 존재 플래그(PIC_HEADER_FLAG) 엘리먼트(630)를 포함한다.
슬라이스 주소 엘리먼트(620)는 고정-길이의 9-비트 신택스 엘리먼트이다. 슬라이스 내의 첫번째 매크로블럭 로우의 로우주소는 이 신택스 엘리먼트 내에 바이너리 인코딩된다. 설명된 구현에서, 이 신택스 엘리먼트의 범위는 1에서 511까 지이며, 여기서, 최대 픽처 크기 8192는 최대 512개의 매크로블럭 로우들에 대응한다.
PIC_HEADER_FLAG(630)는 슬라이스 헤더 내에 존재하는 1-비트의 신택스 엘리먼트이다. PIC_HEADER_FLAG=0이면, 픽처 헤더 정보는 슬라이스 헤더 내에서 반복되지 않는다. PIC_HEADER_FLAG=1이면, 이 슬라이스를 포함하는 픽처 레이어 내에 나타나는 픽처 헤더(도 5의 510)의 정보는 슬라이스 헤더 내에서 반복된다.
슬라이스-레이어 비트스트림
SLICE() { 비트 개수
SLICE_ADDR 9
PIC_HEADER_FLAG 1
if(PIC_HEADER_FLAG == 1 {
PICTURE_LAYER()
}
for('all macroblocks') {
MB_LAYER()
}
}
3. 독립적으로 디코딩가능한 유닛 시작 코드
설명된 비디오 인코더/디코더의 비트스트림 신택스에서, 압축된 비디오 데이터의 독립적으로 디코딩가능한 유닛(IDU)은 시작 코드(SC; start code)라고 불리는 식별자로 시작한다. IDU는 단일의 픽처, 슬라이스(즉, 픽처 내의 매크로블럭들의 그룹), 픽처들의 그룹(GOP), 또는 시퀀스 헤더를 참조할 수 있다.
시작 코드는 고유한 3-바이트의 시작 코드 프리픽스(SCP; start code prefix) 및 1-바이트의 시작 코드 서픽스(SCS; start code suffix)로 구성된 4 바이트의 시퀀스이다. SCP는 3 바이트(0x000001)의 고유한 시퀀스이다. SCS는 시작 코드를 후속하는 IDU의 타입을 식별하는 데 사용된다. 예를 들어, 픽처 이전의 시작 코드의 서픽스는 슬라이스 이전의 시작 코드의 서픽스와는 다르다. 시작 코드는 항상 바이트-정렬된다.
캡슐화 메커니즘(EM; encapsulation mechanism)은 비트스트림 내의 시작 코드 프리픽스의 에뮬레이션을 방지하기 위해 기술된다. 캡슐화 이전의 압축된 데이터는 미가공의 독립적으로 디코딩가능한 유닛(RIDU)라고 불리지만, 캡슐화된 IDU(EIDU)는 캡슐화 이후의 데이터를 나타낸다.
다음의 섹션은 시작 코드 및 캡슐화가 어떻게 동작하는지에 관한 인코더-측의 관점을 제공한다. 섹션 E.2는 디코더에서 시작 코드 및 EIDU의 검출을 지정한다. 섹션 E.3은 EIDU로부터의 RIDU의 추출을 다룬다. 섹션 E.4는 다양한 IDU 타입들에 대한 시작 코드 서픽스를 지정한다.
A. 시작 코드 및 캡슐화 - 인코더 관점
EIDU를 획득하기 위한 RIDU의 캡슐화가 이하에 설명된다.
단계 1 : RIDU의 끝에 추적용 "1" 비트가 추가된다. 이제, EM은 IDU가 바이트-정렬된 위치에서 끝나도록, IDU의 끝에 0 내지 7의 비트를 첨부한다. 이러한 "채워넣기(stuffing)" 비트의 값은 "0"이다. 결과적으로, 이 단계의 끝에서, IDU는 정수 개수의 바이트로 나타나는데, 이 때, IDU의 마지막 바이트는 0 값의 바이트일 수 없다. 결과로서 생긴 바이트의 스트링은 IDU의 페이로드 바이트라고 불린다.
단계 2 : 3-바이트의 시작 코드 프리픽스(0x000001), 및 IDU 타입을 식별하는 적절한 시작 코드 서픽스는 EIDU의 시작부에 배치된다.
단계 3 : 후속하는 에뮬레이션 방지 프로세스를 통해 IDU의 페이로드 바이트를 처리함으로써 EIDU의 나머지가 형성된다. IDU 내의 시작 코드 프리픽스의 에뮬레이션은 바이트-채워넣기를 통해 제거된다. 에뮬레이션 방지 프로세스는 다음의 동작과 같다.
1) 연속적인 0x00 값의 2 바이트와 (LSB 값에 상관없이) 그 6개의 MSB 내에 0값을 포함하는 1바이트의 순서로 이루어진 페이로드 내의 각 스트링을, 0x00 값의 2바이트, 0x03 값의 1바이트 및 본래의 3바이트 데이터 스트링의 마지막 바이트와 동일한 1바이트의 순서로 이루어진 스트링으로 교체한다. 이 프로세스는 표 2에 도시된다.
에뮬레이션 방지 패턴 교체
교체될 패턴 교체 패턴
0x00, 0x00, 0x00 0x00, 0x00, 0x03, 0x00
0x00, 0x00, 0x01 0x00, 0x00, 0x03, 0x01
0x00, 0x00, 0x02 0x00, 0x00, 0x03, 0x02
0x00, 0x00, 0x03 0x00, 0x00, 0x03, 0x03
단계 3 : 3-바이트의 시작 코드 프리픽스(0x000001), 및 IDU 타입을 식별하는 적절한 시작 코드 서픽스는 IDU의 시작부에 첨부된다. 결과로서 생긴 페이로드는 캡슐화된 IDU이다.
인코더는 또한, EIDU의 끝 이후에, 임의의 개수의 0 값의 채워넣기 바이트를 삽입하는 것이 허용된다. 동등하게, 임의의 개수의 0 값의 채워넣기 바이트는 시작 코드 프리픽스 이전에 삽입될 수 있다. 시작 코드는 이들 0 값의 채워넣기 바이트가 존재하더라도 디코더에 의해 검출될 수 있도록 구조화된다. H.320과 같은 임의의 전송 환경에서, 인코더는 이러한 특징을 이용하여, 요구 시, 별도의 0 값의 채워넣기 바이트를 삽입할 수 있으며, 이것은 바이트 경계에의 의도된 비트스트림의 정렬의 추적을 잃었더라도, 디코더가 시작-코드의 위치를 빨리 되찾을 수 있게 할 수 있다. 또한, 이들 0 값의 채워넣기 바이트는 비트스트림을 스플라이싱(splicing), 고정적인 비트-레이트 채널을 채우는 등에도 유용하다. 시작 코드 이전, 또는 EIDU의 끝의 0 값의 채워넣기 바이트는 캡슐화 메커니즘을 통해 프로세싱되지 않고, RIDU 데이터만이 그러한 프로세싱을 요구한다.
B. 시작 코드 및 EIDU의 검출
EIDU의 검출은 시작 코드 프리픽스에 대한 검색으로 시작한다.
바이트-정렬된 위치에서부터 시작하는 시작 코드의 검출. 바이트-정렬을 상실할 수 없거나, 바이트 정렬이 설정되었던 디코더에서, 다음과 같이 시작 코드 검출이 수행된다.
1. 0x00 값의 2 이상의 바이트 다음에 0x01 값의 바이트가 후속하는 스트링이 발견될 때마다, 시작 코드 프리픽스 검출이 선언된다.
2개의 연속적인 시작-코드 프리픽스가 검출될 때, 그들 간의 페이로드 비트스트림은 새로운 EIDU로서 선언된다.
디코더 내의 바이트 정렬의 상실 후의 시작 코드의 검출. (몇몇 전송 환경에서 발생할 수 있는 바와 같이) 바이트-정렬을 상실한 디코더에서, 시작-코드 프리픽스 검출 및 바이트-정렬 검출은 다음과 같이 수행된다. 0x00 값의 3 이상의 바이트의 스트링이 발견되고, 그 다음에 임의의 0이 아닌 바이트가 후속한다는 것이 발견될 때마다, 시작 코드 프리픽스 검출이 선언되고, 0이 아닌 바이트 내의 첫번째의 0이 아닌 비트가 바이트-정렬된 시작 코드의 마지막 비트가 되도록 바이트 정렬이 복구되는 것으로 이해된다.
C. EIDU로부터의 RIDU의 추출
캡슐화된 IDU로부터의 미가공의 IDU의 추출이 이하에 설명된다.
단계 1 : 시작-코드 서픽스는 IDU의 타입을 식별하는 데 사용된다.
단계 2 : 제1 단계는 EIDU의 끝에서 0값의 채워넣기 바이트를 삭제하는 것이다. 이 단계 후에, IDU의 마지막 바이트는 0이 아닌 값을 가져야 한다.
단계 3 : 에뮬레이션 방지에 사용된 바이트가 검출되고 삭제된다. 이 프로세스는 다음과 같다.
0x00 값의 2 바이트의 스트링에 0x03의 바이트가 후속할 때마다, 0x03의 바이트는 에뮬레이션 방지 바이트인 것으로 이해되고 폐기된다.
이 프로세스는 표 3에 도시된다.
에뮬레이션 방지 데이터의 디코더 제거
교체할 패턴 교체 패턴
0x00, 0x00, 0x03, 0x00 0x00, 0x00, 0x00
0x00, 0x00, 0x03, 0x01 0x00, 0x00, 0x01
0x00, 0x00, 0x03, 0x02 0x00, 0x00, 0x02
0x00, 0x00, 0x03, 0x03 0x00, 0x00, 0x03
다음의 바이트 패턴이 비트스트림 내에 나타내는 경우, 에러 상태를 나타낸다(디코더에 의한 적절한 바이트 정렬의 상실은 에러 상태로 간주된다는 것을 유념).
a) 0x00 값의 2 바이트 다음에, 0x02의 바이트가 후속하는 스트링은 에러 상태를 나타낸다.
b) 0x00 값의 3 이상의 바이트의 스트링은 0x01의 바이트가 후속하지 않는 경우, 에러 상태이다(0의 2 이상의 바이트에 0x01 값의 바이트가 후속하고, 바이트 정렬이 상실되지 않은 경우, 후속하는 시작 코드의 검출이 선언된다는 것을 유념).
c) 0x00 값의 2 바이트 다음에, 0x03 값의 바이트가 후속하고, 그 다음에, 0x00, 0x01, 0x02, 또는 0x03 중 하나가 아닌 바이트가 후속하는 스트링.
단계 4 : IDU의 마지막 바이트에서 마지막의 0이 아닌 비트가 식별되고, 그 0이 아닌 비트, 및 후속하는 "0" 비트들 모두가 폐기된다. 결과는 미가공의 IDU이다.
D. IDU 타입에 대한 시작-코드 서픽스
다양한 IDU 타입에 대한 시작 코드 서픽스는 표 4에 표시된다.
다양한 IDU 타입에 대한 시작 코드 서픽스
시작 코드 서픽스 IDU 타입
0x00 SMPTE Reserved
0x01-0x09 SMPTE Reserved
0x0A End-of-Sequence
0X0B Slice
0x0C Field
0x0D Frame
0x0E Entry-point Header
0x0F Sequence Header
0x10-0x1A SMPTE Reserved
0x1B Slice Level User Data
0x1C Field Level User Data
0x1D Frame Level User Data
0x1E Entry-point Level User Data
0x1F Sequence Level User Data
0x20-0x7F SMPTE Reserved
0x80-0xFF Forbidden
SequenceHeader 서픽스는 시퀀스 헤더(도 4의 410)를 포함하는 IDU를 식별하기 위해 송신된다.
Entry-point Header 서픽스는 엔트리-포인트 헤더를 포함하는 IDU를 식별하기 위해 송신된다.
Picture 서픽스는 픽처(도 3의 320) 및 픽처 헤더(도 5의 510)를 포함하는 IDU를 식별하기 위해 송신된다.
Field 서픽스는 2개의 분리된 필드로서 코딩되는 픽처의 두번째 필드를 포함하는 IDU를 식별하기 위해 송신된다.
Slice 서픽스는 슬라이스(도 3의 320) 및 슬라이스 헤더(도 6의 610)를 포함하는 IDU를 식별하기 위해 송신된다.
시퀀스, 엔트리-포인트, 프레임, 필드 및 슬라이스 레벨의 사용자 데이터 서픽스는 각각, 시퀀스, 엔트리-포인트, 프레임, 필드 및 슬라이스에 관련된 임의의 사용자 정의된 데이터를 전송하는 데 사용된다.
"End-of-sequence"는 현재의 시퀀스가 끝났음을 나타내는 선택적인 서픽스이며, 이 시퀀스에 대한 더 이상의 데이터는 전송되지 않을 것이다. "end-of-sequence"의 전송은 존재할 수 있지만, 시퀀스의 끝은 다음의 시퀀스의 헤더로부터 참조될 것임을 유념한다.
4. 슬라이스 레이어 독립
도시된 슬라이스 레이어(도 3의 320)는 독립적인 디코딩가능성 및 독립적인 재구성도 성취한다. 이것은, 슬라이스가 픽처(도 3의 310)의 다른 구역에서의 전송 에러 또는 패킷 분실과 관계없이, 디코더에서 에러없이 재구성될 수 있게 한다.
A. 독립적인 디코딩가능성
슬라이스 레이어(320)의 컨텐츠는 픽처의 다른 슬라이스 또는 구역 내의 픽처 컨텐츠와 독립적으로 디코딩된다. 새로운 슬라이스가 시작할 때, 인코더(100) 및 디코더(200)는 움직임 벡터 예측자, AC 및 DC 계수에 대한 예측자, 및 양자화 파라미터에 대한 예측자를 재설정한다. 다시 말하면, 예측과 관련하여, 슬라이스 내의 매크로블럭의 첫번째 로우는 픽처 내의 매크로블럭의 첫번째 로우인 것처럼 다루어진다. 이것은 계측자 내에 어떤 인터-슬라이스 의존성도 없음을 보장한다. 또한, 슬라이스가 사용될 때, (움직임 벡터 모드, 및 예측자에 대한 플래그와 같은) 픽처 레이어에서 (예를 들어, 비트 평면 코딩을 사용하여) 달리 코딩되는 매크로블럭 레벨의 정보는 변환 계수와 같은 다른 매크로블럭 레벨의 정보와 함께 로컬로 포함된다. 이것은 각각의 슬라이스가 독립적으로(즉, 픽처의 다른 슬라이스로부터 디코딩된 데이터에 의존하지 않고서) 디코딩될 수 있게 한다.
B. 독립적인 재구성
또한, 슬라이스의 재구성 프로세스는 픽처 내의 임의의 다른 슬라이스(예를 들어, 인접한 슬라이스)의 재구성과 독립적으로 수행된다. 따라서, 픽처 내의 인접한 슬라이스들 간의 경계에 걸쳐 달리 적용될 (상술된 인루프 블럭해제 또는 오버랩 필터링과 같은) 어떤 프로세스도 허용되지 않는다. 다시 말하면, 각각의 슬라이스의 상단 및 하단 매크로블럭 로우는, 그러한 경계 프로세스에 픽처의 상단 및 하단 매크로블럭 로우가 존재하는 것처럼 다루어진다.
오버랩 평활화
오버랩된 변환은 블럭 경계에 걸쳐 정보를 교환하는 수정된 블럭 기반의 변환이다. 잘 설계된 오버랩된 변환으로, 블럭킹 현상은 최소화될 수 있다. 인트라 블럭에 대해, 예시된 비디오 코덱은 8×8 블럭 변환을 필터링 동작(오버랩 평활화라고 불림)과 연결함으로써, 오버랩된 변환을 시뮬레이트한다. 분리된 2개의 인트라 블럭이 평활화되는 8×8 블럭의 가장자리(사실상, 오버랩된 변환)는 이 인터페이스에서 구현된다. 단, 오버랩 평활화는 어떤 경우에도 슬라이스 경계에 결쳐 수행되지 않는다.
시퀀스 레이어 신택스 엘리먼트 OVERLAP(도 4의 420)이 1로 설정되는 경우, 필터링 동작은 루미넌트와 색도 둘 다의 채널에 대해, 2개의 이웃하는 인트라 블럭의 가장자리에 걸쳐 조건부로 수행될 수 있다. 이 필터링 동작(오버랩 평활화라고 불림)은 프레임을 디코딩하는 것에 후속하여, 인루프 블럭해제 이전에 수행된다. 그러나, 오버랩 평활화는 전체 프레임을 디코딩한 후에 평활화하는 것과 기능적으로 동일하기 때문에, 관련된 매크로블럭 슬라이스가 디코딩된 후에 수행될 수 있다.
도 7은 I 블럭을 갖는 P-프레임의 일부분에 대해 수행되는 오버랩 평활화의 예를 도시한다. 이것은 휘도 또는 색도 채널일 수 있다. I 블럭은 회색이고(또는 망상선(crosshatch)으로 되어 있고), P 블럭은 흰색이다. 이 도시에서, 오버랩 평활화가 적용되는 가장자리 인터페이스는 망상선 패턴으로 표시된다. 오버랩 평활화는 분리시키는 경계의 양쪽의 2개의 픽셀에 적용된다. 본 명세서에서는 프레임의 우측 하단 구역이 예로서 도시된다. 픽셀은 개별 셀들을 차지하고, 블럭은 굵은 선으로 분리되어 있다. 진한 원은 양 방향으로 필터링되는 2×2 픽셀 코너 서브블럭을 표시한다.
도 7의 하부 도면은 4개의 라벨 붙여진 픽셀을 도시하는데, a0 및 a1는 수직 블럭 가장자리의 좌측에 있고, b1 및 b0은 수직 블럭 가장자리의 우측에 있다. 상부 도면은 수평의 가장자리에 걸쳐 있는 p0, p1, q1 및 q0으로 표시된 픽셀을 도시한다. 다음의 섹션은 이들 4개의 픽셀 위치에 적용되는 필터를 설명한다.
오버랩 평활화는 언클램핑된(unclamped) 16 비트 재구성에 대해 수행된다. 이것은, 오버랩 평활화에 관련된 순방향 프로세스가 픽셀 값에 대한 허용가능한 8비트 범위를 넘어서는 범위 확장에 이를 수 있기 때문에 필요하다. 오버랩 평탄화의 결과는 8비트까지로 클램핑되고, 나머지 픽셀들은 오버랩 평활화에 상관없게 된다.
수직 가장자리(상술된 예의 픽셀 a0, a1, b1, b0)가 우선 필터링되고, 다음으로 수평의 가장자리(픽셀 p0, p1, q1, q0)가 필터링된다. 필터링의 첫번째 단계(수직 가장자리 평활화) 다음의 중간 결과는 16비트에 저장된다. 어느 가장자리에든 걸쳐 있는 4개의 픽셀들에 적용되는 코어 필터(core filter)는 이하에 제공된다.
Figure 112006004963226-PCT00001
필터링되는 원래의 픽셀은 (x0, x1, x2, x3)이다. r0 및 r1은 라운딩(rounding) 파라미터이며, 이것은 3 및 4의 값을 교대로 취하여, 통계적으로 편향되지 않은 라운딩을 보장한다. 원래의 값은 구현하기에 명백히 용이한 엔트리를 갖는 매트릭스에 의해 필터링된다. 이들 값은 라운딩 인자를 추가한 후에, 3 비트만큼 비트 시프팅되어, 필터링된 출력 (y0, y1, y2, y3)을 제공한다.
수평과 수직 가장자리 필터 둘 다에 대해, 블럭 내의 숫자매김이 1에서 시작한다는 가정 하에, 라운딩 값은 홀수-인덱싱된 컬럼과 로우 대해 각각 r0=4, r1=3이다. 짝수-인덱싱된 컬럼/로우에 대해서는, r0=3 및 r1=4이다. 필터링은 제자리(in-place) 16비트 동작으로서 정의되며, 따라서, 원래의 픽셀은 평활화 후에 오버라이트된다. 수직의 가장자리 필터링에 있어서, 픽셀 (a0, a1, b1, b0)은 (x0, x1, x2, x3)에 대응하고, (x0, x1, x2, x3)은 (y0, y1, y2, y3)으로 필터링된다. 마찬가지로, 수평의 가장자리 필터링에 있어서, 각각 (p0, p1, q1, q0)과 대응을 이룬다.
도 7에서 진한 원으로 표시된 2×2 코너 내의 픽셀은 양방향으로 필터링된다. 필터링의 순서는 그들의 최종 값을 결정하기 때문에, 비트 정확도를 위해 순서(수직 가장자리 필터링 다음에는 수평 가장자리 필터링)를 유지하는 것이 중요하다. 개념 상, 클램핑은 양방향 필터링 스테이지에 후속하여, 필터링되는 모든 픽셀들에 대해 수행되는 것이다. 그러나, 필터링에 클램핑을 결합하는 몇몇 계산상의 이점이 있을 수 있다.
인루프 블럭해제 필터링
루프 필터링은 블럭 경계에서 비디오 인코더/디코더에 의해 불연속을 평활화하도록 수행되는 프로세스이다. 시퀀스 레이어 신택스 엘리먼트 LOOPFILTER(도 4의 430)가 1로 설정되면, 필터링 동작은 각각의 재구성된 프레임에 대해 수행된다. 이 필터링 동작은 재구성된 프레임을 움직임 예측 코딩에 대한 기준으로서 이용하기 전에 수행된다.
루프 필터링의 목적은 블럭 경계에서의 불연속을 평활화하는 것이기 때문에, 필터링 프로세스는 이웃하는 블럭들에 접해있는 픽셀들에 대해 동작한다. P 픽처에 대해, 블럭 경계는 8×8 역 변환이 사용되는지, 8×4 역 변환이 사용되는지, 4×8 역 변환이 사용되는지에 따라 매 4번째, 8번째, 12번째 등의 픽셀 로우 또는 컬럼에서 발생할 수 있다. I 픽처에 대해, 필터링은 8번째, 16번째, 24번째 등의 픽셀 로우 및 컬럼에서 발생한다.
I 픽처에 대해, 모든 8×8 블럭 경계에서 블럭해제 필터링이 수행되지만, 예외적으로, 슬라이스 경계(픽처 가장자리와 유사하게 다루어짐)에서는 블럭해제 필터링이 수행되지 않는다. 도 8 및 도 9는 I-픽처 프레임의 수평 및 수직 접경 구역에 따라 필터링되는 픽셀들을 도시한다. 도면은 성분(루마, Cr 또는 Cb) 평면의 상단 좌측 코너를 도시한다. 십자가는 픽셀을 표시하고, 원으로 둘러싸인 십자가는 필터링되는 픽셀을 표시한다.
도면이 나타내는 바와 같이, 픽처 또는 슬라이스의 상단 수평 라인 및 첫번째 수직 라인은 필터링되지 않는다. 도시되지는 않았지만, 픽처 또는 슬라이스의 하단 수평 라인 및 마지막 수직 라인도 필터링되지 않는다. 더 공식적인 표현으로, 수평 라인 (7,8), (15,16), ..., ((N-1)*8-1, (N-1)*8)이 필터링되고, 수직 라인 (7,8), (15,16), ..., ((M-1)*8-1, (M-1)*8)이 필터링되며, 여기서, N은 평면 내의 수평의 8×8 블럭의 개수이고(N*8은 수평의 프레임 크기), M은 프레임 내의 수직의 8×8 블럭의 개수이다(M*8은 수직의 프레임 크기).
픽셀이 필터링되는 순서는 중요하다. 프레임 내의 모든 수평의 경계 라인이 먼저 필터링되고, 다음으로, 수직의 경계 라인이 필터링된다.
P 픽처에 대해, 블럭은 인트라 또는 인터-코딩될 수 있다. 인트라-코딩된 블럭은 항상, 8×8 변환을 이용하여 샘플을 변환하고, 8×8 블럭 경계는 항상 필터링된다. 인터-코딩된 블럭은 8×8, 8×4, 4×8 또는 4×4 역 변환을 이용하여 레지듀얼 에러를 나타내는 샘플을 형성할 수 있다. 이웃하는 블럭의 상태에 따라, 현재의 블럭과 이웃하는 블럭 간의 경계는 필터링될 수도 있고 필터링되지 않을 수도 있다. 어느 경우든, 픽처 또는 슬라이스의 경계 가장자리는 필터링되지 않는다.
필터 동작
이 섹션은 상술된 바와 같이, I 및 P 프레임 내의 블럭 경계 픽셀에 대해 수행되는 필터링 동작을 설명한다.
로우 또는 컬럼 내에서 필터링될 연속적인 픽셀의 최소 개수는 4이고, 로우 또는 컬럼 내의 픽셀의 총 개수는 항상 4의 배수일 것이므로, 필터링 동작은 4개의 픽셀의 세그먼트에 대해 수행된다.
예를 들어, 2개의 블럭들 간의 수직 경계를 형성하는 8개의 픽셀 쌍이 필터링되면, 그 8개의 픽셀은 도 12에 도시된 바와 같이, 2개의 4-픽셀 세그먼트(1100)로 나뉘어 진다. 각각의 4-픽셀 세그먼트에서, X로 표시된 세번째 픽셀 쌍이 우선 필터링된다. 이 필터 동작의 결과는 이하에 설명되는 바와 같이, 세그먼트 내의 다른 3개의 픽셀도 필터링되는지를 결정한다.
도 10은 세번째 픽셀 쌍에 대해 수행된 필터링 동작에 사용되는 픽셀(1200)을 도시한다. 픽셀 P4 및 P5는 필터 동작에서 변경될 수 있는 픽셀 쌍이다.
도 13의 의사코드(1300)는 각각의 세그먼트 내의 세번째 픽셀 쌍에 대해 수행된 필터링 동작을 도시한다. filter_other_3_pixels 값은 세그먼트 내의 남아있는 3개의 픽셀 쌍도 필터링되는지를 나타낸다. filter_other_3_pixels가 참이면, 다른 3개의 픽셀 쌍은 필터링된다. filter_other_3_pixels가 거짓이면, 그것들은 필터링되지 않고, 필터링 동작은 다음의 4-픽셀 세그먼트로 진행한다. 의사코드(도 14의 1400)는 filter_other_3_pixels가 참인 경우 첫번째, 두번째 및 네번째 픽셀 쌍에 대해 수행되는 필터링 동작을 도시한다.
이 섹션은 예시의 목적 상, 수직 경계를 사용하였다. 수평의 경계 픽셀을 필터링하는 데 동일한 동작이 사용된다.
5. 컴퓨팅 환경
슬라이스 레이어 코딩의 상술된 구현은 다른 예들 중에 컴퓨터; 이미지 및 비디오 레코딩, 전송 및 수신 장치; 휴대용 비디오 플레이어; 비디오 회의; 웹 비디오 스트리밍 어플리케이션 등을 포함하는 이미지 및 비디오 시그널 프로세싱이 수행되는 다양한 장치들 중 임의의 장치에 대해 수행될 수 있다. 이미지 및 비디오 코딩 기술은 하드웨어 회로(예를 들어, ASIC, FPGA 등의 회로) 뿐만 아니라, 도 10에 도시된 것과 같은 컴퓨터 또는 다른 컴퓨팅 환경 내에서(중앙 프로세싱 유닛(CPU) 상에서 실행되는지, 전용 그래픽 프로세서 상에서 실행되는지, 비디오 카드 상에서 실행되는지 등에 상관없이) 실행되는 이미지 및 비디오 프로세싱 소프트웨어로 구현될 수 있다.
도 10은 설명된 슬라이스 레이어 코딩이 구현될 수 있는 적합한 컴퓨팅 환경(1000)의 일반화된 예를 도시한다. 본 발명은 다양한 범용 또는 특수 목적 컴퓨팅 환경에서 구현될 수 있기 때문에, 컴퓨팅 환경(1000)은 본 발명의 용도 또는 기능의 범위에 대해 어떤 제한을 제시하는 것으로 의도되지 않는다.
도 10을 참조하면, 컴퓨팅 환경(1000)은 적어도 하나의 프로세싱 유닛(1010) 및 메모리(1020)를 포함한다. 도 10에서, 이 가장 기본적인 구성(1030)은 점선 내에 포함된다. 프로세싱 유닛(1010)은 컴퓨터-실행가능 명령어들을 실행하고, 실제 또는 가상 프로세서일 수 있다. 멀티-프로세싱 시스템에서, 프로세싱 능력을 증가시키기 위해, 복수의 프로세싱 유닛들이 컴퓨터-실행가능 명령어들을 실행한다. 메모리(1020)는 휘발성 메모리(예를 들어, 레지스터, 캐시, RAM), 비휘발성 메모리(예를 들어, ROM, EEPROM, 플래시 메모리 등) 또는 이 둘의 임의의 결합일 수 있다. 메모리(1020)는 설명된 슬라이스 레이어 코딩을 구현하는 소프트웨어(1080)를 저장한다.
컴퓨팅 환경은 추가적 특징을 가질 수 있다. 예를 들어, 컴퓨팅 환경(1000)은 저장장치(1040), 하나 이상의 입력 장치(1050), 하나 이상의 출력 장치(1060) 및 하나 이상의 통신 접속부(1070)를 포함한다. 버스, 제어기 또는 네트워크와 같은 상호접속 메커니즘(도시되지 않음)은 컴퓨팅 환경(1000)의 컴포넌트들을 상호접속시킨다. 일반적으로, 오퍼레이팅 시스템 소프트웨어(도시되지 않음)는 컴퓨팅 환경(1000) 내에서 실행되는 다른 소프트웨어에 오퍼레이팅 환경을 제공하고, 컴퓨팅 환경(1000)의 컴포넌트들의 활동을 조정한다.
저장장치(1040)는 분리형 또는 비분리형일 수 있고, 자기 디스크, 자기 테이프 또는 카세트, CD-ROM, CD-RW, DVD, 또는 정보를 저장하는 데 사용될 수 있고 컴퓨팅 환경(1000) 내에서 액세스될 수 있는 임의의 다른 매체를 포함한다. 저장장치(1040)는 슬라이스 레이어 코딩을 수행하는 오디오 인코더를 구현하는 소프트웨어(1080)에 대한 명령어들을 저장한다.
입력 장치(들)(1050)는 키보드, 마우스, 펜 또는 트랙볼, 음성 입력 장치, 스캐닝 장치, 또는 컴퓨팅 환경(1000)에 입력을 제공하는 다른 장치와 같은 터치 입력 장치일 수 있다. 오디오에 대해, 입력 장치(들)(1050)는 사운드 카드, 또는 아날로그 또는 디지털 형태로 오디오 입력을 수용하는 유사한 장치, 또는 컴퓨팅 환경에 오디오 샘플을 제공하는 CD-ROM 판독기일 수 있다. 출력 장치(들)(1060)는 디스플레이, 프린터, 스피커, CD-라이터, 또는 컴퓨팅 환경(1000)으로부터의 출력을 제공하는 다른 장치일 수 있다.
통신 접속부(들)(1070)는 통신 매체를 통한 다른 컴퓨팅 엔티티로의 통신을 가능하게 한다. 통신 매체는 컴퓨터-실행가능한 명령어, 압축된 오디오 또는 비디오 정보, 또는 다른 데이터를 변조된 데이터 신호로 변환한다. 변조된 데이터 신호는 신호 내에 정보를 인코딩하는 방식으로 설정 또는 변경된 특징들 중 하나 이상을 갖는 신호이다. 예를 들어, 통신 매체는 전자, 광, RF, 적외선, 음향 또는 다른 반송파로 구현된 유선 또는 무선 기술을 포함하지만, 이것으로 제한되지 않는다.
본 명세서의 슬라이스 레이어 코딩/디코딩 기술은 컴퓨터-판독가능 매체의 일반 문맥으로 설명될 수 있다. 컴퓨터-판독가능 매체는 컴퓨팅 환경 내에서 액세스될 수 있는 임의의 이용가능한 매체이다. 예를 들어, 컴퓨팅 환경(1000)에서, 컴퓨터-판독가능 매체는 메모리(1020), 저장장치(1040), 통신 매체 및 상술된 것들의 임의의 결합을 포함하지만, 이것으로 제한되지 않는다.
본 명세서의 슬라이스 레이어 코딩은 대상이 되는 실제 또는 가상 프로세서 상의 컴퓨팅 환경에서 실행되는 프로그램 모듈 내에 포함된 것과 같은 컴퓨터 실행가능 명령어의 일반적 문맥으로 설명될 수 있다. 일반적으로, 프로그램 모듈로는 특정 태스크를 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 라이브러리, 오브젝트, 클래스, 컴포넌트, 데이터 구조 등이 있다. 프로그램 모듈의 기능은 여러 실시예에서 요구되는 대로, 프로그램 모듈들 사이에서 결합 또는 분리될 수 있다. 프로그램 모듈에 대한 컴퓨터-실행가능 명령어들은 로컬 또는 분산 컴퓨팅 환경 내에서 실행될 수 있다.
표현의 목적 상, 상세한 설명은 "결정한다", "생성한다", "조정한다" 및 "적용한다"와 같은 용어를 사용하여, 컴퓨팅 환경에서의 컴퓨터 동작을 설명한다. 이러한 용어는 컴퓨터에 의해 수행되는 동작에 대한 고레벨의 추상이며, 인간에 의해 수행되는 동작과 혼동해서는 안된다. 이러한 용어에 대응하는 실제 컴퓨터 동작은 구현에 따라 다르다.
본 발명의 원리가 적용될 수 있는 다수의 가능한 실시예의 관점에서, 다음의 청구범위 및 그 동등물의 범위 및 취지 내에 포함될 수 있는 모든 그러한 실시예를 본 발명으로서 주장한다.

Claims (24)

  1. 비디오 및 이미지를 디코딩하는 방법으로서,
    적어도 하나의 픽처 레이어, 선택적인 독립적으로 디코딩가능한 부분적 픽처 유닛, 및 매크로블럭 레이어를 포함하는 신택스 계층(syntax hierarchy)을 갖는 코딩된 비트스트림으로부터 픽처를 디코딩하는 단계 - 상기 선택적인 독립적으로 디코딩가능한 부분적 픽처 유닛의 코딩 신택스는 상기 유닛의 주소, 및 상기 유닛 내에서 픽처 헤더 정보가 반복되는지에 대한 표시를 시그널링함 - ;
    상기 독립적으로 디코딩가능한 부분적 픽처 유닛이 포함되는 경우에,
    상기 유닛 내에서 픽처 헤더 정보가 반복되는지에 대한 시그널링된 표시를 디코딩하는 단계;
    픽처 헤더 정보가 반복되는 것으로 표시되어 있으면, 상기 픽처 헤더 정보를 디코딩하는 단계;
    상기 시그널링된 주소를 디코딩하는 단계; 및
    상기 시그널링된 주소에 의해 표시된 상기 픽처 내의 위치에서 상기 부분적 픽처 유닛을 재구성하는 단계
    를 포함하는 방법.
  2. 제1항에 있어서,
    상기 부분적 픽처 유닛은 상기 픽처의 매크로블럭의 적어도 하나의 인접하는 로우(row)를 포함하는 슬라이스인 방법.
  3. 제2항에 있어서,
    상기 코딩 신택스는 상기 주소를 상기 슬라이스의 매크로블럭 로우 인덱스로서 시그널링하는 방법.
  4. 제1항에 있어서,
    상기 코딩 신택스는 상기 유닛 내에서 픽처 헤더 정보가 반복되는지에 대한 표시를 단일 비트 플래그로서 시그널링하는 방법.
  5. 제1항에 있어서,
    상기 부분적 픽처 유닛의 경계 가장자리(boundary edge)를 제외하고서, 상기 부분적 픽처 유닛 내의 적어도 몇몇 블럭 가장자리(block edge)에 대해 오버랩 평활화(overlap smoothing)를 수행하는 단계를 더 포함하는 방법.
  6. 제1항에 있어서,
    상기 부분적 픽처 유닛의 경계 가장자리를 제외하고서, 상기 부분적 픽처 유닛 내의 적어도 몇몇 블럭 가장자리의 블럭해제 필터링(deblocking filtering)을 수행하는 단계를 더 포함하는 방법.
  7. 제1항에 있어서,
    상기 부분적 픽처 유닛의 디코딩을 시작할 때 예측 코딩 파라미터(prediction coding parameter)를 재설정하는 단계를 더 포함하는 방법.
  8. 이미지 또는 비디오를 코딩/디코딩하는 방법으로서,
    적어도 하나의 독립적으로 디코딩가능한 부분적 픽처 유닛 내의 픽처를 코딩/디코딩하는 단계; 및
    상기 적어도 하나의 독립적으로 디코딩가능한 부분적 픽처 유닛 각각의 픽처 컨텐츠 정보를 코딩/디코딩하기 시작할 때, 예측 코딩 파라미터를 재설정하는 단계
    를 포함하는 방법.
  9. 제8항에 있어서,
    상기 적어도 하나의 독립적으로 디코딩가능한 부분적 픽처 유닛 각각의 시작을, 고유한 시작 코드 패턴을 이용하여 인코더로부터 디코더로 시그널링하는 단계를 더 포함하는 방법.
  10. 제8항에 있어서,
    상기 적어도 하나의 독립적으로 디코딩가능한 부분적 픽처 유닛 각각의 위치를, 상기 픽처 내의 각각의 부분적 픽처 유닛의 시작 매크로블럭 위치에 관한 주소 파라미터를 이용하여 인코더로부터 디코더로 시그널링하는 단계를 더 포함하는 방 법.
  11. 제10항에 있어서,
    상기 각각의 부분적 픽처 유닛은 상기 픽처 내의 매크로블럭들 중 적어도 하나의 완전한 인접한 로우를 포함하는 슬라이스이고, 상기 주소 파라미터는 상기 슬라이스의 시작 매크로블럭 로우 인덱스인 방법.
  12. 제8항에 있어서,
    상기 적어도 하나의 독립적으로 디코딩가능한 부분적 픽처 유닛 각각에서 픽처 헤더 정보가 반복되는지에 대한 표시를 인코더로부터 디코더로 시그널링하는 단계를 더 포함하는 방법.
  13. 제12항에 있어서,
    상기 표시는 플래그 값인 방법.
  14. 제8항에 있어서,
    각각의 부분적 픽처 유닛의 픽처 컨텐츠를 상기 각각의 부분적 픽처 외부의 픽처 컨텐츠에 독립적으로 재구성하는 단계를 더 구성하는 방법.
  15. 제14항에 있어서,
    상기 독립적으로 재구성하는 단계는, 상기 각각의 부분적 픽처 유닛의 경계 가장자리를 제외하고서, 상기 각각의 부분적 픽처 유닛의 상기 픽처 컨텐츠 내의 블럭 가장자리의 블럭해제를 수행하는 단계를 포함하는 방법.
  16. 제14항에 있어서,
    상기 독립적으로 재구성하는 단계는, 상기 각각의 부분적 픽처 유닛의 경계 가장자리를 제외하고서, 상기 각각의 부분적 픽처 유닛의 상기 픽처 컨텐츠 내의 블럭 가장자리의 오버랩 필터링을 수행하는 단계를 포함하는 방법.
  17. 독립적으로 디코딩가능한 부분적 픽처 유닛을 이용하여 코딩된 이미지 또는 비디오 비트스트림을 코딩/디코딩하는 방법을 수행하기 위해, 프로세싱 유닛에 의해 액세스가능한 소프트웨어 모듈을 갖는 적어도 하나의 컴퓨터-판독가능한 프로그램을 포함한 매체로서,
    상기 방법은,
    상기 비트스트림 내에서 코딩된 픽처에 대해 부분적 픽처 유닛 코딩이 수행되어야 하는지를 판정하는 단계; 및
    수행되어야 하는 것으로 판정되는 경우, 각각의 부분적 픽처 유닛 외부의 픽처 컨텐츠에 독립적으로, 상기 각각의 부분적 픽처 유닛 내의 픽처 컨텐츠의 코딩/디코딩 및 재구성을 수행하는 단계
    를 포함하는 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
  18. 제17항에 있어서,
    상기 방법은,
    상기 픽처 내의 각각의 부분적 픽처 유닛의 위치를 시그널링하는 비트스트림 내의 신택스 엘리먼트를 번역하는 단계; 및
    상기 위치에서 상기 각각의 부분족 픽처 컨텐츠의 픽처 컨텐츠를 재구성하는 단계
    를 더 포함하는 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
  19. 제18항에 있어서,
    상기 신택스 엘리먼트는 상기 픽처 내의 상기 각각의 부분적 픽처 유닛의 시작 매크로블럭 위치에 관한 주소 파라미터를 포함하는 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
  20. 제19항에 있어서,
    상기 각각의 부분적 픽처 유닛은 상기 픽처 내의 매크로블럭들 중 적어도 하나의 완전한 인접한 로우를 포함하는 슬라이스이고, 상기 주소 파라미터는 상기 슬라이스의 시작 매크로블럭 로우 인덱스인 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
  21. 제17항에 있어서,
    상기 방법은,
    각각의 부분적 픽처 유닛 내에서 픽처 헤더 정보가 반복되는지에 대한 표시를 시그널링하는 비트스트림 내의 신택스 엘리먼트를 번역하는 단계를 더 포함하는 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
  22. 제21항에 있어서,
    상기 표시는 플래그 값인 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
  23. 제17항에 있어서,
    상기 방법은,
    각각의 부분적 픽처 유닛의 경계 가장자리를 제외하고서, 상기 개별적인 부분적 픽처 유닛의 픽처 컨텐츠 내의 블럭 가장자리의 블럭해제를 수행하는 단계를 포함하는 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
  24. 제17항에 있어서,
    상기 방법은,
    상기 개별적인 부분적 픽처 유닛의 경계 가장자리를 제외하고서, 상기 개별적인 부분적 픽처 유닛의 픽처 컨텐츠 내의 블럭 가장자리의 오버랩 필터링을 수행 하는 단계를 포함하는 적어도 하나의 컴퓨터-판독가능 프로그램을 포함한 매체.
KR1020067001543A 2003-09-07 2004-09-03 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체 KR101103867B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US50108103P 2003-09-07 2003-09-07
US60/501,081 2003-09-07
US10/933,960 2004-09-03
PCT/US2004/029033 WO2005027495A2 (en) 2003-09-07 2004-09-03 Slice layer in video codec
US10/933,960 US7162093B2 (en) 2003-09-07 2004-09-03 Slice-layer in video codec

Publications (2)

Publication Number Publication Date
KR20060131718A true KR20060131718A (ko) 2006-12-20
KR101103867B1 KR101103867B1 (ko) 2012-01-12

Family

ID=34228806

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067001543A KR101103867B1 (ko) 2003-09-07 2004-09-03 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체

Country Status (7)

Country Link
US (1) US7162093B2 (ko)
EP (1) EP1656793B1 (ko)
JP (2) JP5280003B2 (ko)
KR (1) KR101103867B1 (ko)
ES (1) ES2767933T3 (ko)
MX (1) MXPA06002495A (ko)
WO (1) WO2005027495A2 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100896289B1 (ko) * 2006-11-17 2009-05-07 엘지전자 주식회사 비디오 신호의 디코딩/인코딩 방법 및 장치
US8054885B2 (en) 2006-11-09 2011-11-08 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal
US8401085B2 (en) 2006-09-07 2013-03-19 Lg Electronics Inc. Method and apparatus for decoding/encoding of a video signal
KR101511930B1 (ko) * 2012-06-16 2015-04-13 텐디론 코포레이션 오디오 데이터 전송 시스템, 오디오 데이터 전송장치 및 전자서명도구

Families Citing this family (70)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
JP2005033336A (ja) * 2003-07-08 2005-02-03 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム
US10554985B2 (en) 2003-07-18 2020-02-04 Microsoft Technology Licensing, Llc DC coefficient signaling at small quantization step sizes
US7801383B2 (en) * 2004-05-15 2010-09-21 Microsoft Corporation Embedded scalar quantizers with arbitrary dead-zone ratios
US9208824B2 (en) 2004-05-18 2015-12-08 Broadcom Corporation Index table generation in PVR applications for AVC video streams
US7590059B2 (en) * 2004-05-21 2009-09-15 Broadcom Corp. Multistandard video decoder
US20060013315A1 (en) * 2004-07-19 2006-01-19 Samsung Electronics Co., Ltd. Filtering method, apparatus, and medium used in audio-video codec
KR100587698B1 (ko) * 2004-10-22 2006-06-08 주식회사 휴맥스 선택적 예측 부호화/복호화 방법 및 장치
KR100652689B1 (ko) * 2004-10-26 2006-12-07 엘지전자 주식회사 휴대단말기에서의 컨텐츠의 사이즈 분석 방법
US7792385B2 (en) * 2005-01-25 2010-09-07 Globalfoundries Inc. Scratch pad for storing intermediate loop filter data
US8576924B2 (en) * 2005-01-25 2013-11-05 Advanced Micro Devices, Inc. Piecewise processing of overlap smoothing and in-loop deblocking
US7953161B2 (en) * 2005-04-27 2011-05-31 Broadcom Corporation System and method for overlap transforming and deblocking
KR101170799B1 (ko) 2005-05-21 2012-08-02 삼성전자주식회사 영상 압축 방법 및 그 장치와 영상 복원 방법 및 그 장치
US8422546B2 (en) 2005-05-25 2013-04-16 Microsoft Corporation Adaptive video encoding using a perceptual model
US7965773B1 (en) 2005-06-30 2011-06-21 Advanced Micro Devices, Inc. Macroblock cache
FR2894740A1 (fr) * 2005-12-12 2007-06-15 Thomson Licensing Sa Dispositif de codage, procede de codage, systeme de decodage procede de decodage de donnees video
US20070147496A1 (en) * 2005-12-23 2007-06-28 Bhaskar Sherigar Hardware implementation of programmable controls for inverse quantizing with a plurality of standards
US7636497B1 (en) 2005-12-27 2009-12-22 Advanced Micro Devices, Inc. Video rotation in a media acceleration engine
JP5266202B2 (ja) * 2006-03-28 2013-08-21 サムスン エレクトロニクス カンパニー リミテッド 画像符号化/復号化方法及び装置
US7974340B2 (en) * 2006-04-07 2011-07-05 Microsoft Corporation Adaptive B-picture quantization control
US8503536B2 (en) * 2006-04-07 2013-08-06 Microsoft Corporation Quantization adjustments for DC shift artifacts
US8130828B2 (en) * 2006-04-07 2012-03-06 Microsoft Corporation Adjusting quantization to preserve non-zero AC coefficients
US8059721B2 (en) * 2006-04-07 2011-11-15 Microsoft Corporation Estimating sample-domain distortion in the transform domain with rounding compensation
US7995649B2 (en) 2006-04-07 2011-08-09 Microsoft Corporation Quantization adjustment based on texture level
JP5389205B2 (ja) * 2006-04-27 2014-01-15 キヤノン株式会社 画像符号化装置、画像符号化方法、プログラム及び記憶媒体
US8711925B2 (en) * 2006-05-05 2014-04-29 Microsoft Corporation Flexible quantization
JP4229149B2 (ja) * 2006-07-13 2009-02-25 ソニー株式会社 ビデオ信号処理装置およびビデオ信号処理方法、ビデオ信号符号化装置およびビデオ信号符号化方法、並びにプログラム
US8238424B2 (en) * 2007-02-09 2012-08-07 Microsoft Corporation Complexity-based adaptive preprocessing for multiple-pass video compression
JP4847890B2 (ja) * 2007-02-16 2011-12-28 パナソニック株式会社 符号化方式変換装置
US8498335B2 (en) * 2007-03-26 2013-07-30 Microsoft Corporation Adaptive deadzone size adjustment in quantization
KR101086434B1 (ko) * 2007-03-28 2011-11-25 삼성전자주식회사 비디오 데이터 디스플레이 방법 및 장치
US8243797B2 (en) 2007-03-30 2012-08-14 Microsoft Corporation Regions of interest for quality adjustments
US8442337B2 (en) * 2007-04-18 2013-05-14 Microsoft Corporation Encoding adjustments for animation content
US8331438B2 (en) * 2007-06-05 2012-12-11 Microsoft Corporation Adaptive selection of picture-level quantization parameters for predicted video pictures
CN101389021B (zh) * 2007-09-14 2010-12-22 华为技术有限公司 视频编解码方法及装置
BRPI0818444A2 (pt) * 2007-10-12 2016-10-11 Qualcomm Inc codificação adaptativa de informação de cabeçalho de bloco de vídeo
US8938009B2 (en) * 2007-10-12 2015-01-20 Qualcomm Incorporated Layered encoded bitstream structure
US8542748B2 (en) * 2008-03-28 2013-09-24 Sharp Laboratories Of America, Inc. Methods and systems for parallel video encoding and decoding
US8189933B2 (en) * 2008-03-31 2012-05-29 Microsoft Corporation Classifying and controlling encoding quality for textured, dark smooth and smooth video content
US8897359B2 (en) 2008-06-03 2014-11-25 Microsoft Corporation Adaptive quantization for enhancement layer video coding
US8718135B2 (en) * 2008-09-19 2014-05-06 The Hong Kong University Of Science And Technology Method and system for transcoding based robust streaming of compressed video
KR20110009058A (ko) * 2009-07-20 2011-01-27 삼성전자주식회사 계층 구조의 영상 부호화/복호화에서 색 채널을 부호화/복호화하는 방법 및 장치
KR101474756B1 (ko) 2009-08-13 2014-12-19 삼성전자주식회사 큰 크기의 변환 단위를 이용한 영상 부호화, 복호화 방법 및 장치
US20110107380A1 (en) * 2009-10-29 2011-05-05 Cleversafe, Inc. Media distribution to a plurality of devices utilizing buffered dispersed storage
US8352831B2 (en) * 2009-12-29 2013-01-08 Cleversafe, Inc. Digital content distribution utilizing dispersed storage
TWI442778B (zh) 2010-02-05 2014-06-21 Acer Inc 視訊解碼裝置
JP5020391B2 (ja) * 2010-02-22 2012-09-05 パナソニック株式会社 復号化装置及び復号化方法
WO2012014471A1 (ja) * 2010-07-30 2012-02-02 パナソニック株式会社 画像復号化装置、画像復号化方法、画像符号化装置および画像符号化方法
US9525884B2 (en) 2010-11-02 2016-12-20 Hfi Innovation Inc. Method and apparatus of slice boundary filtering for high efficiency video coding
US9060174B2 (en) 2010-12-28 2015-06-16 Fish Dive, Inc. Method and system for selectively breaking prediction in video coding
US9866861B2 (en) 2011-02-09 2018-01-09 Lg Electronics Inc. Method for encoding and decoding image and device using same
US8848804B2 (en) * 2011-03-04 2014-09-30 Vixs Systems, Inc Video decoder with slice dependency decoding and methods for use therewith
GB2488829A (en) * 2011-03-10 2012-09-12 Canon Kk Encoding and decoding image data
GB2488830B (en) * 2011-03-10 2015-07-29 Canon Kk Method and device for encoding image data and method and device for decoding image data
WO2012144876A2 (ko) 2011-04-21 2012-10-26 한양대학교 산학협력단 인루프 필터링을 적용한 예측 방법을 이용한 영상 부호화/복호화 방법 및 장치
GB2493209B (en) * 2011-07-29 2016-02-17 Canon Kk Method and device for parallel decoding of scalable bitstream elements
CA2841246C (en) 2011-09-09 2019-09-24 Panasonic Corporation Low complex deblocking filter decisions
US9237352B2 (en) 2011-10-05 2016-01-12 Texas Instruments Incorporated Methods and systems for encoding pictures associated with video data
KR101857109B1 (ko) 2011-10-17 2018-05-11 주식회사 케이티 영상 부호화/복호화 방법 및 그 장치
WO2013060250A1 (en) * 2011-10-24 2013-05-02 Mediatek Inc. Method and apparatus for non-cross-tile loop filtering
EP3614670B1 (en) * 2011-12-15 2021-02-03 Tagivan Ii Llc Signaling of luminance-chrominance coded block flags (cbf) in video coding
US9538200B2 (en) 2012-01-19 2017-01-03 Qualcomm Incorporated Signaling of deblocking filter parameters in video coding
WO2014007515A1 (ko) 2012-07-02 2014-01-09 엘지전자 주식회사 영상 정보 코딩 방법 및 이를 이용하는 장치
US20140153635A1 (en) * 2012-12-05 2014-06-05 Nvidia Corporation Method, computer program product, and system for multi-threaded video encoding
US9076206B2 (en) * 2013-03-12 2015-07-07 Uurmi Systems Private Limited Methods and systems for correcting distortions in multimedia content
US9813730B2 (en) * 2013-12-06 2017-11-07 Mediatek Inc. Method and apparatus for fine-grained motion boundary processing
CN111416976B (zh) * 2019-01-08 2023-12-08 浙江大学 视频解码方法、视频编码方法、装置、设备及存储介质
CN115174921B (zh) 2019-05-03 2023-04-04 华为技术有限公司 由视频解码器实现的解码方法及其相关装置和存储介质
BR112020025895A2 (pt) 2019-06-24 2021-12-28 Ericsson Telefon Ab L M Métodos, programa de computador, portadora, decodificador, e, codificador.
US20220353536A1 (en) * 2019-08-22 2022-11-03 Sharp Kabushiki Kaisha Systems and methods for signaling picture information in video coding

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2674059B2 (ja) * 1988-02-09 1997-11-05 キヤノン株式会社 カラー画像データ伝送方法
JP2794899B2 (ja) 1990-05-08 1998-09-10 松下電器産業株式会社 符号化装置
US5168356A (en) * 1991-02-27 1992-12-01 General Electric Company Apparatus for segmenting encoded video signal for transmission
US6226327B1 (en) * 1992-06-29 2001-05-01 Sony Corporation Video coding method and apparatus which select between frame-based and field-based predictive modes
JP2856300B2 (ja) * 1993-02-19 1999-02-10 富士ゼロックス株式会社 画像符号化装置および復号装置
KR0170937B1 (ko) * 1994-12-14 1999-03-20 배순훈 영상 데이타 부호화 장치
US5825929A (en) * 1995-10-05 1998-10-20 Microsoft Corporation Transformation block optimization method
JPH1174868A (ja) * 1996-09-02 1999-03-16 Toshiba Corp 情報伝送方法およびその方法が適用される情報伝送システムにおける符号化装置/復号化装置、並びに符号化・多重化装置/復号化・逆多重化装置
US5974184A (en) * 1997-03-07 1999-10-26 General Instrument Corporation Intra-macroblock DC and AC coefficient prediction for interlaced digital video
JP2000209580A (ja) * 1999-01-13 2000-07-28 Canon Inc 画像処理装置およびその方法
JP2001016594A (ja) * 1999-06-29 2001-01-19 Hitachi Ltd 動画像の動き補償方法
GB2352350B (en) * 1999-07-19 2003-11-05 Nokia Mobile Phones Ltd Video coding
JP2003209387A (ja) * 2001-11-06 2003-07-25 Hitachi Metals Ltd 電磁波吸収体
WO2003092297A1 (en) * 2002-04-23 2003-11-06 Nokia Corporation Method and device for indicating quantizer parameters in a video coding system
JP3807342B2 (ja) * 2002-04-25 2006-08-09 三菱電機株式会社 デジタル信号符号化装置、デジタル信号復号装置、デジタル信号算術符号化方法、およびデジタル信号算術復号方法
US7724818B2 (en) * 2003-04-30 2010-05-25 Nokia Corporation Method for coding sequences of pictures
JP2005033336A (ja) * 2003-07-08 2005-02-03 Ntt Docomo Inc 動画像符号化装置、動画像符号化方法及び動画像符号化プログラム

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8401085B2 (en) 2006-09-07 2013-03-19 Lg Electronics Inc. Method and apparatus for decoding/encoding of a video signal
US8428144B2 (en) 2006-09-07 2013-04-23 Lg Electronics Inc. Method and apparatus for decoding/encoding of a video signal
US8054885B2 (en) 2006-11-09 2011-11-08 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal
KR100896289B1 (ko) * 2006-11-17 2009-05-07 엘지전자 주식회사 비디오 신호의 디코딩/인코딩 방법 및 장치
US7742532B2 (en) 2006-11-17 2010-06-22 Lg Electronics Inc. Method and apparatus for applying de-blocking filter to a video signal
US7742524B2 (en) 2006-11-17 2010-06-22 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal using inter-layer prediction
US8184698B2 (en) 2006-11-17 2012-05-22 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal using inter-layer prediction
US8229274B2 (en) 2006-11-17 2012-07-24 Lg Electronics Inc. Method and apparatus for decoding/encoding a video signal
KR101511930B1 (ko) * 2012-06-16 2015-04-13 텐디론 코포레이션 오디오 데이터 전송 시스템, 오디오 데이터 전송장치 및 전자서명도구

Also Published As

Publication number Publication date
JP5280003B2 (ja) 2013-09-04
MXPA06002495A (es) 2006-06-20
US7162093B2 (en) 2007-01-09
KR101103867B1 (ko) 2012-01-12
WO2005027495A2 (en) 2005-03-24
JP2007504773A (ja) 2007-03-01
EP1656793B1 (en) 2019-11-27
JP2012135007A (ja) 2012-07-12
EP1656793A4 (en) 2011-09-28
EP1656793A2 (en) 2006-05-17
WO2005027495A3 (en) 2006-08-17
ES2767933T3 (es) 2020-06-19
US20050053158A1 (en) 2005-03-10

Similar Documents

Publication Publication Date Title
KR101103867B1 (ko) 이미지 또는 비디오를 코딩/디코딩하는 방법 및 매체
US9277228B2 (en) Adaptation parameter sets for video coding
US10091532B2 (en) Bitstream conformance constraints in scalable video coding
KR101930152B1 (ko) 네스팅 보충 강화 정보 (sei) 메시지들의 확장가능한 설계
US9860560B2 (en) Method for palette mode coding
US11330297B2 (en) Methods incorporating extensions to copy-above mode for palette mode coding
EP2920971B1 (en) Devices and methods for processing of non-idr related syntax for high efficiency video coding (hevc)
US10397606B2 (en) System for signaling IFR and BLA pictures
US20150103928A1 (en) Device and method for scalable coding of video information
CN113228649A (zh) 用于改进的子块分区内部子分区编码模式的方法和装置
KR20220035252A (ko) 비디오 코딩 방법 및 장치
CN116325723A (zh) 交叉分量块结束标志编码
CN113875256B (zh) 进行视频解码的方法、装置及存储介质
CN113875256A (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: 20141230

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20151217

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20161220

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20171219

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20181226

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20191217

Year of fee payment: 9