;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;filename bios.inc
;asm macro about the bios
;create on 06.3.10 by yqg
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;**************setmode macro*****************;
setmode macro var
push ax
mov ah,0
mov al,var
int 10h ;set the screen mode
pop ax
endm
;*************setmode endm********************;
;***********setpixel macro**********************;
;notice that this is can use in 13mode
;it direct set rom from 0xa0000000
;notice the x,y only can use reg by bl,al
setpixel MACRO x,y,color
PUSH ES
PUSH DI
PUSH AX
push dx
MOV AX,0a000h
MOV ES,AX
mov al,y
mov ah,0
mov bl,160
mul bl
mov bx,2
mul bx ;this here will made dx 0
pop dx
push dx
mov bl,x
mov bh,0
add ax,bx ;location,only a 1 kb,don't afraid to overflow
mov DI,ax
MOV AL,color
MOV ES:[DI],AL ;set color
pop dx
POP AX
POP DI
POP ES
ENDM
;***********setpixel endm*************************;
;--------------------------------------------------;
;***********setbkcolor macro************************;
setbkcolor macro color
local again
PUSH ES
PUSH DI
PUSH AX
push cx
MOV AX,0a000h
MOV ES,AX
XOR DI,DI
MOV AL,color
mov cx,64000
again:
MOV ES:[DI],AL ;set color
inc di
loop again
pop cx
POP AX
POP DI
POP ES
endm
;***********line macro*****************************;
;notice the line now only can draw straight
;that meant that x1=x2 or y1=y2
line macro x1,y1,x2,y2,color
local again,again1
PUSH ES
PUSH DI
PUSH AX
push cx
MOV AX,0a000h
MOV ES,AX
XOR DI,DI
mov di,x1+y1*320 ;across line
MOV AL,color
mov cx,x2-x1+1
again:
MOV ES:[DI],AL ;set color
inc di
loop again
mov di,x1+y1*320
MOV AL,color
mov cx,y2-y1+1
again1:
MOV ES:[DI],AL
add di,320
loop again1
pop cx
POP AX
POP DI
POP ES
endm
;***********line endm****************************;
;---------------------------------------------------;
;**************box endm******************************;
box macro x1,y1,x2,y2,color
line x1,y1,x2,y1,color
line x1,y1,x1,y2,color
line x1,y2,x2,y2,color
line x2,y1,x2,y2,color
endm
;***************box endm******************************;
;************outchar macro********************;
outchar macro x,y,char,color
local again,again1,next
push es
push bp
push ax
push bx
push cx
push dx
mov ax,0f000h
mov es,ax
mov bp,0fa6eh
add bp,char*8 ;get the char address
mov cx,8
mov dl,x
mov dh,y
again1:
push cx
mov ah,es:[bp]
mov cx,8
again:
rcl ah,1
jnc next
setpixel dl,dh,color
next:
inc dl
loop again
mov dl,x
pop cx
inc dh
inc bp
loop again1
pop dx
pop cx
pop bx
pop ax
pop bp
pop es
endm
;*************outchar endm*******************;
分享到:
相关推荐
这个压缩包包含了几个FLV格式的视频文件,用于测试不同的视频编码技术和音频编码技术。 1. FLV格式详解: FLV文件结构主要包括一个文件头、一个或多个数据块(tags)以及一个文件尾。文件头包含了文件标识、版本...
1. **分块编码**:H264将视频帧分为多个宏块,每个宏块由若干个亮度和色度样本组成。这种分块策略便于执行不同的编码策略,如运动补偿、预测和变换等。 2. **运动估计与补偿**:为了节省带宽,H264编码器会寻找相邻...
提取H264视频流的过程涉及以下几个关键知识点: 1. **FLV文件结构**:FLV文件由头部信息、数据标签(Data Tags)和尾部信息组成。数据标签包含音频帧和视频帧,其中视频帧通常是用H264编码的。 2. **H264编码原理*...
视频图像被分割成多个宏块(Macroblocks),每个宏块又可以进一步划分为不同的分块(Blocks)。不同的分块类型对应不同的编码策略,例如:I块表示不依赖于其他帧的帧内编码,P块使用帧间预测,而B块则可以同时使用前...
H264的块划分方式是将一个视频图像划分成片,每个片又划分为多个宏块,宏块的尺寸为16x16。用于帧间预测的宏块可划分为子宏块,子宏块的尺寸为16x16、16x8、8x16、8x8、4x8、8x4和4x4。 H265的块划分方式比H264要...
综上所述,H.264/AVC作为一种革命性的视频压缩标准,在过去十几年里对整个视频行业产生了深远影响。尽管H.265/HEVC等更新技术逐渐崭露头角,但H.264/AVC凭借其成熟稳定的表现依然占据着市场主流地位。未来,随着超...
在H.264视频编解码器的设计中,其核心技术主要包括以下几个方面: 1. **分块编码**:视频画面被分割成多个宏块,每个宏块通常为16x16像素大小,便于进行独立编码。这样可以简化处理复杂度,同时允许编码器根据画面...
2. 宏块和分区:H.264将视频帧分割成宏块,一个宏块由16x16的亮度像素(Y)组成,以及和该亮度块对应的两个8x8的色度块(Cb、Cr)。每个宏块可被进一步分割成更小的块,进行更加细致的预测编码。 3. 空间冗余度的...
1. **宏块划分与运动估计**:H264将视频帧划分为不同大小的宏块,每个宏块可以包含16x16像素的亮度区域以及对应的色度区域。宏块可以根据内容选择不同的编码模式,运动估计则通过比较相邻帧之间的相似性来预测当前宏...
在H.264编码中,有几个关键知识点: 1. **编码框架**:H.264采用基于宏块的编码框架,将图像划分为16x16像素的宏块,每个宏块可以进一步分割为更小的块进行编码。 2. **熵编码**:包括CABAC(Context-Adaptive ...
H264Visa能够详细地显示这些编码细节,如NAL单元(Network Abstraction Layer Units)、Slice信息、宏块模式、量化参数等,这对于开发者、视频工程师以及质量控制人员来说,是不可或缺的辅助工具。 在提供的文件...
2. **块级处理**:H264将视频帧划分为不同的宏块,每个宏块可以进一步细分为不同大小的块,这样可以根据内容的复杂程度进行不同程度的压缩。 3. **运动估计与补偿**:通过比较相邻帧之间的像素差异,H264可以预测...
每个宏块可以包含16x16像素的亮度分量和对应的色度分量(Cb和Cr)。编码器通过运动估计和补偿、DCT变换、量化、熵编码等步骤来减少冗余,提高压缩效率。在开始的几帧,尤其是I帧(无参考帧的帧),编码器会使用帧内...
H264/AVC标准相比MPEG4和H.263,提供了更高的压缩比率,支持更多种类的帧内预测模式(13种)和不同尺寸的宏块分割(7种),这使得视频编码的灵活性大大增强,但也带来了计算量的显著增加。 在H264/AVC中,每个宏块...