mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
make intra dc prediction less contradictory
Originally committed as revision 10482 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
aaac6c29d2
commit
c3922c65b5
@ -96,9 +96,9 @@ prediction:
|
|||||||
block(0)
|
block(0)
|
||||||
|
|
||||||
block(level):
|
block(level):
|
||||||
|
mvx_diff=mvy_diff=y_diff=cb_diff=cr_diff=0
|
||||||
if(keyframe){
|
if(keyframe){
|
||||||
intra=1
|
intra=1
|
||||||
y_diff=cb_diff=cr_diff=0
|
|
||||||
}else{
|
}else{
|
||||||
if(level!=max_block_depth){
|
if(level!=max_block_depth){
|
||||||
s_context= 2*left->level + 2*top->level + topleft->level + topright->level
|
s_context= 2*left->level + 2*top->level + topleft->level + topright->level
|
||||||
@ -333,9 +333,9 @@ the luma and chroma values of the left block are used as predictors
|
|||||||
|
|
||||||
the used luma and chroma is the sum of the predictor and y_diff, cb_diff, cr_diff
|
the used luma and chroma is the sum of the predictor and y_diff, cb_diff, cr_diff
|
||||||
to reverse this in the decoder apply the following:
|
to reverse this in the decoder apply the following:
|
||||||
block[y][x].dc[0] += block[y][x-1].dc[0];
|
block[y][x].dc[0] = block[y][x-1].dc[0] + y_diff;
|
||||||
block[y][x].dc[1] += block[y][x-1].dc[1];
|
block[y][x].dc[1] = block[y][x-1].dc[1] + cb_diff;
|
||||||
block[y][x].dc[2] += block[y][x-1].dc[2];
|
block[y][x].dc[2] = block[y][x-1].dc[2] + cr_diff;
|
||||||
block[*][-1].dc[*]= 128;
|
block[*][-1].dc[*]= 128;
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user