插槽(slot)机制之 ------ 一 、max_bits的疑惑

一种基于动态slot分配的公平调度算法 (2017年) Hadoop框架中基于缺额的公平调度算法以统一的固定配置设置定时计算和更新作业信息,在一定程度上影响了其作业调度的公平性,同时也不能满足作业的资源需求。针对基于缺额的公平调度算法配置方式的不足,提出一种基于公平性的动态slot分配算法,通过实时计算更新缺额进行slot分配以确保真正的公平性。 立即下载


如何计算一个
granule所占的average available bits 及我所提出的疑问

所谓available bits也就是真实的有用的音频数据, 最后会被解码的数据, 或者也可以说它是main_data数据, 是由big_value和count1组成的. 罗嗦一堆就是说明available bits是真正的被解码的数据, 是不包括side_info的. 计算方式为

 

The average number of bits per granule is calculated from the frame size.
 The bitrate 64 kb/second is used as an example.  At bitrate 64 kb/second
at 48000 samples per second

对于MP3来说, 一个Frame播放0.24(到底是0.24还是0.26我还不敢肯定, 也许是0.26吧)秒? 计算一个granule占用的位元数(平均的!)

(64000*0.24 bits perframe)/ (2 granules per frame) = 768 bits per granule

 

mean_bits是指一个granule有意义的位元(平均而言). 除去head以外的真正的语音数据(main_data).

config.mpeg.bits_per_frame描述一个frame有多少个bits(不是平均的, 这里一定要注意,一定要深入的注意,我在这里差点被骗了, 竟然认为是平均的, 够笨。 FU*K! )

sideinfo_len描述了除main_data以外的数据长度

因为一个frame有两个granule, 因此要除以2.

mean_bits = (config.mpeg.bits_per_frame - sideinfo_len) >> 1;

 

 

 

 

 

这里有一个疑问, 那么sideinfo_len到底是描述的什么?

/*

 * 通道数(单声道为1, 双声道为2)

 * 这里的 sideinfo_len 并不是指side_info结构的大小, 而是指

 * FrameHeader + CRC + SideInfo 的大小.

 * 其中CRC部分不存在, 也就是说没有校验.

 *

 * Frame结构

 * FrameHeader(32bits), CRC校验(16/0bits), 旁资讯(17/32bytes), MAIN_DATA, -- 音讯资料

  *

  * 136怎么来?  17bytes * 8 == 136 bits -- 单声道

  * 256怎么来?  32bytes * 8 == 256 bits -- 立体声

  *

  * 请参考<<专题组员:B09002003陈健峰.PDF>> Page12

  */

sideinfo_len = 32;   // FrameHeader所占位元数.

sideinfo_len += ( config.wave.channels==1 ? 136 : 256 );

由此可见, sideinfo_len并不是单指旁资讯的长度. 单声道时旁资讯是17个byte, 立体声时是32个byte.

 

 

 

 

那么接下来需要对mean_bits在追究下去

一个granule里头是有2个声道的(我们假设是双声道的音频)

那么

// 每个声道所包含的main_data位元数(平均的)

//  max_bits描述的是一个声道所包含的main_data位元数(平均的)

max_bits = mean_bits / config.wave.channels; 

 

 

 

在继续研究shine的过程中, 我发现每压缩一个frame 的时候, max_bits都是一样的. 第一个frame的max_bits和第N个frame的max_bits全是一样的. 我实在是不敢相信.

 

我觉得好奇怪, 怎么会是一样的,按道理说不应该啊,

接着要看max_bits的来源, 它是由mean_bits确定的,  因为我一直默认channels是2的.

 

找到mean_bits,

mean_bits = (config.mpeg.bits_per_frame - sideinfo_len) >> 1;

发现mean_bits是由config.mpeg.bits_per_frame和sideinfo_len确定的, 但是我们知道所有的frame中sideinfo_len也是一样的, 请注意看前面提到的sideinfo_len究竟是什么东西(它不是仅仅表示side_info部分的长度的, 切切要注意啊!)

 

 

那么就是要拿

config.mpeg.bits_per_frame同志开刀了.

OK,

config.mpeg.bits_per_frame

= 8 * (whole_slots_per_frame + config.mpeg.padding);

