KR102613286B1 - Bit rate control for groups of frames - Google Patents

Bit rate control for groups of frames Download PDF

Info

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
Application number
KR1020197034811A
Other languages
Korean (ko)
Other versions
KR20200010278A (en
Inventor
야섹 스탁후르스키
조란 페조
Original Assignee
디티에스, 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 디티에스, 인코포레이티드 filed Critical 디티에스, 인코포레이티드
Publication of KR20200010278A publication Critical patent/KR20200010278A/en
Application granted granted Critical
Publication of KR102613286B1 publication Critical patent/KR102613286B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/152Data rate or code amount at the encoder output by measuring the fullness of the transmission buffer
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L19/00Speech 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/002Dynamic bit allocation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/115Selection of the code volume for a coding unit prior to coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • H04N19/15Data rate or code amount at the encoder output by monitoring actual compressed data size at the memory before deciding storage at the transmission buffer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/172Methods 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/177Methods 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.

Figure 112019130967820-pct00043
Figure 112019130967820-pct00043

Description

프레임 그룹에 대한 비트 레이트 제어Bit rate control for groups of frames

우선권 주장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 processing arrangement 100 for frame-based data. Processing arrangement 100 may be configured to process received data to achieve a target average processing bit rate. In an example, processing arrangement 100 receives frame-based data 101 from a first data input 110 and provides encoded data 102 from a first data output 140. Frame-based data 101 may include, for example, a sequential series of groups of frames. A group of frames can represent various types of data, such as audio, video, or other data and signals that can be divided or divided into frames. In an example, each frame or each group of frames may include header or metadata information that may include or affect constraints associated with the payload of that particular frame (or group of frames). For example, constraints may include a minimum bit rate, a maximum or instantaneous bit rate, an indication of relative perceptual importance, or other types of constraints or limitations regarding the payload of a frame. In an example, metadata associated with a frame or group of frames may contain essential data that cannot be compressed or removed, thus consuming a portion of the minimum bit rate, leaving less bandwidth needed for the payload. The metadata itself may be variable in size and may vary from frame to frame or between groups of frames. In an example, frame-based data 101 includes a stream of audio and/or video data, such as that may be distributed using a network.

예에서, 프레임 기반 데이터(101)의 적어도 일부는 룩 어헤드 버퍼 회로(look-ahead buffer circuit)(120)에서 수신될 수 있다. 룩 어헤드 버퍼 회로(120)는 동일한 크기의 프레임 또는 상이한 크기를 갖는 프레임에 대한 임의의 수의 메모리 위치를 포함할 수 있다. 예에서, 프레임 기반 데이터(101)는 프레임의 일련의 그룹을 포함하고, 프레임의 각각의 그룹은 동일하거나 상이한 수의 프레임을 가질 수 있다. 예에서, 룩 어헤드 버퍼 회로(120) 내 개별 프레임에 대한 다수의 메모리 위치는 프레임의 특정 그룹 내 다수의 프레임보다 적다.In an example, at least a portion of the frame-based data 101 may be received in a look-ahead buffer circuit 120 . Look ahead buffer circuit 120 may include any number of memory locations for frames of the same size or frames of different sizes. In an example, frame-based data 101 includes a series of groups of frames, and each group of frames may have the same or a different number of frames. In an example, the number of memory locations for an individual frame within look ahead buffer circuit 120 is less than the number of frames within a particular group of frames.

룩 어헤드 버퍼 회로(120)는 프로세서 회로(130)에 결합될 수 있다. 룩 어헤드 버퍼 회로(120)는 룩 어헤드 버퍼 회로(120) 내의 프레임과 연관된 비트 요청 정보를 저장하도록 구성될 수 있거나, 또는 프로세서 회로(130)는 룩 어헤드 버퍼 회로(120)의 프레임과 연관된 비트 요청 정보에 액세스하도록 구성될 수 있다. 프로세서 회로(130)는 또한 룩 어헤드 버퍼 회로(120) 내의 모든 프레임에 대한 비트 요청 정보를 함께 분석하여 룩 어헤드 버퍼 회로(120) 내의 프레임 중 특정 프레임에 대한 비트 할당을 결정하도록 구성될 수 있다. 예에서, 동일한 프로세서 회로(130), 또는 상이한 프로세서 회로 또는 디바이스는 비트 할당이 결정된 프레임 중 특정 프레임을 인코딩하거나 처리하는데 사용될 수 있다. 즉, 프로세서 회로(130)는 제1 데이터 출력(140)에서, 특정 프레임에 대한 비트 할당 결정 중 하나 이상을 제공할 수 있거나, 또는 인코딩된 데이터(102)를 제공할 수 있는, 이를테면 인코딩된 또는 그와 달리 처리된 버전의 특정 프레임을 포함할 수 있다. 하나 이상의 다른 버퍼 회로, 메모리 회로 또는 프로세서 회로는 본 명세서에 설명된 바와 같이 프레임의 저장 및 분석을 수행하기 위한 처리 배열(100)에 포함되거나 또는 처리 배열(100)에서 사용될 수 있다. 개별 프레임과 연관된 또는 개별 프레임에 대응하는 비트 요청은 궁극적으로 프레임을 처리하거나 송신하는 업무를 맡은 시스템에 부여된 모든 제약에 관한 다른 정보 또는 선험적 지식없이 제공될 수 있다. 프로세서 회로(130)는 비트가 이를테면 프레임의 그룹에 대해 할당되는 방법을 조정하거나 제어하여, 명시된 평균 비트 레이트를 만족시키거나 유지하도록 또는 다른 제약을 충족시키도록 구성될 수 있다.The look ahead buffer circuit 120 may be coupled to the processor circuit 130. Look ahead buffer circuit 120 may be configured to store bit request information associated with a frame within look ahead buffer circuit 120, or processor circuit 130 may be configured to store bit request information associated with a frame in look ahead buffer circuit 120. Can be configured to access associated bit request information. The processor circuit 130 may also be configured to jointly analyze the bit request information for all frames within the look ahead buffer circuit 120 to determine bit allocation for a specific frame among the frames within the look ahead buffer circuit 120. there is. In examples, the same processor circuit 130, or a different processor circuit or device may be used to encode or process a particular frame of those for which bit allocations have been determined. That is, the processor circuit 130 may provide, at the first data output 140, one or more of a bit allocation determination for a particular frame, or may provide encoded data 102, such as encoded or Alternatively, it may contain a processed version of a specific frame. One or more other buffer circuits, memory circuits, or processor circuits may be included in or used in processing arrangement 100 to perform storage and analysis of frames as described herein. Bit requests associated with or corresponding to individual frames may be provided without any other information or a priori knowledge of any constraints placed on the system ultimately responsible for processing or transmitting the frame. Processor circuitry 130 may be configured to adjust or control how bits are allocated, such as for groups of frames, to meet or maintain a specified average bit rate or to satisfy other constraints.

도 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 data 101 using the processing array 100. In an example, frame-based data 101 includes various groups of frames that may sequentially arrive at first data input 110 . Portions of the frame-based data 101 may be stored in the look ahead buffer circuit 120 and/or manipulated by the processor circuit 130. In the figures and throughout this specification, groups of frames are designated as Fn, such as F1, F2, F3, etc., with F1 arriving first, F2 coming after F1, F3 coming after F2, and so on. Each group of frames includes a number of individual frames (Dj), and the specific number of individual frames may vary between groups of frames. Each group (Fn) of frames includes individual frames (Fn 0 to Fn Dj ). Although groups of frames (Fn) and individual frames are generally discussed herein as arriving in-line or in a time-dependent manner, the various encoding and processing methods discussed herein allow frame-based data to arrive in-line or in a time-dependent manner. Rather, it can also be applied when they are available together, for example, in a memory circuit or bit storage.

도 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 buffer circuit 120. As used herein, a buffer instance refers to a state of the look ahead buffer circuit 120 in which a certain number of memory locations available in the look ahead buffer circuit 120 are occupied or not occupied by a particular frame. . In other words, the first buffer instance (B F1:0 ) is when the first to fourth frames (F1 0 , F1 1 , F1 2 , and F1 3 ) are stored or available in the look ahead buffer circuit 120. Refers to the state of the look ahead buffer circuit 120. If the look ahead buffer circuit 120 contains any fewer or different frames, a different buffer instance will be displayed.

도 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 buffer circuit 120 includes four memory locations. Additional or fewer memory locations may similarly be used. In the example of Figure 2, each of the four memory locations of look ahead buffer circuit 120 is occupied. Therefore, the look ahead buffer circuit 120 can be considered full, and the processor circuit 130 requests bits (R F1:0 to R F1: 3 ) can be received. In some Figures 2-8 the request is abbreviated as "REQ". Based on the information in the multiple bit requests (R F1:0 to R F1:3 ), the processor circuit 130 determines the available bits between one or more of the corresponding frames (F1 0 , F1 1 , F1 2 , and F1 3 ). You can decide how to allocate bits. In an example, the processor circuit 130 selects the first received frame from the look ahead buffer circuit 120 (e.g., the example of FIG. 2 ) based on information in the bit requests (R F1:0 to R F1:3 ). is configured to determine the bit allocation for the frame (F1 0 )). In other words, the processor circuit 130 uses information or bit requests associated with multiple frames within the look ahead buffer circuit 120 to determine the bit allocation for one specific frame within the look ahead buffer circuit 120 or can be provided. The determined bit allocations can then be applied to encode a particular frame, such as using the same or a different processor circuit 130.

