KR102613286B1 - Bit rate control for groups of frames - Google Patents
Bit rate control for groups of frames Download PDFInfo
- Publication number
- KR102613286B1 KR102613286B1 KR1020197034811A KR20197034811A KR102613286B1 KR 102613286 B1 KR102613286 B1 KR 102613286B1 KR 1020197034811 A KR1020197034811 A KR 1020197034811A KR 20197034811 A KR20197034811 A KR 20197034811A KR 102613286 B1 KR102613286 B1 KR 102613286B1
- Authority
- KR
- South Korea
- Prior art keywords
- frames
- frame
- group
- bit allocation
- bit
- Prior art date
Links
- 239000000872 buffer Substances 0.000 claims abstract description 214
- 238000012545 processing Methods 0.000 claims abstract description 115
- 238000000034 method Methods 0.000 claims abstract description 51
- 230000008569 process Effects 0.000 claims description 15
- 230000003139 buffering effect Effects 0.000 claims description 5
- 238000003672 processing method Methods 0.000 claims description 5
- 238000003860 storage Methods 0.000 description 30
- 238000004891 communication Methods 0.000 description 15
- 230000007704 transition Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 9
- 230000008878 coupling Effects 0.000 description 7
- 238000010168 coupling process Methods 0.000 description 7
- 238000005859 coupling reaction Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 7
- 241001408627 Agriopis marginaria Species 0.000 description 6
- 238000009826 distribution Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000001413 cellular effect Effects 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000007613 environmental effect Effects 0.000 description 3
- 239000007789 gas Substances 0.000 description 3
- 230000014509 gene expression Effects 0.000 description 3
- 238000004088 simulation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 210000004556 brain Anatomy 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 230000036962 time dependent Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000036772 blood pressure Effects 0.000 description 1
- 230000036760 body temperature Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000003344 environmental pollutant Substances 0.000 description 1
- 230000001815 facial effect Effects 0.000 description 1
- 230000008921 facial expression Effects 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 230000004941 influx Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 231100000719 pollutant Toxicity 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000010926 purge Methods 0.000 description 1
- 230000008261 resistance mechanism Effects 0.000 description 1
- 230000002207 retinal effect Effects 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 210000004243 sweat Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
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/146—Data rate or code amount at the encoder output
- H04N19/152—Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L19/00—Speech or audio signals analysis-synthesis techniques for redundancy reduction, e.g. in vocoders; Coding or decoding of speech or audio signals, using source filter models or psychoacoustic analysis
- G10L19/002—Dynamic bit allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/70—Media network packetisation
-
- 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/115—Selection of the code volume for a coding unit prior to coding
-
- 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/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/146—Data rate or code amount at the encoder output
- H04N19/15—Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
-
- 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/17—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 an image region, e.g. an object
- H04N19/172—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 an image region, e.g. an object the region being a picture, frame or field
-
- 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/177—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 a group of pictures [GOP]
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Computer Networks & Wireless Communication (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
프레임의 순차적인 일련의 그룹으로부터, 일련의 프레임의 특정 그룹에 대한 타겟 평균 처리 비트 레이트를 달성하기 위해 데이터를 처리하는 시스템 및 방법이 설명된다. 예에서, 룩 어헤드 버퍼 회로는 프레임의 특정 그룹으로부터 다수의 프레임으로 채워질 수 있고, 비트 할당은 버퍼 내의 모든 프레임에 관한 비트 요청 정보를 사용하여 룩 어헤드 버퍼 회로 내의 프레임에 대해 결정될 수 있다. 룩 어헤드 버퍼 회로는 선입선출 방식으로 스트리밍 프레임 정보로 채워질 수 있고, 비트 할당 처리는 룩 어헤드 버퍼 회로 내 프레임 위치에 기초하여 그리고 룩 어헤드 버퍼 회로 내 다른 프레임과 연관된 비트 요청에도 기초하여, 프레임의 특정 그룹 내의 각 프레임에 대해 수행될 수 있다.Systems and methods are described for processing data from a sequential series of groups of frames to achieve a target average processing bit rate for a particular group of frames in the series. In an example, a look ahead buffer circuit may be populated with a number of frames from a particular group of frames, and bit allocations may be determined for frames within the look ahead buffer circuit using bit request information for all frames within the buffer. The look-ahead buffer circuit may be populated with streaming frame information in a first-in-first-out manner, with bit allocation processing based on frame positions within the look-ahead buffer circuit and also based on bit requests associated with other frames within the look-ahead buffer circuit. It can be performed for each frame within a specific group of frames.
Description
우선권 주장claim priority
본 특허 출원은 2017년 4월 26일자로 출원된 U.S. 가출원 No. 62/490,165의 우선권의 이득을 주장하며, 가출원은 본 출원에서 그 전체가 참조로 포함된다.This patent application is a U.S. patent application filed on April 26, 2017. Provisional application no. No. 62/490,165, the provisional application is hereby incorporated by reference in its entirety.
배경background
가변 비트 레이트(variable bit rate) 코덱은 이를테면 네트워크를 통한 정보 전송의 처리량을 더 높일 수 있도록 하기 위해, 데이터를 압축할 수 있고, 그리고 사용을 위해 또는 추가 처리를 위해 데이터를 압축 해제할 수 있는 디바이스, 명령어 또는 컴퓨터 구현된 프로그램을 포함할 수 있다. 예에서, 가변 비트 레이트 코덱은 프레임의 그룹에 대해 명시된 비트 레이트 또는 평균 비트 레이트를 보장하지 않을 수 있다. 일부 예에서, 프레임 또는 비트 패킷을 더 작은 개별 부분으로 절단하여, 이를테면 주어진 오디오 또는 비디오 세그먼트의 경우, 부분이 명시된 평균 비트 레이트 타겟 내에 딱 들어 맞을 수 있도록 하는 다른 프레임 처리가 제공된다. 그러나, 이러한 패킷화는 처리 부하를 증가시키기 때문에 바람직하지 않을 수 있다.A variable bit rate codec is a device that can compress data and decompress it for use or further processing, for example, to enable higher throughput of information transmission over a network. , may include instructions or computer-implemented programs. In an example, a variable bit rate codec may not guarantee a specified bit rate or average bit rate for a group of frames. In some examples, frames or bit packets can be split into smaller Different frame processing is provided to cut into individual parts, such as for a given audio or video segment, to ensure that the parts fit within a specified average bit rate target. However, such packetization may be undesirable because it increases processing load.
일부 예에서, 비트 저장소(bit reservior)는 전체 비트 레이트 변동을 제한하기 위해 사용될 수 있다. 비트 저장소는 프레임별 비트 할당의 변동을 이를테면 비트 페이로드의 한 프레임으로 제한하기 위해 사용될 수 있다. 그러나 비트 저장소 접근 방식에는 몇 가지 단점이 있다. 하나의 단점은 프레임 그룹에 대해 타겟 평균 비트 레이트를 만족시킨다는 보장이 없다는 것이다. 다른 하나의 단점은 하나의 프레임이 저장소를 고갈시킬 수 있고, 그러면 다음에 프레임 내의 정보를 충분히 인코딩하기 위해서는 원하는 것보다 적은 수의 비트를 수신할 수 있다는 것이다. 이것은 현재 정보를 인코딩하는 데 더 적은 수의 비트가 이용 가능할 때, 현재 정보가 현재 정보에 선행하거나 또는 후행하는 정보보다 지각적으로 더 중요할 때 특히 문제가 될 수 있다.In some examples, bit reservoir may be used to limit overall bit rate fluctuations. Bit storage can be used to limit changes in bit allocation per frame to, say, one frame of bit payload. However, the bit storage approach has some drawbacks. One drawback is that there is no guarantee that the target average bit rate will be met for a group of frames. Another drawback is that one frame may exhaust storage, and then the next frame may receive fewer bits than desired to sufficiently encode the information within the frame. This can be particularly problematic when fewer bits are available to encode the current information and when the current information is perceptually more important than information that precedes or follows the current information.
본 발명자는 해결해야 할 과제가 이를테면 오디오, 비디오 또는 다른 데이터 프로세서 또는 코덱의 경우, 프레임의 그룹에 대해 명시된 비트 레이트 또는 평균 비트 레이트를 제공하는 것을 포함한다는 것을 인식하였다. 예를 들어, 과제는 전용의 비트 저장소없이 명시된 평균 비트 레이트를 보장하는 것을 포함할 수 있다. 예에서, 과제는 프레임의 전체 그룹 또는 더 큰 데이터 패킷의 콘텐츠에 관한 사전 지식없이 연속적으로 도달하는 프레임 기반 데이터를 인코딩하려는 비트 요청을 관리하는 것을 포함한다.The inventors have recognized that the challenge includes providing a specified bit rate or average bit rate for a group of frames, such as in the case of an audio, video or other data processor or codec. For example, a task may include ensuring a specified average bit rate without dedicated bit storage. In an example, the task includes managing bit requests to encode sequentially arriving frame-based data without prior knowledge regarding the content of the entire group of frames or the larger data packet.
위에서 설명된 과제에 대한 해결책은 프레임의 제1 그룹(F1)과 같은 프레임의 특정 그룹 내 프레임에 대응하는 다수의 비트 요청을 수신하기 위한 룩 어헤드 처리 버퍼(look-ahead processing buffer) 또는 버퍼 회로를 포함하거나 사용할 수 있다. 프레임의 특정 그룹 내 각각의 프레임에 대한 각각의 비트 요청은 최소 또는 최대 비트 레이트, 상대적 중요성(예를 들어, 지각 중요성(perceptual importance)), 또는 다른 제약 또는 특성과 같은 다양한 제약을 포함할 수 있거나 또는 이와 연관될 수 있다. 예를 들어, 프레임의 제1 그룹(F1)으로부터의 프레임의 제1 세트는 룩 어헤드 처리 버퍼를 채울 수 있고, 제1 세트와 연관된 비트 요청은 프로세서 회로에 의해 함께 처리되거나 분석되어, 제약에 기초하여 이용 가능한 비트를 룩 어헤드 처리 버퍼 내의 하나 이상의 프레임에 가장 잘 할당하는 방법을 결정할 수 있다. 예를 들어, 프로세서 회로는 프레임의 제1 세트에서 가장 먼저 수신된 프레임에 비트를 할당하고, 그런 다음 룩 어헤드 처리 버퍼는 선입선출 방식으로 가장 먼저 수신된 프레임을 퍼지(purge)하고 나중에 수신된 프레임을 포함시키도록 업데이트된다. 그 다음에 프로세서는 업데이트된 룩 어헤드 처리 버퍼에 대응하는 비트 요청을 분석하여 업데이트된 버퍼 내의 하나 이상의 프레임에 비트를 할당할 수 있다. 예에서, 경계, 프레임 카운트 또는 프레임의 그룹에 관한 다른 정보는 선험적으로 알고 있을 필요가 없으며, 일부 예에서는 이를테면 본 명세서에서 논의되는 시스템 및 방법을 사용하여, 명시된 타겟 또는 평균 비트 레이트를 달성하는 처리 과정 동안 변경될 수 있다.A solution to the problem described above is a look-ahead processing buffer or buffer circuit for receiving multiple bit requests corresponding to frames within a particular group of frames, such as the first group of frames (F1). Can include or use. Each bit request for each frame within a particular group of frames may include various constraints, such as minimum or maximum bit rate, relative importance (e.g., perceptual importance), or other constraints or characteristics. Or it may be related to this. For example, a first set of frames from a first group of frames (F1) may fill a look ahead processing buffer, and the bit requests associated with the first set may be processed or analyzed together by the processor circuitry to meet the constraints. Look ahead processing of available bits based on You can determine how best to allocate one or more frames within the buffer. For example, the processor circuitry may assign a bit to the earliest received frame in a first set of frames, and then the look-ahead processing buffer may purge the earliest received frame in a first-in-first-out manner and the later received frame. Updated to include frames. The processor may then analyze the bit requests corresponding to the updated look ahead processing buffer and assign bits to one or more frames within the updated buffer. In examples, boundaries, frame counts, or other information regarding groups of frames need not be known a priori, and in some examples, processing to achieve a specified target or average bit rate, such as using the systems and methods discussed herein. It may change during the process.
예에서, 과제는 오디오 또는 비디오 정보가 나중에 사용을 위해 또는 추가 처리를 위해 추출되거나 압축 해제될 때 아티팩트 또는 왜곡의 지각을 최소화하면서 오디오 또는 비디오 압축을 프레임 기반 오디오 또는 비디오 데이터에 적용하는 방법을 결정하는 것을 포함할 수 있다. 본 발명자는 과제에 대한 해결책이 인간의 청각 또는 시각의 본래의 제한을 고려하는 것, 및 이를테면 타겟 또는 평균 비트 레이트 제약을 만족시키면서 그러한 제한에 기초하여 코덱 비트 할당을 조정하는 것을 포함할 수 있음을 인식하였다.In an example, the task is to determine how to apply audio or video compression to frame-based audio or video data while minimizing the perception of artifacts or distortion when the audio or video information is extracted or decompressed for later use or further processing. It may include: The inventors note that a solution to the problem may include taking into account the inherent limitations of human hearing or vision, and adjusting the codec bit allocation based on such limitations while satisfying, for example, target or average bit rate constraints. recognized.
이러한 개요는 본 특허 출원의 주제의 요약을 제공하려는 것이다. 이것은 본 발명의 배타적이거나 또는 하나도 빠짐없는 설명을 제공하려는 것은 아니다. 상세한 설명은 본 특허 출원에 관한 추가의 정보를 제공하기 위해 포함된다.This summary is intended to provide a summary of the subject matter of this patent application. It is not intended to provide an exclusive or exhaustive description of the invention. The detailed description is included to provide additional information regarding this patent application.
반드시 축척대로 도시된 것이 아닌 도면에서, 유사한 숫자는 상이한 도면에서 유사한 컴포넌트를 설명할 수 있다. 상이한 문자의 접미사를 갖는 유사한 숫자는 유사한 컴포넌트의 상이한 인스턴스를 나타낼 수 있다. 도면은 본 문서에서 논의된 다양한 실시예를 일반적으로 예로서 도시하지만, 제한적인 것으로 도시하지는 않는다.
도 1은 일반적으로 프레임 기반 데이터를 위한 처리 디바이스를 포함하거나 사용할 수 있는 시스템의 예를 도시한다.
도 2는 일반적으로 n 개 프레임을 포함하는 프레임의 제1 그룹(F1)의 예를 도시한다.
도 3은 일반적으로 프레임의 제1 그룹(F1) 및 룩 어헤드 버퍼 회로에 대한 버퍼 인스턴스(buffer instance)의 예를 도시한다.
도 4는 일반적으로 프레임의 제1 그룹(F1) 및 룩 어헤드 버퍼 회로에 대한후속 버퍼 인스턴스의 예를 도시한다.
도 5는 일반적으로 프레임의 제1 그룹(F1) 및 룩 어헤드 버퍼 회로에 대한 추가의 후속 버퍼 인스턴스의 예를 도시한다.
도 6은 일반적으로 제1 프레임 그룹(F1)의 처리로부터 프레임의 제2 그룹(F2)의 처리로의 전이의 시작을 포함하는 예를 도시한다.
도 7은 일반적으로 프레임의 인접한 그룹 사이에서 계속되는 전이 및 프레임의 제1 그룹(F1)에 대한 마지막 버퍼 인스턴스를 포함하는 예를 도시한다.
도 8은 일반적으로 프레임의 제1 그룹(F1)으로부터 프레임의 제2 그룹(F2)으로의 전이를 완료하는 것을 포함하는 예를 도시한다.
도 9는 일반적으로 프레임의 그룹 내 상이한 프레임에 대한 각각의 비트 할당을 결정하는 단계를 포함할 수 있는 방법의 예를 도시한다.
도 10은 본 명세서에서 논의되는 방법론 중 임의의 하나 이상의 방법론을 수행하도록 구성될 수 있는 머신의 컴포넌트를 도시하는 블록도이다.In drawings that are not necessarily drawn to scale, like numbers may describe similar components in different drawings. Similar numbers with suffixes of different letters may represent different instances of similar components. The drawings illustrate the various embodiments discussed herein generally by way of example, but not by way of limitation.
1 generally shows an example of a system that may include or use a processing device for frame-based data.
Figure 2 shows an example of a first group F1 of frames, generally comprising n frames.
Figure 3 shows an example of a buffer instance for a first group of frames (F1) and a look ahead buffer circuit generally.
Figure 4 generally shows an example of a first group of frames (F1) and subsequent buffer instances for a look ahead buffer circuit.
Figure 5 shows an example of a first group of frames (F1) generally and additional subsequent buffer instances for the look ahead buffer circuit.
Figure 6 shows an example generally involving the start of a transition from processing a first group of frames (F1) to processing a second group (F2) of frames.
Figure 7 shows an example generally involving subsequent transitions between adjacent groups of frames and the last buffer instance for the first group of frames (F1).
Figure 8 shows an example that generally involves completing a transition from a first group of frames (F1) to a second group of frames (F2).
Figure 9 shows an example of a method that may generally include determining each bit assignment for a different frame within a group of frames.
Figure 10 is a block diagram illustrating components of a machine that can be configured to perform any one or more of the methodologies discussed herein.
오디오, 비디오 또는 다른 데이터 신호를 인코딩 또는 디코딩하기 위한 것과 같이, 프레임의 순차적인 일련의 그룹으로부터 데이터를 처리하기 위한 시스템, 방법 및 디바이스의 예를 포함하는 다음의 설명에서, 상세한 설명의 일부를 형성하는 첨부 도면이 참조된다. 도면은 예시로서 본 명세서에 개시된 본 발명이 실시될 수 있는 특정 실시예를 도시한다. 이러한 실시예는 일반적으로 본 명세서에서 "예"라고 지칭된다. 이러한 예는 도시되거나 설명된 것 이외에 요소를 포함할 수 있다. 그러나, 본 발명자는 또한 도시되거나 설명된 이러한 요소만이 제공되는 예를 고려한다. 본 발명자는 본 명세서에 도시되거나 설명된 특정 예(또는 특정 예의 하나 이상의 양태)와 관련하여 또는 다른 예(또는 다른 예의 하나 이상의 양태)와 관련하여, 도시되거나 설명된 이러한 요소의 임의의 조합 또는 순열을 사용하는 예를 고려한다.The following description, which includes examples of systems, methods and devices for processing data from a sequential series of groups of frames, such as for encoding or decoding audio, video or other data signals, forms a part of the detailed description. Reference is made to the accompanying drawings. The drawings illustrate, by way of example, specific embodiments in which the invention disclosed herein may be practiced. These embodiments are generally referred to herein as “examples.” These examples may include elements other than those shown or described. However, the inventors also consider examples in which only those elements shown or described are provided. The inventors do not wish to use any combination or permutation of such elements as shown or described, either with respect to a particular example (or one or more aspects of a particular example) shown or described herein or in connection with another example (or one or more aspects of another example). Consider an example using .
가변 비트 레이트(variable bit rate)(VBR)를 갖는 신호는 오디오, 비디오, 전기통신, 컴퓨팅 및 다른 신호 처리에서 사용된다. 고정 비트 레이트(constant bit rate)(CBR) 신호와 대조적으로, VBR 신호는 주어진 기간 또는 시간 세그먼트 동안 비트 또는 데이터의 양 또는 수량이 달라질 수 있다. 예에서, VBR 신호는 신호의 더 복잡한 부분 또는 정보가 많은 부분에 상대적으로 더 큰 비트 레이트를 할당할 수 있고, 덜 복잡한 부분 또는 덜 필수적인 부분에 상대적으로 더 작은 비트 레이트를 할당할 수 있다. 그러나, 특정 신호 또는 파일에 대해 명시된 평균 비트 레이트(또는 비트 레이트의 평균 범위)를 유지하는 것이 바람직할 수 있다. 가변 비트 레이트 인코딩을 사용하는 포맷의 예는 MP3, WMA, 및 AAC 오디오 파일 포맷, 또는 MPEG-2, MPEG-4, 및 Dirac 비디오 파일 포맷을 포함한다.Signals with variable bit rate (VBR) are used in audio, video, telecommunications, computing and other signal processing. In contrast to constant bit rate (CBR) signals, VBR signals can vary the amount or quantity of bits or data during a given period or time segment. In an example, a VBR signal may allocate a relatively larger bit rate to more complex or information-rich portions of the signal and a relatively smaller bit rate to less complex or less essential portions. However, it may be desirable to maintain a specified average bit rate (or average range of bit rates) for a particular signal or file. Examples of formats that use variable bit rate encoding include MP3, WMA, and AAC audio file formats, or MPEG-2, MPEG-4, and Dirac video file formats.
VBR을 사용하는 것이 CBR보다 몇 가지 장점이 있다. 예를 들어, VBR 인코딩에 의하면, 주어진 데이터 세그먼트에 대해 더 나은 품질 대 공간 비율(quality-to-space ratio)이 달성될 수 있다. VBR에서, 이용 가능한 비트는 보다 유연하게 또는 가변적으로 할당될 수 있고, 그럼으로써 사운드 또는 비디오 정보의 보다 정확한 인코딩이 가능해진다. 예를 들어, 더 적은 수의 비트가 더 적은 분해능을 요구하는 프레임 또는 세그먼트에 할당될 수 있고, 더 많은 수의 비트가 더 중요하거나 지각 가능한 프레임 또는 세그먼트에 할당될 수 있다.Using VBR has several advantages over CBR. For example, with VBR encoding, a better quality-to-space ratio can be achieved for a given data segment. In VBR, the available bits can be allocated more flexibly or variably, thereby allowing more accurate encoding of sound or video information. For example, fewer bits may be assigned to frames or segments that require less resolution, and more bits may be assigned to frames or segments that are more important or perceptible.
그러나, 가변 비트 레이트 처리가 단점이 없는 것은 아니다. 예를 들어, VBR 처리는 CBR보다 인코딩하는 데 더 계산적이고 시간 집약적일 수 있다. 가변 비트 레이트 처리는 스트리밍 데이터와 함께 사용될 때, 이를테면 순간 비트 레이트가 통신 경로의 데이터 레이트를 초과할 때, 다양한 문제를 도입할 수 있다. 그러나, 이러한 문제는 인코딩 중에 순간 비트 레이트 또는 최대 비트 레이트를 제한함으로써 또는 비트 저장소 크기 또는 버퍼 크기를 증가시킴으로써 완화될 수 있다.However, variable bit rate processing is not without drawbacks. For example, VBR processing can be more computational and time-intensive to encode than CBR. Variable bit rate processing can introduce various problems when used with streaming data, such as when the instantaneous bit rate exceeds the data rate of the communication path. However, this problem can be alleviated by limiting the instantaneous bit rate or maximum bit rate during encoding or by increasing the bit storage size or buffer size.
도 1은 일반적으로 프레임 기반 데이터를 위한 처리 배열(100)을 포함하거나 사용할 수 있는 시스템의 예를 도시한다. 처리 배열(100)은 수신된 데이터를 처리하여 타겟 평균 처리 비트 레이트(target average processing bit rate)를 달성하도록 구성될 수 있다. 예에서, 처리 배열(100)은 제1 데이터 입력(110)에서 프레임 기반 데이터(101)를 수신하고 제1 데이터 출력(140)으로부터 인코딩된 데이터(102)를 제공한다. 프레임 기반 데이터(101)는 예를 들어 프레임의 순차적인 일련의 그룹을 포함할 수 있다. 프레임의 그룹은 프레임으로 나누어지거나 분할될 수 있는 오디오, 비디오, 또는 다른 데이터와 신호와 같은 다양한 종류의 데이터를 나타낼 수 있다. 예에서, 각 프레임 또는 각각의 프레임의 그룹은 특정 프레임의 (또는 프레임의 그룹의) 페이로드와 연관된 제약을 포함하거나 영향을 줄 수 있는 헤더 또는 메타데이터 정보를 포함할 수 있다. 예를 들어, 제약은 최소 비트 레이트, 최대 또는 순간 비트 레이트, 상대적 지각 중요성의 표시, 또는 프레임의 페이로드에 관한 다른 유형의 제약 또는 제한을 포함할 수 있다. 예에서, 프레임 또는 프레임 그룹과 연관된 메타데이터는 압축되거나 제거될 수 없는 필수 데이터를 포함할 수 있고, 그래서 최소 비트 레이트의 일부를 소비하여 페이로드에 필요한 대역폭을 더 적게 남겨놓을 수 있다. 메타데이터 자체는 크기가 가변적일 수 있고, 프레임마다 다를 수 있거나, 또는 프레임의 그룹 사이에서 다를 수 있다. 예에서, 프레임 기반 데이터(101)는 이를테면 네트워크를 사용하여 분배될 수 있는, 오디오 및/또는 비디오 데이터의 스트림을 포함한다.1 generally shows an example of a system that may include or use a
예에서, 프레임 기반 데이터(101)의 적어도 일부는 룩 어헤드 버퍼 회로(look-ahead buffer circuit)(120)에서 수신될 수 있다. 룩 어헤드 버퍼 회로(120)는 동일한 크기의 프레임 또는 상이한 크기를 갖는 프레임에 대한 임의의 수의 메모리 위치를 포함할 수 있다. 예에서, 프레임 기반 데이터(101)는 프레임의 일련의 그룹을 포함하고, 프레임의 각각의 그룹은 동일하거나 상이한 수의 프레임을 가질 수 있다. 예에서, 룩 어헤드 버퍼 회로(120) 내 개별 프레임에 대한 다수의 메모리 위치는 프레임의 특정 그룹 내 다수의 프레임보다 적다.In an example, at least a portion of the frame-based
룩 어헤드 버퍼 회로(120)는 프로세서 회로(130)에 결합될 수 있다. 룩 어헤드 버퍼 회로(120)는 룩 어헤드 버퍼 회로(120) 내의 프레임과 연관된 비트 요청 정보를 저장하도록 구성될 수 있거나, 또는 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120)의 프레임과 연관된 비트 요청 정보에 액세스하도록 구성될 수 있다. 프로세서 회로(130)는 또한 룩 어헤드 버퍼 회로(120) 내의 모든 프레임에 대한 비트 요청 정보를 함께 분석하여 룩 어헤드 버퍼 회로(120) 내의 프레임 중 특정 프레임에 대한 비트 할당을 결정하도록 구성될 수 있다. 예에서, 동일한 프로세서 회로(130), 또는 상이한 프로세서 회로 또는 디바이스는 비트 할당이 결정된 프레임 중 특정 프레임을 인코딩하거나 처리하는데 사용될 수 있다. 즉, 프로세서 회로(130)는 제1 데이터 출력(140)에서, 특정 프레임에 대한 비트 할당 결정 중 하나 이상을 제공할 수 있거나, 또는 인코딩된 데이터(102)를 제공할 수 있는, 이를테면 인코딩된 또는 그와 달리 처리된 버전의 특정 프레임을 포함할 수 있다. 하나 이상의 다른 버퍼 회로, 메모리 회로 또는 프로세서 회로는 본 명세서에 설명된 바와 같이 프레임의 저장 및 분석을 수행하기 위한 처리 배열(100)에 포함되거나 또는 처리 배열(100)에서 사용될 수 있다. 개별 프레임과 연관된 또는 개별 프레임에 대응하는 비트 요청은 궁극적으로 프레임을 처리하거나 송신하는 업무를 맡은 시스템에 부여된 모든 제약에 관한 다른 정보 또는 선험적 지식없이 제공될 수 있다. 프로세서 회로(130)는 비트가 이를테면 프레임의 그룹에 대해 할당되는 방법을 조정하거나 제어하여, 명시된 평균 비트 레이트를 만족시키거나 유지하도록 또는 다른 제약을 충족시키도록 구성될 수 있다.The look ahead
도 2 내지 도 8은 일반적으로 처리 배열(100)을 사용하여 프레임 기반 데이터(101)에 대해 인코딩 처리를 수행하는 예를 도시한다. 예에서, 프레임 기반 데이터(101)는 제1 데이터 입력(110)에 순차적으로 도달할 수 있는 프레임의 다양한 그룹을 포함한다. 프레임 기반 데이터(101)의 일부는 룩 어헤드 버퍼 회로(120)에 저장될 수 있고 및/또는 프로세서 회로(130)에 의해 조작될 수 있다. 도면 및 본 명세서 전체에서, 프레임의 그룹은 F1이 가장 먼저 도달하고, F2 가 F1 뒤에 오고, F3이 F2 뒤에 오는 식으로 F1, F2, F3 등과 같이 Fn으로 명시된다. 프레임의 각 그룹은 다수 개의 개별 프레임(Dj)을 포함하며, 개별 프레임의 특정 개수는 프레임의 그룹 간에 다를 수 있다. 프레임의 각 그룹(Fn)은 개별 프레임(Fn0 내지 FnDj)을 포함한다. 프레임의 그룹(Fn) 및 개별 프레임이 본 명세서에서 일반적으로 일렬로 또는 시간 의존적 방식(time-dependent manner)으로 도달하는 것으로 논의되지만, 본 명세서에서 논의되는 다양한 인코딩 및 처리 방법은 프레임 기반 데이터가 일렬이라기보다는 함께 이용 가능할 때, 이를테면 메모리 회로 또는 비트 저장소에서 함께 이용 가능할 때도 마찬가지로 적용될 수 있다.2 to 8 generally show an example of performing encoding processing on frame-based
도 2는 일반적으로 n 개 프레임을 포함하는 프레임의 제1 그룹(F1)의 예를 도시한다. 예에서, 프레임의 제1 그룹(F1)은 개별 프레임(F10, F11, F12, … F1N)을 포함한다. 이 예에서, 각각의 개별 프레임은 각각의 비트 요청(RFn:0 내지 RFn:Dj)과 연관되거나 그에 대응한다. 예에서 각각의 비트 요청은 도시된 바와 같이 프레임에 고유할 수 있지만, 다른 예에서, 비트 요청은 상이하게 분배될 수도 있다. 예를 들어, 특정 프레임과 연관된 비트 요청은 프레임의 동일하거나 상이한 그룹 내 다수의 다른 프레임에 대한 비트 요청 정보를 포함하거나 제공할 수 있다.Figure 2 shows an example of a first group F1 of frames, generally comprising n frames. In the example, the first group (F1) of frames includes individual frames (F1 0 , F1 1 , F1 2 , ... F1 N ). In this example, each individual frame is associated with or corresponds to a respective bit request (R Fn:0 to R Fn:Dj ). In an example each bit request may be unique to a frame as shown, but in other examples the bit requests may be distributed differently. For example, a bit request associated with a particular frame may include or provide bit request information for multiple other frames within the same or different group of frames.
도 2의 예는 룩 어헤드 버퍼 회로(120)에 대한 제1 버퍼 인스턴스(buffer instance)(BF1:0)를 포함한다. 본 명세서에서 사용되는 것으로, 버퍼 인스턴스는 룩 어헤드 버퍼 회로(120)에서 이용 가능한 특정 수의 메모리 위치가 특정 프레임에 의해 점유되거나 또는 점유되지 않는 룩 어헤드 버퍼 회로(120)의 상태를 지칭한다. 다시 말해서, 제1 버퍼 인스턴스(BF1:0)는 제1 내지 제 4 프레임(F10, F11, F12, 및 F13)이 룩 어헤드 버퍼 회로(120)에 저장되거나 이용 가능할 때의 룩 어헤드 버퍼 회로(120)의 상태를 지칭한다. 룩 어헤드 버퍼 회로(120)가 임의의 더 적은 수의 프레임 또는 다른 프레임을 포함하면, 상이한 버퍼 인스턴스가 표시될 것이다.The example of Figure 2 includes a first buffer instance (B F1:0 ) for the look ahead
도 2의 예에서, 본 명세서에 설명된 처리 및 프레임 처리 기술을 용이하게 설명하기 위해, 룩 어헤드 버퍼 회로(120)는 네 개의 메모리 위치를 포함한다. 추가적인 또는 더 적은 수의 메모리 위치가 유사하게 사용될 수 있다. 도 2의 예에서, 룩 어헤드 버퍼 회로(120)의 네 개의 메모리 위치 각각이 점유된다. 그러므로, 룩 어헤드 버퍼 회로(120)는 가득 차 있는 것으로 간주될 수 있고, 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120) 내 프레임에 대응하는 비트 요청(RF1:0 내지 RF1:3)을 수신할 수 있다. 몇몇 도 2 내지 도 8에서 요청은 "REQ"로 약칭된다. 여러 비트 요청(RF1:0 내지 RF1:3) 내 정보에 기초하여, 프로세서 회로(130)는 대응하는 프레임(F10, F11, F12 및 F13) 중 하나 이상의 프레임 사이에 이용 가능한 비트를 할당하는 방법을 결정할 수 있다. 예에서, 프로세서 회로(130)는 비트 요청(RF1:0 내지 RF1:3) 내 정보에 기초하여 룩 어헤드 버퍼 회로(120)에서 가장 먼저 수신된 프레임(예를 들어, 도 2의 예에서, 프레임(F10))에 대한 비트 할당을 결정하도록 구성된다. 다시 말해서, 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120) 내 다수의 프레임과 연관된 정보 또는 비트 요청을 사용하여 룩 어헤드 버퍼 회로(120) 내 하나의 특정 프레임에 대한 비트 할당을 결정하거나 제공할 수 있다. 그런 다음 결정된 비트 할당은 이를테면 동일한 또는 상이한 프로세서 회로(130)를 사용하여, 특정 프레임을 인코딩하는 데 적용될 수 있다.In the example of Figure 2, to facilitate illustration of the processing and frame processing techniques described herein, look ahead
도 3은 일반적으로 프레임의 제1 그룹(F1) 및 룩 어헤드 버퍼 회로(120)에 대한 후속 버퍼 인스턴스(BF1:1)의 예를 도시한다. 도 3의 예에서, 프레임(F10)이 룩 어헤드 버퍼 회로(120)로부터 퍼지(purge)되며, 후속 버퍼 인스턴스(BF1:1)는 프레임(F11 내지 F14)을 포함한다. 즉, 후속 버퍼 인스턴스(BF1:1)에서 가장 먼저 수신된 프레임은 프레임(F11)이다. 예에서 프레임(F10)의 표현은 프레임(F10)이 이미 처리된 또는 인코딩된 것을 표시하기 위해 점선 테두리를 포함한다. 따라서 프레임(F10)에 대응하는 비트 요청은 제1 그룹(F1)에서 추가의 또는 나중에 수신된 프레임의 처리 또는 인코딩을 위해 무시될 수 있다. 예에서, 프레임(F10)이 룩 어헤드 버퍼 회로(120)로부터 퍼지된 것으로 간주하기보다는, 룩 어헤드 버퍼 회로(120)에 대응하는 룩 어헤드 윈도우가 프레임의 제1 그룹(F1) 내 프레임을 따라 순차적으로 이동한 것으로 이해될 수 있다.Figure 3 generally shows an example of a first group of frames (F1) and subsequent buffer instances (B F1:1 ) for the look ahead
도 3의 예에서, 이를테면 프레임(F11 내지 F14)에 각각 대응하는 여러 비트 요청(RF1:1 내지 RF1:4) 내 정보에 기초하여, 프로세서 회로(130)는 대응하는 프레임(F11, F12, F13 및 F14) 중 하나 이상의 프레임 사이에 이용 가능한 비트를 할당하는 방법을 결정할 수 있다. 예에서, 프로세서 회로(130)는 이를테면 현재 버퍼 인스턴스(BF1:1) 내 프레임에 대응하는 비트 요청(RF1:1 내지 RF1:4) 내 정보에 기초하여, 룩 어헤드 버퍼 회로(120)에서 현재 가장 먼저 수신된 프레임(예를 들어, 도 3의 예에서, 프레임(F11))에 대한 비트 할당을 결정하도록 구성된다.In the example of FIG. 3 , based on information in several bit requests (R F1:1 to R F1: 4 ) corresponding respectively to frames (
도 4는 일반적으로 프레임의 제1 그룹(F1) 및 룩 어헤드 버퍼 회로(120)에 대한 추가의 후속 버퍼 인스턴스(BF1:2)의 예를 도시한다. 도 4의 예에서, 프레임(F11)이 룩 어헤드 버퍼 회로(120)로부터 퍼지되며(또는 룩 어헤드 버퍼 회로(120)에 대응하는 룩 어헤드 윈도우가 이동되며), 추가의 후속 버퍼 인스턴스(BF1:2)는 프레임(F12 내지 F15)을 포함한다. 즉, 추가의 후속 버퍼 인스턴스(BF1:2)에서 가장 먼저 수신된 프레임은 프레임(F12)이고, 추가의 후속 버퍼 인스턴스(BF1:2)에서 가장 최근에 수신된 프레임은 프레임(F15)이다. 예에서 선행 프레임(F10 및 F11)의 표현은 프레임(F10 및 F11)이 이미 처리된 또는 인코딩된 것을 표시하기 위해 점선 테두리를 포함한다. 따라서 프레임(F10 및 F11)에 대응하는 비트 요청은 제1 그룹(F1)에서 추가로 또는 나중에 수신된 프레임의 처리 또는 인코딩을 위해 무시될 수 있다.Figure 4 generally shows an example of a first group of frames (F1) and additional subsequent buffer instances (B F1:2 ) for the look ahead
도 4의 예에서, 이를테면 프레임(F12 내지 F15)에 각각 대응하는 여러 비트 요청(RF1:2 내지 RF1:5) 내 정보에 기초하여, 프로세서 회로(130)는 대응하는 프레임(F12, F13, F14 및 F15) 중 하나 이상의 프레임 사이에 이용 가능한 비트를 할당하는 방법을 결정할 수 있다. 예에서, 프로세서 회로(130)는 이를테면 현재 버퍼 인스턴스(BF1:2) 내 프레임에 대응하는 비트 요청(RF1:2 내지 RF1:5) 내 정보에 기초하여, 룩 어헤드 버퍼 회로(120)에서 현재 가장 먼저 수신된 프레임(예를 들어, 도 4의 예에서, 프레임(F12))에 대한 비트 할당을 결정하도록 구성된다. 일단 비트 할당이 결정되면, 동일한 또는 상이한 프로세서 회로(130)는 결정된 할당에 따라 가장 먼저 수신된 프레임(F12)을 인코딩할 수 있다.In the example of FIG. 4 , based on information within several bit requests (R F1:2 to R F1: 5 ) corresponding respectively to frames (
도 5는 일반적으로 프레임의 제1 그룹(F1) 및 룩 어헤드 버퍼 회로(120)에 대한 추가의 후속 버퍼 인스턴스(BF1:n-3)의 예를 도시한다. 즉, 프레임의 제1 그룹(F1)이 n 개 프레임을 포함하는 경우, 도 5의 예는 룩 어헤드 버퍼 회로(120)가 프레임의 제1 그룹(F1) 내 마지막 네 개의 프레임에 의해 완전히 점유되는 것에 대응한다. 도 5의 예에서, 프레임(F1n-4)이 룩 어헤드 버퍼 회로(120)로부터 퍼지되며(또는 룩 어헤드 버퍼 회로(120)에 대응하는 룩 어헤드 윈도우가 이동되며), 추가의 후속 버퍼 인스턴스(BF1:-3)는 프레임(F1n-3 내지 F1n)을 포함한다. 즉, 후속 버퍼 인스턴스(BF1:n-3)에서 가장 먼저 수신된 프레임은 프레임(F1n-3)이고, 이 경우에 후속 버퍼 인스턴스(BF1:n-3)에서 가장 최근에 수신된 프레임은 프레임의 제1 그룹(F1) 내 마지막 프레임에 대응하는 프레임(F1n)이다. 이 예에서 선행 프레임(F10 내지 F1n-4)의 표현은 점선 테두리를 포함하여 프레임이 이미 처리되거나 인코딩된 것을 표시하며, 따라서 프레임(F10 내지 F1n-4)에 대응하는 비트 요청은 프레임의 제1 그룹(F1) 내 추가 프레임의 처리 또는 인코딩을 위해 무시될 수 있다.Figure 5 generally shows an example of a first group of frames (F1) and additional subsequent buffer instances (B F1:n-3 ) for the look ahead
이를테면 프레임(F1n-3 내지 F1n)에 각각 대응하는 여러 비트 요청(RF1:n-3 내지 RF1:n) 내 정보에 기초하여, 프로세서 회로(130)는 대응하는 프레임(F1n-3, F1n-2, F1n-1 및 F1n) 중 하나 이상의 프레임 사이에 이용 가능한 비트를 할당하는 방법을 결정할 수 있다. 예에서, 프로세서 회로(130)는 이를테면 현재 버퍼 인스턴스(BF1:n-3) 내 프레임에 대응하는 비트 요청(RF1:n-3 내지 RF1:n) 내 정보에 기초하여, 룩 어헤드 버퍼 회로(120)에서 현재 가장 먼저 수신된 프레임(예를 들어, 도 5의 예에서, 프레임(F1n-3))에 대한 비트 할당을 결정하도록 구성된다. 일단 비트 할당이 결정되면, 동일한 또는 상이한 프로세서 회로(130)는 결정된 할당에 따라 가장 먼저 수신된 프레임(F1n-3)을 인코딩할 수 있다.For example, based on information in several bit requests (R F1:n-3 to R F1:n ) respectively corresponding to the frames (F1 n-3 to F1 n), the
도 5의 예에 따르면, 프레임 기반 데이터(101)가 제1 데이터 입력(110)으로 계속 흘러 들어감에 따라, 룩 어헤드 버퍼 회로(120) 및 프로세서 회로(130)는 각각 프레임의 새로운 또는 후속 그룹의 일부를 저장하고 처리하는 것으로 전이할 수 있는데, 이를테면 프레임의 제1 그룹(F1)과는 상이한 평균 비트 레이트 또는 다른 제약을 가질 수 있다. 도 5의 예에서, 프레임의 제2 그룹(F2)은 프레임의 제1 그룹(F1)의 뒤에 온다. 프레임의 제2 그룹(F2)은 (F20 내지 F2m)으로 지정된 m 개 프레임을 포함하며, m 및 n은 동일한 값일 수 있지만, 반드시 동일한 값으로 요구되지는 않는다. 프레임의 제2 그룹(F2) 내 프레임(F20 내지 F2m)은 (RF2:0 내지 RF2:m)으로 지정된 각각의 대응하는 비트 요청 또는 제약을 가질 수 있다. 예에서, 동기 프레임, 헤더 정보, 또는 프레임의 제1 또는 제2 그룹 중 하나(F1 또는 F2)와 연관되거나 이에 부속하는 다른 메타데이터는 룩 어헤드 버퍼 회로(120) 및/또는 프로세서 회로(130)로의 전이를 표시할 수 있다.According to the example of Figure 5, as frame-based
도 6은 일반적으로 제1 프레임 그룹(F1)의 처리로부터 프레임의 제2 그룹(F2)의 처리로의 전이의 시작을 포함하는 예를 도시한다. 도 6의 예에서, 룩 어헤드 버퍼 회로(120)에 대한 추가의 후속 버퍼 인스턴스(BF1:n-2)는 룩 어헤드 버퍼 회로(120)에 달리 저장될 수 있는 것보다 적은 수의 프레임을 포함한다. 즉, 프레임의 제1 그룹(F1)이 n 개 프레임을 포함하는 경우, 도 6의 예는 룩 어헤드 버퍼 회로(120)가 프레임의 제1 그룹(F1) 내 네 개의 프레임 대신 세 개에 의해 점유되는 것에 대응한다. 도 6의 예에서, 프레임(F1n-3)이 룩 어헤드 버퍼 회로(120)로부터 퍼지되며(또는 룩 어헤드 버퍼 회로(120)에 대응하는 룩 어헤드 윈도우가 이동되며), 추가의 후속 버퍼 인스턴스(BF1:n-2)는 프레임(F1n-2 내지 F1n)을 포함한다. 즉, 후속 버퍼 인스턴스(BF1:n-2)에서 가장 먼저 수신된 프레임은 프레임(F1n-2)이고, 이 경우에 후속 버퍼 인스턴스(BF1:n-2)에서 가장 최근에 수신된 프레임은 프레임의 제1 그룹(F1) 내 마지막 프레임에 대응하는 프레임(F1n)이다. 이 예에서 선행 프레임(F10 내지 F1n-3)의 표현은 점선 테두리를 포함하여 프레임이 이미 처리되거나 인코딩된 것을 표시하며, 따라서 프레임(F10 내지 F1n-3)에 대응하는 비트 요청은 프레임의 제1 그룹(F1) 내 추가 프레임의 처리 또는 인코딩을 위해 무시될 수 있다.Figure 6 shows an example generally involving the start of a transition from processing a first group of frames (F1) to processing a second group (F2) of frames. In the example of FIG. 6 , the additional subsequent buffer instances (B F1:n-2 ) for look ahead
도 6의 예에서, 이를테면 프레임(F1n-2 내지 F1n)에 각각 대응하는 여러 비트 요청(RF1:n-2 내지 RF1:n) 내 정보에 기초하여, 프로세서 회로(130)는 대응하는 프레임(F1n-2, F1n-1 및 F1n) 중 하나 이상의 프레임 사이에 이용 가능한 비트를 할당하는 방법을 결정할 수 있다. 즉, 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120)가 덜 가득 차있을 때 하나 이상의 프레임에 대한 할당을 결정할 수 있다. 예에서, 프로세서 회로(130)는 이를테면 현재 버퍼 인스턴스(BF1:n-2) 내 프레임에 대응하는 비트 요청(RF1:n-2 내지 RF1:n) 내 정보에 기초하여, 룩 어헤드 버퍼 회로(120)에서 현재 가장 먼저 수신된 프레임(예를 들어, 도 6의 예에서, 프레임(F1n-2))에 대한 비트 할당을 결정하도록 구성된다. 일단 비트 할당이 결정되면, 동일한 또는 상이한 프로세서 회로(130)는 결정된 할당에 따라 가장 먼저 수신된 프레임(F1n-2)을 인코딩할 수 있다.In the example of FIG. 6, based on information within several bit requests (R F1: n-2 to R F1 : n ), each corresponding to a frame ( F1 n-2 to F1 n),
도 6은 또한 프레임의 제2 그룹(F2)으로부터의 프레임이 어떻게 다른 버퍼 인스턴스(BF2:fill_0)를 채울 수 있는지를 도시한다. 버퍼 인스턴스(BF1:n-2) 및 버퍼 인스턴스(BF2:fill_0)는 동일한 룩 어헤드 버퍼 회로(120)의 상이한 부분에 대응할 수 있거나 또는 상이한 개별 버퍼 회로에 대응할 수 있다. 프레임이 버퍼 사이에 할당되지만, 프로세서 회로(130)는 표시된 그룹 각각에 대해 프레임을 별도로 처리하도록 구성될 수 있다. 즉, 동기 프레임, 메타데이터, 헤더 데이터, 또는 프레임의 그룹 간 전이의 다른 수신된 표시를 수신하면, 프로세서 회로(130)는 상이한 그룹으로부터의 비트 요청 및 프레임 데이터를 서로 독립적으로 처리하도록 야기될 수 있다.Figure 6 also shows how frames from the second group of frames (F2) can fill another buffer instance (B F2:fill_0 ). Buffer instance (B F1:n-2 ) and buffer instance (B F2:fill_0 ) may correspond to different portions of the same look ahead
도 6의 예에서, 버퍼 인스턴스(BF2:fill_0)는 프레임의 제2 그룹(F2)에서 제1 프레임 또는 가장 먼저 수신된 프레임에 대응하는 단일 프레임(F20)을 포함한다. 예에서, 프로세서 회로(130)는 아직 제1 프레임(F20)으로부터의 정보를 처리하거나 인코딩하지 않는데, 왜냐하면 프로세서 회로(130)는 프레임의 제2 그룹(F2)에 적용될 수 있거나 시행될 수 있는 비트 레이트 또는 평균 비트 레이트와 같은 비트 레이트에 관한 결정을 알려주는 데 이용 가능한 충분한 양의 비트 요청 정보를 갖고 있지 않기 때문이다. 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120)가 프레임의 제2 그룹(F2)으로부터의 명시된 최소 수의 프레임으로 채워질 때까지는 적어도 제1 프레임(F20)을 처리하는 것을 대기하도록 구성될 수 있다. 도 6의 예에서, 명시된 최소 수의 프레임은 네 개의 프레임일 수 있지만, 더 적은 수의 프레임 또는 추가의 프레임이 명시될 수 있다. 도 2 내지 도 8의 예에서 프레임의 제1 및 제2 그룹(F1 및 F2)의 도시된 각각의 예에 대해 명시된 최소 수의 프레임은 네 개이지만, 프레임의 상이한 그룹에 대해 상이한 최소 수의 프레임이 사용될 수 있다.In the example of FIG. 6 , the buffer instance (B F2:fill_0 ) contains a single frame (F2 0 ) corresponding to the first or earliest received frame in the second group (F2) of frames. In the example,
도 6의 예에 따르면, 프레임 기반 데이터(101)가 제1 데이터 입력(110)으로 계속 흘러 들어감에 따라, 룩 어헤드 버퍼 회로(120) 및 프로세서 회로(130)는 프레임의 제1 및 제2 그룹(F1 및 F2) 사이에서 계속 전이할 수 있다. 도 7은 일반적으로 프레임의 인접한 그룹 사이에서 계속되는 전이 및 프레임의 제1 그룹(F1)에 대한 마지막 버퍼 인스턴스를 포함하는 예를 도시한다. 도 7의 예에서, 룩 어헤드 버퍼 회로(120)에 대한 추가의 후속 버퍼 인스턴스(BF1:n)는 룩 어헤드 버퍼 회로(120)에 달리 저장될 수 있는 것보다 적은 수의 프레임을 포함한다. 즉, 프레임의 제1 그룹(F1)이 n 개 프레임을 포함하는 경우, 도 7의 예는 룩 어헤드 버퍼 회로(120)가 프레임의 제1 그룹(F1) 내 네 개의 프레임 대신에 오직 마지막 프레임(F1n)에 의해서만 점유되는 것에 대응한다. 도 7의 예에서, 프레임(F1n)에 선행하는 모든 프레임이 룩 어헤드 버퍼 회로(120)로부터 퍼지되며(또는 룩 어헤드 버퍼 회로(120)에 대응하는 룩 어헤드 윈도우가 이동되며), 따라서 추가의 후속 버퍼 인스턴스(BF1:n)는 마지막 프레임(F1n)만을 포함한다. 앞의 예에서와 같이, 예에서 선행 프레임(F10 내지 F1n-1)의 표현은 점선 테두리를 포함하여 프레임이 이미 처리된 또는 인코딩된 것을 표시하며, 따라서 프레임(F10 내지 F1n-1)에 대응하는 비트 요청은 프레임의 제1 그룹(F1) 내 마지막 프레임(F1n)의 처리 또는 인코딩을 위해 무시될 수 있다.According to the example of FIG. 6, as frame-based
예에서, 프로세서 회로(130)는 프레임의 제1 그룹에 대해 임의의 나머지 비트를 마지막 프레임(F1n)에 할당할 수 있다. 일부 예에서, 프로세서 회로(130)는 마지막 프레임(F1n)에 대응하는 비트 요청(RF1:n) 내의 정보를 고려하거나 그 정보를 사용하여 마지막 프레임(F1n)에 대한 나머지 비트의 할당에 영향을 줄 수 있다. 일단 비트 할당이 결정되면, 동일한 또는 상이한 프로세서 회로(130)는 결정된 할당에 따라 마지막 프레임(F1n)을 인코딩할 수 있다.In an example,
도 7은 또한 프레임의 제2 그룹(F2)으로부터의 프레임이 다른 버퍼 인스턴스(BF2:fill_2)를 어떻게 채울 수 있는지를 도시한다. 도 6의 예에서 위에서 유사하게 설명한 바와 같이, 버퍼 인스턴스(BF1:n) 및 버퍼 인스턴스(BF2:fill_2)는 동일한 룩 어헤드 버퍼 회로(120)의 상이한 부분에 대응할 수 있거나 또는 상이한 개별 버퍼 회로에 대응할 수 있다. 프레임이 버퍼 사이에 할당되는 방법과 무관하게, 프로세서 회로(130)는 표시된 그룹 각각에 대해 프레임을 별도로 처리하도록 구성될 수 있다.Figure 7 also shows how frames from the second group of frames (F2) can fill another buffer instance (B F2:fill_2 ). As similarly described above in the example of FIG. 6 , buffer instances B F1:n and buffer instances B F2:fill_2 may correspond to different parts of the same look ahead
도 7의 예에서, 버퍼 인스턴스(BF2:fill_2)는 프레임 내 데이터의 처리 또는 인코딩을 시작할 명시된 최소 수의 프레임의 전부가 아닌 그 중 일부를 포함한다. 예를 들어, 버퍼 인스턴스(BF2:fill_2)는 명시된 최소 네 개의 프레임 중 세 개(F20 내지 F22)를 포함하며, 여기서 프레임(F20)는 프레임의 제2 그룹(F2)에서의 제1 프레임 또는 가장 먼저 수신된 프레임에 대응한다. 예에서, 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120) 내의 처음 세 개의 프레임으로부터의 정보를 아직 처리하거나 인코딩하지 않는데, 왜냐하면 프로세서 회로(130)는 프레임의 제2 그룹(F2) 중 적어도 가장 먼저 도달하는 프레임에 적용될 수 있거나 시행될 수 있는 비트 레이트 또는 평균 비트 레이트와 같은 비트 레이트에 관한 결정을 알려주는 데 이용 가능한 충분한 양의 비트 요청 정보를 갖고 있지 않기 때문이다.In the example of Figure 7, the buffer instance (B F2:fill_2 ) begins processing or encoding the data within the frame. Contains some, but not all, of the specified minimum number of frames. For example, the buffer instance B Corresponds to 1 frame or the earliest received frame. In an example,
도 7의 예에 따르면, 프레임 기반 데이터(101)가 제1 데이터 입력(110)으로 계속 흘러 들어감에 따라, 룩 어헤드 버퍼 회로(120) 및 프로세서 회로(130)는 프레임의 제1 및 제2 그룹(F1 및 F2) 사이에서 계속 전이할 수 있다. 도 8은 일반적으로 프레임의 제1 그룹(F1)으로부터 프레임의 제2 그룹(F2)으로의 전이를 완료하는 것을 포함하는 예를 도시한다. 도 8의 예에서, 버퍼 인스턴스(BF1:empty)는 프레임의 제1 그룹으로부터의 어떤 프레임도 룩 어헤드 버퍼 회로(120)에 포함되지 않은 것을 표시하는 것으로 도시된다. 도 8의 예에서, 프레임의 제1 그룹(F1)으로부터의 모든 프레임은 룩 어헤드 버퍼 회로(120)로부터 퍼지되며(또는 룩 어헤드 버퍼 회로(120)에 대응하는 룩 어헤드 윈도우가 이동되며), 다음의 버퍼 인스턴스는 프레임의 후속 그룹에 대응한다. 앞의 예와 유사하게, 도면에서 처리된 프레임(F10 내지 F1n)의 표현은 점선 테두리를 포함하여 프레임이 이미 처리된 또는 인코딩된 것을 표시하며, 따라서 프레임(F10 내지 F1n)에 대응하는 비트 요청은 추가 프레임의 처리 또는 인코딩을 위해 무시될 수 있다.According to the example of FIG. 7, as frame-based
도 8의 예에서, 프레임의 제2 그룹(F2)은 m 개의 프레임을 포함하며, 처음 네 개의 프레임은 룩 어헤드 버퍼 회로(120)에 대한 제1 버퍼 인스턴스(BF2:0)를 채운다. 다시 말해서, 제1 버퍼 인스턴스(BF2:0)는 프레임의 제2 그룹(F2)의 제1 내지 제 4 프레임(F20, F21, F22, 및 F23)이 룩 어헤드 버퍼 회로(120)에 저장되거나 룩 어헤드 버퍼 회로(120)에 이용 가능할 때의 룩 어헤드 버퍼 회로(120)의 상태를 지칭한다.In the example of Figure 8, the second group of frames (F2) includes m frames, with the first four frames filling the first buffer instance (B F2:0 ) for the look ahead
도 8의 예에서, 본 명세서에 설명된 처리 및 프레임 처리 기술을 용이하게 설명하기 위해, 룩 어헤드 버퍼 회로(120)는 네 개의 메모리 위치를 포함한다. 더 많거나 더 적은 수의 메모리 위치가 유사하게 사용될 수 있다. 도 8의 예에서, 룩 어헤드 버퍼 회로(120)의 네 개의 메모리 위치 각각이 점유된다. 그러므로, 룩 어헤드 버퍼 회로(120)는 가득 차 있는 것으로 간주될 수 있고, 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120) 내 프레임에 대응하는 비트 요청(RF2:0 내지 RF2:3)을 수신할 수 있다. 여러 비트 요청(RF2:0 내지 RF2:3) 내 정보에 기초하여, 프로세서 회로(130)는 대응하는 프레임(F20, F21, F22 및 F23) 중 하나 이상의 프레임 사이에 이용 가능한 비트를 할당하는 방법을 결정할 수 있다. 예에서, 프로세서 회로(130)는 이를테면 비트 요청(RF2:0 내지 RF2:3) 내 정보에 기초하여, 룩 어헤드 버퍼 회로(120)에 존재하는 가장 먼저 수신된 프레임(F20)에 대한 비트 할당을 결정하도록 구성된다. 다시 말해서, 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120) 내 다수의 프레임 각각과 연관된 정보 또는 비트 요청을 사용하여 룩 어헤드 버퍼 회로(120) 내 특정 프레임(예를 들어, 가장 먼저 수신된 프레임)에 대한 비트 할당을 결정하거나 제공할 수 있다.In the example of Figure 8, to facilitate illustration of the processing and frame processing techniques described herein, look ahead
도 9는 일반적으로 프레임의 그룹 내 상이한 프레임에 대한 각각의 비트 할당을 결정하는 단계를 포함할 수 있는 방법(900)의 예를 도시한다. 방법(900)은 도 1의 예로부터의 처리 배열(100)의 하나 이상의 컴포넌트를 사용하거나, 또는 도 10의 예로부터의 다양한 하드웨어를 사용하여 수행될 수 있다. 방법(900)의 예에서, 동작(910)에서, 룩 어헤드 버퍼 회로(120)는 이를테면 프레임의 제1 그룹(F1)으로부터 B 개 프레임을 수신할 수 있다. 예에서, 프레임의 제1 그룹은 이를테면 약 2 초의 오디오 데이터에 대응하는 약 50 내지 약 100 개의 프레임을 포함하며, 룩 어헤드 버퍼 회로(120)는 약 20 개의 프레임에 대응하는 정보를 수신하도록 구성된다. 프레임의 그룹의 예시적인 크기 및 룩 어헤드 버퍼 회로(120)에서 이용 가능한 메모리 위치는 단지 예시를 위해 제공되며, 더 적은 수 또는 추가의 프레임 또는 메모리 위치가 유사하게 사용될 수 있다. 그러나, 일반적으로, 프레임의 주어진 그룹 내 프레임의 수는 룩 어헤드 버퍼 회로(120)에서 이용 가능한 다수의 메모리 위치를 초과한다. 여기에 사용된 관례에 따르면, 프레임의 제1 그룹(F1) 내 프레임은 (F10 내지 F1n)으로 지정될 수 있다. 동작(910)의 예에서, 룩 어헤드 처리 버퍼는 예를 들어 프레임(F10 내지 F1B)을 포함할 수 있다. 다른 프레임이 유사하게 사용될 수 있다.9 shows an example of a
예(900)에서, 동작(920)에서, 프로세서 회로(130)는 룩 어헤드 처리 버퍼, 또는 룩 어헤드 버퍼 회로(120) 내 제1 버퍼링된 프레임(F10)에 대한 비트 할당을 결정하도록 구성될 수 있다. 예에서, 프로세서 회로(130)는 프레임(F10 내지 F1B)을 포함하는, 룩 어헤드 처리 버퍼 내 프레임 각각에 대한 각각의 비트 요청 정보를 수신하도록 구성될 수 있다. 프로세서 회로(130)는 이어서 여러 비트 요청에 관한 정보에 기초하여, 가장 이른 프레임(F10)에 대한 적절한 비트 할당을 결정할 수 있다. 프로세서 회로(130)는 다른 것들 중에서도, 가장 이른 프레임(F10) 내 정보의 상대적 지각 중요성 및 가장 이른 프레임(F10)이 속한 프레임의 그룹에 대한 타겟 평균 비트 레이트에 기초하여 비트 할당을 결정할 수 있다. 즉, 프로세서 회로(130)는 가장 이른 프레임을 인코딩하기 위해 비트를 할당하거나 비트가 가장 이른 프레임을 인코딩하는 데 이용 가능하지 않게 함으로써 비트 예산을 유지하도록 구성될 수 있다. 동작(930)에서, 비트 할당을 수행하기 위해 사용된 동일한 또는 상이한 프로세서 회로는 동작(920)에서 결정된 비트 할당에 기초하여 가장 이른 프레임(F10)을 인코딩하는데 사용될 수 있다.In example 900, at
동작(940)에서, 예는 룩 어헤드 처리 버퍼를 업데이트하는 단계를 포함할 수 있다. 예를 들어, 룩 어헤드 처리 버퍼 내의 정보는 선입선출 방식으로 조정될 수 있다. 즉, F10와 같은 가장 먼저 수신된 프레임 및 F1B+1과 같은 후속 프레임은 퍼지된 프레임을 대신할 수 있다. 프레임 교환에 뒤이어, 룩 어헤드 처리 버퍼는 제2 프레임(F11) 내지 프레임(F1B+1)을 포함하는 B 개 프레임을 다시 포함할 수 있다. 예에서, 각각의 간격에서 단일 프레임만이 제거되지만, 본 발명자는 다수의 프레임이 비트 할당 결정을 수신할 수 있고 단일 간격에서 버퍼로부터 교환될 수 있는 다른 실시예를 고려한다.At
동작(950)에서, 예는 이를테면 룩 어헤드 처리 버퍼 내의 제2 프레임(F11)에 대한 제2 비트 할당을 결정하는 단계를 포함할 수 있다. 즉, 동작(950)에서, 프로세서 회로(130)는 룩 어헤드 처리 버퍼, 또는 룩 어헤드 버퍼 회로(120) 내 제2 버퍼링된 프레임(F11)에 대한 비트 할당을 결정하도록 구성될 수 있다. 예에서, 프로세서 회로(130)는 프레임(F11 내지 F1B+1)을 포함하는, 룩 어헤드 처리 버퍼 내 프레임 각각에 대한 각각의 비트 요청 정보를 수신하도록 구성될 수 있고, 프로세서 회로(130)는 이어서 여러 비트 요청에 관한 정보에 기초하여 제2 프레임(F11)(예를 들면, 현재 버퍼 내에서 가장 먼저 수신된 프레임(F11)에 대응함)에 대한 적절한 비트 할당을 결정할 수 있다. 동작(960)에서, 동작(950)에서 비트 할당 결정을 수행하는데 사용된 동일한 또는 상이한 프로세서 회로는 동작(950)에서 결정된 비트 할당에 기초하여 제2 프레임(F11)을 인코딩하는데 사용될 수 있다.At
다음의 이러한 논의는 가변 비트 레이트 버퍼 모델에서 타겟 비트 레이트 보장을 위한 공식을 제공한다. 논의는 명시된 평균 비트 레이트를 달성하면서 다양한 제약을 만족시키는 프레임별 비트 분포가 존재한다는 것을 입증한다. 이를테면 인코더로부터의 비트 요청을 고려하는 경우, 그러한 하나의 분포를 계산하는 알고리즘이 또한 포함된다. 다음 논의의 전체에서, 다음과 같은 표기법이 사용된다:This discussion below provides a formula for guaranteeing the target bit rate in the variable bit rate buffer model. The discussion demonstrates that there exists a frame-by-frame bit distribution that satisfies various constraints while achieving the specified average bit rate. An algorithm for calculating one such distribution is also included, for example when considering bit requests from an encoder. Throughout the following discussion, the following notation is used:
R 타겟 비트 레이트R target bit rate
Rmax 최대 순간 비트 레이트Rmax maximum instantaneous bit rate
D 인코더 룩 어헤드D Encoder Look Ahead
n 프레임의 그룹(Group of Frame)(GoF) 내 N 개 프레임에 대한 인덱스Indexes to N frames within a Group of Frames (GoF)
S(n) 비트 저장소 크기S(n) bit storage size
H(n) 오버헤드 비트(헤더 및 메타데이터)H(n) overhead bits (header and metadata)
M(n) 프레임 당 요청된 최소 비트M(n) Minimum bits requested per frame
B(n) 프레임에 할당된 비트Bits assigned to B(n) frame
타겟 레이트 보장Target rate guaranteed
을 만족시키는 R, Rmax, H(n)≥0 및 M(n)≥0이 주어지면,Given R, R max , H(n)≥0, and M(n)≥0 that satisfy,
이도록 하는, N개 프레임의 세트에 대한 타겟 레이트(R)를 보장하는 비트 분포(B(n))가 존재한다. 모든 새로운 프레임(n=1 ... N)마다, 비트(R)를 추가함으로써 비트 저장소가 업데이트될 수 있어 저장소의 비트 유입(Is)은 다음과 같다.There is a bit distribution (B(n)) that guarantees the target rate (R) for a set of N frames such that For every new frame (n=1 ... N), the bit storage can be updated by adding a bit (R), so that the bit influx (I s ) of the storage is:
그리고 N 개 프레임에 대해 저장소의 비트 유출(Os)은 다음과 같다.And the bit outflow (O s ) of storage for N frames is:
예에서, Is = Os이며, 즉 원하는 대로 N 개 프레임에 대한 평균 비트 레이트(R)이다.In the example, I s = O s , i.e. the average bit rate (R) over N frames as desired.
제1 인코딩된 프레임 (n=l)First encoded frame (n=l)
예에서, VBR 모델은 인코더 룩 어헤드(예를 들어, 룩 어헤드 버퍼 회로 (120) 내의 정보)를 이용하여, D 개 프레임의 세트를 조작한다. 비트 저장소 크기는 초기에 다음과 같이 계산할 수 있다.In the example, the VBR model uses the encoder look ahead (e.g., information in the look ahead buffer circuit 120) to manipulate a set of D frames. The bit storage size can initially be calculated as follows:
Rmax≥R 및 R-H(k)≥M(k)이므로,Since R max ≥R and RH(k)≥M(k),
이다. am.
예에서, Rmax≥b1(k)≥M(k)이고In the example, R max ≥b 1 (k)≥M(k) and
이도록 하는 b1(k)의 세트가 존재한다.There exists a set of b 1 (k) such that
이를 설명하기 위해,To explain this,
이면, If so,
b1(k)= Rmax로 설정하거나, 또는set b 1 (k)= R max , or
이면, If so,
b1(k)= M(k)로 설정하거나, 또는set b 1 (k)= M(k), or
그렇지 않으면 b1(k)를 사이의 값으로 설정한다. 예에서, 임의의 S(n), n>1에 대해,Otherwise, set b 1 (k) to a value between. In the example, for any S(n), n>1,
가 go
를 cast
적용 받도록 하는 세트(bn(k))가 존재한다.There is a set (b n (k)) that is to be applied.
인코딩된 프레임(n)에 할당된 비트는 다음과 같이 명시될 수 있고,The bits assigned to the encoded frame (n) can be specified as follows,
이는 초기 제약 조건(Rmax≥B(n)≥M(n))을 만족시킨다.This satisfies the initial constraint (R max ≥B(n)≥M(n)).
프레임의 그룹 내의 프레임 (n>1)Frames within a group of frames (n>1)
프레임의 주어진 그룹 내의 프레임에 대해, S(n)은 다음과 같이 지정될 수 있고,For a frame within a given group of frames, S(n) can be specified as
이는 인코더에 의해 사용된 B(n-1)개 비트를 반영하며 새로운 프레임에 대해 R-H(n+D-1)개 비트를 추가한다.This reflects the B(n-1) bits used by the encoder and adds R-H(n+D-1) bits for the new frame.
이므로, Because of,
이 있다. There is.
Rmax≥bn(k)≥M(n+k-1)이고 그래서 R max ≥b n (k)≥M(n+k-1) and so
에 대해, About,
이 있고, 그러므로 There is, therefore
이다. am.
따라서thus
및 Rmax≥bn(k)≥M(n+k-1)이도록 하는 bn(k)가 존재한다.and there exists b n (k) such that R max ≥b n (k)≥M(n+k-1).
끝에 있는 프레임의 그룹 (n> N-D+l)Group of frames at the end (n> N-D+l)
룩 어헤드 버퍼 크기(D)가 프레임의 그룹의 끝을 넘어 확장될 때, S(n)은 다음과 같이 제공될 수 있다.When the look ahead buffer size (D) extends beyond the end of a group of frames, S(n) can be given as:
즉, 허용된 룩 어헤드는 프레임의 그룹을 넘어 확장될 수 없으므로, 프레임의 그룹의 끝에 R-H(n+D-1)이 추가되지 않는다. 따라서,That is, the allowed look ahead cannot extend beyond a group of frames, so R-H(n+D-1) is not added to the end of the group of frames. thus,
이고, ego,
이며, and
Rmax≥bn(k)≥M(n+k-1)이다.R max ≥b n (k)≥M(n+k-1).
평균 비트 레이트average bit rate
B(n)=bn(1), S(N)=B(N) 및 S(N+1)=S(N)-B(N)=0인 것을 주목해야 한다. S(1) 내지 S(N+1)의 비트 저장소에 추가되거나 비트 저장소로부터 빼버린 모든 컴포넌트가 합산되면,It should be noted that B(n)=b n (1), S(N)=B(N) and S(N+1)=S(N)-B(N)=0. When all components added to or subtracted from the bit storage of S(1) to S(N+1) are added,
이 있고, There is,
이는this is
및and
로 주어지고, 그 결과 원하는 대로 R이라는 프레임의 그룹 평균 비트 레이트를 초래한다.is given, resulting in the group average bit rate of frames R as desired.
비트 분포bit distribution
프레임의 그룹 평균 비트 레이트(R)의 보장은 비트 저장소를Guaranteeing the group average bit rate (R) of a frame guarantees bit storage.
로서 업데이트하고,Update as,
로 설정함으로서 제시되었으며, It was presented by setting it to
여기서here
에는 In
이 적용되어, This applies,
원하는 대로,the way you want,
이 된다. This happens.
bn(k) 값의 세트는 다음과 같이 결정될 수 있다. B(n)은 값이 (인코더 "비트 요청(bit request)"으로서 해석될 수 있는) 특정 인코더에 의해 명시된(encoder-specified) 값(V(n))의 상대적 분포를 반영하도록 도출될 수 있다. 예에서, 다음은 B(n), n=l ... N을 얻기 위해 사용될 수 있다:The set of bn(k) values can be determined as follows. B(n) can be derived such that the values reflect the relative distribution of encoder-specified values (V(n)) by a particular encoder (which can be interpreted as encoder “bit requests”) . In the example, the following can be used to obtain B(n), n=l...N:
초기 bn(k), k=l ... min(D, N-n+l)을 다음과 같이 설정하며,Set the initial b n (k), k=l ... min(D, N-n+l) as follows,
여기서,here,
이다. am.
이것은 bn(k)를 정규화된 값(V(n+k-1))과 동일시하여,This equates bn(k) to the normalized value (V(n+k-1)),
이도록 한다. Let it be like this.
Rmax 및 M(n) 제약이 부과될 때:When R max and M(n) constraints are imposed:
이며 and
비트 오버 슈트(over-shoot) 또는 언더 슈트(under-shoot)는 S(n)에 대해 다음과 같이 결정될 수 있다.Bit overshoot or undershoot can be determined for S(n) as follows.
예에서, k에 대한 순환 루프에서와 같이, Δb = 0일 때까지 개별 비트를 bn(k)에 반복적으로 추가한다(또는 그로부터 제거한다). 비트는 다음과 같이 되는 그러한 bn(k)에 추가되고,In the example, individual bits are repeatedly added to (or removed from) b n (k) until Δ b = 0, as in a circular loop over k. Bits are added to b n (k) such that
또는 다음과 같이 되는 그러한 bn(k)로부터 제거된다.or is removed from b n (k) such that
이러한 과정은, 이전 섹션에서 제시된 바와 같이, 모든 n에 대해,This process, as presented in the previous section, for all n,
이 this
을 적용 받도록 하는 세트(bn(k))가 존재하기 때문에, 수렴하는 것이 보장된다. 마지막으로, B(n)=bn(1)이며 나머지 값(bn(k), k>1)은 버릴 수 있다(이들 값은 V(k)의 업데이트된 범위에 대해 다음 프레임에서 bn+1(k)로서 재계산될 수 있다). Since there exists a set (b n (k)) for which is applied, convergence is guaranteed. Finally, B(n)=b n (1) and the remaining values (b n (k), k>1) can be discarded (they will be replaced by b n in the next frame for the updated range of V(k)). can be recalculated as +1 (k)).
시뮬레이션simulation
프레임의 그룹 간에 전환하거나 전이할 때 D 개 프레임의 일정한 룩 어헤드를 유지하면서 처리를 수행하는 방법을 설명하기 위해 시뮬레이션이 수행되었다. 전이를 달성하기 위해, 두 값의 저장소 크기(S0(n) 및 S1(n))는 D 개의 룩 어헤드 프레임이 프레임의 그룹 경계에 이어져 있을 때 전이 영역(transition region) 동안 유지된다.Simulations were performed to demonstrate how to perform processing while maintaining a constant look ahead of D frames when switching or transitioning between groups of frames. To achieve transition, two values of storage sizes (S 0 (n) and S 1 (n)) are maintained during a transition region when D look ahead frames span a group boundary of frames.
예에서, 시뮬레이션은 프레임(n, B(n)≥Benc(n))에 초기에 할당된 것보다 적은 수의 비트를 사용하도록 구성된 인코더를 포함할 수 있고, 비트 저장소(S(n))는 실제로 사용된 비트의 값(Benc(n-1))으로 업데이트될 수 있으므로, 사용되지 않은 비트는 의도적으로 새로운 bn(k) 비트 분포의 일부가 된다. 이 경우,In an example, a simulation may include an encoder configured to use fewer bits than initially allocated to a frame (n, B(n)≥B enc (n)), and bit storage (S(n)). can be updated with the value of the actually used bits (B enc (n-1)), so that unused bits intentionally become part of the new b n (k) bit distribution. in this case,
이고, ego,
결국, R≥Renc이며, 여기서 Renc는 유효 평균 비트 레이트(effective averagebit rate)이다. 주된 제약은 타겟 비트 레이트를 초과하지 않는 것이기 때문에, 요구 조건은 충족된다.Ultimately, R≥R enc , where R enc is the effective average bit rate. Since the main constraint is not to exceed the target bit rate, the requirement is met.
예에서, 이전보다 bn(l)에 더 많은 비트가 할당될 수 있다. 예에서, 가능하다면, 룩 어헤드 프레임에서 비트를 "빌려올(borrowed)" 수 있으며,In an example, more bits may be assigned to b n (l) than before. In the example, if possible, bits may be "borrowed" from the look ahead frame,
여기서 BΔ는 빌려오기로 허용된 최대 비트 수를 명시한다. 이러한 빌려옴은 최대 순간 비트 레이트(bn(1)=min(Rmax, bn(1))의 초과를 초래하지 않게 한다는 것이 검증된다. 이 예에서, 가 유지될 수 있다.Here, B Δ specifies the maximum number of bits allowed for borrowing. It is verified that this borrowing does not result in exceeding the maximum instantaneous bit rate (b n (1)=min(R max , b n (1)). In this example: can be maintained.
다양한 시스템 및 머신은 본 명세서에 설명된 하나 이상의 신호 처리 또는 프레임 저장 또는 프레임 처리 작업을 수행하거나 이행하도록 구성될 수 있다. 예를 들어, 비트 요청 분석, 비트 할당 및 인코딩 처리 모듈 또는 프로세서 회로, 또는 다른 모듈 또는 프로세스 중 임의의 하나 이상은 범용 머신을 사용하여 또는 다양한 처리 작업을 수행하는 특수 목적으로 제작된 머신을 사용하여, 이를테면 유형의 비일시적 프로세서 판독 가능 매체로부터 리트리빙된 명령어를 사용하여 구현될 수 있다.Various systems and machines may be configured to perform or implement one or more signal processing or frame storage or frame processing operations described herein. For example, any one or more of the bit request analysis, bit allocation and encoding processing modules or processor circuits, or other modules or processes, may be performed using general-purpose machines or using special-purpose machines that perform various processing tasks. , such as using instructions retrieved from a tangible, non-transitory, processor-readable medium.
도 10은 머신 판독 가능 매체(예를 들어, 머신 판독 가능 저장 매체)부터 명령어(1016)를 판독할 수 있고 본 명세서에서 논의된 임의의 하나 이상의 방법론을 수행할 수 있는, 일부 예시적인 실시예에 따른 머신(1000)의 컴포넌트를 도시하는 블록도이다. 구체적으로, 도 10은 머신(1100)으로 하여금 본 명세서에서 논의된 임의의 하나 이상의 방법론을 수행하게 하기 위한 명령어(1016)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱 또는 다른 실행 가능한 코드)가 실행될 수 있는 컴퓨터 시스템의 예시적인 형태의 머신(1000)의 도식적인 표현을 도시한다. 예를 들어, 명령어(1016)는 도 1의 하나 이상의 모듈 또는 회로 또는 컴포넌트를 구현할 수 있는데, 이를테면 도 1의 예에 도시된 처리 또는 인코딩을 수행하도록 구성될 수 있다. 명령어(1016)는 프로그램되지 않은 일반적인 머신(1000)을 프로그램된 특정 머신으로 변환하여 (예를 들어, 오디오 프로세서 회로로서) 설명된 방식으로 설명되고 도시된 기능을 수행하도록 할 수 있다. 대안적인 실시예에서, 머신(1000)은 스탠드얼론 디바이스로서 동작하거나 또는 다른 머신에 결합(예를 들어, 네트워크화)될 수 있다. 네트워크형 배치에서, 머신(1000)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 입장으로 동작할 수 있거나 또는 피어 투 피어(peer-to-peer)(또는 분산된) 네트워크 환경에서 피어 머신으로서 동작할 수 있다.10 illustrates some example embodiments that can read
머신(1000)은 이것으로 제한되는 것은 아니지만, 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(personal computer)(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스(set-top box)(STB), 개인 휴대 정보 단말기(personal digital assistant)(PDA), 엔터테인먼트 미디어 시스템 또는 시스템 컴포넌트, 셀룰러 전화기, 스마트 폰, 이동 디바이스, 웨어러블 디바이스(예를 들어, 스마트 워치), 스마트 홈 디바이스(예를 들어, 스마트 기기), 다른 스마트 디바이스, 웹 기기, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 헤드폰 드라이버, 또는 머신(1000)에 의해 취해질 조치를 명시하는 명령어(1016)를 순차적으로 또는 다른 방식으로 실행할 수 있는 임의의 머신을 포함할 수 있다. 또한, 단일 머신(1000)만이 도시되어 있지만, "머신"이라는 용어는 또한 명령어(1016)를 개별적으로 또는 공동으로 실행하여 본 명세서에서 논의된 임의의 하나 이상의 방법론을 수행하는 머신(1000)의 집합을 포함하는 것으로 취급될 것이다.
머신(1000)은 이를테면 버스(1002)를 통해 서로 통신하도록 구성될 수 있는, 이를테면 오디오 프로세서 회로를 포함하는 프로세서(1010), 비일시적 메모리/스토리지(1030), 및 I/O 컴포넌트(1050)를 포함하거나 사용할 수 있다. 예시적인 실시예에서, 프로세서(1010)(예를 들어, 중앙 처리 유닛(central processing unit)(CPU), 축소 명령어 세트 컴퓨팅(reduced instruction set computing)(RISC) 프로세서, 복합 명령어 세트 컴퓨팅(complex instruction set computing)(CISC) 프로세서, 그래픽 처리 유닛(graphics processing unit)(GPU), 디지털 신호 프로세서(digital signal processor)(DSP), ASIC, 무선 주파수 집적 회로(radio-frequency integrated circuit)(RFIC), 다른 프로세서, 또는 이들의 임의의 적합한 조합)는 예를 들어, 명령어(1016)를 실행할 수 있는 프로세서(1012) 및 프로세서(1014)와 같은 회로를 포함할 수 있다. "프로세서"라는 용어는 명령어(1016)를 동시에 실행할 수 있는 두 개 이상의 독립적인 프로세서(1012, 1014)(때로는 "코어"라고 지칭함)를 포함할 수 있는 멀티 코어 프로세서(1012, 1014)를 포함하는 것으로 의도된다. 도 10은 다수의 프로세서(1010)를 도시하지만, 머신(1000)은 단일 코어를 갖는 단일 프로세서(1012, 1014), 다중 코어를 갖는 단일 프로세서(1012, 1014)(예를 들어, 다중 코어 프로세서(1012, 1014)), 단일 코어를 갖는 다중 프로세서(1012, 1014), 다중 코어를 갖는 다중 프로세서(1012, 1014) 또는 이들의 임의의 조합을 포함할 수 있으며, 여기서 프로세서 중 임의의 하나 이상은 오디오 및/또는 비디오 신호 정보, 또는 다른 데이터를 인코딩하도록 구성된 회로를 포함할 수 있다.
메모리/스토리지(1030)는 이를테면 버스(1002)를 통해 프로세서(1010)에 액세스 가능한, 메인 메모리 회로 또는 다른 메모리 스토리지 회로와 같은 메모리(1032) 및 스토리지 유닛(1028)을 포함할 수 있다. 스토리지 유닛(1028) 및 메모리(1032)는 본 명세서에 설명된 방법론 또는 기능 중 임의의 하나 이상을 구현하는 명령어(1016)를 저장한다. 명령어(1016)는 또한 머신(1000)에 의한 명령어의 실행 동안, 전체적으로 또는 부분적으로, 메모리(1032) 내에, 스토리지 유닛(1028) 내에, 프로세서(1010) 중 적어도 하나 내에(예를 들어, 프로세서(1012, 1014)의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에 상주할 수 있다. 따라서, 메모리(1032), 스토리지 유닛(1028) 및 프로세서(1010)의 메모리는 머신 판독 가능 매체의 예이다. 예에서, 메모리/스토리지(1030)는 룩 어헤드 버퍼 회로(120) 또는 룩 어헤드 버퍼의 하나 이상의 인스턴스를 포함한다.Memory/
본 명세서에서 사용된 것으로, "머신 판독 가능 매체"는 명령어(1016) 및 데이터를 일시적으로 또는 영구적으로 저장할 수 있는 디바이스를 의미하며, 이것으로 제한되는 것은 아니지만 랜덤 액세스 메모리(random-access memory)(RAM), 판독 전용 메모리(read-only memory)(ROM), 버퍼 메모리, 플래시 메모리, 광학 매체, 자기 매체, 캐시 메모리, 다른 유형의 스토리지(예를 들어, 소거 가능한 프로그램 가능 판독 전용 메모리(erasable programmable read-only memory)(EEPROM)) 및/또는 이들의 임의의 적합한 조합을 포함할 수 있다. "머신 판독 가능 매체"라는 용어는 명령어(1016)를 저장할 수 있는 단일 매체 또는 다중 매체(예를 들어, 중앙 집중형 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버)를 포함하는 것으로 취급되어야 한다. "머신 판독 가능 매체"라는 용어는 또한 머신(예를 들어 머신(1000))에 의해 실행하기 위한 명령어(예를 들어, 명령어(1016))를 저장할 수 있는 임의의 매체 또는 다중 매체의 조합을 포함하는 것으로 취급될 것이므로, 명령어(1016)는 머신(1000)의 하나 이상의 프로세서(예를 들어, 프로세서(1010))에 의해 실행될 때, 머신(1000)으로 하여금 본 명세서에 설명된 방법론 중 임의의 하나 이상을 수행하게 한다. 따라서, "머신 판독 가능 매체"는 단일 스토리지 장치 또는 디바이스뿐만 아니라, 다중 스토리지 장치 또는 디바이스를 포함하는 클라우드 기반 저장 시스템 또는 저장 네트워크를 지칭한다. "머신 판독 가능 매체"라는 용어는 신호 자체를 배제한다.As used herein, “machine-readable medium” refers to a device capable of temporarily or permanently storing
I/O 컴포넌트(1050)는 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 송신하고, 정보를 교환하고, 측정치를 캡처하는 등의 다양한 컴포넌트를 포함할 수 있다. 특정 머신(1000)에 포함된 특정 I/O 컴포넌트(1050)는 머신(1000)의 유형에 따라 달라질 것이다. 예를 들어, 이동 전화기와 같은 휴대용 머신은 터치 입력 디바이스 또는 다른 그러한 입력 메커니즘을 포함할 것 같은 반면에, 헤드리스 서버 머신(headless server machin)은 그러한 터치 입력 디바이스를 포함하지 않을 수 있다. I/O 컴포넌트(1050)는 도 10에 도시되지 않은 많은 다른 컴포넌트를 포함할 수 있다는 것이 인식될 것이다. I/O 컴포넌트(1050)는 단지 다음의 논의를 단순화하기 위해 기능별로 그룹화되며, 그룹화는 결코 제한하는 것이 아니다. 다양한 예시적인 실시예에서, I/O 컴포넌트(1050)는 출력 컴포넌트(1052) 및 입력 컴포넌트(1054)를 포함할 수 있다. 출력 컴포넌트(1052)는 시각 컴포넌트(예를 들어, 플라즈마 디스플레이 패널(plasma display panel)(PDP), 발광 다이오드(light emitting diode)(LED) 디스플레이, 액정 디스플레이(liquid crystal display)(LCD), 프로젝터, 또는 음극선관(cathod ray tube)(CRT)과 같은 디스플레이), 음향 컴포넌트(예를 들어, 라우드스피커), 촉각 컴포넌트(예를 들어, 진동 모터, 저항 메커니즘), 다른 신호 발생기 등을 포함할 수 있다. 입력 컴포넌트(1054)는 영숫자 입력 컴포넌트(예를 들어, 키보드, 영숫자 입력을 수신하도록 구성된 터치 스크린, 광-광학(photo-optical) 키보드 또는 다른 영숫자 입력 컴포넌트), 포인트 기반 입력 컴포넌트(예를 들어, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서 또는 다른 포인팅 기구), 촉각 입력 컴포넌트(예를 들어, 물리적 버튼, 터치 또는 터치 제스처의 위치 및/또는 힘을 제공하는 터치 스크린 또는 다른 촉각 입력 컴포넌트), 오디오 입력 컴포넌트(예를 들어, 마이크로폰) 등을 포함할 수 있다.I/
추가의 예시적인 실시예에서, I/O 컴포넌트(1050)는 다른 컴포넌트의 광범위한 어레이 중에서, 생체 컴포넌트(1056), 모션 컴포넌트(1058), 환경 컴포넌트(1060) 또는 위치 컴포넌트(1062)를 포함할 수 있다. 예를 들어, 생체 컴포넌트(1056)는 표현(예를 들어, 손 표현, 얼굴 표현, 목소리 표현, 신체 제스처 또는 눈 추적)을 검출하고, 생체 신호(예를 들어, 혈압, 심장 박동수, 체온, 땀 또는 뇌파)를 측정하고, 사람(예를 들어, 음성 식별, 망막 식별, 얼굴 식별, 지문 식별 또는 뇌파 기반 식별)을 식별하는 등의 컴포넌트를 포함할 수 있는데, 이를테면 예를 들어 특정 프레임 또는 프레임의 그룹 내 데이터의 지각 중요성에 영향을 미칠 수 있는 청취자 특정 또는 환경 특정 필터의 포함, 사용 또는 선택에 영향을 미칠 수 있다. 모션 컴포넌트(1058)는 가속도 센서 컴포넌트(예를 들어, 가속도계), 중력 센서 컴포넌트, 회전 센서 컴포넌트(예를 들어, 자이로스코프) 등을 포함할 수 있는데, 이를테면 청취자의 위치에서의 변화를 추적하는데 사용될 수 있는데, 이를테면 특정 프레임 데이터를 인코딩하는 방법을 결정할 때 프로세서에 의해 또한 고려될 수 있다. 환경 컴포넌트(1060)는 예를 들어, 조명 센서 컴포넌트(예를 들어, 광도계), 온도 센서 컴포넌트(예를 들어, 주변 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예를 들어, 기압계), 음향 센서 컴포넌트(예를 들어, 하나 이상의 주파수 또는 주파수 대역과 같은 잔향 감쇠 시간(reverberation decay time)을 검출하는 하나 이상의 마이크로폰), 근접 센서 또는 룸 볼륨(room volume) 감지 컴포넌트(예를 들어, 인근의 물체를 검출하는 적외선 센서), 가스 센서(예를 들어, 안전을 위해 유해 가스의 농도를 검출하거나 대기 중 오염 물질을 측정하는 가스 검출 센서), 또는 주위의 물리적 환경에 대응하는 표시, 측정치 또는 신호를 제공할 수 있는 다른 컴포넌트를 포함할 수 있다. 위치 컴포넌트(1062)는 위치 센서 컴포넌트(예를 들어, 위성 위치 확인 시스템(Global Position System)(GPS) 수신기 컴포넌트), 고도 센서 컴포넌트(예를 들어, 고도가 도출될 수 있는 기압을 검출하는 고도계 또는 기압계), 방향 센서 컴포넌트(예를 들어, 자력계 등)을 포함할 수 있다.In further example embodiments, I/
통신은 광범위한 각종 기술을 사용하여 구현될 수 있다. I/O 컴포넌트(1050)는 커플링(1082) 및 커플링(1072)을 통해 머신(1000)을 네트워크(1080) 또는 디바이스(1070)에 각각 결합하도록 동작 가능한 통신 컴포넌트(1064)를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1064)는 네트워크(1080)와 인터페이스하는 네트워크 인터페이스 컴포넌트 또는 다른 적합한 디바이스를 포함할 수 있다. 또 다른 예에서, 통신 컴포넌트(1064)는 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, 근거리 통신(near field communication)(NFC) 컴포넌트, 블루투스® 컴포넌트(예컨대, 블루투스® 로우 에너지(LOW ENERGY)), 와이파이® 컴포넌트 및 다른 양상을 통해 통신을 제공하는 다른 통신 컴포넌트를 포함할 수 있다. 디바이스(1070)는 다른 머신 또는 임의의 광범위한 각종 주변 디바이스(예를 들어, USB를 통해 연결된 주변 디바이스)일 수 있다.Communications can be implemented using a wide variety of technologies. I/
더욱이, 통신 컴포넌트(1064)는 식별자를 검출하거나 또는 식별자를 검출하도록 동작 가능한 컴포넌트를 포함할 수 있다. 예를 들어, 통신 컴포넌트(1064)는 무선 주파수 식별(radio frequency identificatio)(RFID) 태그 판독기 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 판독기 컴포넌트(예를 들어, 범용 제품 코드(Universal Product Code)(UPC) 바 코드와 같은 1 차원 바코드, QR(Quick Response) 코드와 같은 다차원 코드, Aztec 코드, Data Matrix, Dataglyph, MaxiCode, PDF49, Ultra Code, UCC RSS-2D 바코드 및 다른 광학 코드를 검출하는 광학 센서), 또는 음향 검출 컴포넌트(예를 들어, 태그가 붙은 오디오 신호를 식별하는 마이크로폰)을 포함할 수 있다. 또한, 인터넷 프로토콜(Internet Protocol)(IP) 지리 위치를 통한 위치, Wi-Fi® 신호 삼각 측량법을 통한 위치, 특정 위치를 표시할 수 있는 NFC 비콘 신호의 검출을 통한 위치 등과 같은 다양한 정보가 통신 컴포넌트(1064)를 통해 도출될 수 있다. 이러한 식별자는 기준 또는 국부적 임펄스 응답, 기준 또는 국부적 환경 특성 또는 청취자 특정 특성 중 하나 이상에 관한 정보를 결정하는 데 사용될 수 있다.Moreover, communication component 1064 may detect the identifier or include a component operable to detect the identifier. For example, communication component 1064 may include a radio frequency identification (RFID) tag reader component, an NFC smart tag detection component, an optical reader component (e.g., a Universal Product Code (UPC) Optical sensors to detect one-dimensional barcodes such as barcodes, multidimensional codes such as Quick Response (QR) codes, Aztec Code, Data Matrix, Dataglyph, MaxiCode, PDF49, Ultra Code, UCC RSS-2D barcode and other optical codes), or it may include an acoustic detection component (e.g., a microphone that identifies tagged audio signals). Additionally, a variety of information, such as location via Internet Protocol (IP) geolocation, location via Wi-Fi® signal triangulation, and location via detection of NFC beacon signals that can indicate a specific location, can be transmitted to the communicating component. It can be derived through (1064). These identifiers may be used to determine information about one or more of a reference or local impulse response, a reference or local environmental characteristic, or a listener-specific characteristic.
다양한 예시적인 실시예에서, 이를테면 인코딩된 프레임 데이터 또는 인코딩될 프레임 데이터를 송신하는데 사용될 수 있는, 네트워크(1080)의 하나 이상의 부분은 애드 혹 네트워크, 인트라넷, 엑스트라넷, 가상 사설 네트워크(virtual private network)(VPN), 근거리 통신망(ocal area network)(LAN), 무선 LAN(wireless LAN)(WLAN), 광역 통신망(wide area network)(WAN), 무선 WAN(wireless WAN)(WWAN), 대도시 통신 네트워크(metropolitan area network)(MAN), 인터넷, 인터넷의 일부, 공중 교환 전화 네트워크(Public Switched Telephone Network)(PSTN)의 일부, 일반 전화 서비스(Plain Old Telephone Service)(POTS) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, Wi-Fi® 네트워크, 다른 유형의 네트워크 또는 둘 이상의 이러한 네트워크의 조합일 수 있다. 예를 들어, 네트워크(1080) 또는 네트워크(1080)의 일부는 무선 또는 셀룰러 네트워크를 포함할 수 있고, 커플링(1082)은 코드 분할 다중 액세스(Code Division Multiple Access)(CDMA) 연결, 글로벌 이동 통신(Global System for Mobile communications)(GSM) 연결 또는 다른 유형의 셀룰러 또는 무선 커플링을 포함할 수 있다. 이 예에서, 커플링(1082)은 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함하는 3GPP(third Generation Partnership Project), 4G(fourth generation wireless) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long Term Evolution) 표준, 다양한 표준 설정 조직에 의해 정의된 다른 표준들, 다른 장거리 프로토콜, 또는 다른 데이터 전송 기술과 같은 다양한 유형의 데이터 전송 기술 중 임의의 기술을 구현할 수 있다.In various example embodiments, one or more portions of network 1080 may be used to transmit encoded frame data or frame data to be encoded, such as an ad hoc network, an intranet, an extranet, or a virtual private network. (VPN), local area network (LAN), wireless LAN (WLAN), wide area network (WAN), wireless WAN (WWAN), metropolitan area network (WLAN) metropolitan area network (MAN), Internet, part of the Internet, part of the Public Switched Telephone Network (PSTN), Plain Old Telephone Service (POTS) network, cellular telephone network, wireless network , a Wi-Fi® network, another type of network, or a combination of two or more of these networks. For example, network 1080 or a portion of network 1080 may include a wireless or cellular network, and
명령어(1016)는 네트워크 인터페이스 디바이스(예를 들어, 통신 컴포넌트(1064)에 포함된 네트워크 인터페이스 컴포넌트)를 통한 전송 매체를 사용하여 그리고 다수의 잘 알려진 전송 프로토콜 중 어느 하나(예를 들어, 하이퍼 텍스트 전송 프로토콜(hypertext transfer protocol)(HTTP))을 사용하여 네트워크(1080)를 통해 송신 또는 수신될 수 있다. 유사하게, 명령어(1016)는 디바이스(1070)와의 커플링(1072)(예를 들어, 피어-투-피어 커플링(peer-to-peer coupling))을 통해 전송 매체를 사용하여 송신 또는 수신될 수 있다. "전송 매체"라는 용어는 머신(1000)에 의한 실행을 위한 명령어(1016)를 저장하거나, 인코딩하거나, 또는 반송할 수 있는 임의의 무형의 매체를 포함하는 것으로 취급될 것이며, 그러한 소프트웨어의 통신을 용이하게 하는 디지털 또는 아날로그 통신 신호 또는 다른 무형의 매체를 포함한다.
본 명세서에서 논의된 개념 및 예의 많은 변형이 관련 기술 분야의 통상의 기술자에게 명백할 것이다. 예를 들어, 실시예에 따라, 본 명세서에 설명된 임의의 방법, 프로세스 또는 알고리즘의 특정 동작, 이벤트 또는 기능은 상이한 순서로 수행될 수 있고, 추가되거나, 병합되거나 또는 생략될 수 있다(그러므로 설명된 모든 동작 또는 이벤트는 다양한 방법, 프로세스 또는 알고리즘의 실행을 위해 필연적이지 않다). 더욱이, 일부 실시예에서, 동작 또는 이벤트는 이를테면 멀티 스레딩 처리, 인터럽트 처리, 또는 다중 프로세서 또는 프로세서 코어를 통해 또는 다른 병렬 아키텍처 상에서 순차적이라기보다는 동시에 수행될 수 있다. 또한, 기능을 함께 수행할 수 있는 상이한 시스템 및 컴퓨팅 시스템에 의해 상이한 작업 또는 프로세스가 수행될 수 있다.Many variations of the concepts and examples discussed herein will be apparent to those skilled in the art. For example, depending on the embodiment, certain operations, events, or functions of any method, process, or algorithm described herein may be performed in a different order, added, merged, or omitted (hence the description). Any action or event described is not necessary for the execution of the various methods, processes or algorithms). Moreover, in some embodiments, operations or events may be performed concurrently rather than sequentially, such as through multi-threading processing, interrupt processing, or multiple processors or processor cores or on other parallel architectures. Additionally, different tasks or processes may be performed by different systems and computing systems that can perform the function together.
본 명세서에 개시된 실시예와 관련하여 설명된 다양한 예시적인 논리 블록, 모듈, 방법 및 알고리즘 프로세스 및 시퀀스는 전자 하드웨어, 컴퓨터 소프트웨어 또는 이들의 조합으로서 구현될 수 있다. 하드웨어와 소프트웨어의 이러한 상호 교환성을 예시하기 위해, 다양한 컴포넌트, 블록, 모듈 및 프로세스 동작은, 일부 사례에서, 일반적으로 이들의 기능성의 측면에서 설명된다. 이러한 기능성이 하드웨어 또는 소프트웨어로서 구현되는지는 전체 시스템에 부과된 특정 애플리케이션 및 설계 제약에 따라 달라진다. 따라서, 설명된 기능성은 특정 애플리케이션에 대해 다양한 방식으로 구현될 수 있지만, 그러한 구현 결정은 본 문서의 범위를 벗어나는 것으로 해석되어서는 안된다. 본 명세서에 설명된 비트 레이트 보장 처리 및 방법 및 기술의 실시예는 도 10의 논의에서 위에서 설명한 바와 같이, 많은 유형의 범용 또는 특수 목적 컴퓨팅 시스템 환경 또는 구성 내에서 동작한다.The various illustrative logical blocks, modules, methods, and algorithmic processes and sequences described in connection with the embodiments disclosed herein may be implemented as electronic hardware, computer software, or a combination thereof. To illustrate this interchangeability of hardware and software, various components, blocks, modules and process operations are, in some instances, described generally in terms of their functionality. Whether this functionality is implemented as hardware or software will depend on the specific application and design constraints imposed on the overall system. Accordingly, the described functionality may be implemented in varying ways for a particular application, but such implementation decisions should not be construed as causing a departure from the scope of this document. Embodiments of the bit rate guarantee processing and methods and techniques described herein operate within many types of general-purpose or special-purpose computing system environments or configurations, as described above in the discussion of FIG. 10.
본 발명의 다양한 양태는 독립적으로 또는 함께 사용될 수 있다. 예를 들어, 양태 1은 (장치, 시스템, 디바이스, 방법, 동작을 수행하기 위한 수단, 또는 디바이스에 의해 수행될 때 디바이스로 하여금 동작을 수행하게 할 수 있는 명령어를 포함하는 디바이스 판독 가능 매체와 같은) 주제를 포함하거나 사용할 수 있으며, 이를테면 프레임의 순차적인 일련의 그룹으로부터, 일련의 프레임의 특정 그룹에 대한 타겟 평균 처리 비트 레이트를 달성하기 위해 데이터를 처리하는 방법을 포함하거나 사용할 수 있으며, 일련의 프레임은 프레임의 제1 그룹(F1) 내지 프레임의 마지막 그룹(Fj)을 포함하고, 여기서 각각의 프레임의 그룹은 Dj 개의 프레임을 포함한다. 양태 1에서, 방법은 룩 어헤드 처리 버퍼 내 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하는 단계―수신된 프레임은 제1 버퍼링된 프레임(F10) 내지 프레임(F1B1-1)을 포함하고, B1은 1보다 큼―, 및 프로세서 회로를 사용하여, 룩 어헤드 처리 버퍼 내의 수신된 B1 개 프레임에 대응하는 하나 이상의 비트 할당 요청에 기초하여 제1 버퍼링된 프레임(F10)에 대한 제1 비트 할당을 결정하는 단계를 포함할 수 있다. 예에서, 양태 1은 룩 어헤드 처리 버퍼에서, 인코딩될 프레임의 제1 그룹(F1)의 마지막 프레임(F1D1-1)을 수신하는 단계, 및 프로세서 회로를 사용하여, B1 개보다 적은 수의 비트 할당 요청에 기초하여 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계를 포함할 수 있다.The various aspects of the invention can be used independently or together. For example,
양태 2는 이를테면 마지막 프레임(F1D1-1)에 선행하는 하나 이상의 다른 프레임에 대한 비트 할당을 결정하는 단계, 및 그런 다음 룩 어헤드 처리 버퍼로부터의 마지막 프레임(F1D1-1) 이외의 프레임을 삭제하는 단계를 선택적으로 포함하기 위해, 양태 1의 주제를 포함하거나 사용할 수 있거나, 또는 선택적으로 양태 1의 주제와 조합될 수 있다. 양태 2에서, 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계는 마지막 프레임(F1D1-1)에만 대응하는 비트 할당 요청을 사용하는 단계를 포함할 수 있다. 마지막 프레임(F1D1-1)이 속하는 프레임의 특정 그룹에 적용되는 할당 정보와 같은 다른 비트 할당 요청 정보가 유사하게 사용될 수 있다.
양태 3은 룩 어헤드 처리 버퍼 내의 수신된 B1 개 프레임에 대응하는 B1 개 비트 할당 요청 각각에 관한 정보를 사용하여 제1 버퍼링된 프레임(F10)에 대한 제1 비트 할당을 결정하는 단계를 선택적으로 포함하기 위해, 양태 1 또는 2 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.
양태 4는 프로세서 회로를 사용하여, 제1 버퍼링된 프레임(F10)을 제1 비트 할당을 사용하여 인코딩하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 3 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.
양태 5는 제1 버퍼링된 프레임(F10)에 대한 결정된 제1 비트 할당을 프로세서 회로로부터 인코더 회로에 전달하는 단계, 및 인코더 회로를 사용하여, 제1 버퍼링된 프레임(F10)을 제1 비트 할당을 사용하여 인코딩하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 3 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.
양태 6은 마지막 프레임(F1D1-1)에 대한 결정된 후속 비트 할당을 프로세서 회로로부터 인코더 회로에 전달하는 단계, 및 상이한 인코더 회로를 사용하여, 마지막 프레임(F1D1-1)을 후속 비트 할당을 사용하여 인코딩하는 단계를 선택적으로 포함하기 위해, 양태 1의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 6 includes transferring the determined subsequent bit assignments for the last frame (F1 D1-1 ) from the processor circuit to the encoder circuit, and using a different encoder circuit, to use the subsequent bit assignments for the last frame (F1 D1-1 ). The subject matter of
양태 7은 룩 어헤드 처리 버퍼에서 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하는 단계가 프레임의 제1 그룹(F1)으로부터 순차적인 프레임을 수신하는 것을 포함하는 것을 선택적으로 포함하기 위해, 양태 1 내지 6 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.
양태 8은 룩 어헤드 처리 버퍼에서 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하는 단계가 B1 개의 수신된 프레임에 대한 B1 개 각각의 비트 할당 요청을 수신하는 것을 포함하는 것을 선택적으로 포함하기 위해, 양태 1 내지 7 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 8 optionally includes receiving B1 frames of a first group (F1) of frames in a look ahead processing buffer comprising receiving B1 respective bit allocation requests for the B1 received frames. To do so, it may include or use the subject matter of one of
양태 9는 룩 어헤드 처리 버퍼가 제2 버퍼링된 프레임(F11) 내지 프레임(F1B1)을 포함하도록 제1 버퍼링된 프레임(F10)을 제거하거나 삭제하는 단계 및 나중 프레임(F1B1)을 수신하는 단계를 포함하는 룩 어헤드 처리 버퍼의 프레임 콘텐츠를 업데이트하는 것을 선택적으로 포함하기 위해, 양태 1 내지 8 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다. 예에서, 양태 9는 프로세서 회로를 사용하여, 룩 어헤드 처리 버퍼의 업데이트된 프레임 콘텐츠에 대응하는 B1 개 비트 할당 요청에 기초하여 제2 버퍼링된 프레임(F11)에 대한 비트 할당을 결정하는 단계를 더 포함할 수 있다.Aspect 9 includes removing or deleting a first buffered frame (F1 0 ) and a later frame (F1 B1 ) such that the look ahead processing buffer includes second buffered frames (F1 1 ) through frames (F1 B1 ). may include or use the subject matter of one of
양태 10은 프레임의 제1 그룹(F1)으로부터의 마지막 프레임(F1D1-1)을 인코딩하기 이전에, 프레임의 후속하는 제2 그룹(F2)의 하나 이상의 프레임에 대한 비트 할당 요청을 버퍼링하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 9 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 10 includes buffering bit allocation requests for one or more frames of a subsequent second group (F2) of frames prior to encoding the last frame (F1 D1-1 ) from the first group (F1) of frames. To optionally include, the subject matter of one of
양태 11은 프레임의 후속하는 제2 그룹(F2)의 하나 이상의 프레임을 상이한 제2 룩 어헤드 처리 버퍼에 저장하는 단계를 선택적으로 포함하기 위해, 양태 10의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 11 may include or use the subject matter of aspect 10, or to optionally include storing one or more frames of a subsequent second group (F2) of frames to a different second look ahead processing buffer. Can be optionally combined with the subject.
양태 12는 프레임의 제1 그룹(F1)으로부터의 마지막 프레임(F1D1-1)을 인코딩하기 이전에, 적어도 프레임(F20)을 수신하는 것을 포함하는, 제2 룩 어헤드 처리 버퍼의 일부를 프레임의 제2 그룹(F2)으로부터의 프레임으로 채우는 단계를 선택적으로 포함하기 위해, 양태 1 내지 11 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다. 양태 12의 예는, 프레임의 제1 그룹(F1)으로의 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계의 다음에, 제2 룩 어헤드 처리 버퍼를 프레임의 제2 그룹(F2)의 적어도 하나의 추가 프레임으로 채우는 단계―수신된 프레임은 B2 개의 프레임(F20 내지 F2B2-1)을 포함하고, 여기서 B2는 1보다 큼―, 및 프로세서 회로를 사용하여, 제2 룩 어헤드 처리 버퍼 내의 수신된 B2 개의 프레임에 대응하는 B2 개의 비트 할당 요청에 기초하여 프레임(F20)에 대한 비트 할당을 결정하는 단계를 더 포함할 수 있다.Aspect 12 includes receiving at least a frame (F2 0 ) prior to encoding the last frame (F1 D1-1 ) from a first group (F1) of frames. may include or use the subject matter of one of
양태 13은 프레임의 제1 그룹(F1)으로부터의 마지막 프레임(F1D1-1)을 인코딩하기 이전에, 적어도 프레임(F20)을 수신하는 것을 포함하는, 제2 룩 어헤드 처리 버퍼의 일부를 프레임의 제2 그룹(F2)으로부터의 프레임으로 채우는 단계를 선택적으로 포함하기 위해, 양태 1 내지 11 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다. 양태 13의 예는, 프레임의 제1 그룹(F1)으로부터의 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계의 다음에, 제2 룩 어헤드 처리 버퍼를 프레임의 제2 그룹(F2)의 적어도 하나의 추가 프레임으로 채우는 단계―수신된 프레임은 B2 개의 프레임(F20 내지 F2B2-1)을 포함하고, 여기서 B2는 1보다 큼―, 및 프로세서 회로를 사용하여, 제2 룩 어헤드 처리 버퍼 내의 수신된 B2 개의 프레임에 대응하는 하나 이상의 비트 할당 요청에 기초하여 프레임(F20)에 대한 비트 할당을 결정하는 단계, 제2 룩 어헤드 처리 버퍼에서, 인코딩될 프레임의 제2 그룹(F2)의 마지막 프레임(F2D2-1)을 수신하고, 제2 룩 어헤드 처리 버퍼로부터 마지막 프레임(F2D2-1) 이외의 프레임을 삭제하는 단계, 및 프로세서 회로를 사용하여, B2 개 보다 적은 수의 비트 할당 요청에 기초하여 마지막 프레임(F2D2-1)에 대한 비트 할당을 결정하는 단계를 더 포함할 수 있다.Aspect 13 includes receiving at least a frame (F2 0 ) prior to encoding the last frame (F1 D1-1 ) from a first group (F1) of frames. may include or use the subject matter of one of
양태 14는 프레임의 제1 그룹(F1) 내의 동기 프레임을 식별하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 13 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다. 양태 14에서, 프레임의 제1 그룹(F1) 내의 동기 프레임을 식별하는 단계 이후에 또는 후속하여, 예는 동일한 또는 상이한 룩 어헤드 처리 버퍼에서, 프레임의 후속하는 제2 그룹(F2) 내 프레임에 대한 비트 할당 요청을 버퍼링하는 단계를 포함할 수 있다.Aspect 14 may include or use the subject matter of one of
양태 15는 프레임의 제1 그룹(F1) 내의 프레임과 연관된 하나 이상의 제약―제약은 최대 비트 레이트 및 최소 비트 레이트 중 하나 이상을 포함함―을 결정하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 14 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 15 optionally includes determining one or more constraints associated with a frame within the first group (F1) of frames, wherein the constraints include one or more of a maximum bit rate and a minimum bit rate. It may include or use the subject matter of one or any combination thereof, or may be optionally combined with the subject matter.
양태 16은 프레임의 제1 그룹(F1) 내 프레임 중 다수의 프레임에 적용되는 제약을 결정하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 15 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 16 may include or use the subject matter of one of
양태 17은 프레임의 제1 그룹(F1) 내 각각의 프레임에 대한 각각의 제약을 결정하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 15 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 17 may include or use the subject matter of one of
양태 18은 프레임의 그룹(F1 내지 Fj) 중 하나 이상으로부터 헤더 또는 메타데이터로부터의 정보를 사용하여 프레임의 제1 그룹(F1) 내의 프레임과 연관된 제약을 결정하는 단계를 선택적으로 포함하거나 사용하는, 양태 1 내지 15 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다할 수 있다.Aspect 18 optionally includes or uses the step of determining constraints associated with a frame within a first group of frames (F1) using information from a header or metadata from one or more of the groups (F1 to Fj) of frames. It may include or use the subject matter of one of
양태 19는 프레임의 제1 그룹(F1) 내지 프레임의 마지막 그룹(Fj)을 포함하는 프레임의 순차적인 일련의 그룹이 오디오 또는 비디오 정보를 포함하는 것을 선택적으로 포함하기 위해, 양태 1 내지 18 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 19 is one of
양태 20은 프레임의 제1 그룹(F1)의 프레임 내 정보의 상대적 또는 절대적 지각 중요성을 식별하는 단계 및 제1 프레임(F10) 내 정보의 지각 중요성이 제2 프레임(F11) 내 정보의 지각 중요성을 초과할 때, 후속하는 제2 프레임(F11)보다 프레임의 제1 프레임(F10)에 더 많은 수의 비트를 할당하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 19 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 20 includes identifying the relative or absolute perceptual importance of information within a frame of a first group of frames (F1), and determining the perceptual importance of the information within the first frame (F1 0 ) relative to the perception of information within the second frame (F1 1 ). One of
양태 21은 프로세서 회로에 선험적으로 알려지지 않은 프레임의 주어진 그룹(Fj)에 대한 프레임의 수량(Dj)를 선택적으로 포함하기 위해, 양태 1 내지 20 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 21 may include or use the subject matter of one of
예를 들어, 양태 22는 (장치, 시스템, 디바이스, 방법, 동작을 수행하기 위한 수단, 또는 디바이스에 의해 수행될 때 디바이스로 하여금 동작을 수행하게 할 수 있는 명령어를 포함하는 디바이스 판독 가능 매체와 같은) 주제를 포함하거나 사용할 수 있으며, 이를테면 프레임의 제1 그룹(F1) 내지 프레임의 마지막 그룹(Fj)을 포함하는 프레임의 순차적인 일련의 그룹으로부터의 데이터를 처리하기 위한 방법을 포함하거나 사용할 수 있으며, 여기서 각각의 프레임의 그룹은 제1 프레임(Fn0) 내지 마지막 프레임(FnDj-1)을 포함하는 Dj 개의 프레임을 포함한다. 예에서, 양태 22는 B 개 프레임 크기의 제1 버퍼 내 제1 일련의 프레임―제1 일련의 프레임은 프레임의 제1 그룹(F1)으로부터의 프레임(F10 내지 F1B-1)을 포함함―을 수신하는 단계, 및 제1 프로세서 회로에서, 제1 버퍼 내 제1 일련의 프레임에 대한 각각의 비트 할당 요청―비트 할당 요청은 제1 버퍼 내 제1 일련의 프레임과 연관된 제약에 기초함―을 수신하는 단계, 제1 프로세서 회로를 사용하여, 제약 중 적어도 하나에 기초하여 제1 프레임(F10)에 대한 제1 비트 할당을 결정하는 단계, 및 제1 프레임(F10)에 대한 결정된 제1 비트 할당을 사용하여 제1 프레임(F10)을 인코딩하는 단계를 포함하는, 프레임의 제1 그룹(F1)의 제1 프레임(F10)을 인코딩하는 단계를 포함할 수 있다. 양태 22는 제2 일련의 프레임―제2 일련의 프레임은 프레임의 제1 그룹(F1)으로부터의 프레임(F11 내지 F1B)을 포함함―을 포함하도록 제1 버퍼를 업데이트하는 단계, 및 제1 프로세서 회로에서, 업데이트된 제1 버퍼 내 제2 일련의 프레임에 대한 각각의 비트 할당 요청―비트 할당 요청은 업데이트된 제1 버퍼 내 제2 일련의 프레임과 연관된 제약에 기초함―을 수신하는 단계, 제1 프로세서 회로를 사용하여, 제약 중 적어도 하나에 기초하여 제2 프레임(F11)에 대한 제2 비트 할당을 결정하는 단계, 및 제2 프레임(F11)에 대한 결정된 제2 비트 할당을 사용하여 제2 프레임(F11)을 인코딩하는 단계를 포함하는, 프레임의 제1 그룹(F1)의 제2 프레임(F11)을 인코딩하는 단계를 더 포함할 수 있다.For example, aspect 22 may refer to a device-readable medium comprising (an apparatus, system, device, method, means for performing an operation, or instructions that when performed by the device may cause the device to perform the operation). ) may include or use a subject, such as a method for processing data from a sequential series of groups of frames, including the first group of frames (F1) through the last group of frames (Fj), , where each group of frames includes Dj frames including the first frame (Fn 0 ) to the last frame (Fn Dj-1 ). In an example, aspect 22 includes a first series of frames in a first buffer of size B frames, wherein the first series of frames includes frames (F1 0 through F1 B-1 ) from a first group (F1) of frames. - receiving, in a first processor circuit, a respective bit allocation request for a first series of frames in a first buffer, wherein the bit allocation request is based on constraints associated with the first series of frames in the first buffer; receiving, using a first processor circuit, determining a first bit allocation for the first frame (F1 0 ) based on at least one of the constraints, and the determined first bit allocation for the first frame (F1 0 ) and encoding a first frame (F1 0 ) of a first group (F1) of frames, comprising encoding the first frame (F1 0 ) using a 1-bit allocation. Aspect 22 includes updating the first buffer to include a second series of frames, the second series of frames comprising frames (F1 1 through F1 B ) from a first group (F1) of frames, and 1. Receiving, in a processor circuit, a respective bit allocation request for a second series of frames in an updated first buffer, wherein the bit allocation request is based on constraints associated with the second series of frames in the updated first buffer. , using the first processor circuit, determining a second bit allocation for the second frame F1 1 based on at least one of the constraints, and determining the determined second bit allocation for the second frame F1 1 The method may further include encoding the second frame F1 1 of the first group F1 of the frame, including encoding the second frame F1 1 using the method.
양태 23은 제1 프로세서 회로에서, 제2 일련의 프레임에 대한 각각의 비트 할당 요청을 수신하는 단계가 제1 일련의 프레임과 연관된 동일한 비트 할당 요청 중 하나 이상을 수신하는 단계를 포함하는 것을 선택적으로 포함하기 위해, 양태 22의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 23 optionally comprises, in a first processor circuit, receiving each bit allocation request for a second series of frames comprising receiving one or more of the same bit allocation requests associated with the first series of frames. To include, the subject matter of aspect 22 may be included or used, or may be optionally combined with the subject matter.
양태 24는 제1 프레임(F10)에 대한 제1 비트 할당을 결정하는 단계가 제1 버퍼 내 제1 일련의 프레임의 모든 프레임에 대한 비트 할당 요청에 관한 정보를 사용하여 제1 비트 할당을 결정하는 단계를 포함하는 것을 선택적으로 포함하기 위해, 양태 22 또는 23 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 24 provides that determining a first bit allocation for a first frame (F1 0 ) comprises determining the first bit allocation using information regarding bit allocation requests for all frames of the first series of frames in the first buffer. It may include or use the subject matter of one of aspects 22 or 23 or any combination thereof, or may optionally be combined with the subject matter, to optionally include the step of:
양태 25는 제1 프레임(F10) 및 제2 프레임(F11)에 대한 제1 및 제2 비트 할당을 결정하는 단계 각각이 프레임의 제1 그룹(F1)에 대한 제1 타겟 평균 비트 레이트를 만족시키는 단계를 포함하는 것을 선택적으로 포함하기 위해, 양태 22 내지 24 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 25 includes determining first and second bit allocations for a first frame (F1 0 ) and a second frame (F1 1 ), each of which determines a first target average bit rate for the first group (F1) of frames. It may include or use the subject matter of one of aspects 22 to 24 or any combination thereof, or may be optionally combined with the subject matter of any one of aspects 22 to 24, or any combination thereof, to optionally include comprising a step satisfying the above.
양태 26은, 제1 프로세서 회로를 사용하여, 프레임의 후속하는 제2 그룹(F2) 내 프레임에 대한 비트 할당들을 결정하는 단계―결정하는 단계는 프레임의 제2 그룹(F2)에 대한 상이한 제2 타겟 평균 비트 레이트를 만족시키는 단계를 포함함―를 선택적으로 포함하기 위해, 양태 22의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 26 includes determining, using a first processor circuit, bit assignments for a frame within a subsequent second group (F2) of frames, wherein determining bit allocations for a frame in a subsequent second group (F2) of frames include: The subject matter of aspect 22 may be included or used, or may optionally be combined with the subject matter of aspect 22, to optionally include the step of satisfying a target average bit rate.
양태 27은 제1 버퍼 내 제1 일련의 프레임에 대한 각각의 비트 할당 요청을 수신하는 단계가 최소 비트 레이트 및 최대 비트 레이트 중 하나 이상을 포함하는 제약을 기초로 하는 요청을 수신하는 단계를 포함하는 것을 선택적으로 포함하기 위해, 양태 22 내지 26 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 27 includes receiving a respective bit allocation request for a first series of frames in a first buffer comprising receiving a request based on constraints including one or more of a minimum bit rate and a maximum bit rate. To optionally include, it may include or use the subject matter of one of aspects 22 to 26 or any combination thereof, or may be optionally combined with the subject matter.
양태 28은 제1 프레임(F10) 및 제2 프레임(F11)에 대한 제1 및 제2 비트 할당을 결정하는 단계 각각이 제1 프레임(F10) 및 제2 프레임(F11) 내 정보의 상대적 지각 중요성에 기초하여 비트를 할당하는 단계를 포함하는 것을 선택적으로 포함하기 위해, 양태 22 내지 27 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 28 includes determining first and second bit allocations for the first frame (F1 0 ) and the second frame (F1 1 ), respectively, using information in the first frame (F1 0 ) and the second frame (F1 1 ). may include or use the subject matter of one of aspects 22 to 27 or any combination thereof, or may optionally be combined with the subject matter of any one of aspects 22 to 27, or any combination thereof, to optionally include allocating bits based on the relative perceptual importance of the bits. You can.
양태 29는 (장치, 시스템, 디바이스, 방법, 동작을 수행하기 위한 수단, 또는 디바이스에 의해 수행될 때 디바이스로 하여금 동작을 수행하게 할 수 있는 명령어를 포함하는 디바이스 판독 가능 매체와 같은) 주제를 포함하거나 사용할 수 있으며, 이를테면 프레임의 순차적인 일련의 그룹으로부터, 일련의 프레임의 특정 그룹에 대한 타겟 평균 처리 비트 레이트를 달성하기 위해 데이터를 처리하는 시스템을 포함하거나 사용할 수 있으며, 일련은 프레임의 제1 그룹(F1) 내지 프레임의 마지막 그룹(Fj)을 포함하고, 여기서 각각의 프레임의 그룹은 Dj 개의 프레임을 포함한다. 예에서, 양태 29의 시스템은 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하도록 구성된 룩 어헤드 버퍼 회로―수신된 프레임은 제1 버퍼링된 프레임(F10) 내지 프레임(F1B1-1)을 포함하고, 여기서 B1은 1보다 큼―, 룩 어헤드 버퍼 회로에 결합된 비트 할당 프로세서 회로―비트 할당 프로세서 회로는 룩 어헤드 처리 버퍼 내의 수신된 B1 개 프레임에 대응하는 비트 할당 요청에 기초하여 제1 버퍼링된 프레임(F10)에 대한 제1 비트 할당을 결정하도록 구성됨―, 및 결정된 제1 비트 할당을 사용하여 제1 버퍼링된 프레임(F10)을 인코딩하도록 구성된 인코더 회로를 포함할 수 있다.Aspect 29 includes subject matter (such as an apparatus, system, device, method, means for performing an operation, or device-readable medium containing instructions that, when performed by the device, may cause the device to perform the operation) may include or use a system for processing data, such as from a sequential series of groups of frames, to achieve a target average processing bit rate for a particular group of frames in the series, the series being the first of the frames. It includes a group (F1) to a last group (Fj) of frames, where each group of frames includes Dj frames. In an example, the system of aspect 29 includes a look ahead buffer circuit configured to receive B1 frames of a first group (F1) of frames, wherein the received frames are one of the first buffered frames (F1 0 ) through frames (F1 B1-1 ). ), where B1 is greater than 1 -, a bit allocation processor circuit coupled to the look ahead buffer circuit - the bit allocation processor circuit based on bit allocation requests corresponding to the received B1 frames in the look ahead processing buffer. configured to determine a first bit allocation for the first buffered frame (F1 0 ), and encoder circuitry configured to encode the first buffered frame (F1 0 ) using the determined first bit allocation. there is.
양태 30은 프레임의 제1 그룹(F1)으로부터 새로운 프레임(new frame)을 수신하고 프레임의 제1 그룹(F1)으로부터 오래된 프레임(old frame)을 선입선출 방식으로 제거하도록 구성된 룩 어헤드 버퍼 회로를 선택적으로 포함하거나 사용하기 위해, 양태 29의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 30 includes a look-ahead buffer circuit configured to receive a new frame from a first group of frames (F1) and remove old frames from the first group (F1) of frames in a first-in-first-out manner. To optionally include or use, the subject matter of aspect 29 may be included or used, or may be optionally combined with the subject matter.
양태 31은 룩 어헤드 처리 버퍼 내 B1 개 프레임(F11 내지 F1B1)에 대응하는 비트 할당 요청에 기초하여 제2 버퍼링된 프레임(F11)에 대한 비트 할당을 결정하도록 구성된 비트 할당 프로세서 회로를 선택적으로 포함하기 위해, 양태 29 또는 30 중 하나 또는 그의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 31 includes a bit allocation processor circuit configured to determine a bit allocation for a second buffered frame (F1 1 ) based on bit allocation requests corresponding to B1 frames (F1 1 through F1 B1 ) in the look ahead processing buffer. For optional inclusion, it may include or use the subject matter of one or a combination of aspects 29 or 30, or may be optionally combined with the subject matter thereof.
양태 32는 프레임의 제1 그룹(F1) 내 또는 프레임의 다른 그룹 내 하나 이상의 프레임과 연관된 제약에 기초하여 제1 비트 할당을 결정하도록 구성된 비트 할당 프로세서 회로를 선택적으로 포함하기 위해, 양태 29 내지 31 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있고, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 32 optionally includes a bit allocation processor circuit configured to determine the first bit allocation based on constraints associated with one or more frames within the first group (F1) of frames or another group of frames, comprising: Aspects 29-31; It may include or use the subject matter of one or any combination thereof, or may be optionally combined with the subject matter.
양태 33은 프레임의 제1 그룹(F1) 내 다른 프레임에 대한 제1 버퍼링된 프레임(F10)의 상대적 지각 중요성 특성에 기초하여 제1 비트 할당을 결정하도록 구성된 비트 할당 프로세서 회로를 선택적으로 포함하기 위해, 양태 29 내지 32 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있고, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 33 optionally includes a bit allocation processor circuit configured to determine the first bit allocation based on a relative perceptual importance characteristic of the first buffered frame (F1 0 ) with respect to other frames in the first group (F1) of frames. In order to do so, it may include or use the subject matter of one of aspects 29 to 32 or any combination thereof, or may be optionally combined with the subject matter.
양태 34는 룩 어헤드 버퍼 회로가 네트워크로부터 도달하는 연속적인 데이터 스트림으로서 프레임을 수신하도록 구성되는 것을 선택적으로 포함하기 위해, 양태 29 내지 33 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있고, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 34 may include or use the subject matter of one of aspects 29-33, or any combination thereof, to optionally include wherein the look ahead buffer circuit is configured to receive the frame as a continuous data stream arriving from the network. , or may be optionally combined with the subject.
이러한 비제한적인 양태 각각은 그 자체로 독립적일 수 있거나, 또는 본 명세서에 제공된 다른 양태 또는 예 중 하나 이상과의 다양한 순열 또는 조합으로 조합될 수 있다. Each of these non-limiting aspects may stand on its own, or may be combined in various permutations or combinations with one or more of the other aspects or examples provided herein.
본 문서에서, "한" 또는 "하나"라는 용어는 특허 문서에서 일반적으로 사용되는 것으로, "적어도 하나" 또는 "하나 이상"이라는 임의의 다른 인스턴스 또는 사용과 관계 없이, 하나 또는 하나 초과를 포함하는 것으로 사용된다. 본 문서에서, 달리 지시되지 않는 한, "또는"이라는 용어는 배타적이지 않음을 지칭하는데 사용되거나, 또는 "A 또는 B"가 "A 이지만 B가 아님", "B이지만 A가 아님" 및 "A 및 B"를 포함하도록 지칭하는데 사용될 수 있다. 본 문서에서, "구비하는" 및 "~인"이라는 용어는 "포함하는" 및 "여기서"라는 각각의 용어의 평이한 영어에 상당하는 것으로서 사용된다.As used herein, the terms "a" or "one" are used generally in patent documents to include one or more than one, without regard to any other instances or uses of "at least one" or "one or more". It is used as In this document, unless otherwise indicated, the term "or" is used to refer to a non-exclusive term, or "A or B" is used to refer to "A but not B", "B but not A", and "A". and B". In this document, the terms “comprising” and “in” are used as the plain English equivalents of the respective terms “comprising” and “where”.
다른 것들 중에서, "할 수 있다", "일 지도 모른다", "일 수도 있다", "예를 들어" 등과 같이 본 명세서에서 사용된 조건적 언어는 달리 구체적으로 언급하지 않는 한 또는 사용된 맥락 내에서 달리 이해되지 않는 한, 특정 실시예가 특정의 특징, 요소 및/또는 상태를 포함하지만, 다른 실시예는 포함하지 않음을 일반적으로 전달하려는 것이 의도된다. 따라서, 일반적으로 이러한 조건부 언어는 특징, 요소 및/또는 상태가 어떤 방식으로든 하나 이상의 실시예에 요구된다는 것 또는 하나 이상의 실시예가, 저자의 입력이나 촉구가 있든 없든, 이러한 특징, 요소 및/또는 상태가 임의의 특정 실시예에서 포함되든 아니면 임의의 특정 실시예에서 수행되든, 결정을 위한 로직을 반드시 포함한다는 것을 의미하지는 않는다.Conditional language used herein such as “may,” “may,” “may,” “for example,” etc., is used herein unless specifically stated otherwise or within the context in which it is used. Unless otherwise understood, it is intended to convey generally that certain embodiments include certain features, elements and/or states, but not other embodiments. Thus, such conditional language generally means that a feature, element, and/or state is in some way required of one or more embodiments, or that one or more embodiments, with or without the author's input or urging, of such feature, element, and/or state. Whether included in or performed in any particular embodiment does not necessarily mean that it includes logic for making a decision.
위의 상세한 설명은 다양한 실시예에 적용되는 것으로 신규한 특징을 도시하고 설명하며, 지적하였지만, 도시된 디바이스 또는 알고리즘의 형태 및 세부 사항에서 다양한 생략, 대체 및 변경이 이루어질 수 있다는 것이 이해될 것이다. 인식되는 바와 같이, 본 명세서에 설명된 본 발명의 특정 실시예는, 일부 특징이 다른 특징과 별도로 사용되거나 실시될 수 있으므로, 본 명세서에 제시된 모든 특징 및 이점을 제공하지 않는 형태 내에서 구현될 수 있다.Although the above detailed description illustrates, describes, and points out novel features as applicable to various embodiments, it will be understood that various omissions, substitutions, and changes may be made in the form and details of the depicted devices or algorithms. As will be appreciated, certain embodiments of the invention described herein may be implemented in forms that do not provide all of the features and advantages set forth herein, since some features may be used or practiced separately from other features. there is.
더욱이, 주제가 구조적 특징 또는 방법 또는 동작에 특유한 언어로 설명되었지만, 첨부된 청구범위에서 정의된 주제가 반드시 위에서 설명된 특정한 특징 또는 동작으로 제한되는 것이 아니라는 것을 이해하여야 한다. 오히려, 위에서 설명한 특정한 특징 및 동작은 청구범위를 구현하는 예시적인 형태로서 개시된다.Moreover, although the subject matter has been described in language specific to structural features or methods or acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Rather, the specific features and acts described above are disclosed as example forms of implementing the claims.
Claims (34)
룩 어헤드 처리 버퍼(look-ahead processing buffer)에서 상기 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하는 단계 ― 상기 수신된 프레임은 제1 버퍼링된 프레임(F10) 내지 프레임(F1B1-1)을 포함하고, B1은 1보다 크고, B1은 D1보다 작고, 상기 룩 어헤드 처리 버퍼에서 상기 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하는 단계는, B1 개의 수신된 프레임에 대한 B1 개 각각의 비트 할당 요청을 수신하는 단계를 포함함 ―;
프로세서 회로를 사용하여, 상기 룩 어헤드 처리 버퍼에서 상기 수신된 B1 개 프레임에 대응하는 B1 개 비트 할당 요청에 기초하여 상기 제1 버퍼링된 프레임(F10)에 대한 제1 비트 할당을 결정하는 단계;
상기 룩 어헤드 처리 버퍼에서, 인코딩될 상기 프레임의 제1 그룹(F1)의 마지막 프레임(F1D1-1)을 수신하는 단계; 및
상기 프로세서 회로를 사용하여, B1 개보다 적은 수의 비트 할당 요청에 기초하여 상기 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계를 포함하는, 데이터 처리 방법.From a sequential series of groups of frames, a particular group of frames in the series, the group of frames in the series comprising a first group of frames (F1) to a last group of frames (Fj), each group of frames In a method of processing data to achieve a target average processing bit rate for - comprising Dj frames,
Receiving B1 frames of the first group (F1) of frames in a look-ahead processing buffer, wherein the received frames include first buffered frames (F1 0 ) to frames (F1 B1) . -1 ), B1 is greater than 1, B1 is less than D1, and receiving B1 frames of the first group (F1) of the frames in the look-ahead processing buffer comprises: B1 received frames Receiving each bit allocation request for B1 -;
Using processor circuitry, determining first bit allocations for the first buffered frame (F1 0 ) based on B1 bit allocation requests corresponding to the received B1 frames in the look ahead processing buffer. ;
Receiving, in the look ahead processing buffer, a last frame (F1 D1-1 ) of the first group (F1) of frames to be encoded; and
and determining, using the processor circuitry, subsequent bit allocations for the last frame (F1 D1-1 ) based on fewer than B1 bit allocation requests.
상기 마지막 프레임(F1D1-1)에 선행하는 하나 이상의 다른 프레임에 대한 비트 할당을 결정하는 단계; 및
상기 룩 어헤드 처리 버퍼로부터 상기 마지막 프레임(F1D1-1) 이외의 프레임을 삭제(expunging)하는 단계를 더 포함하고,
상기 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계는, 상기 마지막 프레임(F1D1-1)에만 대응하는 비트 할당 요청을 사용하는 단계를 포함하는, 데이터 처리 방법.According to paragraph 1,
determining bit allocations for one or more other frames preceding the last frame (F1 D1-1 ); and
Further comprising expunging frames other than the last frame (F1 D1-1 ) from the look ahead processing buffer,
Determining a subsequent bit allocation for the last frame (F1 D1-1 ) comprises using a bit allocation request corresponding only to the last frame (F1 D1-1 ).
상기 제1 버퍼링된 프레임(F10)에 대한 제1 비트 할당을 결정하는 단계는, 상기 룩 어헤드 처리 버퍼에서 상기 수신된 B1 개 프레임에 대응하는 상기 B1 개 비트 할당 요청 각각에 관한 정보를 사용하는 단계를 포함하는, 데이터 처리 방법.According to paragraph 1,
The step of determining the first bit allocation for the first buffered frame (F1 0 ) uses information about each of the B1 bit allocation requests corresponding to the received B1 frames in the look ahead processing buffer. A data processing method comprising the steps of:
상기 프로세서 회로를 사용하여, 상기 제1 버퍼링된 프레임(F10)을 상기 제1 비트 할당을 사용하여 인코딩하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
Using the processor circuit, encoding the first buffered frame (F1 0 ) using the first bit allocation.
상기 제1 버퍼링된 프레임(F10)에 대한 상기 결정된 제1 비트 할당을 상기 프로세서 회로로부터 인코더 회로로 전달하는 단계; 및
상기 인코더 회로를 사용하여, 상기 제1 버퍼링된 프레임(F10)을 상기 제1 비트 할당을 사용하여 인코딩하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
transferring the determined first bit allocation for the first buffered frame (F1 0 ) from the processor circuit to an encoder circuit; and
Using the encoder circuit, encoding the first buffered frame (F1 0 ) using the first bit allocation.
상기 룩 어헤드 처리 버퍼가 제2 버퍼링된 프레임(F11) 내지 프레임(F1B1)을 포함하도록 상기 제1 버퍼링된 프레임(F10)을 제거하고 나중(later) 프레임(F1B1)을 수신하는 것을 포함하는, 상기 룩 어헤드 처리 버퍼의 프레임 콘텐츠를 업데이트하는 단계; 및
상기 프로세서 회로를 사용하여, 상기 룩 어헤드 처리 버퍼의 상기 업데이트된 프레임 콘텐츠에 대응하는 B1 개 비트 할당 요청에 기초하여 상기 제2 버퍼링된 프레임(F11)에 대한 비트 할당을 결정하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
Removing the first buffered frame (F1 0 ) and receiving a later frame (F1 B1 ) so that the look ahead processing buffer includes second buffered frames (F1 1 ) to frames (F1 B1 ) updating frame content of the look ahead processing buffer, including; and
determining, using the processor circuitry, bit allocations for the second buffered frame (F1 1 ) based on B1 bit allocation requests corresponding to the updated frame content in the look ahead processing buffer. Including, data processing methods.
상기 프레임의 제1 그룹(F1)으로부터의 상기 마지막 프레임(F1D1-1)을 인코딩하기 이전에,
후속하는 프레임의 제2 그룹(F2)의 하나 이상의 프레임에 대한 비트 할당 요청을 버퍼링하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
Before encoding the last frame (F1 D1-1 ) from the first group (F1) of frames,
The method further comprising buffering bit allocation requests for one or more frames of a second group (F2) of subsequent frames.
상기 버퍼링하는 단계는 상기 후속하는 프레임의 제2 그룹(F2)의 상기 하나 이상의 프레임을 상이한 제2 룩 어헤드 처리 버퍼에 저장하는 단계를 포함하는, 데이터 처리 방법.In clause 7,
The method of claim 1 , wherein the step of buffering comprises storing the one or more frames of the second group (F2) of the subsequent frames in a different second look ahead processing buffer.
상기 프레임의 제1 그룹(F1)으로부터의 상기 마지막 프레임(F1D1-1)을 인코딩하기 이전에:
적어도 프레임(F20)을 수신하는 것을 포함하는, 제2 룩 어헤드 처리 버퍼의 일부를 프레임의 제2 그룹으로부터의 프레임으로 채우는 단계;
상기 프레임의 제1 그룹(F1)으로의 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계의 다음에:
상기 제2 룩 어헤드 처리 버퍼를 상기 프레임의 제2 그룹(F2)의 적어도 하나의 추가 프레임으로 채우는 단계 ― 수신된 프레임은 B2 개의 프레임(F20 내지 F2B2-1)을 포함하고, B2는 1보다 큼 ―; 및
상기 프로세서 회로를 사용하여, 상기 제2 룩 어헤드 처리 버퍼에서 상기 수신된 B2 개의 프레임에 대응하는 B2 개 비트 할당 요청에 기초하여 상기 프레임(F20)에 대한 비트 할당을 결정하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
Before encoding the last frame (F1 D1-1 ) from the first group (F1) of frames:
filling a portion of the second look ahead processing buffer with frames from a second group of frames, comprising receiving at least a frame (F2 0 );
Following the step of determining the subsequent bit allocation for the last frame (F1 D1-1 ) to the first group (F1) of frames:
Filling the second look ahead processing buffer with at least one additional frame of the second group (F2) of frames, wherein the received frame includes B2 frames (F2 0 to F2 B2-1 ), wherein B2 is greater than 1 -; and
Using the processor circuit, determining bit allocation for the frame (F2 0 ) based on B2 bit allocation requests corresponding to the B2 received frames in the second look ahead processing buffer. How to process data.
상기 프레임의 제1 그룹(F1)으로부터의 상기 마지막 프레임(F1D1-1)을 인코딩하기 이전에:
적어도 프레임(F20)을 수신하는 것을 포함하는, 제2 룩 어헤드 처리 버퍼의 일부를 프레임의 제2 그룹(F2)으로부터의 프레임으로 채우는 단계;
상기 프레임의 제1 그룹(F1)으로의 상기 마지막 프레임(F1D1-1)에 대한 상기 후속 비트 할당을 결정하는 단계의 다음에:
상기 제2 룩 어헤드 처리 버퍼를 상기 프레임의 제2 그룹(F2)의 적어도 하나의 추가 프레임으로 채우는 단계 ― 수신된 프레임은 B2 개의 프레임(F20 내지 F2B2-1)을 포함하고, B2는 1보다 큼 ―; 및
상기 프로세서 회로를 사용하여, 상기 제2 룩 어헤드 처리 버퍼에서 상기 수신된 B2 개 프레임에 대응하는 하나 이상의 비트 할당 요청에 기초하여 상기 프레임(F20)에 대한 비트 할당을 결정하는 단계;
상기 제2 룩 어헤드 처리 버퍼에서, 인코딩될 상기 프레임의 제2 그룹(F2)의 마지막 프레임(F2D2-1)을 수신하고, 상기 제2 룩 어헤드 처리 버퍼로부터 상기 마지막 프레임(F2D2-1) 이외의 프레임을 삭제하는 단계; 및
상기 프로세서 회로를 사용하여, B2 개보다 적은 수의 비트 할당 요청에 기초하여 상기 마지막 프레임(F2D2-1)에 대한 비트 할당을 결정하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
Before encoding the last frame (F1 D1-1 ) from the first group (F1) of frames:
filling a portion of the second look ahead processing buffer with frames from a second group of frames (F2), comprising receiving at least frames (F2 0 );
Following the step of determining the subsequent bit allocation for the last frame (F1 D1-1 ) to the first group (F1) of frames:
Filling the second look ahead processing buffer with at least one additional frame of the second group (F2) of frames, wherein the received frame includes B2 frames (F2 0 to F2 B2-1 ), wherein B2 is greater than 1 -; and
determining, using the processor circuitry, a bit allocation for the frame (F2 0 ) based on one or more bit allocation requests corresponding to the received B2 frames in the second look ahead processing buffer;
Receive, in the second look ahead processing buffer, the last frame (F2 D2-1 ) of the second group (F2) of the frames to be encoded, and receive the last frame (F2 D2-1 ) from the second look ahead processing buffer. 1 ) Deleting other frames; and
Using the processor circuit, determining bit allocations for the last frame (F2 D2-1 ) based on fewer than B2 bit allocation requests.
상기 프레임의 제1 그룹(F1)에서 동기 프레임을 식별하는 단계; 및
상기 프레임의 제1 그룹(F1)에서 상기 동기 프레임을 식별하는 단계 다음에, 동일한 또는 상이한 룩 어헤드 처리 버퍼에서, 후속하는 프레임의 제2 그룹(F2) 내의 프레임에 대한 비트 할당 요청을 버퍼링하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
identifying a sync frame in the first group (F1) of frames; and
Following the step of identifying the sync frame in the first group (F1) of frames, buffering bit allocation requests for frames in a second group (F2) of subsequent frames in the same or a different look ahead processing buffer. A data processing method further comprising steps.
상기 프레임의 제1 그룹(F1) 내의 프레임과 연관된 하나 이상의 제약을 결정하는 단계를 더 포함하며, 상기 제약은 최대 비트 레이트 및 최소 비트 레이트 중 하나 이상을 포함하는, 데이터 처리 방법.According to paragraph 1,
The method further comprising determining one or more constraints associated with a frame within the first group (F1) of frames, wherein the constraints include one or more of a maximum bit rate and a minimum bit rate.
상기 하나 이상의 제약을 결정하는 단계는, 상기 프레임의 제1 그룹(F1) 내의 프레임 중 다수의 프레임에 적용되는 제약을 결정하는 단계를 포함하는, 데이터 처리 방법.According to clause 12,
Wherein determining the one or more constraints comprises determining constraints that apply to a plurality of frames within the first group (F1) of frames.
상기 하나 이상의 제약을 결정하는 단계는, 상기 프레임의 제1 그룹(F1) 내의 프레임 각각에 대한 각각의 제약을 결정하는 단계를 포함하는, 데이터 처리 방법.According to clause 12,
The method of claim 1 , wherein determining one or more constraints comprises determining a respective constraint for each frame within the first group (F1) of frames.
상기 프레임의 제1 그룹(F1) 내의 프레임과 연관된 제약을 결정하는 단계는, 상기 프레임의 그룹(F1 내지 Fj) 중 하나 이상의 그룹으로부터 헤더 또는 메타데이터로부터의 정보를 사용하는 단계를 포함하는, 데이터 처리 방법.According to clause 12,
Determining constraints associated with a frame within the first group (F1) of frames comprises using information from a header or metadata from one or more of the groups (F1 to Fj) of frames. How to handle it.
상기 프레임의 제1 그룹(F1)의 프레임 내 정보의 상대적 또는 절대적 지각 중요성(perceptual importance)을 식별하는 단계; 및
제1 프레임(F10) 내 정보의 지각 중요성이 후속하는 제2 프레임(F11) 내 정보의 지각 중요성을 초과할 때, 상기 제2 프레임(F11)보다 상기 제1 프레임(F10)에 더 많은 수의 비트를 할당하는 단계를 더 포함하는, 데이터 처리 방법.According to paragraph 1,
identifying relative or absolute perceptual importance of information in frames of the first group (F1) of frames; and
When the perceptual importance of the information in the first frame (F1 0 ) exceeds the perceptual importance of the information in the subsequent second frame (F1 1 ), the first frame (F1 0 ) is more important than the second frame (F1 1 ). A data processing method further comprising allocating a greater number of bits.
상기 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하도록 구성된 룩 어헤드 버퍼 회로 ― 상기 수신된 프레임은 제1 버퍼링된 프레임(F10) 내지 프레임(F1B1-1)을 포함하고, B1은 1보다 크고, B1은 D1보다 작음 ―;
상기 룩 어헤드 버퍼 회로에 결합된 비트 할당 프로세서 회로 ― 상기 비트 할당 프로세서 회로는 상기 룩 어헤드 버퍼 회로에서 수신된 상기 B1 개 프레임에 대한 B1 개 각각의 비트 할당 요청을 수신하도록 구성되고, 상기 비트 할당 프로세서 회로는 또한, 상기 룩 어헤드 버퍼 회로 내의 상기 수신된 B1 개 프레임에 대응하는 B1 개 비트 할당 요청에 기초하여 상기 제1 버퍼링된 프레임(F10)에 대한 제1 비트 할당을 결정하도록 구성됨 ―; 및
상기 결정된 제1 비트 할당을 사용하여 상기 제1 버퍼링된 프레임(F10)을 인코딩하도록 구성된 인코더 회로를 포함하고,
상기 비트 할당 프로세서 회로는 또한 B1 개보다 적은 수의 비트 할당 요청에 기초하여 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하도록 구성되고,
상기 인코더 회로는 또한 상기 결정된 후속 비트 할당을 사용하여 상기 마지막 프레임(F1D1-1)을 인코딩하도록 구성되는, 데이터 처리 시스템.From a sequential series of groups of frames, a particular group of frames in the series - a frame in the series of groups comprising a first group of frames (F1) to a last group of frames (Fj), each group of frames A system for processing data to achieve a target average processing bit rate comprising Dj frames, comprising:
A look ahead buffer circuit configured to receive B1 frames of a first group (F1) of frames, wherein the received frames include first buffered frames (F1 0 ) through (F1 B1-1 ), and B1 is greater than 1, B1 is less than D1 -;
a bit allocation processor circuit coupled to the look ahead buffer circuit, the bit allocation processor circuit configured to receive B1 respective bit allocation requests for the B1 frames received in the look ahead buffer circuit, wherein the bit The allocation processor circuit is further configured to determine a first bit allocation for the first buffered frame (F1 0 ) based on B1 bit allocation requests corresponding to the received B1 frames in the look ahead buffer circuit. ―; and
an encoder circuit configured to encode the first buffered frame (F1 0 ) using the determined first bit allocation,
the bit allocation processor circuit is further configured to determine subsequent bit allocations for the last frame (F1 D1-1 ) based on fewer than B1 bit allocation requests;
and the encoder circuit is further configured to encode the last frame (F1 D1-1 ) using the determined subsequent bit allocation.
상기 룩 어헤드 버퍼 회로는, 상기 프레임의 제1 그룹(F1)으로부터 새로운 프레임(new frame)을 수신하고 상기 프레임의 제1 그룹(F1)으로부터 오래된 프레임(old frame)을 선입선출 방식으로 삭제하도록 구성되는, 데이터 처리 시스템.According to clause 17,
The look ahead buffer circuit is configured to receive a new frame from the first group (F1) of frames and delete old frames (old frames) from the first group (F1) of frames in a first-in-first-out manner. Consisting of a data processing system.
상기 비트 할당 프로세서 회로는, 상기 룩 어헤드 버퍼 회로 내의 B1 개 프레임(F11 내지 F1B1)에 대응하는 비트 할당 요청에 기초하여 제2 버퍼링된 프레임(F11)에 대한 비트 할당을 결정하도록 구성되는, 데이터 처리 시스템.According to clause 17,
The bit allocation processor circuit is configured to determine the bit allocation for the second buffered frame (F1 1) based on bit allocation requests corresponding to B1 frames ( F1 1 to F1 B1 ) in the look ahead buffer circuit. data processing system.
상기 비트 할당 프로세서 회로는 상기 프레임의 제1 그룹(F1) 내의 다른 프레임에 대한 상기 제1 버퍼링된 프레임(F10)의 상대적 지각 중요성 특성에 기초하여 상기 제1 비트 할당을 결정하도록 구성되는, 데이터 처리 시스템.According to clause 17,
wherein the bit allocation processor circuit is configured to determine the first bit allocation based on a relative perceptual importance characteristic of the first buffered frame (F1 0 ) with respect to other frames within the first group (F1) of frames. processing system.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762490165P | 2017-04-26 | 2017-04-26 | |
US62/490,165 | 2017-04-26 | ||
PCT/US2018/029584 WO2018200822A1 (en) | 2017-04-26 | 2018-04-26 | Bit rate control over groups of frames |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200010278A KR20200010278A (en) | 2020-01-30 |
KR102613286B1 true KR102613286B1 (en) | 2023-12-12 |
Family
ID=63917681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020197034811A KR102613286B1 (en) | 2017-04-26 | 2018-04-26 | Bit rate control for groups of frames |
Country Status (5)
Country | Link |
---|---|
US (1) | US10616587B2 (en) |
EP (1) | EP3616074A4 (en) |
KR (1) | KR102613286B1 (en) |
CN (1) | CN110800047B (en) |
WO (1) | WO2018200822A1 (en) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10283091B2 (en) * | 2014-10-13 | 2019-05-07 | Microsoft Technology Licensing, Llc | Buffer optimization |
US10616587B2 (en) | 2017-04-26 | 2020-04-07 | Dts, Inc. | Bit rate control over groups of frames |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100197385B1 (en) * | 1996-01-25 | 1999-06-15 | 포만 제프리 엘 | Motion video compression system with buffer empty/fill look-ahead bit allocation |
US6167496A (en) * | 1998-02-18 | 2000-12-26 | Storage Technology Corporation | Data stream optimization system for video on demand |
US20120249869A1 (en) * | 2009-12-14 | 2012-10-04 | Thomson Licensing | Statmux method for broadcasting |
US20120269258A1 (en) * | 2011-04-21 | 2012-10-25 | Yang Kyeong H | Rate control with look-ahead for video transcoding |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5657423A (en) | 1993-02-22 | 1997-08-12 | Texas Instruments Incorporated | Hardware filter circuit and address circuitry for MPEG encoded data |
JPH07202820A (en) | 1993-12-28 | 1995-08-04 | Matsushita Electric Ind Co Ltd | Bit rate control system |
US5623424A (en) | 1995-05-08 | 1997-04-22 | Kabushiki Kaisha Toshiba | Rate-controlled digital video editing method and system which controls bit allocation of a video encoder by varying quantization levels |
WO1999053479A1 (en) | 1998-04-15 | 1999-10-21 | Sgs-Thomson Microelectronics Asia Pacific (Pte) Ltd. | Fast frame optimisation in an audio encoder |
US7383180B2 (en) | 2003-07-18 | 2008-06-03 | Microsoft Corporation | Constant bitrate media encoding techniques |
EP1638333A1 (en) * | 2004-09-17 | 2006-03-22 | Mitsubishi Electric Information Technology Centre Europe B.V. | Rate adaptive video coding |
CN101185337B (en) * | 2005-03-10 | 2010-12-08 | 高通股份有限公司 | Quasi-constant-quality rate control with look-ahead |
US7889765B2 (en) | 2005-11-30 | 2011-02-15 | Time Warner Cable Inc. | Apparatus and methods for utilizing variable rate program streams in a network |
US8135063B2 (en) * | 2006-09-08 | 2012-03-13 | Mediatek Inc. | Rate control method with frame-layer bit allocation and video encoder |
US20100111163A1 (en) * | 2006-09-28 | 2010-05-06 | Hua Yang | Method for p-domain frame level bit allocation for effective rate control and enhanced video encoding quality |
WO2010065757A1 (en) * | 2008-12-04 | 2010-06-10 | Swarmcast, Inc. | Adaptive playback rate with look-ahead |
EP2721826A4 (en) * | 2011-06-14 | 2015-05-06 | Zhou Wang | Method and system for structural similarity based rate-distortion optimization for perceptual video coding |
US9094684B2 (en) | 2011-12-19 | 2015-07-28 | Google Technology Holdings LLC | Method for dual pass rate control video encoding |
US9332309B2 (en) * | 2012-06-08 | 2016-05-03 | Apple Inc. | Sync frame recovery in real time video transmission system |
US20140328384A1 (en) * | 2013-05-02 | 2014-11-06 | Magnum Semiconductor, Inc. | Methods and apparatuses including a statistical multiplexer with global rate control |
JP6288100B2 (en) * | 2013-10-17 | 2018-03-07 | 株式会社ソシオネクスト | Audio encoding apparatus and audio decoding apparatus |
US9985887B2 (en) * | 2015-08-27 | 2018-05-29 | Cavium Inc. | Method and apparatus for providing a low latency transmission system using adaptive buffering estimation |
US10530826B2 (en) * | 2015-08-27 | 2020-01-07 | Cavium, Llc | Method and apparatus for providing a low latency transmission system using adjustable buffers |
US10616587B2 (en) | 2017-04-26 | 2020-04-07 | Dts, Inc. | Bit rate control over groups of frames |
-
2018
- 2018-04-26 US US15/963,747 patent/US10616587B2/en active Active
- 2018-04-26 WO PCT/US2018/029584 patent/WO2018200822A1/en unknown
- 2018-04-26 CN CN201880042424.0A patent/CN110800047B/en active Active
- 2018-04-26 EP EP18790802.5A patent/EP3616074A4/en active Pending
- 2018-04-26 KR KR1020197034811A patent/KR102613286B1/en active IP Right Grant
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100197385B1 (en) * | 1996-01-25 | 1999-06-15 | 포만 제프리 엘 | Motion video compression system with buffer empty/fill look-ahead bit allocation |
US6167496A (en) * | 1998-02-18 | 2000-12-26 | Storage Technology Corporation | Data stream optimization system for video on demand |
US20120249869A1 (en) * | 2009-12-14 | 2012-10-04 | Thomson Licensing | Statmux method for broadcasting |
US20120269258A1 (en) * | 2011-04-21 | 2012-10-25 | Yang Kyeong H | Rate control with look-ahead for video transcoding |
Also Published As
Publication number | Publication date |
---|---|
EP3616074A4 (en) | 2020-09-23 |
CN110800047A (en) | 2020-02-14 |
US20180316923A1 (en) | 2018-11-01 |
CN110800047B (en) | 2023-07-25 |
US10616587B2 (en) | 2020-04-07 |
KR20200010278A (en) | 2020-01-30 |
WO2018200822A1 (en) | 2018-11-01 |
EP3616074A1 (en) | 2020-03-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180218003A1 (en) | Ephemeral blockchain data structure | |
US9854032B2 (en) | Context-aware task offloading among multiple devices | |
CN108012156B (en) | Video processing method and control platform | |
US10924426B2 (en) | System and method for intelligent bandwidth allocation on multi-track multimedia communication systems | |
JP2017050001A (en) | System and method for use in efficient neural network deployment | |
US10847169B2 (en) | Audio coder window and transform implementations | |
KR102613286B1 (en) | Bit rate control for groups of frames | |
WO2018201112A1 (en) | Audio coder window sizes and time-frequency transformations | |
WO2016186763A1 (en) | Apparatus and methods for adaptive data compression | |
US11652768B2 (en) | Systems, devices, and methods for determining a non-ephemeral message status in a communication system | |
US20230214396A1 (en) | Stateless stream handling and resharding | |
US11755618B2 (en) | Stateless stream handling and resharding | |
CN112530205A (en) | Airport parking apron airplane state detection method and device | |
CN110009101B (en) | Method and apparatus for generating a quantized neural network | |
WO2016048734A1 (en) | Processing parameters for operations on blocks while decoding images | |
US20170228261A1 (en) | Context-aware task processing for multiple devices | |
CN117270834A (en) | Map rendering method, map rendering device, electronic equipment and storage medium | |
CN112084959A (en) | Crowd image processing method and device | |
US20230034770A1 (en) | Asynchronous statistic-based rate limiting in distributed system | |
US10803626B2 (en) | Large scale online lossless animated GIF processor | |
WO2021072498A1 (en) | Content compression for network transmission | |
US20190278859A1 (en) | Stateless stream handling and resharding | |
US10089262B2 (en) | Reduced overhead safepoint mechanism using signals | |
JP2020120188A (en) | Media coding method and device | |
US20240064239A1 (en) | Pipeline flow management for calls |
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 |