自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(47)
  • 收藏
  • 关注

原创 补码的理解,想明白了觉得还挺有趣的

最后的符号,设计的目的,就是为了表示一下,在反方向拨钟表时,是否会拨过0点?如果拨不到0点,就是负数,如果拨的过0点,就是正数。所以什么时候拨的过呢?拨过之后,就会发生加法溢出,就会向前冲一位,就会把负数第一位的符号位冲掉。

2024-06-27 15:17:02 229

原创 x265的DCT

文章目录DCT相关背景知识DCT变换系数矩阵32x32变换矩阵系数其他尺寸变换矩阵系数变换计算过程流程图代码实现数据残差变换系数对应残差我的简单实现实现细节实现代码x265对应代码实现openHEVC代码实现DCT相关背景知识DCT变换系数矩阵标准提供了32x32的系数矩阵,4x4、8x8、16x16的矩阵都可以从中提取出来32x32变换矩阵系数其他尺寸变换矩阵系数从上面来看,4x4的变换矩阵,系数为:[646464648336−36−8364−64−646436−8383−36]\b

2023-06-07 17:04:54 644

原创 HEVC中,mvd怎么写进码流的?

等于1,表示MvdL1[ x0 ][ y0 ][ compIdx ] =0。等于0,表示需要mvd_coding( x0, y0, 1 )来求解。这样的设计,其实还是和熵模型有关。0出现的概率最高,所以码长最短。x0,y0 表示亮度快左上角坐标。compIdx =0表示水平。compIdx =0表示垂直。可以看到传输的码流中。

2023-05-29 21:26:09 715

原创 HEVC Transform

本文介绍内容包括:x265的系数熵编码模块、TU的划分原理、HEVC中Transform模块相关的语法元素我们知道,在AVC中采用的是zigzag扫描,这样的做法是尽可能地增加相关性,从而使得游程编码的时候能采用更少的比特数先不考虑基于模式的扫描,在HEVC采用的扫描顺序是对角扫描,而且是从右下角开始扫描,扫描到左上角。我们知道,视频编码时,编码的context一直在不停地切换,在每个bin之间都一直在切换,所以如何确定每个bin的context很重要,另外,如何能设计简单的context选择方法也很重要

2023-03-29 16:58:21 364

原创 X265的多线程 -- ThreadSafeInteger

如果没有线程同步,则消费者线程和生产者线程都是使用while(true)各自保持全速待命状态。这样就存在一个问题,CPU占用率过高。这个时候的解决方法就是根据条件变量阻塞线程,消费者没提出需求之前,就把条件变量置0,生产者线程一直等待,直到他变成了1才开始执行。对多个线程经常访问的同一个变量m_val,对应建立一个临界变量。消费者线程和生产者线程之间的关系,消费者线程需要消费时向商店发出申请,生产者线程生产完了放进商店给他拿走。条件变量m_cv处于等待,等待时间是INFINITE,同时为m_cs上锁。

2023-03-15 10:21:00 333

原创 avx2入门

avx2入门

2023-03-11 10:56:33 2895

原创 X265时域分层编码结构(LDP)实践(附交流群和代码获取方式)

X265时域分层编码结构(LDP)实践(符交流群和代码获取方式)

2023-03-10 08:50:13 502

原创 X265 Cmake 编译添加 nasm全记录

X265 Cmake添加NASM全记录

2023-03-08 21:22:25 252

原创 Verification Test Report on the Compression Performance of LCEVC (ISO/IEC JTC 1/SC 29/WG 04 N0076)

Verification Test Report on the Compression Performance of LCEVC (ISO/IEC JTC 1/SC 29/WG 04 N0076)

2022-11-21 13:44:07 194 2

原创 Overview of the Low Complexity Enhancement Video Coding (LCEVC) Standard

Overview of the Low Complexity Enhancement Video Coding (LCEVC) Standard

2022-11-21 09:45:18 609 2

原创 A Mathematical Analysis of the DCT Coefficient Distributions for Images

A Mathematical Analysis of the DCT Coefficient Distributions for Images

2022-11-19 19:59:07 120

原创 tensorflow计算模型(计算图和变量)

tensorflow计算模型(计算图和变量)

2022-09-25 17:29:12 791

原创 为什么自定义的数据类型,要使用初始化列表?

为什么自定义的数据类型,要使用初始化列表?