도 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 buffer circuit 120. In the example of FIG. 3 , frame F1 0 is purged from look ahead buffer circuit 120 and subsequent buffer instances B F1:1 contain frames F1 1 through F1 4 . That is, the first received frame in the subsequent buffer instance (B F1:1 ) is frame (F1 1 ). In the example the representation of frame F1 0 includes a dotted border to indicate that frame F1 0 has already been processed or encoded. Accordingly, the bit request corresponding to frame F1 0 may be ignored in favor of processing or encoding of additional or later received frames in the first group F1. In the example, rather than considering frame F1 0 to be purged from look ahead buffer circuit 120, the look ahead window corresponding to look ahead buffer circuit 120 is purged from look ahead buffer circuit 120. It can be understood as moving sequentially along the frame.

도 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 (F1 1 to F1 4), processor circuit 130 may request the corresponding frame (F1). 1 , F1 2 , F1 3 and F1 4 ) can determine how to allocate available bits between one or more frames. In an example, the processor circuit 130 may, for example, based on information in the bit requests (R F1:1 to R F1:4 ) corresponding to the frame in the current buffer instance (B F1:1 ), look ahead buffer circuit 120 ) is configured to determine the bit allocation for the currently earliest received frame (e.g., frame F1 1 in the example of FIG. 3).

도 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 buffer circuit 120. In the example of FIG. 4 , frame F1 1 is purged from look ahead buffer circuit 120 (or the look ahead window corresponding to look ahead buffer circuit 120 is moved), and additional subsequent buffer instances (B F1:2 ) includes frames (F1 2 to F1 5 ). That is, the earliest received frame in a further subsequent buffer instance (B F1:2 ) is frame (F1 2 ), and the most recent frame received in a further subsequent buffer instance (B F1:2 ) is frame (F1 5 ). )am. In the example, the representation of the preceding frames (F1 0 and F1 1 ) includes a dotted border to indicate that the frames (F1 0 and F1 1 ) have already been processed or encoded. Accordingly, bit requests corresponding to frames F1 0 and F1 1 may be ignored for processing or encoding of additional or later received frames in the first group F1.

도 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 (F1 2 to F1 5), processor circuit 130 may request the corresponding frame (F1). 2 , F1 3 , F1 4 , and F1 5 ) can determine how to allocate available bits between one or more frames. In an example, the processor circuit 130 may, for example, based on information in the bit requests (R F1:2 to R F1:5 ) corresponding to the frame in the current buffer instance (B F1:2 ), look ahead buffer circuit 120 ) is configured to determine the bit allocation for the currently earliest received frame (e.g., frame F1 2 in the example of FIG. 4). Once the bit assignments are determined, the same or a different processor circuit 130 may encode the earliest received frame F1 2 according to the determined assignments.

도 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 buffer circuit 120. That is, when the first group (F1) of frames includes n frames, the example of Figure 5 shows that the look ahead buffer circuit 120 is completely occupied by the last four frames in the first group (F1) of frames. respond to what happens In the example of FIG. 5 , frame F1 n-4 is purged from look ahead buffer circuit 120 (or the look ahead window corresponding to look ahead buffer circuit 120 is moved), and additional subsequent The buffer instance (B F1:-3 ) contains frames (F1 n-3 to F1 n ). That is, the earliest received frame in the subsequent buffer instance (B F1:n-3 ) is frame (F1 n-3 ), and in this case the most recently received frame in the subsequent buffer instance (B F1:n-3 ). is the frame (F1 n ) corresponding to the last frame in the first group (F1) of frames. In this example, the representation of the preceding frame (F1 0 through F1 n-4 ) includes a dotted border to indicate that the frame has already been processed or encoded, so the bit request corresponding to the frame (F1 0 through F1 n-4 ) is Additional frames within the first group (F1) of frames may be ignored for processing or encoding.

이를테면 프레임(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 processor circuit 130 determines the corresponding frame (F1 n- 3 , F1 n-2 , F1 n-1 and F1 n ) can determine how to allocate available bits between one or more frames. In an example, the processor circuit 130 may, based on information in the bit requests (R F1:n-3 to R F1:n ) corresponding to the frame in the current buffer instance (B F1 :n-3 ), look ahead. The buffer circuit 120 is configured to determine a bit allocation for the currently earliest received frame (e.g., frame F1 n-3 in the example of FIG. 5). Once the bit assignments are determined, the same or a different processor circuit 130 can encode the earliest received frame (F1 n-3 ) according to the determined assignments.

도 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 data 101 continues to flow into first data input 110, look ahead buffer circuit 120 and processor circuit 130 each process a new or subsequent group of frames. may transition to storing and processing a portion of, for example, having a different average bit rate or other constraints than the first group (F1) of frames. In the example of Figure 5, the second group of frames (F2) follows the first group of frames (F1). The second group (F2) of frames includes m frames designated as (F2 0 to F2 m ), where m and n may, but are not required to be, the same value. Frames (F2 0 to F2 m ) in the second group (F2) of frames may have respective corresponding bit requests or constraints designated as (R F2:0 to R F2:m ). In an example, sync frames, header information, or other metadata associated with or attached to one of the first or second groups of frames (F1 or F2) may be stored in the look ahead buffer circuit 120 and/or the processor circuit 130. ) can be displayed.

