自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(14)
  • 资源 (1)
  • 收藏
  • 关注

原创 H264编码器实现-帧内预测之生成预测像素值

本文所介绍的像素值预测,是指在帧内预测总体流程中的预测块每个像素值的推导过程。当我们已知向量像素的重建值的时候,我们就可以对当前预测块进行像素值预测。该过程得到的结果将与源像素值相减得到残差,为后续变换量化提供数据来源。

2024-07-26 21:21:17 456

原创 H264解码器实现-帧间预测之MV预测

本文章所说的MV预测是指计算当前块MV向量的预测值,该值与码流中传输的MV残差值相加即可得到实际的MV向量。请注意,在某些宏块类型的某种情况下是不需要进行MV预测的,他们的MV可以通过其他方法得出,本文只介绍MV预测过程。另外,本文所介绍的内容在H264标准文档中的8.4.1.3小节有详细介绍,这里做个讲解方便读者理解。

2024-07-18 19:33:10 262

原创 H264解码器实现-帧间预测之像素值预测

本文所说的帧间预测是指根据当前预测块的MV向量和预测所需的参考块数据,计算出当前预测块的预测像素值的过程。该过程得到的预测像素值进过运动补偿后(与反变换量化之后得到的残差像素值相加)可以得到滤波前的重建像素值。

2024-03-06 10:54:47 406 1

原创 硬件解码器API接口对比(google decoder-allwinner decoder)

Google Decoder API/* Decoder client interface. */typedef void* ClientInst; /* Opaque pointer to the client. *//* Function to notify the client that decoder has successfully initialized. */typedef void ClientInitialized(ClientInst inst);/* Function to

2021-03-21 15:56:59 725

原创 单线程多次调用open打开文件

答案是肯定的,一个线程可以多次打开同一个文件,只是每次打开的fd值是不一样的。这些fd都可以用于操作文件。#include <fcntl.h>#include <sys/types.h>#include <sys/stat.h>#include <stdio.h>#include <errno.h>#include <...

2020-04-02 19:18:14 1253

原创 AVS2解码图像管理

前言对于解码器来说,解码得到的重建图像可能需要参与参考帧选择过程和输出排序过程。硬件解码器大概率不会将解码图像的相关操作硬件化,从而将此部分内容保留在软件端实现。驱动工程师需要明确解码图像的管理逻辑,才能开发出硬件解码器的驱动程序。AVS2的解码图像管理与H264、H265、AV1等编码标准有相似之处,也有不同之处。AVS2依然有输出排序、参考队列构建、图像的标记、图像缓存区的移入移出等操作,但具体实现方式略有不同。图像类型与H264一样,AVS2的解码图像可以是一帧,也可以是一场。除了传统的I、

2020-03-21 18:15:46 1727

原创 Linux ShellCode实践

1. 关于ShellCodeShellCode是一段二进制代码,最早被用于获取一个shell,因此而得名。这段二进制代码可以被cpu识别并执行,也就是我们所说的机器码。因为shellcode的这个特性,漏洞攻击最早出现的方法就是栈溢出+shellcode。而今天的主题,就是向零基础者展示一段shellcode的产生与执行,帮助读者举一反三。2. ShellCode的产生本节涉及的环境:u...

2020-02-23 19:51:24 1151 1

原创 linux 批量在指定字符串下一行插入数据

功能在指定目录下,查找包含指定字符串的文件,并在该字符串上一行插入指定字符串。操作待查找字符串:“vendor_available”待处理目录:frameworks我们想要在该目录所有包含该字符串的文件中后面添加一些内容,内容字符串为“asdfadf”,做法如下:grep “vendor_available” -r.|cut -d ":" -f1 |xargs -n1 -...

2019-06-14 10:48:03 2586

原创 Android.bp编译生成 system和vendor分区两份库

在Android.bp中添加vendor_avaiable:ture属性。当然也可以使用vendor:ture属性。官方解释如下:vendor bool, whether this module is specific to an SoC (System-On-a-Chip). When set to true, it is installed into /vendor (or /system...

2019-05-28 15:05:40 13693 1

原创 CMAC--基于分组密码的消息认证码的实现及其应用

前言CMAC(基于分组加密的消息认证码),一般用作消息的签名。与HMAC相同的是都需要一把秘钥来加密内容得到MAC,只是MAC的产生方法不同,一个是用hash算法,一个是用分组加密算法。两种方法具体原理参见:https://blog.csdn.net/kkxgx/article/details/10307663实际上,CMAC-128的计算结果是128位的,而AES的密钥也是128位的...

2018-11-20 23:52:52 16545

原创 C程序面向对象设计详解

前言学过C++或者其他面向对象的语言的都知道,面向对象编程有诸多好处。面向对象程序设计有几个特征:面向对象程序设计中的概念主要包括:对象、类、数据抽象、继承、动态绑定、数据封装、多态性、消息传递。通过这些概念面向对象的思想得到了具体的体现。  1)对象 对象是运行期的基本实体,它是一个封装了数据和操作这些数据的代码的逻辑实体。  2)类 类是具有相同类型的对象的抽象。一个对象...

2018-08-20 15:10:58 1843

原创 Android Native代码中的status_t定义

定义在Android/system/core/include/utils/Errors.h中,小提示,Android代码中遇到的symbol,既不是Linux中提供的定义,使用source insight又找不到的情况下,可以去Android/system/core/include/目录找找,可能会有意想不到的收获哦。定义如下:1/*2 * Copyright (C) 2007 The...

2018-08-10 13:51:20 8524

原创 printk不能输出问题

printk是内核调试的重要手段,我们知道查看printk的打印信息可以用dmesg命令来查看,但是有时你会发现,你要的printk打印并没有打印出来,这是为什么呢?原因是你的打印信息很早就打印了,只是由于打印信息过多,存储这些信息的buffer有限,最大2的17次方。所以造成覆盖。解决办法是1.把buffer大小调到最大。2.把串口打印级别调到 8,使所有的printk都能打印到

2018-01-22 15:38:15 1748

原创 Android系统开发之路--Linux shell脚本

下载到Android的源代码后,总是要编译的,Android源码不是在集成环境下可以直接点击一个按钮就可以编译的。而是要在Linux操作系统下完成编译工作的。实际上,我们在Android源码顶层目录下执行类似./build.sh的命令完成编译的。具体原理是Android源码包中有个编译系统。叫build系统,代码主要集中在Android/build目录下。这个build系统中有很多shel

2017-12-22 10:50:50 447

DIY示波器全套资料

里面有全套资料手把手教你如何做示波器。适合初学者,资源分享,和谐社会。

2015-11-29

空空如也

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

TA关注的人

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