2022-08-22 16:16:14 193

原创 类的构造过程 -- 汇编理解

最近突然好奇,如果在构造函数中调用虚函数会怎么样?

2022-08-17 19:35:51 239

原创 long long int x = -INT_MIN; 那么x = ?

long long int x = -INT_MIN; 那么x = ?

2022-07-21 14:18:28 101

原创 JM解码(一):参考帧列表和DPB处理

JM解码(一):参考帧列表和DPB处理

2022-03-16 16:18:44 499

原创 x264(二):x264默认参数

x264(二):x264默认参数

2022-03-10 10:18:13 215

原创 x264(一):信息打印

x264(一):信息打印

2022-03-10 10:16:07 149

原创 HM解码(一) :提取一个NALU信息

HM解码(一) :提取一个NALU信息

2022-03-08 15:21:49 417

原创 c++ 枚举类型-动态添加?

c++ 枚举类型-动态添加?

2022-03-08 10:22:39 1100

原创 x265: calcCTUGeoms 让我不断卧槽的一段代码

x265: calcCTUGeoms

2022-03-07 20:29:54 344

原创 x265: Analysis re-use options

x265: Analysis re-use options

2022-03-07 16:26:37 191

原创 x265多线程

x265多线程

2022-03-05 17:20:29 297

原创 x265_log

x265_log

2022-03-05 15:06:46 137

原创 SSIM PSNR db

SSIM PSNR db

2022-03-05 14:31:25 861

原创 VS: base path arguement is not fully qualified

VS: base path arguement is not fully qualified

2022-03-05 10:35:40 1366

原创 快排、归并、并查集、BFS、DFS、二分

快排、归并、并查集、BFS、DFS、二分

2022-02-28 08:56:17 158

原创 万行代码计划

看代码看的不少,但是动手机会太少了虽然我也知道,应该是一万行没有重复的代码。但是先给自己降低要求吧一天三百行,博客记录

2022-02-18 08:49:18 153

原创 关于Z扫描和光栅扫描

问题描述一直没太理解Z扫描。感觉有了光栅扫描,每次存信息不就是找到位置挨个填不就行了。但是,为什么说因为HEVC对CU是迭代划分,Z扫描就更方便了呢?解释仔细看光栅扫描,可以看到,如果对LCU划分一次,也就是4个32*32的CU,那么每个CU的所有Z地址是连续的,可以一次存储完成。同理,在此基础上迭代,再次划分后,4个16*16的CU,也是每个CU的Z地址也是连续的。这样的话,也就是每次划分后一句话就在内存修改CU的模式信息。用光栅扫描的话,就需要很麻烦的分情况一行一行的写信息。...

2022-02-09 13:21:46 414

原创 从视频到01(码流的组成)

1. 编码的分层编码结构视频->GOP->slice->SS(slice segment)->CTU->CU1.1 GOP图像组,由slice组成GOP结构分为开放式GOP和封闭式GOP。封闭式GOP中,每个GOP的第一帧是IDR帧,并且每个GOP独立编解码。开放式GOP只有第一个GOP的第一帧为IDR帧,而后续GOP的第一帧为non-IDR帧,于是后一GOP可以参考前一GOP中的帧。1.2 sliceslice为了并行处理,一帧图像可以是一个slice,也可

2022-02-05 10:25:25 2365

原创 自定义类的运算符重载以及类型转换

自定义类的运算符重载以及类型转换

2022-01-29 16:22:52 1237

原创 关于Time dependence

Time dependence实验:只编码两帧,第一帧I帧,第二帧P帧。I,QP=m时,测试P帧QP=22、27、32、37,得到帧的率失真曲线I,QP=m-5时,测试P帧QP=22、27、32、37,得到帧的率失真曲线结论:I帧QP降低(量化误差减少),对后续P帧的码率®影响不大,但是会使后续P帧编码质量提高质量提高程度会在临近P帧体现较大,随着P帧距离变远,影响快速衰减原因帧间预测时,参考帧的量化误差会传播到下一个编码块中。但是由于量化步长以及传播特性的限制,有效传播距离是很短的。

2021-04-16 16:03:30 231

原创 dct4x4dc