도 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 buffer circuit 120 result in fewer frames than could otherwise be stored in look ahead buffer circuit 120. Includes. That is, when the first group (F1) of frames includes n frames, the example of FIG. 6 shows that the look ahead buffer circuit 120 blocks the first group (F1) of frames by three instead of four frames. Responds to being occupied. In the example of FIG. 6 , frame F1 n-3 is purged from look ahead buffer circuit 120 (or the look ahead window corresponding to look ahead buffer circuit 120 is moved), and additional subsequent The buffer instance (B F1:n-2 ) contains frames (F1 n-2 to F1 n ). That is, the earliest received frame in the subsequent buffer instance (B F1:n-2 ) is frame (F1 n-2 ), and in this case the most recently received frame in the subsequent buffer instance (B F1:n-2 ). is the frame (F1 n ) corresponding to the last frame in the first group (F1) of frames. In this example, the representation of the preceding frame (F1 0 through F1 n-3 ) includes a dotted border to indicate that the frame has already been processed or encoded, so the bit request corresponding to the frame (F1 0 through F1 n-3 ) is Additional frames within the first group (F1) of frames may be ignored for processing or encoding.

도 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), processor circuit 130 determines the corresponding It is possible to determine how to allocate available bits between one or more of the frames (F1 n-2 , F1 n-1, and F1 n ). That is, the processor circuit 130 may determine allocation for one or more frames when the look ahead buffer circuit 120 is less full. In an example, the processor circuit 130 may, based on information in the bit requests (R F1:n-2 through R F1:n ) corresponding to the frame in the current buffer instance (B F1 :n-2 ), look ahead. The buffer circuit 120 is configured to determine a bit allocation for the currently earliest received frame (e.g., frame F1 n-2 in the example of FIG. 6). Once the bit assignments are determined, the same or a different processor circuit 130 may encode the earliest received frame (F1 n-2 ) according to the determined assignments.

도 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 buffer circuit 120 or may correspond to different individual buffer circuits. Although frames are allocated between buffers, processor circuitry 130 may be configured to process frames separately for each displayed group. That is, upon receiving a sync frame, metadata, header data, or other received indication of a transition between groups of frames, processor circuitry 130 may be caused to process frame data and bit requests from different groups independently of one another. there is.

도 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, processor circuit 130 has not yet processed or encoded information from the first frame (F2 0 ) because processor circuit 130 has not yet processed or encoded information from the second group of frames (F2). This is because we do not have a sufficient amount of bit request information available to inform decisions regarding bit rate, such as bit rate or average bit rate. The processor circuit 130 may be configured to wait to process at least the first frame (F2 0 ) until the look ahead buffer circuit 120 is filled with a specified minimum number of frames from the second group (F2) of frames. You can. In the example of Figure 6, the minimum number of frames specified may be four frames, but fewer or additional frames may be specified. The minimum number of frames specified for each illustrated example of the first and second groups of frames (F1 and F2) in the examples of Figures 2-8 is four, but different minimum numbers of frames may be used for different groups of frames. This can be used.

도 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 data 101 continues to flow into first data input 110, look-ahead buffer circuit 120 and processor circuit 130 determine the first and second data inputs of the frame. You can continue to transition between groups (F1 and F2). 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). In the example of FIG. 7 , the additional subsequent buffer instances (B F1:n ) for look ahead buffer circuit 120 contain fewer frames than could otherwise be stored in look ahead buffer circuit 120. do. That is, when the first group (F1) of frames includes n frames, the example of FIG. 7 shows that the look ahead buffer circuit 120 stores only the last frame instead of the four frames in the first group (F1) of frames. corresponds to being occupied only by (F1 n ). In the example of FIG. 7 , all frames preceding frame F1 n are purged from look ahead buffer circuit 120 (or the look ahead window corresponding to look ahead buffer circuit 120 is moved), Therefore, additional subsequent buffer instances (B F1:n ) contain only the last frame (F1 n ). As in the previous example, the representation of the preceding frame (F1 0 to F1 n-1 ) in the example includes a dotted border to indicate that the frame has already been processed or encoded, and thus the frame (F1 0 to F1 n-1) ) may be ignored for processing or encoding of the last frame (F1 n ) in the first group (F1) of frames.

예에서, 프로세서 회로(130)는 프레임의 제1 그룹에 대해 임의의 나머지 비트를 마지막 프레임(F1n)에 할당할 수 있다. 일부 예에서, 프로세서 회로(130)는 마지막 프레임(F1n)에 대응하는 비트 요청(RF1:n) 내의 정보를 고려하거나 그 정보를 사용하여 마지막 프레임(F1n)에 대한 나머지 비트의 할당에 영향을 줄 수 있다. 일단 비트 할당이 결정되면, 동일한 또는 상이한 프로세서 회로(130)는 결정된 할당에 따라 마지막 프레임(F1n)을 인코딩할 수 있다.In an example, processor circuit 130 may assign any remaining bits to the last frame F1 n for the first group of frames. In some examples, processor circuit 130 may consider information in the bit request (R F1:n ) corresponding to the last frame (F1 n ) or use that information to determine the allocation of the remaining bits for the last frame (F1 n ). It can have an impact. Once the bit assignments are determined, the same or a different processor circuit 130 can encode the last frame (F1 n ) according to the determined assignments.

도 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 buffer circuit 120 or may correspond to different individual buffers. It can respond to circuits. Regardless of how frames are allocated between buffers, processor circuitry 130 may be configured to process frames separately for each indicated group.

도 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, processor circuit 130 has not yet processed or encoded information from the first three frames in look ahead buffer circuit 120 because processor circuit 130 has not yet processed or encoded information from at least one of the second group (F2) of frames. This is because we do not have a sufficient amount of bit request information available to inform decisions regarding bit rates, such as the average bit rate or the bit rate that can be enforced or applied to the frame that arrives first.

도 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 data 101 continues to flow into first data input 110, look-ahead buffer circuit 120 and processor circuit 130 determine the first and second data inputs of the frame. You can continue to transition between groups (F1 and F2). 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). In the example of Figure 8, the buffer instance B F1:empty is shown to indicate that no frames from the first group of frames are included in the look ahead buffer circuit 120. In the example of Figure 8, all frames from the first group of frames (F1) are purged from the look ahead buffer circuit 120 (or the look ahead window corresponding to the look ahead buffer circuit 120 is moved). ), the next buffer instance corresponds to the subsequent group of frames. Similar to the previous example, the representation of the processed frame (F1 0 to F1 n ) in the figure includes a dotted border to indicate that the frame has already been processed or encoded, and thus corresponds to the frame (F1 0 to F1 n ). bit requests may be ignored in favor of processing or encoding additional frames.

도 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 buffer circuit 120. In other words , the first buffer instance B Refers to the state of the look ahead buffer circuit 120 when stored in the look ahead buffer circuit 120 or available to the look ahead buffer circuit 120.

