KR20230175240A - 하이브리드 피처 비디오 비트스트림 및 디코더를 위한 시스템들, 방법들 및 비트스트림 구조 - Google Patents
하이브리드 피처 비디오 비트스트림 및 디코더를 위한 시스템들, 방법들 및 비트스트림 구조 Download PDFInfo
- Publication number
- KR20230175240A KR20230175240A KR1020237039360A KR20237039360A KR20230175240A KR 20230175240 A KR20230175240 A KR 20230175240A KR 1020237039360 A KR1020237039360 A KR 1020237039360A KR 20237039360 A KR20237039360 A KR 20237039360A KR 20230175240 A KR20230175240 A KR 20230175240A
- Authority
- KR
- South Korea
- Prior art keywords
- video
- feature
- bitstream
- hybrid
- components
- Prior art date
Links
- 238000000034 method Methods 0.000 title abstract description 32
- 238000012545 processing Methods 0.000 claims description 27
- 238000000605 extraction Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 13
- 238000013139 quantization Methods 0.000 description 10
- 238000000638 solvent extraction Methods 0.000 description 8
- 230000006835 compression Effects 0.000 description 7
- 238000007906 compression Methods 0.000 description 7
- 230000003287 optical effect Effects 0.000 description 5
- 230000002093 peripheral effect Effects 0.000 description 5
- 230000003044 adaptive effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 4
- 238000013528 artificial neural network Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 230000011664 signaling Effects 0.000 description 4
- 230000009466 transformation Effects 0.000 description 4
- 238000007792 addition Methods 0.000 description 3
- 238000013527 convolutional neural network Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 238000003066 decision tree Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 241000238558 Eucarida Species 0.000 description 1
- 241000282412 Homo Species 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000003708 edge detection Methods 0.000 description 1
- 238000012880 independent component analysis Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000000513 principal component analysis Methods 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000035755 proliferation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000008054 signal transmission Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003595 spectral effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/157—Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/184—Methods 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 bits, e.g. of the compressed video stream
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
하이브리드 피처 비디오 비트스트림 인코딩 및 디코딩을 위한 방법들 및 시스템들이 제공된다. 인코딩은 복수의 모드들 중 하나로 수행될 수 있다. 하나의 모드에서, 인코딩된 비트스트림의 비디오 컴포넌트들은 피처 데이터와 입력 비디오 데이터 사이의 차이를 인코딩하여 생성된 잔차 데이터를 포함한다. 호환 가능한 디코더가 복수의 디코딩 모드들에서 동작할 수 있다. 하나의 디코딩 모드에서, 비디오 컴포넌트들은 비트스트림의 인코딩된 비디오 및 인코딩된 피처 데이터를 사용하여 디코딩된다. 인코더와 디코더 사이의 하이브리드 비트스트림은 복수의 하이브리드 세그먼트들로 형성되며, 각각 세그먼트의 피처 및 비디오 컨텐츠의 특징들을 특정하는 복수의 컴포넌트들을 갖는다.
Description
본 발명은 일반적으로 비디오 압축 분야에 관한 것이다. 특히, 본 발명은 하이브리드 피처 비디오 비트스트림 및 디코더를 위한 방법들 및 시스템들에 관한 것이다.
비디오는 통상적으로 인간의 소비를 위한 미디어로 생각되어 왔지만, 첨단 산업 프로세스들, 자율 주행 차량들, IoT 애플리케이션들 등과 같은 기계 애플리케이션들에서 비디오를 사용하는 애플리케이션들이 증가하고 있다. 이러한 애플리케이션들은 지속적으로 증가할 것으로 예상되며 비디오 채널 대역폭에 대한 수요가 계속해서 증가할 것으로 예상된다. 일부 애플리케이션들에서, 인간과 기계 소비 모두에 최적화된 비디오 컨텐츠를 제공하는 것이 바람직할 것이다. 이러한 비트스트림을 하이브리드 비트스트림이라고 지칭할 수 있다. 제안된 비트스트림 및 디코더의 유틸리티는 주로 비트스트림이 시각적 데이터를 분석하는 인간 뷰어들과 기계들 모두에 전송되는 시나리오들에 대한 것이다. 비트스트림의 비디오 부분은 인간 뷰어들을 위해 의도된 것이고, 비트스트림의 피처(feature) 부분은 기계들에 의한 분석을 위해 의도된 것이다. 따라서, 인간과 인간 애플리케이션들 모두에 적합한 비디오 컨텐츠를 압축, 인코딩 및 효율적으로 전송할 수 있는 시스템들과 방법들을 개발하는 것이 유익할 것이다.
5G 및 IoT와 같은 기술들 및 개념들과 결합하여 에지 디바이스들의 확산과 자동 비디오 분석의 증가는 기계들을 최종 사용자들로 간주하는 비디오 코딩에 대한 표준을 위한 필요성을 제기하였다.
현재 최첨단 접근법은 에지 디바이스로부터의 모든 신호들을 기록하고 인코딩하여 서버로 송신하는 것이다. 서버 상에서 신호들의 비트스트림이 디코딩되어 분석 및 프로세싱을 위해 기계 알고리즘들로 전달된다. 이러한 접근법의 예들은 특히 Alexa를 갖는 Amazon의 Echo, Assistant를 갖는 Google의 Home, Siri를 갖는 Apple의 디바이스들과 같은 인기 있는 디바이스들에서 찾을 수 있다. 이러한 디바이스들은 주로 사운드(오디오 신호)를 프로세싱하므로, 페이로드가 그리 크지 않다.
그러나, Ring® doorbell과 같이 비디오를 프로세싱하는 디바이스들의 경우, 네트워크 대역폭 및 가용성에 대한 요건들이 매우 높다. 이러한 금지된 요건들을 완화하기 위해 다른 접근법이 제안되며: 디바이스 자체가 프로세싱의 초기 스테이지들 중 일부를 수행하고 압축된 피처들만을 서버에 송신해야 한다. 이러한 방식으로 에지의 컴퓨테이션 복잡성을 희생하여 페이로드가 상당히 감소된다. 감소된 페이로드(낮은 네트워크 사용량)와 컴퓨테이션 복잡성(높은 배터리 사용량) 사이의 트레이드오프는 적응형 위임을 통해 해결될 수 있다. 프로세싱은 에지 디바이스에 의해 완전히 수행되거나, 에지 디바이스와 서버 사이에서 위임되거나, 서버 상에서 완전히 수행될 수 있다.
비디오 코덱은 디지털 비디오를 압축하거나 압축 해제하는 전자 회로 또는 소프트웨어를 포함할 수 있다. 이는 압축되지 않은 비디오를 압축된 포맷으로 변환하거나 그 반대로 변환할 수 있다. 비디오 압축의 맥락에서, 비디오를 압축하는(및/또는 그 일부 기능을 수행하는) 디바이스를 통상적으로 인코더라고 칭할 수 있고, 비디오를 압축 해제하는(및/또는 그 일부 기능을 수행하는) 디바이스를 디코더라고 칭할 수 있다.
압축된 데이터의 포맷은 표준 비디오 압축 사양을 따를 수 있다. 압축된 비디오에는 원본 비디오에 존재하는 일부 정보가 결여된다는 점에서 압축은 손실될 수 있다. 이의 결과는 원본 비디오를 정확하게 재구성하기에는 정보가 불충분하기 때문에 압축 해제된 비디오가 압축되지 않은 원본 비디오보다 더 낮은 품질을 가질 수 있는 것을 포함할 수 있다.
비디오 품질, (예를 들어, 비트 레이트에 의해 결정되는) 비디오를 나타내는 데 사용되는 데이터의 양, 인코딩 및 디코딩 알고리즘들의 복잡성, 데이터 손실들 및 오류들에 대한 민감도, 편집의 용이성, 랜덤 액세스, 단-대-단(end-to-end) 지연(예를 들어, 레이턴시) 등 사이에는 복잡한 관계들이 있을 수 있다.
모션 보상은 비디오의 카메라 및/또는 객체들의 모션을 고려하여 이전 및/또는 장래 프레임들과 같이 기준 프레임이 주어진 경우 비디오 프레임 또는 그 일부를 예측하는 접근법을 포함할 수 있다. 이는 예를 들어 동영상 전문가 그룹(MPEG: Motion Picture Experts Group)의 어드밴스드 비디오 코딩(AVC: advanced video coding) 표준(H.264라고도 칭함)을 사용한 인코딩 및 디코딩에서 비디오 압축을 위한 비디오 데이터의 인코딩 및 디코딩에서 채용될 수 있다. 모션 보상은 기준 픽처를 현재 픽처로 변환하는 관점에서 픽처를 설명할 수 있다. 기준 픽처는 현재 픽처와 비교할 때 시간적으로 이전일 수 있고, 현재 픽처와 비교할 때 미래일 수 있다. 이전에 전송되거나 저장된 이미지들로부터 이미지들이 정확하게 합성될 수 있으면, 압축 효율이 개선될 수 있다.
일 실시예에서, 비디오 컴포넌트와 피처(feature) 컴포넌트를 지원하는 비디오 비트스트림용 하이브리드 디코더가 제공된다. 하이브리드 디코더는 비트스트림을 수신하고, 수신된 비트스트림을 비디오 컴포넌트들과 피처 컴포넌트들로 파싱(parsing)하는 디멀티플렉서를 포함한다. 비디오 디코더는 디멀티플렉서에 커플링되어 비트스트림의 비디오 컴포넌트들을 수신한다. 피처 디코더가 또한 디멀티플렉서에 커플링되어 비트스트림의 피처 컴포넌트들을 수신한다. 바람직하게는, 피처 디코더는 또한 비디오 디코더에 커플링되어 비디오 디코딩을 용이하게 하기 위해 피처 데이터를 선택적으로 비디오 디코더에 제공한다. 기계 모델이 피처 디코더에 커플링된다. 하이브리드 디코더는 바람직하게는 적어도 비트스트림의 비디오 컴포넌트들 및 피처 컴포넌트들을 독립적으로 디코딩하기 위한 제1 디코딩 모드 및 비트스트림의 피처 컴포넌트들을 부분적으로 사용하여 비트스트림의 비디오 컴포넌트들을 디코딩하기 위한 제2 디코딩 모드를 갖는다.
일부 실시예들에서, 비트스트림의 비디오 컴포넌트들은 피처 데이터와 입력 비디오 데이터 사이의 차이를 인코딩함으로써 획득된 잔차 데이터를 포함하고, 피처 디코더는 제2 디코딩 모드에서 비디오 디코더에 피처 데이터를 제공한다.
일부 예시적인 실시예들에서, 디코딩 모드는 비트스트림의 속성들에 기초하여 디코더에 의해 결정된다.
바람직하게는, 하이브리드 비트스트림은 복수의 세그먼트들을 포함하고, 각각의 세그먼트는 피처 및 비디오 컴포넌트들을 내부에서 정의하는 복수의 컴포넌트들을 포함한다. 이는 하이브리드 크기 컴포넌트를 포함할 수 있고, 디코딩 모드는 하이브리드 크기 컴포넌트의 특징들에 의해 적어도 부분적으로 결정될 수 있다. 특정 실시예들에서, 각각의 세그먼트는 개별적으로 디코딩되고 디코딩 모드는 각각의 세그먼트에 대해 결정된다.
본 개시는 또한 피처 컴포넌트들과 비디오 컴포넌트들을 갖는 인코딩된 하이브리드 비디오 데이터에 대한 비트스트림 구조를 제공한다. 비트스트림은 바람직하게는 복수의 하이브리드 비트스트림 세그먼트들을 포함하고, 각각의 비트스트림 세그먼트는 복수의 컴포넌트들을 포함한다. 예시적인 컴포넌트들은 하이브리드 크기 컴포넌트; 메타데이터(metadata) 컴포넌트; 피처 헤더; 피처 페이로드(payload); 비디오 헤더; 및
비디오 페이로드를 포함할 수 있다.
본 개시는 또한 하이브리드 비트스트림을 생성하기 위한 하이브리드 인코더를 제공한다. 하이브리드 인코더의 일 실시예는 입력 비디오 스트림을 수신하고 비디오 프로세싱 및 피처 프로세싱 모두를 위해 비디오 스트림을 멀티플렉싱하는 사전 프로세서를 포함한다. 비디오 인코더가 비트스트림에 포함시키기 위해 사람이 볼 수 있도록 비디오 컨텐츠를 압축 및 인코딩하기 위해 제공된다. 피처 추출기가 또한 제공된다. 피처 추출기는 후속 기계 프로세싱을 위한 피처 추출을 위한 파라미터들을 제공하는 기계 모델에 커플링된다. 피처 추출기는 바람직하게는 비디오 인코더에 동작 가능하게 커플링되어 이에 피처 데이터를 선택적으로 제공한다. 피처 인코더는 피처 추출기로부터 피처 데이터를 수신하고 하이브리드 비트스트림에 포함시키기 위해 피처 데이터를 인코딩한다. 멀티플렉서가 비디오 인코더 및 피처 인코더에 커플링되어 이로부터 하이브리드 비트스트림을 생성한다.
일부 예시적인 실시예들에서, 하이브리드 인코더는 비트스트림의 비디오 컴포넌트들 및 피처 컴포넌트들을 독립적으로 인코딩하기 위한 적어도 제1 인코딩 모드 및 피처 인코더의 피처 컴포넌트들을 부분적으로 사용하여 비트스트림의 비디오 컴포넌트들을 인코딩하기 위한 제2 인코딩 모드에서 동작한다. 하나의 추가적인 예에서, 제2 인코딩 모드에서, 비디오 인코더는 피처 데이터와 입력 비디오 데이터 사이의 차이를 인코딩함으로써 잔차 데이터를 생성한다.
하이브리드 인코더는 바람직하게는 복수의 하이브리드 비트스트림 세그먼트들을 포함하는 하이브리드 비트스트림을 생성한다. 일 예에서, 각각의 비트스트림 세그먼트는 복수의 컴포넌트들을 포함한다. 컴포넌트들의 예시적인 세트는 하이브리드 크기 컴포넌트; 메타데이터 컴포넌트; 피처 헤더; 피처 페이로드; 비디오 헤더; 및 비디오 페이로드를 포함할 수 있다.
본 발명의 비제한적인 실시예들의 이러한 양태들 및 특징들과 다른 양태들 및 특징들은 첨부 도면과 함께 본 발명의 특정의 비제한적인 실시예들에 대한 이하의 설명을 검토하면 본 기술 분야의 통상의 기술자에게 명백해질 것이다.
본 발명을 예시할 목적으로, 도면들은 본 발명의 하나 이상의 실시예들의 양태들을 도시한다. 그러나, 본 발명은 도면들에 도시된 정확한 배열들 및 수단들에 제한되지 않는다는 것을 이해해야 한다.
도 1은 하이브리드 비디오 애플리케이션들에 사용하기에 적합한 인코더 및 디코더의 예시적인 실시예의 단순화된 블록도이다.
도 2는 하이브리드 비트스트림 구조의 예시적인 실시예의 예시이다.
도 3은 하이브리드 비트스트림 구조의 예시적인 실시예의 예시이다.
도 4는 하이브리드 비트스트림에 대한 디코딩 프로세스의 예시적인 실시예의 흐름도 예시이다.
도 5는 현재 디코딩 프로세스들의 예시적인 실시예에서 사용하기에 적합한 디코딩 모드 선택을 예시하는 흐름도이다.
도 6은 비디오 디코더의 예시적인 실시예의 단순화된 블록도이다.
도 7은 비디오 인코더의 예시적인 실시예의 단순화된 블록도이다.
도 8은 본원에 개시된 방법론들 중 임의의 하나 이상과 그 임의의 하나 이상의 부분들을 구현하는 데 사용될 수 있는 컴퓨팅 시스템의 블록도이다.
도면은 반드시 축척대로가 아니며 가상 라인들, 도식적 표현들 및 단편적인 보기들에 의해 예시될 수 있다. 특정 경우들에 있어서, 실시예들의 이해에 필요하지 않거나 다른 상세 사항들을 인지하기 어렵게 만드는 상세 사항들은 생략되었을 수 있다.
도 1은 하이브리드 비디오 애플리케이션들에 사용하기에 적합한 인코더 및 디코더의 예시적인 실시예의 단순화된 블록도이다.
도 2는 하이브리드 비트스트림 구조의 예시적인 실시예의 예시이다.
도 3은 하이브리드 비트스트림 구조의 예시적인 실시예의 예시이다.
도 4는 하이브리드 비트스트림에 대한 디코딩 프로세스의 예시적인 실시예의 흐름도 예시이다.
도 5는 현재 디코딩 프로세스들의 예시적인 실시예에서 사용하기에 적합한 디코딩 모드 선택을 예시하는 흐름도이다.
도 6은 비디오 디코더의 예시적인 실시예의 단순화된 블록도이다.
도 7은 비디오 인코더의 예시적인 실시예의 단순화된 블록도이다.
도 8은 본원에 개시된 방법론들 중 임의의 하나 이상과 그 임의의 하나 이상의 부분들을 구현하는 데 사용될 수 있는 컴퓨팅 시스템의 블록도이다.
도면은 반드시 축척대로가 아니며 가상 라인들, 도식적 표현들 및 단편적인 보기들에 의해 예시될 수 있다. 특정 경우들에 있어서, 실시예들의 이해에 필요하지 않거나 다른 상세 사항들을 인지하기 어렵게 만드는 상세 사항들은 생략되었을 수 있다.
본 개시는 하이브리드 비디오 데이터 인코딩 및 디코딩을 위한 시스템들 및 방법들에 관한 것이다. 기계 프로세스들에 사용하기 위해 비디오를 코딩하는 프로세스를 종종 기계용 비디오 코딩 또는 VCM(video coding for machines)이라고 지칭한다.
도 1은 인코더(105)와 디코더(110)를 포함하는 하이브리드 비디오 데이터용 VCM 시스템의 개념적 아키텍처를 예시하는 단순화된 블록도이다. 도 1에서 볼 수 있는 바와 같이, 인코더에 대한 입력은 일반적으로 카메라 또는 다른 비디오 생성 시스템으로부터와 같이 미가공 비디오의 형태인 비디오 스트림(115)이다. 인코더(105)는 후속적으로 디코더로 송신되는 비트스트림을 출력하고, 디코더는 이를 인간들 및/또는 기계들에 의해 소비되는 출력으로 디코딩한다. VCM 인코더(105)는 입력 비디오(115)를 수신하여 이를 사전-프로세서/비디오 스플리터(splitter)(120)를 통해 전달한다. 사전-프로세서(120)는 수신된 비디오 데이터 스트림을 2 개의 컴포넌트들, 즉, 비디오 인코더에 전달되는 비디오 컴포넌트(예를 들어, RGB 대 YTJV 변환) 및 피처 추출기(130)로 전달되는 스트림으로 분할한다. 피처 추출기(130)로 전달된 스트림은 필요한 경우 적절한 포맷으로 변환된다. 이는 또한 피처 추출기(130)에 의해 필요에 따라 양자화되거나 일부 다른 방식으로 다운-샘플링될 수 있다.
비디오 인코더(125)는 바람직하게는 "기본 모드" 및 "피처-보상 모드"의 2 개의 이용 가능한 모드들에서 비디오 스트림을 압축/인코딩하도록 구성된다. "기본 모드"에서 동작할 때, 비디오 인코더(125)는 H.264, HEVC, AVC, VVC 비디오 코딩 표준들에 대한 표준 준수 디코더와 같은 표준 비디오 인코더로 동작하며, 피처 추출기(130)와의 양방향 연결을 선택적으로 추가한다. 이러한 모드에서 비디오 서브-스트림은 비트스트림의 주어진 표준을 준수하는 임의의 디코더에 의해 디코딩 가능하다. 비디오 인코더(125)로부터 피처 추출기(130)로의 이러한 연결은 특히 지각 영역에서 보다 효율적인 압축을 위해 사용될 수 있는 추가 정보를 제공하는 데 사용될 수 있다. 반면, 비디오 인코더(125)는 모션 정보, 장면 변화 정보 등과 같은 유용한 피드백을 피처 추출기(130)에 제공할 수 있다.
"피처-보상 모드"에서 비디오 인코더(125)는 바람직하게는 입력 비디오와 피처 추출기 피드백 모두를 수신한다. 피처 맵들에 기초하여, 이는 맵들과 입력 픽처 사이의 잔차 차이를 추정하고 인코딩한다.
피처-보상 모드(FCM: feature-compensated mode)는 피처 데이터와 입력 비디오 데이터 사이의 차이를 인코딩함으로써 획득된 잔차 데이터로 비디오 서브-스트림이 구성되는 비디오 인코딩/디코딩 모드이다. 디코딩하는 동안, 이러한 잔차는 베이스라인 피처 데이터와 결합될 수 있다. 베이스라인 피처 데이터는 피처 디코더로부터 비디오 디코더에 의해 획득될 수 있다. 베이스라인 피처 데이터는 수정되지 않은 피처 디코더의 출력과 같을 수 있거나, 피처 디코더 출력의 서브세트일 수 있다. 베이스라인 잔차 데이터는 피처들 또는 피처들과 입력 비디오 신호의 조합 중 임의의 것으로 구성될 수 있다. 예를 들어, 베이스라인 피처 데이터는 입력 비디오 데이터가 콘볼루션 신경망(CNN: Convolutional Neural Network)의 하나 이상의 레이어들을 통과할 때 생성되는 피처 맵들로 구성될 수 있다. 이는 또한 에지들, 코너들 또는 키 포인트들과 같은 피처들로 구성된 시각적 프리미티브(primitive)들로 구성될 수 있다.
피처 추출기(130)는 사전-프로세서(120)로부터 입력된 픽셀 스트림을 기계 사용을 위한 피처 공간으로 변환한다. 이러한 피처 공간은 기계에 의해 완료되어야 하는 작업에 대응한다. 변환의 일부 예들은 이하를 포함한다: 에지 추출 - Canny 에지 검출과 같은 컴퓨터 비전 알고리즘을 사용하여 입력 픽처에서 관련 에지들을 검출한 후 추출함; 키포인트 추출 - 스케일 불변 피처 변환(Scale-Invariant Feature Transform) 및 스피디드 업 로버스트 피처들(Speeded Up Robust Features)과 같은 알고리즘을 사용; 신호 추출 - 독립 컴포넌트 분석 또는 주요 컴포넌트 분석을 사용하여 입력 픽처 또는 오디오로부터 가장 관련성이 높은 스펙트럼의 컴포넌트들을 추출; 피처 맵 추출 - 콘볼루션 신경망 등과 같은 신경망의 하위 레이어들을 사용. 변환의 유형은 기계 모델 입력(135)에 기초하여 선택된다. 기계 모델(135)의 사본은 독립적으로 또는 인코더(105)의 일부로서 에지 디바이스 상에 저장될 수 있다. 이는 구성 가능한 인코더 소프트웨어의 확장 가능한 배치와 단말 기계에 대한 네트워크 연결이 이용 가능하지 않을 때 오프라인 동작 모드를 모두 허용한다. 이러한 입력은 실시간으로 단말 기계에 의해 또는 로컬 저장소로부터 제공된다. 추가로, 피처 추출기(130)는 프로세싱을 최적화하는 비디오 인코더(125)로부터 피드백 입력을 취할 수 있다.
피처 인코더(140)는 피처 추출기(130)로부터 추출된 피처들을 수신하고 유사한 표준들(예를 들어, CDVA)을 위해 개발된 표준 무손실 및 손실 기법들을 통해 이들을 압축한다. 임의의 알려진 방법들이 사용될 수 있지만, 피처 인코더는 주로 엔트로피(entropy) 코딩의 유형을 채용하는 것이 바람직하다. 최적화기(145)는 비디오 인코더(125) 및 피처 인코더(140) 모두로부터 입력들을 수신하고 비디오 및/또는 피처 비트스트림들에서 추가로 압축되거나 폐기될 수 있는 데이터의 중복들 및 리던던시(redundancy)들의 존재를 나타내는 신호들을 이러한 개개의 블록들에 제공하기 위해 제공될 수 있다. 비디오 인코더(125) 및 피처 인코더(140)의 출력들은 2 개의 비트스트림들을 하나로 결합하는 멀티플렉서, 또는 먹서(muxer)(150)에 제공된다.
하이브리드 디코더(110)는 인코딩된 하이브리드 비트스트림을 수신하고 이를 디멀티플렉서 또는 디먹서(demuxer)(155)에 전달한다. 디먹서(155)는 수신된 하이브리드 비트스트림을 비디오 및 피처 비트스트림들로 분할하며, 이는 본질적으로 먹서(150)의 동작과 상보적인 동작이다. 그 후 피처 비트스트림은 하나 이상의 피처 디코더들(160a, 160b)에 제공된다. 복수의 상이한 피처 세트들이 사용되는 경우, 피처 세트 추출기(157)가 디먹스(155)와 피처 디코더들 사이에 개재되어 개별 피처 세트들을 비트스트림으로부터 분리하고 이들을 개개의 피처 디코더들(160a, 160b)에 전달할 수 있다. 각각의 피처 디코더(160)는 기계 모델(135)로부터의 입력과 개별 피처 세트를 입력으로서 수신하고 이를 디코딩한다. 기계 모델(135)은 원격 소스로부터의 입력으로서 제공될 수 있거나 디코더(110)의 저장소에 포함될 수 있다. 추가로, "피처-보상 모드"에서 피처 디코더(160)는 피처들의 특정 서브세트를 비디오 디코더(165)로 송신한다 피처 디코더(160)의 출력은 단말 기계(170)로 송신된다. 비디오 디코더(165)는 바람직하게는 "기본 모드"에서는 표준 비디오 디코더이고, "피처-보상 모드"에서는 하이브리드 디코더이다(둘 모두에 대한 기본 모드를 사용 가능성 있음).
도 2는 인코더(105)로부터 출력되고 전송 채널을 통해 디코더(110)로 전송되는 비디오와 피처들 모두를 포함하는 비트스트림의 단순화된 개략도이다. 비트스트림은 비디오와 피처들 모두를 포함하므로 이는 하이브리드 비트스트림으로 표기된다. 상단 행(row)(200)은 하이브리드 세그먼트들(205)이라고 칭하는 개별 유닛들로 구성된 연속 스트림인 하이브리드 비트스트림을 나타낸다. 하이브리드 세그먼트들(205)의 시퀀스는 연속 스트림의 시간적으로 순차적인 부분들이다. 각각의 하이브리드 세그먼트(205)는 바람직하게는 하이브리드 크기(210), 메타데이터(metadata)(215), 피처 헤더(220), 피처 페이로드(payload)(225), 비디오 헤더(230) 및 비디오 페이로드(235)의 6 개 컴포넌트들로 추가로 구성된다. 하이브리드 크기(210)가 하이브리드 세그먼트(205)의 제1 컴포넌트인 한, 컴포넌트들은 일반적으로 임의의 순서로 나타날 수 있다. 일 예에서, 컴포넌트 순서는 개별 컴포넌트들의 "유형" 및 "크기" 필드들을 사용하여 암시적으로 시그널링될 수 있다. 대안적으로, 컴포넌트들(210-235)은 "크기" 및 "유형" 필드들을 대체하고 대신 디코더에 의한 순차적 파싱(parsing)에 사용되는 "개시 코드(start code)" 필드를 포함할 수 있다. 컴포넌트들 내부의 필드들은 디코더에 의해 인터프리팅(interpreting)되어 디코딩을 위한 파라미터들을 초기화하거나 업데이트할 수 있다.
하이브리드 크기 컴포넌트(210)는 바람직하게는 시퀀스의 컴포넌트들 각각의 길이를 특정하는 숫자들의 단일 필드 어레이이다. 이는 표준 단위들(일반적으로 비트들 또는 바이트들)로 표현될 수 있다. 예를 들어, [10, 30, 500, 100, 5000]은 10 바이트의 메타데이터 정보, 후속하여 30 바이트의 피처 헤더 데이터, 후속하여 500 바이트의 피처 페이로드, 후속하여 100 바이트의 비디오 헤더 데이터, 후속하여 5000 바이트의 비디오 페이로드가 있음을 의미할 수 있다. 이러한 숫자들은 디코더에 의해 사용되어 현재 세그먼트에 속하는 입력 비트스트림의 관련 부분들을 추출할 수 있다. 피처 또는 비디오 컴포넌트들 중 어느 것도 존재하지 않는 경우, 이는 어레이의 0 값들에 의해 시그널링된다.
대안적인 디코딩 시나리오에서, "개시 코드"는 해당 "개시 코드"에 의해 특정된 유형의 새로운 컴포넌트의 시작을 마킹하는 데 사용된다.
메타데이터 컴포넌트(215)는 예컨대, 세그먼트 컨텐츠를 설명하는 필드들을 포함하지만 이에 한정되지는 않는다.
o 비디오의 입력 해상도. 이는 폭과 높이의 픽셀 값들로 표현될 수 있다.
o 개시 세그먼트: 세그먼트가 독립적으로 디코딩 가능한 세그먼트들의 시퀀스의 첫 번째인 경우 1로 설정되고 그렇지 않은 경우 0으로 설정되는 바이너리 플래그.
o 피처-보상 모드: 현재 세그먼트가 FC 모드로 인코딩되면 1로 설정되고 그렇지 않으면 0으로 설정되는 바이너리 플래그.
o 장래 확장들을 위해 예약된 사용자 정의 필드들.
피처 헤더 컴포넌트(220)는 예컨대, 일반적으로 피처와 관련된 세그먼트 컨텐츠를 설명하는 필드들을 포함하지만 이에 한정되지는 않는다.
o 해상도 변경을 위한 스케일링 팩터. 입력 비디오 해상도의 승수를 나타내는 단일 숫자.
o 피처 유형: 페이로드에 존재하는 피처들의 유형을 지정하는 인덱스 번호. 예를 들어, (1-에지들, 2-키 포인트들, 3-신경망 등)
o 피처 유형 구성: 피처 유형에 대한 정보를 전달하는 필드들의 선택적인 세트. 예를 들어, 신경망의 토폴로지(topology)
o ROI 좌표들: 관심 객체들 주변의 경계 박스들과 같이 관심 영역(ROI: region of interest)들의 존재 및 명시적 위치들을 (암시적으로) 지정하는 쿼텟(quartet)들의 어레이. 각각의 쿼텟은 다음 픽셀 값들(ROI의 좌측 상단 코너의 x-좌표, ROI 좌측 상단 코너의 y-좌표, ROI 폭, ROI 높이)을 지정하는 숫자들을 포함한다. 예를 들어, [(100,50,200,250), (400, 400, 200, 300)]은 2 개의 ROI들을 지정한다.
o 잔차(Residual): 현재 세그먼트 피처 페이로드가 FC 모드에서 비디오 디코더에 의해 사용되는지 여부를 지정하는 플래그.
o 특정 피처 유형과 관련된 다양한 파라미터 세트들.
o 장래 확장들을 위해 예약된 사용자 정의 필드들.
피처 페이로드 컴포넌트(225)는 출력 피처들의 재구성에 필요한 인코딩된 피처 데이터를 포함하는 비트스트림의 부분이다. 피처 데이터는 예를 들어, 키 포인트들, 에지들, 모션 정보, 객체 검출들, 경계 박스들, 신경망들의 피처 맵들, 그리고 이벤트 및 액션 인식, 객체 검출 및 추적, 포즈(pose) 추정 등과 같은 이미지 및 비디오 분석 애플리케이션들을 가능하게 하는 유사한 데이터를 포함할 수 있다. 피처들은 허프만(Huffman) 코딩, 산술 코딩 또는 VLC 코딩 등과 같은 엔트로피 및 바이너리 코딩을 사용하여 인코딩될 수 있다.
비디오 헤더 컴포넌트(230)는 예컨대, 일반적으로 비디오와 관련된 세그먼트 컨텐츠를 설명하는 필드들을 포함하지만 이에 한정되지는 않는다.
o 모드: 현재 비디오 세그먼트에 대해 기본 또는 FC 모드를 시그널링하기 위해 예약된 단일 숫자(비트).
o 파라미터 세트들: 예를 들어, 비디오 디코더의 구성을 시그널링하는 픽처 파라미터 세트. 가능하게는 또한 시퀀스 파라미터 세트.
o 양자화 매트릭스들: 디코딩에 사용되는 양자화 계수들을 전달하는 하나 이상의 매트릭스들의 세트. 각각의 매트릭스는 적용되는 영역으로 식별된다. 영역 위치는 잔차 정보와 함께 또는 독립적으로 명시적으로 신호를 시그널링되거나 피처 디코더로부터 (ROI 좌표들로서) 획득될 수 있다.
o 지각 파라미터들: (피처 디코더로부터 ROI 영역들로서 획득되는) 지각적으로 중요한 특징들을 갖는 영역에 적용되는 양자화 스케일링 및 루프 필터 파라미터들.
o 장래 확장들을 위해 예약된 사용자 정의 필드들.
비디오 페이로드(235)는 출력 피처들의 재구성에 필요한 인코딩된 비디오 데이터를 포함하는 비트스트림의 일부이다.
도 3은 예시적인 하이브리드 비트스트림 구조(300)를 추가로 예시한다. 비트스트림은 예를 들어, 0 개 또는 1 개의 비디오 스트림들(310)의 리스트와 0 개 이상의 피처 스트림들(315a, 315b)을 포함하는 하이브리드 헤더(305)를 포함한다. 하이브리드 헤더(305)는 바람직하게는 관련된 하이-레벨 파라미터들(스트림 분할 등에 사용됨)을 포함하고 또한 인코딩에 어떠한 모드, 즉, "기본" 또는 "피처-보상"이 사용되는지 시그널링하는 파라미터들을 포함할 수 있다. 비디오 스트림(310)은 바람직하게는 시퀀스 파라미터 세트(SPS: sequence parameter set), 픽처 파라미터 세트(PPS: picture parameter set) 등과 같은 하나 이상의 알려진 비디오 코딩 표준들에 정의된 표준 구조를 갖는다. 비디오 스트림은 어떤 모드가 인코딩에 사용되는지에 따라 VCM 또는 VVC 디코더에 의해 디코딩될 수 있다. 각각의 피처 스트림(315a, 315b)은 바람직하게는 피처 시퀀스 파라미터 세트 FSPS(feature sequence parameter set)(320a, 320b) 및 피처 픽처 파라미터 세트 FPPS(feature picture parameter set)(325a, 325b) 및 대응하는 피처 페이로드(330a, 330b)와 같은 헤더 정보를 포함한다.
하이브리드 비트스트림에 대한 디코딩 프로세스의 개요가 도 4의 흐름도와 관련하여 설명된다. 디코더(110)는 단계 405에서 비트스트림 세그먼트(205)를 수신하고, 메타데이터(215)를 판독하고, 단계 410에서 현재 세그먼트가 세그먼트들의 시퀀스에서 개시 세그먼트인지 결정한다. 개시 세그먼트인 경우, 디코딩 프로세스는 단계 415로 진행하여 메타데이터 컴포넌트(215)의 다른 필드들에서의 값들과 피처 헤더(220) 및 비디오 헤더(230)의 필드들의 값들에 따라 디코딩 파라미터들을 설정한다. 수신된 세그먼트가 단계 410에서 제1 세그먼트가 아닌 경우, 디코딩 프로세스는 단계 420에서 현재 세그먼트와 이전 세그먼트들 사이의 차이 보상 계산으로 진행한다. 차이 보상 계산들은 모션 보상 또는 피처 세트들에 적합한 임의의 다른 유형의 보상을 포함할 수 있다. 단계들 415 및 420에 후속하여, 프로세싱은 단계 425에서 페이로드 데이터를 디코딩하기 위해 진행된다. 페이로드 데이터는 프로세싱이 세그먼트의 끝에 도달했는지 결정하기 위해 단계 430에서 테스트된다. 단계 430에서 세그먼트의 끝에 도달하지 못한 경우, 프로세싱은 단계 420으로 복귀한다. 세그먼트가 세그먼트들의 시퀀스의 마지막 세그먼트인 경우 현재 세그먼트들의 그룹의 디코딩을 완료한다. 단계 435에서 디코더는 마지막 세그먼트가 디코딩되었는지 여부를 결정한다. 디코딩되지 않은 경우, 프로세싱은 단계 405로 복귀하여 다음 세그먼트를 디코딩한다.
세그먼트들의 각각의 그룹은 하나 이상의 연속 세그먼트들의 시퀀스이다. 세그먼트들의 각각의 그룹은 독립적으로 디코딩 가능하다. 세그먼트들의 하나의 그룹 내의 비디오 세그먼트들은 다른 비디오 세그먼트들과 관련하여 독립적으로 디코딩 가능하지만, 세그먼트들의 동일한 그룹으로부터의 피처 세그먼트들에 따를 수 있다.
하이브리드 비트스트림의 각각의 하이브리드 세그먼트 또는 세그먼트들의 그룹에는 1 개 또는 0 개의 피처 세그먼트들과 1 개 또는 0 개의 비디오 세그먼트들이 있을 수 있다. 피처 및 비디오 세그먼트들의 존재는 "하이브리드 크기" 컴포넌트(210)의 값들로부터 암시적으로 결정될 수 있다. 디코더의 모드는 각각의 세그먼트에 대한 "피처-보상 모드"(FCM: feature-compensated mode) 플래그에 기초하여 결정될 수 있다.
세그먼트 존재 결정을 위한 크기 파라미터들의 파싱과 함께 FCM 플래그의 파싱을 위한 결정 프로세스를 사용하는 디코딩 모드 선택이 도 5에 묘사된 흐름도와 관련하여 추가로 설명된다.
디코더는 단계 505에서 하이브리드 세그먼트를 수신하고 단계 510에서 피처 크기를 평가함으로써 피처 세그먼트가 존재하는지 결정한다. 피처 세그먼트가 존재하지 않는 경우(그 크기는 0), 디코딩 프로세스는 단계 515에서 크기를 확인하여 비디오 세그먼트가 존재하는지 결정한다. 그렇지 않은 경우(그 크기가 0), 현재 세그먼트를 건너뛴다(단계 520). 단계 510에서 세그먼트에 피처 세그먼트가 존재하지 않는 것으로 결정한 후, 단계 515에서 비디오 세그먼트가 존재하는 경우, 단계 525에서 모드는 "기본 모드"로 설정되고 비디오만 디코딩된다.
단계 510에서, 피처 세그먼트가 존재하고(피처 크기가 0이 아님) 비디오 세그먼트가 존재하지 않으면(비디오 크기 = 0)(단계 30), 비디오 디코딩이 없고 피처들만이 디코딩된다(단계 535). 피처 및 비디오 세그먼트들이 모두 존재하는 경우, 단계 540에서 디코더는 메타데이터 컴포넌트(215)로부터 FCM 플래그를 확인한다. FCM 모드가 시그널링되면(FCM = 1), 피처 세그먼트가 먼저 디코딩되고(단계 545) 베이스라인 피처가 FC 모드에서 동작하는 비디오 디코더에 전달되어(단계 550), 베이스라인 피처 데이터를 잔차와 결합하여 비디오 출력을 획득한다. 단계 540에서 FCM 플래그가 0으로 설정되면, 피처 세그먼트와 비디오 세그먼트들은 독립적으로 디코딩되고, 비디오 디코더는 "기본 모드"에서 동작한다.
도 6은 하이브리드 비트스트림의 비디오 부분을 디코딩할 수 있는 도 1의 비디오 디코더(165)로 도시된 것과 같은 예시적인 비디오 디코더(600)를 예시하는 시스템 블록도이다. 디코더(600)는 엔트로피 디코더 프로세서(610), 역양자화 및 역변환 프로세서(620), 디블로킹 필터(630), 프레임 버퍼(640), 모션 보상 프로세서(650) 및 인트라 예측 프로세서(660)를 포함한다.
동작 시, 하이브리드 비트스트림의 비디오 부분은 디코더(600)에 의해 수신되어 엔트로피 디코더 프로세서(610)에 입력될 수 있으며, 이는 비트스트림의 부분들을 양자화된 계수들로 엔트로피 디코딩한다. 양자화된 계수들은 역양자화 및 역변환 프로세서(620)에 제공될 수 있으며, 이는 역양자화 및 역변환을 수행하여 잔차 신호를 생성할 수 있으며, 이는 프로세싱 모드에 따라 모션 보상 프로세서(650) 또는 인트라 예측 프로세서(660)의 출력에 추가될 수 있다. 모션 보상 프로세서(650) 및 인트라 예측 프로세서(660)의 출력은 이전에 디코딩된 블록에 기초한 블록 예측을 포함할 수 있다. 예측과 잔차의 합은 디블로킹 필터(630)에 의해 프로세싱되고 프레임 버퍼(640)에 저장될 수 있다.
실시예에서, 여전히 도 6을 참조하면, 디코더(600)는 상술한 임의의 실시예에서 임의의 순서와 임의의 반복 정도로 상술한 임의의 동작을 구현하도록 구성된 회로를 포함할 수 있다. 예를 들어, 디코더(600)는 원하는 또는 명령된 결과가 달성될 때까지 단일 단계 또는 시퀀스를 반복적으로 수행하도록 구성될 수 있으며; 단계 또는 일련의 단계들의 반복은 이전 반복들의 출력들을 후속 반복들의 입력들로서 사용하여 반복적으로 및/또는 재귀적으로 수행될 수 있으며, 입력들 및/또는 반복들의 출력들을 집계하여 집계 결과, 글로벌 변수들과 같은 하나 이상의 변수들의 감소 또는 감량 및/또는 더 큰 프로세싱 작업의 반복적으로 어드레싱되는 더 작은 프로세싱 작업들의 세트로의 분할을 생성할 수 있다. 디코더는 2 개 이상의 병렬 스레드(thread)들, 프로세서 코어들 등을 사용하여 2 회 이상 단계를 동시에 및/또는 실질적으로 동시에 수행하는 것과 같이 본 개시에 설명된 임의의 단계 또는 단계들의 시퀀스를 병렬로 수행할 수 있으며; 병렬 스레드들 및/또는 프로세스들 사이의 작업들의 분할은 반복들 사이의 작업들의 분할에 적합한 임의의 프로토콜에 따라 수행될 수 있다. 본 기술 분야의 통상의 기술자는 본 개시 전체를 검토함으로써 단계, 단계들의 시퀀스들, 프로세싱 작업들 및/또는 데이터가 하위 분할, 공유되거나 반복, 재귀 및/또는 병렬 프로세싱을 사용하여 다르게 처리될 수 있는 다양한 방식들을 알 것이다.
도 7은 도 1에 도시된 비디오 인코더(125)와 같은 하이브리드 비트스트림의 비디오 부분을 인코딩하는 데 적합한 예시적인 비디오 인코더(700)를 예시하는 시스템 블록도이다. 예시적인 비디오 인코더(700)는 트리-구조의 매크로 블록 파티셔닝 스킴(예를 들어, 쿼드-트리(quad-tree) 플러스 바이너리 트리)과 같은 프로세싱 스킴에 따라 초기에 세그먼트화 또는 분할될 수 있는 입력 비디오(705)를 수신한다. 트리-구조의 매크로 블록 파티셔닝 스킴의 예는 픽처 프레임을 코딩 트리 유닛(CTU: coding tree unit)들이라고 칭하는 큰 블록 요소들로 파티셔닝하는 것을 포함할 수 있다. 일부 구현들에서, 각각의 CTU는 코딩 유닛(CU: coding unit)들이라고 칭하는 다수의 서브-블록들로 1 회 이상 추가로 파티셔닝될 수 있다. 이러한 파티셔닝의 최종 결과는 예측 유닛(PU: predictive unit)들로 칭할 수 있는 서브-블록들의 그룹을 포함할 수 있다. 변환 유닛(TU: transform unit)들도 이용될 수 있다.
여전히 도 7을 참조하면, 예시적인 비디오 인코더(700)는 인트라 예측 프로세서(715), 적응적 크로핑(cropping)을 지원할 수 있는 모션 추정/보상 프로세서(720)(인터-예측 프로세서라고도 칭함), 변환/양자화 프로세서(725), 역양자화/역변환 프로세서(730), 인-루프(in-loop) 필터(735), 디코딩된 픽처 버퍼(740) 및 엔트로피 코딩 프로세서(745)를 포함한다. 비트스트림 파라미터들은 출력 비트스트림(750)에 포함시키기 위해 엔트로피 코딩 프로세서(745)에 입력될 수 있다.
동작 시, 그리고 계속해서 도 7을 참조하면, 입력 비디오(705)의 프레임의 각각의 블록에 대해, 인트라 픽처 예측을 통해 블록을 프로세싱할지 또는 모션 추정/보상을 사용하여 블록을 프로세싱할지 결정될 수 있다. 블록은 인트라 예측 프로세서(710) 또는 모션 추정/보상 프로세서(720)에 제공될 수 있다. 블록이 인트라 예측을 통해 프로세싱되어야 하는 경우, 인트라 예측 프로세서(710)는 예측자를 출력하기 위한 프로세싱을 수행할 수 있다. 블록이 모션 추정/보상을 통해 프로세싱되어야 하는 경우, 모션 추정/보상 프로세서(720)는 적용 가능한 경우 적응적 크로핑을 사용하는 것을 포함하는 프로세싱을 수행할 수 있다.
여전히 도 7을 참조하면, 입력 비디오로부터 예측자를 빼서 잔차가 형성될 수 있다. 잔차는 양자화될 수 있는 계수들을 생성하기 위해 변환 프로세싱(예를 들어, 이산 코사인 변환(DCT: discrete cosine transform))을 수행할 수 있는 변환/양자화 프로세서(725)에 의해 수신될 수 있다. 양자화된 계수들 및 임의의 연관된 시그널링 정보는 엔트로피 인코딩에 대해 그리고 출력 비트스트림(750)에 포함시키기 위해 엔트로피 코딩 프로세서(745)에 제공될 수 있다. 엔트로피 인코딩 프로세서(745)는 현재 블록의 인코딩과 관련된 시그널링 정보의 인코딩을 지원할 수 있다. 추가로, 양자화된 계수들은 예측자와 결합될 수 있고 인 루프 필터(735)에 의해 프로세싱될 수 있는 픽셀들을 재생할 수 있는 역양자화/역변환 프로세서(730)에 제공될 수 있으며, 그 출력은 적응적 크로핑이 가능한 모션 추정/보상 프로세서(720)에 의한 사용을 위해 디코딩된 픽처 버퍼(740)에 저장된다.
계속해서 도 7을 참조하면, 위에서 몇몇 변형들이 상세하게 설명되었지만, 다른 수정들 또는 추가들이 가능하다. 예를 들어, 일부 구현들에서, 현재 블록들은 임의의 대칭 블록들(8 x 8, 16 x 16, 32 x 32, 64 x 64, 128 x 128 등)뿐만 아니라 임의의 비대칭 블록(8 x 4, 16 x 8 등)도 포함할 수 있다.
여전히 도 7을 참조하면, 일부 구현들에서, 쿼드트리 플러스 바이너리 결정 트리(QTBT: quadtree plus binary decision tree)가 구현될 수 있다. QTBT에서, 코딩 트리 유닛(Coding Tree Unit) 레벨에서, QTBT의 파티션 파라미터들이 오버헤드를 전송하지 않고 로컬 특징들 적응되도록 동적으로 도출된다. 후속하여, 코딩 유닛 레벨에서, 조인트-분류자(joint-classifier) 결정 트리 구조가 불필요한 반복을 제거하고 잘못된 예측의 위험을 제어할 수 있다. 일부 구현들에서, LTR 프레임 블록 업데이트 모드가 QTBT의 모든 리프(leaf) 노드에서 이용 가능한 추가 옵션으로 이용 가능할 수 있다.
일부 구현들에서, 그리고 도 7을 계속 참조하면, 추가 신택스(syntax) 엘리먼트들이 비트스트림의 상이한 계층(hierarchy) 레벨들에서 시그널링될 수 있다. 예를 들어, 플래그가 시퀀스 파라미터 세트(SPS: Sequence Parameter Set)에 코딩된 인에이블(enable) 플래그를 포함시킴으로써 전체 시퀀스에 대해 인에이블될 수 있다. 추가로, CTU 플래그가 코딩 트리 유닛(CTU: coding tree unit) 레벨에서 코딩될 수 있다.
여전히 도 7을 참조하면, 인코더(700)는 임의의 순서 및 임의의 반복 정도로 상술한 임의의 동작들을 구현하도록 구성된 회로를 포함할 수 있다. 예를 들어, 인코더(700)는 원하는 또는 명령된 결과가 달성될 때까지 단일 단계 또는 시퀀스를 반복적으로 수행하도록 구성될 수 있으며; 단계 또는 일련의 단계들의 반복은 이전 반복들의 출력들을 후속 반복들의 입력으로 사용하여 반복적으로 및/또는 재귀적으로 수행될 수 있으며, 입력들 및/또는 반복들의 출력들을 집계하여 집계 결과, 글로벌 변수들과 같은 하나 이상의 변수들의 감소 또는 감량 및/또는 더 큰 프로세싱 작업을 반복적으로 어드레싱되는 더 작은 프로세싱 작업들의 세트로 분할하는 것을 생성할 수 있다. 인코더(700)는 2 개 이상의 병렬 스레드들, 프로세서 코어들 등을 사용하여 2 회 이상 단계를 동시에 및/또는 실질적으로 동시에 수행하는 것과 같이 본 개시에 설명된 임의의 단계 또는 단계들의 시퀀스를 병렬로 수행할 수 있으며; 병렬 스레드들 및/또는 프로세스들 사이의 작업들의 분할은 반복들 사이의 작업들의 분할에 적합한 임의의 프로토콜에 따라 수행될 수 있다. 본 기술 분야의 통상의 기술자는 본 개시 전체를 검토함으로써 단계들, 단계들의 시퀀스들, 프로세싱 작업들 및/또는 데이터가 하위 분할, 공유되거나 반복, 재귀 및/또는 병렬 프로세싱을 사용하여 다르게 처리될 수 있는 다양한 방식들을 알 것이다.
계속해서 도 7을 참조하면, 비일시적 컴퓨터 프로그램 제품들(즉, 물리적으로 구현된 컴퓨터 프로그램 제품들)이 명령들을 저장할 수 있으며, 명령들은 하나 이상의 컴퓨팅 시스템들의 하나 이상의 데이터 프로세서들에 의해 실행될 때 적어도 하나의 데이터 프로세서로 하여금 상술한 임의의 동작들을 제한 없이 포함하여 본 개시에 설명된 그 동작들 및/또는 단계들을 수행하게 한다. 유사하게, 하나 이상의 데이터 프로세서들 및 하나 이상의 데이터 프로세서들에 커플링된 메모리를 포함할 수 있는 컴퓨터 시스템들도 설명된다. 메모리는 적어도 하나의 프로세서로 하여금 본원에 설명된 동작들 중 하나 이상을 수행하게 하는 명령들을 일시적으로 또는 영구적으로 저장할 수 있다. 또한, 방법들은 단일 컴퓨팅 시스템 내에서 또는 둘 이상의 컴퓨팅 시스템들에 분산된 하나 이상의 데이터 프로세서들에 의해 구현될 수 있다. 이러한 컴퓨팅 시스템들은 네트워크(예를 들어, 인터넷, 무선 광역 네트워크, 근거리 네트워크, 광역 네트워크, 유선 네트워크 등)를 통해, 복수의 컴퓨팅 시스템들 중 하나 이상 사이의 직접 연결을 통하는 등과 같은 연결을 포함하여 하나 이상의 연결들을 통해 연결될 수 있고 데이터 및/또는 커맨드들 또는 다른 명령들 등을 교환할 수 있다.
본원에 설명된 양태들 및 실시예들 중 임의의 하나 이상은 컴퓨터 기술의 통상의 기술자에게 명백한 바와 같이, 본 명세서의 교시들에 따라 프로그래밍된 하나 이상의 기계들(예를 들어, 전자 문서에 대한 사용자 컴퓨팅 디바이스로서 이용되는 하나 이상의 컴퓨팅 디바이스들, 문서 서버와 같은 하나 이상의 서버 디바이스들 등)에서 실현 및/또는 구현되는 디지털 전자 회로, 집적 회로, 특별히 설계된 주문형 집적 회로(ASIC: application specific integrated circuit)들, 필드 프로그래밍 가능 게이트 어레이(FPGA: field programmable gate array)들 컴퓨터 하드웨어, 펌웨어, 소프트웨어, 및/또는 이들의 조합들을 사용하여 편리하게 구현될 수 있다는 점에 유의해야 한다. 이러한 다양한 양태들 또는 피처들은 저장 시스템으로부터 데이터 및 명령들을 수신하고 그리고 저장 시스템으로 데이터 및 명령들을 송신하도록 커플링된 특수 목적 또는 범용일 수 있는 적어도 하나의 프로그래밍 가능한 프로세서, 적어도 하나의 입력 디바이스 및 적어도 하나의 출력 디바이스를 포함하는 프로그래밍 가능한 시스템 상에서 실행 가능 및/또는 인터프리팅 가능한 하나 이상의 컴퓨터 프로그램들 및/또는 소프트웨어에서의 구현을 포함할 수 있다.
적절한 소프트웨어 코딩은 소프트웨어 기술에서의 통상의 기술자에게 명백한 바와 같이, 본 개시의 교시들에 기초하여 숙련된 프로그래머들에 의해 용이하게 준비될 수 있다. 소프트웨어 및/또는 소프트웨어 모듈들을 채용하는 위에서 논의된 양태들 및 구현들은 또한 소프트웨어 및/또는 소프트웨어 모듈의 기계 실행 가능 명령들의 구현을 지원하기 위한 적절한 하드웨어를 포함할 수 있다.
이러한 소프트웨어는 기계-판독 가능 저장 매체를 채용하는 컴퓨터 프로그램 제품일 수 있다. 기계-판독 가능 저장 매체는 기계(예를 들어, 컴퓨팅 디바이스)에 의한 실행을 위한 일련의 명령들을 저장 및/또는 인코딩할 수 있고 기계로 하여금 본원에 설명된 방법론들 및/또는 실시예들 중 임의의 하나를 수행하게 하는 임의의 매체일 수 있다. 기계-판독 가능 저장 매체의 예들은 자기 디스크, 광 디스크(예를 들어, CD, CD-R, DVD, DVD-R 등), 자기-광 디스크, 판독-전용 메모리 "ROM" 디바이스, 랜덤 액세스 메모리 "RAM" 디바이스, 자기 카드, 광 카드, 솔리드-스테이트 메모리 디바이스, EPROM, EEPROM, 프로그래밍 가능 논리 디바이스(PLD: Programmable Logic Device)들 및/또는 이들의 임의의 조합을 포함하지만, 이에 한정되지 않는다. 본원에 사용되는 기계-판독 가능 매체는 단일 매체뿐만 아니라 예를 들어, 컴퓨터 메모리와 조합하여 컴팩트 디스크들 또는 하나 이상의 하드 디스크 드라이브들의 모음과 같은 물리적으로 분리된 매체의 모음을 포함하도록 의도되었다. 본원에 사용되는 바와 같이, 기계-판독 가능 저장 매체는 일시적인 형태의 신호 전송을 포함하지 않는다.
이러한 소프트웨어는 또한 반송파와 같은 데이터 캐리어 상에 데이터 신호로서 반송되는 정보(예를 들어, 데이터)를 포함할 수 있다. 예를 들어, 기계-실행 가능 정보는 기계(예를 들어, 컴퓨팅 디바이스)에 의한 실행을 위해 신호가 일련의 명령 또는 그 일부를 인코딩하는 데이터 캐리어에 구현된 데이터-반송 신호 및 기계로 하여금 본원에 설명된 방법론들 및/또는 실시예들 중 임의의 하나를 수행하게 하는 임의의 관련 정보(예를 들어, 데이터 구조들 및 데이터)로서 포함될 수 있다.
컴퓨팅 디바이스의 예들은 전자 서적 판독 디바이스, 컴퓨터 워크스테이션, 단말 컴퓨터, 서버 컴퓨터, 휴대용 디바이스(예를 들어, 태블릿 컴퓨터, 스마트폰 등), 웹 기기, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 해당 머신에 의해 취해지는 액션을 지정하는 일련의 명령들을 실행할 수 있는 임의의 기계 및 이들의 임의의 조합을 포함하지만, 이에 한정되지 않는다. 일 예에서, 컴퓨팅 디바이스는 키오스크를 포함할 수 있고/있거나 키오스크에 포함될 수 있다.
도 8은 제어 시스템으로 하여금 본 개시의 양태들 및/또는 방법론들 중 임의의 하나 이상을 수행하도록 하기 위한 명령들의 세트가 실행될 수 있는 컴퓨터 시스템(800)의 예시적인 형태인 컴퓨팅 디바이스의 일 실시예의 개략도를 도시한다. 또한, 복수의 컴퓨팅 디바이스들이 하나 이상의 디바이스들로 하여금 본 개시의 양태들 및/또는 방법론들 중 임의의 하나 이상을 수행하게 하기 위해 특별히 구성된 명령들의 세트를 구현하기 위해 이용될 수 있다는 것이 고려된다. 컴퓨터 시스템(800)은 버스(812)를 통해 서로 통신하고 다른 컴포넌트들과 통신하는 프로세서(804) 및 메모리(808)를 포함한다. 버스(812)는 다양한 버스 아키텍처들 중 임의의 것을 사용하여 메모리 버스, 메모리 제어기, 주변 장치 버스, 로컬 버스 및 이들의 임의의 조합에 한정되지 않지만 이를 포함하는 몇몇 유형의 버스 구조들 중 임의의 것을 포함할 수 있다.
메모리(808)는 랜덤-액세스 메모리 컴포넌트, 판독 전용 컴포넌트 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는 다양한 컴포넌트들(예를 들어, 기계-판독 가능 매체)을 포함할 수 있다. 일 예에서, 기동 도중과 같이 컴퓨터 시스템(800) 내의 요소들 사이에 정보를 전달하는 데 도움이 되는 기본 루틴들을 포함하는 기본 입력/출력 시스템(BIOS: basic input/output system)(816)이 메모리(808)에 저장될 수 있다. 메모리(808)는 또한 본 개시의 양태들 및/또는 방법론들 중 임의의 하나 이상을 구현하는 명령들(예를 들어, 소프트웨어)(820)을 포함할 수 있다(예를 들어, 하나 이상의 기계-판독 가능 매체에 저장됨). 다른 예에서, 메모리(808)는 운영 체제, 하나 이상의 애플리케이션 프로그램들, 다른 프로그램 모듈들, 프로그램 데이터 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는 임의의 개수의 프로그램 모듈들을 추가로 포함할 수 있다.
컴퓨터 시스템(800)은 또한 저장 디바이스(824)를 포함할 수 있다. 저장 디바이스(예를 들어, 저장 디바이스(824))의 예들은 하드 디스크 드라이브, 자기 디스크 드라이브, 광 매체와 결합된 광 디스크 드라이브, 솔리드-스테이트 메모리 디바이스 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는다. 저장 디바이스(824)는 적절한 인터페이스(미도시)에 의해 버스(812)에 연결될 수 있다. 예시적인 인터페이스들은 SCSI, 어드밴스드 테크놀로지 어태치먼트(ATA: advanced technology attachment), 직렬 ATA, 범용 직렬 버스(USB: universal serial bus), IEEE 1394(FIREWIRE) 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는다. 일 예에서, 저장 디바이스(824)(또는 그 하나 이상의 컴포넌트들)는 (예를 들어, 외부 포트 커넥터(미도시)를 통해) 컴퓨터 시스템(800)과 제거 가능하게 인터페이싱될 수 있다. 특히, 저장 디바이스(824) 및 관련 기계-판독 가능 매체(828)는 컴퓨터 시스템(800)에 대한 기계-판독 가능 명령들, 데이터 구조들, 프로그램 모듈들 및/또는 다른 데이터의 비휘발성 및/또는 휘발성 저장을 제공할 수 있다. 일 예에서, 소프트웨어(820)는 기계-판독 가능 매체(828) 내에 완전히 또는 부분적으로 상주할 수 있다. 다른 예에서, 소프트웨어(820)는 프로세서(804) 내에 완전히 또는 부분적으로 상주할 수 있다.
컴퓨터 시스템(800)은 또한 입력 디바이스(832)를 포함할 수 있다. 일 예에서, 컴퓨터 시스템(800)의 사용자는 입력 디바이스(832)를 통해 컴퓨터 시스템(800)에 커맨드들 및/또는 다른 정보를 입력할 수 있다. 입력 디바이스(832)의 예들은 영숫자 입력 디바이스(예를 들어, 키보드), 포인팅 디바이스, 조이스틱, 게임패드, 오디오 입력 디바이스(예를 들어, 마이크로폰, 음성 응답 시스템 등), 커서 제어 디바이스(예를 들어, 마우스), 터치패드, 광 스캐너, 비디오 캡처 디바이스(예를 들어, 스틸 카메라, 비디오 카메라), 터치스크린 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는다. 입력 디바이스(832)는 버스(812)에 대한 직렬 인터페이스, 병렬 인터페이스, 게임 포트, USB 인터페이스, FIREWIRE 인터페이스, 직접 인터페이스 및 이들의 임의의 조합을 포함하지만 이에 한정되지 않는 다양한 인터페이스들(미도시) 중 임의의 것을 통해 버스(812)에 인터페이싱될 수 있다. 입력 디바이스(832)는 아래에서 추가로 논의되는 디스플레이(836)의 일부이거나 이와 별개일 수 있는 터치 스크린 인터페이스를 포함할 수 있다. 입력 디바이스(832)는 상술한 바와 같이 그래픽 인터페이스에서 하나 이상의 그래픽 표현을 선택하기 위한 사용자 선택 디바이스로서 이용될 수 있다.
사용자는 또한 저장 디바이스(824)(예를 들어, 제거 가능 디스크 드라이브, 플래시 드라이브 등) 및/또는 네트워크 인터페이스 디바이스(840)를 통해 컴퓨터 시스템(800)에 커맨드들 및/또는 다른 정보를 입력할 수 있다. 네트워크 인터페이스 디바이스(840)와 같은 네트워크 인터페이스 디바이스는 컴퓨터 시스템(800)을 네트워크(844) 및 이에 연결된 하나 이상의 원격 디바이스들(848)과 같은 다양한 네트워크들 중 하나 이상에 연결하는 데 이용될 수 있다. 네트워크 인터페이스 디바이스의 예들은 네트워크 인터페이스 카드(예를 들어, 모바일 네트워크 인터페이스 카드, LAN 카드), 모뎀 및 이들의 임의의 조합을 포함하지만 이에 한정되지 않는다. 네트워크의 예들은 광역 네트워크(예를 들어, 인터넷, 기업 네트워크), 근거리 네트워크(예를 들어, 사무실, 건물, 캠퍼스 또는 다른 비교적 소형의 지리적 공간과 연관된 네트워크), 전화 네트워크, 전화/음성 제공자와 연관된 데이터 네트워크(예를 들어, 모바일 통신 제공자 데이터 및/또는 음성 네트워크), 두 컴퓨팅 디바이스들 사이의 직접 연결 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는다. 네트워크(844)와 같은 네트워크는 통신의 유선 및/또는 무선 모드를 채용할 수 있다. 일반적으로, 임의의 네트워크 토폴로지가 사용될 수 있다. 정보(예를 들어, 데이터, 소프트웨어(820) 등)는 네트워크 인터페이스 디바이스(840)를 통해 컴퓨터 시스템(800)으로 및/또는 컴퓨터 시스템(800)으로부터 전달될 수 있다.
컴퓨터 시스템(800)은 디스플레이 디바이스(836)와 같은 디스플레이 디바이스에 표시 가능한 이미지를 전달하기 위한 비디오 디스플레이 어댑터(852)를 추가로 포함할 수 있다. 디스플레이 디바이스의 예들은 액정 디스플레이(LCD: liquid crystal display), 음극선관(CRT: cathode ray tube), 플라즈마 디스플레이, 발광 다이오드(LED: light emitting diode) 디스플레이 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는다. 디스플레이 어댑터(852) 및 디스플레이 디바이스(836)는 본 개시의 양태들의 그래픽 표현들을 제공하기 위해 프로세서(804)와 조합하여 이용될 수 있다. 디스플레이 디바이스에 추가하여, 컴퓨터 시스템(800)은 오디오 스피커, 프린터 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는 하나 이상의 다른 주변 출력 디바이스들을 포함할 수 있다. 이러한 주변 출력 디바이스들은 주변 인터페이스(856)를 통해 버스(812)에 연결될 수 있다. 주변 인터페이스의 예들은 직렬 포트, USB 연결, FIREWIRE 연결, 병렬 연결 및 이들의 임의의 조합들을 포함하지만 이에 한정되지 않는다.
본원에 설명된 양태들 및 실시예들 중 임의의 하나 이상은 컴퓨터 기술의 통상의 기술자에게 명백한 바와 같이, 본 명세서의 교시들에 따라 프로그래밍된 하나 이상의 기계들(예를 들어, 전자 문서에 대한 사용자 디코더 및/또는 인코더로서 이용되는 하나 이상의 디코더 및/또는 인코더, 문서 서버와 같은 하나 이상의 서버 디바이스들 등)을 사용하여 편리하게 구현될 수 있다는 점에 유의해야 한다. 적절한 소프트웨어 코딩은 소프트웨어 기술의 통상의 기술자에게 명백한 바와 같이, 본 개시의 교시들에 기초하여 숙련된 프로그래머들에 의해 용이하게 준비될 수 있다. 소프트웨어 및/또는 소프트웨어 모듈들을 채용하는 위에서 논의된 양태들 및 구현들은 또한 소프트웨어 및/또는 소프트웨어 모듈의 기계 실행 가능 명령들의 구현을 지원하기 위한 적절한 하드웨어를 포함할 수 있다.
상술한 내용은 본 발명의 예시적인 실시예들에 대한 상세한 설명이었다. 본 발명의 사상과 범위를 벗어나지 않으면서 다양한 수정들과 추가들이 이루어질 수 있다. 상술한 다양한 실시예들 각각의 피처들은 관련된 새로운 실시예들에서 복수의 피처 조합들을 제공하기 위해 적절하게 다른 설명된 실시예들의 피처들과 조합될 수 있다. 추가로, 상술한 내용은 다수의 개별 실시예들을 설명하지만, 본원에 설명된 내용은 단지 본 발명의 원리들을 적용하는 예시일 뿐이다. 또한, 본원의 특정 방법들이 특정 순서로 수행되는 것으로 예시 및/또는 설명될 수 있지만, 본원에 개시된 실시예들을 달성하기 위해 순서는 본 기술 분야의 통상의 기술자 내에서 매우 가변적이다.
따라서, 이러한 설명은 단지 예시의 방식으로 취해진 것이며, 본 발명의 범위를 달리 제한하려는 것이 아니다.
위의 설명 및 청구항들에서, "~ 중 적어도 하나" 또는 "~ 중 하나 이상"과 같은 문구 뒤에 엘리먼트들 또는 피처들의 연결 리스트가 나타날 수 있다. "및/또는"이라는 용어가 또한 둘 이상의 엘리먼트들 또는 피처들의 리스트에서 나타날 수 있다. 사용되는 문맥에 의해 달리 암시적으로 또는 명시적으로 모순되지 않는 한, 이러한 문구는 나열된 엘리먼트들 또는 피처들 중 임의의 것을 개별적으로 의미하거나, 언급된 엘리먼트들 또는 피처들 중 임의의 것을 언급된 다른 엘리먼트들 또는 피처들과 조합하여 의미하도록 의도된다. 예를 들어, "A와 B 중 적어도 하나;", "A와 B 중 하나 이상" 및 "A 및/또는 B"라는 문구들은 각각 "A 단독, B 단독 또는 A와 B 함께"를 의미하도록 의도된다. 3 개 이상의 항목들을 포함하는 리스트들에 대해서도 유사한 해석이 의도된다. 예를 들어, "A, B 및 C 중 적어도 하나;", "A, B 및 C 중 하나 이상" 및 "A, B 및/또는 C"라는 문구들은 각각 "A 단독, B 단독, C 단독, A와 B 함께, A와 C 함께, B와 C 함께, 또는 A와 B와 C 함께"를 의미하도록 의도된다. 또한, 위의 내용과 및 청구항들에서 "~에 기초하여"라는 용어의 사용은 "적어도 부분적으로 ~에 기초하여"를 의미하도록 의도되어, 인용되지 않은 피처 또는 엘리먼트도 허용될 수 있다.
본원에 설명된 주제는 원하는 구성에 따라 시스템들, 장치, 방법들 및/또는 물품들로 구현될 수 있다. 앞선 설명에 제시된 구현들은 본원에 설명된 주제와 일치하는 모든 구현들을 나타내는 것은 아니다. 대신, 이들은 설명된 주제와 관련된 양태들과 일치하는 일부 예들일 뿐이다. 위에 몇몇 변형들이 상세히 설명되어 있지만, 다른 수정들 또는 추가들이 가능하다. 특히, 본원에 제시된 것 외에 추가적인 피처들 및/또는 변형들이 제공될 수 있다. 예를 들어, 상술된 구현들은 개시된 피처들의 다양한 조합들 및 하위-조합들 및/또는 위에서 개시된 몇몇 추가 피처들의 조합들 및 하위-조합들에 관한 것일 수 있다. 또한, 첨부 도면들에 묘사되고/묘사되거나 본원에 설명된 논리 흐름들은 바람직한 결과들을 달성하기 위해 도시된 특정 순서 또는 순차적 순서를 반드시 필요로 하는 것은 아니다. 다른 구현들이 이하의 청구항들의 범위 내에 있을 수 있다.
Claims (11)
- 비디오 컴포넌트와 피처(feature) 컴포넌트를 지원하는 비디오 비트스트림용 하이브리드 디코더로서,
비트스트림을 수신하고, 수신된 상기 비트스트림을 비디오 컴포넌트들과 피처 컴포넌트들로 파싱(parsing)하는 디멀티플렉서;
상기 디멀티플렉서에 커플링되어 상기 비트스트림의 상기 비디오 컴포넌트들을 수신하는 비디오 디코더;
상기 디멀티플렉서에 커플링되어 상기 비트스트림의 상기 피처 컴포넌트들을 수신하는 피처 디코더 ― 상기 피처 디코더는 추가적으로 상기 비디오 디코더에 커플링되어 비디오 디코딩을 용이하게 하기 위해 피처 데이터를 상기 비디오 디코더에 선택적으로 제공함 ―;
상기 피처 디코더에 커플링된 기계 모델을 포함하고,
상기 하이브리드 디코더는 상기 비트스트림의 상기 비디오 컴포넌트들 및 상기 피처 컴포넌트들을 독립적으로 디코딩하기 위한 제1 디코딩 모드 및 상기 비트스트림의 피처 컴포넌트들을 부분적으로 사용하여 상기 비트스트림의 비디오 컴포넌트들을 디코딩하기 위한 제2 디코딩 모드를 갖는, 하이브리드 디코더. - 제1 항에 있어서,
상기 비트스트림의 상기 비디오 컴포넌트들은 피처 데이터와 입력 비디오 데이터 사이의 차이를 인코딩함으로써 획득된 잔차 데이터를 포함하고, 상기 피처 디코더는 상기 제2 디코딩 모드에서 상기 비디오 디코더에 피처 데이터를 제공하는, 하이브리드 디코더. - 제1 항에 있어서,
상기 디코딩 모드는 상기 비트스트림의 속성들에 기초하여 상기 디코더에 의해 결정되는, 하이브리드 디코더. - 제3 항에 있어서,
하이브리드 비트스트림은 복수의 세그먼트들을 포함하고, 각각의 세그먼트는 하이브리드 크기 컴포넌트를 포함하는 상기 피처 및 비디오 컴포넌트들을 정의하는 복수의 컴포넌트들을 포함하고, 상기 디코딩 모드는 상기 하이브리드 크기 컴포넌트의 특징들에 의해 적어도 부분적으로 결정되는, 하이브리드 디코더. - 제4 항에 있어서,
각각의 세그먼트는 개별적으로 디코딩되고 상기 디코딩 모드는 각각의 세그먼트에 대해 결정되는, 하이브리드 디코더. - 피처 컴포넌트들과 비디오 컴포넌트들을 갖는 인코딩된 하이브리드 비디오 데이터에 대한 비트스트림 구조로서, 상기 비트스트림은,
복수의 하이브리드 비트스트림 세그먼트들을 포함하고, 각각의 비트스트림 세그먼트는 복수의 컴포넌트들을 포함하고, 상기 복수의 컴포넌트들은,
하이브리드 크기 컴포넌트;
메타데이터(metadata) 컴포넌트;
피처 헤더;
피처 페이로드(payload);
비디오 헤더; 및
비디오 페이로드를 포함하는, 비트스트림 구조. - 하이브리드 비트스트림을 생성하기 위한 하이브리드 인코더로서,
입력 비디오 스트림을 수신하고 비디오 프로세싱 및 피처 프로세싱을 위해 상기 비디오 스트림을 멀티플렉싱하는 사전 프로세서;
상기 비트스트림에 포함시키기 위해 사람이 볼 수 있도록 비디오 컨텐츠를 압축 및 인코딩하는 비디오 인코더,
후속 기계 프로세싱을 위한 피처 추출을 위한 파라미터들을 제공하는 기계 모델에 커플링되고, 상기 비디오 인코더에 동작 가능하게 커플링되어 상기 비디오 디코더에 피처 데이터를 선택적으로 제공하는 피처 추출기;
상기 피처 추출기로부터 피처 데이터를 수신하고 하이브리드 비트스트림에 포함시키기 위해 상기 피처 데이터를 인코딩하는 피처 인코더; 및
상기 비디오 인코더 및 상기 피처 인코더에 커플링되어 상기 피처 인코더로부터 하이브리드 비트스트림을 생성하는 멀티플렉서를 포함하는, 하이브리드 인코더. - 제7 항에 있어서,
상기 인코더는 상기 비트스트림의 비디오 컴포넌트들 및 피처 컴포넌트들을 독립적으로 인코딩하기 위한 적어도 제1 인코딩 모드 및 상기 피처 인코더의 피처 컴포넌트들을 부분적으로 사용하여 상기 비트스트림의 상기 비디오 컴포넌트들을 인코딩하기 위한 제2 인코딩 모드에서 동작하는, 하이브리드 인코더. - 제8 항에 있어서,
상기 제2 인코딩 모드에서, 상기 비디오 인코더는 피처 데이터와 입력 비디오 데이터 사이의 차이를 인코딩함으로써 잔차 데이터를 생성하는, 하이브리드 인코더. - 제1 항에 있어서,
상기 하이브리드 비트스트림은 복수의 하이브리드 비트스트림 세그먼트들을 포함하고, 각각의 비트스트림 세그먼트는 복수의 컴포넌트들을 포함하고, 상기 복수의 컴포넌트들은,
하이브리드 크기 컴포넌트;
메타데이터 컴포넌트;
피처 헤더;
피처 페이로드;
비디오 헤더; 및
비디오 페이로드를 포함하는, 하이브리드 인코더. - 제7 항에 있어서,
상기 비디오 인코더 및 상기 피처 인코더에 커플링된 최적화기를 더 포함하고, 상기 최적화기는 상기 비트스트림에 포함시키기 위해 상기 비디오 및 피처 데이터를 추가로 인코딩하는, 하이브리드 인코더.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202163178352P | 2021-04-22 | 2021-04-22 | |
US63/178,352 | 2021-04-22 | ||
PCT/US2022/025584 WO2022226087A1 (en) | 2021-04-22 | 2022-04-20 | Systems, methods and bitstream structure for hybrid feature video bitstream and decoder |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20230175240A true KR20230175240A (ko) | 2023-12-29 |
Family
ID=83723135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020237039360A KR20230175240A (ko) | 2021-04-22 | 2022-04-20 | 하이브리드 피처 비디오 비트스트림 및 디코더를 위한 시스템들, 방법들 및 비트스트림 구조 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20240114147A1 (ko) |
EP (1) | EP4327555A1 (ko) |
JP (1) | JP2024514681A (ko) |
KR (1) | KR20230175240A (ko) |
CN (1) | CN117356092A (ko) |
WO (1) | WO2022226087A1 (ko) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2024149394A1 (en) * | 2023-01-13 | 2024-07-18 | Douyin Vision Co., Ltd. | Method, apparatus, and medium for visual data processing |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7876966B2 (en) * | 2003-03-11 | 2011-01-25 | Spyder Navigations L.L.C. | Switching between coding schemes |
WO2012034690A1 (en) * | 2010-09-14 | 2012-03-22 | Panasonic Corporation | Limitation of error propagation in line-based prediction for intra coding |
WO2013061584A1 (ja) * | 2011-10-28 | 2013-05-02 | パナソニック株式会社 | 音信号ハイブリッドデコーダ、音信号ハイブリッドエンコーダ、音信号復号方法、及び音信号符号化方法 |
WO2016098056A1 (en) * | 2014-12-18 | 2016-06-23 | Nokia Technologies Oy | An apparatus, a method and a computer program for video coding and decoding |
EP3718306B1 (en) * | 2017-12-08 | 2023-10-04 | Huawei Technologies Co., Ltd. | Cluster refinement for texture synthesis in video coding |
-
2022
- 2022-04-20 KR KR1020237039360A patent/KR20230175240A/ko unknown
- 2022-04-20 CN CN202280036229.3A patent/CN117356092A/zh active Pending
- 2022-04-20 JP JP2023564047A patent/JP2024514681A/ja active Pending
- 2022-04-20 WO PCT/US2022/025584 patent/WO2022226087A1/en active Application Filing
- 2022-04-20 EP EP22792426.3A patent/EP4327555A1/en active Pending
-
2023
- 2023-10-16 US US18/380,316 patent/US20240114147A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20240114147A1 (en) | 2024-04-04 |
JP2024514681A (ja) | 2024-04-02 |
EP4327555A1 (en) | 2024-02-28 |
CN117356092A (zh) | 2024-01-05 |
WO2022226087A1 (en) | 2022-10-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6882560B2 (ja) | 画像予測方法および装置 | |
JP2022529508A (ja) | インタ予測における大域的運動制約運動ベクトル | |
JP2022523309A (ja) | 指数関数的分割におけるインター予測 | |
JP2022531131A (ja) | インタ予測における融合モード候補のための大域的運動 | |
JP2022524916A (ja) | 適応的な数の領域を伴う幾何学的分割のための形状適応離散コサイン変換 | |
US20230239464A1 (en) | Video processing method with partial picture replacement | |
JP2022523697A (ja) | 適応的な数の領域を伴う幾何学的分割におけるインター予測 | |
JP2022529735A (ja) | 大域的運動ベクトルの効率的なコーディング | |
KR20220016266A (ko) | 글로벌 모션 벡터에 기초한 병합 후보 재정렬기 | |
JP2023105073A (ja) | 大域的運動を伴うフレームにおける適応型運動ベクトル予測候補 | |
JP2023093765A (ja) | 大域的運動を伴うフレームにおける選択的運動ベクトル予測候補 | |
US20240114147A1 (en) | Systems, methods and bitstream structure for hybrid feature video bitstream and decoder | |
JP2022529509A (ja) | 大域的運動を伴うフレームにおける候補 | |
JP2022530411A (ja) | ピクチャヘッダ内の大域的運動ベクトルの信号伝達 | |
WO2023164020A2 (en) | Systems, methods and bitstream structure for video coding and decoding for machines with adaptive inference | |
TW202147850A (zh) | 用於組合無損和有損寫碼之方法和系統 | |
JP2022529736A (ja) | 運動ベクトルインタ予測のための大域的運動モデル | |
US11985318B2 (en) | Encoding video with extended long term reference picture retention | |
US20240297998A1 (en) | Encoding video with extended long term reference picture retention | |
JP2023105072A (ja) | ピクチャヘッダ内の大域的運動ベクトルの信号伝達 | |
KR20210118155A (ko) | 연장된 장기 참조 픽처 보유의 명시적 시그널링 | |
KR20230002534A (ko) | 결합된 무손실 및 손실 코딩을 위한 방법들 및 시스템들 | |
CN118020290A (zh) | 用存储器高效预测模式选择来编码和解码视频的系统和方法 |