%if HIGH_BIT_DEPTH; void dct4x4dc( dctcoef d[4][4] )%macro DCT4x4_DC 0;X64的汇编程序;%macro是NASM的写法;将汇编代码变成机器代码的程序和软件叫做汇编程序;常用的有NASM和MASM。MASM是微软的,Microsoft Assembler;定义一个叫做 DCT4X4_DC 的宏;宏的参数个数是0个;宏的作用:会有一些程序段被大量重复的调用,想当于定义了函数;但是宏是重复多行调用;而%define是单行

2021-04-15 20:56:24 182

原创 HEVC-based Adaptive Quantization for Screecn Content Videos

AbstractIn general, quality of compressed videos for screen contents is not as good as those for natural videos with the conventional video compression standards due to different properties of textures. In this paper, we present an adaptive quantization

2021-04-15 17:35:33 163

原创 x264_adaptive_quant_frame

x264_adaptive_quant_frame结构体x264_image_properties_tx264_image_properties_t结构体存放的图像性质包括:该图像中每个宏块的qp偏移量该图像中每个宏块的标记信息(例如:是否改变)该帧图像的质量指标:SSIM、PSNR该帧图像的平均有效CRF(Average effective CRF)typedef struct x264_image_properties_t{ All arrays of data here ar

2021-04-15 13:21:25 370

原创 C++漫谈

数据类型变量的数据类型,就相当于我们在进行的类定义。定义了他的数据是什么以及可以在数据上进行的合法操作有哪些。所以,例如:定义了const int x,就是定义了存储4字节空间的数据,数据存储格式是整数,可以做的操作有…,不可以做的操作有…(值改变等等)。所以,如果实际上我们进行:int x=32;const int &y=x使不可变的数据y指向了可变的数据x,那么y上可做的操作是不可值改变。但是x上的操作是值可改变。然后int数据类型和const int数据类型对应的数据成员都是一

2021-04-14 20:21:03 86

原创 auto、const

auto1.C++11引入。2.auto让编译器替我们去分析表达式所属的类型。因为是编译器替我们分析后进行替换,所以auto不会增加运行时间。3.auto定义的变量必须有初始值,因为编译器要根据初始值去分析所属类型。4.auto可以一条语句声明多个变量。一条声明语句只能有一个基本类型,所以不能一条语句声明两个不同的类型。比如:auto x=1,y=1.2 就是错的5.会忽略顶层const,而保留底层const。会忽略引用。int i=5;const int ci=i, &c

2021-04-14 20:14:48 525

原创 编码漫谈

2021-4-13今天和任课老师进行了短暂的交谈,对我的一些疑惑进行了解答为什么研究AVS?一方面我们要形成自己的视频编码专利,另一方面,视频编码很多技术还可以继续提升,继续研究更好的方法。不同的编码框架都有不同的优势以及应用场景。应该研究什么?变换和量化实际上只是之后的一个小处理,编码的大部分时间都在预测部分。编码宏块的确定,运动搜索,运动估计。可以在这些上进行进一步的研究。并且,编码应该有其不同的应用场景的考虑,针对不同场景也应该进行不同的研究,可能整体框架类似,但是具体应用技术会有很大改变。

2021-04-13 20:17:10 118

原创 X264代码理解记录

2021-4-12关于typedef定义的函数指针类型//DJ: 函数指针的定义,相当于是 void (*x264_predict_t)( uint8_t *src, int i_stride )//DJ: 但是用typedef和直接这样定义是有很大区别的,区别在于//DJ: typedef是定义了一个指向该函数的指针的类型//DJ: 而前者是直接定义了一个指针//DJ: 注意:一个是类型,一个是指针。定义了类型之后可以用来声明更多的指针变量。typedef void (*x2

2021-04-12 16:29:58 132

原创 void指针

意义对象的多态性有一个对象是picture_t,他的某一个成员函数的作用是读入一帧图像并保存成固定的格式但是,图像种类有很多种,YUV420,YUV422等等,或者压缩方式不同(JPEG,PNG等等)对于不同的种类(压缩方式不同的图像)读入时,操作的函数是不同的,用函数指针就使对象具有了多态性回调回头补充,还没弄透3.函数名过于傻逼比如,你的程序要适应不同系统的不同字节等等那么你的函数名必然冗长又傻逼找一个简单的函数名代替,然后预处理时再指定简单函数名指向谁注意指

2021-04-01 16:46:09 101

空空如也

空空如也

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

TA关注的人

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