도 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 buffer circuit 120 includes four memory locations. More or fewer memory locations may similarly be used. In the example of Figure 8, each of the four memory locations of look ahead buffer circuit 120 is occupied. Therefore, the look ahead buffer circuit 120 can be considered full, and the processor circuit 130 requests bits (R F2:0 to R F2: 3 ) can be received. Based on the information in the multiple bit requests (R F2:0 to R F2:3 ), the processor circuit 130 determines the available bits between one or more of the corresponding frames (F2 0 , F2 1 , F2 2 , and F2 3 ). You can decide how to allocate bits. In an example, the processor circuit 130 may, for example, based on information within the bit requests (R F2:0 to R F2:3 ) , It is configured to determine bit allocation for. In other words, the processor circuit 130 uses the information or bit request associated with each of the multiple frames within the look ahead buffer circuit 120 to receive a specific frame within the look ahead buffer circuit 120 (e.g., first to receive bit allocation for a given frame) can be determined or provided.

도 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 method 900 that may generally include determining each bit assignment for a different frame within a group of frames. Method 900 may be performed using one or more components of processing arrangement 100 from the example of FIG. 1, or using various hardware from the example of FIG. 10. In an example of method 900, at operation 910, look ahead buffer circuit 120 may receive B frames, such as from a first group F1 of frames. In an example, the first group of frames includes about 50 to about 100 frames corresponding to, say, about 2 seconds of audio data, and look ahead buffer circuit 120 is configured to receive information corresponding to about 20 frames. do. The example sizes of groups of frames and memory locations available in look ahead buffer circuit 120 are provided for illustrative purposes only, and fewer or additional frames or memory locations may similarly be used. However, typically, the number of frames within a given group of frames exceeds the number of memory locations available in the look ahead buffer circuit 120. According to the convention used herein, frames within the first group (F1) of frames may be designated as (F1 0 to F1 n ). In an example of operation 910, the look ahead processing buffer may include frames F1 0 through F1 B , for example. Other frames may be used similarly.

예(900)에서, 동작(920)에서, 프로세서 회로(130)는 룩 어헤드 처리 버퍼, 또는 룩 어헤드 버퍼 회로(120) 내 제1 버퍼링된 프레임(F10)에 대한 비트 할당을 결정하도록 구성될 수 있다. 예에서, 프로세서 회로(130)는 프레임(F10 내지 F1B)을 포함하는, 룩 어헤드 처리 버퍼 내 프레임 각각에 대한 각각의 비트 요청 정보를 수신하도록 구성될 수 있다. 프로세서 회로(130)는 이어서 여러 비트 요청에 관한 정보에 기초하여, 가장 이른 프레임(F10)에 대한 적절한 비트 할당을 결정할 수 있다. 프로세서 회로(130)는 다른 것들 중에서도, 가장 이른 프레임(F10) 내 정보의 상대적 지각 중요성 및 가장 이른 프레임(F10)이 속한 프레임의 그룹에 대한 타겟 평균 비트 레이트에 기초하여 비트 할당을 결정할 수 있다. 즉, 프로세서 회로(130)는 가장 이른 프레임을 인코딩하기 위해 비트를 할당하거나 비트가 가장 이른 프레임을 인코딩하는 데 이용 가능하지 않게 함으로써 비트 예산을 유지하도록 구성될 수 있다. 동작(930)에서, 비트 할당을 수행하기 위해 사용된 동일한 또는 상이한 프로세서 회로는 동작(920)에서 결정된 비트 할당에 기초하여 가장 이른 프레임(F10)을 인코딩하는데 사용될 수 있다.In example 900, at operation 920, the processor circuit 130 determines a look ahead processing buffer, or a bit allocation for the first buffered frame (F1 0 ) in the look ahead buffer circuit 120. It can be configured. In an example, processor circuit 130 may be configured to receive respective bit request information for each frame in the look ahead processing buffer, including frames F1 0 through F1 B . Processor circuit 130 may then determine the appropriate bit allocation for the earliest frame (F1 0 ) based on information regarding the various bit requests. Processor circuitry 130 may determine the bit allocation based on, among other things, the relative perceptual importance of information within the earliest frame (F1 0 ) and a target average bit rate for the group of frames to which the earliest frame (F1 0 ) belongs. there is. That is, the processor circuit 130 may be configured to maintain the bit budget by allocating bits to encode the earliest frames or making bits unavailable to encode the earliest frames. At operation 930, the same or a different processor circuit used to perform the bit allocation may be used to encode the earliest frame F1 0 based on the bit allocation determined at operation 920.

동작(940)에서, 예는 룩 어헤드 처리 버퍼를 업데이트하는 단계를 포함할 수 있다. 예를 들어, 룩 어헤드 처리 버퍼 내의 정보는 선입선출 방식으로 조정될 수 있다. 즉, F10와 같은 가장 먼저 수신된 프레임 및 F1B+1과 같은 후속 프레임은 퍼지된 프레임을 대신할 수 있다. 프레임 교환에 뒤이어, 룩 어헤드 처리 버퍼는 제2 프레임(F11) 내지 프레임(F1B+1)을 포함하는 B 개 프레임을 다시 포함할 수 있다. 예에서, 각각의 간격에서 단일 프레임만이 제거되지만, 본 발명자는 다수의 프레임이 비트 할당 결정을 수신할 수 있고 단일 간격에서 버퍼로부터 교환될 수 있는 다른 실시예를 고려한다.At operation 940, an example may include updating a look ahead processing buffer. For example, information in the look-ahead processing buffer may be adjusted in a first-in-first-out manner. That is, the earliest received frame such as F1 0 and subsequent frames such as F1 B+1 can replace the purged frame. Following the frame exchange, the look ahead processing buffer may again contain B frames including the second frame (F1 1 ) to the frame (F1 B+1 ). In the example, only a single frame is discarded in each interval, but the inventors contemplate other embodiments in which multiple frames may receive bit allocation decisions and be exchanged from the buffer in a single interval.

동작(950)에서, 예는 이를테면 룩 어헤드 처리 버퍼 내의 제2 프레임(F11)에 대한 제2 비트 할당을 결정하는 단계를 포함할 수 있다. 즉, 동작(950)에서, 프로세서 회로(130)는 룩 어헤드 처리 버퍼, 또는 룩 어헤드 버퍼 회로(120) 내 제2 버퍼링된 프레임(F11)에 대한 비트 할당을 결정하도록 구성될 수 있다. 예에서, 프로세서 회로(130)는 프레임(F11 내지 F1B+1)을 포함하는, 룩 어헤드 처리 버퍼 내 프레임 각각에 대한 각각의 비트 요청 정보를 수신하도록 구성될 수 있고, 프로세서 회로(130)는 이어서 여러 비트 요청에 관한 정보에 기초하여 제2 프레임(F11)(예를 들면, 현재 버퍼 내에서 가장 먼저 수신된 프레임(F11)에 대응함)에 대한 적절한 비트 할당을 결정할 수 있다. 동작(960)에서, 동작(950)에서 비트 할당 결정을 수행하는데 사용된 동일한 또는 상이한 프로세서 회로는 동작(950)에서 결정된 비트 할당에 기초하여 제2 프레임(F11)을 인코딩하는데 사용될 수 있다.At operation 950, an example may include determining a second bit allocation for a second frame (F1 1 ) in a look ahead processing buffer, such as. That is, at operation 950, the processor circuit 130 may be configured to determine a look ahead processing buffer, or a bit allocation for the second buffered frame F1 1 in the look ahead buffer circuit 120. . In an example, processor circuit 130 may be configured to receive respective bit request information for each frame in the look ahead processing buffer, including frames F1 1 through F1 B+1 , and processor circuit 130 ) may then determine an appropriate bit allocation for the second frame (F1 1 ) (e.g., corresponding to the first received frame (F1 1 ) in the current buffer) based on information about the multiple bit requests. At operation 960, the same or a different processor circuit used to perform the bit allocation determination in operation 950 may be used to encode the second frame F1 1 based on the bit allocation determined in operation 950.

