自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(18)
  • 资源 (12)
  • 收藏
  • 关注

原创 JPEG编解码原理

一.JPEG简介JPEG全称Joint Photographic Experts Group(联合图像专家组),它是一项数字图像压缩标准(ISO/IEC 10918),1992年提出。JPEG是一种有损压缩的数字图像技术,它的核心算法是离散余弦变换(DCT)。二.JPEG压缩技术JPEG编码原理涉及到一些图像处理的知识,强烈推荐先看一下:图像与滤波。JPEG编码过程如下图解码过程就是...

2020-03-08 07:58:47 1342

原创 图像与滤波

1.为什么图像是波?我们知道,图像由像素组成。下图是一张 400 x 400 的图片,一共包含了 16 万个像素点。如果把每一行所有像素的R、G、B的值,依次画成三条曲线,就得到了下面的图形其中x轴为像素坐标(取值范围0399),y轴为色度(取值范围0255)可以看到,每条曲线都在不停的上下波动。有些区域的波动比较小,有些区域突然出现了大幅波动(比如 54 和 324 这两点)。对比...

2020-03-08 07:57:39 355

原创 Android直播从入门到精通(4):YUV数据处理

一般的视频采集设备输出的数据都是YUV格式,1.什么是YUVYUV是一种图像编码方式 ,其中Y表示明亮度(Luminance、Luma),也就是灰阶值。U、V 表示色度(Chrominance 或 Chroma),描述的是色调和饱和度。2.为什么要用YUV格式相比大家熟悉的RGB编码方式,YUV格式将图片的亮度和色度信息分开存储。为什么做?有什么好处呢?由于人眼的视网膜杆细胞多于视网...

2020-03-08 07:56:40 241

原创 Android直播从入门到精通(3):PCM转AAC

1.什么是AAC?AAC(Advanced Audio Coding)是一种音频编码标准,最早定义在MPEG-2标准(ISO/IEC 13818-7)中,后来在MPEG-4(ISO/IEC 14496-3)标准中又加入了SBR技术和PS技术(MPEG的介绍可以看这里:MPEG标准介绍)。AAC标准是作为MP3的继承者而设计出来的,相同的比特率之下,AAC比MP3有更好的音质。为了适应不同的应...

2020-03-07 21:03:36 853

原创 Android直播从入门到精通(2):PCM数据采集与处理

声音的模拟数字转换声波从模拟信号转化为数字信号,要经过采样、量化、编码三个步骤采样采样就是在时间轴上对信号离散化,如下图所示人耳只能听到频率20Hz~20kHz的声音,根据耐奎斯特采样理论,采样频率必须是信号最高频率的两倍,这样才能保证质量不失真,所以采样率一般为44.1kHz,即每秒采样44100个点,这样能保证每个声波至少有两个采样点。量化量化是指在幅度轴上对信号离散化,一般用1...

2020-03-07 21:01:59 454

原创 Android直播从入门到精通(1):直播服务架构

前言随着移动设备的普及和4G网络建设的全面铺开,短视频和直播行业日益火爆,其代表应用抖音、头条更是火遍大江南北,逐渐成为家喻户晓的国民APP。各大厂商也纷纷入局短视频赛道,推动音视频人才的需求的高涨,这对于开发人员来说是一次难得的机遇。笔者是一名Android APP开发工程师,一直用Java开发,因为工作需要,开始转做音视频开发。希望能通过这一系列文章,将自己的学习路径记录并分享出来,对大家...

2020-03-07 20:24:47 396 1

原创 解决Android软键盘和表情面板切换界面闪动问题

Android软键盘会压缩Activity窗口大小,在软键盘和表情面板之间切换的时候会造成界面跳动,影响体验,如下图:造成这个原因和AndroidManifest.xml文件里面设置Activity的windowSoftInputMode属性有关:当属性为adjustResize的时候,软键盘弹出时会挤压Activity窗口大小,这样可以保证输入法不会覆盖到输入框;

2016-05-12 20:04:14 8826 10

原创 设计模式-适配器

1.定义将一个类的接口变换成客户端所期待的另一种接口,从而使原本因接口不匹配而无法在一起工作的两个类能够在一起工作。2.UML3.代码// 已存在的、具有特殊功能、但不符合我们既有的标准接口的类public class Adaptee { public void specificRequest() { Sys

2015-10-28 14:05:26 405