这个混蛋找到了,

 

但是还没没有完, 另外2个家伙(whole_slots_per_frame和config.mpeg.padding也不是省油的灯啊!)被牵扯近来了。

 

 
slot-machine:简单的老虎机算法 老虎机 简单的老虎机算法。 这是 PHP 老虎机算法的简单技术演示。 安装 Laravel Image 作为 Composer 包分发。 所以你首先必须将包添加到你的composer.json文件中: { "require": { "unglud/slot-machine": "@dev" } } 用法 首先,您需要创建 Payout 并对其进行测试 $ slot = new SlotMachine ([ 1000 , 500 , 300 , 200 , 150 , 100 , 60 , 50 , 40 , 1 ]); $ slot -> spin (); /* array:3 [ 0 => "j" 1 => "i" 2 => "d" ] */ 您可以测试您的支付并查看概率结果您将看到类似这样的内容 dd($slot->testPay 立即下载

相关推荐

企业微信群机器人配置全攻略:从零到消息推送的完整流程

本文详细介绍了企业微信群机器人的配置与使用全流程,从零开始指导如何创建机器人、获取Webhook地址,到通过HTTP请求发送文本、Markdown、图片及模板卡片等多种消息类型。内容涵盖核心的接口配置、安全实践及实战应用场景,帮助开发与运维团队快速构建自动化消息推送中枢,提升协作效率。

weixin_29231725的博客 847

PCIe总线-配置空间介绍(三)

配置空间是PCIe设备/桥的标识符,其保存了设备/桥的信息。主机在枚举设备/桥的时候需要先访问配置空间,获取设备厂家、型号、类型、所需资源等信息,然后再分配资源,最后才能访问PCIe设备的存储或IO地址空间。PCIe总线规定了三种类型的配置空间,分别是PCIe Agent设备使用的配置空间、PCIe桥使用的配置空间和Cardbus桥片使用的配置空间,本节只介绍前两种。

非专业业余程序员 1万+

自抗扰控制(ADRC)原理与MATLAB实现详解

自抗扰控制(ADRC)是一种先进的鲁棒控制策略,其核心在于通过扩张状态观测器(ESO)实时估计并补偿系统总扰动。相比传统PID控制,ADRC不依赖精确数学模型,特别适合处理非线性、时变系统。从控制原理看,ADRC将系统内部动态和外部扰动统一建模,通过带宽参数化方法实现快速响应与强抗扰能力。在工程实践中,ADRC已成功应用于无人机飞控、伺服系统等场景,MATLAB仿真显示其上升时间可比PID提升46%,抗扰动恢复时间缩短60%。典型实现包含ESO设计、扰动补偿和PD控制三部分,参数整定遵循ω₀=3~5倍系统带

weixin_33585822的博客 95

MPEG简介 + 如何计算 CBR/VBR MP3 的播放时间

【此文目的】  1.  了解 MPEG相关知识  2.  了解 MP3 的常见术语含义  3.  详解 VBR MP3的帧头格式及含义  4.  搞懂如何去计算 CBR和 VBR的 MP3文件的播放时间(duration)    【目录】  1.MPEG 的相关知识............................................................

WangMark的专栏 2096

UR5 机械臂手眼标定(Eye-in-Hand)实战:OpenCV 求解 AX=XB,误差 < 2mm

本文详细介绍了UR5机械臂在Eye-in-Hand配置下的手眼标定实战,通过OpenCV实现高精度标定,最终达到误差小于2mm的工业级精度要求。文章涵盖了标定基础原理、环境搭建、数据采集策略、核心算法实现及误差分析与优化,为视觉机械臂的自主抓取提供了实用指南。

weixin_31476015的博客 297

Yelp评论爬虫实战:用BeautifulSoup稳定提取单商户结构化数据

网页爬虫是获取公开网络数据的基础技术,其核心在于理解HTTP协议、HTML结构与反爬机制的协同关系。在本地生活服务数据分析场景中,Yelp作为高价值口碑平台,虽关闭官方评论API,但其单商户页仍通过内嵌JSON预置初始评论数据——这是一种兼顾SEO与首屏性能的设计模式,具备结构清晰、无需JS执行、特征暴露少等工程优势。掌握BeautifulSoup精准定位script标签+正则提取JSON+html.unescape清洗文本的方法,可构建低门槛、高稳定性、易调试的数据采集通道,适用于运营趋势分析、竞对口碑监

weixin_30616969的博客 417

PCIe学习笔记(13)

专门用于在系统平面上集成的PCI Express组件(例如,系统板)和组件集成在一个适配器为目标的整个适配器的功耗低于最低功率极限为适配器指定形式因素(如规范中定义相应的形式)被允许硬线槽中的所有0的值功率极限规模和槽功率极限价值领域注册设备的功能,而不需要复制Set_Slot_Power_Limit消息有效负载为登记。数据有效载荷的byte3的bit[7:0]、byte2的bit[7:0]以及byte1的bit[7:2]必须由发送器设置为零,并由接收器忽略。消息的发起者由消息头的请求者ID标识。

yh_wrew的博客 1838

SpeedyBee F405 V3 50A飞塔装机全攻略:从开箱到首飞避坑指南

本文提供SpeedyBee F405 V3 50A飞塔的详细装机指南,涵盖从开箱检查、硬件焊接、软件配置到安全首飞的全流程。重点剖析了电源连接、固件刷写等高频故障点,帮助FPV新手避开常见陷阱,确保一次成功组装并安全起飞。

weixin_29179311的博客 417

MP3头帧详解

写在前面 最近正在学习并整理音视频相关材料,我习惯性的把最近学到的东西分享出来。如果大家感兴趣,可以订阅我的专题 视频播放器和音视频基础知识。 正文 MP3方面的资料网上现有的都大同小异,我是参考了一篇网上的博客。原文地址是:原文在这里,感谢博主的博客。 MP3音频帧 一个MPEG音频文件是由很多帧数据组成。每一帧包含了一个帧头以及其后的音频数据。同一个文件每一帧的音频数据的采样...

张芳涛 3875

从零开始:手把手教你用Verilog搭建一个可配置的Cache模块(以Vortex GPGPU为例)

本文详细介绍了如何使用Verilog从零开始搭建一个可配置的Cache模块,以Vortex GPGPU为例。内容涵盖Cache设计基础、模块接口与参数化设计、核心子模块实现、仲裁与一致性机制、功能验证与性能调优等关键环节,适合RTL设计初学者和希望深入理解Cache工作原理的工程师。通过实战指南,读者可以掌握硬件代码分析技巧,提升Cache模块的设计能力。

weixin_42552315的博客 441

Ultralytics 框架中predict 与 track 的区别

在 Ultralytics 框架中,predict 和 track 是两种不同的推理方法,分别用于目标检测(或分割、姿态估计)和目标跟踪任务。

浩瀚之水的专栏 1127

游戏算法-时间轮算法,简单时间轮python

游戏服务器算法,简单时间轮算法python实现

巴山夜雨 514

多角度模板匹配的模板创建技巧

基于形状的模板匹配多角度创建技巧

manuoo的专栏 3403

android audio/linux alsa音频-应用层基础

snd_pcm_open 1. 参数和返回值 int snd_pcm_open(snd_pcm_t **pcmp, const char *name, snd_pcm_stream_t stream, int mode) pcmp 打开的pcm句柄 name 要打开的pcm设备名字,默认default,或者从asound.conf或者asoundrc里面选择所要打开的...

xgbing 3519

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

《Vivaslots》算法系列一

1、数值基础        必备知识1:基础概率论-独立事件的概率问题:      样本总数=独立事件1*独立事件2*独立事件3….      单一样本的概率=(单一样本的出现次数)/(样本总数)           明确了基础概率论中的独立事件概率算法后,再来说说老虎机中的两个约定,    第一、老虎机转动的卷轴规划为真实卷轴模式(也就是说每一条卷

mergerly的专栏 3874

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

redis集群值插槽算法灵魂拷问

文章目录为什么要有这个插槽算法为什么插槽只有16384,而不是更多插槽算法的是如何实现的,怎么去验证他啦 在redis集群的时候使用的是总共有插槽数16384,会根据key值分配不同的插槽,由此我们产生了一下疑问 1、插槽是什么,为什么要有这个插槽算法 2、为什么插槽只有16384,而不是更多 3、插槽算法的是如何实现的,怎么去验证他啦 为什么要有这个插槽算法 虚拟槽分区是 redis cluster 中默认的数据分布技术,虚拟槽分区巧妙地使用了哈希空间,使用分散度良好的哈希函数把所有数据映射到一个固定范围

weixin_42324471的博客 1324

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Slots游戏中的蒙特卡洛模拟:RTP验证详解

在Slots游戏开发中,蒙特卡洛模拟是验证游戏数学模型、特别是RTP(Return To Player,返还玩家比率)的关键方法。当我们说"每个版本进行100亿次模拟验证RTP",这是一个确保游戏数学模型符合设计预期的严谨过程。

小宝哥Code的专栏 2654

Redis实现高可用方案

如果单机部署Redis服务的话,一旦Reids宕机,那么整个服务就不可用了,这就是我们常说的单点故障问题。Redis为了实现高可用通常的做法是将数据库复制多个副本以部署在不同的服务器上,即使其中一台挂了其它Redis实例也可以继续提供服务。Redis实现高可用有三种部署模式:主从模式,哨兵模式,集群模式。

m0_49692893的博客 1410

捕鱼游戏、slots游戏出海技术支持

在捕鱼和slots类游戏市场,通过八年的沉淀和算法积累以及对全球市场不同地区产品的深刻理解。捕鱼和slots类游戏的核心为数值,在美术、程序、音效、玩法都OK的情况下,数值是核心(这类游戏的数值思维方式要区别于其它类型的游戏看待)。国内相对于国外,对slots算法的研究,是要落后非常多的。...

3581

老虎机(Slot Machine)的核心算法

老虎机是博彩业中最流行的游戏之一,其看似简单的表面下隐藏着复杂而精密的数学模型和算法。作为专业的Slots游戏制作人,我将深入解析老虎机的核心算法,包括随机数生成、符号权重分配、RTP控制、波动性设计以及特殊功能触发等关键技术。

小宝哥Code的专栏 5999

linux aplay 格式,aplay 裁剪成只支持wave格式 -(3)

static void print_vu_meter_stereo(int *perc, int *maxperc){const int bar_length = 35;char line[80];int c;memset(line, ' ', sizeof(line) - 1);line[bar_length + 3] = '|';for (c = 0; c < 2; c++) {int ...

weixin_31299543的博客 837

redis插槽(slot)分配详解(集群动态新增或删除结点)

1.哈希槽的概念 Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value时,redis 先对 key(有效值)使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点。 Redis 集群没有使用一致性hash, 而是引入了哈希槽的概念。 有效值: 1、 如果key中包含了{符号,且在{符号后存在}符号,并且{和}之间至

qq_41587243的博客 3万+

插槽(slot)的基本使用

插槽(slot)的基本使用

weixin_66375317的博客 1万+

Linux ALSA 驱动及其应用心得汇总

首先,主要参看的网上的资料就是ALSA的官方主页以及一些博客。 1.驱动部分 Linux ALSA声卡驱动之一:ALSA架构简介 Linux ALSA声卡驱动之二:声卡的创建 Linux ALSA声卡驱动之三:PCM设备的创建 Linux ALSA声卡驱动之四:Control设备的创建 Linux ALSA声卡驱动之五:移动设备中的ALSA(ASoC) Lin

air_snake的专栏 1130

量化中max_bits重复计算之优化

在量化的时候发现max_bits重复计算了4次。 将①提到外部②的位置,每个Frame只需要计算一次就可以了,不必重复计算。  max_bits = mean_bits / config.wave.channels; ----- ②/*  */    for( gr=2; gr--; )    {        for( ch=config.wave.chann

old-li的blog 1132

简单理解slot算法和shadow DOM

阅读完这篇博客你会有以下收获: slot算法是什么? shadow DOM是什么? vue slot机制与w3c web component 规范的 shadow DOM渲染结果有何异同? slot算法 The slotting algorithm assigns nodes of a shadow tree host into s...

weixin_34372728的博客 649
上一篇: 来自西安交大的巨牛MP3解码好文
下一篇: 对暂存器的认识
xiaomantoubaba
博客等级 码龄23年 75粉丝 44原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值