다음의 이러한 논의는 가변 비트 레이트 버퍼 모델에서 타겟 비트 레이트 보장을 위한 공식을 제공한다. 논의는 명시된 평균 비트 레이트를 달성하면서 다양한 제약을 만족시키는 프레임별 비트 분포가 존재한다는 것을 입증한다. 이를테면 인코더로부터의 비트 요청을 고려하는 경우, 그러한 하나의 분포를 계산하는 알고리즘이 또한 포함된다. 다음 논의의 전체에서, 다음과 같은 표기법이 사용된다: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 instructions 1016 from a machine-readable medium (e.g., a machine-readable storage medium) and perform any one or more methodologies discussed herein. This is a block diagram showing the components of the machine 1000 according to the present invention. Specifically, FIG. 10 provides instructions 1016 (e.g., software, program, application, applet, app, or other executable code) to cause machine 1100 to perform any one or more methodologies discussed herein. ) shows a schematic representation of a machine 1000, an exemplary form of a computer system on which a system can run. For example, instructions 1016 may implement one or more modules or circuits or components of FIG. 1 , such as being configured to perform the processing or encoding shown in the example of FIG. 1 . Instructions 1016 may transform a general, unprogrammed machine 1000 into a specific machine that is programmed (e.g., as an audio processor circuit) to perform the functions described and shown in the manner described. In alternative embodiments, machine 1000 may operate as a standalone device or may be coupled (e.g., networked) to other machines. In a networked deployment, machine 1000 can operate in the shoes of a server machine or a client machine in a server-client network environment, or as a peer machine in a peer-to-peer (or distributed) network environment. It can work.

머신(1000)은 이것으로 제한되는 것은 아니지만, 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(personal computer)(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋톱 박스(set-top box)(STB), 개인 휴대 정보 단말기(personal digital assistant)(PDA), 엔터테인먼트 미디어 시스템 또는 시스템 컴포넌트, 셀룰러 전화기, 스마트 폰, 이동 디바이스, 웨어러블 디바이스(예를 들어, 스마트 워치), 스마트 홈 디바이스(예를 들어, 스마트 기기), 다른 스마트 디바이스, 웹 기기, 네트워크 라우터, 네트워크 스위치, 네트워크 브리지, 헤드폰 드라이버, 또는 머신(1000)에 의해 취해질 조치를 명시하는 명령어(1016)를 순차적으로 또는 다른 방식으로 실행할 수 있는 임의의 머신을 포함할 수 있다. 또한, 단일 머신(1000)만이 도시되어 있지만, "머신"이라는 용어는 또한 명령어(1016)를 개별적으로 또는 공동으로 실행하여 본 명세서에서 논의된 임의의 하나 이상의 방법론을 수행하는 머신(1000)의 집합을 포함하는 것으로 취급될 것이다.Machine 1000 may include, but is not limited to, a server computer, client computer, personal computer (PC), tablet computer, laptop computer, netbook, set-top box (STB), personal portable Personal digital assistant (PDA), entertainment media system or system component, cellular phone, smart phone, mobile device, wearable device (e.g., smart watch), smart home device (e.g., smart appliance), Includes other smart devices, web devices, network routers, network switches, network bridges, headphone drivers, or any machine capable of sequentially or otherwise executing instructions 1016 specifying actions to be taken by machine 1000. can do. Additionally, although only a single machine 1000 is shown, the term “machine” can also refer to a collection of machines 1000 that individually or jointly execute instructions 1016 to perform any one or more methodologies discussed herein. will be treated as including.

머신(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) 또는 이들의 임의의 조합을 포함할 수 있으며, 여기서 프로세서 중 임의의 하나 이상은 오디오 및/또는 비디오 신호 정보, 또는 다른 데이터를 인코딩하도록 구성된 회로를 포함할 수 있다.Machine 1000 includes a processor 1010, including audio processor circuitry, non-transitory memory/storage 1030, and I/O components 1050, which may be configured to communicate with each other, such as via bus 1002. Can be included or used. In an example embodiment, a processor 1010 (e.g., a central processing unit (CPU), reduced instruction set computing (RISC) processor, complex instruction set computing) computing (CISC) processor, graphics processing unit (GPU), digital signal processor (DSP), ASIC, radio-frequency integrated circuit (RFIC), other processors , or any suitable combination thereof) may include circuitry, such as, for example, processor 1012 and processor 1014 capable of executing instructions 1016. The term “processor” includes multi-core processors 1012, 1014, which may include two or more independent processors 1012, 1014 (sometimes referred to as “cores”) capable of executing instructions 1016 simultaneously. It is intended to be. 10 shows multiple processors 1010, machine 1000 may include single processors 1012, 1014 with a single core, single processors 1012, 1014 with multiple cores (e.g., multiple core processors ( 1012, 1014), multiple processors 1012, 1014 with a single core, multiple processors 1012, 1014 with multiple cores, or any combination thereof, wherein any one or more of the processors may include audio and/or circuitry configured to encode video signal information, or other data.

메모리/스토리지(1030)는 이를테면 버스(1002)를 통해 프로세서(1010)에 액세스 가능한, 메인 메모리 회로 또는 다른 메모리 스토리지 회로와 같은 메모리(1032) 및 스토리지 유닛(1028)을 포함할 수 있다. 스토리지 유닛(1028) 및 메모리(1032)는 본 명세서에 설명된 방법론 또는 기능 중 임의의 하나 이상을 구현하는 명령어(1016)를 저장한다. 명령어(1016)는 또한 머신(1000)에 의한 명령어의 실행 동안, 전체적으로 또는 부분적으로, 메모리(1032) 내에, 스토리지 유닛(1028) 내에, 프로세서(1010) 중 적어도 하나 내에(예를 들어, 프로세서(1012, 1014)의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에 상주할 수 있다. 따라서, 메모리(1032), 스토리지 유닛(1028) 및 프로세서(1010)의 메모리는 머신 판독 가능 매체의 예이다. 예에서, 메모리/스토리지(1030)는 룩 어헤드 버퍼 회로(120) 또는 룩 어헤드 버퍼의 하나 이상의 인스턴스를 포함한다.Memory/storage 1030 may include memory 1032 and storage units 1028, such as main memory circuitry or other memory storage circuitry, accessible to processor 1010 via bus 1002. Storage unit 1028 and memory 1032 store instructions 1016 implementing any one or more of the methodologies or functions described herein. Instructions 1016 may also be generated, in whole or in part, within memory 1032, within storage unit 1028, or within at least one of processor 1010 (e.g., processor 1010) during execution of the instructions by machine 1000. 1012, 1014), or any suitable combination thereof. Accordingly, memory 1032, storage unit 1028, and memory of processor 1010 are examples of machine-readable media. In an example, memory/storage 1030 includes look ahead buffer circuit 120 or one or more instances of a look ahead buffer.

본 명세서에서 사용된 것으로, "머신 판독 가능 매체"는 명령어(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 instructions 1016 and data, including but not limited to random-access memory ( RAM), read-only memory (ROM), buffer memory, flash memory, optical media, magnetic media, cache memory, and other types of storage (e.g., erasable programmable read-only memory). read-only memory (EEPROM)) and/or any suitable combination thereof. The term “machine-readable medium” should be taken to include a single medium or multiple media (e.g., a centralized or distributed database, or associated caches and servers) capable of storing instructions 1016. The term “machine-readable medium” also includes any medium or combination of multiple media capable of storing instructions (e.g., instructions 1016) for execution by a machine (e.g., machine 1000). Instructions 1016, when executed by one or more processors of machine 1000 (e.g., processor 1010), cause machine 1000 to perform any of the methodologies described herein. Perform the above. Accordingly, “machine-readable medium” refers to a single storage device or device as well as a cloud-based storage system or storage network that includes multiple storage devices or devices. The term “machine-readable medium” excludes the signal itself.

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/O component 1050 may include a variety of components that receive input, provide output, generate output, transmit information, exchange information, capture measurements, etc. The specific I/O component 1050 included in a particular machine 1000 will vary depending on the type of machine 1000. For example, a portable machine, such as a mobile phone, is likely to include a touch input device or other such input mechanism, whereas a headless server machine may not include such a touch input device. It will be appreciated that I/O component 1050 may include many other components not shown in FIG. 10 . I/O components 1050 are grouped by function merely to simplify the following discussion, and the groupings are in no way limiting. In various example embodiments, I/O component 1050 may include an output component 1052 and an input component 1054. The output component 1052 may be a visual component (e.g., a plasma display panel (PDP), a light emitting diode (LED) display, a liquid crystal display (LCD), a projector, or a display such as a cathode ray tube (CRT)), acoustic components (e.g., loudspeakers), tactile components (e.g., vibration motors, resistance mechanisms), other signal generators, etc. . Input component 1054 may include an alphanumeric input component (e.g., a keyboard, a touch screen configured to receive alphanumeric input, a photo-optical keyboard, or other alphanumeric input component), a point-based input component (e.g., a mouse, touchpad, trackball, joystick, motion sensor, or other pointing device), a tactile input component (e.g., a physical button, a touch screen or other tactile input component that provides the position and/or force of a touch or touch gesture); It may include audio input components (e.g., microphones), etc.

추가의 예시적인 실시예에서, 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/O component 1050 may include biometric component 1056, motion component 1058, environmental component 1060, or positional component 1062, among a wide array of other components. there is. For example, biometric component 1056 may detect expressions (e.g., hand expressions, facial expressions, voice expressions, body gestures, or eye tracking) and detect vital signs (e.g., blood pressure, heart rate, body temperature, sweat). or brain waves), identifying a person (e.g., voice identification, retinal identification, facial identification, fingerprint identification, or brain wave-based identification), etc., such as, for example, a specific frame or This can influence the inclusion, use, or selection of listener-specific or environment-specific filters, which can affect the perceptual significance of data within a group. Motion component 1058 may include an acceleration sensor component (e.g., an accelerometer), a gravity sensor component, a rotation sensor component (e.g., a gyroscope), etc., which may be used to track changes in the listener's position. This may also be taken into account by the processor, for example, when deciding how to encode a particular frame data. Environmental components 1060 may include, for example, a light sensor component (e.g., a photometer), a temperature sensor component (e.g., one or more thermometers that detect ambient temperature), a humidity sensor component, a pressure sensor component (e.g. , barometer), acoustic sensor components (e.g., one or more microphones that detect reverberation decay time, such as one or more frequencies or frequency bands), proximity sensors, or room volume sensing components (e.g., (e.g., infrared sensors that detect nearby objects), gas sensors (e.g., gas detection sensors that detect concentrations of hazardous gases for safety or measure pollutants in the air), or indications that correspond to the surrounding physical environment. , may include other components that can provide measurements or signals. Location component 1062 may include a position sensor component (e.g., a Global Position System (GPS) receiver component), an altitude sensor component (e.g., an altimeter that detects barometric pressure from which altitude can be derived, or barometer), and direction sensor components (e.g., magnetometer, etc.).