原创 设计模式-策略模式

1.定义定义一组算法,将每个算法都封装起来,并且使它们之间可以互换。2.UML3.代码public abstract class Strategy { abstract void doSomething();}public class ConcreteStrategy1 extends Strategy { @O

2015-10-28 13:49:22 401

原创 设计模式-装饰模式

1.定义动态地给一个对象添加一些额外的职责,比继承更加灵活。2.UML3.代码public abstract class Component { abstract void operator();}public class ConcreteComponent extends Component { @Over

2015-10-27 20:36:20 328

原创 设计模式-责任链模式

1.定义使多个对象都有机会处理请求,从而避免了请求的发送者和接受者之间的耦合关系。将这些对象连城一条链,并沿着这条链传递该请求,直到有对象处理它为止。2.UML3.代码public class Request { private int mLevel; public Request(int level) {

2015-10-27 17:41:57 337

原创 设计模式-命令行

1.定义命令行模式是一种高内聚的模式,将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。2.UML3.代码public abstract class Receiver { abstract void doSomething();}public class

2015-10-27 16:07:07 296

原创 设计模式-中介者

1.定义用一个中介对象封装一系列的对象交互,中介者使各对象不需要显式的相互作用,从而使其耦合松散,而且可以独立的改变它们之前的交互。2.UML3.代码public abstract class Mediator { protected Colleague1 mColleague1; protected Colleague2 mCo

2015-10-27 14:43:23 318

原创 设计模式-原型模式

1.定义用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。2.UML3.代码public class PrototypeClass implements Cloneable { public ArrayList mList = new ArrayList(); public PrototypeClass() {

2015-10-27 11:36:54 280

原创 设计模式-代理

1.定义为其他对象提供一种代理以控制对这个对象的访问。2.UML3.代码public interface Subject { void request();}public class RealSubject implements Subject { @Override public void reques

2015-10-27 11:00:30 240

原创 设计模式-模板方法

1.定义定义一个操作中的算法的框架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。2.UML3.代码public abstract class AbstractTemplate { abstract void doSomething(); abstract void doAnyt

2015-10-26 15:59:22 278

原创 设计模式-工厂模式

1.定义定义一个用于创建对象的接口,让子类决定实例化那一个类。工厂方法使一个类的实例化延迟到子类。2.UML3.代码Product抽象类public abstract class Product { abstract void method();}具体Product类public class Product1 exten

2015-10-21 13:43:30 303

原创 设计模式-单例模式

单例模式是确保一个类只有一个实例。public class Singleton { private static Singleton sInstance = null; private Singleton() { } public static Singleton getInstance() { if (sInstance == null) {

2015-10-17 00:42:00 290

视频编码技术介绍视频.zip

视频编码技术介绍视频,其中对视频编码的关键技术(帧间预测、帧内预测、DCT变换、CAVLC编码)有非常生动的描述,强烈推荐。

2020-03-09

MPEG标准.zip

MPEG-1,MPEG-2,MPEG-4,MPEG-7,MPEG-21标准文档集合,包括ISO/IEC 11172,ISO/IEC 13818,ISO/IEC 14496,ISO/IEC 15938,ISO/IEC 21000。学习音视频开发的必备资料

2020-02-18

batchapktool373.7z

非常好用的rom反编译工具,一键反编译framework和所有apk,支持到9.0。vdex2dex,odex2dex

2020-02-06

APK加固Demo

Android中对Apk加固原理解析的最好例子,通过一个例子来讲解Android中加固Apk的原理

2018-02-26

深入Java虚拟机(原书第2版)源代码

深入Java虚拟机(原书第2版)源代码

2015-09-15

计算机组成原理(唐朔飞)

计算机组成原理(唐朔飞)

2015-09-15

glew-win64.zip

glew-1.6.0-win64.zip

2014-12-24

二维码Demo源码

一个简单的二维码Demo,供新手学习使用!

2012-12-25

移动开发素材大全

移动开发素材,包含近一千个精美图标,非常实用!

2012-12-25

文件管理器源码

一款简单功能齐全的文件管理器源码,适合新手学习

2012-12-25

坦克大战游戏素材

坦克大战游戏素材,包含坦克大战开发所需所有的图片,声音资源

2012-12-25

json的所有jar包

这个包里面包含有json要导入的所有jar包

2012-09-28

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除