ba2e107d28
This is the first modification of VP8 multi-thread decoder, which uses same threads to decode macroblocks and then do loopfiltering for each frame. Inspired by Rob Clark, synchronization was done on every 8 macroblocks instead of every macroblock to reduce lock contention. Comparing with the original code, this implementation gave about 15%- 20% performance gain while decoding my test clips on a Core2 Quad platform (Linux). The work is not done yet. Test on other platforms are needed. Change-Id: Ice9ddb0b511af1359b9f71e65066143c04fef3b5
27 lines
843 B
C
27 lines
843 B
C
/*
|
|
* Copyright (c) 2010 The VP8 project authors. All Rights Reserved.
|
|
*
|
|
* Use of this source code is governed by a BSD-style license
|
|
* that can be found in the LICENSE file in the root of the source
|
|
* tree. An additional intellectual property rights grant can be found
|
|
* in the file PATENTS. All contributing project authors may
|
|
* be found in the AUTHORS file in the root of the source tree.
|
|
*/
|
|
|
|
|
|
|
|
|
|
|
|
#ifndef _DECODER_THREADING_H
|
|
#define _DECODER_THREADING_H
|
|
|
|
|
|
extern void vp8_mtdecode_mb_rows(VP8D_COMP *pbi,
|
|
MACROBLOCKD *xd);
|
|
extern void vp8_mt_loop_filter_frame(VP8D_COMP *pbi);
|
|
extern void vp8_stop_lfthread(VP8D_COMP *pbi);
|
|
extern void vp8_start_lfthread(VP8D_COMP *pbi);
|
|
extern void vp8_decoder_remove_threads(VP8D_COMP *pbi);
|
|
extern void vp8_decoder_create_threads(VP8D_COMP *pbi);
|
|
#endif
|