통신은 광범위한 각종 기술을 사용하여 구현될 수 있다. 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/O component 1050 may include a communication component 1064 operable to couple machine 1000 to network 1080 or device 1070 via coupling 1082 and coupling 1072, respectively. there is. For example, communication component 1064 may include a network interface component that interfaces with network 1080 or other suitable device. In another example, communication component 1064 may be a wired communication component, a wireless communication component, a cellular communication component, a near field communication (NFC) component, a Bluetooth® component (e.g., Bluetooth® LOW ENERGY) , Wi-Fi® components, and other communication components that provide communication via other modalities. Device 1070 may be another machine or any of a wide variety of peripheral devices (e.g., peripheral devices connected via USB).

더욱이, 통신 컴포넌트(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 coupling 1082 may include a Code Division Multiple Access (CDMA) connection, a global mobile communication It may include a Global System for Mobile communications (GSM) connection or another type of cellular or wireless coupling. In this example, coupling 1082 supports Single Carrier Radio Transmission Technology (1xRTT), Evolution-Data Optimized (EVDO) technology, General Packet Radio Service (GPRS) technology, Enhanced Data rates for GSM Evolution (EDGE) technology, and 3G. standards, including third generation partnership project (3GPP), fourth generation wireless (4G) networks, Universal Mobile Telecommunications System (UMTS), High Speed Packet Access (HSPA), Worldwide Interoperability for Microwave Access (WiMAX), and Long Term Evolution (LTE). , may implement any of various types of data transmission technologies, such as other standards defined by various standards-setting organizations, other long-distance protocols, or other data transmission technologies.

명령어(1016)는 네트워크 인터페이스 디바이스(예를 들어, 통신 컴포넌트(1064)에 포함된 네트워크 인터페이스 컴포넌트)를 통한 전송 매체를 사용하여 그리고 다수의 잘 알려진 전송 프로토콜 중 어느 하나(예를 들어, 하이퍼 텍스트 전송 프로토콜(hypertext transfer protocol)(HTTP))을 사용하여 네트워크(1080)를 통해 송신 또는 수신될 수 있다. 유사하게, 명령어(1016)는 디바이스(1070)와의 커플링(1072)(예를 들어, 피어-투-피어 커플링(peer-to-peer coupling))을 통해 전송 매체를 사용하여 송신 또는 수신될 수 있다. "전송 매체"라는 용어는 머신(1000)에 의한 실행을 위한 명령어(1016)를 저장하거나, 인코딩하거나, 또는 반송할 수 있는 임의의 무형의 매체를 포함하는 것으로 취급될 것이며, 그러한 소프트웨어의 통신을 용이하게 하는 디지털 또는 아날로그 통신 신호 또는 다른 무형의 매체를 포함한다.Instructions 1016 may be performed using a transmission medium via a network interface device (e.g., a network interface component included in communication component 1064) and through any of a number of well-known transmission protocols (e.g., hypertext transmission). It may be transmitted or received over the network 1080 using a hypertext transfer protocol (HTTP). Similarly, instructions 1016 may be transmitted or received using a transmission medium via coupling 1072 (e.g., peer-to-peer coupling) with device 1070. You can. The term “transmission medium” shall be treated as including any intangible medium capable of storing, encoding, or transporting instructions 1016 for execution by machine 1000, and enabling the communication of such software. Includes digital or analog communication signals or other intangible media that facilitate

본 명세서에서 논의된 개념 및 예의 많은 변형이 관련 기술 분야의 통상의 기술자에게 명백할 것이다. 예를 들어, 실시예에 따라, 본 명세서에 설명된 임의의 방법, 프로세스 또는 알고리즘의 특정 동작, 이벤트 또는 기능은 상이한 순서로 수행될 수 있고, 추가되거나, 병합되거나 또는 생략될 수 있다(그러므로 설명된 모든 동작 또는 이벤트는 다양한 방법, 프로세스 또는 알고리즘의 실행을 위해 필연적이지 않다). 더욱이, 일부 실시예에서, 동작 또는 이벤트는 이를테면 멀티 스레딩 처리, 인터럽트 처리, 또는 다중 프로세서 또는 프로세서 코어를 통해 또는 다른 병렬 아키텍처 상에서 순차적이라기보다는 동시에 수행될 수 있다. 또한, 기능을 함께 수행할 수 있는 상이한 시스템 및 컴퓨팅 시스템에 의해 상이한 작업 또는 프로세스가 수행될 수 있다.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, aspect 1 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 matter, such as a method of processing data to achieve a target average processing bit rate for a particular group of frames, from a sequential series of groups of frames, The frames include a first group of frames (F1) to a last group of frames (Fj), where each group of frames includes Dj frames. In aspect 1, a method includes receiving B1 frames of a first group (F1) of frames in a look ahead processing buffer, wherein the received frames are one of the first buffered frames (F1 0 ) through frames (F1 B1-1 ). where B1 is greater than 1, and, using processor circuitry, to the first buffered frame (F1 0 ) based on one or more bit allocation requests corresponding to the received B1 frames in the look ahead processing buffer. It may include determining a first bit allocation for. In an example, aspect 1 includes receiving, at a look ahead processing buffer, the last frame (F1 D1-1 ) of a first group (F1) of frames to be encoded, and using processor circuitry, receiving fewer than B1 frames. It may include determining subsequent bit allocation for the last frame (F1 D1-1 ) based on the bit allocation request.

양태 2는 이를테면 마지막 프레임(F1D1-1)에 선행하는 하나 이상의 다른 프레임에 대한 비트 할당을 결정하는 단계, 및 그런 다음 룩 어헤드 처리 버퍼로부터의 마지막 프레임(F1D1-1) 이외의 프레임을 삭제하는 단계를 선택적으로 포함하기 위해, 양태 1의 주제를 포함하거나 사용할 수 있거나, 또는 선택적으로 양태 1의 주제와 조합될 수 있다. 양태 2에서, 마지막 프레임(F1D1-1)에 대한 후속 비트 할당을 결정하는 단계는 마지막 프레임(F1D1-1)에만 대응하는 비트 할당 요청을 사용하는 단계를 포함할 수 있다. 마지막 프레임(F1D1-1)이 속하는 프레임의 특정 그룹에 적용되는 할당 정보와 같은 다른 비트 할당 요청 정보가 유사하게 사용될 수 있다.Aspect 2 includes determining bit assignments for one or more other frames that precede the last frame (F1 D1-1 ), and then selecting frames other than the last frame (F1 D1-1 ) from the look ahead processing buffer. The subject matter of aspect 1 may be included or used, or may optionally be combined with the subject matter of aspect 1, to optionally include the deleting step. In aspect 2, determining a subsequent bit allocation for the last frame (F1 D1-1 ) may include using a bit allocation request corresponding only to the last frame (F1 D1-1 ). Other bit allocation request information, such as allocation information applied to a specific group of frames to which the last frame (F1 D1-1 ) belongs, can be similarly used.

양태 3은 룩 어헤드 처리 버퍼 내의 수신된 B1 개 프레임에 대응하는 B1 개 비트 할당 요청 각각에 관한 정보를 사용하여 제1 버퍼링된 프레임(F10)에 대한 제1 비트 할당을 결정하는 단계를 선택적으로 포함하기 위해, 양태 1 또는 2 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 3 optionally includes determining a first bit allocation for the first buffered frame (F1 0 ) using information about each of the B1 bit allocation requests corresponding to the received B1 frames in the look ahead processing buffer. To include, may include or use the subject matter of one of Aspects 1 or 2 or any combination thereof, or may be optionally combined with the subject matter.

양태 4는 프로세서 회로를 사용하여, 제1 버퍼링된 프레임(F10)을 제1 비트 할당을 사용하여 인코딩하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 3 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 4 includes the subject matter of one of aspects 1 to 3, or any combination thereof, to optionally include, using a processor circuit, encoding a first buffered frame (F1 0 ) using a first bit allocation. may be included, used, or optionally combined with the subject matter.

양태 5는 제1 버퍼링된 프레임(F10)에 대한 결정된 제1 비트 할당을 프로세서 회로로부터 인코더 회로에 전달하는 단계, 및 인코더 회로를 사용하여, 제1 버퍼링된 프레임(F10)을 제1 비트 할당을 사용하여 인코딩하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 3 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 5 includes transferring the determined first bit allocation for a first buffered frame (F1 0 ) from a processor circuit to an encoder circuit, and using the encoder circuit to convert the first buffered frame (F1 0 ) to a first bit. To optionally include the step of encoding using assignment, the subject matter of one of aspects 1 to 3 or any combination thereof may be included or used, or may be optionally combined with the subject matter.

양태 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 aspect 1 may be included or used, or may be optionally combined with the subject matter, to optionally include the step of encoding.

양태 7은 룩 어헤드 처리 버퍼에서 프레임의 제1 그룹(F1)의 B1 개 프레임을 수신하는 단계가 프레임의 제1 그룹(F1)으로부터 순차적인 프레임을 수신하는 것을 포함하는 것을 선택적으로 포함하기 위해, 양태 1 내지 6 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 7 optionally includes receiving B1 frames of a first group (F1) of frames in a look ahead processing buffer comprising receiving sequential frames from the first group (F1) of frames. , may include or use the subject matter of one of aspects 1 to 6 or any combination thereof, or may be optionally combined with the subject matter.

양태 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 aspects 1 to 7 or any combination thereof, or may be optionally combined with the subject matter.

양태 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 aspects 1 to 8, or any combination thereof, or optionally with the subject matter of any of aspects 1 to 8, to optionally include updating the frame content of the look ahead processing buffer, including receiving. Can be combined. In an example, aspect 9 includes, using processor circuitry, determining bit allocations for a second buffered frame (F1 1 ) based on B1 bit allocation requests corresponding to updated frame content in the look ahead processing buffer. may further include.

양태 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 aspects 1 to 9 or any combination thereof may be included or used, or may be optionally combined with the subject matter.

양태 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 aspects 1 to 11 or any combination thereof, or may optionally be combined with the subject matter, to optionally include filling with frames from a second group of frames (F2). there is. An example of aspect 12 is that, following determining subsequent bit assignments for the last frame (F1 D1-1 ) to the first group (F1) of frames, the second look ahead processing buffer is transferred to the second group of frames (F1). filling with at least one additional frame of (F2), wherein the received frame includes B2 frames (F2 0 through F2 B2-1 ), where B2 is greater than 1, and using processor circuitry, a second The method may further include determining bit allocation for the frame F2 0 based on B2 bit allocation requests corresponding to B2 received frames in the look ahead processing buffer.

양태 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 aspects 1 to 11 or any combination thereof, or may optionally be combined with the subject matter, to optionally include filling with frames from a second group of frames (F2). there is. An example of aspect 13 is that, following determining subsequent bit allocations for the last frame (F1 D1-1 ) from the first group (F1) of frames, the second look ahead processing buffer is transferred to the second group of frames (F1). filling with at least one additional frame of (F2), wherein the received frame includes B2 frames (F2 0 through F2 B2-1 ), where B2 is greater than 1, and using processor circuitry, a second determining a bit allocation for a frame (F2 0 ) based on one or more bit allocation requests corresponding to received B2 frames in a look ahead processing buffer, wherein, in a second look ahead processing buffer, the first of the frames to be encoded Receiving the last frame (F2 D2-1 ) of group 2 (F2), discarding frames other than the last frame (F2 D2-1 ) from a second look ahead processing buffer, and using processor circuitry, B2 The method may further include determining bit allocation for the last frame (F2 D2-1 ) based on a number of bit allocation requests.

양태 14는 프레임의 제1 그룹(F1) 내의 동기 프레임을 식별하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 13 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다. 양태 14에서, 프레임의 제1 그룹(F1) 내의 동기 프레임을 식별하는 단계 이후에 또는 후속하여, 예는 동일한 또는 상이한 룩 어헤드 처리 버퍼에서, 프레임의 후속하는 제2 그룹(F2) 내 프레임에 대한 비트 할당 요청을 버퍼링하는 단계를 포함할 수 있다.Aspect 14 may include or use the subject matter of one of aspects 1 to 13 or any combination thereof, or optionally, the subject matter of one of aspects 1 to 13, or any combination thereof, to optionally include the step of identifying a synchronous frame within the first group (F1) of frames. can be combined. In aspect 14, after or subsequent to identifying a sync frame within a first group of frames (F1), for example, in the same or a different look ahead processing buffer, a frame within a subsequent second group of frames (F2). It may include buffering a bit allocation request.

양태 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 Aspects 1 to 15, or any combination thereof, to optionally include determining constraints to apply to a plurality of frames among the frames within the first group of frames (F1). or may be selectively combined with the subject.

양태 17은 프레임의 제1 그룹(F1) 내 각각의 프레임에 대한 각각의 제약을 결정하는 단계를 선택적으로 포함하기 위해, 양태 1 내지 15 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 17 may include or use the subject matter of one of Aspects 1 to 15, or any combination thereof, to optionally include determining a respective constraint for each frame within the first group (F1) of frames. , or may be optionally combined with the subject.

양태 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 aspects 1 to 15 or any combination thereof, or may be optionally combined with the subject matter.

양태 19는 프레임의 제1 그룹(F1) 내지 프레임의 마지막 그룹(Fj)을 포함하는 프레임의 순차적인 일련의 그룹이 오디오 또는 비디오 정보를 포함하는 것을 선택적으로 포함하기 위해, 양태 1 내지 18 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 19 is one of aspects 1 to 18, optionally comprising a sequential series of groups of frames, including a first group of frames (F1) to a last group of frames (Fj), comprising audio or video information. or may include or use the subject matter of any combination thereof, or may be optionally combined with the subject matter.

양태 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 aspects 1 to 19 or thereof, to optionally include assigning a greater number of bits to the first frame (F1 0 ) of the frame than to the subsequent second frame (F1 1 ) when the significance is exceeded. It may include or use any combination of subject matter, or may be selectively combined with the subject matter.

양태 21은 프로세서 회로에 선험적으로 알려지지 않은 프레임의 주어진 그룹(Fj)에 대한 프레임의 수량(Dj)를 선택적으로 포함하기 위해, 양태 1 내지 20 중 하나 또는 그의 임의의 조합의 주제를 포함하거나 사용할 수 있거나, 또는 그 주제와 선택적으로 조합될 수 있다.Aspect 21 may include or use the subject matter of one of aspects 1 to 20, or any combination thereof, to selectively include a quantity (Dj) of frames for a given group (Fj) of frames that is not known a priori to the processor circuit. or may be selectively combined with the subject.

예를 들어, 양태 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)

프레임의 순차적인 일련의 그룹으로부터, 상기 일련의 프레임의 특정 그룹 ― 상기 일련의 프레임의 그룹은 프레임의 제1 그룹(F1) 내지 프레임의 마지막 그룹(Fj)을 포함하고, 각각의 프레임의 그룹은 Dj 개의 프레임을 포함함 ― 에 대한 타겟 평균 처리 비트 레이트(target average processing bit rate)를 달성하기 위해 데이터를 처리하는 방법에 있어서,
룩 어헤드 처리 버퍼(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.
제1항에 있어서,
상기 마지막 프레임(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항에 있어서,
상기 제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항에 있어서,
상기 프로세서 회로를 사용하여, 상기 제1 버퍼링된 프레임(F10)을 상기 제1 비트 할당을 사용하여 인코딩하는 단계를 더 포함하는, 데이터 처리 방법.
According to paragraph 1,
Using the processor circuit, encoding the first buffered frame (F1 0 ) using the first bit allocation.
제1항에 있어서,
상기 제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.
제1항에 있어서,
상기 룩 어헤드 처리 버퍼가 제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항에 있어서,
상기 프레임의 제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.
제7항에 있어서,
상기 버퍼링하는 단계는 상기 후속하는 프레임의 제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항에 있어서,
상기 프레임의 제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항에 있어서,
상기 프레임의 제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항에 있어서,
상기 프레임의 제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항에 있어서,
상기 프레임의 제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.
제12항에 있어서,
상기 하나 이상의 제약을 결정하는 단계는, 상기 프레임의 제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.
제12항에 있어서,
상기 하나 이상의 제약을 결정하는 단계는, 상기 프레임의 제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.
제12항에 있어서,
상기 프레임의 제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항에 있어서,
상기 프레임의 제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) 내지 프레임의 마지막 그룹(Fj)을 포함하고, 각각의 프레임의 그룹은 Dj 개의 프레임을 포함함 ― 에 대한 타겟 평균 처리 비트 레이트를 달성하기 위해 데이터를 처리하는 시스템에 있어서,
상기 프레임의 제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.
제17항에 있어서,
상기 룩 어헤드 버퍼 회로는, 상기 프레임의 제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.
제17항에 있어서,
상기 비트 할당 프로세서 회로는, 상기 룩 어헤드 버퍼 회로 내의 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.
제17항에 있어서,
상기 비트 할당 프로세서 회로는 상기 프레임의 제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.
삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete 삭제delete
KR1020197034811A 2017-04-26 2018-04-26 Bit rate control for groups of frames KR102613286B1 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (4)

* Cited by examiner, † Cited by third party
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